Files
discord-decomp/sources/by-id/module-01796-getSwipeSimulator.js
2026-07-28 01:06:53 +03:00

276 lines
19 KiB
JavaScript

/* Metro module 1796; source: unknown; dependencies: [1797, 1795] */
import * as ApplyStyleModule from './module-01795-applyStyle.js'; /* Metro dependency 1795 */
import * as RNScreensTurboModuleModule from './module-01797-RNScreensTurboModule.js'; /* Metro dependency 1797 */
function _fun19709(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#19709, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:6, offset: 0x00eb1c3b, size: 202 bytes, params: 8, frame: 16
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
object = {code: 'function computeEasingProgress_Pnpm_swipeSimulatorTs1(startingTimestamp,distance,velocity){if(Math.abs(distance)<1){return 1;}const elapsedTime=(_getAnimationTimestamp()-startingTimestamp)/1000;const currentPosition=velocity*elapsedTime;const progress=currentPosition/distance;return progress;}'};
const env0_3 = _fun19710();
object = {code: 'function easing_Pnpm_swipeSimulatorTs2(x){return 1-Math.pow(1-x,5);}'};
const env0_5 = _fun19712();
object = {code: 'function computeProgress_Pnpm_swipeSimulatorTs3(screenTransitionConfig,event,isTransitionCanceled){const screenDimensions=screenTransitionConfig.screenDimensions;const progressX=Math.abs(event.translationX/screenDimensions.width);const progressY=Math.abs(event.translationY/screenDimensions.height);const maxProgress=Math.max(progressX,progressY);const progress=isTransitionCanceled?maxProgress/2:maxProgress;return progress;}'};
const env0_7 = _fun19714();
object = {code: 'function maybeScheduleNextFrame_Pnpm_swipeSimulatorTs4(step,didScreenReachDestination,screenTransitionConfig,event,isTransitionCanceled){const{computeProgress,RNScreensTurboModule}=this.__closure;if(!didScreenReachDestination){const stackTag=screenTransitionConfig.stackTag;const progress=computeProgress(screenTransitionConfig,event,isTransitionCanceled);RNScreensTurboModule.updateTransition(stackTag,progress);requestAnimationFrame(step);}else{var _screenTransitionConf;(_screenTransitionConf=screenTransitionConfig.onFinishAnimation)===null||_screenTransitionConf===void 0||_screenTransitionConf.call(screenTransitionConfig);}}'};
const env0_9 = _fun19716();
object = {code: "function getSwipeSimulator_Pnpm_swipeSimulatorTs5(event,screenTransitionConfig,lockAxis){const{BASE_VELOCITY,ADDITIONAL_VELOCITY_FACTOR_X,ADDITIONAL_VELOCITY_FACTOR_Y,ADDITIONAL_VELOCITY_FACTOR_XY,applyStyleForBelowTopScreen,computeEasingProgress,easing,applyStyle,maybeScheduleNextFrame}=this.__closure;const screenDimensions=screenTransitionConfig.screenDimensions;const startTimestamp=_getAnimationTimestamp();const{isTransitionCanceled:isTransitionCanceled}=screenTransitionConfig;const startingPosition={x:event.translationX,y:event.translationY};const direction={x:Math.sign(event.translationX),y:Math.sign(event.translationY)};const finalPosition=isTransitionCanceled?{x:0,y:0}:{x:direction.x*screenDimensions.width,y:direction.y*screenDimensions.height};const distance={x:Math.abs(finalPosition.x-startingPosition.x),y:Math.abs(finalPosition.y-startingPosition.y)};const didScreenReachDestination={x:false,y:false};const velocity={x:BASE_VELOCITY,y:BASE_VELOCITY};if(lockAxis==='x'){velocity.y=0;velocity.x+=ADDITIONAL_VELOCITY_FACTOR_X*distance.x/screenDimensions.width;}else if(lockAxis==='y'){velocity.x=0;velocity.y+=ADDITIONAL_VELOCITY_FACTOR_Y*distance.y/screenDimensions.height;}else{const euclideanDistance=Math.sqrt(distance.x**2+distance.y**2);const screenDiagonal=Math.sqrt(screenDimensions.width**2+screenDimensions.height**2);const velocityVectorLength=BASE_VELOCITY+ADDITIONAL_VELOCITY_FACTOR_XY*euclideanDistance/screenDiagonal;if(Math.abs(startingPosition.x)>Math.abs(startingPosition.y)){velocity.x=velocityVectorLength;velocity.y=velocityVectorLength*Math.abs(startingPosition.y/startingPosition.x);}else{velocity.x=velocityVectorLength*Math.abs(startingPosition.x/startingPosition.y);velocity.y=velocityVectorLength;}}if(isTransitionCanceled){function didScreenReachDestinationCheck(){if(lockAxis==='x'){return didScreenReachDestination.x;}else if(lockAxis==='y'){return didScreenReachDestination.y;}else{return didScreenReachDestination.x&&didScreenReachDestination.y;}}function restoreOriginalStyleForBelowTopScreen(){event.translationX=direction.x*screenDimensions.width;event.translationY=direction.y*screenDimensions.height;applyStyleForBelowTopScreen(screenTransitionConfig,event);}const computeFrame=function(){const progress={x:computeEasingProgress(startTimestamp,distance.x,velocity.x),y:computeEasingProgress(startTimestamp,distance.y,velocity.y)};event.translationX=startingPosition.x-direction.x*distance.x*easing(progress.x);event.translationY=startingPosition.y-direction.y*distance.y*easing(progress.y);if(direction.x>0){if(event.translationX<=0){didScreenReachDestination.x=true;event.translationX=0;}}else{if(event.translationX>=0){didScreenReachDestination.x=true;event.translationX=0;}}if(direction.y>0){if(event.translationY<=0){didScreenReachDestination.y=true;event.translationY=0;}}else{if(event.translationY>=0){didScreenReachDestination.y=true;event.translationY=0;}}applyStyle(screenTransitionConfig,event);const finished=didScreenReachDestinationCheck();if(finished){restoreOriginalStyleForBelowTopScreen();}maybeScheduleNextFrame(computeFrame,finished,screenTransitionConfig,event,isTransitionCanceled);};return computeFrame;}else{const computeFrame=function(){const progress={x:computeEasingProgress(startTimestamp,distance.x,velocity.x),y:computeEasingProgress(startTimestamp,distance.y,velocity.y)};event.translationX=startingPosition.x+direction.x*distance.x*easing(progress.x);event.translationY=startingPosition.y+direction.y*distance.y*easing(progress.y);if(direction.x>0){if(event.translationX>=screenDimensions.width){didScreenReachDestination.x=true;event.translationX=screenDimensions.width;}}else{if(event.translationX<=-screenDimensions.width){didScreenReachDestination.x=true;event.translationX=-screenDimensions.width;}}if(direction.y>0){if(event.translationY>=screenDimensions.height){didScreenReachDestination.y=true;event.translationY=screenDimensions.height;}}else{if(event.translationY<=-screenDimensions.height){didScreenReachDestination.y=true;event.translationY=-screenDimensions.height;}}applyStyle(screenTransitionConfig,event);maybeScheduleNextFrame(computeFrame,didScreenReachDestination.x||didScreenReachDestination.y,screenTransitionConfig,event,isTransitionCanceled);};return computeFrame;}}"};
exports.getSwipeSimulator = _fun19718();
function _fun19710() { // fn#19710, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:410, offset: 0x00eb1d05, size: 46 bytes, params: 1, frame: 2
const closure = function(a0, a1, a2) {
var r0;
var Math = global.Math;
var value = Math.abs(a1);
var value2 = 1;
if (value < value2) {
r0 = value2;
} else {
value = (0, global._getAnimationTimestamp)();
value = a2 * ((value - a0) / 1000) / a1;
r0 = value;
}
return r0;
};
closure.__closure = {};
closure.__workletHash = 11092056948922;
closure.__initData = env0_2;
return closure;
}
function _fun19712() { // fn#19712, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:682, offset: 0x00eb1d7d, size: 46 bytes, params: 1, frame: 2
const closure = function(a0) {
var Math = global.Math;
return 1 - Math.pow(1 - a0, 5);
};
closure.__closure = {};
closure.__workletHash = 4992389111746;
closure.__initData = env0_4;
return closure;
}
function _fun19714() { // fn#19714, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:1256, offset: 0x00eb1dd2, size: 46 bytes, params: 1, frame: 2
const closure = function(a0, a1, a2) {
var r0;
var property = a0.screenDimensions;
var Math = global.Math;
var value = Math.abs(a1.translationX / property.width);
var Math2 = global.Math;
value = global.Math.max(value, Math2.abs(a1.translationY / property.height));
if (a2) {
value /= 2;
r0 = value;
} else {
r0 = value;
}
return r0;
};
closure.__closure = {};
closure.__workletHash = 3778680834909;
closure.__initData = env0_6;
return closure;
}
function _fun19716() { // fn#19716, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:2150, offset: 0x00eb1e71, size: 89 bytes, params: 1, frame: 14
const maybeScheduleNextFrame2 = maybeScheduleNextFrame;
const object = {};
object.computeProgress = env0_7;
const RNScreensTurboModule = (RNScreensTurboModuleModule).RNScreensTurboModule;
object.RNScreensTurboModule = RNScreensTurboModule;
maybeScheduleNextFrame2.__closure = object;
maybeScheduleNextFrame2.__workletHash = 7657931427196;
maybeScheduleNextFrame2.__initData = env0_8;
return maybeScheduleNextFrame2;
function maybeScheduleNextFrame(a0, a1, a2, a3, a4) { // fn#19717, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:2167, offset: 0x00eb1eca, size: 118 bytes, params: 6, frame: 17
var stackTag;
var value;
if (a1) {
if (a2.onFinishAnimation != null) {
a2.onFinishAnimation();
}
} else {
stackTag = a2.stackTag;
value = environment.__proto__;
(require(1797) /* metro dependency 1797 */).RNScreensTurboModule.updateTransition(stackTag, env1_7(a2, a3, a4));
global.requestAnimationFrame(a0);
}
}
}
function _fun19718() { // fn#19718, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:6805, offset: 0x00eb1f40, size: 142 bytes, params: 1, frame: 16
const getSwipeSimulator2 = getSwipeSimulator;
const object = {'BASE_VELOCITY': 400, 'ADDITIONAL_VELOCITY_FACTOR_X': 400, 'ADDITIONAL_VELOCITY_FACTOR_Y': 500,
'ADDITIONAL_VELOCITY_FACTOR_XY': 600};
object.applyStyleForBelowTopScreen = (require(1795) /* metro dependency 1795 */).applyStyleForBelowTopScreen;
object.computeEasingProgress = env0_3;
object.easing = env0_5;
object.applyStyle = (require(1795) /* metro dependency 1795 */).applyStyle;
object.maybeScheduleNextFrame = env0_9;
getSwipeSimulator2.__closure = object;
getSwipeSimulator2.__workletHash = 11722244836970;
getSwipeSimulator2.__initData = env0_10;
return getSwipeSimulator2;
function getSwipeSimulator(a0, a1, a2) { // fn#19719, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:6822, offset: 0x00eb1fce, size: 684 bytes, params: 4, frame: 23
var sqrt;
var value5;
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const screenDimensions = a1.screenDimensions;
const env0_4 = global._getAnimationTimestamp();
const isTransitionCanceled = a1.isTransitionCanceled;
const object = {};
object.x = a0.translationX;
object.y = a0.translationY;
let Math = global.Math;
let value = Math.sign(a0.translationX);
Math = global.Math;
const r3 = isTransitionCanceled ? {'x': 0, 'y': 0} : {x: value * screenDimensions.width,
y: Math.sign(a0.translationY) * screenDimensions.height};
const object4 = {};
Math = global.Math;
let abs = Math.abs;
let x = r3.x;
object4.x = Reflect.apply(abs, Math, [x - object.x]);
Math = global.Math;
abs = Math.abs;
let y = r3.y;
object4.y = Reflect.apply(abs, Math, [y - object.y]);
const env0_10 = {'x': false, 'y': false};
const object5 = {'x': 400, 'y': 400};
if (a2 === 'x') {
object5.y = 0;
object5.x = object5.x + 400 * object4.x / screenDimensions.width;
} else if (a2 === 'y') {
object5.x = 0;
object5.y = object5.y + 500 * object4.y / screenDimensions.height;
} else {
Math = global.Math;
sqrt = Math.sqrt;
x = object4.x;
value = exponentiationOperator(x, 2, 2);
y = object4.y;
value = Reflect.apply(sqrt, Math, [value + exponentiationOperator(y, 2, 2)]);
Math = global.Math;
sqrt = Math.sqrt;
value = 400 + 600 * value / Reflect.apply(sqrt, Math, [exponentiationOperator(screenDimensions.width, 2, 2) + exponentiationOperator(screenDimensions.height, 2, 2)]);
Math = global.Math;
abs = Math.abs;
x = object.x;
value5 = Reflect.apply(abs, Math, [x]);
Math = global.Math;
abs = Math.abs;
y = object.y;
if (value5 > Reflect.apply(abs, Math, [y])) {
object5.x = value;
Math = global.Math;
object5.y = value * Math.abs(object.y / object.x);
} else {
Math = global.Math;
object5.x = value * Math.abs(object.x / object.y);
object5.y = value;
}
}
if (isTransitionCanceled) {
return getSwipeSimulatorComputeFrame;
}
return getSwipeSimulatorComputeFrame_19721;
function getSwipeSimulatorComputeFrame() { // fn#19720, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:7408, owner: getSwipeSimulator.computeFrame, offset: 0x00eb227a, size: 554 bytes, params: 1, frame: 23
var r6;
var binding7;
var screenDimensionsBinding;
const object = {};
let binding = env2_3;
const binding2 = env0_4;
let x = env0_9.x;
object.x = binding(binding2, x, env0_11.x);
object.y = binding(binding2, env0_9.y, env0_11.y);
binding = env0_0;
const binding3 = env0_6;
x = binding3.x;
const binding4 = env0_7;
const value3 = binding4 * env0_9.x;
const binding5 = env2_5;
binding.translationX = x - value3 * binding5(object.x);
binding.translationY = binding3.y - env0_8 * env0_9.y * binding5(object.y);
if (binding4 > 0) {
if (env0_0.translationX <= 0) {
env0_10.x = true;
env0_0.translationX = 0;
}
} else if (env0_0.translationX >= 0) {
env0_10.x = true;
env0_0.translationX = 0;
}
if (env0_8 > 0) {
if (env0_0.translationY <= 0) {
env0_10.y = true;
env0_0.translationY = 0;
}
} else if (env0_0.translationY >= 0) {
env0_10.y = true;
env0_0.translationY = 0;
}
(require(1795) /* metro dependency 1795 */).applyStyle(require, env0_0);
if (importDefault === 'x') {
r6 = env0_10.x;
} else {
r6 = importDefault === 'y' || env0_10.x;
r6 = r6 && env0_10.y;
}
if (r6) {
binding = env0_0;
binding7 = env0_7;
screenDimensionsBinding = screenDimensions;
binding.translationX = binding7 * screenDimensionsBinding.width;
binding.translationY = env0_8 * screenDimensionsBinding.height;
(require(1795) /* metro dependency 1795 */).applyStyleForBelowTopScreen(require, binding);
}
env2_9(getSwipeSimulatorComputeFrame, r6, require, env0_0, isTransitionCanceled);
}
function getSwipeSimulatorComputeFrame_19721() { // fn#19721, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1923:7910, owner: getSwipeSimulator.computeFrame, offset: 0x00eb24a4, size: 521 bytes, params: 1, frame: 23
const object = {};
let binding = env2_3;
const binding2 = env0_4;
let x = env0_9.x;
object.x = binding(binding2, x, env0_11.x);
object.y = binding(binding2, env0_9.y, env0_11.y);
binding = env0_0;
const binding3 = env0_6;
x = binding3.x;
const binding4 = env0_7;
const value3 = binding4 * env0_9.x;
const binding5 = env2_5;
binding.translationX = x + value3 * binding5(object.x);
binding.translationY = binding3.y + env0_8 * env0_9.y * binding5(object.y);
if (binding4 > 0) {
if (env0_0.translationX >= screenDimensions.width) {
env0_10.x = true;
env0_0.translationX = screenDimensions.width;
}
} else if (env0_0.translationX <= -screenDimensions.width) {
env0_10.x = true;
env0_0.translationX = -screenDimensions.width;
}
if (env0_8 > 0) {
if (env0_0.translationY >= screenDimensions.height) {
env0_10.y = true;
env0_0.translationY = screenDimensions.height;
}
} else if (env0_0.translationY <= -screenDimensions.height) {
env0_10.y = true;
env0_0.translationY = -screenDimensions.height;
}
(ApplyStyleModule).applyStyle(require, env0_0);
env2_9(getSwipeSimulatorComputeFrame_19721, env0_10.x || env0_10.y, require, env0_0, isTransitionCanceled);
}
}
}
}
global.__d(_fun19709, 1796, [1797, 1795]) /* metro module 1796, dependencies: [1797, 1795] */;