@agile-team/mach-report 2.18.0 → 2.19.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.
- package/README.md +4 -3
- package/dist/{ExcelBindingWizard-Czn3C2yE.cjs → ExcelBindingWizard-UHSApSG9.cjs} +1 -1
- package/dist/{ExcelBindingWizard-DMGZj6I6.js → ExcelBindingWizard-xJIYmnZ_.js} +1 -1
- package/dist/{ParamEditor-oDfD8LgE.cjs → ParamEditor-BZb-okUd.cjs} +1 -1
- package/dist/{ParamEditor-KzDQvbHY.js → ParamEditor-D1wWemaf.js} +1 -1
- package/dist/{ReportBatchPanel-BJK7PvZ4.js → ReportBatchPanel-B88R-fME.js} +1 -1
- package/dist/{ReportBatchPanel-DnmNRssu.cjs → ReportBatchPanel-BkJFqeEW.cjs} +1 -1
- package/dist/ReportLabelStudio-B4WZ2XNN.js +239 -0
- package/dist/ReportLabelStudio-BN-fYNCr.cjs +1 -0
- package/dist/ReportPreview-CuoHl15N.cjs +6 -0
- package/dist/{ReportPreview-BxWWTUL5.js → ReportPreview-DBbctg6C.js} +2261 -2219
- package/dist/{ReportTemplateLibrary-BFjB08Wu.js → ReportTemplateLibrary-BGELmgd3.js} +1 -1
- package/dist/{ReportTemplateLibrary-BO42QnWd.cjs → ReportTemplateLibrary-BOh2MgjQ.cjs} +1 -1
- package/dist/{RuleEditor-CqxT1a-W.js → RuleEditor-CoLqgehG.js} +1 -1
- package/dist/{RuleEditor-D7YWigD9.cjs → RuleEditor-XaLcCdTb.cjs} +1 -1
- package/dist/{TemplateOutlinePanel-zG0DrsIB.js → TemplateOutlinePanel-DU95loB-.js} +1 -1
- package/dist/{TemplateOutlinePanel-B0XX350V.cjs → TemplateOutlinePanel-DiG8tRRe.cjs} +1 -1
- package/dist/{TemplateReusePanel-Czwe5GbC.js → TemplateReusePanel-DE1KSD6c.js} +1 -1
- package/dist/{TemplateReusePanel-BD0HSKp_.cjs → TemplateReusePanel-G-Y299wc.cjs} +1 -1
- package/dist/{TemplateReviewPanel-CA5sdffM.cjs → TemplateReviewPanel-KQx9ts0D.cjs} +1 -1
- package/dist/{TemplateReviewPanel-NhmQI65C.js → TemplateReviewPanel-vqFJ_Y9o.js} +1 -1
- package/dist/artifact-integrity.json +34 -32
- package/dist/designer-CyKXBhQg.cjs +2 -0
- package/dist/designer-fVvpYg8H.js +5824 -0
- package/dist/designer.cjs +1 -1
- package/dist/designer.d.cts +93 -1
- package/dist/designer.d.ts +93 -1
- package/dist/designer.js +22 -19
- package/dist/{plugin-DM1M2wlI.cjs → plugin-CPyHs4UC.cjs} +1 -1
- package/dist/{plugin-ByjF2kiV.js → plugin-DsXJRR6Q.js} +1 -1
- package/dist/sbom.cdx.json +1 -1
- package/dist/server.cjs +1 -1
- package/dist/server.js +1 -1
- package/dist/style.css +1 -1
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +3 -3
- package/package.json +1 -1
- package/dist/ReportPreview-Yf99omi3.cjs +0 -6
- package/dist/designer--TKECSEc.cjs +0 -2
- package/dist/designer-d6hJS41w.js +0 -5683
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),j=require("./ReportParamPanel-sOANVRz-.cjs"),H=require("@agile-team/mach-report"),J=require("./batch-DYcokH4v.cjs"),z=require("./designer--TKECSEc.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;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),j=require("./ReportParamPanel-sOANVRz-.cjs"),H=require("@agile-team/mach-report"),J=require("./batch-DYcokH4v.cjs"),z=require("./designer-CyKXBhQg.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,239 @@
|
|
|
1
|
+
import { computed as b, shallowRef as G, onMounted as Q, ref as R, onScopeDispose as W, watch as B, defineComponent as J, openBlock as V, createElementBlock as T, unref as e, normalizeClass as X, createElementVNode as l, toDisplayString as n, createTextVNode as h, withDirectives as O, isRef as z, vModelSelect as Y, vModelText as ee, createCommentVNode as q, Fragment as P, createBlock as H, withCtx as te, vModelCheckbox as le } from "vue";
|
|
2
|
+
import { provideMachReportConfig as ae, ReportPreview as se } from "@agile-team/mach-report/vue";
|
|
3
|
+
import { L as ne, c as oe } from "./designer-fVvpYg8H.js";
|
|
4
|
+
import { defineReportTemplate as ie, createLabelTemplate as re, parseReportTemplate as M, serializeReportTemplate as Z, createReportSource as de, defineLabelReport as ue, imposeLabelSheets as ce } from "@agile-team/mach-report";
|
|
5
|
+
import { createCodeAssetRenderers as me } from "@agile-team/mach-report/codes";
|
|
6
|
+
function pe(t, w, _) {
|
|
7
|
+
const d = _ ?? t.fields.find((s) => s.semanticRole === "identifier" && s.field !== t.rowKey)?.field ?? t.rowKey ?? t.fields[0]?.field, o = (s, y, u, c, v = 4, f = 7) => ({ kind: "text", text: s, leftMm: y, topMm: u, widthMm: c, heightMm: v, style: { fontSize: f, color: "#254566", verticalAlign: "middle" } }), m = (s) => ({ kind: "line", leftMm: 4, topMm: s, widthMm: 72, heightMm: 0.2, style: { lineColor: "#c7d7e8", lineWidthPt: 0.5 } }), a = [o(w, 4, 3, 72, 5, 9), m(10)], p = [o(w, 4, 4, 72, 5, 9)];
|
|
8
|
+
return d && (a.push({ ...o("", 4, 12, 72, 8, 15), binding: { field: d } }), a.push({ kind: "qrcode", leftMm: 54, topMm: 21, widthMm: 21, heightMm: 21, binding: { field: d }, code: { quietZoneModules: 4, errorCorrection: "M" } }), p.push({ ...o("", 4, 12, 72, 8, 16), style: { fontSize: 16, align: "center", color: "#254566" }, binding: { field: d } }), p.push({ kind: "barcode", leftMm: 7, topMm: 24, widthMm: 66, heightMm: 15, binding: { field: d }, code: { symbology: "code128", quietZoneModules: 10, showText: !0 } })), t.fields.filter((s) => s.field !== d && s.field !== t.rowKey).slice(0, 4).forEach((s, y) => {
|
|
9
|
+
const u = 22 + y * 5;
|
|
10
|
+
a.push(o(s.label ?? s.field, 4, u, 21, 4, 6)), a.push({ ...o("", 25, u, 27, 4, 7), binding: { field: s.field, ...s.format ? { format: s.format } : {} } });
|
|
11
|
+
}), a.push(m(45), o(t.fields.find((s) => s.field === d)?.label ?? w, 4, 47, 72, 4, 6)), p.push(m(44)), ie({ id: "record-label", name: w, template: re({ dataset: "records", rowKey: t.rowKey, pages: [{ components: a }, { components: p }] }) });
|
|
12
|
+
}
|
|
13
|
+
function ve(t, w) {
|
|
14
|
+
const _ = b(() => ({ ...ne, ...t.messages })), d = b(() => t.title ?? _.value.title), o = G(t.modelValue ? M(t.modelValue) : pe(t.schema, d.value, t.identityField));
|
|
15
|
+
let m = M(o.value);
|
|
16
|
+
Q(() => {
|
|
17
|
+
t.modelValue || w(M(o.value));
|
|
18
|
+
});
|
|
19
|
+
const a = R("preview"), p = R("all"), s = R(1), y = R(!1), u = R(!1), c = R(), v = R("");
|
|
20
|
+
let f = !1;
|
|
21
|
+
W(() => {
|
|
22
|
+
f = !0;
|
|
23
|
+
});
|
|
24
|
+
const x = { assetRenderers: me() };
|
|
25
|
+
ae({ get defaults() {
|
|
26
|
+
return { assets: x, ...t.preview };
|
|
27
|
+
} }), B(() => t.modelValue, (r) => {
|
|
28
|
+
r && Z(r) !== Z(o.value) && (o.value = M(r), m = M(r));
|
|
29
|
+
}), B(() => t.rows, () => {
|
|
30
|
+
p.value = "all", s.value = 1;
|
|
31
|
+
});
|
|
32
|
+
function E(r) {
|
|
33
|
+
v.value = "", o.value = r, w(r);
|
|
34
|
+
}
|
|
35
|
+
const L = b(() => p.value === "all" ? t.rows : Number.isSafeInteger(s.value) && t.rows[s.value - 1] ? [t.rows[s.value - 1]] : []), D = b(() => o.value.template.repeat?.dataset ?? "records"), I = b(() => ({ [D.value]: L.value })), U = b(() => ({ [D.value]: t.schema })), F = b(() => [{ id: D.value, label: d.value, rowKey: t.schema.rowKey, fields: t.schema.fields }]), K = b(() => o.value.template.pages[0]), N = b(() => {
|
|
36
|
+
const r = o.value.template.repeat?.copies ?? 1;
|
|
37
|
+
let S = 0;
|
|
38
|
+
for (const C of L.value) {
|
|
39
|
+
const k = typeof r == "number" ? r : Object.getOwnPropertyDescriptor(C, r.field)?.value;
|
|
40
|
+
if (typeof k != "number" || !Number.isSafeInteger(k) || k < 1 || k > 1e3) return;
|
|
41
|
+
S += k * o.value.template.pages.length;
|
|
42
|
+
}
|
|
43
|
+
return S;
|
|
44
|
+
}), A = b(() => {
|
|
45
|
+
const r = de({ labels: ue({ template: o.value.template, rows: L.value, dataSchema: t.schema }) }), S = y.value;
|
|
46
|
+
return async (C) => {
|
|
47
|
+
const k = await r(C);
|
|
48
|
+
return S ? ce(k, { paper: "a4", columns: 2, rows: 4, marginMm: 12, gapMm: 4, signal: C.signal }) : k;
|
|
49
|
+
};
|
|
50
|
+
}), i = async (r, S) => {
|
|
51
|
+
const C = t.save ? await t.save(r, S) : M(r);
|
|
52
|
+
if (f || S.signal.aborted) throw new DOMException("标签模板保存已取消", "AbortError");
|
|
53
|
+
return m = M(C), E(C), C;
|
|
54
|
+
};
|
|
55
|
+
async function g() {
|
|
56
|
+
if (!(u.value || f)) {
|
|
57
|
+
u.value = !0;
|
|
58
|
+
try {
|
|
59
|
+
if (a.value === "design" && c.value) {
|
|
60
|
+
if (c.value.canApply === !1) {
|
|
61
|
+
v.value = c.value.saveReason || _.value.applyFirst;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (c.value.pendingLocalChanges && await c.value.save(), c.value.pendingLocalChanges) {
|
|
65
|
+
v.value = _.value.saveFailed;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (!f)
|
|
70
|
+
return v.value = "", M(o.value);
|
|
71
|
+
} finally {
|
|
72
|
+
u.value = !1;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function $(r) {
|
|
77
|
+
r !== a.value && await g() && (a.value = r);
|
|
78
|
+
}
|
|
79
|
+
async function j() {
|
|
80
|
+
if (u.value) return !1;
|
|
81
|
+
const r = c.value?.pendingLocalChanges;
|
|
82
|
+
return c.value && !await c.value.guardChanges() ? !1 : (r && E(M(m)), !0);
|
|
83
|
+
}
|
|
84
|
+
return { m: _, notice: v, title: d, document: o, mode: a, record: p, recordIndex: s, sheet: y, busy: u, editor: c, rows: L, dataset: D, datasets: I, schemas: U, bindings: F, paper: K, labelCount: N, fetcher: A, update: E, save: i, navigate: $, prepare: g, guardChanges: j };
|
|
85
|
+
}
|
|
86
|
+
const fe = ["aria-label"], ge = { class: "mr-label-context" }, be = { class: "mr-label-identity" }, he = { class: "mr-label-spec" }, we = { class: "mr-label-record" }, ye = ["disabled"], Me = { value: "all" }, _e = { value: "single" }, Ce = {
|
|
87
|
+
key: 0,
|
|
88
|
+
class: "mr-label-record-index"
|
|
89
|
+
}, ke = ["max", "aria-label", "disabled"], xe = { class: "mr-label-count" }, Se = { class: "mr-label-help" }, Re = { class: "mr-label-main" }, Ve = { class: "mr-label-bar" }, Le = ["aria-label"], De = ["aria-pressed", "disabled"], Ee = ["aria-pressed", "disabled"], Te = {
|
|
90
|
+
key: 0,
|
|
91
|
+
class: "mr-label-notice",
|
|
92
|
+
role: "status"
|
|
93
|
+
}, Fe = { class: "mr-label-imposition" }, Oe = /* @__PURE__ */ J({
|
|
94
|
+
__name: "ReportLabelStudio",
|
|
95
|
+
props: {
|
|
96
|
+
rows: {},
|
|
97
|
+
schema: {},
|
|
98
|
+
title: {},
|
|
99
|
+
identityField: {},
|
|
100
|
+
modelValue: {},
|
|
101
|
+
preview: {},
|
|
102
|
+
save: { type: Function },
|
|
103
|
+
beforeDiscard: { type: Function },
|
|
104
|
+
messages: {}
|
|
105
|
+
},
|
|
106
|
+
emits: ["update:modelValue"],
|
|
107
|
+
setup(t, { expose: w, emit: _ }) {
|
|
108
|
+
const d = t, o = _, m = ve(d, (A) => o("update:modelValue", A)), { m: a, notice: p, title: s, document: y, mode: u, record: c, recordIndex: v, sheet: f, busy: x, editor: E, rows: L, datasets: D, schemas: I, bindings: U, paper: F, labelCount: K, fetcher: N } = m;
|
|
109
|
+
return w({ guardChanges: m.guardChanges, prepare: m.prepare, get busy() {
|
|
110
|
+
return x.value;
|
|
111
|
+
} }), (A, i) => (V(), T("section", {
|
|
112
|
+
class: X(["mr-label-studio", { "is-design": e(u) === "design" }]),
|
|
113
|
+
"aria-label": e(s)
|
|
114
|
+
}, [
|
|
115
|
+
l("aside", ge, [
|
|
116
|
+
l("div", be, [
|
|
117
|
+
i[5] || (i[5] = l("span", { "aria-hidden": "true" }, "▦", -1)),
|
|
118
|
+
l("strong", null, n(e(s)), 1),
|
|
119
|
+
l("small", null, n(e(a).session), 1)
|
|
120
|
+
]),
|
|
121
|
+
l("div", he, [
|
|
122
|
+
l("strong", null, [
|
|
123
|
+
h(n(e(F)?.widthMm) + " ", 1),
|
|
124
|
+
i[6] || (i[6] = l("i", null, "×", -1)),
|
|
125
|
+
h(" " + n(e(F)?.heightMm), 1)
|
|
126
|
+
]),
|
|
127
|
+
l("span", null, "mm · " + n(e(y).template.pages.length) + " " + n(e(a).faces), 1),
|
|
128
|
+
i[7] || (i[7] = l("small", null, "QR · CODE 128", -1))
|
|
129
|
+
]),
|
|
130
|
+
l("label", we, [
|
|
131
|
+
h(n(e(a).records), 1),
|
|
132
|
+
O(l("select", {
|
|
133
|
+
"onUpdate:modelValue": i[0] || (i[0] = (g) => z(c) ? c.value = g : null),
|
|
134
|
+
disabled: e(x) || e(u) === "design" || !d.rows.length
|
|
135
|
+
}, [
|
|
136
|
+
l("option", Me, n(e(a).all) + " · " + n(d.rows.length), 1),
|
|
137
|
+
l("option", _e, n(e(a).single), 1)
|
|
138
|
+
], 8, ye), [
|
|
139
|
+
[Y, e(c)]
|
|
140
|
+
])
|
|
141
|
+
]),
|
|
142
|
+
e(c) === "single" ? (V(), T("label", Ce, [
|
|
143
|
+
h(n(e(a).record), 1),
|
|
144
|
+
O(l("input", {
|
|
145
|
+
"onUpdate:modelValue": i[1] || (i[1] = (g) => z(v) ? v.value = g : null),
|
|
146
|
+
type: "number",
|
|
147
|
+
min: "1",
|
|
148
|
+
max: d.rows.length,
|
|
149
|
+
"aria-label": e(a).record,
|
|
150
|
+
disabled: e(x) || e(u) === "design"
|
|
151
|
+
}, null, 8, ke), [
|
|
152
|
+
[
|
|
153
|
+
ee,
|
|
154
|
+
e(v),
|
|
155
|
+
void 0,
|
|
156
|
+
{ number: !0 }
|
|
157
|
+
]
|
|
158
|
+
]),
|
|
159
|
+
h(" / " + n(d.rows.length), 1)
|
|
160
|
+
])) : q("", !0),
|
|
161
|
+
l("p", xe, [
|
|
162
|
+
l("strong", null, n(e(L).length), 1),
|
|
163
|
+
h(" " + n(e(a).count) + " ", 1),
|
|
164
|
+
i[8] || (i[8] = l("span", null, "→", -1)),
|
|
165
|
+
i[9] || (i[9] = h()),
|
|
166
|
+
e(K) !== void 0 ? (V(), T(P, { key: 0 }, [
|
|
167
|
+
l("strong", null, n(e(K)), 1),
|
|
168
|
+
h(" " + n(e(a).labels), 1)
|
|
169
|
+
], 64)) : (V(), T(P, { key: 1 }, [
|
|
170
|
+
h(n(e(a).invalidCopies), 1)
|
|
171
|
+
], 64))
|
|
172
|
+
]),
|
|
173
|
+
l("details", Se, [
|
|
174
|
+
l("summary", null, n(e(a).guide), 1),
|
|
175
|
+
l("p", null, n(e(a).help), 1),
|
|
176
|
+
l("p", null, n(e(a).printHint), 1)
|
|
177
|
+
])
|
|
178
|
+
]),
|
|
179
|
+
l("div", Re, [
|
|
180
|
+
l("header", Ve, [
|
|
181
|
+
l("nav", { "aria-label": e(s) }, [
|
|
182
|
+
l("button", {
|
|
183
|
+
type: "button",
|
|
184
|
+
"aria-pressed": e(u) === "preview",
|
|
185
|
+
disabled: e(x),
|
|
186
|
+
onClick: i[2] || (i[2] = (g) => e(m).navigate("preview"))
|
|
187
|
+
}, n(e(a).preview), 9, De),
|
|
188
|
+
l("button", {
|
|
189
|
+
type: "button",
|
|
190
|
+
"aria-pressed": e(u) === "design",
|
|
191
|
+
disabled: e(x),
|
|
192
|
+
onClick: i[3] || (i[3] = (g) => e(m).navigate("design"))
|
|
193
|
+
}, n(e(a).design), 9, Ee)
|
|
194
|
+
], 8, Le),
|
|
195
|
+
l("span", null, n(e(a).flow), 1)
|
|
196
|
+
]),
|
|
197
|
+
e(p) ? (V(), T("p", Te, n(e(p)), 1)) : q("", !0),
|
|
198
|
+
e(u) === "preview" ? (V(), H(e(se), {
|
|
199
|
+
key: 1,
|
|
200
|
+
"report-id": "labels",
|
|
201
|
+
fetcher: e(N),
|
|
202
|
+
"show-params": !1,
|
|
203
|
+
height: "100%",
|
|
204
|
+
toolbar: { exportFormats: ["pdf", "png", "html"], editing: !1, excelImport: !1 },
|
|
205
|
+
messages: { title: e(s), empty: e(a).empty }
|
|
206
|
+
}, {
|
|
207
|
+
settings: te(() => [
|
|
208
|
+
l("label", Fe, [
|
|
209
|
+
O(l("input", {
|
|
210
|
+
"onUpdate:modelValue": i[4] || (i[4] = (g) => z(f) ? f.value = g : null),
|
|
211
|
+
type: "checkbox"
|
|
212
|
+
}, null, 512), [
|
|
213
|
+
[le, e(f)]
|
|
214
|
+
]),
|
|
215
|
+
h(n(e(a).sheet), 1),
|
|
216
|
+
l("small", null, n(e(a).sheetHint), 1)
|
|
217
|
+
])
|
|
218
|
+
]),
|
|
219
|
+
_: 1
|
|
220
|
+
}, 8, ["fetcher", "messages"])) : (V(), H(oe, {
|
|
221
|
+
key: 2,
|
|
222
|
+
ref_key: "editor",
|
|
223
|
+
ref: E,
|
|
224
|
+
"model-value": e(y),
|
|
225
|
+
datasets: e(D),
|
|
226
|
+
"data-schemas": e(I),
|
|
227
|
+
"binding-datasets": e(U),
|
|
228
|
+
save: e(m).save,
|
|
229
|
+
"before-discard": t.beforeDiscard,
|
|
230
|
+
preview: t.preview,
|
|
231
|
+
"onUpdate:modelValue": e(m).update
|
|
232
|
+
}, null, 8, ["model-value", "datasets", "data-schemas", "binding-datasets", "save", "before-discard", "preview", "onUpdate:modelValue"]))
|
|
233
|
+
])
|
|
234
|
+
], 10, fe));
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
export {
|
|
238
|
+
Oe as default
|
|
239
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),C=require("@agile-team/mach-report/vue"),B=require("./designer-CyKXBhQg.cjs"),u=require("@agile-team/mach-report"),q=require("@agile-team/mach-report/codes");function K(t,v,y){const s=y??t.fields.find(a=>a.semanticRole==="identifier"&&a.field!==t.rowKey)?.field??t.rowKey??t.fields[0]?.field,n=(a,b,i,d,p=4,f=7)=>({kind:"text",text:a,leftMm:b,topMm:i,widthMm:d,heightMm:p,style:{fontSize:f,color:"#254566",verticalAlign:"middle"}}),c=a=>({kind:"line",leftMm:4,topMm:a,widthMm:72,heightMm:.2,style:{lineColor:"#c7d7e8",lineWidthPt:.5}}),l=[n(v,4,3,72,5,9),c(10)],m=[n(v,4,4,72,5,9)];return s&&(l.push({...n("",4,12,72,8,15),binding:{field:s}}),l.push({kind:"qrcode",leftMm:54,topMm:21,widthMm:21,heightMm:21,binding:{field:s},code:{quietZoneModules:4,errorCorrection:"M"}}),m.push({...n("",4,12,72,8,16),style:{fontSize:16,align:"center",color:"#254566"},binding:{field:s}}),m.push({kind:"barcode",leftMm:7,topMm:24,widthMm:66,heightMm:15,binding:{field:s},code:{symbology:"code128",quietZoneModules:10,showText:!0}})),t.fields.filter(a=>a.field!==s&&a.field!==t.rowKey).slice(0,4).forEach((a,b)=>{const i=22+b*5;l.push(n(a.label??a.field,4,i,21,4,6)),l.push({...n("",25,i,27,4,7),binding:{field:a.field,...a.format?{format:a.format}:{}}})}),l.push(c(45),n(t.fields.find(a=>a.field===s)?.label??v,4,47,72,4,6)),m.push(c(44)),u.defineReportTemplate({id:"record-label",name:v,template:u.createLabelTemplate({dataset:"records",rowKey:t.rowKey,pages:[{components:l},{components:m}]})})}function A(t,v){const y=e.computed(()=>({...B.LABEL_STUDIO_MESSAGES,...t.messages})),s=e.computed(()=>t.title??y.value.title),n=e.shallowRef(t.modelValue?u.parseReportTemplate(t.modelValue):K(t.schema,s.value,t.identityField));let c=u.parseReportTemplate(n.value);e.onMounted(()=>{t.modelValue||v(u.parseReportTemplate(n.value))});const l=e.ref("preview"),m=e.ref("all"),a=e.ref(1),b=e.ref(!1),i=e.ref(!1),d=e.ref(),p=e.ref("");let f=!1;e.onScopeDispose(()=>{f=!0});const w={assetRenderers:q.createCodeAssetRenderers()};C.provideMachReportConfig({get defaults(){return{assets:w,...t.preview}}}),e.watch(()=>t.modelValue,o=>{o&&u.serializeReportTemplate(o)!==u.serializeReportTemplate(n.value)&&(n.value=u.parseReportTemplate(o),c=u.parseReportTemplate(o))}),e.watch(()=>t.rows,()=>{m.value="all",a.value=1});function D(o){p.value="",n.value=o,v(o)}const E=e.computed(()=>m.value==="all"?t.rows:Number.isSafeInteger(a.value)&&t.rows[a.value-1]?[t.rows[a.value-1]]:[]),S=e.computed(()=>n.value.template.repeat?.dataset??"records"),T=e.computed(()=>({[S.value]:E.value})),x=e.computed(()=>({[S.value]:t.schema})),k=e.computed(()=>[{id:S.value,label:s.value,rowKey:t.schema.rowKey,fields:t.schema.fields}]),M=e.computed(()=>n.value.template.pages[0]),_=e.computed(()=>{const o=n.value.template.repeat?.copies??1;let N=0;for(const h of E.value){const V=typeof o=="number"?o:Object.getOwnPropertyDescriptor(h,o.field)?.value;if(typeof V!="number"||!Number.isSafeInteger(V)||V<1||V>1e3)return;N+=V*n.value.template.pages.length}return N}),R=e.computed(()=>{const o=u.createReportSource({labels:u.defineLabelReport({template:n.value.template,rows:E.value,dataSchema:t.schema})}),N=b.value;return async h=>{const V=await o(h);return N?u.imposeLabelSheets(V,{paper:"a4",columns:2,rows:4,marginMm:12,gapMm:4,signal:h.signal}):V}}),r=async(o,N)=>{const h=t.save?await t.save(o,N):u.parseReportTemplate(o);if(f||N.signal.aborted)throw new DOMException("标签模板保存已取消","AbortError");return c=u.parseReportTemplate(h),D(h),h};async function g(){if(!(i.value||f)){i.value=!0;try{if(l.value==="design"&&d.value){if(d.value.canApply===!1){p.value=d.value.saveReason||y.value.applyFirst;return}if(d.value.pendingLocalChanges&&await d.value.save(),d.value.pendingLocalChanges){p.value=y.value.saveFailed;return}}if(!f)return p.value="",u.parseReportTemplate(n.value)}finally{i.value=!1}}}async function L(o){o!==l.value&&await g()&&(l.value=o)}async function F(){if(i.value)return!1;const o=d.value?.pendingLocalChanges;return d.value&&!await d.value.guardChanges()?!1:(o&&D(u.parseReportTemplate(c)),!0)}return{m:y,notice:p,title:s,document:n,mode:l,record:m,recordIndex:a,sheet:b,busy:i,editor:d,rows:E,dataset:S,datasets:T,schemas:x,bindings:k,paper:M,labelCount:_,fetcher:R,update:D,save:r,navigate:L,prepare:g,guardChanges:F}}const I=["aria-label"],O={class:"mr-label-context"},U={class:"mr-label-identity"},z={class:"mr-label-spec"},P={class:"mr-label-record"},$=["disabled"],j={value:"all"},H={value:"single"},Z={key:0,class:"mr-label-record-index"},G=["max","aria-label","disabled"],Q={class:"mr-label-count"},W={class:"mr-label-help"},J={class:"mr-label-main"},X={class:"mr-label-bar"},Y=["aria-label"],ee=["aria-pressed","disabled"],te=["aria-pressed","disabled"],le={key:0,class:"mr-label-notice",role:"status"},ae={class:"mr-label-imposition"},ne=e.defineComponent({__name:"ReportLabelStudio",props:{rows:{},schema:{},title:{},identityField:{},modelValue:{},preview:{},save:{type:Function},beforeDiscard:{type:Function},messages:{}},emits:["update:modelValue"],setup(t,{expose:v,emit:y}){const s=t,n=y,c=A(s,R=>n("update:modelValue",R)),{m:l,notice:m,title:a,document:b,mode:i,record:d,recordIndex:p,sheet:f,busy:w,editor:D,rows:E,datasets:S,schemas:T,bindings:x,paper:k,labelCount:M,fetcher:_}=c;return v({guardChanges:c.guardChanges,prepare:c.prepare,get busy(){return w.value}}),(R,r)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["mr-label-studio",{"is-design":e.unref(i)==="design"}]),"aria-label":e.unref(a)},[e.createElementVNode("aside",O,[e.createElementVNode("div",U,[r[5]||(r[5]=e.createElementVNode("span",{"aria-hidden":"true"},"▦",-1)),e.createElementVNode("strong",null,e.toDisplayString(e.unref(a)),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(l).session),1)]),e.createElementVNode("div",z,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(k)?.widthMm)+" ",1),r[6]||(r[6]=e.createElementVNode("i",null,"×",-1)),e.createTextVNode(" "+e.toDisplayString(e.unref(k)?.heightMm),1)]),e.createElementVNode("span",null,"mm · "+e.toDisplayString(e.unref(b).template.pages.length)+" "+e.toDisplayString(e.unref(l).faces),1),r[7]||(r[7]=e.createElementVNode("small",null,"QR · CODE 128",-1))]),e.createElementVNode("label",P,[e.createTextVNode(e.toDisplayString(e.unref(l).records),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":r[0]||(r[0]=g=>e.isRef(d)?d.value=g:null),disabled:e.unref(w)||e.unref(i)==="design"||!s.rows.length},[e.createElementVNode("option",j,e.toDisplayString(e.unref(l).all)+" · "+e.toDisplayString(s.rows.length),1),e.createElementVNode("option",H,e.toDisplayString(e.unref(l).single),1)],8,$),[[e.vModelSelect,e.unref(d)]])]),e.unref(d)==="single"?(e.openBlock(),e.createElementBlock("label",Z,[e.createTextVNode(e.toDisplayString(e.unref(l).record),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[1]||(r[1]=g=>e.isRef(p)?p.value=g:null),type:"number",min:"1",max:s.rows.length,"aria-label":e.unref(l).record,disabled:e.unref(w)||e.unref(i)==="design"},null,8,G),[[e.vModelText,e.unref(p),void 0,{number:!0}]]),e.createTextVNode(" / "+e.toDisplayString(s.rows.length),1)])):e.createCommentVNode("",!0),e.createElementVNode("p",Q,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(E).length),1),e.createTextVNode(" "+e.toDisplayString(e.unref(l).count)+" ",1),r[8]||(r[8]=e.createElementVNode("span",null,"→",-1)),r[9]||(r[9]=e.createTextVNode()),e.unref(M)!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("strong",null,e.toDisplayString(e.unref(M)),1),e.createTextVNode(" "+e.toDisplayString(e.unref(l).labels),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(l).invalidCopies),1)],64))]),e.createElementVNode("details",W,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(l).guide),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(l).help),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(l).printHint),1)])]),e.createElementVNode("div",J,[e.createElementVNode("header",X,[e.createElementVNode("nav",{"aria-label":e.unref(a)},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(i)==="preview",disabled:e.unref(w),onClick:r[2]||(r[2]=g=>e.unref(c).navigate("preview"))},e.toDisplayString(e.unref(l).preview),9,ee),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(i)==="design",disabled:e.unref(w),onClick:r[3]||(r[3]=g=>e.unref(c).navigate("design"))},e.toDisplayString(e.unref(l).design),9,te)],8,Y),e.createElementVNode("span",null,e.toDisplayString(e.unref(l).flow),1)]),e.unref(m)?(e.openBlock(),e.createElementBlock("p",le,e.toDisplayString(e.unref(m)),1)):e.createCommentVNode("",!0),e.unref(i)==="preview"?(e.openBlock(),e.createBlock(e.unref(C.ReportPreview),{key:1,"report-id":"labels",fetcher:e.unref(_),"show-params":!1,height:"100%",toolbar:{exportFormats:["pdf","png","html"],editing:!1,excelImport:!1},messages:{title:e.unref(a),empty:e.unref(l).empty}},{settings:e.withCtx(()=>[e.createElementVNode("label",ae,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[4]||(r[4]=g=>e.isRef(f)?f.value=g:null),type:"checkbox"},null,512),[[e.vModelCheckbox,e.unref(f)]]),e.createTextVNode(e.toDisplayString(e.unref(l).sheet),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(l).sheetHint),1)])]),_:1},8,["fetcher","messages"])):(e.openBlock(),e.createBlock(B.ReportTemplateEditor,{key:2,ref_key:"editor",ref:D,"model-value":e.unref(b),datasets:e.unref(S),"data-schemas":e.unref(T),"binding-datasets":e.unref(x),save:e.unref(c).save,"before-discard":t.beforeDiscard,preview:t.preview,"onUpdate:modelValue":e.unref(c).update},null,8,["model-value","datasets","data-schemas","binding-datasets","save","before-discard","preview","onUpdate:modelValue"]))])],10,I))}});exports.default=ne;
|