@anu3ev/fabric-image-editor 0.8.3 → 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 +602 -564
  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,81 +9025,84 @@ 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 = !z || se, le = !z;
9003
- if (h !== void 0 && (B && (H.fontFamily = h), ce && (R.fontFamily = h, le && (U.fontFamily = h))), g !== void 0 && (B && (H.fontSize = g), ce && (R.fontSize = g, le && (U.fontSize = g))), _ !== void 0 && (ae = _ ? "bold" : "normal", z && (V.fontWeight = ae), ce && (R.fontWeight = ae, le && (U.fontWeight = ae))), v !== void 0 && (W = v ? "italic" : "normal", z && (V.fontStyle = W), ce && (R.fontStyle = W, le && (U.fontStyle = W))), y !== void 0 && (z && (V.underline = y), ce && (R.underline = y, le && (U.underline = y))), x !== void 0 && (z && (V.linethrough = x), ce && (R.linethrough = x, le && (U.linethrough = x))), S !== void 0 && (R.textAlign = S), C !== void 0 && (z && (V.fill = C), ce && (R.fill = C, le && (U.fill = C))), w !== void 0 || T !== void 0) {
9004
- let e = z ? gi({
9037
+ }), ce = gi({
9038
+ textbox: s,
9039
+ range: B
9040
+ }), le = !z || se, ue = le || ce, de = !z;
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) {
9042
+ let e = z ? vi({
9005
9043
  textbox: s,
9006
9044
  range: z,
9007
9045
  property: "strokeWidth"
9008
- }) : void 0, t = z ? gi({
9046
+ }) : void 0, t = z ? vi({
9009
9047
  textbox: s,
9010
9048
  range: z,
9011
9049
  property: "stroke"
9012
- }) : void 0;
9013
- oe = vi({ width: T ?? e ?? s.strokeWidth ?? 0 }), G = _i({
9014
- 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,
9015
9053
  width: oe
9016
- }), z && (V.stroke = G, V.strokeWidth = oe), ce && (R.stroke = G, R.strokeWidth = oe, le && (U.stroke = G, U.strokeWidth = oe));
9054
+ }), z && (V.stroke = G, V.strokeWidth = oe), le && (R.stroke = G, R.strokeWidth = oe, de && (U.stroke = G, U.strokeWidth = oe));
9017
9055
  }
