@tamagui/react-native-web-lite
Version:
React Native for Web
111 lines (110 loc) • 3.31 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all) __defProp(target, name, {
get: all[name],
enumerable: !0
});
},
__copyProps = (to, from, except, desc) => {
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
return to;
};
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
value: !0
}), mod);
var LayoutAnimation_exports = {};
__export(LayoutAnimation_exports, {
LayoutAnimation: () => LayoutAnimation,
default: () => LayoutAnimation_default
});
module.exports = __toCommonJS(LayoutAnimation_exports);
var import_Platform = require("../../../exports/Platform"),
import_UIManager = require("../../../exports/UIManager");
const __DEV__ = process.env.NODE_ENV !== "production";
function configureNext(config, onAnimationDidEnd) {
import_Platform.Platform.isTesting || import_UIManager.UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd ?? function () {}, function () {});
}
function create(duration, type, property) {
return {
duration,
create: {
type,
property
},
update: {
type
},
delete: {
type,
property
}
};
}
const Presets = {
easeInEaseOut: create(300, "easeInEaseOut", "opacity"),
linear: create(500, "linear", "opacity"),
spring: {
duration: 700,
create: {
type: "linear",
property: "opacity"
},
update: {
type: "spring",
springDamping: 0.4
},
delete: {
type: "linear",
property: "opacity"
}
}
},
LayoutAnimation = {
/**
* Schedules an animation to happen on the next layout.
*
* @param config Specifies animation properties:
*
* - `duration` in milliseconds
* - `create`, `AnimationConfig` for animating in new views
* - `update`, `AnimationConfig` for animating views that have been updated
*
* @param onAnimationDidEnd Called when the animation finished.
* Only supported on iOS.
* @param onError Called on error. Only supported on iOS.
*/
configureNext,
/**
* Helper for creating a config for `configureNext`.
*/
create,
Types: Object.freeze({
spring: "spring",
linear: "linear",
easeInEaseOut: "easeInEaseOut",
easeIn: "easeIn",
easeOut: "easeOut",
keyboard: "keyboard"
}),
Properties: Object.freeze({
opacity: "opacity",
scaleX: "scaleX",
scaleY: "scaleY",
scaleXY: "scaleXY"
}),
checkConfig(...args) {
console.error("LayoutAnimation.checkConfig(...) has been disabled.");
},
Presets,
easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),
linear: configureNext.bind(null, Presets.linear),
spring: configureNext.bind(null, Presets.spring)
};
var LayoutAnimation_default = LayoutAnimation;