@agile-team/mach-report 2.18.0 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +3 -2
  2. package/dist/{ExcelBindingWizard-Czn3C2yE.cjs → ExcelBindingWizard-UHSApSG9.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-DMGZj6I6.js → ExcelBindingWizard-xJIYmnZ_.js} +1 -1
  4. package/dist/{ParamEditor-oDfD8LgE.cjs → ParamEditor-BZb-okUd.cjs} +1 -1
  5. package/dist/{ParamEditor-KzDQvbHY.js → ParamEditor-D1wWemaf.js} +1 -1
  6. package/dist/{ReportBatchPanel-BJK7PvZ4.js → ReportBatchPanel-B88R-fME.js} +1 -1
  7. package/dist/{ReportBatchPanel-DnmNRssu.cjs → ReportBatchPanel-BkJFqeEW.cjs} +1 -1
  8. package/dist/ReportLabelStudio-B4WZ2XNN.js +239 -0
  9. package/dist/ReportLabelStudio-BN-fYNCr.cjs +1 -0
  10. package/dist/{ReportPreview-BxWWTUL5.js → ReportPreview-BUr8GQUW.js} +2143 -2108
  11. package/dist/ReportPreview-D7PvKzs3.cjs +6 -0
  12. package/dist/{ReportTemplateLibrary-BFjB08Wu.js → ReportTemplateLibrary-BGELmgd3.js} +1 -1
  13. package/dist/{ReportTemplateLibrary-BO42QnWd.cjs → ReportTemplateLibrary-BOh2MgjQ.cjs} +1 -1
  14. package/dist/{RuleEditor-CqxT1a-W.js → RuleEditor-CoLqgehG.js} +1 -1
  15. package/dist/{RuleEditor-D7YWigD9.cjs → RuleEditor-XaLcCdTb.cjs} +1 -1
  16. package/dist/{TemplateOutlinePanel-zG0DrsIB.js → TemplateOutlinePanel-DU95loB-.js} +1 -1
  17. package/dist/{TemplateOutlinePanel-B0XX350V.cjs → TemplateOutlinePanel-DiG8tRRe.cjs} +1 -1
  18. package/dist/{TemplateReusePanel-Czwe5GbC.js → TemplateReusePanel-DE1KSD6c.js} +1 -1
  19. package/dist/{TemplateReusePanel-BD0HSKp_.cjs → TemplateReusePanel-G-Y299wc.cjs} +1 -1
  20. package/dist/{TemplateReviewPanel-CA5sdffM.cjs → TemplateReviewPanel-KQx9ts0D.cjs} +1 -1
  21. package/dist/{TemplateReviewPanel-NhmQI65C.js → TemplateReviewPanel-vqFJ_Y9o.js} +1 -1
  22. package/dist/artifact-integrity.json +34 -32
  23. package/dist/designer-CyKXBhQg.cjs +2 -0
  24. package/dist/designer-fVvpYg8H.js +5824 -0
  25. package/dist/designer.cjs +1 -1
  26. package/dist/designer.d.cts +93 -1
  27. package/dist/designer.d.ts +93 -1
  28. package/dist/designer.js +22 -19
  29. package/dist/{plugin-DM1M2wlI.cjs → plugin-4VuL38Nc.cjs} +1 -1
  30. package/dist/{plugin-ByjF2kiV.js → plugin-YWHcI3t4.js} +1 -1
  31. package/dist/sbom.cdx.json +1 -1
  32. package/dist/server.cjs +1 -1
  33. package/dist/server.js +1 -1
  34. package/dist/style.css +1 -1
  35. package/dist/vue-async.cjs +1 -1
  36. package/dist/vue-async.js +3 -3
  37. package/dist/vue.cjs +1 -1
  38. package/dist/vue.js +3 -3
  39. package/package.json +1 -1
  40. package/dist/ReportPreview-Yf99omi3.cjs +0 -6
  41. package/dist/designer--TKECSEc.cjs +0 -2
  42. package/dist/designer-d6hJS41w.js +0 -5683
@@ -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;