9018
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);
9019
- let ue = s.textCaseRaw ?? c, de = !!s.uppercase, fe = p !== void 0, pe = fe ? p ?? "" : ue, me = b ?? de, he = me !== de;
9020
- fe || he ? (R.text = me ? yi({ value: pe }) : pe, s.textCaseRaw = pe) : s.textCaseRaw === void 0 && (s.textCaseRaw = ue);
9021
- let ge = Cn({ stylesList: [
9057
+ let fe = s.textCaseRaw ?? c, pe = !!s.uppercase, me = p !== void 0, he = me ? p ?? "" : fe, ge = b ?? pe, _e = ge !== pe;
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: [
9022
9060
  R,
9023
9061
  V,
9024
9062
  H,
9025
9063
  U
9026
- ] }), _e = [
9064
+ ] }), ye = [
9027
9065
  ee,
9028
9066
  te,
9029
9067
  L,
9030
9068
  ne
9031
- ], ve = [
9069
+ ], be = [
9032
9070
  k,
9033
9071
  A,
9034
9072
  j,
9035
9073
  M
9036
- ], ye = _e.some((e) => e !== void 0), be = ve.some((e) => e !== void 0), xe = Object.prototype.hasOwnProperty.call(R, "width"), Se = be && !ye && !fe && !he && !ge && !xe, Ce = null;
9037
- Se && (Ce = bn({
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;
9075
+ we && (Te = Sn({
9038
9076
  textbox: s,
9039
9077
  originX: ie.originX,
9040
9078
  originY: ie.originY
9041
- })), s.uppercase = me, s.set(R);
9042
- let we = !1;
9079
+ })), s.uppercase = ge, s.set(R);
9080
+ let Ee = !1;
9043
9081
  if (z) {
9044
- let e = hi({
9082
+ let e = _i({
9045
9083
  textbox: s,
9046
9084
  styles: V,
9047
9085
  range: z
9048
- }), t = B ? hi({
9086
+ }), t = B ? _i({
9049
9087
  textbox: s,
9050
9088
  styles: H,
9051
9089
  range: B
9052
9090
  }) : !1;
9053
- we = e || t;
9091
+ Ee = e || t;
9054
9092
  } else if (Object.keys(U).length) {
9055
- let e = pi({ textbox: s });
9056
- e && (we = hi({
9093
+ let e = hi({ textbox: s });
9094
+ e && (Ee = _i({
9057
9095
  textbox: s,
9058
9096
  styles: U,
9059
9097
  range: e
9060
9098
  }));
9061
9099
  }
9062
- let Te = we && Cn({ stylesList: [
9100
+ let De = Ee && Tn({ stylesList: [
9063
9101
  V,
9064
9102
  H,
9065
9103
  U
9066
9104
  ] });
9067
- if (we && (s.dirty = !0), B && (h !== void 0 || g !== void 0)) {
9105
+ if (Ee && (s.dirty = !0), B && (h !== void 0 || g !== void 0)) {
9068
9106
  let e = Qt({
9069
9107
  textbox: s,
9070
9108
  range: B
@@ -9086,47 +9124,47 @@ var ki = class {
9086
9124
  updates: t
9087
9125
  });
9088
9126
  }
9089
- Te && (s.initDimensions(), s.dirty = !0), [
9127
+ De && (s.initDimensions(), s.dirty = !0), [
9090
9128
  D,
9091
9129
  O,
9092
- ...ve,
9130
+ ...be,
9093
9131
  N,
9094
9132
  P,
9095
9133
  F,
9096
9134
  I
9097
9135
  ].some((e) => e !== void 0) && (s.dirty = !0);
9098
- let { autoExpand: Ee } = s, De = m !== void 0, Oe = (m ?? Ee) !== !1;
9099
- De ? s.autoExpand = m !== !1 : Ee === void 0 && (s.autoExpand = !0);
9100
- let ke = Oe && !xe && (fe || he || ge);
9136
+ let { autoExpand: Oe } = s, ke = m !== void 0, Ae = (m ?? Oe) !== !1;
9137
+ ke ? s.autoExpand = m !== !1 : Oe === void 0 && (s.autoExpand = !0);
9138
+ let je = Ae && !Ce && (me || _e || ve);
9101
9139
  this._normalizeTextboxAfterContentChange({
9102
9140
  textbox: s,
9103
9141
  placement: ie,
9104
- shouldAutoExpand: ke
9105
- }), Ce && this._restoreTextboxContentPlacement({
9142
+ shouldAutoExpand: je
9143
+ }), Te && this._restoreTextboxContentPlacement({
9106
9144
  textbox: s,
9107
- contentPlacement: Ce
9145
+ contentPlacement: Te
9108
9146
  }), s.setCoords();
9109
- let Ae = {
9147
+ let Me = {
9110
9148
  withoutSave: !!r,
9111
9149
  skipRender: !!i
9112
- }, je = !!z && Object.keys(V).length > 0, Me = {
9150
+ }, Ne = !!z && Object.keys(V).length > 0, Pe = {
9113
9151
  textbox: s,
9114
9152
  target: t,
9115
9153
  style: n,
9116
- options: Ae,
9154
+ options: Me,
9117
9155
  updates: R,
9118
9156
  selectionRange: z ?? void 0,
9119
- selectionStyles: je ? V : void 0
9157
+ selectionStyles: Ne ? V : void 0
9120
9158
  };
9121
- o && d.fire("editor:before:text-updated", Me), i || d.requestRenderAll();
9122
- let Ne = e._getSnapshot(s);
9159
+ o && d.fire("editor:before:text-updated", Pe), i || d.requestRenderAll();
9160
+ let Fe = e._getSnapshot(s);
9123
9161
  l.resumeHistory(), r || l.saveState();
9124
- let Pe = {
9125
- ...Me,
9162
+ let Ie = {
9163
+ ...Pe,
9126
9164
  before: f,
9127
- after: Ne
9165
+ after: Fe
9128
9166
  };
9129
- return o && d.fire("editor:text-updated", Pe), s;
9167
+ return o && d.fire("editor:text-updated", Ie), s;
9130
9168
  }
9131
9169
  stylesFromArray(e, t) {
9132
9170
  return C.stylesFromArray(e, t);
@@ -9186,7 +9224,7 @@ var ki = class {
9186
9224
  clampToMontage: r
9187
9225
  }));
9188
9226
  let a = !1;
9189
- i || (a = wn({ textbox: e }));
9227
+ i || (a = En({ textbox: e }));
9190
9228
  let o = !1;
9191
9229
  return !i && t && (this.editor.canvasManager.applyObjectPlacement({
9192
9230
  object: e,
@@ -9194,7 +9232,7 @@ var ki = class {
9194
9232
  }), o = !0), (i || a) && (e.dirty = !0), (i || a || o) && e.setCoords(), i || a;
9195
9233
  }
9196
9234
  _restoreTextboxContentPlacement({ textbox: e, contentPlacement: t }) {
9197
- let n = bn({
9235
+ let n = Sn({
9198
9236
  textbox: e,
9199
9237
  originX: t.originX,
9200
9238
  originY: t.originY
@@ -9212,7 +9250,7 @@ var ki = class {
9212
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);
9213
9251
  }
9214
9252
  _syncLineFontDefaultsOnTextChanged({ textbox: e }) {
9215
- let t = e.text ?? "", n = hn({
9253
+ let t = e.text ?? "", n = gn({
9216
9254
  textbox: e,
9217
9255
  previousText: e.__lineDefaultsPrevText ?? t,
9218
9256
  currentText: t
@@ -9230,16 +9268,16 @@ var ki = class {
9230
9268
  if (!Number.isFinite(f) || f <= 0) return !1;
9231
9269
  let p = a.split("\n").length, m = !1;
9232
9270
  Math.abs((e.width ?? 0) - f) > .01 && (e.set({ width: f }), m = !0), e.initDimensions();
9233
- 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({
9234
9272
  textbox: e,
9235
9273
  text: a
9236
9274
  })), v = Math.min(e.minWidth ?? 1, f), y = Math.min(f, Math.max(_, v));
9237
- 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({
9238
9276
  object: e,
9239
9277
  placement: t
9240
9278
  });
9241
9279
  let b = !1;
9242
- return n && (b = xn({
9280
+ return n && (b = Cn({
9243
9281
  textbox: e,
9244
9282
  montageLeft: o,
9245
9283
  montageRight: o + s
@@ -9297,7 +9335,7 @@ var ki = class {
9297
9335
  _getDefaultFontFamily() {
9298
9336
  return this.fonts[0]?.family ?? "Arial";
9299
9337
  }
9300
- }, 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) => {
9301
9339
  if (!e || typeof e != "object") return null;
9302
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) => ({
9303
9341
  color: typeof e.color == "string" ? e.color : "#000000",
@@ -9308,7 +9346,7 @@ var ki = class {
9308
9346
  let { x1: e, y1: t, x2: r, y2: i } = n;
9309
9347
  if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
9310
9348
  type: "linear",
9311
- angle: ji({
9349
+ angle: Ni({
9312
9350
  x1: e,
9313
9351
  y1: t,
9314
9352
  x2: r,
@@ -9336,7 +9374,7 @@ var ki = class {
9336
9374
  };
9337
9375
  }
9338
9376
  return null;
9339
- }, Ni = "_templateAnchorX", Pi = "_templateAnchorY", Fi = class t {
9377
+ }, Fi = "_templateAnchorX", Ii = "_templateAnchorY", Li = class t {
9340
9378
  constructor({ editor: e }) {
9341
9379
  this.editor = e;
9342
9380
  }
@@ -9345,7 +9383,7 @@ var ki = class {
9345
9383
  if (!p.length) return s.emitWarning({
9346
9384
  origin: "TemplateManager",
9347
9385
  method: "serializeSelection",
9348
- code: li.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
9386
+ code: di.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
9349
9387
  message: "Нет объектов для сериализации шаблона"
9350
9388
  }), null;
9351
9389
  let m = t._getBounds(o), h = t._getMontageSize({
@@ -9374,14 +9412,14 @@ var ki = class {
9374
9412
  if (!l?.length) return a.emitWarning({
9375
9413
  origin: "TemplateManager",
9376
9414
  method: "applyTemplate",
9377
- code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9415
+ code: di.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9378
9416
  message: "Шаблон не содержит объектов"
9379
9417
  }), null;
9380
9418
  let f = t._getBounds(r);
9381
9419
  if (!f) return a.emitWarning({
9382
9420
  origin: "TemplateManager",
9383
9421
  method: "applyTemplate",
9384
- code: li.TEMPLATE_MANAGER.INVALID_TARGET,
9422
+ code: di.TEMPLATE_MANAGER.INVALID_TARGET,
9385
9423
  message: "Не удалось определить границы монтажной области"
9386
9424
  }), null;
9387
9425
  let p = t._getMontageSize({
@@ -9400,7 +9438,7 @@ var ki = class {
9400
9438
  if (!r.length) return a.emitWarning({
9401
9439
  origin: "TemplateManager",
9402
9440
  method: "applyTemplate",
9403
- code: li.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9441
+ code: di.TEMPLATE_MANAGER.INVALID_TEMPLATE,
9404
9442
  message: "Не удалось создать объекты шаблона"
9405
9443
  }), null;
9406
9444
  let { backgroundObject: i, contentObjects: u } = t._extractBackgroundObject(r);
@@ -9438,7 +9476,7 @@ var ki = class {
9438
9476
  return a.emitError({
9439
9477
  origin: "TemplateManager",
9440
9478
  method: "applyTemplate",
9441
- code: li.TEMPLATE_MANAGER.APPLY_FAILED,
9479
+ code: di.TEMPLATE_MANAGER.APPLY_FAILED,
9442
9480
  message: "Ошибка применения шаблона",
9443
9481
  data: {
9444
9482
  templateId: d,
@@ -9592,8 +9630,8 @@ var ki = class {
9592
9630
  baseHeight: a,
9593
9631
  scale: n,
9594
9632
  useRelativePositions: o,
9595
- anchorX: t._resolveAnchor(s, Ni),
9596
- anchorY: t._resolveAnchor(s, Pi)
9633
+ anchorX: t._resolveAnchor(s, Fi),
9634
+ anchorY: t._resolveAnchor(s, Ii)
9597
9635
  })
9598
9636
  }), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
9599
9637
  e.set({
@@ -9607,7 +9645,7 @@ var ki = class {
9607
9645
  originX: _,
9608
9646
  originY: v
9609
9647
  }
9610
- }), delete s[Ni], delete s[Pi];
9648
+ }), delete s[Fi], delete s[Ii];
9611
9649
  }
9612
9650
  static _getPositioningBounds({ bounds: e, baseWidth: n, baseHeight: r, scale: i, useRelativePositions: a, anchorX: o, anchorY: s }) {
9613
9651
  if (!a) return e;
@@ -9671,7 +9709,7 @@ var ki = class {
9671
9709
  });
9672
9710
  if (!i || !s || !o) return;
9673
9711
  e.setCoords();
9674
- 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;
9675
9713
  e.set("width", i), e.initDimensions();
9676
9714
  let g = t._getLongestLineWidth({
9677
9715
  textbox: e,
@@ -9700,10 +9738,10 @@ var ki = class {
9700
9738
  x: (p.left - o) / d,
9701
9739
  y: (p.top - s) / f
9702
9740
  }, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
9703
- return a[Ni] = t._detectAnchor({
9741
+ return a[Fi] = t._detectAnchor({
9704
9742
  start: h,
9705
9743
  end: _
9706
- }), a[Pi] = t._detectAnchor({
9744
+ }), a[Ii] = t._detectAnchor({
9707
9745
  start: g,
9708
9746
  end: v
9709
9747
  }), a.left = m.x, a.top = m.y, a;
@@ -9728,7 +9766,7 @@ var ki = class {
9728
9766
  withoutSave: !0
9729
9767
  }), !0;
9730
9768
  if (a === "gradient") {
9731
- let e = Mi(r);
9769
+ let e = Pi(r);
9732
9770
  if (e) return n.setGradientBackground({
9733
9771
  gradient: e,
9734
9772
  customData: o,
@@ -9749,7 +9787,7 @@ var ki = class {
9749
9787
  r.emitWarning({
9750
9788
  origin: "TemplateManager",
9751
9789
  method: "applyTemplate",
9752
- code: li.TEMPLATE_MANAGER.APPLY_FAILED,
9790
+ code: di.TEMPLATE_MANAGER.APPLY_FAILED,
9753
9791
  message: "Не удалось применить фон из шаблона",
9754
9792
  data: e
9755
9793
  });
@@ -9785,29 +9823,29 @@ var ki = class {
9785
9823
  enlivenObjectEnlivables(e) {
9786
9824
  return C.enlivenObjectEnlivables(e);
9787
9825
  }
9788
- }, Ii = "#3D8BF4", Li = .5, Ri = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, zi = ({ firstDistance: e, secondDistance: t }) => {
9789
- 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 });
9790
9828
  return {
9791
9829
  firstDisplayDistance: n,
9792
9830
  secondDisplayDistance: r,
9793
9831
  displayDistanceDiff: Math.abs(n - r),
9794
9832
  commonDisplayDistance: Math.max(n, r)
9795
9833
  };
9796
- }, 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 }) => {
9797
9835
  let t = Math.abs(e).toString(), n = t.indexOf(".");
9798
9836
  return n === -1 ? 0 : t.slice(n + 1).length;
9799
- }, Hi = ({ value: e, step: t }) => {
9837
+ }, Wi = ({ value: e, step: t }) => {
9800
9838
  if (t === 0) return e;
9801
- let n = Vi({ step: t }), r = Math.round(e / t) * t;
9839
+ let n = Ui({ step: t }), r = Math.round(e / t) * t;
9802
9840
  return Number(r.toFixed(n));
9803
- }, Ui = ({ value: e, step: t }) => {
9841
+ }, Gi = ({ value: e, step: t }) => {
9804
9842
  if (t === 0) return !0;
9805
- let n = Hi({
9843
+ let n = Wi({
9806
9844
  value: e,
9807
9845
  step: t
9808
- }), r = 10 ** -(Vi({ step: t }) + 4);
9846
+ }), r = 10 ** -(Ui({ step: t }) + 4);
9809
9847
  return Math.abs(n - e) <= r;
9810
- }, Wi = ({ bounds: e, axis: t }) => {
9848
+ }, Ki = ({ bounds: e, axis: t }) => {
9811
9849
  let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
9812
9850
  return t === "vertical" ? {
9813
9851
  start: i,
@@ -9816,7 +9854,7 @@ var ki = class {
9816
9854
  start: n,
9817
9855
  end: r
9818
9856
  };
9819
- }, Gi = ({ items: e, axis: t }) => {
9857
+ }, qi = ({ items: e, axis: t }) => {
9820
9858
  for (let n = 1; n < e.length; n += 1) {
9821
9859
  let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
9822
9860
  for (; o >= 0;) {
@@ -9826,10 +9864,10 @@ var ki = class {
9826
9864
  }
9827
9865
  e[o + 1] = r;
9828
9866
  }
9829
- }, Ki = ({ items: e, index: t, axis: n, direction: r }) => {
9867
+ }, Ji = ({ items: e, index: t, axis: n, direction: r }) => {
9830
9868
  let i = e[t];
9831
9869
  if (!i) return null;
9832
- let { bounds: a } = i, { start: o, end: s } = Wi({
9870
+ let { bounds: a } = i, { start: o, end: s } = Ki({
9833
9871
  bounds: a,
9834
9872
  axis: n
9835
9873
  });
@@ -9837,7 +9875,7 @@ var ki = class {
9837
9875
  for (let r = t - 1; r >= 0; --r) {
9838
9876
  let t = e[r];
9839
9877
  if (!t) continue;
9840
- let { bounds: i } = t, { end: a } = Wi({
9878
+ let { bounds: i } = t, { end: a } = Ki({
9841
9879
  bounds: i,
9842
9880
  axis: n
9843
9881
  });
@@ -9848,26 +9886,26 @@ var ki = class {
9848
9886
  for (let r = t + 1; r < e.length; r += 1) {
9849
9887
  let t = e[r];
9850
9888
  if (!t) continue;
9851
- let { bounds: i } = t, { start: a } = Wi({
9889
+ let { bounds: i } = t, { start: a } = Ki({
9852
9890
  bounds: i,
9853
9891
  axis: n
9854
9892
  });
9855
9893
  if (a - s >= 0) return r;
9856
9894
  }
9857
9895
  return null;
9858
- }, qi = ({ items: e }) => {
9896
+ }, Yi = ({ items: e }) => {
9859
9897
  for (let t = 0; t < e.length; t += 1) {
9860
9898
  let { isActive: n } = e[t];
9861
9899
  if (n) return t;
9862
9900
  }
9863
9901
  return -1;
9864
- }, Ji = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
9902
+ }, Xi = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
9865
9903
  let i = Math.min(t, n), a = Math.max(t, n);
9866
9904
  return e >= i - r && e <= a + r;
9867
- }, 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 }) => {
9868
9906
  let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
9869
9907
  return n === i && r === a;
9870
- }, Zi = ({ options: e }) => {
9908
+ }, $i = ({ options: e }) => {
9871
9909
  let t = e[0];
9872
9910
  for (let n = 1; n < e.length; n += 1) {
9873
9911
  let r = e[n];
@@ -9878,11 +9916,11 @@ var ki = class {
9878
9916
  r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
9879
9917
  }
9880
9918
  return t;
9881
- }, Qi = ({ currentOption: e, nextOption: t }) => {
9919
+ }, ea = ({ currentOption: e, nextOption: t }) => {
9882
9920
  if (!e) return !0;
9883
9921
  let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
9884
9922
  return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
9885
- }, $i = ({ options: e }) => {
9923
+ }, ta = ({ options: e }) => {
9886
9924
  let t = [], n = null, r = null;
9887
9925
  for (let i of e) {
9888
9926
  let { kind: e, side: a } = i;
@@ -9890,18 +9928,18 @@ var ki = class {
9890
9928
  t.push(i);
9891
9929
  continue;
9892
9930
  }
9893
- a === "before" && Qi({
9931
+ a === "before" && ea({
9894
9932
  currentOption: n,
9895
9933
  nextOption: i
9896
- }) && (n = i), a === "after" && Qi({
9934
+ }) && (n = i), a === "after" && ea({
9897
9935
  currentOption: r,
9898
9936
  nextOption: i
9899
9937
  }) && (r = i);
9900
9938
  }
9901
9939
  return n && t.push(n), r && t.push(r), t;
9902
- }, ea = ({ options: e, side: t, baseOption: n }) => {
9940
+ }, na = ({ options: e, side: t, baseOption: n }) => {
9903
9941
  let r = null;
9904
- for (let i of e) if (i.side === t && Xi({
9942
+ for (let i of e) if (i.side === t && Qi({
9905
9943
  baseOption: n,
9906
9944
  candidateOption: i
9907
9945
  })) {
@@ -9912,63 +9950,63 @@ var ki = class {
9912
9950
  !r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
9913
9951
  }
9914
9952
  return r;
9915
- }, ta = ({ option: e }) => {
9953
+ }, ra = ({ option: e }) => {
9916
9954
  let { side: t, kind: n, guide: { distance: r } } = e;
9917
9955
  return {
9918
9956
  side: t,
9919
9957
  kind: n,
9920
9958
  distance: r
9921
9959
  };
9922
- }, na = ({ option: e, context: t }) => {
9960
+ }, ia = ({ option: e, context: t }) => {
9923
9961
  let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
9924
9962
  return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
9925
- }, ra = ({ options: e, context: t }) => {
9963
+ }, aa = ({ options: e, context: t }) => {
9926
9964
  if (!t) return null;
9927
- for (let n of e) if (na({
9965
+ for (let n of e) if (ia({
9928
9966
  option: n,
9929
9967
  context: t
9930
9968
  })) return n;
9931
9969
  return null;
9932
- }, ia = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
9933
- let i = ra({
9970
+ }, oa = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
9971
+ let i = aa({
9934
9972
  options: e,
9935
9973
  context: n
9936
9974
  });
9937
9975
  if (!i) return t;
9938
9976
  let a = Math.max(0, r);
9939
9977
  return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
9940
- }, aa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
9978
+ }, sa = ({ guides: e, seenGuideKeys: t, guide: n }) => {
9941
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}`;
9942
9980
  t.has(u) || (t.add(u), e.push(n));
9943
- }, oa = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
9981
+ }, ca = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
9944
9982
  if (!e.length) return {
9945
9983
  delta: 0,
9946
9984
  guides: [],
9947
9985
  context: null
9948
9986
  };
9949
- let r = $i({ options: e }), i = [];
9987
+ let r = ta({ options: e }), i = [];
9950
9988
  for (let e of r) e.kind === "reference" && i.push(e);
9951
- let a = i.length > 0, o = a ? i : r, s = ia({
9989
+ let a = i.length > 0, o = a ? i : r, s = oa({
9952
9990
  options: o,
9953
- bestOption: Zi({ options: o }),
9991
+ bestOption: $i({ options: o }),
9954
9992
  previousContext: t,
9955
9993
  switchDistance: n
9956
- }), c = ea({
9994
+ }), c = na({
9957
9995
  options: o,
9958
9996
  side: "before",
9959
9997
  baseOption: s
9960
- }), l = ea({
9998
+ }), l = na({
9961
9999
  options: o,
9962
10000
  side: "after",
9963
10001
  baseOption: s
9964
- }), u = ea({
10002
+ }), u = na({
9965
10003
  options: a ? r : o,
9966
10004
  side: "center",
9967
10005
  baseOption: s
9968
10006
  }), d = [];
9969
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);
9970
10008
  let f = [], p = /* @__PURE__ */ new Set();
9971
- for (let e of d) aa({
10009
+ for (let e of d) sa({
9972
10010
  guides: f,
9973
10011
  seenGuideKeys: p,
9974
10012
  guide: e.guide
@@ -9976,15 +10014,15 @@ var ki = class {
9976
10014
  return {
9977
10015
  delta: s.delta,
9978
10016
  guides: f,
9979
- context: ta({ option: s })
10017
+ context: ra({ option: s })
9980
10018
  };
9981
- }, sa = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
9982
- 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({
9983
10021
  value: s,
9984
10022
  step: o
9985
10023
  }), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
9986
10024
  for (let d = -l; d <= l; d += 1) {
9987
- 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({
9988
10026
  firstDistance: m,
9989
10027
  secondDistance: h
9990
10028
  });
@@ -9999,13 +10037,13 @@ var ki = class {
9999
10037
  });
10000
10038
  }
10001
10039
  return u;
10002
- }, ca = ({ currentGap: e, referenceGap: t }) => {
10003
- let { secondDisplayDistance: n, displayDistanceDiff: r } = zi({
10040
+ }, ua = ({ currentGap: e, referenceGap: t }) => {
10041
+ let { secondDisplayDistance: n, displayDistanceDiff: r } = Vi({
10004
10042
  firstDistance: e,
10005
10043
  secondDistance: t
10006
10044
  });
10007
10045
  return r > 1 ? null : n;
10008
- }, la = ({ anchors: e, positions: t, threshold: n }) => {
10046
+ }, da = ({ anchors: e, positions: t, threshold: n }) => {
10009
10047
  let r = 0, i = n + 1, a = null;
10010
10048
  for (let o of t) for (let t of e) {
10011
10049
  let e = Math.abs(t - o);
@@ -10015,8 +10053,8 @@ var ki = class {
10015
10053
  delta: r,
10016
10054
  guidePosition: a
10017
10055
  };
10018
- }, ua = ({ activeBounds: e, threshold: t, anchors: n }) => {
10019
- 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({
10020
10058
  anchors: n.vertical,
10021
10059
  positions: [
10022
10060
  r,
@@ -10024,7 +10062,7 @@ var ki = class {
10024
10062
  i
10025
10063
  ],
10026
10064
  threshold: t
10027
- }), u = la({
10065
+ }), u = da({
10028
10066
  anchors: n.horizontal,
10029
10067
  positions: [
10030
10068
  o,
@@ -10044,11 +10082,11 @@ var ki = class {
10044
10082
  deltaY: u.delta,
10045
10083
  guides: d
10046
10084
  };
10047
- }, 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 }) => {
10048
10086
  let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
10049
10087
  for (let e of t) {
10050
10088
  let { left: t, right: n } = e;
10051
- Bi({
10089
+ Hi({
10052
10090
  firstStart: t,
10053
10091
  firstEnd: n,
10054
10092
  secondStart: l,
@@ -10068,22 +10106,22 @@ var ki = class {
10068
10106
  f.push({
10069
10107
  bounds: e,
10070
10108
  isActive: !0
10071
- }), Gi({
10109
+ }), qi({
10072
10110
  items: f,
10073
10111
  axis: "top"
10074
10112
  });
10075
- let p = qi({ items: f });
10113
+ let p = Yi({ items: f });
10076
10114
  if (p === -1) return {
10077
10115
  delta: 0,
10078
10116
  guides: [],
10079
10117
  context: null
10080
10118
  };
10081
- let m = [], h = c - s, g = Ki({
10119
+ let m = [], h = c - s, g = Ji({
10082
10120
  items: f,
10083
10121
  index: p,
10084
10122
  axis: "vertical",
10085
10123
  direction: "prev"
10086
- }), _ = Ki({
10124
+ }), _ = Ji({
10087
10125
  items: f,
10088
10126
  index: p,
10089
10127
  axis: "vertical",
@@ -10092,19 +10130,19 @@ var ki = class {
10092
10130
  if (v && y) {
10093
10131
  let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
10094
10132
  if (a >= 0) {
10095
- let e = Hi({
10133
+ let e = Wi({
10096
10134
  value: a / 2,
10097
10135
  step: 1
10098
10136
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
10099
10137
  if (Math.max(u, d) <= n) {
10100
- let t = sa({
10138
+ let t = la({
10101
10139
  activeStart: s,
10102
10140
  activeEnd: c,
10103
10141
  targetGap: e,
10104
10142
  beforeEdge: r,
10105
10143
  afterEdge: i,
10106
10144
  threshold: n,
10107
- step: Li
10145
+ step: zi
10108
10146
  });
10109
10147
  if (t) {
10110
10148
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -10141,16 +10179,16 @@ var ki = class {
10141
10179
  }
10142
10180
  for (let e of r) {
10143
10181
  let { axis: t, start: r, end: i, distance: a } = e;
10144
- if (!Ui({
10182
+ if (!Gi({
10145
10183
  value: a,
10146
10184
  step: .5
10147
- }) || !Ji({
10185
+ }) || !Xi({
10148
10186
  patternAxis: t,
10149
10187
  activeRangeStart: l,
10150
10188
  activeRangeEnd: u,
10151
10189
  tolerance: n
10152
10190
  })) continue;
10153
- let d = Yi({
10191
+ let d = Zi({
10154
10192
  patternStart: r,
10155
10193
  patternEnd: i,
10156
10194
  activeStart: s,
@@ -10158,12 +10196,12 @@ var ki = class {
10158
10196
  });
10159
10197
  if (d) {
10160
10198
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
10161
- let e = Hi({
10199
+ let e = Wi({
10162
10200
  value: a - b,
10163
10201
  step: 1
10164
10202
  }), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
10165
10203
  if (u > n) continue;
10166
- let d = ca({
10204
+ let d = ua({
10167
10205
  currentGap: l,
10168
10206
  referenceGap: a
10169
10207
  });
@@ -10187,12 +10225,12 @@ var ki = class {
10187
10225
  });
10188
10226
  }
10189
10227
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
10190
- let e = Hi({
10228
+ let e = Wi({
10191
10229
  value: x - a,
10192
10230
  step: 1
10193
10231
  }), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
10194
10232
  if (u > n) continue;
10195
- let d = ca({
10233
+ let d = ua({
10196
10234
  currentGap: l,
10197
10235
  referenceGap: a
10198
10236
  });
@@ -10217,16 +10255,16 @@ var ki = class {
10217
10255
  }
10218
10256
  }
10219
10257
  }
10220
- return oa({
10258
+ return ca({
10221
10259
  options: m,
10222
10260
  previousContext: i,
10223
10261
  switchDistance: a
10224
10262
  });
10225
- }, 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 }) => {
10226
10264
  let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
10227
10265
  for (let e of t) {
10228
10266
  let { top: t, bottom: n } = e;
10229
- Bi({
10267
+ Hi({
10230
10268
  firstStart: t,
10231
10269
  firstEnd: n,
10232
10270
  secondStart: l,
@@ -10246,22 +10284,22 @@ var ki = class {
10246
10284
  f.push({
10247
10285
  bounds: e,
10248
10286
  isActive: !0
10249
- }), Gi({
10287
+ }), qi({
10250
10288
  items: f,
10251
10289
  axis: "left"
10252
10290
  });
10253
- let p = qi({ items: f });
10291
+ let p = Yi({ items: f });
10254
10292
  if (p === -1) return {
10255
10293
  delta: 0,
10256
10294
  guides: [],
10257
10295
  context: null
10258
10296
  };
10259
- let m = [], h = c - s, g = Ki({
10297
+ let m = [], h = c - s, g = Ji({
10260
10298
  items: f,
10261
10299
  index: p,
10262
10300
  axis: "horizontal",
10263
10301
  direction: "prev"
10264
- }), _ = Ki({
10302
+ }), _ = Ji({
10265
10303
  items: f,
10266
10304
  index: p,
10267
10305
  axis: "horizontal",
@@ -10270,19 +10308,19 @@ var ki = class {
10270
10308
  if (v && y) {
10271
10309
  let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
10272
10310
  if (a >= 0) {
10273
- let e = Hi({
10311
+ let e = Wi({
10274
10312
  value: a / 2,
10275
10313
  step: 1
10276
10314
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
10277
10315
  if (Math.max(u, d) <= n) {
10278
- let t = sa({
10316
+ let t = la({
10279
10317
  activeStart: s,
10280
10318
  activeEnd: c,
10281
10319
  targetGap: e,
10282
10320
  beforeEdge: r,
10283
10321
  afterEdge: i,
10284
10322
  threshold: n,
10285
- step: Li
10323
+ step: zi
10286
10324
  });
10287
10325
  if (t) {
10288
10326
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -10319,16 +10357,16 @@ var ki = class {
10319
10357
  }
10320
10358
  for (let e of r) {
10321
10359
  let { axis: t, start: r, end: i, distance: a } = e;
10322
- if (!Ui({
10360
+ if (!Gi({
10323
10361
  value: a,
10324
10362
  step: .5
10325
- }) || !Ji({
10363
+ }) || !Xi({
10326
10364
  patternAxis: t,
10327
10365
  activeRangeStart: l,
10328
10366
  activeRangeEnd: u,
10329
10367
  tolerance: n
10330
10368
  })) continue;
10331
- let d = Yi({
10369
+ let d = Zi({
10332
10370
  patternStart: r,
10333
10371
  patternEnd: i,
10334
10372
  activeStart: s,
@@ -10336,12 +10374,12 @@ var ki = class {
10336
10374
  });
10337
10375
  if (d) {
10338
10376
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
10339
- let e = Hi({
10377
+ let e = Wi({
10340
10378
  value: a - b,
10341
10379
  step: 1
10342
10380
  }), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
10343
10381
  if (u > n) continue;
10344
- let d = ca({
10382
+ let d = ua({
10345
10383
  currentGap: l,
10346
10384
  referenceGap: a
10347
10385
  });
@@ -10365,12 +10403,12 @@ var ki = class {
10365
10403
  });
10366
10404
  }
10367
10405
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
10368
- let e = Hi({
10406
+ let e = Wi({
10369
10407
  value: x - a,
10370
10408
  step: 1
10371
10409
  }), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
10372
10410
  if (u > n) continue;
10373
- let d = ca({
10411
+ let d = ua({
10374
10412
  currentGap: l,
10375
10413
  referenceGap: a
10376
10414
  });
@@ -10395,20 +10433,20 @@ var ki = class {
10395
10433
  }
10396
10434
  }
10397
10435
  }
10398
- return oa({
10436
+ return ca({
10399
10437
  options: m,
10400
10438
  previousContext: i,
10401
10439
  switchDistance: a
10402
10440
  });
10403
- }, pa = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
10404
- 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({
10405
10443
  activeBounds: e,
10406
10444
  candidates: t,
10407
10445
  threshold: n,
10408
10446
  patterns: r.vertical,
10409
10447
  previousContext: o,
10410
10448
  switchDistance: a
10411
- }), l = fa({
10449
+ }), l = ma({
10412
10450
  activeBounds: e,
10413
10451
  candidates: t,
10414
10452
  threshold: n,
@@ -10427,14 +10465,14 @@ var ki = class {
10427
10465
  horizontal: l.context
10428
10466
  }
10429
10467
  };
10430
- }, 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 }) => {
10431
10469
  let o = Math.min(a, r / 2, i / 2);
10432
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();
10433
- }, 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 }) => {
10434
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;
10435
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";
10436
10474
  let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
10437
- e.beginPath(), ma({
10475
+ e.beginPath(), ga({
10438
10476
  context: e,
10439
10477
  x: w,
10440
10478
  y: T,
@@ -10442,11 +10480,11 @@ var ki = class {
10442
10480
  height: C,
10443
10481
  radius: v
10444
10482
  }), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
10445
- }, ga = ({ context: e, guide: t, zoom: n }) => {
10446
- 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();
10447
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();
10448
- let d = Ii;
10449
- ha({
10486
+ let d = Ri;
10487
+ _a({
10450
10488
  context: e,
10451
10489
  type: r,
10452
10490
  axis: i,
@@ -10456,7 +10494,7 @@ var ki = class {
10456
10494
  zoom: n,
10457
10495
  color: d,
10458
10496
  lineWidth: 1
10459
- }), ha({
10497
+ }), _a({
10460
10498
  context: e,
10461
10499
  type: r,
10462
10500
  axis: i,
@@ -10467,10 +10505,10 @@ var ki = class {
10467
10505
  color: d,
10468
10506
  lineWidth: 1
10469
10507
  });
10470
- }, _a = ({ anchors: e, bounds: t }) => {
10508
+ }, ya = ({ anchors: e, bounds: t }) => {
10471
10509
  let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
10472
10510
  e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
10473
- }, va = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
10511
+ }, ba = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
10474
10512
  let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
10475
10513
  for (let e = 0; e < s.length; e += 1) {
10476
10514
  let c = s[e], l = null, u = Infinity;
@@ -10491,35 +10529,35 @@ var ki = class {
10491
10529
  });
10492
10530
  }
10493
10531
  return i;
10494
- }, ya = ({ bounds: e }) => ({
10495
- vertical: va({
10532
+ }, xa = ({ bounds: e }) => ({
10533
+ vertical: ba({
10496
10534
  bounds: e,
10497
10535
  axis: "centerX",
10498
10536
  type: "vertical",
10499
10537
  primaryStart: "top",
10500
10538
  primaryEnd: "bottom"
10501
10539
  }),
10502
- horizontal: va({
10540
+ horizontal: ba({
10503
10541
  bounds: e,
10504
10542
  axis: "centerY",
10505
10543
  type: "horizontal",
10506
10544
  primaryStart: "left",
10507
10545
  primaryEnd: "right"
10508
10546
  })
10509
- }), ba = [
10547
+ }), Sa = [
10510
10548
  "montage-area",
10511
10549
  "background",
10512
10550
  "interaction-blocker"
10513
- ], xa = ({ activeObject: t }) => {
10551
+ ], Ca = ({ activeObject: t }) => {
10514
10552
  let n = /* @__PURE__ */ new Set();
10515
10553
  return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
10516
- }, Sa = ({ object: e, excluded: t, ignoredIds: n = ba }) => {
10554
+ }, wa = ({ object: e, excluded: t, ignoredIds: n = Sa }) => {
10517
10555
  if (t.has(e)) return !0;
10518
10556
  let { visible: r = !0 } = e;
10519
10557
  if (!r) return !0;
10520
10558
  let { id: i } = e;
10521
10559
  return !!(i && n.includes(i));
10522
- }, Ca = class e {
10560
+ }, Ta = class e {
10523
10561
  constructor({ editor: e }) {
10524
10562
  this.anchors = {
10525
10563
  vertical: [],
@@ -10572,7 +10610,7 @@ var ki = class {
10572
10610
  this._clearSpacingContexts(), this._clearGuides();
10573
10611
  return;
10574
10612
  }
10575
- 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({
10576
10614
  activeBounds: a,
10577
10615
  threshold: c,
10578
10616
  anchors: this.anchors
@@ -10584,7 +10622,7 @@ var ki = class {
10584
10622
  top: t + u
10585
10623
  }), n.setCoords(), a = Ht({ object: n }) ?? a;
10586
10624
  }
10587
- 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({
10588
10626
  activeBounds: a,
10589
10627
  candidates: d,
10590
10628
  threshold: f,
@@ -10605,11 +10643,11 @@ var ki = class {
10605
10643
  target: n,
10606
10644
  transform: i
10607
10645
  });
10608
- let h = Ht({ object: n }) ?? a, g = ua({
10646
+ let h = Ht({ object: n }) ?? a, g = fa({
10609
10647
  activeBounds: h,
10610
10648
  threshold: c,
10611
10649
  anchors: this.anchors
10612
- }), _ = pa({
10650
+ }), _ = ha({
10613
10651
  activeBounds: h,
10614
10652
  candidates: d,
10615
10653
  threshold: c,
@@ -10840,9 +10878,9 @@ var ki = class {
10840
10878
  let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
10841
10879
  if (!n) return;
10842
10880
  let { left: r, right: i, top: a, bottom: o } = t ?? this._calculateViewportBounds(), { viewportTransform: s } = e, c = e.getZoom() || 1;
10843
- 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]);
10844
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();
10845
- for (let e of this.activeSpacingGuides) ga({
10883
+ for (let e of this.activeSpacingGuides) va({
10846
10884
  context: n,
10847
10885
  guide: e,
10848
10886
  zoom: c
@@ -11053,14 +11091,14 @@ var ki = class {
11053
11091
  }, r = [];
11054
11092
  for (let e of t) {
11055
11093
  let t = Ht({ object: e });
11056
- t && (_a({
11094
+ t && (ya({
11057
11095
  anchors: n,
11058
11096
  bounds: t
11059
11097
  }), r.push(t));
11060
11098
  }
11061
11099
  let { montageArea: i } = this.editor, a = Ht({ object: i });
11062
11100
  if (a) {
11063
- _a({
11101
+ ya({
11064
11102
  anchors: n,
11065
11103
  bounds: a
11066
11104
  });
@@ -11072,12 +11110,12 @@ var ki = class {
11072
11110
  bottom: i
11073
11111
  };
11074
11112
  } else this.guideBounds = this._calculateViewportBounds();
11075
- this.anchors = n, this.spacingPatterns = ya({ bounds: r }), this.cachedTargetBounds = r;
11113
+ this.anchors = n, this.spacingPatterns = xa({ bounds: r }), this.cachedTargetBounds = r;
11076
11114
  }
11077
11115
  _collectTargets({ activeObject: e }) {
11078
- let t = xa({ activeObject: e }), n = [];
11116
+ let t = Ca({ activeObject: e }), n = [];
11079
11117
  return this.canvas.forEachObject((e) => {
11080
- Sa({
11118
+ wa({
11081
11119
  object: e,
11082
11120
  excluded: t
11083
11121
  }) || n.push(e);
@@ -11100,7 +11138,7 @@ var ki = class {
11100
11138
  bottom: (r - s) / a
11101
11139
  };
11102
11140
  }
11103
- }, wa = "#3D8BF4", Ta = class e {
11141
+ }, Ea = "#3D8BF4", Da = class e {
11104
11142
  constructor({ editor: e }) {
11105
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();
11106
11144
  }
@@ -11193,8 +11231,8 @@ var ki = class {
11193
11231
  this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
11194
11232
  }
11195
11233
  static _resolveTarget({ event: e, activeObject: t }) {
11196
- let { target: n } = e, r = xa({ activeObject: t });
11197
- return n && !Sa({
11234
+ let { target: n } = e, r = Ca({ activeObject: t });
11235
+ return n && !wa({
11198
11236
  object: n,
11199
11237
  excluded: r
11200
11238
  }) ? n : null;
@@ -11311,18 +11349,18 @@ var ki = class {
11311
11349
  let { canvas: e } = this, t = e.getSelectionContext();
11312
11350
  if (!t) return;
11313
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;
11314
- 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([]);
11315
11353
  for (let e of this.activeGuides) {
11316
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;
11317
- 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({
11318
11356
  context: t,
11319
11357
  type: n,
11320
11358
  axis: i,
11321
11359
  start: a,
11322
11360
  end: c,
11323
- text: Ri({ distance: l }).toString(),
11361
+ text: Bi({ distance: l }).toString(),
11324
11362
  zoom: r,
11325
- color: wa,
11363
+ color: Ea,
11326
11364
  lineWidth: 1,
11327
11365
  offsetAlongAxis: d,
11328
11366
  offsetPerpendicular: 0
@@ -11340,13 +11378,13 @@ var ki = class {
11340
11378
  let { toolbar: e } = this.editor;
11341
11379
  e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
11342
11380
  }
11343
- }, Ea = class e {
11381
+ }, Oa = class e {
11344
11382
  constructor(e, t) {
11345
11383
  this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
11346
11384
  }
11347
11385
  async init() {
11348
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;
11349
- 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({
11350
11388
  editor: this,
11351
11389
  options: this.options
11352
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) {
@@ -11454,7 +11492,7 @@ var ki = class {
11454
11492
  "U+A640-A69F",
11455
11493
  "U+FE2E-FE2F",
11456
11494
  "U+2116"
11457
- ].join(", "), Da = {
11495
+ ].join(", "), ka = {
11458
11496
  preserveObjectStacking: !0,
11459
11497
  controlsAboveOverlay: !0,
11460
11498
  centeredRotation: !0,
@@ -12308,20 +12346,20 @@ var ki = class {
12308
12346
  };
12309
12347
  //#endregion
12310
12348
  //#region src/main.ts
12311
- function Oa(e, t = {}) {
12349
+ function Aa(e, t = {}) {
12312
12350
  let n = {
12313
- ...Da,
12351
+ ...ka,
12314
12352
  ...t
12315
12353
  }, r = document.getElementById(e);
12316
12354
  if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
12317
12355
  let i = document.createElement("canvas");
12318
12356
  return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
12319
12357
  n._onReadyCallback = t;
12320
- let r = new Ea(i.id, n);
12358
+ let r = new Oa(i.id, n);
12321
12359
  window[e] = r;
12322
12360
  });
12323
12361
  }
12324
12362
  //#endregion
12325
- export { Oa as default };
12363
+ export { Aa as default };
12326
12364
 
12327
12365
  //# sourceMappingURL=main.js.map