@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
43 lines (42 loc) • 1.4 kB
JavaScript
import { unobserveResize as a, observeResize as l } from "@vexip-ui/hooks";
import { throttle as u, noop as _ } from "@vexip-ui/utils";
function f(e, o) {
const r = typeof o.value == "function" ? { handler: o.value } : { ...o.value }, t = r.throttle || o.modifiers.throttle || !1;
if (e.__resize = {
useThrottle: t,
observed: !1
}, r.disabled) {
a(e), e.__resize.observed = !1;
return;
}
const s = t ? u(r.handler, typeof t == "boolean" ? 16 : t) : r.handler;
l(e, s), e.__resize.observed = !0;
}
const v = {
mounted(e, o) {
f(e, o);
},
updated(e, o) {
if (!e.__resize) {
f(e, o);
return;
}
const r = typeof o.value == "function" ? { handler: o.value } : { ...o.value }, t = r.throttle || o.modifiers.throttle, s = () => t ? u(r.handler, typeof t == "boolean" ? 16 : t) : r.handler;
if (r.disabled)
e.__resize.observed && (a(e), e.__resize.observed = !1);
else if (!e.__resize.observed)
l(e, s()), e.__resize.observed = !0;
else {
const d = typeof o.oldValue == "function" ? { handler: o.oldValue } : { ...o.oldValue || { handler: _ } };
(t !== e.__resize.useThrottle || r.handler !== d.handler) && (a(e), l(e, s()));
}
},
beforeUnmount(e) {
var o;
(o = e.__resize) != null && o.observed && a(e), delete e.__resize;
}
};
export {
v as vResize
};
//# sourceMappingURL=index.mjs.map