@jieyin/editor-sdk 1.1.194 → 1.1.286

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.
@@ -1,30 +1,65 @@
1
- const p = (s, t) => {
2
- const e = JSON.parse(JSON.stringify(s));
3
- return e.customData || (e.customData = {}), e.customData.id = t, { cloned: e, nextId: t + 1 };
4
- }, b = (s) => {
5
- const { sourceObjects: t, targetJsonMap: e, objectIndex: r } = s;
6
- let o = Number.isFinite(r) ? r : 1;
7
- const n = {};
8
- return Object.entries(e || {}).forEach(([i, c]) => {
9
- const u = Array.isArray(c?.objects) ? c.objects : [], a = [];
10
- t.forEach((l) => {
11
- const d = p(l, o);
12
- a.push(d.cloned), o = d.nextId;
13
- }), n[i] = { ...c, objects: [...u, ...a] };
14
- }), { updates: n, nextObjectIndex: o };
1
+ const B = (t, a, e, c, r) => {
2
+ const n = JSON.parse(JSON.stringify(t));
3
+ n.customData || (n.customData = {}), n.customData.id = a;
4
+ const i = C(n), f = (i.minL + i.maxR) / 2, l = (i.minT + i.maxB) / 2;
5
+ if (e !== 1 && (n.scaleX = (n.scaleX ?? 1) * e, n.scaleY = (n.scaleY ?? 1) * e), c && r) {
6
+ const s = C(n), o = (s.minL + s.maxR) / 2, x = (s.minT + s.maxB) / 2, g = r.x + (f - c.x) * e, y = r.y + (l - c.y) * e;
7
+ n.left = (n.left ?? 0) + g - o, n.top = (n.top ?? 0) + y - x;
8
+ }
9
+ return { cloned: n, nextId: a + 1 };
10
+ }, A = (t) => t === "left" || t === "top" ? -0.5 : t === "center" ? 0 : t === "right" || t === "bottom" ? 0.5 : 0, C = (t) => {
11
+ const a = t.left ?? 0, e = t.top ?? 0, c = (t.width ?? 0) * (t.scaleX ?? 1), r = (t.height ?? 0) * (t.scaleY ?? 1), i = (t.angle ?? 0) * Math.PI / 180, f = Math.cos(i), l = Math.sin(i), s = -A(t.originX ?? "left") * c, o = -A(t.originY ?? "top") * r, x = a + s * f - o * l, g = e + s * l + o * f, y = c / 2, u = r / 2, p = [-y, y].flatMap(
12
+ (m) => [-u, u].map((M) => ({
13
+ x: x + m * f - M * l,
14
+ y: g + m * l + M * f
15
+ }))
16
+ );
17
+ let h = 1 / 0, d = 1 / 0, b = -1 / 0, I = -1 / 0;
18
+ for (const m of p)
19
+ m.x < h && (h = m.x), m.y < d && (d = m.y), m.x > b && (b = m.x), m.y > I && (I = m.y);
20
+ return { minL: h, minT: d, maxR: b, maxB: I };
21
+ }, O = (t, a, e) => {
22
+ if (!t.length) return;
23
+ let c = 1 / 0, r = 1 / 0, n = -1 / 0, i = -1 / 0;
24
+ for (const s of t) {
25
+ const o = C(s);
26
+ o.minL < c && (c = o.minL), o.minT < r && (r = o.minT), o.maxR > n && (n = o.maxR), o.maxB > i && (i = o.maxB);
27
+ }
28
+ const f = a - (c + n) / 2, l = e - (r + i) / 2;
29
+ for (const s of t)
30
+ s.left = (s.left ?? 0) + f, s.top = (s.top ?? 0) + l;
31
+ }, j = (t) => {
32
+ const {
33
+ sourceObjects: a,
34
+ targetJsonMap: e,
35
+ objectIndex: c,
36
+ targetScaleMap: r,
37
+ sourceCenter: n,
38
+ targetCenterMap: i,
39
+ canvasCenter: f
40
+ } = t;
41
+ let l = Number.isFinite(c) ? c : 1;
42
+ const s = {};
43
+ return Object.entries(e || {}).forEach(([o, x]) => {
44
+ const g = Array.isArray(x?.objects) ? x.objects : [], y = r?.[o] ?? 1, u = i?.[o], p = [];
45
+ a.forEach((h) => {
46
+ const d = B(h, l, y, n, u);
47
+ p.push(d.cloned), l = d.nextId;
48
+ }), (!n || !u) && f && p.length && O(p, f.x, f.y), s[o] = { ...x, objects: [...g, ...p] };
49
+ }), { updates: s, nextObjectIndex: l };
15
50
  };
16
- self.onmessage = (s) => {
17
- const t = s.data;
51
+ self.onmessage = (t) => {
52
+ const a = t.data;
18
53
  try {
19
- const e = b(t);
54
+ const e = j(a);
20
55
  self.postMessage({
21
- id: t.id,
56
+ id: a.id,
22
57
  ok: !0,
23
58
  data: e
24
59
  });
25
60
  } catch (e) {
26
61
  self.postMessage({
27
- id: t.id,
62
+ id: a.id,
28
63
  ok: !1,
29
64
  error: e instanceof Error ? e.message : String(e)
30
65
  });