@anu3ev/fabric-image-editor 0.8.20 → 0.8.21

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 +736 -718
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -3637,7 +3637,7 @@ var Gt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
3637
3637
  centerPoint: n,
3638
3638
  flags: r
3639
3639
  });
3640
- }, Kt = "ai-generation-overlay", qt = 1080, Jt = Math.PI * 2, Yt = 40, Xt = 8, Zt = Xt / 2, Qt = (qt - Yt * Xt) / (Yt + 1), $t = Xt + Qt, en = .18, tn = .58, nn = "rgba(136, 136, 136, 0.5)", rn = "rgba(255, 255, 255, 0.92)", an = [
3640
+ }, Kt = "ai-generation-overlay", qt = 1080, Jt = Math.PI * 2, Yt = 40, Xt = 8, Zt = Xt / 2, Qt = (qt - Yt * Xt) / (Yt + 1), $t = Qt + Zt, en = Xt + Qt, tn = Yt * 16, nn = .18, rn = .58, an = "rgba(136, 136, 136, 0.5)", on = "#ffffff", sn = [
3641
3641
  {
3642
3642
  rx: 540,
3643
3643
  ry: 430,
@@ -3699,50 +3699,41 @@ var Gt = ({ canvas: e, options: t = {}, centerPoint: n, flags: r = {} }) => {
3699
3699
  seed: 5.37
3700
3700
  }
3701
3701
  ];
3702
- function on({ value: e, min: t = 0, max: n = 1 }) {
3702
+ function cn({ value: e, min: t = 0, max: n = 1 }) {
3703
3703
  return Math.max(t, Math.min(n, e));
3704
3704
  }
3705
- function sn({ from: e, to: t, progress: n }) {
3705
+ function ln({ from: e, to: t, progress: n }) {
3706
3706
  return e + (t - e) * n;
3707
3707
  }
3708
- function cn({ edgeStart: e, edgeEnd: t, value: n }) {
3709
- let r = on({ value: (n - e) / (t - e) });
3708
+ function un({ edgeStart: e, edgeEnd: t, value: n }) {
3709
+ let r = cn({ value: (n - e) / (t - e) });
3710
3710
  return r * r * (3 - 2 * r);
3711
3711
  }
3712
- function ln({ time: e, seed: t }) {
3713
- return on({ value: .5 + .5 * (.53 * Math.sin(e * .73 + t * 11.17) + .29 * Math.sin(e * 1.37 + t * 7.13 + 1.1) + .18 * Math.sin(e * 2.21 + t * 3.97 + 2.4)) });
3714
- }
3715
- function un() {
3716
- let e = [];
3717
- for (let t = 0; t < Yt; t += 1) for (let n = 0; n < Yt; n += 1) e.push({
3718
- x: Qt + Zt + n * $t,
3719
- y: Qt + Zt + t * $t
3720
- });
3721
- return e;
3722
- }
3723
- var dn = un();
3724
- function fn({ blob: e, time: t }) {
3725
- let n = t * e.speed, r = t * e.pulseSpeed + e.seed * 3.1, i = -e.travelPadX, a = qt + e.travelPadX, o = -e.travelPadY, s = qt + e.travelPadY, c = ln({
3726
- time: n,
3727
- seed: e.seed + .11
3728
- }), l = ln({
3729
- time: n * .93 + 7.3,
3730
- seed: e.seed + .67
3731
- }), u = sn({
3732
- from: i,
3733
- to: a,
3734
- progress: c
3735
- }), d = sn({
3736
- from: o,
3737
- to: s,
3712
+ function dn({ time: e, seed: t }) {
3713
+ return cn({ value: .5 + .5 * (.53 * Math.sin(e * .73 + t * 11.17) + .29 * Math.sin(e * 1.37 + t * 7.13 + 1.1) + .18 * Math.sin(e * 2.21 + t * 3.97 + 2.4)) });
3714
+ }
3715
+ function fn({ animationSize: e, blob: t, time: n }) {
3716
+ let r = n * t.speed, i = n * t.pulseSpeed + t.seed * 3.1, a = -t.travelPadX, o = e.width + t.travelPadX, s = -t.travelPadY, c = e.height + t.travelPadY, l = dn({
3717
+ time: r,
3718
+ seed: t.seed + .11
3719
+ }), u = dn({
3720
+ time: r * .93 + 7.3,
3721
+ seed: t.seed + .67
3722
+ }), d = ln({
3723
+ from: a,
3724
+ to: o,
3738
3725
  progress: l
3726
+ }), f = ln({
3727
+ from: s,
3728
+ to: c,
3729
+ progress: u
3739
3730
  });
3740
- return u += Math.sin(n * .57 + e.seed * 5.4) * e.jitterX * 1.8, u += Math.sin(n * 2.6 + e.seed * 9.1) * e.jitterX, d += Math.cos(n * .49 + e.seed * 6.2) * e.jitterY * 1.8, d += Math.cos(n * 2.1 + e.seed * 7.7) * e.jitterY, {
3741
- x: u,
3742
- y: d,
3743
- rx: e.rx * (.88 + .24 * (.5 + .5 * Math.sin(r))),
3744
- ry: e.ry * (.88 + .24 * (.5 + .5 * Math.cos(r * 1.07))),
3745
- weight: e.weight
3731
+ return d += Math.sin(r * .57 + t.seed * 5.4) * t.jitterX * 1.8, d += Math.sin(r * 2.6 + t.seed * 9.1) * t.jitterX, f += Math.cos(r * .49 + t.seed * 6.2) * t.jitterY * 1.8, f += Math.cos(r * 2.1 + t.seed * 7.7) * t.jitterY, {
3732
+ x: d,
3733
+ y: f,
3734
+ rx: t.rx * (.88 + .24 * (.5 + .5 * Math.sin(i))),
3735
+ ry: t.ry * (.88 + .24 * (.5 + .5 * Math.cos(i * 1.07))),
3736
+ weight: t.weight
3746
3737
  };
3747
3738
  }
3748
3739
  function pn({ state: e, dot: t }) {
@@ -3756,35 +3747,58 @@ function mn({ dot: e, states: t, time: n }) {
3756
3747
  dot: e
3757
3748
  });
3758
3749
  let i = .98 + .02 * Math.sin(e.x * .012 + e.y * .01 + n * 3.1);
3759
- return cn({
3760
- edgeStart: en,
3761
- edgeEnd: tn,
3750
+ return un({
3751
+ edgeStart: nn,
3752
+ edgeEnd: rn,
3762
3753
  value: r
3763
3754
  }) * i;
3764
3755
  }
3765
- function hn({ ctx: e, time: t }) {
3766
- let n = an.map((e) => fn({
3756
+ function hn({ size: e }) {
3757
+ let t = Math.min(e.width, e.height) / qt;
3758
+ return {
3759
+ animationSize: {
3760
+ width: e.width / t,
3761
+ height: e.height / t
3762
+ },
3763
+ animationToOverlayScale: t
3764
+ };
3765
+ }
3766
+ function gn({ size: e }) {
3767
+ let t = Math.floor((e - 2 * $t) / en) + 1, n = Math.max(1, Math.min(tn, t));
3768
+ return {
3769
+ count: n,
3770
+ start: (e - (n - 1) * en) / 2
3771
+ };
3772
+ }
3773
+ function _n({ ctx: e, size: t, time: n }) {
3774
+ let { animationSize: r, animationToOverlayScale: i } = hn({ size: t }), a = gn({ size: r.width }), o = gn({ size: r.height }), s = t.width / 2, c = t.height / 2, l = sn.map((e) => fn({
3775
+ animationSize: r,
3767
3776
  blob: e,
3768
- time: t
3777
+ time: n
3769
3778
  }));
3770
- e.fillStyle = rn;
3771
- for (let r of dn) {
3772
- let i = mn({
3773
- dot: r,
3774
- states: n,
3775
- time: t
3779
+ e.fillStyle = on;
3780
+ for (let t = 0; t < o.count; t += 1) for (let r = 0; r < a.count; r += 1) {
3781
+ let u = {
3782
+ x: a.start + r * en,
3783
+ y: o.start + t * en
3784
+ }, d = mn({
3785
+ dot: u,
3786
+ states: l,
3787
+ time: n
3776
3788
  });
3777
- i <= .01 || (e.beginPath(), e.arc(r.x, r.y, Zt * Math.min(i, 1), 0, Jt), e.fill());
3789
+ if (d <= .01) continue;
3790
+ let f = u.x * i - s, p = u.y * i - c, m = Zt * Math.min(d, 1) * i;
3791
+ e.beginPath(), e.arc(f, p, m, 0, Jt), e.fill();
3778
3792
  }
3779
3793
  }
3780
- var gn = class extends _ {
3794
+ var vn = class extends _ {
3781
3795
  static {
3782
3796
  this.type = Kt;
3783
3797
  }
3784
3798
  constructor(e = {}) {
3785
3799
  super({
3786
3800
  ...e,
3787
- fill: nn,
3801
+ fill: an,
3788
3802
  objectCaching: !1
3789
3803
  }), this._animationFrameId = null, this._renderTimeMs = 0;
3790
3804
  }
@@ -3805,16 +3819,20 @@ var gn = class extends _ {
3805
3819
  }
3806
3820
  _render(e) {
3807
3821
  let t = this.width ?? 0, n = this.height ?? 0;
3808
- t <= 0 || n <= 0 || (e.save(), e.beginPath(), e.rect(-t / 2, -n / 2, t, n), e.clip(), e.fillStyle = nn, e.fillRect(-t / 2, -n / 2, t, n), e.translate(-t / 2, -n / 2), e.scale(t / qt, n / qt), hn({
3822
+ t <= 0 || n <= 0 || (e.save(), e.beginPath(), e.rect(-t / 2, -n / 2, t, n), e.clip(), e.fillStyle = an, e.fillRect(-t / 2, -n / 2, t, n), _n({
3809
3823
  ctx: e,
3824
+ size: {
3825
+ width: t,
3826
+ height: n
3827
+ },
3810
3828
  time: this._renderTimeMs / 1e3
3811
3829
  }), e.restore());
3812
3830
  }
3813
- }, _n = () => {
3814
- b?.setClass && b.setClass(gn, Kt);
3815
- }, vn = "default", yn = "overlay-mask", bn = class {
3831
+ }, yn = () => {
3832
+ b?.setClass && b.setClass(vn, Kt);
3833
+ }, bn = "default", xn = "overlay-mask", Sn = class {
3816
3834
  constructor({ editor: e }) {
3817
- _n(), this.editor = e, this.isBlocked = !1, this.overlayMask = null, this._overlayType = vn;
3835
+ yn(), this.editor = e, this.isBlocked = !1, this.overlayMask = null, this._overlayType = bn;
3818
3836
  }
3819
3837
  _getOverlayGeometry() {
3820
3838
  let { canvasManager: e } = this.editor, t = e.getMontageAreaSceneBounds();
@@ -3842,7 +3860,7 @@ var gn = class extends _ {
3842
3860
  hasControls: !1,
3843
3861
  excludeFromExport: !0,
3844
3862
  visible: !1,
3845
- id: yn
3863
+ id: xn
3846
3864
  };
3847
3865
  }
3848
3866
  _createDefaultOverlay() {
@@ -3857,11 +3875,11 @@ var gn = class extends _ {
3857
3875
  });
3858
3876
  }
3859
3877
  _createAiGenerationOverlay() {
3860
- let e = new gn(this._getOverlayBaseOptions());
3878
+ let e = new vn(this._getOverlayBaseOptions());
3861
3879
  return this.editor.canvas.add(e), e;
3862
3880
  }
3863
3881
  _stopOverlayAnimation() {
3864
- this.overlayMask instanceof gn && this.overlayMask.stopAnimation();
3882
+ this.overlayMask instanceof vn && this.overlayMask.stopAnimation();
3865
3883
  }
3866
3884
  _createOverlay({ overlay: e }) {
3867
3885
  let { canvas: t, historyManager: n } = this.editor;
@@ -3873,7 +3891,7 @@ var gn = class extends _ {
3873
3891
  }
3874
3892
  }
3875
3893
  _startOverlayAnimation() {
3876
- this.overlayMask instanceof gn && this.overlayMask.startAnimation({ canvas: this.editor.canvas });
3894
+ this.overlayMask instanceof vn && this.overlayMask.startAnimation({ canvas: this.editor.canvas });
3877
3895
  }
3878
3896
  ensureOverlay({ overlay: e = this._overlayType } = {}) {
3879
3897
  (!this.overlayMask || this._overlayType !== e) && this._createOverlay({ overlay: e }), this.overlayMask && (this.overlayMask.set(this._getOverlayGeometry()), this.overlayMask.visible = this.isBlocked, this.overlayMask.setCoords());
@@ -3889,7 +3907,7 @@ var gn = class extends _ {
3889
3907
  }
3890
3908
  }
3891
3909
  }
3892
- block({ overlay: e = vn } = {}) {
3910
+ block({ overlay: e = bn } = {}) {
3893
3911
  if (this.isBlocked) {
3894
3912
  this.ensureOverlay();
3895
3913
  return;
@@ -3918,7 +3936,7 @@ var gn = class extends _ {
3918
3936
  }
3919
3937
  n.flushDeferredSaveAfterUnblock();
3920
3938
  }
3921
- }, xn = class e {
3939
+ }, Cn = class e {
3922
3940
  constructor({ editor: e }) {
3923
3941
  this.editor = e, this.backgroundObject = null;
3924
3942
  }
@@ -4226,7 +4244,7 @@ var gn = class extends _ {
4226
4244
  return e.color === n.color && Math.abs(e.offset - n.offset) < 1e-4;
4227
4245
  }) ? !1 : e.type === "linear" && t.type === "linear" ? Math.abs(e.coords.x1 - t.coords.x1) < 1e-4 && Math.abs(e.coords.y1 - t.coords.y1) < 1e-4 && Math.abs(e.coords.x2 - t.coords.x2) < 1e-4 && Math.abs(e.coords.y2 - t.coords.y2) < 1e-4 : e.type === "radial" && t.type === "radial" ? Math.abs(e.coords.x1 - t.coords.x1) < 1e-4 && Math.abs(e.coords.y1 - t.coords.y1) < 1e-4 && Math.abs(e.coords.x2 - t.coords.x2) < 1e-4 && Math.abs(e.coords.y2 - t.coords.y2) < 1e-4 && Math.abs(e.coords.r1 - t.coords.r1) < 1e-4 && Math.abs(e.coords.r2 - t.coords.r2) < 1e-4 : !1;
4228
4246
  }
4229
- }, Sn = class t {
4247
+ }, wn = class t {
4230
4248
  constructor({ editor: e }) {
4231
4249
  this.editor = e;
4232
4250
  }
@@ -4300,24 +4318,24 @@ var gn = class extends _ {
4300
4318
  e.sendObjectBackwards(t.obj);
4301
4319
  });
4302
4320
  }
4303
- }, Cn = 1, wn = 1e-4;
4321
+ }, Tn = 1, En = 1e-4;
4304
4322
  function K({ value: e }) {
4305
4323
  return Number(e.toFixed(4));
4306
4324
  }
4307
- function Tn({ rounding: e }) {
4325
+ function Dn({ rounding: e }) {
4308
4326
  return R({ rounding: e }) > 0;
4309
4327
  }
4310
- function En({ width: e, height: t, strokeWidth: n }) {
4328
+ function On({ width: e, height: t, strokeWidth: n }) {
4311
4329
  let r = Math.max(0, n ?? 0);
4312
4330
  return {
4313
- width: Math.max(Cn, e - r),
4314
- height: Math.max(Cn, t - r)
4331
+ width: Math.max(Tn, e - r),
4332
+ height: Math.max(Tn, t - r)
4315
4333
  };
4316
4334
  }
4317
- function Dn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4318
- let a = En({
4319
- width: Math.max(Cn, t),
4320
- height: Math.max(Cn, n),
4335
+ function kn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4336
+ let a = On({
4337
+ width: Math.max(Tn, t),
4338
+ height: Math.max(Tn, n),
4321
4339
  strokeWidth: i
4322
4340
  });
4323
4341
  if (e instanceof _) {
@@ -4336,7 +4354,7 @@ function Dn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4336
4354
  }), e.setCoords();
4337
4355
  return;
4338
4356
  }
4339
- let { width: o = Cn, height: s = Cn } = e, c = Math.max(Cn, o), l = Math.max(Cn, s);
4357
+ let { width: o = Tn, height: s = Tn } = e, c = Math.max(Tn, o), l = Math.max(Tn, s);
4340
4358
  e.set({
4341
4359
  scaleX: a.width / c,
4342
4360
  scaleY: a.height / l,
@@ -4346,7 +4364,7 @@ function Dn({ shape: e, width: t, height: n, rounding: r, strokeWidth: i }) {
4346
4364
  originY: "center"
4347
4365
  }), e.setCoords();
4348
4366
  }
4349
- function On({ shape: e, style: t }) {
4367
+ function An({ shape: e, style: t }) {
4350
4368
  let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = t, s = {
4351
4369
  strokeUniform: !0,
4352
4370
  strokeLineCap: "round",
@@ -4354,7 +4372,7 @@ function On({ shape: e, style: t }) {
4354
4372
  };
4355
4373
  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();
4356
4374
  }
4357
- function kn({ shape: e, style: t }) {
4375
+ function jn({ shape: e, style: t }) {
4358
4376
  let n = [e];
4359
4377
  for (let e = 0; e < n.length; e += 1) {
4360
4378
  let r = n[e];
@@ -4364,13 +4382,13 @@ function kn({ shape: e, style: t }) {
4364
4382
  t.opacity !== void 0 && r.set({ opacity: t.opacity }), r.setCoords();
4365
4383
  continue;
4366
4384
  }
4367
- On({
4385
+ An({
4368
4386
  shape: r,
4369
4387
  style: t
4370
4388
  });
4371
4389
  }
4372
4390
  }
4373
- function An({ points: e, closed: t }) {
4391
+ function Mn({ points: e, closed: t }) {
4374
4392
  if (e.length === 0) return "";
4375
4393
  let n = `M ${K({ value: e[0].x })} ${K({ value: e[0].y })}`;
4376
4394
  for (let t = 1; t < e.length; t += 1) {
@@ -4379,7 +4397,7 @@ function An({ points: e, closed: t }) {
4379
4397
  }
4380
4398
  return t && (n += " Z"), n;
4381
4399
  }
4382
- function jn({ previous: e, current: t, next: n, roundingRatio: r }) {
4400
+ function Nn({ previous: e, current: t, next: n, roundingRatio: r }) {
4383
4401
  let i = {
4384
4402
  x: e.x - t.x,
4385
4403
  y: e.y - t.y
@@ -4387,7 +4405,7 @@ function jn({ previous: e, current: t, next: n, roundingRatio: r }) {
4387
4405
  x: n.x - t.x,
4388
4406
  y: n.y - t.y
4389
4407
  }, o = Math.hypot(i.x, i.y), s = Math.hypot(a.x, a.y);
4390
- if (o <= wn || s <= wn) return {
4408
+ if (o <= En || s <= En) return {
4391
4409
  start: {
4392
4410
  x: K({ value: t.x }),
4393
4411
  y: K({ value: t.y })
@@ -4409,14 +4427,14 @@ function jn({ previous: e, current: t, next: n, roundingRatio: r }) {
4409
4427
  }
4410
4428
  };
4411
4429
  }
4412
- function Mn({ points: e, roundingRatio: t, closed: n }) {
4430
+ function Pn({ points: e, roundingRatio: t, closed: n }) {
4413
4431
  let r = e.length;
4414
4432
  if (r === 0) return "";
4415
4433
  if (!n && r === 1) {
4416
4434
  let t = e[0];
4417
4435
  return `M ${K({ value: t.x })} ${K({ value: t.y })}`;
4418
4436
  }
4419
- if (t <= 0) return An({
4437
+ if (t <= 0) return Mn({
4420
4438
  points: e,
4421
4439
  closed: n
4422
4440
  });
@@ -4424,7 +4442,7 @@ function Mn({ points: e, roundingRatio: t, closed: n }) {
4424
4442
  let n = [];
4425
4443
  for (let i = 0; i < r; i += 1) {
4426
4444
  let a = i === 0 ? r - 1 : i - 1, o = i === r - 1 ? 0 : i + 1;
4427
- n.push(jn({
4445
+ n.push(Nn({
4428
4446
  previous: e[a],
4429
4447
  current: e[i],
4430
4448
  next: e[o],
@@ -4438,13 +4456,13 @@ function Mn({ points: e, roundingRatio: t, closed: n }) {
4438
4456
  }
4439
4457
  return a += " Z", a;
4440
4458
  }
4441
- if (r === 2) return An({
4459
+ if (r === 2) return Mn({
4442
4460
  points: e,
4443
4461
  closed: !1
4444
4462
  });
4445
4463
  let i = `M ${K({ value: e[0].x })} ${K({ value: e[0].y })}`;
4446
4464
  for (let n = 1; n < r - 1; n += 1) {
4447
- let r = jn({
4465
+ let r = Nn({
4448
4466
  previous: e[n - 1],
4449
4467
  current: e[n],
4450
4468
  next: e[n + 1],
@@ -4455,8 +4473,8 @@ function Mn({ points: e, roundingRatio: t, closed: n }) {
4455
4473
  let a = e[r - 1];
4456
4474
  return i += ` L ${K({ value: a.x })} ${K({ value: a.y })}`, i;
4457
4475
  }
4458
- function Nn({ points: e, rounding: t, closed: n }) {
4459
- return new f(Mn({
4476
+ function Fn({ points: e, rounding: t, closed: n }) {
4477
+ return new f(Pn({
4460
4478
  points: e,
4461
4479
  roundingRatio: pe({ rounding: t }),
4462
4480
  closed: n
@@ -4467,8 +4485,8 @@ function Nn({ points: e, rounding: t, closed: n }) {
4467
4485
  top: 0
4468
4486
  });
4469
4487
  }
4470
- function Pn({ rounding: e }) {
4471
- return Tn({ rounding: e }) ? Nn({
4488
+ function In({ rounding: e }) {
4489
+ return Dn({ rounding: e }) ? Fn({
4472
4490
  points: [
4473
4491
  {
4474
4492
  x: 50,
@@ -4494,7 +4512,7 @@ function Pn({ rounding: e }) {
4494
4512
  top: 0
4495
4513
  });
4496
4514
  }
4497
- function Fn({ path: e }) {
4515
+ function Ln({ path: e }) {
4498
4516
  return new f(e, {
4499
4517
  originX: "center",
4500
4518
  originY: "center",
@@ -4502,8 +4520,8 @@ function Fn({ path: e }) {
4502
4520
  top: 0
4503
4521
  });
4504
4522
  }
4505
- function In({ path: e, rounding: t }) {
4506
- let n = Fn({ path: e }).path ?? [], r = w.makePathSimpler(n), i = [], a = !1;
4523
+ function Rn({ path: e, rounding: t }) {
4524
+ let n = Ln({ path: e }).path ?? [], r = w.makePathSimpler(n), i = [], a = !1;
4507
4525
  for (let e = 0; e < r.length; e += 1) {
4508
4526
  let t = r[e];
4509
4527
  if (!t) return null;
@@ -4523,19 +4541,19 @@ function In({ path: e, rounding: t }) {
4523
4541
  }
4524
4542
  return null;
4525
4543
  }
4526
- return i.length < 2 || a && i.length < 3 ? null : Nn({
4544
+ return i.length < 2 || a && i.length < 3 ? null : Fn({
4527
4545
  points: i,
4528
4546
  rounding: t,
4529
4547
  closed: a
4530
4548
  });
4531
4549
  }
4532
- function Ln({ path: e, rounding: t }) {
4533
- return Tn({ rounding: t }) && In({
4550
+ function zn({ path: e, rounding: t }) {
4551
+ return Dn({ rounding: t }) && Rn({
4534
4552
  path: e,
4535
4553
  rounding: R({ rounding: t })
4536
- }) || Fn({ path: e });
4554
+ }) || Ln({ path: e });
4537
4555
  }
4538
- function Rn({ points: e, type: t, rounding: n }) {
4556
+ function Bn({ points: e, type: t, rounding: n }) {
4539
4557
  let r = e.length > 0 ? e : [
4540
4558
  {
4541
4559
  x: 0,
@@ -4551,12 +4569,12 @@ function Rn({ points: e, type: t, rounding: n }) {
4551
4569
  }
4552
4570
  ], i = R({ rounding: n });
4553
4571
  if (i > 0) {
4554
- if (t === "polygon" && r.length >= 3) return Nn({
4572
+ if (t === "polygon" && r.length >= 3) return Fn({
4555
4573
  points: r,
4556
4574
  rounding: i,
4557
4575
  closed: !0
4558
4576
  });
4559
- if (t === "polyline" && r.length >= 2) return Nn({
4577
+ if (t === "polyline" && r.length >= 2) return Fn({
4560
4578
  points: r,
4561
4579
  rounding: i,
4562
4580
  closed: !1
@@ -4569,7 +4587,7 @@ function Rn({ points: e, type: t, rounding: n }) {
4569
4587
  top: 0
4570
4588
  });
4571
4589
  }
4572
- async function zn({ svg: e }) {
4590
+ async function Vn({ svg: e }) {
4573
4591
  let t = await S(e), n = w.groupSVGElements(t.objects, t.options);
4574
4592
  return n.set({
4575
4593
  originX: "center",
@@ -4578,7 +4596,7 @@ async function zn({ svg: e }) {
4578
4596
  top: 0
4579
4597
  }), n.setCoords(), n;
4580
4598
  }
4581
- async function Bn({ preset: e, rounding: t }) {
4599
+ async function Hn({ preset: e, rounding: t }) {
4582
4600
  switch (e.type) {
4583
4601
  case "rect": return new _({
4584
4602
  width: 100,
@@ -4596,22 +4614,22 @@ async function Bn({ preset: e, rounding: t }) {
4596
4614
  left: 0,
4597
4615
  top: 0
4598
4616
  });
4599
- case "triangle": return Pn({ rounding: t });
4600
- case "polygon": return Rn({
4617
+ case "triangle": return In({ rounding: t });
4618
+ case "polygon": return Bn({
4601
4619
  points: e.points,
4602
4620
  type: "polygon",
4603
4621
  rounding: t
4604
4622
  });
4605
- case "polyline": return Rn({
4623
+ case "polyline": return Bn({
4606
4624
  points: e.points,
4607
4625
  type: "polyline",
4608
4626
  rounding: t
4609
4627
  });
4610
- case "path": return Ln({
4628
+ case "path": return zn({
4611
4629
  path: e.path,
4612
4630
  rounding: t
4613
4631
  });
4614
- case "svg": return zn({ svg: e.svg });
4632
+ case "svg": return Vn({ svg: e.svg });
4615
4633
  default: return new _({
4616
4634
  width: 100,
4617
4635
  height: 100,
@@ -4622,15 +4640,15 @@ async function Bn({ preset: e, rounding: t }) {
4622
4640
  });
4623
4641
  }
4624
4642
  }
4625
- async function Vn({ preset: e, width: t, height: n, style: r, rounding: i }) {
4626
- let a = await Bn({
4643
+ async function Un({ preset: e, width: t, height: n, style: r, rounding: i }) {
4644
+ let a = await Hn({
4627
4645
  preset: e,
4628
4646
  rounding: i
4629
4647
  });
4630
- return kn({
4648
+ return jn({
4631
4649
  shape: a,
4632
4650
  style: r
4633
- }), Dn({
4651
+ }), kn({
4634
4652
  shape: a,
4635
4653
  width: t,
4636
4654
  height: n,
@@ -4647,30 +4665,30 @@ async function Vn({ preset: e, width: t, height: n, style: r, rounding: i }) {
4647
4665
  }
4648
4666
  //#endregion
4649
4667
  //#region src/editor/shape-manager/domain/shape-style.ts
4650
- var Hn = "#B4B7BD", Un = 0, Wn = 1;
4651
- function Gn({ options: e, fallback: t }) {
4668
+ var Wn = "#B4B7BD", Gn = 0, Kn = 1;
4669
+ function qn({ options: e, fallback: t }) {
4652
4670
  let { fill: n, stroke: r, strokeWidth: i, strokeDashArray: a, opacity: o } = e, s = a === void 0 ? t?.shapeStrokeDashArray : a;
4653
4671
  return {
4654
- fill: n ?? t?.shapeFill ?? Hn,
4672
+ fill: n ?? t?.shapeFill ?? Wn,
4655
4673
  stroke: r ?? t?.shapeStroke ?? null,
4656
- strokeWidth: i ?? t?.shapeStrokeWidth ?? Un,
4674
+ strokeWidth: i ?? t?.shapeStrokeWidth ?? Gn,
4657
4675
  strokeDashArray: s ?? null,
4658
- opacity: o ?? t?.shapeOpacity ?? Wn
4676
+ opacity: o ?? t?.shapeOpacity ?? Kn
4659
4677
  };
4660
4678
  }
4661
4679
  //#endregion
4662
4680
  //#region src/editor/shape-manager/layout/shape-layout-padding.ts
4663
- var Kn = .5, qn = 12;
4664
- function Jn({ width: e, padding: t }) {
4681
+ var Jn = .5, Yn = 12;
4682
+ function Xn({ width: e, padding: t }) {
4665
4683
  let n = Math.max(0, t.left), r = Math.max(0, t.right);
4666
4684
  return Math.max(1, e - n - r);
4667
4685
  }
4668
- function Yn({ text: e }) {
4686
+ function Zn({ text: e }) {
4669
4687
  return (e.text ?? "").trim().length > 0;
4670
4688
  }
4671
- function Xn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged: i }) {
4689
+ function Qn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged: i }) {
4672
4690
  let a = Math.max(0, e), o = Math.max(0, t), s = Math.max(0, n);
4673
- if (a + o <= s + Kn) return {
4691
+ if (a + o <= s + Jn) return {
4674
4692
  start: a,
4675
4693
  end: o
4676
4694
  };
@@ -4699,8 +4717,8 @@ function Xn({ start: e, end: t, maxTotalPadding: n, startChanged: r, endChanged:
4699
4717
  end: o * l
4700
4718
  };
4701
4719
  }
4702
- function Zn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i, startChanged: a, endChanged: o }) {
4703
- let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u = Xn({
4720
+ function $n({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i, startChanged: a, endChanged: o }) {
4721
+ let s = Math.max(0, n), c = Math.max(0, r), l = Math.max(0, i - s - c), u = Qn({
4704
4722
  start: Math.max(0, e),
4705
4723
  end: Math.max(0, t),
4706
4724
  maxTotalPadding: l,
@@ -4714,23 +4732,23 @@ function Zn({ start: e, end: t, insetStart: n, insetEnd: r, maxTotalPadding: i,
4714
4732
  appliedUserPaddingEnd: f
4715
4733
  };
4716
4734
  }
4717
- function Qn({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measureTextboxHeightForFrame: i }) {
4735
+ function er({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measureTextboxHeightForFrame: i }) {
4718
4736
  let a = Math.max(1, t), o = Math.max(a, n), s = Math.max(1, r);
4719
- if (!Yn({ text: e }) || i({
4737
+ if (!Zn({ text: e }) || i({
4720
4738
  text: e,
4721
4739
  frameWidth: a
4722
- }) <= s + Kn) return a;
4740
+ }) <= s + Jn) return a;
4723
4741
  if (i({
4724
4742
  text: e,
4725
4743
  frameWidth: o
4726
- }) > s + Kn) return o;
4744
+ }) > s + Jn) return o;
4727
4745
  let c = a, l = o;
4728
- for (let t = 0; t < qn; t += 1) {
4746
+ for (let t = 0; t < Yn; t += 1) {
4729
4747
  let t = (c + l) / 2;
4730
4748
  if (i({
4731
4749
  text: e,
4732
4750
  frameWidth: t
4733
- }) <= s + Kn) {
4751
+ }) <= s + Jn) {
4734
4752
  l = t;
4735
4753
  continue;
4736
4754
  }
@@ -4738,16 +4756,16 @@ function Qn({ text: e, minFrameWidth: t, maxFrameWidth: n, frameHeight: r, measu
4738
4756
  }
4739
4757
  return l;
4740
4758
  }
4741
- function $n({ text: e, width: t, availableTextFrameHeight: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4742
- let l = Math.max(1, t), u = Math.max(1, n), d = Yn({ text: e }) ? c({ text: e }) : 1, f = d;
4743
- a || (f = Qn({
4759
+ function tr({ text: e, width: t, availableTextFrameHeight: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4760
+ let l = Math.max(1, t), u = Math.max(1, n), d = Zn({ text: e }) ? c({ text: e }) : 1, f = d;
4761
+ a || (f = er({
4744
4762
  text: e,
4745
4763
  minFrameWidth: d,
4746
4764
  maxFrameWidth: l,
4747
4765
  frameHeight: u,
4748
4766
  measureTextboxHeightForFrame: s
4749
4767
  }));
4750
- let p = f + i.left + i.right, m = Math.max(0, l - f), h = Zn({
4768
+ let p = f + i.left + i.right, m = Math.max(0, l - f), h = $n({
4751
4769
  start: r.left,
4752
4770
  end: r.right,
4753
4771
  insetStart: i.left,
@@ -4768,8 +4786,8 @@ function $n({ text: e, width: t, availableTextFrameHeight: n, padding: r, intern
4768
4786
  requiredWidth: p
4769
4787
  };
4770
4788
  }
4771
- function er({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, changedPadding: i }) {
4772
- let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o = Zn({
4789
+ function nr({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, changedPadding: i }) {
4790
+ let a = Math.max(0, Math.max(1, n) - Math.max(1, r)), o = $n({
4773
4791
  start: e.top,
4774
4792
  end: e.bottom,
4775
4793
  insetStart: t.top,
@@ -4789,8 +4807,8 @@ function er({ padding: e, internalShapeTextInset: t, height: n, textHeight: r, c
4789
4807
  }
4790
4808
  };
4791
4809
  }
4792
- function tr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4793
- let l = Math.max(1, t), u = Math.max(1, n), d = V({ padding: r }), f = V({ padding: i }), p = !!o?.left || !!o?.right, m = !!o?.top || !!o?.bottom, h = !a && p && !m, g = f.top + f.bottom, _ = g + (h ? d.top + d.bottom : 0), v = $n({
4810
+ function rr({ text: e, width: t, height: n, padding: r, internalShapeTextInset: i, expandShapeHeightToFitText: a, changedPadding: o, measureTextboxHeightForFrame: s, resolveMinimumTextFrameWidth: c }) {
4811
+ let l = Math.max(1, t), u = Math.max(1, n), d = V({ padding: r }), f = V({ padding: i }), p = !!o?.left || !!o?.right, m = !!o?.top || !!o?.bottom, h = !a && p && !m, g = f.top + f.bottom, _ = g + (h ? d.top + d.bottom : 0), v = tr({
4794
4812
  text: e,
4795
4813
  width: l,
4796
4814
  availableTextFrameHeight: Math.max(1, u - _),
@@ -4800,7 +4818,7 @@ function tr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4800
4818
  changedPadding: o,
4801
4819
  measureTextboxHeightForFrame: s,
4802
4820
  resolveMinimumTextFrameWidth: c
4803
- }), y = Jn({
4821
+ }), y = Xn({
4804
4822
  width: l,
4805
4823
  padding: {
4806
4824
  top: 0,
@@ -4808,10 +4826,10 @@ function tr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4808
4826
  bottom: 0,
4809
4827
  left: v.appliedPadding.left
4810
4828
  }
4811
- }), b = Yn({ text: e }) ? s({
4829
+ }), b = Zn({ text: e }) ? s({
4812
4830
  text: e,
4813
4831
  frameWidth: y
4814
- }) : 1, x = d.top + d.bottom, S = a ? Math.max(u, b + g + x) : u, C = er({
4832
+ }) : 1, x = d.top + d.bottom, S = a ? Math.max(u, b + g + x) : u, C = nr({
4815
4833
  padding: d,
4816
4834
  internalShapeTextInset: f,
4817
4835
  height: S,
@@ -4837,14 +4855,14 @@ function tr({ text: e, width: t, height: n, padding: r, internalShapeTextInset:
4837
4855
  }
4838
4856
  //#endregion
4839
4857
  //#region src/editor/shape-manager/layout/shape-text-measurement.ts
4840
- var nr = 1, rr = .5, ir = 1e6;
4841
- function ar({ text: e, frameWidth: t, splitByGrapheme: n, requiresGraphemeSplit: r, measurementCache: i }) {
4842
- let a = Math.max(nr, t), o = xr({
4858
+ var ir = 1, ar = .5, or = 1e6;
4859
+ function sr({ text: e, frameWidth: t, splitByGrapheme: n, requiresGraphemeSplit: r, measurementCache: i }) {
4860
+ let a = Math.max(ir, t), o = Cr({
4843
4861
  frameWidth: a,
4844
4862
  splitByGrapheme: n
4845
4863
  }), s = i?.measurementsByKey.get(o);
4846
4864
  if (s) return s;
4847
- let c = _r({ text: e }), l = r ?? ur({
4865
+ let c = yr({ text: e }), l = r ?? fr({
4848
4866
  text: e,
4849
4867
  frameWidth: a,
4850
4868
  measurementCache: i
@@ -4856,24 +4874,24 @@ function ar({ text: e, frameWidth: t, splitByGrapheme: n, requiresGraphemeSplit:
4856
4874
  scaleX: 1,
4857
4875
  scaleY: 1
4858
4876
  }), e.initDimensions();
4859
- let u = hr({ text: e }), d = mr({ text: e }), f = {
4860
- measuredHeight: fr({ text: e }),
4877
+ let u = _r({ text: e }), d = gr({ text: e }), f = {
4878
+ measuredHeight: mr({ text: e }),
4861
4879
  renderedLineCount: u > 0 ? u : d,
4862
- longestLineWidth: Math.ceil(pr({ text: e })),
4880
+ longestLineWidth: Math.ceil(hr({ text: e })),
4863
4881
  requiresGraphemeSplit: l
4864
4882
  };
4865
- return vr({
4883
+ return br({
4866
4884
  text: e,
4867
4885
  state: c
4868
4886
  }), i?.measurementsByKey.set(o, f), f;
4869
4887
  }
4870
- function or({ text: e, frameWidth: t, wrapPolicy: n, measurementCache: r }) {
4871
- let i = mr({ text: e }), a = ur({
4888
+ function cr({ text: e, frameWidth: t, wrapPolicy: n, measurementCache: r }) {
4889
+ let i = gr({ text: e }), a = fr({
4872
4890
  text: e,
4873
4891
  frameWidth: t,
4874
4892
  wrapPolicy: n,
4875
4893
  measurementCache: r
4876
- }), o = ar({
4894
+ }), o = sr({
4877
4895
  text: e,
4878
4896
  frameWidth: t,
4879
4897
  splitByGrapheme: a,
@@ -4885,14 +4903,14 @@ function or({ text: e, frameWidth: t, wrapPolicy: n, measurementCache: r }) {
4885
4903
  longestLineWidth: o.longestLineWidth
4886
4904
  };
4887
4905
  }
4888
- function sr({ text: e, frameWidth: t, splitByGrapheme: n, wrapPolicy: r, measurementCache: i }) {
4889
- let a = n ?? ur({
4906
+ function lr({ text: e, frameWidth: t, splitByGrapheme: n, wrapPolicy: r, measurementCache: i }) {
4907
+ let a = n ?? fr({
4890
4908
  text: e,
4891
4909
  frameWidth: t,
4892
4910
  wrapPolicy: r,
4893
4911
  measurementCache: i
4894
4912
  });
4895
- return ar({
4913
+ return sr({
4896
4914
  text: e,
4897
4915
  frameWidth: t,
4898
4916
  splitByGrapheme: a,
@@ -4900,25 +4918,25 @@ function sr({ text: e, frameWidth: t, splitByGrapheme: n, wrapPolicy: r, measure
4900
4918
  measurementCache: i
4901
4919
  }).measuredHeight;
4902
4920
  }
4903
- function cr({ text: e, measurementCache: t }) {
4921
+ function ur({ text: e, measurementCache: t }) {
4904
4922
  if (t?.minimumTextFrameWidth !== null && t?.minimumTextFrameWidth !== void 0) return t.minimumTextFrameWidth;
4905
- let n = dr({
4923
+ let n = pr({
4906
4924
  text: e,
4907
- frameWidth: nr,
4925
+ frameWidth: ir,
4908
4926
  splitByGrapheme: !0,
4909
4927
  measurementCache: t
4910
- }), r = Math.max(nr, n);
4928
+ }), r = Math.max(ir, n);
4911
4929
  return t && (t.minimumTextFrameWidth = r), r;
4912
4930
  }
4913
- function lr({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
4931
+ function dr({ alignV: e, frameHeight: t, frameTop: n, textHeight: r }) {
4914
4932
  let i = Math.max(0, t - r);
4915
4933
  return e === "top" ? n : e === "bottom" ? n + i : n + i / 2;
4916
4934
  }
4917
- function ur({ text: e, frameWidth: t, wrapPolicy: n, measurementCache: r }) {
4935
+ function fr({ text: e, frameWidth: t, wrapPolicy: n, measurementCache: r }) {
4918
4936
  if (n === "words-only") return !1;
4919
- let i = Math.max(nr, t), a = br({ frameWidth: i }), o = r?.splitByGraphemeByFrameWidth.get(a);
4937
+ let i = Math.max(ir, t), a = Sr({ frameWidth: i }), o = r?.splitByGraphemeByFrameWidth.get(a);
4920
4938
  if (typeof o == "boolean") return o;
4921
- let s = _r({ text: e });
4939
+ let s = yr({ text: e });
4922
4940
  e.set({
4923
4941
  autoExpand: !1,
4924
4942
  width: i,
@@ -4926,70 +4944,70 @@ function ur({ text: e, frameWidth: t, wrapPolicy: n, measurementCache: r }) {
4926
4944
  scaleX: 1,
4927
4945
  scaleY: 1
4928
4946
  }), e.initDimensions();
4929
- let c = yr({ text: e }) > i + rr;
4930
- return vr({
4947
+ let c = xr({ text: e }) > i + ar;
4948
+ return br({
4931
4949
  text: e,
4932
4950
  state: s
4933
4951
  }), r?.splitByGraphemeByFrameWidth.set(a, c), c;
4934
4952
  }
4935
- function dr({ text: e, frameWidth: t, splitByGrapheme: n, measurementCache: r }) {
4936
- let i = r?.measurementsByKey.get(xr({
4953
+ function pr({ text: e, frameWidth: t, splitByGrapheme: n, measurementCache: r }) {
4954
+ let i = r?.measurementsByKey.get(Cr({
4937
4955
  frameWidth: t,
4938
4956
  splitByGrapheme: n
4939
4957
  }));
4940
4958
  if (i) return i.longestLineWidth;
4941
- let a = _r({ text: e });
4959
+ let a = yr({ text: e });
4942
4960
  e.set({
4943
4961
  autoExpand: !1,
4944
- width: Math.max(nr, t),
4962
+ width: Math.max(ir, t),
4945
4963
  splitByGrapheme: n,
4946
4964
  scaleX: 1,
4947
4965
  scaleY: 1
4948
4966
  }), e.initDimensions();
4949
- let o = pr({ text: e });
4950
- return vr({
4967
+ let o = hr({ text: e });
4968
+ return br({
4951
4969
  text: e,
4952
4970
  state: a
4953
4971
  }), o;
4954
4972
  }
4955
- function fr({ text: e }) {
4973
+ function mr({ text: e }) {
4956
4974
  let { height: t } = e;
4957
4975
  if (typeof t == "number" && Number.isFinite(t)) return t;
4958
4976
  if (typeof e.calcTextHeight == "function") {
4959
4977
  let t = e.calcTextHeight();
4960
4978
  if (typeof t == "number" && Number.isFinite(t)) return t;
4961
4979
  }
4962
- return nr;
4980
+ return ir;
4963
4981
  }
4964
- function pr({ text: e }) {
4965
- let t = hr({ text: e });
4966
- if (t > 0) return gr({
4982
+ function hr({ text: e }) {
4983
+ let t = _r({ text: e });
4984
+ if (t > 0) return vr({
4967
4985
  text: e,
4968
4986
  lineCount: t
4969
4987
  });
4970
4988
  let n = e.text ?? "";
4971
- return gr({
4989
+ return vr({
4972
4990
  text: e,
4973
4991
  lineCount: Math.max(n.split("\n").length, 1)
4974
4992
  });
4975
4993
  }
4976
- function mr({ text: e }) {
4994
+ function gr({ text: e }) {
4977
4995
  let t = e.text ?? "";
4978
4996
  return Math.max(t.split("\n").length, 1);
4979
4997
  }
4980
- function hr({ text: e }) {
4998
+ function _r({ text: e }) {
4981
4999
  let t = e;
4982
5000
  return Array.isArray(t.textLines) ? t.textLines.length : 0;
4983
5001
  }
4984
- function gr({ text: e, lineCount: t }) {
4985
- let n = nr;
5002
+ function vr({ text: e, lineCount: t }) {
5003
+ let n = ir;
4986
5004
  for (let r = 0; r < t; r += 1) {
4987
5005
  let t = e.getLineWidth(r);
4988
5006
  t > n && (n = t);
4989
5007
  }
4990
5008
  return n;
4991
5009
  }
4992
- function _r({ text: e }) {
5010
+ function yr({ text: e }) {
4993
5011
  let { autoExpand: t, splitByGrapheme: n, width: r, scaleX: i, scaleY: a } = e;
4994
5012
  return {
4995
5013
  autoExpand: t,
@@ -4999,25 +5017,25 @@ function _r({ text: e }) {
4999
5017
  scaleY: typeof a == "number" ? a : void 0
5000
5018
  };
5001
5019
  }
5002
- function vr({ text: e, state: t }) {
5020
+ function br({ text: e, state: t }) {
5003
5021
  let { autoExpand: n, splitByGrapheme: r, width: i, scaleX: a, scaleY: o } = t, s = {};
5004
5022
  n !== void 0 && (s.autoExpand = n), r !== void 0 && (s.splitByGrapheme = r), typeof i == "number" && (s.width = i), typeof a == "number" && (s.scaleX = a), typeof o == "number" && (s.scaleY = o), Object.keys(s).length > 0 && (e.set(s), e.initDimensions());
5005
5023
  }
5006
- function yr({ text: e }) {
5024
+ function xr({ text: e }) {
5007
5025
  let { dynamicMinWidth: t } = e;
5008
5026
  return typeof t == "number" && Number.isFinite(t) ? t : 0;
5009
5027
  }
5010
- function br({ frameWidth: e }) {
5011
- return String(Math.round(Math.max(nr, e) * ir) / ir);
5028
+ function Sr({ frameWidth: e }) {
5029
+ return String(Math.round(Math.max(ir, e) * or) / or);
5012
5030
  }
5013
- function xr({ frameWidth: e, splitByGrapheme: t }) {
5014
- return `${br({ frameWidth: e })}:${t ? 1 : 0}`;
5031
+ function Cr({ frameWidth: e, splitByGrapheme: t }) {
5032
+ return `${Sr({ frameWidth: e })}:${t ? 1 : 0}`;
5015
5033
  }
5016
5034
  //#endregion
5017
5035
  //#region src/editor/shape-manager/layout/shape-layout.ts
5018
- var q = 1, J = .5, Sr = 24, Cr = 20, wr = 16;
5019
- function Tr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, appliedUserPadding: a, wrapPolicy: o }) {
5020
- let { frame: s, splitByGrapheme: c, textTop: l } = Pr({
5036
+ var q = 1, J = .5, wr = 24, Tr = 20, Er = 16;
5037
+ function Dr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, appliedUserPadding: a, wrapPolicy: o }) {
5038
+ let { frame: s, splitByGrapheme: c, textTop: l } = Ir({
5021
5039
  text: e,
5022
5040
  width: n,
5023
5041
  height: r,
@@ -5036,8 +5054,8 @@ function Tr({ text: e, alignV: t, width: n, height: r, appliedPadding: i, applie
5036
5054
  wrapPolicy: o
5037
5055
  };
5038
5056
  }
5039
- var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a, internalShapeTextInset: o, resolveInternalShapeTextInset: s, preserveAspectRatio: c, shapeTextAutoExpandEnabled: l, montageAreaWidth: u, expandShapeHeightToFitText: d = !0, changedPadding: f }) => {
5040
- let { width: p, height: m, appliedPadding: h, appliedUserPadding: g } = c ? jr({
5057
+ var Or = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a, internalShapeTextInset: o, resolveInternalShapeTextInset: s, preserveAspectRatio: c, shapeTextAutoExpandEnabled: l, montageAreaWidth: u, expandShapeHeightToFitText: d = !0, changedPadding: f }) => {
5058
+ let { width: p, height: m, appliedPadding: h, appliedUserPadding: g } = c ? Nr({
5041
5059
  text: e,
5042
5060
  width: t,
5043
5061
  height: n,
@@ -5049,7 +5067,7 @@ var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a,
5049
5067
  montageAreaWidth: u,
5050
5068
  expandShapeHeightToFitText: d,
5051
5069
  changedPadding: f
5052
- }) : Br({
5070
+ }) : Hr({
5053
5071
  text: e,
5054
5072
  width: t,
5055
5073
  height: n,
@@ -5060,7 +5078,7 @@ var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a,
5060
5078
  expandShapeHeightToFitText: d,
5061
5079
  changedPadding: f
5062
5080
  });
5063
- return Tr({
5081
+ return Dr({
5064
5082
  text: e,
5065
5083
  alignV: r,
5066
5084
  width: p,
@@ -5069,18 +5087,18 @@ var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a,
5069
5087
  appliedUserPadding: g,
5070
5088
  wrapPolicy: a
5071
5089
  });
5072
- }, Dr = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a, internalShapeTextInset: o, resolveInternalShapeTextInset: s, expandShapeHeightToFitText: c = !0, changedPadding: l, measurementCache: u }) => {
5073
- let d = Ne({ padding: i }), f = V({ padding: o }), p = Math.max(q, t), m = Math.max(q, n), h = ({ text: e, frameWidth: t }) => sr({
5090
+ }, kr = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a, internalShapeTextInset: o, resolveInternalShapeTextInset: s, expandShapeHeightToFitText: c = !0, changedPadding: l, measurementCache: u }) => {
5091
+ let d = Ne({ padding: i }), f = V({ padding: o }), p = Math.max(q, t), m = Math.max(q, n), h = ({ text: e, frameWidth: t }) => lr({
5074
5092
  text: e,
5075
5093
  frameWidth: t,
5076
5094
  wrapPolicy: a,
5077
5095
  measurementCache: u
5078
- }), g = tr({
5096
+ }), g = rr({
5079
5097
  text: e,
5080
5098
  width: p,
5081
5099
  height: m,
5082
5100
  padding: d,
5083
- internalShapeTextInset: zr({
5101
+ internalShapeTextInset: Vr({
5084
5102
  width: p,
5085
5103
  height: m,
5086
5104
  internalShapeTextInset: f,
@@ -5089,20 +5107,20 @@ var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a,
5089
5107
  expandShapeHeightToFitText: c,
5090
5108
  changedPadding: l,
5091
5109
  measureTextboxHeightForFrame: h,
5092
- resolveMinimumTextFrameWidth: ({ text: e }) => cr({
5110
+ resolveMinimumTextFrameWidth: ({ text: e }) => ur({
5093
5111
  text: e,
5094
5112
  measurementCache: u
5095
5113
  })
5096
5114
  });
5097
- for (let t = 0; t < Sr; t += 1) {
5115
+ for (let t = 0; t < wr; t += 1) {
5098
5116
  let t = Math.max(m, g.requiredHeight);
5099
5117
  if (t <= m + J) break;
5100
- m = t, g = tr({
5118
+ m = t, g = rr({
5101
5119
  text: e,
5102
5120
  width: p,
5103
5121
  height: m,
5104
5122
  padding: d,
5105
- internalShapeTextInset: zr({
5123
+ internalShapeTextInset: Vr({
5106
5124
  width: p,
5107
5125
  height: m,
5108
5126
  internalShapeTextInset: f,
@@ -5111,13 +5129,13 @@ var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a,
5111
5129
  expandShapeHeightToFitText: c,
5112
5130
  changedPadding: l,
5113
5131
  measureTextboxHeightForFrame: h,
5114
- resolveMinimumTextFrameWidth: ({ text: e }) => cr({
5132
+ resolveMinimumTextFrameWidth: ({ text: e }) => ur({
5115
5133
  text: e,
5116
5134
  measurementCache: u
5117
5135
  })
5118
5136
  });
5119
5137
  }
5120
- return Tr({
5138
+ return Dr({
5121
5139
  text: e,
5122
5140
  alignV: r,
5123
5141
  width: p,
@@ -5127,9 +5145,9 @@ var Er = ({ text: e, width: t, height: n, alignV: r, padding: i, wrapPolicy: a,
5127
5145
  wrapPolicy: a
5128
5146
  });
5129
5147
  };
5130
- function Or({ group: e, shape: t, text: n, alignH: r, alignV: i, resolvedLayout: a }) {
5148
+ function Ar({ group: e, shape: t, text: n, alignH: r, alignV: i, resolvedLayout: a }) {
5131
5149
  let o = Math.max(q, e.shapeManualBaseWidth ?? a.width), s = Math.max(q, e.shapeManualBaseHeight ?? a.height), { width: c, height: l, appliedUserPadding: u, frame: d, splitByGrapheme: f, textTop: p, wrapPolicy: m } = a;
5132
- Dn({
5150
+ kn({
5133
5151
  shape: t,
5134
5152
  width: c,
5135
5153
  height: l,
@@ -5158,14 +5176,14 @@ function Or({ group: e, shape: t, text: n, alignH: r, alignV: i, resolvedLayout:
5158
5176
  scaleY: 1
5159
5177
  }), e.set("dirty", !0), e.setCoords();
5160
5178
  }
5161
- var kr = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, wrapPolicy: c, internalShapeTextInset: l, resolveInternalShapeTextInset: u, preserveAspectRatio: d, shapeTextAutoExpandEnabled: f, montageAreaWidth: p, expandShapeHeightToFitText: m = !0, changedPadding: h }) => {
5162
- Or({
5179
+ var jr = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, wrapPolicy: c, internalShapeTextInset: l, resolveInternalShapeTextInset: u, preserveAspectRatio: d, shapeTextAutoExpandEnabled: f, montageAreaWidth: p, expandShapeHeightToFitText: m = !0, changedPadding: h }) => {
5180
+ Ar({
5163
5181
  group: e,
5164
5182
  shape: t,
5165
5183
  text: n,
5166
5184
  alignH: a,
5167
5185
  alignV: o,
5168
- resolvedLayout: Er({
5186
+ resolvedLayout: Or({
5169
5187
  text: n,
5170
5188
  width: r,
5171
5189
  height: i,
@@ -5181,14 +5199,14 @@ var kr = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV:
5181
5199
  changedPadding: h
5182
5200
  })
5183
5201
  });
5184
- }, Ar = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, wrapPolicy: c, internalShapeTextInset: l, resolveInternalShapeTextInset: u, expandShapeHeightToFitText: d = !0, changedPadding: f }) => {
5185
- Or({
5202
+ }, Mr = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, padding: s, wrapPolicy: c, internalShapeTextInset: l, resolveInternalShapeTextInset: u, expandShapeHeightToFitText: d = !0, changedPadding: f }) => {
5203
+ Ar({
5186
5204
  group: e,
5187
5205
  shape: t,
5188
5206
  text: n,
5189
5207
  alignH: a,
5190
5208
  alignV: o,
5191
- resolvedLayout: Dr({
5209
+ resolvedLayout: kr({
5192
5210
  text: n,
5193
5211
  width: r,
5194
5212
  height: i,
@@ -5202,9 +5220,9 @@ var kr = ({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV:
5202
5220
  })
5203
5221
  });
5204
5222
  };
5205
- function jr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, shapeTextAutoExpandEnabled: s = !0, montageAreaWidth: c, expandShapeHeightToFitText: l = !0, changedPadding: u }) {
5223
+ function Nr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, shapeTextAutoExpandEnabled: s = !0, montageAreaWidth: c, expandShapeHeightToFitText: l = !0, changedPadding: u }) {
5206
5224
  let d = Math.max(q, t), f = Math.max(q, n), p = Number.isFinite(c) && (c ?? 0) > 0 ? Math.max(q, c ?? q) : null;
5207
- if (!Ir({ text: e })) return Br({
5225
+ if (!Rr({ text: e })) return Hr({
5208
5226
  text: e,
5209
5227
  width: d,
5210
5228
  height: f,
@@ -5216,7 +5234,7 @@ function jr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5216
5234
  changedPadding: u
5217
5235
  });
5218
5236
  let m = f / d, h = ({ width: t }) => {
5219
- let n = Math.max(q, t * m), s = Br({
5237
+ let n = Math.max(q, t * m), s = Hr({
5220
5238
  text: e,
5221
5239
  width: t,
5222
5240
  height: n,
@@ -5229,7 +5247,7 @@ function jr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5229
5247
  });
5230
5248
  return {
5231
5249
  candidateHeight: n,
5232
- frameWidth: Jn({
5250
+ frameWidth: Xn({
5233
5251
  width: t,
5234
5252
  padding: s.appliedPadding
5235
5253
  }),
@@ -5245,11 +5263,11 @@ function jr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5245
5263
  layoutResolution: n
5246
5264
  });
5247
5265
  }, t = p ? Math.max(d, p) : d;
5248
- e({ width: t }) || (t = Vr({
5266
+ e({ width: t }) || (t = Ur({
5249
5267
  minimumWidth: t,
5250
5268
  isWidthValid: e
5251
5269
  }));
5252
- let { layoutResolution: n } = h({ width: Hr({
5270
+ let { layoutResolution: n } = h({ width: Wr({
5253
5271
  minimumWidth: d,
5254
5272
  maximumWidth: t,
5255
5273
  isWidthValid: e
@@ -5262,21 +5280,21 @@ function jr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5262
5280
  candidateWidth: t,
5263
5281
  candidateHeight: r,
5264
5282
  layoutResolution: o
5265
- }) || n !== void 0 && a < n - J ? !1 : !or({
5283
+ }) || n !== void 0 && a < n - J ? !1 : !cr({
5266
5284
  text: e,
5267
5285
  frameWidth: a,
5268
5286
  wrapPolicy: i
5269
5287
  }).hasWrappedLines;
5270
- }, v = p ? Math.max(d, p) : Vr({
5288
+ }, v = p ? Math.max(d, p) : Ur({
5271
5289
  minimumWidth: d,
5272
5290
  isWidthValid: ({ width: e }) => _({ width: e })
5273
- }), y = h({ width: v }), b = or({
5291
+ }), y = h({ width: v }), b = cr({
5274
5292
  text: e,
5275
5293
  frameWidth: y.frameWidth,
5276
5294
  wrapPolicy: i
5277
5295
  });
5278
5296
  if (b.hasWrappedLines) return y.layoutResolution;
5279
- let x = Math.max(q, b.longestLineWidth), { layoutResolution: S } = h({ width: Hr({
5297
+ let x = Math.max(q, b.longestLineWidth), { layoutResolution: S } = h({ width: Wr({
5280
5298
  minimumWidth: d,
5281
5299
  maximumWidth: v,
5282
5300
  isWidthValid: ({ width: e }) => _({
@@ -5286,73 +5304,73 @@ function jr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5286
5304
  }) });
5287
5305
  return S;
5288
5306
  }
5289
- var Mr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, wrapPolicy: i, montageAreaWidth: a, resolvePaddingForWidth: o }) => {
5307
+ var Pr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, wrapPolicy: i, montageAreaWidth: a, resolvePaddingForWidth: o }) => {
5290
5308
  let s = Math.max(q, t), c = Math.max(q, n);
5291
- if (!Ir({ text: e })) return c;
5292
- let l = Math.max(c, Number.isFinite(a) && a > 0 ? Math.max(q, a) : Math.max(s, c)), u = Jn({
5309
+ if (!Rr({ text: e })) return c;
5310
+ let l = Math.max(c, Number.isFinite(a) && a > 0 ? Math.max(q, a) : Math.max(s, c)), u = Xn({
5293
5311
  width: l,
5294
- padding: Lr({
5312
+ padding: zr({
5295
5313
  width: l,
5296
5314
  padding: r,
5297
5315
  resolvePaddingForWidth: o
5298
5316
  })
5299
- }), d = l, f = or({
5317
+ }), d = l, f = cr({
5300
5318
  text: e,
5301
5319
  frameWidth: u,
5302
5320
  wrapPolicy: i
5303
5321
  });
5304
5322
  if (f.hasWrappedLines) return d;
5305
5323
  let p = Math.max(q, f.longestLineWidth);
5306
- return Hr({
5324
+ return Wr({
5307
5325
  minimumWidth: c,
5308
5326
  maximumWidth: d,
5309
5327
  isWidthValid: ({ width: t }) => {
5310
- let n = Jn({
5328
+ let n = Xn({
5311
5329
  width: t,
5312
- padding: Lr({
5330
+ padding: zr({
5313
5331
  width: t,
5314
5332
  padding: r,
5315
5333
  resolvePaddingForWidth: o
5316
5334
  })
5317
5335
  });
5318
- return n < p - J ? !1 : !or({
5336
+ return n < p - J ? !1 : !cr({
5319
5337
  text: e,
5320
5338
  frameWidth: n,
5321
5339
  wrapPolicy: i
5322
5340
  }).hasWrappedLines;
5323
5341
  }
5324
5342
  });
5325
- }, Nr = ({ text: e, padding: t, resolvePaddingForWidth: n, measurementCache: r }) => {
5326
- if (!Ir({ text: e })) return q;
5327
- let i = cr({
5343
+ }, Fr = ({ text: e, padding: t, resolvePaddingForWidth: n, measurementCache: r }) => {
5344
+ if (!Rr({ text: e })) return q;
5345
+ let i = ur({
5328
5346
  text: e,
5329
5347
  measurementCache: r
5330
- }), a = Math.max(q, i), o = ({ width: e }) => Jn({
5348
+ }), a = Math.max(q, i), o = ({ width: e }) => Xn({
5331
5349
  width: e,
5332
- padding: Lr({
5350
+ padding: zr({
5333
5351
  width: e,
5334
5352
  padding: t,
5335
5353
  resolvePaddingForWidth: n
5336
5354
  })
5337
5355
  }) >= i - J;
5338
- return Hr({
5356
+ return Wr({
5339
5357
  minimumWidth: a,
5340
- maximumWidth: Vr({
5358
+ maximumWidth: Ur({
5341
5359
  minimumWidth: a,
5342
5360
  isWidthValid: o
5343
5361
  }),
5344
5362
  isWidthValid: o
5345
5363
  });
5346
- }, Pr = ({ text: e, width: t, height: n, alignV: r, wrapPolicy: i, padding: a }) => {
5347
- let o = Ur({
5364
+ }, Ir = ({ text: e, width: t, height: n, alignV: r, wrapPolicy: i, padding: a }) => {
5365
+ let o = Gr({
5348
5366
  width: Math.max(q, t),
5349
5367
  height: Math.max(q, n),
5350
5368
  padding: V({ padding: a })
5351
- }), s = ur({
5369
+ }), s = fr({
5352
5370
  text: e,
5353
5371
  frameWidth: o.width,
5354
5372
  wrapPolicy: i
5355
- }), c = sr({
5373
+ }), c = lr({
5356
5374
  text: e,
5357
5375
  frameWidth: o.width,
5358
5376
  splitByGrapheme: s,
@@ -5361,26 +5379,26 @@ var Mr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, wrapPolicy: i
5361
5379
  return {
5362
5380
  frame: o,
5363
5381
  splitByGrapheme: s,
5364
- textTop: lr({
5382
+ textTop: dr({
5365
5383
  alignV: r,
5366
5384
  frameHeight: o.height,
5367
5385
  frameTop: o.top,
5368
5386
  textHeight: c
5369
5387
  })
5370
5388
  };
5371
- }, Fr = ({ text: e, width: t, height: n, padding: r, wrapPolicy: i, resolvePaddingForSize: a, measurementCache: o }) => {
5389
+ }, Lr = ({ text: e, width: t, height: n, padding: r, wrapPolicy: i, resolvePaddingForSize: a, measurementCache: o }) => {
5372
5390
  let s = Math.max(q, n);
5373
- if (!Ir({ text: e })) return s;
5391
+ if (!Rr({ text: e })) return s;
5374
5392
  let c = Math.max(q, t), l = s;
5375
- for (let t = 0; t < Sr; t += 1) {
5376
- let t = Rr({
5393
+ for (let t = 0; t < wr; t += 1) {
5394
+ let t = Br({
5377
5395
  width: c,
5378
5396
  height: l,
5379
5397
  padding: r,
5380
5398
  resolvePaddingForSize: a
5381
- }), n = sr({
5399
+ }), n = lr({
5382
5400
  text: e,
5383
- frameWidth: Jn({
5401
+ frameWidth: Xn({
5384
5402
  width: c,
5385
5403
  padding: t
5386
5404
  }),
@@ -5392,35 +5410,35 @@ var Mr = ({ text: e, currentWidth: t, minimumWidth: n, padding: r, wrapPolicy: i
5392
5410
  }
5393
5411
  return l;
5394
5412
  };
5395
- function Ir({ text: e }) {
5413
+ function Rr({ text: e }) {
5396
5414
  return (e.text ?? "").trim().length > 0;
5397
5415
  }
5398
- function Lr({ width: e, padding: t, resolvePaddingForWidth: n }) {
5416
+ function zr({ width: e, padding: t, resolvePaddingForWidth: n }) {
5399
5417
  return V(n ? { padding: n({ width: Math.max(q, e) }) } : { padding: t });
5400
5418
  }
5401
- function Rr({ width: e, height: t, padding: n, resolvePaddingForSize: r }) {
5419
+ function Br({ width: e, height: t, padding: n, resolvePaddingForSize: r }) {
5402
5420
  return V(r ? { padding: r({
5403
5421
  width: Math.max(q, e),
5404
5422
  height: Math.max(q, t)
5405
5423
  }) } : { padding: n });
5406
5424
  }
5407
- function zr({ width: e, height: t, internalShapeTextInset: n, resolveInternalShapeTextInset: r }) {
5425
+ function Vr({ width: e, height: t, internalShapeTextInset: n, resolveInternalShapeTextInset: r }) {
5408
5426
  return V(r ? { padding: r({
5409
5427
  width: Math.max(q, e),
5410
5428
  height: Math.max(q, t)
5411
5429
  }) } : { padding: n });
5412
5430
  }
5413
- function Br({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, expandShapeHeightToFitText: s = !0, changedPadding: c }) {
5414
- let l = Ne({ padding: r }), u = V({ padding: a }), d = Math.max(q, t), f = Math.max(q, n), p = ({ text: e, frameWidth: t }) => sr({
5431
+ function Hr({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalShapeTextInset: a, resolveInternalShapeTextInset: o, expandShapeHeightToFitText: s = !0, changedPadding: c }) {
5432
+ let l = Ne({ padding: r }), u = V({ padding: a }), d = Math.max(q, t), f = Math.max(q, n), p = ({ text: e, frameWidth: t }) => lr({
5415
5433
  text: e,
5416
5434
  frameWidth: t,
5417
5435
  wrapPolicy: i
5418
- }), m = tr({
5436
+ }), m = rr({
5419
5437
  text: e,
5420
5438
  width: d,
5421
5439
  height: f,
5422
5440
  padding: l,
5423
- internalShapeTextInset: zr({
5441
+ internalShapeTextInset: Vr({
5424
5442
  width: d,
5425
5443
  height: f,
5426
5444
  internalShapeTextInset: u,
@@ -5429,17 +5447,17 @@ function Br({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5429
5447
  expandShapeHeightToFitText: s,
5430
5448
  changedPadding: c,
5431
5449
  measureTextboxHeightForFrame: p,
5432
- resolveMinimumTextFrameWidth: cr
5450
+ resolveMinimumTextFrameWidth: ur
5433
5451
  });
5434
- for (let t = 0; t < Sr; t += 1) {
5452
+ for (let t = 0; t < wr; t += 1) {
5435
5453
  let t = Math.max(d, m.requiredWidth), n = Math.max(f, m.requiredHeight);
5436
5454
  if (t <= d + J && n <= f + J) break;
5437
- d = t, f = n, m = tr({
5455
+ d = t, f = n, m = rr({
5438
5456
  text: e,
5439
5457
  width: d,
5440
5458
  height: f,
5441
5459
  padding: l,
5442
- internalShapeTextInset: zr({
5460
+ internalShapeTextInset: Vr({
5443
5461
  width: d,
5444
5462
  height: f,
5445
5463
  internalShapeTextInset: u,
@@ -5448,7 +5466,7 @@ function Br({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5448
5466
  expandShapeHeightToFitText: s,
5449
5467
  changedPadding: c,
5450
5468
  measureTextboxHeightForFrame: p,
5451
- resolveMinimumTextFrameWidth: cr
5469
+ resolveMinimumTextFrameWidth: ur
5452
5470
  });
5453
5471
  }
5454
5472
  return {
@@ -5458,17 +5476,17 @@ function Br({ text: e, width: t, height: n, padding: r, wrapPolicy: i, internalS
5458
5476
  appliedUserPadding: m.appliedUserPadding
5459
5477
  };
5460
5478
  }
5461
- function Vr({ minimumWidth: e, isWidthValid: t }) {
5479
+ function Ur({ minimumWidth: e, isWidthValid: t }) {
5462
5480
  let n = Math.max(q, e);
5463
5481
  if (t({ width: n })) return n;
5464
- for (let e = 0; e < wr; e += 1) if (n = Math.max(n + 1, n * 2), t({ width: n })) return n;
5482
+ for (let e = 0; e < Er; e += 1) if (n = Math.max(n + 1, n * 2), t({ width: n })) return n;
5465
5483
  return n;
5466
5484
  }
5467
- function Hr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5485
+ function Wr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5468
5486
  let r = Math.max(q, e), i = Math.max(r, t);
5469
5487
  if (n({ width: r })) return r;
5470
5488
  if (!n({ width: i })) return i;
5471
- for (let e = 0; e < Cr && !(i - r <= J); e += 1) {
5489
+ for (let e = 0; e < Tr && !(i - r <= J); e += 1) {
5472
5490
  let e = r + (i - r) / 2;
5473
5491
  if (n({ width: e })) {
5474
5492
  i = e;
@@ -5478,7 +5496,7 @@ function Hr({ minimumWidth: e, maximumWidth: t, isWidthValid: n }) {
5478
5496
  }
5479
5497
  return i;
5480
5498
  }
5481
- function Ur({ width: e, height: t, padding: n }) {
5499
+ function Gr({ width: e, height: t, padding: n }) {
5482
5500
  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);
5483
5501
  return {
5484
5502
  left: -e / 2 + r,
@@ -5489,12 +5507,12 @@ function Ur({ width: e, height: t, padding: n }) {
5489
5507
  }
5490
5508
  //#endregion
5491
5509
  //#region src/editor/shape-manager/scaling/shape-scaling-transform.ts
5492
- var Wr = ({ transform: e, key: t }) => {
5510
+ var Kr = ({ transform: e, key: t }) => {
5493
5511
  let n = e?.original;
5494
5512
  if (!n || typeof n != "object") return null;
5495
5513
  let r = n[t];
5496
5514
  return typeof r != "number" || !Number.isFinite(r) ? null : r;
5497
- }, Gr = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Kr = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Y = ({ transform: e }) => {
5515
+ }, qr = ({ value: e }) => e === "left" || e === "center" || e === "right" || typeof e == "number" && Number.isFinite(e) ? e : null, Jr = ({ value: e }) => e === "top" || e === "center" || e === "bottom" || typeof e == "number" && Number.isFinite(e) ? e : null, Y = ({ transform: e }) => {
5498
5516
  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;
5499
5517
  return {
5500
5518
  canScaleWidth: o,
@@ -5502,37 +5520,37 @@ var Wr = ({ transform: e, key: t }) => {
5502
5520
  isCornerScaleAction: r,
5503
5521
  isVerticalOnlyScale: s && !o
5504
5522
  };
5505
- }, qr = ({ event: e, target: t, transform: n, canvas: r }) => {
5523
+ }, Yr = ({ event: e, target: t, transform: n, canvas: r }) => {
5506
5524
  if (!e) return null;
5507
5525
  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;
5508
5526
  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;
5509
- }, Jr = ({ group: e, originX: t, originY: n }) => {
5527
+ }, Xr = ({ group: e, originX: t, originY: n }) => {
5510
5528
  if (t === null || n === null) return null;
5511
5529
  let r = e, i = typeof r.getRelativeCenterPoint == "function" ? r.getRelativeCenterPoint() : e.getCenterPoint();
5512
5530
  return typeof r.translateToOriginPoint == "function" ? r.translateToOriginPoint(i, t, n) : i;
5513
- }, Yr = ({ state: e, transform: t }) => {
5531
+ }, Zr = ({ state: e, transform: t }) => {
5514
5532
  if (!t || e.startTransformOriginX === null && e.startTransformOriginY === null) return !1;
5515
- let n = Gr({ value: t.originX }), r = Kr({ value: t.originY });
5533
+ let n = qr({ value: t.originX }), r = Jr({ value: t.originY });
5516
5534
  return n !== e.startTransformOriginX || r !== e.startTransformOriginY;
5517
- }, Xr = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
5535
+ }, Qr = ({ state: e, transform: t }) => !t || !e.startTransformCorner ? !1 : t.corner !== e.startTransformCorner;
5518
5536
  //#endregion
5519
5537
  //#region src/editor/shape-manager/scaling/shape-scaling-preview.ts
5520
- function Zr({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
5538
+ function $r({ size: e, scale: t, strokeWidth: n, minSize: r, scaleEpsilon: i }) {
5521
5539
  let a = Math.max(i, Math.abs(t) || 1), o = Math.max(0, n);
5522
5540
  return o <= 0 ? Math.max(r, e / a) : Math.max(r, e / a + o - o / a);
5523
5541
  }
5524
- function Qr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
5542
+ function ei({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, minSize: o, scaleEpsilon: s }) {
5525
5543
  let c = Math.max(0, e.shapeStrokeWidth ?? 0);
5526
- Dn({
5544
+ kn({
5527
5545
  shape: t,
5528
- width: Zr({
5546
+ width: $r({
5529
5547
  size: n,
5530
5548
  scale: i,
5531
5549
  strokeWidth: c,
5532
5550
  minSize: o,
5533
5551
  scaleEpsilon: s
5534
5552
  }),
5535
- height: Zr({
5553
+ height: $r({
5536
5554
  size: r,
5537
5555
  scale: a,
5538
5556
  strokeWidth: c,
@@ -5543,7 +5561,7 @@ function Qr({ group: e, shape: t, width: n, height: r, scaleX: i, scaleY: a, min
5543
5561
  strokeWidth: c
5544
5562
  });
5545
5563
  }
5546
- function $r({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon: a }) {
5564
+ function ti({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon: a }) {
5547
5565
  let o = Math.max(a, Math.abs(r) || 1), s = Math.max(a, Math.abs(i) || 1), c = n ?? "center";
5548
5566
  e.set({
5549
5567
  autoExpand: !1,
@@ -5558,13 +5576,13 @@ function $r({ text: e, layout: t, alignH: n, scaleX: r, scaleY: i, scaleEpsilon:
5558
5576
  scaleY: 1 / s
5559
5577
  }), e.initDimensions(), e.setCoords();
5560
5578
  }
5561
- var ei = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY: o, minSize: s, scaleEpsilon: c }) => {
5579
+ var ni = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY: o, minSize: s, scaleEpsilon: c }) => {
5562
5580
  let l = Math.max(c, Math.abs(a) || 1), u = Math.max(c, Math.abs(o) || 1);
5563
5581
  e.set({
5564
5582
  width: r.width / l,
5565
5583
  height: r.height / u,
5566
5584
  dirty: !0
5567
- }), Qr({
5585
+ }), ei({
5568
5586
  group: e,
5569
5587
  shape: t,
5570
5588
  width: r.width,
@@ -5573,7 +5591,7 @@ var ei = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5573
5591
  scaleY: o,
5574
5592
  minSize: s,
5575
5593
  scaleEpsilon: c
5576
- }), $r({
5594
+ }), ti({
5577
5595
  text: n,
5578
5596
  layout: r,
5579
5597
  alignH: i,
@@ -5581,23 +5599,23 @@ var ei = ({ group: e, shape: t, text: n, layout: r, alignH: i, scaleX: a, scaleY
5581
5599
  scaleY: o,
5582
5600
  scaleEpsilon: c
5583
5601
  });
5584
- }, X = 1e-4, ti = .5;
5585
- function ni({ isProportionalScaling: e }) {
5602
+ }, X = 1e-4, ri = .5;
5603
+ function ii({ isProportionalScaling: e }) {
5586
5604
  if (e) return "words-only";
5587
5605
  }
5588
- function ri({ width: e, height: t }) {
5606
+ function ai({ width: e, height: t }) {
5589
5607
  return `${Math.round(Math.max(1, e) * 1e6) / 1e6}:${Math.round(Math.max(1, t) * 1e6) / 1e6}`;
5590
5608
  }
5591
- function ii({ width: e, padding: t }) {
5609
+ function oi({ width: e, padding: t }) {
5592
5610
  return Math.max(1, e - Math.max(0, t.left) - Math.max(0, t.right));
5593
5611
  }
5594
- function ai({ height: e, padding: t }) {
5612
+ function si({ height: e, padding: t }) {
5595
5613
  return Math.max(1, e - Math.max(0, t.top) - Math.max(0, t.bottom));
5596
5614
  }
5597
- function oi({ text: e }) {
5615
+ function ci({ text: e }) {
5598
5616
  return (e.text ?? "").trim().length > 0;
5599
5617
  }
5600
- function si({ height: e }) {
5618
+ function li({ height: e }) {
5601
5619
  return {
5602
5620
  measuredHeight: e,
5603
5621
  renderedLineCount: 0,
@@ -5606,7 +5624,7 @@ function si({ height: e }) {
5606
5624
  isValid: !0
5607
5625
  };
5608
5626
  }
5609
- function ci({ group: e }) {
5627
+ function ui({ group: e }) {
5610
5628
  return Ne({ padding: {
5611
5629
  top: e.shapePaddingTop,
5612
5630
  right: e.shapePaddingRight,
@@ -5614,7 +5632,7 @@ function ci({ group: e }) {
5614
5632
  left: e.shapePaddingLeft
5615
5633
  } });
5616
5634
  }
5617
- function li({ group: e, width: t, height: n }) {
5635
+ function di({ group: e, width: t, height: n }) {
5618
5636
  let r = e.shapePresetKey ?? "", i = r ? we({ presetKey: r }) : null;
5619
5637
  return Le({
5620
5638
  baseInset: i ? De({
@@ -5627,33 +5645,33 @@ function li({ group: e, width: t, height: n }) {
5627
5645
  });
5628
5646
  }
5629
5647
  function Z({ group: e, width: t, height: n }) {
5630
- return li({
5648
+ return di({
5631
5649
  group: e,
5632
5650
  width: Math.max(1, t ?? e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? 1),
5633
5651
  height: Math.max(1, n ?? e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? 1)
5634
5652
  });
5635
5653
  }
5636
- function ui({ group: e, text: t, width: n, height: r, measurementCache: i, constraintCache: a }) {
5637
- let o = Math.max(1, n), s = Math.max(1, r), c = ri({
5654
+ function fi({ group: e, text: t, width: n, height: r, measurementCache: i, constraintCache: a }) {
5655
+ let o = Math.max(1, n), s = Math.max(1, r), c = ai({
5638
5656
  width: o,
5639
5657
  height: s
5640
5658
  }), l = a?.get(c);
5641
5659
  if (l) return l;
5642
- if (!oi({ text: t })) {
5643
- let e = si({ height: s });
5660
+ if (!ci({ text: t })) {
5661
+ let e = li({ height: s });
5644
5662
  return a?.set(c, e), e;
5645
5663
  }
5646
5664
  let u = Z({
5647
5665
  group: e,
5648
5666
  width: o,
5649
5667
  height: s
5650
- }), d = ii({
5668
+ }), d = oi({
5651
5669
  width: o,
5652
5670
  padding: u
5653
- }), f = ai({
5671
+ }), f = si({
5654
5672
  height: s,
5655
5673
  padding: u
5656
- }), p = ar({
5674
+ }), p = sr({
5657
5675
  text: t,
5658
5676
  frameWidth: d,
5659
5677
  splitByGrapheme: !1,
@@ -5664,9 +5682,9 @@ function ui({ group: e, text: t, width: n, height: r, measurementCache: i, const
5664
5682
  };
5665
5683
  return a?.set(c, m), m;
5666
5684
  }
5667
- function di({ group: e, text: t, state: n }) {
5685
+ function pi({ group: e, text: t, state: n }) {
5668
5686
  let { startHeight: r, startWidth: i, startScaleX: a, startScaleY: o, lastAllowedScaleX: s, lastAllowedScaleY: c } = n, l = Math.max(1 / i, 1 / r), u = Math.max(l, a, o, s, c), d = ({ scale: a }) => {
5669
- let o = ui({
5687
+ let o = fi({
5670
5688
  group: e,
5671
5689
  text: t,
5672
5690
  width: Math.max(1, i * a),
@@ -5697,8 +5715,8 @@ function di({ group: e, text: t, state: n }) {
5697
5715
  minimumHeight: g
5698
5716
  };
5699
5717
  }
5700
- function fi({ group: e, text: t, width: n, padding: r, wrapPolicy: i, measurementCache: a }) {
5701
- return Fr({
5718
+ function mi({ group: e, text: t, width: n, padding: r, wrapPolicy: i, measurementCache: a }) {
5719
+ return Lr({
5702
5720
  text: t,
5703
5721
  width: n,
5704
5722
  height: 1,
@@ -5712,8 +5730,8 @@ function fi({ group: e, text: t, width: n, padding: r, wrapPolicy: i, measuremen
5712
5730
  })
5713
5731
  });
5714
5732
  }
5715
- function pi({ group: e, text: t, constraintPadding: n, startDimensions: r, appliedScaleX: i, appliedScaleY: a, minimumHeight: o, wrapPolicy: s, measurementCache: c }) {
5716
- let l = r.canScaleWidth ? Math.max(1, r.startWidth * i) : r.startWidth, u = r.canScaleHeight ? Math.max(1, r.startHeight * a) : r.startManualBaseHeight, d = o ?? Fr({
5733
+ function hi({ group: e, text: t, constraintPadding: n, startDimensions: r, appliedScaleX: i, appliedScaleY: a, minimumHeight: o, wrapPolicy: s, measurementCache: c }) {
5734
+ let l = r.canScaleWidth ? Math.max(1, r.startWidth * i) : r.startWidth, u = r.canScaleHeight ? Math.max(1, r.startHeight * a) : r.startManualBaseHeight, d = o ?? Lr({
5717
5735
  text: t,
5718
5736
  width: l,
5719
5737
  height: u,
@@ -5731,25 +5749,25 @@ function pi({ group: e, text: t, constraintPadding: n, startDimensions: r, appli
5731
5749
  previewHeight: Math.max(u, d)
5732
5750
  };
5733
5751
  }
5734
- function mi({ group: e, text: t, state: n, appliedScaleX: r, appliedScaleY: i, minimumHeight: a }) {
5735
- let o = n.canScaleWidth ? Math.max(1, n.startWidth * r) : n.startWidth, s = n.canScaleHeight ? Math.max(1, n.startHeight * i) : n.startManualBaseHeight, c = a == null ? s : Math.max(s, a), l = !n.canScaleHeight, u = ni({ isProportionalScaling: n.isProportionalScaling });
5736
- return Dr({
5752
+ function gi({ group: e, text: t, state: n, appliedScaleX: r, appliedScaleY: i, minimumHeight: a }) {
5753
+ let o = n.canScaleWidth ? Math.max(1, n.startWidth * r) : n.startWidth, s = n.canScaleHeight ? Math.max(1, n.startHeight * i) : n.startManualBaseHeight, c = a == null ? s : Math.max(s, a), l = !n.canScaleHeight, u = ii({ isProportionalScaling: n.isProportionalScaling });
5754
+ return kr({
5737
5755
  text: t,
5738
5756
  width: o,
5739
5757
  height: c,
5740
5758
  alignV: e.shapeAlignVertical ?? "middle",
5741
- padding: ci({ group: e }),
5759
+ padding: ui({ group: e }),
5742
5760
  wrapPolicy: u,
5743
5761
  expandShapeHeightToFitText: l,
5744
5762
  measurementCache: n.previewTextMeasurementCache ?? void 0,
5745
- resolveInternalShapeTextInset: ({ width: t, height: n }) => li({
5763
+ resolveInternalShapeTextInset: ({ width: t, height: n }) => di({
5746
5764
  group: e,
5747
5765
  width: t,
5748
5766
  height: n
5749
5767
  })
5750
5768
  });
5751
5769
  }
5752
- function hi({ group: e, transform: t }) {
5770
+ function _i({ group: e, transform: t }) {
5753
5771
  let { canScaleWidth: n, canScaleHeight: r } = Y({ transform: t }), i = Math.max(1, e.shapeBaseWidth ?? e.width ?? e.shapeManualBaseWidth ?? 1), a = Math.max(1, e.shapeBaseHeight ?? e.height ?? e.shapeManualBaseHeight ?? 1);
5754
5772
  return {
5755
5773
  startWidth: i,
@@ -5760,25 +5778,25 @@ function hi({ group: e, transform: t }) {
5760
5778
  canScaleHeight: r
5761
5779
  };
5762
5780
  }
5763
- function gi({ scalingState: e, group: t, text: n, constraintPadding: r, transform: i }) {
5781
+ function vi({ scalingState: e, group: t, text: n, constraintPadding: r, transform: i }) {
5764
5782
  let a = e.get(t);
5765
5783
  if (a) return a;
5766
- let o = hi({
5784
+ let o = _i({
5767
5785
  group: t,
5768
5786
  transform: i
5769
- }), s = Wr({
5787
+ }), s = Kr({
5770
5788
  transform: i,
5771
5789
  key: "scaleX"
5772
- }), c = Wr({
5790
+ }), c = Kr({
5773
5791
  transform: i,
5774
5792
  key: "scaleY"
5775
- }), l = Wr({
5793
+ }), l = Kr({
5776
5794
  transform: i,
5777
5795
  key: "left"
5778
- }), u = Wr({
5796
+ }), u = Kr({
5779
5797
  transform: i,
5780
5798
  key: "top"
5781
- }), d = Math.abs(s ?? t.scaleX ?? 1) || 1, f = Math.abs(c ?? t.scaleY ?? 1) || 1, p = l ?? t.left ?? 0, m = u ?? t.top ?? 0, h = Gr({ value: i?.original?.originX ?? i?.originX }), g = Kr({ value: i?.original?.originY ?? i?.originY }), _ = typeof i?.corner == "string" ? i.corner : null, v = Jr({
5799
+ }), d = Math.abs(s ?? t.scaleX ?? 1) || 1, f = Math.abs(c ?? t.scaleY ?? 1) || 1, p = l ?? t.left ?? 0, m = u ?? t.top ?? 0, h = qr({ value: i?.original?.originX ?? i?.originX }), g = Jr({ value: i?.original?.originY ?? i?.originY }), _ = typeof i?.corner == "string" ? i.corner : null, v = Xr({
5782
5800
  group: t,
5783
5801
  originX: h,
5784
5802
  originY: g
@@ -5786,7 +5804,7 @@ function gi({ scalingState: e, group: t, text: n, constraintPadding: r, transfor
5786
5804
  measurementsByKey: /* @__PURE__ */ new Map(),
5787
5805
  splitByGraphemeByFrameWidth: /* @__PURE__ */ new Map(),
5788
5806
  minimumTextFrameWidth: null
5789
- }, x = /* @__PURE__ */ new Map(), S = fi({
5807
+ }, x = /* @__PURE__ */ new Map(), S = mi({
5790
5808
  group: t,
5791
5809
  text: n,
5792
5810
  width: o.startWidth,
@@ -5828,8 +5846,8 @@ function gi({ scalingState: e, group: t, text: n, constraintPadding: r, transfor
5828
5846
  proportionalTextConstraintCache: x
5829
5847
  }, e.set(t, a), a;
5830
5848
  }
5831
- function _i({ group: e, text: t, constraintPadding: n, startDimensions: r, scaleX: i, scaleY: a, wrapPolicy: o }) {
5832
- let { previewWidth: s, previewHeight: c } = pi({
5849
+ function yi({ group: e, text: t, constraintPadding: n, startDimensions: r, scaleX: i, scaleY: a, wrapPolicy: o }) {
5850
+ let { previewWidth: s, previewHeight: c } = hi({
5833
5851
  group: e,
5834
5852
  text: t,
5835
5853
  constraintPadding: n,
@@ -5837,7 +5855,7 @@ function _i({ group: e, text: t, constraintPadding: n, startDimensions: r, scale
5837
5855
  appliedScaleX: i,
5838
5856
  appliedScaleY: a,
5839
5857
  wrapPolicy: o
5840
- }), { startWidth: l, startHeight: u } = r, d = Math.abs(s - l) > ti, f = Math.abs(c - u) > ti;
5858
+ }), { startWidth: l, startHeight: u } = r, d = Math.abs(s - l) > ri, f = Math.abs(c - u) > ri;
5841
5859
  return {
5842
5860
  width: s,
5843
5861
  height: c,
@@ -5845,7 +5863,7 @@ function _i({ group: e, text: t, constraintPadding: n, startDimensions: r, scale
5845
5863
  hasDimensionChange: d || f
5846
5864
  };
5847
5865
  }
5848
- function vi({ startManualBaseWidth: e, startManualBaseHeight: t, canScaleWidth: n, canScaleHeight: r, finalWidth: i, finalHeight: a }) {
5866
+ function bi({ startManualBaseWidth: e, startManualBaseHeight: t, canScaleWidth: n, canScaleHeight: r, finalWidth: i, finalHeight: a }) {
5849
5867
  let o = e;
5850
5868
  n && (o = i);
5851
5869
  let s = t;
@@ -5854,8 +5872,8 @@ function vi({ startManualBaseWidth: e, startManualBaseHeight: t, canScaleWidth:
5854
5872
  height: s
5855
5873
  };
5856
5874
  }
5857
- function yi({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, startManualBaseWidth: s, startManualBaseHeight: c, canScaleWidth: l, canScaleHeight: u, hasWidthChange: d, wrapPolicy: f }) {
5858
- let p = vi({
5875
+ function xi({ group: e, shape: t, text: n, width: r, height: i, alignH: a, alignV: o, startManualBaseWidth: s, startManualBaseHeight: c, canScaleWidth: l, canScaleHeight: u, hasWidthChange: d, wrapPolicy: f }) {
5876
+ let p = bi({
5859
5877
  startManualBaseWidth: s,
5860
5878
  startManualBaseHeight: c,
5861
5879
  canScaleWidth: l,
@@ -5864,16 +5882,16 @@ function yi({ group: e, shape: t, text: n, width: r, height: i, alignH: a, align
5864
5882
  finalHeight: i
5865
5883
  });
5866
5884
  e.shapeManualBaseWidth = p.width, e.shapeManualBaseHeight = p.height, l && d && (e.shapeTextAutoExpand = !1);
5867
- let m = ci({ group: e }), h = li({
5885
+ let m = ui({ group: e }), h = di({
5868
5886
  group: e,
5869
5887
  width: r,
5870
5888
  height: i
5871
- }), g = !u, _ = ({ width: t, height: n }) => li({
5889
+ }), g = !u, _ = ({ width: t, height: n }) => di({
5872
5890
  group: e,
5873
5891
  width: t,
5874
5892
  height: n
5875
5893
  });
5876
- !l && u ? Ar({
5894
+ !l && u ? Mr({
5877
5895
  group: e,
5878
5896
  shape: t,
5879
5897
  text: n,
@@ -5886,7 +5904,7 @@ function yi({ group: e, shape: t, text: n, width: r, height: i, alignH: a, align
5886
5904
  internalShapeTextInset: h,
5887
5905
  expandShapeHeightToFitText: g,
5888
5906
  resolveInternalShapeTextInset: _
5889
- }) : kr({
5907
+ }) : jr({
5890
5908
  group: e,
5891
5909
  shape: t,
5892
5910
  text: n,
@@ -5910,7 +5928,7 @@ function yi({ group: e, shape: t, text: n, width: r, height: i, alignH: a, align
5910
5928
  }
5911
5929
  //#endregion
5912
5930
  //#region src/editor/shape-manager/scaling/active-selection-scaling-controller.ts
5913
- var bi = class {
5931
+ var Si = class {
5914
5932
  constructor({ canvas: e, shapeScalingState: t }) {
5915
5933
  this.canvas = e, this.shapeScalingState = t, this.scalingState = /* @__PURE__ */ new WeakMap(), this.scalingSessions = /* @__PURE__ */ new WeakMap(), this.groupLayoutScales = /* @__PURE__ */ new WeakMap();
5916
5934
  }
@@ -5962,21 +5980,21 @@ var bi = class {
5962
5980
  } else c = this._resolveShapeLayoutScale({
5963
5981
  item: e,
5964
5982
  selectionScale: p
5965
- }), u = pi({
5983
+ }), u = hi({
5966
5984
  group: t,
5967
5985
  text: r,
5968
5986
  constraintPadding: i,
5969
5987
  startDimensions: a,
5970
5988
  appliedScaleX: c.scaleX,
5971
5989
  appliedScaleY: c.scaleY,
5972
- wrapPolicy: ni({ isProportionalScaling: a.isProportionalScaling }),
5990
+ wrapPolicy: ii({ isProportionalScaling: a.isProportionalScaling }),
5973
5991
  measurementCache: a.previewTextMeasurementCache
5974
5992
  }).previewHeight;
5975
- ei({
5993
+ ni({
5976
5994
  group: t,
5977
5995
  shape: n,
5978
5996
  text: r,
5979
- layout: mi({
5997
+ layout: gi({
5980
5998
  group: t,
5981
5999
  text: r,
5982
6000
  state: a,
@@ -5999,13 +6017,13 @@ var bi = class {
5999
6017
  commitGroupScaling({ group: e, scaleX: t, scaleY: n, transform: r }) {
6000
6018
  let { shape: i, text: a } = H({ group: e });
6001
6019
  if (!i || !a) return this.shapeScalingState.delete(e), !1;
6002
- let o = this.shapeScalingState.get(e), s = o ?? hi({
6020
+ let o = this.shapeScalingState.get(e), s = o ?? _i({
6003
6021
  group: e,
6004
6022
  transform: r
6005
6023
  }), c = r ? Y({ transform: r }) : null, l = o?.canScaleWidth ?? c?.canScaleWidth ?? Math.abs(t - 1) > 1e-4, u = o?.canScaleHeight ?? c?.canScaleHeight ?? Math.abs(n - 1) > 1e-4, d = e.shapeAlignHorizontal ?? "center", f = e.shapeAlignVertical ?? "middle", p = Z({ group: e }), m = this.groupLayoutScales.get(e) ?? {
6006
6024
  scaleX: t,
6007
6025
  scaleY: n
6008
- }, { width: h, height: g, hasWidthChange: _, hasDimensionChange: v } = _i({
6026
+ }, { width: h, height: g, hasWidthChange: _, hasDimensionChange: v } = yi({
6009
6027
  group: e,
6010
6028
  text: a,
6011
6029
  constraintPadding: p,
@@ -6016,9 +6034,9 @@ var bi = class {
6016
6034
  },
6017
6035
  scaleX: m.scaleX,
6018
6036
  scaleY: m.scaleY,
6019
- wrapPolicy: ni({ isProportionalScaling: o?.isProportionalScaling })
6037
+ wrapPolicy: ii({ isProportionalScaling: o?.isProportionalScaling })
6020
6038
  });
6021
- return v ? (yi({
6039
+ return v ? (xi({
6022
6040
  group: e,
6023
6041
  shape: i,
6024
6042
  text: a,
@@ -6031,7 +6049,7 @@ var bi = class {
6031
6049
  canScaleWidth: l,
6032
6050
  canScaleHeight: u,
6033
6051
  hasWidthChange: _,
6034
- wrapPolicy: ni({ isProportionalScaling: o?.isProportionalScaling })
6052
+ wrapPolicy: ii({ isProportionalScaling: o?.isProportionalScaling })
6035
6053
  }), this.shapeScalingState.delete(e), this.groupLayoutScales.delete(e), e.shapeScalingNoopTransform = !1, !0) : (this.shapeScalingState.delete(e), this.groupLayoutScales.delete(e), e.shapeScalingNoopTransform = !1, !1);
6036
6054
  }
6037
6055
  resolveCommittedScale({ selection: e }) {
@@ -6055,7 +6073,7 @@ var bi = class {
6055
6073
  if (!U(r)) continue;
6056
6074
  let { shape: e, text: i } = H({ group: r });
6057
6075
  if (!e || !i) continue;
6058
- let a = Z({ group: r }), o = gi({
6076
+ let a = Z({ group: r }), o = vi({
6059
6077
  scalingState: this.shapeScalingState,
6060
6078
  group: r,
6061
6079
  text: i,
@@ -6075,7 +6093,7 @@ var bi = class {
6075
6093
  _ensureScalingSession({ selection: e, transform: t, items: n }) {
6076
6094
  let r = this.scalingSessions.get(e);
6077
6095
  if (r) return r;
6078
- let i = Gr({ value: t.originX }) ?? "center", a = Kr({ value: t.originY }) ?? "center", o = n[0], s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = this._resolveShapeLocalBounds({ group: o.group });
6096
+ let i = qr({ value: t.originX }) ?? "center", a = Jr({ value: t.originY }) ?? "center", o = n[0], s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = this._resolveShapeLocalBounds({ group: o.group });
6079
6097
  for (let { group: e } of n) {
6080
6098
  let t = this._resolveShapeLocalBounds({ group: e });
6081
6099
  s.set(e, t), l = this._mergeBounds({
@@ -6295,7 +6313,7 @@ var bi = class {
6295
6313
  _resolveProportionalLayoutResults({ items: e }) {
6296
6314
  let t = /* @__PURE__ */ new Map();
6297
6315
  for (let n of e) {
6298
- let e = di({
6316
+ let e = pi({
6299
6317
  group: n.group,
6300
6318
  text: n.text,
6301
6319
  state: n.state
@@ -6309,7 +6327,7 @@ var bi = class {
6309
6327
  }
6310
6328
  _resolveMinimumShapeWidth({ item: e, scaleY: t }) {
6311
6329
  let { group: n, text: r, constraintPadding: i, state: a } = e, o = Math.max(1, a.startHeight * t);
6312
- return Nr({
6330
+ return Fr({
6313
6331
  text: r,
6314
6332
  padding: i,
6315
6333
  measurementCache: a.previewTextMeasurementCache ?? void 0,
@@ -6326,7 +6344,7 @@ var bi = class {
6326
6344
  }
6327
6345
  _resolveMinimumShapeHeight({ item: e, scaleX: t }) {
6328
6346
  let { group: n, text: r, constraintPadding: i, state: a } = e;
6329
- return fi({
6347
+ return mi({
6330
6348
  group: n,
6331
6349
  text: r,
6332
6350
  width: Math.max(1, a.startWidth * t),
@@ -6365,7 +6383,7 @@ var bi = class {
6365
6383
  };
6366
6384
  }
6367
6385
  _resolveVerticalAttachment({ selectionBounds: e, shapeBounds: t }) {
6368
- let n = Math.max(0, t.top - e.top), r = Math.max(0, e.bottom - t.bottom), i = n <= ti, a = r <= ti;
6386
+ let n = Math.max(0, t.top - e.top), r = Math.max(0, e.bottom - t.bottom), i = n <= ri, a = r <= ri;
6369
6387
  return i && !a ? "top" : a && !i ? "bottom" : Math.abs(n - r) <= .5 ? "center" : n < r ? "top" : "bottom";
6370
6388
  }
6371
6389
  _resolveOriginOffset({ origin: e }) {
@@ -6386,7 +6404,7 @@ var bi = class {
6386
6404
  _hasPointerReachedSelectionScaleOrigin({ selection: e, transform: t, event: n, axis: r }) {
6387
6405
  let i = t, a = r === "x" ? i.signX : i.signY;
6388
6406
  if (typeof a != "number" || !Number.isFinite(a)) return !1;
6389
- let o = qr({
6407
+ let o = Yr({
6390
6408
  target: e,
6391
6409
  transform: t,
6392
6410
  event: n,
@@ -6397,7 +6415,7 @@ var bi = class {
6397
6415
  _applySelectionScale({ selection: e, transform: t, scaleX: n, scaleY: r }) {
6398
6416
  let i = Math.abs(e.scaleX ?? 1) || 1, a = Math.abs(e.scaleY ?? 1) || 1;
6399
6417
  if (!(Math.abs(i - n) > 1e-4 || Math.abs(a - r) > 1e-4)) return;
6400
- let o = Gr({ value: t.originX }), s = Kr({ value: t.originY }), c = o !== null && s !== null ? e.getPositionByOrigin(o, s) : null;
6418
+ let o = qr({ value: t.originX }), s = Jr({ value: t.originY }), c = o !== null && s !== null ? e.getPositionByOrigin(o, s) : null;
6401
6419
  e.set({
6402
6420
  flipX: !1,
6403
6421
  flipY: !1,
@@ -6405,7 +6423,7 @@ var bi = class {
6405
6423
  scaleY: r
6406
6424
  }), c && o !== null && s !== null && e.setPositionByOrigin(c, o, s), e.setCoords();
6407
6425
  }
6408
- }, xi = class {
6426
+ }, Ci = class {
6409
6427
  constructor({ canvas: t }) {
6410
6428
  this.handleObjectScaling = (t) => {
6411
6429
  let { target: n, transform: r } = t;
@@ -6424,7 +6442,7 @@ var bi = class {
6424
6442
  lockScalingFlip: !0,
6425
6443
  centeredScaling: !1
6426
6444
  });
6427
- let s = Z({ group: i }), c = gi({
6445
+ let s = Z({ group: i }), c = vi({
6428
6446
  scalingState: this.scalingState,
6429
6447
  group: i,
6430
6448
  text: o,
@@ -6453,7 +6471,7 @@ var bi = class {
6453
6471
  });
6454
6472
  return;
6455
6473
  }
6456
- let _ = mi({
6474
+ let _ = gi({
6457
6475
  group: i,
6458
6476
  text: o,
6459
6477
  state: c,
@@ -6467,7 +6485,7 @@ var bi = class {
6467
6485
  shouldHandleAsNoop: !1,
6468
6486
  scaleX: g.appliedScaleX,
6469
6487
  scaleY: g.appliedScaleY
6470
- }), ei({
6488
+ }), ni({
6471
6489
  group: i,
6472
6490
  shape: a,
6473
6491
  text: o,
@@ -6529,7 +6547,7 @@ var bi = class {
6529
6547
  axis: "y"
6530
6548
  });
6531
6549
  if (!e && !t) return;
6532
- let n = di({
6550
+ let n = pi({
6533
6551
  group: i,
6534
6552
  text: s,
6535
6553
  state: a
@@ -6543,7 +6561,7 @@ var bi = class {
6543
6561
  state: a,
6544
6562
  axis: "x"
6545
6563
  })) {
6546
- let e = Nr({
6564
+ let e = Fr({
6547
6565
  text: s,
6548
6566
  padding: c,
6549
6567
  resolvePaddingForWidth: ({ width: e }) => Z({
@@ -6569,7 +6587,7 @@ var bi = class {
6569
6587
  });
6570
6588
  return;
6571
6589
  }
6572
- y = C ?? fi({
6590
+ y = C ?? mi({
6573
6591
  group: i,
6574
6592
  text: s,
6575
6593
  width: Math.max(1, a.startWidth * _),
@@ -6582,7 +6600,7 @@ var bi = class {
6582
6600
  }
6583
6601
  if (!x && !S) return;
6584
6602
  y ??= C;
6585
- let w = pi({
6603
+ let w = hi({
6586
6604
  group: i,
6587
6605
  text: s,
6588
6606
  constraintPadding: c,
@@ -6591,7 +6609,7 @@ var bi = class {
6591
6609
  appliedScaleY: v,
6592
6610
  minimumHeight: b ? null : y,
6593
6611
  measurementCache: a.previewTextMeasurementCache
6594
- }), T = mi({
6612
+ }), T = gi({
6595
6613
  group: i,
6596
6614
  text: s,
6597
6615
  state: a,
@@ -6605,7 +6623,7 @@ var bi = class {
6605
6623
  shouldHandleAsNoop: !1,
6606
6624
  scaleX: _,
6607
6625
  scaleY: v
6608
- }), ei({
6626
+ }), ni({
6609
6627
  group: i,
6610
6628
  shape: o,
6611
6629
  text: s,
@@ -6649,7 +6667,7 @@ var bi = class {
6649
6667
  startHeight: s,
6650
6668
  alignH: n.shapeAlignHorizontal,
6651
6669
  alignV: n.shapeAlignVertical,
6652
- userPadding: ci({ group: n })
6670
+ userPadding: ui({ group: n })
6653
6671
  }), n.shapeScalingNoopTransform = !1, this.scalingState.delete(n), this.canvas.requestRenderAll();
6654
6672
  return;
6655
6673
  }
@@ -6672,7 +6690,7 @@ var bi = class {
6672
6690
  axis: "y"
6673
6691
  });
6674
6692
  if (t || o) {
6675
- let e = di({
6693
+ let e = pi({
6676
6694
  group: n,
6677
6695
  text: d,
6678
6696
  state: r
@@ -6680,7 +6698,7 @@ var bi = class {
6680
6698
  (i < e.scale - 1e-4 || a < e.scale - 1e-4) && (v = e.scale, y = e.scale);
6681
6699
  }
6682
6700
  } else {
6683
- let t = Nr({
6701
+ let t = Fr({
6684
6702
  text: d,
6685
6703
  padding: m,
6686
6704
  resolvePaddingForWidth: ({ width: e }) => Z({
@@ -6695,7 +6713,7 @@ var bi = class {
6695
6713
  minimumWidth: t,
6696
6714
  state: r
6697
6715
  }) && (v = Math.max(1 / o, t / o));
6698
- let i = fi({
6716
+ let i = mi({
6699
6717
  group: n,
6700
6718
  text: d,
6701
6719
  width: Math.max(1, o * v),
@@ -6708,7 +6726,7 @@ var bi = class {
6708
6726
  state: r
6709
6727
  }) && (y = Math.max(1 / s, i / s));
6710
6728
  }
6711
- let { width: b, height: x, hasWidthChange: S, hasDimensionChange: C } = _i({
6729
+ let { width: b, height: x, hasWidthChange: S, hasDimensionChange: C } = yi({
6712
6730
  group: n,
6713
6731
  text: d,
6714
6732
  constraintPadding: m,
@@ -6722,7 +6740,7 @@ var bi = class {
6722
6740
  },
6723
6741
  scaleX: v,
6724
6742
  scaleY: y,
6725
- wrapPolicy: ni({ isProportionalScaling: r?.isProportionalScaling })
6743
+ wrapPolicy: ii({ isProportionalScaling: r?.isProportionalScaling })
6726
6744
  });
6727
6745
  if (!C && r) {
6728
6746
  this._restoreShapeStateWithoutResize({
@@ -6734,14 +6752,14 @@ var bi = class {
6734
6752
  startHeight: s,
6735
6753
  alignH: f,
6736
6754
  alignV: p,
6737
- userPadding: ci({ group: n })
6755
+ userPadding: ui({ group: n })
6738
6756
  }), this.scalingState.delete(n), this.canvas.requestRenderAll();
6739
6757
  return;
6740
6758
  }
6741
6759
  r && n.set({
6742
6760
  left: r.lastAllowedLeft,
6743
6761
  top: r.lastAllowedTop
6744
- }), yi({
6762
+ }), xi({
6745
6763
  group: n,
6746
6764
  shape: u,
6747
6765
  text: d,
@@ -6754,12 +6772,12 @@ var bi = class {
6754
6772
  canScaleWidth: g,
6755
6773
  canScaleHeight: _,
6756
6774
  hasWidthChange: S,
6757
- wrapPolicy: ni({ isProportionalScaling: r?.isProportionalScaling })
6775
+ wrapPolicy: ii({ isProportionalScaling: r?.isProportionalScaling })
6758
6776
  }), r && this._restoreScalingAnchorPosition({
6759
6777
  group: n,
6760
6778
  state: r
6761
6779
  }), n.setCoords(), d.setCoords(), u.setCoords(), this.scalingState.delete(n), n.shapeScalingNoopTransform = !1, this.canvas.requestRenderAll();
6762
- }, this.canvas = t, this.scalingState = /* @__PURE__ */ new WeakMap(), this.activeSelectionScalingController = new bi({
6780
+ }, this.canvas = t, this.scalingState = /* @__PURE__ */ new WeakMap(), this.activeSelectionScalingController = new Si({
6763
6781
  canvas: t,
6764
6782
  shapeScalingState: this.scalingState
6765
6783
  });
@@ -6768,10 +6786,10 @@ var bi = class {
6768
6786
  let a = e.scaleX ?? 1, o = e.scaleY ?? 1, { scaleX: s, scaleY: c } = this._resolveCurrentDragScales({
6769
6787
  group: e,
6770
6788
  state: r
6771
- }), l = r.canScaleWidth && a < 0 || r.canScaleHeight && o < 0, u = Yr({
6789
+ }), l = r.canScaleWidth && a < 0 || r.canScaleHeight && o < 0, u = Zr({
6772
6790
  state: r,
6773
6791
  transform: i
6774
- }), d = Xr({
6792
+ }), d = Qr({
6775
6793
  state: r,
6776
6794
  transform: i
6777
6795
  });
@@ -6787,7 +6805,7 @@ var bi = class {
6787
6805
  f.shouldRestoreLastAllowedTransform && (h = r.lastAllowedScaleX, g = r.lastAllowedScaleY), f.shouldHandleAsNoop && (h = r.startScaleX, g = r.startScaleY);
6788
6806
  let _ = f.resolvedMinimumHeight, v = !r.canScaleWidth && r.canScaleHeight ? r.fixedWidthMinimumTextFitHeight : null;
6789
6807
  f.shouldHandleAsNoop ? _ = r.startHeight : _ ??= v;
6790
- let { previewHeight: y } = pi({
6808
+ let { previewHeight: y } = hi({
6791
6809
  group: e,
6792
6810
  text: t,
6793
6811
  constraintPadding: n,
@@ -6806,7 +6824,7 @@ var bi = class {
6806
6824
  };
6807
6825
  }
6808
6826
  _resolveScalingConstraintState({ group: e, text: t, constraintPadding: n, state: r, scaleX: i, scaleY: a }) {
6809
- let { canScaleHeight: o, canScaleWidth: s, startHeight: c, startWidth: l, cannotScaleDownAtStart: u, crossedOppositeCorner: d, isProportionalScaling: f, lastAllowedScaleX: p, lastAllowedScaleY: m, startScaleY: h } = r, g = o && !s, _ = s ? Math.max(1, l * i) : l, v = o ? Math.max(1, c * a) : c, y = i < p - X, b = a < m - X, x = a < h - X, S = g ? r.fixedWidthMinimumTextFitHeight : null, C = s && y ? Nr({
6827
+ let { canScaleHeight: o, canScaleWidth: s, startHeight: c, startWidth: l, cannotScaleDownAtStart: u, crossedOppositeCorner: d, isProportionalScaling: f, lastAllowedScaleX: p, lastAllowedScaleY: m, startScaleY: h } = r, g = o && !s, _ = s ? Math.max(1, l * i) : l, v = o ? Math.max(1, c * a) : c, y = i < p - X, b = a < m - X, x = a < h - X, S = g ? r.fixedWidthMinimumTextFitHeight : null, C = s && y ? Fr({
6810
6828
  text: t,
6811
6829
  padding: n,
6812
6830
  measurementCache: r.previewTextMeasurementCache ?? void 0,
@@ -6815,7 +6833,7 @@ var bi = class {
6815
6833
  width: t,
6816
6834
  height: v
6817
6835
  })
6818
- }) : null, w = o && b ? S ?? fi({
6836
+ }) : null, w = o && b ? S ?? mi({
6819
6837
  group: e,
6820
6838
  text: t,
6821
6839
  width: _,
@@ -6823,7 +6841,7 @@ var bi = class {
6823
6841
  measurementCache: r.previewTextMeasurementCache
6824
6842
  }) : null, T = g && u && x;
6825
6843
  if (f && s && o && (y || b)) {
6826
- if (!ui({
6844
+ if (!fi({
6827
6845
  group: e,
6828
6846
  text: t,
6829
6847
  width: _,
@@ -6831,7 +6849,7 @@ var bi = class {
6831
6849
  measurementCache: r.previewTextMeasurementCache,
6832
6850
  constraintCache: r.proportionalTextConstraintCache
6833
6851
  }).isValid) {
6834
- let n = di({
6852
+ let n = pi({
6835
6853
  group: e,
6836
6854
  text: t,
6837
6855
  state: r
@@ -6854,7 +6872,7 @@ var bi = class {
6854
6872
  }
6855
6873
  let E = C !== null && _ < C + 1e-4, D = w !== null && v < w + 1e-4, O = E || D, k = d, A = null, j = null;
6856
6874
  if (f && O) {
6857
- let n = di({
6875
+ let n = pi({
6858
6876
  group: e,
6859
6877
  text: t,
6860
6878
  state: r
@@ -6883,11 +6901,11 @@ var bi = class {
6883
6901
  shouldHandleAsNoop: !0,
6884
6902
  scaleX: r.startScaleX,
6885
6903
  scaleY: r.startScaleY
6886
- }), ei({
6904
+ }), ni({
6887
6905
  group: e,
6888
6906
  shape: t,
6889
6907
  text: n,
6890
- layout: mi({
6908
+ layout: gi({
6891
6909
  group: e,
6892
6910
  text: n,
6893
6911
  state: r,
@@ -6971,7 +6989,7 @@ var bi = class {
6971
6989
  if (!i) return !1;
6972
6990
  let a = i, o = r === "x" ? n?.scaleDirectionX ?? null : n?.scaleDirectionY ?? null, s = this._resolveScaleDirection({ value: r === "x" ? a.signX : a.signY }) ?? o;
6973
6991
  if (s === null) return !1;
6974
- let c = qr({
6992
+ let c = Yr({
6975
6993
  event: e.e,
6976
6994
  target: t,
6977
6995
  transform: i,
@@ -6989,7 +7007,7 @@ var bi = class {
6989
7007
  a && t.scaleDirectionX === null && (t.scaleDirectionX = this._resolveScaleDirection({ value: l.signX })), i && t.scaleDirectionY === null && (t.scaleDirectionY = this._resolveScaleDirection({ value: l.signY }));
6990
7008
  let u = !a || t.scaleDirectionX !== null, d = !i || t.scaleDirectionY !== null;
6991
7009
  if (u && d) return;
6992
- let f = qr({
7010
+ let f = Yr({
6993
7011
  event: n,
6994
7012
  target: e,
6995
7013
  transform: r,
@@ -7018,16 +7036,16 @@ var bi = class {
7018
7036
  e.setPositionByOrigin(new m(n, r), i, a), e.setCoords();
7019
7037
  }
7020
7038
  _restoreShapeStateWithoutResize({ group: e, shape: t, text: n, state: r, startWidth: i, startHeight: a, alignH: o, alignV: s, userPadding: c }) {
7021
- let l = Math.max(1, e.shapeBaseWidth ?? e.width ?? i), u = Math.max(1, e.shapeBaseHeight ?? e.height ?? a), d = li({
7039
+ let l = Math.max(1, e.shapeBaseWidth ?? e.width ?? i), u = Math.max(1, e.shapeBaseHeight ?? e.height ?? a), d = di({
7022
7040
  group: e,
7023
7041
  width: l,
7024
7042
  height: u
7025
- }), f = o ?? "center", p = s ?? "middle", m = ni({ isProportionalScaling: r.isProportionalScaling }), h = ({ width: t, height: n }) => li({
7043
+ }), f = o ?? "center", p = s ?? "middle", m = ii({ isProportionalScaling: r.isProportionalScaling }), h = ({ width: t, height: n }) => di({
7026
7044
  group: e,
7027
7045
  width: t,
7028
7046
  height: n
7029
7047
  });
7030
- !r.canScaleWidth && r.canScaleHeight ? Ar({
7048
+ !r.canScaleWidth && r.canScaleHeight ? Mr({
7031
7049
  group: e,
7032
7050
  shape: t,
7033
7051
  text: n,
@@ -7039,7 +7057,7 @@ var bi = class {
7039
7057
  wrapPolicy: m,
7040
7058
  internalShapeTextInset: d,
7041
7059
  resolveInternalShapeTextInset: h
7042
- }) : kr({
7060
+ }) : jr({
7043
7061
  group: e,
7044
7062
  shape: t,
7045
7063
  text: n,
@@ -7063,7 +7081,7 @@ var bi = class {
7063
7081
  state: r
7064
7082
  });
7065
7083
  }
7066
- }, Si = class {
7084
+ }, wi = class {
7067
7085
  constructor({ canvas: e }) {
7068
7086
  this.handleMouseDown = (e) => {
7069
7087
  let { target: t, e: n, subTargets: r = [] } = e, i = Xe({
@@ -7187,7 +7205,7 @@ var bi = class {
7187
7205
  let t = this.canvas;
7188
7206
  t.findTarget = e.findTarget, this.editingTargetResolverState = void 0;
7189
7207
  }
7190
- }, Ci = 1e-4, wi = class {
7208
+ }, Ti = 1e-4, Ei = class {
7191
7209
  constructor({ runtime: t }) {
7192
7210
  this._handleObjectScaling = (e) => {
7193
7211
  this.runtime.collectShapeGroupsFromTarget({
@@ -7272,7 +7290,7 @@ var bi = class {
7272
7290
  let r = t.getObjects(), i = r.filter((e) => U(e));
7273
7291
  if (!i.length) return;
7274
7292
  let { scaleX: a, scaleY: o } = this.runtime.scalingController.resolveActiveSelectionCommittedScale({ selection: t });
7275
- if (!(Math.abs(a - 1) > Ci || Math.abs(o - 1) > Ci)) {
7293
+ if (!(Math.abs(a - 1) > Ti || Math.abs(o - 1) > Ti)) {
7276
7294
  this.runtime.scalingController.clearActiveSelectionState({ selection: t });
7277
7295
  return;
7278
7296
  }
@@ -7290,7 +7308,7 @@ var bi = class {
7290
7308
  }), e.setCoords());
7291
7309
  }), this.runtime.scalingController.clearActiveSelectionState({ selection: t }), s.setActiveObject(new e(r, { canvas: s })), s.requestRenderAll();
7292
7310
  }
7293
- }, Ti = class {
7311
+ }, Di = class {
7294
7312
  constructor({ editor: e }) {
7295
7313
  this.editor = e;
7296
7314
  }
@@ -7409,7 +7427,7 @@ var bi = class {
7409
7427
  width: y,
7410
7428
  height: b
7411
7429
  }), S = u ?? e.shapeTextWrapPolicy, C = r ?? this.editor.canvasManager.getObjectPlacement({ object: e });
7412
- kr({
7430
+ jr({
7413
7431
  group: e,
7414
7432
  shape: t,
7415
7433
  text: n,
@@ -7433,7 +7451,7 @@ var bi = class {
7433
7451
  }
7434
7452
  _resolveAutoExpandShapeWidth({ text: e, currentWidth: t, minimumWidth: n, padding: r, resolvePaddingForWidth: i }) {
7435
7453
  let a = this.resolveMontageAreaWidth();
7436
- return a ? Mr({
7454
+ return a ? Pr({
7437
7455
  text: e,
7438
7456
  currentWidth: t,
7439
7457
  minimumWidth: n,
@@ -7442,7 +7460,7 @@ var bi = class {
7442
7460
  resolvePaddingForWidth: i
7443
7461
  }) : Math.max(1, t, n);
7444
7462
  }
7445
- }, Ei = class e {
7463
+ }, Oi = class e {
7446
7464
  constructor({ canvas: e }) {
7447
7465
  this.canvas = e, this.textEditingSnapshots = /* @__PURE__ */ new WeakMap(), this.pendingTextUpdates = /* @__PURE__ */ new WeakMap(), this.resizeStartSnapshots = /* @__PURE__ */ new Map(), this.pendingResizeUpdates = /* @__PURE__ */ new WeakMap();
7448
7466
  }
@@ -7638,7 +7656,7 @@ var bi = class {
7638
7656
  }
7639
7657
  }), I;
7640
7658
  }
7641
- }, Di = .01, Oi = ({ textbox: e }) => {
7659
+ }, ki = .01, Ai = ({ textbox: e }) => {
7642
7660
  let t = e.text ?? "";
7643
7661
  if (!t.length) return [];
7644
7662
  let n = t.split("\n"), r = [], i = 0;
@@ -7650,7 +7668,7 @@ var bi = class {
7650
7668
  });
7651
7669
  }
7652
7670
  return r;
7653
- }, ki = ({ range: e, text: t }) => {
7671
+ }, ji = ({ range: e, text: t }) => {
7654
7672
  if (!e) return null;
7655
7673
  let n = t.length;
7656
7674
  if (n <= 0) return null;
@@ -7659,8 +7677,8 @@ var bi = class {
7659
7677
  start: l,
7660
7678
  end: u
7661
7679
  };
7662
- }, Ai = ({ textbox: e, range: t }) => {
7663
- let n = Oi({ textbox: e });
7680
+ }, Mi = ({ textbox: e, range: t }) => {
7681
+ let n = Ai({ textbox: e });
7664
7682
  if (!n.length) return t;
7665
7683
  let { start: r } = t, { end: i } = t;
7666
7684
  for (let e = 0; e < n.length; e += 1) {
@@ -7673,7 +7691,7 @@ var bi = class {
7673
7691
  start: r,
7674
7692
  end: i
7675
7693
  };
7676
- }, ji = ({ textbox: e, range: t }) => {
7694
+ }, Ni = ({ textbox: e, range: t }) => {
7677
7695
  let n = e.text ?? "";
7678
7696
  if (!n.length) return [];
7679
7697
  let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
@@ -7682,7 +7700,7 @@ var bi = class {
7682
7700
  i > n && r < c && o.push(e), s = c + 1;
7683
7701
  }
7684
7702
  return o;
7685
- }, Mi = ({ textbox: e, range: t }) => {
7703
+ }, Pi = ({ textbox: e, range: t }) => {
7686
7704
  let n = e.text ?? "";
7687
7705
  if (!n.length) return [];
7688
7706
  let { start: r, end: i } = t, a = n.split("\n"), o = [], s = 0;
@@ -7691,21 +7709,21 @@ var bi = class {
7691
7709
  r <= n && i >= c && o.push(e), s = c + 1;
7692
7710
  }
7693
7711
  return o;
7694
- }, Ni = ({ previous: e, next: t }) => {
7712
+ }, Fi = ({ previous: e, next: t }) => {
7695
7713
  let n = Math.min(e.length, t.length);
7696
7714
  for (let r = 0; r < n; r += 1) if (e[r] !== t[r]) return r;
7697
7715
  return n;
7698
- }, Pi = ({ text: e, charIndex: t }) => {
7716
+ }, Ii = ({ text: e, charIndex: t }) => {
7699
7717
  let n = Math.max(0, Math.min(t, e.length)), r = 0;
7700
7718
  for (let t = 0; t < n; t += 1) e[t] === "\n" && (r += 1);
7701
7719
  return r;
7702
- }, Fi = ({ text: e, lineIndex: t }) => {
7720
+ }, Li = ({ text: e, lineIndex: t }) => {
7703
7721
  if (t <= 0) return 0;
7704
7722
  let n = 0;
7705
7723
  for (let r = 0; r < e.length; r += 1) if (e[r] === "\n" && (n += 1, n === t)) return r + 1;
7706
7724
  return e.length;
7707
- }, Ii = ({ deltaLines: e, diffIndex: t, lineFontDefaults: n, lineIndexOld: r, previousText: i }) => {
7708
- let a = Fi({
7725
+ }, Ri = ({ deltaLines: e, diffIndex: t, lineFontDefaults: n, lineIndexOld: r, previousText: i }) => {
7726
+ let a = Li({
7709
7727
  text: i,
7710
7728
  lineIndex: r
7711
7729
  }), o = r + 1;
@@ -7724,7 +7742,7 @@ var bi = class {
7724
7742
  lineFontDefaults: s,
7725
7743
  changed: !0
7726
7744
  };
7727
- }, Li = ({ deltaLines: e, diffIndex: t, lineFontDefaults: n, lineIndexOld: r, previousLines: i, previousText: a }) => {
7745
+ }, zi = ({ deltaLines: e, diffIndex: t, lineFontDefaults: n, lineIndexOld: r, previousLines: i, previousText: a }) => {
7728
7746
  let o = Math.abs(e), s = r;
7729
7747
  a[t] === "\n" && (i[r] ?? "").length > 0 && (s = r + 1);
7730
7748
  let c = s + o - 1, l = {}, u = [];
@@ -7747,7 +7765,7 @@ var bi = class {
7747
7765
  lineDefaults: u
7748
7766
  }
7749
7767
  };
7750
- }, Ri = ({ lineFontDefaults: e, previousText: t, currentText: n }) => {
7768
+ }, Bi = ({ lineFontDefaults: e, previousText: t, currentText: n }) => {
7751
7769
  if (!e || !Object.keys(e).length) return {
7752
7770
  lineFontDefaults: e,
7753
7771
  changed: !1
@@ -7757,20 +7775,20 @@ var bi = class {
7757
7775
  lineFontDefaults: e,
7758
7776
  changed: !1
7759
7777
  };
7760
- let a = Ni({
7778
+ let a = Fi({
7761
7779
  previous: t,
7762
7780
  next: n
7763
- }), o = Pi({
7781
+ }), o = Ii({
7764
7782
  text: t,
7765
7783
  charIndex: a
7766
7784
  });
7767
- return i > 0 ? Ii({
7785
+ return i > 0 ? Ri({
7768
7786
  deltaLines: i,
7769
7787
  diffIndex: a,
7770
7788
  lineFontDefaults: e,
7771
7789
  lineIndexOld: o,
7772
7790
  previousText: t
7773
- }) : Li({
7791
+ }) : zi({
7774
7792
  deltaLines: i,
7775
7793
  diffIndex: a,
7776
7794
  lineFontDefaults: e,
@@ -7778,10 +7796,10 @@ var bi = class {
7778
7796
  previousLines: r,
7779
7797
  previousText: t
7780
7798
  });
7781
- }, zi = ({ lineDefaults: e }) => {
7799
+ }, Vi = ({ lineDefaults: e }) => {
7782
7800
  let t = {};
7783
7801
  return e.fontFamily !== void 0 && (t.fontFamily = e.fontFamily), e.fontSize !== void 0 && (t.fontSize = e.fontSize), e.fontWeight !== void 0 && (t.fontWeight = e.fontWeight), e.fontStyle !== void 0 && (t.fontStyle = e.fontStyle), e.underline !== void 0 && (t.underline = e.underline), e.linethrough !== void 0 && (t.linethrough = e.linethrough), e.fill !== void 0 && (t.fill = e.fill), e.stroke !== void 0 && (t.stroke = e.stroke), e.strokeWidth !== void 0 && (t.strokeWidth = e.strokeWidth), t;
7784
- }, Bi = ({ textbox: e, lineIndices: t, updates: n }) => {
7802
+ }, Hi = ({ textbox: e, lineIndices: t, updates: n }) => {
7785
7803
  if (!t.length) return !1;
7786
7804
  let { fill: r, fontFamily: i, fontSize: a, fontStyle: o, fontWeight: s, linethrough: c, stroke: l, strokeWidth: u, underline: d } = n;
7787
7805
  if (!(r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0 || c !== void 0 || l !== void 0 || u !== void 0 || d !== void 0)) return !1;
@@ -7793,12 +7811,12 @@ var bi = class {
7793
7811
  i !== void 0 && g?.fontFamily !== i && (_.fontFamily = i, v = !0), a !== void 0 && g?.fontSize !== a && (_.fontSize = a, v = !0), s !== void 0 && g?.fontWeight !== s && (_.fontWeight = s, v = !0), o !== void 0 && g?.fontStyle !== o && (_.fontStyle = o, v = !0), d !== void 0 && g?.underline !== d && (_.underline = d, v = !0), c !== void 0 && g?.linethrough !== c && (_.linethrough = c, v = !0), r !== void 0 && g?.fill !== r && (_.fill = r, v = !0), l !== void 0 && (l === null && g?.stroke !== void 0 && (delete _.stroke, v = !0), l !== null && g?.stroke !== l && (_.stroke = l, v = !0)), u !== void 0 && g?.strokeWidth !== u && (_.strokeWidth = u, v = !0), v && (h ||= (p = { ...p }, !0), p[n] = _, m = !0);
7794
7812
  }
7795
7813
  return m && (e.lineFontDefaults = p), m;
7796
- }, Vi = ({ lineStyles: e, lineDefaults: t }) => {
7814
+ }, Ui = ({ lineStyles: e, lineDefaults: t }) => {
7797
7815
  if (!e) return {
7798
7816
  lineStyles: e,
7799
7817
  changed: !1
7800
7818
  };
7801
- let n = zi({ lineDefaults: t }), r = Object.keys(n);
7819
+ let n = Vi({ lineDefaults: t }), r = Object.keys(n);
7802
7820
  if (!r.length) return {
7803
7821
  lineStyles: e,
7804
7822
  changed: !1
@@ -7822,7 +7840,7 @@ var bi = class {
7822
7840
  lineStyles: e,
7823
7841
  changed: !1
7824
7842
  };
7825
- }, Hi = ({ cleanup: e, lineCount: t, styles: n }) => {
7843
+ }, Wi = ({ cleanup: e, lineCount: t, styles: n }) => {
7826
7844
  if (!e) return {
7827
7845
  styles: n,
7828
7846
  changed: !1
@@ -7842,7 +7860,7 @@ var bi = class {
7842
7860
  for (let t = 0; t < e.lineDefaults.length; t += 1) {
7843
7861
  let n = e.lineDefaults[t];
7844
7862
  if (!n) continue;
7845
- let a = Vi({
7863
+ let a = Ui({
7846
7864
  lineStyles: r,
7847
7865
  lineDefaults: n
7848
7866
  });
@@ -7857,19 +7875,19 @@ var bi = class {
7857
7875
  styles: a,
7858
7876
  changed: !0
7859
7877
  };
7860
- }, Ui = ({ textbox: e }) => {
7878
+ }, Gi = ({ textbox: e }) => {
7861
7879
  let { fontFamily: t, fontSize: n, fontStyle: r, fontWeight: i, fill: a, stroke: o, strokeWidth: s, linethrough: c, underline: l } = e, u = {}, d = typeof a == "string" ? a : void 0, f = typeof o == "string" ? o : void 0;
7862
7880
  return t !== void 0 && (u.fontFamily = t), n !== void 0 && (u.fontSize = n), i !== void 0 && (u.fontWeight = i), r !== void 0 && (u.fontStyle = r), l !== void 0 && (u.underline = l), c !== void 0 && (u.linethrough = c), d !== void 0 && (u.fill = d), f !== void 0 && (u.stroke = f), s !== void 0 && (u.strokeWidth = s), u;
7863
- }, Wi = ({ sourceDefaults: e, globalLineDefaults: t }) => {
7881
+ }, Ki = ({ sourceDefaults: e, globalLineDefaults: t }) => {
7864
7882
  let n = {};
7865
7883
  return e?.fontFamily === void 0 ? t.fontFamily !== void 0 && (n.fontFamily = t.fontFamily) : n.fontFamily = e.fontFamily, e?.fontSize === void 0 ? t.fontSize !== void 0 && (n.fontSize = t.fontSize) : n.fontSize = e.fontSize, e?.fontWeight === void 0 ? t.fontWeight !== void 0 && (n.fontWeight = t.fontWeight) : n.fontWeight = e.fontWeight, e?.fontStyle === void 0 ? t.fontStyle !== void 0 && (n.fontStyle = t.fontStyle) : n.fontStyle = e.fontStyle, e?.underline === void 0 ? t.underline !== void 0 && (n.underline = t.underline) : n.underline = e.underline, e?.linethrough === void 0 ? t.linethrough !== void 0 && (n.linethrough = t.linethrough) : n.linethrough = e.linethrough, e?.fill === void 0 ? t.fill !== void 0 && (n.fill = t.fill) : n.fill = e.fill, e?.stroke === void 0 ? t.stroke !== void 0 && (n.stroke = t.stroke) : n.stroke = e.stroke, e?.strokeWidth === void 0 ? n.stroke !== void 0 && t.strokeWidth !== void 0 && (n.strokeWidth = t.strokeWidth) : n.strokeWidth = e.strokeWidth, n;
7866
- }, Gi = ({ lineText: e, lineStyles: t, lineDefaults: n }) => {
7884
+ }, qi = ({ lineText: e, lineStyles: t, lineDefaults: n }) => {
7867
7885
  let r = e.length;
7868
7886
  if (r === 0) return {
7869
7887
  lineStyles: t,
7870
7888
  changed: !1
7871
7889
  };
7872
- let i = zi({ lineDefaults: n }), a = Object.keys(i);
7890
+ let i = Vi({ lineDefaults: n }), a = Object.keys(i);
7873
7891
  if (!a.length) return {
7874
7892
  lineStyles: t,
7875
7893
  changed: !1
@@ -7895,8 +7913,8 @@ var bi = class {
7895
7913
  lineStyles: o,
7896
7914
  changed: s
7897
7915
  };
7898
- }, Ki = ({ deletedLineDefaultsCleanup: e, globalLineDefaults: t, lineFontDefaults: n, lines: r, styles: i }) => {
7899
- let a = n, o = !1, s = !1, c = i, l = !1, u = !1, d, f = Hi({
7916
+ }, Ji = ({ deletedLineDefaultsCleanup: e, globalLineDefaults: t, lineFontDefaults: n, lines: r, styles: i }) => {
7917
+ let a = n, o = !1, s = !1, c = i, l = !1, u = !1, d, f = Wi({
7900
7918
  styles: c ?? {},
7901
7919
  lineCount: r.length,
7902
7920
  cleanup: e
@@ -7907,7 +7925,7 @@ var bi = class {
7907
7925
  if (i && (d = i), n.length !== 0) {
7908
7926
  let t = i;
7909
7927
  if (!t && d && (t = { ...d }, a || (a = {}, s = !0), s ||= (a = { ...a }, !0), a[e] = t, o = !0), t) {
7910
- let r = Gi({
7928
+ let r = qi({
7911
7929
  lineText: n,
7912
7930
  lineStyles: c ? c[e] : void 0,
7913
7931
  lineDefaults: t
@@ -7916,12 +7934,12 @@ var bi = class {
7916
7934
  }
7917
7935
  continue;
7918
7936
  }
7919
- let f = Wi({
7937
+ let f = Ki({
7920
7938
  sourceDefaults: i ?? d,
7921
7939
  globalLineDefaults: t
7922
7940
  });
7923
7941
  !i && Object.keys(f).length && (a || (a = {}, s = !0), s ||= (a = { ...a }, !0), a[e] = f, o = !0, d = f), i && (d = i);
7924
- let p = zi({ lineDefaults: f }), m = Object.keys(p).length > 0;
7942
+ let p = Vi({ lineDefaults: f }), m = Object.keys(p).length > 0;
7925
7943
  (m || c && c[e]) && (c || (c = {}, u = !0), u ||= (c = { ...c }, !0), m && (c[e] = { 0: p }), !m && c[e] && delete c[e], l = !0);
7926
7944
  }
7927
7945
  return {
@@ -7931,8 +7949,8 @@ var bi = class {
7931
7949
  stylesChanged: l
7932
7950
  };
7933
7951
  };
7934
- function qi({ textbox: e }) {
7935
- let t = (e.text ?? "").split("\n"), n = Ui({ textbox: e }), r = Ki({
7952
+ function Yi({ textbox: e }) {
7953
+ let t = (e.text ?? "").split("\n"), n = Gi({ textbox: e }), r = Ji({
7936
7954
  lines: t,
7937
7955
  styles: e.styles,
7938
7956
  lineFontDefaults: e.lineFontDefaults,
@@ -7944,7 +7962,7 @@ function qi({ textbox: e }) {
7944
7962
  if (!Number.isInteger(t) || t < 0) continue;
7945
7963
  let o = r.styles[e];
7946
7964
  if (!o) continue;
7947
- let s = Vi({
7965
+ let s = Ui({
7948
7966
  lineStyles: o,
7949
7967
  lineDefaults: i?.[t] ?? n
7950
7968
  });
@@ -7955,31 +7973,31 @@ function qi({ textbox: e }) {
7955
7973
  styles: a
7956
7974
  };
7957
7975
  }
7958
- var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
7959
- let r = Ri({
7976
+ var Xi = ({ currentText: e, previousText: t, textbox: n }) => {
7977
+ let r = Bi({
7960
7978
  lineFontDefaults: n.lineFontDefaults,
7961
7979
  previousText: t,
7962
7980
  currentText: e
7963
- }), i = Ki({
7981
+ }), i = Ji({
7964
7982
  lines: e.split("\n"),
7965
7983
  styles: n.styles,
7966
7984
  lineFontDefaults: r.lineFontDefaults,
7967
7985
  deletedLineDefaultsCleanup: r.deletedLineDefaultsCleanup,
7968
- globalLineDefaults: Ui({ textbox: n })
7986
+ globalLineDefaults: Gi({ textbox: n })
7969
7987
  });
7970
7988
  return {
7971
7989
  ...i,
7972
7990
  lineFontDefaultsChanged: r.changed || i.lineFontDefaultsChanged
7973
7991
  };
7974
- }, Yi = ({ textbox: e }) => {
7975
- let t = Ki({
7992
+ }, Zi = ({ textbox: e }) => {
7993
+ let t = Ji({
7976
7994
  lines: (e.text ?? "").split("\n"),
7977
7995
  styles: e.styles,
7978
7996
  lineFontDefaults: e.lineFontDefaults,
7979
- globalLineDefaults: Ui({ textbox: e })
7997
+ globalLineDefaults: Gi({ textbox: e })
7980
7998
  }), n = !1;
7981
7999
  return t.lineFontDefaultsChanged && (e.lineFontDefaults = t.lineFontDefaults, n = !0), t.stylesChanged && (e.styles = t.styles, e.dirty = !0, n = !0), n;
7982
- }, Xi = ({ lineFontDefaults: e }) => {
8000
+ }, Qi = ({ lineFontDefaults: e }) => {
7983
8001
  if (!e) return;
7984
8002
  let t = {};
7985
8003
  for (let n in e) {
@@ -7990,7 +8008,7 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
7990
8008
  i && (t[r] = { ...i });
7991
8009
  }
7992
8010
  return t;
7993
- }, Zi = ({ lineFontDefaults: e, scale: t }) => {
8011
+ }, $i = ({ lineFontDefaults: e, scale: t }) => {
7994
8012
  if (!e || !Number.isFinite(t) || Math.abs(t - 1) < .01) return;
7995
8013
  let n = {}, r = !1, i = !1;
7996
8014
  for (let a in e) {
@@ -8007,18 +8025,18 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8007
8025
  n[o] = c, r = !0;
8008
8026
  }
8009
8027
  if (!(!r || !i)) return n;
8010
- }, Qi = ({ textbox: e, text: t }) => {
8028
+ }, ea = ({ textbox: e, text: t }) => {
8011
8029
  let { textLines: n } = e, r = Array.isArray(n) && n.length > 0 ? n.length : Math.max(t.split("\n").length, 1), i = 0;
8012
8030
  for (let t = 0; t < r; t += 1) {
8013
8031
  let n = e.getLineWidth(t);
8014
8032
  n > i && (i = n);
8015
8033
  }
8016
8034
  return i;
8017
- }, $i = ({ origin: e, size: t }) => e === "left" || e === "top" || e === 0 ? 0 : e === "right" || e === "bottom" || e === 1 ? t : t / 2, ea = ({ textbox: e, originX: t = e.originX ?? "center", originY: n = e.originY ?? "center" }) => {
8018
- 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 m(l + $i({
8035
+ }, ta = ({ origin: e, size: t }) => e === "left" || e === "top" || e === 0 ? 0 : e === "right" || e === "bottom" || e === 1 ? t : t / 2, na = ({ textbox: e, originX: t = e.originX ?? "center", originY: n = e.originY ?? "center" }) => {
8036
+ 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 m(l + ta({
8019
8037
  origin: t,
8020
8038
  size: r
8021
- }), u + $i({
8039
+ }), u + ta({
8022
8040
  origin: n,
8023
8041
  size: i
8024
8042
  })), f = e.getPointByOrigin("center", "center"), p = e, h = typeof p.calcTransformMatrix == "function" ? p.calcTransformMatrix() : null, g = Array.isArray(h) ? new m(d.x * h[0] + d.y * h[2] + f.x, d.x * h[1] + d.y * h[3] + f.y) : new m(f.x + d.x, f.y + d.y);
@@ -8028,13 +8046,13 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8028
8046
  originX: t,
8029
8047
  originY: n
8030
8048
  };
8031
- }, ta = ({ textbox: e, montageLeft: t, montageRight: n }) => {
8049
+ }, ra = ({ textbox: e, montageLeft: t, montageRight: n }) => {
8032
8050
  e.setCoords();
8033
8051
  let r = e.getBoundingRect(), i = r.left ?? 0, a = i + (r.width ?? 0), o = n - t;
8034
8052
  if (o > 0 && (r.width ?? 0) >= o - .01) return !1;
8035
8053
  let s = 0;
8036
8054
  return i < t ? s = t - i : a > n && (s = n - a), Math.abs(s) <= .01 ? !1 : (e.set({ left: (e.left ?? 0) + s }), !0);
8037
- }, na = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, ra = ({ stylesList: e }) => {
8055
+ }, ia = ({ rawValue: e, calculatedValue: t }) => typeof e == "number" ? e : typeof t == "number" ? t : 0, aa = ({ stylesList: e }) => {
8038
8056
  let t = e.length;
8039
8057
  if (!t) return !1;
8040
8058
  for (let n = 0; n < t; n += 1) {
@@ -8044,16 +8062,16 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8044
8062
  if (r !== void 0 || i !== void 0 || a !== void 0 || o !== void 0 || s !== void 0 || c !== void 0) return !0;
8045
8063
  }
8046
8064
  return !1;
8047
- }, ia = ({ textbox: e }) => {
8048
- 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 = na({
8065
+ }, oa = ({ textbox: e }) => {
8066
+ 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 = ia({
8049
8067
  rawValue: t,
8050
8068
  calculatedValue: a
8051
- }), c = na({
8069
+ }), c = ia({
8052
8070
  rawValue: n,
8053
8071
  calculatedValue: o
8054
8072
  }), l = Number.isFinite(s) ? Math.round(s) : null, u = Number.isFinite(c) ? Math.round(c) : null, d = {};
8055
8073
  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;
8056
- }, aa = ({ textbox: e }) => {
8074
+ }, sa = ({ textbox: e }) => {
8057
8075
  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;
8058
8076
  return {
8059
8077
  width: t,
@@ -8071,9 +8089,9 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8071
8089
  bottomLeft: f
8072
8090
  },
8073
8091
  styles: JSON.parse(JSON.stringify(r)),
8074
- lineFontDefaults: Xi({ lineFontDefaults: i })
8092
+ lineFontDefaults: Qi({ lineFontDefaults: i })
8075
8093
  };
8076
- }, oa = ({ base: e }) => {
8094
+ }, ca = ({ base: e }) => {
8077
8095
  let t = 1 / Math.max(1, e.width), n = [e.fontSize];
8078
8096
  Object.values(e.styles).forEach((e) => {
8079
8097
  Object.values(e).forEach((e) => {
@@ -8090,7 +8108,7 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8090
8108
  fontScale: r,
8091
8109
  proportionalScale: Math.max(t, r)
8092
8110
  };
8093
- }, sa = ({ textbox: e, base: t, scale: n, shouldScaleFontSize: r = !0, shouldScalePadding: i = !0, shouldScaleRadii: a = !0 }) => {
8111
+ }, la = ({ textbox: e, base: t, scale: n, shouldScaleFontSize: r = !0, shouldScalePadding: i = !0, shouldScaleRadii: a = !0 }) => {
8094
8112
  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;
8095
8113
  if (r && f) {
8096
8114
  let e = {};
@@ -8109,7 +8127,7 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8109
8127
  }), Object.keys(e).length && (p = e);
8110
8128
  }
8111
8129
  let m;
8112
- r && (m = Zi({
8130
+ r && (m = $i({
8113
8131
  lineFontDefaults: u,
8114
8132
  scale: n
8115
8133
  }));
@@ -8135,9 +8153,9 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8135
8153
  radiusBottomRight: g.bottomRight,
8136
8154
  radiusBottomLeft: g.bottomLeft
8137
8155
  });
8138
- }, ca = ({ 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 }) => {
8139
- let { width: f } = n, p = Math.max(1, f * r), h = d ? Math.max(1, Math.round(p)) : p, g = e.width ?? f, _ = Math.abs(h - g) > Di;
8140
- u && _ && (e.autoExpand = !1), sa({
8156
+ }, ua = ({ 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 }) => {
8157
+ let { width: f } = n, p = Math.max(1, f * r), h = d ? Math.max(1, Math.round(p)) : p, g = e.width ?? f, _ = Math.abs(h - g) > ki;
8158
+ u && _ && (e.autoExpand = !1), la({
8141
8159
  textbox: e,
8142
8160
  base: n,
8143
8161
  scale: i,
@@ -8156,7 +8174,7 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8156
8174
  } finally {
8157
8175
  e.shouldRoundDimensionsOnInit = v;
8158
8176
  }
8159
- let y = d ? ia({ textbox: e }) : !1;
8177
+ let y = d ? oa({ textbox: e }) : !1;
8160
8178
  return y && (e.dirty = !0), o ? (e.set({
8161
8179
  originX: a.originX,
8162
8180
  originY: a.originY
@@ -8173,7 +8191,7 @@ var Ji = ({ currentText: e, previousText: t, textbox: n }) => {
8173
8191
  };
8174
8192
  //#endregion
8175
8193
  //#region src/editor/shape-manager/mutation/shape-rehydration.ts
8176
- function la({ group: e }) {
8194
+ function da({ group: e }) {
8177
8195
  let t = Math.abs(e.scaleX ?? 1) || 1, n = Math.abs(e.scaleY ?? 1) || 1, r = Math.max(1, e.shapeBaseWidth ?? e.width ?? 1), i = Math.max(1, e.shapeBaseHeight ?? e.height ?? 1);
8178
8196
  return {
8179
8197
  currentDimensions: {
@@ -8190,17 +8208,17 @@ function la({ group: e }) {
8190
8208
  }
8191
8209
  };
8192
8210
  }
8193
- function ua({ group: e, text: t, textScale: n }) {
8211
+ function fa({ group: e, text: t, textScale: n }) {
8194
8212
  let r = Number.isFinite(n) && n > 0 ? n : 1;
8195
- Math.abs(r - 1) <= 1e-4 || (sa({
8213
+ Math.abs(r - 1) <= 1e-4 || (la({
8196
8214
  textbox: t,
8197
- base: aa({ textbox: t }),
8215
+ base: sa({ textbox: t }),
8198
8216
  scale: r
8199
8217
  }), e.shapePaddingTop = Math.max(0, (e.shapePaddingTop ?? 0) * r), e.shapePaddingRight = Math.max(0, (e.shapePaddingRight ?? 0) * r), e.shapePaddingBottom = Math.max(0, (e.shapePaddingBottom ?? 0) * r), e.shapePaddingLeft = Math.max(0, (e.shapePaddingLeft ?? 0) * r));
8200
8218
  }
8201
8219
  //#endregion
8202
8220
  //#region src/editor/shape-manager/mutation/shape-update-pipeline.ts
8203
- var da = {
8221
+ var pa = {
8204
8222
  angle: 0,
8205
8223
  skewX: 0,
8206
8224
  skewY: 0,
@@ -8213,7 +8231,7 @@ var da = {
8213
8231
  top: 0,
8214
8232
  originX: "left",
8215
8233
  originY: "top"
8216
- }, fa = class {
8234
+ }, ma = class {
8217
8235
  constructor({ runtime: e }) {
8218
8236
  this.runtime = e;
8219
8237
  }
@@ -8376,7 +8394,7 @@ var da = {
8376
8394
  options: n,
8377
8395
  styleState: i,
8378
8396
  dimensionState: a
8379
- }), c = await Vn({
8397
+ }), c = await Un({
8380
8398
  preset: r.effectivePreset,
8381
8399
  width: s.width,
8382
8400
  height: s.height,
@@ -8511,7 +8529,7 @@ var da = {
8511
8529
  width: Math.max(1, e.width ?? t),
8512
8530
  align: n
8513
8531
  });
8514
- return s.set(da), this.runtime.applyTextUpdates({
8532
+ return s.set(pa), this.runtime.applyTextUpdates({
8515
8533
  textNode: s,
8516
8534
  text: r,
8517
8535
  textStyle: i,
@@ -8573,9 +8591,9 @@ var da = {
8573
8591
  shouldPreserveCurrentWidth: r
8574
8592
  };
8575
8593
  }
8576
- }, pa = class {
8594
+ }, ha = class {
8577
8595
  constructor({ runtime: e }) {
8578
- this.runtime = e, this.updatePipeline = new fa({ runtime: e });
8596
+ this.runtime = e, this.updatePipeline = new ma({ runtime: e });
8579
8597
  }
8580
8598
  async update({ target: e, presetKey: t, options: n = {} } = {}) {
8581
8599
  let r = await this.updatePipeline.prepare({
@@ -8618,7 +8636,7 @@ var da = {
8618
8636
  });
8619
8637
  this.runtime.beginMutation();
8620
8638
  try {
8621
- kn({
8639
+ jn({
8622
8640
  shape: i,
8623
8641
  style: { fill: t }
8624
8642
  }), r.shapeFill = t, r.setCoords(), this.runtime.lifecycleController.fireBefore({ lifecycle: a }), this.runtime.editor.canvas.requestRenderAll();
@@ -8666,7 +8684,7 @@ var da = {
8666
8684
  });
8667
8685
  this.runtime.beginMutation();
8668
8686
  try {
8669
- kn({
8687
+ jn({
8670
8688
  shape: a,
8671
8689
  style: { opacity: t }
8672
8690
  }), n && o && (o.set({ opacity: t }), o.setCoords()), i.shapeOpacity = t, i.set({ opacity: 1 }), i.setCoords(), this.runtime.lifecycleController.fireBefore({ lifecycle: s }), this.runtime.editor.canvas.requestRenderAll();
@@ -8751,8 +8769,8 @@ var da = {
8751
8769
  if (!r) return !1;
8752
8770
  let { shape: i, text: a } = H({ group: r });
8753
8771
  if (!i || !a) return !1;
8754
- let o = this.runtime.editor.canvasManager.getObjectPlacement({ object: r }), { currentDimensions: s, manualDimensions: c, replaceBoxDimensions: l } = la({ group: r });
8755
- return ua({
8772
+ let o = this.runtime.editor.canvasManager.getObjectPlacement({ object: r }), { currentDimensions: s, manualDimensions: c, replaceBoxDimensions: l } = da({ group: r });
8773
+ return fa({
8756
8774
  group: r,
8757
8775
  text: a,
8758
8776
  textScale: t
@@ -8771,7 +8789,7 @@ var da = {
8771
8789
  return !t || t.locked ? null : t;
8772
8790
  }
8773
8791
  _applyStrokeAndTextLayout({ group: e, shape: t, text: n, stroke: r, strokeWidth: i, dash: a }) {
8774
- if (kn({
8792
+ if (jn({
8775
8793
  shape: t,
8776
8794
  style: {
8777
8795
  stroke: r,
@@ -8821,7 +8839,7 @@ var da = {
8821
8839
  }
8822
8840
  _applyPreparedTextState({ preparedUpdate: e }) {
8823
8841
  let { current: t, text: n } = e;
8824
- this.runtime.detachShapeGroupAutoLayout({ group: t.group }), t.text.set(da), this.runtime.applyTextUpdates({
8842
+ this.runtime.detachShapeGroupAutoLayout({ group: t.group }), t.text.set(pa), this.runtime.applyTextUpdates({
8825
8843
  textNode: t.text,
8826
8844
  text: n.value,
8827
8845
  textStyle: n.style,
@@ -8875,9 +8893,9 @@ var da = {
8875
8893
  let { current: t, next: n, layout: r, placement: i } = e;
8876
8894
  n.shouldFitReplacementToPreset && (t.group.shapeManualBaseWidth = Math.max(1, t.group.shapeBaseWidth ?? r.width), t.group.shapeManualBaseHeight = Math.max(1, t.group.shapeBaseHeight ?? r.height)), t.text.isEditing && this.runtime.editingPlacements.set(t.group, i);
8877
8895
  }
8878
- }, ma = class {
8896
+ }, ga = class {
8879
8897
  constructor({ editor: e }) {
8880
- this.editor = e, Ye(), this.scalingController = new xi({ canvas: e.canvas }), this.editingController = new Si({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.lifecycleController = new Ei({ canvas: e.canvas }), this.layoutController = new Ti({ editor: this.editor }), this.mutationController = new pa({ runtime: {
8898
+ this.editor = e, Ye(), this.scalingController = new Ci({ canvas: e.canvas }), this.editingController = new wi({ canvas: e.canvas }), this.editingPlacements = /* @__PURE__ */ new WeakMap(), this.lifecycleController = new Oi({ canvas: e.canvas }), this.layoutController = new Di({ editor: this.editor }), this.mutationController = new ha({ runtime: {
8881
8899
  editor: this.editor,
8882
8900
  lifecycleController: this.lifecycleController,
8883
8901
  editingPlacements: this.editingPlacements,
@@ -8887,7 +8905,7 @@ var da = {
8887
8905
  resolveReplaceBoxDimensions: (e) => this._resolveReplaceBoxDimensions(e),
8888
8906
  resolveGroupUserPadding: (e) => this._resolveGroupUserPadding(e),
8889
8907
  isShapeTextAutoExpandEnabled: (e) => this._isShapeTextAutoExpandEnabled(e),
8890
- resolveShapeStyle: Gn,
8908
+ resolveShapeStyle: qn,
8891
8909
  resolveCurrentTextStyle: (e) => this._resolveCurrentTextStyle(e),
8892
8910
  createTextNode: (e) => this._createTextNode(e),
8893
8911
  applyTextUpdates: (e) => this._applyTextUpdates(e),
@@ -8901,7 +8919,7 @@ var da = {
8901
8919
  beginMutation: () => this._beginMutation(),
8902
8920
  endMutation: (e) => this._endMutation(e),
8903
8921
  isOnCanvas: (e) => this._isOnCanvas(e)
8904
- } }), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this.eventController = new wi({ runtime: {
8922
+ } }), this.internalTextUpdates = /* @__PURE__ */ new WeakSet(), this.eventController = new Ei({ runtime: {
8905
8923
  editor: this.editor,
8906
8924
  scalingController: this.scalingController,
8907
8925
  editingController: this.editingController,
@@ -8965,7 +8983,7 @@ var da = {
8965
8983
  let w = a !== !1, T = this._resolveHorizontalAlign({
8966
8984
  explicitAlign: c,
8967
8985
  textStyle: s
8968
- }), E = l ?? "middle", O = Gn({
8986
+ }), E = l ?? "middle", O = qn({
8969
8987
  options: t,
8970
8988
  fallback: null
8971
8989
  }), k = Ne({ padding: u }), A = ({ width: e, height: t }) => Le({
@@ -9008,7 +9026,7 @@ var da = {
9008
9026
  addition: k
9009
9027
  })
9010
9028
  }));
9011
- let I = await Vn({
9029
+ let I = await Un({
9012
9030
  preset: m,
9013
9031
  width: F,
9014
9032
  height: x,
@@ -9148,7 +9166,7 @@ var da = {
9148
9166
  padding: h,
9149
9167
  style: y,
9150
9168
  rounding: b
9151
- }), x.rehydrateRuntimeState(), Ve({ group: x }), He({ text: i }), kr({
9169
+ }), x.rehydrateRuntimeState(), Ve({ group: x }), He({ text: i }), jr({
9152
9170
  group: x,
9153
9171
  shape: r,
9154
9172
  text: i,
@@ -9435,7 +9453,7 @@ var da = {
9435
9453
  }
9436
9454
  return null;
9437
9455
  }
9438
- }, ha = ({ rootObject: t, enableEvented: n = !0 }) => {
9456
+ }, _a = ({ rootObject: t, enableEvented: n = !0 }) => {
9439
9457
  let r = [{
9440
9458
  object: t,
9441
9459
  enableEvented: n
@@ -9449,7 +9467,7 @@ var da = {
9449
9467
  enableEvented: o
9450
9468
  });
9451
9469
  }
9452
- }, ga = class {
9470
+ }, va = class {
9453
9471
  constructor({ editor: e }) {
9454
9472
  this.editor = e, this.clipboard = null;
9455
9473
  }
@@ -9607,7 +9625,7 @@ var da = {
9607
9625
  if (!n || n.locked) return !1;
9608
9626
  try {
9609
9627
  let e = await n.clone(Mt);
9610
- return ha({ rootObject: e }), e.set({
9628
+ return _a({ rootObject: e }), e.set({
9611
9629
  left: e.left + 10,
9612
9630
  top: e.top + 10
9613
9631
  }), this._materializeCloneGeometry({ clonedObject: e }), this._addClonedObjectToCanvas(e), t.fire("editor:object-duplicated", {
@@ -9674,7 +9692,7 @@ var da = {
9674
9692
  if (!this.clipboard) return !1;
9675
9693
  try {
9676
9694
  let t = await this.clipboard.clone(Mt);
9677
- return e.discardActiveObject(), ha({ rootObject: t }), t.set({
9695
+ return e.discardActiveObject(), _a({ rootObject: t }), t.set({
9678
9696
  left: t.left + 10,
9679
9697
  top: t.top + 10
9680
9698
  }), this._materializeCloneGeometry({ clonedObject: t }), this._addClonedObjectToCanvas(t), e.fire("editor:object-pasted", {
@@ -9693,7 +9711,7 @@ var da = {
9693
9711
  }), !1;
9694
9712
  }
9695
9713
  }
9696
- }, _a = class t {
9714
+ }, ya = class t {
9697
9715
  constructor({ editor: e }) {
9698
9716
  this.editor = e;
9699
9717
  }
@@ -9758,7 +9776,7 @@ var da = {
9758
9776
  !(n instanceof v) || !n.isEditing || n.exitEditing();
9759
9777
  }
9760
9778
  }
9761
- }, va = class {
9779
+ }, ba = class {
9762
9780
  constructor({ editor: e }) {
9763
9781
  this.editor = e;
9764
9782
  }
@@ -9824,7 +9842,7 @@ var da = {
9824
9842
  i.resumeHistory(), n || i.saveState();
9825
9843
  }
9826
9844
  }
9827
- }, ya = class t {
9845
+ }, xa = class t {
9828
9846
  constructor({ editor: e }) {
9829
9847
  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();
9830
9848
  }
@@ -10018,7 +10036,7 @@ var da = {
10018
10036
  let { options: e } = this.editor, { selectionKey: t } = e;
10019
10037
  return t === void 0 ? ["ctrlKey", "metaKey"] : t;
10020
10038
  }
10021
- }, ba = class e {
10039
+ }, Sa = class e {
10022
10040
  constructor({ editor: e }) {
10023
10041
  this.editor = e;
10024
10042
  }
@@ -10058,7 +10076,7 @@ var da = {
10058
10076
  };
10059
10077
  return i.fire("editor:objects-deleted", l), l;
10060
10078
  }
10061
- }, xa = {
10079
+ }, Ca = {
10062
10080
  IMAGE_MANAGER: {
10063
10081
  INVALID_CONTENT_TYPE: "INVALID_CONTENT_TYPE",
10064
10082
  INVALID_SOURCE_TYPE: "INVALID_SOURCE_TYPE",
@@ -10096,7 +10114,7 @@ var da = {
10096
10114
  INVALID_TARGET: "TEMPLATE_INVALID_TARGET",
10097
10115
  APPLY_FAILED: "TEMPLATE_APPLY_FAILED"
10098
10116
  }
10099
- }, Sa = class e {
10117
+ }, wa = class e {
10100
10118
  constructor({ editor: e }) {
10101
10119
  this._buffer = [], this.editor = e;
10102
10120
  }
@@ -10154,9 +10172,9 @@ var da = {
10154
10172
  }), this.editor.canvas.fire("editor:warning", s);
10155
10173
  }
10156
10174
  static isValidErrorCode(e) {
10157
- return e ? Object.values(xa).some((t) => Object.values(t).includes(e)) : !1;
10175
+ return e ? Object.values(Ca).some((t) => Object.values(t).includes(e)) : !1;
10158
10176
  }
10159
- }, Ca = class {
10177
+ }, Ta = class {
10160
10178
  constructor({ editor: e }) {
10161
10179
  this.currentBounds = null, this.editor = e;
10162
10180
  }
@@ -10205,32 +10223,32 @@ var da = {
10205
10223
  updateBounds() {
10206
10224
  this.currentBounds = this.calculatePanBounds();
10207
10225
  }
10208
- }, wa = ({ textbox: e }) => {
10226
+ }, Ea = ({ textbox: e }) => {
10209
10227
  if (!e.isEditing) return null;
10210
10228
  let t = e.selectionStart ?? 0, n = e.selectionEnd ?? t;
10211
10229
  return t === n ? null : {
10212
10230
  start: Math.min(t, n),
10213
10231
  end: Math.max(t, n)
10214
10232
  };
10215
- }, Ta = ({ textbox: e }) => {
10233
+ }, Da = ({ textbox: e }) => {
10216
10234
  let t = e.text?.length ?? 0;
10217
10235
  return t <= 0 ? null : {
10218
10236
  start: 0,
10219
10237
  end: t
10220
10238
  };
10221
- }, Ea = ({ textbox: e, range: t }) => {
10239
+ }, Oa = ({ textbox: e, range: t }) => {
10222
10240
  if (!t) return !1;
10223
10241
  let n = e.text?.length ?? 0;
10224
10242
  return n <= 0 ? !1 : t.start <= 0 && t.end >= n;
10225
- }, Da = ({ textbox: e, styles: t, range: n }) => {
10243
+ }, ka = ({ textbox: e, styles: t, range: n }) => {
10226
10244
  if (!t || !Object.keys(t).length) return !1;
10227
10245
  let { start: r, end: i } = n;
10228
10246
  return i <= r ? !1 : (e.setSelectionStyles(t, r, i), !0);
10229
- }, Oa = ({ textbox: e, range: t, property: n }) => {
10247
+ }, Aa = ({ textbox: e, range: t, property: n }) => {
10230
10248
  if (!t) return;
10231
10249
  let r = e.getSelectionStyles(t.start, t.end, !0);
10232
10250
  if (r.length) return r[0]?.[n];
10233
- }, ka = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", Aa = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, ja = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", Ma = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), Na = class e extends v {
10251
+ }, ja = ({ strokeColor: e, width: t }) => t <= 0 ? null : e ?? "#000000", Ma = ({ width: e = 0 }) => e ? Math.max(0, e) : 0, Na = ({ value: e }) => typeof e == "string" ? e.toLocaleUpperCase() : "", Pa = ({ value: e, min: t, max: n }) => Math.min(Math.max(e, t), n), Fa = class e extends v {
10234
10252
  static {
10235
10253
  this.type = "background-textbox";
10236
10254
  }
@@ -10267,7 +10285,7 @@ var da = {
10267
10285
  ];
10268
10286
  }
10269
10287
  constructor(e, t = {}) {
10270
- 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, Yi({ textbox: this })) {
10288
+ 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, Zi({ textbox: this })) {
10271
10289
  this.initDimensions(), this.dirty = !0;
10272
10290
  return;
10273
10291
  }
@@ -10306,7 +10324,7 @@ var da = {
10306
10324
  });
10307
10325
  }
10308
10326
  toObject(e = []) {
10309
- let t = super.toObject(e), { lineFontDefaults: n, styles: r } = qi({ textbox: this });
10327
+ let t = super.toObject(e), { lineFontDefaults: n, styles: r } = Yi({ textbox: this });
10310
10328
  return {
10311
10329
  ...t,
10312
10330
  backgroundOpacity: this.backgroundOpacity,
@@ -10374,7 +10392,7 @@ var da = {
10374
10392
  this._removeShadow(e);
10375
10393
  }
10376
10394
  _getDecorationColorAt(e, t) {
10377
- let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = Aa({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : ka({
10395
+ let n = this.getValueOfPropertyAt(e, t, "strokeWidth"), r = Ma({ width: typeof n == "number" && Number.isFinite(n) ? n : 0 }), i = this.getValueOfPropertyAt(e, t, "stroke"), a = i == null ? null : ja({
10378
10396
  strokeColor: i,
10379
10397
  width: r
10380
10398
  });
@@ -10390,22 +10408,22 @@ var da = {
10390
10408
  _getCornerRadii({ width: e, height: t }) {
10391
10409
  let n = e / 2, r = t / 2, i = Math.min(n, r);
10392
10410
  return {
10393
- bottomLeft: Ma({
10411
+ bottomLeft: Pa({
10394
10412
  value: this.radiusBottomLeft ?? 0,
10395
10413
  min: 0,
10396
10414
  max: i
10397
10415
  }),
10398
- bottomRight: Ma({
10416
+ bottomRight: Pa({
10399
10417
  value: this.radiusBottomRight ?? 0,
10400
10418
  min: 0,
10401
10419
  max: i
10402
10420
  }),
10403
- topLeft: Ma({
10421
+ topLeft: Pa({
10404
10422
  value: this.radiusTopLeft ?? 0,
10405
10423
  min: 0,
10406
10424
  max: i
10407
10425
  }),
10408
- topRight: Ma({
10426
+ topRight: Pa({
10409
10427
  value: this.radiusTopRight ?? 0,
10410
10428
  min: 0,
10411
10429
  max: i
@@ -10423,7 +10441,7 @@ var da = {
10423
10441
  _getEffectiveBackgroundFill() {
10424
10442
  let e = this.backgroundColor;
10425
10443
  if (!e) return null;
10426
- let t = Ma({
10444
+ let t = Pa({
10427
10445
  value: this.backgroundOpacity ?? 1,
10428
10446
  min: 0,
10429
10447
  max: 1
@@ -10436,19 +10454,19 @@ var da = {
10436
10454
  return r.setAlpha(t), r.toRgba();
10437
10455
  }
10438
10456
  static _renderRoundedRect({ ctx: e, height: t, left: n, radii: r, top: i, width: a }) {
10439
- let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = Ma({
10457
+ let o = n + a, s = i + t, { topLeft: c, topRight: l, bottomRight: u, bottomLeft: d } = r, f = Pa({
10440
10458
  value: c,
10441
10459
  min: 0,
10442
10460
  max: a
10443
- }), p = Ma({
10461
+ }), p = Pa({
10444
10462
  value: l,
10445
10463
  min: 0,
10446
10464
  max: a
10447
- }), m = Ma({
10465
+ }), m = Pa({
10448
10466
  value: u,
10449
10467
  min: 0,
10450
10468
  max: a
10451
- }), h = Ma({
10469
+ }), h = Pa({
10452
10470
  value: d,
10453
10471
  min: 0,
10454
10472
  max: a
@@ -10459,9 +10477,9 @@ var da = {
10459
10477
  let { width: e = 0, height: t = 0 } = this, n = Math.round(e), r = Math.round(t);
10460
10478
  n !== e && (this.width = Math.max(0, n)), r !== t && (this.height = Math.max(0, r));
10461
10479
  }
10462
- }, Pa = () => {
10463
- b?.setClass && b.setClass(Na, "background-textbox");
10464
- }, Fa = class {
10480
+ }, Ia = () => {
10481
+ b?.setClass && b.setClass(Fa, "background-textbox");
10482
+ }, La = class {
10465
10483
  constructor({ runtime: e }) {
10466
10484
  this.runtime = e;
10467
10485
  }
@@ -10525,16 +10543,16 @@ var da = {
10525
10543
  };
10526
10544
  }
10527
10545
  _createSelectionContext({ textbox: e, currentText: t, selectionRangeOverride: n }) {
10528
- let r = n === void 0 ? wa({ textbox: e }) : ki({
10546
+ let r = n === void 0 ? Ea({ textbox: e }) : ji({
10529
10547
  text: t,
10530
10548
  range: n
10531
- }), i = r ? Ai({
10549
+ }), i = r ? Mi({
10532
10550
  textbox: e,
10533
10551
  range: r
10534
- }) : null, a = Ea({
10552
+ }) : null, a = Oa({
10535
10553
  textbox: e,
10536
10554
  range: r
10537
- }), o = Ea({
10555
+ }), o = Oa({
10538
10556
  textbox: e,
10539
10557
  range: i
10540
10558
  }), s = !r || a;
@@ -10622,17 +10640,17 @@ var da = {
10622
10640
  t.resolvedStrokeColor = i.stroke, t.resolvedStrokeWidth = i.strokeWidth, r.selectionRange && (t.selectionStyles.stroke = i.stroke, t.selectionStyles.strokeWidth = i.strokeWidth), r.shouldUpdateWholeObject && (t.updates.stroke = i.stroke, t.updates.strokeWidth = i.strokeWidth, r.shouldApplyWholeTextStyles && (t.wholeTextStyles.stroke = i.stroke, t.wholeTextStyles.strokeWidth = i.strokeWidth));
10623
10641
  }
10624
10642
  _resolveStrokeUpdate({ textbox: e, selectionRange: t, strokeColor: n, strokeWidth: r }) {
10625
- let i = t ? Oa({
10643
+ let i = t ? Aa({
10626
10644
  textbox: e,
10627
10645
  range: t,
10628
10646
  property: "strokeWidth"
10629
- }) : void 0, a = t ? Oa({
10647
+ }) : void 0, a = t ? Aa({
10630
10648
  textbox: e,
10631
10649
  range: t,
10632
10650
  property: "stroke"
10633
- }) : void 0, o = typeof i == "number" ? i : void 0, s = typeof a == "string" ? a : void 0, c = typeof e.stroke == "string" ? e.stroke : void 0, l = Aa({ width: r ?? o ?? e.strokeWidth ?? 0 });
10651
+ }) : void 0, o = typeof i == "number" ? i : void 0, s = typeof a == "string" ? a : void 0, c = typeof e.stroke == "string" ? e.stroke : void 0, l = Ma({ width: r ?? o ?? e.strokeWidth ?? 0 });
10634
10652
  return {
10635
- stroke: ka({
10653
+ stroke: ja({
10636
10654
  strokeColor: n ?? s ?? c,
10637
10655
  width: l
10638
10656
  }) ?? null,
@@ -10644,14 +10662,14 @@ var da = {
10644
10662
  }
10645
10663
  _applyTextContentUpdate({ textbox: e, style: t, updates: n, currentText: r }) {
10646
10664
  let i = e.textCaseRaw ?? r, a = !!e.uppercase, o = t.text !== void 0, s = o ? t.text ?? "" : i, c = t.uppercase ?? a, l = c !== a, u = e.text ?? "";
10647
- return o || l ? (n.text = c ? ja({ value: s }) : s, e.textCaseRaw = s) : e.textCaseRaw === void 0 && (e.textCaseRaw = i), e.uppercase = c, {
10665
+ return o || l ? (n.text = c ? Na({ value: s }) : s, e.textCaseRaw = s) : e.textCaseRaw === void 0 && (e.textCaseRaw = i), e.uppercase = c, {
10648
10666
  hasTextUpdate: o,
10649
10667
  uppercaseChanged: l,
10650
10668
  previousRenderedText: u
10651
10669
  };
10652
10670
  }
10653
10671
  _resolveContentPlacement({ textbox: e, style: t, updates: n, placement: r, styleMaps: i, contentUpdate: a }) {
10654
- let o = ra({ stylesList: [
10672
+ let o = aa({ stylesList: [
10655
10673
  n,
10656
10674
  i.selectionStyles,
10657
10675
  i.lineSelectionStyles,
@@ -10667,7 +10685,7 @@ var da = {
10667
10685
  t.paddingBottom,
10668
10686
  t.paddingLeft
10669
10687
  ].some((e) => e !== void 0), l = Object.prototype.hasOwnProperty.call(n, "width");
10670
- return c && !s && !a.hasTextUpdate && !a.uppercaseChanged && !o && !l ? ea({
10688
+ return c && !s && !a.hasTextUpdate && !a.uppercaseChanged && !o && !l ? na({
10671
10689
  textbox: e,
10672
10690
  originX: r.originX,
10673
10691
  originY: r.originY
@@ -10700,24 +10718,24 @@ var da = {
10700
10718
  }
10701
10719
  _applyWholeTextStyles({ textbox: e, selection: t, styleMaps: n }) {
10702
10720
  if (t.selectionRange || Object.keys(n.wholeTextStyles).length === 0) return;
10703
- let r = Ta({ textbox: e });
10704
- r && Da({
10721
+ let r = Da({ textbox: e });
10722
+ r && ka({
10705
10723
  textbox: e,
10706
10724
  styles: n.wholeTextStyles,
10707
10725
  range: r
10708
- }) && (e.dirty = !0, ra({ stylesList: [n.wholeTextStyles] }) && (e.initDimensions(), e.dirty = !0));
10726
+ }) && (e.dirty = !0, aa({ stylesList: [n.wholeTextStyles] }) && (e.initDimensions(), e.dirty = !0));
10709
10727
  }
10710
10728
  _applySelectionStyles({ textbox: e, selection: t, styleMaps: n }) {
10711
10729
  if (!t.selectionRange) return;
10712
- let r = Da({
10730
+ let r = ka({
10713
10731
  textbox: e,
10714
10732
  styles: n.selectionStyles,
10715
10733
  range: t.selectionRange
10716
- }), i = t.fontSelectionRange ? Da({
10734
+ }), i = t.fontSelectionRange ? ka({
10717
10735
  textbox: e,
10718
10736
  styles: n.lineSelectionStyles,
10719
10737
  range: t.fontSelectionRange
10720
- }) : !1, a = ra({ stylesList: [
10738
+ }) : !1, a = aa({ stylesList: [
10721
10739
  n.selectionStyles,
10722
10740
  n.lineSelectionStyles,
10723
10741
  n.wholeTextStyles
@@ -10739,9 +10757,9 @@ var da = {
10739
10757
  _applyFontLineDefaultUpdates({ textbox: e, style: t, selection: n }) {
10740
10758
  if (!n.fontSelectionRange || t.fontFamily === void 0 && t.fontSize === void 0) return;
10741
10759
  let r = {};
10742
- t.fontFamily !== void 0 && (r.fontFamily = t.fontFamily), t.fontSize !== void 0 && (r.fontSize = t.fontSize), Bi({
10760
+ t.fontFamily !== void 0 && (r.fontFamily = t.fontFamily), t.fontSize !== void 0 && (r.fontSize = t.fontSize), Hi({
10743
10761
  textbox: e,
10744
- lineIndices: ji({
10762
+ lineIndices: Ni({
10745
10763
  textbox: e,
10746
10764
  range: n.fontSelectionRange
10747
10765
  }),
@@ -10751,9 +10769,9 @@ var da = {
10751
10769
  _applyDecorationLineDefaultUpdates({ textbox: e, style: t, selection: n, styleMaps: r }) {
10752
10770
  if (!n.selectionRange || !(t.bold !== void 0 || t.italic !== void 0 || t.underline !== void 0 || t.strikethrough !== void 0 || t.color !== void 0 || t.strokeColor !== void 0 || t.strokeWidth !== void 0)) return;
10753
10771
  let i = {};
10754
- r.resolvedFontWeight !== void 0 && (i.fontWeight = r.resolvedFontWeight), r.resolvedFontStyle !== void 0 && (i.fontStyle = r.resolvedFontStyle), t.underline !== void 0 && (i.underline = t.underline), t.strikethrough !== void 0 && (i.linethrough = t.strikethrough), t.color !== void 0 && (i.fill = t.color), (t.strokeColor !== void 0 || t.strokeWidth !== void 0) && (r.resolvedStrokeColor === null && (i.stroke = null), r.resolvedStrokeColor !== null && r.resolvedStrokeColor !== void 0 && (i.stroke = r.resolvedStrokeColor), r.resolvedStrokeWidth !== void 0 && (i.strokeWidth = r.resolvedStrokeWidth)), Bi({
10772
+ r.resolvedFontWeight !== void 0 && (i.fontWeight = r.resolvedFontWeight), r.resolvedFontStyle !== void 0 && (i.fontStyle = r.resolvedFontStyle), t.underline !== void 0 && (i.underline = t.underline), t.strikethrough !== void 0 && (i.linethrough = t.strikethrough), t.color !== void 0 && (i.fill = t.color), (t.strokeColor !== void 0 || t.strokeWidth !== void 0) && (r.resolvedStrokeColor === null && (i.stroke = null), r.resolvedStrokeColor !== null && r.resolvedStrokeColor !== void 0 && (i.stroke = r.resolvedStrokeColor), r.resolvedStrokeWidth !== void 0 && (i.strokeWidth = r.resolvedStrokeWidth)), Hi({
10755
10773
  textbox: e,
10756
- lineIndices: Mi({
10774
+ lineIndices: Pi({
10757
10775
  textbox: e,
10758
10776
  range: n.selectionRange
10759
10777
  }),
@@ -10799,7 +10817,7 @@ var da = {
10799
10817
  ].some((e) => e !== void 0);
10800
10818
  }
10801
10819
  _resolveShouldAutoExpand({ textbox: e, style: t, styleMaps: n, contentUpdate: r }) {
10802
- let i = t.autoExpand ?? e.autoExpand, a = ra({ stylesList: [
10820
+ let i = t.autoExpand ?? e.autoExpand, a = aa({ stylesList: [
10803
10821
  n.updates,
10804
10822
  n.selectionStyles,
10805
10823
  n.lineSelectionStyles,
@@ -10844,18 +10862,18 @@ var da = {
10844
10862
  };
10845
10863
  this.runtime.canvas.fire("editor:text-updated", m);
10846
10864
  }
10847
- }, Ia = ({ transform: e }) => {
10865
+ }, Ra = ({ transform: e }) => {
10848
10866
  let { corner: t = "", action: n = "" } = e;
10849
10867
  return {
10850
10868
  isCornerHandle: t === "tl" || t === "tr" || t === "bl" || t === "br" || n === "scale",
10851
10869
  isHorizontalHandle: t === "ml" || t === "mr" || n === "scaleX",
10852
10870
  isVerticalHandle: t === "mt" || t === "mb" || n === "scaleY"
10853
10871
  };
10854
- }, La = ({ textbox: e, transform: t, appliedWidth: n }) => {
10872
+ }, za = ({ textbox: e, transform: t, appliedWidth: n }) => {
10855
10873
  t.scaleX = 1, t.scaleY = 1;
10856
10874
  let r = t.original;
10857
10875
  r && (r.scaleX = 1, r.scaleY = 1, r.width = n, r.height = e.height, r.left = e.left, r.top = e.top);
10858
- }, Ra = ({ textbox: e, transform: t, scenePoint: n }) => {
10876
+ }, Ba = ({ textbox: e, transform: t, scenePoint: n }) => {
10859
10877
  let { x: r, y: i } = e._getTransformedDimensions();
10860
10878
  if (r <= 0 || i <= 0) return null;
10861
10879
  let a = x.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);
@@ -10865,27 +10883,27 @@ var da = {
10865
10883
  stepScaleX: l,
10866
10884
  stepScaleY: u
10867
10885
  };
10868
- }, za = 1e-4;
10869
- function Ba(e) {
10886
+ }, Va = 1e-4;
10887
+ function Ha(e) {
10870
10888
  return !!e && e instanceof v;
10871
10889
  }
10872
- function Va(e) {
10873
- if (!Ba(e)) return !1;
10890
+ function Ua(e) {
10891
+ if (!Ha(e)) return !1;
10874
10892
  let t = e.group;
10875
10893
  return e.shapeNodeType === "text" && t?.shapeComposite === !0;
10876
10894
  }
10877
- var Ha = class {
10895
+ var Wa = class {
10878
10896
  constructor({ canvas: t, canvasManager: n, persistScaledTextbox: r }) {
10879
10897
  this.handleMouseMove = (e) => {
10880
10898
  let t = this.canvas._currentTransform;
10881
10899
  if (!t) return;
10882
10900
  let { target: n } = t;
10883
- if (!Ba(n) || Va(n)) return;
10901
+ if (!Ha(n) || Ua(n)) return;
10884
10902
  let r = this.scalingState.get(n);
10885
10903
  if (!r || !e.e) return;
10886
- let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = Ia({ transform: t });
10904
+ let { isCornerHandle: i, isHorizontalHandle: a, isVerticalHandle: o } = Ra({ transform: t });
10887
10905
  if (!a && !o && !i) return;
10888
- let s = Ra({
10906
+ let s = Ba({
10889
10907
  textbox: n,
10890
10908
  transform: t,
10891
10909
  scenePoint: this.canvas.getScenePoint(e.e)
@@ -10908,20 +10926,20 @@ var Ha = class {
10908
10926
  }, j = r.lastAllowedScaleX, M = r.lastAllowedScaleY;
10909
10927
  if (i) {
10910
10928
  let e = Math.max(r.minimumProportionalScale, r.lastAllowedScaleX * Math.sqrt(u * d)), t = c || l ? r.minimumProportionalScale : e;
10911
- if (Math.abs(t - r.lastAllowedScaleX) <= za) return;
10929
+ if (Math.abs(t - r.lastAllowedScaleX) <= Va) return;
10912
10930
  j = t, M = t;
10913
10931
  } else {
10914
10932
  if (a) {
10915
10933
  let e = r.lastAllowedScaleX * u, t = c ? r.minimumWidthScale : Math.max(r.minimumWidthScale, e);
10916
- Math.abs(t - r.lastAllowedScaleX) > za && (j = t);
10934
+ Math.abs(t - r.lastAllowedScaleX) > Va && (j = t);
10917
10935
  }
10918
10936
  if (o) {
10919
10937
  let e = r.lastAllowedScaleY * d, t = l ? r.minimumFontScale : Math.max(r.minimumFontScale, e);
10920
- Math.abs(t - r.lastAllowedScaleY) > za && (M = t);
10938
+ Math.abs(t - r.lastAllowedScaleY) > Va && (M = t);
10921
10939
  }
10922
- if (Math.abs(j - r.lastAllowedScaleX) <= za && Math.abs(M - r.lastAllowedScaleY) <= za) return;
10940
+ if (Math.abs(j - r.lastAllowedScaleX) <= Va && Math.abs(M - r.lastAllowedScaleY) <= Va) return;
10923
10941
  }
10924
- let { appliedWidth: N, dimensionsRounded: P } = ca({
10942
+ let { appliedWidth: N, dimensionsRounded: P } = ua({
10925
10943
  textbox: n,
10926
10944
  canvasManager: this.canvasManager,
10927
10945
  base: r.startBase,
@@ -10935,7 +10953,7 @@ var Ha = class {
10935
10953
  shouldDisableAutoExpandOnHorizontalChange: a,
10936
10954
  shouldRoundDimensions: !i
10937
10955
  });
10938
- La({
10956
+ za({
10939
10957
  textbox: n,
10940
10958
  transform: t,
10941
10959
  appliedWidth: N
@@ -10956,12 +10974,12 @@ var Ha = class {
10956
10974
  }), this.canvas.requestRenderAll();
10957
10975
  }, this.handleObjectScaling = (t) => {
10958
10976
  let { target: n, transform: r } = t;
10959
- if (n instanceof e || !Ba(n) || Va(n) || !r) return;
10977
+ if (n instanceof e || !Ha(n) || Ua(n) || !r) return;
10960
10978
  n.isScaling = !0;
10961
10979
  let i = this._ensureScalingState({
10962
10980
  textbox: n,
10963
10981
  transform: r
10964
- }), { startBase: a } = i, { width: o, fontSize: s } = a, { isCornerHandle: c, isHorizontalHandle: l, isVerticalHandle: u } = Ia({ transform: r }), d = r.corner ?? "", f = c || u;
10982
+ }), { startBase: a } = i, { width: o, fontSize: s } = a, { isCornerHandle: c, isHorizontalHandle: l, isVerticalHandle: u } = Ra({ transform: r }), d = r.corner ?? "", f = c || u;
10965
10983
  if (!l && !u && !c) return;
10966
10984
  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({
10967
10985
  object: n,
@@ -10976,7 +10994,7 @@ var Ha = class {
10976
10994
  N = e, P = e;
10977
10995
  }
10978
10996
  } else l && (N = Math.max(i.minimumWidthScale, i.lastAllowedScaleX * h)), u && (P = Math.max(i.minimumFontScale, i.lastAllowedScaleY * g));
10979
- let { appliedWidth: ee, dimensionsRounded: te } = ca({
10997
+ let { appliedWidth: ee, dimensionsRounded: te } = ua({
10980
10998
  textbox: n,
10981
10999
  canvasManager: this.canvasManager,
10982
11000
  base: a,
@@ -10990,7 +11008,7 @@ var Ha = class {
10990
11008
  shouldDisableAutoExpandOnHorizontalChange: l,
10991
11009
  shouldRoundDimensions: !c
10992
11010
  });
10993
- La({
11011
+ za({
10994
11012
  textbox: n,
10995
11013
  transform: r,
10996
11014
  appliedWidth: ee
@@ -11023,7 +11041,7 @@ var Ha = class {
11023
11041
  let { target: n } = t;
11024
11042
  if (n instanceof e) {
11025
11043
  let t = n.getObjects();
11026
- if (!t.some((e) => Ba(e))) return;
11044
+ if (!t.some((e) => Ha(e))) return;
11027
11045
  let { scaleX: r = 1, scaleY: i = 1 } = n;
11028
11046
  if (Math.abs(r - 1) < .01 && Math.abs(i - 1) < .01) return;
11029
11047
  this.canvas.discardActiveObject(), t.forEach((e) => {
@@ -11033,7 +11051,7 @@ var Ha = class {
11033
11051
  this.canvas.setActiveObject(a), this.canvas.requestRenderAll();
11034
11052
  return;
11035
11053
  }
11036
- if (!Ba(n) || Va(n)) return;
11054
+ if (!Ha(n) || Ua(n)) return;
11037
11055
  n.isScaling = !1;
11038
11056
  let r = this.scalingState.get(n);
11039
11057
  if (this.scalingState.delete(n), !r?.hasScalingChange) return;
@@ -11058,11 +11076,11 @@ var Ha = class {
11058
11076
  }, this.canvas = t, this.canvasManager = n, this.persistScaledTextbox = r, this.scalingState = /* @__PURE__ */ new WeakMap();
11059
11077
  }
11060
11078
  commitStandaloneTextScale({ target: e, shouldDisableAutoExpandOnHorizontalChange: t = !1 }) {
11061
- if (!Ba(e) || Va(e)) return !1;
11079
+ if (!Ha(e) || Ua(e)) return !1;
11062
11080
  let n = Math.abs(e.scaleX ?? 1) || 1, r = Math.abs(e.scaleY ?? 1) || 1;
11063
11081
  if (!(Math.abs(n - 1) > .01 || Math.abs(r - 1) > .01)) return !1;
11064
- let i = aa({ textbox: e }), a = this.canvasManager.getObjectPlacement({ object: e });
11065
- return ca({
11082
+ let i = sa({ textbox: e }), a = this.canvasManager.getObjectPlacement({ object: e });
11083
+ return ua({
11066
11084
  textbox: e,
11067
11085
  canvasManager: this.canvasManager,
11068
11086
  base: i,
@@ -11078,7 +11096,7 @@ var Ha = class {
11078
11096
  _ensureScalingState({ textbox: e, transform: t }) {
11079
11097
  let n = this.scalingState.get(e);
11080
11098
  if (!n) {
11081
- let r = aa({ textbox: e }), i = this.canvasManager.getObjectPlacement({ object: e }), a = oa({ base: r }), o = t.original?.originX ?? t.originX ?? e.originX ?? "center", s = t.original?.originY ?? t.originY ?? e.originY ?? "center";
11099
+ let r = sa({ textbox: e }), i = this.canvasManager.getObjectPlacement({ object: e }), a = ca({ base: r }), o = t.original?.originX ?? t.originX ?? e.originX ?? "center", s = t.original?.originY ?? t.originY ?? e.originY ?? "center";
11082
11100
  n = {
11083
11101
  startBase: r,
11084
11102
  startObjectPlacement: i,
@@ -11111,7 +11129,7 @@ var Ha = class {
11111
11129
  topRight: e.radiusTopRight ?? 0,
11112
11130
  bottomRight: e.radiusBottomRight ?? 0,
11113
11131
  bottomLeft: e.radiusBottomLeft ?? 0
11114
- }, v = Math.abs(n - o) > Di, y = Math.abs(h - r) > Di, b = Math.abs(g.top - i.top) > .01 || Math.abs(g.right - i.right) > .01 || Math.abs(g.bottom - i.bottom) > .01 || Math.abs(g.left - i.left) > .01, x = Math.abs(_.topLeft - a.topLeft) > .01 || Math.abs(_.topRight - a.topRight) > .01 || Math.abs(_.bottomRight - a.bottomRight) > .01 || Math.abs(_.bottomLeft - a.bottomLeft) > .01, S = t.lastAllowedScaleX, C = t.lastAllowedScaleY;
11132
+ }, v = Math.abs(n - o) > ki, y = Math.abs(h - r) > ki, b = Math.abs(g.top - i.top) > .01 || Math.abs(g.right - i.right) > .01 || Math.abs(g.bottom - i.bottom) > .01 || Math.abs(g.left - i.left) > .01, x = Math.abs(_.topLeft - a.topLeft) > .01 || Math.abs(_.topRight - a.topRight) > .01 || Math.abs(_.bottomRight - a.bottomRight) > .01 || Math.abs(_.bottomLeft - a.bottomLeft) > .01, S = t.lastAllowedScaleX, C = t.lastAllowedScaleY;
11115
11133
  if (c) {
11116
11134
  let e = h / Math.max(1, m);
11117
11135
  S = e, C = e;
@@ -11132,7 +11150,7 @@ var Ha = class {
11132
11150
  originY: a
11133
11151
  });
11134
11152
  }
11135
- }, Ua = class e {
11153
+ }, Ga = class e {
11136
11154
  constructor({ editor: t }) {
11137
11155
  this._handleTextEditingEntered = (t) => {
11138
11156
  this.isTextEditingActive = !0;
@@ -11145,7 +11163,7 @@ var Ha = class {
11145
11163
  if (!e._isTextbox(n)) return;
11146
11164
  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 });
11147
11165
  if (s) {
11148
- let e = ja({ value: l });
11166
+ let e = Na({ value: l });
11149
11167
  e !== i && n.set({ text: e }), n.textCaseRaw = l;
11150
11168
  } else n.textCaseRaw = i;
11151
11169
  if (!r && o === void 0 && (n.autoExpand = !0), r) {
@@ -11163,7 +11181,7 @@ var Ha = class {
11163
11181
  let r = e._isShapeOwnedTextbox(n);
11164
11182
  this.editingPlacementState?.delete(n), delete n.__lineDefaultsPrevText;
11165
11183
  let i = n.text ?? "";
11166
- n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (ia({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
11184
+ n.uppercase ? n.textCaseRaw = n.textCaseRaw ?? i.toLocaleLowerCase() : n.textCaseRaw = i, r || (oa({ textbox: n }) && (n.setCoords(), n.dirty = !0, this.canvas.requestRenderAll()), n.locked || n.set({
11167
11185
  lockMovementX: !1,
11168
11186
  lockMovementY: !1
11169
11187
  }));
@@ -11190,7 +11208,7 @@ var Ha = class {
11190
11208
  transform: r,
11191
11209
  event: i ?? null
11192
11210
  });
11193
- }, this.editor = t, this.canvas = t.canvas, this.fonts = t.options.fonts ?? [], this.scalingController = new Ha({
11211
+ }, this.editor = t, this.canvas = t.canvas, this.fonts = t.options.fonts ?? [], this.scalingController = new Wa({
11194
11212
  canvas: t.canvas,
11195
11213
  canvasManager: t.canvasManager,
11196
11214
  persistScaledTextbox: ({ target: e, style: t }) => {
@@ -11199,7 +11217,7 @@ var Ha = class {
11199
11217
  style: t
11200
11218
  });
11201
11219
  }
11202
- }), this.updateController = new Fa({ runtime: {
11220
+ }), this.updateController = new La({ runtime: {
11203
11221
  canvas: this.canvas,
11204
11222
  canvasManager: t.canvasManager,
11205
11223
  historyManager: t.historyManager,
@@ -11208,12 +11226,12 @@ var Ha = class {
11208
11226
  restoreTextboxContentPlacement: (e) => this._restoreTextboxContentPlacement(e),
11209
11227
  syncLineStylesWithText: (e) => this._syncLineStylesWithText(e),
11210
11228
  getSnapshot: (t) => e._getSnapshot(t)
11211
- } }), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.isTextEditingActive = !1, this._bindEvents(), Pa();
11229
+ } }), this.editingPlacementState = /* @__PURE__ */ new WeakMap(), this.isTextEditingActive = !1, this._bindEvents(), Ia();
11212
11230
  }
11213
11231
  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 } = {}) {
11214
11232
  let { canvasManager: M, historyManager: N } = this.editor, { canvas: P } = this;
11215
11233
  N.suspendHistory();
11216
- let F = i ?? this._getDefaultFontFamily(), I = Aa({ width: m }), ee = ka({
11234
+ let F = i ?? this._getDefaultFontFamily(), I = Ma({ width: m }), ee = ja({
11217
11235
  strokeColor: p,
11218
11236
  width: I
11219
11237
  }), te = {
@@ -11242,14 +11260,14 @@ var Ha = class {
11242
11260
  radiusBottomRight: w,
11243
11261
  radiusBottomLeft: T,
11244
11262
  ...E
11245
- }, L = new Na(n, te), ne = r !== !1;
11263
+ }, L = new Fa(n, te), ne = r !== !1;
11246
11264
  L.autoExpand = ne;
11247
11265
  let re = E.left !== void 0 || E.top !== void 0;
11248
11266
  if (L.textCaseRaw = L.text ?? "", l) {
11249
- let e = ja({ value: L.textCaseRaw });
11267
+ let e = Na({ value: L.textCaseRaw });
11250
11268
  e !== L.text && L.set({ text: e });
11251
11269
  }
11252
- ia({ textbox: L }) && (L.dirty = !0);
11270
+ oa({ textbox: L }) && (L.dirty = !0);
11253
11271
  let ie;
11254
11272
  re && (ie = M.resolveObjectPlacement({
11255
11273
  object: L,
@@ -11354,7 +11372,7 @@ var Ha = class {
11354
11372
  clampToMontage: r
11355
11373
  }));
11356
11374
  let a = !1;
11357
- i || (a = ia({ textbox: e }));
11375
+ i || (a = oa({ textbox: e }));
11358
11376
  let o = !1;
11359
11377
  return !i && t && (this.editor.canvasManager.applyObjectPlacement({
11360
11378
  object: e,
@@ -11362,7 +11380,7 @@ var Ha = class {
11362
11380
  }), o = !0), (i || a) && (e.dirty = !0), (i || a || o) && e.setCoords(), i || a;
11363
11381
  }
11364
11382
  _restoreTextboxContentPlacement({ textbox: e, contentPlacement: t }) {
11365
- let n = ea({
11383
+ let n = na({
11366
11384
  textbox: e,
11367
11385
  originX: t.originX,
11368
11386
  originY: t.originY
@@ -11380,7 +11398,7 @@ var Ha = class {
11380
11398
  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);
11381
11399
  }
11382
11400
  _syncLineStylesWithText({ textbox: e, previousText: t, currentText: n }) {
11383
- let r = n ?? e.text ?? "", i = Ji({
11401
+ let r = n ?? e.text ?? "", i = Xi({
11384
11402
  textbox: e,
11385
11403
  previousText: t ?? e.__lineDefaultsPrevText ?? r,
11386
11404
  currentText: r
@@ -11398,16 +11416,16 @@ var Ha = class {
11398
11416
  if (!Number.isFinite(f) || f <= 0) return !1;
11399
11417
  let p = a.split("\n").length, m = !1;
11400
11418
  Math.abs((e.width ?? 0) - f) > .01 && (e.set({ width: f }), m = !0), e.initDimensions();
11401
- let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(Qi({
11419
+ let { textLines: h } = e, g = Array.isArray(h) && h.length > p, _ = Math.ceil(ea({
11402
11420
  textbox: e,
11403
11421
  text: a
11404
11422
  })), v = Math.min(e.minWidth ?? 1, f), y = Math.min(f, Math.max(_, v));
11405
- g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), ia({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
11423
+ g && (y = f), Math.abs((e.width ?? 0) - y) > .01 && (e.set({ width: y }), e.initDimensions(), m = !0), oa({ textbox: e }) && (m = !0), t && r.applyObjectPlacement({
11406
11424
  object: e,
11407
11425
  placement: t
11408
11426
  });
11409
11427
  let b = !1;
11410
- return n && (b = ta({
11428
+ return n && (b = ra({
11411
11429
  textbox: e,
11412
11430
  montageLeft: o,
11413
11431
  montageRight: o + s
@@ -11465,7 +11483,7 @@ var Ha = class {
11465
11483
  _getDefaultFontFamily() {
11466
11484
  return this.fonts[0]?.family ?? "Arial";
11467
11485
  }
11468
- }, Wa = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, Ga = (e) => {
11486
+ }, Ka = ({ x1: e, y1: t, x2: n, y2: r }) => (Math.atan2(r - t, n - e) * 180 / Math.PI + 360) % 360, qa = (e) => {
11469
11487
  if (!e || typeof e != "object") return null;
11470
11488
  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) => ({
11471
11489
  color: typeof e.color == "string" ? e.color : "#000000",
@@ -11476,7 +11494,7 @@ var Ha = class {
11476
11494
  let { x1: e, y1: t, x2: r, y2: i } = n;
11477
11495
  if (typeof e == "number" && typeof t == "number" && typeof r == "number" && typeof i == "number") return {
11478
11496
  type: "linear",
11479
- angle: Wa({
11497
+ angle: Ka({
11480
11498
  x1: e,
11481
11499
  y1: t,
11482
11500
  x2: r,
@@ -11504,7 +11522,7 @@ var Ha = class {
11504
11522
  };
11505
11523
  }
11506
11524
  return null;
11507
- }, Ka = "_templateAnchorX", qa = "_templateAnchorY", Ja = class t {
11525
+ }, Ja = "_templateAnchorX", Ya = "_templateAnchorY", Xa = class t {
11508
11526
  constructor({ editor: e }) {
11509
11527
  this.editor = e;
11510
11528
  }
@@ -11513,7 +11531,7 @@ var Ha = class {
11513
11531
  if (!p.length) return s.emitWarning({
11514
11532
  origin: "TemplateManager",
11515
11533
  method: "serializeSelection",
11516
- code: xa.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
11534
+ code: Ca.TEMPLATE_MANAGER.NO_OBJECTS_SELECTED,
11517
11535
  message: "Нет объектов для сериализации шаблона"
11518
11536
  }), null;
11519
11537
  let m = t._getBounds(o), h = t._getMontageSize({
@@ -11542,14 +11560,14 @@ var Ha = class {
11542
11560
  if (!l?.length) return a.emitWarning({
11543
11561
  origin: "TemplateManager",
11544
11562
  method: "applyTemplate",
11545
- code: xa.TEMPLATE_MANAGER.INVALID_TEMPLATE,
11563
+ code: Ca.TEMPLATE_MANAGER.INVALID_TEMPLATE,
11546
11564
  message: "Шаблон не содержит объектов"
11547
11565
  }), null;
11548
11566
  let f = t._getBounds(r);
11549
11567
  if (!f) return a.emitWarning({
11550
11568
  origin: "TemplateManager",
11551
11569
  method: "applyTemplate",
11552
- code: xa.TEMPLATE_MANAGER.INVALID_TARGET,
11570
+ code: Ca.TEMPLATE_MANAGER.INVALID_TARGET,
11553
11571
  message: "Не удалось определить границы монтажной области"
11554
11572
  }), null;
11555
11573
  let p = t._getMontageSize({
@@ -11568,7 +11586,7 @@ var Ha = class {
11568
11586
  if (!r.length) return a.emitWarning({
11569
11587
  origin: "TemplateManager",
11570
11588
  method: "applyTemplate",
11571
- code: xa.TEMPLATE_MANAGER.INVALID_TEMPLATE,
11589
+ code: Ca.TEMPLATE_MANAGER.INVALID_TEMPLATE,
11572
11590
  message: "Не удалось создать объекты шаблона"
11573
11591
  }), null;
11574
11592
  let { backgroundObject: i, contentObjects: u } = t._extractBackgroundObject(r);
@@ -11590,7 +11608,7 @@ var Ha = class {
11590
11608
  }), c.commitStandaloneTextScale({ target: e }), s.commitRehydratedShapeLayout({
11591
11609
  target: e,
11592
11610
  textScale: h
11593
- }), Ut({ object: e }), ha({ rootObject: e }), n.add(e), e));
11611
+ }), Ut({ object: e }), _a({ rootObject: e }), n.add(e), e));
11594
11612
  return !d.length && !v ? null : (_ = d.length > 0 || v, d.length && t._activateObjects({
11595
11613
  canvas: n,
11596
11614
  objects: d
@@ -11603,7 +11621,7 @@ var Ha = class {
11603
11621
  return a.emitError({
11604
11622
  origin: "TemplateManager",
11605
11623
  method: "applyTemplate",
11606
- code: xa.TEMPLATE_MANAGER.APPLY_FAILED,
11624
+ code: Ca.TEMPLATE_MANAGER.APPLY_FAILED,
11607
11625
  message: "Ошибка применения шаблона",
11608
11626
  data: {
11609
11627
  templateId: d,
@@ -11760,8 +11778,8 @@ var Ha = class {
11760
11778
  baseHeight: a,
11761
11779
  scale: n,
11762
11780
  useRelativePositions: o,
11763
- anchorX: t._resolveAnchor(s, Ka),
11764
- anchorY: t._resolveAnchor(s, qa)
11781
+ anchorX: t._resolveAnchor(s, Ja),
11782
+ anchorY: t._resolveAnchor(s, Ya)
11765
11783
  })
11766
11784
  }), h = f * n, g = p * n, _ = e.originX ?? "center", v = e.originY ?? "center";
11767
11785
  e.set({
@@ -11836,7 +11854,7 @@ var Ha = class {
11836
11854
  });
11837
11855
  if (!i || !a) return;
11838
11856
  e.setCoords();
11839
- let o = e, s = t._resolveAnchor(o, Ka), c = typeof e.left == "number" ? e.left : null, l = e.originX ?? "center", u = e.originY ?? "center", d = e.getPointByOrigin(l, u), f = t._getBoundingRect(e), p = f.left + f.width / 2, m = f.left + f.width;
11857
+ let o = e, s = t._resolveAnchor(o, Ja), c = typeof e.left == "number" ? e.left : null, l = e.originX ?? "center", u = e.originY ?? "center", d = e.getPointByOrigin(l, u), f = t._getBoundingRect(e), p = f.left + f.width / 2, m = f.left + f.width;
11840
11858
  e.set("width", i), e.initDimensions();
11841
11859
  let h = t._getLongestLineWidth({
11842
11860
  textbox: e,
@@ -11865,10 +11883,10 @@ var Ha = class {
11865
11883
  x: (p.left - o) / d,
11866
11884
  y: (p.top - s) / f
11867
11885
  }, h = (u.left - o) / d, g = (u.top - s) / f, _ = h + u.width / d, v = g + u.height / f;
11868
- return a[Ka] = t._detectAnchor({
11886
+ return a[Ja] = t._detectAnchor({
11869
11887
  start: h,
11870
11888
  end: _
11871
- }), a[qa] = t._detectAnchor({
11889
+ }), a[Ya] = t._detectAnchor({
11872
11890
  start: g,
11873
11891
  end: v
11874
11892
  }), a.left = m.x, a.top = m.y, a;
@@ -11893,7 +11911,7 @@ var Ha = class {
11893
11911
  withoutSave: !0
11894
11912
  }), !0;
11895
11913
  if (a === "gradient") {
11896
- let e = Ga(r);
11914
+ let e = qa(r);
11897
11915
  if (e) return n.setGradientBackground({
11898
11916
  gradient: e,
11899
11917
  customData: o,
@@ -11914,7 +11932,7 @@ var Ha = class {
11914
11932
  r.emitWarning({
11915
11933
  origin: "TemplateManager",
11916
11934
  method: "applyTemplate",
11917
- code: xa.TEMPLATE_MANAGER.APPLY_FAILED,
11935
+ code: Ca.TEMPLATE_MANAGER.APPLY_FAILED,
11918
11936
  message: "Не удалось применить фон из шаблона",
11919
11937
  data: e
11920
11938
  });
@@ -11950,29 +11968,29 @@ var Ha = class {
11950
11968
  enlivenObjectEnlivables(e) {
11951
11969
  return w.enlivenObjectEnlivables(e);
11952
11970
  }
11953
- }, Ya = "#3D8BF4", Xa = .5, Za = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, Qa = ({ firstDistance: e, secondDistance: t }) => {
11954
- let n = Za({ distance: e }), r = Za({ distance: t });
11971
+ }, Za = "#3D8BF4", Qa = .5, $a = ({ distance: e }) => Number.isFinite(e) ? Math.round(Math.max(0, e)) : 0, eo = ({ firstDistance: e, secondDistance: t }) => {
11972
+ let n = $a({ distance: e }), r = $a({ distance: t });
11955
11973
  return {
11956
11974
  firstDisplayDistance: n,
11957
11975
  secondDisplayDistance: r,
11958
11976
  displayDistanceDiff: Math.abs(n - r),
11959
11977
  commonDisplayDistance: Math.max(n, r)
11960
11978
  };
11961
- }, $a = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), eo = ({ step: e }) => {
11979
+ }, to = ({ firstStart: e, firstEnd: t, secondStart: n, secondEnd: r }) => Math.min(t, r) - Math.max(e, n), no = ({ step: e }) => {
11962
11980
  let t = Math.abs(e).toString(), n = t.indexOf(".");
11963
11981
  return n === -1 ? 0 : t.slice(n + 1).length;
11964
- }, to = ({ value: e, step: t }) => {
11982
+ }, ro = ({ value: e, step: t }) => {
11965
11983
  if (t === 0) return e;
11966
- let n = eo({ step: t }), r = Math.round(e / t) * t;
11984
+ let n = no({ step: t }), r = Math.round(e / t) * t;
11967
11985
  return Number(r.toFixed(n));
11968
- }, no = ({ value: e, step: t }) => {
11986
+ }, io = ({ value: e, step: t }) => {
11969
11987
  if (t === 0) return !0;
11970
- let n = to({
11988
+ let n = ro({
11971
11989
  value: e,
11972
11990
  step: t
11973
- }), r = 10 ** -(eo({ step: t }) + 4);
11991
+ }), r = 10 ** -(no({ step: t }) + 4);
11974
11992
  return Math.abs(n - e) <= r;
11975
- }, ro = ({ bounds: e, axis: t }) => {
11993
+ }, ao = ({ bounds: e, axis: t }) => {
11976
11994
  let { left: n = 0, right: r = 0, top: i = 0, bottom: a = 0 } = e;
11977
11995
  return t === "vertical" ? {
11978
11996
  start: i,
@@ -11981,7 +11999,7 @@ var Ha = class {
11981
11999
  start: n,
11982
12000
  end: r
11983
12001
  };
11984
- }, io = ({ items: e, axis: t }) => {
12002
+ }, oo = ({ items: e, axis: t }) => {
11985
12003
  for (let n = 1; n < e.length; n += 1) {
11986
12004
  let r = e[n], { bounds: i } = r, a = i[t], o = n - 1;
11987
12005
  for (; o >= 0;) {
@@ -11991,10 +12009,10 @@ var Ha = class {
11991
12009
  }
11992
12010
  e[o + 1] = r;
11993
12011
  }
11994
- }, ao = ({ items: e, index: t, axis: n, direction: r }) => {
12012
+ }, so = ({ items: e, index: t, axis: n, direction: r }) => {
11995
12013
  let i = e[t];
11996
12014
  if (!i) return null;
11997
- let { bounds: a } = i, { start: o, end: s } = ro({
12015
+ let { bounds: a } = i, { start: o, end: s } = ao({
11998
12016
  bounds: a,
11999
12017
  axis: n
12000
12018
  });
@@ -12002,7 +12020,7 @@ var Ha = class {
12002
12020
  for (let r = t - 1; r >= 0; --r) {
12003
12021
  let t = e[r];
12004
12022
  if (!t) continue;
12005
- let { bounds: i } = t, { end: a } = ro({
12023
+ let { bounds: i } = t, { end: a } = ao({
12006
12024
  bounds: i,
12007
12025
  axis: n
12008
12026
  });
@@ -12013,26 +12031,26 @@ var Ha = class {
12013
12031
  for (let r = t + 1; r < e.length; r += 1) {
12014
12032
  let t = e[r];
12015
12033
  if (!t) continue;
12016
- let { bounds: i } = t, { start: a } = ro({
12034
+ let { bounds: i } = t, { start: a } = ao({
12017
12035
  bounds: i,
12018
12036
  axis: n
12019
12037
  });
12020
12038
  if (a - s >= 0) return r;
12021
12039
  }
12022
12040
  return null;
12023
- }, oo = ({ items: e }) => {
12041
+ }, co = ({ items: e }) => {
12024
12042
  for (let t = 0; t < e.length; t += 1) {
12025
12043
  let { isActive: n } = e[t];
12026
12044
  if (n) return t;
12027
12045
  }
12028
12046
  return -1;
12029
- }, so = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
12047
+ }, lo = ({ patternAxis: e, activeRangeStart: t, activeRangeEnd: n, tolerance: r = 0 }) => {
12030
12048
  let i = Math.min(t, n), a = Math.max(t, n);
12031
12049
  return e >= i - r && e <= a + r;
12032
- }, co = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, lo = ({ baseOption: e, candidateOption: t }) => {
12050
+ }, uo = ({ patternStart: e, patternEnd: t, activeStart: n, activeEnd: r }) => t <= n ? "before" : e >= r ? "after" : null, fo = ({ baseOption: e, candidateOption: t }) => {
12033
12051
  let { delta: n, guide: { distance: r } } = e, { delta: i, guide: { distance: a } } = t;
12034
12052
  return n === i && r === a;
12035
- }, uo = ({ options: e }) => {
12053
+ }, po = ({ options: e }) => {
12036
12054
  let t = e[0];
12037
12055
  for (let n = 1; n < e.length; n += 1) {
12038
12056
  let r = e[n];
@@ -12043,11 +12061,11 @@ var Ha = class {
12043
12061
  r.diff === t.diff && Math.abs(r.delta) < Math.abs(t.delta) && (t = r);
12044
12062
  }
12045
12063
  return t;
12046
- }, fo = ({ currentOption: e, nextOption: t }) => {
12064
+ }, mo = ({ currentOption: e, nextOption: t }) => {
12047
12065
  if (!e) return !0;
12048
12066
  let { contextDistance: n, diff: r, delta: i } = e, { contextDistance: a, diff: o, delta: s } = t;
12049
12067
  return a < n ? !0 : a > n ? !1 : o < r ? !0 : o > r ? !1 : Math.abs(s) < Math.abs(i);
12050
- }, po = ({ options: e }) => {
12068
+ }, ho = ({ options: e }) => {
12051
12069
  let t = [], n = null, r = null;
12052
12070
  for (let i of e) {
12053
12071
  let { kind: e, side: a } = i;
@@ -12055,18 +12073,18 @@ var Ha = class {
12055
12073
  t.push(i);
12056
12074
  continue;
12057
12075
  }
12058
- a === "before" && fo({
12076
+ a === "before" && mo({
12059
12077
  currentOption: n,
12060
12078
  nextOption: i
12061
- }) && (n = i), a === "after" && fo({
12079
+ }) && (n = i), a === "after" && mo({
12062
12080
  currentOption: r,
12063
12081
  nextOption: i
12064
12082
  }) && (r = i);
12065
12083
  }
12066
12084
  return n && t.push(n), r && t.push(r), t;
12067
- }, mo = ({ options: e, side: t, baseOption: n }) => {
12085
+ }, go = ({ options: e, side: t, baseOption: n }) => {
12068
12086
  let r = null;
12069
- for (let i of e) if (i.side === t && lo({
12087
+ for (let i of e) if (i.side === t && fo({
12070
12088
  baseOption: n,
12071
12089
  candidateOption: i
12072
12090
  })) {
@@ -12077,63 +12095,63 @@ var Ha = class {
12077
12095
  !r || i.diff !== r.diff || Math.abs(i.delta) < Math.abs(r.delta) && (r = i);
12078
12096
  }
12079
12097
  return r;
12080
- }, ho = ({ option: e }) => {
12098
+ }, _o = ({ option: e }) => {
12081
12099
  let { side: t, kind: n, guide: { distance: r } } = e;
12082
12100
  return {
12083
12101
  side: t,
12084
12102
  kind: n,
12085
12103
  distance: r
12086
12104
  };
12087
- }, go = ({ option: e, context: t }) => {
12105
+ }, vo = ({ option: e, context: t }) => {
12088
12106
  let { side: n, kind: r, distance: i } = t, { side: a, kind: o, guide: { distance: s } } = e;
12089
12107
  return n !== a || r !== o ? !1 : Math.abs(s - i) <= 1;
12090
- }, _o = ({ options: e, context: t }) => {
12108
+ }, yo = ({ options: e, context: t }) => {
12091
12109
  if (!t) return null;
12092
- for (let n of e) if (go({
12110
+ for (let n of e) if (vo({
12093
12111
  option: n,
12094
12112
  context: t
12095
12113
  })) return n;
12096
12114
  return null;
12097
- }, vo = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
12098
- let i = _o({
12115
+ }, bo = ({ options: e, bestOption: t, previousContext: n, switchDistance: r = 0 }) => {
12116
+ let i = yo({
12099
12117
  options: e,
12100
12118
  context: n
12101
12119
  });
12102
12120
  if (!i) return t;
12103
12121
  let a = Math.max(0, r);
12104
12122
  return a === 0 || Math.abs(t.delta - i.delta) >= a ? t : i;
12105
- }, yo = ({ guides: e, seenGuideKeys: t, guide: n }) => {
12123
+ }, xo = ({ guides: e, seenGuideKeys: t, guide: n }) => {
12106
12124
  let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = n, u = `${r}:${i}:${a}:${o}:${s}:${c}:${l}`;
12107
12125
  t.has(u) || (t.add(u), e.push(n));
12108
- }, bo = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
12126
+ }, So = ({ options: e, previousContext: t = null, switchDistance: n = 0 }) => {
12109
12127
  if (!e.length) return {
12110
12128
  delta: 0,
12111
12129
  guides: [],
12112
12130
  context: null
12113
12131
  };
12114
- let r = po({ options: e }), i = [];
12132
+ let r = ho({ options: e }), i = [];
12115
12133
  for (let e of r) e.kind === "reference" && i.push(e);
12116
- let a = i.length > 0, o = a ? i : r, s = vo({
12134
+ let a = i.length > 0, o = a ? i : r, s = bo({
12117
12135
  options: o,
12118
- bestOption: uo({ options: o }),
12136
+ bestOption: po({ options: o }),
12119
12137
  previousContext: t,
12120
12138
  switchDistance: n
12121
- }), c = mo({
12139
+ }), c = go({
12122
12140
  options: o,
12123
12141
  side: "before",
12124
12142
  baseOption: s
12125
- }), l = mo({
12143
+ }), l = go({
12126
12144
  options: o,
12127
12145
  side: "after",
12128
12146
  baseOption: s
12129
- }), u = mo({
12147
+ }), u = go({
12130
12148
  options: a ? r : o,
12131
12149
  side: "center",
12132
12150
  baseOption: s
12133
12151
  }), d = [];
12134
12152
  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);
12135
12153
  let f = [], p = /* @__PURE__ */ new Set();
12136
- for (let e of d) yo({
12154
+ for (let e of d) xo({
12137
12155
  guides: f,
12138
12156
  seenGuideKeys: p,
12139
12157
  guide: e.guide
@@ -12141,15 +12159,15 @@ var Ha = class {
12141
12159
  return {
12142
12160
  delta: s.delta,
12143
12161
  guides: f,
12144
- context: ho({ option: s })
12162
+ context: _o({ option: s })
12145
12163
  };
12146
- }, xo = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
12147
- let s = n - (e - r), c = to({
12164
+ }, Co = ({ activeStart: e, activeEnd: t, targetGap: n, beforeEdge: r, afterEdge: i, threshold: a, step: o }) => {
12165
+ let s = n - (e - r), c = ro({
12148
12166
  value: s,
12149
12167
  step: o
12150
12168
  }), l = Math.max(1, Math.ceil(a / Math.max(o, 1))), u = null;
12151
12169
  for (let d = -l; d <= l; d += 1) {
12152
- let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = Qa({
12170
+ let l = c + d * o, f = e + l, p = t + l, m = f - r, h = i - p, { displayDistanceDiff: g, commonDisplayDistance: _ } = eo({
12153
12171
  firstDistance: m,
12154
12172
  secondDistance: h
12155
12173
  });
@@ -12164,13 +12182,13 @@ var Ha = class {
12164
12182
  });
12165
12183
  }
12166
12184
  return u;
12167
- }, So = ({ currentGap: e, referenceGap: t }) => {
12168
- let { secondDisplayDistance: n, displayDistanceDiff: r } = Qa({
12185
+ }, wo = ({ currentGap: e, referenceGap: t }) => {
12186
+ let { secondDisplayDistance: n, displayDistanceDiff: r } = eo({
12169
12187
  firstDistance: e,
12170
12188
  secondDistance: t
12171
12189
  });
12172
12190
  return r > 1 ? null : n;
12173
- }, Co = ({ anchors: e, positions: t, threshold: n }) => {
12191
+ }, To = ({ anchors: e, positions: t, threshold: n }) => {
12174
12192
  let r = 0, i = n + 1, a = null;
12175
12193
  for (let o of t) for (let t of e) {
12176
12194
  let e = Math.abs(t - o);
@@ -12180,8 +12198,8 @@ var Ha = class {
12180
12198
  delta: r,
12181
12199
  guidePosition: a
12182
12200
  };
12183
- }, wo = ({ activeBounds: e, threshold: t, anchors: n }) => {
12184
- let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = Co({
12201
+ }, Eo = ({ activeBounds: e, threshold: t, anchors: n }) => {
12202
+ let { left: r, right: i, centerX: a, top: o, bottom: s, centerY: c } = e, l = To({
12185
12203
  anchors: n.vertical,
12186
12204
  positions: [
12187
12205
  r,
@@ -12189,7 +12207,7 @@ var Ha = class {
12189
12207
  i
12190
12208
  ],
12191
12209
  threshold: t
12192
- }), u = Co({
12210
+ }), u = To({
12193
12211
  anchors: n.horizontal,
12194
12212
  positions: [
12195
12213
  o,
@@ -12209,11 +12227,11 @@ var Ha = class {
12209
12227
  deltaY: u.delta,
12210
12228
  guides: d
12211
12229
  };
12212
- }, To = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
12230
+ }, Do = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
12213
12231
  let { centerX: o, top: s, bottom: c, left: l, right: u } = e, d = [];
12214
12232
  for (let e of t) {
12215
12233
  let { left: t, right: n } = e;
12216
- $a({
12234
+ to({
12217
12235
  firstStart: t,
12218
12236
  firstEnd: n,
12219
12237
  secondStart: l,
@@ -12233,22 +12251,22 @@ var Ha = class {
12233
12251
  f.push({
12234
12252
  bounds: e,
12235
12253
  isActive: !0
12236
- }), io({
12254
+ }), oo({
12237
12255
  items: f,
12238
12256
  axis: "top"
12239
12257
  });
12240
- let p = oo({ items: f });
12258
+ let p = co({ items: f });
12241
12259
  if (p === -1) return {
12242
12260
  delta: 0,
12243
12261
  guides: [],
12244
12262
  context: null
12245
12263
  };
12246
- let m = [], h = c - s, g = ao({
12264
+ let m = [], h = c - s, g = so({
12247
12265
  items: f,
12248
12266
  index: p,
12249
12267
  axis: "vertical",
12250
12268
  direction: "prev"
12251
- }), _ = ao({
12269
+ }), _ = so({
12252
12270
  items: f,
12253
12271
  index: p,
12254
12272
  axis: "vertical",
@@ -12257,19 +12275,19 @@ var Ha = class {
12257
12275
  if (v && y) {
12258
12276
  let { bounds: e } = v, { bounds: t } = y, { bottom: r } = e, { top: i } = t, a = i - r - h;
12259
12277
  if (a >= 0) {
12260
- let e = to({
12278
+ let e = ro({
12261
12279
  value: a / 2,
12262
12280
  step: 1
12263
12281
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
12264
12282
  if (Math.max(u, d) <= n) {
12265
- let t = xo({
12283
+ let t = Co({
12266
12284
  activeStart: s,
12267
12285
  activeEnd: c,
12268
12286
  targetGap: e,
12269
12287
  beforeEdge: r,
12270
12288
  afterEdge: i,
12271
12289
  threshold: n,
12272
- step: Xa
12290
+ step: Qa
12273
12291
  });
12274
12292
  if (t) {
12275
12293
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -12306,16 +12324,16 @@ var Ha = class {
12306
12324
  }
12307
12325
  for (let e of r) {
12308
12326
  let { axis: t, start: r, end: i, distance: a } = e;
12309
- if (!no({
12327
+ if (!io({
12310
12328
  value: a,
12311
12329
  step: .5
12312
- }) || !so({
12330
+ }) || !lo({
12313
12331
  patternAxis: t,
12314
12332
  activeRangeStart: l,
12315
12333
  activeRangeEnd: u,
12316
12334
  tolerance: n
12317
12335
  })) continue;
12318
- let d = co({
12336
+ let d = uo({
12319
12337
  patternStart: r,
12320
12338
  patternEnd: i,
12321
12339
  activeStart: s,
@@ -12323,12 +12341,12 @@ var Ha = class {
12323
12341
  });
12324
12342
  if (d) {
12325
12343
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
12326
- let e = to({
12344
+ let e = ro({
12327
12345
  value: a - b,
12328
12346
  step: 1
12329
12347
  }), t = s + e, { bottom: c } = S, l = t - c, u = Math.abs(l - a);
12330
12348
  if (u > n) continue;
12331
- let d = So({
12349
+ let d = wo({
12332
12350
  currentGap: l,
12333
12351
  referenceGap: a
12334
12352
  });
@@ -12352,12 +12370,12 @@ var Ha = class {
12352
12370
  });
12353
12371
  }
12354
12372
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
12355
- let e = to({
12373
+ let e = ro({
12356
12374
  value: x - a,
12357
12375
  step: 1
12358
12376
  }), t = c + e, { top: s } = C, l = s - t, u = Math.abs(l - a);
12359
12377
  if (u > n) continue;
12360
- let d = So({
12378
+ let d = wo({
12361
12379
  currentGap: l,
12362
12380
  referenceGap: a
12363
12381
  });
@@ -12382,16 +12400,16 @@ var Ha = class {
12382
12400
  }
12383
12401
  }
12384
12402
  }
12385
- return bo({
12403
+ return So({
12386
12404
  options: m,
12387
12405
  previousContext: i,
12388
12406
  switchDistance: a
12389
12407
  });
12390
- }, Eo = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
12408
+ }, Oo = ({ activeBounds: e, candidates: t, threshold: n, patterns: r, previousContext: i = null, switchDistance: a = 0 }) => {
12391
12409
  let { centerY: o, left: s, right: c, top: l, bottom: u } = e, d = [];
12392
12410
  for (let e of t) {
12393
12411
  let { top: t, bottom: n } = e;
12394
- $a({
12412
+ to({
12395
12413
  firstStart: t,
12396
12414
  firstEnd: n,
12397
12415
  secondStart: l,
@@ -12411,22 +12429,22 @@ var Ha = class {
12411
12429
  f.push({
12412
12430
  bounds: e,
12413
12431
  isActive: !0
12414
- }), io({
12432
+ }), oo({
12415
12433
  items: f,
12416
12434
  axis: "left"
12417
12435
  });
12418
- let p = oo({ items: f });
12436
+ let p = co({ items: f });
12419
12437
  if (p === -1) return {
12420
12438
  delta: 0,
12421
12439
  guides: [],
12422
12440
  context: null
12423
12441
  };
12424
- let m = [], h = c - s, g = ao({
12442
+ let m = [], h = c - s, g = so({
12425
12443
  items: f,
12426
12444
  index: p,
12427
12445
  axis: "horizontal",
12428
12446
  direction: "prev"
12429
- }), _ = ao({
12447
+ }), _ = so({
12430
12448
  items: f,
12431
12449
  index: p,
12432
12450
  axis: "horizontal",
@@ -12435,19 +12453,19 @@ var Ha = class {
12435
12453
  if (v && y) {
12436
12454
  let { bounds: e } = v, { bounds: t } = y, { right: r } = e, { left: i } = t, a = i - r - h;
12437
12455
  if (a >= 0) {
12438
- let e = to({
12456
+ let e = ro({
12439
12457
  value: a / 2,
12440
12458
  step: 1
12441
12459
  }), t = s - r, l = i - c, u = Math.abs(t - e), d = Math.abs(l - e);
12442
12460
  if (Math.max(u, d) <= n) {
12443
- let t = xo({
12461
+ let t = Co({
12444
12462
  activeStart: s,
12445
12463
  activeEnd: c,
12446
12464
  targetGap: e,
12447
12465
  beforeEdge: r,
12448
12466
  afterEdge: i,
12449
12467
  threshold: n,
12450
- step: Xa
12468
+ step: Qa
12451
12469
  });
12452
12470
  if (t) {
12453
12471
  let { delta: e, distance: n, diff: i, activeStart: a, activeEnd: s } = t, c = {
@@ -12484,16 +12502,16 @@ var Ha = class {
12484
12502
  }
12485
12503
  for (let e of r) {
12486
12504
  let { axis: t, start: r, end: i, distance: a } = e;
12487
- if (!no({
12505
+ if (!io({
12488
12506
  value: a,
12489
12507
  step: .5
12490
- }) || !so({
12508
+ }) || !lo({
12491
12509
  patternAxis: t,
12492
12510
  activeRangeStart: l,
12493
12511
  activeRangeEnd: u,
12494
12512
  tolerance: n
12495
12513
  })) continue;
12496
- let d = co({
12514
+ let d = uo({
12497
12515
  patternStart: r,
12498
12516
  patternEnd: i,
12499
12517
  activeStart: s,
@@ -12501,12 +12519,12 @@ var Ha = class {
12501
12519
  });
12502
12520
  if (d) {
12503
12521
  if (b !== null && S && d === "before" && Math.abs(b - a) <= n) {
12504
- let e = to({
12522
+ let e = ro({
12505
12523
  value: a - b,
12506
12524
  step: 1
12507
12525
  }), t = s + e, { right: c } = S, l = t - c, u = Math.abs(l - a);
12508
12526
  if (u > n) continue;
12509
- let d = So({
12527
+ let d = wo({
12510
12528
  currentGap: l,
12511
12529
  referenceGap: a
12512
12530
  });
@@ -12530,12 +12548,12 @@ var Ha = class {
12530
12548
  });
12531
12549
  }
12532
12550
  if (x !== null && C && d === "after" && Math.abs(x - a) <= n) {
12533
- let e = to({
12551
+ let e = ro({
12534
12552
  value: x - a,
12535
12553
  step: 1
12536
12554
  }), t = c + e, { left: s } = C, l = s - t, u = Math.abs(l - a);
12537
12555
  if (u > n) continue;
12538
- let d = So({
12556
+ let d = wo({
12539
12557
  currentGap: l,
12540
12558
  referenceGap: a
12541
12559
  });
@@ -12560,20 +12578,20 @@ var Ha = class {
12560
12578
  }
12561
12579
  }
12562
12580
  }
12563
- return bo({
12581
+ return So({
12564
12582
  options: m,
12565
12583
  previousContext: i,
12566
12584
  switchDistance: a
12567
12585
  });
12568
- }, Do = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
12569
- let { vertical: o = null, horizontal: s = null } = i ?? {}, c = To({
12586
+ }, ko = ({ activeBounds: e, candidates: t, threshold: n, spacingPatterns: r, previousContexts: i, switchDistance: a = 0 }) => {
12587
+ let { vertical: o = null, horizontal: s = null } = i ?? {}, c = Do({
12570
12588
  activeBounds: e,
12571
12589
  candidates: t,
12572
12590
  threshold: n,
12573
12591
  patterns: r.vertical,
12574
12592
  previousContext: o,
12575
12593
  switchDistance: a
12576
- }), l = Eo({
12594
+ }), l = Oo({
12577
12595
  activeBounds: e,
12578
12596
  candidates: t,
12579
12597
  threshold: n,
@@ -12592,14 +12610,14 @@ var Ha = class {
12592
12610
  horizontal: l.context
12593
12611
  }
12594
12612
  };
12595
- }, Oo = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
12613
+ }, Ao = ({ context: e, x: t, y: n, width: r, height: i, radius: a }) => {
12596
12614
  let o = Math.min(a, r / 2, i / 2);
12597
12615
  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();
12598
- }, ko = ({ 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 }) => {
12616
+ }, jo = ({ 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 }) => {
12599
12617
  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;
12600
12618
  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";
12601
12619
  let S = e.measureText(a).width + _ * 2, C = g + _ * 2, w = b - S / 2, T = x - C / 2;
12602
- e.beginPath(), Oo({
12620
+ e.beginPath(), Ao({
12603
12621
  context: e,
12604
12622
  x: w,
12605
12623
  y: T,
@@ -12607,11 +12625,11 @@ var Ha = class {
12607
12625
  height: C,
12608
12626
  radius: v
12609
12627
  }), e.fill(), e.fillStyle = c, e.fillText(a, b, x), e.restore();
12610
- }, Ao = ({ context: e, guide: t, zoom: n }) => {
12611
- let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = Za({ distance: l }).toString();
12628
+ }, Mo = ({ context: e, guide: t, zoom: n }) => {
12629
+ let { type: r, axis: i, refStart: a, refEnd: o, activeStart: s, activeEnd: c, distance: l } = t, u = $a({ distance: l }).toString();
12612
12630
  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();
12613
- let d = Ya;
12614
- ko({
12631
+ let d = Za;
12632
+ jo({
12615
12633
  context: e,
12616
12634
  type: r,
12617
12635
  axis: i,
@@ -12621,7 +12639,7 @@ var Ha = class {
12621
12639
  zoom: n,
12622
12640
  color: d,
12623
12641
  lineWidth: 1
12624
- }), ko({
12642
+ }), jo({
12625
12643
  context: e,
12626
12644
  type: r,
12627
12645
  axis: i,
@@ -12632,10 +12650,10 @@ var Ha = class {
12632
12650
  color: d,
12633
12651
  lineWidth: 1
12634
12652
  });
12635
- }, jo = ({ anchors: e, bounds: t }) => {
12653
+ }, No = ({ anchors: e, bounds: t }) => {
12636
12654
  let { left: n, right: r, centerX: i, top: a, bottom: o, centerY: s } = t;
12637
12655
  e.vertical.push(n, i, r), e.horizontal.push(a, s, o);
12638
- }, Mo = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
12656
+ }, Po = ({ bounds: e, type: t, primaryStart: n, primaryEnd: r }) => {
12639
12657
  let i = [], a = n === "top" ? "left" : "top", o = r === "bottom" ? "right" : "bottom", s = [...e].sort((e, t) => e[n] - t[n]);
12640
12658
  for (let e = 0; e < s.length; e += 1) {
12641
12659
  let c = s[e], l = null, u = Infinity;
@@ -12656,35 +12674,35 @@ var Ha = class {
12656
12674
  });
12657
12675
  }
12658
12676
  return i;
12659
- }, No = ({ bounds: e }) => ({
12660
- vertical: Mo({
12677
+ }, Fo = ({ bounds: e }) => ({
12678
+ vertical: Po({
12661
12679
  bounds: e,
12662
12680
  axis: "centerX",
12663
12681
  type: "vertical",
12664
12682
  primaryStart: "top",
12665
12683
  primaryEnd: "bottom"
12666
12684
  }),
12667
- horizontal: Mo({
12685
+ horizontal: Po({
12668
12686
  bounds: e,
12669
12687
  axis: "centerY",
12670
12688
  type: "horizontal",
12671
12689
  primaryStart: "left",
12672
12690
  primaryEnd: "right"
12673
12691
  })
12674
- }), Po = [
12692
+ }), Io = [
12675
12693
  "montage-area",
12676
12694
  "background",
12677
12695
  "interaction-blocker"
12678
- ], Fo = ({ activeObject: t }) => {
12696
+ ], Lo = ({ activeObject: t }) => {
12679
12697
  let n = /* @__PURE__ */ new Set();
12680
12698
  return t ? (n.add(t), t instanceof e && t.getObjects().forEach((e) => n.add(e)), n) : n;
12681
- }, Io = ({ object: e, excluded: t, ignoredIds: n = Po }) => {
12699
+ }, Ro = ({ object: e, excluded: t, ignoredIds: n = Io }) => {
12682
12700
  if (t.has(e)) return !0;
12683
12701
  let { visible: r = !0 } = e;
12684
12702
  if (!r) return !0;
12685
12703
  let { id: i } = e;
12686
12704
  return !!(i && n.includes(i));
12687
- }, Lo = class e {
12705
+ }, zo = class e {
12688
12706
  constructor({ editor: e }) {
12689
12707
  this.anchors = {
12690
12708
  vertical: [],
@@ -12737,7 +12755,7 @@ var Ha = class {
12737
12755
  this._clearSpacingContexts(), this._clearGuides();
12738
12756
  return;
12739
12757
  }
12740
- let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = wo({
12758
+ let { canvas: o } = this, s = o.getZoom() || 1, c = 5 / s, { deltaX: l, deltaY: u } = Eo({
12741
12759
  activeBounds: a,
12742
12760
  threshold: c,
12743
12761
  anchors: this.anchors
@@ -12749,7 +12767,7 @@ var Ha = class {
12749
12767
  top: t + u
12750
12768
  }), n.setCoords(), a = G({ object: n }) ?? a;
12751
12769
  }
12752
- let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = Do({
12770
+ let d = this._resolveCurrentTargetBounds({ activeObject: n }), f = this.spacingContexts.vertical || this.spacingContexts.horizontal ? 10 / s : c, p = ko({
12753
12771
  activeBounds: a,
12754
12772
  candidates: d,
12755
12773
  threshold: f,
@@ -12770,11 +12788,11 @@ var Ha = class {
12770
12788
  target: n,
12771
12789
  transform: i
12772
12790
  });
12773
- let h = G({ object: n }) ?? a, g = wo({
12791
+ let h = G({ object: n }) ?? a, g = Eo({
12774
12792
  activeBounds: h,
12775
12793
  threshold: c,
12776
12794
  anchors: this.anchors
12777
- }), _ = Do({
12795
+ }), _ = ko({
12778
12796
  activeBounds: h,
12779
12797
  candidates: d,
12780
12798
  threshold: c,
@@ -13005,9 +13023,9 @@ var Ha = class {
13005
13023
  let { canvas: e, guideBounds: t } = this, n = e.getSelectionContext();
13006
13024
  if (!n) return;
13007
13025
  let { left: r, right: i, top: a, bottom: o } = t ?? this._calculateViewportBounds(), { viewportTransform: s } = e, c = e.getZoom() || 1;
13008
- n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Ya, n.setLineDash([4, 4]);
13026
+ n.save(), Array.isArray(s) && n.transform(...s), n.lineWidth = 1 / c, n.strokeStyle = Za, n.setLineDash([4, 4]);
13009
13027
  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();
13010
- for (let e of this.activeSpacingGuides) Ao({
13028
+ for (let e of this.activeSpacingGuides) Mo({
13011
13029
  context: n,
13012
13030
  guide: e,
13013
13031
  zoom: c
@@ -13218,14 +13236,14 @@ var Ha = class {
13218
13236
  }, r = [];
13219
13237
  for (let e of t) {
13220
13238
  let t = G({ object: e });
13221
- t && (jo({
13239
+ t && (No({
13222
13240
  anchors: n,
13223
13241
  bounds: t
13224
13242
  }), r.push(t));
13225
13243
  }
13226
13244
  let { montageArea: i } = this.editor, a = G({ object: i });
13227
13245
  if (a) {
13228
- jo({
13246
+ No({
13229
13247
  anchors: n,
13230
13248
  bounds: a
13231
13249
  });
@@ -13237,12 +13255,12 @@ var Ha = class {
13237
13255
  bottom: i
13238
13256
  };
13239
13257
  } else this.guideBounds = this._calculateViewportBounds();
13240
- this.anchors = n, this.spacingPatterns = No({ bounds: r }), this.cachedTargetBounds = r;
13258
+ this.anchors = n, this.spacingPatterns = Fo({ bounds: r }), this.cachedTargetBounds = r;
13241
13259
  }
13242
13260
  _collectTargets({ activeObject: e }) {
13243
- let t = Fo({ activeObject: e }), n = [];
13261
+ let t = Lo({ activeObject: e }), n = [];
13244
13262
  return this.canvas.forEachObject((e) => {
13245
- Io({
13263
+ Ro({
13246
13264
  object: e,
13247
13265
  excluded: t
13248
13266
  }) || n.push(e);
@@ -13265,7 +13283,7 @@ var Ha = class {
13265
13283
  bottom: (r - s) / a
13266
13284
  };
13267
13285
  }
13268
- }, Ro = "#3D8BF4", zo = class e {
13286
+ }, Bo = "#3D8BF4", Vo = class e {
13269
13287
  constructor({ editor: e }) {
13270
13288
  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();
13271
13289
  }
@@ -13358,8 +13376,8 @@ var Ha = class {
13358
13376
  this.isTargetMontageArea = l, this.activeGuides = d, this._hideToolbar(), n.requestRenderAll();
13359
13377
  }
13360
13378
  static _resolveTarget({ event: e, activeObject: t }) {
13361
- let { target: n } = e, r = Fo({ activeObject: t });
13362
- return n && !Io({
13379
+ let { target: n } = e, r = Lo({ activeObject: t });
13380
+ return n && !Ro({
13363
13381
  object: n,
13364
13382
  excluded: r
13365
13383
  }) ? n : null;
@@ -13476,18 +13494,18 @@ var Ha = class {
13476
13494
  let { canvas: e } = this, t = e.getSelectionContext();
13477
13495
  if (!t) return;
13478
13496
  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;
13479
- t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = Ro, t.setLineDash([]);
13497
+ t.save(), Array.isArray(n) && t.transform(...n), t.lineWidth = 1 / r, t.strokeStyle = Bo, t.setLineDash([]);
13480
13498
  for (let e of this.activeGuides) {
13481
13499
  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;
13482
- t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), ko({
13500
+ t.beginPath(), n === "vertical" ? (t.moveTo(i, a), t.lineTo(i, c)) : (t.moveTo(a, i), t.lineTo(c, i)), t.stroke(), jo({
13483
13501
  context: t,
13484
13502
  type: n,
13485
13503
  axis: i,
13486
13504
  start: a,
13487
13505
  end: c,
13488
- text: Za({ distance: l }).toString(),
13506
+ text: $a({ distance: l }).toString(),
13489
13507
  zoom: r,
13490
- color: Ro,
13508
+ color: Bo,
13491
13509
  lineWidth: 1,
13492
13510
  offsetAlongAxis: d,
13493
13511
  offsetPerpendicular: 0
@@ -13505,13 +13523,13 @@ var Ha = class {
13505
13523
  let { toolbar: e } = this.editor;
13506
13524
  e?.showAfterTemporary?.(), this.isToolbarHidden = !1;
13507
13525
  }
13508
- }, Bo = class e {
13526
+ }, Ho = class e {
13509
13527
  constructor(e, t) {
13510
13528
  this.options = t, this.containerId = e, this.editorId = `${e}-${D()}`, this.init();
13511
13529
  }
13512
13530
  async init() {
13513
13531
  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;
13514
- if (de.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new Sa({ editor: this }), this.historyManager = new Dt({ editor: this }), this.toolbar = new Qe({ editor: this }), this.transformManager = new Rt({ editor: this }), this.zoomManager = new zt({ editor: this }), this.canvasManager = new Lt({ editor: this }), this.imageManager = new Nt({ editor: this }), this.layerManager = new Sn({ editor: this }), this.shapeManager = new ma({ editor: this }), this.interactionBlocker = new bn({ editor: this }), this.backgroundManager = new xn({ editor: this }), this.clipboardManager = new ga({ editor: this }), this.objectLockManager = new _a({ editor: this }), this.groupingManager = new va({ editor: this }), this.selectionManager = new ya({ editor: this }), this.deletionManager = new ba({ editor: this }), this.panConstraintManager = new Ca({ editor: this }), this.snappingManager = new Lo({ editor: this }), this.measurementManager = new zo({ editor: this }), this.fontManager = new fe(this.options.fonts ?? []), this.textManager = new Ua({ editor: this }), this.templateManager = new Ja({ editor: this }), u && (this.angleIndicator = new tt({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
13532
+ if (de.apply(), this.canvas = new t(this.containerId, this.options), this.moduleLoader = new A(), this.workerManager = new M(), this.errorManager = new wa({ editor: this }), this.historyManager = new Dt({ editor: this }), this.toolbar = new Qe({ editor: this }), this.transformManager = new Rt({ editor: this }), this.zoomManager = new zt({ editor: this }), this.canvasManager = new Lt({ editor: this }), this.imageManager = new Nt({ editor: this }), this.layerManager = new wn({ editor: this }), this.shapeManager = new ga({ editor: this }), this.interactionBlocker = new Sn({ editor: this }), this.backgroundManager = new Cn({ editor: this }), this.clipboardManager = new va({ editor: this }), this.objectLockManager = new ya({ editor: this }), this.groupingManager = new ba({ editor: this }), this.selectionManager = new xa({ editor: this }), this.deletionManager = new Sa({ editor: this }), this.panConstraintManager = new Ta({ editor: this }), this.snappingManager = new zo({ editor: this }), this.measurementManager = new Vo({ editor: this }), this.fontManager = new fe(this.options.fonts ?? []), this.textManager = new Ga({ editor: this }), this.templateManager = new Xa({ editor: this }), u && (this.angleIndicator = new tt({ editor: this })), this._createMontageArea(), this._createClippingArea(), this.interactionBlocker.ensureOverlay(), this.listeners = new k({
13515
13533
  editor: this,
13516
13534
  options: this.options
13517
13535
  }), 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) {
@@ -13619,7 +13637,7 @@ var Ha = class {
13619
13637
  "U+A640-A69F",
13620
13638
  "U+FE2E-FE2F",
13621
13639
  "U+2116"
13622
- ].join(", "), Vo = {
13640
+ ].join(", "), Uo = {
13623
13641
  preserveObjectStacking: !0,
13624
13642
  controlsAboveOverlay: !0,
13625
13643
  centeredRotation: !0,
@@ -14473,20 +14491,20 @@ var Ha = class {
14473
14491
  };
14474
14492
  //#endregion
14475
14493
  //#region src/main.ts
14476
- function Ho(e, t = {}) {
14494
+ function Wo(e, t = {}) {
14477
14495
  let n = {
14478
- ...Vo,
14496
+ ...Uo,
14479
14497
  ...t
14480
14498
  }, r = document.getElementById(e);
14481
14499
  if (!r) return Promise.reject(/* @__PURE__ */ Error(`Контейнер с ID "${e}" не найден.`));
14482
14500
  let i = document.createElement("canvas");
14483
14501
  return i.id = `${e}-canvas`, r.appendChild(i), n.editorContainer = r, new Promise((t) => {
14484
14502
  n._onReadyCallback = t;
14485
- let r = new Bo(i.id, n);
14503
+ let r = new Ho(i.id, n);
14486
14504
  window[e] = r;
14487
14505
  });
14488
14506
  }
14489
14507
  //#endregion
14490
- export { Ho as default };
14508
+ export { Wo as default };
14491
14509
 
14492
14510
  //# sourceMappingURL=main.js.map