@anu3ev/fabric-image-editor 0.8.4 → 0.8.5

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 (2) hide show
  1. package/dist/main.js +571 -536
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -4269,13 +4269,14 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4269
4269
  for (let e = 0; e < r.length; e += 1) {
4270
4270
  let n = r[e] ?? "", i = a ? a[e] : void 0;
4271
4271
  if (i && (d = i), n.length !== 0) {
4272
- if (i) {
4273
- let t = pn({
4272
+ let t = i;
4273
+ if (!t && d && (t = { ...d }, a || (a = {}, s = !0), s ||= (a = { ...a }, !0), a[e] = t, o = !0), t) {
4274
+ let r = pn({
4274
4275
  lineText: n,
4275
4276
  lineStyles: c ? c[e] : void 0,
4276
- lineDefaults: i
4277
+ lineDefaults: t
4277
4278
  });
4278
- t.changed && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), t.lineStyles && (c[e] = t.lineStyles), !t.lineStyles && c[e] && delete c[e], l = !0);
4279
+ r.changed && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), r.lineStyles && (c[e] = r.lineStyles), !r.lineStyles && c[e] && delete c[e], l = !0), d = t;
4279
4280
  }
4280
4281
  continue;
4281
4282
  }
@@ -4293,7 +4294,32 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4293
4294
  styles: c ?? {},
4294
4295
  stylesChanged: l
4295
4296
  };
