@agnos-ui/core
Version:
Framework-agnostic headless component library.
32 lines (31 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const services_transitions_cssTransitions = require("./cssTransitions.cjs");
const utils_directive = require("../../dom-CuBx1JPZ.cjs");
const createSimpleClassTransition = (config) => {
const { animationPendingClasses, animationPendingShowClasses, animationPendingHideClasses, showClasses, hideClasses } = config;
return services_transitions_cssTransitions.createCSSTransition((element, direction, animated, context) => {
utils_directive.removeClasses(element, showClasses);
utils_directive.removeClasses(element, hideClasses);
if (animated) {
utils_directive.removeClasses(element, direction === "show" ? animationPendingHideClasses : animationPendingShowClasses);
if (!context.started) {
context.started = true;
const classes = direction === "show" ? hideClasses : showClasses;
utils_directive.addClasses(element, classes);
utils_directive.reflow(element);
utils_directive.removeClasses(element, classes);
}
utils_directive.addClasses(element, animationPendingClasses);
utils_directive.reflow(element);
utils_directive.addClasses(element, direction === "show" ? animationPendingShowClasses : animationPendingHideClasses);
}
return () => {
utils_directive.removeClasses(element, animationPendingClasses);
utils_directive.removeClasses(element, animationPendingShowClasses);
utils_directive.removeClasses(element, animationPendingHideClasses);
utils_directive.addClasses(element, direction === "show" ? showClasses : hideClasses);
};
});
};
exports.createSimpleClassTransition = createSimpleClassTransition;