@figurosity/consumer-three-sixty-tool 0.3.4 → 0.3.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.
@@ -1,16 +1,16 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("html,body{-webkit-text-size-adjust:none;touch-action:manipulation}.detector{cursor:default;position:fixed;top:0;left:0;right:0;bottom:0;z-index:8}.detector.moving{cursor:move}.three-sixty-viewer .row .col,.three-sixty-viewer .row div{text-align:center}.loading-bar{position:absolute;bottom:0;z-index:100}.three-sixty-viewer{z-index:2!important}.image-background{position:fixed;bottom:0;top:0;left:0;right:0;z-index:1;overflow:hidden;background-color:#fff;-webkit-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.image-background.negative{background-color:#000}.image-holder{position:absolute;background-color:#fff;filter:none;z-index:3}.image-holder-overlay{position:absolute;z-index:4;top:0;left:0;right:0;bottom:0;background:#fff0;background:linear-gradient(82deg,#fff,#fff 1%,#fff0 8%,#fff0),linear-gradient(287deg,#fff,#fff 1%,#fff0 8%,#fff0)}.image-holder-overlay.negative{position:absolute;z-index:4;top:0;left:0;right:0;bottom:0;background:#0000;background:linear-gradient(82deg,#000,#000 1%,#0000 8%,#0000),linear-gradient(287deg,#000,#000 1%,#0000 8%,#0000)}.pose-image{display:block;width:100%;height:auto}.grid-overlay{position:absolute;top:0;left:0;z-index:5;width:100%;height:100%}.grid-overlay .vertical-center{position:absolute;z-index:20;left:50%;top:0;width:1px;background-color:#9c0000;height:100%}.grid-overlay .horizontal-center{position:absolute;z-index:20;top:50%;left:0;height:1px;background-color:#9c0000;width:100%}.grid-overlay-cell{position:absolute;background-color:#0087ff80}.ts-position-move-holder{overflow:hidden;width:100%;padding-top:150px;height:0;opacity:1;position:relative}.slide-fade-enter-active,.slide-fade-leave-active{transition:all .3s ease}.slide-fade-enter,.slide-fade-leave-to{padding-top:0!important;opacity:0}.locked-overlay{position:absolute;z-index:2;top:0;left:0;bottom:0;right:0}")),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
- import { ref as E, computed as m, watch as X, onBeforeMount as Kt, defineComponent as v, h as u, withDirectives as tt, vShow as ht, inject as ee, openBlock as _e, createElementBlock as Rt, normalizeStyle as qt, createVNode as L, unref as ae, resolveComponent as ye, resolveDirective as Zt, createBlock as Ye, withCtx as H, createElementVNode as Ee, createTextVNode as lt, onMounted as Me, nextTick as Gt, onBeforeUnmount as st, useModel as Wt, createCommentVNode as Ht, mergeModels as Xt } from "vue";
3
- import { defineStore as he, getActivePinia as Yt, storeToRefs as b } from "pinia";
4
- import { useQuasar as gt, QBtn as Qt, QSeparator as pe, QLinearProgress as Jt } from "quasar";
5
- import { DEFAULT_SATURATE as es, DEFAULT_CONTRAST as ts, DEFAULT_BRIGHTNESS as ss, getConfig as os, useDynamicImages as ns, LOADED as Fe, LOADING as be, FAILED as ie, UNLOADED as ut, QUEUED as rs, DEFAULT_VISIBLE as as, DEFAULT_VERTICAL as is, DEFAULT_SPACING as cs, DEFAULT_HORIZONTAL as ls, Point as Z, Size as fe, Rect as Qe, DEFAULT as vt, NOTHING as St, BRIGHTNESS as Je, CONTRAST as yt, SATURATE as kt, CAMERA_ANGLE as Y, EFFECTS as Q, GRID as J, RELATED as ce, VIEWS as Ve, TOOLBAR as dt, MOVE as us, ZOOM as ds, SPIN as ms, ADJUSTMENTS as Ie, SKINS as Te, POSITION as Ae, SETTINGS as He, useFilterStyle as ot, useEventBus as ps, useWakeLock as fs } from "@figurosity/toolbox";
6
- import we from "@tweenjs/tween.js";
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("html,body{-webkit-text-size-adjust:none;touch-action:manipulation}.detector{cursor:default;position:fixed;top:0;left:0;right:0;bottom:0;z-index:8}.detector.moving{cursor:move}.three-sixty-viewer .row .col,.three-sixty-viewer .row div{text-align:center}.loading-bar{position:absolute;bottom:0;z-index:100}.three-sixty-viewer{z-index:2!important}.image-background{position:fixed;bottom:0;top:0;left:0;right:0;z-index:1;overflow:hidden;background-color:#fff;-webkit-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.image-background.negative{background-color:#000}.image-holder{position:absolute;background-color:#fff;filter:none;z-index:3}.image-holder-overlay{position:absolute;z-index:4;top:0;left:0;right:0;bottom:0;background:#fff0;background:linear-gradient(82deg,#fff,#fff 1%,#fff0 8%,#fff0),linear-gradient(287deg,#fff,#fff 1%,#fff0 8%,#fff0)}.image-holder-overlay.negative{position:absolute;z-index:4;top:0;left:0;right:0;bottom:0;background:#0000;background:linear-gradient(82deg,#000,#000 1%,#0000 8%,#0000),linear-gradient(287deg,#000,#000 1%,#0000 8%,#0000)}.pose-image{display:block;width:100%;height:auto}.grid-overlay{position:absolute;top:0;left:0;z-index:5;width:100%;height:100%}.grid-overlay .vertical-center{position:absolute;z-index:20;left:50%;top:0;width:1px;background-color:#9c0000;height:100%}.grid-overlay .horizontal-center{position:absolute;z-index:20;top:50%;left:0;height:1px;background-color:#9c0000;width:100%}.grid-overlay-cell{position:absolute;background-color:#0087ff80}.ts-position-move-holder{overflow:hidden;width:100%;padding-top:150px;height:0;opacity:1;position:relative}.slide-fade-enter-active,.slide-fade-leave-active{transition:all .3s ease}.slide-fade-enter,.slide-fade-leave-to{padding-top:0!important;opacity:0}.locked-overlay,.frozen-overlay{position:absolute;z-index:2;top:0;left:0;bottom:0;right:0}")),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
+ import { ref as P, computed as d, watch as Z, onBeforeMount as Gt, defineComponent as v, h as u, withDirectives as Le, vShow as ot, inject as G, openBlock as Fe, createElementBlock as Wt, normalizeStyle as Ht, createVNode as O, unref as ce, resolveComponent as be, resolveDirective as Xt, createBlock as Je, withCtx as Q, createElementVNode as Ae, createTextVNode as mt, onMounted as Ve, nextTick as Yt, onBeforeUnmount as nt, useModel as Qt, createCommentVNode as Jt, mergeModels as es } from "vue";
3
+ import { defineStore as ve, getActivePinia as ts, storeToRefs as b } from "pinia";
4
+ import { useQuasar as St, QBtn as ss, QSeparator as ae, QLinearProgress as os } from "quasar";
5
+ import { DEFAULT_SATURATE as ns, DEFAULT_CONTRAST as rs, DEFAULT_BRIGHTNESS as as, getConfig as is, useDynamicImages as cs, LOADED as je, LOADING as Te, FAILED as le, UNLOADED as pt, QUEUED as ls, DEFAULT_VISIBLE as us, DEFAULT_VERTICAL as ds, DEFAULT_SPACING as ms, DEFAULT_HORIZONTAL as ps, Point as W, Size as ge, Rect as et, DEFAULT as yt, NOTHING as kt, BRIGHTNESS as tt, CONTRAST as bt, SATURATE as It, CAMERA_ANGLE as J, EFFECTS as ee, GRID as te, RELATED as se, VIEWS as Ue, TOOLBAR as ft, MOVE as fs, ZOOM as hs, SPIN as gs, ADJUSTMENTS as we, SKINS as De, POSITION as Me, SETTINGS as Ye, useFilterStyle as rt, useEventBus as vs, useWakeLock as Ss } from "@figurosity/toolbox";
6
+ import Be from "@tweenjs/tween.js";
7
7
  import "tiny-emitter/instance";
8
- import { useRoute as hs } from "vue-router";
9
- import { CBasicTool as De, CExpansion as ge, CBaseButton as te, CBaseButtons as nt, CNewGridTool as gs, CDraggableDrawer as se, CIconButton as bt, CDraggableDrawers as vs, CGridOverlay as Ss, CToolPage as ys } from "@figurosity/consumer-controls";
8
+ import { useRoute as ys } from "vue-router";
9
+ import { CBasicTool as Pe, CExpansion as fe, CBaseButton as H, CBaseButtons as at, CNewGridTool as ks, CDraggableDrawer as X, CIconButton as Tt, CDraggableDrawers as bs, CGridOverlay as Is, CToolPage as Ts } from "@figurosity/consumer-controls";
10
10
  import "@figurosity/icons";
