@vue-interface/animate-css
Version:
A Vue transition wrapper for animate.css.
140 lines (139 loc) • 4.67 kB
JavaScript
import { defineComponent as A, useSlots as y, computed as f, openBlock as b, createBlock as w, Transition as B, unref as C, withCtx as $, renderSlot as E } from "vue";
var c = function() {
return c = Object.assign || function(e) {
for (var a, l = 1, i = arguments.length; l < i; l++) {
a = arguments[l];
for (var o in a)
Object.prototype.hasOwnProperty.call(a, o) && (e[o] = a[o]);
}
return e;
}, c.apply(this, arguments);
};
function h(t) {
return t.toLowerCase();
}
var L = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g], T = /[^A-Z0-9]+/gi;
function k(t, e) {
e === void 0 && (e = {});
for (var a = e.splitRegexp, l = a === void 0 ? L : a, i = e.stripRegexp, o = i === void 0 ? T : i, u = e.transform, d = u === void 0 ? h : u, v = e.delimiter, s = v === void 0 ? " " : v, n = p(p(t, l, "$1\0$2"), o, "\0"), r = 0, m = n.length; n.charAt(r) === "\0"; )
r++;
for (; n.charAt(m - 1) === "\0"; )
m--;
return n.slice(r, m).split("\0").map(d).join(s);
}
function p(t, e, a) {
return e instanceof RegExp ? t.replace(e, a) : e.reduce(function(l, i) {
return l.replace(i, a);
}, t);
}
function g(t, e) {
var a = t.charAt(0), l = t.substr(1).toLowerCase();
return e > 0 && a >= "0" && a <= "9" ? "_" + a + l : "" + a.toUpperCase() + l;
}
function x(t, e) {
return e === void 0 && (e = {}), k(t, c({ delimiter: "", transform: g }, e));
}
function R(t, e) {
return e === 0 ? t.toLowerCase() : g(t, e);
}
function O(t, e) {
return e === void 0 && (e = {}), x(t, c({ transform: R }, e));
}
const j = /* @__PURE__ */ A({
__name: "AnimateCss",
props: {
animated: { type: Boolean, default: !0 },
attentionSeekerEffects: { default: () => [
"bounce",
"flash",
"pulse",
"rubberBand",
"shakeX",
"shakeY",
"headShake",
"swing",
"tada",
"wobble",
"jello",
"heartBeat"
] },
big: { type: Boolean, default: !1 },
direction: null,
directionEffects: { default: () => [
"back",
"bounce",
"fade",
"flip",
"lightspeed",
"rotate",
"roll",
"slide",
"zoom"
] },
down: { type: Boolean, default: !1 },
duration: null,
enter: null,
enterClass: null,
enterToClass: null,
enterActiveClass: null,
inOut: { type: Boolean },
leave: null,
leaveClass: null,
leaveToClass: null,
leaveActiveClass: null,
left: { type: Boolean },
mode: { default: "default" },
name: null,
prefix: { default: "animate__" },
right: { type: Boolean },
special: { type: Boolean },
up: { type: Boolean },
x: { type: Boolean },
y: { type: Boolean }
},
setup(t) {
const e = t;
y();
function a(s) {
return `${e.prefix}${s}`;
}
function l(s, n) {
return [
a(
O([
e.name,
!o.value && s,
!o.value && i.value,
!o.value && e.big && "big"
].filter((r) => !!r).join(" "))
)
].concat([u.value]).concat(n || "").filter((r) => !!r).join(" ");
}
const i = f(() => e.direction || e.x && "x" || e.y && "y" || e.up && "up" || e.down && "down" || e.left && "left" || e.right && "right"), o = f(() => e.name && (!e.inOut && e.attentionSeekerEffects.indexOf(e.name.toLowerCase()) > -1 || e.directionEffects.indexOf(e.name.toLowerCase()) === -1)), u = f(() => e.animated ? a("animated") : ""), d = f(() => e.enter ? `${a(e.enter)} ${u.value}` : l("in", e.enterActiveClass)), v = f(() => e.leave ? `${a(e.leave)} ${u.value}` : l("out", e.leaveActiveClass));
return (s, n) => (b(), w(B, {
mode: t.mode,
duration: e.duration,
"enter-class": t.enterClass,
"enter-to-class": t.enterToClass,
"enter-active-class": C(d),
"leave-class": t.leaveClass,
"leave-to-class": t.leaveToClass,
"leave-active-class": C(v),
onBeforeEnter: n[0] || (n[0] = (...r) => s.$emit("before-enter", ...r)),
onEnter: n[1] || (n[1] = (...r) => s.$emit("enter", ...r)),
onAfterEnter: n[2] || (n[2] = (...r) => s.$emit("after-enter", ...r)),
onBeforeLeave: n[3] || (n[3] = (...r) => s.$emit("before-leave", ...r)),
onLeave: n[4] || (n[4] = (...r) => s.$emit("leave", ...r)),
onAfterLeave: n[5] || (n[5] = (...r) => s.$emit("after-leave", ...r))
}, {
default: $(() => [
E(s.$slots, "default")
]),
_: 3
}, 8, ["mode", "duration", "enter-class", "enter-to-class", "enter-active-class", "leave-class", "leave-to-class", "leave-active-class"]));
}
});
export {
j as AnimateCss
};
//# sourceMappingURL=animate-css.js.map