@spiffcommerce/preview 5.7.9-5 → 5.7.9-6

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.
package/dist/index.esm.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { ArcRotateCamera as fe } from "@babylonjs/core/Cameras/arcRotateCamera";
2
2
  import { Engine as be } from "@babylonjs/core/Engines/engine";
3
3
  import { NullEngine as Ce } from "@babylonjs/core/Engines/nullEngine";
4
- import { HighlightLayer as ye } from "@babylonjs/core/Layers/highlightLayer";
4
+ import { HighlightLayer as xe } from "@babylonjs/core/Layers/highlightLayer";
5
5
  import { SceneLoader as S } from "@babylonjs/core/Loading/sceneLoader";
6
6
  import { CubeTexture as ne } from "@babylonjs/core/Materials/Textures/cubeTexture";
7
7
  import { Color4 as b, Color3 as w } from "@babylonjs/core/Maths/math.color";
8
- import { Vector3 as p, Quaternion as y, Vector2 as se, Matrix as re } from "@babylonjs/core/Maths/math.vector";
9
- import { DracoCompression as Ae } from "@babylonjs/core/Meshes/Compression/dracoCompression";
8
+ import { Vector3 as p, Quaternion as x, Vector2 as se, Matrix as re } from "@babylonjs/core/Maths/math.vector";
9
+ import { DracoCompression as ye } from "@babylonjs/core/Meshes/Compression/dracoCompression";
10
10
  import { Observable as C } from "@babylonjs/core/Misc/observable";
11
11
  import { Tools as Me } from "@babylonjs/core/Misc/tools";
12
- import { Scene as xe } from "@babylonjs/core/scene";
12
+ import { Scene as Ae } from "@babylonjs/core/scene";
13
13
  import { GLTF2 as Pe } from "@babylonjs/loaders/glTF";
14
14
  import { GLTFLoaderAnimationStartMode as Re } from "@babylonjs/loaders/glTF/glTFFileLoader";
15
15
  import { PBRMaterial as B } from "@babylonjs/core/Materials/PBR/pbrMaterial";
@@ -27,7 +27,7 @@ import { Animation as v } from "@babylonjs/core/Animations/animation";
27
27
  import { QuadraticEase as ke, EasingFunction as ze } from "@babylonjs/core/Animations/easing";
28
28
  import { AssetsManager as Ne } from "@babylonjs/core/Misc/assetsManager";
29
29
  import { ColorCurves as le } from "@babylonjs/core/Materials/colorCurves";
30
- import { ImageProcessingConfiguration as x } from "@babylonjs/core/Materials/imageProcessingConfiguration";
30
+ import { ImageProcessingConfiguration as A } from "@babylonjs/core/Materials/imageProcessingConfiguration";
31
31
  import { DefaultRenderingPipeline as qe } from "@babylonjs/core/PostProcesses/RenderPipeline";
32
32
  import { DepthOfFieldEffectBlurLevel as E } from "@babylonjs/core/PostProcesses/depthOfFieldEffect";
33
33
  import "@babylonjs/core/Rendering/depthRendererSceneComponent";
@@ -40,29 +40,29 @@ import "@babylonjs/core/Animations/animatable";
40
40
  import "@babylonjs/core/Misc/screenshotTools";
41
41
  import "@babylonjs/core/Rendering/boundingBoxRenderer";
42
42
  import "@babylonjs/loaders/glTF/2.0/Extensions";
43
- var I = /* @__PURE__ */ ((r) => (r[r.Orbit = 0] = "Orbit", r[r.Pan = 1] = "Pan", r))(I || {}), F = /* @__PURE__ */ ((r) => (r.None = "None", r.RemoveWhenSelected = "RemoveWhenSelected", r.ApplyWhenSelected = "ApplyWhenSelected", r))(F || {});
43
+ var I = /* @__PURE__ */ ((s) => (s[s.Orbit = 0] = "Orbit", s[s.Pan = 1] = "Pan", s))(I || {}), F = /* @__PURE__ */ ((s) => (s.None = "None", s.RemoveWhenSelected = "RemoveWhenSelected", s.ApplyWhenSelected = "ApplyWhenSelected", s))(F || {});
44
44
  const he = /* @__PURE__ */ new Map();
