@printstack/print-studio 0.1.1 → 0.1.3

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 (73) hide show
  1. package/README.md +129 -162
  2. package/assets/{render.worker-Ch4qWx3S.js → render.worker-Dl59Xk1a.js} +9 -9
  3. package/{cloneDeep-PCw2ErRl.js → cloneDeep-waBDTGc3.js} +9 -4
  4. package/components/button-group/ButtonGroup.d.ts +1 -1
  5. package/components/print-s-logo/print-s-logo.vue.d.ts +1 -1
  6. package/components/s-form/types.d.ts +1 -1
  7. package/core/coordinate-space.d.ts +16 -0
  8. package/core/document-model.d.ts +1 -1
  9. package/core/element-registry.d.ts +3 -8
  10. package/core/index.d.ts +1 -0
  11. package/core/page-extensions.d.ts +1 -1
  12. package/core/types.d.ts +8 -0
  13. package/core.js +10 -10
  14. package/designer/commands/menu-adapter.d.ts +3 -3
  15. package/designer/commands/menu-types.d.ts +8 -1
  16. package/designer/commands/types.d.ts +2 -0
  17. package/designer/components/fields/use-table-draft.d.ts +0 -4
  18. package/designer/components/panels/layer-row-types.d.ts +37 -0
  19. package/designer/components/panels/layer-row.vue.d.ts +17 -0
  20. package/designer/components/stage/marquee-overlay.vue.d.ts +8 -0
  21. package/designer/components/stage/node-style.d.ts +3 -0
  22. package/designer/components/stage/selection-member.vue.d.ts +14 -0
  23. package/designer/composables/use-theme.d.ts +3 -0
  24. package/designer/facade/editing.d.ts +2 -2
  25. package/designer/facade/entities.d.ts +1160 -26
  26. package/designer/facade/use-print-studio.d.ts +1 -1
  27. package/designer/frame/view.d.ts +2 -0
  28. package/designer/interactions/marquee.d.ts +1 -1
  29. package/designer/interactions/move.d.ts +3 -1
  30. package/designer/mount-print-designer.d.ts +1 -1
  31. package/designer/plugins/plugin-manager.d.ts +3 -3
  32. package/designer/plugins/types.d.ts +1 -1
  33. package/designer/stores/document-store.d.ts +72 -0
  34. package/designer/stores/editor-store.d.ts +772 -16
  35. package/designer/stores/page-store.d.ts +25 -1
  36. package/designer/stores/selection-store.d.ts +1 -1
  37. package/designer/stores/template-store.d.ts +52 -4
  38. package/designer/stores/types.d.ts +1 -0
  39. package/designer/stores/ui-store.d.ts +232 -3
  40. package/designer/stores/view-store.d.ts +10 -1
  41. package/designer.d.ts +1 -1
  42. package/designer.js +3 -3
  43. package/elements/index.d.ts +2 -4
  44. package/elements/table/table-style.d.ts +3 -10
  45. package/{registries-dZq8MewR.js → elements-YX-XUHtf.js} +2510 -3069
  46. package/host-oKlYakgn.js +123 -0
  47. package/index.d.ts +3 -1
  48. package/index.js +9 -8
  49. package/locales/runtime.d.ts +7 -2
  50. package/locales/translations/zh-CN/designer.json.d.ts +9 -4
  51. package/{mount-print-designer-BLgVZOnm.js → mount-print-designer-CAqO0T0k.js} +4 -4
  52. package/{mount-print-preview-D7M-1AqH.js → mount-print-preview-DgDHL3E8.js} +4 -3
  53. package/package.json +19 -2
  54. package/parser/index.d.ts +1 -1
  55. package/parser/registry.d.ts +8 -0
  56. package/parser/render-runtime.d.ts +1 -1
  57. package/{presets-D3WhkbZK.js → presets-DmCp_Doe.js} +2 -2
  58. package/printer.d.ts +17 -0
  59. package/printer.js +3 -0
  60. package/registries-CyjYSHA7.js +1841 -0
  61. package/runtime/print-renderer.d.ts +3 -2
  62. package/runtime/registries.d.ts +1 -0
  63. package/runtime.js +32 -28
  64. package/{saas-B1H161e1.js → saas-D-q51uTz.js} +1 -1
  65. package/saas.js +1 -1
  66. package/{studio-BFQYHZsg.js → studio-DHusmJyL.js} +1264 -1187
  67. package/studio-types.d.ts +1 -1
  68. package/studio.d.ts +1 -1
  69. package/style.css +1 -1
  70. package/vue.d.ts +1 -1
  71. package/vue.js +3672 -3579
  72. package/document-model-GhFP9OGp.js +0 -1302
  73. package/host-CuGR8rD6.js +0 -123