11
- import { EventManager as mt } from "mjolnir.js";
12
- import { supportsPassiveEvents as ks } from "detect-it";
13
- const Pe = {
11
+ import { EventManager as ht } from "mjolnir.js";
12
+ import { supportsPassiveEvents as ws } from "detect-it";
13
+ const ue = 26, ze = {
14
14
  model(e) {
15
15
  const t = f();
16
16
  return e.models[t.id];
@@ -26,7 +26,7 @@ const Pe = {
26
26
  const e = f();
27
27
  return (t, o = null) => this.propertyById(e.id, t, o);
28
28
  }
29
- }, je = {
29
+ }, $e = {
30
30
  setPropertyById(e, t, o) {
31
31
  this.models[e] || this.initModel(e), this.$patch({
32
32
  models: {
@@ -52,86 +52,86 @@ const Pe = {
52
52
  }
53
53
  });
54
54
  }
55
- }, Ue = ({
55
+ }, Oe = ({
56
56
  storeId: e,
57
57
  defaultValues: t = [],
58
58
  state: o = {},
59
59
  getters: s = {},
60
60
  actions: n = {},
61
61
  keyBy: r = "id"
62
- }) => he(e, {
62
+ }) => ve(e, {
63
63
  state: () => ({
64
64
  loading: !1,
65
65
  models: {},
66
66
  ...o
67
67
  }),
68
68
  getters: {
69
- ...Pe,
69
+ ...ze,
70
70
  // Override base getters that read s.id directly so they honor keyBy.
71
- model(i) {
72
- const a = f();
73
- return i.models[a[r]];
71
+ model(a) {
72
+ const i = f();
73
+ return a.models[i[r]];
74
74
  },
75
- exists(i) {
76
- const a = f();
77
- return typeof i.models[a[r]] < "u";
75
+ exists(a) {
76
+ const i = f();
77
+ return typeof a.models[i[r]] < "u";
78
78
  },
79
79
  propertyChangedById() {
80
- return (i, a) => this.propertyById(i, a) !== t[a];
80
+ return (a, i) => this.propertyById(a, i) !== t[i];
81
81
  },
82
- propertyChanged(i) {
83
- const a = f();
84
- return (c) => i.models[a[r]] ? this.propertyById(a[r], c) !== t[c] : !1;
82
+ propertyChanged(a) {
83
+ const i = f();
84
+ return (c) => a.models[i[r]] ? this.propertyById(i[r], c) !== t[c] : !1;
85
85
  },
86
86
  property() {
87
- const i = f();
88
- return (a) => this.propertyById(i[r], a, t[a]);
87
+ const a = f();
88
+ return (i) => this.propertyById(a[r], i, t[i]);
89
89
  },
90
90
  ...s
91
91
  },
92
92
  actions: {
93
- ...je,
93
+ ...$e,
94
94
  // Override base setProperty (which reads s.id) so writes from
95
95
  // useViewerUrlSync land on the keyBy-selected bucket.
96
- setProperty(i, a) {
96
+ setProperty(a, i) {
97
97
  const l = f()[r];
98
98
  l && (this.models[l] || this.initModel(l), this.$patch({
99
99
  models: {
100
100
  [l]: {
101
101
  ...this.models[l],
102
- [i]: a
102
+ [a]: i
103
103
  }
104
104
  }
105
105
  }));
106
106
  },
107
107
  reset() {
108
- const a = f()[r], c = { ...t };
108
+ const i = f()[r], c = { ...t };
109
109
  this.$patch((l) => {
110
- if (!l.models[a]) return console.log("Early return no models " + this.$id);
111
- l.models[a] = {
112
- ...l.models[a],
110
+ if (!l.models[i]) return console.log("Early return no models " + this.$id);
111
+ l.models[i] = {
112
+ ...l.models[i],
113
113
  // Preserve other properties in the model
114
114
  ...c
115
115
  // Apply the default values
116
116
  };
117
117
  });
118
118
  },
119
- resetProperty(i) {
119
+ resetProperty(a) {
120
120
  const c = f()[r];
121
121
  this.$patch({
122
122
  models: {
123
123
  [c]: {
124
124
  ...this.models[c],
125
125
  // Spread existing properties
126
- [i]: t[i]
126
+ [a]: t[a]
127
127
  // Update the specific property
128
128
  }
129
129
  }
130
130
  });
131
131
  },
132
- initModel(i) {
133
- typeof this.models[i] < "u" || this.$patch((a) => {
134
- a.models[i] = {
132
+ initModel(a) {
133
+ typeof this.models[a] < "u" || this.$patch((i) => {
134
+ i.models[a] = {
135
135
  ...t
136
136
  // Spread default values into the new model
137
137
  };
@@ -139,11 +139,11 @@ const Pe = {
139
139
  },
140
140
  ...n
141
141
  }
142
- }), It = {
143
- brightness: ss,
144
- contrast: ts,
145
- saturate: es
146
- }, bs = {
142
+ }), wt = {
143
+ brightness: as,
144
+ contrast: rs,
145
+ saturate: ns
146
+ }, Ds = {
147
147
  changed(e) {
148
148
  return this.propertyChanged("brightness") || this.propertyChanged("contrast") || this.propertyChanged("saturate");
149
149
  },
@@ -156,21 +156,21 @@ const Pe = {
156
156
  saturate() {
157
157
  return this.property("saturate");
158
158
  }
159
- }, $ = Ue({
159
+ }, R = Oe({
160
160
  storeId: "360-adjustments",
161
- defaultValues: Object.assign({}, It),
162
- getters: bs,
161
+ defaultValues: Object.assign({}, wt),
162
+ getters: Ds,
163
163
  keyBy: "basePoseId"
164
164
  });
165
- function Is(e, t) {
166
- let o = Ts(t, e);
165
+ function Bs(e, t) {
166
+ let o = Cs(t, e);
167
167
  return o < 0 && (o = e + o), isNaN(Math.floor(o)) ? 0 : Math.floor(o);
168
168
  }
169
- function Ts(e, t) {
169
+ function Cs(e, t) {
170
170
  return Math[e > 0 ? "floor" : "ceil"](e % t);
171
171
  }
172
- let re = null, q = null;
173
- const ws = {
172
+ let ie = null, q = null;
173
+ const Ps = {
174
174
  animating: !1,
175
175
  condisabledtrast: !1,
176
176
  disabledTimeout: null,
@@ -179,7 +179,7 @@ const ws = {
179
179
  renderCount: 36,
180
180
  index: 1,
181
181
  frame: 1
182
- }, Cs = {}, Ds = {
182
+ }, zs = {}, xs = {
183
183
  changed() {
184
184
  const e = this.model;
185
185
  return e && e.frame !== e.index;
@@ -191,7 +191,7 @@ const ws = {
191
191
  const e = this.model;
192
192
  return e ? e.frame : 0;
193
193
  }
194
- }, Ps = {
194
+ }, Es = {
195
195
  initModel({ id: e, index: t = 0, renderCount: o = 36 }) {
196
196
  typeof this.models[e] < "u" || (this.models[e] = {
197
197
  index: t,
@@ -226,7 +226,7 @@ const ws = {
226
226
  const o = f();
227
227
  t = t || o.id;
228
228
  const n = { ...t ? this.models[t] : this.model };
229
- re && window.cancelAnimationFrame(re), q && (q.stop(), q = null);
229
+ ie && window.cancelAnimationFrame(ie), q && (q.stop(), q = null);
230
230
  const r = n.max;
231
231
  e > r && (e = 0), e < 0 && (e = r), n.animating = !1, n.frame = e, o.pulseKinetic(), this.$patch({
232
232
  models: {
@@ -242,37 +242,37 @@ const ws = {
242
242
  spinToFrame({ value: e, duration: t = 450 }) {
243
243
  const s = f().id, n = this.property("renderCount"), r = this.property("frame");
244
244
  e = parseInt(e);
245
- const i = this;
245
+ const a = this;
246
246
  if (e === r)
247
247
  return;
248
- this.setProperty("start", r), re && window.cancelAnimationFrame(re), q && (q.stop(), q = null);
249
- function a(c) {
250
- re = window.requestAnimationFrame(a), we.update(c);
248
+ this.setProperty("start", r), ie && window.cancelAnimationFrame(ie), q && (q.stop(), q = null);
249
+ function i(c) {
250
+ ie = window.requestAnimationFrame(i), Be.update(c);
251
251
  }
252
- this.setPropertyById(s, "animating", !0), q = new we.Tween({ value: r }).easing(we.Easing.Quartic.Out).to({ value: e }, t).onUpdate(function(c) {
252
+ this.setPropertyById(s, "animating", !0), q = new Be.Tween({ value: r }).easing(Be.Easing.Quartic.Out).to({ value: e }, t).onUpdate(function(c) {
253
253
  let l = parseInt(c.value.toFixed(0));
254
- const d = Is(n, l);
255
- d !== r && (i.setPropertyById(s, "frame", d), f().pulseKinetic());
254
+ const m = Bs(n, l);
255
+ m !== r && (a.setPropertyById(s, "frame", m), f().pulseKinetic());
256
256
  }).onComplete(function() {
257
- window.cancelAnimationFrame(re), re = null, i.setPropertyById(s, "animationFrame", null), i.setPropertyById(s, "animating", !1);
258
- }).start(), a();
257
+ window.cancelAnimationFrame(ie), ie = null, a.setPropertyById(s, "animationFrame", null), a.setPropertyById(s, "animating", !1);
258
+ }).start(), i();
259
259
  }
260
- }, ve = Ue({
260
+ }, Se = Oe({
261
261
  storeId: "360-spin",
262
- defaultValues: Object.assign({}, ws),
263
- state: Cs,
264
- getters: Ds,
265
- actions: Ps
262
+ defaultValues: Object.assign({}, Ps),
263
+ state: zs,
264
+ getters: xs,
265
+ actions: Es
266
266
  });
267
- function Be() {
268
- const { freeServer: e, paidServer: t } = os();
269
- return ns({ freeServer: e, paidServer: t });
267
+ function xe() {
268
+ const { freeServer: e, paidServer: t } = is();
269
+ return cs({ freeServer: e, paidServer: t });
270
270
  }
271
- function Tt(e, t) {
271
+ function Dt(e, t) {
272
272
  for (const o in t)
273
- t[o] && typeof t[o] == "object" && !Array.isArray(t[o]) ? (e[o] || (e[o] = {}), Tt(e[o], t[o])) : e[o] = t[o];
273
+ t[o] && typeof t[o] == "object" && !Array.isArray(t[o]) ? (e[o] || (e[o] = {}), Dt(e[o], t[o])) : e[o] = t[o];
274
274
  }
275
- const M = he("360-skins", {
275
+ const F = ve("360-skins", {
276
276
  state: () => ({
277
277
  loading: !1,
278
278
  models: {},
@@ -280,7 +280,7 @@ const M = he("360-skins", {
280
280
  censoredSkinIds: []
281
281
  }),
282
282
  getters: {
283
- ...Pe,
283
+ ...ze,
284
284
  accessKeyById(e) {
285
285
  return (t) => e.accessKeys[t];
286
286
  },
@@ -372,57 +372,57 @@ const M = he("360-skins", {
372
372
  }
373
373
  },
374
374
  actions: {
375
- ...je,
376
- initModel({ id: e, skinId: t, accessKeys: o, censoredSkinIds: s = [], renderCount: n, skins: r, skinIds: i, uuid: a }) {
377
- const c = ue(), { getPoseLarge: l, getPoseSmall: d } = Be();
375
+ ...$e,
376
+ initModel({ id: e, skinId: t, accessKeys: o, censoredSkinIds: s = [], renderCount: n, skins: r, skinIds: a, uuid: i }) {
377
+ const c = me(), { getPoseLarge: l, getPoseSmall: m } = xe();
378
378
  this.censoredSkinIds = s, this.accessKeys = o;
379
379
  const h = this.appColorsStore;
380
- j();
381
- const g = (h == null ? void 0 : h.backgroundColor) || "ffffff", k = (h == null ? void 0 : h.color) || "000000", I = {
380
+ L();
381
+ const g = (h == null ? void 0 : h.backgroundColor) || "ffffff", y = (h == null ? void 0 : h.color) || "000000", I = {
382
382
  [e]: {
383
383
  id: e,
384
384
  skinId: t,
385
- skinIds: i
385
+ skinIds: a
386
386
  }
387
387
  }, w = {};
388
- Object.keys(r).forEach((S) => {
389
- S = parseInt(S);
390
- const T = r[S], _ = {
388
+ Object.keys(r).forEach((k) => {
389
+ k = parseInt(k);
390
+ const T = r[k], E = {
391
391
  poseId: e,
392
- id: S,
393
- skinId: S,
394
- uuid: a,
392
+ id: k,
393
+ skinId: k,
394
+ uuid: i,
395
395
  name: T.name,
396
396
  slug: T.slug,
397
397
  order: T.order,
398
398
  effects: {}
399
399
  };
400
- Object.keys(Ce).forEach((z) => {
401
- z = parseInt(z);
402
- const O = Ce[z], A = [], G = [], N = z === 3 ? k : g;
403
- for (let x = 0; x < n; x++) {
404
- const D = {
405
- uuid: a,
400
+ Object.keys(Ce).forEach((_) => {
401
+ _ = parseInt(_);
402
+ const V = Ce[_], z = [], Y = [], K = _ === 3 ? y : g;
403
+ for (let A = 0; A < n; A++) {
404
+ const j = {
405
+ uuid: i,
406
406
  skin: T.slug,
407
- effect: O.slug,
408
- color: N,
409
- index: x
410
- }, W = d(D), V = l(D);
411
- A.push(W), G.push(V);
412
- const K = {
413
- skinId: S,
407
+ effect: V.slug,
408
+ color: K,
409
+ index: A
410
+ }, x = m(j), re = l(j);
411
+ z.push(x), Y.push(re);
412
+ const U = {
413
+ skinId: k,
414
414
  failCount: 0,
415
- effectId: parseInt(O.id),
416
- backgroundColor: N,
415
+ effectId: parseInt(V.id),
416
+ backgroundColor: K,
417
417
  poseId: e,
418
418
  skin: T.slug,
419
- status: ut
419
+ status: pt
420
420
  };
421
- w[W] = { ...K, url: W }, w[V] = { ...K, url: V };
421
+ w[x] = { ...U, url: x }, w[re] = { ...U, url: re };
422
422
  }
423
- _.effects[z] = {
424
- [N]: {
425
- status: ut,
423
+ E.effects[_] = {
424
+ [K]: {
425
+ status: pt,
426
426
  active: !1,
427
427
  percent: 0,
428
428
  loadedCount: 0,
@@ -430,15 +430,15 @@ const M = he("360-skins", {
430
430
  started: !1,
431
431
  complete: !1,
432
432
  images: {
433
- large: G,
434
- small: A
433
+ large: Y,
434
+ small: z
435
435
  },
436
436
  previewLoaded: !1
437
437
  }
438
438
  };
439
- }), I[e][S] = _;
440
- }), this.$patch((S) => {
441
- Tt(S.models, I);
439
+ }), I[e][k] = E;
440
+ }), this.$patch((k) => {
441
+ Dt(k.models, I);
442
442
  }), c.initModels(w);
443
443
  },
444
444
  /**
@@ -446,11 +446,11 @@ const M = he("360-skins", {
446
446
  * @param {*} param0
447
447
  */
448
448
  getImageSet({ id: e, skinId: t, effectId: o, color: s }) {
449
- var n, r, i, a, c;
450
- return (c = (a = (i = (r = (n = this.models) == null ? void 0 : n[e]) == null ? void 0 : r[t]) == null ? void 0 : i.effects) == null ? void 0 : a[o]) == null ? void 0 : c[s];
449
+ var n, r, a, i, c;
450
+ return (c = (i = (a = (r = (n = this.models) == null ? void 0 : n[e]) == null ? void 0 : r[t]) == null ? void 0 : a.effects) == null ? void 0 : i[o]) == null ? void 0 : c[s];
451
451
  },
452
452
  getCurrentImageSet() {
453
- const t = f().id, o = this.skinId, s = j(), n = s.id, r = s.id === 3 ? this.appColorsStore.color : this.appColorsStore.backgroundColor;
453
+ const t = f().id, o = this.skinId, s = L(), n = s.id, r = s.id === 3 ? this.appColorsStore.color : this.appColorsStore.backgroundColor;
454
454
  return this.getImageSet({ id: t, skinId: o, effectId: n, color: r });
455
455
  },
456
456
  reset() {
@@ -472,18 +472,18 @@ const M = he("360-skins", {
472
472
  });
473
473
  },
474
474
  setPropertyByImageSet({ id: e, skinId: t, effectId: o, color: s }, n, r) {
475
- const i = this.getImageSet({ id: e, skinId: t, effectId: o, color: s });
476
- this.$patch((a) => {
477
- i && (a.models[e] = {
478
- ...a.models[e],
475
+ const a = this.getImageSet({ id: e, skinId: t, effectId: o, color: s });
476
+ this.$patch((i) => {
477
+ a && (i.models[e] = {
478
+ ...i.models[e],
479
479
  [t]: {
480
- ...a.models[e][t],
480
+ ...i.models[e][t],
481
481
  effects: {
482
- ...a.models[e][t].effects,
482
+ ...i.models[e][t].effects,
483
483
  [o]: {
484
- ...a.models[e][t].effects[o],
484
+ ...i.models[e][t].effects[o],
485
485
  [s]: {
486
- ...a.models[e][t].effects[o][s],
486
+ ...i.models[e][t].effects[o][s],
487
487
  [n]: r
488
488
  }
489
489
  }
@@ -510,60 +510,60 @@ const M = he("360-skins", {
510
510
  });
511
511
  },
512
512
  updatePercentComplete({ id: e, skinId: t, effectId: o, color: s }) {
513
- const n = ue(), r = this.getImageSet({ id: e, skinId: t, effectId: o, color: s });
513
+ const n = me(), r = this.getImageSet({ id: e, skinId: t, effectId: o, color: s });
514
514
  if (!r) return;
515
- const i = r.images.small;
516
- let a = 0, c = 0, l = 0;
517
- const d = i.length;
518
- i.forEach((I) => {
515
+ const a = r.images.small;
516
+ let i = 0, c = 0, l = 0;
517
+ const m = a.length;
518
+ a.forEach((I) => {
519
519
  switch (n.models[I].status) {
520
- case ie:
521
- a++;
520
+ case le:
521
+ i++;
522
522
  break;
523
- case Fe:
523
+ case je:
524
524
  c++;
525
525
  break;
526
- case be:
526
+ case Te:
527
527
  l++;
528
528
  break;
529
529
  }
530
530
  });
531
531
  const h = { id: e, skinId: t, effectId: o, color: s };
532
- if (d === 0)
532
+ if (m === 0)
533
533
  return this.setPropertyByImageSet(h, "percent", 0), 0;
534
- const g = l * 0.25 + (c + a), k = Math.floor(g / d * 100);
535
- return this.setPropertyByImageSet(h, "percent", k), this.setPropertyByImageSet(h, "status", Fe), this.setPropertyByImageSet(h, "failedCount", a), this.setPropertyByImageSet(h, "loadedCount", c), k;
534
+ const g = l * 0.25 + (c + i), y = Math.floor(g / m * 100);
535
+ return this.setPropertyByImageSet(h, "percent", y), this.setPropertyByImageSet(h, "status", je), this.setPropertyByImageSet(h, "failedCount", i), this.setPropertyByImageSet(h, "loadedCount", c), y;
536
536
  },
537
537
  setSelectedBySlug(e, t) {
538
- var i, a;
538
+ var a, i;
539
539
  const o = f();
540
540
  if (t = t || o.id, !this.models[t]) return;
541
541
  const s = this.models[t].skinIds;
542
- (!((i = this.appSkinsStore) == null ? void 0 : i.hasAccess(e)) || !((a = this.slugs) != null && a[e])) && (e = "normal");
542
+ (!((a = this.appSkinsStore) == null ? void 0 : a.hasAccess(e)) || !((i = this.slugs) != null && i[e])) && (e = "normal");
543
543
  let r = this.slugs[e] ?? 1;
544
544
  r = parseInt(r), r = s.includes(r) ? r : 1, this.models[t].skinId = parseInt(r);
545
545
  }
546
546
  }
547
- }), pt = (e, t = "sm") => {
548
- var i, a;
549
- const o = ve(), n = M().getCurrentImageSet(), r = o.property("frame");
550
- if (((a = (i = n == null ? void 0 : n.images) == null ? void 0 : i.small) == null ? void 0 : a.length) > 0) {
547
+ }), gt = (e, t = "sm") => {
548
+ var a, i;
549
+ const o = Se(), n = F().getCurrentImageSet(), r = o.property("frame");
550
+ if (((i = (a = n == null ? void 0 : n.images) == null ? void 0 : a.small) == null ? void 0 : i.length) > 0) {
551
551
  const c = t === "sm" ? n.images.small[r] : n.images.large[r];
552
552
  return e.models[c];
553
553
  }
554
554
  return null;
555
- }, ue = he("360-images", {
555
+ }, me = ve("360-images", {
556
556
  state: () => ({
557
557
  models: {}
558
558
  }),
559
559
  getters: {
560
560
  image(e) {
561
- return pt(e);
561
+ return gt(e);
562
562
  },
563
563
  largeImage(e) {
564
- return pt(e, "lg");
564
+ return gt(e, "lg");
565
565
  },
566
- ...Pe
566
+ ...ze
567
567
  },
568
568
  actions: {
569
569
  initModels(e) {
@@ -575,17 +575,17 @@ const M = he("360-skins", {
575
575
  * @param { Function } success On load callback
576
576
  */
577
577
  loadImage(e, t = void 0) {
578
- if (this.models[e].status === be) return;
579
- if (typeof Image > "u") return this.setStatus(e, ie);
580
- this.setStatus(e, rs);
578
+ if (this.models[e].status === Te) return;
579
+ if (typeof Image > "u") return this.setStatus(e, le);
580
+ this.setStatus(e, ls);
581
581
  const n = new Image(), r = this;
582
- n.onabort = function(i) {
583
- r.setStatus(this.src, ie), this.onerror = this.onabort = this.onload = null;
584
- }, n.onerror = function(i) {
585
- r.setStatus(this.src, ie), this.onerror = this.onabort = this.onload = null;
586
- }, n.onload = function(i) {
587
- r.setStatus(this.src, Fe), t && typeof t == "function" && t(this.src);
588
- }, n.src = e, this.setStatus(e, be);
582
+ n.onabort = function(a) {
583
+ r.setStatus(this.src, le), this.onerror = this.onabort = this.onload = null;
584
+ }, n.onerror = function(a) {
585
+ r.setStatus(this.src, le), this.onerror = this.onabort = this.onload = null;
586
+ }, n.onload = function(a) {
587
+ r.setStatus(this.src, je), t && typeof t == "function" && t(this.src);
588
+ }, n.src = e, this.setStatus(e, Te);
589
589
  },
590
590
  /**
591
591
  * Loads the images for the pose
@@ -598,12 +598,12 @@ const M = he("360-skins", {
598
598
  * Load all of the images for all of the skins/views
599
599
  */
600
600
  loadPreview() {
601
- var c, l, d;
602
- const e = ve(), t = M(), o = j();
601
+ var c, l, m;
602
+ const e = Se(), t = F(), o = L();
603
603
  this.appColorsStore;
604
- const s = f(), n = t.currentSkin, r = e.indexById(s.id), i = o.id === 3 ? "000000" : "ffffff", a = (d = (l = (c = n == null ? void 0 : n.effects) == null ? void 0 : c[o.id]) == null ? void 0 : l[i]) == null ? void 0 : d.images.small;
605
- if ((a == null ? void 0 : a.length) > 0 && r >= 0) {
606
- const h = a[r];
604
+ const s = f(), n = t.currentSkin, r = e.indexById(s.id), a = o.id === 3 ? "000000" : "ffffff", i = (m = (l = (c = n == null ? void 0 : n.effects) == null ? void 0 : c[o.id]) == null ? void 0 : l[a]) == null ? void 0 : m.images.small;
605
+ if ((i == null ? void 0 : i.length) > 0 && r >= 0) {
606
+ const h = i[r];
607
607
  this.loadImage(h, this.loadSkin);
608
608
  return;
609
609
  }
@@ -618,12 +618,12 @@ const M = he("360-skins", {
618
618
  * @param url
619
619
  */
620
620
  loadViewCallback(e) {
621
- const t = M(), o = this.models[e], s = o.skinId, n = o.poseId, r = o.effectId, i = o.backgroundColor;
621
+ const t = F(), o = this.models[e], s = o.skinId, n = o.poseId, r = o.effectId, a = o.backgroundColor;
622
622
  t.updatePercentComplete({
623
623
  id: n,
624
624
  skinId: s,
625
625
  effectId: r,
626
- color: i
626
+ color: a
627
627
  });
628
628
  },
629
629
  /**
@@ -633,11 +633,11 @@ const M = he("360-skins", {
633
633
  */
634
634
  loadSkin() {
635
635
  var s;
636
- const t = M().getCurrentImageSet();
636
+ const t = F().getCurrentImageSet();
637
637
  if (!t || t.percent === 100) return;
638
638
  const o = (s = t == null ? void 0 : t.images) == null ? void 0 : s.small;
639
639
  o && o.forEach((n) => {
640
- this.models[n], t.status = be, setTimeout(() => {
640
+ this.models[n], t.status = Te, setTimeout(() => {
641
641
  this.loadImage(n, this.loadViewCallback);
642
642
  }, 15);
643
643
  });
@@ -645,11 +645,11 @@ const M = he("360-skins", {
645
645
  setStatus(e, t) {
646
646
  const o = this.models[e];
647
647
  if (!o) return;
648
- if (t === ie) {
648
+ if (t === le) {
649
649
  this.updateFailCount(e), o.status = t;
650
650
  return;
651
651
  }
652
- o.status = t, M().updatePercentComplete({
652
+ o.status = t, F().updatePercentComplete({
653
653
  skinId: o.skinId,
654
654
  effectId: o.effectId,
655
655
  color: o.backgroundColor,
@@ -678,13 +678,13 @@ const M = he("360-skins", {
678
678
  }, 250);
679
679
  return;
680
680
  }
681
- const o = M(), s = {
681
+ const o = F(), s = {
682
682
  skinId: t.skinId,
683
683
  effectId: t.effectId,
684
684
  color: t.backgroundColor,
685
685
  id: t.poseId
686
686
  };
687
- t.status = ie, o.setStatus(s, ie);
687
+ t.status = le, o.setStatus(s, le);
688
688
  }
689
689
  }
690
690
  }), Ce = {
@@ -703,13 +703,13 @@ const M = he("360-skins", {
703
703
  name: "Negative",
704
704
  slug: "negative"
705
705
  }
706
- }, j = he("360-effects", {
706
+ }, L = ve("360-effects", {
707
707
  state: () => ({
708
708
  loading: !1,
709
709
  models: {}
710
710
  }),
711
711
  getters: {
712
- ...Pe,
712
+ ...ze,
713
713
  effects(e) {
714
714
  return Object.keys(Ce).map((t) => Ce[t]);
715
715
  },
@@ -739,7 +739,7 @@ const M = he("360-skins", {
739
739
  }
740
740
  },
741
741
  actions: {
742
- ...je,
742
+ ...$e,
743
743
  initModel(e) {
744
744
  this.models[e] = {
745
745
  effectId: 1
@@ -770,12 +770,12 @@ const M = he("360-skins", {
770
770
  });
771
771
  }
772
772
  }
773
- }), wt = {
774
- horizontal: ls,
775
- spacing: cs,
776
- vertical: is,
777
- visible: as
778
- }, Bs = {
773
+ }), Bt = {
774
+ horizontal: ps,
775
+ spacing: ms,
776
+ vertical: ds,
777
+ visible: us
778
+ }, As = {
779
779
  changed() {
780
780
  return this.propertyChanged("visible") || !1;
781
781
  },
@@ -791,18 +791,18 @@ const M = he("360-skins", {
791
791
  visible() {
792
792
  return this.property("visible");
793
793
  }
794
- }, de = Ue({
794
+ }, pe = Oe({
795
795
  storeId: "360-grid",
796
- defaultValues: wt,
797
- getters: Bs,
796
+ defaultValues: Bt,
797
+ getters: As,
798
798
  keyBy: "basePoseId"
799
- }), oe = he("360-pose", {
799
+ }), oe = ve("360-pose", {
800
800
  state: () => ({
801
801
  loading: !1,
802
802
  models: {}
803
803
  }),
804
804
  getters: {
805
- ...Pe,
805
+ ...ze,
806
806
  skinId() {
807
807
  const e = f();
808
808
  return this.propertyById(e.id, "skinId");
@@ -840,49 +840,49 @@ const M = he("360-skins", {
840
840
  uuid: o
841
841
  });
842
842
  },
843
- ...je
843
+ ...$e
844
844
  }
845
- }), Xe = ({
845
+ }), Qe = ({
846
846
  imageSize: e,
847
847
  imagePoint: t,
848
848
  maxDimension: o,
849
849
  origin: s,
850
850
  scaleByRatio: n,
851
851
  size: r,
852
- zoom: i
852
+ zoom: a
853
853
  }) => {
854
- const a = {}, c = o / r.shortDimension(), l = (c - 1) * (i / 100) + 1;
854
+ const i = {}, c = o / r.shortDimension(), l = (c - 1) * (a / 100) + 1;
855
855
  if (l < 1 || l > c) return {};
856
- const d = xs({
856
+ const m = _s({
857
857
  factor: l,
858
858
  size: r,
859
859
  maxDimension: o
860
- }), h = Ms({
860
+ }), h = Us({
861
861
  scaleByRatio: n,
862
862
  imageSize: e,
863
- newSize: d,
863
+ newSize: m,
864
864
  imagePoint: t,
865
865
  size: r,
866
866
  origin: s
867
867
  });
868
- return a.imagePoint = h, a.imageSize = d, a.size = r, a.zoom = i, Object.assign(a, _s({ maxDimension: o, newSize: d, size: r }));
869
- }, xs = ({ factor: e, size: t, maxDimension: o }) => {
868
+ return i.imagePoint = h, i.imageSize = m, i.size = r, i.zoom = a, Object.assign(i, js({ maxDimension: o, newSize: m, size: r }));
869
+ }, _s = ({ factor: e, size: t, maxDimension: o }) => {
870
870
  let s = t.shortDimension() * e;
871
- return s = s > o ? o : s, new fe(s, s);
872
- }, Es = ({ imagePoint: e, imageSize: t, newSize: o, size: s, origin: n }) => {
871
+ return s = s > o ? o : s, new ge(s, s);
872
+ }, Ms = ({ imagePoint: e, imageSize: t, newSize: o, size: s, origin: n }) => {
873
873
  const r = (o.width - t.width) / t.width;
874
- let i = new Z(
874
+ let a = new W(
875
875
  -(r * n.left) - Math.abs(e.left),
876
876
  -(r * n.top) - Math.abs(e.top)
877
877
  );
878
- return o.width < s.width && (i.left = -(r * n.left) + Math.abs(e.left)), o.height < s.height && (i.top = -(r * n.top) + Math.abs(e.top)), i;
879
- }, zs = ({ event: e, element: t }) => (e = e.srcEvent ? e.srcEvent : e, Z.getPointFromInteractionEvent(e, t)), As = ({ origin: e, imageSize: t }) => !(e.left > 0 && e.top > 0 && e.left < t.width && e.top < t.height), _s = ({ maxDimension: e, newSize: t, size: o }) => {
878
+ return o.width < s.width && (a.left = -(r * n.left) + Math.abs(e.left)), o.height < s.height && (a.top = -(r * n.top) + Math.abs(e.top)), a;
879
+ }, Fs = ({ event: e, element: t }) => (e = e.srcEvent ? e.srcEvent : e, W.getPointFromInteractionEvent(e, t)), Vs = ({ origin: e, imageSize: t }) => !(e.left > 0 && e.top > 0 && e.left < t.width && e.top < t.height), js = ({ maxDimension: e, newSize: t, size: o }) => {
880
880
  const s = t.width <= o.width, n = t.height <= o.height, r = {};
881
881
  return r.immobileHeight = n, r.immobileWidth = s, r.maximized = Math.round(t.width) >= e, r.minimized = s && n, r.movable = !s || !n, r;
882
- }, et = ({ point: e, size: t, newSize: o }) => {
883
- let s = new Z(t.width - o.width, t.height - o.height);
882
+ }, st = ({ point: e, size: t, newSize: o }) => {
883
+ let s = new W(t.width - o.width, t.height - o.height);
884
884
  return o.width >= t.width && (e.left >= 0 && (e.left = 0), e.left < s.left && (e.left = s.left)), o.height >= t.height && (e.top >= 0 && (e.top = 0), e.top < s.top && (e.top = s.top)), o.width < t.width && (e.left = s.left / 2), o.height < t.height && (e.top = s.top / 2), e;
885
- }, Ms = ({
885
+ }, Us = ({
886
886
  scaleByRatio: e = !0,
887
887
  imagePoint: t,
888
888
  imageSize: o,
@@ -891,36 +891,36 @@ const M = he("360-skins", {
891
891
  size: r
892
892
  }) => {
893
893
  if (e) {
894
- const a = Fs({ imageSize: o, newSize: s, imagePoint: t });
895
- return et({ point: a, newSize: s, size: r });
894
+ const i = Ls({ imageSize: o, newSize: s, imagePoint: t });
895
+ return st({ point: i, newSize: s, size: r });
896
896
  }
897
- const i = Es({
897
+ const a = Ms({
898
898
  imagePoint: t,
899
899
  imageSize: o,
900
900
  newSize: s,
901
901
  size: r,
902
902
  origin: n
903
903
  });
904
- return et({ point: i, newSize: s, size: r });
905
- }, Fs = ({ imageSize: e, newSize: t, imagePoint: o }) => {
906
- let s = new Z(
904
+ return st({ point: a, newSize: s, size: r });
905
+ }, Ls = ({ imageSize: e, newSize: t, imagePoint: o }) => {
906
+ let s = new W(
907
907
  (e.width - t.width) / 2,
908
908
  (e.height - t.height) / 2
909
909
  );
910
- return new Z(o.left + s.left, o.top + s.top);
911
- }, le = {
910
+ return new W(o.left + s.left, o.top + s.top);
911
+ }, de = {
912
912
  maxDimension: 2048,
913
913
  zoom: 0,
914
- imagePoint: new Z(0, 0),
915
- viewportPoint: new Z(0, 0),
916
- size: new fe(0, 0),
917
- imageSize: new fe(0, 0),
914
+ imagePoint: new W(0, 0),
915
+ viewportPoint: new W(0, 0),
916
+ size: new ge(0, 0),
917
+ imageSize: new ge(0, 0),
918
918
  immobileWidth: !1,
919
919
  immobileHeight: !1,
920
920
  maximized: !1,
921
921
  minimized: !1,
922
922
  animating: !1
923
- }, Vs = {}, js = {
923
+ }, $s = {}, Os = {
924
924
  changed() {
925
925
  return this.propertyChanged("zoom");
926
926
  },
@@ -946,19 +946,19 @@ const M = he("360-skins", {
946
946
  },
947
947
  imagePoint(e) {
948
948
  const t = f(), o = e.models[t.id];
949
- return o ? o.imagePoint : le.imagePoint;
949
+ return o ? o.imagePoint : de.imagePoint;
950
950
  },
951
951
  imageSize(e) {
952
952
  const t = f(), o = e.models[t.id];
953
- return o ? o.imageSize : le.imageSize;
953
+ return o ? o.imageSize : de.imageSize;
954
954
  },
955
955
  viewportSize(e) {
956
956
  const t = f(), o = e.models[t.id];
957
- return o ? o.size : le.size;
957
+ return o ? o.size : de.size;
958
958
  }
959
959
  };
960
- let ze = null, ke = null;
961
- const Us = {
960
+ let _e = null, Ie = null;
961
+ const Rs = {
962
962
  reset() {
963
963
  this.setZoom(0);
964
964
  },
@@ -972,20 +972,20 @@ const Us = {
972
972
  animateToZoom(e, t = 500) {
973
973
  const o = this.model;
974
974
  let s = { zoom: o.zoom }, n = { zoom: e };
975
- const r = this, i = (a) => {
976
- if (ze = window.requestAnimationFrame(i), !o.animating) {
977
- window.cancelAnimationFrame(ze);
975
+ const r = this, a = (i) => {
976
+ if (_e = window.requestAnimationFrame(a), !o.animating) {
977
+ window.cancelAnimationFrame(_e);
978
978
  return;
979
979
  }
980
- we.update(a);
980
+ Be.update(i);
981
981
  };
982
- ke && ke.stop && (ke.stop(), ke = null), r.setProperty("animating", !0), ke = new we.Tween(s).to(n, t).delay(0).onUpdate(function(a) {
983
- let c = parseInt(a.zoom);
982
+ Ie && Ie.stop && (Ie.stop(), Ie = null), r.setProperty("animating", !0), Ie = new Be.Tween(s).to(n, t).delay(0).onUpdate(function(i) {
983
+ let c = parseInt(i.zoom);
984
984
  c !== o.zoom && r.setZoom(c);
985
- }).onComplete(function(a) {
986
- let c = parseInt(a.zoom);
987
- window.cancelAnimationFrame(ze), ze = null, r.setZoom(c), r.setProperty("animating", !1);
988
- }).start(), i();
985
+ }).onComplete(function(i) {
986
+ let c = parseInt(i.zoom);
987
+ window.cancelAnimationFrame(_e), _e = null, r.setZoom(c), r.setProperty("animating", !1);
988
+ }).start(), a();
989
989
  },
990
990
  /**
991
991
  * Initializes the zoom when a new image is loaded
@@ -993,11 +993,11 @@ const Us = {
993
993
  */
994
994
  initZoomFromElement(e) {
995
995
  const o = f().id, s = {};
996
- Object.keys(le).forEach((c) => {
997
- s[c] = le[c];
996
+ Object.keys(de).forEach((c) => {
997
+ s[c] = de[c];
998
998
  });
999
- const n = Qe.newRectFromElement(e), r = new fe(n.width, n.height), i = (r.width - r.shortDimension()) / 2, a = (r.height - r.shortDimension()) / 2;
1000
- s.id = o, s.imagePoint = new Z(i, a), s.imageSize = new fe(r.shortDimension(), r.shortDimension()), s.size = r, s.zoom = 0, this.$patch((c) => {
999
+ const n = et.newRectFromElement(e), r = new ge(n.width, n.height), a = (r.width - r.shortDimension()) / 2, i = (r.height - r.shortDimension()) / 2;
1000
+ s.id = o, s.imagePoint = new W(a, i), s.imageSize = new ge(r.shortDimension(), r.shortDimension()), s.size = r, s.zoom = 0, this.$patch((c) => {
1001
1001
  c.models[o] = { ...s };
1002
1002
  });
1003
1003
  },
@@ -1010,7 +1010,7 @@ const Us = {
1010
1010
  const t = this.model;
1011
1011
  if (!t) return;
1012
1012
  t.id;
1013
- const o = this.property("size"), s = this.property("imageSize"), n = et({
1013
+ const o = this.property("size"), s = this.property("imageSize"), n = st({
1014
1014
  point: e,
1015
1015
  size: o,
1016
1016
  newSize: s
@@ -1023,7 +1023,7 @@ const Us = {
1023
1023
  */
1024
1024
  setZoom(e) {
1025
1025
  if (e < 0 || e > 100 || !this.model) return;
1026
- const t = { ...this.model }, o = Xe({
1026
+ const t = { ...this.model }, o = Qe({
1027
1027
  imagePoint: t.imagePoint,
1028
1028
  imageSize: t.imageSize,
1029
1029
  maxDimension: t.maxDimension,
@@ -1044,15 +1044,15 @@ const Us = {
1044
1044
  if (!s) return;
1045
1045
  const n = s.zoom + o;
1046
1046
  if (n < 0 || n > 100) return;
1047
- const r = s.imageSize, i = zs({ event: e, element: t }), a = As({
1048
- origin: i,
1047
+ const r = s.imageSize, a = Fs({ event: e, element: t }), i = Vs({
1048
+ origin: a,
1049
1049
  imageSize: r
1050
- }), c = Xe({
1050
+ }), c = Qe({
1051
1051
  imagePoint: s.imagePoint,
1052
1052
  imageSize: r,
1053
1053
  maxDimension: s.maxDimension,
1054
- origin: i,
1055
- scaleByRatio: a,
1054
+ origin: a,
1055
+ scaleByRatio: i,
1056
1056
  size: s.size,
1057
1057
  zoom: n
1058
1058
  });
@@ -1069,7 +1069,7 @@ const Us = {
1069
1069
  //
1070
1070
  setZoomFromResize(e) {
1071
1071
  if (!this.model) return;
1072
- const t = { ...this.model }, o = new fe(e.width, e.height), s = Xe({
1072
+ const t = { ...this.model }, o = new ge(e.width, e.height), s = Qe({
1073
1073
  imagePoint: t.imagePoint,
1074
1074
  imageSize: t.imageSize,
1075
1075
  maxDimension: t.maxDimension,
@@ -1081,17 +1081,17 @@ const Us = {
1081
1081
  n.models[t.id] = { ...t, ...s };
1082
1082
  });
1083
1083
  }
1084
- }, ne = Ue({
1084
+ }, ne = Oe({
1085
1085
  storeId: "360-zoom",
1086
- defaultValues: le,
1087
- state: Vs,
1088
- getters: js,
1089
- actions: Us
1090
- }), Ls = {
1091
- ...It,
1086
+ defaultValues: de,
1087
+ state: $s,
1088
+ getters: Os,
1089
+ actions: Rs
1090
+ }), Ks = {
1092
1091
  ...wt,
1093
- ...le
1094
- }, f = he("360", {
1092
+ ...Bt,
1093
+ ...de
1094
+ }, f = ve("360", {
1095
1095
  state: () => ({
1096
1096
  id: 0,
1097
1097
  // Identifies the per-session bucket for stores keyed by basePoseId
@@ -1099,7 +1099,7 @@ const Us = {
1099
1099
  // fire on camera change. Set by init360Viewer from the loaded
1100
1100
  // pose entity.
1101
1101
  basePoseId: 0,
1102
- active: vt,
1102
+ active: yt,
1103
1103
  animate: !1,
1104
1104
  width: 0,
1105
1105
  models: {},
@@ -1113,7 +1113,7 @@ const Us = {
1113
1113
  return this.appPosesStore.loading;
1114
1114
  },
1115
1115
  changed(e) {
1116
- const t = $(), o = de();
1116
+ const t = R(), o = pe();
1117
1117
  return t.changed || o.changed;
1118
1118
  },
1119
1119
  isLoaded() {
@@ -1125,8 +1125,12 @@ const Us = {
1125
1125
  lockedModel(e) {
1126
1126
  return this.appLockedStore.getModel(e.id) || {};
1127
1127
  },
1128
+ isFrozen(e) {
1129
+ var t;
1130
+ return ((t = this.appFreezeStore) == null ? void 0 : t.isFrozen(e.basePoseId)) || !1;
1131
+ },
1128
1132
  propertyChangedById() {
1129
- return (e, t) => this.propertyById(e, t) !== Ls[t];
1133
+ return (e, t) => this.propertyById(e, t) !== Ks[t];
1130
1134
  },
1131
1135
  propertyById(e) {
1132
1136
  return (t, o, s = null) => {
@@ -1150,6 +1154,10 @@ const Us = {
1150
1154
  unlock(e) {
1151
1155
  e = e || this.id, this.appLockedStore.unlock({ poseId: e });
1152
1156
  },
1157
+ pokeFreeze() {
1158
+ var e;
1159
+ (e = this.appFreezeStore) == null || e.poke(this.basePoseId);
1160
+ },
1153
1161
  subscribe(e) {
1154
1162
  console.log("[360-store] subscribe called, bus:", e == null ? void 0 : e.__bus_id);
1155
1163
  const t = this;
@@ -1172,8 +1180,8 @@ const Us = {
1172
1180
  return e = Array.isArray(e) ? e : [e], e.includes(this.active);
1173
1181
  },
1174
1182
  init360Viewer({ response: e }) {
1175
- const t = e.entities, o = e.result, s = parseInt(o.poses[0]), n = t.poses[s], r = this.appSkinsStore.inaccessibleSkinIds, i = [], a = this.appSkinsStore.accessKeys, c = this.appSkinsStore.models, l = $(), d = j(), h = de(), g = ue(), k = oe(), I = M(), w = ve(), S = ne(), T = (n == null ? void 0 : n.basePoseId) ?? s;
1176
- if (this.basePoseId = T, l.initModel(T), d.initModel(s), h.initModel(T), k.initModel({
1183
+ const t = e.entities, o = e.result, s = parseInt(o.poses[0]), n = t.poses[s], r = this.appSkinsStore.inaccessibleSkinIds, a = [], i = this.appSkinsStore.accessKeys, c = this.appSkinsStore.models, l = R(), m = L(), h = pe(), g = me(), y = oe(), I = F(), w = Se(), k = ne(), T = (n == null ? void 0 : n.basePoseId) ?? s;
1184
+ if (this.basePoseId = T, l.initModel(T), m.initModel(s), h.initModel(T), y.initModel({
1177
1185
  id: s,
1178
1186
  cameraIds: n.cameraIds,
1179
1187
  uuid: n.uuid,
@@ -1182,24 +1190,24 @@ const Us = {
1182
1190
  }), I.initModel({
1183
1191
  id: s,
1184
1192
  skinId: parseInt(o.skins[0]),
1185
- censoredSkinIds: i,
1193
+ censoredSkinIds: a,
1186
1194
  inaccessibleSkinIds: r,
1187
1195
  renderCount: n.renderCount,
1188
1196
  skins: c,
1189
1197
  skinIds: n.skinIds,
1190
1198
  uuid: n.uuid,
1191
- accessKeys: a
1199
+ accessKeys: i
1192
1200
  }), w.initModel({
1193
1201
  id: s,
1194
- censoredSkinIds: i,
1202
+ censoredSkinIds: a,
1195
1203
  inaccessibleSkinIds: r,
1196
1204
  index: n.index,
1197
1205
  renderCount: n.renderCount
1198
- }), S.initModel(s), this.id = s, e.canonical) {
1199
- const _ = e.canonical;
1200
- w.setFrame(_.index, s), d.setSelectedBySlug(_.effect, s), I.setSelectedBySlug(_.skin, s);
1206
+ }), k.initModel(s), this.id = s, e.canonical) {
1207
+ const E = e.canonical;
1208
+ w.setFrame(E.index, s), m.setSelectedBySlug(E.effect, s), I.setSelectedBySlug(E.skin, s);
1201
1209
  }
1202
- k.setPropertyById(s, "ready", !0), g.loadPreview();
1210
+ y.setPropertyById(s, "ready", !0), g.loadPreview();
1203
1211
  },
1204
1212
  set360FromResponse(e) {
1205
1213
  this.models = { ...this.models, ...e };
@@ -1232,104 +1240,104 @@ const Us = {
1232
1240
  this._clearKineticTimer(), this._clearLockedTimer(), this.isKinetic = !1;
1233
1241
  }
1234
1242
  }
1235
- }), $s = "tool:switched", Os = "pose:viewed", Ns = "skin:changed", ft = /* @__PURE__ */ Object.assign({ "../i18n/en-US/index.js": () => import("./index-KyHJpw0b.js"), "../i18n/es/index.js": () => import("./index-M-P_KhqK.js") }), B = (e = "../i18n") => {
1236
- const t = gt(), o = E({}), s = m(() => t.lang.isoName || "en-US"), n = async () => {
1243
+ }), Ns = "tool:switched", qs = "pose:viewed", Zs = "skin:changed", vt = /* @__PURE__ */ Object.assign({ "../i18n/en-US/index.js": () => import("./index-DAAPXO2C.js"), "../i18n/es/index.js": () => import("./index-M-P_KhqK.js") }), B = (e = "../i18n") => {
1244
+ const t = St(), o = P({}), s = d(() => t.lang.isoName || "en-US"), n = async () => {
1237
1245
  const r = `${e}/${s.value}/index.js`;
1238
- if (ft[r])
1246
+ if (vt[r])
1239
1247
  try {
1240
- const i = await ft[r]();
1241
- i.default && Object.assign(o.value, i.default);
1242
- } catch (i) {
1243
- console.error(`Error loading i18n for ${s.value}`, i);
1248
+ const a = await vt[r]();
1249
+ a.default && Object.assign(o.value, a.default);
1250
+ } catch (a) {
1251
+ console.error(`Error loading i18n for ${s.value}`, a);
1244
1252
  }
1245
1253
  else
1246
1254
  console.error(`Module not found: ${r}`);
1247
1255
  };
1248
- return X(
1256
+ return Z(
1249
1257
  () => s.value,
1250
1258
  () => {
1251
1259
  n();
1252
1260
  },
1253
1261
  { immediate: !0 }
1254
- ), Kt(() => {
1262
+ ), Gt(() => {
1255
1263
  n();
1256
1264
  }), { lang: o };
1257
- }, F = ({ tab: e = St, store: t, options: o = [] }) => {
1258
- const s = Yt(), n = f(s), r = m({
1265
+ }, M = ({ tab: e = kt, store: t, options: o = [] }) => {
1266
+ const s = ts(), n = f(s), r = d({
1259
1267
  get: () => n.isExpanded(o),
1260
1268
  set: (c) => {
1261
1269
  c && n.setActive(e);
1262
1270
  }
1263
- }), i = m(() => t && t.changed);
1264
- return { click: () => n.setActive(e), expanded: r, selected: i };
1265
- }, Ks = v({
1271
+ }), a = d(() => t && t.changed);
1272
+ return { click: () => n.setActive(e), expanded: r, selected: a };
1273
+ }, Gs = v({
1266
1274
  name: "TsBrightnessTool",
1267
1275
  props: {
1268
1276
  noIcons: Boolean
1269
1277
  },
1270
1278
  setup(e, { slots: t, emit: o }) {
1271
- const s = f(), n = m(() => s.hasAccess("bct")), r = (l) => s.block(l), i = $(), a = m({
1272
- get: () => i.property("brightness"),
1273
- set: (l) => i.setProperty("brightness", l)
1279
+ const s = f(), n = d(() => s.hasAccess("bct")), r = (l) => s.block(l), a = R(), i = d({
1280
+ get: () => a.property("brightness"),
1281
+ set: (l) => a.setProperty("brightness", l)
1274
1282
  });
1275
1283
  function c() {
1276
1284
  const l = {
1277
1285
  class: "ts-brightness-tool",
1278
- modelValue: a.value,
1279
- "onUpdate:modelValue": (d) => a.value = d,
1286
+ modelValue: i.value,
1287
+ "onUpdate:modelValue": (m) => i.value = m,
1280
1288
  noicons: e.noIcons,
1281
1289
  hasAccess: n.value,
1282
1290
  onBlockAccess: r
1283
1291
  };
1284
- return u(De, l);
1292
+ return u(Pe, l);
1285
1293
  }
1286
1294
  return () => c();
1287
1295
  }
1288
- }), Rs = v({
1296
+ }), Ws = v({
1289
1297
  name: "TsContrastTool",
1290
1298
  props: {
1291
1299
  noIcons: Boolean
1292
1300
  },
1293
1301
  setup(e, { slots: t, emit: o }) {
1294
- const s = f(), n = m(() => s.hasAccess("cct")), r = (l) => s.block(l), i = $(), a = m({
1295
- get: () => i.property("contrast"),
1296
- set: (l) => i.setProperty("contrast", l)
1302
+ const s = f(), n = d(() => s.hasAccess("cct")), r = (l) => s.block(l), a = R(), i = d({
1303
+ get: () => a.property("contrast"),
1304
+ set: (l) => a.setProperty("contrast", l)
1297
1305
  });
1298
1306
  function c() {
1299
1307
  const l = {
1300
1308
  class: "ts-contrast-tool",
1301
- modelValue: a.value,
1302
- "onUpdate:modelValue": (d) => a.value = d,
1309
+ modelValue: i.value,
1310
+ "onUpdate:modelValue": (m) => i.value = m,
1303
1311
  noicons: e.noIcons,
1304
1312
  hasAccess: n.value,
1305
1313
  onBlockAccess: r,
1306
1314
  type: "contrast"
1307
1315
  };
1308
- return u(De, l);
1316
+ return u(Pe, l);
1309
1317
  }
1310
1318
  return () => c();
1311
1319
  }
1312
- }), qs = v({
1320
+ }), Hs = v({
1313
1321
  name: "TsSaturateTool",
1314
1322
  props: {
1315
1323
  noIcons: Boolean
1316
1324
  },
1317
1325
  setup(e, { slots: t, emit: o }) {
1318
- const s = f(), n = m(() => s.hasAccess("sct")), r = (l) => s.block(l), i = $(), a = m({
1319
- get: () => i.property("saturate"),
1320
- set: (l) => i.setProperty("saturate", l)
1326
+ const s = f(), n = d(() => s.hasAccess("sct")), r = (l) => s.block(l), a = R(), i = d({
1327
+ get: () => a.property("saturate"),
1328
+ set: (l) => a.setProperty("saturate", l)
1321
1329
  });
1322
1330
  function c() {
1323
1331
  const l = {
1324
1332
  class: "ts-saturate-tool",
1325
- modelValue: a.value,
1326
- "onUpdate:modelValue": (d) => a.value = d,
1333
+ modelValue: i.value,
1334
+ "onUpdate:modelValue": (m) => i.value = m,
1327
1335
  noicons: e.noIcons,
1328
1336
  hasAccess: n.value,
1329
1337
  onBlockAccess: r,
1330
1338
  type: "saturate"
1331
1339
  };
1332
- return u(De, l);
1340
+ return u(Pe, l);
1333
1341
  }
1334
1342
  return () => c();
1335
1343
  }
@@ -1337,35 +1345,35 @@ const Us = {
1337
1345
  name: "TsAdjustmentSection",
1338
1346
  setup(e, { slots: t, emit: o }) {
1339
1347
  function s() {
1340
- return [u(Ks), u(Rs), u(qs)];
1348
+ return [u(Gs), u(Ws), u(Hs)];
1341
1349
  }
1342
1350
  return () => s();
1343
1351
  }
1344
- }), Zs = v({
1352
+ }), Xs = v({
1345
1353
  name: "TsAdjustmentExpansion",
1346
1354
  setup(e, { slots: t, emit: o }) {
1347
- const s = $(), { expanded: n, selected: r } = F({
1355
+ const s = R(), { expanded: n, selected: r } = M({
1348
1356
  store: s,
1349
- tab: Je,
1350
- options: [Je, yt, kt]
1351
- }), { lang: i } = B(), a = m(() => {
1357
+ tab: tt,
1358
+ options: [tt, bt, It]
1359
+ }), { lang: a } = B(), i = d(() => {
1352
1360
  var l;
1353
- return (l = i.value.ts) == null ? void 0 : l.controls.adjustments.title;
1361
+ return (l = a.value.ts) == null ? void 0 : l.controls.adjustments.title;
1354
1362
  });
1355
1363
  function c() {
1356
1364
  const l = {
1357
1365
  class: "ts-adjustment-expansion",
1358
1366
  modelValue: n.value,
1359
- "onUpdate:modelValue": (d) => n.value = d,
1360
- label: a.value,
1367
+ "onUpdate:modelValue": (m) => n.value = m,
1368
+ label: i.value,
1361
1369
  selected: r.value,
1362
1370
  icon: "f_brightness"
1363
1371
  };
1364
- return u(ge, l, () => u(Ct));
1372
+ return u(fe, l, () => u(Ct));
1365
1373
  }
1366
1374
  return () => c();
1367
1375
  }
1368
- }), Le = v({
1376
+ }), Re = v({
1369
1377
  name: "LockedOverlay",
1370
1378
  props: {
1371
1379
  label: { type: String, required: !1 }
@@ -1373,49 +1381,61 @@ const Us = {
1373
1381
  emits: ["click", "update:modelValue"],
1374
1382
  setup(e, { slots: t, emit: o }) {
1375
1383
  const s = f(), { isLocked: n, lockedModal: r } = b(s);
1376
- function i() {
1377
- return tt(u("div", {
1384
+ function a() {
1385
+ return Le(u("div", {
1378
1386
  class: "locked-overlay",
1379
1387
  onClick: () => r.value = !0
1380
- }, []), [[ht, n.value]]);
1388
+ }, []), [[ot, n.value]]);
1381
1389
  }
1382
- return () => i();
1390
+ return () => a();
1391
+ }
1392
+ }), it = v({
1393
+ name: "FrozenOverlay",
1394
+ setup() {
1395
+ const e = f(), { isFrozen: t } = b(e);
1396
+ function o() {
1397
+ return Le(u("div", {
1398
+ class: "frozen-overlay",
1399
+ onClick: () => e.pokeFreeze()
1400
+ }, []), [[ot, t.value]]);
1401
+ }
1402
+ return () => o();
1383
1403
  }
1384
- }), Dt = v({
1404
+ }), Pt = v({
1385
1405
  name: "TsCameraSection",
1386
1406
  setup(e, { slots: t, emit: o }) {
1387
- const s = f(), n = Symbol.for("CameraSection"), r = ee(n);
1388
- function i() {
1389
- const a = {
1407
+ const s = f(), n = Symbol.for("CameraSection"), r = G(n);
1408
+ function a() {
1409
+ const i = {
1390
1410
  class: "ts-camera-section"
1391
1411
  }, c = [];
1392
- return c.push(u(Le)), r && c.push(u(r, { id: s.id })), u("div", a, c);
1412
+ return c.push(u(Re)), c.push(u(it)), r && c.push(u(r, { id: s.id })), u("div", i, c);
1393
1413
  }
1394
- return () => i();
1414
+ return () => a();
1395
1415
  }
1396
- }), Gs = v({
1416
+ }), Ys = v({
1397
1417
  name: "TsRelatedExpansion",
1398
1418
  setup(e, { slots: t, emit: o }) {
1399
- const { lang: s } = B(), { expanded: n } = F({
1400
- options: Y,
1401
- tab: Y
1402
- }), r = m(() => {
1403
- var a;
1404
- return (a = s.value.ts) == null ? void 0 : a.controls.camera.title;
1419
+ const { lang: s } = B(), { expanded: n } = M({
1420
+ options: J,
1421
+ tab: J
1422
+ }), r = d(() => {
1423
+ var i;
1424
+ return (i = s.value.ts) == null ? void 0 : i.controls.camera.title;
1405
1425
  });
1406
- function i() {
1407
- const a = {
1426
+ function a() {
1427
+ const i = {
1408
1428
  class: "ts-camera-expansion",
1409
1429
  modelValue: n.value,
1410
1430
  "onUpdate:modelValue": (c) => n.value = c,
1411
1431
  label: r.value,
1412
1432
  icon: "f_camera_angle"
1413
1433
  };
1414
- return u(ge, a, () => u(Dt));
1434
+ return u(fe, i, () => u(Pt));
1415
1435
  }
1416
- return () => i();
1436
+ return () => a();
1417
1437
  }
1418
- }), Ws = v({
1438
+ }), Qs = v({
1419
1439
  name: "TsEffectsButton",
1420
1440
  props: {
1421
1441
  id: Number,
@@ -1425,36 +1445,36 @@ const Us = {
1425
1445
  },
1426
1446
  emits: ["click", "update:modelValue"],
1427
1447
  setup(e, { slots: t, emit: o }) {
1428
- const s = f(), n = oe(), r = M(), i = ue(), a = j(), { getThumbnail: c } = Be(), { id: l } = b(a), { color: d } = b(s), { skinId: h, slug: g } = b(r), k = m(() => n.property("setUuid"));
1429
- m(() => r.getPropertyByImageSet(
1448
+ const s = f(), n = oe(), r = F(), a = me(), i = L(), { getThumbnail: c } = xe(), { id: l } = b(i), { color: m } = b(s), { skinId: h, slug: g } = b(r), y = d(() => n.property("setUuid"));
1449
+ d(() => r.getPropertyByImageSet(
1430
1450
  {
1431
1451
  id: s.id,
1432
1452
  skinId: h.value,
1433
1453
  effectId: e.id,
1434
- color: d.value
1454
+ color: m.value
1435
1455
  },
1436
1456
  "percent"
1437
- )), m(() => e.size === "sm" ? "64px" : "94px"), m(() => ({
1457
+ )), d(() => e.size === "sm" ? "64px" : "94px"), d(() => ({
1438
1458
  margin: "3px",
1439
1459
  marginBottom: e.size === "sm" ? "40px" : "30px"
1440
1460
  }));
1441
- const I = m(() => ({
1461
+ const I = d(() => ({
1442
1462
  margin: "3px",
1443
1463
  marginBottom: e.size === "sm" ? "40px" : "30px"
1444
1464
  })), w = (T) => {
1445
- a.setEffectId(T), i.loadSkin();
1465
+ i.setEffectId(T), a.loadSkin();
1446
1466
  };
1447
- function S() {
1467
+ function k() {
1448
1468
  const T = {
1449
1469
  class: "ts-effects-button",
1450
1470
  label: e.label,
1451
1471
  key: e.id,
1452
1472
  size: e.size,
1453
1473
  image: c({
1454
- uuid: k.value,
1474
+ uuid: y.value,
1455
1475
  image: g.value,
1456
1476
  effect: e.slug,
1457
- color: d.value
1477
+ color: m.value
1458
1478
  }),
1459
1479
  onClick: () => w(e.id),
1460
1480
  selected: l.value === e.id,
@@ -1463,11 +1483,11 @@ const Us = {
1463
1483
  type: "radio",
1464
1484
  style: I.value
1465
1485
  };
1466
- return u(te, T);
1486
+ return u(H, T);
1467
1487
  }
1468
- return () => S();
1488
+ return () => k();
1469
1489
  }
1470
- }), Pt = v({
1490
+ }), zt = v({
1471
1491
  name: "TsEffectsSection",
1472
1492
  props: {
1473
1493
  noWrap: Boolean,
@@ -1476,12 +1496,12 @@ const Us = {
1476
1496
  },
1477
1497
  emits: ["click", "update:modelValue"],
1478
1498
  setup(e, { slots: t, emit: o }) {
1479
- const s = j(), { effects: n } = b(s);
1499
+ const s = L(), { effects: n } = b(s);
1480
1500
  function r() {
1481
- const i = [];
1482
- return i.push(u(Le)), n.value.forEach((c) => {
1483
- i.push(
1484
- u(Ws, {
1501
+ const a = [];
1502
+ return a.push(u(Re)), a.push(u(it)), n.value.forEach((c) => {
1503
+ a.push(
1504
+ u(Qs, {
1485
1505
  id: c.id,
1486
1506
  label: c.name,
1487
1507
  slug: c.slug,
@@ -1491,85 +1511,85 @@ const Us = {
1491
1511
  label: c.name
1492
1512
  })
1493
1513
  );
1494
- }), u(nt, {}, () => i);
1514
+ }), u(at, {}, () => a);
1495
1515
  }
1496
1516
  return () => r();
1497
1517
  }
1498
- }), Hs = v({
1518
+ }), Js = v({
1499
1519
  name: "TsEffectsExpansion",
1500
1520
  setup(e, { slots: t, emit: o }) {
1501
- const { lang: s } = B(), n = j(), { selected: r } = b(n), { expanded: i } = F({
1521
+ const { lang: s } = B(), n = L(), { selected: r } = b(n), { expanded: a } = M({
1502
1522
  store: n,
1503
- options: Q,
1504
- tab: Q
1505
- }), a = m(() => {
1523
+ options: ee,
1524
+ tab: ee
1525
+ }), i = d(() => {
1506
1526
  var l;
1507
1527
  return (l = s.value.ts) == null ? void 0 : l.controls.effects.title;
1508
1528
  });
1509
1529
  function c() {
1510
1530
  const l = {
1511
1531
  class: "ts-effects-expansion",
1512
- modelValue: i.value,
1513
- "onUpdate:modelValue": (d) => i.value = d,
1514
- label: a.value,
1532
+ modelValue: a.value,
1533
+ "onUpdate:modelValue": (m) => a.value = m,
1534
+ label: i.value,
1515
1535
  selected: r.value,
1516
1536
  icon: "f_contrast"
1517
1537
  };
1518
1538
  return u(
1519
- ge,
1539
+ fe,
1520
1540
  l,
1521
- () => u(Pt, { noWrap: !1, size: "sm", class: "q-py-sm" })
1541
+ () => u(zt, { noWrap: !1, size: "sm", class: "q-py-sm" })
1522
1542
  );
1523
1543
  }
1524
1544
  return () => c();
1525
1545
  }
1526
- }), Bt = v({
1546
+ }), xt = v({
1527
1547
  name: "TsGridTool",
1528
1548
  props: {
1529
1549
  noIcons: Boolean
1530
1550
  },
1531
1551
  emits: ["input"],
1532
1552
  setup(e, { slots: t, emit: o }) {
1533
- const s = de(), n = f(), r = m(() => n.hasAccess("grd")), i = (g) => n.block(g), a = m({
1553
+ const s = pe(), n = f(), r = d(() => n.hasAccess("grd")), a = (g) => n.block(g), i = d({
1534
1554
  get: () => s.property("spacing"),
1535
1555
  set: (g) => s.setProperty("spacing", g)
1536
- }), c = m({
1556
+ }), c = d({
1537
1557
  get: () => s.property("vertical"),
1538
1558
  set: (g) => s.setProperty("vertical", g)
1539
- }), l = m({
1559
+ }), l = d({
1540
1560
  get: () => s.property("horizontal"),
1541
1561
  set: (g) => s.setProperty("horizontal", g)
1542
- }), d = m({
1562
+ }), m = d({
1543
1563
  get: () => s.property("visible"),
1544
1564
  set: (g) => s.setProperty("visible", g)
1545
1565
  });
1546
1566
  function h() {
1547
1567
  const g = {
1548
1568
  class: "ts-grid-tool",
1549
- visible: d.value,
1550
- "onUpdate:visible": (k) => d.value = k,
1551
- lines: a.value,
1552
- "onUpdate:lines": (k) => a.value = k,
1569
+ visible: m.value,
1570
+ "onUpdate:visible": (y) => m.value = y,
1571
+ lines: i.value,
1572
+ "onUpdate:lines": (y) => i.value = y,
1553
1573
  vertical: c.value,
1554
- "onUpdate:vertical": (k) => c.value = k,
1574
+ "onUpdate:vertical": (y) => c.value = y,
1555
1575
  horizontal: l.value,
1556
- "onUpdate:horizontal": (k) => l.value = k,
1576
+ "onUpdate:horizontal": (y) => l.value = y,
1557
1577
  noIcons: e.noIcons,
1558
1578
  hasAccess: r.value,
1559
- onBlockAccess: i
1579
+ onBlockAccess: a
1560
1580
  };
1561
- return u(gs, g, () => []);
1581
+ return u(ks, g, () => []);
1562
1582
  }
1563
1583
  return () => h();
1564
1584
  }
1565
- }), Xs = v({
1585
+ }), eo = v({
1566
1586
  name: "TsGridExpansion",
1567
1587
  setup(e, { slots: t, emit: o }) {
1568
- const { lang: s } = B(), n = de(), { expanded: r, selected: i } = F({
1588
+ const { lang: s } = B(), n = pe(), { expanded: r, selected: a } = M({
1569
1589
  store: n,
1570
- options: J,
1571
- tab: J
1572
- }), a = m(() => {
1590
+ options: te,
1591
+ tab: te
1592
+ }), i = d(() => {
1573
1593
  var l;
1574
1594
  return (l = s.value.ts) == null ? void 0 : l.controls.grid.title;
1575
1595
  });
@@ -1577,19 +1597,19 @@ const Us = {
1577
1597
  const l = {
1578
1598
  class: "ts-grid-expansion",
1579
1599
  modelValue: r.value,
1580
- "onUpdate:modelValue": (d) => r.value = d,
1581
- label: a.value,
1582
- selected: i.value,
1600
+ "onUpdate:modelValue": (m) => r.value = m,
1601
+ label: i.value,
1602
+ selected: a.value,
1583
1603
  icon: "f_grid"
1584
1604
  };
1585
- return u(ge, l, () => u(Bt));
1605
+ return u(fe, l, () => u(xt));
1586
1606
  }
1587
1607
  return () => c();
1588
1608
  }
1589
- }), xt = v({
1609
+ }), Et = v({
1590
1610
  name: "TsRelatedSection",
1591
1611
  setup() {
1592
- const e = Symbol.for("RelatedSection"), t = ee(e);
1612
+ const e = Symbol.for("RelatedSection"), t = G(e);
1593
1613
  function o() {
1594
1614
  const s = {
1595
1615
  class: "ts-related-section q-mx-lg q-my-sm"
@@ -1598,29 +1618,62 @@ const Us = {
1598
1618
  }
1599
1619
  return () => o();
1600
1620
  }
1601
- }), Ys = v({
1621
+ }), to = v({
1602
1622
  name: "TsRelatedExpansion",
1603
1623
  setup(e, { slots: t, emit: o }) {
1604
- const { lang: s } = B(), { expanded: n } = F({
1605
- options: ce,
1606
- tab: ce
1607
- }), r = m(() => {
1608
- var a;
1609
- return (a = s.value.ts) == null ? void 0 : a.controls.related.title;
1624
+ const { lang: s } = B(), { expanded: n } = M({
1625
+ options: se,
1626
+ tab: se
1627
+ }), r = d(() => {
1628
+ var i;
1629
+ return (i = s.value.ts) == null ? void 0 : i.controls.related.title;
1610
1630
  });
1611
- function i() {
1612
- const a = {
1631
+ function a() {
1632
+ const i = {
1613
1633
  class: "ts-related-expansion",
1614
1634
  modelValue: n.value,
1615
1635
  "onUpdate:modelValue": (c) => n.value = c,
1616
1636
  label: r.value,
1617
1637
  icon: "f_related"
1618
1638
  };
1619
- return u(ge, a, () => u(xt));
1639
+ return u(fe, i, () => u(Et));
1620
1640
  }
1621
- return () => i();
1641
+ return () => a();
1622
1642
  }
1623
- }), Qs = Symbol.for("activity-tracking"), Js = v({
1643
+ }), At = v({
1644
+ name: "TsSavedSection",
1645
+ setup() {
1646
+ const e = Symbol.for("SavedSection"), t = G(e);
1647
+ function o() {
1648
+ return t ? u("div", {
1649
+ class: "ts-saved-section q-mx-lg q-my-sm"
1650
+ }, [u(t)]) : null;
1651
+ }
1652
+ return () => o();
1653
+ }
1654
+ }), so = v({
1655
+ name: "TsSavedExpansion",
1656
+ setup() {
1657
+ const { lang: e } = B(), { expanded: t } = M({
1658
+ options: ue,
1659
+ tab: ue
1660
+ }), o = d(() => {
1661
+ var n, r;
1662
+ return ((r = (n = e.value.ts) == null ? void 0 : n.controls.saved) == null ? void 0 : r.title) || "Saved";
1663
+ });
1664
+ function s() {
1665
+ const n = {
1666
+ class: "ts-saved-expansion",
1667
+ modelValue: t.value,
1668
+ "onUpdate:modelValue": (r) => t.value = r,
1669
+ label: o.value,
1670
+ icon: "f_save"
1671
+ };
1672
+ return u(fe, n, () => u(At));
1673
+ }
1674
+ return () => s();
1675
+ }
1676
+ }), oo = Symbol.for("activity-tracking"), no = v({
1624
1677
  name: "TsSkinLoadingButton",
1625
1678
  props: {
1626
1679
  dark: { type: Boolean, default: !0 },
@@ -1631,10 +1684,10 @@ const Us = {
1631
1684
  },
1632
1685
  emits: [],
1633
1686
  setup(e, { slots: t, emit: o }) {
1634
- const s = f(), n = oe(), r = M(), i = ue(), a = j(), c = ee(Qs, null), { getThumbnail: l } = Be(), { slug: d, id: h } = b(a), { color: g } = b(s), { skinId: k } = b(r), I = m(() => n.property("setUuid")), w = (A) => s.block(A), S = (A) => s.hasAccess(r.accessKeys[A]), T = (A) => {
1635
- r.setProperty("skinId", A), i.loadSkin(), c == null || c.trackEvent(Ns, { value: e.slug });
1636
- }, _ = (A) => {
1637
- switch (A) {
1687
+ const s = f(), n = oe(), r = F(), a = me(), i = L(), c = G(oo, null), { getThumbnail: l } = xe(), { slug: m, id: h } = b(i), { color: g } = b(s), { skinId: y } = b(r), I = d(() => n.property("setUuid")), w = (z) => s.block(z), k = (z) => s.hasAccess(r.accessKeys[z]), T = (z) => {
1688
+ r.setProperty("skinId", z), a.loadSkin(), c == null || c.trackEvent(Zs, { value: e.slug });
1689
+ }, E = (z) => {
1690
+ switch (z) {
1638
1691
  case "nude":
1639
1692
  return "snd";
1640
1693
  case "muscle":
@@ -1647,15 +1700,15 @@ const Us = {
1647
1700
  return "snl";
1648
1701
  }
1649
1702
  };
1650
- m(() => e.size === "sm" ? "64px" : "94px"), m(() => ({
1703
+ d(() => e.size === "sm" ? "64px" : "94px"), d(() => ({
1651
1704
  margin: "3px",
1652
1705
  marginBottom: e.size === "sm" ? "40px" : "30px"
1653
1706
  }));
1654
- const z = m(() => ({
1707
+ const _ = d(() => ({
1655
1708
  margin: "3px",
1656
1709
  marginBottom: e.size === "sm" ? "40px" : "30px"
1657
1710
  }));
1658
- m(() => r.getPropertyByImageSet(
1711
+ d(() => r.getPropertyByImageSet(
1659
1712
  {
1660
1713
  id: s.id,
1661
1714
  skinId: e.id,
@@ -1664,90 +1717,90 @@ const Us = {
1664
1717
  },
1665
1718
  "percent"
1666
1719
  ));
1667
- function O() {
1668
- const A = {
1720
+ function V() {
1721
+ const z = {
1669
1722
  class: `ts-${e.slug}-button ts-skin-button`,
1670
1723
  label: e.name,
1671
1724
  key: e.id,
1672
- access: _(e.slug),
1673
- style: z.value,
1725
+ access: E(e.slug),
1726
+ style: _.value,
1674
1727
  size: e.size,
1675
1728
  image: l({
1676
1729
  uuid: I.value,
1677
1730
  image: e.slug,
1678
- effect: d.value,
1731
+ effect: m.value,
1679
1732
  color: g.value
1680
1733
  }),
1681
1734
  onClick: () => T(e.id),
1682
- selected: k.value === e.id,
1735
+ selected: y.value === e.id,
1683
1736
  dark: !0,
1684
- hasAccess: S(e.id),
1737
+ hasAccess: k(e.id),
1685
1738
  onBlockAccess: w,
1686
1739
  type: "radio"
1687
1740
  };
1688
- return u(te, A);
1741
+ return u(H, z);
1689
1742
  }
1690
- return () => O();
1743
+ return () => V();
1691
1744
  }
1692
- }), Et = v({
1745
+ }), _t = v({
1693
1746
  name: "TsSkinSection",
1694
1747
  props: { noWrap: Boolean, size: { type: String, default: "sm" } },
1695
1748
  setup(e, {}) {
1696
- const t = M(), { skins: o } = b(t);
1749
+ const t = F(), { skins: o } = b(t);
1697
1750
  function s() {
1698
1751
  const n = [];
1699
- return n.push(u(Le)), o.value.forEach((r) => {
1700
- const i = {
1752
+ return n.push(u(Re)), n.push(u(it)), o.value.forEach((r) => {
1753
+ const a = {
1701
1754
  id: r.id,
1702
1755
  name: r.name,
1703
1756
  slug: r.slug,
1704
1757
  type: "radio",
1705
1758
  label: r.name
1706
1759
  };
1707
- n.push(u(Js, i));
1708
- }), u(nt, {}, () => n);
1760
+ n.push(u(no, a));
1761
+ }), u(at, {}, () => n);
1709
1762
  }
1710
1763
  return () => s();
1711
1764
  }
1712
- }), eo = v({
1765
+ }), ro = v({
1713
1766
  name: "TsSkinsExpansion",
1714
1767
  setup(e, { slots: t, emit: o }) {
1715
- const { lang: s } = B(), n = M(), { selected: r } = b(n), { expanded: i } = F({
1768
+ const { lang: s } = B(), n = F(), { selected: r } = b(n), { expanded: a } = M({
1716
1769
  store: n,
1717
- options: Ve,
1718
- tab: Ve
1719
- }), a = m(() => {
1770
+ options: Ue,
1771
+ tab: Ue
1772
+ }), i = d(() => {
1720
1773
  var l;
1721
1774
  return (l = s.value.ts) == null ? void 0 : l.controls.views.title;
1722
1775
  });
1723
1776
  function c() {
1724
1777
  const l = {
1725
1778
  class: "ts-skins-expansion",
1726
- modelValue: i.value,
1727
- "onUpdate:modelValue": (d) => i.value = d,
1728
- label: a.value,
1779
+ modelValue: a.value,
1780
+ "onUpdate:modelValue": (m) => a.value = m,
1781
+ label: i.value,
1729
1782
  selected: r.value,
1730
1783
  icon: "f_shirt"
1731
1784
  };
1732
1785
  return u(
1733
- ge,
1786
+ fe,
1734
1787
  l,
1735
- () => u(Et, { noWrap: !1, size: "lg", class: "q-py-sm" })
1788
+ () => u(_t, { noWrap: !1, size: "lg", class: "q-py-sm" })
1736
1789
  );
1737
1790
  }
1738
1791
  return () => c();
1739
1792
  }
1740
- }), zt = v({
1793
+ }), Mt = v({
1741
1794
  name: "TsPoseButtonsSection",
1742
1795
  setup(e, { slots: t, emit: o }) {
1743
- const s = Symbol.for("PoseButtonsSection"), n = ee(s), r = f();
1744
- function i() {
1745
- const a = [];
1746
- return n && a.push(u(n, { id: r.id })), a;
1796
+ const s = Symbol.for("PoseButtonsSection"), n = G(s), r = f();
1797
+ function a() {
1798
+ const i = [];
1799
+ return n && i.push(u(n, { id: r.id })), i;
1747
1800
  }
1748
- return () => i();
1801
+ return () => a();
1749
1802
  }
1750
- }), to = v({
1803
+ }), ao = v({
1751
1804
  name: "TsButtons",
1752
1805
  props: {
1753
1806
  bottom: {
@@ -1757,72 +1810,72 @@ const Us = {
1757
1810
  },
1758
1811
  emits: ["click", "update:modelValue"],
1759
1812
  setup(e, { slots: t, emit: o }) {
1760
- const { lang: s } = B(), n = f(), r = $(), i = j(), a = de(), c = M(), l = ve(), d = ne(), { active: h } = b(n), { changed: g } = b(r), { changed: k } = b(a), { changed: I } = b(c), { changed: w } = b(l), { changed: S } = b(d), { changed: T } = b(i);
1761
- m(() => {
1762
- var x;
1763
- return (x = s.value.ts) == null ? void 0 : x.buttons.done;
1813
+ const { lang: s } = B(), n = f(), r = R(), a = L(), i = pe(), c = F(), l = Se(), m = ne(), { active: h } = b(n), { changed: g } = b(r), { changed: y } = b(i), { changed: I } = b(c), { changed: w } = b(l), { changed: k } = b(m), { changed: T } = b(a);
1814
+ d(() => {
1815
+ var A;
1816
+ return (A = s.value.ts) == null ? void 0 : A.buttons.done;
1764
1817
  });
1765
- const _ = m(
1818
+ const E = d(
1766
1819
  () => {
1767
- var x, D;
1768
- return !e.bottom || h.value === dt ? (x = s.value.ts) == null ? void 0 : x.buttons.resetAll : (D = s.value.ts) == null ? void 0 : D.buttons.reset;
1820
+ var A, j;
1821
+ return !e.bottom || h.value === ft ? (A = s.value.ts) == null ? void 0 : A.buttons.resetAll : (j = s.value.ts) == null ? void 0 : j.buttons.reset;
1769
1822
  }
1770
1823
  );
1771
- m(
1772
- () => h.value === us || h.value === ce || !z.value
1824
+ d(
1825
+ () => h.value === fs || h.value === se || !_.value
1773
1826
  );
1774
- const z = m(
1775
- () => g.value || k.value || I.value || T.value || w.value || S.value
1776
- ), O = () => {
1777
- if (!e.bottom || h.value === dt)
1778
- return A();
1827
+ const _ = d(
1828
+ () => g.value || y.value || I.value || T.value || w.value || k.value
1829
+ ), V = () => {
1830
+ if (!e.bottom || h.value === ft)
1831
+ return z();
1779
1832
  switch (h.value) {
1780
- case Je:
1833
+ case tt:
1781
1834
  r.resetProperty("brightness");
1782
1835
  break;
1783
- case yt:
1836
+ case bt:
1784
1837
  r.resetProperty("contrast");
1785
1838
  break;
1786
- case J:
1787
- a.reset();
1839
+ case te:
1840
+ i.reset();
1788
1841
  break;
1789
- case kt:
1842
+ case It:
1790
1843
  r.resetProperty("saturate");
1791
1844
  break;
1792
- case ms:
1845
+ case gs:
1793
1846
  l.reset();
1794
1847
  break;
1795
- case Ve:
1848
+ case Ue:
1796
1849
  c.reset();
1797
1850
  break;
1798
- case Q:
1799
- i.reset();
1851
+ case ee:
1852
+ a.reset();
1800
1853
  break;
1801
- case ds:
1802
- d.reset();
1854
+ case hs:
1855
+ m.reset();
1803
1856
  break;
1804
1857
  }
1805
- }, A = () => {
1806
- r.reset(), a.reset(), c.reset(), l.reset(), d.reset(), i.reset();
1807
- }, G = (x) => x.preventDefault();
1808
- function N() {
1809
- const x = {
1858
+ }, z = () => {
1859
+ r.reset(), i.reset(), c.reset(), l.reset(), m.reset(), a.reset();
1860
+ }, Y = (A) => A.preventDefault();
1861
+ function K() {
1862
+ const A = {
1810
1863
  style: "position: fixed;bottom: 0; left: 0; right: 0;border-top: 1px solid var(--grey-300)",
1811
1864
  class: "row justify-center items-center q-pa-md glass-background"
1812
- }, D = {
1865
+ }, j = {
1813
1866
  class: "ts-reset-button",
1814
- label: _.value,
1815
- onClick: O,
1816
- onKeyup: G,
1867
+ label: E.value,
1868
+ onClick: V,
1869
+ onKeyup: Y,
1817
1870
  rounded: !0,
1818
1871
  unelevated: !0,
1819
1872
  outline: !0
1820
1873
  };
1821
- return u("div", x, [u(Qt, D)]);
1874
+ return u("div", A, [u(ss, j)]);
1822
1875
  }
1823
- return () => N();
1876
+ return () => K();
1824
1877
  }
1825
- }), so = v({
1878
+ }), io = v({
1826
1879
  name: "TsExpansions",
1827
1880
  setup(e, { slots: t, emit: o }) {
1828
1881
  function s() {
@@ -1831,117 +1884,119 @@ const Us = {
1831
1884
  onClick: (r) => r.stopPropagation(),
1832
1885
  style: "padding-bottom: 60px; position: relative "
1833
1886
  }, [
1834
- u(zt),
1835
- u(pe),
1887
+ u(Mt),
1888
+ u(ae),
1889
+ u(ro),
1890
+ u(ae),
1891
+ u(Js),
1892
+ u(ae),
1893
+ u(Ys),
1894
+ u(ae),
1836
1895
  u(eo),
1837
- u(pe),
1838
- u(Hs),
1839
- u(pe),
1840
- u(Gs),
1841
- u(pe),
1896
+ u(ae),
1842
1897
  u(Xs),
1843
- u(pe),
1844
- u(Zs),
1845
- u(pe),
1846
- u(Ys),
1847
- u(to)
1898
+ u(ae),
1899
+ u(to),
1900
+ u(ae),
1901
+ u(so),
1902
+ u(ao)
1848
1903
  ]);
1849
1904
  }
1850
1905
  return () => s();
1851
1906
  }
1852
- }), oo = v({
1907
+ }), co = v({
1853
1908
  name: "TsAdjustmentDrawer",
1854
1909
  setup(e, { slots: t, emit: o }) {
1855
- const { lang: s } = B(), n = m(() => {
1856
- var i;
1857
- return (i = s.value.ts) == null ? void 0 : i.controls.adjustments.title;
1910
+ const { lang: s } = B(), n = d(() => {
1911
+ var a;
1912
+ return (a = s.value.ts) == null ? void 0 : a.controls.adjustments.title;
1858
1913
  });
1859
1914
  function r() {
1860
- const i = {
1915
+ const a = {
1861
1916
  class: "ts-adjustment-drawer",
1862
- name: Ie,
1917
+ name: we,
1863
1918
  label: n.value
1864
1919
  };
1865
- return u(se, i, () => u(Ct));
1920
+ return u(X, a, () => u(Ct));
1866
1921
  }
1867
1922
  return () => r();
1868
1923
  }
1869
- }), no = v({
1924
+ }), lo = v({
1870
1925
  name: "TsCameraDrawer",
1871
1926
  setup(e, { slots: t, emit: o }) {
1872
- const { lang: s } = B(), n = m(() => {
1873
- var i;
1874
- return (i = s.value.ts) == null ? void 0 : i.controls.camera.title;
1927
+ const { lang: s } = B(), n = d(() => {
1928
+ var a;
1929
+ return (a = s.value.ts) == null ? void 0 : a.controls.camera.title;
1875
1930
  });
1876
1931
  function r() {
1877
- const i = {
1932
+ const a = {
1878
1933
  class: "ts-camera-drawer",
1879
- name: Y,
1934
+ name: J,
1880
1935
  label: n.value
1881
1936
  };
1882
- return u(se, i, () => u(Dt));
1937
+ return u(X, a, () => u(Pt));
1883
1938
  }
1884
1939
  return () => r();
1885
1940
  }
1886
- }), ro = v({
1941
+ }), uo = v({
1887
1942
  name: "TsSkinButton",
1888
1943
  emits: ["click"],
1889
1944
  setup(e, { slots: t, emit: o }) {
1890
- const s = M(), n = oe(), { lang: r } = B(), { getPoseThumbnail: i } = Be(), { click: a, selected: c } = F({
1945
+ const s = F(), n = oe(), { lang: r } = B(), { getPoseThumbnail: a } = xe(), { click: i, selected: c } = M({
1891
1946
  store: s,
1892
- options: Te,
1893
- tab: Te
1894
- }), l = m(() => n.property("uuid")), d = m(() => s.property("currentSlug")), h = m(() => {
1947
+ options: De,
1948
+ tab: De
1949
+ }), l = d(() => n.property("uuid")), m = d(() => s.property("currentSlug")), h = d(() => {
1895
1950
  if (l.value)
1896
- return i({ uuid: l.value, image: d.value });
1897
- }), g = m(() => {
1951
+ return a({ uuid: l.value, image: m.value });
1952
+ }), g = d(() => {
1898
1953
  var I;
1899
1954
  return (I = r.value.ts) == null ? void 0 : I.controls.skins.iconTitle;
1900
1955
  });
1901
- function k() {
1956
+ function y() {
1902
1957
  const I = {
1903
1958
  class: "ts-skin-button",
1904
1959
  image: h.value,
1905
1960
  key: g.value,
1906
1961
  label: g.value,
1907
1962
  selected: c.value,
1908
- "data-id": Te,
1909
- onClick: a,
1963
+ "data-id": De,
1964
+ onClick: i,
1910
1965
  type: "none"
1911
1966
  };
1912
- return u(te, I, () => []);
1967
+ return u(H, I, () => []);
1913
1968
  }
1914
- return () => k();
1969
+ return () => y();
1915
1970
  }
1916
- }), ao = v({
1971
+ }), mo = v({
1917
1972
  name: "TsGridButton",
1918
1973
  props: { size: String },
1919
1974
  setup(e, {}) {
1920
- const t = de(), o = f(), s = m(() => (o == null ? void 0 : o.hasAccess("grd")) || !1), { lang: n } = B(), r = m(() => {
1921
- var d;
1922
- return (d = n.value.ts) == null ? void 0 : d.controls.grid.iconTitle;
1923
- }), { click: i, selected: a } = F({
1975
+ const t = pe(), o = f(), s = d(() => (o == null ? void 0 : o.hasAccess("grd")) || !1), { lang: n } = B(), r = d(() => {
1976
+ var m;
1977
+ return (m = n.value.ts) == null ? void 0 : m.controls.grid.iconTitle;
1978
+ }), { click: a, selected: i } = M({
1924
1979
  store: t,
1925
- options: J,
1926
- tab: J
1980
+ options: te,
1981
+ tab: te
1927
1982
  });
1928
- function c(d) {
1929
- return o.block(d);
1983
+ function c(m) {
1984
+ return o.block(m);
1930
1985
  }
1931
1986
  function l() {
1932
- const d = {
1987
+ const m = {
1933
1988
  hasAccess: s.value,
1934
- selected: a.value,
1935
- onClick: i,
1989
+ selected: i.value,
1990
+ onClick: a,
1936
1991
  onBlockAccess: c,
1937
1992
  size: e.size,
1938
- "data-id": J,
1993
+ "data-id": te,
1939
1994
  name: "grid",
1940
1995
  type: "none",
1941
1996
  icon: "f_grid",
1942
1997
  label: r.value
1943
1998
  };
1944
- return u(te, d, () => []);
1999
+ return u(H, m, () => []);
1945
2000
  }
1946
2001
  return () => l();
1947
2002
  }
@@ -1952,162 +2007,197 @@ v({
1952
2007
  size: String
1953
2008
  },
1954
2009
  setup(e, { slots: t, emit: o }) {
1955
- const s = ne(), { click: n, selected: r } = F({
2010
+ const s = ne(), { click: n, selected: r } = M({
1956
2011
  store: s,
1957
- options: Ae,
1958
- tab: Ae
1959
- }), i = m(() => s.property("movable"));
1960
- function a() {
2012
+ options: Me,
2013
+ tab: Me
2014
+ }), a = d(() => s.property("movable"));
2015
+ function i() {
1961
2016
  const c = {
1962
2017
  name: "position",
1963
2018
  icon: "f_spin",
1964
2019
  selected: r.value,
1965
- show: i.value,
2020
+ show: a.value,
1966
2021
  size: e.size,
1967
- "data-id": Ae,
2022
+ "data-id": Me,
1968
2023
  onClick: n
1969
2024
  };
1970
- return u(bt, c, () => []);
2025
+ return u(Tt, c, () => []);
1971
2026
  }
1972
- return () => a();
2027
+ return () => i();
1973
2028
  }
1974
2029
  });
1975
- const io = v({
2030
+ const po = v({
1976
2031
  name: "TsAdjustmentsButton",
1977
2032
  props: { size: String },
1978
2033
  setup(e, {}) {
1979
- const t = $(), o = f(), { lang: s } = B(), n = m(() => {
1980
- var d;
1981
- return (d = s.value.ts) == null ? void 0 : d.controls.adjustments.iconTitle;
1982
- }), r = m(() => (o == null ? void 0 : o.hasAccess("bct")) || !1), { click: i, selected: a } = F({
2034
+ const t = R(), o = f(), { lang: s } = B(), n = d(() => {
2035
+ var m;
2036
+ return (m = s.value.ts) == null ? void 0 : m.controls.adjustments.iconTitle;
2037
+ }), r = d(() => (o == null ? void 0 : o.hasAccess("bct")) || !1), { click: a, selected: i } = M({
1983
2038
  store: t,
1984
- options: Ie,
1985
- tab: Ie
2039
+ options: we,
2040
+ tab: we
1986
2041
  });
1987
- function c(d) {
1988
- return o.block(d);
2042
+ function c(m) {
2043
+ return o.block(m);
1989
2044
  }
1990
2045
  function l() {
1991
- const d = {
2046
+ const m = {
1992
2047
  hasAccess: r.value,
1993
- selected: a.value,
1994
- onClick: i,
2048
+ selected: i.value,
2049
+ onClick: a,
1995
2050
  onBlockAccess: c,
1996
2051
  size: e.size,
1997
- "data-id": Ie,
2052
+ "data-id": we,
1998
2053
  name: "imageAdjustment",
1999
2054
  icon: "f_brightness",
2000
2055
  label: n.value,
2001
2056
  type: "none"
2002
2057
  };
2003
- return u(te, d, () => []);
2058
+ return u(H, m, () => []);
2004
2059
  }
2005
2060
  return () => l();
2006
2061
  }
2007
- }), co = v({
2062
+ }), fo = v({
2008
2063
  name: "TsAdjustmentsButton",
2009
2064
  props: { size: String },
2010
2065
  setup(e, {}) {
2011
2066
  const t = f();
2012
- m(() => (t == null ? void 0 : t.hasAccess("cau")) || !1);
2013
- const { lang: o } = B(), s = m(() => {
2014
- var a;
2015
- return (a = o.value.ts) == null ? void 0 : a.controls.camera.iconTitle;
2016
- }), { click: n, selected: r } = F({
2017
- options: Y,
2018
- tab: Y
2067
+ d(() => (t == null ? void 0 : t.hasAccess("cau")) || !1);
2068
+ const { lang: o } = B(), s = d(() => {
2069
+ var i;
2070
+ return (i = o.value.ts) == null ? void 0 : i.controls.camera.iconTitle;
2071
+ }), { click: n, selected: r } = M({
2072
+ options: J,
2073
+ tab: J
2019
2074
  });
2020
- function i() {
2021
- const a = {
2075
+ function a() {
2076
+ const i = {
2022
2077
  // hasAccess: hasAccess.value,
2023
2078
  selected: r.value,
2024
2079
  onClick: n,
2025
2080
  // onBlockAccess: block,
2026
2081
  size: e.size,
2027
2082
  name: "cameraAngle",
2028
- "data-id": Y,
2083
+ "data-id": J,
2029
2084
  icon: "f_camera_angle",
2030
2085
  type: "none",
2031
2086
  label: s.value
2032
2087
  };
2033
- return u(te, a, () => []);
2088
+ return u(H, i, () => []);
2034
2089
  }
2035
- return () => i();
2090
+ return () => a();
2036
2091
  }
2037
- });
2038
- v({
2039
- name: "TsAdjustmentsButton",
2092
+ }), ho = v({
2093
+ name: "TsRelatedButton",
2040
2094
  props: { size: String },
2041
- setup(e, {}) {
2042
- const t = f(), { lang: o } = B(), s = m(() => {
2043
- var l;
2044
- return (l = o.value.ts) == null ? void 0 : l.controls.related.title;
2045
- }), n = !0, { click: r, selected: i } = F({
2046
- options: ce,
2047
- tab: ce
2095
+ setup(e) {
2096
+ const t = f(), { lang: o } = B(), s = d(
2097
+ () => {
2098
+ var c, l;
2099
+ return ((l = (c = o.value.ts) == null ? void 0 : c.controls.related) == null ? void 0 : l.iconTitle) || "Related";
2100
+ }
2101
+ ), { click: n, selected: r } = M({
2102
+ options: se,
2103
+ tab: se
2048
2104
  });
2049
- function a(l) {
2050
- return t.block(l);
2105
+ function a(c) {
2106
+ return t.block(c);
2051
2107
  }
2052
- function c() {
2053
- const l = {
2054
- hasAccess: n.value,
2055
- selected: i.value,
2056
- onClick: r,
2108
+ function i() {
2109
+ const c = {
2110
+ hasAccess: !0,
2111
+ selected: r.value,
2112
+ onClick: n,
2057
2113
  onBlockAccess: a,
2058
- "data-id": ce,
2114
+ "data-id": se,
2059
2115
  size: e.size,
2060
2116
  name: "related",
2061
- type: "borderless",
2062
- lalbel: s.value
2117
+ icon: "f_related",
2118
+ type: "none",
2119
+ label: s.value
2063
2120
  };
2064
- return u(te, l, () => []);
2121
+ return u(H, c, () => []);
2065
2122
  }
2066
- return () => c();
2123
+ return () => i();
2067
2124
  }
2068
2125
  });
2069
2126
  v({
2070
2127
  name: "TsSettingsButton",
2071
2128
  props: { size: String },
2072
2129
  setup(e, {}) {
2073
- const t = f(), o = !0, { click: s, selected: n } = F({
2074
- options: He,
2075
- tab: He
2130
+ const t = f(), o = !0, { click: s, selected: n } = M({
2131
+ options: Ye,
2132
+ tab: Ye
2076
2133
  });
2077
- function r(a) {
2078
- return t.block(a);
2134
+ function r(i) {
2135
+ return t.block(i);
2079
2136
  }
2080
- function i() {
2081
- const a = {
2137
+ function a() {
2138
+ const i = {
2082
2139
  hasAccess: o.value,
2083
2140
  selected: n.value,
2084
2141
  onClick: s,
2085
2142
  onBlockAccess: r,
2086
2143
  size: e.size,
2087
- "data-id": He,
2144
+ "data-id": Ye,
2088
2145
  name: "settings",
2089
2146
  icon: "f_settings"
2090
2147
  };
2091
- return u(bt, a, () => []);
2148
+ return u(Tt, i, () => []);
2092
2149
  }
2093
- return () => i();
2150
+ return () => a();
2094
2151
  }
2095
2152
  });
2096
- const lo = v({
2153
+ const go = v({
2154
+ name: "TsSavedButton",
2155
+ props: { size: String },
2156
+ setup(e) {
2157
+ const t = f(), { lang: o } = B(), s = d(
2158
+ () => {
2159
+ var c, l;
2160
+ return ((l = (c = o.value.ts) == null ? void 0 : c.controls.saved) == null ? void 0 : l.iconTitle) || "Saved";
2161
+ }
2162
+ ), { click: n, selected: r } = M({
2163
+ options: ue,
2164
+ tab: ue
2165
+ });
2166
+ function a(c) {
2167
+ return t.block(c);
2168
+ }
2169
+ function i() {
2170
+ const c = {
2171
+ hasAccess: !0,
2172
+ selected: r.value,
2173
+ onClick: n,
2174
+ onBlockAccess: a,
2175
+ "data-id": ue,
2176
+ size: e.size,
2177
+ name: "saved",
2178
+ icon: "f_save",
2179
+ type: "none",
2180
+ label: s.value
2181
+ };
2182
+ return u(H, c, () => []);
2183
+ }
2184
+ return () => i();
2185
+ }
2186
+ }), vo = v({
2097
2187
  name: "TsSpinTool",
2098
2188
  props: {
2099
2189
  noIcons: Boolean
2100
2190
  },
2101
2191
  emits: ["click", "update:modelValue"],
2102
2192
  setup(e, { slots: t, emit: o }) {
2103
- const s = ve(), n = E(-1), r = m(() => s.property("animating", !1)), i = m(() => s.property("index"));
2104
- m(() => s.property("max"));
2105
- const a = m({
2193
+ const s = Se(), n = P(-1), r = d(() => s.property("animating", !1)), a = d(() => s.property("index"));
2194
+ d(() => s.property("max"));
2195
+ const i = d({
2106
2196
  get: () => r.value ? n.value : s.property("frame"),
2107
2197
  set: (l) => {
2108
- const d = Math.abs(n.value - l);
2109
- if (d !== 0) {
2110
- if (d > 1) {
2198
+ const m = Math.abs(n.value - l);
2199
+ if (m !== 0) {
2200
+ if (m > 1) {
2111
2201
  s.spinToFrame({
2112
2202
  value: l,
2113
2203
  duration: 250
@@ -2121,39 +2211,39 @@ const lo = v({
2121
2211
  function c() {
2122
2212
  const l = {
2123
2213
  class: "ts-spin-tool",
2124
- modelValue: a.value,
2125
- "onUpdate:modelValue": (d) => a.value = d,
2126
- initial: i.value,
2214
+ modelValue: i.value,
2215
+ "onUpdate:modelValue": (m) => i.value = m,
2216
+ initial: a.value,
2127
2217
  type: "spin",
2128
2218
  noIcons: e.noIcons
2129
2219
  };
2130
- return u(De, l);
2220
+ return u(Pe, l);
2131
2221
  }
2132
2222
  return () => c();
2133
2223
  }
2134
- }), uo = v({
2224
+ }), So = v({
2135
2225
  name: "TsZoomTool",
2136
2226
  props: {
2137
2227
  noIcons: Boolean
2138
2228
  },
2139
2229
  emits: ["click", "onUpdate:modelValue"],
2140
2230
  setup(e, { slots: t, emit: o }) {
2141
- const s = ne(), n = E(-1), r = m({
2231
+ const s = ne(), n = P(-1), r = d({
2142
2232
  get: () => s.property("zoom") || 1,
2143
- set: (a) => {
2144
- const c = Math.abs(n.value - a);
2233
+ set: (i) => {
2234
+ const c = Math.abs(n.value - i);
2145
2235
  if (c !== 0) {
2146
2236
  if (c > 1) {
2147
2237
  const l = c * 4;
2148
- s.setZoom(a, l), n.value = a;
2238
+ s.setZoom(i, l), n.value = i;
2149
2239
  return;
2150
2240
  }
2151
- s.setZoom(a), n.value = a;
2241
+ s.setZoom(i), n.value = i;
2152
2242
  }
2153
2243
  }
2154
2244
  });
2155
- function i() {
2156
- const a = {
2245
+ function a() {
2246
+ const i = {
2157
2247
  class: "ts-zoom-tool",
2158
2248
  modelValue: r.value,
2159
2249
  "onUpdate:modelValue": (c) => r.value = c,
@@ -2161,18 +2251,18 @@ const lo = v({
2161
2251
  type: "zoom",
2162
2252
  noIcons: e.noIcons
2163
2253
  };
2164
- return u(De, a);
2254
+ return u(Pe, i);
2165
2255
  }
2166
- return () => i();
2256
+ return () => a();
2167
2257
  }
2168
- }), mo = v({
2258
+ }), yo = v({
2169
2259
  name: "TsPositionTool",
2170
2260
  setup(e, { slots: t, emit: o }) {
2171
2261
  function s() {
2172
2262
  return [
2173
- u(Le),
2174
- u(uo),
2175
- u(lo)
2263
+ u(Re),
2264
+ u(So),
2265
+ u(vo)
2176
2266
  // h(Transition, { name: 'slide-fade' }, () => [
2177
2267
  // withDirectives(
2178
2268
  // h('div', { class: 'ts-position-move-holder' }, h(TsMoveTool)),
@@ -2187,292 +2277,311 @@ const lo = v({
2187
2277
  v({
2188
2278
  name: "TsPositionDrawer",
2189
2279
  setup(e, { slots: t, emit: o }) {
2190
- const { lang: s } = B(), n = m(() => {
2191
- var i;
2192
- return (i = s.value.ts) == null ? void 0 : i.controls.positionPose.title;
2280
+ const { lang: s } = B(), n = d(() => {
2281
+ var a;
2282
+ return (a = s.value.ts) == null ? void 0 : a.controls.positionPose.title;
2193
2283
  });
2194
2284
  function r() {
2195
- const i = {
2285
+ const a = {
2196
2286
  class: "ts-position-drawer",
2197
- name: Ae,
2287
+ name: Me,
2198
2288
  label: n.value
2199
2289
  };
2200
- return u(se, i, () => u(mo));
2290
+ return u(X, a, () => u(yo));
2201
2291
  }
2202
2292
  return () => r();
2203
2293
  }
2204
2294
  });
2205
- const po = v({
2295
+ const ko = v({
2206
2296
  name: "TsSkinButton",
2207
2297
  emits: ["click"],
2208
2298
  setup(e, { slots: t, emit: o }) {
2209
- const s = f(), n = M(), r = j(), i = oe(), { lang: a } = B(), { getPoseThumbnail: c } = Be(), { click: l, selected: d } = F({
2299
+ const s = f(), n = F(), r = L(), a = oe(), { lang: i } = B(), { getPoseThumbnail: c } = xe(), { click: l, selected: m } = M({
2210
2300
  store: r,
2211
- options: Q,
2212
- tab: Q
2213
- }), h = m(() => {
2214
- var S;
2215
- return (S = a.value.ts) == null ? void 0 : S.controls.effects.iconTitle;
2216
- }), g = m(() => i.property("uuid")), k = m(() => n.property("currentSlug"));
2217
- m(() => r.id === 3 ? "negative" : "silhouette"), m(() => r.id === 3 ? s.color : s.backgroundColor);
2218
- const I = m(() => {
2301
+ options: ee,
2302
+ tab: ee
2303
+ }), h = d(() => {
2304
+ var k;
2305
+ return (k = i.value.ts) == null ? void 0 : k.controls.effects.iconTitle;
2306
+ }), g = d(() => a.property("uuid")), y = d(() => n.property("currentSlug"));
2307
+ d(() => r.id === 3 ? "negative" : "silhouette"), d(() => r.id === 3 ? s.color : s.backgroundColor);
2308
+ const I = d(() => {
2219
2309
  if (g.value)
2220
2310
  return c({
2221
2311
  uuid: g.value,
2222
- image: k.value,
2312
+ image: y.value,
2223
2313
  effect: "negative",
2224
2314
  color: "000000"
2225
2315
  });
2226
2316
  });
2227
2317
  function w() {
2228
- const S = {
2318
+ const k = {
2229
2319
  class: "ts-effects-button",
2230
2320
  image: I.value,
2231
2321
  key: h.value,
2232
2322
  label: h.value,
2233
2323
  type: "none",
2234
- selected: d.value,
2235
- "data-id": Q,
2324
+ selected: m.value,
2325
+ "data-id": ee,
2236
2326
  onClick: l
2237
2327
  };
2238
- return u(te, S, () => []);
2328
+ return u(H, k, () => []);
2239
2329
  }
2240
2330
  return () => w();
2241
2331
  }
2242
- }), fo = v({
2332
+ }), bo = v({
2243
2333
  name: "TsDefaultDrawer",
2244
2334
  props: {},
2245
2335
  emits: ["click"],
2246
2336
  setup(e, { slots: t, emit: o }) {
2247
2337
  const s = f(), n = "q-ma-xs";
2248
- function r(i) {
2338
+ function r(a) {
2249
2339
  return {
2250
2340
  class: n,
2251
2341
  size: "sm",
2252
- onClick: () => s.setActive(i)
2342
+ onClick: () => s.setActive(a)
2253
2343
  };
2254
2344
  }
2255
2345
  return () => u(
2256
- se,
2257
- { name: vt },
2346
+ X,
2347
+ { name: yt },
2258
2348
  {
2259
- default: () => u(nt, {}, () => [
2260
- u(ro, r(Te)),
2261
- u(po, r(Q)),
2262
- u(co, r(Y)),
2263
- u(ao, r(J)),
2349
+ default: () => u(at, {}, () => [
2350
+ u(uo, r(De)),
2351
+ u(ko, r(ee)),
2352
+ u(fo, r(J)),
2353
+ u(mo, r(te)),
2264
2354
  // h(TsPositionButton, getButtonData(POSITION)),
2265
- u(io, r(Ie))
2266
- // h(TsRelatedButton, getButtonData(RELATED)),
2355
+ u(po, r(we)),
2356
+ u(ho, r(se)),
2357
+ u(go, r(ue))
2267
2358
  // h(TsSettingsButton, getButtonData(SETTINGS)),
2268
2359
  ]),
2269
- secondary: () => u(zt, {})
2360
+ secondary: () => u(Mt, {})
2270
2361
  }
2271
2362
  );
2272
2363
  }
2273
- }), ho = v({
2364
+ }), Io = v({
2274
2365
  name: "TsGridDrawer",
2275
2366
  setup(e, { slots: t, emit: o }) {
2276
- const { lang: s } = B(), n = m(() => {
2277
- var i;
2278
- return (i = s.value.ts) == null ? void 0 : i.controls.grid.title;
2367
+ const { lang: s } = B(), n = d(() => {
2368
+ var a;
2369
+ return (a = s.value.ts) == null ? void 0 : a.controls.grid.title;
2279
2370
  });
2280
2371
  function r() {
2281
- const i = {
2372
+ const a = {
2282
2373
  class: "ts-grid-drawer",
2283
- name: J,
2374
+ name: te,
2284
2375
  label: n.value
2285
2376
  };
2286
- return u(se, i, () => u(Bt));
2377
+ return u(X, a, () => u(xt));
2287
2378
  }
2288
2379
  return () => r();
2289
2380
  }
2290
- }), go = v({
2381
+ }), To = v({
2291
2382
  name: "TsRelatedDrawer",
2292
2383
  setup(e, { slots: t, emit: o }) {
2293
- const { lang: s } = B(), n = m(() => {
2294
- var i;
2295
- return (i = s.value.ts) == null ? void 0 : i.controls.related.title;
2384
+ const { lang: s } = B(), n = d(() => {
2385
+ var a;
2386
+ return (a = s.value.ts) == null ? void 0 : a.controls.related.title;
2296
2387
  });
2297
2388
  function r() {
2298
- const i = {
2389
+ const a = {
2299
2390
  class: "ts-related-drawer",
2300
- name: ce,
2391
+ name: se,
2301
2392
  label: n.value
2302
2393
  };
2303
- return u(se, i, () => u(xt));
2394
+ return u(X, a, () => u(Et));
2304
2395
  }
2305
2396
  return () => r();
2306
2397
  }
2307
- }), vo = v({
2398
+ }), wo = v({
2399
+ name: "TsSavedDrawer",
2400
+ setup() {
2401
+ const { lang: e } = B(), t = d(() => {
2402
+ var s, n;
2403
+ return ((n = (s = e.value.ts) == null ? void 0 : s.controls.saved) == null ? void 0 : n.title) || "Saved";
2404
+ });
2405
+ function o() {
2406
+ const s = {
2407
+ class: "ts-saved-drawer",
2408
+ name: ue,
2409
+ label: t.value
2410
+ };
2411
+ return u(X, s, () => u(At));
2412
+ }
2413
+ return () => o();
2414
+ }
2415
+ }), Do = v({
2308
2416
  name: "TsSkinDrawer",
2309
2417
  setup(e, { slots: t, emit: o }) {
2310
- const { lang: s } = B(), n = m(() => {
2311
- var i;
2312
- return (i = s.value.ts) == null ? void 0 : i.controls.skins.title;
2418
+ const { lang: s } = B(), n = d(() => {
2419
+ var a;
2420
+ return (a = s.value.ts) == null ? void 0 : a.controls.skins.title;
2313
2421
  });
2314
2422
  function r() {
2315
- const i = {
2423
+ const a = {
2316
2424
  class: "ts-skin-drawer",
2317
- name: Te,
2425
+ name: De,
2318
2426
  label: n.value
2319
2427
  };
2320
- return u(se, i, () => u(Et));
2428
+ return u(X, a, () => u(_t));
2321
2429
  }
2322
2430
  return () => r();
2323
2431
  }
2324
- }), So = v({
2432
+ }), Bo = v({
2325
2433
  name: "TsEffectsDrawer",
2326
2434
  setup(e, { slots: t, emit: o }) {
2327
- const { lang: s } = B(), n = m(() => {
2328
- var i;
2329
- return (i = s.value.ts) == null ? void 0 : i.controls.effects.title;
2435
+ const { lang: s } = B(), n = d(() => {
2436
+ var a;
2437
+ return (a = s.value.ts) == null ? void 0 : a.controls.effects.title;
2330
2438
  });
2331
2439
  function r() {
2332
- const i = {
2440
+ const a = {
2333
2441
  class: "ts-effects-drawer",
2334
- name: Q,
2442
+ name: ee,
2335
2443
  label: n.value
2336
2444
  };
2337
- return u(se, i, () => u(Pt, { size: "sm" }));
2445
+ return u(X, a, () => u(zt, { size: "sm" }));
2338
2446
  }
2339
2447
  return () => r();
2340
2448
  }
2341
- }), yo = v({
2449
+ }), Co = v({
2342
2450
  name: "TsDrawers",
2343
2451
  setup(e, { slots: t, emit: o }) {
2344
2452
  const s = f(), { active: n } = b(s);
2345
2453
  function r() {
2346
- const i = {
2454
+ const a = {
2347
2455
  modelValue: n.value,
2348
- "onUpdate:modelValue": (a) => n.value = a
2456
+ "onUpdate:modelValue": (i) => n.value = i
2349
2457
  };
2350
- return u(vs, i, () => [
2351
- u(fo),
2352
- u(vo),
2353
- u(So),
2354
- u(no),
2355
- u(oo),
2356
- u(ho),
2357
- u(go)
2458
+ return u(bs, a, () => [
2459
+ u(bo),
2460
+ u(Do),
2461
+ u(Bo),
2462
+ u(lo),
2463
+ u(co),
2464
+ u(Io),
2465
+ u(To),
2466
+ u(wo)
2358
2467
  ]);
2359
2468
  }
2360
2469
  return () => r();
2361
2470
  }
2362
- }), ko = v({
2471
+ }), Po = v({
2363
2472
  name: "PoseImage",
2364
2473
  setup() {
2365
- const e = $(), t = ue(), o = oe(), s = ne(), { brightness: n, contrast: r, saturate: i } = b(e), { filterStyle: a } = ot({ brightness: n, contrast: r, saturate: i }), c = m(() => t.image), l = m(() => t.largeImage), d = m(() => o.flipped), h = m(() => s.property("imageSize")), g = E(null), k = m(() => {
2366
- const S = c.value, T = l.value, _ = f(), { isKinetic: z } = b(_);
2367
- return !S || !S.url ? process.env.CLEAR_IMAGE : h.value.width <= 900 || z.value ? S.url : T.status === Fe ? T.url : (T.status !== be && T.failCount < 4 && t.loadImage(T.url), S.url);
2474
+ const e = R(), t = me(), o = oe(), s = ne(), { brightness: n, contrast: r, saturate: a } = b(e), { filterStyle: i } = rt({ brightness: n, contrast: r, saturate: a }), c = d(() => t.image), l = d(() => t.largeImage), m = d(() => o.flipped), h = d(() => s.property("imageSize")), g = P(null), y = d(() => {
2475
+ const k = c.value, T = l.value, E = f(), { isKinetic: _ } = b(E);
2476
+ return !k || !k.url ? process.env.CLEAR_IMAGE : h.value.width <= 900 || _.value ? k.url : T.status === je ? T.url : (T.status !== Te && T.failCount < 4 && t.loadImage(T.url), k.url);
2368
2477
  });
2369
- X(
2370
- () => a.value,
2371
- (S) => {
2372
- g.value && (g.value.style = S);
2478
+ Z(
2479
+ () => i.value,
2480
+ (k) => {
2481
+ g.value && (g.value.style = k);
2373
2482
  }
2374
2483
  );
2375
- const I = m(() => ({
2484
+ const I = d(() => ({
2376
2485
  unselectable: !0,
2377
2486
  "pose-image": !0,
2378
- "flip-horizontal": d.value
2487
+ "flip-horizontal": m.value
2379
2488
  }));
2380
2489
  function w() {
2381
- const S = {
2490
+ const k = {
2382
2491
  class: I.value,
2383
- src: k.value,
2492
+ src: y.value,
2384
2493
  ref: g
2385
2494
  };
2386
- return u("img", S, []);
2495
+ return u("img", k, []);
2387
2496
  }
2388
2497
  return () => w();
2389
2498
  }
2390
- }), bo = {
2499
+ }), zo = {
2391
2500
  __name: "ImageHolder",
2392
2501
  setup(e) {
2393
- const t = $(), o = ne(), s = j(), { brightness: n, contrast: r, saturate: i } = b(t), { filterStyle: a } = ot({ brightness: n, contrast: r, saturate: i }), { slug: c } = b(s), l = m(() => o.property("animate")), d = m(() => o.property("imagePoint")), h = m(() => o.property("imageSize")), g = m(() => o.property("size")), k = m(() => Object.assign({}, a.value, {
2394
- left: d.value.left + "px",
2395
- top: d.value.top + "px",
2502
+ const t = R(), o = ne(), s = L(), { brightness: n, contrast: r, saturate: a } = b(t), { filterStyle: i } = rt({ brightness: n, contrast: r, saturate: a }), { slug: c } = b(s), l = d(() => o.property("animate")), m = d(() => o.property("imagePoint")), h = d(() => o.property("imageSize")), g = d(() => o.property("size")), y = d(() => Object.assign({}, i.value, {
2503
+ left: m.value.left + "px",
2504
+ top: m.value.top + "px",
2396
2505
  width: h.value.width + "px",
2397
2506
  height: h.value.height + "px"
2398
2507
  }));
2399
- E(null);
2400
- const I = E(null);
2401
- X([() => d.value, () => h.value, () => g.value], () => {
2508
+ P(null);
2509
+ const I = P(null);
2510
+ Z([() => m.value, () => h.value, () => g.value], () => {
2402
2511
  w();
2403
2512
  });
2404
2513
  const w = () => {
2405
2514
  l.value && o.setProperty("animate", !1);
2406
2515
  };
2407
- return (S, T) => (_e(), Rt("div", {
2516
+ return (k, T) => (Fe(), Wt("div", {
2408
2517
  class: "image-holder unselectable",
2409
- style: qt(k.value),
2518
+ style: Ht(y.value),
2410
2519
  id: "image-holder",
2411
2520
  ref_key: "imageholder",
2412
2521
  ref: I
2413
2522
  }, [
2414
- L(ae(ko))
2523
+ O(ce(Po))
2415
2524
  ], 4));
2416
2525
  }
2417
- }, Io = {
2526
+ }, xo = {
2418
2527
  __name: "UnlockModal",
2419
2528
  setup(e) {
2420
- const t = f(), { lockedModal: o } = b(t), s = m({
2529
+ const t = f(), { lockedModal: o } = b(t), s = d({
2421
2530
  get: () => o.value,
2422
- set: (a) => t.setLockedModal(a)
2423
- }), n = E(!0), r = m(() => n.value ? "f_lock" : "f_unlock"), i = () => {
2531
+ set: (i) => t.setLockedModal(i)
2532
+ }), n = P(!0), r = d(() => n.value ? "f_lock" : "f_unlock"), a = () => {
2424
2533
  n.value = !1, setTimeout(() => {
2425
2534
  s.value = !1, n.value = !0, t.unlock();
2426
2535
  }, 400);
2427
2536
  };
2428
- return (a, c) => {
2429
- const l = ye("q-card-section"), d = ye("q-btn"), h = ye("q-card-actions"), g = ye("q-card"), k = ye("q-dialog"), I = Zt("close-popup");
2430
- return _e(), Ye(k, {
2537
+ return (i, c) => {
2538
+ const l = be("q-card-section"), m = be("q-btn"), h = be("q-card-actions"), g = be("q-card"), y = be("q-dialog"), I = Xt("close-popup");
2539
+ return Fe(), Je(y, {
2431
2540
  modelValue: s.value,
2432
2541
  "onUpdate:modelValue": c[0] || (c[0] = (w) => s.value = w),
2433
2542
  class: "unlock-modal"
2434
2543
  }, {
2435
- default: H(() => [
2436
- L(g, {
2544
+ default: Q(() => [
2545
+ O(g, {
2437
2546
  style: { width: "290px" },
2438
2547
  class: "text-center"
2439
2548
  }, {
2440
- default: H(() => [
2441
- L(l, null, {
2442
- default: H(() => [...c[1] || (c[1] = [
2443
- Ee("div", { class: "text-h6 text-uppercase text-primary" }, "Locked Pose", -1),
2444
- Ee("div", null, [
2445
- lt(" You have locked your pose."),
2446
- Ee("br"),
2447
- lt(" Interaction is disabled ")
2549
+ default: Q(() => [
2550
+ O(l, null, {
2551
+ default: Q(() => [...c[1] || (c[1] = [
2552
+ Ae("div", { class: "text-h6 text-uppercase text-primary" }, "Locked Pose", -1),
2553
+ Ae("div", null, [
2554
+ mt(" You have locked your pose."),
2555
+ Ae("br"),
2556
+ mt(" Interaction is disabled ")
2448
2557
  ], -1)
2449
2558
  ])]),
2450
2559
  _: 1
2451
2560
  }),
2452
- L(l, {
2561
+ O(l, {
2453
2562
  class: "q-pt-none",
2454
2563
  color: "primary"
2455
2564
  }, {
2456
- default: H(() => [
2457
- L(d, {
2565
+ default: Q(() => [
2566
+ O(m, {
2458
2567
  size: "50px",
2459
2568
  round: "",
2460
2569
  outline: "",
2461
2570
  unelevated: "",
2462
2571
  color: "primary",
2463
2572
  icon: r.value,
2464
- onClick: i
2573
+ onClick: a
2465
2574
  }, null, 8, ["icon"])
2466
2575
  ]),
2467
2576
  _: 1
2468
2577
  }),
2469
- c[2] || (c[2] = Ee("div", { style: { height: "25px" } }, null, -1)),
2470
- L(h, {
2578
+ c[2] || (c[2] = Ae("div", { style: { height: "25px" } }, null, -1)),
2579
+ O(h, {
2471
2580
  align: "center",
2472
2581
  class: "bg-white text-primary"
2473
2582
  }, {
2474
- default: H(() => [
2475
- tt(L(d, {
2583
+ default: Q(() => [
2584
+ Le(O(m, {
2476
2585
  unelevated: "",
2477
2586
  outline: "",
2478
2587
  label: "Cancel",
@@ -2480,11 +2589,11 @@ const po = v({
2480
2589
  }, null, 512), [
2481
2590
  [I]
2482
2591
  ]),
2483
- L(d, {
2592
+ O(m, {
2484
2593
  unelevated: "",
2485
2594
  color: "primary",
2486
2595
  label: "Unlock",
2487
- onClick: i,
2596
+ onClick: a,
2488
2597
  "data-cy": "ts-button-unlock"
2489
2598
  })
2490
2599
  ]),
@@ -2498,226 +2607,230 @@ const po = v({
2498
2607
  }, 8, ["modelValue"]);
2499
2608
  };
2500
2609
  }
2501
- }, To = v({
2610
+ }, Eo = v({
2502
2611
  name: "TsViewer",
2503
2612
  setup() {
2504
- const e = $(), t = f(), o = j(), s = de(), n = ue(), r = oe(), i = M(), a = ne(), c = ps(), { brightness: l, contrast: d, saturate: h } = b(e), { id: g } = b(t), { ready: k } = b(r), { accessibleSkins: I, percentage: w } = b(i), { slug: S } = b(o), { filterStyle: T } = ot({ brightness: l, contrast: d, saturate: h }), _ = ee("authenticated"), { imagePoint: z, imageSize: O, viewportSize: A } = b(a), { spacing: G, horizontal: N, vertical: x, visible: D } = b(s), W = E(null), V = E(null), K = (U) => {
2505
- a.setZoomFromResize(U), console.log("resizeViewport", U);
2506
- }, me = () => {
2507
- k.value && g.value !== 0 && a.initZoomFromElement(W.value);
2613
+ const e = R(), t = f(), o = L(), s = pe(), n = me(), r = oe(), a = F(), i = ne(), c = vs(), { brightness: l, contrast: m, saturate: h } = b(e), { id: g } = b(t), { ready: y } = b(r), { accessibleSkins: I, percentage: w } = b(a), { slug: k } = b(o), { filterStyle: T } = rt({ brightness: l, contrast: m, saturate: h }), E = G("authenticated"), { imagePoint: _, imageSize: V, viewportSize: z } = b(i), { spacing: Y, horizontal: K, vertical: A, visible: j } = b(s), x = P(null), re = P(null), U = ($) => {
2614
+ i.setZoomFromResize($), console.log("resizeViewport", $);
2615
+ }, he = () => {
2616
+ y.value && g.value !== 0 && i.initZoomFromElement(x.value);
2508
2617
  };
2509
- X(
2510
- () => _.value,
2511
- (U) => {
2512
- if (U) {
2618
+ Z(
2619
+ () => E.value,
2620
+ ($) => {
2621
+ if ($) {
2513
2622
  n.loadSkin();
2514
2623
  return;
2515
2624
  }
2516
- i.setProperty("id", 1);
2625
+ a.setProperty("id", 1);
2517
2626
  }
2518
- ), X(
2627
+ ), Z(
2519
2628
  () => I.value,
2520
- (U, xe) => {
2521
- U.length > xe.length && n.loadSkin();
2629
+ ($, Ee) => {
2630
+ $.length > Ee.length && n.loadSkin();
2522
2631
  }
2523
- ), X(
2524
- () => [g.value, k.value],
2525
- ([U, xe]) => {
2526
- me();
2632
+ ), Z(
2633
+ () => [g.value, y.value],
2634
+ ([$, Ee]) => {
2635
+ he();
2527
2636
  }
2528
- ), fs(), Me(() => {
2529
- Gt(() => c.$on("resize", K)), me(), n.loadSkin();
2530
- }), st(() => {
2531
- c.$off("resize", K);
2637
+ ), Ss(), Ve(() => {
2638
+ Yt(() => c.$on("resize", U)), he(), n.loadSkin();
2639
+ }), nt(() => {
2640
+ c.$off("resize", U);
2532
2641
  });
2533
- const $e = m(
2534
- () => "three-sixty-viewer flex-center unselectable image-background " + S.value
2535
- ), Oe = m(() => "image-background " + S.value), Ne = {
2536
- class: $e.value,
2537
- ref: W
2538
- }, Ke = m(() => ({
2642
+ const ye = d(
2643
+ () => "three-sixty-viewer flex-center unselectable image-background " + k.value
2644
+ ), Ke = d(() => "image-background " + k.value), Ne = {
2645
+ class: ye.value,
2646
+ ref: x
2647
+ }, qe = d(() => ({
2539
2648
  value: w / 100,
2540
2649
  color: "primary",
2541
2650
  class: "loading-bar q-mt-sm"
2542
- })), Re = m(() => ({
2651
+ })), Ze = d(() => ({
2543
2652
  style: T.value,
2544
- ref: V,
2545
- class: Oe.value
2653
+ ref: re,
2654
+ class: Ke.value
2546
2655
  }));
2547
- function qe() {
2548
- const U = {
2549
- imagePoint: z.value,
2550
- imageSize: O.value,
2551
- viewportSize: A.value,
2552
- lines: G.value,
2553
- offsetX: N.value / 100,
2554
- offsetY: x.value / 100,
2555
- visible: D.value,
2656
+ function Ge() {
2657
+ const $ = {
2658
+ imagePoint: _.value,
2659
+ imageSize: V.value,
2660
+ viewportSize: z.value,
2661
+ lines: Y.value,
2662
+ offsetX: K.value / 100,
2663
+ offsetY: A.value / 100,
2664
+ visible: j.value,
2556
2665
  style: "z-index: 4"
2557
2666
  };
2558
2667
  return u("div", Ne, [
2559
- tt(u(Jt, Ke.value), [[ht, w.value !== 100]]),
2560
- u(Io),
2561
- u(Ss, U),
2562
- u(bo),
2563
- u("div", Re.value)
2668
+ Le(u(os, qe.value), [[ot, w.value !== 100]]),
2669
+ u(xo),
2670
+ u(Is, $),
2671
+ u(zo),
2672
+ u("div", Ze.value)
2564
2673
  ]);
2565
2674
  }
2566
- return () => qe();
2675
+ return () => Ge();
2567
2676
  }
2568
- }), wo = v({
2677
+ }), Ao = v({
2569
2678
  name: "TsInteractionDetector",
2570
2679
  setup() {
2571
- const e = Symbol.for("user-auth"), t = ee(e), o = f(), s = oe(), n = ve(), r = ne(), { authenticating: i } = b(t), { isLocked: a } = b(o), c = m(() => i.value || a.value), l = E(!1), d = E(null), h = E(void 0), g = E(0), k = E(0), I = E(0), w = E(0), S = E(void 0), T = E(void 0), _ = E(1), z = m(() => r.property("imagePoint")), O = m(() => r.property("immobileHeight")), A = m(() => r.property("immobileWidth"));
2572
- m(() => r.property("maximized"));
2573
- const G = m(() => r.property("minimized")), { flipped: N } = b(s), x = m(() => N.value ? -1 : 1);
2574
- function D() {
2575
- o.setLockedModal();
2576
- }
2577
- X(
2578
- () => x.value,
2680
+ const e = Symbol.for("user-auth"), t = G(e), o = f(), s = oe(), n = Se(), r = ne(), { authenticating: a } = b(t), { isLocked: i, isFrozen: c } = b(o), l = d(
2681
+ () => a.value || i.value || c.value
2682
+ ), m = P(!1), h = P(null), g = P(void 0), y = P(0), I = P(0), w = P(0), k = P(0), T = P(void 0), E = P(void 0), _ = P(1), V = d(() => r.property("imagePoint")), z = d(() => r.property("immobileHeight")), Y = d(() => r.property("immobileWidth"));
2683
+ d(() => r.property("maximized"));
2684
+ const K = d(() => r.property("minimized")), { flipped: A } = b(s), j = d(() => A.value ? -1 : 1);
2685
+ function x() {
2686
+ i.value && o.setLockedModal(), c.value && o.pokeFreeze();
2687
+ }
2688
+ Z(c, (p) => {
2689
+ p && n.stopSpin();
2690
+ }), Z(
2691
+ () => j.value,
2579
2692
  (p) => console.log("reverseSpin", p)
2580
2693
  );
2581
- const W = m(() => r.property("size")), V = m({
2694
+ const re = d(() => r.property("size")), U = d({
2582
2695
  get: () => n.property("frame"),
2583
2696
  set: (p) => {
2584
- c.value || n.setFrame(p);
2697
+ l.value || n.setFrame(p);
2585
2698
  }
2586
- }), K = m(() => Math.ceil(W.value.width / (me.value / 1.7))), me = m(() => n.property("renderCount")), $e = m(() => r.property("zoom")), Oe = (p) => {
2587
- if (a.value && D(), !c.value) {
2588
- if ($e.value > 1) {
2699
+ }), he = d(() => Math.ceil(re.value.width / (ye.value / 1.7))), ye = d(() => n.property("renderCount")), Ke = d(() => r.property("zoom")), Ne = (p) => {
2700
+ if (x(), !l.value) {
2701
+ if (Ke.value > 1) {
2589
2702
  r.animateToZoom(0);
2590
2703
  return;
2591
2704
  }
2592
2705
  r.animateToZoom(100);
2593
2706
  }
2594
- }, Ne = (p) => {
2595
- const y = p.srcEvent.keyCode;
2596
- if (a.value && D(), c.value || (y === 16 && (l.value = !0), y !== 37 && // left
2597
- y !== 38 && // up
2598
- y !== 39 && // right
2599
- y !== 40))
2707
+ }, qe = (p) => {
2708
+ const S = p.srcEvent.keyCode;
2709
+ if (x(), l.value || (S === 16 && (m.value = !0), S !== 37 && // left
2710
+ S !== 38 && // up
2711
+ S !== 39 && // right
2712
+ S !== 40))
2600
2713
  return;
2601
- let C = 0, P = 0;
2602
- const R = p.srcEvent.shiftKey ? 10 : 1;
2603
- C += y === 37 ? -3 : 0, C += y === 39 ? 3 : 0, P += y === 38 ? -3 : 0, P += y === 40 ? 3 : 0, C = C * R, P = P * R, at({ x: C, y: P });
2604
- }, Ke = (p) => {
2714
+ let D = 0, C = 0;
2715
+ const N = p.srcEvent.shiftKey ? 10 : 1;
2716
+ D += S === 37 ? -3 : 0, D += S === 39 ? 3 : 0, C += S === 38 ? -3 : 0, C += S === 40 ? 3 : 0, D = D * N, C = C * N, lt({ x: D, y: C });
2717
+ }, Ze = (p) => {
2605
2718
  if (p.key === "Shift") {
2606
- l.value = !1;
2719
+ m.value = !1;
2607
2720
  return;
2608
2721
  }
2609
- }, Re = (p) => {
2610
- h.value = void 0, S.value = void 0, g.value = 0, k.value = 0;
2611
- }, qe = (p) => {
2612
- if (a.value && D(), c.value) return;
2613
- const y = p.pointers.length;
2614
- (y === 2 || y === 1 && l.value) && it(p), y === 1 && Ut(p);
2615
- }, U = (p) => {
2616
- T.value = Date.now(), h.value = p.center, S.value = V.value;
2617
- }, xe = (p) => {
2618
- if (a.value && D(), c.value || (it(p), Math.abs(p.scale - _.value) < 0.02)) return;
2619
- const y = p.scale < w.value ? -1 : 1;
2620
- w.value = p.scale, r.setZoomFromPointer({
2722
+ }, Ge = (p) => {
2723
+ g.value = void 0, T.value = void 0, y.value = 0, I.value = 0;
2724
+ }, $ = (p) => {
2725
+ if (x(), l.value) return;
2726
+ const S = p.pointers.length;
2727
+ (S === 2 || S === 1 && m.value) && ut(p), S === 1 && Rt(p);
2728
+ }, Ee = (p) => {
2729
+ E.value = Date.now(), g.value = p.center, T.value = U.value;
2730
+ }, Ft = (p) => {
2731
+ if (x(), l.value || (ut(p), Math.abs(p.scale - _.value) < 0.02)) return;
2732
+ const S = p.scale < k.value ? -1 : 1;
2733
+ k.value = p.scale, r.setZoomFromPointer({
2621
2734
  event: p,
2622
- element: Ze,
2623
- increment: y
2735
+ element: We,
2736
+ increment: S
2624
2737
  }), _.value = p.scale;
2625
- }, At = (p) => {
2626
- h.value = p.center;
2627
- }, _t = (p) => {
2628
- if (Date.now() - T.value > 1e3 || (a.value && D(), c.value) || Math.abs(p.velocityX) <= 0.02) return;
2629
- const C = p.velocityX, P = p.deltaX;
2738
+ }, Vt = (p) => {
2739
+ g.value = p.center;
2740
+ }, jt = (p) => {
2741
+ if (Date.now() - E.value > 1e3 || (x(), l.value) || Math.abs(p.velocityX) <= 0.02) return;
2742
+ const D = p.velocityX, C = p.deltaX;
2630
2743
  n.spinToFrame({
2631
- value: jt({ distance: P, velocity: C }),
2632
- duration: Vt({ distance: P, velocity: C })
2744
+ value: Ot({ distance: C, velocity: D }),
2745
+ duration: $t({ distance: C, velocity: D })
2633
2746
  });
2634
- }, Mt = (p) => {
2635
- a.value && D(), !c.value && n.stopSpin();
2636
- }, Ft = (p) => {
2637
- if (a.value && D(), c.value) return;
2638
- p = p.srcEvent || p, p.preventDefault(), p.stopPropagation();
2639
- const y = p.deltaX, C = p.deltaY, P = 2, R = Math.abs(C) > Math.abs(y) ? 1 : -1;
2640
- (R === 1 && (C > P || C < -P) || p.ctrlKey) && $t(p), R === -1 && (y > P || y < -P) && Lt(p);
2641
- }, Vt = ({ velocity: p, distance: y }) => {
2642
- const C = Qe.newRectFromElement(d.value), P = 1 + Math.abs(y) / C.width;
2643
- return Math.floor(Math.abs(p) * P * 500);
2644
- }, jt = ({ velocity: p, distance: y }) => {
2645
- const C = Qe.newRectFromElement(d.value), P = me.value, R = Math.abs(y) / p / 1e3, Nt = Math.abs(y) / C.width * R, Se = Math.floor(Nt * P), ct = (y < 0 ? -1 : 1) * x.value;
2646
- return ct > 0 && Se < V.value ? Se + P : ct < 0 && Se > V.value ? Se - P : Se;
2647
- }, rt = (p, y) => {
2648
- const C = Math.floor(p / K.value) * y * x.value;
2649
- return (S.value + C) % me.value;
2650
- }, at = ({ x: p, y }) => {
2651
- if (a.value && D(), c.value) return;
2652
- const C = A.value || p === 0 ? z.value.left : z.value.left + p, P = O.value || y === 0 ? z.value.top : z.value.top + y, R = new Z(C, P);
2653
- r.setImagePoint(R);
2654
- }, it = (p) => {
2655
- if (a.value && D(), c.value || G.value)
2656
- return;
2657
- const y = p.deltaX - g.value;
2658
- g.value = p.deltaX;
2659
- const C = p.deltaY - k.value;
2660
- k.value = p.deltaY, at({ x: y, y: C });
2661
2747
  }, Ut = (p) => {
2662
- const y = p.center.x - h.value.x;
2663
- if (Math.abs(y) < K.value || l.value) return;
2664
- const C = p.center.x < h.value.x ? -1 : 1;
2665
- h.value = p.center, V.value = rt(Math.abs(y), C), S.value = V.value;
2748
+ x(), !l.value && n.stopSpin();
2666
2749
  }, Lt = (p) => {
2667
- if (a.value && D(), c.value) return;
2668
- const y = p.deltaX - I.value, C = p.deltaX < 0 ? -1 : 1;
2669
- Math.abs(y) < K.value || (I.value = p.deltaX, V.value = rt(Math.abs(y), C), S.value = V.value);
2670
- }, $t = (p) => {
2671
- if (a.value && D(), c.value) return;
2672
- const y = p.deltaY < 0 ? 2 : -2;
2750
+ if (x(), l.value) return;
2751
+ p = p.srcEvent || p, p.preventDefault(), p.stopPropagation();
2752
+ const S = p.deltaX, D = p.deltaY, C = 2, N = Math.abs(D) > Math.abs(S) ? 1 : -1;
2753
+ (N === 1 && (D > C || D < -C) || p.ctrlKey) && Nt(p), N === -1 && (S > C || S < -C) && Kt(p);
2754
+ }, $t = ({ velocity: p, distance: S }) => {
2755
+ const D = et.newRectFromElement(h.value), C = 1 + Math.abs(S) / D.width;
2756
+ return Math.floor(Math.abs(p) * C * 500);
2757
+ }, Ot = ({ velocity: p, distance: S }) => {
2758
+ const D = et.newRectFromElement(h.value), C = ye.value, N = Math.abs(S) / p / 1e3, Zt = Math.abs(S) / D.width * N, ke = Math.floor(Zt * C), dt = (S < 0 ? -1 : 1) * j.value;
2759
+ return dt > 0 && ke < U.value ? ke + C : dt < 0 && ke > U.value ? ke - C : ke;
2760
+ }, ct = (p, S) => {
2761
+ const D = Math.floor(p / he.value) * S * j.value;
2762
+ return (T.value + D) % ye.value;
2763
+ }, lt = ({ x: p, y: S }) => {
2764
+ if (x(), l.value) return;
2765
+ const D = Y.value || p === 0 ? V.value.left : V.value.left + p, C = z.value || S === 0 ? V.value.top : V.value.top + S, N = new W(D, C);
2766
+ r.setImagePoint(N);
2767
+ }, ut = (p) => {
2768
+ if (x(), l.value || K.value)
2769
+ return;
2770
+ const S = p.deltaX - y.value;
2771
+ y.value = p.deltaX;
2772
+ const D = p.deltaY - I.value;
2773
+ I.value = p.deltaY, lt({ x: S, y: D });
2774
+ }, Rt = (p) => {
2775
+ const S = p.center.x - g.value.x;
2776
+ if (Math.abs(S) < he.value || m.value) return;
2777
+ const D = p.center.x < g.value.x ? -1 : 1;
2778
+ g.value = p.center, U.value = ct(Math.abs(S), D), T.value = U.value;
2779
+ }, Kt = (p) => {
2780
+ if (x(), l.value) return;
2781
+ const S = p.deltaX - w.value, D = p.deltaX < 0 ? -1 : 1;
2782
+ Math.abs(S) < he.value || (w.value = p.deltaX, U.value = ct(Math.abs(S), D), T.value = U.value);
2783
+ }, Nt = (p) => {
2784
+ if (x(), l.value) return;
2785
+ const S = p.deltaY < 0 ? 2 : -2;
2673
2786
  r.setZoomFromPointer({
2674
2787
  event: p,
2675
- element: Ze,
2676
- increment: y
2788
+ element: We,
2789
+ increment: S
2677
2790
  });
2678
2791
  };
2679
- let Ze;
2680
- const Ge = new mt(), We = new mt();
2681
- Ge.on({
2682
- swipe: _t,
2683
- wheel: Ft,
2684
- keyup: Ke,
2685
- keydown: Ne,
2686
- pointerdown: Mt
2687
- }), We.on({
2688
- panstart: U,
2689
- panend: Re,
2690
- panmove: qe,
2691
- pinch: xe,
2692
- pinchstart: At,
2693
- doubletap: Oe
2694
- }), Me(() => {
2695
- Ze = document.getElementById("image-holder"), Ge.setElement(d.value), We.setElement(d.value), document.addEventListener(
2792
+ let We;
2793
+ const He = new ht(), Xe = new ht();
2794
+ He.on({
2795
+ swipe: jt,
2796
+ wheel: Lt,
2797
+ keyup: Ze,
2798
+ keydown: qe,
2799
+ pointerdown: Ut
2800
+ }), Xe.on({
2801
+ panstart: Ee,
2802
+ panend: Ge,
2803
+ panmove: $,
2804
+ pinch: Ft,
2805
+ pinchstart: Vt,
2806
+ doubletap: Ne
2807
+ }), Ve(() => {
2808
+ We = document.getElementById("image-holder"), He.setElement(h.value), Xe.setElement(h.value), document.addEventListener(
2696
2809
  "touchmove",
2697
2810
  function(p) {
2698
2811
  p.scale;
2699
2812
  },
2700
- ks ? { passive: !1 } : !1
2813
+ ws ? { passive: !1 } : !1
2701
2814
  );
2702
- }), st(() => {
2703
- Ge.destroy(), We.destroy();
2815
+ }), nt(() => {
2816
+ He.destroy(), Xe.destroy();
2704
2817
  });
2705
- function Ot() {
2818
+ function qt() {
2706
2819
  return u("div", {
2707
2820
  class: "detector",
2708
2821
  id: "detector",
2709
- ref: d
2822
+ ref: h
2710
2823
  }, []);
2711
2824
  }
2712
- return () => Ot();
2825
+ return () => qt();
2713
2826
  }
2714
- }), jo = /* @__PURE__ */ Object.assign({
2827
+ }), qo = /* @__PURE__ */ Object.assign({
2715
2828
  name: "TsPage",
2716
2829
  slug: "ts-page",
2717
2830
  inheritAttrs: !1
2718
2831
  }, {
2719
2832
  __name: "TsPage",
2720
- props: /* @__PURE__ */ Xt({
2833
+ props: /* @__PURE__ */ es({
2721
2834
  routeKey: {
2722
2835
  type: String,
2723
2836
  required: !0
@@ -2735,47 +2848,47 @@ const po = v({
2735
2848
  }),
2736
2849
  emits: ["update:miniState"],
2737
2850
  setup(e) {
2738
- hs();
2739
- const t = gt(), o = Wt(e, "miniState"), s = Symbol.for("ux"), n = Symbol.for("activity-tracking"), r = f(), i = ee(s), a = ee(n, null), { toolDrawer: c } = b(i);
2740
- Me(() => {
2741
- r.active !== Y && (r.active = t.platform.is.mobile ? St : Ve);
2851
+ ys();
2852
+ const t = St(), o = Qt(e, "miniState"), s = Symbol.for("ux"), n = Symbol.for("activity-tracking"), r = f(), a = G(s), i = G(n, null), { toolDrawer: c } = b(a);
2853
+ Ve(() => {
2854
+ r.active !== J && (r.active = t.platform.is.mobile ? kt : Ue);
2742
2855
  });
2743
- const l = (d) => {
2744
- d && (a == null || a.trackEvent(Os, {
2856
+ const l = (m) => {
2857
+ m && (i == null || i.trackEvent(qs, {
2745
2858
  pose_id: r.id || null,
2746
- base_pose_id: d
2859
+ base_pose_id: m
2747
2860
  }));
2748
2861
  };
2749
- return Me(async () => {
2750
- a && (await a.beginExplore(), a.trackEvent($s, { from: null, to: "360" }), r.basePoseId && (a.beginSegment(String(r.basePoseId)), l(r.basePoseId)));
2751
- }), X(
2862
+ return Ve(async () => {
2863
+ i && (await i.beginExplore(), i.trackEvent(Ns, { from: null, to: "360" }), r.basePoseId && (i.beginSegment(String(r.basePoseId)), l(r.basePoseId)));
2864
+ }), Z(
2752
2865
  () => r.basePoseId,
2753
- (d, h) => {
2754
- !d || d === h || (a == null || a.beginSegment(String(d)), l(d));
2866
+ (m, h) => {
2867
+ !m || m === h || (i == null || i.beginSegment(String(m)), l(m));
2755
2868
  }
2756
- ), st(() => {
2757
- a == null || a.end();
2758
- }), (d, h) => (_e(), Ye(ae(ys), {
2869
+ ), nt(() => {
2870
+ i == null || i.end();
2871
+ }), (m, h) => (Fe(), Je(ce(Ts), {
2759
2872
  miniState: o.value,
2760
2873
  "onUpdate:miniState": h[0] || (h[0] = (g) => o.value = g),
2761
2874
  "drawer-padding": e.drawerPadding,
2762
2875
  title: "360° Viewer"
2763
2876
  }, {
2764
- toolDrawer: H(() => [
2765
- L(ae(so))
2877
+ toolDrawer: Q(() => [
2878
+ O(ce(io))
2766
2879
  ]),
2767
- bottomDrawer: H(() => [
2768
- ae(t).platform.is.mobile ? (_e(), Ye(ae(yo), { key: 0 })) : Ht("", !0)
2880
+ bottomDrawer: Q(() => [
2881
+ ce(t).platform.is.mobile ? (Fe(), Je(ce(Co), { key: 0 })) : Jt("", !0)
2769
2882
  ]),
2770
- default: H(() => [
2771
- L(ae(wo)),
2772
- L(ae(To))
2883
+ default: Q(() => [
2884
+ O(ce(Ao)),
2885
+ O(ce(Eo))
2773
2886
  ]),
2774
2887
  _: 1
2775
2888
  }, 8, ["miniState", "drawer-padding"]));
2776
2889
  }
2777
2890
  });
2778
2891
  export {
2779
- jo as TsPage,
2892
+ qo as TsPage,
2780
2893
  f as use360Store
2781
2894
  };