@mirage-engine/core 0.3.20 → 0.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/mirage-engine.js +653 -649
- package/dist/mirage-engine.umd.js +16 -16
- package/package.json +2 -2
- package/src/dom/Extractor.ts +45 -37
- package/src/renderer/Renderer.ts +2 -2
package/dist/mirage-engine.js
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
1
|
+
var Ve = Object.defineProperty, Ye = Object.defineProperties;
|
|
2
|
+
var We = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var Re = Object.getOwnPropertySymbols;
|
|
4
|
+
var Pe = Object.prototype.hasOwnProperty, He = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var xe = (i, e, t) => e in i ? Ve(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, re = (i, e) => {
|
|
6
6
|
for (var t in e || (e = {}))
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
for (var t of
|
|
10
|
-
|
|
7
|
+
Pe.call(e, t) && xe(i, t, e[t]);
|
|
8
|
+
if (Re)
|
|
9
|
+
for (var t of Re(e))
|
|
10
|
+
He.call(e, t) && xe(i, t, e[t]);
|
|
11
11
|
return i;
|
|
12
|
-
},
|
|
13
|
-
var
|
|
14
|
-
var
|
|
12
|
+
}, Me = (i, e) => Ye(i, We(e));
|
|
13
|
+
var p = (i, e, t) => (xe(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
14
|
+
var Le = (i, e, t) => new Promise((r, s) => {
|
|
15
15
|
var c = (l) => {
|
|
16
16
|
try {
|
|
17
|
-
|
|
18
|
-
} catch (
|
|
19
|
-
s(
|
|
17
|
+
n(t.next(l));
|
|
18
|
+
} catch (a) {
|
|
19
|
+
s(a);
|
|
20
20
|
}
|
|
21
21
|
}, o = (l) => {
|
|
22
22
|
try {
|
|
23
|
-
|
|
24
|
-
} catch (
|
|
25
|
-
s(
|
|
23
|
+
n(t.throw(l));
|
|
24
|
+
} catch (a) {
|
|
25
|
+
s(a);
|
|
26
26
|
}
|
|
27
|
-
},
|
|
28
|
-
|
|
27
|
+
}, n = (l) => l.done ? r(l.value) : Promise.resolve(l.value).then(c, o);
|
|
28
|
+
n((t = t.apply(i, e)).next());
|
|
29
29
|
});
|
|
30
30
|
import * as w from "three";
|
|
31
|
-
const
|
|
31
|
+
const Be = {
|
|
32
32
|
INCLUDE_TREE: "include-tree",
|
|
33
33
|
EXCLUDE_TREE: "exclude-tree",
|
|
34
34
|
INCLUDE_SELF: "include-self",
|
|
35
35
|
EXCLUDE_SELF: "exclude-self",
|
|
36
36
|
END: "end"
|
|
37
|
-
},
|
|
37
|
+
}, te = {
|
|
38
38
|
NAME: "data-mirage-dom",
|
|
39
39
|
KEY: "mirageDom",
|
|
40
40
|
VALUES: {
|
|
41
41
|
HIDE: "hide",
|
|
42
42
|
SHOW: "show"
|
|
43
43
|
}
|
|
44
|
-
},
|
|
44
|
+
}, De = {
|
|
45
45
|
TRAVELER: "traveler",
|
|
46
46
|
NATIVE: "native",
|
|
47
47
|
CAPTURE_1: "1",
|
|
@@ -54,30 +54,30 @@ const Ie = {
|
|
|
54
54
|
CAPTURE_8: "8",
|
|
55
55
|
CAPTURE_9: "9",
|
|
56
56
|
CAPTURE_10: "10"
|
|
57
|
-
},
|
|
57
|
+
}, V = {
|
|
58
58
|
NAME: "data-mirage-travel",
|
|
59
59
|
KEY: "mirageTravel",
|
|
60
|
-
VALUES:
|
|
61
|
-
MAX_LAYERS: Object.keys(
|
|
62
|
-
},
|
|
60
|
+
VALUES: De,
|
|
61
|
+
MAX_LAYERS: Object.keys(De).length - 1
|
|
62
|
+
}, q = {
|
|
63
63
|
NAME: "data-mirage-filter",
|
|
64
64
|
KEY: "mirageFilter",
|
|
65
|
-
VALUES:
|
|
66
|
-
},
|
|
65
|
+
VALUES: Be
|
|
66
|
+
}, j = {
|
|
67
67
|
NAME: "data-mirage-select",
|
|
68
68
|
KEY: "mirageSelect",
|
|
69
|
-
VALUES:
|
|
70
|
-
},
|
|
69
|
+
VALUES: Be
|
|
70
|
+
}, Ge = {
|
|
71
71
|
NAME: "data-mirage-shader",
|
|
72
72
|
KEY: "mirageShader"
|
|
73
|
-
},
|
|
73
|
+
}, gt = {
|
|
74
74
|
NAME: "data-mirage-sandwich",
|
|
75
75
|
KEY: "mirageSandwich",
|
|
76
76
|
VALUES: {
|
|
77
77
|
FRONT: "front"
|
|
78
78
|
}
|
|
79
|
-
},
|
|
80
|
-
function
|
|
79
|
+
}, pe = 0, ie = 1, fe = 2, qe = 4, me = 8, Se = 16;
|
|
80
|
+
function $e(i) {
|
|
81
81
|
const e = i.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);
|
|
82
82
|
return e ? {
|
|
83
83
|
r: parseInt(e[1]) / 255,
|
|
@@ -86,10 +86,10 @@ function He(i) {
|
|
|
86
86
|
a: e[4] !== void 0 ? parseFloat(e[4]) : 1
|
|
87
87
|
} : { r: 1, g: 1, b: 1, a: 1 };
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function je(i) {
|
|
90
90
|
const e = {};
|
|
91
91
|
if (i.opacity && (e.opacity = parseFloat(i.opacity)), i.backgroundColor) {
|
|
92
|
-
const t =
|
|
92
|
+
const t = $e(i.backgroundColor);
|
|
93
93
|
e.backgroundColor = [t.r, t.g, t.b, t.a];
|
|
94
94
|
}
|
|
95
95
|
if (i.backgroundImage ? e.backgroundImage = i.backgroundImage : i.background && (e.backgroundImage = i.background), i.boxShadow && (e.boxShadow = i.boxShadow), i.borderRadius && (e.borderRadius = parseFloat(i.borderRadius)), i.width && (e.width = parseFloat(i.width)), i.height && (e.height = parseFloat(i.height)), i.transform && i.transform !== "none") {
|
|
@@ -98,34 +98,34 @@ function Ge(i) {
|
|
|
98
98
|
}
|
|
99
99
|
return e;
|
|
100
100
|
}
|
|
101
|
-
class
|
|
101
|
+
class Ke {
|
|
102
102
|
constructor(e, t) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
this.target.contains(e.target) && this.mutationTimer === null && (this.cssTimer && clearTimeout(this.cssTimer), this.pendingStyles.size == 0 && (this.pendingMask |=
|
|
103
|
+
p(this, "target");
|
|
104
|
+
p(this, "observer");
|
|
105
|
+
p(this, "pendingDeletions", /* @__PURE__ */ new Set());
|
|
106
|
+
p(this, "pendingStyles", /* @__PURE__ */ new Map());
|
|
107
|
+
p(this, "isDomDirty", !1);
|
|
108
|
+
p(this, "isRunning", !1);
|
|
109
|
+
p(this, "pendingMask", pe);
|
|
110
|
+
p(this, "mutationTimer", null);
|
|
111
|
+
p(this, "cssTimer", null);
|
|
112
|
+
p(this, "resizeConfig");
|
|
113
|
+
p(this, "resizeTimer", null);
|
|
114
|
+
p(this, "isResizing", !1);
|
|
115
|
+
p(this, "lastScrollX", 0);
|
|
116
|
+
p(this, "lastScrollY", 0);
|
|
117
|
+
p(this, "scrollTimer", null);
|
|
118
|
+
p(this, "onBeforeRender", /* @__PURE__ */ new Set());
|
|
119
|
+
p(this, "onLayoutChange", /* @__PURE__ */ new Set());
|
|
120
|
+
p(this, "onStyleChange", /* @__PURE__ */ new Set());
|
|
121
|
+
p(this, "onScrollChange", /* @__PURE__ */ new Set());
|
|
122
|
+
p(this, "onRender", /* @__PURE__ */ new Set());
|
|
123
|
+
p(this, "onTransitionFinished", (e) => {
|
|
124
|
+
this.target.contains(e.target) && this.mutationTimer === null && (this.cssTimer && clearTimeout(this.cssTimer), this.pendingStyles.size == 0 && (this.pendingMask |= ie | fe, this.cssTimer = window.setTimeout(() => {
|
|
125
125
|
this.isDomDirty = !0, this.cssTimer = null;
|
|
126
126
|
}, 50)));
|
|
127
127
|
});
|
|
128
|
-
|
|
128
|
+
p(this, "onWindowResize", () => {
|
|
129
129
|
if (!this.resizeConfig.enabled) {
|
|
130
130
|
this.isDomDirty = !0;
|
|
131
131
|
return;
|
|
@@ -134,13 +134,13 @@ class qe {
|
|
|
134
134
|
this.isDomDirty = !0, this.resizeConfig.onEnd && this.resizeConfig.onEnd(), this.isResizing = !1, this.resizeTimer = null;
|
|
135
135
|
}, this.resizeConfig.delay);
|
|
136
136
|
});
|
|
137
|
-
|
|
137
|
+
p(this, "renderLoop", () => {
|
|
138
138
|
if (!this.isRunning)
|
|
139
139
|
return;
|
|
140
|
-
this.onBeforeRender.forEach((r) => r()), this.isDomDirty && (this.isDomDirty = !1, this.onLayoutChange.forEach((r) => r(this.pendingMask, this.pendingDeletions)), this.pendingDeletions.clear(), this.pendingMask =
|
|
140
|
+
this.onBeforeRender.forEach((r) => r()), this.isDomDirty && (this.isDomDirty = !1, this.onLayoutChange.forEach((r) => r(this.pendingMask, this.pendingDeletions)), this.pendingDeletions.clear(), this.pendingMask = pe);
|
|
141
141
|
const e = window.scrollX, t = window.scrollY;
|
|
142
142
|
(e !== this.lastScrollX || t !== this.lastScrollY) && (this.onScrollChange.forEach((r) => r(e, t)), this.lastScrollX = e, this.lastScrollY = t, this.scrollTimer && clearTimeout(this.scrollTimer), this.scrollTimer = window.setTimeout(() => {
|
|
143
|
-
this.pendingMask |=
|
|
143
|
+
this.pendingMask |= ie, this.isDomDirty = !0, this.scrollTimer = null;
|
|
144
144
|
}, 150)), this.pendingStyles.size > 0 && (this.onStyleChange.forEach((r) => r(this.pendingStyles)), this.pendingStyles.clear()), this.onRender.forEach((r) => r()), requestAnimationFrame(this.renderLoop);
|
|
145
145
|
});
|
|
146
146
|
var s, c;
|
|
@@ -152,23 +152,23 @@ class qe {
|
|
|
152
152
|
onStart: r.onStart,
|
|
153
153
|
onEnd: r.onEnd
|
|
154
154
|
}, this.observer = new MutationObserver((o) => {
|
|
155
|
-
let
|
|
155
|
+
let n = pe;
|
|
156
156
|
for (const l of o)
|
|
157
157
|
if (l.type === "childList")
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
n |= me, l.removedNodes.length > 0 && l.removedNodes.forEach((a) => {
|
|
159
|
+
a instanceof HTMLElement && this.pendingDeletions.add(a);
|
|
160
160
|
});
|
|
161
161
|
else if (l.type === "attributes")
|
|
162
162
|
if (l.attributeName === "style") {
|
|
163
|
-
|
|
164
|
-
const
|
|
165
|
-
this.pendingStyles.set(
|
|
163
|
+
n |= ie | fe;
|
|
164
|
+
const a = l.target, u = je(a.style);
|
|
165
|
+
this.pendingStyles.set(a, u);
|
|
166
166
|
} else
|
|
167
|
-
l.attributeName === "class" ?
|
|
167
|
+
l.attributeName === "class" ? n |= ie | fe : l.attributeName && l.attributeName.startsWith("data-") && (n |= ie | fe, l.attributeName.startsWith("data-mirage") && (n |= me));
|
|
168
168
|
else
|
|
169
|
-
l.type === "characterData" && (
|
|
170
|
-
if (
|
|
171
|
-
if (this.pendingMask |=
|
|
169
|
+
l.type === "characterData" && (n |= Se | ie);
|
|
170
|
+
if (n !== pe) {
|
|
171
|
+
if (this.pendingMask |= n, n & me) {
|
|
172
172
|
this.clearTimers(), this.isDomDirty = !0;
|
|
173
173
|
return;
|
|
174
174
|
}
|
|
@@ -193,13 +193,13 @@ class qe {
|
|
|
193
193
|
this.mutationTimer && (clearTimeout(this.mutationTimer), this.mutationTimer = null), this.cssTimer && (clearTimeout(this.cssTimer), this.cssTimer = null), this.scrollTimer && (clearTimeout(this.scrollTimer), this.scrollTimer = null);
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
-
const
|
|
196
|
+
const $ = 1, ne = 2, pt = 0, O = {
|
|
197
197
|
BASE: 0,
|
|
198
198
|
SELECTED: 1,
|
|
199
199
|
getCaptureLayer: (i) => 31 - i,
|
|
200
200
|
HIDDEN: 31
|
|
201
|
-
},
|
|
202
|
-
class
|
|
201
|
+
}, Ae = Object.values(q.VALUES);
|
|
202
|
+
class Fe {
|
|
203
203
|
/**
|
|
204
204
|
* Calculates or retrieves the exact alphabetic baseline (in pixels) for the given font.
|
|
205
205
|
* @param font CSS font shorthand string (e.g., "400 16px Inter")
|
|
@@ -220,17 +220,17 @@ class ke {
|
|
|
220
220
|
return document.body.removeChild(t), c;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
|
|
224
|
-
class
|
|
223
|
+
p(Fe, "cache", /* @__PURE__ */ new Map());
|
|
224
|
+
class Je extends w.MeshBasicMaterial {
|
|
225
225
|
constructor(t, r, s, c, o = 2) {
|
|
226
226
|
super({
|
|
227
227
|
transparent: !0,
|
|
228
228
|
side: w.FrontSide,
|
|
229
229
|
color: 16777215
|
|
230
230
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
231
|
+
p(this, "canvas");
|
|
232
|
+
p(this, "ctx");
|
|
233
|
+
p(this, "qualityFactor");
|
|
234
234
|
if (this.canvas = document.createElement("canvas"), this.ctx = this.canvas.getContext("2d"), !this.ctx)
|
|
235
235
|
throw new Error("[Mirage] Failed to create canvas context");
|
|
236
236
|
this.qualityFactor = o, this.map = new w.CanvasTexture(this.canvas), this.map.colorSpace = w.LinearSRGBColorSpace, this.map.minFilter = w.LinearFilter, this.map.magFilter = w.LinearFilter, this.updateText(t, r, s, c);
|
|
@@ -239,14 +239,14 @@ class $e extends w.MeshBasicMaterial {
|
|
|
239
239
|
const s = t.split(`
|
|
240
240
|
`), c = [];
|
|
241
241
|
return s.forEach((o) => {
|
|
242
|
-
const
|
|
243
|
-
if (
|
|
242
|
+
const n = o.match(/[^\s\-]+\-?|\-|\s+/g) || [];
|
|
243
|
+
if (n.length === 0) {
|
|
244
244
|
c.push("");
|
|
245
245
|
return;
|
|
246
246
|
}
|
|
247
|
-
let l =
|
|
248
|
-
for (let
|
|
249
|
-
const u = a
|
|
247
|
+
let l = n[0];
|
|
248
|
+
for (let a = 1; a < n.length; a++) {
|
|
249
|
+
const u = n[a];
|
|
250
250
|
this.ctx.measureText(l + u).width <= r + 2 ? l += u : (l && c.push(l), l = u.trimStart());
|
|
251
251
|
}
|
|
252
252
|
l && c.push(l);
|
|
@@ -254,13 +254,13 @@ class $e extends w.MeshBasicMaterial {
|
|
|
254
254
|
}
|
|
255
255
|
updateText(t, r, s, c, o) {
|
|
256
256
|
o !== void 0 && (this.qualityFactor = o);
|
|
257
|
-
const l = (window.devicePixelRatio || 1) * this.qualityFactor,
|
|
258
|
-
this.canvas.width !==
|
|
259
|
-
const h = this.wrapText(t, s), d = r.lineHeight,
|
|
260
|
-
h.forEach((
|
|
261
|
-
const
|
|
257
|
+
const l = (window.devicePixelRatio || 1) * this.qualityFactor, a = s * l, u = c * l;
|
|
258
|
+
this.canvas.width !== a || this.canvas.height !== u ? (this.canvas.width = a, this.canvas.height = u) : this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height), this.ctx.setTransform(l, 0, 0, l, 0, 0), this.ctx.font = r.font, this.ctx.fillStyle = r.color, this.ctx.textBaseline = "alphabetic", this.ctx.globalAlpha = 1;
|
|
259
|
+
const h = this.wrapText(t, s), d = r.lineHeight, m = Fe.getBaseline(r.font);
|
|
260
|
+
h.forEach((g, R) => {
|
|
261
|
+
const v = R * d + m;
|
|
262
262
|
let y = 0;
|
|
263
|
-
r.textAlign === "center" ? y = s / 2 : r.textAlign === "right" && (y = s), this.ctx.textAlign = r.textAlign, this.ctx.fillText(
|
|
263
|
+
r.textAlign === "center" ? y = s / 2 : r.textAlign === "right" && (y = s), this.ctx.textAlign = r.textAlign, this.ctx.fillText(g, y, v);
|
|
264
264
|
}), this.map && (this.map.needsUpdate = !0);
|
|
265
265
|
}
|
|
266
266
|
dispose() {
|
|
@@ -285,7 +285,7 @@ function ce(i) {
|
|
|
285
285
|
}
|
|
286
286
|
return { color: new w.Color(i), alpha: 1 };
|
|
287
287
|
}
|
|
288
|
-
function
|
|
288
|
+
function Oe(i) {
|
|
289
289
|
const e = [];
|
|
290
290
|
let t = "", r = 0;
|
|
291
291
|
for (let s = 0; s < i.length; s++) {
|
|
@@ -302,13 +302,13 @@ function Ue(i) {
|
|
|
302
302
|
}
|
|
303
303
|
return t && e.push(t.trim()), e;
|
|
304
304
|
}
|
|
305
|
-
function
|
|
305
|
+
function Ze(i) {
|
|
306
306
|
if (!i || typeof i != "string" || !i.includes("linear-gradient"))
|
|
307
307
|
return null;
|
|
308
308
|
const e = i.match(/linear-gradient\((.*)\)/);
|
|
309
309
|
if (!e)
|
|
310
310
|
return null;
|
|
311
|
-
const t = e[1], r =
|
|
311
|
+
const t = e[1], r = Oe(t);
|
|
312
312
|
let s = Math.PI, c = 0;
|
|
313
313
|
const o = r[0].trim();
|
|
314
314
|
if (o.startsWith("to "))
|
|
@@ -317,63 +317,63 @@ function je(i) {
|
|
|
317
317
|
const l = parseFloat(o);
|
|
318
318
|
o.endsWith("deg") ? s = l * (Math.PI / 180) : o.endsWith("rad") ? s = l : o.endsWith("turn") && (s = l * Math.PI * 2), c = 1;
|
|
319
319
|
}
|
|
320
|
-
const
|
|
321
|
-
for (let l = c; l < r.length && !(
|
|
322
|
-
const
|
|
323
|
-
let h =
|
|
324
|
-
if (u !== -1 && !
|
|
325
|
-
const
|
|
326
|
-
(
|
|
320
|
+
const n = [];
|
|
321
|
+
for (let l = c; l < r.length && !(n.length >= 8); l++) {
|
|
322
|
+
const a = r[l].trim(), u = a.lastIndexOf(" ");
|
|
323
|
+
let h = a, d = null;
|
|
324
|
+
if (u !== -1 && !a.endsWith(")")) {
|
|
325
|
+
const g = a.substring(u + 1);
|
|
326
|
+
(g.endsWith("%") || g.endsWith("px") || !isNaN(parseFloat(g))) && (h = a.substring(0, u).trim(), d = g);
|
|
327
327
|
}
|
|
328
|
-
const
|
|
329
|
-
|
|
330
|
-
color:
|
|
331
|
-
alpha:
|
|
328
|
+
const m = ce(h);
|
|
329
|
+
n.push({
|
|
330
|
+
color: m.color,
|
|
331
|
+
alpha: m.alpha,
|
|
332
332
|
rawStop: d,
|
|
333
333
|
stop: 0
|
|
334
334
|
});
|
|
335
335
|
}
|
|
336
|
-
if (
|
|
337
|
-
for (let
|
|
338
|
-
a
|
|
339
|
-
|
|
336
|
+
if (n.length > 0) {
|
|
337
|
+
for (let a = 0; a < n.length; a++)
|
|
338
|
+
n[a].rawStop !== null && (n[a].stop = parseFloat(n[a].rawStop) / 100);
|
|
339
|
+
n[0].rawStop === null && (n[0].stop = 0), n.length > 1 && n[n.length - 1].rawStop === null && (n[n.length - 1].stop = 1);
|
|
340
340
|
let l = 0;
|
|
341
|
-
for (let
|
|
342
|
-
if (a
|
|
343
|
-
const u =
|
|
341
|
+
for (let a = 1; a < n.length; a++)
|
|
342
|
+
if (n[a].rawStop !== null || a === n.length - 1) {
|
|
343
|
+
const u = a - l;
|
|
344
344
|
if (u > 1) {
|
|
345
|
-
const h =
|
|
346
|
-
for (let
|
|
347
|
-
|
|
345
|
+
const h = n[l].stop, m = (n[a].stop - h) / u;
|
|
346
|
+
for (let g = 1; g < u; g++)
|
|
347
|
+
n[l + g].stop = h + m * g;
|
|
348
348
|
}
|
|
349
|
-
l =
|
|
349
|
+
l = a;
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
|
-
return { angle: s, stops:
|
|
352
|
+
return { angle: s, stops: n };
|
|
353
353
|
}
|
|
354
|
-
function
|
|
354
|
+
function Qe(i) {
|
|
355
355
|
if (!i || i === "none")
|
|
356
356
|
return null;
|
|
357
|
-
const e =
|
|
357
|
+
const e = Oe(i);
|
|
358
358
|
if (e.length === 0)
|
|
359
359
|
return null;
|
|
360
360
|
const t = e[0].trim(), r = /(rgba?\([^)]+\)|#[0-9a-fA-F]+|[a-zA-Z]+)/, s = t.match(r);
|
|
361
361
|
let c = "transparent", o = t;
|
|
362
362
|
if (s && s[1] !== "inset") {
|
|
363
|
-
const
|
|
364
|
-
(
|
|
363
|
+
const m = s[1];
|
|
364
|
+
(m.startsWith("rgb") || m.startsWith("#") || m === "black" || m === "white" || m === "transparent") && (c = m, o = t.replace(m, "").trim());
|
|
365
365
|
}
|
|
366
366
|
o = o.replace("inset", "").trim();
|
|
367
|
-
const
|
|
368
|
-
return { offsetX: l, offsetY:
|
|
367
|
+
const n = o.split(/\s+/).map((m) => parseFloat(m) || 0), l = n[0] || 0, a = n[1] || 0, u = n[2] || 0, h = n[3] || 0, d = ce(c);
|
|
368
|
+
return { offsetX: l, offsetY: a, blurRadius: u, spreadRadius: h, color: d.color, alpha: d.alpha };
|
|
369
369
|
}
|
|
370
|
-
const
|
|
370
|
+
const et = `varying vec2 vUv;
|
|
371
371
|
varying vec4 vScreenPos;
|
|
372
372
|
void main() {
|
|
373
373
|
vUv = uv;
|
|
374
374
|
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
375
375
|
vScreenPos = gl_Position;
|
|
376
|
-
}`,
|
|
376
|
+
}`, tt = `varying vec2 vUv;
|
|
377
377
|
uniform vec2 uSize;
|
|
378
378
|
uniform vec2 uMeshSize;
|
|
379
379
|
uniform vec4 uShadowColor;
|
|
@@ -532,41 +532,41 @@ void main() {
|
|
|
532
532
|
|
|
533
533
|
// #include <colorspace_fragment>
|
|
534
534
|
}
|
|
535
|
-
`,
|
|
535
|
+
`, rt = `uniform sampler2D uTexture;
|
|
536
536
|
varying vec4 vScreenPos;
|
|
537
537
|
uniform vec2 uTextureRepeat;
|
|
538
|
-
uniform vec2 uTextureOffset;`,
|
|
538
|
+
uniform vec2 uTextureOffset;`, it = `vec2 screenUv = (vScreenPos.xy / vScreenPos.w) * 0.5 + 0.5;
|
|
539
539
|
vec2 resultUv = screenUv;
|
|
540
540
|
|
|
541
|
-
`,
|
|
542
|
-
baseColor = blendSrcOver(baseColor, texColor);`,
|
|
543
|
-
vertexShader:
|
|
544
|
-
fragmentShader:
|
|
545
|
-
},
|
|
546
|
-
declChunk:
|
|
547
|
-
uvChunk:
|
|
548
|
-
baseColorChunk:
|
|
541
|
+
`, st = `vec4 texColor = texture2D(uTexture, resultUv);
|
|
542
|
+
baseColor = blendSrcOver(baseColor, texColor);`, Ie = {
|
|
543
|
+
vertexShader: et,
|
|
544
|
+
fragmentShader: tt
|
|
545
|
+
}, ke = {
|
|
546
|
+
declChunk: rt,
|
|
547
|
+
uvChunk: it,
|
|
548
|
+
baseColorChunk: st
|
|
549
549
|
};
|
|
550
|
-
function
|
|
550
|
+
function ot(i, e, t, r = null, s) {
|
|
551
551
|
var C;
|
|
552
552
|
const c = r !== null || !!i.imageSrc;
|
|
553
553
|
let o = "";
|
|
554
|
-
const
|
|
554
|
+
const n = {};
|
|
555
555
|
if (s != null && s.uniforms)
|
|
556
|
-
for (const [b,
|
|
557
|
-
typeof
|
|
558
|
-
`,
|
|
559
|
-
`,
|
|
560
|
-
`,
|
|
561
|
-
`,
|
|
562
|
-
`,
|
|
563
|
-
`,
|
|
564
|
-
const l = s !== void 0,
|
|
556
|
+
for (const [b, x] of Object.entries(s.uniforms))
|
|
557
|
+
typeof x == "number" ? (o += `uniform float ${b};
|
|
558
|
+
`, n[b] = { value: x }) : Array.isArray(x) ? x.length === 2 ? (o += `uniform vec2 ${b};
|
|
559
|
+
`, n[b] = { value: new w.Vector2(...x) }) : x.length === 3 ? (o += `uniform vec3 ${b};
|
|
560
|
+
`, n[b] = { value: new w.Vector3(...x) }) : x.length === 4 && (o += `uniform vec4 ${b};
|
|
561
|
+
`, n[b] = { value: new w.Vector4(...x) }) : x && typeof x == "object" && x.type ? (o += `uniform ${x.type} ${b};
|
|
562
|
+
`, n[b] = x) : (o += `uniform float ${b};
|
|
563
|
+
`, n[b] = { value: x });
|
|
564
|
+
const l = s !== void 0, a = (c || l ? ke.declChunk : "") + `
|
|
565
565
|
` + o, u = `vec2 screenUv = (vScreenPos.xy / vScreenPos.w) * 0.5 + 0.5;
|
|
566
566
|
`, h = i.isTraveler ? `vec2 resultUv = screenUv;
|
|
567
567
|
` : `vec2 localUv = (p / uSize) + 0.5;
|
|
568
568
|
vec2 resultUv = localUv * uTextureRepeat + uTextureOffset;
|
|
569
|
-
`, d = c || l ? u + h + ((s == null ? void 0 : s.uvModifier) || "") : "",
|
|
569
|
+
`, d = c || l ? u + h + ((s == null ? void 0 : s.uvModifier) || "") : "", m = c || l ? ke.baseColorChunk : "", g = (s == null ? void 0 : s.colorModifier) || "", R = Ie.fragmentShader.replace("#INJECT_DECLARATIONS", a).replace("#INJECT_UV_MODIFIER", d).replace("#INJECT_BASE_COLOR", m).replace("#INJECT_COLOR_MODIFIER", g), v = ce(i.backgroundColor), y = ce(i.borderColor), E = {
|
|
570
570
|
uSize: { value: new w.Vector2(e, t) },
|
|
571
571
|
uMeshSize: { value: new w.Vector2(e, t) },
|
|
572
572
|
uShadowColor: { value: new w.Vector4(0, 0, 0, 0) },
|
|
@@ -575,10 +575,10 @@ vec2 resultUv = localUv * uTextureRepeat + uTextureOffset;
|
|
|
575
575
|
uShadowSpread: { value: 0 },
|
|
576
576
|
uBgColor: {
|
|
577
577
|
value: new w.Vector4(
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
578
|
+
v.color.r,
|
|
579
|
+
v.color.g,
|
|
580
|
+
v.color.b,
|
|
581
|
+
v.alpha
|
|
582
582
|
)
|
|
583
583
|
},
|
|
584
584
|
uBorderColor: {
|
|
@@ -602,20 +602,20 @@ vec2 resultUv = localUv * uTextureRepeat + uTextureOffset;
|
|
|
602
602
|
},
|
|
603
603
|
uGradientStops: { value: new Float32Array(8) }
|
|
604
604
|
};
|
|
605
|
-
|
|
606
|
-
const
|
|
607
|
-
uniforms:
|
|
608
|
-
vertexShader:
|
|
609
|
-
fragmentShader:
|
|
605
|
+
_e(E.uBorderRadius.value, i.borderRadius, Math.min(e, t)), c && (E.uTexture.value = r);
|
|
606
|
+
const L = new w.ShaderMaterial({
|
|
607
|
+
uniforms: re(re({}, E), n),
|
|
608
|
+
vertexShader: Ie.vertexShader,
|
|
609
|
+
fragmentShader: R,
|
|
610
610
|
transparent: !0,
|
|
611
611
|
side: w.FrontSide
|
|
612
612
|
// for better performance
|
|
613
613
|
});
|
|
614
|
-
return i.backgroundImage &&
|
|
614
|
+
return i.backgroundImage && Ee(L, { backgroundImage: i.backgroundImage }), L;
|
|
615
615
|
}
|
|
616
|
-
function
|
|
616
|
+
function at(i, e, t, r, s) {
|
|
617
617
|
const c = le(e.borderWidth);
|
|
618
|
-
|
|
618
|
+
Ee(i, {
|
|
619
619
|
width: t,
|
|
620
620
|
height: r,
|
|
621
621
|
borderRadius: e.borderRadius,
|
|
@@ -628,19 +628,19 @@ function it(i, e, t, r, s) {
|
|
|
628
628
|
boxShadow: e.boxShadow
|
|
629
629
|
});
|
|
630
630
|
}
|
|
631
|
-
function
|
|
631
|
+
function Ee(i, e) {
|
|
632
632
|
var r, s, c;
|
|
633
633
|
if (e.boxShadow !== void 0) {
|
|
634
|
-
const o =
|
|
634
|
+
const o = Qe(e.boxShadow);
|
|
635
635
|
o ? (i.uniforms.uShadowColor.value.set(o.color.r, o.color.g, o.color.b, o.alpha), i.uniforms.uShadowOffset.value.set(o.offsetX, o.offsetY), i.uniforms.uShadowBlur.value = o.blurRadius, i.uniforms.uShadowSpread.value = o.spreadRadius, i.userData.shadowPadding = o.blurRadius + o.spreadRadius + Math.max(Math.abs(o.offsetX), Math.abs(o.offsetY))) : (i.uniforms.uShadowColor.value.w = 0, i.userData.shadowPadding = 0);
|
|
636
636
|
}
|
|
637
637
|
if (e.width !== void 0 && e.height !== void 0 && i.uniforms.uSize.value.set(e.width, e.height), i.uniforms.uMeshSize) {
|
|
638
|
-
const o = i.userData.shadowPadding || 0,
|
|
639
|
-
i.uniforms.uMeshSize.value.set(
|
|
638
|
+
const o = i.userData.shadowPadding || 0, n = e.width !== void 0 ? e.width : i.uniforms.uSize.value.x, l = e.height !== void 0 ? e.height : i.uniforms.uSize.value.y;
|
|
639
|
+
i.uniforms.uMeshSize.value.set(n + o * 2, l + o * 2);
|
|
640
640
|
}
|
|
641
641
|
if (e.borderRadius !== void 0) {
|
|
642
642
|
const o = e.width !== void 0 && e.height !== void 0 ? Math.min(e.width, e.height) : Math.min(i.uniforms.uSize.value.x, i.uniforms.uSize.value.y);
|
|
643
|
-
|
|
643
|
+
_e(i.uniforms.uBorderRadius.value, e.borderRadius, o);
|
|
644
644
|
}
|
|
645
645
|
if (e.borderWidth !== void 0 && (i.uniforms.uBorderWidth.value = e.borderWidth), e.backgroundColor !== void 0)
|
|
646
646
|
if (Array.isArray(e.backgroundColor)) {
|
|
@@ -697,9 +697,9 @@ function xe(i, e) {
|
|
|
697
697
|
e.opacity !== void 0 && (i.uniforms.uOpacity.value = e.opacity), e.bgOpacity !== void 0 && (i.uniforms.uBgColor.value.w = e.bgOpacity), e.borderOpacity !== void 0 && (i.uniforms.uBorderColor.value.w = e.borderOpacity), i.uniforms.uTexture && e.texture !== void 0 && (i.uniforms.uTexture.value = e.texture);
|
|
698
698
|
const t = e.texture !== void 0 ? e.texture : (r = i.uniforms.uTexture) == null ? void 0 : r.value;
|
|
699
699
|
if (t && (t.image instanceof ImageBitmap || t.image instanceof HTMLImageElement || t.image instanceof HTMLCanvasElement)) {
|
|
700
|
-
const o = t.image.naturalWidth || t.image.videoWidth || t.image.width,
|
|
701
|
-
if (o &&
|
|
702
|
-
const u = o /
|
|
700
|
+
const o = t.image.naturalWidth || t.image.videoWidth || t.image.width, n = t.image.naturalHeight || t.image.videoHeight || t.image.height, l = (s = e.width) != null ? s : i.uniforms.uSize.value.x, a = (c = e.height) != null ? c : i.uniforms.uSize.value.y;
|
|
701
|
+
if (o && n && l && a) {
|
|
702
|
+
const u = o / n, h = l / a;
|
|
703
703
|
if (u > h) {
|
|
704
704
|
const d = h / u;
|
|
705
705
|
i.uniforms.uTextureRepeat.value.set(d, 1), i.uniforms.uTextureOffset.value.set((1 - d) / 2, 0);
|
|
@@ -711,28 +711,28 @@ function xe(i, e) {
|
|
|
711
711
|
} else
|
|
712
712
|
i.uniforms.uTextureRepeat && (i.uniforms.uTextureRepeat.value.set(1, 1), i.uniforms.uTextureOffset.value.set(0, 0));
|
|
713
713
|
if (e.backgroundImage !== void 0) {
|
|
714
|
-
const o =
|
|
714
|
+
const o = Ze(e.backgroundImage);
|
|
715
715
|
if (o) {
|
|
716
716
|
i.uniforms.uGradientCount.value = o.stops.length, i.uniforms.uGradientAngle.value = o.angle;
|
|
717
|
-
for (let
|
|
718
|
-
if (
|
|
719
|
-
const l = o.stops[
|
|
720
|
-
i.uniforms.uGradientColors.value[
|
|
717
|
+
for (let n = 0; n < 8; n++)
|
|
718
|
+
if (n < o.stops.length) {
|
|
719
|
+
const l = o.stops[n];
|
|
720
|
+
i.uniforms.uGradientColors.value[n].set(
|
|
721
721
|
l.color.r,
|
|
722
722
|
l.color.g,
|
|
723
723
|
l.color.b,
|
|
724
724
|
l.alpha
|
|
725
|
-
), i.uniforms.uGradientStops.value[
|
|
725
|
+
), i.uniforms.uGradientStops.value[n] = l.stop;
|
|
726
726
|
} else
|
|
727
|
-
i.uniforms.uGradientColors.value[
|
|
727
|
+
i.uniforms.uGradientColors.value[n].set(0, 0, 0, 0), i.uniforms.uGradientStops.value[n] = 1;
|
|
728
728
|
} else
|
|
729
729
|
i.uniforms.uGradientCount.value = 0;
|
|
730
730
|
}
|
|
731
731
|
for (const o of Object.keys(e))
|
|
732
732
|
o !== "width" && o !== "height" && o !== "borderRadius" && o !== "borderWidth" && o !== "backgroundColor" && o !== "borderColor" && o !== "opacity" && o !== "bgOpacity" && o !== "borderOpacity" && o !== "texture" && o !== "backgroundImage" && o !== "boxShadow" && i.uniforms[o] !== void 0 && (i.uniforms[o].value !== void 0 && i.uniforms[o].value !== null && typeof i.uniforms[o].value.set == "function" ? Array.isArray(e[o]) ? i.uniforms[o].value.set(...e[o]) : e[o] !== void 0 && (e[o].copy ? i.uniforms[o].value.copy(e[o]) : i.uniforms[o].value = e[o]) : i.uniforms[o].value = e[o]);
|
|
733
733
|
}
|
|
734
|
-
function
|
|
735
|
-
var l,
|
|
734
|
+
function _e(i, e, t = 0) {
|
|
735
|
+
var l, a, u, h;
|
|
736
736
|
if (e == null) {
|
|
737
737
|
i.set(0, 0, 0, 0);
|
|
738
738
|
return;
|
|
@@ -745,18 +745,18 @@ function Be(i, e, t = 0) {
|
|
|
745
745
|
i.set(e[0], e[1], e[2], e[3]);
|
|
746
746
|
return;
|
|
747
747
|
}
|
|
748
|
-
const r = e.split("/")[0].trim().split(/\s+/), s = le(r[0], t), c = le((l = r[1]) != null ? l : r[0], t), o = le((
|
|
749
|
-
i.set(s, c, o,
|
|
748
|
+
const r = e.split("/")[0].trim().split(/\s+/), s = le(r[0], t), c = le((l = r[1]) != null ? l : r[0], t), o = le((a = r[2]) != null ? a : r[0], t), n = le((h = (u = r[3]) != null ? u : r[1]) != null ? h : r[0], t);
|
|
749
|
+
i.set(s, c, o, n);
|
|
750
750
|
}
|
|
751
|
-
const
|
|
752
|
-
create(i, e, t, r, s, c = 2, o = null,
|
|
753
|
-
return i === "BOX" ?
|
|
751
|
+
const H = {
|
|
752
|
+
create(i, e, t, r, s, c = 2, o = null, n) {
|
|
753
|
+
return i === "BOX" ? ot(
|
|
754
754
|
e,
|
|
755
755
|
r,
|
|
756
756
|
s,
|
|
757
757
|
o,
|
|
758
|
-
|
|
759
|
-
) : i === "TEXT" ? new
|
|
758
|
+
n
|
|
759
|
+
) : i === "TEXT" ? new Je(
|
|
760
760
|
t || "",
|
|
761
761
|
e,
|
|
762
762
|
r,
|
|
@@ -764,13 +764,13 @@ const W = {
|
|
|
764
764
|
c
|
|
765
765
|
) : new w.MeshBasicMaterial({ visible: !1 });
|
|
766
766
|
},
|
|
767
|
-
update(i, e, t, r, s, c, o = 2,
|
|
768
|
-
e === "BOX" ?
|
|
767
|
+
update(i, e, t, r, s, c, o = 2, n) {
|
|
768
|
+
e === "BOX" ? at(
|
|
769
769
|
i,
|
|
770
770
|
t,
|
|
771
771
|
s,
|
|
772
772
|
c,
|
|
773
|
-
|
|
773
|
+
n
|
|
774
774
|
) : e === "TEXT" && i.updateText(
|
|
775
775
|
r || "",
|
|
776
776
|
t,
|
|
@@ -780,16 +780,16 @@ const W = {
|
|
|
780
780
|
);
|
|
781
781
|
},
|
|
782
782
|
forceUpdateUniforms(i, e) {
|
|
783
|
-
|
|
783
|
+
Ee(i, e);
|
|
784
784
|
}
|
|
785
785
|
};
|
|
786
|
-
class
|
|
786
|
+
class nt {
|
|
787
787
|
constructor(e, t = !0) {
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
788
|
+
p(this, "observer");
|
|
789
|
+
p(this, "textures", /* @__PURE__ */ new WeakMap());
|
|
790
|
+
p(this, "loadStatus", /* @__PURE__ */ new WeakMap());
|
|
791
|
+
p(this, "elementUrls", /* @__PURE__ */ new WeakMap());
|
|
792
|
+
p(this, "onUpdate");
|
|
793
793
|
this.onUpdate = e, t && (this.observer = new IntersectionObserver(
|
|
794
794
|
(r) => {
|
|
795
795
|
for (const s of r) {
|
|
@@ -809,7 +809,7 @@ class st {
|
|
|
809
809
|
e.nodeType === Node.ELEMENT_NODE && this.observer && this.observer.unobserve(e), this.disposeTexture(e), this.elementUrls.delete(e), this.loadStatus.delete(e);
|
|
810
810
|
}
|
|
811
811
|
loadTexture(e) {
|
|
812
|
-
return
|
|
812
|
+
return Le(this, null, function* () {
|
|
813
813
|
if (this.loadStatus.get(e) || this.textures.has(e))
|
|
814
814
|
return;
|
|
815
815
|
const t = this.elementUrls.get(e);
|
|
@@ -819,8 +819,8 @@ class st {
|
|
|
819
819
|
let r;
|
|
820
820
|
if (t.startsWith("data:image/svg+xml"))
|
|
821
821
|
r = yield new Promise((c, o) => {
|
|
822
|
-
const
|
|
823
|
-
|
|
822
|
+
const n = new Image();
|
|
823
|
+
n.onload = () => c(n), n.onerror = o, n.src = t;
|
|
824
824
|
});
|
|
825
825
|
else {
|
|
826
826
|
const o = yield (yield fetch(t)).blob();
|
|
@@ -851,35 +851,35 @@ class st {
|
|
|
851
851
|
this.observer && this.observer.disconnect();
|
|
852
852
|
}
|
|
853
853
|
}
|
|
854
|
-
class
|
|
854
|
+
class lt {
|
|
855
855
|
constructor(e, t, r, s) {
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
{ length:
|
|
856
|
+
p(this, "canvas");
|
|
857
|
+
p(this, "scene");
|
|
858
|
+
p(this, "camera");
|
|
859
|
+
p(this, "renderer");
|
|
860
|
+
p(this, "renderTargets", []);
|
|
861
|
+
p(this, "renderOrder", 0);
|
|
862
|
+
p(this, "qualityFactor", 2);
|
|
863
|
+
p(this, "mode", "overlay");
|
|
864
|
+
p(this, "canvasSize", "viewport");
|
|
865
|
+
p(this, "clipArea", 1);
|
|
866
|
+
p(this, "targetLayer", "base");
|
|
867
|
+
p(this, "overscan", 200);
|
|
868
|
+
p(this, "target");
|
|
869
|
+
p(this, "mountContainer");
|
|
870
|
+
p(this, "registry");
|
|
871
|
+
p(this, "targetRect");
|
|
872
|
+
p(this, "travelersByLayer", Array.from(
|
|
873
|
+
{ length: V.MAX_LAYERS },
|
|
874
874
|
() => /* @__PURE__ */ new Set()
|
|
875
875
|
));
|
|
876
|
-
|
|
876
|
+
p(this, "textureManager");
|
|
877
877
|
// private meshMap: Map<HTMLElement, THREE.Mesh> = new Map();
|
|
878
|
-
|
|
879
|
-
var
|
|
880
|
-
this.target = e, this.mountContainer = r, this.registry = s, this.mode = (
|
|
881
|
-
const
|
|
882
|
-
|
|
878
|
+
p(this, "fixedMeshes", /* @__PURE__ */ new Set());
|
|
879
|
+
var n, l, a, u, h;
|
|
880
|
+
this.target = e, this.mountContainer = r, this.registry = s, this.mode = (n = t.mode) != null ? n : "overlay", this.canvasSize = (l = t.canvasSize) != null ? l : "viewport", this.clipArea = (a = t.travelerClipArea) != null ? a : 1, this.targetLayer = (u = t.layer) != null ? u : "base", this.textureManager = new nt((d, m) => {
|
|
881
|
+
const g = this.registry.get(d);
|
|
882
|
+
g && g.material instanceof w.ShaderMaterial && H.forceUpdateUniforms(g.material, { texture: m });
|
|
883
883
|
}, this.isViewport), this.canvas = document.createElement("canvas"), this.scene = new w.Scene(), this.targetRect = this.target.getBoundingClientRect();
|
|
884
884
|
const c = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, o = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height;
|
|
885
885
|
this.camera = new w.OrthographicCamera(
|
|
@@ -901,10 +901,10 @@ class ot {
|
|
|
901
901
|
return this.mode === "overlay" && this.canvasSize === "viewport";
|
|
902
902
|
}
|
|
903
903
|
getSceneLayer() {
|
|
904
|
-
return typeof this.targetLayer == "number" ? this.targetLayer : this.targetLayer === "selected" ?
|
|
904
|
+
return typeof this.targetLayer == "number" ? this.targetLayer : this.targetLayer === "selected" ? O.SELECTED : O.BASE;
|
|
905
905
|
}
|
|
906
906
|
createRenderTarget() {
|
|
907
|
-
for (let e = 0; e <
|
|
907
|
+
for (let e = 0; e < V.MAX_LAYERS; e++) {
|
|
908
908
|
const t = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, r = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height;
|
|
909
909
|
this.renderTargets.push(
|
|
910
910
|
new w.WebGLRenderTarget(
|
|
@@ -951,12 +951,12 @@ class ot {
|
|
|
951
951
|
updateUniforms(e, t) {
|
|
952
952
|
const r = this.registry.get(e);
|
|
953
953
|
r && (r.traverse((s) => {
|
|
954
|
-
s.isMesh && s.material &&
|
|
954
|
+
s.isMesh && s.material && H.forceUpdateUniforms(
|
|
955
955
|
s.material,
|
|
956
956
|
t
|
|
957
957
|
);
|
|
958
958
|
}), r.userData.nativeMesh && r.userData.nativeMesh.traverse((s) => {
|
|
959
|
-
s.isMesh && s.material &&
|
|
959
|
+
s.isMesh && s.material && H.forceUpdateUniforms(
|
|
960
960
|
s.material,
|
|
961
961
|
t
|
|
962
962
|
);
|
|
@@ -972,8 +972,8 @@ class ot {
|
|
|
972
972
|
this.camera.left = e / -2, this.camera.right = e / 2, this.camera.top = t / 2, this.camera.bottom = t / -2, this.camera.updateProjectionMatrix();
|
|
973
973
|
}
|
|
974
974
|
syncScene(e, t) {
|
|
975
|
-
const r = this.target.getBoundingClientRect(), s = this.isViewport ? window.innerWidth + this.overscan * 2 : r.width, c = this.isViewport ? window.innerHeight + this.overscan * 2 : r.height, o = this.isViewport ? this.canvas.clientWidth : this.targetRect.width,
|
|
976
|
-
l ? (this.targetRect = r, this.setSize(s, c), this.updateCanvasLayout()) :
|
|
975
|
+
const r = this.target.getBoundingClientRect(), s = this.isViewport ? window.innerWidth + this.overscan * 2 : r.width, c = this.isViewport ? window.innerHeight + this.overscan * 2 : r.height, o = this.isViewport ? this.canvas.clientWidth : this.targetRect.width, n = this.isViewport ? this.canvas.clientHeight : this.targetRect.height, l = Math.abs(s - o) > 0.1 || Math.abs(c - n) > 0.1, a = this.mode === "overlay" && (Math.abs(r.top - this.targetRect.top) > 0.1 || Math.abs(r.left - this.targetRect.left) > 0.1);
|
|
976
|
+
l ? (this.targetRect = r, this.setSize(s, c), this.updateCanvasLayout()) : a ? (this.targetRect = r, this.updateCanvasLayout()) : this.targetRect = r, this.renderOrder = 0, this.reconcileNode(e), t.size > 0 && t.forEach((u) => {
|
|
977
977
|
const h = this.registry.get(u);
|
|
978
978
|
if (h) {
|
|
979
979
|
this.scene.remove(h);
|
|
@@ -982,7 +982,7 @@ class ot {
|
|
|
982
982
|
this.fixedMeshes.delete(h), h.geometry.dispose(), h.userData.nativeMesh && (this.scene.remove(h.userData.nativeMesh), Array.isArray(h.userData.nativeMesh.material) ? h.userData.nativeMesh.material.forEach(
|
|
983
983
|
(d) => d.dispose()
|
|
984
984
|
) : h.userData.nativeMesh.material.dispose(), h.userData.nativeMesh.geometry.dispose()), h.traverse((d) => {
|
|
985
|
-
d instanceof w.Mesh && (d.geometry && d.geometry.dispose(), d.material && (Array.isArray(d.material) ? d.material.forEach((
|
|
985
|
+
d instanceof w.Mesh && (d.geometry && d.geometry.dispose(), d.material && (Array.isArray(d.material) ? d.material.forEach((m) => m.dispose()) : d.material.dispose()));
|
|
986
986
|
}), this.registry.remove(u), this.textureManager.unregister(u);
|
|
987
987
|
}
|
|
988
988
|
});
|
|
@@ -996,20 +996,20 @@ class ot {
|
|
|
996
996
|
let t = this.registry.get(e.element);
|
|
997
997
|
const r = JSON.stringify(e.shaderHooks || null);
|
|
998
998
|
if (t && t.userData.shaderHash !== r && (this.scene.remove(t), t.geometry.dispose(), t.material instanceof w.Material && t.material.dispose(), this.registry.remove(e.element), t = void 0), !t) {
|
|
999
|
-
const o = new w.PlaneGeometry(1, 1),
|
|
999
|
+
const o = new w.PlaneGeometry(1, 1), n = e.isTraveler ? (s = this.renderTargets[e.captureLayer - 2]) == null ? void 0 : s.texture : this.textureManager.get(e.element), l = H.create(
|
|
1000
1000
|
"BOX",
|
|
1001
1001
|
e.styles,
|
|
1002
1002
|
"",
|
|
1003
1003
|
e.rect.width,
|
|
1004
1004
|
e.rect.height,
|
|
1005
1005
|
this.qualityFactor,
|
|
1006
|
-
|
|
1006
|
+
n,
|
|
1007
1007
|
e.shaderHooks
|
|
1008
1008
|
);
|
|
1009
1009
|
t = new w.Mesh(o, l), e.type === "TEXT" && (t.name = "BG_MESH"), this.scene.add(t), this.registry.register(e.element, t), t.userData.baseMaterial = l, t.userData.domElement = e.element, t.userData.shaderHash = r;
|
|
1010
1010
|
}
|
|
1011
1011
|
if (t.userData.clipElements = e.clipElements, (c = e.nativeStyles) != null && c.transform ? t.userData.nativeTransform = e.nativeStyles.transform : t.userData.nativeTransform = void 0, this.updateMeshProperties(t, e), this.updateMeshLayers(t, e), e.isTraveler)
|
|
1012
|
-
for (let o = 0; o <
|
|
1012
|
+
for (let o = 0; o < V.MAX_LAYERS; o++)
|
|
1013
1013
|
o === e.captureLayer - 2 ? this.travelersByLayer[o].add(t) : this.travelersByLayer[o].delete(t);
|
|
1014
1014
|
else
|
|
1015
1015
|
for (const o of this.travelersByLayer)
|
|
@@ -1025,35 +1025,35 @@ class ot {
|
|
|
1025
1025
|
));
|
|
1026
1026
|
}
|
|
1027
1027
|
reconcileTextChild(e, t, r) {
|
|
1028
|
-
var
|
|
1028
|
+
var a;
|
|
1029
1029
|
const s = t.textLines || [
|
|
1030
1030
|
{ text: t.textContent || "", rect: t.rect }
|
|
1031
|
-
], c = r ? t.nativeStyles : t.textStyles, o = JSON.stringify(c) + t.textContent + s.map((u) => u.text).join("|"),
|
|
1032
|
-
if (t.dirtyMask &
|
|
1031
|
+
], c = r ? t.nativeStyles : t.textStyles, o = JSON.stringify(c) + t.textContent + s.map((u) => u.text).join("|"), n = (a = e.userData) == null ? void 0 : a.textChildStyleHash;
|
|
1032
|
+
if (t.dirtyMask & Se || o !== n) {
|
|
1033
1033
|
e.children.filter(
|
|
1034
|
-
(
|
|
1035
|
-
).forEach((
|
|
1036
|
-
var
|
|
1037
|
-
const
|
|
1038
|
-
(
|
|
1034
|
+
(g) => g.name.startsWith("TEXT_CHILD")
|
|
1035
|
+
).forEach((g) => {
|
|
1036
|
+
var v;
|
|
1037
|
+
const R = g;
|
|
1038
|
+
(v = R.material.map) == null || v.dispose(), R.geometry.dispose(), e.remove(R);
|
|
1039
1039
|
});
|
|
1040
|
-
const h = t.rect, d = h.x + h.width / 2,
|
|
1041
|
-
s.forEach((
|
|
1042
|
-
const
|
|
1040
|
+
const h = t.rect, d = h.x + h.width / 2, m = h.y + h.height / 2;
|
|
1041
|
+
s.forEach((g, R) => {
|
|
1042
|
+
const v = H.create(
|
|
1043
1043
|
"TEXT",
|
|
1044
1044
|
c,
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1045
|
+
g.text,
|
|
1046
|
+
g.rect.width,
|
|
1047
|
+
g.rect.height,
|
|
1048
1048
|
this.qualityFactor
|
|
1049
|
-
), y = new w.PlaneGeometry(1, 1), E = new w.Mesh(y,
|
|
1050
|
-
E.name = `TEXT_CHILD_${
|
|
1051
|
-
const
|
|
1052
|
-
E.scale.set(
|
|
1053
|
-
const b =
|
|
1049
|
+
), y = new w.PlaneGeometry(1, 1), E = new w.Mesh(y, v);
|
|
1050
|
+
E.name = `TEXT_CHILD_${R}`;
|
|
1051
|
+
const L = t.rect.width === 0 ? 1 : g.rect.width / t.rect.width, C = t.rect.height === 0 ? 1 : g.rect.height / t.rect.height;
|
|
1052
|
+
E.scale.set(L, C, 1);
|
|
1053
|
+
const b = g.rect.x + g.rect.width / 2, x = g.rect.y + g.rect.height / 2, X = b - d, Y = -(x - m);
|
|
1054
1054
|
E.position.set(
|
|
1055
1055
|
t.rect.width === 0 ? 0 : X / t.rect.width,
|
|
1056
|
-
t.rect.height === 0 ? 0 :
|
|
1056
|
+
t.rect.height === 0 ? 0 : Y / t.rect.height,
|
|
1057
1057
|
5e-3
|
|
1058
1058
|
), e.add(E);
|
|
1059
1059
|
}), e.userData.textChildStyleHash = o;
|
|
@@ -1063,22 +1063,22 @@ class ot {
|
|
|
1063
1063
|
return;
|
|
1064
1064
|
const h = u;
|
|
1065
1065
|
if (r && t.nativeLayer !== void 0)
|
|
1066
|
-
h.layers.set(
|
|
1066
|
+
h.layers.set(O.HIDDEN), t.visibility & $ && h.layers.enable(O.getCaptureLayer(t.nativeLayer));
|
|
1067
1067
|
else {
|
|
1068
|
-
const d = t.visibility &
|
|
1069
|
-
if (h.layers.set(d), t.visibility &
|
|
1068
|
+
const d = t.visibility & $ ? O.BASE : O.HIDDEN;
|
|
1069
|
+
if (h.layers.set(d), t.visibility & ne && h.layers.enable(O.SELECTED), t.visibility & $)
|
|
1070
1070
|
if (!r && t.nativeLayer !== void 0 && t.nativeStyles !== void 0)
|
|
1071
|
-
for (let
|
|
1072
|
-
|
|
1071
|
+
for (let m = t.captureLayer; m <= V.MAX_LAYERS + 1; m++)
|
|
1072
|
+
m !== t.nativeLayer && h.layers.enable(O.getCaptureLayer(m));
|
|
1073
1073
|
else
|
|
1074
|
-
for (let
|
|
1075
|
-
h.layers.enable(
|
|
1074
|
+
for (let m = t.captureLayer; m <= V.MAX_LAYERS + 1; m++)
|
|
1075
|
+
h.layers.enable(O.getCaptureLayer(m));
|
|
1076
1076
|
}
|
|
1077
1077
|
});
|
|
1078
1078
|
}
|
|
1079
1079
|
updateMeshProperties(e, t) {
|
|
1080
|
-
var C, b,
|
|
1081
|
-
const { rect: r, styles: s } = t, c = this.renderer.getPixelRatio(), o = this.renderer.domElement.width / c,
|
|
1080
|
+
var C, b, x, X, Y;
|
|
1081
|
+
const { rect: r, styles: s } = t, c = this.renderer.getPixelRatio(), o = this.renderer.domElement.width / c, n = this.renderer.domElement.height / c;
|
|
1082
1082
|
e.material = e.userData.baseMaterial;
|
|
1083
1083
|
let l = ((C = e.material.userData) == null ? void 0 : C.shadowPadding) || 0;
|
|
1084
1084
|
e.scale.set(r.width + l * 2, r.height + l * 2, 1), e.userData.domRect = {
|
|
@@ -1087,30 +1087,30 @@ class ot {
|
|
|
1087
1087
|
width: r.width,
|
|
1088
1088
|
height: r.height
|
|
1089
1089
|
};
|
|
1090
|
-
const
|
|
1090
|
+
const a = 1e-3;
|
|
1091
1091
|
this.renderOrder++;
|
|
1092
1092
|
const u = this.targetRect.left + window.scrollX, h = this.targetRect.top + window.scrollY;
|
|
1093
|
-
let d,
|
|
1093
|
+
let d, m;
|
|
1094
1094
|
if (this.isViewport)
|
|
1095
|
-
d = r.x - window.innerWidth / 2 + r.width / 2,
|
|
1095
|
+
d = r.x - window.innerWidth / 2 + r.width / 2, m = -r.y + window.innerHeight / 2 - r.height / 2;
|
|
1096
1096
|
else {
|
|
1097
|
-
const
|
|
1098
|
-
d =
|
|
1097
|
+
const A = r.x - u, N = r.y - h;
|
|
1098
|
+
d = A - o / 2 + r.width / 2, m = -N + n / 2 - r.height / 2;
|
|
1099
1099
|
}
|
|
1100
1100
|
e.position.set(
|
|
1101
1101
|
d,
|
|
1102
|
-
|
|
1103
|
-
s.zIndex + this.renderOrder *
|
|
1102
|
+
m,
|
|
1103
|
+
s.zIndex + this.renderOrder * a
|
|
1104
1104
|
);
|
|
1105
|
-
const
|
|
1106
|
-
e.userData.basePosition = { x: d, y:
|
|
1107
|
-
const
|
|
1108
|
-
let E = 0,
|
|
1105
|
+
const g = r.x, R = r.y;
|
|
1106
|
+
e.userData.basePosition = { x: d, y: m }, e.userData.originalBasePosition = { x: d, y: m }, e.userData.baseSize = { width: r.width, height: r.height }, e.userData.baseDOM = { x: g, y: R }, e.userData.isFixed = t.isFixed, e.userData.initialScroll = { x: window.scrollX, y: window.scrollY };
|
|
1107
|
+
const v = t.element.nodeType === Node.TEXT_NODE ? t.element.parentElement : t.element, y = window.getComputedStyle(v);
|
|
1108
|
+
let E = 0, L = 0;
|
|
1109
1109
|
if (y.transform && y.transform !== "none") {
|
|
1110
|
-
const
|
|
1111
|
-
E =
|
|
1110
|
+
const A = new DOMMatrix(y.transform);
|
|
1111
|
+
E = A.m41, L = A.m42;
|
|
1112
1112
|
}
|
|
1113
|
-
if (e.userData.baseTransform = { x: E, y:
|
|
1113
|
+
if (e.userData.baseTransform = { x: E, y: L }, delete e.userData.originRatioX, delete e.userData.originRatioY, H.update(
|
|
1114
1114
|
e.userData.baseMaterial,
|
|
1115
1115
|
"BOX",
|
|
1116
1116
|
s,
|
|
@@ -1121,127 +1121,127 @@ class ot {
|
|
|
1121
1121
|
t.isTraveler ? (b = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : b.texture : this.textureManager.get(t.element)
|
|
1122
1122
|
), t.nativeStyles && t.nativeRect) {
|
|
1123
1123
|
if (!e.userData.nativeMesh) {
|
|
1124
|
-
const
|
|
1124
|
+
const F = H.create(
|
|
1125
1125
|
"BOX",
|
|
1126
1126
|
t.nativeStyles,
|
|
1127
1127
|
"",
|
|
1128
1128
|
t.nativeRect.width,
|
|
1129
1129
|
t.nativeRect.height,
|
|
1130
1130
|
this.qualityFactor,
|
|
1131
|
-
t.isTraveler ? (
|
|
1131
|
+
t.isTraveler ? (x = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : x.texture : t.nativeStyles.imageSrc && t.nativeStyles.imageSrc !== t.styles.imageSrc ? new w.TextureLoader().load(t.nativeStyles.imageSrc) : this.textureManager.get(t.element),
|
|
1132
1132
|
t.shaderHooks
|
|
1133
|
-
),
|
|
1134
|
-
t.type === "TEXT" && (
|
|
1133
|
+
), W = new w.Mesh(e.geometry, F);
|
|
1134
|
+
t.type === "TEXT" && (W.name = "BG_MESH"), this.scene.add(W), e.userData.nativeMesh = W;
|
|
1135
1135
|
}
|
|
1136
|
-
const
|
|
1137
|
-
let
|
|
1136
|
+
const A = e.userData.nativeMesh;
|
|
1137
|
+
let N, U;
|
|
1138
1138
|
if (this.isViewport)
|
|
1139
|
-
|
|
1139
|
+
N = t.nativeRect.x - window.innerWidth / 2 + t.nativeRect.width / 2, U = -t.nativeRect.y + window.innerHeight / 2 - t.nativeRect.height / 2;
|
|
1140
1140
|
else {
|
|
1141
|
-
const
|
|
1142
|
-
|
|
1141
|
+
const F = t.nativeRect.x - u, W = t.nativeRect.y - h;
|
|
1142
|
+
N = F - o / 2 + t.nativeRect.width / 2, U = -W + n / 2 - t.nativeRect.height / 2;
|
|
1143
1143
|
}
|
|
1144
|
-
let
|
|
1144
|
+
let K = t.nativeRect.width, J = t.nativeRect.height, M = N, B = U;
|
|
1145
1145
|
if (t.nativeStyles.transform) {
|
|
1146
|
-
const
|
|
1147
|
-
if (
|
|
1148
|
-
let
|
|
1149
|
-
|
|
1150
|
-
}
|
|
1151
|
-
const ie = B.match(/scaleX\(([\d.]+%?)\)/);
|
|
1152
|
-
if (ie) {
|
|
1153
|
-
let x = parseFloat(ie[1]);
|
|
1154
|
-
ie[1].includes("%") && (x /= 100), J *= x;
|
|
1146
|
+
const F = t.nativeStyles.transform, W = F.match(/scale\(([\d.]+%?)\)/);
|
|
1147
|
+
if (W) {
|
|
1148
|
+
let f = parseFloat(W[1]);
|
|
1149
|
+
W[1].includes("%") && (f /= 100), K *= f, J *= f;
|
|
1155
1150
|
}
|
|
1156
|
-
const se =
|
|
1151
|
+
const se = F.match(/scaleX\(([\d.]+%?)\)/);
|
|
1157
1152
|
if (se) {
|
|
1158
|
-
let
|
|
1159
|
-
se[1].includes("%") && (
|
|
1153
|
+
let f = parseFloat(se[1]);
|
|
1154
|
+
se[1].includes("%") && (f /= 100), K *= f;
|
|
1160
1155
|
}
|
|
1161
|
-
const oe =
|
|
1156
|
+
const oe = F.match(/scaleY\(([\d.]+%?)\)/);
|
|
1162
1157
|
if (oe) {
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
x.includes("%") && (_ = _ / 100 * t.nativeRect.width);
|
|
1166
|
-
let D = parseFloat(T);
|
|
1167
|
-
T.includes("%") && (D = D / 100 * t.nativeRect.height), M += _, O -= D;
|
|
1158
|
+
let f = parseFloat(oe[1]);
|
|
1159
|
+
oe[1].includes("%") && (f /= 100), J *= f;
|
|
1168
1160
|
}
|
|
1169
|
-
const
|
|
1161
|
+
const ae = F.match(/translate\(([^,]+),\s*([^)]+)\)/);
|
|
1162
|
+
if (ae) {
|
|
1163
|
+
const f = ae[1].trim(), S = ae[2].trim();
|
|
1164
|
+
let I = parseFloat(f);
|
|
1165
|
+
f.includes("%") && (I = I / 100 * t.nativeRect.width);
|
|
1166
|
+
let _ = parseFloat(S);
|
|
1167
|
+
S.includes("%") && (_ = _ / 100 * t.nativeRect.height), M += I, B -= _;
|
|
1168
|
+
}
|
|
1169
|
+
const he = F.match(/translateX\(([^)]+)\)/);
|
|
1170
1170
|
if (he) {
|
|
1171
|
-
const
|
|
1172
|
-
let
|
|
1173
|
-
|
|
1171
|
+
const f = he[1].trim();
|
|
1172
|
+
let S = parseFloat(f);
|
|
1173
|
+
f.includes("%") && (S = S / 100 * t.nativeRect.width), M += S;
|
|
1174
1174
|
}
|
|
1175
|
-
const
|
|
1176
|
-
if (
|
|
1177
|
-
const
|
|
1178
|
-
let
|
|
1179
|
-
|
|
1175
|
+
const de = F.match(/translateY\(([^)]+)\)/);
|
|
1176
|
+
if (de) {
|
|
1177
|
+
const f = de[1].trim();
|
|
1178
|
+
let S = parseFloat(f);
|
|
1179
|
+
f.includes("%") && (S = S / 100 * t.nativeRect.height), B -= S;
|
|
1180
1180
|
}
|
|
1181
1181
|
}
|
|
1182
|
-
let
|
|
1183
|
-
|
|
1182
|
+
let Z = ((X = A.material.userData) == null ? void 0 : X.shadowPadding) || 0;
|
|
1183
|
+
A.scale.set(K + Z * 2, J + Z * 2, 1), A.position.set(
|
|
1184
1184
|
M,
|
|
1185
|
-
|
|
1186
|
-
t.nativeStyles.zIndex + this.renderOrder *
|
|
1187
|
-
),
|
|
1188
|
-
|
|
1185
|
+
B,
|
|
1186
|
+
t.nativeStyles.zIndex + this.renderOrder * a
|
|
1187
|
+
), H.update(
|
|
1188
|
+
A.material,
|
|
1189
1189
|
"BOX",
|
|
1190
1190
|
t.nativeStyles,
|
|
1191
1191
|
"",
|
|
1192
1192
|
t.nativeRect.width,
|
|
1193
1193
|
t.nativeRect.height,
|
|
1194
1194
|
this.qualityFactor,
|
|
1195
|
-
t.isTraveler ? (
|
|
1195
|
+
t.isTraveler ? (Y = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : Y.texture : A.material.uniforms.uTexture.value || this.textureManager.get(t.element)
|
|
1196
1196
|
);
|
|
1197
1197
|
} else
|
|
1198
1198
|
e.userData.nativeMesh && (this.scene.remove(e.userData.nativeMesh), e.userData.nativeMesh.material instanceof w.Material && e.userData.nativeMesh.material.dispose(), delete e.userData.nativeMesh);
|
|
1199
1199
|
}
|
|
1200
1200
|
updateMeshLayers(e, t) {
|
|
1201
|
-
const r = t.visibility &
|
|
1202
|
-
if (e.layers.set(r), t.visibility &
|
|
1201
|
+
const r = t.visibility & $ ? O.BASE : O.HIDDEN;
|
|
1202
|
+
if (e.layers.set(r), t.visibility & ne && e.layers.enable(O.SELECTED), e.userData.nativeMesh && t.nativeLayer !== void 0) {
|
|
1203
1203
|
const s = e.userData.nativeMesh;
|
|
1204
|
-
if (s.layers.set(
|
|
1205
|
-
s.layers.enable(
|
|
1206
|
-
for (let c = t.captureLayer; c <=
|
|
1207
|
-
c !== t.nativeLayer && e.layers.enable(
|
|
1204
|
+
if (s.layers.set(O.HIDDEN), t.visibility & $) {
|
|
1205
|
+
s.layers.enable(O.getCaptureLayer(t.nativeLayer));
|
|
1206
|
+
for (let c = t.captureLayer; c <= V.MAX_LAYERS + 1; c++)
|
|
1207
|
+
c !== t.nativeLayer && e.layers.enable(O.getCaptureLayer(c));
|
|
1208
1208
|
}
|
|
1209
|
-
} else if (t.visibility &
|
|
1210
|
-
for (let s = t.captureLayer; s <=
|
|
1211
|
-
e.layers.enable(
|
|
1209
|
+
} else if (t.visibility & $)
|
|
1210
|
+
for (let s = t.captureLayer; s <= V.MAX_LAYERS + 1; s++)
|
|
1211
|
+
e.layers.enable(O.getCaptureLayer(s));
|
|
1212
1212
|
}
|
|
1213
1213
|
captureRenderTarget(e, t, r) {
|
|
1214
1214
|
if (e.size === 0 || !r)
|
|
1215
1215
|
return;
|
|
1216
1216
|
const s = new w.Color(), c = this.renderer.getClearAlpha();
|
|
1217
1217
|
this.renderer.getClearColor(s), this.renderer.setClearColor(0, 0), this.renderer.setRenderTarget(r), this.renderer.clear(), this.renderer.autoClear = !1, this.renderer.setScissorTest(!0), this.camera.layers.set(t);
|
|
1218
|
-
const o = new w.Vector3(),
|
|
1218
|
+
const o = new w.Vector3(), n = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, l = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height, a = this.renderer.getPixelRatio();
|
|
1219
1219
|
for (const u of e) {
|
|
1220
1220
|
o.setFromMatrixPosition(u.matrixWorld), o.project(this.camera);
|
|
1221
|
-
const h = (o.x + 1) / 2 *
|
|
1222
|
-
let
|
|
1223
|
-
typeof this.clipArea == "number" ?
|
|
1224
|
-
const
|
|
1225
|
-
this.renderer.setScissor(
|
|
1221
|
+
const h = (o.x + 1) / 2 * n, d = (o.y + 1) / 2 * l;
|
|
1222
|
+
let m = 0, g = 1;
|
|
1223
|
+
typeof this.clipArea == "number" ? g = this.clipArea : this.clipArea.endsWith("%") ? g = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (m = parseFloat(this.clipArea));
|
|
1224
|
+
const R = u.scale.x * g + 0.5, v = u.scale.y * g + 0.5, y = h - R / 2, E = d - v / 2, L = (y * this.qualityFactor - m) / a, C = (E * this.qualityFactor - m) / a, b = (R * this.qualityFactor + m * 2) / a, x = (v * this.qualityFactor + m * 2) / a;
|
|
1225
|
+
this.renderer.setScissor(L, C, b, x), this.renderer.render(this.scene, this.camera);
|
|
1226
1226
|
}
|
|
1227
1227
|
this.renderer.setScissorTest(!1), this.renderer.autoClear = !0, this.renderer.setRenderTarget(null), this.camera.layers.set(this.getSceneLayer()), this.renderer.setClearColor(s, c);
|
|
1228
1228
|
}
|
|
1229
1229
|
render() {
|
|
1230
|
-
for (let l = 0; l <
|
|
1231
|
-
const
|
|
1230
|
+
for (let l = 0; l < V.MAX_LAYERS; l++) {
|
|
1231
|
+
const a = l + 1;
|
|
1232
1232
|
this.captureRenderTarget(
|
|
1233
1233
|
this.travelersByLayer[l],
|
|
1234
|
-
|
|
1234
|
+
O.getCaptureLayer(a),
|
|
1235
1235
|
this.renderTargets[l]
|
|
1236
1236
|
);
|
|
1237
1237
|
}
|
|
1238
|
-
const e = this.renderer.getContext(), t = this.renderer.getPixelRatio(), r = this.renderer.domElement.height / t, s = this.renderer.domElement, c = s.getBoundingClientRect().top, o = s.getBoundingClientRect().left,
|
|
1239
|
-
if (
|
|
1240
|
-
const u = Math.floor((
|
|
1241
|
-
(r - (
|
|
1242
|
-
), d = Math.ceil(
|
|
1238
|
+
const e = this.renderer.getContext(), t = this.renderer.getPixelRatio(), r = this.renderer.domElement.height / t, s = this.renderer.domElement, c = s.getBoundingClientRect().top, o = s.getBoundingClientRect().left, n = (l, a) => {
|
|
1239
|
+
if (a && a.width > 0 && a.height > 0) {
|
|
1240
|
+
const u = Math.floor((a.x - o) * t), h = Math.floor(
|
|
1241
|
+
(r - (a.y - c + a.height)) * t
|
|
1242
|
+
), d = Math.ceil(a.width * t), m = Math.ceil(a.height * t);
|
|
1243
1243
|
l.onBeforeRender = () => {
|
|
1244
|
-
e.enable(e.SCISSOR_TEST), e.scissor(u, h, d,
|
|
1244
|
+
e.enable(e.SCISSOR_TEST), e.scissor(u, h, d, m);
|
|
1245
1245
|
}, l.onAfterRender = () => {
|
|
1246
1246
|
e.disable(e.SCISSOR_TEST);
|
|
1247
1247
|
}, l.__hasScissorHook = !0;
|
|
@@ -1252,9 +1252,9 @@ class ot {
|
|
|
1252
1252
|
};
|
|
1253
1253
|
this.scene.children.forEach((l) => {
|
|
1254
1254
|
var h;
|
|
1255
|
-
const
|
|
1256
|
-
a
|
|
1257
|
-
d.name.startsWith("TEXT_CHILD") &&
|
|
1255
|
+
const a = l, u = (h = a.userData) == null ? void 0 : h.scissorRect;
|
|
1256
|
+
n(a, u), a.children.forEach((d) => {
|
|
1257
|
+
d.name.startsWith("TEXT_CHILD") && n(d, u);
|
|
1258
1258
|
});
|
|
1259
1259
|
}), this.renderer.render(this.scene, this.camera);
|
|
1260
1260
|
}
|
|
@@ -1262,116 +1262,116 @@ class ot {
|
|
|
1262
1262
|
const e = this.targetRect.left + window.scrollX, t = this.targetRect.top + window.scrollY, r = this.renderer.getPixelRatio(), s = this.renderer.domElement.width / r, c = this.renderer.domElement.height / r;
|
|
1263
1263
|
this.scene.children.forEach((o) => {
|
|
1264
1264
|
var h, d;
|
|
1265
|
-
const
|
|
1266
|
-
if (!
|
|
1265
|
+
const n = o;
|
|
1266
|
+
if (!n.userData || !n.userData.domElement)
|
|
1267
1267
|
return;
|
|
1268
|
-
const l =
|
|
1268
|
+
const l = n.userData.domElement;
|
|
1269
1269
|
if (!l.isConnected)
|
|
1270
1270
|
return;
|
|
1271
|
-
let
|
|
1271
|
+
let a;
|
|
1272
1272
|
if (l.nodeType === Node.TEXT_NODE) {
|
|
1273
|
-
const
|
|
1274
|
-
|
|
1273
|
+
const m = document.createRange();
|
|
1274
|
+
m.selectNode(l), a = m.getBoundingClientRect();
|
|
1275
1275
|
} else
|
|
1276
|
-
|
|
1277
|
-
const u =
|
|
1278
|
-
if (!u || Math.abs(
|
|
1279
|
-
|
|
1280
|
-
x:
|
|
1281
|
-
y:
|
|
1282
|
-
width:
|
|
1283
|
-
height:
|
|
1276
|
+
a = l.getBoundingClientRect();
|
|
1277
|
+
const u = n.userData.domRect;
|
|
1278
|
+
if (!u || Math.abs(a.x - u.x) > 0.5 || Math.abs(a.y - u.y) > 0.5 || Math.abs(a.width - u.width) > 0.5 || Math.abs(a.height - u.height) > 0.5) {
|
|
1279
|
+
n.userData.domRect = {
|
|
1280
|
+
x: a.x,
|
|
1281
|
+
y: a.y,
|
|
1282
|
+
width: a.width,
|
|
1283
|
+
height: a.height
|
|
1284
1284
|
};
|
|
1285
|
-
const
|
|
1286
|
-
if (
|
|
1287
|
-
let y = -1 / 0, E = -1 / 0,
|
|
1288
|
-
for (const b of
|
|
1289
|
-
const
|
|
1290
|
-
y = Math.max(y,
|
|
1285
|
+
const m = n.userData.clipElements;
|
|
1286
|
+
if (m && m.length > 0) {
|
|
1287
|
+
let y = -1 / 0, E = -1 / 0, L = 1 / 0, C = 1 / 0;
|
|
1288
|
+
for (const b of m) {
|
|
1289
|
+
const x = b.getBoundingClientRect();
|
|
1290
|
+
y = Math.max(y, x.left), E = Math.max(E, x.top), L = Math.min(L, x.right), C = Math.min(C, x.bottom);
|
|
1291
1291
|
}
|
|
1292
|
-
|
|
1292
|
+
n.userData.scissorRect = {
|
|
1293
1293
|
x: y,
|
|
1294
1294
|
y: E,
|
|
1295
|
-
width: Math.max(0,
|
|
1295
|
+
width: Math.max(0, L - y),
|
|
1296
1296
|
height: Math.max(0, C - E)
|
|
1297
1297
|
};
|
|
1298
1298
|
} else
|
|
1299
|
-
|
|
1300
|
-
let
|
|
1299
|
+
n.userData.scissorRect = void 0;
|
|
1300
|
+
let g, R;
|
|
1301
1301
|
if (this.isViewport)
|
|
1302
|
-
|
|
1302
|
+
g = a.x - window.innerWidth / 2 + a.width / 2, R = -a.y + window.innerHeight / 2 - a.height / 2;
|
|
1303
1303
|
else {
|
|
1304
|
-
const y =
|
|
1305
|
-
|
|
1304
|
+
const y = a.x - e, E = a.y - t;
|
|
1305
|
+
g = y - s / 2 + a.width / 2, R = -E + c / 2 - a.height / 2;
|
|
1306
1306
|
}
|
|
1307
|
-
|
|
1308
|
-
let
|
|
1309
|
-
if (
|
|
1310
|
-
width:
|
|
1311
|
-
height:
|
|
1312
|
-
}),
|
|
1313
|
-
const y =
|
|
1314
|
-
let E =
|
|
1315
|
-
if (
|
|
1316
|
-
const X =
|
|
1317
|
-
if (
|
|
1318
|
-
let M = parseFloat(
|
|
1319
|
-
|
|
1307
|
+
n.position.setX(g), n.position.setY(R);
|
|
1308
|
+
let v = ((h = n.material.userData) == null ? void 0 : h.shadowPadding) || 0;
|
|
1309
|
+
if (n.scale.set(a.width + v * 2, a.height + v * 2, 1), n.updateMatrixWorld(), n.material instanceof w.ShaderMaterial && H.forceUpdateUniforms(n.material, {
|
|
1310
|
+
width: a.width,
|
|
1311
|
+
height: a.height
|
|
1312
|
+
}), n.userData.nativeMesh) {
|
|
1313
|
+
const y = n.userData.nativeMesh;
|
|
1314
|
+
let E = a.width, L = a.height, C = g, b = R;
|
|
1315
|
+
if (n.userData.nativeTransform) {
|
|
1316
|
+
const X = n.userData.nativeTransform, Y = X.match(/scale\(([\d.]+%?)\)/);
|
|
1317
|
+
if (Y) {
|
|
1318
|
+
let M = parseFloat(Y[1]);
|
|
1319
|
+
Y[1].includes("%") && (M /= 100), E *= M, L *= M;
|
|
1320
1320
|
}
|
|
1321
|
-
const
|
|
1322
|
-
if (
|
|
1323
|
-
let M = parseFloat(
|
|
1324
|
-
|
|
1321
|
+
const A = X.match(/scaleX\(([\d.]+%?)\)/);
|
|
1322
|
+
if (A) {
|
|
1323
|
+
let M = parseFloat(A[1]);
|
|
1324
|
+
A[1].includes("%") && (M /= 100), E *= M;
|
|
1325
1325
|
}
|
|
1326
|
-
const
|
|
1327
|
-
if (
|
|
1328
|
-
let M = parseFloat(
|
|
1329
|
-
|
|
1326
|
+
const N = X.match(/scaleY\(([\d.]+%?)\)/);
|
|
1327
|
+
if (N) {
|
|
1328
|
+
let M = parseFloat(N[1]);
|
|
1329
|
+
N[1].includes("%") && (M /= 100), L *= M;
|
|
1330
|
+
}
|
|
1331
|
+
const U = X.match(/translate\(([^,]+),\s*([^)]+)\)/);
|
|
1332
|
+
if (U) {
|
|
1333
|
+
const M = U[1].trim(), B = U[2].trim();
|
|
1334
|
+
let Z = parseFloat(M);
|
|
1335
|
+
M.includes("%") && (Z = Z / 100 * a.width);
|
|
1336
|
+
let F = parseFloat(B);
|
|
1337
|
+
B.includes("%") && (F = F / 100 * a.height), C += Z, b -= F;
|
|
1330
1338
|
}
|
|
1331
|
-
const
|
|
1332
|
-
if (
|
|
1333
|
-
const M =
|
|
1334
|
-
let
|
|
1335
|
-
M.includes("%") && (
|
|
1336
|
-
let B = parseFloat(O);
|
|
1337
|
-
O.includes("%") && (B = B / 100 * n.height), C += K, b -= B;
|
|
1339
|
+
const K = X.match(/translateX\(([^)]+)\)/);
|
|
1340
|
+
if (K) {
|
|
1341
|
+
const M = K[1].trim();
|
|
1342
|
+
let B = parseFloat(M);
|
|
1343
|
+
M.includes("%") && (B = B / 100 * a.width), C += B;
|
|
1338
1344
|
}
|
|
1339
|
-
const J = X.match(/
|
|
1345
|
+
const J = X.match(/translateY\(([^)]+)\)/);
|
|
1340
1346
|
if (J) {
|
|
1341
1347
|
const M = J[1].trim();
|
|
1342
|
-
let
|
|
1343
|
-
M.includes("%") && (
|
|
1344
|
-
}
|
|
1345
|
-
const Z = X.match(/translateY\(([^)]+)\)/);
|
|
1346
|
-
if (Z) {
|
|
1347
|
-
const M = Z[1].trim();
|
|
1348
|
-
let O = parseFloat(M);
|
|
1349
|
-
M.includes("%") && (O = O / 100 * n.height), b -= O;
|
|
1348
|
+
let B = parseFloat(M);
|
|
1349
|
+
M.includes("%") && (B = B / 100 * a.height), b -= B;
|
|
1350
1350
|
}
|
|
1351
1351
|
}
|
|
1352
|
-
let
|
|
1353
|
-
y.position.setX(C), y.position.setY(b), y.scale.set(E +
|
|
1352
|
+
let x = ((d = y.material.userData) == null ? void 0 : d.shadowPadding) || 0;
|
|
1353
|
+
y.position.setX(C), y.position.setY(b), y.scale.set(E + x * 2, L + x * 2, 1), y.updateMatrixWorld(), y.material instanceof w.ShaderMaterial && H.forceUpdateUniforms(y.material, {
|
|
1354
1354
|
width: E,
|
|
1355
|
-
height:
|
|
1355
|
+
height: L
|
|
1356
1356
|
});
|
|
1357
1357
|
}
|
|
1358
1358
|
}
|
|
1359
1359
|
});
|
|
1360
1360
|
}
|
|
1361
1361
|
}
|
|
1362
|
-
function
|
|
1362
|
+
function ct(i) {
|
|
1363
1363
|
const e = i.textContent || "", t = [];
|
|
1364
1364
|
let r = "", s = null, c = -1;
|
|
1365
|
-
const o = (
|
|
1366
|
-
for (let h = 0; h <
|
|
1367
|
-
const d =
|
|
1368
|
-
|
|
1369
|
-
const
|
|
1370
|
-
if (
|
|
1365
|
+
const o = (a, u) => {
|
|
1366
|
+
for (let h = 0; h < a.length; h++) {
|
|
1367
|
+
const d = a[h], m = document.createRange();
|
|
1368
|
+
m.setStart(i, u + h), m.setEnd(i, u + h + 1);
|
|
1369
|
+
const g = m.getBoundingClientRect();
|
|
1370
|
+
if (g.width === 0 && g.height === 0) {
|
|
1371
1371
|
r += d;
|
|
1372
1372
|
continue;
|
|
1373
1373
|
}
|
|
1374
|
-
c === -1 || Math.abs(
|
|
1374
|
+
c === -1 || Math.abs(g.top - c) > g.height / 2 ? (r && s && t.push({
|
|
1375
1375
|
text: r,
|
|
1376
1376
|
rect: {
|
|
1377
1377
|
left: s.left,
|
|
@@ -1380,27 +1380,27 @@ function nt(i) {
|
|
|
1380
1380
|
height: s.bottom - s.top
|
|
1381
1381
|
}
|
|
1382
1382
|
}), r = d, s = {
|
|
1383
|
-
left:
|
|
1384
|
-
top:
|
|
1385
|
-
right:
|
|
1386
|
-
bottom:
|
|
1387
|
-
}, c =
|
|
1383
|
+
left: g.left,
|
|
1384
|
+
top: g.top,
|
|
1385
|
+
right: g.right,
|
|
1386
|
+
bottom: g.bottom
|
|
1387
|
+
}, c = g.top) : (r += d, s && (s.left = Math.min(s.left, g.left), s.top = Math.min(s.top, g.top), s.right = Math.max(s.right, g.right), s.bottom = Math.max(
|
|
1388
1388
|
s.bottom,
|
|
1389
|
-
|
|
1389
|
+
g.bottom
|
|
1390
1390
|
)));
|
|
1391
1391
|
}
|
|
1392
|
-
},
|
|
1392
|
+
}, n = e.match(/[^\s\-]+\-?|\-|\s+/g) || [];
|
|
1393
1393
|
let l = 0;
|
|
1394
|
-
for (const
|
|
1394
|
+
for (const a of n) {
|
|
1395
1395
|
const u = document.createRange();
|
|
1396
|
-
u.setStart(i, l), u.setEnd(i, l +
|
|
1396
|
+
u.setStart(i, l), u.setEnd(i, l + a.length);
|
|
1397
1397
|
const h = u.getClientRects();
|
|
1398
1398
|
if (h.length > 1)
|
|
1399
|
-
o(
|
|
1399
|
+
o(a, l);
|
|
1400
1400
|
else {
|
|
1401
1401
|
const d = h.length === 1 ? h[0] : u.getBoundingClientRect();
|
|
1402
1402
|
if (d.width === 0 && d.height === 0) {
|
|
1403
|
-
r +=
|
|
1403
|
+
r += a, l += a.length;
|
|
1404
1404
|
continue;
|
|
1405
1405
|
}
|
|
1406
1406
|
c === -1 || Math.abs(d.top - c) > d.height / 2 ? (r && s && t.push({
|
|
@@ -1411,17 +1411,17 @@ function nt(i) {
|
|
|
1411
1411
|
width: s.right - s.left,
|
|
1412
1412
|
height: s.bottom - s.top
|
|
1413
1413
|
}
|
|
1414
|
-
}), r =
|
|
1414
|
+
}), r = a, s = {
|
|
1415
1415
|
left: d.left,
|
|
1416
1416
|
top: d.top,
|
|
1417
1417
|
right: d.right,
|
|
1418
1418
|
bottom: d.bottom
|
|
1419
|
-
}, c = d.top) : (r +=
|
|
1419
|
+
}, c = d.top) : (r += a, s && (s.left = Math.min(s.left, d.left), s.top = Math.min(s.top, d.top), s.right = Math.max(s.right, d.right), s.bottom = Math.max(
|
|
1420
1420
|
s.bottom,
|
|
1421
1421
|
d.bottom
|
|
1422
1422
|
)));
|
|
1423
1423
|
}
|
|
1424
|
-
l +=
|
|
1424
|
+
l += a.length;
|
|
1425
1425
|
}
|
|
1426
1426
|
return r && s && t.push({
|
|
1427
1427
|
text: r,
|
|
@@ -1432,10 +1432,10 @@ function nt(i) {
|
|
|
1432
1432
|
height: s.bottom - s.top
|
|
1433
1433
|
}
|
|
1434
1434
|
}), t.filter(
|
|
1435
|
-
(
|
|
1435
|
+
(a) => a.text.trim().length > 0 && a.rect.width > 0 && a.rect.height > 0
|
|
1436
1436
|
);
|
|
1437
1437
|
}
|
|
1438
|
-
function
|
|
1438
|
+
function Ue(i) {
|
|
1439
1439
|
const e = parseFloat(i.fontSize);
|
|
1440
1440
|
let t = parseFloat(i.lineHeight);
|
|
1441
1441
|
isNaN(t) && (t = e * 1.2);
|
|
@@ -1451,74 +1451,74 @@ function Ae(i) {
|
|
|
1451
1451
|
letterSpacing: r
|
|
1452
1452
|
};
|
|
1453
1453
|
}
|
|
1454
|
-
function
|
|
1455
|
-
var
|
|
1454
|
+
function Xe(i, e = ie | fe | qe | Se | me, t, r = 1, s = 0, c = 2, o, n, l) {
|
|
1455
|
+
var F, W, se, oe, ae, he, de;
|
|
1456
1456
|
if (i.nodeType === Node.TEXT_NODE) {
|
|
1457
|
-
const
|
|
1458
|
-
if (!
|
|
1457
|
+
const f = i;
|
|
1458
|
+
if (!f.textContent || !f.textContent.trim())
|
|
1459
1459
|
return null;
|
|
1460
|
-
const
|
|
1461
|
-
if (
|
|
1460
|
+
const S = f.textContent.replace(/\s+/g, " ");
|
|
1461
|
+
if (S.length === 0)
|
|
1462
1462
|
return null;
|
|
1463
|
-
const
|
|
1464
|
-
if (
|
|
1463
|
+
const I = ct(f);
|
|
1464
|
+
if (I.length === 0)
|
|
1465
1465
|
return null;
|
|
1466
|
-
const _ =
|
|
1467
|
-
if (!
|
|
1466
|
+
const _ = f.parentElement, k = _ ? window.getComputedStyle(_) : null;
|
|
1467
|
+
if (!k)
|
|
1468
1468
|
return null;
|
|
1469
|
-
const
|
|
1469
|
+
const P = Math.min(...I.map((T) => T.rect.left)), z = Math.min(...I.map((T) => T.rect.top)), Q = Math.max(...I.map((T) => T.rect.left + T.rect.width)), D = Math.max(...I.map((T) => T.rect.top + T.rect.height));
|
|
1470
1470
|
return {
|
|
1471
1471
|
id: Math.random().toString(36).substring(2, 9),
|
|
1472
1472
|
type: "TEXT",
|
|
1473
|
-
element:
|
|
1473
|
+
element: f,
|
|
1474
1474
|
rect: {
|
|
1475
|
-
x:
|
|
1476
|
-
y:
|
|
1477
|
-
width: Q -
|
|
1478
|
-
height:
|
|
1475
|
+
x: P + window.scrollX,
|
|
1476
|
+
y: z + window.scrollY,
|
|
1477
|
+
width: Q - P,
|
|
1478
|
+
height: D - z
|
|
1479
1479
|
},
|
|
1480
1480
|
styles: {
|
|
1481
1481
|
backgroundColor: "transparent",
|
|
1482
1482
|
backgroundImage: "",
|
|
1483
|
-
opacity: _ && _.dataset[
|
|
1484
|
-
zIndex: (isNaN(parseInt(
|
|
1483
|
+
opacity: _ && _.dataset[te.KEY] === te.VALUES.HIDE ? 1 : parseFloat(k.opacity),
|
|
1484
|
+
zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + s,
|
|
1485
1485
|
borderRadius: "0px",
|
|
1486
1486
|
borderColor: "transparent",
|
|
1487
1487
|
borderWidth: "0px",
|
|
1488
1488
|
isTraveler: !1
|
|
1489
1489
|
},
|
|
1490
|
-
textContent:
|
|
1491
|
-
textLines:
|
|
1492
|
-
text:
|
|
1490
|
+
textContent: S,
|
|
1491
|
+
textLines: I.map((T) => ({
|
|
1492
|
+
text: T.text.trim(),
|
|
1493
1493
|
rect: {
|
|
1494
|
-
x:
|
|
1495
|
-
y:
|
|
1496
|
-
width:
|
|
1497
|
-
height:
|
|
1494
|
+
x: T.rect.left + window.scrollX,
|
|
1495
|
+
y: T.rect.top + window.scrollY,
|
|
1496
|
+
width: T.rect.width,
|
|
1497
|
+
height: T.rect.height
|
|
1498
1498
|
}
|
|
1499
1499
|
})),
|
|
1500
|
-
textStyles:
|
|
1500
|
+
textStyles: Ue(k),
|
|
1501
1501
|
dirtyMask: e,
|
|
1502
1502
|
visibility: t,
|
|
1503
1503
|
isTraveler: !1,
|
|
1504
1504
|
captureLayer: r,
|
|
1505
|
-
isFixed:
|
|
1505
|
+
isFixed: k.position === "fixed",
|
|
1506
1506
|
nativeLayer: o,
|
|
1507
|
-
nativeStyles:
|
|
1507
|
+
nativeStyles: n ? re(re({
|
|
1508
1508
|
backgroundColor: "transparent",
|
|
1509
1509
|
backgroundImage: "",
|
|
1510
|
-
opacity: _ && _.dataset[
|
|
1511
|
-
zIndex: (isNaN(parseInt(
|
|
1510
|
+
opacity: _ && _.dataset[te.KEY] === te.VALUES.HIDE ? 1 : parseFloat(k.opacity),
|
|
1511
|
+
zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + s,
|
|
1512
1512
|
borderRadius: "0px",
|
|
1513
1513
|
borderColor: "transparent",
|
|
1514
1514
|
borderWidth: "0px",
|
|
1515
1515
|
isTraveler: !1
|
|
1516
|
-
},
|
|
1517
|
-
nativeRect:
|
|
1518
|
-
x:
|
|
1519
|
-
y:
|
|
1520
|
-
width: Q -
|
|
1521
|
-
height:
|
|
1516
|
+
}, Ue(k)), n) : void 0,
|
|
1517
|
+
nativeRect: n ? {
|
|
1518
|
+
x: P + window.scrollX,
|
|
1519
|
+
y: z + window.scrollY,
|
|
1520
|
+
width: Q - P,
|
|
1521
|
+
height: D - z
|
|
1522
1522
|
} : void 0,
|
|
1523
1523
|
clipElements: l,
|
|
1524
1524
|
children: []
|
|
@@ -1526,244 +1526,248 @@ function Fe(i, e = re | ue | Pe | ye | pe, t, r = 1, s = 0, c = 2, o, a, l) {
|
|
|
1526
1526
|
}
|
|
1527
1527
|
if (i.nodeType !== Node.ELEMENT_NODE)
|
|
1528
1528
|
return null;
|
|
1529
|
-
const
|
|
1529
|
+
const a = i, u = a.dataset[q.KEY];
|
|
1530
1530
|
let h = t, d = t;
|
|
1531
1531
|
if (u) {
|
|
1532
|
-
const
|
|
1533
|
-
for (const
|
|
1534
|
-
if (!
|
|
1532
|
+
const f = new Set(u.split(/\s+/));
|
|
1533
|
+
for (const S of f)
|
|
1534
|
+
if (!Ae.includes(S))
|
|
1535
1535
|
throw new Error(
|
|
1536
|
-
`[MirageEngine] Invalid filter token: '${
|
|
1536
|
+
`[MirageEngine] Invalid filter token: '${S}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
|
|
1537
1537
|
);
|
|
1538
|
-
if (
|
|
1538
|
+
if (f.has(q.VALUES.END))
|
|
1539
1539
|
return null;
|
|
1540
|
-
if (
|
|
1540
|
+
if (f.has(q.VALUES.INCLUDE_TREE) && f.has(q.VALUES.EXCLUDE_TREE))
|
|
1541
1541
|
throw new Error(
|
|
1542
1542
|
"[MirageEngine] Conflicting filters: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
|
|
1543
1543
|
);
|
|
1544
|
-
if (
|
|
1544
|
+
if (f.has(q.VALUES.INCLUDE_SELF) && f.has(q.VALUES.EXCLUDE_SELF))
|
|
1545
1545
|
throw new Error(
|
|
1546
1546
|
"[MirageEngine] Conflicting filters: 'include-self' and 'exclude-self' cannot be used together on the same element."
|
|
1547
1547
|
);
|
|
1548
|
-
|
|
1548
|
+
f.has(q.VALUES.INCLUDE_TREE) ? h = h | $ : f.has(q.VALUES.EXCLUDE_TREE) && (h = h & ~$), d = h, f.has(q.VALUES.INCLUDE_SELF) ? d = d | $ : f.has(q.VALUES.EXCLUDE_SELF) && (d = d & ~$);
|
|
1549
1549
|
}
|
|
1550
|
-
const
|
|
1551
|
-
if (
|
|
1552
|
-
const
|
|
1553
|
-
for (const
|
|
1554
|
-
if (!
|
|
1550
|
+
const m = a.dataset[j.KEY];
|
|
1551
|
+
if (m) {
|
|
1552
|
+
const f = new Set(m.split(/\s+/));
|
|
1553
|
+
for (const S of f)
|
|
1554
|
+
if (!Ae.includes(S))
|
|
1555
1555
|
throw new Error(
|
|
1556
|
-
`[MirageEngine] Invalid select token: '${
|
|
1556
|
+
`[MirageEngine] Invalid select token: '${S}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
|
|
1557
1557
|
);
|
|
1558
|
-
if (
|
|
1558
|
+
if (f.has(j.VALUES.END))
|
|
1559
1559
|
return null;
|
|
1560
|
-
if (
|
|
1560
|
+
if (f.has(j.VALUES.INCLUDE_TREE) && f.has(j.VALUES.EXCLUDE_TREE))
|
|
1561
1561
|
throw new Error(
|
|
1562
1562
|
"[MirageEngine] Conflicting selects: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
|
|
1563
1563
|
);
|
|
1564
|
-
if (
|
|
1564
|
+
if (f.has(j.VALUES.INCLUDE_SELF) && f.has(j.VALUES.EXCLUDE_SELF))
|
|
1565
1565
|
throw new Error(
|
|
1566
1566
|
"[MirageEngine] Conflicting selects: 'include-self' and 'exclude-self' cannot be used together on the same element."
|
|
1567
1567
|
);
|
|
1568
|
-
|
|
1569
|
-
}
|
|
1570
|
-
const
|
|
1571
|
-
let
|
|
1572
|
-
if (
|
|
1573
|
-
let
|
|
1574
|
-
const
|
|
1575
|
-
let _ =
|
|
1576
|
-
if (
|
|
1577
|
-
_ =
|
|
1578
|
-
const
|
|
1568
|
+
f.has(j.VALUES.INCLUDE_TREE) ? h = h | ne : f.has(j.VALUES.EXCLUDE_TREE) && (h = h & ~ne), d = h, f.has(j.VALUES.INCLUDE_SELF) ? d = d | ne : f.has(j.VALUES.EXCLUDE_SELF) && (d = d & ~ne);
|
|
1569
|
+
}
|
|
1570
|
+
const g = a.dataset[V.KEY];
|
|
1571
|
+
let R = !1, v = n ? re({}, n) : {}, y = o;
|
|
1572
|
+
if (g) {
|
|
1573
|
+
let f = 1;
|
|
1574
|
+
const S = g.indexOf("{"), I = g.lastIndexOf("}");
|
|
1575
|
+
let _ = g;
|
|
1576
|
+
if (S !== -1 && I !== -1 && I > S) {
|
|
1577
|
+
_ = g.substring(0, S).trim();
|
|
1578
|
+
const D = g.substring(S, I + 1);
|
|
1579
1579
|
try {
|
|
1580
|
-
|
|
1581
|
-
} catch (
|
|
1580
|
+
v = new Function("return " + D)();
|
|
1581
|
+
} catch (T) {
|
|
1582
1582
|
console.warn(
|
|
1583
|
-
`[MirageEngine] Failed to parse travel styles JSON: ${
|
|
1583
|
+
`[MirageEngine] Failed to parse travel styles JSON: ${D}`
|
|
1584
1584
|
);
|
|
1585
1585
|
}
|
|
1586
1586
|
}
|
|
1587
|
-
const
|
|
1588
|
-
let
|
|
1589
|
-
const
|
|
1590
|
-
if (
|
|
1591
|
-
|
|
1592
|
-
const
|
|
1593
|
-
if (
|
|
1594
|
-
|
|
1587
|
+
const k = _.split(/\s+/);
|
|
1588
|
+
let P = !1;
|
|
1589
|
+
const z = k.indexOf(V.VALUES.TRAVELER);
|
|
1590
|
+
if (z !== -1) {
|
|
1591
|
+
R = !0, P = !0;
|
|
1592
|
+
const D = k[z + 1];
|
|
1593
|
+
if (D && !isNaN(parseInt(D, 10)))
|
|
1594
|
+
f = parseInt(D, 10);
|
|
1595
1595
|
else {
|
|
1596
|
-
const
|
|
1597
|
-
|
|
1596
|
+
const T = k.find((ee) => !isNaN(parseInt(ee, 10)));
|
|
1597
|
+
T && (f = parseInt(T, 10));
|
|
1598
1598
|
}
|
|
1599
1599
|
}
|
|
1600
|
-
const Q =
|
|
1600
|
+
const Q = k.indexOf(V.VALUES.NATIVE);
|
|
1601
1601
|
if (Q !== -1) {
|
|
1602
|
-
const
|
|
1603
|
-
if (
|
|
1604
|
-
y = parseInt(
|
|
1605
|
-
else if (!
|
|
1606
|
-
const
|
|
1607
|
-
|
|
1602
|
+
const D = k[Q + 1];
|
|
1603
|
+
if (D && !isNaN(parseInt(D, 10)))
|
|
1604
|
+
y = parseInt(D, 10);
|
|
1605
|
+
else if (!R) {
|
|
1606
|
+
const T = k.find((ee) => !isNaN(parseInt(ee, 10)));
|
|
1607
|
+
T && (y = parseInt(T, 10));
|
|
1608
1608
|
}
|
|
1609
1609
|
}
|
|
1610
|
-
if (
|
|
1611
|
-
const
|
|
1612
|
-
if (
|
|
1610
|
+
if (P) {
|
|
1611
|
+
const D = f + 1;
|
|
1612
|
+
if (D < r)
|
|
1613
1613
|
throw new Error(
|
|
1614
|
-
`[MirageEngine] Traveler layer (${
|
|
1614
|
+
`[MirageEngine] Traveler layer (${f}) cannot be smaller than inherited capture layer (${r - 1}).`
|
|
1615
1615
|
);
|
|
1616
|
-
r = Math.min(
|
|
1616
|
+
r = Math.min(D, V.MAX_LAYERS + 1);
|
|
1617
1617
|
}
|
|
1618
1618
|
}
|
|
1619
|
-
const E =
|
|
1620
|
-
let
|
|
1621
|
-
E && (
|
|
1622
|
-
const C =
|
|
1619
|
+
const E = a.dataset[Ge.KEY];
|
|
1620
|
+
let L;
|
|
1621
|
+
E && (L = JSON.parse(E));
|
|
1622
|
+
const C = a.getBoundingClientRect(), b = window.getComputedStyle(a);
|
|
1623
1623
|
if (C.width === 0 || C.height === 0 || b.display === "none")
|
|
1624
1624
|
return null;
|
|
1625
|
-
let
|
|
1626
|
-
|
|
1627
|
-
const X = parseInt(b.zIndex),
|
|
1628
|
-
let
|
|
1629
|
-
if (
|
|
1630
|
-
|
|
1631
|
-
else if (
|
|
1632
|
-
const
|
|
1633
|
-
const
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1625
|
+
let x = a.getAttribute("data-mid");
|
|
1626
|
+
x || (x = Math.random().toString(36).substring(2, 11), a.setAttribute("data-mid", x));
|
|
1627
|
+
const X = parseInt(b.zIndex), Y = (isNaN(X) ? 0 : X) + s;
|
|
1628
|
+
let A, N;
|
|
1629
|
+
if (a.tagName === "IMG")
|
|
1630
|
+
A = a.src;
|
|
1631
|
+
else if (a.tagName.toLowerCase() === "svg") {
|
|
1632
|
+
const f = v == null ? void 0 : v.color, S = v == null ? void 0 : v.fill, I = v == null ? void 0 : v.stroke, _ = v == null ? void 0 : v.opacity, k = (P) => {
|
|
1633
|
+
const z = a.cloneNode(!0), Q = (ve, Ce) => {
|
|
1634
|
+
const G = window.getComputedStyle(ve), ue = Ce, Ne = G.fill === G.color, ze = G.stroke === G.color, we = (P ? S || (Ne ? f : void 0) : void 0) || G.fill;
|
|
1635
|
+
we && we !== "none" && (ue.style.fill = we);
|
|
1636
|
+
const be = (P ? I || (ze ? f : void 0) : void 0) || G.stroke;
|
|
1637
|
+
be && be !== "none" && (ue.style.stroke = be), G.strokeWidth && G.strokeWidth !== "0px" && (ue.style.strokeWidth = G.strokeWidth);
|
|
1638
|
+
const Te = (P ? f : void 0) || G.color;
|
|
1639
|
+
Te && (ue.style.color = Te);
|
|
1640
|
+
const ye = (P ? _ : void 0) || G.opacity;
|
|
1641
|
+
ye && ye !== "1" && (ue.style.opacity = ye);
|
|
1642
|
+
for (let ge = 0; ge < ve.children.length; ge++)
|
|
1643
|
+
Q(ve.children[ge], Ce.children[ge]);
|
|
1644
|
+
};
|
|
1645
|
+
Q(a, z);
|
|
1646
|
+
const D = a.getBoundingClientRect(), T = window.devicePixelRatio * c;
|
|
1647
|
+
z.hasAttribute("viewBox") || z.setAttribute("viewBox", `0 0 ${D.width} ${D.height}`), z.setAttribute("width", (D.width * T).toString()), z.setAttribute("height", (D.height * T).toString());
|
|
1648
|
+
let ee = new XMLSerializer().serializeToString(z);
|
|
1649
|
+
return ee.includes("xmlns=") || (ee = ee.replace(
|
|
1650
|
+
"<svg",
|
|
1651
|
+
'<svg xmlns="http://www.w3.org/2000/svg"'
|
|
1652
|
+
)), `data:image/svg+xml;utf8,${encodeURIComponent(ee)}`;
|
|
1643
1653
|
};
|
|
1644
|
-
|
|
1645
|
-
const Y = n.getBoundingClientRect(), Q = window.devicePixelRatio * c;
|
|
1646
|
-
v.hasAttribute("viewBox") || v.setAttribute("viewBox", `0 0 ${Y.width} ${Y.height}`), v.setAttribute("width", (Y.width * Q).toString()), v.setAttribute("height", (Y.height * Q).toString());
|
|
1647
|
-
let k = new XMLSerializer().serializeToString(v);
|
|
1648
|
-
k.includes("xmlns=") || (k = k.replace(
|
|
1649
|
-
"<svg",
|
|
1650
|
-
'<svg xmlns="http://www.w3.org/2000/svg"'
|
|
1651
|
-
)), U = `data:image/svg+xml;utf8,${encodeURIComponent(k)}`;
|
|
1654
|
+
A = k(!1), y !== void 0 && (f || S || I || _) && (N = k(!0));
|
|
1652
1655
|
} else if (b.backgroundImage && b.backgroundImage !== "none") {
|
|
1653
|
-
const
|
|
1654
|
-
|
|
1656
|
+
const f = b.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
|
|
1657
|
+
f && (A = f[1]);
|
|
1655
1658
|
}
|
|
1656
|
-
const
|
|
1659
|
+
const U = {
|
|
1657
1660
|
backgroundColor: b.backgroundColor,
|
|
1658
1661
|
backgroundImage: b.backgroundImage,
|
|
1659
|
-
opacity:
|
|
1660
|
-
zIndex:
|
|
1662
|
+
opacity: a.dataset[te.KEY] === te.VALUES.HIDE ? 1 : parseFloat(b.opacity),
|
|
1663
|
+
zIndex: Y,
|
|
1661
1664
|
borderRadius: b.borderRadius,
|
|
1662
1665
|
borderColor: b.borderColor,
|
|
1663
1666
|
borderWidth: b.borderWidth,
|
|
1664
1667
|
boxShadow: b.boxShadow,
|
|
1665
|
-
imageSrc:
|
|
1666
|
-
isTraveler:
|
|
1667
|
-
},
|
|
1668
|
-
let J,
|
|
1669
|
-
const
|
|
1670
|
-
return
|
|
1671
|
-
const
|
|
1672
|
-
|
|
1668
|
+
imageSrc: A,
|
|
1669
|
+
isTraveler: R
|
|
1670
|
+
}, K = U;
|
|
1671
|
+
let J, M;
|
|
1672
|
+
const B = [], Z = b.overflow === "hidden" ? [...l || [], a] : l;
|
|
1673
|
+
return a.tagName.toLowerCase() !== "svg" && Array.from(a.childNodes).forEach((f) => {
|
|
1674
|
+
const S = f.nodeType === Node.TEXT_NODE ? d : h, I = Xe(
|
|
1675
|
+
f,
|
|
1673
1676
|
e,
|
|
1674
|
-
|
|
1677
|
+
S,
|
|
1675
1678
|
r,
|
|
1676
|
-
|
|
1679
|
+
Y,
|
|
1677
1680
|
c,
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
+
f.nodeType === Node.TEXT_NODE ? y : void 0,
|
|
1682
|
+
f.nodeType === Node.TEXT_NODE && Object.keys(v).length > 0 ? v : void 0,
|
|
1683
|
+
Z
|
|
1681
1684
|
);
|
|
1682
|
-
|
|
1685
|
+
I && B.push(I);
|
|
1683
1686
|
}), {
|
|
1684
|
-
id:
|
|
1687
|
+
id: x,
|
|
1685
1688
|
type: "BOX",
|
|
1686
|
-
element:
|
|
1689
|
+
element: a,
|
|
1687
1690
|
rect: {
|
|
1688
1691
|
x: C.left + window.scrollX,
|
|
1689
1692
|
y: C.top + window.scrollY,
|
|
1690
1693
|
width: C.width,
|
|
1691
1694
|
height: C.height
|
|
1692
1695
|
},
|
|
1693
|
-
styles:
|
|
1696
|
+
styles: K,
|
|
1694
1697
|
textContent: J,
|
|
1695
|
-
textStyles:
|
|
1698
|
+
textStyles: M,
|
|
1696
1699
|
dirtyMask: e,
|
|
1697
1700
|
visibility: d,
|
|
1698
|
-
isTraveler:
|
|
1701
|
+
isTraveler: R,
|
|
1699
1702
|
captureLayer: r,
|
|
1700
1703
|
nativeLayer: y,
|
|
1701
|
-
nativeStyles: y !== void 0 ?
|
|
1702
|
-
backgroundColor: (
|
|
1703
|
-
backgroundImage: (
|
|
1704
|
-
opacity: (
|
|
1705
|
-
zIndex:
|
|
1706
|
-
borderRadius: (
|
|
1707
|
-
borderColor: (
|
|
1708
|
-
borderWidth: (
|
|
1709
|
-
boxShadow: (
|
|
1710
|
-
isTraveler:
|
|
1711
|
-
transform:
|
|
1704
|
+
nativeStyles: y !== void 0 ? Me(re({}, U), {
|
|
1705
|
+
backgroundColor: (F = v.backgroundColor) != null ? F : U.backgroundColor,
|
|
1706
|
+
backgroundImage: (W = v.backgroundImage) != null ? W : U.backgroundImage,
|
|
1707
|
+
opacity: (se = v.opacity) != null ? se : U.opacity,
|
|
1708
|
+
zIndex: v.zIndex !== void 0 ? v.zIndex + Y : U.zIndex,
|
|
1709
|
+
borderRadius: (oe = v.borderRadius) != null ? oe : U.borderRadius,
|
|
1710
|
+
borderColor: (ae = v.borderColor) != null ? ae : U.borderColor,
|
|
1711
|
+
borderWidth: (he = v.borderWidth) != null ? he : U.borderWidth,
|
|
1712
|
+
boxShadow: (de = v.boxShadow) != null ? de : U.boxShadow,
|
|
1713
|
+
isTraveler: U.isTraveler,
|
|
1714
|
+
transform: v.transform,
|
|
1715
|
+
imageSrc: N != null ? N : A
|
|
1712
1716
|
}) : void 0,
|
|
1713
1717
|
nativeRect: y !== void 0 ? {
|
|
1714
|
-
x:
|
|
1715
|
-
y:
|
|
1716
|
-
width:
|
|
1717
|
-
height:
|
|
1718
|
+
x: v.x !== void 0 ? parseFloat(v.x) : C.left + window.scrollX,
|
|
1719
|
+
y: v.y !== void 0 ? parseFloat(v.y) : C.top + window.scrollY,
|
|
1720
|
+
width: v.width !== void 0 ? parseFloat(v.width) : C.width,
|
|
1721
|
+
height: v.height !== void 0 ? parseFloat(v.height) : C.height
|
|
1718
1722
|
} : void 0,
|
|
1719
1723
|
isFixed: b.position === "fixed",
|
|
1720
1724
|
clipElements: l,
|
|
1721
|
-
children:
|
|
1722
|
-
shaderHooks:
|
|
1725
|
+
children: B,
|
|
1726
|
+
shaderHooks: L
|
|
1723
1727
|
};
|
|
1724
1728
|
}
|
|
1725
|
-
function
|
|
1729
|
+
function ht(i, e) {
|
|
1726
1730
|
e.size !== 0 && e.forEach((t, r) => {
|
|
1727
|
-
var c, o,
|
|
1731
|
+
var c, o, n, l;
|
|
1728
1732
|
const s = i.get(r);
|
|
1729
|
-
!s || !s.userData.basePosition || (
|
|
1733
|
+
!s || !s.userData.basePosition || (H.forceUpdateUniforms(s.material, {
|
|
1730
1734
|
backgroundColor: t.backgroundColor,
|
|
1731
1735
|
backgroundImage: t.backgroundImage,
|
|
1732
1736
|
boxShadow: t.boxShadow,
|
|
1733
1737
|
opacity: t.opacity,
|
|
1734
1738
|
borderRadius: (o = t.borderRadius) != null ? o : (c = s.userData.baseStyles) == null ? void 0 : c.borderRadius
|
|
1735
1739
|
// width and height are no longer updated here, they are updated in syncMeshesByDOM
|
|
1736
|
-
}), s.userData.nativeMesh &&
|
|
1740
|
+
}), s.userData.nativeMesh && H.forceUpdateUniforms(s.userData.nativeMesh.material, {
|
|
1737
1741
|
backgroundColor: t.backgroundColor,
|
|
1738
1742
|
backgroundImage: t.backgroundImage,
|
|
1739
1743
|
boxShadow: t.boxShadow,
|
|
1740
1744
|
opacity: t.opacity,
|
|
1741
|
-
borderRadius: (l = t.borderRadius) != null ? l : (
|
|
1745
|
+
borderRadius: (l = t.borderRadius) != null ? l : (n = s.userData.baseStyles) == null ? void 0 : n.borderRadius
|
|
1742
1746
|
}));
|
|
1743
1747
|
});
|
|
1744
1748
|
}
|
|
1745
|
-
class
|
|
1749
|
+
class dt {
|
|
1746
1750
|
constructor(e, t, r, s) {
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
this.target = e, this.renderer = t, this.registry = r, this.tracker = new
|
|
1751
|
+
p(this, "target");
|
|
1752
|
+
p(this, "renderer");
|
|
1753
|
+
p(this, "registry");
|
|
1754
|
+
p(this, "isTravelEnabled", !1);
|
|
1755
|
+
p(this, "tracker");
|
|
1756
|
+
this.target = e, this.renderer = t, this.registry = r, this.tracker = new Ke(e, {
|
|
1753
1757
|
resizeDebounce: s.resizeDebounce
|
|
1754
1758
|
}), this.tracker.onLayoutChange.add((c, o) => {
|
|
1755
|
-
document.querySelector(`[${
|
|
1756
|
-
const l =
|
|
1759
|
+
document.querySelector(`[${V.NAME}~='${V.VALUES.TRAVELER}']`) !== null && !this.isTravelEnabled && (this.isTravelEnabled = !0, this.renderer.createRenderTarget());
|
|
1760
|
+
const l = Xe(
|
|
1757
1761
|
this.target,
|
|
1758
1762
|
c,
|
|
1759
|
-
|
|
1763
|
+
$,
|
|
1760
1764
|
1,
|
|
1761
1765
|
0,
|
|
1762
1766
|
this.renderer.qualityFactor
|
|
1763
1767
|
);
|
|
1764
1768
|
l && this.renderer.syncScene(l, o);
|
|
1765
1769
|
}), this.tracker.onStyleChange.add((c) => {
|
|
1766
|
-
|
|
1770
|
+
ht(this.registry, c);
|
|
1767
1771
|
}), this.tracker.onRender.add(() => {
|
|
1768
1772
|
this.renderer.syncMeshesByDOM(), this.renderer.render();
|
|
1769
1773
|
});
|
|
@@ -1775,9 +1779,9 @@ class lt {
|
|
|
1775
1779
|
this.tracker.stop();
|
|
1776
1780
|
}
|
|
1777
1781
|
}
|
|
1778
|
-
class
|
|
1782
|
+
class ut {
|
|
1779
1783
|
constructor() {
|
|
1780
|
-
|
|
1784
|
+
p(this, "store");
|
|
1781
1785
|
this.store = /* @__PURE__ */ new WeakMap();
|
|
1782
1786
|
}
|
|
1783
1787
|
register(e, t) {
|
|
@@ -1800,30 +1804,30 @@ class ct {
|
|
|
1800
1804
|
this.store.delete(e);
|
|
1801
1805
|
}
|
|
1802
1806
|
}
|
|
1803
|
-
class
|
|
1807
|
+
class mt {
|
|
1804
1808
|
constructor(e, t) {
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
+
p(this, "renderer");
|
|
1810
|
+
p(this, "syncer");
|
|
1811
|
+
p(this, "target");
|
|
1812
|
+
p(this, "registry");
|
|
1809
1813
|
var s, c, o;
|
|
1810
|
-
if (this.target = e, this.registry = new
|
|
1811
|
-
const
|
|
1812
|
-
|
|
1813
|
-
[${
|
|
1814
|
+
if (this.target = e, this.registry = new ut(), !document.getElementById("mirage-engine-styles")) {
|
|
1815
|
+
const n = document.createElement("style");
|
|
1816
|
+
n.id = "mirage-engine-styles", n.textContent = `
|
|
1817
|
+
[${te.NAME}="${te.VALUES.HIDE}"] {
|
|
1814
1818
|
opacity: 0 !important;
|
|
1815
1819
|
}
|
|
1816
|
-
`, document.head.appendChild(
|
|
1820
|
+
`, document.head.appendChild(n);
|
|
1817
1821
|
}
|
|
1818
1822
|
let r;
|
|
1819
1823
|
if (t.mode === "duplicate" ? r = (c = (s = t.container) != null ? s : this.target.parentElement) != null ? c : void 0 : r = (o = this.target.parentElement) != null ? o : void 0, !r)
|
|
1820
1824
|
throw new Error("[Mirage] Cannot find a container (parent or option).");
|
|
1821
|
-
this.renderer = new
|
|
1825
|
+
this.renderer = new lt(
|
|
1822
1826
|
this.target,
|
|
1823
1827
|
t,
|
|
1824
1828
|
r,
|
|
1825
1829
|
this.registry
|
|
1826
|
-
), this.renderer.mount(), this.syncer = new
|
|
1830
|
+
), this.renderer.mount(), this.syncer = new dt(this.target, this.renderer, this.registry, t);
|
|
1827
1831
|
}
|
|
1828
1832
|
start() {
|
|
1829
1833
|
this.syncer.start();
|
|
@@ -1867,25 +1871,25 @@ class ft {
|
|
|
1867
1871
|
}
|
|
1868
1872
|
}
|
|
1869
1873
|
export {
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1874
|
+
Ae as ALLOWED_FILTERS,
|
|
1875
|
+
te as ATTR_DOM,
|
|
1876
|
+
q as ATTR_FILTER,
|
|
1877
|
+
gt as ATTR_SANDWICH,
|
|
1878
|
+
j as ATTR_SELECT,
|
|
1879
|
+
Ge as ATTR_SHADER,
|
|
1880
|
+
V as ATTR_TRAVEL,
|
|
1881
|
+
Se as DIRTY_CONTENT,
|
|
1882
|
+
pe as DIRTY_NONE,
|
|
1883
|
+
ie as DIRTY_RECT,
|
|
1884
|
+
me as DIRTY_STRUCTURE,
|
|
1885
|
+
fe as DIRTY_STYLE,
|
|
1886
|
+
qe as DIRTY_ZINDEX,
|
|
1887
|
+
pt as EXCLUDED,
|
|
1888
|
+
mt as Engine,
|
|
1889
|
+
ne as SELECT_LAYER,
|
|
1890
|
+
O as THREE_LAYERS,
|
|
1891
|
+
De as TRAVEL_VALUES,
|
|
1892
|
+
Ke as Tracker,
|
|
1893
|
+
$ as USER_LAYER,
|
|
1894
|
+
je as extractFromStyle
|
|
1891
1895
|
};
|