@agile-team/mach-report 2.9.1 → 2.11.0
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/README.md +11 -7
- package/dist/ExcelBindingWizard-CjIiVox-.cjs +1 -0
- package/dist/ExcelBindingWizard-Dxm-K5HL.js +1240 -0
- package/dist/ParamEditor-D-Hf5xfO.cjs +1 -0
- package/dist/ParamEditor-DRGxzxeO.js +381 -0
- package/dist/ReportBatchPanel-BYgg0EDB.cjs +1 -0
- package/dist/ReportBatchPanel-Bby5yLzU.js +287 -0
- package/dist/ReportPreview-DWXROHBP.cjs +6 -0
- package/dist/ReportPreview-DiNXhQI0.js +4138 -0
- package/dist/ReportTemplateLibrary-C6CO7YCT.cjs +1 -0
- package/dist/ReportTemplateLibrary-DfzDXRvr.js +260 -0
- package/dist/RuleEditor-C2QsOHOs.cjs +1 -0
- package/dist/RuleEditor-D9wQHrkf.js +2024 -0
- package/dist/TemplateReviewPanel-BKofGrV9.js +222 -0
- package/dist/TemplateReviewPanel-DwtOcLue.cjs +1 -0
- package/dist/analytics.cjs +1 -1
- package/dist/analytics.d.cts +4 -0
- package/dist/analytics.d.ts +4 -0
- package/dist/analytics.js +40 -39
- package/dist/{assets-ahTRUXRk.cjs → assets-Bu6UohJx.cjs} +1 -1
- package/dist/{assets-DDsfEi8R.js → assets-DegqDNqY.js} +1 -1
- package/dist/batch-Bt3Fd27Z.cjs +1 -0
- package/dist/batch-mRqhhhjt.js +364 -0
- package/dist/{capabilities-Cm9hZ3uV.js → capabilities-CK_7hizc.js} +16 -16
- package/dist/capabilities-CsZ-pNHR.cjs +1 -0
- package/dist/computed-Bvk0W15F.js +521 -0
- package/dist/computed-CGV2a809.cjs +1 -0
- package/dist/config-B612mw0x.js +525 -0
- package/dist/config-BRoLo2oj.cjs +1 -0
- package/dist/designer.cjs +2 -2
- package/dist/designer.d.cts +695 -50
- package/dist/designer.d.ts +695 -50
- package/dist/designer.js +2213 -1748
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +205 -6
- package/dist/index.d.ts +205 -6
- package/dist/index.js +808 -1033
- package/dist/injection-keys-Db_DyLkm.cjs +1 -0
- package/dist/injection-keys-e85udZCp.js +7 -0
- package/dist/list-cell-BuYn4tGF.cjs +1 -0
- package/dist/list-cell-ClFra1zS.js +173 -0
- package/dist/matrix-DVyWiYsd.cjs +1 -0
- package/dist/matrix-yZsGnldA.js +227 -0
- package/dist/param-validation-BlHHXs6u.js +153 -0
- package/dist/param-validation-DCK039V1.cjs +1 -0
- package/dist/pdf.cjs +49 -49
- package/dist/pdf.d.cts +31 -1
- package/dist/pdf.d.ts +31 -1
- package/dist/pdf.js +4797 -4650
- package/dist/plugin-BDTU4D94.cjs +1 -0
- package/dist/plugin-Cd5G2QQn.js +22 -0
- package/dist/region-binding-workflow-CXDmt9Bs.js +977 -0
- package/dist/region-binding-workflow-DhQvu1co.cjs +3 -0
- package/dist/{report-params-B_VCihAh.js → report-params-B44imUd4.js} +1 -1
- package/dist/{report-params-CjWrjPl6.cjs → report-params-SJfhKgaX.cjs} +1 -1
- package/dist/server/node.d.cts +48 -5
- package/dist/server/node.d.ts +48 -5
- package/dist/server-node.cjs +1 -1
- package/dist/server-node.js +503 -317
- package/dist/server.cjs +1 -1
- package/dist/server.d.cts +252 -4
- package/dist/server.d.ts +252 -4
- package/dist/server.js +567 -469
- package/dist/style.css +1 -1
- package/dist/template-registry-WNXdkiET.js +506 -0
- package/dist/template-registry-ukBGlm8N.cjs +1 -0
- package/dist/template-review-BXp2oyqg.cjs +1 -0
- package/dist/template-review-BdcXSYbx.js +1616 -0
- package/dist/tree-BX380Rr7.cjs +1 -0
- package/dist/tree-CqcQ99NM.js +172 -0
- package/dist/useLocalDraft-C07SYRnC.js +11 -0
- package/dist/useLocalDraft-Yiw1wFgI.cjs +1 -0
- package/dist/{validate-DWPF7icl.js → validate-7s0yn6ii.js} +26 -26
- package/dist/validate-DsRiNw8h.cjs +1 -0
- package/dist/vue/async.d.cts +118 -6
- package/dist/vue/async.d.ts +118 -6
- package/dist/vue/index.d.cts +177 -11
- package/dist/vue/index.d.ts +177 -11
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +5 -5
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +116 -113
- package/dist/{import-template-CNMLJSQw.js → workbook-session-BKOTwcoq.js} +4290 -4227
- package/dist/{import-template-CpxunKVp.cjs → workbook-session-CLYLhZWu.cjs} +17 -17
- package/dist/worker.cjs +1 -1
- package/dist/worker.d.cts +9 -2
- package/dist/worker.d.ts +9 -2
- package/dist/worker.js +1 -1
- package/dist/xlsx.cjs +4 -2
- package/dist/xlsx.d.cts +159 -3
- package/dist/xlsx.d.ts +159 -3
- package/dist/xlsx.js +354 -192
- package/package.json +1 -1
- package/dist/ExcelBindingWizard-DiaxvWpQ.cjs +0 -1
- package/dist/ExcelBindingWizard-RLJIXKKG.js +0 -816
- package/dist/ReportPreview-B5ZNEasW.js +0 -4439
- package/dist/ReportPreview-DRtVPUYo.cjs +0 -6
- package/dist/RuleEditor-CskN5Fr3.cjs +0 -1
- package/dist/RuleEditor-CtJFzKuY.js +0 -1578
- package/dist/TemplateReviewPanel-C_Lmzis6.cjs +0 -1
- package/dist/TemplateReviewPanel-Cn32OY4_.js +0 -173
- package/dist/binding-preview-B5834rml.cjs +0 -2
- package/dist/binding-preview-ChXjN5L5.js +0 -649
- package/dist/capabilities-DYzWL7KS.cjs +0 -1
- package/dist/matrix-CNPDJxED.js +0 -745
- package/dist/matrix-Div9Ilh3.cjs +0 -1
- package/dist/param-validation-BWNjLcN0.js +0 -116
- package/dist/param-validation-CiTxFeZ8.cjs +0 -1
- package/dist/plugin-BWwIgZXV.js +0 -25
- package/dist/plugin-Dg-J1Rbm.cjs +0 -1
- package/dist/template-registry-CHMYZ7SD.cjs +0 -1
- package/dist/template-registry-R61AMCr0.js +0 -433
- package/dist/template-review-hvWWQFsi.js +0 -1027
- package/dist/template-review-jEcOfmGr.cjs +0 -1
- package/dist/validate-BDiMqkJC.cjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),B=require("@agile-team/mach-report"),x=require("./designer.cjs"),M=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),C=["text","number","date","month","year","dateRange","select"],_={text:"string",number:"string → number",date:"YYYY-MM-DD",month:"YYYY-MM",year:"YYYY",dateRange:"YYYY-MM-DD/YYYY-MM-DD",select:"option.value"};function L(t){return JSON.parse(JSON.stringify(t))}function S(t){return{field:t.field,label:t.label??"",type:t.type??"text",required:t.required===!0,placeholder:t.placeholder??"",defaultEnabled:t.defaultValue!==void 0,defaultValue:t.defaultValue??"",min:t.min===void 0?"":String(t.min),max:t.max===void 0?"":String(t.max),minLength:t.minLength===void 0?"":String(t.minLength),maxLength:t.maxLength===void 0?"":String(t.maxLength),options:t.options?t.options.map(d=>({...d})):[]}}function T(t){const d={field:t.field,type:t.type};t.label&&(d.label=t.label),t.placeholder&&(d.placeholder=t.placeholder),t.required&&(d.required=!0),t.defaultEnabled&&(d.defaultValue=t.defaultValue);for(const s of["min","max"])t[s]!==""&&(d[s]=t.type==="number"?Number(t[s]):t[s]);for(const s of["minLength","maxLength"])t[s]!==""&&(d[s]=Number(t[s]));return t.type==="select"&&(d.options=t.options.map(s=>({...s}))),d}function R(t){const d=()=>JSON.stringify(t.document.template.params??[]),s=e.ref(d()),u=e.ref((t.document.template.params??[]).map(S)),p=e.ref(0),i=e.ref(""),n=e.computed(()=>({...x.PARAM_EDITOR_MESSAGES,...t.messages})),v=e.computed(()=>u.value.map(T)),b=e.ref(JSON.stringify(u.value)),l=e.computed(()=>JSON.stringify(u.value)!==b.value),h=e.computed(()=>d()!==s.value),f=e.computed(()=>B.validateReportParamDefinitions(v.value)),m=e.computed(()=>u.value[p.value]),V=e.computed(()=>f.value.filter(o=>o.path===`$.paramDefs.${p.value}`)),k=e.computed(()=>{const o=JSON.parse(s.value).map(y=>y.field),c=v.value.map(y=>y.field);return{added:c.filter(y=>y&&!o.includes(y)),removed:o.filter(y=>!c.includes(y))}});function E(){s.value=d(),u.value=(t.document.template.params??[]).map(S),p.value=Math.min(p.value,Math.max(0,u.value.length-1)),b.value=JSON.stringify(u.value),i.value=""}e.watch(d,()=>{l.value||E()});function N(){if(t.readonly)return;let o=u.value.length+1;for(;u.value.some(c=>c.field===`param${o}`);)o++;u.value.push(S({field:`param${o}`,type:"text"})),p.value=u.value.length-1}function D(){t.readonly||!m.value||(u.value.splice(p.value,1),p.value=Math.min(p.value,Math.max(0,u.value.length-1)))}function g(o){const c=p.value+o;if(t.readonly||c<0||c>=u.value.length)return;const y=u.value.splice(p.value,1)[0];u.value.splice(c,0,y),p.value=c}function r(o){t.readonly||!m.value||(m.value.type=o,m.value.min="",m.value.max="",m.value.minLength="",m.value.maxLength="")}function a(){if(t.readonly||h.value||f.value.length)return!1;try{return t.accept(L(v.value))?(s.value=JSON.stringify(v.value),b.value=JSON.stringify(u.value),i.value="",!0):(i.value=n.value.paramApplyFailed,!1)}catch(o){return i.value=o instanceof Error?o.message:String(o),!1}}return{m:n,rows:u,selected:p,current:m,definitions:v,issues:f,currentIssues:V,changes:k,pending:l,conflicted:h,error:i,reset:E,add:N,remove:D,move:g,setType:r,apply:a}}const Y=["aria-label"],O={class:"mr-param-editor__directory"},U=["aria-label"],w=["aria-pressed","onClick"],A={key:0},$=["disabled"],F={class:"mr-param-editor__main"},q={class:"mr-param-editor__heading"},P={class:"mr-param-editor__grid"},J=["aria-label","disabled"],I=["aria-label","disabled"],H=["value","aria-label","disabled"],j=["value"],z=["aria-label","disabled"],G={class:"mr-param-editor__checks"},W=["disabled"],K=["disabled"],Q={key:0},X=["aria-label","disabled"],Z=["value"],ee=["aria-label","type","placeholder","disabled"],te=["onUpdate:modelValue","aria-label","type","disabled"],ae=["onUpdate:modelValue","aria-label","disabled"],ne={key:0,class:"mr-param-editor__hint"},le={key:1,class:"mr-param-editor__options"},re={class:"mr-param-editor__option-head"},oe=["onUpdate:modelValue","aria-label","disabled"],ie=["onUpdate:modelValue","aria-label","disabled"],ue=["aria-label","disabled","onClick"],de=["disabled"],se={key:2,class:"mr-param-editor__errors",role:"alert"},me={class:"mr-param-editor__row-actions"},ce=["disabled"],pe=["disabled"],fe=["disabled"],ye={key:1,class:"mr-param-editor__empty"},ve=["disabled"],be={key:2,class:"mr-param-editor__impact"},ge={key:0},Ve={key:1},he={key:3,class:"mr-param-editor__errors",role:"alert"},Ee=["disabled"],ke=["disabled"],Ne=e.defineComponent({__name:"ParamEditor",props:{document:{},readonly:{type:Boolean},messages:{},accept:{type:Function}},emits:["dirty"],setup(t,{expose:d,emit:s}){const u=t,p=s,i=R(u),{m:n,rows:v,selected:b,current:l,currentIssues:h,changes:f,pending:m,conflicted:V,error:k}=i;e.watch(m,g=>p("dirty",g),{immediate:!0});function E(g){return{text:n.value.paramText,number:n.value.paramNumber,date:n.value.paramDate,month:n.value.paramMonth,year:n.value.paramYear,dateRange:n.value.paramDateRange,select:n.value.paramSelect}[g]}function N(){l.value&&!u.readonly&&l.value.options.push({value:"",label:""})}function D(g){u.readonly||l.value?.options.splice(g,1)}return d({pending:m,reset:i.reset,apply:i.apply}),(g,r)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-param-editor","aria-label":e.unref(n).paramsTool},[e.createElementVNode("aside",O,[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).paramsDirectory),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(v).length),1)]),e.createElementVNode("nav",{"aria-label":e.unref(n).paramsDirectory},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v),(a,o)=>(e.openBlock(),e.createElementBlock("button",{key:o,type:"button","aria-pressed":e.unref(b)===o,onClick:c=>b.value=o},[e.createElementVNode("strong",null,e.toDisplayString(a.label||a.field),1),e.createElementVNode("small",null,[e.createTextVNode(e.toDisplayString(a.field)+" · "+e.toDisplayString(E(a.type)),1),a.required?(e.openBlock(),e.createElementBlock("span",A," *")):e.createCommentVNode("",!0)])],8,w))),128))],8,U),e.createElementVNode("button",{type:"button",class:"mr-param-editor__add",disabled:t.readonly,onClick:r[0]||(r[0]=(...a)=>e.unref(i).add&&e.unref(i).add(...a))},"+ "+e.toDisplayString(e.unref(n).paramAdd),9,$),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).paramsDescription),1)]),e.createElementVNode("div",F,[e.unref(l)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("header",q,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).label||e.unref(l).field),1),e.createElementVNode("code",null,e.toDisplayString(e.unref(_)[e.unref(l).type]),1)]),e.createElementVNode("span",{class:e.normalizeClass({"is-pending":e.unref(m)||e.unref(i).issues.value.length>0})},e.toDisplayString(e.unref(i).issues.value.length?e.unref(n).paramInvalid:e.unref(m)?e.unref(n).paramPending:e.unref(n).paramReady),3)]),e.createElementVNode("div",P,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramField),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[1]||(r[1]=a=>e.unref(l).field=a),"aria-label":e.unref(n).paramField,disabled:t.readonly,autocomplete:"off"},null,8,J),[[e.vModelText,e.unref(l).field]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramLabel),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[2]||(r[2]=a=>e.unref(l).label=a),"aria-label":e.unref(n).paramLabel,disabled:t.readonly},null,8,I),[[e.vModelText,e.unref(l).label]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramType),1),e.createElementVNode("select",{value:e.unref(l).type,"aria-label":e.unref(n).paramType,disabled:t.readonly,onChange:r[3]||(r[3]=a=>e.unref(i).setType(a.target.value))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),a=>(e.openBlock(),e.createElementBlock("option",{key:a,value:a},e.toDisplayString(E(a)),9,j))),128))],40,H)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramPlaceholder),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[4]||(r[4]=a=>e.unref(l).placeholder=a),"aria-label":e.unref(n).paramPlaceholder,disabled:t.readonly},null,8,z),[[e.vModelText,e.unref(l).placeholder]])]),e.createElementVNode("div",G,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[5]||(r[5]=a=>e.unref(l).required=a),type:"checkbox",disabled:t.readonly},null,8,W),[[e.vModelCheckbox,e.unref(l).required]]),e.createTextVNode(e.toDisplayString(e.unref(n).paramRequired),1)]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[6]||(r[6]=a=>e.unref(l).defaultEnabled=a),type:"checkbox",disabled:t.readonly},null,8,K),[[e.vModelCheckbox,e.unref(l).defaultEnabled]]),e.createTextVNode(e.toDisplayString(e.unref(n).paramDefaultEnabled),1)])]),e.unref(l).defaultEnabled?(e.openBlock(),e.createElementBlock("label",Q,[e.createTextVNode(e.toDisplayString(e.unref(n).paramDefault),1),e.unref(l).type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,"onUpdate:modelValue":r[7]||(r[7]=a=>e.unref(l).defaultValue=a),"aria-label":e.unref(n).paramDefault,disabled:t.readonly},[r[15]||(r[15]=e.createElementVNode("option",{value:""},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).options,(a,o)=>(e.openBlock(),e.createElementBlock("option",{key:o,value:a.value},e.toDisplayString(a.label||a.value),9,Z))),128))],8,X)),[[e.vModelSelect,e.unref(l).defaultValue]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":r[8]||(r[8]=a=>e.unref(l).defaultValue=a),"aria-label":e.unref(n).paramDefault,type:["date","month","number"].includes(e.unref(l).type)?e.unref(l).type:"text",placeholder:e.unref(_)[e.unref(l).type],disabled:t.readonly},null,8,ee)),[[e.vModelDynamic,e.unref(l).defaultValue]])])):e.createCommentVNode("",!0),["number","date","month","year","dateRange"].includes(e.unref(l).type)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},e.renderList(["min","max"],a=>e.createElementVNode("label",{key:a},[e.createTextVNode(e.toDisplayString(a==="min"?e.unref(n).paramMinimum:e.unref(n).paramMaximum),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o=>e.unref(l)[a]=o,"aria-label":a==="min"?e.unref(n).paramMinimum:e.unref(n).paramMaximum,type:e.unref(l).type==="dateRange"?"date":["date","month","number"].includes(e.unref(l).type)?e.unref(l).type:"text",disabled:t.readonly},null,8,te),[[e.vModelDynamic,e.unref(l)[a]]])])),64)):e.createCommentVNode("",!0),e.unref(l).type==="text"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},e.renderList(["minLength","maxLength"],a=>e.createElementVNode("label",{key:a},[e.createTextVNode(e.toDisplayString(a==="minLength"?e.unref(n).paramMinLength:e.unref(n).paramMaxLength),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o=>e.unref(l)[a]=o,type:"number",min:"0",step:"1","aria-label":a==="minLength"?e.unref(n).paramMinLength:e.unref(n).paramMaxLength,disabled:t.readonly},null,8,ae),[[e.vModelText,e.unref(l)[a]]])])),64)):e.createCommentVNode("",!0)]),e.unref(l).type==="dateRange"?(e.openBlock(),e.createElementBlock("p",ne,e.toDisplayString(e.unref(n).paramRangeHint),1)):e.createCommentVNode("",!0),e.unref(l).type==="select"?(e.openBlock(),e.createElementBlock("fieldset",le,[e.createElementVNode("legend",null,e.toDisplayString(e.unref(n).paramOptions),1),e.createElementVNode("div",re,[e.createElementVNode("span",null,e.toDisplayString(e.unref(n).paramOptionValue),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(n).paramOptionLabel),1)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).options,(a,o)=>(e.openBlock(),e.createElementBlock("div",{key:o,class:"mr-param-editor__option"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c=>a.value=c,"aria-label":`${e.unref(n).paramOptionValue} ${o+1}`,disabled:t.readonly},null,8,oe),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c=>a.label=c,"aria-label":`${e.unref(n).paramOptionLabel} ${o+1}`,disabled:t.readonly},null,8,ie),[[e.vModelText,a.label]]),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(n).paramOptionRemove} ${o+1}`,disabled:t.readonly,onClick:c=>D(o)},"×",8,ue)]))),128)),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:N},"+ "+e.toDisplayString(e.unref(n).paramOptionAdd),9,de)])):e.createCommentVNode("",!0),e.unref(h).length?(e.openBlock(),e.createElementBlock("ul",se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(a,o)=>(e.openBlock(),e.createElementBlock("li",{key:o},e.toDisplayString(a.message),1))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",me,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(b)===0,onClick:r[9]||(r[9]=a=>e.unref(i).move(-1))},"↑ "+e.toDisplayString(e.unref(n).paramMoveUp),9,ce),e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(b)===e.unref(v).length-1,onClick:r[10]||(r[10]=a=>e.unref(i).move(1))},"↓ "+e.toDisplayString(e.unref(n).paramMoveDown),9,pe),e.createElementVNode("button",{type:"button",class:"is-danger",disabled:t.readonly,onClick:r[11]||(r[11]=(...a)=>e.unref(i).remove&&e.unref(i).remove(...a))},e.toDisplayString(e.unref(n).paramRemove),9,fe)])],64)):(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).paramEmpty),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).paramEmptyHint),1),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:r[12]||(r[12]=(...a)=>e.unref(i).add&&e.unref(i).add(...a))},"+ "+e.toDisplayString(e.unref(n).paramAdd),9,ve)])),e.unref(f).added.length||e.unref(f).removed.length?(e.openBlock(),e.createElementBlock("aside",be,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).paramChanges),1),e.unref(f).added.length?(e.openBlock(),e.createElementBlock("p",ge,[e.createTextVNode(e.toDisplayString(e.unref(n).paramAdded)+":",1),e.createElementVNode("code",null,e.toDisplayString(e.unref(f).added.join(", ")),1)])):e.createCommentVNode("",!0),e.unref(f).removed.length?(e.openBlock(),e.createElementBlock("p",Ve,[e.createTextVNode(e.toDisplayString(e.unref(n).paramRemoved)+":",1),e.createElementVNode("code",null,e.toDisplayString(e.unref(f).removed.join(", ")),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(e.unref(n).paramRenameHint),1)])):e.createCommentVNode("",!0),e.unref(V)||e.unref(k)?(e.openBlock(),e.createElementBlock("p",he,e.toDisplayString(e.unref(V)?e.unref(n).paramConflict:e.unref(k)),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:!e.unref(m)&&!e.unref(V),onClick:r[13]||(r[13]=(...a)=>e.unref(i).reset&&e.unref(i).reset(...a))},e.toDisplayString(e.unref(n).paramRestore),9,Ee),e.createElementVNode("button",{type:"button",class:"is-primary",disabled:t.readonly||!e.unref(m)||e.unref(V)||!!e.unref(i).issues.value.length,onClick:r[14]||(r[14]=(...a)=>e.unref(i).apply&&e.unref(i).apply(...a))},e.toDisplayString(e.unref(n).paramApply),9,ke)])])],8,Y))}}),De=M._export_sfc(Ne,[["__scopeId","data-v-58ededbb"]]);exports.default=De;
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import { ref as U, computed as L, watch as F, defineComponent as I, openBlock as s, createElementBlock as u, unref as e, createElementVNode as n, toDisplayString as o, Fragment as R, renderList as Y, createTextVNode as g, createCommentVNode as f, normalizeClass as w, withDirectives as _, vModelText as O, vModelCheckbox as T, vModelSelect as B, vModelDynamic as J } from "vue";
|
|
2
|
+
import { validateReportParamDefinitions as H } from "@agile-team/mach-report";
|
|
3
|
+
import { PARAM_EDITOR_MESSAGES as j } from "./designer.js";
|
|
4
|
+
import { _ as z } from "./_plugin-vue_export-helper-8SL1F89S.js";
|
|
5
|
+
const G = ["text", "number", "date", "month", "year", "dateRange", "select"], q = { text: "string", number: "string → number", date: "YYYY-MM-DD", month: "YYYY-MM", year: "YYYY", dateRange: "YYYY-MM-DD/YYYY-MM-DD", select: "option.value" };
|
|
6
|
+
function W(a) {
|
|
7
|
+
return JSON.parse(JSON.stringify(a));
|
|
8
|
+
}
|
|
9
|
+
function P(a) {
|
|
10
|
+
return {
|
|
11
|
+
field: a.field,
|
|
12
|
+
label: a.label ?? "",
|
|
13
|
+
type: a.type ?? "text",
|
|
14
|
+
required: a.required === !0,
|
|
15
|
+
placeholder: a.placeholder ?? "",
|
|
16
|
+
defaultEnabled: a.defaultValue !== void 0,
|
|
17
|
+
defaultValue: a.defaultValue ?? "",
|
|
18
|
+
min: a.min === void 0 ? "" : String(a.min),
|
|
19
|
+
max: a.max === void 0 ? "" : String(a.max),
|
|
20
|
+
minLength: a.minLength === void 0 ? "" : String(a.minLength),
|
|
21
|
+
maxLength: a.maxLength === void 0 ? "" : String(a.maxLength),
|
|
22
|
+
options: a.options ? a.options.map((c) => ({ ...c })) : []
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function K(a) {
|
|
26
|
+
const c = { field: a.field, type: a.type };
|
|
27
|
+
a.label && (c.label = a.label), a.placeholder && (c.placeholder = a.placeholder), a.required && (c.required = !0), a.defaultEnabled && (c.defaultValue = a.defaultValue);
|
|
28
|
+
for (const b of ["min", "max"])
|
|
29
|
+
a[b] !== "" && (c[b] = a.type === "number" ? Number(a[b]) : a[b]);
|
|
30
|
+
for (const b of ["minLength", "maxLength"]) a[b] !== "" && (c[b] = Number(a[b]));
|
|
31
|
+
return a.type === "select" && (c.options = a.options.map((b) => ({ ...b }))), c;
|
|
32
|
+
}
|
|
33
|
+
function Q(a) {
|
|
34
|
+
const c = () => JSON.stringify(a.document.template.params ?? []), b = U(c()), p = U((a.document.template.params ?? []).map(P)), h = U(0), m = U(""), t = L(() => ({ ...j, ...a.messages })), x = L(() => p.value.map(K)), V = U(JSON.stringify(p.value)), i = L(() => JSON.stringify(p.value) !== V.value), C = L(() => c() !== b.value), k = L(() => H(x.value)), y = L(() => p.value[h.value]), S = L(() => k.value.filter((d) => d.path === `$.paramDefs.${h.value}`)), N = L(() => {
|
|
35
|
+
const d = JSON.parse(b.value).map((M) => M.field), v = x.value.map((M) => M.field);
|
|
36
|
+
return { added: v.filter((M) => M && !d.includes(M)), removed: d.filter((M) => !v.includes(M)) };
|
|
37
|
+
});
|
|
38
|
+
function E() {
|
|
39
|
+
b.value = c(), p.value = (a.document.template.params ?? []).map(P), h.value = Math.min(h.value, Math.max(0, p.value.length - 1)), V.value = JSON.stringify(p.value), m.value = "";
|
|
40
|
+
}
|
|
41
|
+
F(c, () => {
|
|
42
|
+
i.value || E();
|
|
43
|
+
});
|
|
44
|
+
function A() {
|
|
45
|
+
if (a.readonly) return;
|
|
46
|
+
let d = p.value.length + 1;
|
|
47
|
+
for (; p.value.some((v) => v.field === `param${d}`); ) d++;
|
|
48
|
+
p.value.push(P({ field: `param${d}`, type: "text" })), h.value = p.value.length - 1;
|
|
49
|
+
}
|
|
50
|
+
function $() {
|
|
51
|
+
a.readonly || !y.value || (p.value.splice(h.value, 1), h.value = Math.min(h.value, Math.max(0, p.value.length - 1)));
|
|
52
|
+
}
|
|
53
|
+
function D(d) {
|
|
54
|
+
const v = h.value + d;
|
|
55
|
+
if (a.readonly || v < 0 || v >= p.value.length) return;
|
|
56
|
+
const M = p.value.splice(h.value, 1)[0];
|
|
57
|
+
p.value.splice(v, 0, M), h.value = v;
|
|
58
|
+
}
|
|
59
|
+
function r(d) {
|
|
60
|
+
a.readonly || !y.value || (y.value.type = d, y.value.min = "", y.value.max = "", y.value.minLength = "", y.value.maxLength = "");
|
|
61
|
+
}
|
|
62
|
+
function l() {
|
|
63
|
+
if (a.readonly || C.value || k.value.length) return !1;
|
|
64
|
+
try {
|
|
65
|
+
return a.accept(W(x.value)) ? (b.value = JSON.stringify(x.value), V.value = JSON.stringify(p.value), m.value = "", !0) : (m.value = t.value.paramApplyFailed, !1);
|
|
66
|
+
} catch (d) {
|
|
67
|
+
return m.value = d instanceof Error ? d.message : String(d), !1;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { m: t, rows: p, selected: h, current: y, definitions: x, issues: k, currentIssues: S, changes: N, pending: i, conflicted: C, error: m, reset: E, add: A, remove: $, move: D, setType: r, apply: l };
|
|
71
|
+
}
|
|
72
|
+
const X = ["aria-label"], Z = { class: "mr-param-editor__directory" }, ee = ["aria-label"], ae = ["aria-pressed", "onClick"], le = { key: 0 }, te = ["disabled"], ne = { class: "mr-param-editor__main" }, ie = { class: "mr-param-editor__heading" }, oe = { class: "mr-param-editor__grid" }, re = ["aria-label", "disabled"], de = ["aria-label", "disabled"], se = ["value", "aria-label", "disabled"], ue = ["value"], me = ["aria-label", "disabled"], pe = { class: "mr-param-editor__checks" }, ce = ["disabled"], be = ["disabled"], ye = { key: 0 }, ve = ["aria-label", "disabled"], he = ["value"], ge = ["aria-label", "type", "placeholder", "disabled"], fe = ["onUpdate:modelValue", "aria-label", "type", "disabled"], _e = ["onUpdate:modelValue", "aria-label", "disabled"], ke = {
|
|
73
|
+
key: 0,
|
|
74
|
+
class: "mr-param-editor__hint"
|
|
75
|
+
}, Me = {
|
|
76
|
+
key: 1,
|
|
77
|
+
class: "mr-param-editor__options"
|
|
78
|
+
}, xe = { class: "mr-param-editor__option-head" }, Ve = ["onUpdate:modelValue", "aria-label", "disabled"], De = ["onUpdate:modelValue", "aria-label", "disabled"], Le = ["aria-label", "disabled", "onClick"], Re = ["disabled"], Ye = {
|
|
79
|
+
key: 2,
|
|
80
|
+
class: "mr-param-editor__errors",
|
|
81
|
+
role: "alert"
|
|
82
|
+
}, Se = { class: "mr-param-editor__row-actions" }, Oe = ["disabled"], Ce = ["disabled"], Ee = ["disabled"], Ue = {
|
|
83
|
+
key: 1,
|
|
84
|
+
class: "mr-param-editor__empty"
|
|
85
|
+
}, Ne = ["disabled"], Ae = {
|
|
86
|
+
key: 2,
|
|
87
|
+
class: "mr-param-editor__impact"
|
|
88
|
+
}, $e = { key: 0 }, Pe = { key: 1 }, Te = {
|
|
89
|
+
key: 3,
|
|
90
|
+
class: "mr-param-editor__errors",
|
|
91
|
+
role: "alert"
|
|
92
|
+
}, Je = ["disabled"], qe = ["disabled"], Fe = /* @__PURE__ */ I({
|
|
93
|
+
__name: "ParamEditor",
|
|
94
|
+
props: {
|
|
95
|
+
document: {},
|
|
96
|
+
readonly: { type: Boolean },
|
|
97
|
+
messages: {},
|
|
98
|
+
accept: { type: Function }
|
|
99
|
+
},
|
|
100
|
+
emits: ["dirty"],
|
|
101
|
+
setup(a, { expose: c, emit: b }) {
|
|
102
|
+
const p = a, h = b, m = Q(p), { m: t, rows: x, selected: V, current: i, currentIssues: C, changes: k, pending: y, conflicted: S, error: N } = m;
|
|
103
|
+
F(y, (D) => h("dirty", D), { immediate: !0 });
|
|
104
|
+
function E(D) {
|
|
105
|
+
return { text: t.value.paramText, number: t.value.paramNumber, date: t.value.paramDate, month: t.value.paramMonth, year: t.value.paramYear, dateRange: t.value.paramDateRange, select: t.value.paramSelect }[D];
|
|
106
|
+
}
|
|
107
|
+
function A() {
|
|
108
|
+
i.value && !p.readonly && i.value.options.push({ value: "", label: "" });
|
|
109
|
+
}
|
|
110
|
+
function $(D) {
|
|
111
|
+
p.readonly || i.value?.options.splice(D, 1);
|
|
112
|
+
}
|
|
113
|
+
return c({ pending: y, reset: m.reset, apply: m.apply }), (D, r) => (s(), u("section", {
|
|
114
|
+
class: "mr-param-editor",
|
|
115
|
+
"aria-label": e(t).paramsTool
|
|
116
|
+
}, [
|
|
117
|
+
n("aside", Z, [
|
|
118
|
+
n("header", null, [
|
|
119
|
+
n("strong", null, o(e(t).paramsDirectory), 1),
|
|
120
|
+
n("span", null, o(e(x).length), 1)
|
|
121
|
+
]),
|
|
122
|
+
n("nav", {
|
|
123
|
+
"aria-label": e(t).paramsDirectory
|
|
124
|
+
}, [
|
|
125
|
+
(s(!0), u(R, null, Y(e(x), (l, d) => (s(), u("button", {
|
|
126
|
+
key: d,
|
|
127
|
+
type: "button",
|
|
128
|
+
"aria-pressed": e(V) === d,
|
|
129
|
+
onClick: (v) => V.value = d
|
|
130
|
+
}, [
|
|
131
|
+
n("strong", null, o(l.label || l.field), 1),
|
|
132
|
+
n("small", null, [
|
|
133
|
+
g(o(l.field) + " · " + o(E(l.type)), 1),
|
|
134
|
+
l.required ? (s(), u("span", le, " *")) : f("", !0)
|
|
135
|
+
])
|
|
136
|
+
], 8, ae))), 128))
|
|
137
|
+
], 8, ee),
|
|
138
|
+
n("button", {
|
|
139
|
+
type: "button",
|
|
140
|
+
class: "mr-param-editor__add",
|
|
141
|
+
disabled: a.readonly,
|
|
142
|
+
onClick: r[0] || (r[0] = //@ts-ignore
|
|
143
|
+
(...l) => e(m).add && e(m).add(...l))
|
|
144
|
+
}, "+ " + o(e(t).paramAdd), 9, te),
|
|
145
|
+
n("p", null, o(e(t).paramsDescription), 1)
|
|
146
|
+
]),
|
|
147
|
+
n("div", ne, [
|
|
148
|
+
e(i) ? (s(), u(R, { key: 0 }, [
|
|
149
|
+
n("header", ie, [
|
|
150
|
+
n("div", null, [
|
|
151
|
+
n("strong", null, o(e(i).label || e(i).field), 1),
|
|
152
|
+
n("code", null, o(e(q)[e(i).type]), 1)
|
|
153
|
+
]),
|
|
154
|
+
n("span", {
|
|
155
|
+
class: w({ "is-pending": e(y) || e(m).issues.value.length > 0 })
|
|
156
|
+
}, o(e(m).issues.value.length ? e(t).paramInvalid : e(y) ? e(t).paramPending : e(t).paramReady), 3)
|
|
157
|
+
]),
|
|
158
|
+
n("div", oe, [
|
|
159
|
+
n("label", null, [
|
|
160
|
+
g(o(e(t).paramField), 1),
|
|
161
|
+
_(n("input", {
|
|
162
|
+
"onUpdate:modelValue": r[1] || (r[1] = (l) => e(i).field = l),
|
|
163
|
+
"aria-label": e(t).paramField,
|
|
164
|
+
disabled: a.readonly,
|
|
165
|
+
autocomplete: "off"
|
|
166
|
+
}, null, 8, re), [
|
|
167
|
+
[O, e(i).field]
|
|
168
|
+
])
|
|
169
|
+
]),
|
|
170
|
+
n("label", null, [
|
|
171
|
+
g(o(e(t).paramLabel), 1),
|
|
172
|
+
_(n("input", {
|
|
173
|
+
"onUpdate:modelValue": r[2] || (r[2] = (l) => e(i).label = l),
|
|
174
|
+
"aria-label": e(t).paramLabel,
|
|
175
|
+
disabled: a.readonly
|
|
176
|
+
}, null, 8, de), [
|
|
177
|
+
[O, e(i).label]
|
|
178
|
+
])
|
|
179
|
+
]),
|
|
180
|
+
n("label", null, [
|
|
181
|
+
g(o(e(t).paramType), 1),
|
|
182
|
+
n("select", {
|
|
183
|
+
value: e(i).type,
|
|
184
|
+
"aria-label": e(t).paramType,
|
|
185
|
+
disabled: a.readonly,
|
|
186
|
+
onChange: r[3] || (r[3] = (l) => e(m).setType(l.target.value))
|
|
187
|
+
}, [
|
|
188
|
+
(s(!0), u(R, null, Y(e(G), (l) => (s(), u("option", {
|
|
189
|
+
key: l,
|
|
190
|
+
value: l
|
|
191
|
+
}, o(E(l)), 9, ue))), 128))
|
|
192
|
+
], 40, se)
|
|
193
|
+
]),
|
|
194
|
+
n("label", null, [
|
|
195
|
+
g(o(e(t).paramPlaceholder), 1),
|
|
196
|
+
_(n("input", {
|
|
197
|
+
"onUpdate:modelValue": r[4] || (r[4] = (l) => e(i).placeholder = l),
|
|
198
|
+
"aria-label": e(t).paramPlaceholder,
|
|
199
|
+
disabled: a.readonly
|
|
200
|
+
}, null, 8, me), [
|
|
201
|
+
[O, e(i).placeholder]
|
|
202
|
+
])
|
|
203
|
+
]),
|
|
204
|
+
n("div", pe, [
|
|
205
|
+
n("label", null, [
|
|
206
|
+
_(n("input", {
|
|
207
|
+
"onUpdate:modelValue": r[5] || (r[5] = (l) => e(i).required = l),
|
|
208
|
+
type: "checkbox",
|
|
209
|
+
disabled: a.readonly
|
|
210
|
+
}, null, 8, ce), [
|
|
211
|
+
[T, e(i).required]
|
|
212
|
+
]),
|
|
213
|
+
g(o(e(t).paramRequired), 1)
|
|
214
|
+
]),
|
|
215
|
+
n("label", null, [
|
|
216
|
+
_(n("input", {
|
|
217
|
+
"onUpdate:modelValue": r[6] || (r[6] = (l) => e(i).defaultEnabled = l),
|
|
218
|
+
type: "checkbox",
|
|
219
|
+
disabled: a.readonly
|
|
220
|
+
}, null, 8, be), [
|
|
221
|
+
[T, e(i).defaultEnabled]
|
|
222
|
+
]),
|
|
223
|
+
g(o(e(t).paramDefaultEnabled), 1)
|
|
224
|
+
])
|
|
225
|
+
]),
|
|
226
|
+
e(i).defaultEnabled ? (s(), u("label", ye, [
|
|
227
|
+
g(o(e(t).paramDefault), 1),
|
|
228
|
+
e(i).type === "select" ? _((s(), u("select", {
|
|
229
|
+
key: 0,
|
|
230
|
+
"onUpdate:modelValue": r[7] || (r[7] = (l) => e(i).defaultValue = l),
|
|
231
|
+
"aria-label": e(t).paramDefault,
|
|
232
|
+
disabled: a.readonly
|
|
233
|
+
}, [
|
|
234
|
+
r[15] || (r[15] = n("option", { value: "" }, null, -1)),
|
|
235
|
+
(s(!0), u(R, null, Y(e(i).options, (l, d) => (s(), u("option", {
|
|
236
|
+
key: d,
|
|
237
|
+
value: l.value
|
|
238
|
+
}, o(l.label || l.value), 9, he))), 128))
|
|
239
|
+
], 8, ve)), [
|
|
240
|
+
[B, e(i).defaultValue]
|
|
241
|
+
]) : _((s(), u("input", {
|
|
242
|
+
key: 1,
|
|
243
|
+
"onUpdate:modelValue": r[8] || (r[8] = (l) => e(i).defaultValue = l),
|
|
244
|
+
"aria-label": e(t).paramDefault,
|
|
245
|
+
type: ["date", "month", "number"].includes(e(i).type) ? e(i).type : "text",
|
|
246
|
+
placeholder: e(q)[e(i).type],
|
|
247
|
+
disabled: a.readonly
|
|
248
|
+
}, null, 8, ge)), [
|
|
249
|
+
[J, e(i).defaultValue]
|
|
250
|
+
])
|
|
251
|
+
])) : f("", !0),
|
|
252
|
+
["number", "date", "month", "year", "dateRange"].includes(e(i).type) ? (s(), u(R, { key: 1 }, Y(["min", "max"], (l) => n("label", { key: l }, [
|
|
253
|
+
g(o(l === "min" ? e(t).paramMinimum : e(t).paramMaximum), 1),
|
|
254
|
+
_(n("input", {
|
|
255
|
+
"onUpdate:modelValue": (d) => e(i)[l] = d,
|
|
256
|
+
"aria-label": l === "min" ? e(t).paramMinimum : e(t).paramMaximum,
|
|
257
|
+
type: e(i).type === "dateRange" ? "date" : ["date", "month", "number"].includes(e(i).type) ? e(i).type : "text",
|
|
258
|
+
disabled: a.readonly
|
|
259
|
+
}, null, 8, fe), [
|
|
260
|
+
[J, e(i)[l]]
|
|
261
|
+
])
|
|
262
|
+
])), 64)) : f("", !0),
|
|
263
|
+
e(i).type === "text" ? (s(), u(R, { key: 2 }, Y(["minLength", "maxLength"], (l) => n("label", { key: l }, [
|
|
264
|
+
g(o(l === "minLength" ? e(t).paramMinLength : e(t).paramMaxLength), 1),
|
|
265
|
+
_(n("input", {
|
|
266
|
+
"onUpdate:modelValue": (d) => e(i)[l] = d,
|
|
267
|
+
type: "number",
|
|
268
|
+
min: "0",
|
|
269
|
+
step: "1",
|
|
270
|
+
"aria-label": l === "minLength" ? e(t).paramMinLength : e(t).paramMaxLength,
|
|
271
|
+
disabled: a.readonly
|
|
272
|
+
}, null, 8, _e), [
|
|
273
|
+
[O, e(i)[l]]
|
|
274
|
+
])
|
|
275
|
+
])), 64)) : f("", !0)
|
|
276
|
+
]),
|
|
277
|
+
e(i).type === "dateRange" ? (s(), u("p", ke, o(e(t).paramRangeHint), 1)) : f("", !0),
|
|
278
|
+
e(i).type === "select" ? (s(), u("fieldset", Me, [
|
|
279
|
+
n("legend", null, o(e(t).paramOptions), 1),
|
|
280
|
+
n("div", xe, [
|
|
281
|
+
n("span", null, o(e(t).paramOptionValue), 1),
|
|
282
|
+
n("span", null, o(e(t).paramOptionLabel), 1)
|
|
283
|
+
]),
|
|
284
|
+
(s(!0), u(R, null, Y(e(i).options, (l, d) => (s(), u("div", {
|
|
285
|
+
key: d,
|
|
286
|
+
class: "mr-param-editor__option"
|
|
287
|
+
}, [
|
|
288
|
+
_(n("input", {
|
|
289
|
+
"onUpdate:modelValue": (v) => l.value = v,
|
|
290
|
+
"aria-label": `${e(t).paramOptionValue} ${d + 1}`,
|
|
291
|
+
disabled: a.readonly
|
|
292
|
+
}, null, 8, Ve), [
|
|
293
|
+
[O, l.value]
|
|
294
|
+
]),
|
|
295
|
+
_(n("input", {
|
|
296
|
+
"onUpdate:modelValue": (v) => l.label = v,
|
|
297
|
+
"aria-label": `${e(t).paramOptionLabel} ${d + 1}`,
|
|
298
|
+
disabled: a.readonly
|
|
299
|
+
}, null, 8, De), [
|
|
300
|
+
[O, l.label]
|
|
301
|
+
]),
|
|
302
|
+
n("button", {
|
|
303
|
+
type: "button",
|
|
304
|
+
"aria-label": `${e(t).paramOptionRemove} ${d + 1}`,
|
|
305
|
+
disabled: a.readonly,
|
|
306
|
+
onClick: (v) => $(d)
|
|
307
|
+
}, "×", 8, Le)
|
|
308
|
+
]))), 128)),
|
|
309
|
+
n("button", {
|
|
310
|
+
type: "button",
|
|
311
|
+
disabled: a.readonly,
|
|
312
|
+
onClick: A
|
|
313
|
+
}, "+ " + o(e(t).paramOptionAdd), 9, Re)
|
|
314
|
+
])) : f("", !0),
|
|
315
|
+
e(C).length ? (s(), u("ul", Ye, [
|
|
316
|
+
(s(!0), u(R, null, Y(e(C), (l, d) => (s(), u("li", { key: d }, o(l.message), 1))), 128))
|
|
317
|
+
])) : f("", !0),
|
|
318
|
+
n("div", Se, [
|
|
319
|
+
n("button", {
|
|
320
|
+
type: "button",
|
|
321
|
+
disabled: a.readonly || e(V) === 0,
|
|
322
|
+
onClick: r[9] || (r[9] = (l) => e(m).move(-1))
|
|
323
|
+
}, "↑ " + o(e(t).paramMoveUp), 9, Oe),
|
|
324
|
+
n("button", {
|
|
325
|
+
type: "button",
|
|
326
|
+
disabled: a.readonly || e(V) === e(x).length - 1,
|
|
327
|
+
onClick: r[10] || (r[10] = (l) => e(m).move(1))
|
|
328
|
+
}, "↓ " + o(e(t).paramMoveDown), 9, Ce),
|
|
329
|
+
n("button", {
|
|
330
|
+
type: "button",
|
|
331
|
+
class: "is-danger",
|
|
332
|
+
disabled: a.readonly,
|
|
333
|
+
onClick: r[11] || (r[11] = //@ts-ignore
|
|
334
|
+
(...l) => e(m).remove && e(m).remove(...l))
|
|
335
|
+
}, o(e(t).paramRemove), 9, Ee)
|
|
336
|
+
])
|
|
337
|
+
], 64)) : (s(), u("div", Ue, [
|
|
338
|
+
n("strong", null, o(e(t).paramEmpty), 1),
|
|
339
|
+
n("p", null, o(e(t).paramEmptyHint), 1),
|
|
340
|
+
n("button", {
|
|
341
|
+
type: "button",
|
|
342
|
+
disabled: a.readonly,
|
|
343
|
+
onClick: r[12] || (r[12] = //@ts-ignore
|
|
344
|
+
(...l) => e(m).add && e(m).add(...l))
|
|
345
|
+
}, "+ " + o(e(t).paramAdd), 9, Ne)
|
|
346
|
+
])),
|
|
347
|
+
e(k).added.length || e(k).removed.length ? (s(), u("aside", Ae, [
|
|
348
|
+
n("strong", null, o(e(t).paramChanges), 1),
|
|
349
|
+
e(k).added.length ? (s(), u("p", $e, [
|
|
350
|
+
g(o(e(t).paramAdded) + ":", 1),
|
|
351
|
+
n("code", null, o(e(k).added.join(", ")), 1)
|
|
352
|
+
])) : f("", !0),
|
|
353
|
+
e(k).removed.length ? (s(), u("p", Pe, [
|
|
354
|
+
g(o(e(t).paramRemoved) + ":", 1),
|
|
355
|
+
n("code", null, o(e(k).removed.join(", ")), 1)
|
|
356
|
+
])) : f("", !0),
|
|
357
|
+
n("small", null, o(e(t).paramRenameHint), 1)
|
|
358
|
+
])) : f("", !0),
|
|
359
|
+
e(S) || e(N) ? (s(), u("p", Te, o(e(S) ? e(t).paramConflict : e(N)), 1)) : f("", !0),
|
|
360
|
+
n("footer", null, [
|
|
361
|
+
n("button", {
|
|
362
|
+
type: "button",
|
|
363
|
+
disabled: !e(y) && !e(S),
|
|
364
|
+
onClick: r[13] || (r[13] = //@ts-ignore
|
|
365
|
+
(...l) => e(m).reset && e(m).reset(...l))
|
|
366
|
+
}, o(e(t).paramRestore), 9, Je),
|
|
367
|
+
n("button", {
|
|
368
|
+
type: "button",
|
|
369
|
+
class: "is-primary",
|
|
370
|
+
disabled: a.readonly || !e(y) || e(S) || !!e(m).issues.value.length,
|
|
371
|
+
onClick: r[14] || (r[14] = //@ts-ignore
|
|
372
|
+
(...l) => e(m).apply && e(m).apply(...l))
|
|
373
|
+
}, o(e(t).paramApply), 9, qe)
|
|
374
|
+
])
|
|
375
|
+
])
|
|
376
|
+
], 8, X));
|
|
377
|
+
}
|
|
378
|
+
}), je = /* @__PURE__ */ z(Fe, [["__scopeId", "data-v-58ededbb"]]);
|
|
379
|
+
export {
|
|
380
|
+
je as default
|
|
381
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),T=require("./config-BRoLo2oj.cjs"),O=require("@agile-team/mach-report"),w=require("./batch-Bt3Fd27Z.cjs"),F=require("./designer.cjs"),K=require("./_plugin-vue_export-helper-BLmdZLlg.cjs");function L(n){const c={};return!n||typeof n!="object"||(typeof n.instanceId=="string"&&n.instanceId.length>0&&n.instanceId.length<=512&&(c.instanceId=n.instanceId),typeof n.label=="string"&&(c.label=n.label.slice(0,512))),c}function U(n){return Object.fromEntries((Array.isArray(n)?n:[]).filter(c=>c&&typeof c.field=="string").map(c=>[c.field,c.defaultValue??""]))}function A(n){return(n instanceof Error?n.message:String(n)).slice(0,1e3)}function j(n){try{return{cases:w.snapshotReportBatchCases(n.initialCases??[],n.maxCases??100),error:""}}catch(c){return{cases:[],error:A(c)}}}function z(n){let c=0;const _=a=>({key:++c,item:{id:a.id,params:{...a.params}},status:"pending"}),C=j(n),o=e.ref(C.cases.map(_)),l=e.ref(!1),u=e.ref(!1),V=e.ref(!1),d=e.ref(C.error),k=e.ref(),E=e.ref({completed:0,total:0,failed:0,cancelled:0}),g=e.computed(()=>({...F.REPORT_BATCH_MESSAGES,...n.messages})),p=e.computed(()=>o.value.map(a=>O.validateReportParams(n.paramDefs,a.item.params))),D=e.computed(()=>o.value.filter(a=>a.status==="failed").length),b=e.computed(()=>n.maxCases??100);let v,s=0;function y(a=U(n.paramDefs)){let t=c+1;for(;o.value.some(r=>r.item.id===`case-${t}`);)t++;return{id:`case-${t}`,params:{...a}}}function h(a){if(!(n.readonly||l.value)){if(o.value.length>=b.value){d.value=g.value.batchLimit.replace("{count}",String(b.value));return}o.value.push(_(y(a?.item.params))),d.value=""}}function I(a){!l.value&&!n.readonly&&(o.value=o.value.filter(t=>t.key!==a))}function M(a,t){if(l.value||n.readonly)return;const r=o.value.find(i=>i.key===a);r&&(r.item.params={...t},r.status="pending",delete r.receipt,delete r.error)}function N(){l.value&&(u.value=!0,v?.abort())}function x(a){return o.value.filter(t=>!a||t.status==="failed")}function q(a){const t=a.map(i=>O.validateReportParams(n.paramDefs,i.item.params)),r=t.findIndex(i=>!i.ok);if(r>=0){k.value=a[r].key,d.value=g.value.batchInvalid;return}return a.map((i,S)=>({id:i.item.id,params:{...t[S].values}}))}function R(a,t){a.status=t.status,t.status==="completed"&&(a.receipt=t.value),t.status==="failed"&&(a.error=t.error.message.slice(0,1e3))}async function P(a,t,r,i,S){i===s&&(a.status="running");try{const m=L(await S(t,r));return i===s&&(a.receipt=m,a.status="completed"),m}catch(m){throw i===s&&(a.status=r.signal.aborted?"cancelled":"failed",a.error=A(m)),m}}async function f(a=!1){if(n.readonly||l.value)return;const t=x(a);if(!t.length)return;V.value=!0,d.value="",k.value=void 0;const r=q(t);if(!r)return;const i=++s,S=n.execute;v=new AbortController,l.value=!0,u.value=!1,E.value={completed:0,total:t.length,failed:0,cancelled:0};for(const m of t)m.status="pending",delete m.receipt,delete m.error;try{const m=await w.runReportBatch(r,(B,$)=>P(t[$.index],B,$,i,S),{concurrency:n.concurrency,maxCases:b.value,signal:v.signal,onProgress:B=>{i===s&&(E.value=B)}});i===s&&m.forEach((B,$)=>R(t[$],B))}catch(m){i===s&&(d.value=A(m))}finally{i===s&&(l.value=!1,u.value=!1,v=void 0)}}return e.watch(()=>[JSON.stringify(n.paramDefs),n.execute,n.readonly,n.concurrency,n.maxCases],()=>{l.value&&(N(),d.value=g.value.batchChanged)}),e.onBeforeUnmount(()=>{s++,v?.abort()}),{m:g,rows:o,validations:p,running:l,cancelling:u,attempted:V,error:d,progress:E,failures:D,maximum:b,invalidKey:k,add:h,remove:I,setParams:M,cancel:N,run:f}}const G=["aria-label","aria-busy"],H={class:"mr-batch__heading"},J=["disabled"],Q={key:0,class:"mr-batch__empty"},W={key:1,class:"mr-batch__rows"},X={class:"mr-batch__status",role:"status"},Y={class:"mr-batch__row-actions"},Z=["aria-label","disabled","onClick"],ee=["aria-label","disabled","onClick"],te={key:0,class:"mr-batch__row-error",role:"alert"},ae={key:1,class:"mr-batch__receipt"},ne=["onClick"],le={key:2,class:"mr-batch__error",role:"alert"},re={class:"mr-batch__progress","aria-live":"polite"},se=["value","max","aria-label"],ie={key:1},oe={class:"mr-batch__actions"},ce=["disabled"],ue=["disabled"],de=["disabled"],me=["aria-label"],fe=["disabled"],pe=["disabled"],ve=e.defineComponent({__name:"ReportBatchPanel",props:{paramDefs:{},execute:{type:Function},initialCases:{},readonly:{type:Boolean},concurrency:{},maxCases:{},messages:{},paramMessages:{}},emits:["open-instance"],setup(n,{emit:c}){const _=n,C=c,o=z(_),{m:l,rows:u,validations:V,running:d,cancelling:k,attempted:E,error:g,progress:p,failures:D,maximum:b}=o,v=e.ref(),s=e.ref(1),y=10,h=e.computed(()=>Math.max(1,Math.ceil(u.value.length/y))),I=e.computed(()=>u.value.slice((s.value-1)*y,s.value*y).map((f,a)=>({row:f,index:(s.value-1)*y+a}))),M=e.computed(()=>l.value.batchPage.replace("{page}",String(s.value)).replace("{pages}",String(h.value)).replace("{total}",String(u.value.length)));e.watch(h,f=>{s.value=Math.min(s.value,f)});const N=e.computed(()=>({...T.DEFAULT_MESSAGES,..._.paramMessages})),x=e.computed(()=>l.value.batchProgress.replace("{completed}",String(p.value.completed)).replace("{total}",String(p.value.total)).replace("{failed}",String(p.value.failed)).replace("{cancelled}",String(p.value.cancelled)));function q(f){return{pending:l.value.batchPending,running:l.value.batchRunning,completed:l.value.batchCompleted,failed:l.value.batchFailed,cancelled:l.value.batchCancelled}[f.status]}async function R(f){const a=u.value.length;o.add(f),u.value.length!==a&&(s.value=h.value,await e.nextTick(),v.value?.querySelector(".mr-batch__row:last-child .mrp-param-input")?.focus())}async function P(f=!1){const a=o.run(f);if(o.invalidKey.value!==void 0){const t=u.value.findIndex(r=>r.key===o.invalidKey.value);s.value=Math.max(1,Math.floor(t/y)+1),await e.nextTick(),v.value?.querySelector('[aria-invalid="true"]')?.focus()}await a}return(f,a)=>(e.openBlock(),e.createElementBlock("section",{ref_key:"root",ref:v,class:"mr-batch","aria-label":e.unref(l).batchTitle,"aria-busy":e.unref(d)},[e.createElementVNode("header",H,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).batchTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(l).batchDescription),1)]),e.createElementVNode("button",{type:"button",disabled:n.readonly||e.unref(d)||e.unref(u).length>=e.unref(b),onClick:a[0]||(a[0]=t=>R())},"+ "+e.toDisplayString(e.unref(l).batchAdd),9,J)]),e.unref(u).length?(e.openBlock(),e.createElementBlock("div",W,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,({row:t,index:r})=>(e.openBlock(),e.createElementBlock("article",{key:t.key,class:e.normalizeClass(["mr-batch__row",`is-${t.status}`])},[e.createElementVNode("header",null,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).batchCase)+" "+e.toDisplayString(r+1),1),e.createElementVNode("span",X,e.toDisplayString(q(t)),1)]),e.createElementVNode("div",Y,[e.createElementVNode("button",{type:"button","aria-label":`${e.unref(l).batchDuplicate} ${r+1}`,disabled:n.readonly||e.unref(d)||e.unref(u).length>=e.unref(b),onClick:i=>R(t)},e.toDisplayString(e.unref(l).batchDuplicate),9,Z),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(l).batchRemove} ${r+1}`,disabled:n.readonly||e.unref(d),onClick:i=>e.unref(o).remove(t.key)},"×",8,ee)])]),e.createVNode(T.ReportParamPanel,{defs:n.paramDefs,"model-value":t.item.params,messages:N.value,attempted:e.unref(E),issues:e.unref(V)[r]?.issues,"show-actions":!1,"show-title":!1,disabled:n.readonly||e.unref(d),"onUpdate:modelValue":i=>e.unref(o).setParams(t.key,i)},null,8,["defs","model-value","messages","attempted","issues","disabled","onUpdate:modelValue"]),t.status==="failed"&&t.error?(e.openBlock(),e.createElementBlock("p",te,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0),t.status==="completed"?(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("span",null,e.toDisplayString(t.receipt?.label||(t.receipt?.instanceId?t.receipt.instanceId:e.unref(l).batchNoInstance)),1),t.receipt?.instanceId?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:i=>C("open-instance",{...t.receipt})},e.toDisplayString(e.unref(l).batchOpen)+" ↗",9,ne)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],2))),128))])):(e.openBlock(),e.createElementBlock("div",Q,e.toDisplayString(e.unref(l).batchEmpty),1)),e.unref(g)?(e.openBlock(),e.createElementBlock("p",le,e.toDisplayString(e.unref(g)),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",null,[e.createElementVNode("div",re,[e.unref(p).total?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("progress",{value:e.unref(p).completed,max:e.unref(p).total,"aria-label":x.value},null,8,se),e.createElementVNode("span",null,e.toDisplayString(x.value),1)],64)):(e.openBlock(),e.createElementBlock("span",ie,e.toDisplayString(e.unref(u).length)+" / "+e.toDisplayString(e.unref(b)),1))]),e.createElementVNode("div",oe,[e.unref(D)&&!e.unref(d)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:n.readonly,onClick:a[1]||(a[1]=t=>P(!0))},e.toDisplayString(e.unref(l).batchRetry)+" ("+e.toDisplayString(e.unref(D))+")",9,ce)):e.createCommentVNode("",!0),e.unref(d)?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:e.unref(k),onClick:a[2]||(a[2]=(...t)=>e.unref(o).cancel&&e.unref(o).cancel(...t))},e.toDisplayString(e.unref(k)?e.unref(l).batchCancelling:e.unref(l).batchCancel),9,ue)):(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"is-primary",disabled:n.readonly||!e.unref(u).length,onClick:a[3]||(a[3]=t=>P())},e.toDisplayString(e.unref(l).batchRun),9,de))]),h.value>1?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mr-batch__pagination","aria-label":e.unref(l).batchPages},[e.createElementVNode("span",null,e.toDisplayString(M.value),1),e.createElementVNode("button",{type:"button",disabled:s.value<=1,onClick:a[4]||(a[4]=t=>s.value--)},e.toDisplayString(e.unref(l).batchPrevious),9,fe),e.createElementVNode("button",{type:"button",disabled:s.value>=h.value,onClick:a[5]||(a[5]=t=>s.value++)},e.toDisplayString(e.unref(l).batchNext),9,pe)],8,me)):e.createCommentVNode("",!0)])],8,G))}}),be=K._export_sfc(ve,[["__scopeId","data-v-eea7fd86"]]);exports.default=be;
|