45
- async function D(r, e, t) {
46
- const i = await he.get(r);
45
+ async function D(s, e, t) {
46
+ const i = await he.get(s);
47
47
  if (i && i.scene.uid === e.uid)
48
48
  return i;
49
- const n = S.LoadAssetContainerAsync(
50
- r,
49
+ const r = S.LoadAssetContainerAsync(
50
+ s,
51
51
  void 0,
52
52
  e,
53
53
  t
54
54
  );
55
- return he.set(r, n), n;
55
+ return he.set(s, r), r;
56
56
  }
57
- S.OnPluginActivatedObservable.add((r) => {
58
- r.name === "gltf" && (r.animationStartMode = Re.NONE);
57
+ S.OnPluginActivatedObservable.add((s) => {
58
+ s.name === "gltf" && (s.animationStartMode = Re.NONE);
59
59
  });
60
60
  class ce {
61
61
  constructor(e) {
62
62
  this.getSceneClearColor = () => {
63
- var i, n, s, o;
64
- const t = (i = this.customOptions) != null && i.transparentBackground || (n = this.customOptions) != null && n.backgroundImage ? 0 : 1;
65
- if (this.customOptions && ((s = this.customOptions) != null && s.transparentBackground) || (o = this.customOptions) != null && o.backgroundImage)
63
+ var i, r, n, o;
64
+ const t = (i = this.customOptions) != null && i.transparentBackground || (r = this.customOptions) != null && r.backgroundImage ? 0 : 1;
65
+ if (this.customOptions && ((n = this.customOptions) != null && n.transparentBackground) || (o = this.customOptions) != null && o.backgroundImage)
66
66
  return new b(0, 0, 0, t).toLinearSpace();
67
67
  if (this.customOptions && this.customOptions.backgroundColor) {
68
68
  const a = w.FromHexString(
@@ -77,11 +77,11 @@ class ce {
77
77
  }
78
78
  return new b(0.98, 0.98, 0.98, t).toLinearSpace();
79
79
  }, this.highlightColorFromConfig = () => this.customOptions && this.customOptions.highlightColor ? this.hexToColor4(this.customOptions.highlightColor) : new b(0.98, 0.98, 0.98, 1).toLinearSpace(), this.hexToColor4 = (t, i = 1) => {
80
- const n = w.FromHexString(t);
80
+ const r = w.FromHexString(t);
81
81
  return new b(
82
- n.r,
83
- n.g,
84
- n.b,
82
+ r.r,
83
+ r.g,
84
+ r.b,
85
85
  i
86
86
  ).toLinearSpace();
87
87
  }, this.customOptions = e;
@@ -97,14 +97,14 @@ class ce {
97
97
  * Configuration related to the scene
98
98
  */
99
99
  get scene() {
100
- var e, t, i, n, s;
100
+ var e, t, i, r, n;
101
101
  return {
102
102
  clearColor: this.getSceneClearColor(),
103
103
  transparentBackground: ((e = this.customOptions) == null ? void 0 : e.transparentBackground) || ((t = this.customOptions) == null ? void 0 : t.backgroundImage),
104
104
  environment: {
105
105
  file: ((i = this.customOptions) == null ? void 0 : i.environmentFile) ?? "assets/model-viewer/default.env",
106
- intensity: ((n = this.customOptions) == null ? void 0 : n.environmentIntensity) ?? 1,
107
- rotationY: (((s = this.customOptions) == null ? void 0 : s.environmentRotationY) ?? 0) * (Math.PI / 180)
106
+ intensity: ((r = this.customOptions) == null ? void 0 : r.environmentIntensity) ?? 1,
107
+ rotationY: (((n = this.customOptions) == null ? void 0 : n.environmentRotationY) ?? 0) * (Math.PI / 180)
108
108
  // Convert to radians
109
109
  }
110
110
  };
@@ -113,7 +113,7 @@ class ce {
113
113
  * Configuration related to the camera used to view and interact with the scene.
114
114
  */
115
115
  get camera() {
116
- var e, t, i, n, s, o, a, l, h, c, u, m, g;
116
+ var e, t, i, r, n, o, a, h, l, c, u, m, g;
117
117
  return {
118
118
  autoOrientation: ((e = this.customOptions) == null ? void 0 : e.disableAutomaticOrientation) ?? !0,
119
119
  autoRotation: {
@@ -122,12 +122,12 @@ class ce {
122
122
  },
123
123
  limits: {
124
124
  min: {
125
- alpha: (n = this.customOptions) != null && n.lowerAlphaLimitDeg ? ((s = this.customOptions) == null ? void 0 : s.lowerAlphaLimitDeg) * Math.PI / 180 : void 0,
125
+ alpha: (r = this.customOptions) != null && r.lowerAlphaLimitDeg ? ((n = this.customOptions) == null ? void 0 : n.lowerAlphaLimitDeg) * Math.PI / 180 : void 0,
126
126
  beta: (o = this.customOptions) != null && o.lowerBetaLimitDeg ? ((a = this.customOptions) == null ? void 0 : a.lowerBetaLimitDeg) * Math.PI / 180 : void 0,
127
- radius: (l = this.customOptions) == null ? void 0 : l.minZoomOverride
127
+ radius: (h = this.customOptions) == null ? void 0 : h.minZoomOverride
128
128
  },
129
129
  max: {
130
- alpha: (h = this.customOptions) != null && h.upperAlphaLimitDeg ? ((c = this.customOptions) == null ? void 0 : c.upperAlphaLimitDeg) * Math.PI / 180 : void 0,
130
+ alpha: (l = this.customOptions) != null && l.upperAlphaLimitDeg ? ((c = this.customOptions) == null ? void 0 : c.upperAlphaLimitDeg) * Math.PI / 180 : void 0,
131
131
  beta: (u = this.customOptions) != null && u.upperBetaLimitDeg ? ((m = this.customOptions) == null ? void 0 : m.upperBetaLimitDeg) * Math.PI / 180 : void 0,
132
132
  radius: (g = this.customOptions) == null ? void 0 : g.maxZoomOverride
133
133
  }
@@ -146,10 +146,10 @@ class ce {
146
146
  };
147
147
  }
148
148
  get lighting() {
149
- var e, t, i, n;
149
+ var e, t, i, r;
150
150
  return {
151
151
  exposure: ((t = (e = this.customOptions) == null ? void 0 : e.lighting) == null ? void 0 : t.exposure) ?? 0.9,
152
- contrast: ((n = (i = this.customOptions) == null ? void 0 : i.lighting) == null ? void 0 : n.contrast) ?? 1.6
152
+ contrast: ((r = (i = this.customOptions) == null ? void 0 : i.lighting) == null ? void 0 : r.contrast) ?? 1.6
153
153
  };
154
154
  }
155
155
  get emissiveGlowIntensity() {
@@ -270,11 +270,11 @@ class _e {
270
270
  return this.loader.loadNodeAsync(
271
271
  e,
272
272
  t,
273
- function(n) {
274
- t.extras && Object.keys(t.extras).forEach((s) => {
275
- const o = t.extras[s];
276
- n.metadata[s] = o;
277
- }), i(n);
273
+ function(r) {
274
+ t.extras && Object.keys(t.extras).forEach((n) => {
275
+ const o = t.extras[n];
276
+ r.metadata[n] = o;
277
+ }), i(r);
278
278
  }
279
279
  );
280
280
  }
@@ -332,51 +332,51 @@ class _e {
332
332
  * @param scene The scene to parse.
333
333
  */
334
334
  applyReflections(e) {
335
- function t(s) {
335
+ function t(n) {
336
336
  const o = [];
337
- return s.transformNodes.forEach((a) => {
337
+ return n.transformNodes.forEach((a) => {
338
338
  a.metadata && a.metadata.reflective && o.push(...a.getChildMeshes());
339
- }), s.meshes.forEach((a) => {
339
+ }), n.meshes.forEach((a) => {
340
340
  a.metadata && a.metadata.reflective && !o.includes(a) && o.push(a);
341
341
  }), o;
342
342
  }
343
- function i(s, o = 1) {
344
- const a = s.material;
343
+ function i(n, o = 1) {
344
+ const a = n.material;
345
345
  if (!a)
346
346
  return;
347
- const l = new Ee(
347
+ const h = new Ee(
348
348
  "mirror",
349
349
  M.getMirrorTextureResolution(),
350
350
  e,
351
351
  !0
352
352
  );
353
- l.renderList = t(e);
354
- const h = s.getVerticesData("normal");
355
- if (!h)
353
+ h.renderList = t(e);
354
+ const l = n.getVerticesData("normal");
355
+ if (!l)
356
356
  throw new Error(
357
- "Mirror attribute specified on: " + s.name + "But no normals exist to generate a mirror from!"
357
+ "Mirror attribute specified on: " + n.name + "But no normals exist to generate a mirror from!"
358
358
  );
359
- s.computeWorldMatrix(!0);
360
- const c = s.getWorldMatrix(), u = ae.TransformNormal(
361
- new ae(h[0], h[1], h[2]),
359
+ n.computeWorldMatrix(!0);
360
+ const c = n.getWorldMatrix(), u = ae.TransformNormal(
361
+ new ae(l[0], l[1], l[2]),
362
362
  c
363
363
  ).normalize(), m = Oe.FromPositionAndNormal(
364
- s.position,
364
+ n.position,
365
365
  u.scale(-1)
366
366
  );
367
- l.mirrorPlane = m, l.level = o, a.reflectionTexture = l;
367
+ h.mirrorPlane = m, h.level = o, a.reflectionTexture = h;
368
368
  }
369
- function n(s) {
370
- const o = s.material, a = new Le(
369
+ function r(n) {
370
+ const o = n.material, a = new Le(
371
371
  "probe-" + o.name,
372
372
  Ve,
373
373
  e
374
374
  );
375
- a.cubeTexture.name = "reflection-probe-cube-texture", a.attachToMesh(s), a.renderList && a.renderList.push(...t(e)), o.reflectionTexture = a.cubeTexture;
375
+ a.cubeTexture.name = "reflection-probe-cube-texture", a.attachToMesh(n), a.renderList && a.renderList.push(...t(e)), o.reflectionTexture = a.cubeTexture;
376
376
  }
377
- e.meshes.forEach((s) => {
378
- const o = s.metadata;
379
- o && (o.mirrorTexture && i(s, o.mirrorTexture), o.reflectionProbe && n(s));
377
+ e.meshes.forEach((n) => {
378
+ const o = n.metadata;
379
+ o && (o.mirrorTexture && i(n, o.mirrorTexture), o.reflectionProbe && r(n));
380
380
  });
381
381
  }
382
382
  }
@@ -402,10 +402,10 @@ class Ge {
402
402
  }
403
403
  }
404
404
  }
405
- function He(r, e, t, i, n = "") {
406
- t.forEach((s) => {
407
- const o = s.getID(), a = s.getName(), l = M.getDynamicTextureResolution();
408
- r.filter((c) => c.name === n + a).forEach((c) => {
405
+ function He(s, e, t, i, r = "") {
406
+ t.forEach((n) => {
407
+ const o = n.getID(), a = n.getName(), h = M.getDynamicTextureResolution();
408
+ s.filter((c) => c.name === r + a).forEach((c) => {
409
409
  console.log(`attaching textures to material ${c.name}`);
410
410
  const u = i.get(o), m = !1;
411
411
  if (u)
@@ -414,10 +414,10 @@ function He(r, e, t, i, n = "") {
414
414
  const g = Ke(
415
415
  a,
416
416
  e,
417
- l.width,
418
- l.height
417
+ h.width,
418
+ h.height
419
419
  );
420
- console.log(`created new texture ${g.name}`), i.set(o, g), s.setStaticContext(
420
+ console.log(`created new texture ${g.name}`), i.set(o, g), n.setStaticContext(
421
421
  g.getContext()
422
422
  ), de(c, g), g.onLoadObservable.addOnce(() => {
423
423
  g.update(m);
@@ -426,88 +426,76 @@ function He(r, e, t, i, n = "") {
426
426
  });
427
427
  }), Ue(e);
428
428
  }
429
- const Ue = (r) => {
430
- const e = () => r.textures.reduce((i, n) => {
431
- var o, a;
432
- return !r.meshes.some(
433
- (l) => l.material && l.material.hasTexture(n)
434
- ) && !((o = n == null ? void 0 : n.url) != null && o.includes("data:")) && !((a = n == null ? void 0 : n.url) != null && a.endsWith(".env")) && i.push(n), i;
435
- }, []), t = () => r.materials.reduce((i, n) => (n.getBindedMeshes().length == 0 && i.push(n), i), []);
436
- e().forEach((i) => {
429
+ const Ue = (s) => {
430
+ (() => s.materials.reduce((t, i) => (i.getBindedMeshes().length == 0 && t.push(i), t), []))().forEach((t) => {
437
431
  try {
438
- console.log(`disposing texture ${i.name} (${i.url})`), i.dispose();
432
+ console.log(`disposing material ${t.name}`), t.dispose(!0, !0);
439
433
  } catch {
440
- console.log(`Failed to dispose texture ${i.name}`);
441
- }
442
- }), t().forEach((i) => {
443
- try {
444
- console.log(`disposing material ${i.name}`), i.dispose(!0, !0);
445
- } catch {
446
- console.log(`Failed to dispose material ${i.name}`);
434
+ console.log(`Failed to dispose material ${t.name}`);
447
435
  }
448
436
  });
449
437
  };
450
- function Ke(r, e, t, i) {
451
- const n = new Be(
452
- r,
438
+ function Ke(s, e, t, i) {
439
+ const r = new Be(
440
+ s,
453
441
  { width: t, height: i },
454
442
  e,
455
443
  M.shouldMipMap(),
456
444
  De.TRILINEAR_SAMPLINGMODE,
457
445
  be.TEXTUREFORMAT_RGBA
458
- ), s = n.getContext();
459
- return s && (s.fillStyle = "#f5f5f5", s.fillRect(0, 0, t, i), n.update()), n;
446
+ ), n = r.getContext();
447
+ return n && (n.fillStyle = "#f5f5f5", n.fillRect(0, 0, t, i), r.update()), r;
460
448
  }
461
- function de(r, e) {
462
- if (r instanceof B) {
463
- const t = r, i = t.albedoTexture;
449
+ function de(s, e) {
450
+ if (s instanceof B) {
451
+ const t = s, i = t.albedoTexture;
464
452
  i ? (e.wrapU = i.wrapU, e.wrapV = i.wrapV) : (e.wrapU = 1, e.wrapV = 1), t.albedoTexture = e;
465
453
  } else {
466
- const t = r, i = t.diffuseTexture;
454
+ const t = s, i = t.diffuseTexture;
467
455
  i && (e.wrapU = i.wrapU, e.wrapV = i.wrapV), t.diffuseTexture = e;
468
456
  }
469
457
  }
470
458
  function We() {
471
- const r = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);
472
- return r() + r() + "-" + r() + "-" + r() + "-" + r() + "-" + r() + r() + r();
459
+ const s = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);
460
+ return s() + s() + "-" + s() + "-" + s() + "-" + s() + "-" + s() + s() + s();
473
461
  }
474
- const A = 60, ue = 1;
475
- function me(r) {
476
- return r.targetedAnimations.map((t) => t.animation.framePerSecond).reduce((t, i) => t + i, 0) / r.targetedAnimations.length || 0;
462
+ const y = 60, ue = 1;
463
+ function me(s) {
464
+ return s.targetedAnimations.map((t) => t.animation.framePerSecond).reduce((t, i) => t + i, 0) / s.targetedAnimations.length || 0;
477
465
  }
478
- function ve(r, e, t, i, n, s) {
479
- const o = n ? r.filter((c) => c.name === n) : r;
466
+ function ve(s, e, t, i, r, n) {
467
+ const o = r ? s.filter((c) => c.name === r) : s;
480
468
  if (o.length === 0) {
481
- console.warn(`No animations found for name: ${n}`);
469
+ console.warn(`No animations found for name: ${r}`);
482
470
  return;
483
471
  }
484
472
  let a = 0;
485
- const l = () => {
486
- a++, a === o.length && s && s();
487
- }, h = (c, u, m, g, f) => {
488
- c.stop(), c.start(u, m, g, f), s && (u == !1 || u === void 0 && !c.loopAnimation ? c.onAnimationGroupEndObservable.addOnce(() => {
489
- l();
473
+ const h = () => {
474
+ a++, a === o.length && n && n();
475
+ }, l = (c, u, m, g, f) => {
476
+ c.stop(), c.start(u, m, g, f), n && (u == !1 || u === void 0 && !c.loopAnimation ? c.onAnimationGroupEndObservable.addOnce(() => {
477
+ h();
490
478
  }) : c.onAnimationLoopObservable.addOnce(() => {
491
- l();
479
+ h();
492
480
  }));
493
481
  };
494
482
  if (i !== void 0 && t !== void 0 && i === t) {
495
483
  o.forEach((c) => {
496
484
  const u = me(c), m = i * u;
497
- h(c, !1, ue, m, m);
485
+ l(c, !1, ue, m, m);
498
486
  });
499
487
  return;
500
488
  }
501
489
  o.forEach((c) => {
502
490
  const u = me(c), m = i !== void 0 ? i * u : void 0, g = t !== void 0 ? t * u : void 0;
503
- h(c, e, ue, m, g);
491
+ l(c, e, ue, m, g);
504
492
  });
505
493
  }
506
- function $e(r, e, t) {
494
+ function Ye(s, e, t) {
507
495
  return new Promise((i) => {
508
- r.stopAnimation(e), e.animations = [], Math.abs(e.alpha) > 2 * Math.PI && (e.alpha = Ye(e.alpha, 0, 2 * Math.PI));
509
- const n = [], s = t.target, o = 0, a = s ? 1 : 0;
510
- if (t.target && Object.keys(t.target).length > 0 && n.push(
496
+ s.stopAnimation(e), e.animations = [], Math.abs(e.alpha) > 2 * Math.PI && (e.alpha = $e(e.alpha, 0, 2 * Math.PI));
497
+ const r = [], n = t.target, o = 0, a = n ? 1 : 0;
498
+ if (t.target && Object.keys(t.target).length > 0 && r.push(
511
499
  P(
512
500
  "cameraTargetLerp",
513
501
  "target",
@@ -520,7 +508,7 @@ function $e(r, e, t) {
520
508
  v.ANIMATIONTYPE_VECTOR3,
521
509
  o
522
510
  )
523
- ), n.push(
511
+ ), r.push(
524
512
  P(
525
513
  "cameraAlphaLerp",
526
514
  "alpha",
@@ -529,7 +517,7 @@ function $e(r, e, t) {
529
517
  v.ANIMATIONTYPE_FLOAT,
530
518
  a
531
519
  )
532
- ), n.push(
520
+ ), r.push(
533
521
  P(
534
522
  "cameraBetaLerp",
535
523
  "beta",
@@ -540,7 +528,7 @@ function $e(r, e, t) {
540
528
  )
541
529
  ), t.radius !== void 0) {
542
530
  const c = Math.max(0.01, t.radius);
543
- n.push(
531
+ r.push(
544
532
  P(
545
533
  "cameraRadiusLerp",
546
534
  "radius",
@@ -551,43 +539,43 @@ function $e(r, e, t) {
551
539
  )
552
540
  );
553
541
  }
554
- e.animations.push(...n);
555
- const h = e.useAutoRotationBehavior;
556
- e.disableAutoRotationBehavior(), r.beginAnimation(
542
+ e.animations.push(...r);
543
+ const l = e.useAutoRotationBehavior;
544
+ e.disableAutoRotationBehavior(), s.beginAnimation(
557
545
  e,
558
546
  0,
559
- s ? A * 2 : A,
547
+ n ? y * 2 : y,
560
548
  !1,
561
549
  1,
562
550
  () => {
563
- e.animations = [], h && e.enableAutoRotationBehavior(), i();
551
+ e.animations = [], l && e.enableAutoRotationBehavior(), i();
564
552
  }
565
553
  );
566
554
  });
567
555
  }
568
- function ge(r) {
569
- return r * Math.PI / 180;
556
+ function ge(s) {
557
+ return s * Math.PI / 180;
570
558
  }
571
- function P(r, e, t, i, n, s = 0, o = v.ANIMATIONLOOPMODE_CONSTANT) {
559
+ function P(s, e, t, i, r, n = 0, o = v.ANIMATIONLOOPMODE_CONSTANT) {
572
560
  const a = new ke();
573
561
  a.setEasingMode(ze.EASINGMODE_EASEINOUT);
574
- const l = new v(
575
- r,
562
+ const h = new v(
563
+ s,
576
564
  e,
577
- A,
578
- n,
565
+ y,
566
+ r,
579
567
  o
580
- ), h = [];
581
- return s > 0 && h.push({ frame: 0, value: t }), h.push({ frame: A * s, value: t }), h.push({
582
- frame: A * (s + 1),
568
+ ), l = [];
569
+ return n > 0 && l.push({ frame: 0, value: t }), l.push({ frame: y * n, value: t }), l.push({
570
+ frame: y * (n + 1),
583
571
  value: i
584
- }), l.setKeys(h), l.setEasingFunction(a), l;
572
+ }), h.setKeys(l), h.setEasingFunction(a), h;
585
573
  }
586
- function Ye(r, e, t) {
587
- return r < e ? r = t - (e - r) % (t - e) : r = e + (r - e) % (t - e);
574
+ function $e(s, e, t) {
575
+ return s < e ? s = t - (e - s) % (t - e) : s = e + (s - e) % (t - e);
588
576
  }
589
- function Qe(r, e, t) {
590
- r.forEach((i) => {
577
+ function Qe(s, e, t) {
578
+ s.forEach((i) => {
591
579
  t && i.name !== t || i.goToFrame(e);
592
580
  });
593
581
  }
@@ -601,7 +589,7 @@ const Ze = {
601
589
  refractionTexture: "refractionMap",
602
590
  reflectionTexture: "reflectionMap"
603
591
  };
604
- function je(r, e, t, i) {
592
+ function je(s, e, t, i) {
605
593
  [
606
594
  "albedoTexture",
607
595
  "bumpTexture",
@@ -611,49 +599,49 @@ function je(r, e, t, i) {
611
599
  "metallicTexture",
612
600
  "refractionTexture",
613
601
  "reflectionTexture"
614
- ].forEach((s) => {
602
+ ].forEach((n) => {
615
603
  Xe(
604
+ n,
616
605
  s,
617
- r,
618
606
  e,
619
607
  t,
620
608
  i
621
609
  );
622
- }), tt(r, e);
610
+ }), tt(s, e);
623
611
  }
624
- function Xe(r, e, t, i, n) {
625
- const s = Ze[r];
626
- if (!s)
612
+ function Xe(s, e, t, i, r) {
613
+ const n = Ze[s];
614
+ if (!n)
627
615
  throw new Error("Unexpected texture name encountered.");
628
- const o = e[s], a = o == null ? void 0 : o.fileLink;
629
- a ? r === "reflectionTexture" ? a.endsWith(".env") || a.endsWith(".dds") ? i.addCubeTextureTask(
630
- r,
616
+ const o = e[n], a = o == null ? void 0 : o.fileLink;
617
+ a ? s === "reflectionTexture" ? a.endsWith(".env") || a.endsWith(".dds") ? i.addCubeTextureTask(
618
+ s,
631
619
  a,
632
620
  void 0,
633
621
  !1,
634
622
  void 0,
635
623
  !0
636
624
  ) : a.endsWith(".hdr") ? i.addHDRCubeTextureTask(
637
- r,
625
+ s,
638
626
  a,
639
627
  128,
640
628
  !1,
641
629
  !0,
642
630
  !1
643
- ) : i.addTextureTask(r, a, !1, !1) : i.addTextureTask(r, a, !1, !1) : n && t[r] && (t[r] && t[r].dispose(), t[r] = null, Je(r, t));
631
+ ) : i.addTextureTask(s, a, !1, !1) : i.addTextureTask(s, a, !1, !1) : r && t[s] && (t[s] && t[s].dispose(), t[s] = null, Je(s, t));
644
632
  }
645
- function Je(r, e) {
646
- r === "opacityTexture" && (e.useAlphaFromAlbedoTexture = !0), r === "metallicTexture" && (e.useRoughnessFromMetallicTextureAlpha = !1, e.useRoughnessFromMetallicTextureGreen = !1, e.useMetallnessFromMetallicTextureBlue = !1), r === "refractionTexture" && (e.subSurface.isRefractionEnabled = !1, e.subSurface.refractionIntensity = 1), r === "reflectionTexture" && (e.environmentIntensity = 1), r === "emissiveTexture" && (e.emissiveIntensity = 0, e.emissiveColor = new w(0, 0, 0), e.reflectionTexture);
633
+ function Je(s, e) {
634
+ s === "opacityTexture" && (e.useAlphaFromAlbedoTexture = !0), s === "metallicTexture" && (e.useRoughnessFromMetallicTextureAlpha = !1, e.useRoughnessFromMetallicTextureGreen = !1, e.useMetallnessFromMetallicTextureBlue = !1), s === "refractionTexture" && (e.subSurface.isRefractionEnabled = !1, e.subSurface.refractionIntensity = 1), s === "reflectionTexture" && (e.environmentIntensity = 1), s === "emissiveTexture" && (e.emissiveIntensity = 0, e.emissiveColor = new w(0, 0, 0), e.reflectionTexture);
647
635
  }
648
- function et(r, e, t, i) {
636
+ function et(s, e, t, i) {
649
637
  if (!e) {
650
638
  console.error("Failed to apply texture to material: material is null.");
651
639
  return;
652
640
  }
653
- r === "opacityTexture" && (e.useAlphaFromAlbedoTexture = !1), r === "metallicTexture" && (e.useRoughnessFromMetallicTextureAlpha = !1, e.useRoughnessFromMetallicTextureGreen = !0, e.useMetallnessFromMetallicTextureBlue = !0), r === "refractionTexture" && (e.subSurface.isRefractionEnabled = !0, e.subSurface.refractionIntensity = t.refractionIntensity || 1), r === "reflectionTexture" && (e.environmentIntensity = t.reflectionIntensity || 1, i.isCube && (i.rotationY = t.reflectionRotation ? t.reflectionRotation * Math.PI / 180 : 0)), e[r] = i, r === "emissiveTexture" && (e.emissiveColor = new w(1, 1, 1), e.emissiveIntensity = 1);
641
+ s === "opacityTexture" && (e.useAlphaFromAlbedoTexture = !1), s === "metallicTexture" && (e.useRoughnessFromMetallicTextureAlpha = !1, e.useRoughnessFromMetallicTextureGreen = !0, e.useMetallnessFromMetallicTextureBlue = !0), s === "refractionTexture" && (e.subSurface.isRefractionEnabled = !0, e.subSurface.refractionIntensity = t.refractionIntensity || 1), s === "reflectionTexture" && (e.environmentIntensity = t.reflectionIntensity || 1, i.isCube && (i.rotationY = t.reflectionRotation ? t.reflectionRotation * Math.PI / 180 : 0)), e[s] = i, s === "emissiveTexture" && (e.emissiveColor = new w(1, 1, 1), e.emissiveIntensity = 1);
654
642
  }
655
- function tt(r, e) {
656
- r.clearCoat && (r.clearCoat === F.RemoveWhenSelected ? (e.clearCoat.isEnabled = !1, e.clearCoat.indexOfRefraction = 1.5) : r.clearCoat === F.ApplyWhenSelected && (e.clearCoat.isEnabled = !0, e.clearCoat.indexOfRefraction = r.clearCoatIOR || e.clearCoat.indexOfRefraction));
643
+ function tt(s, e) {
644
+ s.clearCoat && (s.clearCoat === F.RemoveWhenSelected ? (e.clearCoat.isEnabled = !1, e.clearCoat.indexOfRefraction = 1.5) : s.clearCoat === F.ApplyWhenSelected && (e.clearCoat.isEnabled = !0, e.clearCoat.indexOfRefraction = s.clearCoatIOR || e.clearCoat.indexOfRefraction));
657
645
  }
658
646
  class it {
659
647
  constructor(e, t, i) {
@@ -668,31 +656,31 @@ class it {
668
656
  * instead remove material textures when they aren't defined. this is useful for material editor applications
669
657
  * where we want to undo changes are remove effects from display.
670
658
  */
671
- async applyMaterial(e, t, i, n) {
672
- return new Promise((s) => {
659
+ async applyMaterial(e, t, i, r) {
660
+ return new Promise((n) => {
673
661
  const o = this.materialVariantMap.get(e);
674
662
  this.materialVariantMap.set(e, {
675
663
  ...o,
676
664
  ...t
677
665
  });
678
- const a = this.renameClonedAsset(e), l = this.scene.materials.filter(
666
+ const a = this.renameClonedAsset(e), h = this.scene.materials.filter(
679
667
  (c) => c.name === a
680
668
  );
681
- if (l.length === 0) {
682
- s();
669
+ if (h.length === 0) {
670
+ n();
683
671
  return;
684
672
  }
685
- const h = new Ne(this.scene);
686
- h.useDefaultLoadingScreen = !1, l.forEach(
673
+ const l = new Ne(this.scene);
674
+ l.useDefaultLoadingScreen = !1, h.forEach(
687
675
  (c) => je(
688
676
  t,
689
677
  c,
690
- h,
691
- n
678
+ l,
679
+ r
692
680
  )
693
- ), h.onProgress = (c, u, m) => {
681
+ ), l.onProgress = (c, u, m) => {
694
682
  i && i(c / u * 100, 100, m.name);
695
- }, h.onFinish = (c) => {
683
+ }, l.onFinish = (c) => {
696
684
  c.forEach((u) => {
697
685
  const m = u;
698
686
  i && i(100, 100, u.name), this.scene.materials.filter(
@@ -705,8 +693,8 @@ class it {
705
693
  m.texture
706
694
  );
707
695
  });
708
- }), s();
709
- }, h.loadAsync();
696
+ }), n();
697
+ }, l.loadAsync();
710
698
  });
711
699
  }
712
700
  /**
@@ -719,38 +707,38 @@ class it {
719
707
  * @param getCurrentFrame A function that returns the current frame of the animation.
720
708
  * @param getAnimationIsPlaying A function that returns whether the animation is currently playing.
721
709
  */
722
- async applyModel(e, t, i, n, s, o, a) {
710
+ async applyModel(e, t, i, r, n, o, a) {
723
711
  var u;
724
712
  if (i && t && !this.keysThatRemovedBaseModel.includes(e) && this.keysThatRemovedBaseModel.push(e), !i)
725
713
  return this.keysThatRemovedBaseModel.includes(e) && this.keysThatRemovedBaseModel.length === 1 && await this.setBaseModelEnabled(!0), (u = this.loadedContainerForKey.get(e)) == null || u.dispose(), this.loadedContainerForKey.delete(e), this.loadedMaterialsForKey.delete(e), this.keysThatRemovedBaseModel = this.keysThatRemovedBaseModel.filter(
726
714
  (m) => m !== e
727
715
  ), Promise.resolve(void 0);
728
- const h = (await D(i, this.scene, n)).instantiateModelsToScene(
716
+ const l = (await D(i, this.scene, r)).instantiateModelsToScene(
729
717
  this.renameClonedAsset,
730
718
  !0
731
719
  );
732
- if (this.loadedContainerForKey.has(e) && (this.loadedContainerForKey.get(e).dispose(), this.loadedContainerForKey.delete(e), this.loadedMaterialsForKey.delete(e)), s) {
733
- const m = o && o(), g = s.name ? this.renameClonedAsset(s.name) : void 0;
720
+ if (this.loadedContainerForKey.has(e) && (this.loadedContainerForKey.get(e).dispose(), this.loadedContainerForKey.delete(e), this.loadedMaterialsForKey.delete(e)), n) {
721
+ const m = o && o(), g = n.name ? this.renameClonedAsset(n.name) : void 0;
734
722
  if (ve(
735
- h.animationGroups,
736
- s.loop,
737
- s.to,
738
- s.from,
723
+ l.animationGroups,
724
+ n.loop,
725
+ n.to,
726
+ n.from,
739
727
  g
740
728
  ), m != null) {
741
729
  const f = a && a() || !0;
742
730
  Qe(
743
- h.animationGroups,
731
+ l.animationGroups,
744
732
  m + (f ? 2 : 0),
745
733
  g
746
734
  );
747
735
  }
748
736
  }
749
- t && await this.setBaseModelEnabled(!1), this.loadedContainerForKey.set(e, h), this.loadedMaterialsForKey.set(e, we(h));
737
+ t && await this.setBaseModelEnabled(!1), this.loadedContainerForKey.set(e, l), this.loadedMaterialsForKey.set(e, we(l));
750
738
  const c = [];
751
739
  return this.materialVariantMap.forEach(async (m, g) => {
752
740
  c.push(this.applyMaterial(g, m));
753
- }), await Promise.all(c), h;
741
+ }), await Promise.all(c), l;
754
742
  }
755
743
  dispose() {
756
744
  this.loadedContainerForKey.forEach((e) => e == null ? void 0 : e.dispose()), this.loadedContainerForKey.clear(), this.loadedMaterialsForKey.forEach(
@@ -772,19 +760,19 @@ class it {
772
760
  }), e;
773
761
  }
774
762
  }
775
- function we(r) {
763
+ function we(s) {
776
764
  const e = [];
777
- return r.rootNodes.forEach((t) => {
765
+ return s.rootNodes.forEach((t) => {
778
766
  t.getChildMeshes().forEach((i) => {
779
- i.material && !e.includes(i.material) && e.push(i.material), i.subMeshes && i.subMeshes.forEach((n) => {
780
- const s = n.getMaterial(!1);
781
- s && !e.includes(s) && e.push(s);
767
+ i.material && !e.includes(i.material) && e.push(i.material), i.subMeshes && i.subMeshes.forEach((r) => {
768
+ const n = r.getMaterial(!1);
769
+ n && !e.includes(n) && e.push(n);
782
770
  });
783
771
  });
784
772
  }), e;
785
773
  }
786
- function pe(r, e = "") {
787
- return r.map((t) => ({
774
+ function pe(s, e = "") {
775
+ return s.map((t) => ({
788
776
  name: t.name.substring(e.length),
789
777
  loop: t.loopAnimation,
790
778
  to: t.to,
@@ -797,11 +785,11 @@ class nt {
797
785
  const {
798
786
  enablePicking: t,
799
787
  modelDetails: i,
800
- previewService: n,
801
- progressHandler: s,
788
+ previewService: r,
789
+ progressHandler: n,
802
790
  scene: o
803
791
  } = e;
804
- this.enablePicking = t, this.contextService = i.contextService, this.id = We(), this.previewService = n, this.scene = o, this.variantManager = new it(
792
+ this.enablePicking = t, this.contextService = i.contextService, this.id = We(), this.previewService = r, this.scene = o, this.variantManager = new it(
805
793
  o,
806
794
  this.renameClonedAsset.bind(this),
807
795
  this.setBaseModelEnabled.bind(this)
@@ -814,13 +802,13 @@ class nt {
814
802
  return this.assetContainer = await D(
815
803
  i.model,
816
804
  o,
817
- s
805
+ n
818
806
  ), await this.instantiate(), this;
819
807
  };
820
808
  this.importPromise = a();
821
809
  }
822
810
  //#region Interface implementation
823
- async applyMaterialVariant(e, t, i, n) {
811
+ async applyMaterialVariant(e, t, i, r) {
824
812
  if (!this.initialized) {
825
813
  if (this.materialReadyToLoadCallbacks.has(e)) {
826
814
  const o = this.materialReadyToLoadCallbacks.get(e);
@@ -831,7 +819,7 @@ class nt {
831
819
  e,
832
820
  t,
833
821
  i,
834
- n
822
+ r
835
823
  )
836
824
  );
837
825
  } else {
@@ -847,41 +835,41 @@ class nt {
847
835
  e,
848
836
  t,
849
837
  i,
850
- n
838
+ r
851
839
  )
852
840
  );
853
841
  }
854
842
  return;
855
843
  }
856
- const s = async () => {
844
+ const n = async () => {
857
845
  await this.variantManager.applyMaterial(
858
846
  e,
859
847
  i,
860
- (o, a, l) => {
848
+ (o, a, h) => {
861
849
  this.materialVariantObservable.notifyObservers({
862
850
  remainingCount: o,
863
851
  totalCount: a,
864
- taskName: l
852
+ taskName: h
865
853
  });
866
854
  },
867
- n
855
+ r
868
856
  );
869
857
  };
870
858
  if (this.materialChangesInProgress.includes(e)) {
871
859
  if (this.queuedMaterialChanges.has(e)) {
872
860
  const o = this.queuedMaterialChanges.get(e);
873
- o == null || o.set(t, s);
861
+ o == null || o.set(t, n);
874
862
  } else {
875
863
  this.queuedMaterialChanges.set(
876
864
  e,
877
865
  /* @__PURE__ */ new Map()
878
866
  );
879
867
  const o = this.queuedMaterialChanges.get(e);
880
- o == null || o.set(t, s);
868
+ o == null || o.set(t, n);
881
869
  }
882
870
  return;
883
871
  }
884
- if (this.materialChangesInProgress.push(e), await s(), this.queuedMaterialChanges.has(e)) {
872
+ if (this.materialChangesInProgress.push(e), await n(), this.queuedMaterialChanges.has(e)) {
885
873
  const o = this.queuedMaterialChanges.get(e);
886
874
  if (!o)
887
875
  throw new Error("Target material is undefined");
@@ -907,7 +895,7 @@ class nt {
907
895
  );
908
896
  return;
909
897
  }
910
- const n = () => this.variantManager.applyModel(
898
+ const r = () => this.variantManager.applyModel(
911
899
  e,
912
900
  i,
913
901
  t == null ? void 0 : t.model,
@@ -922,17 +910,17 @@ class nt {
922
910
  this.getAnimationIsPlaying.bind(this)
923
911
  );
924
912
  if (this.modelChangesInProgress.includes(e)) {
925
- this.queuedModelChanges.set(e, n);
913
+ this.queuedModelChanges.set(e, r);
926
914
  return;
927
915
  }
928
916
  const o = await (async () => {
929
917
  this.modelChangesInProgress.push(e);
930
- let a = await n();
918
+ let a = await r();
931
919
  if (this.queuedModelChanges.has(e)) {
932
- const l = this.queuedModelChanges.get(e);
933
- if (!l)
920
+ const h = this.queuedModelChanges.get(e);
921
+ if (!h)
934
922
  throw new Error("Queued change resolved undefined");
935
- a = await l(), this.queuedModelChanges.delete(e);
923
+ a = await h(), this.queuedModelChanges.delete(e);
936
924
  }
937
925
  return this.modelChangesInProgress.splice(
938
926
  this.modelChangesInProgress.indexOf(e),
@@ -951,24 +939,24 @@ class nt {
951
939
  let t = () => {
952
940
  };
953
941
  const i = async () => {
954
- this.lastPlayedAnimation = e, this.isExecutingAnimation = !0, await new Promise((n) => {
942
+ this.lastPlayedAnimation = e, this.isExecutingAnimation = !0, await new Promise((r) => {
955
943
  var o;
956
- const s = [
944
+ const n = [
957
945
  ...((o = this.modelInstance) == null ? void 0 : o.animationGroups) || [],
958
946
  ...this.variantManager.getAnimationGroups()
959
947
  ];
960
948
  ve(
961
- s,
949
+ n,
962
950
  e.loop,
963
951
  e.to,
964
952
  e.from,
965
953
  e.name ? this.renameClonedAsset(e.name) : void 0,
966
- n
954
+ r
967
955
  );
968
956
  }), this.isExecutingAnimation = !1, this.queuedAnimationFunction && this.queuedAnimationFunction(), this.queuedAnimationFunction = void 0, t();
969
957
  };
970
- return this.isExecutingAnimation ? (this.queuedAnimationFunction = i, new Promise((n) => {
971
- t = n;
958
+ return this.isExecutingAnimation ? (this.queuedAnimationFunction = i, new Promise((r) => {
959
+ t = r;
972
960
  })) : i();
973
961
  }
974
962
  getAnimations(e) {
@@ -978,7 +966,7 @@ class nt {
978
966
  this.variantManager.getAnimationGroups(),
979
967
  this.renameClonedAsset("")
980
968
  ) : []
981
- ].map((t, i) => ({ ...t, name: t.name || `UNNAMED_ANIMATION_${i}` })).filter((t, i, n) => n.indexOf(n.find((s) => s.name === t.name)) == i);
969
+ ].map((t, i) => ({ ...t, name: t.name || `UNNAMED_ANIMATION_${i}` })).filter((t, i, r) => r.indexOf(r.find((n) => n.name === t.name)) == i);
982
970
  }
983
971
  getId() {
984
972
  return this.id;
@@ -1024,7 +1012,7 @@ class nt {
1024
1012
  set rotation(e) {
1025
1013
  if (!this.transformRoot)
1026
1014
  throw new Error("ModelContainer disposed prior to setting rotation!");
1027
- this.transformRoot.rotationQuaternion = y.FromEulerAngles(
1015
+ this.transformRoot.rotationQuaternion = x.FromEulerAngles(
1028
1016
  e.x,
1029
1017
  e.y,
1030
1018
  e.z
@@ -1046,8 +1034,8 @@ class nt {
1046
1034
  e.rootNodes.forEach((t) => {
1047
1035
  t.getChildMeshes(!1).forEach((i) => {
1048
1036
  i.name === "targetcube_t" || i.name === "backgroundShell" || (i.actionManager || (i.actionManager = new R(this.scene)), i.actionManager.registerAction(
1049
- new oe(R.OnPointerOverTrigger, (n) => {
1050
- n.meshUnderPointer && i.material && this.materialSelectedObservable.notifyObservers({
1037
+ new oe(R.OnPointerOverTrigger, (r) => {
1038
+ r.meshUnderPointer && i.material && this.materialSelectedObservable.notifyObservers({
1051
1039
  id: i.material.id,
1052
1040
  name: this.stripIdFromName(i.material.name)
1053
1041
  });
@@ -1086,19 +1074,19 @@ class nt {
1086
1074
  this.materials.some(e) || this.variantManager.getAllMaterials().some(e) ? this.previewService.getGlowLayerManager().includeMeshes(this.getAllMeshes()) : this.previewService.getGlowLayerManager().removeMeshes(this.getAllMeshes());
1087
1075
  }
1088
1076
  configureModelInstance(e) {
1089
- var s;
1077
+ var n;
1090
1078
  if (!this.transformRoot)
1091
1079
  throw new Error(
1092
1080
  "Transform disposed! This should never happen unless there is a race condition present!"
1093
1081
  );
1094
- const t = this.transformRoot.position, i = this.transformRoot.rotationQuaternion, n = this.transformRoot.scaling;
1095
- this.transformRoot.position = p.Zero(), this.transformRoot.rotationQuaternion = y.Identity(), this.transformRoot.scaling = p.One();
1082
+ const t = this.transformRoot.position, i = this.transformRoot.rotationQuaternion, r = this.transformRoot.scaling;
1083
+ this.transformRoot.position = p.Zero(), this.transformRoot.rotationQuaternion = x.Identity(), this.transformRoot.scaling = p.One();
1096
1084
  for (const o of e.rootNodes) {
1097
1085
  o.parent = this.transformRoot;
1098
1086
  for (const a of o.getChildMeshes(!1))
1099
1087
  a.alwaysSelectAsActiveMesh = !0;
1100
1088
  }
1101
- this.transformRoot.position = t, this.transformRoot.rotationQuaternion = i, this.transformRoot.scaling = n, this.canvasPanels = ((s = this.contextService) == null ? void 0 : s.getAll()) || /* @__PURE__ */ new Map(), He(
1089
+ this.transformRoot.position = t, this.transformRoot.rotationQuaternion = i, this.transformRoot.scaling = r, this.canvasPanels = ((n = this.contextService) == null ? void 0 : n.getAll()) || /* @__PURE__ */ new Map(), He(
1102
1090
  this.materials.concat(this.variantManager.getAllMaterials()),
1103
1091
  this.scene,
1104
1092
  this.canvasPanels,
@@ -1142,8 +1130,8 @@ class nt {
1142
1130
  var e;
1143
1131
  (e = this.canvasPanels) == null || e.forEach(
1144
1132
  (t, i) => {
1145
- const n = this.dynamicTextures.get(i);
1146
- n && t.getStaticContextDirty() && n.isReady() && (n.update(!1), t.setStaticContextDirty(!1));
1133
+ const r = this.dynamicTextures.get(i);
1134
+ r && t.getStaticContextDirty() && r.isReady() && (r.update(!1), t.setStaticContextDirty(!1));
1147
1135
  }
1148
1136
  );
1149
1137
  }
@@ -1202,15 +1190,15 @@ class nt {
1202
1190
  //#endregion
1203
1191
  }
1204
1192
  class k extends fe {
1205
- constructor(e, t, i, n, s, o, a, l) {
1193
+ constructor(e, t, i, r, n, o, a, h) {
1206
1194
  super(
1207
1195
  e,
1208
1196
  t,
1209
1197
  i,
1198
+ r,
1210
1199
  n,
1211
- s,
1212
1200
  o,
1213
- l
1201
+ h
1214
1202
  ), this.lastFocus = new p(0, 0, 0), this._isRunningFramingBehavior = !1, this.panDenominator = 1, this.panEnabled = !0, this.minZ = 0.01, this.updateRadiusBounds(this.radius), this.enableFramingBehavior(), this.wheelDeltaPercentage = 0.01, this.pinchDeltaPercentage = 5e-3, this.useNaturalPinchZoom = !0, a.camera.autoOrientation && (this.alpha += Math.PI), a && (a.camera.limits.min.beta && (this.lowerBetaLimit = a.camera.limits.min.beta), a.camera.limits.max.beta && (this.upperBetaLimit = a.camera.limits.max.beta), a.camera.limits.min.alpha && (this.lowerAlphaLimit = a.camera.limits.min.alpha), a.camera.limits.max.alpha && (this.upperAlphaLimit = a.camera.limits.max.alpha), a.camera.limits.min.radius && (this.lowerRadiusLimit = a.camera.limits.min.radius), a.camera.limits.max.radius && (this.upperRadiusLimit = a.camera.limits.max.radius), a.camera.autoRotation.enabled && this.enableAutoRotationBehavior(
1215
1203
  a.camera.autoRotation.idleTimeMs
1216
1204
  ));
@@ -1264,14 +1252,14 @@ class k extends fe {
1264
1252
  this._isRunningFramingBehavior = !0, this.framingBehaviourCallback = e;
1265
1253
  const i = this.getFramingBehavior();
1266
1254
  i.framingTime = t || 800;
1267
- const n = () => {
1255
+ const r = () => {
1268
1256
  this.isRunningFramingBehavior = !1;
1269
- }, s = T(this._scene), o = s.max.subtract(s.min), a = s.min.add(o.scale(0.5));
1257
+ }, n = T(this._scene), o = n.max.subtract(n.min), a = n.min.add(o.scale(0.5));
1270
1258
  this.updateRadiusBounds(o.length() * 1.5), this.wheelPrecision = 100 / this.radius, this.panningInertia = 0, this.panningOriginTarget.copyFrom(a), this.panDenominator = o.length(), this.lastFocus.copyFrom(a), i.zoomOnBoundingInfo(
1271
- s.min,
1272
- s.max,
1259
+ n.min,
1260
+ n.max,
1273
1261
  void 0,
1274
- n
1262
+ r
1275
1263
  ), i.framingTime = 0;
1276
1264
  }
1277
1265
  /**
@@ -1302,31 +1290,31 @@ class k extends fe {
1302
1290
  * @param disablePan If true the camera will not allow panning.
1303
1291
  */
1304
1292
  static create(e, t, i) {
1305
- var l;
1306
- const n = T(e), s = n.max.subtract(n.min), o = n.min.add(s.scale(0.5)), a = new k(
1293
+ var h;
1294
+ const r = T(e), n = r.max.subtract(r.min), o = r.min.add(n.scale(0.5)), a = new k(
1307
1295
  "ProductCamera",
1308
1296
  -(Math.PI / 2),
1309
1297
  Math.PI / 2,
1310
- s.length() * 1.5,
1298
+ n.length() * 1.5,
1311
1299
  o,
1312
1300
  e,
1313
1301
  t
1314
1302
  );
1315
1303
  return a.setPanEnabled(
1316
- ((l = t.options) == null ? void 0 : l.noPan) !== void 0 ? !t.options.noPan : !0
1317
- ), a.panningInertia = 0, a.panningOriginTarget.copyFrom(o), a.panDenominator = s.length(), a.onAfterCheckInputsObservable.addOnce(() => {
1304
+ ((h = t.options) == null ? void 0 : h.noPan) !== void 0 ? !t.options.noPan : !0
1305
+ ), a.panningInertia = 0, a.panningOriginTarget.copyFrom(o), a.panDenominator = n.length(), a.onAfterCheckInputsObservable.addOnce(() => {
1318
1306
  a.setPanEnabled(a.panEnabled);
1319
1307
  }), i && (e.activeCamera = a), a;
1320
1308
  }
1321
1309
  }
1322
- function T(r) {
1323
- if (r.meshes.length === 0)
1310
+ function T(s) {
1311
+ if (s.meshes.length === 0)
1324
1312
  return {
1325
1313
  min: new p(-1, -1, -1),
1326
1314
  max: new p(1, 1, 1)
1327
1315
  };
1328
- const e = r.meshes.filter((t) => t.name.toLowerCase().endsWith("_t") || t.name.toLowerCase().includes("_t_"));
1329
- return r.getWorldExtends((t) => t.isVisible && t.isEnabled() && (e.length === 0 || e.includes(t)));
1316
+ const e = s.meshes.filter((t) => t.name.toLowerCase().endsWith("_t") || t.name.toLowerCase().includes("_t_"));
1317
+ return s.getWorldExtends((t) => t.isVisible && t.isEnabled() && (e.length === 0 || e.includes(t)));
1330
1318
  }
1331
1319
  class st {
1332
1320
  constructor(e, t = !1, i = void 0) {
@@ -1346,9 +1334,9 @@ class st {
1346
1334
  return this.currentConfiguration;
1347
1335
  }
1348
1336
  setConfiguration(e) {
1349
- var t, i, n, s, o, a, l, h, c, u, m, g, f, z, N, q, V, _, G, H, U, K, W, $, Y, Q, Z, j, X, J, ee, te, ie;
1337
+ var t, i, r, n, o, a, h, l, c, u, m, g, f, z, N, q, V, _, G, H, U, K, W, Y, $, Q, Z, j, X, J, ee, te, ie;
1350
1338
  if (this.renderingPipeline.isSupported) {
1351
- if (this.renderingPipeline.samples = ((t = e.antiAliasing) == null ? void 0 : t.samples) ?? d.antiAliasing.samples, this.renderingPipeline.fxaaEnabled = ((i = e.antiAliasing) == null ? void 0 : i.fxaaEnabled) ?? d.antiAliasing.fxaaEnabled, this.renderingPipeline.bloomEnabled = ((n = e.bloom) == null ? void 0 : n.enabled) ?? d.bloom.enabled, this.renderingPipeline.bloomKernel = ((s = e.bloom) == null ? void 0 : s.kernel) ?? d.bloom.kernel, this.renderingPipeline.bloomScale = ((o = e.bloom) == null ? void 0 : o.scale) ?? d.bloom.scale, this.renderingPipeline.bloomThreshold = ((a = e.bloom) == null ? void 0 : a.threshold) ?? d.bloom.threshold, this.renderingPipeline.bloomWeight = ((l = e.bloom) == null ? void 0 : l.weight) ?? d.bloom.weight, this.renderingPipeline.chromaticAberrationEnabled = ((h = e.chromaticAberration) == null ? void 0 : h.enabled) ?? d.chromaticAberration.enabled, this.renderingPipeline.chromaticAberration.aberrationAmount = ((c = e.chromaticAberration) == null ? void 0 : c.aberrationAmount) ?? d.chromaticAberration.aberrationAmount, this.renderingPipeline.chromaticAberration.radialIntensity = ((u = e.chromaticAberration) == null ? void 0 : u.radialIntensity) ?? d.chromaticAberration.radialIntensity, this.renderingPipeline.chromaticAberration.direction = (m = e.chromaticAberration) != null && m.direction ? new se(
1339
+ if (this.renderingPipeline.samples = ((t = e.antiAliasing) == null ? void 0 : t.samples) ?? d.antiAliasing.samples, this.renderingPipeline.fxaaEnabled = ((i = e.antiAliasing) == null ? void 0 : i.fxaaEnabled) ?? d.antiAliasing.fxaaEnabled, this.renderingPipeline.bloomEnabled = ((r = e.bloom) == null ? void 0 : r.enabled) ?? d.bloom.enabled, this.renderingPipeline.bloomKernel = ((n = e.bloom) == null ? void 0 : n.kernel) ?? d.bloom.kernel, this.renderingPipeline.bloomScale = ((o = e.bloom) == null ? void 0 : o.scale) ?? d.bloom.scale, this.renderingPipeline.bloomThreshold = ((a = e.bloom) == null ? void 0 : a.threshold) ?? d.bloom.threshold, this.renderingPipeline.bloomWeight = ((h = e.bloom) == null ? void 0 : h.weight) ?? d.bloom.weight, this.renderingPipeline.chromaticAberrationEnabled = ((l = e.chromaticAberration) == null ? void 0 : l.enabled) ?? d.chromaticAberration.enabled, this.renderingPipeline.chromaticAberration.aberrationAmount = ((c = e.chromaticAberration) == null ? void 0 : c.aberrationAmount) ?? d.chromaticAberration.aberrationAmount, this.renderingPipeline.chromaticAberration.radialIntensity = ((u = e.chromaticAberration) == null ? void 0 : u.radialIntensity) ?? d.chromaticAberration.radialIntensity, this.renderingPipeline.chromaticAberration.direction = (m = e.chromaticAberration) != null && m.direction ? new se(
1352
1340
  e.chromaticAberration.direction.x,
1353
1341
  e.chromaticAberration.direction.y
1354
1342
  ) : new se(
@@ -1369,19 +1357,19 @@ class st {
1369
1357
  if (this.renderingPipeline.depthOfField.focalLength = ((z = e.depthOfField) == null ? void 0 : z.focalLength) ?? d.depthOfField.focalLength, this.renderingPipeline.depthOfField.fStop = ((N = e.depthOfField) == null ? void 0 : N.fStop) ?? d.depthOfField.fStop, this.renderingPipeline.depthOfField.focusDistance = ((q = e.depthOfField) == null ? void 0 : q.focusDistance) ?? d.depthOfField.focusDistance, this.renderingPipeline.depthOfField.lensSize = ((V = e.depthOfField) == null ? void 0 : V.lensSize) ?? d.depthOfField.lensSize, this.renderingPipeline.grainEnabled = ((_ = e.grain) == null ? void 0 : _.enabled) ?? d.grain.enabled, this.renderingPipeline.grain.animated = ((G = e.grain) == null ? void 0 : G.animated) ?? d.grain.animated, this.renderingPipeline.grain.intensity = ((H = e.grain) == null ? void 0 : H.intensity) ?? d.grain.intensity, this.renderingPipeline.imageProcessing.contrast = ((U = e.misc) == null ? void 0 : U.contrast) ?? d.misc.contrast, this.renderingPipeline.imageProcessing.exposure = ((K = e.misc) == null ? void 0 : K.exposure) ?? d.misc.exposure, this.renderingPipeline.imageProcessing.toneMappingEnabled = ((W = e.misc) == null ? void 0 : W.toneMappingEnabled) ?? d.misc.toneMappingEnabled, this.renderingPipeline.imageProcessing.toneMappingEnabled)
1370
1358
  switch (e.misc.toneMappingType ?? d.misc.toneMappingType) {
1371
1359
  case "Standard":
1372
- this.renderingPipeline.imageProcessing.toneMappingType = x.TONEMAPPING_STANDARD;
1360
+ this.renderingPipeline.imageProcessing.toneMappingType = A.TONEMAPPING_STANDARD;
1373
1361
  break;
1374
1362
  case "ACES":
1375
- this.renderingPipeline.imageProcessing.toneMappingType = x.TONEMAPPING_ACES;
1363
+ this.renderingPipeline.imageProcessing.toneMappingType = A.TONEMAPPING_ACES;
1376
1364
  break;
1377
1365
  }
1378
- if (this.renderingPipeline.sharpenEnabled = (($ = e.sharpen) == null ? void 0 : $.enabled) ?? d.sharpen.enabled, this.renderingPipeline.sharpen.colorAmount = ((Y = e.sharpen) == null ? void 0 : Y.colorAmount) ?? d.sharpen.colorAmount, this.renderingPipeline.sharpen.edgeAmount = ((Q = e.sharpen) == null ? void 0 : Q.edgeAmount) ?? d.sharpen.edgeAmount, this.renderingPipeline.imageProcessing.vignetteEnabled = ((Z = e.vignette) == null ? void 0 : Z.enabled) ?? d.vignette.enabled, (j = e.vignette) != null && j.center ? (this.renderingPipeline.imageProcessing.vignetteCenterX = e.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = e.vignette.center.y) : (this.renderingPipeline.imageProcessing.vignetteCenterX = d.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = d.vignette.center.y), e.vignette)
1366
+ if (this.renderingPipeline.sharpenEnabled = ((Y = e.sharpen) == null ? void 0 : Y.enabled) ?? d.sharpen.enabled, this.renderingPipeline.sharpen.colorAmount = (($ = e.sharpen) == null ? void 0 : $.colorAmount) ?? d.sharpen.colorAmount, this.renderingPipeline.sharpen.edgeAmount = ((Q = e.sharpen) == null ? void 0 : Q.edgeAmount) ?? d.sharpen.edgeAmount, this.renderingPipeline.imageProcessing.vignetteEnabled = ((Z = e.vignette) == null ? void 0 : Z.enabled) ?? d.vignette.enabled, (j = e.vignette) != null && j.center ? (this.renderingPipeline.imageProcessing.vignetteCenterX = e.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = e.vignette.center.y) : (this.renderingPipeline.imageProcessing.vignetteCenterX = d.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = d.vignette.center.y), e.vignette)
1379
1367
  switch (((X = e.vignette) == null ? void 0 : X.blendMode) ?? d.vignette.blendMode) {
1380
1368
  case "Multiply":
1381
- this.renderingPipeline.imageProcessing.vignetteBlendMode = x.VIGNETTEMODE_MULTIPLY;
1369
+ this.renderingPipeline.imageProcessing.vignetteBlendMode = A.VIGNETTEMODE_MULTIPLY;
1382
1370
  break;
1383
1371
  case "Opaque":
1384
- this.renderingPipeline.imageProcessing.vignetteBlendMode = x.VIGNETTEMODE_OPAQUE;
1372
+ this.renderingPipeline.imageProcessing.vignetteBlendMode = A.VIGNETTEMODE_OPAQUE;
1385
1373
  break;
1386
1374
  }
1387
1375
  (J = e.vignette) != null && J.colorRgba ? this.renderingPipeline.imageProcessing.vignetteColor = new b(
@@ -1402,39 +1390,39 @@ class st {
1402
1390
  return t.globalDensity = e.globalDensity ?? t.globalDensity, t.globalExposure = e.globalExposure ?? t.globalExposure, t.globalHue = e.globalHue ?? t.globalHue, t.globalSaturation = e.globalSaturation ?? t.globalSaturation, t.highlightsDensity = e.highlightsDensity ?? t.highlightsDensity, t.highlightsExposure = e.highlightsExposure ?? t.highlightsExposure, t.highlightsHue = e.highlightsHue ?? t.highlightsHue, t.highlightsSaturation = e.highlightsSaturation ?? t.highlightsSaturation, t.midtonesDensity = e.midtonesDensity ?? t.midtonesDensity, t.midtonesExposure = e.midtonesExposure ?? t.midtonesExposure, t.midtonesHue = e.midtonesHue ?? t.midtonesHue, t.midtonesSaturation = e.midtonesSaturation ?? t.midtonesSaturation, t.shadowsDensity = e.shadowsDensity ?? t.shadowsDensity, t.shadowsExposure = e.shadowsExposure ?? t.shadowsExposure, t.shadowsHue = e.shadowsHue ?? t.shadowsHue, t.shadowsSaturation = e.shadowsSaturation ?? t.shadowsSaturation, t;
1403
1391
  }
1404
1392
  }
1405
- Pe.GLTFLoader.RegisterExtension("glbPostProcessor", function(r) {
1406
- return new _e(r);
1393
+ Pe.GLTFLoader.RegisterExtension("glbPostProcessor", function(s) {
1394
+ return new _e(s);
1407
1395
  });
1408
- S.OnPluginActivatedObservable.add((r) => {
1409
- if (r.name === "gltf") {
1410
- const e = r;
1396
+ S.OnPluginActivatedObservable.add((s) => {
1397
+ if (s.name === "gltf") {
1398
+ const e = s;
1411
1399
  e.transparencyAsCoverage = !0;
1412
1400
  }
1413
1401
  });
1414
- function O(r) {
1415
- return new p(r.x, r.y, r.z);
1402
+ function O(s) {
1403
+ return new p(s.x, s.y, s.z);
1416
1404
  }
1417
- function L(r) {
1418
- return { x: r.x, y: r.y, z: r.z };
1405
+ function L(s) {
1406
+ return { x: s.x, y: s.y, z: s.z };
1419
1407
  }
1420
- class $t {
1408
+ class Yt {
1421
1409
  constructor(e) {
1422
- var l;
1410
+ var h;
1423
1411
  this.focusLostNotified = !1, this.focusLostObservable = new C(), this.modelLoadEventCallbacks = [], this.modelContainers = /* @__PURE__ */ new Map(), this.plugins = [], this.initComplete = !1, this.isAnimatingCamera = !1, this.renderLoop = () => {
1424
1412
  if (!this.engine.views)
1425
1413
  return;
1426
1414
  this.modelContainers.forEach((u) => {
1427
1415
  u.updateDynamicTextures();
1428
1416
  }), this.scene.autoClear = !0, this.scene.autoClearDepthAndStencil = !0;
1429
- const h = this.engine.getRenderingCanvas();
1430
- if (h)
1431
- if (h.getContext("webgl2") ?? h.getContext("webgl")) {
1432
- const u = this.configuration.scene.clearColor, m = h.getContext("webgl2") ?? h.getContext("webgl");
1417
+ const l = this.engine.getRenderingCanvas();
1418
+ if (l)
1419
+ if (l.getContext("webgl2") ?? l.getContext("webgl")) {
1420
+ const u = this.configuration.scene.clearColor, m = l.getContext("webgl2") ?? l.getContext("webgl");
1433
1421
  m.clearDepth(1), m.depthFunc(m.LEQUAL), m.clearStencil(0), m.clearColor(u.r, u.g, u.b, u.a), m.clear(
1434
1422
  m.COLOR_BUFFER_BIT | m.DEPTH_BUFFER_BIT | m.STENCIL_BUFFER_BIT
1435
1423
  );
1436
1424
  } else
1437
- h.getContext("2d") ? h.getContext("2d").clearRect(0, 0, h.width, h.height) : console.error(
1425
+ l.getContext("2d") ? l.getContext("2d").clearRect(0, 0, l.width, l.height) : console.error(
1438
1426
  "SpiffCommerce: Failed to get any context on the rendering canvas."
1439
1427
  );
1440
1428
  this.scene.render(), this.camera.isRunningFramingBehavior && this.camera.getFramingBehavior().isUserIsMoving && (this.camera.isRunningFramingBehavior = !1);
@@ -1444,15 +1432,15 @@ class $t {
1444
1432
  const i = (() => {
1445
1433
  if (!(e != null && e.noRender))
1446
1434
  return this.configuration.createCanvas();
1447
- })(), n = "1.5.6";
1448
- Ae.Configuration = {
1435
+ })(), r = "1.5.6";
1436
+ ye.Configuration = {
1449
1437
  decoder: {
1450
- wasmUrl: `https://www.gstatic.com/draco/versioned/decoders/${n}/draco_wasm_wrapper_gltf.js`,
1451
- wasmBinaryUrl: `https://www.gstatic.com/draco/versioned/decoders/${n}/draco_decoder_gltf.wasm`,
1452
- fallbackUrl: `https://www.gstatic.com/draco/versioned/decoders/${n}/draco_decoder_gltf.js`
1438
+ wasmUrl: `https://www.gstatic.com/draco/versioned/decoders/${r}/draco_wasm_wrapper_gltf.js`,
1439
+ wasmBinaryUrl: `https://www.gstatic.com/draco/versioned/decoders/${r}/draco_decoder_gltf.wasm`,
1440
+ fallbackUrl: `https://www.gstatic.com/draco/versioned/decoders/${r}/draco_decoder_gltf.js`
1453
1441
  }
1454
1442
  }, i && (i.getContext("webgl2") || i.getContext("webgl"));
1455
- const s = console.log;
1443
+ const n = console.log;
1456
1444
  console.log = () => {
1457
1445
  };
1458
1446
  const o = i ? new be(i, !0, {
@@ -1464,7 +1452,7 @@ class $t {
1464
1452
  stencil: this.configuration.highlights.enabled,
1465
1453
  forceSRGBBufferSupportState: !0
1466
1454
  }) : new Ce();
1467
- console.log = s, o.hideLoadingUI(), window.addEventListener("resize", this.fireResizeEvent.bind(this)), this.engine = o, this.scene = new xe(o), this.camera = k.create(this.scene, this.configuration), this.scene.activeCamera = this.camera, this.renderingPipeline = new st(
1455
+ console.log = n, o.hideLoadingUI(), window.addEventListener("resize", this.fireResizeEvent.bind(this)), this.engine = o, this.scene = new Ae(o), this.camera = k.create(this.scene, this.configuration), this.scene.activeCamera = this.camera, this.renderingPipeline = new st(
1468
1456
  this.scene,
1469
1457
  !1,
1470
1458
  this.camera
@@ -1473,14 +1461,14 @@ class $t {
1473
1461
  this.configuration.scene.environment.file,
1474
1462
  this.scene
1475
1463
  );
1476
- a.name = "initial-environment-cube", a.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = a, this.scene.environmentIntensity = this.configuration.scene.environment.intensity, (l = this.configuration.options) != null && l.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1464
+ a.name = "initial-environment-cube", a.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = a, this.scene.environmentIntensity = this.configuration.scene.environment.intensity, (h = this.configuration.options) != null && h.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1477
1465
  this.configuration.options.renderingPipelineConfiguration
1478
1466
  ) : (this.scene.imageProcessingConfiguration.exposure = this.configuration.lighting.exposure, this.scene.imageProcessingConfiguration.contrast = this.configuration.lighting.contrast), this.glowLayerManager = new Ge(
1479
1467
  this.scene,
1480
1468
  this.configuration.emissiveGlowIntensity
1481
- ), this.initPromise = new Promise((h) => {
1469
+ ), this.initPromise = new Promise((l) => {
1482
1470
  this.scene.onReadyObservable.addOnce(() => {
1483
- this.initComplete = !0, h();
1471
+ this.initComplete = !0, l();
1484
1472
  });
1485
1473
  }), this.engine.runRenderLoop(this.renderLoop);
1486
1474
  }
@@ -1525,19 +1513,19 @@ class $t {
1525
1513
  this.plugins.forEach((e) => e.dispose(!0)), this.renderingPipeline.dispose(), this.engine && this.engine.dispose(), window.removeEventListener("resize", this.fireResizeEvent);
1526
1514
  }
1527
1515
  executeCameraAnimation(e) {
1528
- if (!this.camera || this.scene.activeCamera !== this.camera || this.getAllModels().length === 0 || !this.getAllModels().some((n) => n.getIsInitialized()))
1516
+ if (!this.camera || this.scene.activeCamera !== this.camera || this.getAllModels().length === 0 || !this.getAllModels().some((r) => r.getIsInitialized()))
1529
1517
  return this.queuedCameraAnimation = e, Promise.resolve();
1530
1518
  let t = () => {
1531
1519
  };
1532
1520
  const i = async () => {
1533
- this.isAnimatingCamera = !0, await $e(
1521
+ this.isAnimatingCamera = !0, await Ye(
1534
1522
  this.scene,
1535
1523
  this.scene.activeCamera,
1536
1524
  e
1537
1525
  ), this.isAnimatingCamera = !1, this.queuedAnimationFunction && this.queuedAnimationFunction(), this.queuedAnimationFunction = void 0, t();
1538
1526
  };
1539
- return this.isAnimatingCamera ? (this.queuedAnimationFunction = i, new Promise((n) => {
1540
- t = n;
1527
+ return this.isAnimatingCamera ? (this.queuedAnimationFunction = i, new Promise((r) => {
1528
+ t = r;
1541
1529
  })) : i();
1542
1530
  }
1543
1531
  getCameraPose() {
@@ -1574,13 +1562,13 @@ class $t {
1574
1562
  const t = async () => {
1575
1563
  this.isAnimatingCamera = !0, await new Promise((i) => {
1576
1564
  this.focusLostNotified = !1;
1577
- const n = () => {
1578
- const s = this.configuration;
1565
+ const r = () => {
1566
+ const n = this.configuration;
1579
1567
  this.camera.rerunFramingBehavior(() => {
1580
- s.camera.limits.min.radius && (this.camera.lowerRadiusLimit = s.camera.limits.min.radius), s.camera.limits.max.radius && (this.camera.upperRadiusLimit = s.camera.limits.max.radius), i();
1568
+ n.camera.limits.min.radius && (this.camera.lowerRadiusLimit = n.camera.limits.min.radius), n.camera.limits.max.radius && (this.camera.upperRadiusLimit = n.camera.limits.max.radius), i();
1581
1569
  });
1582
1570
  };
1583
- this.scene.onAfterRenderObservable.addOnce(n);
1571
+ this.scene.onAfterRenderObservable.addOnce(r);
1584
1572
  }), this.isAnimatingCamera = !1, this.queuedAnimationFunction && this.queuedAnimationFunction(), this.queuedAnimationFunction = void 0, e();
1585
1573
  };
1586
1574
  return this.isAnimatingCamera ? (this.queuedAnimationFunction = t, new Promise((i) => {
@@ -1611,8 +1599,8 @@ class $t {
1611
1599
  this.scene
1612
1600
  );
1613
1601
  try {
1614
- const n = t.latDeg * Math.PI / 180, s = t.lonDeg * Math.PI / 180;
1615
- i.target = t.target ? new p(t.target.x, t.target.y, t.target.z) : p.Zero(), i.alpha = s, i.beta = n, i.radius = t.radius || this.camera.radius, i.minZ = 0.01, this.scene.render();
1602
+ const r = t.latDeg * Math.PI / 180, n = t.lonDeg * Math.PI / 180;
1603
+ i.target = t.target ? new p(t.target.x, t.target.y, t.target.z) : p.Zero(), i.alpha = n, i.beta = r, i.radius = t.radius || this.camera.radius, i.minZ = 0.01, this.scene.render();
1616
1604
  const o = await Me.CreateScreenshotUsingRenderTargetAsync(
1617
1605
  this.engine,
1618
1606
  i,
@@ -1630,31 +1618,31 @@ class $t {
1630
1618
  const e = this.configuration;
1631
1619
  if (!e)
1632
1620
  return !0;
1633
- const t = e.camera.limits.min.alpha, i = e.camera.limits.max.alpha, n = e.camera.limits.min.beta, s = e.camera.limits.max.beta;
1634
- if (t === void 0 || i === void 0 || n === void 0 || s === void 0)
1621
+ const t = e.camera.limits.min.alpha, i = e.camera.limits.max.alpha, r = e.camera.limits.min.beta, n = e.camera.limits.max.beta;
1622
+ if (t === void 0 || i === void 0 || r === void 0 || n === void 0)
1635
1623
  return !0;
1636
- const o = [t, i], a = [n, s], l = o.every((c) => c === t), h = a.every((c) => c === n);
1637
- return !l && !h;
1624
+ const o = [t, i], a = [r, n], h = o.every((c) => c === t), l = a.every((c) => c === r);
1625
+ return !h && !l;
1638
1626
  }
1639
1627
  fireResizeEvent() {
1640
1628
  this.getNumViewports() > 0 && this.engine.resize();
1641
1629
  }
1642
1630
  setHighlights(e, t) {
1643
- var n;
1644
- e.length === 0 && ((n = this.highlightLayer) == null || n.dispose(), this.highlightLayer = void 0), this.highlightLayer || (this.highlightLayer = new ye("highlights", this.scene, {
1631
+ var r;
1632
+ e.length === 0 && ((r = this.highlightLayer) == null || r.dispose(), this.highlightLayer = void 0), this.highlightLayer || (this.highlightLayer = new xe("highlights", this.scene, {
1645
1633
  isStroke: !0,
1646
1634
  blurVerticalSize: 0.85,
1647
1635
  blurHorizontalSize: 0.85
1648
1636
  }), this.highlightLayer.innerGlow = !0, this.highlightLayer.outerGlow = !1), this.highlightLayer.removeAllMeshes();
1649
1637
  const i = t ? new w(t[0], t[1], t[2]).toLinearSpace() : void 0;
1650
- e.forEach((s) => {
1638
+ e.forEach((n) => {
1651
1639
  const o = this.scene.materials.find(
1652
- (a) => a.name === s.name && a.id === s.id
1640
+ (a) => a.name === n.name && a.id === n.id
1653
1641
  );
1654
1642
  o && o.getBindedMeshes().forEach(
1655
1643
  (a) => {
1656
- var l;
1657
- return (l = this.highlightLayer) == null ? void 0 : l.addMesh(
1644
+ var h;
1645
+ return (h = this.highlightLayer) == null ? void 0 : h.addMesh(
1658
1646
  a,
1659
1647
  i || w.FromHexString("#fcba03")
1660
1648
  );
@@ -1666,14 +1654,14 @@ class $t {
1666
1654
  this.renderingPipeline && this.renderingPipeline.setConfiguration(e);
1667
1655
  }
1668
1656
  loadModel(e, t) {
1669
- const { refocusCamera: i = !0, progressHandler: n } = t ?? {}, s = new nt({
1657
+ const { refocusCamera: i = !0, progressHandler: r } = t ?? {}, n = new nt({
1670
1658
  enablePicking: this.configuration.highlights.enabled,
1671
1659
  modelDetails: e,
1672
1660
  scene: this.scene,
1673
1661
  previewService: this,
1674
- progressHandler: n
1662
+ progressHandler: r
1675
1663
  });
1676
- return s.getInitializationPromise().then(() => {
1664
+ return n.getInitializationPromise().then(() => {
1677
1665
  if (this.modelContainers.size <= 1 && i) {
1678
1666
  const o = this.queuedCameraAnimation;
1679
1667
  this.forceStopCameraAnimations(), this.camera.rerunFramingBehavior(() => {
@@ -1682,14 +1670,14 @@ class $t {
1682
1670
  });
1683
1671
  }, 1);
1684
1672
  }
1685
- }), this.configuration.highlights.enabled && (s.registerMaterialSelectedCallback((o) => {
1673
+ }), this.configuration.highlights.enabled && (n.registerMaterialSelectedCallback((o) => {
1686
1674
  this.setHighlights([o]);
1687
- }), s.registerMaterialDeselectedCallback(() => {
1675
+ }), n.registerMaterialDeselectedCallback(() => {
1688
1676
  this.setHighlights([]);
1689
- })), this.modelContainers.set(s.getId(), s), this.triggerModelLoadEvent({
1677
+ })), this.modelContainers.set(n.getId(), n), this.triggerModelLoadEvent({
1690
1678
  eventType: "load",
1691
- modelContainer: s
1692
- }), s;
1679
+ modelContainer: n
1680
+ }), n;
1693
1681
  }
1694
1682
  async preloadModel(e) {
1695
1683
  await D(e, this.scene);
@@ -1709,7 +1697,7 @@ class $t {
1709
1697
  }
1710
1698
  unregisterPlugin(e) {
1711
1699
  const t = this.plugins.indexOf(e);
1712
- t > -1 && this.plugins.splice(t, 1).forEach((n) => n.dispose(!1));
1700
+ t > -1 && this.plugins.splice(t, 1).forEach((r) => r.dispose(!1));
1713
1701
  }
1714
1702
  getGlowLayerManager() {
1715
1703
  return this.glowLayerManager;
@@ -1727,31 +1715,31 @@ class $t {
1727
1715
  * Flips a transform around the origin.
1728
1716
  */
1729
1717
  flipTransform(e, t, i) {
1730
- const n = re.Compose(
1718
+ const r = re.Compose(
1731
1719
  O(i || { x: 1, y: 1, z: 1 }),
1732
- y.FromEulerVector(
1720
+ x.FromEulerVector(
1733
1721
  O(t || { x: 0, y: 0, z: 0 })
1734
1722
  ),
1735
1723
  O(e || { x: 0, y: 0, z: 0 })
1736
- ), s = re.RotationAxis(p.Up(), Math.PI), o = n.multiply(s), a = p.Zero(), l = y.Identity(), h = p.Zero();
1737
- return o.decompose(h, l, a), l.multiplyInPlace(y.FromEulerAngles(0, Math.PI, 0)), {
1724
+ ), n = re.RotationAxis(p.Up(), Math.PI), o = r.multiply(n), a = p.Zero(), h = x.Identity(), l = p.Zero();
1725
+ return o.decompose(l, h, a), h.multiplyInPlace(x.FromEulerAngles(0, Math.PI, 0)), {
1738
1726
  position: L(a),
1739
- rotation: L(l.toEulerAngles()),
1740
- scale: L(h)
1727
+ rotation: L(h.toEulerAngles()),
1728
+ scale: L(l)
1741
1729
  };
1742
1730
  }
1743
1731
  updatePreviewOptions(e) {
1744
- var n, s;
1732
+ var r, n;
1745
1733
  const t = new ce(e);
1746
1734
  this.configuration.highlights.enabled !== t.highlights.enabled && this.engine.setStencilBuffer(t.highlights.enabled), this.scene.clearColor = t.scene.clearColor;
1747
1735
  let i = this.scene.environmentTexture;
1748
1736
  this.configuration.scene.environment.file !== t.scene.environment.file && (i = ne.CreateFromPrefilteredData(
1749
1737
  t.scene.environment.file,
1750
1738
  this.scene
1751
- ), i.name = "updated-environment-cube", i.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = i), i.rotationY = t.scene.environment.rotationY, this.scene.environmentIntensity = t.scene.environment.intensity, (n = t.options) != null && n.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1739
+ ), i.name = "updated-environment-cube", i.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = i), i.rotationY = t.scene.environment.rotationY, this.scene.environmentIntensity = t.scene.environment.intensity, (r = t.options) != null && r.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1752
1740
  t.options.renderingPipelineConfiguration
1753
1741
  ) : (this.scene.imageProcessingConfiguration.exposure = t.lighting.exposure, this.scene.imageProcessingConfiguration.contrast = t.lighting.contrast), this.glowLayerManager.setIntensity(t.emissiveGlowIntensity), this.camera.updateConfiguration(t), this.camera.setPanEnabled(
1754
- ((s = t.options) == null ? void 0 : s.noPan) !== void 0 ? !t.options.noPan : !0
1742
+ ((n = t.options) == null ? void 0 : n.noPan) !== void 0 ? !t.options.noPan : !0
1755
1743
  ), this.configuration = t;
1756
1744
  }
1757
1745
  /**
@@ -1773,6 +1761,6 @@ export {
1773
1761
  I as ProductCameraRig,
1774
1762
  Ve as REFLECTION_PROBE_RESOLUTION,
1775
1763
  M as RenderingConfiguration,
1776
- $t as SpiffCommerce3DPreviewService,
1764
+ Yt as SpiffCommerce3DPreviewService,
1777
1765
  d as renderingPipelineDefaults
1778
1766
  };