@chase-shao/vue-component-lib 1.2.66 → 1.2.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var Ke=Object.create;var he=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Ge=Object.prototype.hasOwnProperty;var We=(t,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of ze(o))!Ge.call(t,a)&&a!==r&&he(t,a,{get:()=>o[a],enumerable:!(n=je(o,a))||n.enumerable});return t};var qe=(t,o,r)=>(r=t!=null?Ke(Oe(t)):{},We(o||!t||!t.__esModule?he(r,"default",{value:t,enumerable:!0}):r,t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Ye=require("axios"),Je=require("pinia"),Xe=require("@arco-design/web-vue"),Qe=require("vue-router"),Ze=Je.defineStore("main",()=>({token:e.ref(void 0)})),et=async t=>new Promise(o=>setTimeout(o,t)),tt=async(t,o,r,n=void 0)=>{if(t[o]===void 0)try{t[o]=null,t[o]=await r()||n}catch(a){console.error(a),t[o]=void 0}for(;t[o]===null;)await et(100);return t[o]},Z=t=>{const o=`0${t}`;return o.substring(o.length-2)},oe=(t,o="yyyy-MM-dd hh:mm:ss")=>{if(!t||typeof t=="string"&&t.length===0)return"";try{const r=new Date(t),n=[["yyyy",r.getFullYear()],["yy",r.getFullYear().toString().substring(2)],["MM",Z(r.getMonth()+1)],["M",r.getMonth()+1],["dd",Z(r.getDate())],["d",r.getDate()],["hh",Z(r.getHours())],["h",r.getHours()],["mm",Z(r.getMinutes())],["m",r.getMinutes()],["ss",Z(r.getSeconds())],["s",r.getSeconds()]];for(const[a,d]of n)o=o.replace(a,d);return o}catch{return t.toLocaleString()}},ot=(t,o)=>{let r;t instanceof Blob?r=t:r=new Blob([t]);const n=document.createElement("a"),a=window.URL.createObjectURL(r);n.href=a,n.download=o,n.click(),window.URL.revokeObjectURL(a)};let fe={};function nt(t){fe={...fe,...t}}function ge(){return fe}function xe(){const t=ge();return{apiBase:t.apiBase||void 0||"",appSecret:t.appSecret||void 0||""}}function Ne(){const{apiBase:t}=xe();return Ye.create({baseURL:t,timeout:1e4,withCredentials:!0})}const Se=async()=>{const{apiBase:t,appSecret:o}=xe(),r=Ne(),n=Ze();return await tt(n,"token",async()=>{const a=await r.get(`${t}/GenerateToken`,{params:{appid:"bpm",appsecret:o}});return a?.data?.token&&setTimeout(()=>{n.token=void 0},(a.data?.expireSeconds??3600)*1e3),a?.data?.token})},U=async()=>{const t=await Se(),o=Ne();return o.defaults.headers.common.Authorization=`Bearer ${t}`,o},de={CurrentUserEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",CurrentUserPositionCode:t=>t.bpmStore()?.positionCode??888,CurrentDatetime:()=>new Date().toISOString(),ApproverEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",ApproverPositionCode:t=>t.bpmStore()?.positionCode??999,RejectReason:()=>"Test Reject Reason"},F=[];for(let t=0;t<256;++t)F.push((t+256).toString(16).slice(1));function at(t,o=0){return(F[t[o+0]]+F[t[o+1]]+F[t[o+2]]+F[t[o+3]]+"-"+F[t[o+4]]+F[t[o+5]]+"-"+F[t[o+6]]+F[t[o+7]]+"-"+F[t[o+8]]+F[t[o+9]]+"-"+F[t[o+10]]+F[t[o+11]]+F[t[o+12]]+F[t[o+13]]+F[t[o+14]]+F[t[o+15]]).toLowerCase()}let ue;const rt=new Uint8Array(16);function lt(){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),be={randomUUID:st};function $e(t,o,r){if(be.randomUUID&&!t)return be.randomUUID();t=t||{};const n=t.random??t.rng?.()??lt();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=n[6]&15|64,n[8]=n[8]&63|128,at(n)}var P=(t=>(t[t.Submit=0]="Submit",t[t.Link=1]="Link",t))(P||{}),J=(t=>(t[t.Create=0]="Create",t[t.Update=1]="Update",t[t.Details=2]="Details",t[t.List=3]="List",t))(J||{});function it(t,o,r){const n={pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}};return t.__ClassAttributes?.forEach(a=>{if(a.attributeType==="UIPageType")n.pageType=a.Type;else if(a.attributeType==="UIValidationControl")n.globalValidations.push({rule:a.ruleName,errorMessage:a.errorMessage,param:a.ruleParameter,appliesTo:a.propertyNames||["*"]});else if(a.attributeType==="UIControl"){if(a.widget==="Tab"){n.tabs||(n.tabs=[]),n.tabs.push({key:$e(),title:a.title,filters:a.filters?JSON.parse(a.filters):[],order:a.order});return}n.actions||(n.actions=[]),n.actions.push({isSubmit:a.isSubmit,requestUrl:a.requestUrl,redirectUrl:a.redirectUrl,redirectType:a.redirectType,title:a.title,widget:a.widget==="Link"?P.Link:P.Submit,location:a.location,attributeType:a.attributeType,readonly:a.readonly})}else a.attributeType==="Banner"&&(n.banner.title=a.title,n.banner.subTitle=o===0?a.subTitle:ve(a.subTitle,t.workflowId.propertyValue))}),n.tabs&&(n.tabs=n.tabs.sort((a,d)=>a.order-d.order)),Object.entries(t).forEach(([a,d])=>{if(a==="__ClassAttributes"||a==="className"||a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"||o!==3&&a==="workflowId")return;const s={validations:[],triggers:[],isFiltered:!1,dependent:"",operator:""},{attributes:c,propertyValue:l}=d;switch(l){case null:s.modelValue="";break;case void 0:s.modelValue="";break;default:s.modelValue=l;break}a==="onBehalf"&&o===0&&(s.modelValue=de.CurrentUserEmail(r)),o===1&&(a==="directReports"||a==="employeesInTheTeam")&&s.modelValue&&(s.modelValue=Number(s.modelValue)),c?.forEach(i=>{i.order||i.Order?s.order=i.order??i.Order:i.attributeType==="UIControl"?s.widget={...i,column:!0}:i.attributeType==="UIValidationControl"&&o!==3?s.widget?.widget!=="CheckBox"&&s.validations.push(i):i.attributeType==="UIListed"?s.widget={...i,column:!0}:i.attributeType==="UIFiltered"?(s.isFiltered=!0,s.operator=i.operatorType):i.dependentType?s.dependent=de[i.dependentType]?de[i.dependentType](r):"":i.eventType==="Change"&&s.triggers?.push({event:"change",handlerName:i.eventName})}),n.fields[a]=s}),n}const ne=async(t,o,r,n)=>{const d=await(await U()).get(`/General/${o}/${t}/page`,{params:n});return it(d?.data,t,r)},Ee=async(t,o,r)=>(await(await U()).post(`/${o}/${t}/button/List`,null,{params:r}))?.data;async function ct(t,o){const n=await(await U()).post(`/General/${t}/list`,o);return{data:n.data.data,totalCount:n.data.totalCount}}async function dt(t,o,r){return(await(await U()).post(r,o,{params:{className:t}})).data}async function ut(t,o,r,n){const a=await U(),d=ve(n,o);return(await a.put(d,r))?.data}function ve(t,o){return t.replace(/{WorkflowId}/g,o)}function pt(t,o){return t.replace(/{ApproverEmail}/g,encodeURIComponent(o))}function mt(t,o){return t.replace(/{WorkFlowReason}/g,encodeURIComponent(o))}function ft(t,o){return t.replace(/{Status}/g,o)}function gt(t,o){return t.replace(/{IfTriggerGlobal_RandP_Approval}/g,o)}function vt(t,o){return t.replace(/{ClassName}/g,encodeURIComponent(o))}async function wt(t,o,r,n,a,d,s,c){const l=await U();let i=ve(d,o);return i=pt(i,r),i=mt(i,n),i=ft(i,s),i=gt(i,c),i=vt(i,t),(await l.put(i,a))?.data}async function kt(t,o){const a=(await(await U()).get(t,{params:{value:o}}))?.data;return Object.entries(a).map(([d,s])=>({value:d,label:s}))}async function _t(t,o){return(await(await U()).get(`/General/${t}/${o}/process`))?.data}function yt(t){return{uid:t.id??$e(),name:t.attachmentName??"unknown",url:t.attachmentKey??""}}async function Te(t,o){return(await(await U()).get(`/General/${t}/${o}/upload/get`))?.data.reduce((d,s)=>{const{category:c}=s;return d[c]||(d[c]=[]),d[c].push(yt(s)),d},{})}async function ht(t,o){return(await U()).post(`/General/${t}/${o}/delete/attachment`)}async function bt(){const o=await(await U()).get("/Grading/dropdown/approvers");return Object.entries(o?.data).map(([r,n])=>({label:r,value:n}))}async function Ct(t,o){return await(await U()).post(`Grading/AssignComments/${t}/${encodeURIComponent(o)}`)}async function Vt(t,o,r){return await(await U()).post(`Grading/AddComments/${t}/${encodeURIComponent(o)}`,r,{headers:{"Content-Type":"application/json;charset=UTF-8"}})}async function Ce(t){return(await(await U()).get(`Grading/GetComments/${t}`))?.data}async function pe(t){return(await(await U()).get(`Grading/GetAssociator/${t}`))?.data}async function Bt(t){return await(await U()).delete(`Grading/DeleteAssociator/${t}`)}async function xt(t,o=null){const n=await(await U()).post(t,o,{responseType:"blob"});ot(n?.data,"WorkflowData.xlsx")}const X=(t,o)=>{let r="";return{res:t.every(a=>{const d=Nt(a,o);return d||(r=a.errorMessage),d}),errorMessages:r}},Nt=(t,o)=>{const{ruleName:r,ruleParameter:n}=t;return St[r](n,o)},St={Regex:(t,o)=>new RegExp(t).test(o),Required:(t,o)=>!!o},Ve=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=i=>X(n.validations,i),c=i=>{a("input",i)},l=i=>{const g=s(i);a("error",g.res?"":g.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(u=>{u.event==="change"&&a(u.event,u.handlerName,i)})};return o({validate(){const i=s(n.modelValue);return a("error",i.res?"":i.errorMessages),i.res}}),(i,g)=>{const u=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(u,{modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=w=>d.value=w),"allow-clear":"",disabled:n.readonly||n.config.Readonly,onInput:c,onChange:l},null,8,["modelValue","disabled"])}}}),$t=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=e.ref(100),c=e.ref(0);e.onMounted(()=>{n.validations&&n.validations.forEach(u=>{u.ruleName==="Max"&&(s.value=u.ruleParameter),u.ruleName==="Min"&&(c.value=u.ruleParameter)})});const l=u=>X(n.validations,u),i=u=>{a("input",u)},g=u=>{const w=l(u);a("error",w.res?"":w.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(b=>{b.event==="change"&&a(b.event,b.handlerName,u)})};return o({validate(){const u=l(n.modelValue);return a("error",u.res?"":u.errorMessages),u.res}}),(u,w)=>{const b=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(b,{modelValue:d.value,"onUpdate:modelValue":w[0]||(w[0]=m=>d.value=m),clearable:"",disabled:n.readonly,min:c.value,onInput:i,onChange:g},null,8,["modelValue","disabled","min"])}}}),Be=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.ref(!1),s=e.ref(n.config.options??[]),c=e.useModel(t,"modelValue"),l=u=>X(n.validations,u);e.computed(()=>{const u={};return n.triggers&&n.triggers.length>0&&n.triggers.forEach(w=>{u[w.event]=b=>{a(w.event,w.handlerName,b);const m=l(b);a("error",m.res?"":m.errorMessages)}}),u});const i=async()=>{n.config.dataSourceProvider&&(s.value=await kt(n.config.dataSourceProvider))};e.onMounted(i);const g=u=>{a("update:modelValue",u);const w=l(u);a("error",w.res?"":w.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(b=>{b.event==="change"&&a(b.event,b.handlerName,u)})};return o({validate(){const u=l(n.modelValue);return a("error",u.res?"":u.errorMessages),u.res}}),(u,w)=>{const b=e.resolveComponent("AOption"),m=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(m,{"allow-clear":"",modelValue:c.value,"onUpdate:modelValue":w[0]||(w[0]=y=>c.value=y),loading:d.value,"filter-option":!0,"allow-search":!0,disabled:u.config.readonly,onChange:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,y=>(e.openBlock(),e.createBlock(b,{key:y.value,value:y.value,label:y.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading","disabled"])}}}),Et=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(t,{expose:o,emit:r}){const n=t,a=r,d=e.ref(n.config.options??[]),s=l=>{a("update:modelValue",l),a("change",l)};e.onMounted(async()=>{if(n.config){const l=n.config.dataSourceProvider;if(l){const g=await(await U()).get(l);d.value=g.data}}});const c={value:"key",label:"value"};return o({validate(){return!0}}),(l,i)=>{const g=e.resolveComponent("ACascader"),u=e.resolveComponent("ASpace");return e.openBlock(),e.createBlock(u,{direction:"vertical",size:"large"},{default:e.withCtx(()=>[e.createVNode(g,{"field-names":c,"model-value":l.modelValue,options:d.value,style:{width:"320px"},placeholder:"Please select ...",onChange:s},null,8,["model-value","options"])]),_:1})}}}),Tt=e.defineComponent({__name:"FileUpload",props:{className:{},fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:r}){const n=t,a=r,d=e.ref({});e.onMounted(async()=>{const m=await Se();d.value={Authorization:`Bearer ${m}`}});const s=m=>X(n.validations,m),l=ge().apiBase,i=e.ref(null),g=e.ref("");function u(m,y,L){return m.replace(/{WorkflowId}/g,y).replace(/{ClassName}/g,L)}const w=e.computed(()=>{if(n.config.uploadURL){const m=l+n.config.uploadURL;return u(m,g.value,n.className)}return""});function b(m){const{file:y,name:L}=m,H=L??y.name;return new Promise((K,z)=>{Xe.Modal.confirm({title:"Confirm Delete",content:`Are you sure you want to delete ${H}?`,async onOk(){if(m.status!=="init"&&n.config.removeFile)return await n.config.removeFile(m.uid),K(!0);K(!0)},onCancel:()=>z("cancel")})})}return o({submit(m){i.value&&(n.config.uploadURL&&(g.value=m),e.nextTick(()=>{i.value.submit()}))},validate(){const m=s(n.modelValue);return a("error",m.res?"":m.errorMessages),m.res}}),(m,y)=>{const L=e.resolveComponent("a-button"),H=e.resolveComponent("a-upload");return e.openBlock(),e.createBlock(H,{ref_key:"uploadRef",ref:i,"default-file-list":n.config.files,action:w.value,limit:n.config.allowedNumber,"auto-upload":!1,name:"files",headers:d.value,onBeforeRemove:b},{"start-icon":e.withCtx(()=>y[0]||(y[0]=[])),"upload-button":e.withCtx(()=>[e.createVNode(L,{type:"primary"},{default:e.withCtx(()=>y[1]||(y[1]=[e.createTextVNode("Select File",-1)])),_:1,__:[1]})]),_:1},8,["default-file-list","action","limit","headers"])}}}),At=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:r}){const n=t,a=r,d=l=>X(n.validations,l),s=l=>{a("update:modelValue",l),a("input",l)},c=l=>{a("update:modelValue",l);const i=d(l);a("error",i.res?"":i.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(g=>{g.event==="change"&&a(g.event,g.handlerName,l)})};return o({validate(){const l=d(n.modelValue);return a("error",l.res?"":l.errorMessages),l.res}}),(l,i)=>{const g=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(g,{"model-value":n.modelValue,placeholder:"Please enter something","allow-clear":"",disabled:n.readonly,onInput:s,onChange:c},null,8,["model-value","disabled"])}}}),It=e.defineComponent({__name:"CheckBox",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=l=>X(n.validations,l),c=l=>{const i=s(l);a("error",i.res?"":i.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(g=>{g.event==="change"&&a(g.event,g.handlerName,l)})};return o({validate(){const l=s(n.modelValue);return a("error",l.res?"":l.errorMessages),l.res}}),(l,i)=>{const g=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(g,{modelValue:d.value,"onUpdate:modelValue":i[0]||(i[0]=u=>d.value=u),clearable:"",disabled:n.readonly||n.config.Readonly,onChange:c},{default:e.withCtx(()=>i[1]||(i[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}}}),Lt={class:"title"},Ut={key:0,class:"required"},Ft={key:0,class:"err-msg"},Dt=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=e.useTemplateRef("widgetRef"),c=e.computed(()=>{switch(n.config?.widget?.widget){case"TextBox":return Ve;case"Number":return $t;case"SelectList":return Be;case"Cascade":return Et;case"File":return Tt;case"TextArea":return At;case"DropDown":return Be;case"CheckBox":return It;default:return Ve}}),l=e.ref(""),i=w=>{l.value=w},g=(w,b)=>{a("change",w,b)};function u(){return n.config?.widget?.widget==="File"}return o({isFileUpload(){return n.config?.widget?.widget==="File"},submit(w){u()&&s.value.submit(w)},validate(){return s.value?.validate()},getCompName(){return n?.config?.widget?.title}}),(w,b)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Lt,[e.createTextVNode(e.toDisplayString(n?.config?.widget?.title)+" ",1),n.config.validations.length?(e.openBlock(),e.createElementBlock("span",Ut,"*")):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{ref_key:"widgetRef",ref:s,modelValue:d.value,"onUpdate:modelValue":b[0]||(b[0]=m=>d.value=m),"field-key":n.fieldKey,config:n.config.widget,validations:n.config.validations,triggers:n.config.triggers,"class-name":n.className,onError:i,onChange:g},null,40,["modelValue","field-key","config","validations","triggers","class-name"])),l.value.length>0?(e.openBlock(),e.createElementBlock("div",Ft,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)])]))}}),Q=(t,o)=>{const r=t.__vccOpts||t;for(const[n,a]of o)r[n]=a;return r},we=Q(Dt,[["__scopeId","data-v-1022c8cb"]]),Mt=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(t,{emit:o}){const r=t,n=o;function a(){n("click",r.url,r.redirectType)}return(d,s)=>{const c=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(c,{loading:d.loading,type:"primary",onClick:a},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3},8,["loading"])}}}),Rt=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(t,{emit:o}){const r=t,n=o;function a(){n("click",r.url,r.redirectType)}return(d,s)=>{const c=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(c,{onClick:a},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3})}}}),ee=e.defineComponent({__name:"index",props:{config:{},loading:{type:Boolean}},emits:["click"],setup(t,{emit:o}){const r=t,n=o;function a(l,i){n("click",r.config.widget,l,i,r.config.title)}const d=e.computed(()=>{switch(r.config.location){case"InOperation":return Mt;case"InTable":default:return Rt}}),s=e.computed(()=>r.config.widget===P.Submit?r.config.requestUrl??"":r.config.widget===P.Link?r.config.redirectUrl??"":""),c=e.computed(()=>r.config.redirectType??"Details");return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{url:s.value,"redirect-type":c.value,loading:l.loading,onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.config.title),1)]),_:1},8,["url","redirect-type","loading"]))}}),ke=Symbol("library-router");function ae(){const t=e.inject(ke,null);return t||Qe.useRouter()}const Ae=Symbol("library-triggers");function _e(){const t=e.inject(Ae,null);return t||{}}const Ie=Symbol("library-pinia"),Le=Symbol("library-bpmStore"),Ue=Symbol("library-svrStore");function re(){return e.inject(Le,null)}function le(){return e.inject(Ue,null)}const Pt={class:"top-bar"},Ht={class:"banner-info"},Kt={class:"page-title"},jt={class:"page-subtitle"},zt={class:"avatar-wrapper"},Ot={class:"user-email"},Gt=e.defineComponent({__name:"TopBar",props:{title:{},subTitle:{},email:{}},setup(t){return(o,r)=>{const n=e.resolveComponent("a-avatar"),a=e.resolveComponent("a-popover");return e.openBlock(),e.createElementBlock("div",Pt,[e.createElementVNode("div",Ht,[e.createElementVNode("div",Kt,e.toDisplayString(o.title),1),e.createElementVNode("div",jt,e.toDisplayString(o.subTitle),1)]),e.createElementVNode("div",zt,[e.createVNode(a,{trigger:"click"},{content:e.withCtx(()=>[e.createElementVNode("div",Ot,e.toDisplayString(o.email),1)]),default:e.withCtx(()=>[e.createVNode(n,{size:48,autoFixFontSize:"",style:{cursor:"pointer",background:"#165DFF",color:"#fff"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.email.charAt(0).toUpperCase()),1)]),_:1})]),_:1})])])}}}),se=Q(Gt,[["__scopeId","data-v-c0457235"]]);function ye(t){const o=ge(),r=[];if(o.fieldsGroup){o.fieldsGroup.forEach(d=>{const s=d.keys.map(c=>t.find(l=>l.fieldKey===c)).filter(Boolean);s.length&&r.push({name:d.name,fields:s})});const n=o.fieldsGroup.flatMap(d=>d.keys),a=t.filter(d=>!n.includes(d.fieldKey));return a.length&&r.push({name:"未分组字段",fields:a}),console.log("🚀 ~ genFieldsGroup ~ groups:",r),r}}const Wt={class:"page-container"},qt={class:"page-body"},Yt={class:"form-card"},Jt={class:"form-fields-vertical"},Xt={class:"form-fields"},Qt={key:0,class:"form-content"},Zt={class:"page-footer"},eo={class:"action-container"},to={class:"action-buttons"},oo=e.defineComponent({__name:"CreateView",props:{className:{}},setup(t){const o=re(),r=le(),n=ae(),a=_e(),d=e.useTemplateRef("dataWidgets"),s=e.getCurrentInstance(),c=t,l=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),i=e.ref([]),g=e.ref({});function u(B){return B?Object.entries(B).map(([f,C])=>({fieldKey:f,...C})).filter(f=>f.widget&&f.widget.widget!=="Hidden").filter(f=>!z.value.includes(f.fieldKey)):[]}function w(B){return B?Object.entries(B).filter(([f,C])=>C.dependent).reduce((f,[C,k])=>(f[C]=k.dependent,f),{}):[]}const b=e.computed(()=>l.value?.actions?[...l.value.actions].reverse():[]),m=e.reactive({}),y=e.ref(!1);e.onMounted(async()=>{y.value=!0,l.value=await ne(J.Create,c.className,{svrStore:r,bpmStore:o}),i.value=u(l.value.fields),g.value=w(l.value.fields);for(const B in l.value.fields){if(l.value.fields[B].widget?.widget==="File"){const x=i.value.find(f=>f.fieldKey===B);x&&x.widget&&(x.widget.files=[])}m[B]=l.value.fields[B].modelValue}y.value=!1});function L(){return r()?.userInfo?.email_address??""}async function H(B,x,f,C,k){switch(x){case P.Submit:let $=!0;if(d.value?.forEach(O=>{O?.validate&&(O.validate()||($=!1))}),!$){s?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}y.value=!0;const j=await dt(c.className,{...m,...g.value},f);y.value=!1,d.value?.forEach(O=>{O?.submit&&O.submit(j.toString())}),console.log("🚀 ~ clickHandler ~ res.toString():",j.toString()),s?.appContext.config.globalProperties.$notification.success("create success!"),n.push({name:"Details",params:{workflowId:j.toString()}});break;case P.Link:C==="List"&&n.push({name:"List",params:{className:c.className}});break;default:console.warn("Unknown action type:",x)}}const K=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","jobAttachmentPrevious","positionId"],z=e.ref(K);function W(B,x){a[B]?.(x,z),l.value&&(i.value=u(l.value.fields))}const A=e.computed(()=>ye(i.value));return(B,x)=>{const f=e.resolveComponent("a-card"),C=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(se,{title:l.value.banner.title,subTitle:l.value.banner.subTitle,email:L()},null,8,["title","subTitle","email"]),e.createElementVNode("div",qt,[e.createVNode(C,{loading:y.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Yt,[e.createElementVNode("div",Jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,k=>(e.openBlock(),e.createBlock(f,{key:k.name,title:k.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",Xt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.fields,$=>(e.openBlock(),e.createBlock(we,{key:$.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":$.fieldKey,config:$,"class-name":B.className,modelValue:m[$.fieldKey],"onUpdate:modelValue":j=>m[$.fieldKey]=j,class:"form-field",onChange:W},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),B.$slots.content?(e.openBlock(),e.createElementBlock("div",Qt,[e.renderSlot(B.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Zt,[e.createElementVNode("div",eo,[e.renderSlot(B.$slots,"action",{},void 0,!0),e.createElementVNode("div",to,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,k=>(e.openBlock(),e.createBlock(ee,{key:k.Title,loading:y.value,config:k,class:"action-button",onClick:(...$)=>H(k,...$)},null,8,["loading","config","onClick"]))),128))])])])])}}}),Fe=Q(oo,[["__scopeId","data-v-cc26a7e0"]]),no={class:"page-container"},ao={class:"page-body"},ro={class:"form-card"},lo={class:"form-fields-vertical"},so={class:"form-fields"},io={key:0,class:"form-content"},co={class:"page-footer"},uo={class:"action-container"},po={class:"action-buttons"},mo=e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(t){const o=ae(),r=_e(),n=le(),a=re(),d=e.useTemplateRef("dataWidgets"),s=e.getCurrentInstance(),c=t,l=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),i=e.ref([]),g=e.ref({});function u(A){return A?Object.entries(A).map(([x,f])=>({fieldKey:x,...f})).filter(x=>x.widget&&x.widget.widget!=="Hidden").filter(x=>!K.value.includes(x.fieldKey)):[]}function w(A){return A?Object.entries(A).filter(([x,f])=>f.dependent).reduce((x,[f,C])=>(x[f]=C.dependent,x),{}):[]}const b=e.computed(()=>l.value?.actions?[...l.value.actions].reverse():[]),m=e.reactive({}),y=e.ref(!1);e.onMounted(async()=>{y.value=!0,l.value=await ne(J.Update,c.className,{svrStore:n,bpmStore:a},{workflowId:c.workflowId});const A=await Ee(J.Update,c.className,{workflowId:c.workflowId,email:L()}),B=await Te(c.className,c.workflowId);l.value.actions=l.value.actions?.filter(f=>{const C=A.find(k=>k.button===f.title);return C?C.isShow:!0});const x=l.value.fields.requestType.modelValue;r.Test?.(x,K),i.value=u(l.value.fields),g.value=w(l.value.fields);for(const f in l.value.fields){if(l.value.fields[f].widget?.widget==="File"){const C=i.value.find(k=>k.fieldKey===f);C&&C.widget&&(C.widget.files=B[f]??[],C.widget.removeFile=k=>ht(c.className,k))}m[f]=l.value.fields[f].modelValue}y.value=!1});function L(){return n()?.userInfo?.email_address??""}async function H(A,B,x,f,C){switch(B){case P.Submit:let k=!0;if(d.value?.forEach($=>{$?.validate&&($.validate()||(k=!1))}),!k){s?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}y.value=!0,await ut(c.className,c.workflowId,{...m,...g.value},x),y.value=!1,d.value?.forEach($=>{$?.submit&&$.submit(c.workflowId)}),s?.appContext.config.globalProperties.$notification.success("update success!");break;case P.Link:o.push({name:f,params:{className:c.className}});break;default:console.warn("Unknown action type:",B)}}const K=e.ref([]);function z(A,B){r[A]?.(B,K),l.value&&(i.value=u(l.value.fields))}const W=e.computed(()=>ye(i.value));return(A,B)=>{const x=e.resolveComponent("a-card"),f=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",no,[e.createVNode(se,{title:l.value.banner.title,subTitle:l.value.banner.subTitle,email:L()},null,8,["title","subTitle","email"]),e.createElementVNode("div",ao,[e.createVNode(f,{loading:y.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",ro,[e.createElementVNode("div",lo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,C=>(e.openBlock(),e.createBlock(x,{key:C.name,title:C.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",so,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.fields,k=>(e.openBlock(),e.createBlock(we,{key:k.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":k.fieldKey,config:k,"class-name":A.className,modelValue:m[k.fieldKey],"onUpdate:modelValue":$=>m[k.fieldKey]=$,class:"form-field",onChange:z},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),A.$slots.content?(e.openBlock(),e.createElementBlock("div",io,[e.renderSlot(A.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",co,[e.createElementVNode("div",uo,[e.renderSlot(A.$slots,"action",{},void 0,!0),e.createElementVNode("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,C=>(e.openBlock(),e.createBlock(ee,{key:C.Title,loading:y.value,config:C,class:"action-button",onClick:(...k)=>H(C,...k)},null,8,["loading","config","onClick"]))),128))])])])])}}}),De=Q(mo,[["__scopeId","data-v-1621b609"]]),Me=Symbol("library-custom-comp");function fo(){return e.inject(Me,null)}const go=Symbol("ArcoConfigProvider"),vo="arco",wo="$arco",ko=t=>{var o,r,n;const a=e.getCurrentInstance(),d=e.inject(go,void 0);return`${(n=(r=d?.prefixCls)!=null?r:(o=a?.appContext.config.globalProperties[wo])==null?void 0:o.classPrefix)!=null?n:vo}-${t}`},_o=Object.prototype.toString;function yo(t){return _o.call(t)==="[object Number]"&&t===t}var ho=(t,o)=>{for(const[r,n]of o)t[r]=n;return t};const bo=e.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const r=ko("icon"),n=e.computed(()=>[r,`${r}-download`,{[`${r}-spin`]:t.spin}]),a=e.computed(()=>{const s={};return t.size&&(s.fontSize=yo(t.size)?`${t.size}px`:t.size),t.rotate&&(s.transform=`rotate(${t.rotate}deg)`),s});return{cls:n,innerStyle:a,onClick:s=>{o("click",s)}}}}),Co=["stroke-width","stroke-linecap","stroke-linejoin"];function Vo(t,o,r,n,a,d){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(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...s)=>t.onClick&&t.onClick(...s))},o[1]||(o[1]=[e.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1)]),14,Co)}var me=ho(bo,[["render",Vo]]);const Bo=Object.assign(me,{install:(t,o)=>{var r;const n=(r=o?.iconPrefix)!=null?r:"";t.component(n+me.name,me)}}),xo={class:"page-container"},No={class:"page-body"},So={class:"detail-card"},$o={class:"form-fields-vertical"},Eo={class:"detail-fields"},To={class:"detail-field"},Ao={class:"field-label"},Io={key:1,class:"field-value"},Lo={key:2,class:"detail-field-wrapper"},Uo={class:"detail-field"},Fo={key:0,class:"detail-content"},Do={class:"page-footer"},Mo={class:"action-container"},Ro={class:"action-buttons"},Po=e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(t){const o=le(),r=re(),n=_e(),a=ae(),d=fo(),s=e.getCurrentInstance(),c=t,l=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),i=e.ref([]);function g(_){return _?Object.entries(_).map(([I,h])=>(typeof h.modelValue=="boolean"?h.fieldValue=h.modelValue?"Yes":"No":h.fieldValue=h.modelValue,{fieldKey:I,...h})).filter(I=>I.widget&&I.widget.widget!=="Hidden").filter(I=>!A.value.includes(I.fieldKey)):[]}const u=e.computed(()=>ye(i.value)),w=e.computed(()=>l.value?.actions?[...l.value.actions].reverse():[]),b=e.ref(!0),m=(_,p)=>{const I=_.findIndex(h=>h.isCurrent);return _.map((h,M)=>{const N={id:h.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};N.title=h.workflowProcessApprovers[0]?.name;const G=h.workflowProcessApprovers[h.workflowProcessApprovers.length-1],E=h.workflowHistorys[h.workflowHistorys.length-1],R=E?.workflowHistoryApprovers[E?.workflowHistoryApprovers?.length-1];if(G&&R&&G?.email?.toLowerCase()!==R?.approverEmail?.toLowerCase()&&(N.title=`${R.name}`,N.proxy=`Proxy: ${G.name}`),h.sort>1?N.sub="Approver Role: "+h.nodeName.replace("Submit","").replace("Approve",""):N.sub="Submit Application",h.isCurrent&&p!==-1)N.desc="In Approval",N.status=1;else{const D=h.workflowHistorys[h.workflowHistorys.length-1];if(D&&D.status===100)N.time=oe(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),N.status=2,N.desc="approve success!";else if(D&&D.status===999)N.time=oe(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),N.status=0,N.desc="approve reject!";else if(D)if(N.time=oe(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),h.sort===1)N.status=2,N.desc="";else{const te=D.workflowHistoryApprovers[0];N.status=3,N.desc=te?.reason?`Rejected reason: ${te.reason}`:"Rejected"}else M<I||I===-1?(N.status=0,N.desc="Skipped"):(N.status=0,N.desc="Pending Approval");D&&D.status}return N})},y=e.ref([]),L=e.ref(!1),H=e.ref(!1),K=e.ref(!1),z=e.ref(!1);async function W(){const _=await Ee(J.Details,c.className,{workflowId:c.workflowId,email:f()});l.value.actions=l.value.actions?.filter(p=>{const I=_.find(h=>h.button===p.title);return I?I.isShow:!0}),L.value=_.find(p=>p.button==="IsGlobal")?.isShow??!1,H.value=_.find(p=>p.button==="AssignButton")?.isShow??!1,K.value=_.find(p=>p.button==="AssignList")?.isShow??!1,z.value=_.find(p=>p.button==="AddCommentsButton")?.isShow??!1}const A=e.ref([]);async function B(){b.value=!0,l.value=await ne(J.Details,c.className,{svrStore:o,bpmStore:r},{workflowId:c.workflowId});const _=await Te(c.className,c.workflowId);O.value=await bt(),$.value=await Ce(c.workflowId),Y.value=await pe(c.workflowId),W();const p=l.value.fields.requestType.modelValue;n.Test?.(p,A),i.value=g(l.value.fields);for(const h in l.value.fields)if(l.value.fields[h].widget?.widget==="File"){const M=i.value.find(N=>N.fieldKey===h);M&&M.widget&&(M.widget.files=_[h]??[])}const I=await _t(c.className,c.workflowId);y.value=m(I,0),b.value=!1}e.onMounted(B);async function x(_,p){return n[_]?.(p)}function f(){return o()?.userInfo?.email_address??""}async function C(_,p,I,h,M){try{switch(p){case P.Submit:const{reason:N,ifGlobal:G}=await x(M,{isGlobal:L.value});b.value=!0;const E=M==="Approve"?"100":"-1";await wt(c.className,c.workflowId,f(),N,[Number(c.workflowId)],I,E,G),b.value=!1;const R=M==="Approve"?"approve success!":"approve reject!";s?.appContext.config.globalProperties.$notification.success(R),B();break;case P.Link:h==="List"&&a.push({name:"List",params:{className:c.className}});break;default:console.warn("Unknown action type:",p)}}catch{}}const k=e.ref(""),$=e.ref([]),j=e.ref(""),O=e.ref([]),Y=e.ref([]);async function ie(){if(!j.value){s?.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 Ct(c.workflowId,j.value),Y.value=await pe(c.workflowId),W(),s?.appContext.config.globalProperties.$notification.success("Assign Approver clicked!")}catch(_){if(_.status===409){s?.appContext.config.globalProperties.$notification.error("This user is already an associator");return}s?.appContext.config.globalProperties.$notification.error("Failed to assign approver")}}async function v(_,p){const{Modal:I}=await import("@arco-design/web-vue");return new Promise((h,M)=>{I.confirm({title:_,content:p,okText:"OK",cancelText:"Cancel",onOk:()=>h(!0),onCancel:()=>M()})})}async function V(_){try{await v("Confirm Delete Associator","Do you want to delete this associator?")}catch{return}try{await Bt(String(_)),Y.value=await pe(c.workflowId),s?.appContext.config.globalProperties.$notification.success("Associator deleted successfully!")}catch{s?.appContext.config.globalProperties.$notification.error("Failed to delete associator")}}async function S(){if(!k.value.trim()){s?.appContext.config.globalProperties.$message.error("Comment cannot be empty");return}await Vt(c.workflowId,f(),k.value),k.value="",$.value=await Ce(c.workflowId),s?.appContext.config.globalProperties.$notification.success("Add Comment clicked!")}return(_,p)=>{const I=e.resolveComponent("a-link"),h=e.resolveComponent("a-space"),M=e.resolveComponent("a-card"),N=e.resolveComponent("a-option"),G=e.resolveComponent("a-select"),E=e.resolveComponent("a-button"),R=e.resolveComponent("a-list-item"),D=e.resolveComponent("a-list"),te=e.resolveComponent("a-textarea"),He=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",xo,[e.createVNode(se,{title:l.value.banner.title,subTitle:l.value.banner.subTitle,email:f()},null,8,["title","subTitle","email"]),e.createElementVNode("div",No,[e.createVNode(He,{loading:b.value,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",So,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d).Steps),{steps:y.value},null,8,["steps"])),e.createElementVNode("div",$o,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,T=>(e.openBlock(),e.createBlock(M,{key:T.name,title:T.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",Eo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.fields,q=>(e.openBlock(),e.createElementBlock("div",{key:q.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",To,[e.createElementVNode("div",Ao,e.toDisplayString(q.widget?.title),1),q.widget?.widget==="File"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(q.widget.files,ce=>(e.openBlock(),e.createElementBlock("div",{class:"field-value",key:ce.id},[e.createVNode(h,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ce.name)+" ",1),e.createVNode(I,{href:ce.url,target:"_blank"},{default:e.withCtx(()=>[e.createVNode(e.unref(Bo),{style:{color:"#7A00E6"}})]),_:2},1032,["href"])]),_:2},1024)]))),128)):(e.openBlock(),e.createElementBlock("div",Io,e.toDisplayString(q.fieldValue),1))])]))),128))])]),_:2},1032,["title"]))),128)),H.value?(e.openBlock(),e.createBlock(h,{key:0},{default:e.withCtx(()=>[e.createVNode(G,{modelValue:j.value,"onUpdate:modelValue":p[0]||(p[0]=T=>j.value=T)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,T=>(e.openBlock(),e.createBlock(N,{key:T.value,value:T.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(E,{type:"primary",onClick:ie},{default:e.withCtx(()=>p[2]||(p[2]=[e.createTextVNode("Assign for comment",-1)])),_:1,__:[2]})]),_:1})):e.createCommentVNode("",!0),K.value?(e.openBlock(),e.createBlock(D,{key:1},{header:e.withCtx(()=>p[3]||(p[3]=[e.createTextVNode(" Associators ",-1)])),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Y.value,T=>(e.openBlock(),e.createBlock(R,{key:T.id},{actions:e.withCtx(()=>[e.createVNode(E,{type:"text",status:"danger",onClick:q=>V(T.id)},{default:e.withCtx(()=>p[4]||(p[4]=[e.createTextVNode(" Delete ",-1)])),_:2,__:[4]},1032,["onClick"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(T.associator),1)]),_:2},1024))),128))]),_:1})):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createElementBlock("div",Lo,[e.createElementVNode("div",Uo,[p[6]||(p[6]=e.createElementVNode("div",{class:"field-label"},"Comment",-1)),e.createVNode(te,{modelValue:k.value,"onUpdate:modelValue":p[1]||(p[1]=T=>k.value=T)},null,8,["modelValue"]),e.createVNode(E,{type:"primary",onClick:S},{default:e.withCtx(()=>p[5]||(p[5]=[e.createTextVNode("Add Comment",-1)])),_:1,__:[5]})])])):e.createCommentVNode("",!0),$.value.length?(e.openBlock(),e.createBlock(D,{key:3},{header:e.withCtx(()=>p[7]||(p[7]=[e.createTextVNode(" Comments History ",-1)])),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,T=>(e.openBlock(),e.createBlock(R,{key:T.associator},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.associator)+": "+e.toDisplayString(T.comments)+" ("+e.toDisplayString(e.unref(oe)(T.createdAt))+") ",1)]),_:2},1024))),128))]),_:1})):e.createCommentVNode("",!0)]),_.$slots.content?(e.openBlock(),e.createElementBlock("div",Fo,[e.renderSlot(_.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Do,[e.createElementVNode("div",Mo,[e.renderSlot(_.$slots,"action",{},void 0,!0),e.createElementVNode("div",Ro,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,T=>(e.openBlock(),e.createBlock(ee,{key:T.Title,loading:b.value,config:T,class:"action-button",onClick:(...q)=>C(T,...q)},null,8,["loading","config","onClick"]))),128))])])])])}}}),Re=Q(Po,[["__scopeId","data-v-50190ec4"]]),Ho={class:"list-container"},Ko={class:"query-title"},jo=e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(t){const o=le(),r=re(),n=ae(),a=e.getCurrentInstance(),d=t,s=e.ref(),c=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function l(){const v=Object.entries(C.value).filter(([,{value:V}])=>V&&V!=="").map(([V,{value:S,operator:_}])=>({key:V,value:S,operator:_}));return{pageNumber:c.current,pageSize:c.pageSize,filters:[...c.filters,...v],sorts:[{key:"status",type:0}]}}const i=e.computed(()=>({x:w.value.length*150+250})),g=v=>{const V=Object.entries(v).filter(([,S])=>S.widget?.column).map(([S,_],p)=>({title:_.widget.title,dataIndex:S.charAt(0).toLowerCase()+S.slice(1),order:_.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((S,_)=>S.order-_.order);V.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),w.value=V,console.log("🚀 ~ mapColumns ~ _columns.value:",w.value)},u=e.ref([]),w=e.ref([]),b=e.ref(!0),m=e.ref(!0),y=e.ref(),L=async()=>{m.value=!0;const v=await ct(d.className,l());u.value=v.data,console.log("🚀 ~ loadData ~ _data.value:",u.value),c.total=v.totalCount,m.value=!1},H=e.ref(!1);e.onMounted(async()=>{b.value=!0,s.value=await ne(3,d.className,{svrStore:o,bpmStore:r}),g(s.value.fields),$(s.value.fields),j(),f(s.value?.tabs?.[0]?.key||""),y.value=s.value.actions,b.value=!1,H.value=!0}),e.onActivated(()=>{H.value&&L()});const K=v=>{c.current=v,L()},z=v=>{c.pageSize=v,L()};function W(v,V,S,_,p){switch(v){case P.Link:n.push({name:S,params:{workflowId:p}});break;default:console.warn("Unknown action type:",v)}}function A(v,V,S){switch(v){case P.Submit:xt(V,{filters:[{key:"approverList",value:"jessica.zhan@sanofi.com",operator:2}]}),a?.appContext.config.globalProperties.$notification.success("submit success!");break;case P.Link:n.push({name:S});break;default:console.warn("Unknown action type:",v)}}function B(){return o()?.userInfo?.email_address??""}function x(v,V){return typeof v!="string"||v.indexOf("{currentUserEmail}")===-1?v:v.replace(/{currentUserEmail}/g,V)}function f(v){const V=s.value?.tabs?.find(S=>S.key===v)?.filters;c.filters=V?.map(S=>({...S,value:x(S.value,B())}))||[],L()}const C=e.ref({}),k=e.ref([]);function $(v){if(!v)return[];k.value=Object.entries(v).filter(([,V])=>V.isFiltered).map(([V,S])=>({fieldKey:V,fieldConfig:S}))}const j=()=>{const v={};k.value.forEach(({fieldKey:V,fieldConfig:S})=>{v[V]={},v[V].value=S.modelValue,v[V].operator=S.operator}),C.value=v},O=()=>{c.current=1,L()},Y=()=>{s.value&&j(),O()};function ie(v,V){return!(v.location!=="InTable"||v.title==="Update"&&(V.status===100||V.status===-1))}return(v,V)=>{const S=e.resolveComponent("a-space"),_=e.resolveComponent("a-col"),p=e.resolveComponent("a-button"),I=e.resolveComponent("a-row"),h=e.resolveComponent("a-card"),M=e.resolveComponent("a-tab-pane"),N=e.resolveComponent("a-tabs"),G=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",Ho,[e.createVNode(se,{title:s.value?.banner.title??"",subTitle:s.value?.banner.subTitle??"",email:B()},null,8,["title","subTitle","email"]),e.createVNode(h,null,{default:e.withCtx(()=>[e.createElementVNode("div",Ko,[V[0]||(V[0]=e.createElementVNode("h3",null,"Search Conditions",-1)),e.createVNode(S,{size:"medium"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,E=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:E.title},[E.location==="InOperation"?(e.openBlock(),e.createBlock(ee,{key:0,config:E,onClick:A},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))]),_:1})]),e.createVNode(I,{gutter:[24,20]},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,E=>(e.openBlock(),e.createBlock(_,{key:E.fieldKey,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(we,{name:E.fieldKey,config:E.fieldConfig,modelValue:C.value[E.fieldKey].value,"onUpdate:modelValue":R=>C.value[E.fieldKey].value=R,class:"form-field"},null,8,["name","config","modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),e.createVNode(_,{span:6,class:"search-col form-buttons"},{default:e.withCtx(()=>[e.createVNode(S,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(p,{type:"primary",size:"medium",onClick:O},{default:e.withCtx(()=>V[1]||(V[1]=[e.createTextVNode(" Search ",-1)])),_:1,__:[1]}),e.createVNode(p,{size:"medium",onClick:Y},{default:e.withCtx(()=>V[2]||(V[2]=[e.createTextVNode(" Reset ",-1)])),_:1,__:[2]})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(N,{size:"large",onTabClick:f},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value?.tabs,E=>(e.openBlock(),e.createBlock(M,{key:E.key,title:E.title},null,8,["title"]))),128))]),_:1}),e.createVNode(G,{columns:w.value,data:u.value,stripe:"",border:"",pagination:{current:c.current,total:c.total,pageSize:c.pageSize,showTotal:c.showTotal,showPageSize:c.showPageSize,showJumper:!0,pageSizeOptions:[10,20,50,100]},loading:m.value,size:"medium",scroll:i.value,onPageChange:K,onPageSizeChange:z},{optional:e.withCtx(({record:E})=>[e.createVNode(S,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,R=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:R.title},[ie(R,E)?(e.openBlock(),e.createBlock(ee,{key:0,config:R,size:"small",onClick:(...D)=>W(...D,E.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}}}),Pe=Q(jo,[["__scopeId","data-v-7ed94b4d"]]),zo={install(t,o={}){o.config&&nt(o.config),o.router&&t.provide(ke,o.router),o.pinia&&t.provide(Ie,o.pinia),o.useBpmStore&&t.provide(Le,o.useBpmStore),o.useSvrStore&&t.provide(Ue,o.useSvrStore),o.triggers&&t.provide(Ae,o.triggers),o.customComps&&t.provide(Me,o.customComps),t.component("CreateView",Fe),t.component("UpdateView",De),t.component("DetailView",Re),t.component("ListView",Pe)}};exports.CreateView=Fe;exports.DetailView=Re;exports.ListView=Pe;exports.PiniaKey=Ie;exports.RouterKey=ke;exports.UpdateView=De;exports.default=zo;
1
+ "use strict";var Ke=Object.create;var he=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Ge=Object.prototype.hasOwnProperty;var We=(t,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of ze(o))!Ge.call(t,a)&&a!==r&&he(t,a,{get:()=>o[a],enumerable:!(n=je(o,a))||n.enumerable});return t};var qe=(t,o,r)=>(r=t!=null?Ke(Oe(t)):{},We(o||!t||!t.__esModule?he(r,"default",{value:t,enumerable:!0}):r,t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Ye=require("axios"),Je=require("pinia"),Xe=require("@arco-design/web-vue"),Qe=require("vue-router"),Ze=Je.defineStore("main",()=>({token:e.ref(void 0)})),et=async t=>new Promise(o=>setTimeout(o,t)),tt=async(t,o,r,n=void 0)=>{if(t[o]===void 0)try{t[o]=null,t[o]=await r()||n}catch(a){console.error(a),t[o]=void 0}for(;t[o]===null;)await et(100);return t[o]},Z=t=>{const o=`0${t}`;return o.substring(o.length-2)},oe=(t,o="yyyy-MM-dd hh:mm:ss")=>{if(!t||typeof t=="string"&&t.length===0)return"";try{const r=new Date(t),n=[["yyyy",r.getFullYear()],["yy",r.getFullYear().toString().substring(2)],["MM",Z(r.getMonth()+1)],["M",r.getMonth()+1],["dd",Z(r.getDate())],["d",r.getDate()],["hh",Z(r.getHours())],["h",r.getHours()],["mm",Z(r.getMinutes())],["m",r.getMinutes()],["ss",Z(r.getSeconds())],["s",r.getSeconds()]];for(const[a,d]of n)o=o.replace(a,d);return o}catch{return t.toLocaleString()}},ot=(t,o)=>{let r;t instanceof Blob?r=t:r=new Blob([t]);const n=document.createElement("a"),a=window.URL.createObjectURL(r);n.href=a,n.download=o,n.click(),window.URL.revokeObjectURL(a)};let fe={};function nt(t){fe={...fe,...t}}function ge(){return fe}function xe(){const t=ge();return{apiBase:t.apiBase||void 0||"",appSecret:t.appSecret||void 0||""}}function Ne(){const{apiBase:t}=xe();return Ye.create({baseURL:t,timeout:1e4,withCredentials:!0})}const Se=async()=>{const{apiBase:t,appSecret:o}=xe(),r=Ne(),n=Ze();return await tt(n,"token",async()=>{const a=await r.get(`${t}/GenerateToken`,{params:{appid:"bpm",appsecret:o}});return a?.data?.token&&setTimeout(()=>{n.token=void 0},(a.data?.expireSeconds??3600)*1e3),a?.data?.token})},U=async()=>{const t=await Se(),o=Ne();return o.defaults.headers.common.Authorization=`Bearer ${t}`,o},de={CurrentUserEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",CurrentUserPositionCode:t=>t.bpmStore()?.positionCode??888,CurrentDatetime:()=>new Date().toISOString(),ApproverEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",ApproverPositionCode:t=>t.bpmStore()?.positionCode??999,RejectReason:()=>"Test Reject Reason"},F=[];for(let t=0;t<256;++t)F.push((t+256).toString(16).slice(1));function at(t,o=0){return(F[t[o+0]]+F[t[o+1]]+F[t[o+2]]+F[t[o+3]]+"-"+F[t[o+4]]+F[t[o+5]]+"-"+F[t[o+6]]+F[t[o+7]]+"-"+F[t[o+8]]+F[t[o+9]]+"-"+F[t[o+10]]+F[t[o+11]]+F[t[o+12]]+F[t[o+13]]+F[t[o+14]]+F[t[o+15]]).toLowerCase()}let ue;const rt=new Uint8Array(16);function lt(){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),be={randomUUID:st};function $e(t,o,r){if(be.randomUUID&&!t)return be.randomUUID();t=t||{};const n=t.random??t.rng?.()??lt();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=n[6]&15|64,n[8]=n[8]&63|128,at(n)}var P=(t=>(t[t.Submit=0]="Submit",t[t.Link=1]="Link",t))(P||{}),J=(t=>(t[t.Create=0]="Create",t[t.Update=1]="Update",t[t.Details=2]="Details",t[t.List=3]="List",t))(J||{});function it(t,o,r){const n={pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}};return t.__ClassAttributes?.forEach(a=>{if(a.attributeType==="UIPageType")n.pageType=a.Type;else if(a.attributeType==="UIValidationControl")n.globalValidations.push({rule:a.ruleName,errorMessage:a.errorMessage,param:a.ruleParameter,appliesTo:a.propertyNames||["*"]});else if(a.attributeType==="UIControl"){if(a.widget==="Tab"){n.tabs||(n.tabs=[]),n.tabs.push({key:$e(),title:a.title,filters:a.filters?JSON.parse(a.filters):[],order:a.order});return}n.actions||(n.actions=[]),n.actions.push({isSubmit:a.isSubmit,requestUrl:a.requestUrl,redirectUrl:a.redirectUrl,redirectType:a.redirectType,title:a.title,widget:a.widget==="Link"?P.Link:P.Submit,location:a.location,attributeType:a.attributeType,readonly:a.readonly})}else a.attributeType==="Banner"&&(n.banner.title=a.title,n.banner.subTitle=o===0?a.subTitle:ve(a.subTitle,t.workflowId.propertyValue))}),n.tabs&&(n.tabs=n.tabs.sort((a,d)=>a.order-d.order)),Object.entries(t).forEach(([a,d])=>{if(a==="__ClassAttributes"||a==="className"||a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"||o!==3&&a==="workflowId")return;const s={validations:[],triggers:[],isFiltered:!1,dependent:"",operator:""},{attributes:c,propertyValue:l}=d;switch(l){case null:s.modelValue="";break;case void 0:s.modelValue="";break;default:s.modelValue=l;break}a==="onBehalf"&&o===0&&(s.modelValue=de.CurrentUserEmail(r)),o===1&&(a==="directReports"||a==="employeesInTheTeam")&&s.modelValue&&(s.modelValue=Number(s.modelValue)),c?.forEach(i=>{i.order||i.Order?s.order=i.order??i.Order:i.attributeType==="UIControl"?s.widget={...i,column:!0}:i.attributeType==="UIValidationControl"&&o!==3?s.widget?.widget!=="CheckBox"&&s.validations.push(i):i.attributeType==="UIListed"?s.widget={...i,column:!0}:i.attributeType==="UIFiltered"?(s.isFiltered=!0,s.operator=i.operatorType):i.dependentType?s.dependent=de[i.dependentType]?de[i.dependentType](r):"":i.eventType==="Change"&&s.triggers?.push({event:"change",handlerName:i.eventName})}),n.fields[a]=s}),n}const ne=async(t,o,r,n)=>{const d=await(await U()).get(`/General/${o}/${t}/page`,{params:n});return it(d?.data,t,r)},Ee=async(t,o,r)=>(await(await U()).post(`/${o}/${t}/button/List`,null,{params:r}))?.data;async function ct(t,o){const n=await(await U()).post(`/General/${t}/list`,o);return{data:n.data.data,totalCount:n.data.totalCount}}async function dt(t,o,r){return(await(await U()).post(r,o,{params:{className:t}})).data}async function ut(t,o,r,n){const a=await U(),d=ve(n,o);return(await a.put(d,r))?.data}function ve(t,o){return t.replace(/{WorkflowId}/g,o)}function pt(t,o){return t.replace(/{ApproverEmail}/g,encodeURIComponent(o))}function mt(t,o){return t.replace(/{WorkFlowReason}/g,encodeURIComponent(o))}function ft(t,o){return t.replace(/{Status}/g,o)}function gt(t,o){return t.replace(/{IfTriggerGlobal_RandP_Approval}/g,o)}function vt(t,o){return t.replace(/{ClassName}/g,encodeURIComponent(o))}async function wt(t,o,r,n,a,d,s,c){const l=await U();let i=ve(d,o);return i=pt(i,r),i=mt(i,n),i=ft(i,s),i=gt(i,c),i=vt(i,t),(await l.put(i,a))?.data}async function kt(t,o){const a=(await(await U()).get(t,{params:{value:o}}))?.data;return Object.entries(a).map(([d,s])=>({value:d,label:s}))}async function _t(t,o){return(await(await U()).get(`/General/${t}/${o}/process`))?.data}function yt(t){return{uid:t.id??$e(),name:t.attachmentName??"unknown",url:t.attachmentKey??""}}async function Te(t,o){return(await(await U()).get(`/General/${t}/${o}/upload/get`))?.data.reduce((d,s)=>{const{category:c}=s;return d[c]||(d[c]=[]),d[c].push(yt(s)),d},{})}async function ht(t,o){return(await U()).post(`/General/${t}/${o}/delete/attachment`)}async function bt(){const o=await(await U()).get("/Grading/dropdown/approvers");return Object.entries(o?.data).map(([r,n])=>({label:r,value:n}))}async function Ct(t,o){return await(await U()).post(`Grading/AssignComments/${t}/${encodeURIComponent(o)}`)}async function Vt(t,o,r){return await(await U()).post(`Grading/AddComments/${t}/${encodeURIComponent(o)}`,r,{headers:{"Content-Type":"application/json;charset=UTF-8"}})}async function Ce(t){return(await(await U()).get(`Grading/GetComments/${t}`))?.data}async function pe(t){return(await(await U()).get(`Grading/GetAssociator/${t}`))?.data}async function Bt(t){return await(await U()).delete(`Grading/DeleteAssociator/${t}`)}async function xt(t,o=null){const n=await(await U()).post(t,o,{responseType:"blob"});ot(n?.data,"WorkflowData.xlsx")}const X=(t,o)=>{let r="";return{res:t.every(a=>{const d=Nt(a,o);return d||(r=a.errorMessage),d}),errorMessages:r}},Nt=(t,o)=>{const{ruleName:r,ruleParameter:n}=t;return St[r](n,o)},St={Regex:(t,o)=>new RegExp(t).test(o),Required:(t,o)=>!!o},Ve=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=i=>X(n.validations,i),c=i=>{a("input",i)},l=i=>{const g=s(i);a("error",g.res?"":g.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(u=>{u.event==="change"&&a(u.event,u.handlerName,i)})};return o({validate(){const i=s(n.modelValue);return a("error",i.res?"":i.errorMessages),i.res}}),(i,g)=>{const u=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(u,{modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=w=>d.value=w),"allow-clear":"",disabled:n.readonly||n.config.Readonly,onInput:c,onChange:l},null,8,["modelValue","disabled"])}}}),$t=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=e.ref(100),c=e.ref(1);e.onMounted(()=>{n.validations&&n.validations.forEach(u=>{u.ruleName==="Max"&&(s.value=u.ruleParameter),u.ruleName==="Min"&&(c.value=u.ruleParameter)})});const l=u=>X(n.validations,u),i=u=>{a("input",u)},g=u=>{const w=l(u);a("error",w.res?"":w.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(b=>{b.event==="change"&&a(b.event,b.handlerName,u)})};return o({validate(){const u=l(n.modelValue);return a("error",u.res?"":u.errorMessages),u.res}}),(u,w)=>{const b=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(b,{modelValue:d.value,"onUpdate:modelValue":w[0]||(w[0]=m=>d.value=m),clearable:"",disabled:n.readonly,min:c.value,onInput:i,onChange:g},null,8,["modelValue","disabled","min"])}}}),Be=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.ref(!1),s=e.ref(n.config.options??[]),c=e.useModel(t,"modelValue"),l=u=>X(n.validations,u);e.computed(()=>{const u={};return n.triggers&&n.triggers.length>0&&n.triggers.forEach(w=>{u[w.event]=b=>{a(w.event,w.handlerName,b);const m=l(b);a("error",m.res?"":m.errorMessages)}}),u});const i=async()=>{n.config.dataSourceProvider&&(s.value=await kt(n.config.dataSourceProvider))};e.onMounted(i);const g=u=>{a("update:modelValue",u);const w=l(u);a("error",w.res?"":w.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(b=>{b.event==="change"&&a(b.event,b.handlerName,u)})};return o({validate(){const u=l(n.modelValue);return a("error",u.res?"":u.errorMessages),u.res}}),(u,w)=>{const b=e.resolveComponent("AOption"),m=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(m,{"allow-clear":"",modelValue:c.value,"onUpdate:modelValue":w[0]||(w[0]=y=>c.value=y),loading:d.value,"filter-option":!0,"allow-search":!0,disabled:u.config.readonly,onChange:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,y=>(e.openBlock(),e.createBlock(b,{key:y.value,value:y.value,label:y.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading","disabled"])}}}),Et=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(t,{expose:o,emit:r}){const n=t,a=r,d=e.ref(n.config.options??[]),s=l=>{a("update:modelValue",l),a("change",l)};e.onMounted(async()=>{if(n.config){const l=n.config.dataSourceProvider;if(l){const g=await(await U()).get(l);d.value=g.data}}});const c={value:"key",label:"value"};return o({validate(){return!0}}),(l,i)=>{const g=e.resolveComponent("ACascader"),u=e.resolveComponent("ASpace");return e.openBlock(),e.createBlock(u,{direction:"vertical",size:"large"},{default:e.withCtx(()=>[e.createVNode(g,{"field-names":c,"model-value":l.modelValue,options:d.value,style:{width:"320px"},placeholder:"Please select ...",onChange:s},null,8,["model-value","options"])]),_:1})}}}),Tt=e.defineComponent({__name:"FileUpload",props:{className:{},fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:r}){const n=t,a=r,d=e.ref({});e.onMounted(async()=>{const m=await Se();d.value={Authorization:`Bearer ${m}`}});const s=m=>X(n.validations,m),l=ge().apiBase,i=e.ref(null),g=e.ref("");function u(m,y,L){return m.replace(/{WorkflowId}/g,y).replace(/{ClassName}/g,L)}const w=e.computed(()=>{if(n.config.uploadURL){const m=l+n.config.uploadURL;return u(m,g.value,n.className)}return""});function b(m){const{file:y,name:L}=m,H=L??y.name;return new Promise((K,z)=>{Xe.Modal.confirm({title:"Confirm Delete",content:`Are you sure you want to delete ${H}?`,async onOk(){if(m.status!=="init"&&n.config.removeFile)return await n.config.removeFile(m.uid),K(!0);K(!0)},onCancel:()=>z("cancel")})})}return o({submit(m){i.value&&(n.config.uploadURL&&(g.value=m),e.nextTick(()=>{i.value.submit()}))},validate(){const m=s(n.modelValue);return a("error",m.res?"":m.errorMessages),m.res}}),(m,y)=>{const L=e.resolveComponent("a-button"),H=e.resolveComponent("a-upload");return e.openBlock(),e.createBlock(H,{ref_key:"uploadRef",ref:i,"default-file-list":n.config.files,action:w.value,limit:n.config.allowedNumber,"auto-upload":!1,name:"files",headers:d.value,onBeforeRemove:b},{"start-icon":e.withCtx(()=>y[0]||(y[0]=[])),"upload-button":e.withCtx(()=>[e.createVNode(L,{type:"primary"},{default:e.withCtx(()=>y[1]||(y[1]=[e.createTextVNode("Select File",-1)])),_:1,__:[1]})]),_:1},8,["default-file-list","action","limit","headers"])}}}),At=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:r}){const n=t,a=r,d=l=>X(n.validations,l),s=l=>{a("update:modelValue",l),a("input",l)},c=l=>{a("update:modelValue",l);const i=d(l);a("error",i.res?"":i.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(g=>{g.event==="change"&&a(g.event,g.handlerName,l)})};return o({validate(){const l=d(n.modelValue);return a("error",l.res?"":l.errorMessages),l.res}}),(l,i)=>{const g=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(g,{"model-value":n.modelValue,placeholder:"Please enter something","allow-clear":"",disabled:n.readonly,onInput:s,onChange:c},null,8,["model-value","disabled"])}}}),It=e.defineComponent({__name:"CheckBox",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=l=>X(n.validations,l),c=l=>{const i=s(l);a("error",i.res?"":i.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(g=>{g.event==="change"&&a(g.event,g.handlerName,l)})};return o({validate(){const l=s(n.modelValue);return a("error",l.res?"":l.errorMessages),l.res}}),(l,i)=>{const g=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(g,{modelValue:d.value,"onUpdate:modelValue":i[0]||(i[0]=u=>d.value=u),clearable:"",disabled:n.readonly||n.config.Readonly,onChange:c},{default:e.withCtx(()=>i[1]||(i[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}}}),Lt={class:"title"},Ut={key:0,class:"required"},Ft={key:0,class:"err-msg"},Dt=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(t,{expose:o,emit:r}){const n=t,a=r,d=e.useModel(t,"modelValue"),s=e.useTemplateRef("widgetRef"),c=e.computed(()=>{switch(n.config?.widget?.widget){case"TextBox":return Ve;case"Number":return $t;case"SelectList":return Be;case"Cascade":return Et;case"File":return Tt;case"TextArea":return At;case"DropDown":return Be;case"CheckBox":return It;default:return Ve}}),l=e.ref(""),i=w=>{l.value=w},g=(w,b)=>{a("change",w,b)};function u(){return n.config?.widget?.widget==="File"}return o({isFileUpload(){return n.config?.widget?.widget==="File"},submit(w){u()&&s.value.submit(w)},validate(){return s.value?.validate()},getCompName(){return n?.config?.widget?.title}}),(w,b)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Lt,[e.createTextVNode(e.toDisplayString(n?.config?.widget?.title)+" ",1),n.config.validations.length?(e.openBlock(),e.createElementBlock("span",Ut,"*")):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{ref_key:"widgetRef",ref:s,modelValue:d.value,"onUpdate:modelValue":b[0]||(b[0]=m=>d.value=m),"field-key":n.fieldKey,config:n.config.widget,validations:n.config.validations,triggers:n.config.triggers,"class-name":n.className,onError:i,onChange:g},null,40,["modelValue","field-key","config","validations","triggers","class-name"])),l.value.length>0?(e.openBlock(),e.createElementBlock("div",Ft,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)])]))}}),Q=(t,o)=>{const r=t.__vccOpts||t;for(const[n,a]of o)r[n]=a;return r},we=Q(Dt,[["__scopeId","data-v-1022c8cb"]]),Mt=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(t,{emit:o}){const r=t,n=o;function a(){n("click",r.url,r.redirectType)}return(d,s)=>{const c=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(c,{loading:d.loading,type:"primary",onClick:a},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3},8,["loading"])}}}),Rt=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(t,{emit:o}){const r=t,n=o;function a(){n("click",r.url,r.redirectType)}return(d,s)=>{const c=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(c,{onClick:a},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3})}}}),ee=e.defineComponent({__name:"index",props:{config:{},loading:{type:Boolean}},emits:["click"],setup(t,{emit:o}){const r=t,n=o;function a(l,i){n("click",r.config.widget,l,i,r.config.title)}const d=e.computed(()=>{switch(r.config.location){case"InOperation":return Mt;case"InTable":default:return Rt}}),s=e.computed(()=>r.config.widget===P.Submit?r.config.requestUrl??"":r.config.widget===P.Link?r.config.redirectUrl??"":""),c=e.computed(()=>r.config.redirectType??"Details");return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{url:s.value,"redirect-type":c.value,loading:l.loading,onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.config.title),1)]),_:1},8,["url","redirect-type","loading"]))}}),ke=Symbol("library-router");function ae(){const t=e.inject(ke,null);return t||Qe.useRouter()}const Ae=Symbol("library-triggers");function _e(){const t=e.inject(Ae,null);return t||{}}const Ie=Symbol("library-pinia"),Le=Symbol("library-bpmStore"),Ue=Symbol("library-svrStore");function re(){return e.inject(Le,null)}function le(){return e.inject(Ue,null)}const Pt={class:"top-bar"},Ht={class:"banner-info"},Kt={class:"page-title"},jt={class:"page-subtitle"},zt={class:"avatar-wrapper"},Ot={class:"user-email"},Gt=e.defineComponent({__name:"TopBar",props:{title:{},subTitle:{},email:{}},setup(t){return(o,r)=>{const n=e.resolveComponent("a-avatar"),a=e.resolveComponent("a-popover");return e.openBlock(),e.createElementBlock("div",Pt,[e.createElementVNode("div",Ht,[e.createElementVNode("div",Kt,e.toDisplayString(o.title),1),e.createElementVNode("div",jt,e.toDisplayString(o.subTitle),1)]),e.createElementVNode("div",zt,[e.createVNode(a,{trigger:"click"},{content:e.withCtx(()=>[e.createElementVNode("div",Ot,e.toDisplayString(o.email),1)]),default:e.withCtx(()=>[e.createVNode(n,{size:48,autoFixFontSize:"",style:{cursor:"pointer",background:"#165DFF",color:"#fff"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.email.charAt(0).toUpperCase()),1)]),_:1})]),_:1})])])}}}),se=Q(Gt,[["__scopeId","data-v-c0457235"]]);function ye(t){const o=ge(),r=[];if(o.fieldsGroup){o.fieldsGroup.forEach(d=>{const s=d.keys.map(c=>t.find(l=>l.fieldKey===c)).filter(Boolean);s.length&&r.push({name:d.name,fields:s})});const n=o.fieldsGroup.flatMap(d=>d.keys),a=t.filter(d=>!n.includes(d.fieldKey));return a.length&&r.push({name:"未分组字段",fields:a}),console.log("🚀 ~ genFieldsGroup ~ groups:",r),r}}const Wt={class:"page-container"},qt={class:"page-body"},Yt={class:"form-card"},Jt={class:"form-fields-vertical"},Xt={class:"form-fields"},Qt={key:0,class:"form-content"},Zt={class:"page-footer"},eo={class:"action-container"},to={class:"action-buttons"},oo=e.defineComponent({__name:"CreateView",props:{className:{}},setup(t){const o=re(),r=le(),n=ae(),a=_e(),d=e.useTemplateRef("dataWidgets"),s=e.getCurrentInstance(),c=t,l=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),i=e.ref([]),g=e.ref({});function u(B){return B?Object.entries(B).map(([f,C])=>({fieldKey:f,...C})).filter(f=>f.widget&&f.widget.widget!=="Hidden").filter(f=>!z.value.includes(f.fieldKey)):[]}function w(B){return B?Object.entries(B).filter(([f,C])=>C.dependent).reduce((f,[C,k])=>(f[C]=k.dependent,f),{}):[]}const b=e.computed(()=>l.value?.actions?[...l.value.actions].reverse():[]),m=e.reactive({}),y=e.ref(!1);e.onMounted(async()=>{y.value=!0,l.value=await ne(J.Create,c.className,{svrStore:r,bpmStore:o}),i.value=u(l.value.fields),g.value=w(l.value.fields);for(const B in l.value.fields){if(l.value.fields[B].widget?.widget==="File"){const x=i.value.find(f=>f.fieldKey===B);x&&x.widget&&(x.widget.files=[])}m[B]=l.value.fields[B].modelValue}y.value=!1});function L(){return r()?.userInfo?.email_address??""}async function H(B,x,f,C,k){switch(x){case P.Submit:let $=!0;if(d.value?.forEach(O=>{O?.validate&&(O.validate()||($=!1))}),!$){s?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}y.value=!0;const j=await dt(c.className,{...m,...g.value},f);y.value=!1,d.value?.forEach(O=>{O?.submit&&O.submit(j.toString())}),console.log("🚀 ~ clickHandler ~ res.toString():",j.toString()),s?.appContext.config.globalProperties.$notification.success("create success!"),n.push({name:"Details",params:{workflowId:j.toString()}});break;case P.Link:C==="List"&&n.push({name:"List",params:{className:c.className}});break;default:console.warn("Unknown action type:",x)}}const K=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","jobAttachmentPrevious","positionId"],z=e.ref(K);function W(B,x){a[B]?.(x,z),l.value&&(i.value=u(l.value.fields))}const A=e.computed(()=>ye(i.value));return(B,x)=>{const f=e.resolveComponent("a-card"),C=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(se,{title:l.value.banner.title,subTitle:l.value.banner.subTitle,email:L()},null,8,["title","subTitle","email"]),e.createElementVNode("div",qt,[e.createVNode(C,{loading:y.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Yt,[e.createElementVNode("div",Jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,k=>(e.openBlock(),e.createBlock(f,{key:k.name,title:k.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",Xt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.fields,$=>(e.openBlock(),e.createBlock(we,{key:$.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":$.fieldKey,config:$,"class-name":B.className,modelValue:m[$.fieldKey],"onUpdate:modelValue":j=>m[$.fieldKey]=j,class:"form-field",onChange:W},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),B.$slots.content?(e.openBlock(),e.createElementBlock("div",Qt,[e.renderSlot(B.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Zt,[e.createElementVNode("div",eo,[e.renderSlot(B.$slots,"action",{},void 0,!0),e.createElementVNode("div",to,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,k=>(e.openBlock(),e.createBlock(ee,{key:k.Title,loading:y.value,config:k,class:"action-button",onClick:(...$)=>H(k,...$)},null,8,["loading","config","onClick"]))),128))])])])])}}}),Fe=Q(oo,[["__scopeId","data-v-cc26a7e0"]]),no={class:"page-container"},ao={class:"page-body"},ro={class:"form-card"},lo={class:"form-fields-vertical"},so={class:"form-fields"},io={key:0,class:"form-content"},co={class:"page-footer"},uo={class:"action-container"},po={class:"action-buttons"},mo=e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(t){const o=ae(),r=_e(),n=le(),a=re(),d=e.useTemplateRef("dataWidgets"),s=e.getCurrentInstance(),c=t,l=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),i=e.ref([]),g=e.ref({});function u(A){return A?Object.entries(A).map(([x,f])=>({fieldKey:x,...f})).filter(x=>x.widget&&x.widget.widget!=="Hidden").filter(x=>!K.value.includes(x.fieldKey)):[]}function w(A){return A?Object.entries(A).filter(([x,f])=>f.dependent).reduce((x,[f,C])=>(x[f]=C.dependent,x),{}):[]}const b=e.computed(()=>l.value?.actions?[...l.value.actions].reverse():[]),m=e.reactive({}),y=e.ref(!1);e.onMounted(async()=>{y.value=!0,l.value=await ne(J.Update,c.className,{svrStore:n,bpmStore:a},{workflowId:c.workflowId});const A=await Ee(J.Update,c.className,{workflowId:c.workflowId,email:L()}),B=await Te(c.className,c.workflowId);l.value.actions=l.value.actions?.filter(f=>{const C=A.find(k=>k.button===f.title);return C?C.isShow:!0});const x=l.value.fields.requestType.modelValue;r.Test?.(x,K),i.value=u(l.value.fields),g.value=w(l.value.fields);for(const f in l.value.fields){if(l.value.fields[f].widget?.widget==="File"){const C=i.value.find(k=>k.fieldKey===f);C&&C.widget&&(C.widget.files=B[f]??[],C.widget.removeFile=k=>ht(c.className,k))}m[f]=l.value.fields[f].modelValue}y.value=!1});function L(){return n()?.userInfo?.email_address??""}async function H(A,B,x,f,C){switch(B){case P.Submit:let k=!0;if(d.value?.forEach($=>{$?.validate&&($.validate()||(k=!1))}),!k){s?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}y.value=!0,await ut(c.className,c.workflowId,{...m,...g.value},x),y.value=!1,d.value?.forEach($=>{$?.submit&&$.submit(c.workflowId)}),s?.appContext.config.globalProperties.$notification.success("update success!");break;case P.Link:o.push({name:f,params:{className:c.className}});break;default:console.warn("Unknown action type:",B)}}const K=e.ref([]);function z(A,B){r[A]?.(B,K),l.value&&(i.value=u(l.value.fields))}const W=e.computed(()=>ye(i.value));return(A,B)=>{const x=e.resolveComponent("a-card"),f=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",no,[e.createVNode(se,{title:l.value.banner.title,subTitle:l.value.banner.subTitle,email:L()},null,8,["title","subTitle","email"]),e.createElementVNode("div",ao,[e.createVNode(f,{loading:y.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",ro,[e.createElementVNode("div",lo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,C=>(e.openBlock(),e.createBlock(x,{key:C.name,title:C.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",so,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.fields,k=>(e.openBlock(),e.createBlock(we,{key:k.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":k.fieldKey,config:k,"class-name":A.className,modelValue:m[k.fieldKey],"onUpdate:modelValue":$=>m[k.fieldKey]=$,class:"form-field",onChange:z},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),A.$slots.content?(e.openBlock(),e.createElementBlock("div",io,[e.renderSlot(A.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",co,[e.createElementVNode("div",uo,[e.renderSlot(A.$slots,"action",{},void 0,!0),e.createElementVNode("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,C=>(e.openBlock(),e.createBlock(ee,{key:C.Title,loading:y.value,config:C,class:"action-button",onClick:(...k)=>H(C,...k)},null,8,["loading","config","onClick"]))),128))])])])])}}}),De=Q(mo,[["__scopeId","data-v-1621b609"]]),Me=Symbol("library-custom-comp");function fo(){return e.inject(Me,null)}const go=Symbol("ArcoConfigProvider"),vo="arco",wo="$arco",ko=t=>{var o,r,n;const a=e.getCurrentInstance(),d=e.inject(go,void 0);return`${(n=(r=d?.prefixCls)!=null?r:(o=a?.appContext.config.globalProperties[wo])==null?void 0:o.classPrefix)!=null?n:vo}-${t}`},_o=Object.prototype.toString;function yo(t){return _o.call(t)==="[object Number]"&&t===t}var ho=(t,o)=>{for(const[r,n]of o)t[r]=n;return t};const bo=e.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const r=ko("icon"),n=e.computed(()=>[r,`${r}-download`,{[`${r}-spin`]:t.spin}]),a=e.computed(()=>{const s={};return t.size&&(s.fontSize=yo(t.size)?`${t.size}px`:t.size),t.rotate&&(s.transform=`rotate(${t.rotate}deg)`),s});return{cls:n,innerStyle:a,onClick:s=>{o("click",s)}}}}),Co=["stroke-width","stroke-linecap","stroke-linejoin"];function Vo(t,o,r,n,a,d){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(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...s)=>t.onClick&&t.onClick(...s))},o[1]||(o[1]=[e.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1)]),14,Co)}var me=ho(bo,[["render",Vo]]);const Bo=Object.assign(me,{install:(t,o)=>{var r;const n=(r=o?.iconPrefix)!=null?r:"";t.component(n+me.name,me)}}),xo={class:"page-container"},No={class:"page-body"},So={class:"detail-card"},$o={class:"form-fields-vertical"},Eo={class:"detail-fields"},To={class:"detail-field"},Ao={class:"field-label"},Io={key:1,class:"field-value"},Lo={key:2,class:"detail-field-wrapper"},Uo={class:"detail-field"},Fo={key:0,class:"detail-content"},Do={class:"page-footer"},Mo={class:"action-container"},Ro={class:"action-buttons"},Po=e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(t){const o=le(),r=re(),n=_e(),a=ae(),d=fo(),s=e.getCurrentInstance(),c=t,l=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),i=e.ref([]);function g(_){return _?Object.entries(_).map(([I,h])=>(typeof h.modelValue=="boolean"?h.fieldValue=h.modelValue?"Yes":"No":h.fieldValue=h.modelValue,{fieldKey:I,...h})).filter(I=>I.widget&&I.widget.widget!=="Hidden").filter(I=>!A.value.includes(I.fieldKey)):[]}const u=e.computed(()=>ye(i.value)),w=e.computed(()=>l.value?.actions?[...l.value.actions].reverse():[]),b=e.ref(!0),m=(_,p)=>{const I=_.findIndex(h=>h.isCurrent);return _.map((h,M)=>{const N={id:h.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};N.title=h.workflowProcessApprovers[0]?.name;const G=h.workflowProcessApprovers[h.workflowProcessApprovers.length-1],E=h.workflowHistorys[h.workflowHistorys.length-1],R=E?.workflowHistoryApprovers[E?.workflowHistoryApprovers?.length-1];if(G&&R&&G?.email?.toLowerCase()!==R?.approverEmail?.toLowerCase()&&(N.title=`${R.name}`,N.proxy=`Proxy: ${G.name}`),h.sort>1?N.sub="Approver Role: "+h.nodeName.replace("Submit","").replace("Approve",""):N.sub="Submit Application",h.isCurrent&&p!==-1)N.desc="In Approval",N.status=1;else{const D=h.workflowHistorys[h.workflowHistorys.length-1];if(D&&D.status===100)N.time=oe(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),N.status=2,N.desc="approve success!";else if(D&&D.status===999)N.time=oe(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),N.status=0,N.desc="approve reject!";else if(D)if(N.time=oe(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),h.sort===1)N.status=2,N.desc="";else{const te=D.workflowHistoryApprovers[0];N.status=3,N.desc=te?.reason?`Rejected reason: ${te.reason}`:"Rejected"}else M<I||I===-1?(N.status=0,N.desc="Skipped"):(N.status=0,N.desc="Pending Approval");D&&D.status}return N})},y=e.ref([]),L=e.ref(!1),H=e.ref(!1),K=e.ref(!1),z=e.ref(!1);async function W(){const _=await Ee(J.Details,c.className,{workflowId:c.workflowId,email:f()});l.value.actions=l.value.actions?.filter(p=>{const I=_.find(h=>h.button===p.title);return I?I.isShow:!0}),L.value=_.find(p=>p.button==="IsGlobal")?.isShow??!1,H.value=_.find(p=>p.button==="AssignButton")?.isShow??!1,K.value=_.find(p=>p.button==="AssignList")?.isShow??!1,z.value=_.find(p=>p.button==="AddCommentsButton")?.isShow??!1}const A=e.ref([]);async function B(){b.value=!0,l.value=await ne(J.Details,c.className,{svrStore:o,bpmStore:r},{workflowId:c.workflowId});const _=await Te(c.className,c.workflowId);O.value=await bt(),$.value=await Ce(c.workflowId),Y.value=await pe(c.workflowId),W();const p=l.value.fields.requestType.modelValue;n.Test?.(p,A),i.value=g(l.value.fields);for(const h in l.value.fields)if(l.value.fields[h].widget?.widget==="File"){const M=i.value.find(N=>N.fieldKey===h);M&&M.widget&&(M.widget.files=_[h]??[])}const I=await _t(c.className,c.workflowId);y.value=m(I,0),b.value=!1}e.onMounted(B);async function x(_,p){return n[_]?.(p)}function f(){return o()?.userInfo?.email_address??""}async function C(_,p,I,h,M){try{switch(p){case P.Submit:const{reason:N,ifGlobal:G}=await x(M,{isGlobal:L.value});b.value=!0;const E=M==="Approve"?"100":"-1";await wt(c.className,c.workflowId,f(),N,[Number(c.workflowId)],I,E,G),b.value=!1;const R=M==="Approve"?"approve success!":"approve reject!";s?.appContext.config.globalProperties.$notification.success(R),B();break;case P.Link:h==="List"&&a.push({name:"List",params:{className:c.className}});break;default:console.warn("Unknown action type:",p)}}catch{}}const k=e.ref(""),$=e.ref([]),j=e.ref(""),O=e.ref([]),Y=e.ref([]);async function ie(){if(!j.value){s?.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 Ct(c.workflowId,j.value),Y.value=await pe(c.workflowId),W(),s?.appContext.config.globalProperties.$notification.success("Assign Approver clicked!")}catch(_){if(_.status===409){s?.appContext.config.globalProperties.$notification.error("This user is already an associator");return}s?.appContext.config.globalProperties.$notification.error("Failed to assign approver")}}async function v(_,p){const{Modal:I}=await import("@arco-design/web-vue");return new Promise((h,M)=>{I.confirm({title:_,content:p,okText:"OK",cancelText:"Cancel",onOk:()=>h(!0),onCancel:()=>M()})})}async function V(_){try{await v("Confirm Delete Associator","Do you want to delete this associator?")}catch{return}try{await Bt(String(_)),Y.value=await pe(c.workflowId),s?.appContext.config.globalProperties.$notification.success("Associator deleted successfully!")}catch{s?.appContext.config.globalProperties.$notification.error("Failed to delete associator")}}async function S(){if(!k.value.trim()){s?.appContext.config.globalProperties.$message.error("Comment cannot be empty");return}await Vt(c.workflowId,f(),k.value),k.value="",$.value=await Ce(c.workflowId),s?.appContext.config.globalProperties.$notification.success("Add Comment clicked!")}return(_,p)=>{const I=e.resolveComponent("a-link"),h=e.resolveComponent("a-space"),M=e.resolveComponent("a-card"),N=e.resolveComponent("a-option"),G=e.resolveComponent("a-select"),E=e.resolveComponent("a-button"),R=e.resolveComponent("a-list-item"),D=e.resolveComponent("a-list"),te=e.resolveComponent("a-textarea"),He=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",xo,[e.createVNode(se,{title:l.value.banner.title,subTitle:l.value.banner.subTitle,email:f()},null,8,["title","subTitle","email"]),e.createElementVNode("div",No,[e.createVNode(He,{loading:b.value,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",So,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d).Steps),{steps:y.value},null,8,["steps"])),e.createElementVNode("div",$o,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,T=>(e.openBlock(),e.createBlock(M,{key:T.name,title:T.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",Eo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.fields,q=>(e.openBlock(),e.createElementBlock("div",{key:q.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",To,[e.createElementVNode("div",Ao,e.toDisplayString(q.widget?.title),1),q.widget?.widget==="File"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(q.widget.files,ce=>(e.openBlock(),e.createElementBlock("div",{class:"field-value",key:ce.id},[e.createVNode(h,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ce.name)+" ",1),e.createVNode(I,{href:ce.url,target:"_blank"},{default:e.withCtx(()=>[e.createVNode(e.unref(Bo),{style:{color:"#7A00E6"}})]),_:2},1032,["href"])]),_:2},1024)]))),128)):(e.openBlock(),e.createElementBlock("div",Io,e.toDisplayString(q.fieldValue),1))])]))),128))])]),_:2},1032,["title"]))),128)),H.value?(e.openBlock(),e.createBlock(h,{key:0},{default:e.withCtx(()=>[e.createVNode(G,{modelValue:j.value,"onUpdate:modelValue":p[0]||(p[0]=T=>j.value=T)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,T=>(e.openBlock(),e.createBlock(N,{key:T.value,value:T.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(E,{type:"primary",onClick:ie},{default:e.withCtx(()=>p[2]||(p[2]=[e.createTextVNode("Assign for comment",-1)])),_:1,__:[2]})]),_:1})):e.createCommentVNode("",!0),K.value?(e.openBlock(),e.createBlock(D,{key:1},{header:e.withCtx(()=>p[3]||(p[3]=[e.createTextVNode(" Associators ",-1)])),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Y.value,T=>(e.openBlock(),e.createBlock(R,{key:T.id},{actions:e.withCtx(()=>[e.createVNode(E,{type:"text",status:"danger",onClick:q=>V(T.id)},{default:e.withCtx(()=>p[4]||(p[4]=[e.createTextVNode(" Delete ",-1)])),_:2,__:[4]},1032,["onClick"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(T.associator),1)]),_:2},1024))),128))]),_:1})):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createElementBlock("div",Lo,[e.createElementVNode("div",Uo,[p[6]||(p[6]=e.createElementVNode("div",{class:"field-label"},"Comment",-1)),e.createVNode(te,{modelValue:k.value,"onUpdate:modelValue":p[1]||(p[1]=T=>k.value=T)},null,8,["modelValue"]),e.createVNode(E,{type:"primary",onClick:S},{default:e.withCtx(()=>p[5]||(p[5]=[e.createTextVNode("Add Comment",-1)])),_:1,__:[5]})])])):e.createCommentVNode("",!0),$.value.length?(e.openBlock(),e.createBlock(D,{key:3},{header:e.withCtx(()=>p[7]||(p[7]=[e.createTextVNode(" Comments History ",-1)])),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,T=>(e.openBlock(),e.createBlock(R,{key:T.associator},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.associator)+": "+e.toDisplayString(T.comments)+" ("+e.toDisplayString(e.unref(oe)(T.createdAt))+") ",1)]),_:2},1024))),128))]),_:1})):e.createCommentVNode("",!0)]),_.$slots.content?(e.openBlock(),e.createElementBlock("div",Fo,[e.renderSlot(_.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Do,[e.createElementVNode("div",Mo,[e.renderSlot(_.$slots,"action",{},void 0,!0),e.createElementVNode("div",Ro,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,T=>(e.openBlock(),e.createBlock(ee,{key:T.Title,loading:b.value,config:T,class:"action-button",onClick:(...q)=>C(T,...q)},null,8,["loading","config","onClick"]))),128))])])])])}}}),Re=Q(Po,[["__scopeId","data-v-50190ec4"]]),Ho={class:"list-container"},Ko={class:"query-title"},jo=e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(t){const o=le(),r=re(),n=ae(),a=e.getCurrentInstance(),d=t,s=e.ref(),c=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function l(){const v=Object.entries(C.value).filter(([,{value:V}])=>V&&V!=="").map(([V,{value:S,operator:_}])=>({key:V,value:S,operator:_}));return{pageNumber:c.current,pageSize:c.pageSize,filters:[...c.filters,...v],sorts:[{key:"status",type:0}]}}const i=e.computed(()=>({x:w.value.length*150+250})),g=v=>{const V=Object.entries(v).filter(([,S])=>S.widget?.column).map(([S,_],p)=>({title:_.widget.title,dataIndex:S.charAt(0).toLowerCase()+S.slice(1),order:_.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((S,_)=>S.order-_.order);V.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),w.value=V,console.log("🚀 ~ mapColumns ~ _columns.value:",w.value)},u=e.ref([]),w=e.ref([]),b=e.ref(!0),m=e.ref(!0),y=e.ref(),L=async()=>{m.value=!0;const v=await ct(d.className,l());u.value=v.data,console.log("🚀 ~ loadData ~ _data.value:",u.value),c.total=v.totalCount,m.value=!1},H=e.ref(!1);e.onMounted(async()=>{b.value=!0,s.value=await ne(3,d.className,{svrStore:o,bpmStore:r}),g(s.value.fields),$(s.value.fields),j(),f(s.value?.tabs?.[0]?.key||""),y.value=s.value.actions,b.value=!1,H.value=!0}),e.onActivated(()=>{H.value&&L()});const K=v=>{c.current=v,L()},z=v=>{c.pageSize=v,L()};function W(v,V,S,_,p){switch(v){case P.Link:n.push({name:S,params:{workflowId:p}});break;default:console.warn("Unknown action type:",v)}}function A(v,V,S){switch(v){case P.Submit:xt(V,{filters:[{key:"approverList",value:"jessica.zhan@sanofi.com",operator:2}]}),a?.appContext.config.globalProperties.$notification.success("submit success!");break;case P.Link:n.push({name:S});break;default:console.warn("Unknown action type:",v)}}function B(){return o()?.userInfo?.email_address??""}function x(v,V){return typeof v!="string"||v.indexOf("{currentUserEmail}")===-1?v:v.replace(/{currentUserEmail}/g,V)}function f(v){const V=s.value?.tabs?.find(S=>S.key===v)?.filters;c.filters=V?.map(S=>({...S,value:x(S.value,B())}))||[],L()}const C=e.ref({}),k=e.ref([]);function $(v){if(!v)return[];k.value=Object.entries(v).filter(([,V])=>V.isFiltered).map(([V,S])=>({fieldKey:V,fieldConfig:S}))}const j=()=>{const v={};k.value.forEach(({fieldKey:V,fieldConfig:S})=>{v[V]={},v[V].value=S.modelValue,v[V].operator=S.operator}),C.value=v},O=()=>{c.current=1,L()},Y=()=>{s.value&&j(),O()};function ie(v,V){return!(v.location!=="InTable"||v.title==="Update"&&(V.status===100||V.status===-1))}return(v,V)=>{const S=e.resolveComponent("a-space"),_=e.resolveComponent("a-col"),p=e.resolveComponent("a-button"),I=e.resolveComponent("a-row"),h=e.resolveComponent("a-card"),M=e.resolveComponent("a-tab-pane"),N=e.resolveComponent("a-tabs"),G=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",Ho,[e.createVNode(se,{title:s.value?.banner.title??"",subTitle:s.value?.banner.subTitle??"",email:B()},null,8,["title","subTitle","email"]),e.createVNode(h,null,{default:e.withCtx(()=>[e.createElementVNode("div",Ko,[V[0]||(V[0]=e.createElementVNode("h3",null,"Search Conditions",-1)),e.createVNode(S,{size:"medium"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,E=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:E.title},[E.location==="InOperation"?(e.openBlock(),e.createBlock(ee,{key:0,config:E,onClick:A},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))]),_:1})]),e.createVNode(I,{gutter:[24,20]},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,E=>(e.openBlock(),e.createBlock(_,{key:E.fieldKey,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(we,{name:E.fieldKey,config:E.fieldConfig,modelValue:C.value[E.fieldKey].value,"onUpdate:modelValue":R=>C.value[E.fieldKey].value=R,class:"form-field"},null,8,["name","config","modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),e.createVNode(_,{span:6,class:"search-col form-buttons"},{default:e.withCtx(()=>[e.createVNode(S,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(p,{type:"primary",size:"medium",onClick:O},{default:e.withCtx(()=>V[1]||(V[1]=[e.createTextVNode(" Search ",-1)])),_:1,__:[1]}),e.createVNode(p,{size:"medium",onClick:Y},{default:e.withCtx(()=>V[2]||(V[2]=[e.createTextVNode(" Reset ",-1)])),_:1,__:[2]})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(N,{size:"large",onTabClick:f},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value?.tabs,E=>(e.openBlock(),e.createBlock(M,{key:E.key,title:E.title},null,8,["title"]))),128))]),_:1}),e.createVNode(G,{columns:w.value,data:u.value,stripe:"",border:"",pagination:{current:c.current,total:c.total,pageSize:c.pageSize,showTotal:c.showTotal,showPageSize:c.showPageSize,showJumper:!0,pageSizeOptions:[10,20,50,100]},loading:m.value,size:"medium",scroll:i.value,onPageChange:K,onPageSizeChange:z},{optional:e.withCtx(({record:E})=>[e.createVNode(S,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,R=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:R.title},[ie(R,E)?(e.openBlock(),e.createBlock(ee,{key:0,config:R,size:"small",onClick:(...D)=>W(...D,E.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}}}),Pe=Q(jo,[["__scopeId","data-v-7ed94b4d"]]),zo={install(t,o={}){o.config&&nt(o.config),o.router&&t.provide(ke,o.router),o.pinia&&t.provide(Ie,o.pinia),o.useBpmStore&&t.provide(Le,o.useBpmStore),o.useSvrStore&&t.provide(Ue,o.useSvrStore),o.triggers&&t.provide(Ae,o.triggers),o.customComps&&t.provide(Me,o.customComps),t.component("CreateView",Fe),t.component("UpdateView",De),t.component("DetailView",Re),t.component("ListView",Pe)}};exports.CreateView=Fe;exports.DetailView=Re;exports.ListView=Pe;exports.PiniaKey=Ie;exports.RouterKey=ke;exports.UpdateView=De;exports.default=zo;
2
2
  //# sourceMappingURL=index.cjs.js.map