Files
discord-decomp/_bundle/JSReanimated.js
T
2026-11-01 12:12:55 +02:00

286 lines
8.9 KiB
JavaScript

// Metro module 1620 (f1621).
import _classCallCheck from "./_classCallCheck";
import _createClass from "./_createClass";
import _classPrivateFieldKey from "./_classPrivateFieldKey";
import * as _Module1609 from "./Module1609";
import { isJest, isChromeDebugger, isWindowAvailable } from "./Module1609";
import { mockedRequestAnimationFrame } from "./Module1621";
import { WorkletsModule } from "./Module1622";
import { SensorType } from "./Module1631";
import { ReanimatedError } from "./Module1617";
import { logger } from "./Module1610";
let c1282_6, c1282_7;
let env1282 = {};
const c1282_4 = !isJest() && globalThis.globalThis.requestAnimationFrame ? globalThis.globalThis.requestAnimationFrame : mockedRequestAnimationFrame;
const c1282_5 = _classPrivateFieldKey("workletsModule");
const JSReanimated = function JSReanimated() {
_classCallCheck(this, JSReanimated);
Object.defineProperty(this, c1282_5, {
writable: true,
value: WorkletsModule
});
this.nextSensorId = 0;
this.sensors = new Map();
this.platform = void 0;
this.getSensorCallback = (c28918_0, a1, c28918_1) => {
if (SensorType.ACCELEROMETER !== a1 && SensorType.GRAVITY !== a1) {
if (SensorType.GYROSCOPE !== a1 && SensorType.MAGNETIC_FIELD !== a1) {
if (SensorType.ROTATION === a1) {
return () => {
const [qw, qx, r16, r17] = c28918_0.quaternion;
const platform2 = this.platform;
const WEB_ANDROID = c1282_7.WEB_ANDROID;
let qz = r17;
let qy = r16;
if (platform2 === WEB_ANDROID) {
const r23 = [r17, -r16];
qy = r23[0];
qz = r23[1];
}
c28918_1({
qw,
qx,
qy,
qz,
yaw: -Math.atan2(2 * (qy * qz + qw * qx), qw * qw - qx * qx - qy * qy + qz * qz),
pitch: Math.sin(-2 * (qx * qz - qw * qy)),
roll: -Math.atan2(2 * (qx * qy + qw * qz), qw * qw + qx * qx - qy * qy - qz * qz),
interfaceOrientation: 0
});
};
}
return void 0;
}
return () => {
c28918_1({
x: c28918_0.x,
y: c28918_0.y,
z: c28918_0.z,
interfaceOrientation: 0
});
};
}
return () => {
const { x: r7, y: r6, z: r10 } = c28918_0;
const platform2 = this.platform;
const WEB_ANDROID = c1282_7.WEB_ANDROID;
let r14 = r10;
let r4 = r6;
let r5 = r7;
if (platform2 === WEB_ANDROID) {
const r18 = [-r7, -r6, -r10];
r5 = r18[0];
r4 = r18[1];
r14 = r18[2];
}
c28918_1({
x: r5,
y: r4,
z: r14,
interfaceOrientation: 0
});
};
};
};
c1282_6 = _createClass(JSReanimated, [{
key: "scheduleOnUI",
value: function scheduleOnUI(a0) {
c1282_4(a0);
}
}, {
key: "createWorkletRuntime",
value: function createWorkletRuntime(a0, a1) {
throw new ReanimatedError("createWorkletRuntime is not available in JSReanimated.");
}
}, {
key: "scheduleOnRuntime",
value: function scheduleOnRuntime() {
throw new ReanimatedError("scheduleOnRuntime is not available in JSReanimated.");
}
}, {
key: "registerEventHandler",
value: function registerEventHandler(a0, a1, a2) {
throw new ReanimatedError("registerEventHandler is not available in JSReanimated.");
}
}, {
key: "unregisterEventHandler",
value: function unregisterEventHandler(a0) {
throw new ReanimatedError("unregisterEventHandler is not available in JSReanimated.");
}
}, {
key: "enableLayoutAnimations",
value: function enableLayoutAnimations() {
if (_Module1609.isWeb()) {
logger.warn("Layout Animations are not supported on web yet.");
} else if (isJest()) {
logger.warn("Layout Animations are no-ops when using Jest.");
} else if (isChromeDebugger()) {
logger.warn("Layout Animations are no-ops when using Chrome Debugger.");
} else {
logger.warn("Layout Animations are not supported on this configuration.");
}
}
}, {
key: "configureLayoutAnimationBatch",
value: function configureLayoutAnimationBatch() {}
}, {
key: "setShouldAnimateExitingForTag",
value: function setShouldAnimateExitingForTag() {}
}, {
key: "registerSensor",
value: function registerSensor(a0, a1, a2, a3) {
if (isWindowAvailable()) {
if (this.platform === void 0) {
this.detectPlatform();
}
if (this.getSensorName(a0) in window) {
if (this.platform === void 0) {
this.detectPlatform();
}
const r47 = this.initializeSensor(a0, a1);
r47.addEventListener("reading", this.getSensorCallback(r47, a0, a3));
r47.start();
this.sensors.set(this.nextSensorId, r47);
const r60 = +this.nextSensorId;
this.nextSensorId = r60 + 1;
return r60;
}
const isWeb = _Module1609.isWeb();
let r28 = "";
const r29 = isWeb ? location.protocol !== "https:" ? " Make sure you use secure origin with `npx expo start --web --https`." : "" : "";
if (this.platform === c1282_7.WEB_IOS) {
r28 = " For iOS web, you will also have to also grant permission in the browser: https://dev.to/li/how-to-requestpermission-for-devicemotion-and-deviceorientation-events-in-ios-13-46g2.";
}
logger.warn(`Sensor is not available.${r29}${r28}`);
return -1;
}
return -1;
}
}, {
key: "unregisterSensor",
value: function unregisterSensor(a0) {
const r5 = this.sensors.get(a0);
if (r5 !== void 0) {
r5.stop();
this.sensors.delete(a0);
}
}
}, {
key: "subscribeForKeyboardEvents",
value: function subscribeForKeyboardEvents(a0) {
if (_Module1609.isWeb()) {
logger.warn("useAnimatedKeyboard is not available on web yet.");
} else if (isJest()) {
logger.warn("useAnimatedKeyboard is not available when using Jest.");
} else if (isChromeDebugger()) {
logger.warn("useAnimatedKeyboard is not available when using Chrome Debugger.");
} else {
logger.warn("useAnimatedKeyboard is not available on this configuration.");
}
return -1;
}
}, {
key: "unsubscribeFromKeyboardEvents",
value: function unsubscribeFromKeyboardEvents(a0) {}
}, {
key: "initializeSensor",
value: function initializeSensor(a0, a1) {
const r4 = a1 <= 0 ? {
referenceFrame: "device"
} : {
frequency: 1000 / a1
};
if (SensorType.ACCELEROMETER === a0) {
return new window.Accelerometer(r4);
}
if (SensorType.GYROSCOPE === a0) {
return new window.Gyroscope(r4);
}
if (SensorType.GRAVITY === a0) {
return new window.GravitySensor(r4);
}
if (SensorType.MAGNETIC_FIELD === a0) {
return new window.Magnetometer(r4);
}
if (SensorType.ROTATION === a0) {
return new window.AbsoluteOrientationSensor(r4);
}
}
}, {
key: "getSensorName",
value: function getSensorName(a0) {
if (SensorType.ACCELEROMETER === a0) {
return "Accelerometer";
}
if (SensorType.GRAVITY === a0) {
return "GravitySensor";
}
if (SensorType.GYROSCOPE === a0) {
return "Gyroscope";
}
if (SensorType.MAGNETIC_FIELD === a0) {
return "Magnetometer";
}
if (SensorType.ROTATION === a0) {
return "AbsoluteOrientationSensor";
}
}
}, {
key: "getSettledUpdates",
value: function getSettledUpdates() {
throw new ReanimatedError("`getSettledUpdates` is not available in JSReanimated.");
}
}, {
key: "detectPlatform",
value: function detectPlatform() {
const r5 = navigator.userAgent || navigator.vendor || window.opera;
if (r5 === void 0) {
this.platform = c1282_7.UNKNOWN;
} else if (/iPad|iPhone|iPod/.test(r5)) {
this.platform = c1282_7.WEB_IOS;
} else {
const r13 = /android/i.test(r5);
if (r13) {
this.platform = c1282_7.WEB_ANDROID;
} else {
this.platform = c1282_7.WEB;
}
}
}
}, {
key: "getViewProp",
value: function getViewProp(a0, a1, a2, a3) {
throw new ReanimatedError("getViewProp is not available in JSReanimated.");
}
}, {
key: "configureProps",
value: function configureProps() {
throw new ReanimatedError("configureProps is not available in JSReanimated.");
}
}, {
key: "executeOnUIRuntimeSync",
value: function executeOnUIRuntimeSync(a0) {
throw new ReanimatedError("`executeOnUIRuntimeSync` is not available in JSReanimated.");
}
}, {
key: "markNodeAsRemovable",
value: function markNodeAsRemovable(a0) {
throw new ReanimatedError("markNodeAsRemovable is not available in JSReanimated.");
}
}, {
key: "unmarkNodeAsRemovable",
value: function unmarkNodeAsRemovable(a0) {
throw new ReanimatedError("unmarkNodeAsRemovable is not available in JSReanimated.");
}
}]);
c1282_7 = {
WEB_IOS: "web iOS",
WEB_ANDROID: "web Android",
WEB: "web",
UNKNOWN: "unknown"
};
export function createJSReanimatedModule() {
return new c1282_6();
}
export { c1282_7 as Platform };