4296
- }, hn = ({ currentText: e, previousText: t, textbox: n }) => {
4297
+ };
4298
+ function hn({ textbox: e }) {
4299
+ let t = (e.text ?? "").split("\n"), n = dn({ textbox: e }), r = mn({
4300
+ lines: t,
4301
+ styles: e.styles,
4302
+ lineFontDefaults: e.lineFontDefaults,
4303
+ globalLineDefaults: n
4304
+ }), i = r.lineFontDefaults && Object.keys(r.lineFontDefaults).length > 0 ? r.lineFontDefaults : void 0, a = {};
4305
+ for (let e in r.styles) {
4306
+ if (!Object.prototype.hasOwnProperty.call(r.styles, e)) continue;
4307
+ let t = Number(e);
4308
+ if (!Number.isInteger(t) || t < 0) continue;
4309
+ let o = r.styles[e];
4310
+ if (!o) continue;
4311
+ let s = ln({
4312
+ lineStyles: o,
4313
+ lineDefaults: i?.[t] ?? n
4314
+ });
4315
+ !s.lineStyles || !Object.keys(s.lineStyles).length || (a[t] = s.lineStyles);
4316
+ }
4317
+ return {
4318
+ lineFontDefaults: i,
4319
+ styles: a
4320
+ };
4321
+ }
4322
+ var gn = ({ currentText: e, previousText: t, textbox: n }) => {
4297
4323
  let r = on({
4298
4324
  lineFontDefaults: n.lineFontDefaults,
4299
4325
  previousText: t,
@@ -4309,7 +4335,15 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4309
4335
  ...i,
4310
4336
  lineFontDefaultsChanged: r.changed || i.lineFontDefaultsChanged
4311
4337
  };
4312
- }, gn = ({ lineFontDefaults: e }) => {
4338
+ }, _n = ({ textbox: e }) => {
4339
+ let t = mn({
4340
+ lines: (e.text ?? "").split("\n"),
4341
+ styles: e.styles,
4342
+ lineFontDefaults: e.lineFontDefaults,
4343
+ globalLineDefaults: dn({ textbox: e })
4344
+ }), n = !1;
4345
+ return t.lineFontDefaultsChanged && (e.lineFontDefaults = t.lineFontDefaults, n = !0), t.stylesChanged && (e.styles = t.styles, e.dirty = !0, n = !0), n;
4346
+ }, vn = ({ lineFontDefaults: e }) => {
4313
4347
  if (!e) return;
4314
4348
  let t = {};
4315
4349
  for (let n in e) {
@@ -4320,7 +4354,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4320
4354
  i && (t[r] = { ...i });
4321
4355
  }
4322
4356
  return t;
4323
- }, _n = ({ lineFontDefaults: e, scale: t }) => {
4357
+ }, yn = ({ lineFontDefaults: e, scale: t }) => {
4324
4358
  if (!e || !Number.isFinite(t) || Math.abs(t - 1) < .01) return;
4325
4359
  let n = {}, r = !1, i = !1;
4326
4360
  for (let a in e) {
@@ -4337,18 +4371,18 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4337
4371
  n[o] = c, r = !0;
4338
4372
  }
4339
4373
  if (!(!r || !i)) return n;
4340
- }, vn = ({ textbox: e, text: t }) => {
4374
+ }, bn = ({ textbox: e, text: t }) => {
4341
4375
  let { textLines: n } = e, r = Array.isArray(n) && n.length > 0 ? n.length : Math.max(t.split("\n").length, 1), i = 0;
4342
4376
  for (let t = 0; t < r; t += 1) {
4343
4377
  let n = e.getLineWidth(t);
4344
4378
  n > i && (i = n);
4345
4379
  }
4346
4380
  return i;
4347
- }, yn = ({ origin: e, size: t }) => e === "left" || e === "top" || e === "start" || e === 0 ? 0 : e === "right" || e === "bottom" || e === "end" || e === 1 ? t : t / 2, bn = ({ textbox: e, originX: t = e.originX ?? "center", originY: n = e.originY ?? "center" }) => {
4348
- let r = e.width ?? e.calcTextWidth() ?? 0, i = e.height ?? e.calcTextHeight() ?? 0, a = e.paddingTop ?? 0, o = e.paddingRight ?? 0, s = e.paddingBottom ?? 0, c = e.paddingLeft ?? 0, l = -r / 2 + (c - o) / 2, u = -i / 2 + (a - s) / 2, d = new p(l + yn({
4381
+ }, xn = ({ origin: e, size: t }) => e === "left" || e === "top" || e === 0 ? 0 : e === "right" || e === "bottom" || e === 1 ? t : t / 2, Sn = ({ textbox: e, originX: t = e.originX ?? "center", originY: n = e.originY ?? "center" }) => {
4382
+ let r = e.width ?? e.calcTextWidth() ?? 0, i = e.height ?? e.calcTextHeight() ?? 0, a = e.paddingTop ?? 0, o = e.paddingRight ?? 0, s = e.paddingBottom ?? 0, c = e.paddingLeft ?? 0, l = -r / 2 + (c - o) / 2, u = -i / 2 + (a - s) / 2, d = new p(l + xn({
4349
4383
  origin: t,
4350
4384
  size: r
4351
- }), u + yn({
4385
+ }), u + xn({
4352
4386
  origin: n,
4353
4387
  size: i
4354
4388
  })), f = e.getPointByOrigin("center", "center"), m = e, h = typeof m.calcTransformMatrix == "function" ? m.calcTransformMatrix() : null, g = Array.isArray(h) ? new p(d.x * h[0] + d.y * h[2] + f.x, d.x * h[1] + d.y * h[3] + f.y) : new p(f.x + d.x, f.y + d.y);
@@ -4358,13 +4392,13 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4358
4392
  originX: t,
4359
4393
  originY: n
4360
4394
  };
4361
- }, xn = ({ textbox: e, montageLeft: t, montageRight: n }) => {
4395
+ }, Cn = ({ textbox: e, montageLeft: t, montageRight: n }) => {
4362
4396
  e.setCoords();
4363
- let r = e.getBoundingRect(!1, !0), i = r.left ?? 0, a = i + (r.width ?? 0), o = n - t;
4397
+ let r = e.getBoundingRect(), i = r.left ?? 0, a = i + (r.width ?? 0), o = n - t;
4364
4398
  if (o > 0 && (r.width ?? 0) >= o - .01) return !1;
4365
4399
  let s = 0;
4366
4400
  return i < t ? s = t - i : a > n && (s = n - a), Math.abs(s) <= .01 ? !1 : (e.set({ left: (e.left ?? 0) + s }), !0);
4367
- }, Sn = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, Cn = ({ stylesList: e }) => {
4401
+ }, wn = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, Tn = ({ stylesList: e }) => {
4368
4402
  let t = e.length;
4369
4403
  if (!t) return !1;
4370
4404
  for (let n = 0; n < t; n += 1) {
@@ -4374,16 +4408,16 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4374
4408
  if (r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0 || c !== void 0) return !0;
4375
4409
  }
4376
4410
  return !1;
4377
- }, wn = ({ textbox: e }) => {
4378
- let { width: t, height: n, calcTextWidth: r, calcTextHeight: i } = e, a = typeof r == "function" ? r.call(e) : void 0, o = typeof i == "function" ? i.call(e) : void 0, s = Sn({
4411
+ }, En = ({ textbox: e }) => {
4412
+ let { width: t, height: n, calcTextWidth: r, calcTextHeight: i } = e, a = typeof r == "function" ? r.call(e) : void 0, o = typeof i == "function" ? i.call(e) : void 0, s = wn({
4379
4413
  rawValue: t,
4380
4414
  calculatedValue: a
4381
- }), c = Sn({
4415
+ }), c = wn({
4382
4416
  rawValue: n,
4383
4417
  calculatedValue: o
4384
4418
  }), l = Number.isFinite(s) ? Math.round(s) : null, u = Number.isFinite(c) ? Math.round(c) : null, d = {};
4385
4419
  return l !== null && l !== s && (d.width = Math.max(0, l)), u !== null && u !== c && (d.height = Math.max(0, u)), Object.keys(d).length ? (e.set(d), !0) : !1;
4386
- }, Tn = ({ textbox: e }) => {
4420
+ }, Dn = ({ textbox: e }) => {
4387
4421
  let t = e.width ?? e.calcTextWidth(), n = e.fontSize ?? 16, { styles: r = {} } = e, { lineFontDefaults: i } = e, { paddingTop: a = 0, paddingRight: o = 0, paddingBottom: s = 0, paddingLeft: c = 0 } = e, { radiusTopLeft: l = 0, radiusTopRight: u = 0, radiusBottomRight: d = 0, radiusBottomLeft: f = 0 } = e;
4388
4422
  return {
4389
4423
  width: t,
@@ -4401,9 +4435,9 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4401
4435
  bottomLeft: f
4402
4436
  },
4403
4437
  styles: JSON.parse(JSON.stringify(r)),
4404
- lineFontDefaults: gn({ lineFontDefaults: i })
4438
+ lineFontDefaults: vn({ lineFontDefaults: i })
4405
4439
  };
4406
- }, En = ({ base: e }) => {
4440
+ }, On = ({ base: e }) => {
4407
4441
  let t = 1 / Math.max(1, e.width), n = [e.fontSize];
4408
4442
  Object.values(e.styles).forEach((e) => {
4409
4443
  Object.values(e).forEach((e) => {
@@ -4420,7 +4454,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4420
4454
  fontScale: r,
4421
4455
  proportionalScale: Math.max(t, r)
4422
4456
  };
4423
- }, Dn = ({ textbox: e, base: t, scale: n, shouldScaleFontSize: r = !0, shouldScalePadding: i = !0, shouldScaleRadii: a = !0 }) => {
4457
+ }, kn = ({ textbox: e, base: t, scale: n, shouldScaleFontSize: r = !0, shouldScalePadding: i = !0, shouldScaleRadii: a = !0 }) => {
4424
4458
  let { fontSize: o, padding: s, radii: c, styles: l, lineFontDefaults: u } = t, d = Math.max(Math.min(8, o), o * n), f = Object.keys(l).length > 0, p;
4425
4459
  if (r && f) {
4426
4460
  let e = {};
@@ -4439,7 +4473,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4439
4473
  }), Object.keys(e).length && (p = e);
4440
4474
  }
4441
4475
  let m;
4442
- r && (m = _n({
4476
+ r && (m = yn({
4443
4477
  lineFontDefaults: u,
4444
4478
  scale: n
4445
4479
  }));
@@ -4465,9 +4499,9 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4465
4499
  radiusBottomRight: g.bottomRight,
4466
4500
  radiusBottomLeft: g.bottomLeft
4467
4501
  });
4468
- }, On = ({ textbox: e, canvasManager: t, base: n, widthScale: r, heightScale: i, placement: a, anchorPlacement: o, shouldScaleFontSize: s, shouldScalePadding: c, shouldScaleRadii: l, shouldDisableAutoExpandOnHorizontalChange: u = !1, shouldRoundDimensions: d = !0 }) => {
4502
+ }, An = ({ textbox: e, canvasManager: t, base: n, widthScale: r, heightScale: i, placement: a, anchorPlacement: o, shouldScaleFontSize: s, shouldScalePadding: c, shouldScaleRadii: l, shouldDisableAutoExpandOnHorizontalChange: u = !1, shouldRoundDimensions: d = !0 }) => {
4469
4503
  let { width: f } = n, m = Math.max(1, f * r), h = d ? Math.max(1, Math.round(m)) : m, g = e.width ?? f, _ = Math.abs(h - g) > Jt;
4470
- u && _ && (e.autoExpand = !1), Dn({
4504
+ u && _ && (e.autoExpand = !1), kn({
4471
4505
  textbox: e,
4472
4506
  base: n,
4473
4507
  scale: i,
@@ -4486,7 +4520,7 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4486
4520
  } finally {
4487
4521
  e.shouldRoundDimensionsOnInit = v;
4488
4522
  }
4489
- let y = d ? wn({ textbox: e }) : !1;
4523
+ let y = d ? En({ textbox: e }) : !1;
4490
4524
  return y && (e.dirty = !0), o ? (e.set({
4491
4525
  originX: a.originX,
4492
4526
  originY: a.originY
@@ -4500,24 +4534,24 @@ var Wt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
4500
4534
  appliedWidth: e.width ?? h,
4501
4535
  dimensionsRounded: y
4502
4536
  });
4503
- }, kn = 1, An = 1e-4;
4537
+ }, jn = 1, Mn = 1e-4;
4504
4538
  function J({ value: e }) {
4505
4539
  return Number(e.toFixed(4));
4506
4540
  }
4507
- function jn({ rounding: e }) {
4541
+ function Nn({ rounding: e }) {
4508
4542
  return B({ rounding: e }) > 0;
4509
4543
  }
4510
- function Mn({ width: e, height: t, strokeWidth: n }) {
4544
+ function Pn({ width: e, height: t, strokeWidth: n }) {
4511
4545
  let r = Math.max(0, n ?? 0);
4512
4546
  return {
4513
- width: Math.max(kn, e - r),
4514
- height: Math.max(kn, t - r)
4547
+ width: Math.max(jn, e - r),
4548
+ height: Math.max(jn, t - r)
4515
4549
  };
4516
4550
  }
4517
- function Nn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4518
- let a = Mn({
4519
- width: Math.max(kn, t),
4520
- height: Math.max(kn, n),
4551
+ function Fn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4552
+ let a = Pn({
4553
+ width: Math.max(jn, t),
4554
+ height: Math.max(jn, n),
4521
4555
  strokeWidth: i
4522
4556
  });
4523
4557
  if (e instanceof g) {
@@ -4536,7 +4570,7 @@ function Nn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4536
4570
  }), e.setCoords();
4537
4571
  return;
4538
4572
  }
4539
- let { width: o = kn, height: s = kn } = e, c = Math.max(kn, o), l = Math.max(kn, s);
4573
+ let { width: o = jn, height: s = jn } = e, c = Math.max(jn, o), l = Math.max(jn, s);
4540
4574
  e.set({
4541
4575
  scaleX: a.width / c,
4542
4576
  scaleY: a.height / l,
@@ -4546,11 +4580,11 @@ function Nn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4546
4580
  originY: "center"
4547
4581
  }), e.setCoords();
4548
4582
  }
4549
- function Pn({ shape: e, style: t }) {
4583
+ function In({ shape: e, style: t }) {
4550
4584
  let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = t;
4551
4585
  if (e instanceof l) {
4552
4586
  let n = e.getObjects();
4553
- for (let e = 0; e < n.length; e += 1) Pn({
4587
+ for (let e = 0; e < n.length; e += 1) In({
4554
4588
  shape: n[e],
4555
4589
  style: t
4556
4590
  });
@@ -4564,7 +4598,7 @@ function Pn({ shape: e, style: t }) {
4564
4598
  };
4565
4599
  n !== void 0 && (s.fill = n), r !== void 0 && (s.stroke = r), i !== void 0 && (s.strokeWidth = i), a !== void 0 && (s.strokeDashArray = a), o !== void 0 && (s.opacity = o), e.set(s), e.setCoords();
4566
4600
  }
4567
- function Fn({ points: e, closed: t }) {
4601
+ function Ln({ points: e, closed: t }) {
4568
4602
  if (e.length === 0) return "";
4569
4603
  let n = `M ${J({ value: e[0].x })} ${J({ value: e[0].y })}`;
4570
4604
  for (let t = 1; t < e.length; t += 1) {
@@ -4573,7 +4607,7 @@ function Fn({ points: e, closed: t }) {
4573
4607
  }
4574
4608
  return t && (n += " Z"), n;
4575
4609
  }
4576
- function In({ previous: e, current: t, next: n, roundingRatio: r }) {
4610
+ function Rn({ previous: e, current: t, next: n, roundingRatio: r }) {
4577
4611
  let i = {
4578
4612
  x: e.x - t.x,
4579
4613
  y: e.y - t.y
@@ -4581,7 +4615,7 @@ function In({ previous: e, current: t, next: n, roundingRatio: r }) {
4581
4615
  x: n.x - t.x,
4582
4616
  y: n.y - t.y
4583
4617
  }, o = Math.hypot(i.x, i.y), s = Math.hypot(a.x, a.y);
4584
- if (o <= An || s <= An) return {
4618
+ if (o <= Mn || s <= Mn) return {
4585
4619
  start: {
4586
4620
  x: J({ value: t.x }),
4587
4621
  y: J({ value: t.y })
@@ -4603,14 +4637,14 @@ function In({ previous: e, current: t, next: n, roundingRatio: r }) {
4603
4637
  }
4604
4638
  };
4605
4639
  }
4606
- function Ln({ points: e, roundingRatio: t, closed: n }) {
4640
+ function zn({ points: e, roundingRatio: t, closed: n }) {
4607
4641
  let r = e.length;
4608
4642
  if (r === 0) return "";
4609
4643
  if (!n && r === 1) {
4610
4644
  let t = e[0];
4611
4645
  return `M ${J({ value: t.x })} ${J({ value: t.y })}`;
4612
4646
  }
4613
- if (t <= 0) return Fn({
4647
+ if (t <= 0) return Ln({
4614
4648
  points: e,
4615
4649
  closed: n
4616
4650
  });
@@ -4618,7 +4652,7 @@ function Ln({ points: e, roundingRatio: t, closed: n }) {
4618
4652
  let n = [];
4619
4653
  for (let i = 0; i < r; i += 1) {
4620
4654
  let a = i === 0 ? r - 1 : i - 1, o = i === r - 1 ? 0 : i + 1;
4621
- n.push(In({
4655
+ n.push(Rn({
4622
4656
  previous: e[a],
4623
4657
  current: e[i],
4624
4658
  next: e[o],
@@ -4632,13 +4666,13 @@ function Ln({ points: e, roundingRatio: t, closed: n }) {
4632
4666
  }
4633
4667
  return a += " Z", a;
4634
4668
  }
4635
- if (r === 2) return Fn({
4669
+ if (r === 2) return Ln({
4636
4670
  points: e,
4637
4671
  closed: !1
4638
4672
  });
4639
4673
  let i = `M ${J({ value: e[0].x })} ${J({ value: e[0].y })}`;
4640
4674
  for (let n = 1; n < r - 1; n += 1) {
4641
- let r = In({
4675
+ let r = Rn({
4642
4676
  previous: e[n - 1],
4643
4677
  current: e[n],
4644
4678
  next: e[n + 1],
@@ -4649,8 +4683,8 @@ function Ln({ points: e, roundingRatio: t, closed: n }) {
4649
4683
  let a = e[r - 1];
4650
4684
  return i += ` L ${J({ value: a.x })} ${J({ value: a.y })}`, i;
4651
4685
  }
4652
- function Rn({ points: e, rounding: t, closed: n }) {
4653
- return new d(Ln({
4686
+ function Bn({ points: e, rounding: t, closed: n }) {
4687
+ return new d(zn({
4654
4688
  points: e,
4655
4689
  roundingRatio: V({ rounding: t }),
4656
4690
  closed: n
@@ -4661,8 +4695,8 @@ function Rn({ points: e, rounding: t, closed: n }) {
4661
4695
  top: 0
4662
4696
  });
4663
4697
  }
4664
- function zn({ rounding: e }) {
4665
- return jn({ rounding: e }) ? Rn({
4698
+ function Vn({ rounding: e }) {
4699
+ return Nn({ rounding: e }) ? Bn({
4666
4700
  points: [
4667
4701
  {
4668
4702
  x: 50,
@@ -4688,7 +4722,7 @@ function zn({ rounding: e }) {
4688
4722
  top: 0
4689
4723
  });
4690
4724
  }
4691
- function Bn({ path: e }) {
4725
+ function Hn({ path: e }) {
4692
4726
  return new d(e, {
4693
4727
  originX: "center",
4694
4728
  originY: "center",
@@ -4696,8 +4730,8 @@ function Bn({ path: e }) {
4696
4730
  top: 0
4697
4731
  });
4698
4732
  }
4699
- function Vn({ path: e, rounding: t }) {
4700
- let n = Bn({ path: e }).path ?? [], r = C.makePathSimpler(n), i = [], a = !1;
4733
+ function Un({ path: e, rounding: t }) {
4734
+ let n = Hn({ path: e }).path ?? [], r = C.makePathSimpler(n), i = [], a = !1;
4701
4735
  for (let e = 0; e < r.length; e += 1) {
4702
4736
  let t = r[e];
4703
4737
  if (!t) return null;
@@ -4717,19 +4751,19 @@ function Vn({ path: e, rounding: t }) {
4717
4751
  }
4718
4752
  return null;
4719
4753
  }
4720
- return i.length < 2 || a && i.length < 3 ? null : Rn({
4754
+ return i.length < 2 || a && i.length < 3 ? null : Bn({
4721
4755
  points: i,
4722
4756
  rounding: t,
4723
4757
  closed: a
4724
4758
  });
4725
4759
  }
4726
- function Hn({ path: e, rounding: t }) {
4727
- return jn({ rounding: t }) && Vn({
4760
+ function Wn({ path: e, rounding: t }) {
4761
+ return Nn({ rounding: t }) && Un({
4728
4762
  path: e,
4729
4763
  rounding: B({ rounding: t })
4730
- }) || Bn({ path: e });
4764
+ }) || Hn({ path: e });
4731
4765
  }
4732
- function Un({ points: e, type: t, rounding: n }) {
4766
+ function Gn({ points: e, type: t, rounding: n }) {
4733
4767
  let r = e.length > 0 ? e : [
4734
4768
  {
4735
4769
  x: 0,
@@ -4745,12 +4779,12 @@ function Un({ points: e, type: t, rounding: n }) {
4745
4779
  }
4746
4780
  ], i = B({ rounding: n });
4747
4781
  if (i > 0) {
4748
- if (t === "polygon" && r.length >= 3) return Rn({
4782
+ if (t === "polygon" && r.length >= 3) return Bn({
4749
4783
  points: r,
4750
4784
  rounding: i,
4751
4785
  closed: !0
4752
4786
  });
4753
- if (t === "polyline" && r.length >= 2) return Rn({
4787
+ if (t === "polyline" && r.length >= 2) return Bn({
4754
4788
  points: r,
4755
4789
  rounding: i,
4756
4790
  closed: !1
@@ -4763,7 +4797,7 @@ function Un({ points: e, type: t, rounding: n }) {
4763
4797
  top: 0
4764
4798
  });
4765
4799
  }
4766
- async function Wn({ svg: e }) {
4800
+ async function Kn({ svg: e }) {
4767
4801
  let t = await x(e), n = C.groupSVGElements(t.objects, t.options);
4768
4802
  return n.set({
4769
4803
  originX: "center",
@@ -4772,7 +4806,7 @@ async function Wn({ svg: e }) {
4772
4806
  top: 0
4773
4807
  }), n.setCoords(), n;
4774
4808
  }
4775
- async function Gn({ preset: e, rounding: t }) {
4809
+ async function qn({ preset: e, rounding: t }) {
4776
4810
  switch (e.type) {
4777
4811
  case "rect": return new g({
4778
4812
  width: 100,
@@ -4790,22 +4824,22 @@ async function Gn({ preset: e, rounding: t }) {
4790
4824
  left: 0,
4791
4825
  top: 0
4792
4826
  });
4793
- case "triangle": return zn({ rounding: t });
4794
- case "polygon": return Un({
4827
+ case "triangle": return Vn({ rounding: t });
4828
+ case "polygon": return Gn({
4795
4829
  points: e.points,
4796
4830
  type: "polygon",
4797
4831
  rounding: t
4798
4832
  });
4799
- case "polyline": return Un({
4833
+ case "polyline": return Gn({
4800
4834
  points: e.points,
4801
4835
  type: "polyline",
4802
4836
  rounding: t
4803
4837
  });
4804
- case "path": return Hn({
4838
+ case "path": return Wn({
4805
4839
  path: e.path,
4806
4840
  rounding: t
4807
4841
  });
4808
- case "svg": return Wn({ svg: e.svg });
4842
+ case "svg": return Kn({ svg: e.svg });
4809
4843
  default: return new g({
4810
4844
  width: 100,
4811
4845
  height: 100,
@@ -4816,15 +4850,15 @@ async function Gn({ preset: e, rounding: t }) {
4816
4850
  });
4817
4851
  }
4818
4852
  }
4819
- async function Kn({ preset: e, width: t, height: n, style: r, rounding: i }) {
4820
- let a = await Gn({
4853
+ async function Jn({ preset: e, width: t, height: n, style: r, rounding: i }) {
4854
+ let a = await qn({
4821
4855
  preset: e,
4822
4856
  rounding: i
4823
4857
  });
4824
- return Pn({
4858
+ return In({
4825
4859
  shape: a,
4826
4860
  style: r
4827
- }), Nn({
4861
+ }), Fn({
4828
4862
  shape: a,
4829
4863
  width: t,
4830
4864
  height: n,
@@ -4841,17 +4875,17 @@ async function Kn({ preset: e, width: t, height: n, style: r, rounding: i }) {
4841
4875
  }
4842
4876
  //#endregion
4843
4877
  //#region src/editor/shape-manager/layout/shape-layout-padding.ts
4844
- var qn = .5, Jn = 12;
4845
- function Yn({ width: e, padding: t }) {
4878
+ var Yn = .5, Xn = 12;
4879
+ function Zn({ width: e, padding: t }) {
4846
4880
  let n = Math.max(0, t.left), r = Math.max(0, t.right);
4847
4881
  return Math.max(1, e - n - r);
4848
4882
  }
4849
- function Xn({ text: e }) {
4883
+ function Qn({ text: e }) {
4850
4884
  return (e.text ?? "").trim().length > 0;
4851
4885
  }
4852
- function Zn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged: i }) {
4886
+ function $n({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged: i }) {
4853
4887
  let a = Math.max(0, e), o = Math.max(0, t), s = Math.max(0, n);
4854
- if (a + o <= s + qn) return {
4888
+ if (a + o <= s + Yn) return {
4855
4889
  start: a,
4856
4890
  end: o
4857
4891
  };
@@ -4880,8 +4914,8 @@ function Zn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged:
4880
4914
  end: o * l
4881
4915
  };
4882
4916
  }
4883
- function Qn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i, startChanged: a, endChanged: o }) {
4884
- let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u = Zn({
4917
+ function er({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i, startChanged: a, endChanged: o }) {
4918
+ let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u = $n({
4885
4919
  start: Math.max(0, e),
4886
4920
  end: Math.max(0, t),
4887
4921
  maxTotalPadding: l,
@@ -4895,23 +4929,23 @@ function Qn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i,
4895
4929
  appliedUserPaddingEnd: f
4896
4930
  };
4897
4931
  }
4898
- function $n({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measureTextboxHeightForFrame: i }) {
4932
+ function tr({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measureTextboxHeightForFrame: i }) {
4899
4933
  let a = Math.max(1, t), o = Math.max(a, n), s = Math.max(1, r);
4900
- if (!Xn({ text: e }) || i({
4934
+ if (!Qn({ text: e }) || i({
4901
4935
  text: e,
4902
4936
  frameWidth: a
4903
- }) <= s + qn) return a;
4937
+ }) <= s + Yn) return a;
4904
4938
  if (i({
4905
4939
  text: e,
4906
4940
  frameWidth: o
4907
- }) > s + qn) return o;
4941
+ }) > s + Yn) return o;
4908
4942
  let c = a, l = o;
4909
- for (let t = 0; t < Jn; t += 1) {
4943
+ for (let t = 0; t < Xn; t += 1) {
4910
4944
  let t = (c + l) / 2;
4911
4945
  if (i({
4912
4946
  text: e,
4913
4947
  frameWidth: t
4914
- }) <= s + qn) {
4948
+ }) <= s + Yn) {
4915
4949
  l = t;
4916
4950
  continue;
4917
4951
  }
@@ -4919,16 +4953,16 @@ function $n({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measu
4919
4953
  }
4920
4954
  return l;
4921
4955
  }
4922
- function er({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4923
- let l = Math.max(1, t), u = Math.max(1, n), d = Xn({ text: e }) ? c({ text: e }) : 1, f = i.top + i.bottom, p = Math.max(1, u - f), m = d;
4924
- a || (m = $n({
4956
+ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4957
+ let l = Math.max(1, t), u = Math.max(1, n), d = Qn({ text: e }) ? c({ text: e }) : 1, f = i.top + i.bottom, p = Math.max(1, u - f), m = d;
4958
+ a || (m = tr({
4925
4959
  text: e,
4926
4960
  minFrameWidth: d,
4927
4961
  maxFrameWidth: l,
4928
4962
  frameHeight: p,
4929
4963
  measureTextboxHeightForFrame: s
4930
4964
  }));
4931
- let h = m + i.left + i.right, g = Math.max(0, l - m), _ = Qn({
4965
+ let h = m + i.left + i.right, g = Math.max(0, l - m), _ = er({
4932
4966
  start: r.left,
4933
4967
  end: r.right,
4934
4968
  insetStart: i.left,
@@ -4949,8 +4983,8 @@ function er({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4949
4983
  requiredWidth: h
4950
4984
  };
4951
4985
  }
4952
- function tr({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, changedPadding: i }) {
4953
- let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o = Qn({
4986
+ function rr({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, changedPadding: i }) {
4987
+ let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o = er({
4954
4988
  start: e.top,
4955
4989
  end: e.bottom,
4956
4990
  insetStart: t.top,
@@ -4970,8 +5004,8 @@ function tr({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, c
4970
5004
  }
4971
5005
  };
4972
5006
  }
4973
- function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4974
- let l = Math.max(1, t), u = Math.max(1, n), d = Se({ padding: r }), f = Se({ padding: i }), p = er({
5007
+ function ir({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
5008
+ let l = Math.max(1, t), u = Math.max(1, n), d = Se({ padding: r }), f = Se({ padding: i }), p = nr({
4975
5009
  text: e,
4976
5010
  width: l,
4977
5011
  height: u,
@@ -4981,7 +5015,7 @@ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4981
5015
  changedPadding: o,
4982
5016
  measureTextboxHeightForFrame: s,
4983
5017
  resolveMinimumTextFrameWidth: c
4984
- }), m = Yn({
5018
+ }), m = Zn({
4985
5019
  width: l,
4986
5020
  padding: {
4987
5021
  top: 0,
@@ -4989,10 +5023,10 @@ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4989
5023
  bottom: 0,
4990
5024
  left: p.appliedPadding.left
4991
5025
  }
4992
- }), h = Xn({ text: e }) ? s({
5026
+ }), h = Qn({ text: e }) ? s({
4993
5027
  text: e,
4994
5028
  frameWidth: m
4995
- }) : 1, g = f.top + f.bottom, _ = a ? Math.max(u, h + g) : u, v = tr({
5029
+ }) : 1, g = f.top + f.bottom, _ = a ? Math.max(u, h + g) : u, v = rr({
4996
5030
  padding: d,
4997
5031
  internalShapeTextInset: f,
4998
5032
  height: _,
@@ -5018,9 +5052,9 @@ function nr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5018
5052
  }
5019
5053
  //#endregion
5020
5054
  //#region src/editor/shape-manager/layout/shape-layout.ts
5021
- var Y = 1, rr = .5, ir = 8, ar = 20, or = 16;
5022
- function sr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, appliedUserPadding: a }) {
5023
- let { frame: o, splitByGrapheme: s, textTop: c } = mr({
5055
+ var Y = 1, ar = .5, or = 8, sr = 20, cr = 16;
5056
+ function lr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, appliedUserPadding: a }) {
5057
+ let { frame: o, splitByGrapheme: s, textTop: c } = gr({
5024
5058
  text: e,
5025
5059
  width: n,
5026
5060
  height: r,
@@ -5037,8 +5071,8 @@ function sr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, applie
5037
5071
  textTop: c
5038
5072
  };
5039
5073
  }
5040
- var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, preserveAspectRatio: s, shapeTextAutoExpandEnabled: c, montageAreaWidth: l, expandShapeHeightToFitText: u = !0, changedPadding: d }) => {
5041
- let { width: f, height: p, appliedPadding: m, appliedUserPadding: h } = s ? dr({
5074
+ var ur = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, preserveAspectRatio: s, shapeTextAutoExpandEnabled: c, montageAreaWidth: l, expandShapeHeightToFitText: u = !0, changedPadding: d }) => {
5075
+ let { width: f, height: p, appliedPadding: m, appliedUserPadding: h } = s ? pr({
5042
5076
  text: e,
5043
5077
  width: t,
5044
5078
  height: n,
@@ -5049,7 +5083,7 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5049
5083
  montageAreaWidth: l,
5050
5084
  expandShapeHeightToFitText: u,
5051
5085
  changedPadding: d
5052
- }) : br({
5086
+ }) : Sr({
5053
5087
  text: e,
5054
5088
  width: t,
5055
5089
  height: n,
@@ -5059,7 +5093,7 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5059
5093
  expandShapeHeightToFitText: u,
5060
5094
  changedPadding: d
5061
5095
  });
5062
- return sr({
5096
+ return lr({
5063
5097
  text: e,
5064
5098
  alignV: r,
5065
5099
  width: f,
@@ -5067,13 +5101,13 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5067
5101
  appliedPadding: m,
5068
5102
  appliedUserPadding: h
5069
5103
  });
5070
- }, lr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, expandShapeHeightToFitText: s = !0, changedPadding: c }) => {
5071
- let l = Ce({ padding: i }), u = Se({ padding: a }), d = Math.max(Y, t), f = Math.max(Y, n), p = nr({
5104
+ }, dr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, expandShapeHeightToFitText: s = !0, changedPadding: c }) => {
5105
+ let l = Ce({ padding: i }), u = Se({ padding: a }), d = Math.max(Y, t), f = Math.max(Y, n), p = ir({
5072
5106
  text: e,
5073
5107
  width: d,
5074
5108
  height: f,
5075
5109
  padding: l,
5076
- internalShapeTextInset: yr({
5110
+ internalShapeTextInset: xr({
5077
5111
  width: d,
5078
5112
  height: f,
5079
5113
  internalShapeTextInset: u,
@@ -5081,18 +5115,18 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5081
5115
  }),
5082
5116
  expandShapeHeightToFitText: s,
5083
5117
  changedPadding: c,
5084
- measureTextboxHeightForFrame: Er,
5085
- resolveMinimumTextFrameWidth: Dr
5118
+ measureTextboxHeightForFrame: Or,
5119
+ resolveMinimumTextFrameWidth: kr
5086
5120
  });
5087
- for (let t = 0; t < ir; t += 1) {
5121
+ for (let t = 0; t < or; t += 1) {
5088
5122
  let t = Math.max(f, p.requiredHeight);
5089
- if (t <= f + rr) break;
5090
- f = t, p = nr({
5123
+ if (t <= f + ar) break;
5124
+ f = t, p = ir({
5091
5125
  text: e,
5092
5126
  width: d,
5093
5127
  height: f,
5094
5128
  padding: l,
5095
- internalShapeTextInset: yr({
5129
+ internalShapeTextInset: xr({
5096
5130
  width: d,
5097
5131
  height: f,
5098
5132
  internalShapeTextInset: u,
@@ -5100,11 +5134,11 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5100
5134
  }),
5101
5135
  expandShapeHeightToFitText: s,
5102
5136
  changedPadding: c,
5103
- measureTextboxHeightForFrame: Er,
5104
- resolveMinimumTextFrameWidth: Dr
5137
+ measureTextboxHeightForFrame: Or,
5138
+ resolveMinimumTextFrameWidth: kr
5105
5139
  });
5106
5140
  }
5107
- return sr({
5141
+ return lr({
5108
5142
  text: e,
5109
5143
  alignV: r,
5110
5144
  width: d,
@@ -5112,8 +5146,8 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5112
5146
  appliedPadding: p.appliedPadding,
5113
5147
  appliedUserPadding: p.appliedUserPadding
5114
5148
  });
5115
- }, ur = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, internalShapeTextInset: c, resolveInternalShapeTextInset: l, preserveAspectRatio: u, shapeTextAutoExpandEnabled: d, montageAreaWidth: f, expandShapeHeightToFitText: p = !0, changedPadding: m }) => {
5116
- let h = Math.max(Y, e.shapeManualBaseWidth ?? r), g = Math.max(Y, e.shapeManualBaseHeight ?? i), { width: _, height: v, appliedUserPadding: y, frame: b, splitByGrapheme: x, textTop: S } = cr({
5149
+ }, fr = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, internalShapeTextInset: c, resolveInternalShapeTextInset: l, preserveAspectRatio: u, shapeTextAutoExpandEnabled: d, montageAreaWidth: f, expandShapeHeightToFitText: p = !0, changedPadding: m }) => {
5150
+ let h = Math.max(Y, e.shapeManualBaseWidth ?? r), g = Math.max(Y, e.shapeManualBaseHeight ?? i), { width: _, height: v, appliedUserPadding: y, frame: b, splitByGrapheme: x, textTop: S } = ur({
5117
5151
  text: n,
5118
5152
  width: r,
5119
5153
  height: i,
@@ -5127,7 +5161,7 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5127
5161
  expandShapeHeightToFitText: p,
5128
5162
  changedPadding: m
5129
5163
  });
5130
- Nn({
5164
+ Fn({
5131
5165
  shape: t,
5132
5166
  width: _,
5133
5167
  height: v,
@@ -5156,9 +5190,9 @@ var cr = ({ text: e, width: t, height: n, alignV: r, padding: i, internalShapeTe
5156
5190
  scaleY: 1
5157
5191
  }), e.set("dirty", !0), e.setCoords();
5158
5192
  };
5159
- function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, shapeTextAutoExpandEnabled: o = !0, montageAreaWidth: s, expandShapeHeightToFitText: c = !0, changedPadding: l }) {
5193
+ function pr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, shapeTextAutoExpandEnabled: o = !0, montageAreaWidth: s, expandShapeHeightToFitText: c = !0, changedPadding: l }) {
5160
5194
  let u = Math.max(Y, t), d = Math.max(Y, n), f = Number.isFinite(s) && (s ?? 0) > 0 ? Math.max(Y, s ?? Y) : null;
5161
- if (!gr({ text: e })) return br({
5195
+ if (!vr({ text: e })) return Sr({
5162
5196
  text: e,
5163
5197
  width: u,
5164
5198
  height: d,
@@ -5169,7 +5203,7 @@ function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5169
5203
  changedPadding: l
5170
5204
  });
5171
5205
  let p = d / u, m = ({ width: t }) => {
5172
- let n = Math.max(Y, t * p), o = br({
5206
+ let n = Math.max(Y, t * p), o = Sr({
5173
5207
  text: e,
5174
5208
  width: t,
5175
5209
  height: n,
@@ -5181,13 +5215,13 @@ function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5181
5215
  });
5182
5216
  return {
5183
5217
  candidateHeight: n,
5184
- frameWidth: Yn({
5218
+ frameWidth: Zn({
5185
5219
  width: t,
5186
5220
  padding: o.appliedPadding
5187
5221
  }),
5188
5222
  layoutResolution: o
5189
5223
  };
5190
- }, h = ({ candidateWidth: e, candidateHeight: t, layoutResolution: n }) => !(n.width > e + rr || n.height > t + rr);
5224
+ }, h = ({ candidateWidth: e, candidateHeight: t, layoutResolution: n }) => !(n.width > e + ar || n.height > t + ar);
5191
5225
  if (!o) {
5192
5226
  let e = ({ width: e }) => {
5193
5227
  let { candidateHeight: t, layoutResolution: n } = m({ width: e });
@@ -5197,11 +5231,11 @@ function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5197
5231
  layoutResolution: n
5198
5232
  });
5199
5233
  }, t = f ? Math.max(u, f) : u;
5200
- e({ width: t }) || (t = xr({
5234
+ e({ width: t }) || (t = Cr({
5201
5235
  minimumWidth: t,
5202
5236
  isWidthValid: e
5203
5237
  }));
5204
- let { layoutResolution: n } = m({ width: Sr({
5238
+ let { layoutResolution: n } = m({ width: wr({
5205
5239
  minimumWidth: u,
5206
5240
  maximumWidth: t,
5207
5241
  isWidthValid: e
@@ -5214,19 +5248,19 @@ function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5214
5248
  candidateWidth: t,
5215
5249
  candidateHeight: r,
5216
5250
  layoutResolution: a
5217
- }) || n !== void 0 && i < n - rr ? !1 : !Tr({
5251
+ }) || n !== void 0 && i < n - ar ? !1 : !Dr({
5218
5252
  text: e,
5219
5253
  frameWidth: i
5220
5254
  }).hasWrappedLines;
5221
- }, _ = f ? Math.max(u, f) : xr({
5255
+ }, _ = f ? Math.max(u, f) : Cr({
5222
5256
  minimumWidth: u,
5223
5257
  isWidthValid: ({ width: e }) => g({ width: e })
5224
- }), v = m({ width: _ }), y = Tr({
5258
+ }), v = m({ width: _ }), y = Dr({
5225
5259
  text: e,
5226
5260
  frameWidth: v.frameWidth
5227
5261
  });
5228
5262
  if (y.hasWrappedLines) return v.layoutResolution;
5229
- let b = Math.max(Y, y.longestLineWidth), { layoutResolution: x } = m({ width: Sr({
5263
+ let b = Math.max(Y, y.longestLineWidth), { layoutResolution: x } = m({ width: wr({
5230
5264
  minimumWidth: u,
5231
5265
  maximumWidth: _,
5232
5266
  isWidthValid: ({ width: e }) => g({
@@ -5236,67 +5270,67 @@ function dr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5236
5270
  }) });
5237
5271
  return x;
5238
5272
  }
5239
- var fr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, montageAreaWidth: i, resolvePaddingForWidth: a }) => {
5273
+ var mr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, montageAreaWidth: i, resolvePaddingForWidth: a }) => {
5240
5274
  let o = Math.max(Y, t), s = Math.max(Y, n);
5241
- if (!gr({ text: e })) return s;
5242
- let c = Math.max(s, Number.isFinite(i) && i > 0 ? Math.max(Y, i) : Math.max(o, s)), l = Yn({
5275
+ if (!vr({ text: e })) return s;
5276
+ let c = Math.max(s, Number.isFinite(i) && i > 0 ? Math.max(Y, i) : Math.max(o, s)), l = Zn({
5243
5277
  width: c,
5244
- padding: _r({
5278
+ padding: yr({
5245
5279
  width: c,
5246
5280
  padding: r,
5247
5281
  resolvePaddingForWidth: a
5248
5282
  })
5249
- }), u = c, d = Tr({
5283
+ }), u = c, d = Dr({
5250
5284
  text: e,
5251
5285
  frameWidth: l
5252
5286
  });
5253
5287
  if (d.hasWrappedLines) return u;
5254
5288
  let f = Math.max(Y, d.longestLineWidth);
5255
- return Sr({
5289
+ return wr({
5256
5290
  minimumWidth: s,
5257
5291
  maximumWidth: u,
5258
5292
  isWidthValid: ({ width: t }) => {
5259
- let n = Yn({
5293
+ let n = Zn({
5260
5294
  width: t,
5261
- padding: _r({
5295
+ padding: yr({
5262
5296
  width: t,
5263
5297
  padding: r,
5264
5298
  resolvePaddingForWidth: a
5265
5299
  })
5266
5300
  });
5267
- return n < f - rr ? !1 : !Tr({
5301
+ return n < f - ar ? !1 : !Dr({
5268
5302
  text: e,
5269
5303
  frameWidth: n
5270
5304
  }).hasWrappedLines;
5271
5305
  }
5272
5306
  });
5273
- }, pr = ({ text: e, padding: t, resolvePaddingForWidth: n }) => {
5274
- if (!gr({ text: e })) return Y;
5275
- let r = Dr({ text: e }), i = Math.max(Y, r), a = ({ width: e }) => Yn({
5307
+ }, hr = ({ text: e, padding: t, resolvePaddingForWidth: n }) => {
5308
+ if (!vr({ text: e })) return Y;
5309
+ let r = kr({ text: e }), i = Math.max(Y, r), a = ({ width: e }) => Zn({
5276
5310
  width: e,
5277
- padding: _r({
5311
+ padding: yr({
5278
5312
  width: e,
5279
5313
  padding: t,
5280
5314
  resolvePaddingForWidth: n
5281
5315
  })
5282
- }) >= r - rr;
5283
- return Sr({
5316
+ }) >= r - ar;
5317
+ return wr({
5284
5318
  minimumWidth: i,
5285
- maximumWidth: xr({
5319
+ maximumWidth: Cr({
5286
5320
  minimumWidth: i,
5287
5321
  isWidthValid: a
5288
5322
  }),
5289
5323
  isWidthValid: a
5290
5324
  });
5291
- }, mr = ({ text: e, width: t, height: n, alignV: r, padding: i }) => {
5292
- let a = Cr({
5325
+ }, gr = ({ text: e, width: t, height: n, alignV: r, padding: i }) => {
5326
+ let a = Tr({
5293
5327
  width: Math.max(Y, t),
5294
5328
  height: Math.max(Y, n),
5295
5329
  padding: Se({ padding: i })
5296
- }), o = Ar({
5330
+ }), o = Mr({
5297
5331
  text: e,
5298
5332
  frameWidth: a.width
5299
- }), s = Er({
5333
+ }), s = Or({
5300
5334
  text: e,
5301
5335
  frameWidth: a.width,
5302
5336
  splitByGrapheme: o
@@ -5304,60 +5338,60 @@ var fr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, montageAreaWi
5304
5338
  return {
5305
5339
  frame: a,
5306
5340
  splitByGrapheme: o,
5307
- textTop: kr({
5341
+ textTop: jr({
5308
5342
  alignV: r,
5309
5343
  frameHeight: a.height,
5310
5344
  frameTop: a.top,
5311
5345
  textHeight: s
5312
5346
  })
5313
5347
  };
5314
- }, hr = ({ text: e, width: t, height: n, padding: r, resolvePaddingForSize: i }) => {
5348
+ }, _r = ({ text: e, width: t, height: n, padding: r, resolvePaddingForSize: i }) => {
5315
5349
  let a = Math.max(Y, n);
5316
- if (!gr({ text: e })) return a;
5350
+ if (!vr({ text: e })) return a;
5317
5351
  let o = Math.max(Y, t), s = a;
5318
- for (let t = 0; t < ir; t += 1) {
5319
- let t = vr({
5352
+ for (let t = 0; t < or; t += 1) {
5353
+ let t = br({
5320
5354
  width: o,
5321
5355
  height: s,
5322
5356
  padding: r,
5323
5357
  resolvePaddingForSize: i
5324
- }), n = Er({
5358
+ }), n = Or({
5325
5359
  text: e,
5326
- frameWidth: Yn({
5360
+ frameWidth: Zn({
5327
5361
  width: o,
5328
5362
  padding: t
5329
5363
  })
5330
5364
  }), c = Math.max(a, n + t.top + t.bottom);
5331
- if (c <= s + rr) return c;
5365
+ if (c <= s + ar) return c;
5332
5366
  s = c;
5333
5367
  }
5334
5368
  return s;
5335
5369
  };
5336
- function gr({ text: e }) {
5370
+ function vr({ text: e }) {
5337
5371
  return (e.text ?? "").trim().length > 0;
5338
5372
  }
5339
- function _r({ width: e, padding: t, resolvePaddingForWidth: n }) {
5373
+ function yr({ width: e, padding: t, resolvePaddingForWidth: n }) {
5340
5374
  return Se(n ? { padding: n({ width: Math.max(Y, e) }) } : { padding: t });
5341
5375
  }
5342
- function vr({ width: e, height: t, padding: n, resolvePaddingForSize: r }) {
5376
+ function br({ width: e, height: t, padding: n, resolvePaddingForSize: r }) {
5343
5377
  return Se(r ? { padding: r({
5344
5378
  width: Math.max(Y, e),
5345
5379
  height: Math.max(Y, t)
5346
5380
  }) } : { padding: n });
5347
5381
  }
5348
- function yr({ width: e, height: t, internalShapeTextInset: n, resolveInternalShapeTextInset: r }) {
5382
+ function xr({ width: e, height: t, internalShapeTextInset: n, resolveInternalShapeTextInset: r }) {
5349
5383
  return Se(r ? { padding: r({
5350
5384
  width: Math.max(Y, e),
5351
5385
  height: Math.max(Y, t)
5352
5386
  }) } : { padding: n });
5353
5387
  }
5354
- function br({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, expandShapeHeightToFitText: o = !0, changedPadding: s }) {
5355
- let c = Ce({ padding: r }), l = Se({ padding: i }), u = Math.max(Y, t), d = Math.max(Y, n), f = nr({
5388
+ function Sr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, resolveInternalShapeTextInset: a, expandShapeHeightToFitText: o = !0, changedPadding: s }) {
5389
+ let c = Ce({ padding: r }), l = Se({ padding: i }), u = Math.max(Y, t), d = Math.max(Y, n), f = ir({
5356
5390
  text: e,
5357
5391
  width: u,
5358
5392
  height: d,
5359
5393
  padding: c,
5360
- internalShapeTextInset: yr({
5394
+ internalShapeTextInset: xr({
5361
5395
  width: u,
5362
5396
  height: d,
5363
5397
  internalShapeTextInset: l,
@@ -5365,18 +5399,18 @@ function br({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5365
5399
  }),
5366
5400
  expandShapeHeightToFitText: o,
5367
5401
  changedPadding: s,
5368
- measureTextboxHeightForFrame: Er,
5369
- resolveMinimumTextFrameWidth: Dr
5402
+ measureTextboxHeightForFrame: Or,
5403
+ resolveMinimumTextFrameWidth: kr
5370
5404
  });
5371
- for (let t = 0; t < ir; t += 1) {
5405
+ for (let t = 0; t < or; t += 1) {
5372
5406
  let t = Math.max(u, f.requiredWidth), n = Math.max(d, f.requiredHeight);
5373
- if (t <= u + rr && n <= d + rr) break;
5374
- u = t, d = n, f = nr({
5407
+ if (t <= u + ar && n <= d + ar) break;
5408
+ u = t, d = n, f = ir({
5375
5409
  text: e,
5376
5410
  width: u,
5377
5411
  height: d,
5378
5412
  padding: c,
5379
- internalShapeTextInset: yr({
5413
+ internalShapeTextInset: xr({
5380
5414
  width: u,
5381
5415
  height: d,
5382
5416
  internalShapeTextInset: l,
@@ -5384,8 +5418,8 @@ function br({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5384
5418
  }),
5385
5419
  expandShapeHeightToFitText: o,
5386
5420
  changedPadding: s,
5387
- measureTextboxHeightForFrame: Er,
5388
- resolveMinimumTextFrameWidth: Dr
5421
+ measureTextboxHeightForFrame: Or,
5422
+ resolveMinimumTextFrameWidth: kr
5389
5423
  });
5390
5424
  }
5391
5425
  return {
@@ -5395,17 +5429,17 @@ function br({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
5395
5429
  appliedUserPadding: f.appliedUserPadding
5396
5430
  };
5397
5431
  }
5398
- function xr({ minimumWidth: e, isWidthValid: t }) {
5432
+ function Cr({ minimumWidth: e, isWidthValid: t }) {
5399
5433
  let n = Math.max(Y, e);
5400
5434
  if (t({ width: n })) return n;
5401
- for (let e = 0; e < or; e += 1) if (n = Math.max(n + 1, n * 2), t({ width: n })) return n;
5435
+ for (let e = 0; e < cr; e += 1) if (n = Math.max(n + 1, n * 2), t({ width: n })) return n;
5402
5436
  return n;
5403
5437
  }
5404
- function Sr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5438
+ function wr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5405
5439
  let r = Math.max(Y, e), i = Math.max(r, t);
5406
5440
  if (n({ width: r })) return r;
5407
5441
  if (!n({ width: i })) return i;
5408
- for (let e = 0; e < ar && !(i - r <= rr); e += 1) {
5442
+ for (let e = 0; e < sr && !(i - r <= ar); e += 1) {
5409
5443
  let e = r + (i - r) / 2;
5410
5444
  if (n({ width: e })) {
5411
5445
  i = e;
@@ -5415,7 +5449,7 @@ function Sr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5415
5449
  }
5416
5450
  return i;
5417
5451
  }
5418
- function Cr({ width: e, height: t, padding: n }) {
5452
+ function Tr({ width: e, height: t, padding: n }) {
5419
5453
  let r = Math.max(0, n.left), i = Math.max(0, n.right), a = Math.max(0, n.top), o = Math.max(0, n.bottom);
5420
5454
  return {
5421
5455
  left: -e / 2 + r,
@@ -5424,7 +5458,7 @@ function Cr({ width: e, height: t, padding: n }) {
5424
5458
  height: Math.max(Y, t - a - o)
5425
5459
  };
5426
5460
  }
5427
- function wr({ text: e }) {
5461
+ function Er({ text: e }) {
5428
5462
  let { height: t } = e;
5429
5463
  if (typeof t == "number" && Number.isFinite(t)) return t;
5430
5464
  if (typeof e.calcTextHeight == "function") {
@@ -5433,18 +5467,18 @@ function wr({ text: e }) {
5433
5467
  }
5434
5468
  return Y;
5435
5469
  }
5436
- function Tr({ text: e, frameWidth: t }) {
5437
- let n = Mr({ text: e }), r = Ar({
5470
+ function Dr({ text: e, frameWidth: t }) {
5471
+ let n = Pr({ text: e }), r = Mr({
5438
5472
  text: e,
5439
5473
  frameWidth: t
5440
- }), i = Fr({ text: e });
5474
+ }), i = Lr({ text: e });
5441
5475
  e.set({
5442
5476
  autoExpand: !1,
5443
5477
  width: Math.max(Y, t),
5444
5478
  splitByGrapheme: r
5445
5479
  }), e.initDimensions();
5446
- let a = Nr({ text: e }) > n, o = Math.ceil(jr({ text: e }));
5447
- return Ir({
5480
+ let a = Fr({ text: e }) > n, o = Math.ceil(Nr({ text: e }));
5481
+ return Rr({
5448
5482
  text: e,
5449
5483
  state: i
5450
5484
  }), {
@@ -5452,8 +5486,8 @@ function Tr({ text: e, frameWidth: t }) {
5452
5486
  longestLineWidth: o
5453
5487
  };
5454
5488
  }
5455
- function Er({ text: e, frameWidth: t, splitByGrapheme: n }) {
5456
- let r = Fr({ text: e }), i = n ?? Ar({
5489
+ function Or({ text: e, frameWidth: t, splitByGrapheme: n }) {
5490
+ let r = Lr({ text: e }), i = n ?? Mr({
5457
5491
  text: e,
5458
5492
  frameWidth: t
5459
5493
  });
@@ -5462,71 +5496,71 @@ function Er({ text: e, frameWidth: t, splitByGrapheme: n }) {
5462
5496
  width: Math.max(Y, t),
5463
5497
  splitByGrapheme: i
5464
5498
  }), e.initDimensions();
5465
- let a = wr({ text: e });
5466
- return Ir({
5499
+ let a = Er({ text: e });
5500
+ return Rr({
5467
5501
  text: e,
5468
5502
  state: r
5469
5503
  }), a;
5470
5504
  }
5471
- function Dr({ text: e }) {
5472
- let t = Or({
5505
+ function kr({ text: e }) {
5506
+ let t = Ar({
5473
5507
  text: e,
5474
5508
  frameWidth: Y,
5475
5509
  splitByGrapheme: !0
5476
5510
  });
5477
5511
  return Math.max(Y, t);
5478
5512
  }
5479
- function Or({ text: e, frameWidth: t, splitByGrapheme: n }) {
5480
- let r = Fr({ text: e });
5513
+ function Ar({ text: e, frameWidth: t, splitByGrapheme: n }) {
5514
+ let r = Lr({ text: e });
5481
5515
  e.set({
5482
5516
  autoExpand: !1,
5483
5517
  width: Math.max(Y, t),
5484
5518
  splitByGrapheme: n
5485
5519
  }), e.initDimensions();
5486
- let i = jr({ text: e });
5487
- return Ir({
5520
+ let i = Nr({ text: e });
5521
+ return Rr({
5488
5522
  text: e,
5489
5523
  state: r
5490
5524
  }), i;
5491
5525
  }
5492
- function kr({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
5526
+ function jr({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
5493
5527
  let i = Math.max(0, t - r);
5494
5528
  return e === "top" ? n : e === "bottom" ? n + i : n + i / 2;
5495
5529
  }
5496
- function Ar({ text: e, frameWidth: t }) {
5497
- let n = Math.max(Y, t), r = Fr({ text: e });
5530
+ function Mr({ text: e, frameWidth: t }) {
5531
+ let n = Math.max(Y, t), r = Lr({ text: e });
5498
5532
  e.set({
5499
5533
  autoExpand: !1,
5500
5534
  width: n,
5501
5535
  splitByGrapheme: !1
5502
5536
  }), e.initDimensions();
5503
- let i = Lr({ text: e }) > n + rr;
5504
- return Ir({
5537
+ let i = zr({ text: e }) > n + ar;
5538
+ return Rr({
5505
5539
  text: e,
5506
5540
  state: r
5507
5541
  }), i;
5508
5542
  }
5509
- function jr({ text: e }) {
5510
- let t = Nr({ text: e });
5511
- if (t > 0) return Pr({
5543
+ function Nr({ text: e }) {
5544
+ let t = Fr({ text: e });
5545
+ if (t > 0) return Ir({
5512
5546
  text: e,
5513
5547
  lineCount: t
5514
5548
  });
5515
5549
  let n = e.text ?? "";
5516
- return Pr({
5550
+ return Ir({
5517
5551
  text: e,
5518
5552
  lineCount: Math.max(n.split("\n").length, 1)
5519
5553
  });
5520
5554
  }
5521
- function Mr({ text: e }) {
5555
+ function Pr({ text: e }) {
5522
5556
  let t = e.text ?? "";
5523
5557
  return Math.max(t.split("\n").length, 1);
5524
5558
  }
5525
- function Nr({ text: e }) {
5559
+ function Fr({ text: e }) {
5526
5560
  let t = e;
5527
5561
  return Array.isArray(t.textLines) ? t.textLines.length : 0;
5528
5562
  }
5529
- function Pr({ text: e, lineCount: t }) {
5563
+ function Ir({ text: e, lineCount: t }) {
5530
5564
  let n = Y;
5531
5565
  for (let r = 0; r < t; r += 1) {
5532
5566
  let t = e.getLineWidth(r);
@@ -5534,7 +5568,7 @@ function Pr({ text: e, lineCount: t }) {
5534
5568
  }
5535
5569
  return n;
5536
5570
  }
5537
- function Fr({ text: e }) {
5571
+ function Lr({ text: e }) {
5538
5572
  let { autoExpand: t, splitByGrapheme: n, width: r } = e;
5539
5573
  return {
5540
5574
  autoExpand: t,
@@ -5542,22 +5576,22 @@ function Fr({ text: e }) {
5542
5576
  width: typeof r == "number" ? r : void 0
5543
5577
  };
5544
5578
  }
5545
- function Ir({ text: e, state: t }) {
5579
+ function Rr({ text: e, state: t }) {
5546
5580
  let { autoExpand: n, splitByGrapheme: r, width: i } = t, a = {};
5547
5581
  n !== void 0 && (a.autoExpand = n), r !== void 0 && (a.splitByGrapheme = r), typeof i == "number" && (a.width = i), Object.keys(a).length > 0 && (e.set(a), e.initDimensions());
5548
5582
  }
5549
- function Lr({ text: e }) {
5583
+ function zr({ text: e }) {
5550
5584
  let { dynamicMinWidth: t } = e;
5551
5585
  return typeof t == "number" && Number.isFinite(t) ? t : 0;
5552
5586
  }
5553
5587
  //#endregion
5554
5588
  //#region src/editor/shape-manager/scaling/shape-scaling-transform.ts
5555
- var Rr = ({ transform: e, key: t }) => {
5589
+ var Br = ({ transform: e, key: t }) => {
5556
5590
  let n = e?.original;
5557
5591
  if (!n || typeof n != "object") return null;
5558
5592
  let r = n[t];
5559
5593
  return typeof r != "number" || !Number.isFinite(r) ? null : r;
5560
- }, zr = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Br = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Vr = ({ transform: e }) => {
5594
+ }, Vr = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Hr = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Ur = ({ transform: e }) => {
5561
5595
  let t = e?.action ?? "", n = typeof e?.corner == "string" ? e.corner : "", r = n === "tl" || n === "tr" || n === "bl" || n === "br", i = t === "scaleX" || n === "ml" || n === "mr", a = t === "scaleY" || n === "mt" || n === "mb", o = i || r, s = a || r;
5562
5596
  return {
5563
5597
  canScaleWidth: o,
@@ -5565,37 +5599,37 @@ var Rr = ({ transform: e, key: t }) => {
5565
5599
  isCornerScaleAction: r,
5566
5600
  isVerticalOnlyScale: s && !o
5567
5601
  };
5568
- }, Hr = ({ event: e, group: t, transform: n, canvas: r }) => {
5602
+ }, Wr = ({ event: e, group: t, transform: n, canvas: r }) => {
5569
5603
  if (!e) return null;
5570
5604
  let i = t.canvas ?? r, a = i.getScenePoint(e), o = t.getRelativeCenterPoint(), s = t.translateToGivenOrigin(o, "center", "center", n.originX, n.originY), c = t.angle ?? 0, l = (c === 0 ? a : a.rotate(-c * Math.PI / 180, o)).subtract(s), u = t.controls[n.corner], d = i.getZoom() || 1, f = (t.padding ?? 0) / d;
5571
5605
  return l.x >= f && (l.x -= f), l.x <= -f && (l.x += f), l.y >= f && (l.y -= f), l.y <= -f && (l.y += f), l.x -= u?.offsetX ?? 0, l.y -= u?.offsetY ?? 0, l;
5572
- }, Ur = ({ group: e, originX: t, originY: n }) => {
5606
+ }, Gr = ({ group: e, originX: t, originY: n }) => {
5573
5607
  if (t === null || n === null) return null;
5574
5608
  let r = e, i = typeof r.getRelativeCenterPoint == "function" ? r.getRelativeCenterPoint() : e.getCenterPoint();
5575
5609
  return typeof r.translateToOriginPoint == "function" ? r.translateToOriginPoint(i, t, n) : i;
5576
- }, Wr = ({ state: e, transform: t }) => {
5610
+ }, Kr = ({ state: e, transform: t }) => {
5577
5611
  if (!t || e.startTransformOriginX === null && e.startTransformOriginY === null) return !1;
5578
- let n = zr({ value: t.originX }), r = Br({ value: t.originY });
5612
+ let n = Vr({ value: t.originX }), r = Hr({ value: t.originY });
5579
5613
  return n !== e.startTransformOriginX || r !== e.startTransformOriginY;
5580
- }, Gr = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
5614
+ }, qr = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
5581
5615
  //#endregion
5582
5616
  //#region src/editor/shape-manager/scaling/shape-scaling-preview.ts
5583
- function Kr({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
5617
+ function Jr({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
5584
5618
  let a = Math.max(i, Math.abs(t) || 1), o = Math.max(0, n);
5585
5619
  return o <= 0 ? Math.max(r, e / a) : Math.max(r, e / a + o - o / a);
5586
5620
  }
5587
- function qr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
5621
+ function Yr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
5588
5622
  let c = Math.max(0, e.shapeStrokeWidth ?? 0);
5589
- Nn({
5623
+ Fn({
5590
5624
  shape: t,
5591
- width: Kr({
5625
+ width: Jr({
5592
5626
  size: n,
5593
5627
  scale: i,
5594
5628
  strokeWidth: c,
5595
5629
  minSize: o,
5596
5630
  scaleEpsilon: s
5597
5631
  }),
5598
- height: Kr({
5632
+ height: Jr({
5599
5633
  size: r,
5600
5634
  scale: a,
5601
5635
  strokeWidth: c,
@@ -5606,7 +5640,7 @@ function qr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, min
5606
5640
  strokeWidth: c
5607
5641
  });
5608
5642
  }
5609
- function Jr({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon: a }) {
5643
+ function Xr({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon: a }) {
5610
5644
  let o = Math.max(a, Math.abs(r) || 1), s = Math.max(a, Math.abs(i) || 1), c = n ?? "center";
5611
5645
  e.set({
5612
5646
  autoExpand: !1,
@@ -5621,13 +5655,13 @@ function Jr({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon:
5621
5655
  scaleY: 1 / s
5622
5656
  }), e.initDimensions(), e.setCoords();
5623
5657
  }
5624
- var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY: o, minSize: s, scaleEpsilon: c }) => {
5658
+ var Zr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY: o, minSize: s, scaleEpsilon: c }) => {
5625
5659
  let l = Math.max(c, Math.abs(a) || 1), u = Math.max(c, Math.abs(o) || 1);
5626
5660
  e.set({
5627
5661
  width: r.width / l,
5628
5662
  height: r.height / u,
5629
5663
  dirty: !0
5630
- }), qr({
5664
+ }), Yr({
5631
5665
  group: e,
5632
5666
  shape: t,
5633
5667
  width: r.width,
@@ -5636,7 +5670,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5636
5670
  scaleY: o,
5637
5671
  minSize: s,
5638
5672
  scaleEpsilon: c
5639
- }), Jr({
5673
+ }), Xr({
5640
5674
  text: n,
5641
5675
  layout: r,
5642
5676
  alignH: i,
@@ -5644,7 +5678,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5644
5678
  scaleY: o,
5645
5679
  scaleEpsilon: c
5646
5680
  });
5647
- }, X = 1, Z = 1e-4, Xr = .5, Zr = class e {
5681
+ }, X = 1, Z = 1e-4, Qr = .5, $r = class e {
5648
5682
  constructor({ canvas: t }) {
5649
5683
  this.handleObjectScaling = (t) => {
5650
5684
  let { target: n, transform: r } = t;
@@ -5660,7 +5694,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5660
5694
  text: o,
5661
5695
  constraintPadding: s,
5662
5696
  transform: r
5663
- }), { isCornerScaleAction: l } = Vr({ transform: r }), u = !!(t.e && "shiftKey" in t.e && t.e.shiftKey);
5697
+ }), { isCornerScaleAction: l } = Ur({ transform: r }), u = !!(t.e && "shiftKey" in t.e && t.e.shiftKey);
5664
5698
  c.isProportionalScaling = l && u;
5665
5699
  let d = i.left ?? 0, f = i.top ?? 0, p = !!i.flipX, m = !!i.flipY, h = i.shapeAlignHorizontal ?? "center", g = this._resolveScalingDecision({
5666
5700
  group: i,
@@ -5682,7 +5716,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5682
5716
  shouldHandleAsNoop: g.shouldHandleAsNoop,
5683
5717
  scaleX: g.appliedScaleX,
5684
5718
  scaleY: g.appliedScaleY
5685
- }), Yr({
5719
+ }), Zr({
5686
5720
  group: i,
5687
5721
  shape: a,
5688
5722
  text: o,
@@ -5710,7 +5744,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5710
5744
  if (!n) return;
5711
5745
  let { target: r } = n;
5712
5746
  if (!K(r)) return;
5713
- let { canScaleHeight: i, canScaleWidth: a } = Vr({ transform: n });
5747
+ let { canScaleHeight: i, canScaleWidth: a } = Ur({ transform: n });
5714
5748
  if (!a && !i) return;
5715
5749
  let o = r, s = this.scalingState.get(o);
5716
5750
  if (!s || s.isProportionalScaling) return;
@@ -5725,7 +5759,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5725
5759
  group: o,
5726
5760
  axis: "x"
5727
5761
  })) {
5728
- let t = pr({
5762
+ let t = hr({
5729
5763
  text: l,
5730
5764
  padding: u,
5731
5765
  resolvePaddingForWidth: ({ width: t }) => e._resolveScalingConstraintPadding({
@@ -5773,7 +5807,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5773
5807
  shouldHandleAsNoop: !1,
5774
5808
  scaleX: h,
5775
5809
  scaleY: g
5776
- }), Yr({
5810
+ }), Zr({
5777
5811
  group: o,
5778
5812
  shape: c,
5779
5813
  text: l,
@@ -5817,7 +5851,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5817
5851
  this.scalingState.delete(r);
5818
5852
  return;
5819
5853
  }
5820
- let p = r.shapeAlignHorizontal ?? "center", m = r.shapeAlignVertical ?? "middle", h = e._resolveScalingConstraintPadding({ group: r }), g = t.transform ? Vr({ transform: t.transform }) : null, _ = i?.canScaleWidth ?? g?.canScaleWidth ?? Math.abs(a - 1) > Z, v = i?.canScaleHeight ?? g?.canScaleHeight ?? Math.abs(o - 1) > Z, y = i?.lastAllowedScaleX ?? a, b = i?.lastAllowedScaleY ?? o, x = pr({
5854
+ let p = r.shapeAlignHorizontal ?? "center", m = r.shapeAlignVertical ?? "middle", h = e._resolveScalingConstraintPadding({ group: r }), g = t.transform ? Ur({ transform: t.transform }) : null, _ = i?.canScaleWidth ?? g?.canScaleWidth ?? Math.abs(a - 1) > Z, v = i?.canScaleHeight ?? g?.canScaleHeight ?? Math.abs(o - 1) > Z, y = i?.lastAllowedScaleX ?? a, b = i?.lastAllowedScaleY ?? o, x = hr({
5821
5855
  text: f,
5822
5856
  padding: h,
5823
5857
  resolvePaddingForWidth: ({ width: t }) => e._resolveScalingConstraintPadding({
@@ -5846,7 +5880,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5846
5880
  state: i
5847
5881
  }) && (b = Math.max(X / c, e / c));
5848
5882
  }
5849
- let S = _ ? Math.max(X, s * y) : s, C = v ? Math.max(X, c * b) : u, w = Math.abs(S - s) > Xr, T = Math.abs(C - c) > Xr, E = w || T, D = S, O = C;
5883
+ let S = _ ? Math.max(X, s * y) : s, C = v ? Math.max(X, c * b) : u, w = Math.abs(S - s) > Qr, T = Math.abs(C - c) > Qr, E = w || T, D = S, O = C;
5850
5884
  if (!E && i) {
5851
5885
  this._restoreShapeStateWithoutResize({
5852
5886
  group: r,
@@ -5879,7 +5913,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5879
5913
  width: D,
5880
5914
  height: O
5881
5915
  });
5882
- ur({
5916
+ fr({
5883
5917
  group: r,
5884
5918
  shape: d,
5885
5919
  text: f,
@@ -5908,10 +5942,10 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5908
5942
  }, this.canvas = t, this.scalingState = /* @__PURE__ */ new WeakMap();
5909
5943
  }
5910
5944
  _resolveScalingDecision({ group: e, text: t, constraintPadding: n, state: r, transform: i }) {
5911
- let a = e.scaleX ?? 1, o = e.scaleY ?? 1, s = Math.abs(a) || 1, c = Math.abs(o) || 1, l = a < 0 || o < 0, u = Wr({
5945
+ let a = e.scaleX ?? 1, o = e.scaleY ?? 1, s = Math.abs(a) || 1, c = Math.abs(o) || 1, l = a < 0 || o < 0, u = Kr({
5912
5946
  state: r,
5913
5947
  transform: i
5914
- }), d = Gr({
5948
+ }), d = qr({
5915
5949
  state: r,
5916
5950
  transform: i
5917
5951
  });
@@ -5945,7 +5979,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5945
5979
  };
5946
5980
  }
5947
5981
  _resolveScalingConstraintState({ group: t, text: n, constraintPadding: r, state: i, transform: a, scaleX: o, scaleY: s }) {
5948
- let { startHeight: c, startWidth: l, cannotScaleDownAtStart: u, crossedOppositeCorner: d, isProportionalScaling: f, lastAllowedScaleX: p, lastAllowedScaleY: m, startScaleY: h } = i, g = Math.max(X, l * o), _ = Math.max(X, c * s), v = o < p - Z, y = s < m - Z, b = s < h - Z, { canScaleHeight: x, canScaleWidth: S, isVerticalOnlyScale: C } = Vr({ transform: a }), w = S && v ? pr({
5982
+ let { startHeight: c, startWidth: l, cannotScaleDownAtStart: u, crossedOppositeCorner: d, isProportionalScaling: f, lastAllowedScaleX: p, lastAllowedScaleY: m, startScaleY: h } = i, g = Math.max(X, l * o), _ = Math.max(X, c * s), v = o < p - Z, y = s < m - Z, b = s < h - Z, { canScaleHeight: x, canScaleWidth: S, isVerticalOnlyScale: C } = Ur({ transform: a }), w = S && v ? hr({
5949
5983
  text: n,
5950
5984
  padding: r,
5951
5985
  resolvePaddingForWidth: ({ width: n }) => e._resolveScalingConstraintPadding({
@@ -5970,7 +6004,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5970
6004
  };
5971
6005
  }
5972
6006
  _resolvePreviewDimensions({ group: t, text: n, constraintPadding: r, state: i, appliedScaleX: a, appliedScaleY: o, minimumHeight: s }) {
5973
- let c = i.canScaleWidth ? Math.max(X, i.startWidth * a) : i.startWidth, l = i.canScaleHeight ? Math.max(X, i.startHeight * o) : i.startManualBaseHeight, u = s ?? hr({
6007
+ let c = i.canScaleWidth ? Math.max(X, i.startWidth * a) : i.startWidth, l = i.canScaleHeight ? Math.max(X, i.startHeight * o) : i.startManualBaseHeight, u = s ?? _r({
5974
6008
  text: n,
5975
6009
  width: c,
5976
6010
  height: l,
@@ -5988,7 +6022,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5988
6022
  }
5989
6023
  _resolvePreviewLayout({ group: t, text: n, state: r, appliedScaleX: i, appliedScaleY: a, minimumHeight: o }) {
5990
6024
  let s = r.canScaleWidth ? Math.max(X, r.startWidth * i) : r.startWidth, c = r.canScaleHeight ? Math.max(X, r.startHeight * a) : r.startManualBaseHeight;
5991
- return lr({
6025
+ return dr({
5992
6026
  text: n,
5993
6027
  width: s,
5994
6028
  height: o == null ? c : Math.max(c, o),
@@ -6023,7 +6057,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6023
6057
  if (!r) return !1;
6024
6058
  let { transform: i } = e;
6025
6059
  if (!i) return !1;
6026
- let { canScaleWidth: a } = Vr({ transform: i });
6060
+ let { canScaleWidth: a } = Ur({ transform: i });
6027
6061
  if (!a || !this._hasPointerReachedScaleOrigin({
6028
6062
  event: e,
6029
6063
  group: t,
@@ -6036,7 +6070,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6036
6070
  if (!r) return !1;
6037
6071
  let { transform: i } = e;
6038
6072
  if (!i) return !1;
6039
- let { canScaleHeight: a } = Vr({ transform: i });
6073
+ let { canScaleHeight: a } = Ur({ transform: i });
6040
6074
  if (!a || !this._hasPointerReachedScaleOrigin({
6041
6075
  event: e,
6042
6076
  group: t,
@@ -6050,7 +6084,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6050
6084
  if (!r) return !1;
6051
6085
  let i = r, a = n === "x" ? i.signX : i.signY;
6052
6086
  if (typeof a != "number" || !Number.isFinite(a)) return !1;
6053
- let o = Hr({
6087
+ let o = Wr({
6054
6088
  event: e.e,
6055
6089
  group: t,
6056
6090
  transform: r,
@@ -6067,19 +6101,19 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6067
6101
  let a = this._resolveScalingStartDimensions({
6068
6102
  group: e,
6069
6103
  transform: r
6070
- }), o = Rr({
6104
+ }), o = Br({
6071
6105
  transform: r,
6072
6106
  key: "scaleX"
6073
- }), s = Rr({
6107
+ }), s = Br({
6074
6108
  transform: r,
6075
6109
  key: "scaleY"
6076
- }), c = Rr({
6110
+ }), c = Br({
6077
6111
  transform: r,
6078
6112
  key: "left"
6079
- }), l = Rr({
6113
+ }), l = Br({
6080
6114
  transform: r,
6081
6115
  key: "top"
6082
- }), u = Math.abs(o ?? e.scaleX ?? 1) || 1, d = Math.abs(s ?? e.scaleY ?? 1) || 1, f = c ?? e.left ?? 0, p = l ?? e.top ?? 0, m = zr({ value: r?.original?.originX ?? r?.originX }), h = Br({ value: r?.original?.originY ?? r?.originY }), g = typeof r?.corner == "string" ? r.corner : null, _ = Ur({
6116
+ }), u = Math.abs(o ?? e.scaleX ?? 1) || 1, d = Math.abs(s ?? e.scaleY ?? 1) || 1, f = c ?? e.left ?? 0, p = l ?? e.top ?? 0, m = Vr({ value: r?.original?.originX ?? r?.originX }), h = Hr({ value: r?.original?.originY ?? r?.originY }), g = typeof r?.corner == "string" ? r.corner : null, _ = Gr({
6083
6117
  group: e,
6084
6118
  originX: m,
6085
6119
  originY: h
@@ -6122,7 +6156,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6122
6156
  return i;
6123
6157
  }
6124
6158
  _resolveMinimumTextFitHeight({ group: t, text: n, width: r, padding: i }) {
6125
- return hr({
6159
+ return _r({
6126
6160
  text: n,
6127
6161
  width: r,
6128
6162
  height: X,
@@ -6176,7 +6210,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6176
6210
  width: u,
6177
6211
  height: d
6178
6212
  });
6179
- ur({
6213
+ fr({
6180
6214
  group: t,
6181
6215
  shape: n,
6182
6216
  text: r,
@@ -6205,7 +6239,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6205
6239
  }
6206
6240
  _restoreGroupTransformOnly({ group: e, shape: t, text: n, state: r }) {
6207
6241
  let i = Math.max(X, e.shapeBaseWidth ?? e.width ?? r.startWidth), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? r.startHeight);
6208
- t && (Nn({
6242
+ t && (Fn({
6209
6243
  shape: t,
6210
6244
  width: i,
6211
6245
  height: a,
@@ -6229,7 +6263,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6229
6263
  });
6230
6264
  }
6231
6265
  _resolveScalingStartDimensions({ group: e, transform: t }) {
6232
- let { canScaleWidth: n, canScaleHeight: r } = Vr({ transform: t }), i = Math.max(X, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? X), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? X);
6266
+ let { canScaleWidth: n, canScaleHeight: r } = Ur({ transform: t }), i = Math.max(X, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? X), a = Math.max(X, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? X);
6233
6267
  return {
6234
6268
  startWidth: i,
6235
6269
  startHeight: a,
@@ -6248,7 +6282,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6248
6282
  height: s
6249
6283
  };
6250
6284
  }
6251
- }, Qr = class {
6285
+ }, ei = class {
6252
6286
  constructor({ canvas: e }) {
6253
6287
  this.handleMouseDown = (e) => {
6254
6288
  let { target: t, e: n, subTargets: r = [] } = e, i = We({
@@ -6372,7 +6406,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6372
6406
  let t = this.canvas;
6373
6407
  t.findTarget = e.findTarget, this.editingTargetResolverState = void 0;
6374
6408
  }
6375
- }, $r = class e {
6409
+ }, ti = class e {
6376
6410
  constructor({ canvas: e }) {
6377
6411
  this.canvas = e, this.textEditingSnapshots = /* @__PURE__ */ new WeakMap(), this.pendingTextUpdates = /* @__PURE__ */ new WeakMap(), this.resizeStartSnapshots = /* @__PURE__ */ new Map(), this.pendingResizeUpdates = /* @__PURE__ */ new WeakMap();
6378
6412
  }
@@ -6568,7 +6602,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6568
6602
  }
6569
6603
  }), I;
6570
6604
  }
6571
- }, ei = "#B4B7BD", ti = 0, ni = 1, ri = class {
6605
+ }, ni = "#B4B7BD", ri = 0, ii = 1, ai = class {
6572
6606
  constructor({ editor: e }) {
6573
6607
  this._handleObjectScaling = (e) => {
6574
6608
  let t = e.target && K(e.target) ? e.target : null;
@@ -6633,7 +6667,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6633
6667
  if (!(t instanceof _)) return;
6634
6668
  let n = t;
6635
6669
  this.lifecycleController.finishTextUpdate({ textNode: n });
6636
- }, this.editor = e, Ue(), this.scalingController = new Zr({ canvas: e.canvas }), this.editingController = new Qr({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.lifecycleController = new $r({ canvas: e.canvas }), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this._bindEvents();
6670
+ }, this.editor = e, Ue(), this.scalingController = new $r({ canvas: e.canvas }), this.editingController = new ei({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.lifecycleController = new ti({ canvas: e.canvas }), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this._bindEvents();
6637
6671
  }
6638
6672
  async add({ presetKey: e = ce, options: t = {} } = {}) {
6639
6673
  let n = pe({ presetKey: e });
@@ -6731,7 +6765,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6731
6765
  addition: k
6732
6766
  })
6733
6767
  }));
6734
- let I = await Kn({
6768
+ let I = await Jn({
6735
6769
  preset: m,
6736
6770
  width: F,
6737
6771
  height: x,
@@ -6861,7 +6895,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6861
6895
  let be = U({
6862
6896
  width: _e,
6863
6897
  height: ye
6864
- }), xe = await Kn({
6898
+ }), xe = await Jn({
6865
6899
  preset: A,
6866
6900
  width: _e,
6867
6901
  height: ye,
@@ -6961,7 +6995,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6961
6995
  });
6962
6996
  this._beginMutation();
6963
6997
  try {
6964
- Pn({
6998
+ In({
6965
6999
  shape: i,
6966
7000
  style: { fill: t }
6967
7001
  }), r.shapeFill = t, r.setCoords(), this.lifecycleController.fireBefore({ lifecycle: a }), this.editor.canvas.requestRenderAll();
@@ -6983,7 +7017,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
6983
7017
  });
6984
7018
  this._beginMutation();
6985
7019
  try {
6986
- if (Pn({
7020
+ if (In({
6987
7021
  shape: o,
6988
7022
  style: {
6989
7023
  stroke: t,
@@ -7019,7 +7053,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7019
7053
  });
7020
7054
  this._beginMutation();
7021
7055
  try {
7022
- Pn({
7056
+ In({
7023
7057
  shape: a,
7024
7058
  style: { opacity: t }
7025
7059
  }), n && o && (o.set({ opacity: t }), o.setCoords()), i.shapeOpacity = t, i.setCoords(), this.lifecycleController.fireBefore({ lifecycle: s }), this.editor.canvas.requestRenderAll();
@@ -7128,9 +7162,9 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7128
7162
  width: Math.max(1, (f ?? C) * b),
7129
7163
  height: Math.max(1, (p ?? w) * x)
7130
7164
  };
7131
- return Math.abs(S - 1) > 1e-4 && (Dn({
7165
+ return Math.abs(S - 1) > 1e-4 && (kn({
7132
7166
  textbox: i,
7133
- base: Tn({ textbox: i }),
7167
+ base: Dn({ textbox: i }),
7134
7168
  scale: S
7135
7169
  }), n.shapePaddingTop = Math.max(0, m * S), n.shapePaddingRight = Math.max(0, h * S), n.shapePaddingBottom = Math.max(0, g * S), n.shapePaddingLeft = Math.max(0, _ * S)), this._detachShapeGroupAutoLayout({ group: n }), n.shapeManualBaseWidth = E.width, n.shapeManualBaseHeight = E.height, this._applyCurrentLayout({
7136
7170
  group: n,
@@ -7176,7 +7210,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7176
7210
  padding: h,
7177
7211
  style: y,
7178
7212
  rounding: b
7179
- }), x.rehydrateRuntimeState(), qe({ group: x }), Ae({ text: i }), ur({
7213
+ }), x.rehydrateRuntimeState(), qe({ group: x }), Ae({ text: i }), fr({
7180
7214
  group: x,
7181
7215
  shape: r,
7182
7216
  text: i,
@@ -7351,7 +7385,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7351
7385
  }
7352
7386
  _resolveAutoExpandShapeWidth({ text: e, currentWidth: t, minimumWidth: n, padding: r, resolvePaddingForWidth: i }) {
7353
7387
  let a = this._resolveMontageAreaWidth();
7354
- return a ? fr({
7388
+ return a ? mr({
7355
7389
  text: e,
7356
7390
  currentWidth: t,
7357
7391
  minimumWidth: n,
@@ -7407,7 +7441,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7407
7441
  width: y,
7408
7442
  height: b
7409
7443
  }), S = r ?? this.editor.canvasManager.getObjectPlacement({ object: e }), C = u ? this._resolveMontageAreaWidth() : void 0;
7410
- ur({
7444
+ fr({
7411
7445
  group: e,
7412
7446
  shape: t,
7413
7447
  text: n,
@@ -7470,11 +7504,11 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7470
7504
  _resolveShapeStyle({ options: e, fallback: t }) {
7471
7505
  let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = e, s = a === void 0 ? t?.shapeStrokeDashArray : a;
7472
7506
  return {
7473
- fill: n ?? t?.shapeFill ?? ei,
7507
+ fill: n ?? t?.shapeFill ?? ni,
7474
7508
  stroke: r ?? t?.shapeStroke ?? null,
7475
- strokeWidth: i ?? t?.shapeStrokeWidth ?? ti,
7509
+ strokeWidth: i ?? t?.shapeStrokeWidth ?? ri,
7476
7510
  strokeDashArray: s ?? null,
7477
- opacity: o ?? t?.shapeOpacity ?? ni
7511
+ opacity: o ?? t?.shapeOpacity ?? ii
7478
7512
  };
7479
7513
  }
7480
7514
  _collectShapeGroupsFromTarget({ target: t, subTargets: n = [] }) {
@@ -7530,7 +7564,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7530
7564
  }
7531
7565
  return null;
7532
7566
  }
7533
- }, ii = class {
7567
+ }, oi = class {
7534
7568
  constructor({ editor: e }) {
7535
7569
  this.editor = e, this.clipboard = null;
7536
7570
  }
@@ -7780,7 +7814,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7780
7814
  }), !1;
7781
7815
  }
7782
7816
  }
7783
- }, ai = class t {
7817
+ }, si = class t {
7784
7818
  constructor({ editor: e }) {
7785
7819
  this.editor = e;
7786
7820
  }
@@ -7845,7 +7879,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7845
7879
  !(n instanceof _) || !n.isEditing || n.exitEditing();
7846
7880
  }
7847
7881
  }
7848
- }, oi = class {
7882
+ }, ci = class {
7849
7883
  constructor({ editor: e }) {
7850
7884
  this.editor = e;
7851
7885
  }
@@ -7911,7 +7945,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
7911
7945
  i.resumeHistory(), n || i.saveState();
7912
7946
  }
7913
7947
  }
7914
- }, si = class t {
7948
+ }, li = class t {
7915
7949
  constructor({ editor: e }) {
7916
7950
  this.lastSelection = [], this.isCtrlSelectionBoxActive = !1, this.isSelectionMergeInProgress = !1, this.editor = e, this.selectionKey = this._resolveSelectionKey(), this.handleTextEditingEnteredBound = this._handleTextEditingEntered.bind(this), this.handleTextEditingExitedBound = this._handleTextEditingExited.bind(this), this.handleLockedSelectionBound = this._filterLockedSelection.bind(this), this.handleSelectionMergeBound = this._handleSelectionMerge.bind(this), this.handleSelectionChangeBound = this._handleSelectionChange.bind(this), this.handleSelectionClearedBound = this._handleSelectionCleared.bind(this), this.handleSelectionBoxStartBound = this._handleSelectionBoxStart.bind(this), this.handleSelectionBoxEndBound = this._handleSelectionBoxEnd.bind(this), this._applySelectionKey({ selectionKey: this.selectionKey }), this._bindEvents();
7917
7951
  }
@@ -8105,7 +8139,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8105
8139
  let { options: e } = this.editor, { selectionKey: t } = e;
8106
8140
  return t === void 0 ? ["ctrlKey", "metaKey"] : t;
8107
8141
  }
8108
- }, ci = class e {
8142
+ }, ui = class e {
8109
8143
  constructor({ editor: e }) {
8110
8144
  this.editor = e;
8111
8145
  }
@@ -8145,7 +8179,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8145
8179
  };
8146
8180
  return i.fire("editor:objects-deleted", l), l;
8147
8181
  }
8148
- }, li = {
8182
+ }, di = {
8149
8183
  IMAGE_MANAGER: {
8150
8184
  INVALID_CONTENT_TYPE: "INVALID_CONTENT_TYPE",
8151
8185
  INVALID_SOURCE_TYPE: "INVALID_SOURCE_TYPE",
@@ -8183,7 +8217,7 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8183
8217
  INVALID_TARGET: "TEMPLATE_INVALID_TARGET",
8184
8218
  APPLY_FAILED: "TEMPLATE_APPLY_FAILED"
8185
8219
  }
8186
- }, ui = class e {
8220
+ }, fi = class e {
8187
8221
  constructor({ editor: e }) {
8188
8222
  this._buffer = [], this.editor = e;
8189
8223
  }
@@ -8241,9 +8275,9 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8241
8275
  }), this.editor.canvas.fire("editor:warning", s);
8242
8276
  }
8243
8277
  static isValidErrorCode(e) {
8244
- return e ? Object.values(li).some((t) => Object.values(t).includes(e)) : !1;
8278
+ return e ? Object.values(di).some((t) => Object.values(t).includes(e)) : !1;
8245
8279
  }
8246
- }, di = class {
8280
+ }, pi = class {
8247
8281
  constructor({ editor: e }) {
8248
8282
  this.currentBounds = null, this.editor = e;
8249
8283
  }
@@ -8292,32 +8326,32 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8292
8326
  updateBounds() {
8293
8327
  this.currentBounds = this.calculatePanBounds();
8294
8328
  }
8295
- }, fi = ({ textbox: e }) => {
8329
+ }, mi = ({ textbox: e }) => {
8296
8330
  if (!e.isEditing) return null;
8297
8331
  let t = e.selectionStart ?? 0, n = e.selectionEnd ?? t;
8298
8332
  return t === n ? null : {
8299
8333
  start: Math.min(t, n),
8300
8334
  end: Math.max(t, n)
8301
8335
  };
8302
- }, pi = ({ textbox: e }) => {
8336
+ }, hi = ({ textbox: e }) => {
8303
8337
  let t = e.text?.length ?? 0;
8304
8338
  return t <= 0 ? null : {
8305
8339
  start: 0,
8306
8340
  end: t
8307
8341
  };
8308
- }, mi = ({ textbox: e, range: t }) => {
8342
+ }, gi = ({ textbox: e, range: t }) => {
8309
8343
  if (!t) return !1;
8310
8344
  let n = e.text?.length ?? 0;
8311
8345
  return n <= 0 ? !1 : t.start <= 0 && t.end >= n;
8312
- }, hi = ({ textbox: e, styles: t, range: n }) => {
8346
+ }, _i = ({ textbox: e, styles: t, range: n }) => {
8313
8347
  if (!t || !Object.keys(t).length) return !1;
8314
8348
  let { start: r, end: i } = n;
8315
8349
  return i <= r ? !1 : (e.setSelectionStyles(t, r, i), !0);
8316
- }, gi = ({ textbox: e, range: t, property: n }) => {
8350
+ }, vi = ({ textbox: e, range: t, property: n }) => {
8317
8351
  if (!t) return;
8318
8352
  let r = e.getSelectionStyles(t.start, t.end, !0);
8319
8353
  if (r.length) return r[0]?.[n];
8320
- }, _i = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", vi = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, yi = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", bi = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), xi = class e extends _ {
8354
+ }, yi = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", bi = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, xi = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", Si = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), Ci = class e extends _ {
8321
8355
  static {
8322
8356
  this.type = "background-textbox";
8323
8357
  }
@@ -8354,7 +8388,11 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8354
8388
  ];
8355
8389
  }
8356
8390
  constructor(e, t = {}) {
8357
- super(e, t), this.backgroundOpacity = t.backgroundOpacity ?? 1, this.lineFontDefaults = t.lineFontDefaults ?? void 0, this.paddingTop = t.paddingTop ?? 0, this.paddingRight = t.paddingRight ?? 0, this.paddingBottom = t.paddingBottom ?? 0, this.paddingLeft = t.paddingLeft ?? 0, this.radiusTopLeft = t.radiusTopLeft ?? 0, this.radiusTopRight = t.radiusTopRight ?? 0, this.radiusBottomRight = t.radiusBottomRight ?? 0, this.radiusBottomLeft = t.radiusBottomLeft ?? 0, this._roundDimensions();
8391
+ if (super(e, t), this.backgroundOpacity = t.backgroundOpacity ?? 1, this.lineFontDefaults = t.lineFontDefaults ?? void 0, this.paddingTop = t.paddingTop ?? 0, this.paddingRight = t.paddingRight ?? 0, this.paddingBottom = t.paddingBottom ?? 0, this.paddingLeft = t.paddingLeft ?? 0, this.radiusTopLeft = t.radiusTopLeft ?? 0, this.radiusTopRight = t.radiusTopRight ?? 0, this.radiusBottomRight = t.radiusBottomRight ?? 0, this.radiusBottomLeft = t.radiusBottomLeft ?? 0, _n({ textbox: this })) {
8392
+ this.initDimensions(), this.dirty = !0;
8393
+ return;
8394
+ }
8395
+ this._roundDimensions();
8358
8396
  }
8359
8397
  initDimensions() {
8360
8398
  super.initDimensions(), this.shouldRoundDimensionsOnInit !== !1 && this._roundDimensions();
@@ -8389,10 +8427,12 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8389
8427
  });
8390
8428
  }
8391
8429
  toObject(e = []) {
8430
+ let t = super.toObject(e), { lineFontDefaults: n, styles: r } = hn({ textbox: this });
8392
8431
  return {
8393
- ...super.toObject(e),
8432
+ ...t,
8394
8433
  backgroundOpacity: this.backgroundOpacity,
8395
- lineFontDefaults: this.lineFontDefaults,
8434
+ lineFontDefaults: n,
8435
+ styles: C.stylesToArray(r, this.text ?? ""),
8396
8436
  paddingTop: this.paddingTop,
8397
8437
  paddingRight: this.paddingRight,
8398
8438
  paddingBottom: this.paddingBottom,
@@ -8405,53 +8445,57 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8405
8445
  }
8406
8446
  _renderBackground(t) {
8407
8447
  let n = this._getEffectiveBackgroundFill();
8408
- if (n && n) {
8409
- let r = this._getPadding(), i = this.width ?? 0, a = this.height ?? 0, o = i + r.left + r.right, s = a + r.top + r.bottom, c = this._getCornerRadii({
8410
- width: o,
8411
- height: s
8412
- }), l = this._getLeftOffset() - r.left, u = this._getTopOffset() - r.top;
8413
- t.save(), e._renderRoundedRect({
8414
- ctx: t,
8415
- height: s,
8416
- left: l,
8417
- radii: c,
8418
- top: u,
8419
- width: o
8420
- }), t.fillStyle = n, t.fill(), t.restore();
8421
- }
8448
+ if (!n) return;
8449
+ let r = this._getPadding(), i = this.width ?? 0, a = this.height ?? 0, o = i + r.left + r.right, s = a + r.top + r.bottom, c = this._getCornerRadii({
8450
+ width: o,
8451
+ height: s
8452
+ }), l = this._getLeftOffset() - r.left, u = this._getTopOffset() - r.top;
8453
+ t.save(), e._renderRoundedRect({
8454
+ ctx: t,
8455
+ height: s,
8456
+ left: l,
8457
+ radii: c,
8458
+ top: u,
8459
+ width: o
8460
+ }), t.fillStyle = n, t.fill(), t.restore();
8422
8461
  }
8423
8462
  _renderTextDecoration(e, t) {
8424
- if (!this[t] && !this.styleHas(t)) return;
8425
- let { direction: n, fontSize: r, lineHeight: i, offsets: a, width: o, _fontSizeFraction: s, _textLines: c } = this, l = this._getTopOffset(), u = this._getLeftOffset(), { path: d } = this, f = this._getWidthOfCharSpacing(), p = a[t], m = 0;
8426
- t === "linethrough" ? m = .5 : t === "overline" && (m = 1);
8427
- for (let a = 0, h = c.length; a < h; a += 1) {
8428
- let h = this.getHeightOfLine(a);
8463
+ let { direction: n, fontSize: r, lineHeight: i, offsets: a, width: o, _fontSizeFraction: s, _textLines: c } = this, l = !1;
8464
+ for (let e = 0; e < c.length; e += 1) if (this.styleHas(t, e)) {
8465
+ l = !0;
8466
+ break;
8467
+ }
8468
+ if (!this[t] && !l) return;
8469
+ let u = this._getTopOffset(), d = this._getLeftOffset(), { path: f } = this, p = this._getWidthOfCharSpacing(), m = a[t], h = 0;
8470
+ t === "linethrough" ? h = .5 : t === "overline" && (h = 1);
8471
+ for (let a = 0, l = c.length; a < l; a += 1) {
8472
+ let l = this.getHeightOfLine(a);
8429
8473
  if (!this[t] && !this.styleHas(t, a)) {
8430
- l += h;
8474
+ u += l;
8431
8475
  continue;
8432
8476
  }
8433
- let g = c[a], _ = h / i, v = this._getLineLeftOffset(a), y = 0, b = 0, x = this.getValueOfPropertyAt(a, 0, t), S = this._getDecorationColorAt(a, 0), C = this.getValueOfPropertyAt(a, 0, "textDecorationThickness"), w = x, T = S, E = C, D = l + _ * (1 - s), O = this.getHeightOfChar(a, 0), k = this.getValueOfPropertyAt(a, 0, "deltaY");
8477
+ let g = c[a], _ = l / i, v = this._getLineLeftOffset(a), y = 0, b = 0, x = this.getValueOfPropertyAt(a, 0, t), S = this._getDecorationColorAt(a, 0), C = this.getValueOfPropertyAt(a, 0, "textDecorationThickness"), w = x, T = S, E = C, D = u + _ * (1 - s), O = this.getHeightOfChar(a, 0), k = this.getValueOfPropertyAt(a, 0, "deltaY");
8434
8478
  for (let i = 0, s = g.length; i < s; i += 1) {
8435
8479
  let s = this.__charBounds[a][i];
8436
8480
  w = this.getValueOfPropertyAt(a, i, t), T = this._getDecorationColorAt(a, i), E = this.getValueOfPropertyAt(a, i, "textDecorationThickness");
8437
8481
  let c = this.getHeightOfChar(a, i), l = this.getValueOfPropertyAt(a, i, "deltaY");
8438
- if (d && w && T) {
8482
+ if (f && w && T) {
8439
8483
  let t = r * E / 1e3;
8440
- e.save(), e.fillStyle = S, e.translate(s.renderLeft, s.renderTop), e.rotate(s.angle), e.fillRect(-s.kernedWidth / 2, p * c + l - m * t, s.kernedWidth, t), e.restore();
8484
+ e.save(), e.fillStyle = S, e.translate(s.renderLeft, s.renderTop), e.rotate(s.angle), e.fillRect(-s.kernedWidth / 2, m * c + l - h * t, s.kernedWidth, t), e.restore();
8441
8485
  } else if ((w !== x || T !== S || c !== O || E !== C || l !== k) && b > 0) {
8442
- let t = r * C / 1e3, i = u + v + y;
8443
- n === "rtl" && (i = o - i - b), x && S && C && (e.fillStyle = S, e.fillRect(i, D + p * O + k - m * t, b, t)), y = s.left, b = s.width, x = w, C = E, S = T, O = c, k = l;
8486
+ let t = r * C / 1e3, i = d + v + y;
8487
+ n === "rtl" && (i = o - i - b), x && S && C && (e.fillStyle = S, e.fillRect(i, D + m * O + k - h * t, b, t)), y = s.left, b = s.width, x = w, C = E, S = T, O = c, k = l;
8444
8488
  } else b += s.kernedWidth;
8445
8489
  }
8446
- let A = u + v + y;
8490
+ let A = d + v + y;
8447
8491
  n === "rtl" && (A = o - A - b), e.fillStyle = T;
8448
8492
  let j = r * E / 1e3;
8449
- w && T && E && e.fillRect(A, D + p * O + k - m * j, b - f, j), l += h;
8493
+ w && T && E && e.fillRect(A, D + m * O + k - h * j, b - p, j), u += l;
8450
8494
  }
8451
8495
  this._removeShadow(e);
8452
8496
  }
8453
8497
  _getDecorationColorAt(e, t) {
8454
- let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = vi({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : _i({
8498
+ let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = bi({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : yi({
8455
8499
  strokeColor: i,
8456
8500
  width: r
8457
8501
  });
@@ -8467,22 +8511,22 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8467
8511
  _getCornerRadii({ width: e, height: t }) {
8468
8512
  let n = e / 2, r = t / 2, i = Math.min(n, r);
8469
8513
  return {
8470
- bottomLeft: bi({
8514
+ bottomLeft: Si({
8471
8515
  value: this.radiusBottomLeft ?? 0,
8472
8516
  min: 0,
8473
8517
  max: i
8474
8518
  }),
8475
- bottomRight: bi({
8519
+ bottomRight: Si({
8476
8520
  value: this.radiusBottomRight ?? 0,
8477
8521
  min: 0,
8478
8522
  max: i
8479
8523
  }),
8480
- topLeft: bi({
8524
+ topLeft: Si({
8481
8525
  value: this.radiusTopLeft ?? 0,
8482
8526
  min: 0,
8483
8527
  max: i
8484
8528
  }),
8485
- topRight: bi({
8529
+ topRight: Si({
8486
8530
  value: this.radiusTopRight ?? 0,
8487
8531
  min: 0,
8488
8532
  max: i
@@ -8500,41 +8544,32 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8500
8544
  _getEffectiveBackgroundFill() {
8501
8545
  let e = this.backgroundColor;
8502
8546
  if (!e) return null;
8503
- let t = bi({
8547
+ let t = Si({
8504
8548
  value: this.backgroundOpacity ?? 1,
8505
8549
  min: 0,
8506
8550
  max: 1
8507
8551
  }), r;
8508
8552
  try {
8509
8553
  r = new n(e);
8510
- } catch (t) {
8511
- return ui.emitError({
8512
- origin: "BackgroundTextbox",
8513
- method: "_getEffectiveBackgroundFill",
8514
- code: "INVALID_COLOR_VALUE",
8515
- message: `Некорректное значение цвета фона: ${e}`,
8516
- data: {
8517
- color: e,
8518
- error: t
8519
- }
8520
- }), null;
8554
+ } catch {
8555
+ return null;
8521
8556
  }
8522
8557
  return r.setAlpha(t), r.toRgba();
8523
8558
  }
8524
8559
  static _renderRoundedRect({ ctx: e, height: t, left: n, radii: r, top: i, width: a }) {
8525
- let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = bi({
8560
+ let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = Si({
8526
8561
  value: c,
8527
8562
  min: 0,
8528
8563
  max: a
8529
- }), p = bi({
8564
+ }), p = Si({
8530
8565
  value: l,
8531
8566
  min: 0,
8532
8567
  max: a
8533
- }), m = bi({
8568
+ }), m = Si({
8534
8569
  value: u,
8535
8570
  min: 0,
8536
8571
  max: a
8537
- }), h = bi({
8572
+ }), h = Si({
8538
8573
  value: d,
8539
8574
  min: 0,
8540
8575
  max: a
@@ -8545,20 +8580,20 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8545
8580
  let { width: e = 0, height: t = 0 } = this, n = Math.round(e), r = Math.round(t);
8546
8581
  n !== e && (this.width = Math.max(0, n)), r !== t && (this.height = Math.max(0, r));
8547
8582
  }
8548
- }, Si = () => {
8549
- y?.setClass && y.setClass(xi, "background-textbox");
8550
- }, Ci = ({ transform: e }) => {
8583
+ }, wi = () => {
8584
+ y?.setClass && y.setClass(Ci, "background-textbox");
8585
+ }, Ti = ({ transform: e }) => {
8551
8586
  let { corner: t = "", action: n = "" } = e;
8552
8587
  return {
8553
8588
  isCornerHandle: t === "tl" || t === "tr" || t === "bl" || t === "br" || n === "scale",
8554
8589
  isHorizontalHandle: t === "ml" || t === "mr" || n === "scaleX",
8555
8590
  isVerticalHandle: t === "mt" || t === "mb" || n === "scaleY"
8556
8591
  };
8557
- }, wi = ({ textbox: e, transform: t, appliedWidth: n }) => {
8592
+ }, Ei = ({ textbox: e, transform: t, appliedWidth: n }) => {
8558
8593
  t.scaleX = 1, t.scaleY = 1;
8559
- let { original: r } = t;
8594
+ let r = t.original;
8560
8595
  r && (r.scaleX = 1, r.scaleY = 1, r.width = n, r.height = e.height, r.left = e.left, r.top = e.top);
8561
- }, Ti = ({ textbox: e, transform: t, scenePoint: n }) => {
8596
+ }, Di = ({ textbox: e, transform: t, scenePoint: n }) => {
8562
8597
  let { x: r, y: i } = e._getTransformedDimensions();
8563
8598
  if (r <= 0 || i <= 0) return null;
8564
8599
  let a = b.getLocalPoint(t, t.originX, t.originY, n.x, n.y), o = t, s = typeof o.signX == "number" && a.x * o.signX <= 0, c = typeof o.signY == "number" && a.y * o.signY <= 0, l = Math.abs(a.x / r), u = Math.abs(a.y / i);
@@ -8568,27 +8603,27 @@ var Yr = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
8568
8603
  stepScaleX: l,
8569
8604
  stepScaleY: u
8570
8605
  };
8571
- }, Ei = 1e-4;
8572
- function Di(e) {
8606
+ }, Oi = 1e-4;
8607
+ function ki(e) {
8573
8608
  return !!e && e instanceof _;
8574
8609
  }
8575
- function Oi(e) {
8576
- if (!Di(e)) return !1;
8610
+ function Ai(e) {
8611
+ if (!ki(e)) return !1;
8577
8612
  let t = e.group;
8578
8613
  return e.shapeNodeType === "text" && t?.shapeComposite === !0;
8579
8614
  }
8580
- var ki = class {
8615
+ var ji = class {
8581
8616
  constructor({ canvas: t, canvasManager: n, persistScaledTextbox: r }) {
8582
8617
  this.handleMouseMove = (e) => {
8583
8618
  let t = this.canvas._currentTransform;
8584
8619
  if (!t) return;
8585
8620
  let { target: n } = t;
8586
- if (!Di(n) || Oi(n)) return;
8621
+ if (!ki(n) || Ai(n)) return;
8587
8622
  let r = this.scalingState.get(n);
8588
8623
  if (!r || !e.e) return;
8589
- let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = Ci({ transform: t });
8624
+ let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = Ti({ transform: t });
8590
8625
  if (!a && !o && !i) return;
8591
- let s = Ti({
8626
+ let s = Di({
8592
8627
  textbox: n,
8593
8628
  transform: t,
8594
8629
  scenePoint: this.canvas.getScenePoint(e.e)
@@ -8611,20 +8646,20 @@ var ki = class {
8611
8646
  }, j = r.lastAllowedScaleX, M = r.lastAllowedScaleY;
8612
8647
  if (i) {
8613
8648
  let e = Math.max(r.minimumProportionalScale, r.lastAllowedScaleX * Math.sqrt(u * d)), t = c || l ? r.minimumProportionalScale : e;
8614
- if (Math.abs(t - r.lastAllowedScaleX) <= Ei) return;
8649
+ if (Math.abs(t - r.lastAllowedScaleX) <= Oi) return;
8615
8650
  j = t, M = t;
8616
8651
  } else {
8617
8652
  if (a) {
8618
8653
  let e = r.lastAllowedScaleX * u, t = c ? r.minimumWidthScale : Math.max(r.minimumWidthScale, e);
8619
- Math.abs(t - r.lastAllowedScaleX) > Ei && (j = t);
8654
+ Math.abs(t - r.lastAllowedScaleX) > Oi && (j = t);
8620
8655
  }
8621
8656
  if (o) {
8622
8657
  let e = r.lastAllowedScaleY * d, t = l ? r.minimumFontScale : Math.max(r.minimumFontScale, e);
8623
- Math.abs(t - r.lastAllowedScaleY) > Ei && (M = t);
8658
+ Math.abs(t - r.lastAllowedScaleY) > Oi && (M = t);
8624
8659
  }
8625
- if (Math.abs(j - r.lastAllowedScaleX) <= Ei && Math.abs(M - r.lastAllowedScaleY) <= Ei) return;
8660
+ if (Math.abs(j - r.lastAllowedScaleX) <= Oi && Math.abs(M - r.lastAllowedScaleY) <= Oi) return;
8626
8661
  }
8627
- let { appliedWidth: N, dimensionsRounded: P } = On({
8662
+ let { appliedWidth: N, dimensionsRounded: P } = An({
8628
8663
  textbox: n,
8629
8664
  canvasManager: this.canvasManager,
8630
8665
  base: r.startBase,
@@ -8638,7 +8673,7 @@ var ki = class {
8638
8673
  shouldDisableAutoExpandOnHorizontalChange: a,
8639
8674
  shouldRoundDimensions: !i
8640
8675
  });
8641
- wi({
8676
+ Ei({
8642
8677
  textbox: n,
8643
8678
  transform: t,
8644
8679
  appliedWidth: N
@@ -8659,12 +8694,12 @@ var ki = class {
8659
8694
  }), this.canvas.requestRenderAll();
8660
8695
  }, this.handleObjectScaling = (t) => {
8661
8696
  let { target: n, transform: r } = t;
8662
- if (n instanceof e || !Di(n) || Oi(n) || !r) return;
8697
+ if (n instanceof e || !ki(n) || Ai(n) || !r) return;
8663
8698
  n.isScaling = !0;
8664
8699
  let i = this._ensureScalingState({
8665
8700
  textbox: n,
8666
8701
  transform: r
8667
- }), { startBase: a } = i, { width: o, fontSize: s } = a, { isCornerHandle: c, isHorizontalHandle: l, isVerticalHandle: u } = Ci({ transform: r }), d = r.corner ?? "", f = c || u;
8702
+ }), { startBase: a } = i, { width: o, fontSize: s } = a, { isCornerHandle: c, isHorizontalHandle: l, isVerticalHandle: u } = Ti({ transform: r }), d = r.corner ?? "", f = c || u;
8668
8703
  if (!l && !u && !c) return;
8669
8704
  let p = n.scaleX ?? r.scaleX ?? 1, m = n.scaleY ?? r.scaleY ?? 1, h = Math.abs(p) || 1, g = Math.abs(m) || 1, _ = r.originX ?? n.originX ?? "center", v = r.originY ?? n.originY ?? "center", y = this.canvasManager.getObjectPlacement({
8670
8705
  object: n,
@@ -8679,7 +8714,7 @@ var ki = class {
8679
8714
  N = e, P = e;
8680
8715
  }
8681
8716
  } else l && (N = Math.max(i.minimumWidthScale, i.lastAllowedScaleX * h)), u && (P = Math.max(i.minimumFontScale, i.lastAllowedScaleY * g));
8682
- let { appliedWidth: ee, dimensionsRounded: te } = On({
8717
+ let { appliedWidth: ee, dimensionsRounded: te } = An({
8683
8718
  textbox: n,
8684
8719
  canvasManager: this.canvasManager,
8685
8720
  base: a,
@@ -8693,7 +8728,7 @@ var ki = class {
8693
8728
  shouldDisableAutoExpandOnHorizontalChange: l,
8694
8729
  shouldRoundDimensions: !c
8695
8730
  });
8696
- wi({
8731
+ Ei({
8697
8732
  textbox: n,
8698
8733
  transform: r,
8699
8734
  appliedWidth: ee
@@ -8726,7 +8761,7 @@ var ki = class {
8726
8761
  let { target: n } = t;
8727
8762
  if (n instanceof e) {
8728
8763
  let t = n.getObjects();
8729
- if (!t.some((e) => Di(e))) return;
8764
+ if (!t.some((e) => ki(e))) return;
8730
8765
  let { scaleX: r = 1, scaleY: i = 1 } = n;
8731
8766
  if (Math.abs(r - 1) < .01 && Math.abs(i - 1) < .01) return;
8732
8767
  this.canvas.discardActiveObject(), t.forEach((e) => {
@@ -8736,7 +8771,7 @@ var ki = class {
8736
8771
  this.canvas.setActiveObject(a), this.canvas.requestRenderAll();
8737
8772
  return;
8738
8773
  }
8739
- if (!Di(n) || Oi(n)) return;
8774
+ if (!ki(n) || Ai(n)) return;
8740
8775
  n.isScaling = !1;
8741
8776
  let r = this.scalingState.get(n);
8742
8777
  if (this.scalingState.delete(n), !r?.hasScalingChange) return;
@@ -8761,11 +8796,11 @@ var ki = class {
8761
8796
  }, this.canvas = t, this.canvasManager = n, this.persistScaledTextbox = r, this.scalingState = /* @__PURE__ */ new WeakMap();
8762
8797
  }
8763
8798
  commitStandaloneTextScale({ target: e, shouldDisableAutoExpandOnHorizontalChange: t = !1 }) {
8764
- if (!Di(e) || Oi(e)) return !1;
8799
+ if (!ki(e) || Ai(e)) return !1;
8765
8800
  let n = Math.abs(e.scaleX ?? 1) || 1, r = Math.abs(e.scaleY ?? 1) || 1;
8766
8801
  if (!(Math.abs(n - 1) > .01 || Math.abs(r - 1) > .01)) return !1;
8767
- let i = Tn({ textbox: e }), a = this.canvasManager.getObjectPlacement({ object: e });
8768
- return On({
8802
+ let i = Dn({ textbox: e }), a = this.canvasManager.getObjectPlacement({ object: e });
8803
+ return An({
8769
8804
  textbox: e,
8770
8805
  canvasManager: this.canvasManager,
8771
8806
  base: i,
@@ -8781,7 +8816,7 @@ var ki = class {
8781
8816
  _ensureScalingState({ textbox: e, transform: t }) {
8782
8817
  let n = this.scalingState.get(e);
8783
8818
  if (!n) {
8784
- let r = Tn({ textbox: e }), i = this.canvasManager.getObjectPlacement({ object: e }), a = En({ base: r }), o = t.original?.originX ?? t.originX ?? e.originX ?? "center", s = t.original?.originY ?? t.originY ?? e.originY ?? "center";
8819
+ let r = Dn({ textbox: e }), i = this.canvasManager.getObjectPlacement({ object: e }), a = On({ base: r }), o = t.original?.originX ?? t.originX ?? e.originX ?? "center", s = t.original?.originY ?? t.originY ?? e.originY ?? "center";
8785
8820
  n = {
8786
8821
  startBase: r,
8787
8822
  startObjectPlacement: i,
@@ -8835,7 +8870,7 @@ var ki = class {
8835
8870
  originY: a
8836
8871
  });
8837
8872
  }
8838
- }, Ai = class e {
8873
+ }, Mi = class e {
8839
8874
  constructor({ editor: t }) {
8840
8875
  this._handleTextEditingEntered = (t) => {
8841
8876
  this.isTextEditingActive = !0;
@@ -8848,7 +8883,7 @@ var ki = class {
8848
8883
  if (!e._isTextbox(n)) return;
8849
8884
  let r = e._isShapeOwnedTextbox(n), { text: i = "", uppercase: a, autoExpand: o } = n, s = !!a, c = o !== !1, l = i.toLocaleLowerCase(), u = r ? null : this.editingPlacementState?.get(n) ?? this.editor.canvasManager.getObjectPlacement({ object: n });
8850
8885
  if (s) {
8851
- let e = yi({ value: l });
8886
+ let e = xi({ value: l });
8852
8887
  e !== i && n.set({ text: e }), n.textCaseRaw = l;
8853
8888
  } else n.textCaseRaw = i;
8854
8889
  if (!r && o === void 0 && (n.autoExpand = !0), r) {
@@ -8866,7 +8901,7 @@ var ki = class {
8866
8901
  let r = e._isShapeOwnedTextbox(n);
8867
8902
  this.editingPlacementState?.delete(n), delete n.__lineDefaultsPrevText;
8868
8903
  let i = n.text ?? "";
8869
- n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (wn({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
8904
+ n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (En({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
8870
8905
  lockMovementX: !1,
8871
8906
  lockMovementY: !1
8872
8907
  }));
@@ -8893,7 +8928,7 @@ var ki = class {
8893
8928
  transform: r,
8894
8929
  event: i ?? null
8895
8930
  });
8896
- }, this.editor = t, this.canvas = t.canvas, this.fonts = t.options.fonts ?? [], this.scalingController = new ki({
8931
+ }, this.editor = t, this.canvas = t.canvas, this.fonts = t.options.fonts ?? [], this.scalingController = new ji({
8897
8932
  canvas: t.canvas,
8898
8933
  canvasManager: t.canvasManager,
8899
8934
  persistScaledTextbox: ({ target: e, style: t }) => {
@@ -8902,12 +8937,12 @@ var ki = class {
8902
8937
  style: t
8903
8938
  });
8904
8939
  }
8905
- }), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.isTextEditingActive = !1, this._bindEvents(), Si();
8940
+ }), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.isTextEditingActive = !1, this._bindEvents(), wi();
8906
8941
  }
8907
8942
  addText({ id: t = `background-textbox-${D()}`, text: n = "Новый текст", autoExpand: r = !0, fontFamily: i, fontSize: a = 48, bold: o = !1, italic: s = !1, underline: c = !1, uppercase: l = !1, strikethrough: u = !1, align: d = "left", color: f = "#000000", strokeColor: p, strokeWidth: m = 0, opacity: h = 1, backgroundColor: g, backgroundOpacity: _ = 1, paddingTop: v = 0, paddingRight: y = 0, paddingBottom: b = 0, paddingLeft: x = 0, radiusTopLeft: S = 0, radiusTopRight: C = 0, radiusBottomRight: w = 0, radiusBottomLeft: T = 0, ...E } = {}, { withoutSelection: O = !1, withoutSave: k = !1, withoutAdding: A = !1, emitLifecycleEvents: j = !0 } = {}) {
8908
8943
  let { canvasManager: M, historyManager: N } = this.editor, { canvas: P } = this;
8909
8944
  N.suspendHistory();
8910
- let F = i ?? this._getDefaultFontFamily(), I = vi({ width: m }), ee = _i({
8945
+ let F = i ?? this._getDefaultFontFamily(), I = bi({ width: m }), ee = yi({
8911
8946
  strokeColor: p,
8912
8947
  width: I
8913
8948
  }), te = {
@@ -8936,14 +8971,14 @@ var ki = class {
8936
8971
  radiusBottomRight: w,
8937
8972
  radiusBottomLeft: T,
8938
8973
  ...E
8939
- }, L = new xi(n, te), ne = r !== !1;
8974
+ }, L = new Ci(n, te), ne = r !== !1;
8940
8975
  L.autoExpand = ne;
8941
8976
  let re = E.left !== void 0 || E.top !== void 0;
8942
8977
  if (L.textCaseRaw = L.text ?? "", l) {
8943
- let e = yi({ value: L.textCaseRaw });
8978
+ let e = xi({ value: L.textCaseRaw });
8944
8979
  e !== L.text && L.set({ text: e });
8945
8980
  }
8946
- wn({ textbox: L }) && (L.dirty = !0);
8981
+ En({ textbox: L }) && (L.dirty = !0);
8947
8982
  let R;
8948
8983
  re && (R = M.resolveObjectPlacement({
8949
8984
  object: L,
@@ -8990,38 +9025,38 @@ var ki = class {
8990
9025
  top: te,
8991
9026
  originX: L,
8992
9027
  originY: ne
8993
- }), z = a === void 0 ? fi({ textbox: s }) : Xt({
9028
+ }), z = a === void 0 ? mi({ textbox: s }) : Xt({
8994
9029
  text: c,
8995
9030
  range: a
8996
9031
  }), B = z ? Zt({
8997
9032
  textbox: s,
8998
9033
  range: z
8999
- }) : null, V = {}, H = {}, U = {}, ae, W, G, oe, se = mi({
9034
+ }) : null, V = {}, H = {}, U = {}, ae, W, G, oe, se = gi({
9000
9035
  textbox: s,
9001
9036
  range: z
9002
- }), ce = mi({
9037
+ }), ce = gi({
9003
9038
  textbox: s,
9004
9039
  range: B
9005
9040
  }), le = !z || se, ue = le || ce, de = !z;
9006
9041
  if (h !== void 0 && (B && (H.fontFamily = h), ue && (R.fontFamily = h, de && (U.fontFamily = h))), g !== void 0 && (B && (H.fontSize = g), ue && (R.fontSize = g, de && (U.fontSize = g))), _ !== void 0 && (ae = _ ? "bold" : "normal", z && (V.fontWeight = ae), le && (R.fontWeight = ae, de && (U.fontWeight = ae))), v !== void 0 && (W = v ? "italic" : "normal", z && (V.fontStyle = W), le && (R.fontStyle = W, de && (U.fontStyle = W))), y !== void 0 && (z && (V.underline = y), le && (R.underline = y, de && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), le && (R.linethrough = x, de && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), le && (R.fill = C, de && (U.fill = C))), w !== void 0 || T !== void 0) {
9007
- let e = z ? gi({
9042
+ let e = z ? vi({
9008
9043
  textbox: s,
9009
9044
  range: z,
9010
9045
  property: "strokeWidth"
9011
- }) : void 0, t = z ? gi({
9046
+ }) : void 0, t = z ? vi({
9012
9047
  textbox: s,
9013
9048
  range: z,
9014
9049
  property: "stroke"
9015
- }) : void 0;
9016
- oe = vi({ width: T ?? e ?? s.strokeWidth ?? 0 }), G = _i({
9017
- strokeColor: w ?? t ?? s.stroke ?? void 0,
9050
+ }) : void 0, n = typeof e == "number" ? e : void 0, r = typeof t == "string" ? t : void 0, i = typeof s.stroke == "string" ? s.stroke : void 0;
9051
+ oe = bi({ width: T ?? n ?? s.strokeWidth ?? 0 }), G = yi({
9052
+ strokeColor: w ?? r ?? i,
9018
9053
  width: oe
9019
9054
  }), z && (V.stroke = G, V.strokeWidth = oe), le && (R.stroke = G, R.strokeWidth = oe, de && (U.stroke = G, U.strokeWidth = oe));
9020
9055
  }
9021
9056
  E !== void 0 && (R.opacity = E), D !== void 0 && (R.backgroundColor = D), O !== void 0 && (R.backgroundOpacity = O), k !== void 0 && (R.paddingTop = k), A !== void 0 && (R.paddingRight = A), j !== void 0 && (R.paddingBottom = j), M !== void 0 && (R.paddingLeft = M), N !== void 0 && (R.radiusTopLeft = N), P !== void 0 && (R.radiusTopRight = P), F !== void 0 && (R.radiusBottomRight = F), I !== void 0 && (R.radiusBottomLeft = I);
9022
9057
  let fe = s.textCaseRaw ?? c, pe = !!s.uppercase, me = p !== void 0, he = me ? p ?? "" : fe, ge = b ?? pe, _e = ge !== pe;
9023
- me || _e ? (R.text = ge ? yi({ value: he }) : he, s.textCaseRaw = he) : s.textCaseRaw === void 0 && (s.textCaseRaw = fe);
9024
- let ve = Cn({ stylesList: [
9058
+ me || _e ? (R.text = ge ? xi({ value: he }) : he, s.textCaseRaw = he) : s.textCaseRaw === void 0 && (s.textCaseRaw = fe);
9059
+ let ve = Tn({ stylesList: [
9025
9060
  R,
9026
9061
  V,
9027
9062
  H,
@@ -9037,32 +9072,32 @@ var ki = class {
9037
9072
  j,
9038
9073
  M
9039
9074
  ], xe = ye.some((e) => e !== void 0), Se = be.some((e) => e !== void 0), Ce = Object.prototype.hasOwnProperty.call(R, "width"), we = Se && !xe && !me && !_e && !ve && !Ce, Te = null;
9040
- we && (Te = bn({
9075
+ we && (Te = Sn({
9041
9076
  textbox: s,
9042
9077
  originX: ie.originX,
9043
9078
  originY: ie.originY
9044
9079
  })), s.uppercase = ge, s.set(R);
9045
9080
  let Ee = !1;
9046
9081
  if (z) {
9047
- let e = hi({
9082
+ let e = _i({
9048
9083
  textbox: s,
9049
9084
  styles: V,
9050
9085
  range: z
9051
- }), t = B ? hi({
9086
+ }), t = B ? _i({
9052
9087
  textbox: s,
9053
9088
  styles: H,
9054
9089
  range: B
9055
9090
  }) : !1;
9056
9091
  Ee = e || t;
9057
9092
  } else if (Object.keys(U).length) {
9058
- let e = pi({ textbox: s });
9059
- e && (Ee = hi({
9093
+ let e = hi({ textbox: s });
9094
+ e && (Ee = _i({
9060
9095
  textbox: s,
9061
9096
  styles: U,
9062
9097
  range: e
9063
9098
  }));
9064
9099
  }
9065
- let De = Ee && Cn({ stylesList: [
9100
+ let De = Ee && Tn({ stylesList: [
9066
9101
  V,
9067
9102
  H,
9068
9103
  U
@@ -9189,7 +9224,7 @@ var ki = class {
9189
9224
  clampToMontage: r
9190
9225
  }));
9191
9226
  let a = !1;
9192
- i || (a = wn({ textbox: e }));
9227
+ i || (a = En({ textbox: e }));
9193
9228
  let o = !1;
9194
9229
  return !i && t && (this.editor.canvasManager.applyObjectPlacement({
9195
9230
  object: e,
@@ -9197,7 +9232,7 @@ var ki = class {
9197
9232
  }), o = !0), (i || a) && (e.dirty = !0), (i || a || o) && e.setCoords(), i || a;
9198
9233
  }
9199
9234
  _restoreTextboxContentPlacement({ textbox: e, contentPlacement: t }) {
9200
- let n = bn({
9235
+ let n = Sn({
9201
9236
  textbox: e,
9202
9237
  originX: t.originX,
9203
9238
  originY: t.originY
@@ -9215,7 +9250,7 @@ var ki = class {
9215
9250
  e.on("object:scaling", this.scalingController.handleObjectScaling), e.on("object:resizing", this._handleObjectResizing), e.on("object:modified", this.scalingController.handleObjectModified), e.on("mouse:move", this.scalingController.handleMouseMove), e.on("text:editing:entered", this._handleTextEditingEntered), e.on("text:editing:exited", this._handleTextEditingExited), e.on("text:changed", this._handleTextChanged);
9216
9251
  }
9217
9252
  _syncLineFontDefaultsOnTextChanged({ textbox: e }) {
9218
- let t = e.text ?? "", n = hn({
9253
+ let t = e.text ?? "", n = gn({
9219
9254
  textbox: e,
9220
9255
  previousText: e.__lineDefaultsPrevText ?? t,
9221
9256
  currentText: t
@@ -9233,16 +9268,16 @@ var ki = class {
9233
9268
  if (!Number.isFinite(f) || f <= 0) return !1;
9234
9269
  let p = a.split("\n").length, m = !1;
9235
9270
  Math.abs((e.width ?? 0) - f) > .01 && (e.set({ width: f }), m = !0), e.initDimensions();
9236
- let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(vn({
9271
+ let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(bn({
9237
9272
  textbox: e,
9238
9273
  text: a
9239
9274
  })), v = Math.min(e.minWidth ?? 1, f), y = Math.min(f, Math.max(_, v));
9240
- g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), wn({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
9275
+ g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), En({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
9241
9276
  object: e,
9242
9277
  placement: t
9243
9278
  });
9244
9279
  let b = !1;
9245
- return n && (b = xn({
9280
+ return n && (b = Cn({
9246
9281
  textbox: e,
9247
9282
  montageLeft: o,
9248
9283
  montageRight: o + s
@@ -9300,7 +9335,7 @@ var ki = class {
9300
9335
  _getDefaultFontFamily() {
9301
9336
  return this.fonts[0]?.family ?? "Arial";
9302
9337
  }
9303
- }, ji = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Mi = (e) => {
9338
+ }, Ni = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Pi = (e) => {
9304
9339
  if (!e || typeof e != "object") return null;
9305
9340
  let { type: t, coords: n, colorStops: r } = e, i = Array.isArray(r) ? r : [], a = i[0], o = i[i.length - 1], s = typeof a?.color == "string" ? a.color : void 0, c = typeof o?.color == "string" ? o.color : s, l = typeof a?.offset == "number" ? a.offset * 100 : void 0, u = typeof o?.offset == "number" ? o.offset * 100 : void 0, d = i.map((e) => ({
9306
9341
  color: typeof e.color == "string" ? e.color : "#000000",
@@ -9311,7 +9346,7 @@ var ki = class {
9311
9346
  let { x1: e, y1: t, x2: r, y2: i } = n;
9312
9347
  if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
9313
9348
  type: "linear",
9314
- angle: ji({
9349
+ angle: Ni({
9315
9350
  x1: e,
9316
9351
  y1: t,
9317
9352
  x2: r,
@@ -9339,7 +9374,7 @@ var ki = class {
9339
9374
  };
9340
9375
  }
9341
9376
  return null;
9342
- }, Ni = "_templateAnchorX", Pi = "_templateAnchorY", Fi = class t {
9377
+ }, Fi = "_templateAnchorX", Ii = "_templateAnchorY", Li = class t {
9343
9378
  constructor({ editor: e }) {
9344
9379
  this.editor = e;
9345
9380
  }
@@ -9348,7 +9383,7 @@ var ki = class {
9348
9383
  if (!p.length) return s.emitWarning({
9349
9384
  origin: "TemplateManager",
9350
9385
  method: "serializeSelection",
9351
- code: li.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
9386
+ code: di.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
9352
9387
  message: "Нет объектов для сериализации шаблона"
9353
9388
  }), null;
9354
9389
  let m = t._getBounds(o), h = t._getMontageSize({
@@ -9377,14 +9412,14 @@ var ki = class {
9377
9412
  if (!l?.length) return a.emitWarning({
9378
9413
  origin: "TemplateManager",
9379
9414
  method: "applyTemplate",
9380
- code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9415
+ code: di.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9381
9416
  message: "Шаблон не содержит объектов"
9382
9417
  }), null;
9383
9418
  let f = t._getBounds(r);
9384
9419
  if (!f) return a.emitWarning({
9385
9420
  origin: "TemplateManager",
9386
9421
  method: "applyTemplate",
9387
- code: li.TEMPLATE_MANAGER.INVALID_TARGET,
9422
+ code: di.TEMPLATE_MANAGER.INVALID_TARGET,
9388
9423
  message: "Не удалось определить границы монтажной области"
9389
9424
  }), null;
9390
9425
  let p = t._getMontageSize({
@@ -9403,7 +9438,7 @@ var ki = class {
9403
9438
  if (!r.length) return a.emitWarning({
9404
9439
  origin: "TemplateManager",
9405
9440
  method: "applyTemplate",
9406
- code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9441
+ code: di.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9407
9442
  message: "Не удалось создать объекты шаблона"
9408
9443
  }), null;
9409
9444
  let { backgroundObject: i, contentObjects: u } = t._extractBackgroundObject(r);
@@ -9441,7 +9476,7 @@ var ki = class {
9441
9476
  return a.emitError({
9442
9477
  origin: "TemplateManager",
9443
9478
  method: "applyTemplate",
9444
- code: li.TEMPLATE_MANAGER.APPLY_FAILED,
9479
+ code: di.TEMPLATE_MANAGER.APPLY_FAILED,
9445
9480
  message: "Ошибка применения шаблона",
9446
9481
  data: {
9447
9482
  templateId: d,
@@ -9595,8 +9630,8 @@ var ki = class {
9595
9630
  baseHeight: a,
9596
9631
  scale: n,
9597
9632
  useRelativePositions: o,
9598
- anchorX: t._resolveAnchor(s, Ni),
9599
- anchorY: t._resolveAnchor(s, Pi)
9633
+ anchorX: t._resolveAnchor(s, Fi),
9634
+ anchorY: t._resolveAnchor(s, Ii)
9600
9635
  })
9601
9636
  }), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
9602
9637
  e.set({
@@ -9610,7 +9645,7 @@ var ki = class {
9610
9645
  originX: _,
9611
9646
  originY: v
9612
9647
  }
9613
- }), delete s[Ni], delete s[Pi];
9648
+ }), delete s[Fi], delete s[Ii];
9614
9649
  }
9615
9650
  static _getPositioningBounds({ bounds: e, baseWidth: n, baseHeight: r, scale: i, useRelativePositions: a, anchorX: o, anchorY: s }) {
9616
9651
  if (!a) return e;
@@ -9674,7 +9709,7 @@ var ki = class {
9674
9709
  });
9675
9710
  if (!i || !s || !o) return;
9676
9711
  e.setCoords();
9677
- let c = e, l = t._resolveAnchor(c, Ni), u = typeof c.left == "number" ? c.left : null, d = e.originX ?? "center", f = e.originY ?? "center", p = e.getPointByOrigin(d, f), m = e.getBoundingRect(!1, !0), h = m.left + m.width;
9712
+ let c = e, l = t._resolveAnchor(c, Fi), u = typeof c.left == "number" ? c.left : null, d = e.originX ?? "center", f = e.originY ?? "center", p = e.getPointByOrigin(d, f), m = e.getBoundingRect(!1, !0), h = m.left + m.width;
9678
9713
  e.set("width", i), e.initDimensions();
9679
9714
  let g = t._getLongestLineWidth({
9680
9715
  textbox: e,
@@ -9703,10 +9738,10 @@ var ki = class {
9703
9738
  x: (p.left - o) / d,
9704
9739
  y: (p.top - s) / f
9705
9740
  }, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
9706
- return a[Ni] = t._detectAnchor({
9741
+ return a[Fi] = t._detectAnchor({
9707
9742
  start: h,
9708
9743
  end: _
9709
- }), a[Pi] = t._detectAnchor({
9744
+ }), a[Ii] = t._detectAnchor({
9710
9745
  start: g,
9711
9746
  end: v
9712
9747
  }), a.left = m.x, a.top = m.y, a;
@@ -9731,7 +9766,7 @@ var ki = class {
9731
9766
  withoutSave: !0
9732
9767
  }), !0;
9733
9768
  if (a === "gradient") {
9734
- let e = Mi(r);
9769
+ let e = Pi(r);
9735
9770
  if (e) return n.setGradientBackground({
9736
9771
  gradient: e,
9737
9772
  customData: o,
@@ -9752,7 +9787,7 @@ var ki = class {
9752
9787
  r.emitWarning({
9753
9788
  origin: "TemplateManager",
9754
9789
  method: "applyTemplate",
9755
- code: li.TEMPLATE_MANAGER.APPLY_FAILED,
9790
+ code: di.TEMPLATE_MANAGER.APPLY_FAILED,
9756
9791
  message: "Не удалось применить фон из шаблона",
9757
9792
  data: e
9758
9793
  });
@@ -9788,29 +9823,29 @@ var ki = class {
9788
9823
  enlivenObjectEnlivables(e) {
9789
9824
  return C.enlivenObjectEnlivables(e);
9790
9825
  }
9791
- }, Ii = "#3D8BF4", Li = .5, Ri = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, zi = ({ firstDistance: e, secondDistance: t }) => {
9792
- let n = Ri({ distance: e }), r = Ri({ distance: t });
9826
+ }, Ri = "#3D8BF4", zi = .5, Bi = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, Vi = ({ firstDistance: e, secondDistance: t }) => {
9827
+ let n = Bi({ distance: e }), r = Bi({ distance: t });
9793
9828
  return {
9794
9829
  firstDisplayDistance: n,
9795
9830
  secondDisplayDistance: r,
9796
9831
  displayDistanceDiff: Math.abs(n - r),
9797
9832
  commonDisplayDistance: Math.max(n, r)
9798
9833
  };
9799
- }, Bi = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Vi = ({ step: e }) => {
9834
+ }, Hi = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), Ui = ({ step: e }) => {
9800
9835
  let t = Math.abs(e).toString(), n = t.indexOf(".");
9801
9836
  return n === -1 ? 0 : t.slice(n + 1).length;
9802
- }, Hi = ({ value: e, step: t }) => {
9837
+ }, Wi = ({ value: e, step: t }) => {
9803
9838
  if (t === 0) return e;
9804
- let n = Vi({ step: t }), r = Math.round(e / t) * t;
9839
+ let n = Ui({ step: t }), r = Math.round(e / t) * t;
9805
9840
  return Number(r.toFixed(n));
9806
- }, Ui = ({ value: e, step: t }) => {
9841
+ }, Gi = ({ value: e, step: t }) => {
9807
9842
  if (t === 0) return !0;
9808
- let n = Hi({
9843
+ let n = Wi({
9809
9844
  value: e,
9810
9845
  step: t
9811
- }), r = 10 ** -(Vi({ step: t }) + 4);
9846
+ }), r = 10 ** -(Ui({ step: t }) + 4);
9812
9847
  return Math.abs(n - e) <= r;
9813
- }, Wi = ({ bounds: e, axis: t }) => {
9848
+ }, Ki = ({ bounds: e, axis: t }) => {
9814
9849
  let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
9815
9850
  return t === "vertical" ? {
9816
9851
  start: i,
@@ -9819,7 +9854,7 @@ var ki = class {
9819
9854
  start: n,
9820
9855
  end: r
9821
9856
  };
9822
- }, Gi = ({ items: e, axis: t }) => {
9857
+ }, qi = ({ items: e, axis: t }) => {
9823
9858
  for (let n = 1; n < e.length; n += 1) {
9824
9859
  let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
9825
9860
  for (; o >= 0;) {
@@ -9829,10 +9864,10 @@ var ki = class {
9829
9864
  }
9830
9865
  e[o + 1] = r;
9831
9866
  }
9832
- }, Ki = ({ items: e, index: t, axis: n, direction: r }) => {
9867
+ }, Ji = ({ items: e, index: t, axis: n, direction: r }) => {
9833
9868
  let i = e[t];
9834
9869
  if (!i) return null;
9835
- let { bounds: a } = i, { start: o, end: s } = Wi({
9870
+ let { bounds: a } = i, { start: o, end: s } = Ki({
9836
9871
  bounds: a,
9837
9872
  axis: n
9838
9873
  });
@@ -9840,7 +9875,7 @@ var ki = class {
9840
9875
  for (let r = t - 1; r >= 0; --r) {
9841
9876
  let t = e[r];
9842
9877
  if (!t) continue;
9843
- let { bounds: i } = t, { end: a } = Wi({
9878
+ let { bounds: i } = t, { end: a } = Ki({
9844
9879
  bounds: i,
9845
9880
  axis: n
9846
9881
  });
@@ -9851,26 +9886,26 @@ var ki = class {
9851
9886
  for (let r = t + 1; r < e.length; r += 1) {
9852
9887
  let t = e[r];
9853
9888
  if (!t) continue;
9854
- let { bounds: i } = t, { start: a } = Wi({
9889
+ let { bounds: i } = t, { start: a } = Ki({
9855
9890
  bounds: i,
9856
9891
  axis: n
9857
9892
  });
9858
9893
  if (a - s >= 0) return r;
9859
9894
  }
9860
9895
  return null;
9861
- }, qi = ({ items: e }) => {
9896
+ }, Yi = ({ items: e }) => {
9862
9897
  for (let t = 0; t < e.length; t += 1) {
9863
9898
  let { isActive: n } = e[t];
9864
9899
  if (n) return t;
9865
9900
  }
9866
9901
  return -1;
9867
- }, Ji = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
9902
+ }, Xi = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
9868
9903
  let i = Math.min(t, n), a = Math.max(t, n);
9869
9904
  return e >= i - r && e <= a + r;
9870
- }, Yi = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Xi = ({ baseOption: e, candidateOption: t }) => {
9905
+ }, Zi = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, Qi = ({ baseOption: e, candidateOption: t }) => {
9871
9906
  let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
9872
9907
  return n === i && r === a;
9873
- }, Zi = ({ options: e }) => {
9908
+ }, $i = ({ options: e }) => {
9874
9909
  let t = e[0];
9875
9910
  for (let n = 1; n < e.length; n += 1) {
9876
9911
  let r = e[n];
@@ -9881,11 +9916,11 @@ var ki = class {
9881
9916
  r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
9882
9917
  }
9883
9918
  return t;
9884
- }, Qi = ({ currentOption: e, nextOption: t }) => {
9919
+ }, ea = ({ currentOption: e, nextOption: t }) => {
9885
9920
  if (!e) return !0;
9886
9921
  let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
9887
9922
  return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
9888
- }, $i = ({ options: e }) => {
9923
+ }, ta = ({ options: e }) => {
9889
9924
  let t = [], n = null, r = null;
9890
9925
  for (let i of e) {
9891
9926
  let { kind: e, side: a } = i;
@@ -9893,18 +9928,18 @@ var ki = class {
9893
9928
  t.push(i);
9894
9929
  continue;
9895
9930
  }
9896
- a === "before" && Qi({
9931
+ a === "before" && ea({
9897
9932
  currentOption: n,
9898
9933
  nextOption: i
9899
- }) && (n = i), a === "after" && Qi({
9934
+ }) && (n = i), a === "after" && ea({
9900
9935
  currentOption: r,
9901
9936
  nextOption: i
9902
9937
  }) && (r = i);
9903
9938
  }
9904
9939
  return n && t.push(n), r && t.push(r), t;
9905
- }, ea = ({ options: e, side: t, baseOption: n }) => {
9940
+ }, na = ({ options: e, side: t, baseOption: n }) => {
9906
9941
  let r = null;
9907
- for (let i of e) if (i.side === t && Xi({
9942
+ for (let i of e) if (i.side === t && Qi({
9908
9943
  baseOption: n,
9909
9944
  candidateOption: i
9910
9945
  })) {
@@ -9915,63 +9950,63 @@ var ki = class {
9915
9950
  !r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
9916
9951
  }
9917
9952
  return r;
9918
- }, ta = ({ option: e }) => {
9953
+ }, ra = ({ option: e }) => {
9919
9954
  let { side: t, kind: n, guide: { distance: r } } = e;
9920
9955
  return {
9921
9956
  side: t,
9922
9957
  kind: n,
9923
9958
  distance: r
9924
9959
  };
9925
- }, na = ({ option: e, context: t }) => {
9960
+ }, ia = ({ option: e, context: t }) => {
9926
9961
  let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
9927
9962
  return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
9928
- }, ra = ({ options: e, context: t }) => {
9963
+ }, aa = ({ options: e, context: t }) => {
9929
9964
  if (!t) return null;
9930
- for (let n of e) if (na({
9965
+ for (let n of e) if (ia({
9931
9966
  option: n,
9932
9967
  context: t
9933
9968
  })) return n;
9934
9969
  return null;
9935
- }, ia = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
9936
- let i = ra({
9970
+ }, oa = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
9971
+ let i = aa({
9937
9972
  options: e,
9938
9973
  context: n
9939
9974
  });
9940
9975
  if (!i) return t;
9941
9976
  let a = Math.max(0, r);
9942
9977
  return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
9943
- }, aa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
9978
+ }, sa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
9944
9979
  let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = n, u = `${r}:${i}:${a}:${o}:${s}:${c}:${l}`;
9945
9980
  t.has(u) || (t.add(u), e.push(n));
9946
- }, oa = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
9981
+ }, ca = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
9947
9982
  if (!e.length) return {
9948
9983
  delta: 0,
9949
9984
  guides: [],
9950
9985
  context: null
9951
9986
  };
9952
- let r = $i({ options: e }), i = [];
9987
+ let r = ta({ options: e }), i = [];
9953
9988
  for (let e of r) e.kind === "reference" && i.push(e);
9954
- let a = i.length > 0, o = a ? i : r, s = ia({
9989
+ let a = i.length > 0, o = a ? i : r, s = oa({
9955
9990
  options: o,
9956
- bestOption: Zi({ options: o }),
9991
+ bestOption: $i({ options: o }),
9957
9992
  previousContext: t,
9958
9993
  switchDistance: n
9959
- }), c = ea({
9994
+ }), c = na({
9960
9995
  options: o,
9961
9996
  side: "before",
9962
9997
  baseOption: s
9963
- }), l = ea({
9998
+ }), l = na({
9964
9999
  options: o,
9965
10000
  side: "after",
9966
10001
  baseOption: s
9967
- }), u = ea({
10002
+ }), u = na({
9968
10003
  options: a ? r : o,
9969
10004
  side: "center",
9970
10005
  baseOption: s
9971
10006
  }), d = [];
9972
10007
  c && l ? d.push(c, l) : (d.push(s), s.side === "before" && l && d.push(l), s.side === "after" && c && d.push(c), s.side === "center" && (c && !l && d.push(c), l && !c && d.push(l)), a && s.side === "before" && !l && u && d.push(u), a && s.side === "after" && !c && u && d.push(u)), !d.length && u && d.push(u);
9973
10008
  let f = [], p = /* @__PURE__ */ new Set();
9974
- for (let e of d) aa({
10009
+ for (let e of d) sa({
9975
10010
  guides: f,
9976
10011
  seenGuideKeys: p,
9977
10012
  guide: e.guide
@@ -9979,15 +10014,15 @@ var ki = class {
9979
10014
  return {
9980
10015
  delta: s.delta,
9981
10016
  guides: f,
9982
- context: ta({ option: s })
10017
+ context: ra({ option: s })
9983
10018
  };
9984
- }, sa = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
9985
- let s = n - (e - r), c = Hi({
10019
+ }, la = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
10020
+ let s = n - (e - r), c = Wi({
9986
10021
  value: s,
9987
10022
  step: o
9988
10023
  }), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
9989
10024
  for (let d = -l; d <= l; d += 1) {
9990
- let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = zi({
10025
+ let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = Vi({
9991
10026
  firstDistance: m,
9992
10027
  secondDistance: h
9993
10028
  });
@@ -10002,13 +10037,13 @@ var ki = class {
10002
10037
  });
10003
10038
  }
10004
10039
  return u;
10005
- }, ca = ({ currentGap: e, referenceGap: t }) => {
10006
- let { secondDisplayDistance: n, displayDistanceDiff: r } = zi({
10040
+ }, ua = ({ currentGap: e, referenceGap: t }) => {
10041
+ let { secondDisplayDistance: n, displayDistanceDiff: r } = Vi({
10007
10042
  firstDistance: e,
10008
10043
  secondDistance: t
10009
10044
  });
10010
10045
  return r > 1 ? null : n;
10011
- }, la = ({ anchors: e, positions: t, threshold: n }) => {
10046
+ }, da = ({ anchors: e, positions: t, threshold: n }) => {
10012
10047
  let r = 0, i = n + 1, a = null;
10013
10048
  for (let o of t) for (let t of e) {
10014
10049
  let e = Math.abs(t - o);
@@ -10018,8 +10053,8 @@ var ki = class {
10018
10053
  delta: r,
10019
10054
  guidePosition: a
10020
10055
  };
10021
- }, ua = ({ activeBounds: e, threshold: t, anchors: n }) => {
10022
- let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = la({
10056
+ }, fa = ({ activeBounds: e, threshold: t, anchors: n }) => {
10057
+ let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = da({
10023
10058
  anchors: n.vertical,
10024
10059
  positions: [
10025
10060
  r,
@@ -10027,7 +10062,7 @@ var ki = class {
10027
10062
  i
10028
10063
  ],
10029
10064
  threshold: t
10030
- }), u = la({
10065
+ }), u = da({
10031
10066
  anchors: n.horizontal,
10032
10067
  positions: [
10033
10068
  o,
@@ -10047,11 +10082,11 @@ var ki = class {
10047
10082
  deltaY: u.delta,
10048
10083
  guides: d
10049
10084
  };
10050
- }, da = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10085
+ }, pa = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10051
10086
  let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
10052
10087
  for (let e of t) {
10053
10088
  let { left: t, right: n } = e;
10054
- Bi({
10089
+ Hi({
10055
10090
  firstStart: t,
10056
10091
  firstEnd: n,
10057
10092
  secondStart: l,
@@ -10071,22 +10106,22 @@ var ki = class {
10071
10106
  f.push({
10072
10107
  bounds: e,
10073
10108
  isActive: !0
10074
- }), Gi({
10109
+ }), qi({
10075
10110
  items: f,
10076
10111
  axis: "top"
10077
10112
  });
10078
- let p = qi({ items: f });
10113
+ let p = Yi({ items: f });
10079
10114
  if (p === -1) return {
10080
10115
  delta: 0,
10081
10116
  guides: [],
10082
10117
  context: null
10083
10118
  };
10084
- let m = [], h = c - s, g = Ki({
10119
+ let m = [], h = c - s, g = Ji({
10085
10120
  items: f,
10086
10121
  index: p,
10087
10122
  axis: "vertical",
10088
10123
  direction: "prev"
10089
- }), _ = Ki({
10124
+ }), _ = Ji({
10090
10125
  items: f,
10091
10126
  index: p,
10092
10127
  axis: "vertical",
@@ -10095,19 +10130,19 @@ var ki = class {
10095
10130
  if (v && y) {
10096
10131
  let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
10097
10132
  if (a >= 0) {
10098
- let e = Hi({
10133
+ let e = Wi({
10099
10134
  value: a / 2,
10100
10135
  step: 1
10101
10136
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
10102
10137
  if (Math.max(u, d) <= n) {
10103
- let t = sa({
10138
+ let t = la({
10104
10139
  activeStart: s,
10105
10140
  activeEnd: c,
10106
10141
  targetGap: e,
10107
10142
  beforeEdge: r,
10108
10143
  afterEdge: i,
10109
10144
  threshold: n,
10110
- step: Li
10145
+ step: zi
10111
10146
  });
10112
10147
  if (t) {
10113
10148
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -10144,16 +10179,16 @@ var ki = class {
10144
10179
  }
10145
10180
  for (let e of r) {
10146
10181
  let { axis: t, start: r, end: i, distance: a } = e;
10147
- if (!Ui({
10182
+ if (!Gi({
10148
10183
  value: a,
10149
10184
  step: .5
10150
- }) || !Ji({
10185
+ }) || !Xi({
10151
10186
  patternAxis: t,
10152
10187
  activeRangeStart: l,
10153
10188
  activeRangeEnd: u,
10154
10189
  tolerance: n
10155
10190
  })) continue;
10156
- let d = Yi({
10191
+ let d = Zi({
10157
10192
  patternStart: r,
10158
10193
  patternEnd: i,
10159
10194
  activeStart: s,
@@ -10161,12 +10196,12 @@ var ki = class {
10161
10196
  });
10162
10197
  if (d) {
10163
10198
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
10164
- let e = Hi({
10199
+ let e = Wi({
10165
10200
  value: a - b,
10166
10201
  step: 1
10167
10202
  }), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
10168
10203
  if (u > n) continue;
10169
- let d = ca({
10204
+ let d = ua({
10170
10205
  currentGap: l,
10171
10206
  referenceGap: a
10172
10207
  });
@@ -10190,12 +10225,12 @@ var ki = class {
10190
10225
  });
10191
10226
  }
10192
10227
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
10193
- let e = Hi({
10228
+ let e = Wi({
10194
10229
  value: x - a,
10195
10230
  step: 1
10196
10231
  }), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
10197
10232
  if (u > n) continue;
10198
- let d = ca({
10233
+ let d = ua({
10199
10234
  currentGap: l,
10200
10235
  referenceGap: a
10201
10236
  });
@@ -10220,16 +10255,16 @@ var ki = class {
10220
10255
  }
10221
10256
  }
10222
10257
  }
10223
- return oa({
10258
+ return ca({
10224
10259
  options: m,
10225
10260
  previousContext: i,
10226
10261
  switchDistance: a
10227
10262
  });
10228
- }, fa = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10263
+ }, ma = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
10229
10264
  let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
10230
10265
  for (let e of t) {
10231
10266
  let { top: t, bottom: n } = e;
10232
- Bi({
10267
+ Hi({
10233
10268
  firstStart: t,
10234
10269
  firstEnd: n,
10235
10270
  secondStart: l,
@@ -10249,22 +10284,22 @@ var ki = class {
10249
10284
  f.push({
10250
10285
  bounds: e,
10251
10286
  isActive: !0
10252
- }), Gi({
10287
+ }), qi({
10253
10288
  items: f,
10254
10289
  axis: "left"
10255
10290
  });
10256
- let p = qi({ items: f });
10291
+ let p = Yi({ items: f });
10257
10292
  if (p === -1) return {
10258
10293
  delta: 0,
10259
10294
  guides: [],
10260
10295
  context: null
10261
10296
  };
10262
- let m = [], h = c - s, g = Ki({
10297
+ let m = [], h = c - s, g = Ji({
10263
10298
  items: f,
10264
10299
  index: p,
10265
10300
  axis: "horizontal",
10266
10301
  direction: "prev"
10267
- }), _ = Ki({
10302
+ }), _ = Ji({
10268
10303
  items: f,
10269
10304
  index: p,
10270
10305
  axis: "horizontal",
@@ -10273,19 +10308,19 @@ var ki = class {
10273
10308
  if (v && y) {
10274
10309
  let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
10275
10310
  if (a >= 0) {
10276
- let e = Hi({
10311
+ let e = Wi({
10277
10312
  value: a / 2,
10278
10313
  step: 1
10279
10314
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
10280
10315
  if (Math.max(u, d) <= n) {
10281
- let t = sa({
10316
+ let t = la({
10282
10317
  activeStart: s,
10283
10318
  activeEnd: c,
10284
10319
  targetGap: e,
10285
10320
  beforeEdge: r,
10286
10321
  afterEdge: i,
10287
10322
  threshold: n,
10288
- step: Li
10323
+ step: zi
10289
10324
  });
10290
10325
  if (t) {
10291
10326
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -10322,16 +10357,16 @@ var ki = class {
10322
10357
  }
10323
10358
  for (let e of r) {
10324
10359
  let { axis: t, start: r, end: i, distance: a } = e;
10325
- if (!Ui({
10360
+ if (!Gi({
10326
10361
  value: a,
10327
10362
  step: .5
10328
- }) || !Ji({
10363
+ }) || !Xi({
10329
10364
  patternAxis: t,
10330
10365
  activeRangeStart: l,
10331
10366
  activeRangeEnd: u,
10332
10367
  tolerance: n
10333
10368
  })) continue;
10334
- let d = Yi({
10369
+ let d = Zi({
10335
10370
  patternStart: r,
10336
10371
  patternEnd: i,
10337
10372
  activeStart: s,
@@ -10339,12 +10374,12 @@ var ki = class {
10339
10374
  });
10340
10375
  if (d) {
10341
10376
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
10342
- let e = Hi({
10377
+ let e = Wi({
10343
10378
  value: a - b,
10344
10379
  step: 1
10345
10380
  }), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
10346
10381
  if (u > n) continue;
10347
- let d = ca({
10382
+ let d = ua({
10348
10383
  currentGap: l,
10349
10384
  referenceGap: a
10350
10385
  });
@@ -10368,12 +10403,12 @@ var ki = class {
10368
10403
  });
10369
10404
  }
10370
10405
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
10371
- let e = Hi({
10406
+ let e = Wi({
10372
10407
  value: x - a,
10373
10408
  step: 1
10374
10409
  }), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
10375
10410
  if (u > n) continue;
10376
- let d = ca({
10411
+ let d = ua({
10377
10412
  currentGap: l,
10378
10413
  referenceGap: a
10379
10414
  });
@@ -10398,20 +10433,20 @@ var ki = class {
10398
10433
  }
10399
10434
  }
10400
10435
  }
10401
- return oa({
10436
+ return ca({
10402
10437
  options: m,
10403
10438
  previousContext: i,
10404
10439
  switchDistance: a
10405
10440
  });
10406
- }, pa = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
10407
- let { vertical: o = null, horizontal: s = null } = i ?? {}, c = da({
10441
+ }, ha = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
10442
+ let { vertical: o = null, horizontal: s = null } = i ?? {}, c = pa({
10408
10443
  activeBounds: e,
10409
10444
  candidates: t,
10410
10445
  threshold: n,
10411
10446
  patterns: r.vertical,
10412
10447
  previousContext: o,
10413
10448
  switchDistance: a
10414
- }), l = fa({
10449
+ }), l = ma({
10415
10450
  activeBounds: e,
10416
10451
  candidates: t,
10417
10452
  threshold: n,
@@ -10430,14 +10465,14 @@ var ki = class {
10430
10465
  horizontal: l.context
10431
10466
  }
10432
10467
  };
10433
- }, ma = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
10468
+ }, ga = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
10434
10469
  let o = Math.min(a, r / 2, i / 2);
10435
10470
  e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
10436
- }, ha = ({ context: e, type: t, axis: n, start: r, end: i, text: a, zoom: o, color: s, textColor: c = "#ffffff", fontFamily: l = "sans-serif", lineWidth: u = 1, padding: d = 4, radius: f = 4, offsetAlongAxis: p = 0, offsetPerpendicular: m = 0 }) => {
10471
+ }, _a = ({ context: e, type: t, axis: n, start: r, end: i, text: a, zoom: o, color: s, textColor: c = "#ffffff", fontFamily: l = "sans-serif", lineWidth: u = 1, padding: d = 4, radius: f = 4, offsetAlongAxis: p = 0, offsetPerpendicular: m = 0 }) => {
10437
10472
  let h = o || 1, g = 12 / h, _ = d / h, v = f / h, y = (r + i) / 2 + p, b = t === "vertical" ? n + m : y, x = t === "vertical" ? y : n + m;
10438
10473
  e.save(), e.setLineDash([]), e.fillStyle = s, e.strokeStyle = s, e.lineWidth = u / h, e.font = `${g}px ${l}`, e.textAlign = "center", e.textBaseline = "middle";
10439
10474
  let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
10440
- e.beginPath(), ma({
10475
+ e.beginPath(), ga({
10441
10476
  context: e,
10442
10477
  x: w,
10443
10478
  y: T,
@@ -10445,11 +10480,11 @@ var ki = class {
10445
10480
  height: C,
10446
10481
  radius: v
10447
10482
  }), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
10448
- }, ga = ({ context: e, guide: t, zoom: n }) => {
10449
- let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Ri({ distance: l }).toString();
10483
+ }, va = ({ context: e, guide: t, zoom: n }) => {
10484
+ let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Bi({ distance: l }).toString();
10450
10485
  e.beginPath(), r === "vertical" ? (e.moveTo(i, a), e.lineTo(i, o), e.moveTo(i, s), e.lineTo(i, c)) : (e.moveTo(a, i), e.lineTo(o, i), e.moveTo(s, i), e.lineTo(c, i)), e.stroke();
10451
- let d = Ii;
10452
- ha({
10486
+ let d = Ri;
10487
+ _a({
10453
10488
  context: e,
10454
10489
  type: r,
10455
10490
  axis: i,
@@ -10459,7 +10494,7 @@ var ki = class {
10459
10494
  zoom: n,
10460
10495
  color: d,
10461
10496
  lineWidth: 1
10462
- }), ha({
10497
+ }), _a({
10463
10498
  context: e,
10464
10499
  type: r,
10465
10500
  axis: i,
@@ -10470,10 +10505,10 @@ var ki = class {
10470
10505
  color: d,
10471
10506
  lineWidth: 1
10472
10507
  });
10473
- }, _a = ({ anchors: e, bounds: t }) => {
10508
+ }, ya = ({ anchors: e, bounds: t }) => {
10474
10509
  let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
10475
10510
  e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
10476
- }, va = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
10511
+ }, ba = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
10477
10512
  let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
10478
10513
  for (let e = 0; e < s.length; e += 1) {
10479
10514
  let c = s[e], l = null, u = Infinity;
@@ -10494,35 +10529,35 @@ var ki = class {
10494
10529
  });
10495
10530
  }
10496
10531
  return i;
10497
- }, ya = ({ bounds: e }) => ({
10498
- vertical: va({
10532
+ }, xa = ({ bounds: e }) => ({
10533
+ vertical: ba({
10499
10534
  bounds: e,
10500
10535
  axis: "centerX",
10501
10536
  type: "vertical",
10502
10537
  primaryStart: "top",
10503
10538
  primaryEnd: "bottom"
10504
10539
  }),
10505
- horizontal: va({
10540
+ horizontal: ba({
10506
10541
  bounds: e,
10507
10542
  axis: "centerY",
10508
10543
  type: "horizontal",
10509
10544
  primaryStart: "left",
10510
10545
  primaryEnd: "right"
10511
10546
  })
10512
- }), ba = [
10547
+ }), Sa = [
10513
10548
  "montage-area",
10514
10549
  "background",
10515
10550
  "interaction-blocker"
10516
- ], xa = ({ activeObject: t }) => {
10551
+ ], Ca = ({ activeObject: t }) => {
10517
10552
  let n = /* @__PURE__ */ new Set();
10518
10553
  return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
10519
- }, Sa = ({ object: e, excluded: t, ignoredIds: n = ba }) => {
10554
+ }, wa = ({ object: e, excluded: t, ignoredIds: n = Sa }) => {
10520
10555
  if (t.has(e)) return !0;
10521
10556
  let { visible: r = !0 } = e;
10522
10557
  if (!r) return !0;
10523
10558
  let { id: i } = e;
10524
10559
  return !!(i && n.includes(i));
10525
- }, Ca = class e {
10560
+ }, Ta = class e {
10526
10561
  constructor({ editor: e }) {
10527
10562
  this.anchors = {
10528
10563
  vertical: [],
@@ -10575,7 +10610,7 @@ var ki = class {
10575
10610
  this._clearSpacingContexts(), this._clearGuides();
10576
10611
  return;
10577
10612
  }
10578
- let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = ua({
10613
+ let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = fa({
10579
10614
  activeBounds: a,
10580
10615
  threshold: c,
10581
10616
  anchors: this.anchors
@@ -10587,7 +10622,7 @@ var ki = class {
10587
10622
  top: t + u
10588
10623
  }), n.setCoords(), a = Ht({ object: n }) ?? a;
10589
10624
  }
10590
- let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = pa({
10625
+ let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = ha({
10591
10626
  activeBounds: a,
10592
10627
  candidates: d,
10593
10628
  threshold: f,
@@ -10608,11 +10643,11 @@ var ki = class {
10608
10643
  target: n,
10609
10644
  transform: i
10610
10645
  });
10611
- let h = Ht({ object: n }) ?? a, g = ua({
10646
+ let h = Ht({ object: n }) ?? a, g = fa({
10612
10647
  activeBounds: h,
10613
10648
  threshold: c,
10614
10649
  anchors: this.anchors
10615
- }), _ = pa({
10650
+ }), _ = ha({
10616
10651
  activeBounds: h,
10617
10652
  candidates: d,
10618
10653
  threshold: c,
@@ -10843,9 +10878,9 @@ var ki = class {
10843
10878
  let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
10844
10879
  if (!n) return;
10845
10880
  let { left: r, right: i, top: a, bottom: o } = t ?? this._calculateViewportBounds(), { viewportTransform: s } = e, c = e.getZoom() || 1;
10846
- n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ii, n.setLineDash([4, 4]);
10881
+ n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ri, n.setLineDash([4, 4]);
10847
10882
  for (let e of this.activeGuides) n.beginPath(), e.type === "vertical" ? (n.moveTo(e.position, a), n.lineTo(e.position, o)) : (n.moveTo(r, e.position), n.lineTo(i, e.position)), n.stroke();
10848
- for (let e of this.activeSpacingGuides) ga({
10883
+ for (let e of this.activeSpacingGuides) va({
10849
10884
  context: n,
10850
10885
  guide: e,
10851
10886
  zoom: c
@@ -11056,14 +11091,14 @@ var ki = class {
11056
11091
  }, r = [];
11057
11092
  for (let e of t) {
11058
11093
  let t = Ht({ object: e });
11059
- t && (_a({
11094
+ t && (ya({
11060
11095
  anchors: n,
11061
11096
  bounds: t
11062
11097
  }), r.push(t));
11063
11098
  }
11064
11099
  let { montageArea: i } = this.editor, a = Ht({ object: i });
11065
11100
  if (a) {
11066
- _a({
11101
+ ya({
11067
11102
  anchors: n,
11068
11103
  bounds: a
11069
11104
  });
@@ -11075,12 +11110,12 @@ var ki = class {
11075
11110
  bottom: i
11076
11111
  };
11077
11112
  } else this.guideBounds = this._calculateViewportBounds();
11078
- this.anchors = n, this.spacingPatterns = ya({ bounds: r }), this.cachedTargetBounds = r;
11113
+ this.anchors = n, this.spacingPatterns = xa({ bounds: r }), this.cachedTargetBounds = r;
11079
11114
  }
11080
11115
  _collectTargets({ activeObject: e }) {
11081
- let t = xa({ activeObject: e }), n = [];
11116
+ let t = Ca({ activeObject: e }), n = [];
11082
11117
  return this.canvas.forEachObject((e) => {
11083
- Sa({
11118
+ wa({
11084
11119
  object: e,
11085
11120
  excluded: t
11086
11121
  }) || n.push(e);
@@ -11103,7 +11138,7 @@ var ki = class {
11103
11138
  bottom: (r - s) / a
11104
11139
  };
11105
11140
  }
11106
- }, wa = "#3D8BF4", Ta = class e {
11141
+ }, Ea = "#3D8BF4", Da = class e {
11107
11142
  constructor({ editor: e }) {
11108
11143
  this.activeGuides = [], this.isAltPressed = !1, this.pendingEvent = null, this.frameRequest = null, this.isToolbarHidden = !1, this.isTargetMontageArea = !1, this.lastMouseEvent = null, this.editor = e, this.canvas = e.canvas, this._onMouseMove = this._handleMouseMove.bind(this), this._onBeforeRender = this._handleBeforeRender.bind(this), this._onAfterRender = this._handleAfterRender.bind(this), this._onSelectionCleared = this._handleSelectionCleared.bind(this), this._onKeyDown = this._handleKeyDown.bind(this), this._onKeyUp = this._handleKeyUp.bind(this), this._onWindowBlur = this._handleWindowBlur.bind(this), this._bindEvents();
11109
11144
  }
@@ -11196,8 +11231,8 @@ var ki = class {
11196
11231
  this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
11197
11232
  }
11198
11233
  static _resolveTarget({ event: e, activeObject: t }) {
11199
- let { target: n } = e, r = xa({ activeObject: t });
11200
- return n && !Sa({
11234
+ let { target: n } = e, r = Ca({ activeObject: t });
11235
+ return n && !wa({
11201
11236
  object: n,
11202
11237
  excluded: r
11203
11238
  }) ? n : null;
@@ -11314,18 +11349,18 @@ var ki = class {
11314
11349
  let { canvas: e } = this, t = e.getSelectionContext();
11315
11350
  if (!t) return;
11316
11351
  let { viewportTransform: n } = e, r = e.getZoom() || 1, i = this.activeGuides.some((e) => e.type === "vertical"), a = this.activeGuides.some((e) => e.type === "horizontal"), o = i && a && !this.isTargetMontageArea, s = o ? 12 / r : 0;
11317
- t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = wa, t.setLineDash([]);
11352
+ t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = Ea, t.setLineDash([]);
11318
11353
  for (let e of this.activeGuides) {
11319
11354
  let { type: n, axis: i, start: a, end: c, distance: l } = e, u = Math.abs(c - a), d = o ? (a <= c ? -1 : 1) * (u / 2 + s) : 0;
11320
- t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), ha({
11355
+ t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), _a({
11321
11356
  context: t,
11322
11357
  type: n,
11323
11358
  axis: i,
11324
11359
  start: a,
11325
11360
  end: c,
11326
- text: Ri({ distance: l }).toString(),
11361
+ text: Bi({ distance: l }).toString(),
11327
11362
  zoom: r,
11328
- color: wa,
11363
+ color: Ea,
11329
11364
  lineWidth: 1,
11330
11365
  offsetAlongAxis: d,
11331
11366
  offsetPerpendicular: 0
@@ -11343,13 +11378,13 @@ var ki = class {
11343
11378
  let { toolbar: e } = this.editor;
11344
11379
  e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
11345
11380
  }
11346
- }, Ea = class e {
11381
+ }, Oa = class e {
11347
11382
  constructor(e, t) {
11348
11383
  this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
11349
11384
  }
11350
11385
  async init() {
11351
11386
  let { editorContainerWidth: e, editorContainerHeight: n, canvasWrapperWidth: r, canvasWrapperHeight: i, canvasCSSWidth: a, canvasCSSHeight: o, initialImage: s, initialState: c, scaleType: l, showRotationAngle: u, _onReadyCallback: d } = this.options;
11352
- if (ie.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new ui({ editor: this }), this.historyManager = new wt({ editor: this }), this.toolbar = new Ye({ editor: this }), this.transformManager = new Ft({ editor: this }), this.zoomManager = new It({ editor: this }), this.canvasManager = new Pt({ editor: this }), this.imageManager = new At({ editor: this }), this.layerManager = new qt({ editor: this }), this.shapeManager = new ri({ editor: this }), this.interactionBlocker = new Gt({ editor: this }), this.backgroundManager = new Kt({ editor: this }), this.clipboardManager = new ii({ editor: this }), this.objectLockManager = new ai({ editor: this }), this.groupingManager = new oi({ editor: this }), this.selectionManager = new si({ editor: this }), this.deletionManager = new ci({ editor: this }), this.panConstraintManager = new di({ editor: this }), this.snappingManager = new Ca({ editor: this }), this.measurementManager = new Ta({ editor: this }), this.fontManager = new z(this.options.fonts ?? []), this.textManager = new Ai({ editor: this }), this.templateManager = new Fi({ editor: this }), u && (this.angleIndicator = new Qe({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
11387
+ if (ie.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new fi({ editor: this }), this.historyManager = new wt({ editor: this }), this.toolbar = new Ye({ editor: this }), this.transformManager = new Ft({ editor: this }), this.zoomManager = new It({ editor: this }), this.canvasManager = new Pt({ editor: this }), this.imageManager = new At({ editor: this }), this.layerManager = new qt({ editor: this }), this.shapeManager = new ai({ editor: this }), this.interactionBlocker = new Gt({ editor: this }), this.backgroundManager = new Kt({ editor: this }), this.clipboardManager = new oi({ editor: this }), this.objectLockManager = new si({ editor: this }), this.groupingManager = new ci({ editor: this }), this.selectionManager = new li({ editor: this }), this.deletionManager = new ui({ editor: this }), this.panConstraintManager = new pi({ editor: this }), this.snappingManager = new Ta({ editor: this }), this.measurementManager = new Da({ editor: this }), this.fontManager = new z(this.options.fonts ?? []), this.textManager = new Mi({ editor: this }), this.templateManager = new Li({ editor: this }), u && (this.angleIndicator = new Qe({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
11353
11388
  editor: this,
11354
11389
  options: this.options
11355
11390
  }), this.canvasManager.setEditorContainerWidth(e), this.canvasManager.setEditorContainerHeight(n), this.canvasManager.setCanvasWrapperWidth(r), this.canvasManager.setCanvasWrapperHeight(i), this.canvasManager.setCanvasCSSWidth(a), this.canvasManager.setCanvasCSSHeight(o), this.canvasManager.updateCanvas(), this.zoomManager.calculateAndApplyDefaultZoom(), await this.fontManager.loadFonts(), c) {
@@ -11457,7 +11492,7 @@ var ki = class {
11457
11492
  "U+A640-A69F",
11458
11493
  "U+FE2E-FE2F",
11459
11494
  "U+2116"
11460
- ].join(", "), Da = {
11495
+ ].join(", "), ka = {
11461
11496
  preserveObjectStacking: !0,
11462
11497
  controlsAboveOverlay: !0,
11463
11498
  centeredRotation: !0,
@@ -12311,20 +12346,20 @@ var ki = class {
12311
12346
  };
12312
12347
  //#endregion
12313
12348
  //#region src/main.ts
12314
- function Oa(e, t = {}) {
12349
+ function Aa(e, t = {}) {
12315
12350
  let n = {
12316
- ...Da,
12351
+ ...ka,
12317
12352
  ...t
12318
12353
  }, r = document.getElementById(e);
12319
12354
  if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
12320
12355
  let i = document.createElement("canvas");
12321
12356
  return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
12322
12357
  n._onReadyCallback = t;
12323
- let r = new Ea(i.id, n);
12358
+ let r = new Oa(i.id, n);
12324
12359
  window[e] = r;
12325
12360
  });
12326
12361
  }
12327
12362
  //#endregion
12328
- export { Oa as default };
12363
+ export { Aa as default };
12329
12364
 
12330
12365
  //# sourceMappingURL=main.js.map