@agile-team/mach-report 2.11.0 → 2.11.2
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 +4 -4
- package/dist/ExcelBindingWizard-LWX6G1A2.js +1465 -0
- package/dist/ExcelBindingWizard-a4kslPHF.cjs +1 -0
- package/dist/ParamEditor-BLaE5q5W.js +522 -0
- package/dist/ParamEditor-MBBC7lUE.cjs +1 -0
- package/dist/ReportBatchPanel-B5ClP9tm.js +350 -0
- package/dist/ReportBatchPanel-Dc-SDkYA.cjs +1 -0
- package/dist/ReportTemplateLibrary-5fk5CQBO.cjs +1 -0
- package/dist/ReportTemplateLibrary-BZB-XWjj.js +311 -0
- package/dist/designer.cjs +2 -2
- package/dist/designer.d.cts +73 -2
- package/dist/designer.d.ts +73 -2
- package/dist/designer.js +1509 -1407
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +19 -5
- package/dist/index.d.ts +19 -5
- package/dist/index.js +502 -494
- package/dist/pdf.cjs +44 -44
- package/dist/pdf.js +1656 -1645
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/ExcelBindingWizard-CjIiVox-.cjs +0 -1
- package/dist/ExcelBindingWizard-Dxm-K5HL.js +0 -1240
- package/dist/ParamEditor-D-Hf5xfO.cjs +0 -1
- package/dist/ParamEditor-DRGxzxeO.js +0 -381
- package/dist/ReportBatchPanel-BYgg0EDB.cjs +0 -1
- package/dist/ReportBatchPanel-Bby5yLzU.js +0 -287
- package/dist/ReportTemplateLibrary-C6CO7YCT.cjs +0 -1
- package/dist/ReportTemplateLibrary-DfzDXRvr.js +0 -260
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),T=require("@agile-team/mach-report"),Y=require("./designer.cjs"),O=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),P=["text","number","date","month","year","dateRange","select"],w={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 A(t){if(/^(默认值|必填参数的默认值)/.test(t))return["defaultValue"];if(t.includes("参数名"))return["field"];if(t.includes("选项"))return["options"];if(t.startsWith("最小边界"))return["min","max"];if(t.startsWith("最小长度"))return["minLength","maxLength"];const m=/^(minLength|maxLength|min|max) /.exec(t)?.[1];return m?[m]:["type"]}function F(t){return JSON.parse(JSON.stringify(t))}function R(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(m=>({...m})):[]}}function U(t){const m={field:t.field,type:t.type};t.label&&(m.label=t.label),t.placeholder&&(m.placeholder=t.placeholder),t.required&&(m.required=!0),t.defaultEnabled&&(m.defaultValue=t.defaultValue);for(const p of["min","max"])t[p]!==""&&(m[p]=t.type==="number"?Number(t[p]):t[p]);for(const p of["minLength","maxLength"])t[p]!==""&&(m[p]=Number(t[p]));return t.type==="select"&&(m.options=t.options.map(p=>({...p}))),m}function q(t){const m=()=>JSON.stringify(t.document.template.params??[]),p=e.ref(m()),s=e.ref((t.document.template.params??[]).map(R)),g=e.ref(0),o=e.ref(""),n=e.computed(()=>({...Y.PARAM_EDITOR_MESSAGES,...t.messages})),h=e.computed(()=>s.value.map(U)),f=e.ref(JSON.stringify(s.value)),l=e.computed(()=>JSON.stringify(s.value)!==f.value),E=e.computed(()=>m()!==p.value),b=e.computed(()=>T.validateReportParamDefinitions(h.value)),N=e.computed(()=>{const i=new Map;for(const d of b.value){const y=Number(d.path.split(".").at(-1)),S=i.get(y)??[];S.push({message:d.message,controls:A(d.message)}),i.set(y,S)}return i}),x=e.computed(()=>N.value.keys().next().value),v=e.computed(()=>s.value[g.value]),_=e.computed(()=>b.value.filter(i=>i.path===`$.paramDefs.${g.value}`));function C(i){return(N.value.get(g.value)??[]).filter(d=>d.controls.includes(i)).map(d=>d.message)}const k=e.computed(()=>{const i=JSON.parse(p.value).map(y=>y.field),d=h.value.map(y=>y.field);return{added:d.filter(y=>y&&!i.includes(y)),removed:i.filter(y=>!d.includes(y))}});function D(){p.value=m(),s.value=(t.document.template.params??[]).map(R),g.value=Math.min(g.value,Math.max(0,s.value.length-1)),f.value=JSON.stringify(s.value),o.value=""}e.watch(m,()=>{l.value||D()});function I(){if(t.readonly)return;let i=s.value.length+1;for(;s.value.some(d=>d.field===`param${i}`);)i++;s.value.push(R({field:`param${i}`,type:"text"})),g.value=s.value.length-1}function L(){t.readonly||!v.value||(s.value.splice(g.value,1),g.value=Math.min(g.value,Math.max(0,s.value.length-1)))}function V(i){const d=g.value+i;if(t.readonly||d<0||d>=s.value.length)return;const y=s.value.splice(g.value,1)[0];s.value.splice(d,0,y),g.value=d}function M(i){t.readonly||!v.value||(v.value.type=i,v.value.min="",v.value.max="",v.value.minLength="",v.value.maxLength="")}function $(){if(t.readonly||E.value||b.value.length)return!1;try{return t.accept(F(h.value))?(p.value=JSON.stringify(h.value),f.value=JSON.stringify(s.value),o.value="",!0):(o.value=n.value.paramApplyFailed,!1)}catch(i){return o.value=i instanceof Error?i.message:String(i),!1}}return{m:n,rows:s,selected:g,current:v,definitions:h,issues:b,issuesByRow:N,firstIssueIndex:x,controlIssues:C,currentIssues:_,changes:k,pending:l,conflicted:E,error:o,reset:D,add:I,remove:L,move:V,setType:M,apply:$}}const j=["aria-label"],J={class:"mr-param-editor__directory"},H=["aria-label"],W=["aria-pressed","aria-label","onClick"],z={class:"mr-param-editor__directory-title"},G={key:0,class:"mr-param-editor__error-count","aria-hidden":"true"},K={key:0},Q=["disabled"],X={key:0,class:"mr-param-editor__validation",role:"status"},Z={class:"mr-param-editor__heading"},ee={class:"mr-param-editor__grid"},te=["aria-label","disabled"],ae=["id"],ne=["aria-label","disabled"],le=["value","aria-label","disabled"],re=["value"],oe=["id"],ie=["aria-label","disabled"],ue={class:"mr-param-editor__checks"},se=["disabled"],de=["disabled"],me={class:"mr-param-editor__default-label"},ce={class:"mr-param-editor__range"},pe=["value","aria-label","disabled"],fe=["value","aria-label","disabled"],ye={key:1},ge=["aria-label","disabled"],ve=["value"],be=["value","aria-label","type","min","max","step","disabled"],Ve=["id"],he=["value","aria-label","type","min","max","step","disabled","onInput"],Ee=["id"],ke=["value","aria-label","disabled","onInput"],Ne=["id"],_e={key:0,class:"mr-param-editor__hint"},De={key:1,class:"mr-param-editor__options"},Se={class:"mr-param-editor__option-head"},Be=["onUpdate:modelValue","aria-label","disabled"],xe=["onUpdate:modelValue","aria-label","disabled"],Ce=["aria-label","disabled","onClick"],Me=["id"],$e=["disabled"],Ie={class:"mr-param-editor__row-actions"},Le=["disabled"],Re=["disabled"],Te=["disabled"],Ye={class:"mr-param-editor__technical"},Oe={key:2,class:"mr-param-editor__empty"},Pe=["disabled"],we={key:3,class:"mr-param-editor__impact"},Ae={key:0},Fe={key:1},Ue={key:4,class:"mr-param-editor__errors",role:"alert"},qe=["disabled"],je=["disabled"],Je=e.defineComponent({__name:"ParamEditor",props:{document:{},readonly:{type:Boolean},messages:{},accept:{type:Function}},emits:["dirty"],setup(t,{expose:m,emit:p}){const s=t,g=p,o=q(s),{m:n,rows:h,selected:f,current:l,changes:E,pending:b,conflicted:N,error:x,issues:v,issuesByRow:_}=o,C=e.ref(),k=`mr-param-${e.getCurrentInstance()?.uid??0}`;e.watch(b,u=>g("dirty",u),{immediate:!0});function D(u){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}[u]}function I(){l.value&&!s.readonly&&l.value.options.push({value:"",label:""})}function L(u){s.readonly||l.value?.options.splice(u,1)}function V(u){const r=o.controlIssues(u).length>0;return{"aria-invalid":r?"true":void 0,"aria-describedby":r?`${k}-${f.value}-${u}`:void 0}}function M(u){return u==="year"?"number":u==="dateRange"?"date":["date","month","number"].includes(u)?u:"text"}function $(u){return u.target.value}function i(u,r){l.value&&!s.readonly&&(l.value[u]=$(r))}function d(u){return l.value?.defaultValue.split("/")[u]??""}function y(u,r){if(!l.value||s.readonly)return;const a=[d(0),d(1)];a[u]=$(r),l.value.defaultValue=a.some(Boolean)?a.join("/"):""}async function S(){const u=o.firstIssueIndex.value;if(u===void 0)return;f.value=u,await e.nextTick();const r=C.value?.querySelector('[aria-invalid="true"]');r?.focus({preventScroll:!0}),r?.scrollIntoView?.({block:"nearest"})}return m({pending:b,reset:o.reset,apply:o.apply,locateIssue:S}),(u,r)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-param-editor","aria-label":e.unref(n).paramsTool},[e.createElementVNode("aside",J,[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).paramsDirectory),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(h).length),1)]),e.createElementVNode("nav",{"aria-label":e.unref(n).paramsDirectory},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(a,c)=>(e.openBlock(),e.createElementBlock("button",{key:c,type:"button","aria-pressed":e.unref(f)===c,"aria-label":`${a.label||a.field||e.unref(n).paramUnnamed}${e.unref(_).get(c)?.length?` · ${e.unref(n).paramIssueCount} ${e.unref(_).get(c)?.length}`:""}`,class:e.normalizeClass({"has-errors":e.unref(_).has(c)}),onClick:B=>f.value=c},[e.createElementVNode("span",z,[e.createElementVNode("strong",null,e.toDisplayString(a.label||a.field||e.unref(n).paramUnnamed),1),e.unref(_).has(c)?(e.openBlock(),e.createElementBlock("span",G,e.toDisplayString(e.unref(_).get(c)?.length),1)):e.createCommentVNode("",!0)]),e.createElementVNode("small",null,[e.createTextVNode(e.toDisplayString(a.field)+" · "+e.toDisplayString(D(a.type)),1),a.required?(e.openBlock(),e.createElementBlock("span",K," *")):e.createCommentVNode("",!0)])],10,W))),128))],8,H),e.createElementVNode("button",{type:"button",class:"mr-param-editor__add",disabled:t.readonly,onClick:r[0]||(r[0]=(...a)=>e.unref(o).add&&e.unref(o).add(...a))},"+ "+e.toDisplayString(e.unref(n).paramAdd),9,Q),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).paramsDescription),1)]),e.createElementVNode("div",{ref_key:"main",ref:C,class:"mr-param-editor__main"},[e.unref(v).length?(e.openBlock(),e.createElementBlock("div",X,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramIssueCount)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(v).length),1)]),e.createElementVNode("button",{type:"button",onClick:S},e.toDisplayString(e.unref(n).paramLocateFirst),1)])):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("header",Z,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).label||e.unref(l).field||e.unref(n).paramUnnamed),1),e.createElementVNode("small",null,e.toDisplayString(D(e.unref(l).type)),1)]),e.createElementVNode("span",{class:e.normalizeClass({"is-pending":e.unref(b)||e.unref(v).length>0})},e.toDisplayString(e.unref(v).length?e.unref(n).paramInvalid:e.unref(b)?e.unref(n).paramPending:e.unref(n).paramReady),3)]),e.createElementVNode("div",ee,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramField),1),e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":r[1]||(r[1]=a=>e.unref(l).field=a),"aria-label":e.unref(n).paramField,disabled:t.readonly,autocomplete:"off"},V("field")),null,16,te),[[e.vModelDynamic,e.unref(l).field]]),e.unref(o).controlIssues("field").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${k}-${e.unref(f)}-field`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("field").join(";")),9,ae)):e.createCommentVNode("",!0)]),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,ne),[[e.vModelText,e.unref(l).label]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramType),1),e.createElementVNode("select",e.mergeProps({value:e.unref(l).type,"aria-label":e.unref(n).paramType,disabled:t.readonly},V("type"),{onChange:r[3]||(r[3]=a=>e.unref(o).setType(a.target.value))}),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(P),a=>(e.openBlock(),e.createElementBlock("option",{key:a,value:a},e.toDisplayString(D(a)),9,re))),128))],16,le),e.unref(o).controlIssues("type").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${k}-${e.unref(f)}-type`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("type").join(";")),9,oe)):e.createCommentVNode("",!0)]),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,ie),[[e.vModelText,e.unref(l).placeholder]])]),e.createElementVNode("div",ue,[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,se),[[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,de),[[e.vModelCheckbox,e.unref(l).defaultEnabled]]),e.createTextVNode(e.toDisplayString(e.unref(n).paramDefaultEnabled),1)])]),e.unref(l).defaultEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["mr-param-editor__default",{"is-range":e.unref(l).type==="dateRange"}])},[e.unref(l).type==="dateRange"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",me,e.toDisplayString(e.unref(n).paramDefault),1),e.createElementVNode("div",ce,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramRangeStart),1),e.createElementVNode("input",e.mergeProps({value:d(0),type:"date","aria-label":e.unref(n).paramRangeStart,disabled:t.readonly},V("defaultValue"),{onInput:r[7]||(r[7]=a=>y(0,a))}),null,16,pe)]),r[17]||(r[17]=e.createElementVNode("span",{"aria-hidden":"true"},"—",-1)),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).paramRangeEnd),1),e.createElementVNode("input",e.mergeProps({value:d(1),type:"date","aria-label":e.unref(n).paramRangeEnd,disabled:t.readonly},V("defaultValue"),{onInput:r[8]||(r[8]=a=>y(1,a))}),null,16,fe)])])],64)):(e.openBlock(),e.createElementBlock("label",ye,[e.createTextVNode(e.toDisplayString(e.unref(n).paramDefault),1),e.unref(l).type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",e.mergeProps({key:0,"onUpdate:modelValue":r[9]||(r[9]=a=>e.unref(l).defaultValue=a),"aria-label":e.unref(n).paramDefault,disabled:t.readonly},V("defaultValue")),[r[18]||(r[18]=e.createElementVNode("option",{value:""},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).options,(a,c)=>(e.openBlock(),e.createElementBlock("option",{key:c,value:a.value},e.toDisplayString(a.label||a.value),9,ve))),128))],16,ge)),[[e.vModelSelect,e.unref(l).defaultValue]]):(e.openBlock(),e.createElementBlock("input",e.mergeProps({key:1,value:e.unref(l).defaultValue,"aria-label":e.unref(n).paramDefault,type:M(e.unref(l).type),min:e.unref(l).type==="year"?1:void 0,max:e.unref(l).type==="year"?9999:void 0,step:e.unref(l).type==="year"?1:"any",disabled:t.readonly},V("defaultValue"),{onInput:r[10]||(r[10]=a=>i("defaultValue",a))}),null,16,be))])),e.unref(o).controlIssues("defaultValue").length?(e.openBlock(),e.createElementBlock("small",{key:2,id:`${k}-${e.unref(f)}-defaultValue`,class:"mr-param-editor__field-error mr-param-editor__errors",role:"alert"},e.toDisplayString(e.unref(o).controlIssues("defaultValue").join(";")),9,Ve)):e.createCommentVNode("",!0)],2)):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.createElementVNode("input",e.mergeProps({value:e.unref(l)[a],"aria-label":a==="min"?e.unref(n).paramMinimum:e.unref(n).paramMaximum,type:M(e.unref(l).type),min:e.unref(l).type==="year"?1:void 0,max:e.unref(l).type==="year"?9999:void 0,step:e.unref(l).type==="year"?1:"any",disabled:t.readonly},{ref_for:!0},V(a),{onInput:c=>i(a,c)}),null,16,he),e.unref(o).controlIssues(a).length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${k}-${e.unref(f)}-${a}`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues(a).join(";")),9,Ee)):e.createCommentVNode("",!0)])),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.createElementVNode("input",e.mergeProps({value:e.unref(l)[a],type:"number",min:"0",step:"1","aria-label":a==="minLength"?e.unref(n).paramMinLength:e.unref(n).paramMaxLength,disabled:t.readonly},{ref_for:!0},V(a),{onInput:c=>i(a,c)}),null,16,ke),e.unref(o).controlIssues(a).length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${k}-${e.unref(f)}-${a}`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues(a).join(";")),9,Ne)):e.createCommentVNode("",!0)])),64)):e.createCommentVNode("",!0)]),e.unref(l).type==="dateRange"?(e.openBlock(),e.createElementBlock("p",_e,e.toDisplayString(e.unref(n).paramRangeHint),1)):e.createCommentVNode("",!0),e.unref(l).type==="select"?(e.openBlock(),e.createElementBlock("fieldset",De,[e.createElementVNode("legend",null,e.toDisplayString(e.unref(n).paramOptions),1),e.createElementVNode("div",Se,[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,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"mr-param-editor__option"},[e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":B=>a.value=B,"aria-label":`${e.unref(n).paramOptionValue} ${c+1}`,disabled:t.readonly},{ref_for:!0},V("options")),null,16,Be),[[e.vModelDynamic,a.value]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B=>a.label=B,"aria-label":`${e.unref(n).paramOptionLabel} ${c+1}`,disabled:t.readonly},null,8,xe),[[e.vModelText,a.label]]),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(n).paramOptionRemove} ${c+1}`,disabled:t.readonly,onClick:B=>L(c)},"×",8,Ce)]))),128)),e.unref(o).controlIssues("options").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${k}-${e.unref(f)}-options`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("options").join(";")),9,Me)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:I},"+ "+e.toDisplayString(e.unref(n).paramOptionAdd),9,$e)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ie,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(f)===0,onClick:r[11]||(r[11]=a=>e.unref(o).move(-1))},"↑ "+e.toDisplayString(e.unref(n).paramMoveUp),9,Le),e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(f)===e.unref(h).length-1,onClick:r[12]||(r[12]=a=>e.unref(o).move(1))},"↓ "+e.toDisplayString(e.unref(n).paramMoveDown),9,Re),e.createElementVNode("button",{type:"button",class:"is-danger",disabled:t.readonly,onClick:r[13]||(r[13]=(...a)=>e.unref(o).remove&&e.unref(o).remove(...a))},e.toDisplayString(e.unref(n).paramRemove),9,Te)]),e.createElementVNode("details",Ye,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(n).paramWire),1),e.createElementVNode("code",null,e.toDisplayString(e.unref(w)[e.unref(l).type]),1)])],64)):(e.openBlock(),e.createElementBlock("div",Oe,[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[14]||(r[14]=(...a)=>e.unref(o).add&&e.unref(o).add(...a))},"+ "+e.toDisplayString(e.unref(n).paramAdd),9,Pe)])),e.unref(E).added.length||e.unref(E).removed.length?(e.openBlock(),e.createElementBlock("aside",we,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).paramChanges),1),e.unref(E).added.length?(e.openBlock(),e.createElementBlock("p",Ae,[e.createTextVNode(e.toDisplayString(e.unref(n).paramAdded)+":",1),e.createElementVNode("code",null,e.toDisplayString(e.unref(E).added.join(", ")),1)])):e.createCommentVNode("",!0),e.unref(E).removed.length?(e.openBlock(),e.createElementBlock("p",Fe,[e.createTextVNode(e.toDisplayString(e.unref(n).paramRemoved)+":",1),e.createElementVNode("code",null,e.toDisplayString(e.unref(E).removed.join(", ")),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(e.unref(n).paramRenameHint),1)])):e.createCommentVNode("",!0),e.unref(N)||e.unref(x)?(e.openBlock(),e.createElementBlock("p",Ue,e.toDisplayString(e.unref(N)?e.unref(n).paramConflict:e.unref(x)),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:!e.unref(b)&&!e.unref(N),onClick:r[15]||(r[15]=(...a)=>e.unref(o).reset&&e.unref(o).reset(...a))},e.toDisplayString(e.unref(n).paramRestore),9,qe),e.createElementVNode("button",{type:"button",class:"is-primary",disabled:t.readonly||!e.unref(b)||e.unref(N)||!!e.unref(v).length,onClick:r[16]||(r[16]=(...a)=>e.unref(o).apply&&e.unref(o).apply(...a))},e.toDisplayString(e.unref(n).paramApply),9,je)])],512)],8,j))}}),He=O._export_sfc(Je,[["__scopeId","data-v-d8a0f18a"]]);exports.default=He;
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { ref as C, computed as _, watch as Y, onBeforeUnmount as ne, defineComponent as le, openBlock as d, createElementBlock as m, unref as e, createElementVNode as u, toDisplayString as r, Fragment as j, renderList as ee, createTextVNode as X, createCommentVNode as I, normalizeClass as se, createVNode as ie, nextTick as te } from "vue";
|
|
2
|
+
import { a as ce, R as re } from "./config-B612mw0x.js";
|
|
3
|
+
import { validateReportParams as ae } from "@agile-team/mach-report";
|
|
4
|
+
import { i as oe, r as ue } from "./batch-mRqhhhjt.js";
|
|
5
|
+
import { REPORT_BATCH_MESSAGES as de } from "./designer.js";
|
|
6
|
+
import { _ as me } from "./_plugin-vue_export-helper-8SL1F89S.js";
|
|
7
|
+
function be(a) {
|
|
8
|
+
const p = {};
|
|
9
|
+
return !a || typeof a != "object" || (typeof a.instanceId == "string" && a.instanceId.length > 0 && a.instanceId.length <= 512 && (p.instanceId = a.instanceId), typeof a.label == "string" && (p.label = a.label.slice(0, 512))), p;
|
|
10
|
+
}
|
|
11
|
+
function fe(a) {
|
|
12
|
+
return Object.fromEntries((Array.isArray(a) ? a : []).filter((p) => p && typeof p.field == "string").map((p) => [p.field, p.defaultValue ?? ""]));
|
|
13
|
+
}
|
|
14
|
+
function Z(a) {
|
|
15
|
+
return (a instanceof Error ? a.message : String(a)).slice(0, 1e3);
|
|
16
|
+
}
|
|
17
|
+
function ve(a) {
|
|
18
|
+
try {
|
|
19
|
+
return { cases: oe(a.initialCases ?? [], a.maxCases ?? 100), error: "" };
|
|
20
|
+
} catch (p) {
|
|
21
|
+
return { cases: [], error: Z(p) };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function he(a) {
|
|
25
|
+
let p = 0;
|
|
26
|
+
const O = (n) => ({ key: ++p, item: { id: n.id, params: { ...n.params } }, status: "pending" }), M = ve(a), x = new Set(M.cases.map((n) => n.id));
|
|
27
|
+
let s = M.cases.length + 1;
|
|
28
|
+
const b = C(M.cases.map(O)), S = C(!1), g = C(!1), V = C(!1), E = C(M.error), A = C(), R = C({ completed: 0, total: 0, failed: 0, cancelled: 0 }), P = _(() => ({ ...de, ...a.messages })), F = _(() => b.value.map((n) => ae(a.paramDefs, n.item.params))), w = _(() => b.value.filter((n) => n.status === "failed").length), T = _(() => b.value.filter((n) => n.status === "pending" || n.status === "cancelled").length), L = _(() => b.value.filter((n) => n.status === "cancelled").length), y = _(() => a.maxCases ?? 100);
|
|
29
|
+
let $, v = 0;
|
|
30
|
+
function K(n = fe(a.paramDefs)) {
|
|
31
|
+
for (; x.has(`case-${s}`); ) s++;
|
|
32
|
+
return { id: `case-${s++}`, params: { ...n } };
|
|
33
|
+
}
|
|
34
|
+
function U(n) {
|
|
35
|
+
if (a.readonly || S.value) return;
|
|
36
|
+
if (b.value.length >= y.value) {
|
|
37
|
+
E.value = P.value.batchLimit.replace("{count}", String(y.value));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const i = O(K(n?.item.params));
|
|
41
|
+
return b.value.push(i), E.value = "", i;
|
|
42
|
+
}
|
|
43
|
+
function z(n) {
|
|
44
|
+
!S.value && !a.readonly && (b.value = b.value.filter((i) => i.key !== n));
|
|
45
|
+
}
|
|
46
|
+
function D(n, i) {
|
|
47
|
+
if (S.value || a.readonly) return;
|
|
48
|
+
const o = b.value.find((f) => f.key === n);
|
|
49
|
+
!o || o.status === "completed" || JSON.stringify(o.item.params) === JSON.stringify(i) || (o.item = o.submitted ? K(i) : { ...o.item, params: { ...i } }, o.submitted = !1, o.status = "pending", delete o.receipt, delete o.error);
|
|
50
|
+
}
|
|
51
|
+
function N() {
|
|
52
|
+
S.value && (g.value = !0, $?.abort());
|
|
53
|
+
}
|
|
54
|
+
function G(n) {
|
|
55
|
+
return b.value.filter((i) => n ? i.status === "failed" : i.status === "pending" || i.status === "cancelled");
|
|
56
|
+
}
|
|
57
|
+
function H(n) {
|
|
58
|
+
const i = n.map((f) => ae(a.paramDefs, f.item.params)), o = i.findIndex((f) => !f.ok);
|
|
59
|
+
if (o >= 0) {
|
|
60
|
+
A.value = n[o].key, E.value = P.value.batchInvalid;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
return n.map((f, B) => ({ id: f.item.id, params: { ...i[B].values } }));
|
|
64
|
+
}
|
|
65
|
+
function Q(n, i) {
|
|
66
|
+
n.status = i.status, i.status === "completed" && (n.receipt = i.value), i.status === "failed" && (n.error = i.error.message.slice(0, 1e3));
|
|
67
|
+
}
|
|
68
|
+
async function q(n, i, o, f, B) {
|
|
69
|
+
f === v && (n.status = "running");
|
|
70
|
+
try {
|
|
71
|
+
const h = be(await B(i, o));
|
|
72
|
+
return f === v && (n.receipt = h, n.status = "completed"), h;
|
|
73
|
+
} catch (h) {
|
|
74
|
+
throw f === v && (n.status = o.signal.aborted ? "cancelled" : "failed", n.error = Z(h)), h;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function W(n = !1) {
|
|
78
|
+
if (a.readonly || S.value) return;
|
|
79
|
+
const i = G(n);
|
|
80
|
+
if (!i.length) return;
|
|
81
|
+
V.value = !0, E.value = "", A.value = void 0;
|
|
82
|
+
const o = H(i);
|
|
83
|
+
if (!o) return;
|
|
84
|
+
const f = ++v, B = a.execute;
|
|
85
|
+
$ = new AbortController(), S.value = !0, g.value = !1, R.value = { completed: 0, total: i.length, failed: 0, cancelled: 0 };
|
|
86
|
+
for (const h of i)
|
|
87
|
+
h.status = "pending", h.submitted = !0, delete h.receipt, delete h.error;
|
|
88
|
+
try {
|
|
89
|
+
const h = await ue(o, (c, l) => q(i[l.index], c, l, f, B), {
|
|
90
|
+
concurrency: a.concurrency,
|
|
91
|
+
maxCases: y.value,
|
|
92
|
+
signal: $.signal,
|
|
93
|
+
onProgress: (c) => {
|
|
94
|
+
f === v && (R.value = c);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
f === v && h.forEach((c, l) => Q(i[l], c));
|
|
98
|
+
} catch (h) {
|
|
99
|
+
f === v && (E.value = Z(h));
|
|
100
|
+
} finally {
|
|
101
|
+
f === v && (S.value = !1, g.value = !1, $ = void 0);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return Y(() => [JSON.stringify(a.paramDefs), a.execute, a.readonly, a.concurrency, a.maxCases], () => {
|
|
105
|
+
S.value && (N(), E.value = P.value.batchChanged);
|
|
106
|
+
}), ne(() => {
|
|
107
|
+
v++, $?.abort();
|
|
108
|
+
}), { m: P, rows: b, validations: F, running: S, cancelling: g, attempted: V, error: E, progress: R, failures: w, unfinished: T, cancelled: L, maximum: y, invalidKey: A, add: U, remove: z, setParams: D, cancel: N, run: W };
|
|
109
|
+
}
|
|
110
|
+
const pe = ["aria-label", "aria-busy"], ye = { class: "mr-batch__heading" }, ge = ["disabled"], _e = {
|
|
111
|
+
key: 0,
|
|
112
|
+
class: "mr-batch__toolbar"
|
|
113
|
+
}, ke = ["aria-label"], Ce = ["aria-pressed", "onClick"], xe = ["disabled"], Se = {
|
|
114
|
+
key: 1,
|
|
115
|
+
class: "mr-batch__empty"
|
|
116
|
+
}, Re = {
|
|
117
|
+
key: 2,
|
|
118
|
+
class: "mr-batch__empty"
|
|
119
|
+
}, $e = {
|
|
120
|
+
key: 3,
|
|
121
|
+
class: "mr-batch__rows"
|
|
122
|
+
}, Ie = ["data-batch-key", "aria-label"], Ee = {
|
|
123
|
+
class: "mr-batch__status",
|
|
124
|
+
role: "status"
|
|
125
|
+
}, Pe = { class: "mr-batch__row-actions" }, De = ["aria-label", "disabled", "onClick"], Ne = ["aria-label", "disabled", "onClick"], Be = {
|
|
126
|
+
key: 0,
|
|
127
|
+
class: "mr-batch__hint"
|
|
128
|
+
}, Me = {
|
|
129
|
+
key: 1,
|
|
130
|
+
class: "mr-batch__row-error",
|
|
131
|
+
role: "alert"
|
|
132
|
+
}, Ae = {
|
|
133
|
+
key: 2,
|
|
134
|
+
class: "mr-batch__receipt"
|
|
135
|
+
}, Oe = ["title"], Ve = ["onClick"], Fe = {
|
|
136
|
+
key: 4,
|
|
137
|
+
class: "mr-batch__error",
|
|
138
|
+
role: "alert"
|
|
139
|
+
}, Te = {
|
|
140
|
+
class: "mr-batch__progress",
|
|
141
|
+
"aria-live": "polite"
|
|
142
|
+
}, Ke = ["value", "max", "aria-label"], Le = { key: 1 }, Ue = { class: "mr-batch__actions" }, qe = ["disabled"], Je = ["disabled"], je = ["disabled"], we = ["aria-label"], ze = ["disabled"], Ge = ["disabled"], He = /* @__PURE__ */ le({
|
|
143
|
+
__name: "ReportBatchPanel",
|
|
144
|
+
props: {
|
|
145
|
+
paramDefs: {},
|
|
146
|
+
execute: { type: Function },
|
|
147
|
+
initialCases: {},
|
|
148
|
+
readonly: { type: Boolean },
|
|
149
|
+
concurrency: {},
|
|
150
|
+
maxCases: {},
|
|
151
|
+
messages: {},
|
|
152
|
+
paramMessages: {}
|
|
153
|
+
},
|
|
154
|
+
emits: ["open-instance"],
|
|
155
|
+
setup(a, { emit: p }) {
|
|
156
|
+
const O = a, M = p, x = he(O), { m: s, rows: b, validations: S, running: g, cancelling: V, attempted: E, error: A, progress: R, failures: P, unfinished: F, cancelled: w, maximum: T } = x, L = C(), y = C(1), $ = 10, v = C("all"), K = C(), U = C(), z = _(() => b.value.map((c, l) => ({ row: c, index: l }))), D = _(() => z.value.filter(({ row: c }) => v.value === "all" || c.status === v.value)), N = _(() => Math.max(1, Math.ceil(D.value.length / $))), G = _(() => D.value.slice((y.value - 1) * $, y.value * $)), H = _(() => s.value.batchPage.replace("{page}", String(y.value)).replace("{pages}", String(N.value)).replace("{total}", String(D.value.length)));
|
|
157
|
+
Y(N, (c) => {
|
|
158
|
+
y.value = Math.min(y.value, c);
|
|
159
|
+
}), Y(v, () => {
|
|
160
|
+
y.value = 1;
|
|
161
|
+
});
|
|
162
|
+
const Q = _(() => ({ ...ce, ...O.paramMessages })), q = _(() => s.value.batchProgress.replace("{completed}", String(R.value.completed)).replace("{total}", String(R.value.total)).replace("{failed}", String(R.value.failed)).replace("{cancelled}", String(R.value.cancelled))), W = _(() => {
|
|
163
|
+
const c = { all: b.value.length, pending: 0, running: 0, completed: 0, failed: 0, cancelled: 0 };
|
|
164
|
+
for (const l of b.value) c[l.status]++;
|
|
165
|
+
return Object.keys(c).filter((l) => l !== "running" || g.value || c.running > 0 || v.value === "running").map((l) => ({ value: l, count: c[l], label: l === "all" ? s.value.batchAll : n({ status: l }) }));
|
|
166
|
+
});
|
|
167
|
+
function n(c) {
|
|
168
|
+
return { pending: s.value.batchPending, running: s.value.batchRunning, completed: s.value.batchCompleted, failed: s.value.batchFailed, cancelled: s.value.batchCancelled }[c.status];
|
|
169
|
+
}
|
|
170
|
+
async function i(c) {
|
|
171
|
+
const l = x.add(c);
|
|
172
|
+
l && (await f(l.key, "all"), o(l.key)?.querySelector(".mrp-param-input")?.focus());
|
|
173
|
+
}
|
|
174
|
+
function o(c) {
|
|
175
|
+
return L.value?.querySelector(`[data-batch-key="${c}"]`);
|
|
176
|
+
}
|
|
177
|
+
async function f(c, l) {
|
|
178
|
+
v.value = l, await te();
|
|
179
|
+
const t = D.value.findIndex(({ row: k }) => k.key === c);
|
|
180
|
+
t < 0 || (y.value = Math.floor(t / $) + 1, K.value = c, await te());
|
|
181
|
+
}
|
|
182
|
+
async function B() {
|
|
183
|
+
const c = b.value.filter((k) => k.status === "failed"), l = c.findIndex((k) => k.key === U.value), t = c[(l + 1) % c.length];
|
|
184
|
+
t && (U.value = t.key, await f(t.key, "failed"), o(t.key)?.focus());
|
|
185
|
+
}
|
|
186
|
+
async function h(c = !1) {
|
|
187
|
+
const l = x.run(c);
|
|
188
|
+
if (x.invalidKey.value !== void 0) {
|
|
189
|
+
const t = x.invalidKey.value;
|
|
190
|
+
await f(t, "all"), o(t)?.querySelector('[aria-invalid="true"]')?.focus();
|
|
191
|
+
}
|
|
192
|
+
await l;
|
|
193
|
+
}
|
|
194
|
+
return (c, l) => (d(), m("section", {
|
|
195
|
+
ref_key: "root",
|
|
196
|
+
ref: L,
|
|
197
|
+
class: "mr-batch",
|
|
198
|
+
"aria-label": e(s).batchTitle,
|
|
199
|
+
"aria-busy": e(g)
|
|
200
|
+
}, [
|
|
201
|
+
u("header", ye, [
|
|
202
|
+
u("div", null, [
|
|
203
|
+
u("strong", null, r(e(s).batchTitle), 1),
|
|
204
|
+
u("p", null, r(e(s).batchDescription), 1)
|
|
205
|
+
]),
|
|
206
|
+
u("button", {
|
|
207
|
+
type: "button",
|
|
208
|
+
disabled: a.readonly || e(g) || e(b).length >= e(T),
|
|
209
|
+
onClick: l[0] || (l[0] = (t) => i())
|
|
210
|
+
}, "+ " + r(e(s).batchAdd), 9, ge)
|
|
211
|
+
]),
|
|
212
|
+
e(b).length ? (d(), m("div", _e, [
|
|
213
|
+
u("div", {
|
|
214
|
+
class: "mr-batch__filters",
|
|
215
|
+
role: "group",
|
|
216
|
+
"aria-label": e(s).batchFilter
|
|
217
|
+
}, [
|
|
218
|
+
(d(!0), m(j, null, ee(W.value, (t) => (d(), m("button", {
|
|
219
|
+
key: t.value,
|
|
220
|
+
type: "button",
|
|
221
|
+
"aria-pressed": v.value === t.value,
|
|
222
|
+
onClick: (k) => v.value = t.value
|
|
223
|
+
}, [
|
|
224
|
+
X(r(t.label) + " ", 1),
|
|
225
|
+
u("span", null, r(t.count), 1)
|
|
226
|
+
], 8, Ce))), 128))
|
|
227
|
+
], 8, ke),
|
|
228
|
+
e(P) ? (d(), m("button", {
|
|
229
|
+
key: 0,
|
|
230
|
+
type: "button",
|
|
231
|
+
class: "mr-batch__next-failure",
|
|
232
|
+
disabled: e(g),
|
|
233
|
+
onClick: B
|
|
234
|
+
}, r(e(s).batchNextFailure) + " ↓", 9, xe)) : I("", !0)
|
|
235
|
+
])) : I("", !0),
|
|
236
|
+
e(b).length ? D.value.length ? (d(), m("div", $e, [
|
|
237
|
+
(d(!0), m(j, null, ee(G.value, ({ row: t, index: k }) => (d(), m("article", {
|
|
238
|
+
key: t.key,
|
|
239
|
+
class: se(["mr-batch__row", [`is-${t.status}`, { "is-located": t.key === K.value }]]),
|
|
240
|
+
"data-batch-key": t.key,
|
|
241
|
+
tabindex: "-1",
|
|
242
|
+
"aria-label": `${e(s).batchCase} ${k + 1} · ${n(t)}`
|
|
243
|
+
}, [
|
|
244
|
+
u("header", null, [
|
|
245
|
+
u("div", null, [
|
|
246
|
+
u("strong", null, r(e(s).batchCase) + " " + r(k + 1), 1),
|
|
247
|
+
u("span", Ee, r(n(t)), 1)
|
|
248
|
+
]),
|
|
249
|
+
u("div", Pe, [
|
|
250
|
+
u("button", {
|
|
251
|
+
type: "button",
|
|
252
|
+
"aria-label": `${t.status === "completed" ? e(s).batchDuplicateCompleted : e(s).batchDuplicate} ${k + 1}`,
|
|
253
|
+
disabled: a.readonly || e(g) || e(b).length >= e(T),
|
|
254
|
+
onClick: (J) => i(t)
|
|
255
|
+
}, r(t.status === "completed" ? e(s).batchDuplicateCompleted : e(s).batchDuplicate), 9, De),
|
|
256
|
+
u("button", {
|
|
257
|
+
type: "button",
|
|
258
|
+
"aria-label": `${e(s).batchRemove} ${k + 1}`,
|
|
259
|
+
disabled: a.readonly || e(g),
|
|
260
|
+
onClick: (J) => e(x).remove(t.key)
|
|
261
|
+
}, "×", 8, Ne)
|
|
262
|
+
])
|
|
263
|
+
]),
|
|
264
|
+
ie(re, {
|
|
265
|
+
defs: a.paramDefs,
|
|
266
|
+
"model-value": t.item.params,
|
|
267
|
+
messages: Q.value,
|
|
268
|
+
attempted: e(E),
|
|
269
|
+
issues: e(S)[k]?.issues,
|
|
270
|
+
"show-actions": !1,
|
|
271
|
+
"show-title": !1,
|
|
272
|
+
disabled: a.readonly || e(g) || t.status === "completed",
|
|
273
|
+
"onUpdate:modelValue": (J) => e(x).setParams(t.key, J)
|
|
274
|
+
}, null, 8, ["defs", "model-value", "messages", "attempted", "issues", "disabled", "onUpdate:modelValue"]),
|
|
275
|
+
t.status === "completed" ? (d(), m("p", Be, r(e(s).batchCompletedHint), 1)) : I("", !0),
|
|
276
|
+
t.status === "failed" && t.error ? (d(), m("p", Me, r(t.error), 1)) : I("", !0),
|
|
277
|
+
t.status === "completed" ? (d(), m("div", Ae, [
|
|
278
|
+
u("span", {
|
|
279
|
+
title: t.receipt?.label || t.receipt?.instanceId
|
|
280
|
+
}, r(t.receipt?.label || (t.receipt?.instanceId ? t.receipt.instanceId : e(s).batchNoInstance)), 9, Oe),
|
|
281
|
+
t.receipt?.instanceId ? (d(), m("button", {
|
|
282
|
+
key: 0,
|
|
283
|
+
type: "button",
|
|
284
|
+
onClick: (J) => M("open-instance", { ...t.receipt })
|
|
285
|
+
}, r(e(s).batchOpen) + " ↗", 9, Ve)) : I("", !0)
|
|
286
|
+
])) : I("", !0)
|
|
287
|
+
], 10, Ie))), 128))
|
|
288
|
+
])) : (d(), m("div", Re, r(e(s).batchNoMatches), 1)) : (d(), m("div", Se, r(e(s).batchEmpty), 1)),
|
|
289
|
+
e(A) ? (d(), m("p", Fe, r(e(A)), 1)) : I("", !0),
|
|
290
|
+
u("footer", null, [
|
|
291
|
+
u("div", Te, [
|
|
292
|
+
e(R).total ? (d(), m(j, { key: 0 }, [
|
|
293
|
+
u("progress", {
|
|
294
|
+
value: e(R).completed,
|
|
295
|
+
max: e(R).total,
|
|
296
|
+
"aria-label": q.value
|
|
297
|
+
}, null, 8, Ke),
|
|
298
|
+
u("span", null, r(q.value), 1)
|
|
299
|
+
], 64)) : (d(), m("span", Le, r(e(b).length) + " / " + r(e(T)), 1))
|
|
300
|
+
]),
|
|
301
|
+
u("div", Ue, [
|
|
302
|
+
e(P) && !e(g) ? (d(), m("button", {
|
|
303
|
+
key: 0,
|
|
304
|
+
type: "button",
|
|
305
|
+
disabled: a.readonly,
|
|
306
|
+
onClick: l[1] || (l[1] = (t) => h(!0))
|
|
307
|
+
}, r(e(s).batchRetry) + " (" + r(e(P)) + ")", 9, qe)) : I("", !0),
|
|
308
|
+
e(g) ? (d(), m("button", {
|
|
309
|
+
key: 1,
|
|
310
|
+
type: "button",
|
|
311
|
+
disabled: e(V),
|
|
312
|
+
onClick: l[2] || (l[2] = //@ts-ignore
|
|
313
|
+
(...t) => e(x).cancel && e(x).cancel(...t))
|
|
314
|
+
}, r(e(V) ? e(s).batchCancelling : e(s).batchCancel), 9, Je)) : (d(), m("button", {
|
|
315
|
+
key: 2,
|
|
316
|
+
type: "button",
|
|
317
|
+
class: "is-primary",
|
|
318
|
+
disabled: a.readonly || !e(F),
|
|
319
|
+
onClick: l[3] || (l[3] = (t) => h())
|
|
320
|
+
}, [
|
|
321
|
+
X(r(e(w) ? e(s).batchContinue : e(s).batchRun), 1),
|
|
322
|
+
e(F) ? (d(), m(j, { key: 0 }, [
|
|
323
|
+
X(" (" + r(e(F)) + ")", 1)
|
|
324
|
+
], 64)) : I("", !0)
|
|
325
|
+
], 8, je))
|
|
326
|
+
]),
|
|
327
|
+
N.value > 1 ? (d(), m("nav", {
|
|
328
|
+
key: 0,
|
|
329
|
+
class: "mr-batch__pagination",
|
|
330
|
+
"aria-label": e(s).batchPages
|
|
331
|
+
}, [
|
|
332
|
+
u("span", null, r(H.value), 1),
|
|
333
|
+
u("button", {
|
|
334
|
+
type: "button",
|
|
335
|
+
disabled: y.value <= 1,
|
|
336
|
+
onClick: l[4] || (l[4] = (t) => y.value--)
|
|
337
|
+
}, r(e(s).batchPrevious), 9, ze),
|
|
338
|
+
u("button", {
|
|
339
|
+
type: "button",
|
|
340
|
+
disabled: y.value >= N.value,
|
|
341
|
+
onClick: l[5] || (l[5] = (t) => y.value++)
|
|
342
|
+
}, r(e(s).batchNext), 9, Ge)
|
|
343
|
+
], 8, we)) : I("", !0)
|
|
344
|
+
])
|
|
345
|
+
], 8, pe));
|
|
346
|
+
}
|
|
347
|
+
}), tt = /* @__PURE__ */ me(He, [["__scopeId", "data-v-45980136"]]);
|
|
348
|
+
export {
|
|
349
|
+
tt as default
|
|
350
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),j=require("./config-BRoLo2oj.cjs"),H=require("@agile-team/mach-report"),J=require("./batch-Bt3Fd27Z.cjs"),z=require("./designer.cjs"),G=require("./_plugin-vue_export-helper-BLmdZLlg.cjs");function Q(a){const f={};return!a||typeof a!="object"||(typeof a.instanceId=="string"&&a.instanceId.length>0&&a.instanceId.length<=512&&(f.instanceId=a.instanceId),typeof a.label=="string"&&(f.label=a.label.slice(0,512))),f}function W(a){return Object.fromEntries((Array.isArray(a)?a:[]).filter(f=>f&&typeof f.field=="string").map(f=>[f.field,f.defaultValue??""]))}function U(a){return(a instanceof Error?a.message:String(a)).slice(0,1e3)}function X(a){try{return{cases:J.snapshotReportBatchCases(a.initialCases??[],a.maxCases??100),error:""}}catch(f){return{cases:[],error:U(f)}}}function Y(a){let f=0;const D=n=>({key:++f,item:{id:n.id,params:{...n.params}},status:"pending"}),N=X(a),y=new Set(N.cases.map(n=>n.id));let r=N.cases.length+1;const i=e.ref(N.cases.map(D)),h=e.ref(!1),b=e.ref(!1),x=e.ref(!1),_=e.ref(N.error),V=e.ref(),g=e.ref({completed:0,total:0,failed:0,cancelled:0}),E=e.computed(()=>({...z.REPORT_BATCH_MESSAGES,...a.messages})),R=e.computed(()=>i.value.map(n=>H.validateReportParams(a.paramDefs,n.item.params))),q=e.computed(()=>i.value.filter(n=>n.status==="failed").length),$=e.computed(()=>i.value.filter(n=>n.status==="pending"||n.status==="cancelled").length),P=e.computed(()=>i.value.filter(n=>n.status==="cancelled").length),p=e.computed(()=>a.maxCases??100);let k,d=0;function I(n=W(a.paramDefs)){for(;y.has(`case-${r}`);)r++;return{id:`case-${r++}`,params:{...n}}}function M(n){if(a.readonly||h.value)return;if(i.value.length>=p.value){_.value=E.value.batchLimit.replace("{count}",String(p.value));return}const s=D(I(n?.item.params));return i.value.push(s),_.value="",s}function A(n){!h.value&&!a.readonly&&(i.value=i.value.filter(s=>s.key!==n))}function S(n,s){if(h.value||a.readonly)return;const o=i.value.find(u=>u.key===n);!o||o.status==="completed"||JSON.stringify(o.item.params)===JSON.stringify(s)||(o.item=o.submitted?I(s):{...o.item,params:{...s}},o.submitted=!1,o.status="pending",delete o.receipt,delete o.error)}function B(){h.value&&(b.value=!0,k?.abort())}function O(n){return i.value.filter(s=>n?s.status==="failed":s.status==="pending"||s.status==="cancelled")}function K(n){const s=n.map(u=>H.validateReportParams(a.paramDefs,u.item.params)),o=s.findIndex(u=>!u.ok);if(o>=0){V.value=n[o].key,_.value=E.value.batchInvalid;return}return n.map((u,C)=>({id:u.item.id,params:{...s[C].values}}))}function L(n,s){n.status=s.status,s.status==="completed"&&(n.receipt=s.value),s.status==="failed"&&(n.error=s.error.message.slice(0,1e3))}async function T(n,s,o,u,C){u===d&&(n.status="running");try{const m=Q(await C(s,o));return u===d&&(n.receipt=m,n.status="completed"),m}catch(m){throw u===d&&(n.status=o.signal.aborted?"cancelled":"failed",n.error=U(m)),m}}async function w(n=!1){if(a.readonly||h.value)return;const s=O(n);if(!s.length)return;x.value=!0,_.value="",V.value=void 0;const o=K(s);if(!o)return;const u=++d,C=a.execute;k=new AbortController,h.value=!0,b.value=!1,g.value={completed:0,total:s.length,failed:0,cancelled:0};for(const m of s)m.status="pending",m.submitted=!0,delete m.receipt,delete m.error;try{const m=await J.runReportBatch(o,(c,l)=>T(s[l.index],c,l,u,C),{concurrency:a.concurrency,maxCases:p.value,signal:k.signal,onProgress:c=>{u===d&&(g.value=c)}});u===d&&m.forEach((c,l)=>L(s[l],c))}catch(m){u===d&&(_.value=U(m))}finally{u===d&&(h.value=!1,b.value=!1,k=void 0)}}return e.watch(()=>[JSON.stringify(a.paramDefs),a.execute,a.readonly,a.concurrency,a.maxCases],()=>{h.value&&(B(),_.value=E.value.batchChanged)}),e.onBeforeUnmount(()=>{d++,k?.abort()}),{m:E,rows:i,validations:R,running:h,cancelling:b,attempted:x,error:_,progress:g,failures:q,unfinished:$,cancelled:P,maximum:p,invalidKey:V,add:M,remove:A,setParams:S,cancel:B,run:w}}const Z=["aria-label","aria-busy"],ee={class:"mr-batch__heading"},te=["disabled"],ae={key:0,class:"mr-batch__toolbar"},ne=["aria-label"],le=["aria-pressed","onClick"],re=["disabled"],se={key:1,class:"mr-batch__empty"},ce={key:2,class:"mr-batch__empty"},oe={key:3,class:"mr-batch__rows"},ie=["data-batch-key","aria-label"],ue={class:"mr-batch__status",role:"status"},de={class:"mr-batch__row-actions"},me=["aria-label","disabled","onClick"],fe=["aria-label","disabled","onClick"],pe={key:0,class:"mr-batch__hint"},be={key:1,class:"mr-batch__row-error",role:"alert"},ve={key:2,class:"mr-batch__receipt"},ye=["title"],he=["onClick"],ge={key:4,class:"mr-batch__error",role:"alert"},ke={class:"mr-batch__progress","aria-live":"polite"},_e=["value","max","aria-label"],Ee={key:1},Se={class:"mr-batch__actions"},Be=["disabled"],Ce=["disabled"],Ne=["disabled"],Ve=["aria-label"],De=["disabled"],xe=["disabled"],Re=e.defineComponent({__name:"ReportBatchPanel",props:{paramDefs:{},execute:{type:Function},initialCases:{},readonly:{type:Boolean},concurrency:{},maxCases:{},messages:{},paramMessages:{}},emits:["open-instance"],setup(a,{emit:f}){const D=a,N=f,y=Y(D),{m:r,rows:i,validations:h,running:b,cancelling:x,attempted:_,error:V,progress:g,failures:E,unfinished:R,cancelled:q,maximum:$}=y,P=e.ref(),p=e.ref(1),k=10,d=e.ref("all"),I=e.ref(),M=e.ref(),A=e.computed(()=>i.value.map((c,l)=>({row:c,index:l}))),S=e.computed(()=>A.value.filter(({row:c})=>d.value==="all"||c.status===d.value)),B=e.computed(()=>Math.max(1,Math.ceil(S.value.length/k))),O=e.computed(()=>S.value.slice((p.value-1)*k,p.value*k)),K=e.computed(()=>r.value.batchPage.replace("{page}",String(p.value)).replace("{pages}",String(B.value)).replace("{total}",String(S.value.length)));e.watch(B,c=>{p.value=Math.min(p.value,c)}),e.watch(d,()=>{p.value=1});const L=e.computed(()=>({...j.DEFAULT_MESSAGES,...D.paramMessages})),T=e.computed(()=>r.value.batchProgress.replace("{completed}",String(g.value.completed)).replace("{total}",String(g.value.total)).replace("{failed}",String(g.value.failed)).replace("{cancelled}",String(g.value.cancelled))),w=e.computed(()=>{const c={all:i.value.length,pending:0,running:0,completed:0,failed:0,cancelled:0};for(const l of i.value)c[l.status]++;return Object.keys(c).filter(l=>l!=="running"||b.value||c.running>0||d.value==="running").map(l=>({value:l,count:c[l],label:l==="all"?r.value.batchAll:n({status:l})}))});function n(c){return{pending:r.value.batchPending,running:r.value.batchRunning,completed:r.value.batchCompleted,failed:r.value.batchFailed,cancelled:r.value.batchCancelled}[c.status]}async function s(c){const l=y.add(c);l&&(await u(l.key,"all"),o(l.key)?.querySelector(".mrp-param-input")?.focus())}function o(c){return P.value?.querySelector(`[data-batch-key="${c}"]`)}async function u(c,l){d.value=l,await e.nextTick();const t=S.value.findIndex(({row:v})=>v.key===c);t<0||(p.value=Math.floor(t/k)+1,I.value=c,await e.nextTick())}async function C(){const c=i.value.filter(v=>v.status==="failed"),l=c.findIndex(v=>v.key===M.value),t=c[(l+1)%c.length];t&&(M.value=t.key,await u(t.key,"failed"),o(t.key)?.focus())}async function m(c=!1){const l=y.run(c);if(y.invalidKey.value!==void 0){const t=y.invalidKey.value;await u(t,"all"),o(t)?.querySelector('[aria-invalid="true"]')?.focus()}await l}return(c,l)=>(e.openBlock(),e.createElementBlock("section",{ref_key:"root",ref:P,class:"mr-batch","aria-label":e.unref(r).batchTitle,"aria-busy":e.unref(b)},[e.createElementVNode("header",ee,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(r).batchTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(r).batchDescription),1)]),e.createElementVNode("button",{type:"button",disabled:a.readonly||e.unref(b)||e.unref(i).length>=e.unref($),onClick:l[0]||(l[0]=t=>s())},"+ "+e.toDisplayString(e.unref(r).batchAdd),9,te)]),e.unref(i).length?(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("div",{class:"mr-batch__filters",role:"group","aria-label":e.unref(r).batchFilter},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,t=>(e.openBlock(),e.createElementBlock("button",{key:t.value,type:"button","aria-pressed":d.value===t.value,onClick:v=>d.value=t.value},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),e.createElementVNode("span",null,e.toDisplayString(t.count),1)],8,le))),128))],8,ne),e.unref(E)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-batch__next-failure",disabled:e.unref(b),onClick:C},e.toDisplayString(e.unref(r).batchNextFailure)+" ↓",9,re)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(i).length?S.value.length?(e.openBlock(),e.createElementBlock("div",oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,({row:t,index:v})=>(e.openBlock(),e.createElementBlock("article",{key:t.key,class:e.normalizeClass(["mr-batch__row",[`is-${t.status}`,{"is-located":t.key===I.value}]]),"data-batch-key":t.key,tabindex:"-1","aria-label":`${e.unref(r).batchCase} ${v+1} · ${n(t)}`},[e.createElementVNode("header",null,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(r).batchCase)+" "+e.toDisplayString(v+1),1),e.createElementVNode("span",ue,e.toDisplayString(n(t)),1)]),e.createElementVNode("div",de,[e.createElementVNode("button",{type:"button","aria-label":`${t.status==="completed"?e.unref(r).batchDuplicateCompleted:e.unref(r).batchDuplicate} ${v+1}`,disabled:a.readonly||e.unref(b)||e.unref(i).length>=e.unref($),onClick:F=>s(t)},e.toDisplayString(t.status==="completed"?e.unref(r).batchDuplicateCompleted:e.unref(r).batchDuplicate),9,me),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(r).batchRemove} ${v+1}`,disabled:a.readonly||e.unref(b),onClick:F=>e.unref(y).remove(t.key)},"×",8,fe)])]),e.createVNode(j.ReportParamPanel,{defs:a.paramDefs,"model-value":t.item.params,messages:L.value,attempted:e.unref(_),issues:e.unref(h)[v]?.issues,"show-actions":!1,"show-title":!1,disabled:a.readonly||e.unref(b)||t.status==="completed","onUpdate:modelValue":F=>e.unref(y).setParams(t.key,F)},null,8,["defs","model-value","messages","attempted","issues","disabled","onUpdate:modelValue"]),t.status==="completed"?(e.openBlock(),e.createElementBlock("p",pe,e.toDisplayString(e.unref(r).batchCompletedHint),1)):e.createCommentVNode("",!0),t.status==="failed"&&t.error?(e.openBlock(),e.createElementBlock("p",be,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0),t.status==="completed"?(e.openBlock(),e.createElementBlock("div",ve,[e.createElementVNode("span",{title:t.receipt?.label||t.receipt?.instanceId},e.toDisplayString(t.receipt?.label||(t.receipt?.instanceId?t.receipt.instanceId:e.unref(r).batchNoInstance)),9,ye),t.receipt?.instanceId?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:F=>N("open-instance",{...t.receipt})},e.toDisplayString(e.unref(r).batchOpen)+" ↗",9,he)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],10,ie))),128))])):(e.openBlock(),e.createElementBlock("div",ce,e.toDisplayString(e.unref(r).batchNoMatches),1)):(e.openBlock(),e.createElementBlock("div",se,e.toDisplayString(e.unref(r).batchEmpty),1)),e.unref(V)?(e.openBlock(),e.createElementBlock("p",ge,e.toDisplayString(e.unref(V)),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",null,[e.createElementVNode("div",ke,[e.unref(g).total?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("progress",{value:e.unref(g).completed,max:e.unref(g).total,"aria-label":T.value},null,8,_e),e.createElementVNode("span",null,e.toDisplayString(T.value),1)],64)):(e.openBlock(),e.createElementBlock("span",Ee,e.toDisplayString(e.unref(i).length)+" / "+e.toDisplayString(e.unref($)),1))]),e.createElementVNode("div",Se,[e.unref(E)&&!e.unref(b)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:a.readonly,onClick:l[1]||(l[1]=t=>m(!0))},e.toDisplayString(e.unref(r).batchRetry)+" ("+e.toDisplayString(e.unref(E))+")",9,Be)):e.createCommentVNode("",!0),e.unref(b)?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:e.unref(x),onClick:l[2]||(l[2]=(...t)=>e.unref(y).cancel&&e.unref(y).cancel(...t))},e.toDisplayString(e.unref(x)?e.unref(r).batchCancelling:e.unref(r).batchCancel),9,Ce)):(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"is-primary",disabled:a.readonly||!e.unref(R),onClick:l[3]||(l[3]=t=>m())},[e.createTextVNode(e.toDisplayString(e.unref(q)?e.unref(r).batchContinue:e.unref(r).batchRun),1),e.unref(R)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" ("+e.toDisplayString(e.unref(R))+")",1)],64)):e.createCommentVNode("",!0)],8,Ne))]),B.value>1?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mr-batch__pagination","aria-label":e.unref(r).batchPages},[e.createElementVNode("span",null,e.toDisplayString(K.value),1),e.createElementVNode("button",{type:"button",disabled:p.value<=1,onClick:l[4]||(l[4]=t=>p.value--)},e.toDisplayString(e.unref(r).batchPrevious),9,De),e.createElementVNode("button",{type:"button",disabled:p.value>=B.value,onClick:l[5]||(l[5]=t=>p.value++)},e.toDisplayString(e.unref(r).batchNext),9,xe)],8,Ve)):e.createCommentVNode("",!0)])],8,Z))}}),$e=G._export_sfc(Re,[["__scopeId","data-v-45980136"]]);exports.default=$e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),B=require("@agile-team/mach-report"),F=require("./designer.cjs"),K=require("./_plugin-vue_export-helper-BLmdZLlg.cjs");function H(o){return!o||typeof o.id!="string"||!o.id.trim()||typeof o.name!="string"||!o.name.trim()||[o.draftRevision,o.publishedRevision].some(m=>m!==void 0&&(typeof m!="string"||!m.trim()))?!1:o.tags===void 0||Array.isArray(o.tags)&&o.tags.length<=20&&o.tags.every(m=>typeof m=="string")}function O(o){if(!o||!Array.isArray(o.items)||o.items.length>100||o.next!==void 0&&(typeof o.next!="string"||!o.next||o.next.length>4096))throw new Error("invalid");const m=new Set;for(const i of o.items){if(!H(i)||m.has(i.id))throw new Error("invalid");m.add(i.id)}if(o.categories!==void 0&&(!Array.isArray(o.categories)||o.categories.length>1e3||o.categories.some(i=>!i||typeof i.id!="string"||!i.id||typeof i.label!="string")))throw new Error("invalid")}function j(o,m){const i=e.computed(()=>({...F.TEMPLATE_LIBRARY_MESSAGES,...o.messages})),T=e.ref(""),n=e.ref(""),D=e.shallowRef([]),S=e.shallowRef([]),d=e.ref([void 0]),p=e.ref(),N=e.ref(!1),h=e.ref(!1),f=e.ref(""),s=e.shallowRef(),w=e.ref(""),V=e.ref(""),y=e.ref("search"),k=e.ref(""),E=e.shallowRef();let v=0,g=0,C,x,R;const A=e.computed(()=>({search:i.value.retrySearch,open:i.value.retryOpen,copy:i.value.retryCopy})[y.value]);function _(){f.value="",E.value=void 0}function l(t,a){if(O(t),t.next!==void 0&&(t.next===a.cursor||!a.previous&&d.value.includes(t.next)))throw new Error(i.value.stale);D.value=t.items.map(u=>({...u,...u.tags?{tags:[...u.tags]}:{}})),p.value=t.next,a.previous?d.value=d.value.slice(0,-1):a.more&&(d.value=[...d.value,a.cursor]),t.categories&&(S.value=t.categories)}function r(t){return t instanceof Error?t.message==="invalid"?i.value.invalid:t.message:String(t)}async function b(t){clearTimeout(R),C?.abort();const a=++v,u=new AbortController;C=u,N.value=!0,_(),!t.more&&!t.previous&&(D.value=[],p.value=void 0,d.value=[void 0]);try{const c=await o.provider.search({query:t.query,category:t.category,cursor:t.cursor,limit:30,signal:u.signal});if(a!==v)return;l(c,t)}catch(c){a===v&&!u.signal.aborted&&(f.value=r(c),y.value="search",E.value=()=>b(t))}finally{a===v&&(N.value=!1)}}async function q(t=!1,a=!1){t&&!p.value||a&&d.value.length<2||await b({query:T.value.trim(),category:n.value||void 0,cursor:a?d.value.at(-2):t?p.value:void 0,more:t,previous:a})}async function M(t,a,u){if(t.savedDocument)return B.parseReportTemplate(t.savedDocument);if(t.candidate)return B.parseReportTemplate(t.candidate);const c=await o.provider.get(t.entry.id,{signal:a,mode:t.mode});if(u!==g)return;if(!c||c.id!==t.entry.id)throw new Error(i.value.missing);const $=B.parseReportTemplate(c);if(t.mode==="published"&&t.entry.publishedRevision!==$.revision)throw new Error(i.value.publicationChanged);return t.copy?(t.candidate=B.cloneReportTemplate($,t.identity),B.parseReportTemplate(t.candidate)):$}async function L(t){if(h.value)return;const a=++g,u=new AbortController;x=u,h.value=!0,_(),k.value=(t.copy&&!t.savedDocument?i.value.creatingTarget:i.value.openingTarget).replace("{name}",t.savedDocument?.name??t.entry.name);try{let c=await M(t,u.signal,a);if(!c||a!==g)return;if(t.copy&&!t.savedDocument){if(!t.create||(c=B.parseReportTemplate(await t.create(c,{signal:u.signal})),a!==g))return;if(c.id!==t.identity.id)throw new Error(i.value.invalid);t.savedDocument=B.parseReportTemplate(c),s.value=void 0}m(c,{mode:t.mode}),t.copy&&q()}catch(c){a===g&&!u.signal.aborted&&(f.value=r(c),y.value=t.copy&&!t.savedDocument?"copy":"open",E.value=()=>L(t))}finally{a===g&&(h.value=!1,k.value="")}}async function P(t,a=!1,u="edit"){await L({entry:{...t},copy:a,mode:a?"edit":u,identity:{id:w.value.trim(),name:V.value.trim()},create:o.create})}function I(){v++,C?.abort(),D.value=[],p.value=void 0,d.value=[void 0],N.value=!0,_(),clearTimeout(R),R=setTimeout(()=>{q()},180)}function U(){g++,x?.abort(),h.value=!1,k.value="",s.value=void 0,q()}return e.watch([T,n],I),e.watch([()=>o.provider,()=>o.create],U),e.watch([w,V],()=>{y.value==="copy"&&_()}),e.onBeforeUnmount(()=>{v++,g++,clearTimeout(R),C?.abort(),x?.abort()}),q(),{m:i,cursors:d,query:T,category:n,entries:D,categories:S,next:p,loading:N,busy:h,error:f,errorKind:y,retryLabel:A,loadingTarget:k,copying:s,newId:w,newName:V,search:q,load:P,retry:async()=>{!h.value&&!N.value&&await E.value?.()},beginCopy:t=>{_(),s.value=t,w.value="",V.value=t.name},cancelCopy:()=>{h.value||(s.value=void 0,_())}}}const z=["aria-label","aria-busy"],G=["disabled"],Y={class:"mr-library-search"},J=["placeholder","aria-label"],Q=["aria-label"],W={value:""},X=["value"],Z={key:0,class:"mr-library-progress",role:"status"},ee={key:1,role:"alert",class:"mr-library-error"},te=["disabled"],re=["disabled"],oe=["disabled"],ne=["disabled"],le=["disabled"],ae={key:3},ie={class:"mr-library-info"},se=["title","disabled","onClick"],ue=["title"],ce={key:0},de={key:1},fe={key:2,class:"mr-library-tags"},me=["title"],ve={class:"mr-library-actions"},pe=["disabled","onClick"],ye=["disabled","onClick"],ge=["disabled","onClick"],be={key:4,class:"mr-library-empty",role:"status"},he={key:0},ke=["disabled"],Ee=["disabled"],_e=e.defineComponent({__name:"ReportTemplateLibrary",props:{provider:{},messages:{},create:{type:Function}},emits:["open"],setup(o,{emit:m}){const i=o,T=m,{m:n,cursors:D,query:S,category:d,entries:p,categories:N,next:h,loading:f,busy:s,error:w,copying:V,newId:y,newName:k,search:E,load:v,beginCopy:g,cancelCopy:C,retry:x,retryLabel:R,loadingTarget:A}=j(i,(_,l)=>T("open",_,l));return(_,l)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-library","aria-label":e.unref(n).title,"aria-busy":e.unref(f)||e.unref(s)},[e.createElementVNode("header",null,[e.createElementVNode("div",null,[e.createElementVNode("h2",null,e.toDisplayString(e.unref(n).title),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).subtitle),1)]),e.createElementVNode("button",{type:"button",disabled:e.unref(f)||e.unref(s),onClick:l[0]||(l[0]=r=>e.unref(E)())},e.toDisplayString(e.unref(n).refresh),9,G)]),e.createElementVNode("div",Y,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[1]||(l[1]=r=>e.isRef(S)?S.value=r:null),type:"search",placeholder:e.unref(n).search,"aria-label":e.unref(n).search,onKeydown:l[2]||(l[2]=e.withKeys(r=>e.unref(E)(),["enter"]))},null,40,J),[[e.vModelText,e.unref(S)]]),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":l[3]||(l[3]=r=>e.isRef(d)?d.value=r:null),"aria-label":e.unref(n).all},[e.createElementVNode("option",W,e.toDisplayString(e.unref(n).all),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),r=>(e.openBlock(),e.createElementBlock("option",{key:r.id,value:r.id},e.toDisplayString(r.label)+e.toDisplayString(r.count===void 0?"":` (${r.count})`),9,X))),128))],8,Q),[[e.vModelSelect,e.unref(d)]])]),e.unref(A)?(e.openBlock(),e.createElementBlock("div",Z,e.toDisplayString(e.unref(A)),1)):e.createCommentVNode("",!0),e.unref(w)?(e.openBlock(),e.createElementBlock("div",ee,[e.createTextVNode(e.toDisplayString(e.unref(w))+" ",1),e.createElementVNode("button",{type:"button",disabled:e.unref(f)||e.unref(s),onClick:l[4]||(l[4]=r=>e.unref(x)())},e.toDisplayString(e.unref(R)),9,te)])):e.createCommentVNode("",!0),e.unref(V)?(e.openBlock(),e.createElementBlock("form",{key:2,class:"mr-library-copy",onSubmit:l[8]||(l[8]=e.withModifiers(r=>e.unref(v)(e.unref(V),!0),["prevent"]))},[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).copyTitle)+" · "+e.toDisplayString(e.unref(V).name),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).newId),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[5]||(l[5]=r=>e.isRef(y)?y.value=r:null),required:"",maxlength:"256",disabled:e.unref(s)},null,8,re),[[e.vModelText,e.unref(y)]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).newName),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[6]||(l[6]=r=>e.isRef(k)?k.value=r:null),required:"",maxlength:"256",disabled:e.unref(s)},null,8,oe),[[e.vModelText,e.unref(k)]])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",disabled:e.unref(s),onClick:l[7]||(l[7]=r=>e.unref(C)())},e.toDisplayString(e.unref(n).cancel),9,ne),e.createElementVNode("button",{type:"submit",disabled:e.unref(s)||!e.unref(y).trim()||!e.unref(k).trim()},e.toDisplayString(e.unref(s)?e.unref(n).loading:e.unref(n).create),9,le)])],32)):e.createCommentVNode("",!0),e.unref(p).length?(e.openBlock(),e.createElementBlock("ul",ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),r=>(e.openBlock(),e.createElementBlock("li",{key:r.id},[e.createElementVNode("div",ie,[e.createElementVNode("button",{class:"mr-library-name",title:r.name,type:"button",disabled:e.unref(s),onClick:b=>e.unref(v)(r)},e.toDisplayString(r.name),9,se),e.createElementVNode("small",{title:r.id},[e.createTextVNode(e.toDisplayString(r.id),1),r.revision?(e.openBlock(),e.createElementBlock("span",ce," · "+e.toDisplayString(e.unref(n).revision)+" "+e.toDisplayString(r.revision),1)):e.createCommentVNode("",!0)],8,ue),r.draftRevision||r.publishedRevision?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["mr-library-state",{"mr-library-state--draft":r.draftRevision}])},e.toDisplayString(r.draftRevision?r.publishedRevision?e.unref(n).draftPending:e.unref(n).draft:e.unref(n).published),3)):e.createCommentVNode("",!0),r.description?(e.openBlock(),e.createElementBlock("p",de,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),r.tags?.length?(e.openBlock(),e.createElementBlock("div",fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.tags,b=>(e.openBlock(),e.createElementBlock("span",{key:b,title:b},e.toDisplayString(b),9,me))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ve,[o.create?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:e.unref(s),onClick:b=>e.unref(g)(r)},e.toDisplayString(e.unref(n).copy),9,pe)):e.createCommentVNode("",!0),r.publishedRevision?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:e.unref(s),onClick:b=>e.unref(v)(r,!1,"published")},e.toDisplayString(e.unref(n).viewPublished),9,ye)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",disabled:e.unref(s),onClick:b=>e.unref(v)(r)},e.toDisplayString(r.draftRevision?e.unref(n).continueDraft:e.unref(n).open),9,ge)])]))),128))])):(e.openBlock(),e.createElementBlock("div",be,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(f)?e.unref(n).loading:e.unref(n).empty),1),e.unref(f)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",he,e.toDisplayString(e.unref(n).emptyHint),1))])),e.createElementVNode("footer",null,[e.createElementVNode("span",null,e.toDisplayString(e.unref(D).length)+" "+e.toDisplayString(e.unref(n).page)+" · "+e.toDisplayString(e.unref(p).length)+" "+e.toDisplayString(e.unref(n).count),1),e.createElementVNode("div",null,[e.unref(D).length>1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:e.unref(f)||e.unref(s),onClick:l[9]||(l[9]=r=>e.unref(E)(!1,!0))},e.toDisplayString(e.unref(n).previous),9,ke)):e.createCommentVNode("",!0),e.unref(h)?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:e.unref(f)||e.unref(s),onClick:l[10]||(l[10]=r=>e.unref(E)(!0))},e.toDisplayString(e.unref(f)?e.unref(n).loading:e.unref(n).loadMore),9,Ee)):e.createCommentVNode("",!0)])])],8,z))}}),Ve=K._export_sfc(_e,[["__scopeId","data-v-9513aca4"]]);exports.default=Ve;
|