@limrun/ui 0.17.0-rc.1 → 0.17.0-rc.3
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/README.md +18 -3
- package/dist/{GLTFLoader-DW6wpvyR.mjs → GLTFLoader-B4nnixLv.mjs} +1 -1
- package/dist/{GLTFLoader-BKnsBFsj.js → GLTFLoader-GATLvS0U.js} +1 -1
- package/dist/components/duo-fold-motion.d.ts +1 -1
- package/dist/components/duo-view.d.ts +5 -1
- package/dist/{duo-frame-DjfA4gG-.js → duo-frame-CfBILL32.js} +2 -2
- package/dist/{duo-frame-BzyYljix.mjs → duo-frame-F3hwc09B.mjs} +406 -406
- package/dist/duo-view-BsdKpp8d.mjs +662 -0
- package/dist/duo-view-Cy8kBdg9.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +2 -2
- package/dist/lite.cjs +1 -1
- package/dist/lite.js +1 -1
- package/dist/{remote-control-CQjSEVDF.mjs → remote-control-BAmNHDdv.mjs} +109 -108
- package/dist/{remote-control-DVRXfCR2.js → remote-control-F3h8U5pg.js} +1 -1
- package/package.json +5 -1
- package/dist/demo.d.ts +0 -1
- package/dist/duo-view-COZg8ieG.js +0 -1
- package/dist/duo-view-o1yxIzxu.mjs +0 -654
- package/index.html +0 -199
- package/src/assets/Apple_logo_white.svg +0 -4
- package/src/assets/android_boot.gif +0 -0
- package/src/assets/android_boot.webp +0 -0
- package/src/assets/iphone16pro_black.webp +0 -0
- package/src/assets/iphone16pro_black_bg.webp +0 -0
- package/src/assets/iphone16pro_black_landscape.webp +0 -0
- package/src/assets/iphone16pro_black_landscape_bg.webp +0 -0
- package/src/assets/pixel9_black.webp +0 -0
- package/src/assets/pixel9_black_landscape.webp +0 -0
- package/src/assets/pixel_tablet_landscape.webp +0 -0
- package/src/assets/pixel_tablet_portrait.webp +0 -0
- package/src/components/device-install/index.ts +0 -1
- package/src/components/duo-button-hinge.test.tsx +0 -138
- package/src/components/duo-button-hinge.ts +0 -75
- package/src/components/duo-controls.tsx +0 -142
- package/src/components/duo-flat-frame.tsx +0 -145
- package/src/components/duo-flat-geometry.test.ts +0 -63
- package/src/components/duo-flat-geometry.ts +0 -97
- package/src/components/duo-fold-motion.test.tsx +0 -245
- package/src/components/duo-fold-motion.tsx +0 -192
- package/src/components/duo-fold-renderer.test.ts +0 -29
- package/src/components/duo-fold-renderer.ts +0 -397
- package/src/components/duo-fold-timing.test.ts +0 -44
- package/src/components/duo-fold-timing.ts +0 -9
- package/src/components/duo-frame.tsx +0 -579
- package/src/components/duo-hardware.test.ts +0 -61
- package/src/components/duo-hardware.ts +0 -61
- package/src/components/duo-model.test.ts +0 -243
- package/src/components/duo-model.ts +0 -607
- package/src/components/duo-screen-handoff.ts +0 -52
- package/src/components/duo-view.test.tsx +0 -104
- package/src/components/duo-view.tsx +0 -315
- package/src/components/inspect-overlay.css +0 -223
- package/src/components/inspect-overlay.tsx +0 -437
- package/src/components/remote-control-framed.tsx +0 -14
- package/src/components/remote-control.css +0 -441
- package/src/components/remote-control.test.ts +0 -34
- package/src/components/remote-control.tsx +0 -3989
- package/src/core/ax-fetcher.test.ts +0 -418
- package/src/core/ax-fetcher.ts +0 -387
- package/src/core/ax-tree.test.ts +0 -491
- package/src/core/ax-tree.ts +0 -416
- package/src/core/camera.test.ts +0 -155
- package/src/core/camera.ts +0 -133
- package/src/core/constants.ts +0 -344
- package/src/core/duo.test.ts +0 -142
- package/src/core/duo.ts +0 -156
- package/src/core/webrtc-messages.ts +0 -148
- package/src/demo.tsx +0 -283
- package/src/frame-assets.ts +0 -22
- package/src/hooks/index.ts +0 -1
- package/src/index.ts +0 -29
- package/src/lite.test.ts +0 -30
- package/src/lite.ts +0 -30
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.json +0 -26
- package/tsconfig.node.json +0 -26
- package/vite.config.ts +0 -35
- package/vitest.config.ts +0 -24
package/dist/lite.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./remote-control-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./remote-control-F3h8U5pg.js");exports.AX_UNAVAILABLE_ERROR=e.AX_UNAVAILABLE_ERROR;exports.RemoteControl=e.RemoteControl;exports.axElementAtPoint=e.axElementAtPoint;exports.axElementSelectorExpression=e.axElementSelectorExpression;exports.axElementSummary=e.axElementSummary;exports.axElementsEqual=e.axElementsEqual;exports.axSnapshotsEqual=e.axSnapshotsEqual;exports.clampAxFrameForScreen=e.clampAxFrameForScreen;exports.normalizeAndroidTree=e.normalizeAndroidTree;exports.normalizeIosTree=e.normalizeIosTree;
|
package/dist/lite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as s, R as o, a as r, b as n, c as m, d as l, e as t, f as E, n as x, g as A } from "./remote-control-
|
|
1
|
+
import { A as s, R as o, a as r, b as n, c as m, d as l, e as t, f as E, n as x, g as A } from "./remote-control-BAmNHDdv.mjs";
|
|
2
2
|
export {
|
|
3
3
|
s as AX_UNAVAILABLE_ERROR,
|
|
4
4
|
o as RemoteControl,
|
|
@@ -30,8 +30,8 @@ function Ki(r, t, c) {
|
|
|
30
30
|
function Pn(r, t, c, a) {
|
|
31
31
|
if (!Number.isInteger(r) || r < 0 || r > 3 || !Number.isInteger(t) || t < 1 || t > 255 || !Number.isFinite(c) || !Number.isFinite(a) || c < 0 || c > 1 || a < 0 || a > 1)
|
|
32
32
|
throw new RangeError("Invalid display touch coordinates");
|
|
33
|
-
const E = new ArrayBuffer(12),
|
|
34
|
-
return
|
|
33
|
+
const E = new ArrayBuffer(12), p = new DataView(E);
|
|
34
|
+
return p.setUint8(0, 19), p.setUint8(1, r), p.setUint8(2, t), p.setFloat32(4, c, !0), p.setFloat32(8, a, !0), E;
|
|
35
35
|
}
|
|
36
36
|
class ki {
|
|
37
37
|
constructor(t, c) {
|
|
@@ -340,25 +340,25 @@ const Pt = {
|
|
|
340
340
|
NumpadEnter: s.KEYCODE_NUMPAD_ENTER,
|
|
341
341
|
NumpadEqual: s.KEYCODE_NUMPAD_EQUALS
|
|
342
342
|
};
|
|
343
|
-
function Yt(r, t, c, a, E,
|
|
343
|
+
function Yt(r, t, c, a, E, p, C = 1, v = 0, b = 0) {
|
|
344
344
|
const D = new ArrayBuffer(32), R = new DataView(D);
|
|
345
345
|
let S = 0;
|
|
346
|
-
return R.setUint8(S, Pt.INJECT_TOUCH_EVENT), S += 1, R.setUint8(S, r), S += 1, R.setBigInt64(S, BigInt(t), !0), S += 8, R.setInt32(S, Math.round(E), !0), S += 4, R.setInt32(S, Math.round(
|
|
346
|
+
return R.setUint8(S, Pt.INJECT_TOUCH_EVENT), S += 1, R.setUint8(S, r), S += 1, R.setBigInt64(S, BigInt(t), !0), S += 8, R.setInt32(S, Math.round(E), !0), S += 4, R.setInt32(S, Math.round(p), !0), S += 4, R.setUint16(S, c, !0), S += 2, R.setUint16(S, a, !0), S += 2, R.setInt16(S, Math.round(C * 65535), !0), S += 2, R.setInt32(S, v, !0), S += 4, R.setInt32(S, b, !0), D;
|
|
347
347
|
}
|
|
348
|
-
function Un(r, t, c, a, E,
|
|
348
|
+
function Un(r, t, c, a, E, p, C) {
|
|
349
349
|
const v = new ArrayBuffer(24), b = new DataView(v);
|
|
350
350
|
let D = 0;
|
|
351
|
-
return b.setUint8(D, Pt.INJECT_TWO_FINGER_TOUCH_EVENT), D += 1, b.setUint8(D, r), D += 1, b.setInt32(D, Math.round(a), !0), D += 4, b.setInt32(D, Math.round(E), !0), D += 4, b.setInt32(D, Math.round(
|
|
351
|
+
return b.setUint8(D, Pt.INJECT_TWO_FINGER_TOUCH_EVENT), D += 1, b.setUint8(D, r), D += 1, b.setInt32(D, Math.round(a), !0), D += 4, b.setInt32(D, Math.round(E), !0), D += 4, b.setInt32(D, Math.round(p), !0), D += 4, b.setInt32(D, Math.round(C), !0), D += 4, b.setUint16(D, t, !0), D += 2, b.setUint16(D, c, !0), D += 2, b.setUint16(D, 0, !0), v;
|
|
352
352
|
}
|
|
353
353
|
function Ln(r, t = !0) {
|
|
354
|
-
const a = new TextEncoder().encode(r), E = new ArrayBuffer(14 + a.length),
|
|
354
|
+
const a = new TextEncoder().encode(r), E = new ArrayBuffer(14 + a.length), p = new DataView(E);
|
|
355
355
|
let C = 0;
|
|
356
|
-
return
|
|
356
|
+
return p.setUint8(C, Pt.SET_CLIPBOARD), C += 1, p.setBigInt64(C, BigInt(0), !1), C += 8, p.setUint8(C, t ? 1 : 0), C += 1, p.setUint32(C, a.length, !1), C += 4, new Uint8Array(E, C).set(a), E;
|
|
357
357
|
}
|
|
358
358
|
function pt(r, t, c = 0, a = 0) {
|
|
359
|
-
const E = new ArrayBuffer(14),
|
|
359
|
+
const E = new ArrayBuffer(14), p = new DataView(E);
|
|
360
360
|
let C = 0;
|
|
361
|
-
return
|
|
361
|
+
return p.setUint8(C, Pt.INJECT_KEYCODE), C += 1, p.setUint8(C, r), C += 1, p.setInt32(C, t, !0), C += 4, p.setInt32(C, c, !0), C += 4, p.setInt32(C, a, !0), E;
|
|
362
362
|
}
|
|
363
363
|
const Qt = "Accessibility unavailable on this device.", kt = 500, Wr = (r, t) => Math.abs(r.x - t.x) < 0.5 && Math.abs(r.y - t.y) < 0.5 && Math.abs(r.width - t.width) < 0.5 && Math.abs(r.height - t.height) < 0.5, Fn = (r) => Math.max(0, r.width) * Math.max(0, r.height), xn = (r) => {
|
|
364
364
|
const t = r.find((c) => c.frame && c.frame.width > 0 && c.frame.height > 0);
|
|
@@ -375,31 +375,31 @@ const Qt = "Accessibility unavailable on this device.", kt = 500, Wr = (r, t) =>
|
|
|
375
375
|
return t;
|
|
376
376
|
};
|
|
377
377
|
function $n(r) {
|
|
378
|
-
const t = Array.isArray(r) ? r : [r], c = xn(t), a = [], E = (
|
|
378
|
+
const t = Array.isArray(r) ? r : [r], c = xn(t), a = [], E = (p, C) => {
|
|
379
379
|
if (a.length >= kt) return;
|
|
380
|
-
const v =
|
|
380
|
+
const v = p.frame;
|
|
381
381
|
if (v && v.width > 0 && v.height > 0 && !Wr(v, c)) {
|
|
382
|
-
const D =
|
|
382
|
+
const D = p.role_description || p.role || "", R = (typeof p.AXLabel == "string" ? p.AXLabel : "") || (typeof p.title == "string" ? p.title : "") || "";
|
|
383
383
|
a.push({
|
|
384
|
-
id: typeof
|
|
384
|
+
id: typeof p.AXUniqueId == "string" && p.AXUniqueId.length > 0 ? p.AXUniqueId : C,
|
|
385
385
|
path: C,
|
|
386
386
|
label: R,
|
|
387
|
-
value: typeof
|
|
387
|
+
value: typeof p.AXValue == "string" ? p.AXValue : "",
|
|
388
388
|
role: D,
|
|
389
|
-
type: typeof
|
|
390
|
-
enabled:
|
|
391
|
-
focused:
|
|
389
|
+
type: typeof p.type == "string" ? p.type : "",
|
|
390
|
+
enabled: p.enabled !== !1,
|
|
391
|
+
focused: p.focused === !0,
|
|
392
392
|
frame: { x: v.x, y: v.y, width: v.width, height: v.height },
|
|
393
|
-
selectors: Wn(
|
|
394
|
-
raw: Hn(
|
|
393
|
+
selectors: Wn(p),
|
|
394
|
+
raw: Hn(p)
|
|
395
395
|
});
|
|
396
396
|
}
|
|
397
|
-
const b = Array.isArray(
|
|
397
|
+
const b = Array.isArray(p.children) ? p.children : [];
|
|
398
398
|
for (let D = 0; D < b.length && a.length < kt; D++)
|
|
399
399
|
E(b[D], `${C}.${D}`);
|
|
400
400
|
};
|
|
401
|
-
for (let
|
|
402
|
-
E(t[
|
|
401
|
+
for (let p = 0; p < t.length && a.length < kt; p++)
|
|
402
|
+
E(t[p], String(p));
|
|
403
403
|
return {
|
|
404
404
|
platform: "ios",
|
|
405
405
|
screen: { width: c.width, height: c.height },
|
|
@@ -412,8 +412,8 @@ const Xn = (r) => {
|
|
|
412
412
|
for (const a of r) {
|
|
413
413
|
const E = a.parsedBounds;
|
|
414
414
|
if (!E) continue;
|
|
415
|
-
const
|
|
416
|
-
v > c && (c = v, t = { x: 0, y: 0, width:
|
|
415
|
+
const p = E.right - E.left, C = E.bottom - E.top, v = Math.max(0, p) * Math.max(0, C);
|
|
416
|
+
v > c && (c = v, t = { x: 0, y: 0, width: p, height: C });
|
|
417
417
|
}
|
|
418
418
|
return t;
|
|
419
419
|
}, Bn = (r) => {
|
|
@@ -423,11 +423,11 @@ const Xn = (r) => {
|
|
|
423
423
|
function qn(r) {
|
|
424
424
|
const t = Xn(r), c = [];
|
|
425
425
|
for (let a = 0; a < r.length && c.length < kt; a++) {
|
|
426
|
-
const E = r[a],
|
|
427
|
-
if (!
|
|
428
|
-
const C = Math.max(0,
|
|
426
|
+
const E = r[a], p = E.parsedBounds;
|
|
427
|
+
if (!p) continue;
|
|
428
|
+
const C = Math.max(0, p.right - p.left), v = Math.max(0, p.bottom - p.top);
|
|
429
429
|
if (C <= 0 || v <= 0) continue;
|
|
430
|
-
const b = { x:
|
|
430
|
+
const b = { x: p.left, y: p.top, width: C, height: v };
|
|
431
431
|
if (Wr(b, { x: 0, y: 0, width: t.width, height: t.height })) continue;
|
|
432
432
|
const D = E.contentDesc || E.text || "", R = E.className || "";
|
|
433
433
|
c.push({
|
|
@@ -452,7 +452,7 @@ function qn(r) {
|
|
|
452
452
|
};
|
|
453
453
|
}
|
|
454
454
|
function Vn(r, t) {
|
|
455
|
-
const c = Math.max(0, r.x), a = Math.max(0, r.y), E = Math.min(t.width, r.x + r.width),
|
|
455
|
+
const c = Math.max(0, r.x), a = Math.max(0, r.y), E = Math.min(t.width, r.x + r.width), p = Math.min(t.height, r.y + r.height), C = Math.max(0, E - c), v = Math.max(0, p - a);
|
|
456
456
|
return C > 0 && v > 0 ? { x: c, y: a, width: C, height: v } : null;
|
|
457
457
|
}
|
|
458
458
|
function Hr(r, t) {
|
|
@@ -470,11 +470,11 @@ function $r(r, t) {
|
|
|
470
470
|
}
|
|
471
471
|
function Gn(r, t, c) {
|
|
472
472
|
let a = null, E = 1 / 0;
|
|
473
|
-
for (const
|
|
474
|
-
const C =
|
|
473
|
+
for (const p of r.elements) {
|
|
474
|
+
const C = p.frame;
|
|
475
475
|
if (t < C.x || c < C.y || t > C.x + C.width || c > C.y + C.height) continue;
|
|
476
476
|
const v = Fn(C);
|
|
477
|
-
v < E && (E = v, a =
|
|
477
|
+
v < E && (E = v, a = p);
|
|
478
478
|
}
|
|
479
479
|
return a;
|
|
480
480
|
}
|
|
@@ -613,7 +613,7 @@ class ri {
|
|
|
613
613
|
const v = typeof E.message == "string" ? E.message : "getElementTree failed";
|
|
614
614
|
return this.settleReject(c, new Error(v)), !0;
|
|
615
615
|
}
|
|
616
|
-
const
|
|
616
|
+
const p = t.payload, C = Array.isArray(p?.nodes) ? p.nodes : [];
|
|
617
617
|
try {
|
|
618
618
|
const v = qn(C);
|
|
619
619
|
this.settleResolve(c, v);
|
|
@@ -763,7 +763,7 @@ const ui = async (r) => {
|
|
|
763
763
|
return !1;
|
|
764
764
|
}
|
|
765
765
|
}, li = er(
|
|
766
|
-
function({ element: t, screen: c, highlighted: a, selected: E, selectable:
|
|
766
|
+
function({ element: t, screen: c, highlighted: a, selected: E, selectable: p, onClick: C }) {
|
|
767
767
|
const v = Vn(t.frame, c);
|
|
768
768
|
if (!v) return null;
|
|
769
769
|
const b = Br(t);
|
|
@@ -780,7 +780,7 @@ const ui = async (r) => {
|
|
|
780
780
|
"data-selected": E ? "true" : "false",
|
|
781
781
|
"aria-label": b,
|
|
782
782
|
onClick: (D) => {
|
|
783
|
-
|
|
783
|
+
p && (D.preventDefault(), D.stopPropagation(), C(t, { x: D.clientX, y: D.clientY }));
|
|
784
784
|
},
|
|
785
785
|
style: {
|
|
786
786
|
left: `${v.x / c.width * 100}%`,
|
|
@@ -797,7 +797,7 @@ const ui = async (r) => {
|
|
|
797
797
|
platform: c,
|
|
798
798
|
anchor: a,
|
|
799
799
|
cursorAnchored: E,
|
|
800
|
-
showActions:
|
|
800
|
+
showActions: p,
|
|
801
801
|
onTap: C
|
|
802
802
|
}) {
|
|
803
803
|
const [v, b] = V(null);
|
|
@@ -855,7 +855,7 @@ const ui = async (r) => {
|
|
|
855
855
|
Math.round(t.frame.y)
|
|
856
856
|
] })
|
|
857
857
|
] }),
|
|
858
|
-
|
|
858
|
+
p && /* @__PURE__ */ oe("div", { className: "rc-inspect-card-actions", children: [
|
|
859
859
|
/* @__PURE__ */ k(
|
|
860
860
|
"button",
|
|
861
861
|
{
|
|
@@ -898,13 +898,13 @@ const ui = async (r) => {
|
|
|
898
898
|
geometry: c,
|
|
899
899
|
highlightedId: a,
|
|
900
900
|
selectedId: E,
|
|
901
|
-
mode:
|
|
901
|
+
mode: p,
|
|
902
902
|
cursorPosition: C,
|
|
903
903
|
frozenCursorPosition: v,
|
|
904
904
|
onSelectChange: b,
|
|
905
905
|
onTapElement: D
|
|
906
906
|
}) {
|
|
907
|
-
const R =
|
|
907
|
+
const R = p === "select", S = R ? a !== null && a !== E : a !== null, Z = R ? a ?? E : a, ge = Re(() => {
|
|
908
908
|
const H = /* @__PURE__ */ new Map();
|
|
909
909
|
if (!t) return H;
|
|
910
910
|
for (const he of t.elements) H.set(he.id, he);
|
|
@@ -952,7 +952,7 @@ const ui = async (r) => {
|
|
|
952
952
|
}
|
|
953
953
|
)
|
|
954
954
|
] });
|
|
955
|
-
}), gi = Rn(() => import("./duo-view-
|
|
955
|
+
}), gi = Rn(() => import("./duo-view-BsdKpp8d.mjs").then((r) => r.d)), F = (...r) => {
|
|
956
956
|
window.debugRemoteControl && console.log(...r);
|
|
957
957
|
}, w = (...r) => {
|
|
958
958
|
window.debugRemoteControl && console.warn(...r);
|
|
@@ -993,9 +993,9 @@ function wi(r) {
|
|
|
993
993
|
if (!c)
|
|
994
994
|
return w(`Unknown event.code: ${t}, key: ${r.key}`), null;
|
|
995
995
|
let a = s.META_NONE;
|
|
996
|
-
const E = t >= "KeyA" && t <= "KeyZ",
|
|
996
|
+
const E = t >= "KeyA" && t <= "KeyZ", p = r.getModifierState("CapsLock"), C = r.shiftKey;
|
|
997
997
|
let v = C;
|
|
998
|
-
return E && (v = C !==
|
|
998
|
+
return E && (v = C !== p), v && (a |= s.META_SHIFT_ON), r.ctrlKey && (a |= s.META_CTRL_ON), r.altKey && (a |= s.META_ALT_ON), r.metaKey && (a |= s.META_META_ON), { keycode: c, metaState: a };
|
|
999
999
|
}
|
|
1000
1000
|
const Li = Nn(
|
|
1001
1001
|
({
|
|
@@ -1004,7 +1004,7 @@ const Li = Nn(
|
|
|
1004
1004
|
token: c,
|
|
1005
1005
|
sessionId: a,
|
|
1006
1006
|
openUrl: E,
|
|
1007
|
-
showFrame:
|
|
1007
|
+
showFrame: p = !0,
|
|
1008
1008
|
deviceModel: C,
|
|
1009
1009
|
duoModelUrl: v,
|
|
1010
1010
|
autoReconnect: b = !1,
|
|
@@ -1073,7 +1073,7 @@ const Li = Nn(
|
|
|
1073
1073
|
}, ut = Z === !0 || Z === "hover-only", on = Z === "hover-only" ? "hover-only" : "select", se = Re(
|
|
1074
1074
|
() => a || Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15),
|
|
1075
1075
|
[a]
|
|
1076
|
-
), le = Re(() => Ci(t), [t]), Ve = Ti[le], lt = R?.[le], yr = le === "android" && zr ? ar ? lt?.tabletFrameLandscape : lt?.tabletFrame : ar ? lt?.frameLandscape : lt?.frame, vr = lt?.loadingLogo, wt = !ce &&
|
|
1076
|
+
), le = Re(() => Ci(t), [t]), Ve = Ti[le], lt = R?.[le], yr = le === "android" && zr ? ar ? lt?.tabletFrameLandscape : lt?.tabletFrame : ar ? lt?.frameLandscape : lt?.frame, vr = lt?.loadingLogo, wt = !ce && p && !!yr, Y = (e) => {
|
|
1077
1077
|
F(e);
|
|
1078
1078
|
}, ae = (e) => {
|
|
1079
1079
|
!P.current || P.current.readyState !== "open" || (P.current.send(e), z.current?.bumpActivity());
|
|
@@ -1082,11 +1082,11 @@ const Li = Nn(
|
|
|
1082
1082
|
if (!i) return;
|
|
1083
1083
|
const n = Je(i, e, o);
|
|
1084
1084
|
if (!n) return;
|
|
1085
|
-
const { videoX: l, videoY: u, videoWidth: f, videoHeight:
|
|
1085
|
+
const { videoX: l, videoY: u, videoWidth: f, videoHeight: m } = n, g = Yt(
|
|
1086
1086
|
U.ACTION_DOWN,
|
|
1087
1087
|
Or,
|
|
1088
1088
|
f,
|
|
1089
|
-
|
|
1089
|
+
m,
|
|
1090
1090
|
l,
|
|
1091
1091
|
u,
|
|
1092
1092
|
1,
|
|
@@ -1098,7 +1098,7 @@ const Li = Nn(
|
|
|
1098
1098
|
U.ACTION_UP,
|
|
1099
1099
|
Or,
|
|
1100
1100
|
f,
|
|
1101
|
-
|
|
1101
|
+
m,
|
|
1102
1102
|
l,
|
|
1103
1103
|
u,
|
|
1104
1104
|
0,
|
|
@@ -1110,8 +1110,8 @@ const Li = Nn(
|
|
|
1110
1110
|
}, cn = (e, o) => {
|
|
1111
1111
|
const i = dt();
|
|
1112
1112
|
if (!i || o.screen.width <= 0 || o.screen.height <= 0) return;
|
|
1113
|
-
const n = e.frame.x + e.frame.width / 2, l = e.frame.y + e.frame.height / 2, u = n / o.screen.width * i.actualWidth, f = l / o.screen.height * i.actualHeight,
|
|
1114
|
-
_r(
|
|
1113
|
+
const n = e.frame.x + e.frame.width / 2, l = e.frame.y + e.frame.height / 2, u = n / o.screen.width * i.actualWidth, f = l / o.screen.height * i.actualHeight, m = i.videoRect.left + i.offsetX + u, g = i.videoRect.top + i.offsetY + f;
|
|
1114
|
+
_r(m, g);
|
|
1115
1115
|
}, At = -1, St = -2, Me = -3, Ge = (e, o, i, n, l, u) => {
|
|
1116
1116
|
const f = Yt(
|
|
1117
1117
|
e,
|
|
@@ -1136,26 +1136,26 @@ const Li = Nn(
|
|
|
1136
1136
|
}, be = (e, o, i) => {
|
|
1137
1137
|
if (!i) return;
|
|
1138
1138
|
const { videoX: n, videoY: l, videoWidth: u, videoHeight: f } = i;
|
|
1139
|
-
let
|
|
1139
|
+
let m = null, g = null, h = 1;
|
|
1140
1140
|
const M = U.BUTTON_PRIMARY;
|
|
1141
1141
|
switch (o) {
|
|
1142
1142
|
case "down":
|
|
1143
|
-
e !== Me && st.current.end(),
|
|
1143
|
+
e !== Me && st.current.end(), m = J.current.size === 0 ? U.ACTION_DOWN : U.ACTION_POINTER_DOWN, g = { x: n, y: l }, J.current.set(e, g), e === -1 && x.current?.focus();
|
|
1144
1144
|
break;
|
|
1145
1145
|
case "move":
|
|
1146
|
-
J.current.has(e) && (
|
|
1146
|
+
J.current.has(e) && (m = U.ACTION_MOVE, g = { x: n, y: l }, J.current.set(e, g));
|
|
1147
1147
|
break;
|
|
1148
1148
|
case "up":
|
|
1149
1149
|
case "cancel":
|
|
1150
|
-
J.current.has(e) && (g = J.current.get(e), J.current.delete(e), o === "cancel" ?
|
|
1150
|
+
J.current.has(e) && (g = J.current.get(e), J.current.delete(e), o === "cancel" ? m = U.ACTION_CANCEL : m = J.current.size === 0 ? U.ACTION_UP : U.ACTION_POINTER_UP);
|
|
1151
1151
|
break;
|
|
1152
1152
|
}
|
|
1153
|
-
if (
|
|
1153
|
+
if (m !== null && g !== null) {
|
|
1154
1154
|
F("[rc-touch][mouse->touch] sending", {
|
|
1155
1155
|
pointerId: e,
|
|
1156
1156
|
eventType: o,
|
|
1157
|
-
action:
|
|
1158
|
-
actionName: Kt(
|
|
1157
|
+
action: m,
|
|
1158
|
+
actionName: Kt(m),
|
|
1159
1159
|
positionToSend: g,
|
|
1160
1160
|
video: { width: u, height: f },
|
|
1161
1161
|
altHeld: Ae.current,
|
|
@@ -1166,7 +1166,7 @@ const Li = Nn(
|
|
|
1166
1166
|
}))
|
|
1167
1167
|
});
|
|
1168
1168
|
const _ = Yt(
|
|
1169
|
-
|
|
1169
|
+
m,
|
|
1170
1170
|
e,
|
|
1171
1171
|
u,
|
|
1172
1172
|
f,
|
|
@@ -1178,7 +1178,7 @@ const Li = Nn(
|
|
|
1178
1178
|
);
|
|
1179
1179
|
_ && (F("[rc-touch][mouse->touch] buffer", {
|
|
1180
1180
|
pointerId: e,
|
|
1181
|
-
actionName: Kt(
|
|
1181
|
+
actionName: Kt(m),
|
|
1182
1182
|
byteLength: _.byteLength
|
|
1183
1183
|
}), ae(_));
|
|
1184
1184
|
} else (o === "up" || o === "cancel") && J.current.delete(e);
|
|
@@ -1203,10 +1203,10 @@ const Li = Nn(
|
|
|
1203
1203
|
if (!e || !o) return null;
|
|
1204
1204
|
const i = e.videoWidth, n = e.videoHeight;
|
|
1205
1205
|
if (!i || !n) return null;
|
|
1206
|
-
const l = e.getBoundingClientRect(), u = o.getBoundingClientRect(), f = l.width,
|
|
1207
|
-
let M = f, _ =
|
|
1208
|
-
g > h ? _ = f / g : M =
|
|
1209
|
-
const N = (f - M) / 2, $ = (
|
|
1206
|
+
const l = e.getBoundingClientRect(), u = o.getBoundingClientRect(), f = l.width, m = l.height, g = i / n, h = f / m;
|
|
1207
|
+
let M = f, _ = m;
|
|
1208
|
+
g > h ? _ = f / g : M = m * g;
|
|
1209
|
+
const N = (f - M) / 2, $ = (m - _) / 2;
|
|
1210
1210
|
return {
|
|
1211
1211
|
videoWidth: i,
|
|
1212
1212
|
videoHeight: n,
|
|
@@ -1218,7 +1218,7 @@ const Li = Nn(
|
|
|
1218
1218
|
offsetY: $
|
|
1219
1219
|
};
|
|
1220
1220
|
}, Je = (e, o, i) => {
|
|
1221
|
-
const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)),
|
|
1221
|
+
const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)), m = Math.max(
|
|
1222
1222
|
0,
|
|
1223
1223
|
Math.min(e.videoWidth, u / e.actualWidth * e.videoWidth)
|
|
1224
1224
|
), g = Math.max(
|
|
@@ -1226,25 +1226,25 @@ const Li = Nn(
|
|
|
1226
1226
|
Math.min(e.videoHeight, f / e.actualHeight * e.videoHeight)
|
|
1227
1227
|
);
|
|
1228
1228
|
return {
|
|
1229
|
-
videoX:
|
|
1229
|
+
videoX: m,
|
|
1230
1230
|
videoY: g,
|
|
1231
1231
|
videoWidth: e.videoWidth,
|
|
1232
1232
|
videoHeight: e.videoHeight
|
|
1233
1233
|
};
|
|
1234
1234
|
}, sn = (e, o, i) => {
|
|
1235
|
-
const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)),
|
|
1235
|
+
const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)), m = Math.max(
|
|
1236
1236
|
0,
|
|
1237
1237
|
Math.min(e.videoWidth, u / e.actualWidth * e.videoWidth)
|
|
1238
1238
|
), g = Math.max(
|
|
1239
1239
|
0,
|
|
1240
1240
|
Math.min(e.videoHeight, f / e.actualHeight * e.videoHeight)
|
|
1241
|
-
), h = e.videoWidth -
|
|
1241
|
+
), h = e.videoWidth - m, M = e.videoHeight - g, _ = e.videoRect.left + e.offsetX, N = e.videoRect.top + e.offsetY, $ = _ - e.containerRect.left + u, te = N - e.containerRect.top + f, G = _ - e.containerRect.left + (e.actualWidth - u), y = N - e.containerRect.top + (e.actualHeight - f);
|
|
1242
1242
|
return {
|
|
1243
1243
|
containerX: $,
|
|
1244
1244
|
containerY: te,
|
|
1245
1245
|
mirrorContainerX: G,
|
|
1246
1246
|
mirrorContainerY: y,
|
|
1247
|
-
videoX:
|
|
1247
|
+
videoX: m,
|
|
1248
1248
|
videoY: g,
|
|
1249
1249
|
mirrorVideoX: h,
|
|
1250
1250
|
mirrorVideoY: M,
|
|
@@ -1252,26 +1252,26 @@ const Li = Nn(
|
|
|
1252
1252
|
videoHeight: e.videoHeight
|
|
1253
1253
|
};
|
|
1254
1254
|
}, an = (e, o, i, n, l, u, f) => {
|
|
1255
|
-
const
|
|
1255
|
+
const m = Un(e, o, i, n, l, u, f);
|
|
1256
1256
|
F("[rc-touch2] sendTwoFingerMessage (iOS)", {
|
|
1257
1257
|
actionName: Kt(e),
|
|
1258
1258
|
video: { width: o, height: i },
|
|
1259
1259
|
p0: { x: n, y: l },
|
|
1260
1260
|
p1: { x: u, y: f },
|
|
1261
|
-
byteLength:
|
|
1262
|
-
}), ae(
|
|
1263
|
-
}, ze = (e, o, i, n, l, u, f,
|
|
1261
|
+
byteLength: m.byteLength
|
|
1262
|
+
}), ae(m);
|
|
1263
|
+
}, ze = (e, o, i, n, l, u, f, m, g) => {
|
|
1264
1264
|
if (F("[rc-touch2] applyTwoFingerEvent", {
|
|
1265
1265
|
platform: le,
|
|
1266
1266
|
eventType: e,
|
|
1267
1267
|
video: { width: o, height: i },
|
|
1268
|
-
p0: { x: n, y: l, id:
|
|
1268
|
+
p0: { x: n, y: l, id: m },
|
|
1269
1269
|
p1: { x: u, y: f, id: g }
|
|
1270
1270
|
}), e === "down" && st.current.end(), le === "ios") {
|
|
1271
1271
|
const h = e === "down" ? U.ACTION_DOWN : e === "move" ? U.ACTION_MOVE : U.ACTION_UP;
|
|
1272
1272
|
an(h, o, i, n, l, u, f);
|
|
1273
1273
|
} else
|
|
1274
|
-
e === "down" ? (Ge(U.ACTION_DOWN,
|
|
1274
|
+
e === "down" ? (Ge(U.ACTION_DOWN, m, o, i, n, l), Ge(U.ACTION_POINTER_DOWN, g, o, i, u, f)) : e === "move" ? (Ge(U.ACTION_MOVE, m, o, i, n, l), Ge(U.ACTION_MOVE, g, o, i, u, f)) : (Ge(U.ACTION_POINTER_UP, g, o, i, u, f), Ge(U.ACTION_UP, m, o, i, n, l));
|
|
1275
1275
|
}, un = (e, o, i) => {
|
|
1276
1276
|
if (!Ae.current) {
|
|
1277
1277
|
Se !== null && _t(null);
|
|
@@ -1284,8 +1284,8 @@ const Li = Nn(
|
|
|
1284
1284
|
if (!n || n.screen.width <= 0 || n.screen.height <= 0) return null;
|
|
1285
1285
|
const l = o - e.videoRect.left - e.offsetX, u = i - e.videoRect.top - e.offsetY;
|
|
1286
1286
|
if (l < 0 || u < 0 || l > e.actualWidth || u > e.actualHeight) return null;
|
|
1287
|
-
const f = l / e.actualWidth * n.screen.width,
|
|
1288
|
-
return Gn(n, f,
|
|
1287
|
+
const f = l / e.actualWidth * n.screen.width, m = u / e.actualHeight * n.screen.height;
|
|
1288
|
+
return Gn(n, f, m);
|
|
1289
1289
|
}, ve = (e) => {
|
|
1290
1290
|
if (ce) return;
|
|
1291
1291
|
e.preventDefault(), e.stopPropagation();
|
|
@@ -1318,7 +1318,7 @@ const Li = Nn(
|
|
|
1318
1318
|
return;
|
|
1319
1319
|
}
|
|
1320
1320
|
if (n.length === 2) {
|
|
1321
|
-
const f = n[0],
|
|
1321
|
+
const f = n[0], m = n[1], g = Je(o, f.clientX, f.clientY), h = Je(o, m.clientX, m.clientY);
|
|
1322
1322
|
if (!g || !h) return;
|
|
1323
1323
|
B.current ? B.current.source === "real-touch" && (B.current.finger0 = { x: g.videoX, y: g.videoY }, B.current.finger1 = { x: h.videoX, y: h.videoY }, ze(
|
|
1324
1324
|
"move",
|
|
@@ -1336,7 +1336,7 @@ const Li = Nn(
|
|
|
1336
1336
|
videoSize: { width: g.videoWidth, height: g.videoHeight },
|
|
1337
1337
|
source: "real-touch",
|
|
1338
1338
|
pointerId0: f.identifier,
|
|
1339
|
-
pointerId1:
|
|
1339
|
+
pointerId1: m.identifier
|
|
1340
1340
|
}, ze(
|
|
1341
1341
|
"down",
|
|
1342
1342
|
g.videoWidth,
|
|
@@ -1346,7 +1346,7 @@ const Li = Nn(
|
|
|
1346
1346
|
h.videoX,
|
|
1347
1347
|
h.videoY,
|
|
1348
1348
|
f.identifier,
|
|
1349
|
-
|
|
1349
|
+
m.identifier
|
|
1350
1350
|
));
|
|
1351
1351
|
} else if (n.length < 2 && B.current?.source === "real-touch") {
|
|
1352
1352
|
const f = B.current;
|
|
@@ -1368,8 +1368,8 @@ const Li = Nn(
|
|
|
1368
1368
|
{
|
|
1369
1369
|
const f = l[0];
|
|
1370
1370
|
if (f) {
|
|
1371
|
-
const
|
|
1372
|
-
be(f.identifier, u,
|
|
1371
|
+
const m = Je(o, f.clientX, f.clientY);
|
|
1372
|
+
be(f.identifier, u, m);
|
|
1373
1373
|
}
|
|
1374
1374
|
}
|
|
1375
1375
|
}
|
|
@@ -1413,11 +1413,11 @@ const Li = Nn(
|
|
|
1413
1413
|
}
|
|
1414
1414
|
}
|
|
1415
1415
|
}, dn = (e, o) => {
|
|
1416
|
-
const { videoX: i, videoY: n, videoWidth: l, videoHeight: u } = o, f = l - i,
|
|
1416
|
+
const { videoX: i, videoY: n, videoWidth: l, videoHeight: u } = o, f = l - i, m = u - n;
|
|
1417
1417
|
if (e === "down") {
|
|
1418
1418
|
B.current = {
|
|
1419
1419
|
finger0: { x: i, y: n },
|
|
1420
|
-
finger1: { x: f, y:
|
|
1420
|
+
finger1: { x: f, y: m },
|
|
1421
1421
|
videoSize: { width: l, height: u },
|
|
1422
1422
|
source: "alt-mouse",
|
|
1423
1423
|
pointerId0: At,
|
|
@@ -1429,21 +1429,21 @@ const Li = Nn(
|
|
|
1429
1429
|
i,
|
|
1430
1430
|
n,
|
|
1431
1431
|
f,
|
|
1432
|
-
|
|
1432
|
+
m,
|
|
1433
1433
|
At,
|
|
1434
1434
|
St
|
|
1435
1435
|
);
|
|
1436
1436
|
return;
|
|
1437
1437
|
}
|
|
1438
1438
|
if (e === "move") {
|
|
1439
|
-
B.current?.source === "alt-mouse" && (B.current.finger0 = { x: i, y: n }, B.current.finger1 = { x: f, y:
|
|
1439
|
+
B.current?.source === "alt-mouse" && (B.current.finger0 = { x: i, y: n }, B.current.finger1 = { x: f, y: m }, ze(
|
|
1440
1440
|
"move",
|
|
1441
1441
|
l,
|
|
1442
1442
|
u,
|
|
1443
1443
|
i,
|
|
1444
1444
|
n,
|
|
1445
1445
|
f,
|
|
1446
|
-
|
|
1446
|
+
m,
|
|
1447
1447
|
At,
|
|
1448
1448
|
St
|
|
1449
1449
|
));
|
|
@@ -1482,7 +1482,7 @@ const Li = Nn(
|
|
|
1482
1482
|
const u = Je(i, e.clientX, e.clientY);
|
|
1483
1483
|
if (!u) return;
|
|
1484
1484
|
e.preventDefault();
|
|
1485
|
-
const f = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualWidth : 1) * (i.videoWidth / i.actualWidth),
|
|
1485
|
+
const f = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualWidth : 1) * (i.videoWidth / i.actualWidth), m = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualHeight : 1) * (i.videoHeight / i.actualHeight), g = -e.deltaX * f, h = -e.deltaY * m, M = (y) => {
|
|
1486
1486
|
window.clearTimeout(y.endTimer), y.endTimer = window.setTimeout(Dr, fn);
|
|
1487
1487
|
};
|
|
1488
1488
|
if (g === 0 && h === 0) {
|
|
@@ -1638,10 +1638,10 @@ const Li = Nn(
|
|
|
1638
1638
|
const o = `ui-mic-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
1639
1639
|
xe.current = o, e.send(JSON.stringify({ type: "microphoneStart", id: o }));
|
|
1640
1640
|
}, zt = () => Ar(() => gn()), gn = async () => {
|
|
1641
|
-
const e = Ot.current, o = () => e === Ot.current && Jt(), i = (
|
|
1641
|
+
const e = Ot.current, o = () => e === Ot.current && Jt(), i = (m) => {
|
|
1642
1642
|
L("onMicrophoneStateChange", it.current, {
|
|
1643
1643
|
active: !1,
|
|
1644
|
-
error:
|
|
1644
|
+
error: m
|
|
1645
1645
|
});
|
|
1646
1646
|
};
|
|
1647
1647
|
if (!o()) return;
|
|
@@ -1656,8 +1656,8 @@ const Li = Nn(
|
|
|
1656
1656
|
let u = null;
|
|
1657
1657
|
try {
|
|
1658
1658
|
u = await navigator.mediaDevices.getUserMedia({ audio: !0, video: !1 });
|
|
1659
|
-
} catch (
|
|
1660
|
-
console.warn("[RemoteControl] microphone getUserMedia denied/failed:",
|
|
1659
|
+
} catch (m) {
|
|
1660
|
+
console.warn("[RemoteControl] microphone getUserMedia denied/failed:", m);
|
|
1661
1661
|
}
|
|
1662
1662
|
if (!o()) {
|
|
1663
1663
|
u && j(u);
|
|
@@ -1674,15 +1674,15 @@ const Li = Nn(
|
|
|
1674
1674
|
}
|
|
1675
1675
|
try {
|
|
1676
1676
|
await l.replaceTrack(f);
|
|
1677
|
-
} catch (
|
|
1678
|
-
w("replaceTrack(audioTrack) failed:",
|
|
1677
|
+
} catch (m) {
|
|
1678
|
+
w("replaceTrack(audioTrack) failed:", m), j(u), i("Failed to attach the microphone track to the connection");
|
|
1679
1679
|
return;
|
|
1680
1680
|
}
|
|
1681
1681
|
if (!o()) {
|
|
1682
1682
|
try {
|
|
1683
1683
|
await l.replaceTrack(null);
|
|
1684
|
-
} catch (
|
|
1685
|
-
w("replaceTrack(null) on stale mic attach failed:",
|
|
1684
|
+
} catch (m) {
|
|
1685
|
+
w("replaceTrack(null) on stale mic attach failed:", m);
|
|
1686
1686
|
}
|
|
1687
1687
|
j(u);
|
|
1688
1688
|
return;
|
|
@@ -1748,12 +1748,12 @@ const Li = Nn(
|
|
|
1748
1748
|
N && (l = N.mimeType);
|
|
1749
1749
|
}
|
|
1750
1750
|
if (!n) return;
|
|
1751
|
-
const f = n.timestamp ?? Date.now(),
|
|
1751
|
+
const f = n.timestamp ?? Date.now(), m = vt.current;
|
|
1752
1752
|
let g, h, M;
|
|
1753
|
-
if (
|
|
1754
|
-
const N = (f -
|
|
1755
|
-
if (typeof n.framesEncoded == "number" && typeof
|
|
1756
|
-
const $ = n.packetsSent -
|
|
1753
|
+
if (m && f > m.timestamp) {
|
|
1754
|
+
const N = (f - m.timestamp) / 1e3;
|
|
1755
|
+
if (typeof n.framesEncoded == "number" && typeof m.framesEncoded == "number" && (g = Math.max(0, (n.framesEncoded - m.framesEncoded) / N)), typeof n.bytesSent == "number" && typeof m.bytesSent == "number" && (h = Math.max(0, (n.bytesSent - m.bytesSent) * 8 / N)), typeof n.packetsSent == "number" && typeof m.packetsSent == "number" && u && typeof u.packetsLost == "number" && typeof m.packetsLost == "number") {
|
|
1756
|
+
const $ = n.packetsSent - m.packetsSent, te = u.packetsLost - m.packetsLost;
|
|
1757
1757
|
$ > 0 && (M = Math.max(0, Math.min(100, te / $ * 100)));
|
|
1758
1758
|
}
|
|
1759
1759
|
}
|
|
@@ -1799,9 +1799,9 @@ const Li = Nn(
|
|
|
1799
1799
|
return;
|
|
1800
1800
|
}
|
|
1801
1801
|
L("onCameraDemandChange", me.current, !0);
|
|
1802
|
-
const f = ee.current,
|
|
1803
|
-
if (
|
|
1804
|
-
De.current = e, Mr(o,
|
|
1802
|
+
const f = ee.current, m = f?.getVideoTracks()[0], g = De.current;
|
|
1803
|
+
if (m?.readyState === "live" && g && !ci(g, e)) {
|
|
1804
|
+
De.current = e, Mr(o, m), br();
|
|
1805
1805
|
return;
|
|
1806
1806
|
}
|
|
1807
1807
|
if (f) {
|
|
@@ -2002,11 +2002,11 @@ const Li = Nn(
|
|
|
2002
2002
|
}), {
|
|
2003
2003
|
rtcConfiguration: u,
|
|
2004
2004
|
cameraSupported: f,
|
|
2005
|
-
foldSupported:
|
|
2005
|
+
foldSupported: m
|
|
2006
2006
|
} = await l;
|
|
2007
2007
|
if (!i() || T.current !== n)
|
|
2008
2008
|
return;
|
|
2009
|
-
const g = C === "iphone-duo" ||
|
|
2009
|
+
const g = C === "iphone-duo" || m;
|
|
2010
2010
|
rr(g);
|
|
2011
2011
|
const h = new RTCPeerConnection(u);
|
|
2012
2012
|
W.current = h, h.addTransceiver("audio", { direction: "recvonly" });
|
|
@@ -2362,15 +2362,15 @@ const Li = Nn(
|
|
|
2362
2362
|
ur({}), Ir();
|
|
2363
2363
|
return;
|
|
2364
2364
|
}
|
|
2365
|
-
const f = o.clientWidth,
|
|
2366
|
-
if (f === 0 ||
|
|
2365
|
+
const f = o.clientWidth, m = o.clientHeight;
|
|
2366
|
+
if (f === 0 || m === 0) return;
|
|
2367
2367
|
const g = e.videoWidth > e.videoHeight;
|
|
2368
2368
|
Jr(g), jr(
|
|
2369
2369
|
le === "android" && Di(e.videoWidth, e.videoHeight)
|
|
2370
2370
|
);
|
|
2371
2371
|
const h = g ? Ve.videoPosition.landscape : Ve.videoPosition.portrait;
|
|
2372
2372
|
let M = {};
|
|
2373
|
-
h.heightMultiplier ? (M.height = `${
|
|
2373
|
+
h.heightMultiplier ? (M.height = `${m * h.heightMultiplier}px`, M.width = "auto") : h.widthMultiplier && (M.width = `${f * h.widthMultiplier}px`, M.height = "auto"), M.borderRadius = `${g ? m * Ve.videoBorderRadiusMultiplier : f * Ve.videoBorderRadiusMultiplier}px`, ur(M), Ir();
|
|
2374
2374
|
}, l = new ResizeObserver(() => {
|
|
2375
2375
|
n();
|
|
2376
2376
|
});
|
|
@@ -2597,6 +2597,7 @@ const Li = Nn(
|
|
|
2597
2597
|
ce && nr && /* @__PURE__ */ k(Yn, { fallback: /* @__PURE__ */ k("div", { children: "Loading iPhone Duo…" }), children: /* @__PURE__ */ k(
|
|
2598
2598
|
gi,
|
|
2599
2599
|
{
|
|
2600
|
+
showFrame: p,
|
|
2600
2601
|
modelUrl: v,
|
|
2601
2602
|
outer: x.current,
|
|
2602
2603
|
inner: et.current,
|