@@ -1,1302 +0,0 @@
1
- import { A as e, B as t, I as n, j as r, t as i } from "./cloneDeep-PCw2ErRl.js";
2
- // node_modules/.pnpm/uuid@14.0.3/node_modules/uuid/dist/stringify.js
3
- var a = [];
4
- for (let e = 0; e < 256; ++e) a.push((e + 256).toString(16).slice(1));
5
- function o(e, t = 0) {
6
- return (a[e[t + 0]] + a[e[t + 1]] + a[e[t + 2]] + a[e[t + 3]] + "-" + a[e[t + 4]] + a[e[t + 5]] + "-" + a[e[t + 6]] + a[e[t + 7]] + "-" + a[e[t + 8]] + a[e[t + 9]] + "-" + a[e[t + 10]] + a[e[t + 11]] + a[e[t + 12]] + a[e[t + 13]] + a[e[t + 14]] + a[e[t + 15]]).toLowerCase();
7
- }
8
- // node_modules/.pnpm/uuid@14.0.3/node_modules/uuid/dist/rng.js
9
- var s = /* @__PURE__ */ new Uint8Array(16);
10
- function c() {
11
- return crypto.getRandomValues(s);
12
- }
13
- // node_modules/.pnpm/uuid@14.0.3/node_modules/uuid/dist/v7.js
14
- var l = {};
15
- function u(e, t, n) {
16
- let r;
17
- if (e) r = ee(e.random ?? e.rng?.() ?? c(), e.msecs, e.seq, t, n);
18
- else {
19
- let e = Date.now(), i = c();
20
- d(l, e, i), r = ee(i, l.msecs, l.seq, t, n);
21
- }
22
- return t ?? o(r);
23
- }
24
- function d(e, t, n) {
25
- return e.msecs ??= -Infinity, e.seq ??= 0, t > e.msecs ? (e.seq = te(n), e.msecs = t) : (e.seq = e.seq + 1 | 0, e.seq === 0 && e.msecs++), e;
26
- }
27
- function ee(e, t, n, r, i = 0) {
28
- if (e.length < 16) throw Error("Random bytes length must be >= 16");
29
- if (!r) r = /* @__PURE__ */ new Uint8Array(16), i = 0;
30
- else if (i < 0 || i + 16 > r.length) throw RangeError(`UUID byte range ${i}:${i + 15} is out of buffer bounds`);
31
- return t ??= Date.now(), n ??= te(e), r[i++] = t / 1099511627776 & 255, r[i++] = t / 4294967296 & 255, r[i++] = t / 16777216 & 255, r[i++] = t / 65536 & 255, r[i++] = t / 256 & 255, r[i++] = t & 255, r[i++] = 112 | n >>> 28 & 15, r[i++] = n >>> 20 & 255, r[i++] = 128 | n >>> 14 & 63, r[i++] = n >>> 6 & 255, r[i++] = n << 2 & 255 | e[10] & 3, r[i++] = e[11], r[i++] = e[12], r[i++] = e[13], r[i++] = e[14], r[i++] = e[15], r;
32
- }
33
- function te(e) {
34
- return (e[6] & 127) << 24 | e[7] << 16 | e[8] << 8 | e[9];
35
- }
36
- // src/core/element-group.ts
37
- function ne(e, t) {
38
- let n = t.map((t) => e.elements.findIndex((e) => e.id === t));
39
- return !n.some((e) => e < 0) && Math.max(...n) - Math.min(...n) + 1 === n.length;
40
- }
41
- function re(e, t) {
42
- let n = /* @__PURE__ */ new Set([e.id]), r = e.parentId ? t.get(e.parentId) : void 0;
43
- for (; r;) {
44
- if (n.has(r.id)) return !0;
45
- n.add(r.id), r = r.parentId ? t.get(r.parentId) : void 0;
46
- }
47
- return !1;
48
- }
49
- function ie(e) {
50
- let t = { ...e };
51
- return delete t.parentId, t;
52
- }
53
- function ae(e, t) {
54
- let n = new Set(e.elements.map((e) => e.id)), r = /* @__PURE__ */ new Set(), i = [];
55
- for (let a of t) {
56
- if (r.has(a.id)) continue;
57
- r.add(a.id);
58
- let t = [...new Set(a.elementIds)].filter((e) => n.has(e));
59
- t.length !== 0 && ne(e, t) && i.push({
60
- ...a,
61
- elementIds: t
62
- });
63
- }
64
- let a = !0;
65
- for (; a;) {
66
- a = !1;
67
- let e = new Map(i.map((e) => [e.id, e])), t = [], n = /* @__PURE__ */ new Map();
68
- for (let r of i) {
69
- let i = r.parentId ? e.get(r.parentId) : void 0, o = !0;
70
- if (r.parentId && (!i || re(r, e))) o = !1;
71
- else if (i) {
72
- let e = new Set(i.elementIds);
73
- o = r.elementIds.every((t) => e.has(t));
74
- }
75
- let s = r.parentId ?? "", c = n.get(s) ?? /* @__PURE__ */ new Set();
76
- if (o && r.elementIds.some((e) => c.has(e)) && (o = !1), !o) a = !0;
77
- else {
78
- for (let e of r.elementIds) c.add(e);
79
- n.set(s, c), t.push(r);
80
- }
81
- }
82
- let r = new Set(t.map((e) => e.id));
83
- i = t.map((e) => !e.parentId || r.has(e.parentId) ? e : ie(e));
84
- }
85
- return i;
86
- }
87
- function oe(e) {
88
- if (!e.elementGroups || e.elementGroups.length === 0) return;
89
- let t = [];
90
- for (let n of X(e)) {
91
- let r = e.elementGroups.filter((e) => e.pageId === n.id);
92
- t.push(...ae(n, r));
93
- }
94
- e.elementGroups = t;
95
- }
96
- function se(e, t) {
97
- let n = 0, r = e.parentId ? t.get(e.parentId) : void 0;
98
- for (; r;) n += 1, r = r.parentId ? t.get(r.parentId) : void 0;
99
- return n;
100
- }
101
- function ce(e, t) {
102
- let n = t.filter((t) => t.pageId === e.id), r = new Map(n.map((e) => [e.id, e])), i = /* @__PURE__ */ new Map();
103
- for (let e of n) {
104
- let t = se(e, r);
105
- for (let n of e.elementIds) {
106
- let a = i.get(n);
107
- (!a || se(a, r) < t) && i.set(n, e);
108
- }
109
- }
110
- let a = [], o = [];
111
- for (let t of e.elements) {
112
- let e = [], n = i.get(t.id);
113
- for (; n;) e.unshift(n), n = n.parentId ? r.get(n.parentId) : void 0;
114
- let s = 0;
115
- for (; s < o.length && s < e.length && o[s].group.id === e[s].id;) s += 1;
116
- o.length = s;
117
- for (let t of e.slice(s)) {
118
- let e = {
119
- children: [],
120
- group: t,
121
- kind: "group"
122
- };
123
- (o.length > 0 ? o[o.length - 1].children : a).push(e), o.push(e);
124
- }
125
- (o.length > 0 ? o[o.length - 1].children : a).push({
126
- kind: "element",
127
- node: t
128
- });
129
- }
130
- return a;
131
- }
132
- function f(e) {
133
- let t = [];
134
- for (let n of e) n.kind === "element" ? t.push(n.node) : t.push(...f(n.children));
135
- return t;
136
- }
137
- function p(e, t, n) {
138
- for (let r of e) {
139
- if (r.kind !== "group") continue;
140
- let e = f(r.children).map((e) => e.id);
141
- if (e.length === 0) continue;
142
- let i = {
143
- ...ie(r.group),
144
- elementIds: e
145
- };
146
- t && (i.parentId = t), n.push(i), p(r.children, r.group.id, n);
147
- }
148
- }
149
- function le(e, t, n) {
150
- t.elements = f(n);
151
- let r = [];
152
- p(n, void 0, r), e.elementGroups = [...(e.elementGroups ?? []).filter((e) => e.pageId !== t.id), ...r];
153
- }
154
- function m(e) {
155
- return e.kind === "element" ? {
156
- id: e.node.id,
157
- kind: "element"
158
- } : {
159
- id: e.group.id,
160
- kind: "group"
161
- };
162
- }
163
- function h(e, t) {
164
- let n = m(e);
165
- return n.kind === t.kind && n.id === t.id;
166
- }
167
- function g(e, t, n = null) {
168
- for (let [r, i] of e.entries()) {
169
- if (h(i, t)) return {
170
- index: r,
171
- parent: n,
172
- siblings: e
173
- };
174
- if (i.kind === "group") {
175
- let e = g(i.children, t, i);
176
- if (e) return e;
177
- }
178
- }
179
- return null;
180
- }
181
- function ue(e) {
182
- return e.kind === "element" ? [e.node.id] : f(e.children).map((e) => e.id);
183
- }
184
- function _(e, t) {
185
- return h(e, t) ? !0 : e.kind !== "element" && e.children.some((e) => _(e, t));
186
- }
187
- function v(e, t) {
188
- for (let n of e) {
189
- if (n.kind === "element") {
190
- if (n.node.id === t) return [];
191
- continue;
192
- }
193
- let e = v(n.children, t);
194
- if (e.length > 0 || ue(n).includes(t)) return [n, ...e];
195
- }
196
- return [];
197
- }
198
- function de(e, t) {
199
- if (t.length === 0) return;
200
- let n = t.map((t) => v(e, t)), r = n[0], i;
201
- for (let [e, t] of r.entries()) {
202
- if (!n.every((n) => n[e]?.group.id === t.group.id)) break;
203
- i = t;
204
- }
205
- return i?.group;
206
- }
207
- function fe(e) {
208
- for (let t = e.length - 1; t >= 0; --t) {
209
- let n = e[t];
210
- n.kind === "group" && (fe(n.children), n.children.length === 0 && e.splice(t, 1));
211
- }
212
- }
213
- function pe(e, t, n) {
214
- let r = [...new Set(t)];
215
- if (r.length === 0) return !1;
216
- let i = r.map((t) => v(e, t)), a = 0;
217
- for (; i.every((e) => e[a] !== void 0 && e[a].group.id === i[0][a]?.group.id);) a += 1;
218
- let o = a > 0 ? i[0][a - 1] : null, s = o ? o.children : e, c = /* @__PURE__ */ new Set();
219
- for (let [e, t] of r.entries()) {
220
- let n = i[e][a], r = n ? {
221
- id: n.group.id,
222
- kind: "group"
223
- } : {
224
- id: t,
225
- kind: "element"
226
- }, o = s.findIndex((e) => h(e, r));
227
- o >= 0 && c.add(o);
228
- }
229
- if (c.size === 0 || o && c.size === s.length) return !1;
230
- let l = [...c].sort((e, t) => e - t), u = l[l.length - 1], d = l.map((e) => s[e]);
231
- for (let e of [...l].reverse()) s.splice(e, 1);
232
- return s.splice(u - l.length + 1, 0, {
233
- children: d,
234
- group: n,
235
- kind: "group"
236
- }), !0;
237
- }
238
- function me(e, t) {
239
- let n = g(e, {
240
- id: t,
241
- kind: "group"
242
- });
243
- if (!n) return !1;
244
- let r = n.siblings[n.index];
245
- return r.kind === "group" && (n.siblings.splice(n.index, 1, ...r.children), !0);
246
- }
247
- function he(e, t) {
248
- let n = [];
249
- function r(e) {
250
- for (let t of e) n.push(m(t)), t.kind === "group" && r(t.children);
251
- }
252
- r(e);
253
- let i = (e) => n.findIndex((t) => t.kind === e.kind && t.id === e.id);
254
- return [...t].sort((e, t) => i(e) - i(t));
255
- }
256
- function ge(e, t, n, r) {
257
- let i = he(e, t), a = [];
258
- for (let t of i) {
259
- let n = g(e, t);
260
- if (!n) continue;
261
- let r = n.siblings[n.index];
262
- a.some((e) => _(e, t)) || a.push(r);
263
- }
264
- if (a.length === 0 || a.some((e) => _(e, n)) || r === "inside" && n.kind !== "group") return !1;
265
- for (let t of a) {
266
- let n = g(e, m(t));
267
- n?.siblings.splice(n.index, 1);
268
- }
269
- let o = g(e, n);
270
- if (!o) return !1;
271
- let s = o.siblings[o.index];
272
- return r === "inside" && s.kind === "group" ? s.children.push(...a) : r === "above" ? o.siblings.splice(o.index + 1, 0, ...a) : o.siblings.splice(o.index, 0, ...a), fe(e), !0;
273
- }
274
- function _e(e, t) {
275
- let n = [];
276
- for (let r of e) {
277
- if (r.kind === "element") {
278
- t.has(r.node.id) && n.push(m(r));
279
- continue;
280
- }
281
- let e = ue(r);
282
- e.length > 0 && e.every((e) => t.has(e)) ? n.push(m(r)) : n.push(..._e(r.children, t));
283
- }
284
- return n;
285
- }
286
- function ve(e, t, n) {
287
- return "edge" in e ? e.edge === "front" ? n - 1 : 0 : Math.min(Math.max(t + e.offset, 0), n - 1);
288
- }
289
- function ye(e, t, n) {
290
- let r = _e(e, new Set(t));
291
- if (r.length === 0) return !1;
292
- let i = ("edge" in n ? n.edge === "back" : n.offset > 0) ? [...r].reverse() : r, a = !1;
293
- for (let t of i) {
294
- let r = g(e, t);
295
- if (!r) continue;
296
- let { index: i, siblings: o } = r, s = ve(n, i, o.length);
297
- if (s === i) continue;
298
- let [c] = o.splice(i, 1);
299
- o.splice(s, 0, c), a = !0;
300
- }
301
- return a;
302
- }
303
- function be(e, t) {
304
- let n = [];
305
- function r(e, i, a) {
306
- for (let o of [...e].reverse()) o.kind === "element" ? n.push({
307
- depth: i,
308
- kind: "element",
309
- node: o.node,
310
- parentId: a
311
- }) : (n.push({
312
- depth: i,
313
- group: o.group,
314
- kind: "group",
315
- parentId: a
316
- }), t(o.group.id) || r(o.children, i + 1, o.group.id));
317
- }
318
- return r(e, 0, void 0), n;
319
- }
320
- function xe(e, n, r, i) {
321
- let a = (e.elementGroups ?? []).filter((e) => e.pageId === n).length;
322
- return {
323
- elementIds: [],
324
- id: r("layer-group"),
325
- name: i ?? t("core.elementGroup.numberedName", { groupNumber: a + 1 }),
326
- pageId: n
327
- };
328
- }
329
- function Se(e) {
330
- if (!Array.isArray(e)) return [];
331
- let n = [];
332
- for (let r of e) {
333
- if (!r || typeof r != "object") continue;
334
- let e = r;
335
- if (typeof e.id != "string" || typeof e.pageId != "string" || !Array.isArray(e.elementIds)) continue;
336
- let i = {
337
- elementIds: e.elementIds.filter((e) => typeof e == "string"),
338
- id: e.id,
339
- name: typeof e.name == "string" && e.name ? e.name : t("core.elementGroup.defaultName"),
340
- pageId: e.pageId
341
- };
342
- typeof e.parentId == "string" && e.parentId && (i.parentId = e.parentId), n.push(i);
343
- }
344
- return n;
345
- }
346
- // src/core/units.ts
347
- var Ce = 96 / 25.4, we = 25.4 / 72;
348
- function Te(e, t = 1) {
349
- return e / (Ce * t);
350
- }
351
- function Ee(e) {
352
- return e * we;
353
- }
354
- function De(e, t = 1) {
355
- return 96 / 72 * e * t;
356
- }
357
- function Oe(e, t, n) {
358
- return e < t ? t : e > n ? n : e;
359
- }
360
- function y(e, t = 2) {
361
- let n = 10 ** t;
362
- return Math.round(e * n) / n;
363
- }
364
- // src/core/geometry.ts
365
- function b(e) {
366
- return (e % 360 + 540) % 360 - 180;
367
- }
368
- function ke(e, t) {
369
- let n = t * Math.PI / 180, r = Math.abs(Math.cos(n)), i = Math.abs(Math.sin(n)), a = e.x + e.width / 2, o = e.y + e.height / 2, s = e.width / 2 * r + e.height / 2 * i, c = e.width / 2 * i + e.height / 2 * r;
370
- return {
371
- height: c * 2,
372
- width: s * 2,
373
- x: a - s,
374
- y: o - c
375
- };
376
- }
377
- function Ae(e) {
378
- if (e.length === 0) return null;
379
- let t = Infinity, n = Infinity, r = -Infinity, i = -Infinity;
380
- for (let a of e) t = Math.min(t, a.x), n = Math.min(n, a.y), r = Math.max(r, a.x + a.width), i = Math.max(i, a.y + a.height);
381
- return {
382
- height: i - n,
383
- width: r - t,
384
- x: t,
385
- y: n
386
- };
387
- }
388
- function je(e) {
389
- if (e.length === 0) return {
390
- height: 1,
391
- width: 1,
392
- x: 0,
393
- y: 0
394
- };
395
- let t = Infinity, n = Infinity, r = -Infinity, i = -Infinity;
396
- for (let a of e) t = Math.min(t, a.x), n = Math.min(n, a.y), r = Math.max(r, a.x), i = Math.max(i, a.y);
397
- return {
398
- height: i - n,
399
- width: r - t,
400
- x: t,
401
- y: n
402
- };
403
- }
404
- function Me(e, t, n) {
405
- return e.map((e) => ({
406
- x: y(e.x + t),
407
- y: y(e.y + n)
408
- }));
409
- }
410
- function Ne(e, t, n, r) {
411
- return e.map((e) => ({
412
- x: y(t.x + (e.x - t.x) * n),
413
- y: y(t.y + (e.y - t.y) * r)
414
- }));
415
- }
416
- function Pe(e, t, n) {
417
- let r = n * Math.PI / 180, i = Math.cos(r), a = Math.sin(r), o = e.x - t.x, s = e.y - t.y;
418
- return {
419
- x: y(t.x + o * i - s * a),
420
- y: y(t.y + o * a + s * i)
421
- };
422
- }
423
- function x(e) {
424
- if (e.length < 2) return 0;
425
- let t = e[0], n = e[e.length - 1];
426
- return b(Math.atan2(n.y - t.y, n.x - t.x) * 180 / Math.PI);
427
- }
428
- function S(e) {
429
- if (e.length < 2) return 0;
430
- let t = e[0], n = e[e.length - 1];
431
- return Math.hypot(n.x - t.x, n.y - t.y);
432
- }
433
- var C = .01;
434
- function w(e, t, n, r) {
435
- let i = t, a = n(t), o = r && r(t) ? t : null, s = o ? a : Infinity;
436
- for (let e = -1; e <= 1; e += 1) for (let c = -1; c <= 1; c += 1) {
437
- let l = {
438
- x: y(t.x + e * C),
439
- y: y(t.y + c * C)
440
- }, u = n(l);
441
- u < a && (i = l, a = u), r && r(l) && u < s && (o = l, s = u);
442
- }
443
- return o ?? i;
444
- }
445
- function Fe(e, t, n, r) {
446
- let i = b(n);
447
- return w(e, t, (t) => {
448
- let n = x([e, t]);
449
- return Math.abs(b(n - i));
450
- }, r);
451
- }
452
- function Ie(e, t, n, r) {
453
- return w(e, t, (t) => Math.abs(Math.hypot(t.x - e.x, t.y - e.y) - n), r);
454
- }
455
- function Le(e, t, n) {
456
- let r = t * Math.PI / 180;
457
- return {
458
- x: y(e.x + Math.cos(r) * n),
459
- y: y(e.y + Math.sin(r) * n)
460
- };
461
- }
462
- function Re(e, t, n) {
463
- let r = y(x([e, t]));
464
- return Ie(e, Le(e, r, n), n, (t) => y(b(x([e, t])), 2) === y(b(r), 2));
465
- }
466
- function ze(e, t, n) {
467
- let r = y(S([e, t]));
468
- return Fe(e, Le(e, n, r), n, (t) => y(Math.hypot(t.x - e.x, t.y - e.y), 2) === r);
469
- }
470
- function Be(e, t, n) {
471
- let r = n.x - t.x, i = n.y - t.y, a = r * r + i * i;
472
- if (a === 0) return Math.hypot(e.x - t.x, e.y - t.y);
473
- let o = Oe(((e.x - t.x) * r + (e.y - t.y) * i) / a, 0, 1);
474
- return Math.hypot(e.x - (t.x + o * r), e.y - (t.y + o * i));
475
- }
476
- function T(e) {
477
- return Array.isArray(e.points) && e.points.length > 0;
478
- }
479
- function E(e, t) {
480
- let n = je(t);
481
- return {
482
- height: y(Math.max(n.height, 0)),
483
- points: t.map((e) => ({
484
- x: y(e.x),
485
- y: y(e.y)
486
- })),
487
- rotation: 0,
488
- width: y(Math.max(n.width, 0)),
489
- x: y(n.x),
490
- y: y(n.y)
491
- };
492
- }
493
- function D(e, t, n) {
494
- return T(e) ? E(e, Me(e.points, t, n)) : {
495
- x: y(e.x + t),
496
- y: y(e.y + n)
497
- };
498
- }
499
- // src/core/render/element-warning.ts
500
- function O(e, n) {
501
- return t("core.pageExtensions.elementFailed", {
502
- elementName: e.name || e.id,
503
- message: n instanceof Error && n.cause ? r(n) + " · " + r(n.cause) : r(n)
504
- });
505
- }
506
- function Ve(e, t, n) {
507
- let r = O(e, t);
508
- n ? n(r) : console.warn(r);
509
- }
510
- // src/core/element-registry.ts
511
- var He = class {
512
- definitions = /* @__PURE__ */ new Map();
513
- listeners = /* @__PURE__ */ new Set();
514
- get(e) {
515
- return this.definitions.get(e);
516
- }
517
- list() {
518
- return [...this.definitions.values()].sort((e, t) => e.order === t.order ? e.type.localeCompare(t.type) : e.order - t.order);
519
- }
520
- register(e) {
521
- if (this.definitions.has(e.type)) throw Error(t("core.elementRegistry.duplicateElementType", { elementType: e.type }));
522
- this.definitions.set(e.type, e), this.notify();
523
- }
524
- subscribe(e) {
525
- return this.listeners.add(e), () => {
526
- this.listeners.delete(e);
527
- };
528
- }
529
- toolItems() {
530
- return this.list().map((e) => ({
531
- icon: e.icon,
532
- get label() {
533
- return e.label;
534
- },
535
- shortcut: e.shortcut,
536
- type: e.type
537
- }));
538
- }
539
- unregister(e) {
540
- let t = this.definitions.delete(e);
541
- return t && this.notify(), t;
542
- }
543
- notify() {
544
- for (let e of this.listeners) e();
545
- }
546
- }, k = new He();
547
- function Ue(e) {
548
- return e;
549
- }
550
- function We(e) {
551
- return e?.elements ?? k;
552
- }
553
- function Ge(e, t) {
554
- if (!t.node.visible) return null;
555
- try {
556
- return e.get(t.node.type)?.paginate?.(t);
557
- } catch (e) {
558
- return t.warnings.add(O(t.node, e)), null;
559
- }
560
- }
561
- // src/core/element-transform.ts
562
- function A(e, t = k) {
563
- let n = t.get(e.type)?.getMinSize?.({
564
- node: e,
565
- props: e.props
566
- });
567
- return {
568
- height: Math.max(1, n?.height ?? 1),
569
- width: Math.max(1, n?.width ?? 1)
570
- };
571
- }
572
- function j(e, t, n = k, r = {}) {
573
- let i = n.get(e.type), a = i?.aspectRatio, o = t;
574
- if (a && a > 0 && (typeof t.width == "number" ? o = {
575
- ...t,
576
- height: y(t.width / a)
577
- } : typeof t.height == "number" && (o = {
578
- ...t,
579
- width: y(t.height * a)
580
- })), r.enforceMinimum !== !1 && i?.getMinSize && ("width" in t || "height" in t || "props" in t || "type" in t)) {
581
- let t = {
582
- ...e,
583
- ...o
584
- }, r = A(t, n);
585
- t.width < r.width && (o = {
586
- ...o,
587
- width: r.width
588
- }, t = {
589
- ...e,
590
- ...o
591
- }, r = A(t, n)), t.height < r.height && (o = {
592
- ...o,
593
- height: r.height
594
- });
595
- }
596
- return o;
597
- }
598
- function Ke(e, t) {
599
- if (T(e)) {
600
- if (t === "width") return y(S(e.points));
601
- if (t === "rotation") return y(x(e.points));
602
- }
603
- return e[t];
604
- }
605
- function qe(e, t, n) {
606
- if (typeof n != "number" || !Number.isFinite(n)) return {};
607
- if (t === "x") return D(e, n - e.x, 0);
608
- if (t === "y") return D(e, 0, n - e.y);
609
- if (!T(e)) return j(e, { [t]: n });
610
- let r = e.points, i = r[0], a = r[r.length - 1];
611
- if (t === "width") return E(e, [...r.slice(0, -1), Re(i, a, n)]);
612
- if (t === "rotation") return E(e, [...r.slice(0, -1), ze(i, a, n)]);
613
- if (t === "height") {
614
- let t = e.height > 0 ? n / e.height : 1;
615
- return E(e, Ne(r, {
616
- x: e.x,
617
- y: e.y
618
- }, 1, t));
619
- }
620
- return { [t]: n };
621
- }
622
- // src/core/follow-block.ts
623
- function Je(e) {
624
- return `${e.kind}:${e.id}`;
625
- }
626
- function Ye(e, t, n) {
627
- if (n.kind === "element") {
628
- let r = e.pages.find((e) => e.id === t)?.elements.find((e) => e.id === n.id);
629
- return r ? {
630
- elementIds: [r.id],
631
- name: r.name
632
- } : void 0;
633
- }
634
- let r = (n.kind === "followBlock" ? e.followBlocks : e.repeatGroups)?.find((e) => e.id === n.id && e.pageId === t);
635
- return r ? {
636
- elementIds: r.elementIds,
637
- name: r.name
638
- } : void 0;
639
- }
640
- function M(e, t) {
641
- let n = e.pages.find((e) => e.id === t.pageId), r = (e.followBlocks ?? []).filter((e) => e.id !== t.id), i = e.repeatGroups ?? [];
642
- if (!n || !t.id || !Number.isFinite(t.gap) || t.elementIds.length === 0 || new Set(t.elementIds).size !== t.elementIds.length || t.elementIds.some((e) => !n.elements.some((t) => t.id === e))) return "invalidMembers";
643
- if (r.some((e) => e.elementIds.some((e) => t.elementIds.includes(e))) || i.some((e) => e.elementIds.some((e) => t.elementIds.includes(e)))) return "memberConflict";
644
- let a = [...r, t], o = /* @__PURE__ */ new Set([t.id]), s = t;
645
- for (;;) {
646
- let e = s.target;
647
- if (e.kind === "element") return !n.elements.some((t) => t.id === e.id) || a.some((t) => t.elementIds.includes(e.id)) || i.some((t) => t.elementIds.includes(e.id)) ? "invalidTarget" : void 0;
648
- if (e.kind === "repeatGroup") return i.some((n) => n.id === e.id && n.pageId === t.pageId) ? void 0 : "invalidTarget";
649
- let r = a.find((n) => n.id === e.id && n.pageId === t.pageId);
650
- if (!r) return "invalidTarget";
651
- if (o.has(r.id)) return "cycle";
652
- o.add(r.id), s = r;
653
- }
654
- }
655
- function Xe(n) {
656
- let r = /* @__PURE__ */ new Set();
657
- for (let i of n.followBlocks ?? []) {
658
- let a = r.has(i.id) ? "invalidMembers" : M(n, i);
659
- if (a) throw new e(t(`core.followBlock.${a}`), { code: `follow.${a}` });
660
- r.add(i.id);
661
- }
662
- }
663
- function Ze(e) {
664
- if (!e.followBlocks) return;
665
- e.followBlocks = e.followBlocks.map((t) => {
666
- let n = e.pages.find((e) => e.id === t.pageId);
667
- return {
668
- ...t,
669
- elementIds: t.elementIds.filter((e) => n?.elements.some((t) => t.id === e))
670
- };
671
- });
672
- let t = !0;
673
- for (; t;) {
674
- let n = e.followBlocks ?? [], r = /* @__PURE__ */ new Set();
675
- e.followBlocks = n.filter((t) => r.has(t.id) || M(e, t) ? !1 : (r.add(t.id), !0)), t = (e.followBlocks?.length ?? 0) !== n.length;
676
- }
677
- }
678
- // src/core/page-extensions.ts
679
- function N(e, t, n) {
680
- let r = e.templates?.find((e) => e.owner && q(e).some((e) => e.elements.some((e) => e.id === t.id)));
681
- if (!r?.owner) return;
682
- let i = Y(e, r.owner.elementId)?.node, a = i && n.get(i.type)?.pageExtensions, o = i && a?.references(i).find((e) => e.templateId === r.id && e.elementId === t.id && e.purpose === r.owner?.purpose);
683
- if (i && a && o) return {
684
- capability: a,
685
- purpose: o.purpose,
686
- source: i
687
- };
688
- }
689
- function P(e, t, n) {
690
- let r = N(e, t, n);
691
- return r?.capability.resolveTarget?.(r.source, t, r.purpose) ?? t;
692
- }
693
- function F(e, t, n) {
694
- let r = P(e, t, n);
695
- r === t ? n.get(t.type)?.pageExtensions?.reconcile?.(e, t) : (t.bindings = r.bindings, t.props = r.props);
696
- }
697
- function Qe(n, r, i) {
698
- let a = n.templates?.flatMap((e) => e.requiredElements ?? []).find((e) => e.elementId === r.id);
699
- if (a && (!i || i.id !== void 0 && i.id !== r.id || i.visible === !1 || i.type !== void 0 && i.type !== a.type)) throw new e(t("core.pageExtensions.requiredElement"), { code: "template.required-element" });
700
- }
701
- function I(n) {
702
- let r = [n.page, ...n.evenPage ? [n.evenPage] : []].flatMap((e) => e.elements);
703
- for (let i of n.requiredElements ?? []) {
704
- let a = r.find((e) => e.id === i.elementId);
705
- if (!a || !a.visible || a.type !== i.type) throw new e(t("core.pageExtensions.invalidDependency", {
706
- elementId: i.elementId,
707
- templateName: n.name
708
- }), { code: "template.invalid-dependency" });
709
- }
710
- }
711
- function L(e, t, n, r, a = e) {
712
- let o = r.get(t.type)?.pageExtensions;
713
- if (o) for (let s of o.references(t)) {
714
- let c = a.templates?.find((e) => e.id === s.templateId);
715
- if (!c) continue;
716
- if (q(c).some((e) => e.elements.some((e) => e.id === t.id))) {
717
- o.rebind(n, s.purpose, "", "");
718
- continue;
719
- }
720
- if (t.id === n.id && c.owner?.elementId === n.id) continue;
721
- if (t.id === n.id && !c.owner && !e.pages.some((e) => e.templateId === c.id) && !e.templates?.some((e) => e.baseTemplateId === c.id)) {
722
- c.owner = {
723
- elementId: n.id,
724
- purpose: s.purpose
725
- }, c.requiredElements = [{
726
- elementId: s.elementId,
727
- type: t.type
728
- }];
729
- continue;
730
- }
731
- let l = i(c);
732
- l.id = U("template"), l.builtin = !1, l.owner = {
733
- elementId: n.id,
734
- purpose: s.purpose
735
- };
736
- let u = /* @__PURE__ */ new Map();
737
- l.page.id = l.id, l.evenPage && (l.evenPage.id = l.id + "-even");
738
- for (let e of [l.page, ...l.evenPage ? [l.evenPage] : []]) e.elements = e.elements.map((e) => {
739
- let t = J(e);
740
- t.id = U("el"), u.set(e.id, t.id);
741
- for (let e of r.get(t.type)?.pageExtensions?.references(t) ?? []) e.templateId === c.id && r.get(t.type)?.pageExtensions?.rebind(t, e.purpose, "", "");
742
- return t;
743
- });
744
- let d = u.get(s.elementId) ?? s.elementId;
745
- l.requiredElements = (c.requiredElements ?? [{
746
- elementId: s.elementId,
747
- type: t.type
748
- }]).map((e) => ({
749
- ...e,
750
- elementId: u.get(e.elementId) ?? e.elementId
751
- })), e.templates ??= [], e.templates.push(l), o.rebind(n, s.purpose, l.id, d);
752
- }
753
- }
754
- function R(e, t) {
755
- let n;
756
- do {
757
- let r = e.templates ?? [];
758
- e.templates = r.filter((n) => {
759
- if (!n.owner) return !0;
760
- let r = Y(e, n.owner.elementId)?.node;
761
- return r ? t ? t.get(r.type)?.pageExtensions?.references(r).some((e) => e.templateId === n.id) ?? !1 : !0 : !1;
762
- }), n = e.templates.length !== r.length;
763
- } while (n);
764
- }
765
- function $e(n, r, i) {
766
- for (let a of i.get(r.type)?.pageExtensions?.references(r) ?? []) {
767
- let i = n.templates?.find((e) => e.id === a.templateId);
768
- if (i?.owner && (i.owner.elementId !== r.id || i.owner.purpose !== a.purpose || !i.requiredElements?.some((e) => e.elementId === a.elementId))) throw new e(t("core.pageExtensions.internalTemplate"), { code: "template.owner-mismatch" });
769
- }
770
- }
771
- // src/core/page-layout.ts
772
- function z(e) {
773
- return V(e), {
774
- height: e.height,
775
- margins: e.margins === void 0 ? void 0 : B(e.margins),
776
- width: e.width
777
- };
778
- }
779
- function B(n) {
780
- if (n === void 0) return {
781
- bottom: 0,
782
- left: 0,
783
- right: 0,
784
- top: 0
785
- };
786
- if (!n || ![
787
- "bottom",
788
- "left",
789
- "right",
790
- "top"
791
- ].every((e) => {
792
- let t = n[e];
793
- return typeof t == "number" && Number.isFinite(t) && t >= 0;
794
- })) throw new e(t("core.pageLayout.invalidMargins"), { code: "page.invalid-margins" });
795
- return {
796
- bottom: n.bottom,
797
- left: n.left,
798
- right: n.right,
799
- top: n.top
800
- };
801
- }
802
- function V(n) {
803
- let r = B(n.margins), i = n.width - r.left - r.right, a = n.height - r.top - r.bottom;
804
- if (!Number.isFinite(i) || !Number.isFinite(a) || i <= 0 || a <= 0) throw new e(t("core.pageLayout.emptyContent"), { code: "page.empty-content" });
805
- return {
806
- height: a,
807
- width: i,
808
- x: r.left,
809
- y: r.top
810
- };
811
- }
812
- // src/core/parser-version.ts
813
- var H = "1.0.0";
814
- function et(e) {
815
- if (e === void 0) return H;
816
- if (typeof e != "string" || !e.trim()) throw Error("Invalid parser version");
817
- return e;
818
- }
819
- // src/core/document-model.ts
820
- var tt = "1.0";
821
- function U(e = "id") {
822
- return `${e}-${u()}`;
823
- }
824
- function W(e = 210, n = 297, r, i = {}) {
825
- let a = {
826
- background: "#ffffff",
827
- elements: [],
828
- guides: [],
829
- height: n,
830
- id: U("page"),
831
- name: r ?? t("core.documentModel.defaultPageName"),
832
- width: e,
833
- ...i
834
- };
835
- return V(a), a.margins !== void 0 && (a.margins = B(a.margins)), a;
836
- }
837
- var nt = "template-blank", G = "template-none";
838
- function K() {
839
- let e = {
840
- builtin: !0,
841
- id: nt,
842
- name: t("core.documentModel.blankTemplateName"),
843
- page: W(210, 297)
844
- };
845
- return e.page.id = e.id, e.page.name = e.name, e;
846
- }
847
- function rt(n, r, i = 0, a = /* @__PURE__ */ new Set()) {
848
- let o = [], s = r;
849
- for (; s;) {
850
- if (a.has(s.id)) throw new e(t("designer.templateStore.circularInheritance"));
851
- a.add(s.id), o.push(s);
852
- let r = s.baseTemplateId;
853
- if (s = n.templates?.find((e) => e.id === r), s?.owner) throw new e(t("core.pageExtensions.internalTemplate"), { code: "template.internal-resource" });
854
- }
855
- let c = at(r, i), l = o.findIndex((e, t) => t > 0 && !it(e, i)), u = l < 0 ? o : o.slice(0, l);
856
- return u.length === 1 ? {
857
- ...r,
858
- page: c
859
- } : {
860
- ...r,
861
- background: u.find((e) => e.background !== void 0)?.background,
862
- page: {
863
- ...c,
864
- elements: u.reverse().flatMap((e) => at(e, i).elements)
865
- }
866
- };
867
- }
868
- function it(e, t) {
869
- return t <= 0 || (t % 2 == 0 ? e.evenPages : e.oddPages) !== !1;
870
- }
871
- function q(e) {
872
- return e.facingPages && e.evenPage ? [e.evenPage, e.page] : [e.page];
873
- }
874
- function at(e, t) {
875
- return t > 0 && t % 2 == 0 && e.facingPages && e.evenPage ? ot(e.evenPage, e.page) : e.page;
876
- }
877
- function ot(e, t) {
878
- if (e.margins !== void 0 || t.margins === void 0) return e;
879
- let n = z({
880
- ...e,
881
- margins: t.margins
882
- });
883
- return {
884
- ...e,
885
- ...n
886
- };
887
- }
888
- function st(e, n) {
889
- let r = {
890
- id: U("template"),
891
- name: e ?? t("core.documentModel.defaultTemplateName"),
892
- page: W(n?.width ?? 210, n?.height ?? 297, e, { margins: n?.margins })
893
- };
894
- return r.page.id = r.id, r.page.name = r.name, r;
895
- }
896
- function ct(e, n = {}, r = k) {
897
- let i = r.get(e);
898
- if (!i) throw Error(t("core.documentModel.unregisteredElementType", { elementType: e }));
899
- let a = {
900
- height: i.defaultSize.height,
901
- id: U("el"),
902
- locked: !1,
903
- name: i.label,
904
- opacity: 1,
905
- props: i.createProps(),
906
- rotation: 0,
907
- type: e,
908
- visible: !0,
909
- width: i.defaultSize.width,
910
- x: 0,
911
- y: 0,
912
- ...n
913
- };
914
- ut(a, i), a.props = i.normalizeProps?.(a.props) ?? a.props, lt(a, i);
915
- let o = n.height !== void 0 && n.width === void 0 ? { height: a.height } : { width: a.width };
916
- return Object.assign(a, j(a, o, r)), a;
917
- }
918
- function lt(e, t = k.get(e.type)) {
919
- let n = t?.measureSize?.({
920
- mode: "design",
921
- node: e,
922
- props: e.props
923
- });
924
- n && (typeof n.height == "number" && (e.height = n.height), typeof n.width == "number" && (e.width = n.width));
925
- }
926
- function ut(e, t = k.get(e.type)) {
927
- if (t?.pointBased && !Array.isArray(e.points)) {
928
- let n = t.pointBased.migrateRect ? t.pointBased.migrateRect(e) : [{
929
- x: e.x,
930
- y: e.y + e.height / 2
931
- }, {
932
- x: e.x + e.width,
933
- y: e.y + e.height / 2
934
- }];
935
- Object.assign(e, E(e, n));
936
- }
937
- return e;
938
- }
939
- function J(e) {
940
- return {
941
- ...e,
942
- props: JSON.parse(JSON.stringify(e.props)),
943
- ...e.points ? { points: e.points.map((e) => ({
944
- x: e.x,
945
- y: e.y
946
- })) } : {}
947
- };
948
- }
949
- function Y(e, t) {
950
- for (let n of X(e)) {
951
- let e = n.elements.findIndex((e) => e.id === t);
952
- if (e >= 0) return {
953
- index: e,
954
- node: n.elements[e],
955
- page: n
956
- };
957
- }
958
- return null;
959
- }
960
- function X(e) {
961
- let t = [...e.pages];
962
- for (let n of e.templates ?? []) t.push(n.page), n.evenPage && t.push(n.evenPage);
963
- return t;
964
- }
965
- function dt(e, t) {
966
- return X(e).find((e) => e.id === t);
967
- }
968
- function Z(e, t, n = e.pages.findIndex((e) => e.id === t.id) + 1) {
969
- let r = t.templateId ?? "template-blank", i = e.templates?.find((e) => e.id === r);
970
- if (r !== "template-none" && i && i.owner === void 0 && it(i, n)) return rt(e, i, n);
971
- }
972
- function ft(e, t, n) {
973
- return z(Z(e, t, n)?.page ?? t);
974
- }
975
- function pt(e, t = (e) => e, n = console.warn) {
976
- if (!e.templates?.length) return e;
977
- let i = e.pages.map((i, a) => {
978
- let o;
979
- try {
980
- o = Z(e, i, a + 1), o && I(o);
981
- } catch (e) {
982
- return n(r(e)), {
983
- ...i,
984
- templateId: G
985
- };
986
- }
987
- let s = o !== void 0 && (o.background !== void 0 || o.page.elements.length > 0 || o.page.margins !== void 0 || i.margins !== void 0 || i.width !== o.page.width || i.height !== o.page.height);
988
- if (!o || !s) return i;
989
- let c = o.page.elements.map((e) => {
990
- let n = J(e);
991
- return n.id = U("el"), t(n);
992
- });
993
- return {
994
- ...z(o.page),
995
- background: o.background ?? i.background,
996
- elements: [...c, ...i.elements],
997
- guides: i.guides,
998
- id: i.id,
999
- name: i.name
1000
- };
1001
- });
1002
- return {
1003
- ...e,
1004
- pages: i,
1005
- templates: void 0
1006
- };
1007
- }
1008
- function mt() {
1009
- let e = W(210, 297, t("core.documentModel.initialPageName"));
1010
- return {
1011
- dataSources: ht(),
1012
- name: t("core.documentModel.defaultDocumentName"),
1013
- pages: [e],
1014
- parserVersion: H,
1015
- repeatGroups: [],
1016
- templates: [K()],
1017
- version: "1.0"
1018
- };
1019
- }
1020
- function ht() {
1021
- return [
1022
- {
1023
- description: t("core.documentModel.orderSourceDescription"),
1024
- key: "data",
1025
- label: t("core.documentModel.sampleOrderInfoName"),
1026
- sampleData: {
1027
- amount: 1280.5,
1028
- date: "2026-11-03",
1029
- description: t("core.documentModel.sampleOrderDescription"),
1030
- orderNo: "SO202611030001"
1031
- },
1032
- schema: [
1033
- {
1034
- label: t("core.documentModel.orderNumberField"),
1035
- name: "orderNo",
1036
- type: "string"
1037
- },
1038
- {
1039
- label: t("core.documentModel.orderDescriptionField"),
1040
- name: "description",
1041
- type: "string"
1042
- },
1043
- {
1044
- label: t("core.documentModel.orderAmountField"),
1045
- name: "amount",
1046
- type: "number"
1047
- },
1048
- {
1049
- label: t("core.documentModel.orderDateField"),
1050
- name: "date",
1051
- type: "date"
1052
- }
1053
- ]
1054
- },
1055
- {
1056
- description: t("core.documentModel.customerSourceDescription"),
1057
- key: "customer",
1058
- label: t("core.documentModel.customerSourceName"),
1059
- sampleData: {
1060
- name: t("core.documentModel.sampleCustomerName"),
1061
- phone: "13800000000"
1062
- },
1063
- schema: [{
1064
- label: t("core.documentModel.customerNameField"),
1065
- name: "name",
1066
- type: "string"
1067
- }, {
1068
- label: t("core.documentModel.customerPhoneField"),
1069
- name: "phone",
1070
- type: "string"
1071
- }]
1072
- },
1073
- {
1074
- description: t("core.documentModel.itemsSourceDescription"),
1075
- key: "items",
1076
- label: t("core.documentModel.itemsSourceName"),
1077
- sampleData: [
1078
- {
1079
- amount: 100,
1080
- name: t("core.documentModel.samplePaperProduct"),
1081
- quantity: 2
1082
- },
1083
- {
1084
- amount: 200,
1085
- name: t("core.documentModel.sampleRibbonProduct"),
1086
- quantity: 3
1087
- },
1088
- {
1089
- amount: 299,
1090
- name: t("core.documentModel.sampleScannerProduct"),
1091
- quantity: 1
1092
- }
1093
- ],
1094
- schema: [{
1095
- children: [
1096
- {
1097
- label: t("core.documentModel.sampleProductColumn"),
1098
- name: "name",
1099
- type: "string"
1100
- },
1101
- {
1102
- label: t("core.documentModel.sampleQuantityColumn"),
1103
- name: "quantity",
1104
- type: "number"
1105
- },
1106
- {
1107
- label: t("core.documentModel.itemAmountField"),
1108
- name: "amount",
1109
- type: "number"
1110
- }
1111
- ],
1112
- label: t("core.documentModel.itemsField"),
1113
- name: "item",
1114
- type: "array"
1115
- }]
1116
- }
1117
- ];
1118
- }
1119
- function gt(n) {
1120
- if (!Array.isArray(n.pages) || n.pages.length === 0) throw new e(t("core.documentModel.missingPages"), { code: "document.no-pages" });
1121
- }
1122
- function _t(r, i = k) {
1123
- if (!r || typeof r != "object") throw new e(t("core.documentModel.invalidDocument"), { code: "document.invalid" });
1124
- let a = r;
1125
- gt(a);
1126
- let o = [], s = !Array.isArray(a.templates) || a.templates.length === 0, c = yt(a.templates, o, i), l = {
1127
- name: "",
1128
- pages: a.pages,
1129
- templates: c,
1130
- version: "1.0"
1131
- }, u = a.pages.map((e, t) => {
1132
- let n = e?.templateId, r = n && n !== "template-none" && !c.some((e) => e.id === n) ? {
1133
- ...e,
1134
- templateId: void 0
1135
- } : e;
1136
- s && (r?.templateId === void 0 || r.templateId === "template-blank") && (r = {
1137
- ...r,
1138
- templateId: G
1139
- });
1140
- let a = Z(l, r ?? {}, t + 1);
1141
- return Q(a ? {
1142
- ...r,
1143
- ...z(a.page)
1144
- } : r, t, o, i);
1145
- }), d = {
1146
- dataSources: n(Array.isArray(a.dataSources) ? a.dataSources : []),
1147
- elementGroups: Se(a.elementGroups),
1148
- followBlocks: vt(a.followBlocks),
1149
- name: typeof a.name == "string" && a.name ? a.name : t("core.documentModel.defaultDocumentName"),
1150
- pages: u,
1151
- parserVersion: et(a.parserVersion),
1152
- repeatGroups: wt(a.repeatGroups, u),
1153
- templates: c,
1154
- version: "1.0"
1155
- };
1156
- for (let e of [...X(d)]) for (let t of e.elements) L(d, t, t, i), F(d, t, i);
1157
- return Ze(d), R(d, i), oe(d), {
1158
- document: d,
1159
- skippedTypes: o
1160
- };
1161
- }
1162
- function vt(e) {
1163
- if (!Array.isArray(e)) return [];
1164
- let t = [];
1165
- for (let n of e) {
1166
- if (!n || typeof n != "object") continue;
1167
- let e = n, r = e.target;
1168
- typeof e.id == "string" && typeof e.pageId == "string" && Array.isArray(e.elementIds) && r && typeof r.id == "string" && [
1169
- "element",
1170
- "followBlock",
1171
- "repeatGroup"
1172
- ].includes(r.kind) && t.push({
1173
- elementIds: [...new Set(e.elementIds.filter((e) => typeof e == "string"))],
1174
- gap: $(e.gap, 2),
1175
- id: e.id,
1176
- name: typeof e.name == "string" ? e.name : "",
1177
- pageId: e.pageId,
1178
- target: {
1179
- id: r.id,
1180
- kind: r.kind
1181
- }
1182
- });
1183
- }
1184
- return t;
1185
- }
1186
- function Q(e, n, r, i) {
1187
- let a = {
1188
- background: typeof e?.background == "string" ? e.background : "#ffffff",
1189
- elements: [],
1190
- guides: bt(e?.guides),
1191
- height: $(e?.height, 297),
1192
- id: typeof e?.id == "string" ? e.id : U("page"),
1193
- margins: e?.margins === void 0 ? void 0 : B(e.margins),
1194
- name: typeof e?.name == "string" ? e.name : t("core.documentModel.numberedPageName", { pageNumber: n + 1 }),
1195
- templateId: typeof e?.templateId == "string" ? e.templateId : void 0,
1196
- width: $(e?.width, 210)
1197
- };
1198
- if (V(a), Array.isArray(e?.elements)) for (let t of e.elements) {
1199
- let e = xt(t, r, i);
1200
- e && a.elements.push(e);
1201
- }
1202
- return a;
1203
- }
1204
- function yt(e, n, r) {
1205
- let i = [];
1206
- if (Array.isArray(e)) for (let a of e) {
1207
- if (!a || typeof a != "object") continue;
1208
- let e = a, o = typeof e.id == "string" && e.id ? e.id : U("template"), s = typeof e.name == "string" && e.name ? e.name : t("core.documentModel.defaultTemplateName"), c = Q(e.page ?? null, i.length, n, r);
1209
- c.id = o, c.name = s;
1210
- let l;
1211
- (e.evenPage || e.facingPages) && (l = Q(e.evenPage ?? null, i.length, n, r), l.id = `${o}-even`, l.name = s, e.evenPage ? l = ot(l, c) : Object.assign(l, z(c))), i.push({
1212
- background: typeof e.background == "string" && e.background ? e.background : void 0,
1213
- baseTemplateId: typeof e.baseTemplateId == "string" ? e.baseTemplateId : void 0,
1214
- builtin: e.builtin === !0,
1215
- evenPage: l,
1216
- evenPages: e.evenPages !== !1,
1217
- facingPages: e.facingPages === !0,
1218
- id: o,
1219
- name: s,
1220
- oddPages: e.oddPages !== !1,
1221
- owner: e.owner && typeof e.owner.elementId == "string" && typeof e.owner.purpose == "string" ? { ...e.owner } : void 0,
1222
- page: c,
1223
- requiredElements: Array.isArray(e.requiredElements) ? e.requiredElements.filter((e) => typeof e?.elementId == "string" && typeof e?.type == "string").map((e) => ({ ...e })) : void 0
1224
- });
1225
- }
1226
- return i.some((e) => e.id === "template-blank") || i.unshift(K()), i;
1227
- }
1228
- function bt(e) {
1229
- if (!Array.isArray(e)) return [];
1230
- let t = [];
1231
- for (let n of e) n && typeof n == "object" && typeof n.orientation == "string" && t.push({
1232
- id: typeof n.id == "string" ? n.id : U("guide"),
1233
- orientation: n.orientation === "vertical" ? "vertical" : "horizontal",
1234
- position: $(n.position, 0)
1235
- });
1236
- return t;
1237
- }
1238
- function xt(e, t, n) {
1239
- if (!e || typeof e != "object" || !("type" in e) || typeof e.type != "string") return;
1240
- let r = n.get(e.type);
1241
- if (!r) {
1242
- t.includes(e.type) || t.push(e.type);
1243
- return;
1244
- }
1245
- let i = e, a = ct(e.type, {}, n), o = {
1246
- bindings: St(i.bindings),
1247
- height: $(i.height, r.defaultSize.height),
1248
- id: typeof i.id == "string" ? i.id : a.id,
1249
- locked: i.locked === !0,
1250
- name: typeof i.name == "string" ? i.name : r.label,
1251
- opacity: $(i.opacity, 1),
1252
- props: r.normalizeProps?.({
1253
- ...a.props,
1254
- ...i.props && typeof i.props == "object" ? i.props : {}
1255
- }) ?? {
1256
- ...a.props,
1257
- ...i.props && typeof i.props == "object" ? i.props : {}
1258
- },
1259
- rotation: $(i.rotation, 0),
1260
- type: e.type,
1261
- visible: i.visible !== !1,
1262
- width: $(i.width, r.defaultSize.width),
1263
- x: $(i.x, 0),
1264
- y: $(i.y, 0)
1265
- };
1266
- return r.pointBased && Ct(o, i.points), Object.assign(o, j(o, { width: o.width }, n)), o;
1267
- }
1268
- function St(e) {
1269
- if (e && typeof e == "object") return Object.fromEntries(Object.entries(e).filter((e) => typeof e[1] == "string"));
1270
- }
1271
- function Ct(e, t) {
1272
- let n = (Array.isArray(t) ? t : []).filter((e) => e && typeof e == "object").map((e) => ({
1273
- x: $(e.x, 0),
1274
- y: $(e.y, 0)
1275
- }));
1276
- n.length === 0 ? ut(e) : Object.assign(e, E(e, n));
1277
- }
1278
- function wt(e, n) {
1279
- if (!Array.isArray(e)) return [];
1280
- let r = [];
1281
- for (let i of e) {
1282
- if (!i || typeof i != "object") continue;
1283
- let e = i, a = n.some((t) => t.id === e.pageId), o = Array.isArray(e.elementIds) ? e.elementIds.filter((t) => typeof t == "string" && n.some((n) => n.id === e.pageId && n.elements.some((e) => e.id === t))) : [];
1284
- a && o.length !== 0 && typeof e.collection == "string" && e.collection && r.push({
1285
- collection: e.collection,
1286
- columns: Math.max(1, Math.trunc($(e.columns, 2))),
1287
- direction: e.direction === "grid" || e.direction === "page" ? e.direction : "vertical",
1288
- elementIds: o,
1289
- gapX: $(e.gapX, 2),
1290
- gapY: $(e.gapY, 2),
1291
- id: typeof e.id == "string" ? e.id : U("group"),
1292
- name: typeof e.name == "string" && e.name ? e.name : t("core.documentModel.defaultRepeatGroupName"),
1293
- pageId: e.pageId,
1294
- positionMode: e.positionMode === "flow" ? "flow" : "fixed"
1295
- });
1296
- }
1297
- return r;
1298
- }
1299
- function $(e, t) {
1300
- return typeof e == "number" && Number.isFinite(e) ? e : t;
1301
- }
1302
- export { D as $, R as A, A as B, et as C, Qe as D, $e as E, Je as F, k as G, qe as H, Ze as I, O as J, Ge as K, Ye as L, P as M, I as N, L as O, M as P, ke as Q, Xe as R, H as S, z as T, He as U, Ke as V, Ue as W, Be as X, Ve as Y, Pe as Z, X as _, gt as a, Te as at, pt as b, ct as c, be as ct, mt as d, de as dt, Ae as et, st as f, pe as ft, q as g, me as gt, dt as h, ye as ht, lt as i, De as it, F as j, N as k, U as l, ce as lt, Y as m, oe as mt, tt as n, Oe as nt, J as o, y as ot, _t as p, ge as pt, We as q, G as r, Ee as rt, K as s, le as st, nt as t, Ce as tt, W as u, xe as ut, ft as v, V as w, rt as x, Z as y, j as z };