iking-vue-hooks
Version:
金合Vue Hooks 事件监听hook
2 lines (1 loc) • 3.56 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@vueuse/core"),require("vue"),require("iking-utils")):"function"==typeof define&&define.amd?define(["exports","@vueuse/core","vue","iking-utils"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["iking-vk-eventlisteneron"]={},e.core,e.vue,e.ikingUtils)}(this,(function(e,t,n,r){"use strict";function o(e,t=Symbol(),r={}){const{readonly:o=!0,createProvider:u=!1,native:i=!1}=r,s=n.reactive(e),c=o?n.readonly(s):s;return!u&&n.provide(t,i?e:c),{state:s}}function u(e=Symbol(),t){return n.inject(e,t||{})}const i=Symbol();function s(){return u(i)}const c=["class","style"],a=/^on[A-Z]/;function f(e){return Object.keys(e).map((t=>[t,e[t]]))}function l(e){const r=n.ref(!1);let o;function u(){r.value=!1,o&&window.clearTimeout(o)}function i(){u(),o=setTimeout((()=>{r.value=!0}),e)}return i(),t.tryOnUnmounted(u),{readyRef:r,stop:u,start:i}}var d=Object.freeze({__proto__:null,onMountedOrActivated:function(e){let t;n.onMounted((()=>{e(),n.nextTick((()=>{t=!0}))})),n.onActivated((()=>{t&&e()}))},createAppProviderContext:function(e){return o(e,i)},useAppProviderContext:s,entries:f,useAttrs:function(e={}){const t=n.getCurrentInstance();if(!t)return{};const{excludeListeners:r=!1,excludeKeys:o=[],excludeDefaultKeys:u=!0}=e,i=n.shallowRef({}),s=o.concat(u?c:[]);return t.attrs=n.reactive(t.attrs),n.watchEffect((()=>{const e=f(t.attrs).reduce(((e,[t,n])=>(s.includes(t)||r&&a.test(t)||(e[t]=n),e)),{});i.value=e})),i},createContext:o,useContext:u,useDesign:function(e){const t=s();return{prefixCls:`${t.prefixCls}-${e}`,prefixVar:t.prefixCls}},useLockFn:function(e){const t=n.ref(!1);return async function(...r){if(!n.unref(t)){t.value=!0;try{const n=await e(...r);return t.value=!1,n}catch(e){throw t.value=!1,e}}}},useRefs:function(){const e=n.ref([]);return n.onBeforeUpdate((()=>{e.value=[]})),[e,t=>n=>{e.value[t]=n}]},useTimeoutFn:function(e,t,o=!1){if(!r.paramType.isFunction(e))throw new Error("handle is not Function!");const{readyRef:u,stop:i,start:s}=l(t);return o?e():n.watch(u,(t=>{t&&e()}),{immediate:!1}),{readyRef:u,stop:i,start:s}},useTimeoutRef:l});function v(e){const r=n.ref(!1);let o;function u(){r.value=!1,o&&window.clearTimeout(o)}function i(){u(),o=setTimeout((()=>{r.value=!0}),e)}return i(),t.tryOnUnmounted(u),{readyRef:r,stop:u,start:i}}Object.defineProperty(e,"useDebounceFn",{enumerable:!0,get:function(){return t.useDebounceFn}}),Object.defineProperty(e,"useThrottleFn",{enumerable:!0,get:function(){return t.useThrottleFn}}),e.ikingCore=d,e.useEventListener=function({el:e=window,name:r,listener:o,options:u,autoRemove:i=!0,isDebounce:s=!0,wait:c=80}){let a=()=>{};const f=n.ref(!1);if(e){const l=n.ref(e),d=s?t.useDebounceFn(o,c):t.useThrottleFn(o,c),v=c?d:o,m=e=>{f.value=!0,e.removeEventListener(r,v,u)},p=e=>e.addEventListener(r,v,u),y=n.watch(l,((e,t,r)=>{e&&(!n.unref(f)&&p(e),r((()=>{i&&m(e)})))}),{immediate:!0});a=()=>{m(l.value),y()}}return{removeEvent:a}},e.useTimeoutFn=function(e,t,r=!1){if("function"!=typeof e)throw new Error("handle is not Function!");const{readyRef:o,stop:u,start:i}=v(t);return r?e():n.watch(o,(t=>{t&&e()}),{immediate:!1}),{readyRef:o,stop:u,start:i}},e.useTimeoutRef=v,e.useWindowResize=function(e,n=150,r){let o=()=>{e()};const u=t.useDebounceFn(o,n);o=u;const i=()=>{r&&r.immediate&&o(),window.addEventListener("resize",o)},s=()=>{window.removeEventListener("resize",o)};return t.tryOnMounted((()=>{i()})),t.tryOnUnmounted((()=>{s()})),[i,s]},Object.defineProperty(e,"__esModule",{value:!0})}));