vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 1.17 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("@vexip-ui/hooks"),l=require("@vexip-ui/utils"),{observeResize:u,unobserveResize:a}=f.useResize();function d(e,t){const o=typeof t.value=="function"?{handler:t.value}:{...t.value},r=o.throttle||t.modifiers.throttle;if(e.__resize={useThrottle:r,observed:!1},o.disabled){a(e),e.__resize.observed=!1;return}const s=r?l.throttle(o.handler,typeof r=="boolean"?16:r):o.handler;u(e,s),e.__resize.observed=!0}const i={mounted(e,t){d(e,t)},updated(e,t){if(!e.__resize){d(e,t);return}const o=typeof t.value=="function"?{handler:t.value}:{...t.value},r=o.throttle||t.modifiers.throttle,s=()=>r?l.throttle(o.handler,typeof r=="boolean"?16:r):o.handler;if(o.disabled)e.__resize.observed&&(a(e),e.__resize.observed=!1);else if(!e.__resize.observed)u(e,s()),e.__resize.observed=!0;else{const n=typeof t.oldValue=="function"?{handler:t.oldValue}:{...t.oldValue||{handler:l.noop}};(r!==e.__resize.useThrottle||o.handler!==n.handler)&&(a(e),u(e,s()))}},beforeUnmount(e){var t;(t=e.__resize)!=null&&t.observed&&a(e),delete e.__resize}};exports.vResize=i;
//# sourceMappingURL=index.cjs.map