@agile-team/mach-report 2.11.0 → 2.11.1

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.
@@ -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;