UNPKG

vueposu

Version:

A hooks library based on Vue Composition-API

2 lines (1 loc) 13.5 kB
var VUEPOSU=function(f,r,s,L){"use strict";function D(e){if(e&&e.__esModule)return e;var n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});return e&&Object.keys(e).forEach(function(t){if(t!=="default"){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}}),n.default=e,Object.freeze(n)}var ee=D(L);const ne="click";function te(e,n,t=ne){const o=a=>{(Array.isArray(e)?e:[e]).some(i=>{const u=s.getTargetElement(i);return!u||u.contains(a==null?void 0:a.target)})||r.unref(n)(a)};return r.watchEffect(a=>{if(!s.isServer){const l=Array.isArray(r.unref(t))?r.unref(t):[t];l.map(i=>document.addEventListener(r.unref(i),o)),a(()=>{l.map(i=>document==null?void 0:document.removeEventListener(r.unref(i),o))})}})}function re(){const e=r.ref(""),n=!s.isServer&&"clipboard"in window.navigator,t=async()=>{s.isServer||(e.value=await window.navigator.clipboard.readText())};return t(),m("focus",t),m("copy",t),{copy:c=>{var a,l,i;return e.value=c,s.isServer?new Promise(()=>{}):(i=(l=(a=window==null?void 0:window.navigator)==null?void 0:a.clipboard)==null?void 0:l.writeText)==null?void 0:i.call(l,c)},text:e,supported:n}}function m(...e){let n,t,o,c;const a=()=>{typeof r.unref(e[0])=="string"?(n=window,t=r.unref(e[0]),o=e[1],c=e[2]||!1):(n=s.getTargetElement(e[0]),t=r.unref(e[1]),o=e[2],c=e[3]||!1)},l=()=>{!s.isServer&&n&&n.addEventListener(t,o,c)},i=()=>{!s.isServer&&n&&n.removeEventListener(t,o,c)};r.onMounted(()=>{r.watchEffect(u=>{a(),l(),u(i)})})}function oe(e){if(s.isServer)return{changeIcon:()=>null,restoreIcon:()=>null};let n=document.querySelector("link[rel*='icon']"),t="";n?t=n.href:(n=document.createElement("link"),n.type="image/x-icon",n.rel="shortcut icon",document.head.appendChild(n));const o=a=>{n&&a&&(n.href=a,document.getElementsByTagName("head")[0].appendChild(n))},c=()=>{t&&o(t)};return e&&o(e),{changeIcon:o,restoreIcon:c}}function ce(e,n){const t=r.ref(!1);let o;r.watch(e,(a,l,i)=>{o=r.unref(s.isFunction(e)?e():e);const u=()=>{t.value=s.fullscreen.getFullscreenElement()===o,n&&n()};s.fullscreen.on("change",u),i(()=>{s.fullscreen.off("change",u)})});const c=a=>{t.value=s.isDef(a)?Boolean(r.unref(a)):!t.value};return r.watch(t,a=>{if(s.isHTMLElement(o))a?s.fullscreen.request(o):s.fullscreen.exit(o);else throw new Error(`Invalid assignment: expected a DOM Element but got: ${typeof e}`)}),{isFullscreen:r.computed({get:()=>t.value,set:a=>t.value=Boolean(r.unref(a))}),enterFullscreen:()=>c(!0),exitFullscreen:()=>c(!1),toggleFullscreen:c}}const _=["mozvisibilitychange","webkitvisibilitychange","msvisibilitychange","visibilitychange"];function ae(){const e=r.ref(s.isServer?!1:document.hidden),n=()=>setTimeout(()=>e.value=s.isServer?!1:document.hidden);return s.isServer||(r.onMounted(()=>{_.forEach(t=>{document.addEventListener(t,n)})}),r.onUnmounted(()=>{_.forEach(t=>{document.removeEventListener(t,n)})})),e}function se(e,n=!0){const t=s.isServer?"":document.title,o=r.ref(e||t);document.querySelector("title")||document.head.appendChild(document.createElement("title"));const c=document.querySelector("title");r.watch(o,()=>{s.isServer||(document.title=o.value)},{immediate:!0,flush:"sync"});let a=null;s.isServer||(a=new window.MutationObserver(i=>o.value=i[0].target.textContent+""),a.observe(c,{childList:!0}));const l=()=>{o.value=t};return r.onBeforeUnmount(()=>{r.unref(n)&&l(),a&&a.disconnect()}),{title:o,restoreTitle:l}}const ie={pageX:0,pageY:0,screenX:0,screenY:0,clientX:0,clientY:0};function le(){const e=r.reactive(ie),n=t=>{const{pageX:o,pageY:c,screenX:a,screenY:l,clientX:i,clientY:u}=t;e.pageX=o,e.pageY=c,e.screenX=a,e.screenY=l,e.clientX=i,e.clientY=u};return s.isServer||m(document,"mousemove",n),r.toRefs(r.readonly(e))}const fe={x:0,y:0};function ue(e){const n=r.reactive(fe);return m(()=>s.getTargetElement(e,document),"scroll",o=>{var a,l;const c=o.target;c===document?(n.x=((a=document==null?void 0:document.scrollingElement)==null?void 0:a.scrollLeft)||0,n.y=((l=document==null?void 0:document.scrollingElement)==null?void 0:l.scrollTop)||0):(n.x=(c==null?void 0:c.scrollLeft)||0,n.y=(c==null?void 0:c.scrollTop)||0)},{passive:!0}),r.toRefs(r.readonly(n))}const y=e=>s.isDef(e)&&!isNaN(r.unref(e));function P(e,n={}){const{min:t,max:o,step:c}=n,a=()=>y(e)?Number(r.unref(e)):0,l=()=>y(c)?Number(r.unref(c)):1,i=d=>{let E=+r.unref(d);return y(o)&&(E=Math.min(Number(r.unref(o)),E)),y(t)&&(E=Math.max(Number(r.unref(t)),E)),E},u=r.ref(i(a())),b=d=>{u.value=i(s.isFunction(d)?d(u.value):d)},T=d=>b(Number(s.add(u.value,y(d)?r.unref(d):l()))),S=d=>b(s.subtract(u.value,y(d)?r.unref(d):l())),p=()=>b(i(a())),h=r.computed({get:()=>u.value,set:d=>{if(y(d))b(d);else throw new TypeError(`Invalid assignment: expected a number-string or number but got: ${s.isDef(d)?typeof d:d}`)}});return r.watchEffect(()=>{r.unref(t),r.unref(o),b(u.value)},{flush:"sync"}),{count:h,inc:T,dec:S,set:b,reset:p}}function de(e={}){const{initialValue:n=60,type:t="dec",step:o=1,total:c=0,interval:a=1e3,immediateStart:l=!1}=e,{count:i,inc:u,dec:b}=P(n),{isActive:T,start:S,stop:p}=V(()=>{r.unref(t)==="dec"&&i.value>r.unref(c)?b(o):r.unref(t)==="inc"&&i.value<r.unref(c)&&u(o)},a,l),h=r.ref(r.unref(T));return r.watch(i,()=>{i.value===r.unref(c)&&(h.value=!1)}),{count:i,isActive:r.readonly(h),start:()=>{S(),h.value=!0},stop:()=>{p(),h.value=!1}}}function ge(e=[]){if(s.isArray(e)===!1)throw new Error("initValue should be a array");const n=r.ref(e),t={move(o,c){n.value.splice(o,0,n.value.splice(c,1)[0])},insert(o,c){n.value.splice(o,0,c)},insertBefore(o,c){n.value.splice(o,-1,c)},insertAfter(o,c){n.value.splice(o+1,0,c)},remove(o){n.value.splice(o,1)},replace(o,c){t.move(o,c)},unshift(...o){n.value.unshift(...o)},shift(){n.value.shift()},pop(){n.value.pop()},push(o){n.value.push(o)}};return{list:n,...t}}function be(e=[]){const n=r.ref(Array.from(e));return{add:t=>n.value.push(t),remove:()=>n.value.shift(),empty:()=>{n.value=[]},reset:()=>{n.value=Array.from(e)},get first(){return n.value[0]},get last(){return n.value[n.value.length-1]},get size(){return n.value.length}}}function he(e){const n=r.ref(new Set(r.unref(e))),t={add:o=>{n.value.add(o)},remove:o=>{n.value.delete(o)},has:o=>n.value.has(o),reset:()=>{n.value=new Set(r.unref(e))},clear:()=>{n.value.clear()}};return{set:r.readonly(n),...t}}function Se(e,n){const t=()=>s.isDef(r.unref(e))?r.unref(e):!0,o=()=>s.isDef(r.unref(n))?r.unref(n):!t(),c=r.ref(t()),a=u=>{c.value=s.isDef(r.unref(u))?r.unref(u):c.value!==t()?t():o()},l=()=>{c.value=t()},i=()=>{c.value=o()};return{state:r.computed({get:()=>c.value,set:u=>a(u)}),setLeft:l,setRight:i,toggle:a}}function we(){}function ye(e,n){return N(e,n)}function pe(e,n){return N(e,n,window==null?void 0:window.sessionStorage)}const A=e=>e===null?"null":typeof e=="boolean"?"boolean":typeof e=="string"||s.isUndefined(e)?"string":s.isObject(e)||s.isArray(e)?"object":Number.isNaN(e)?"any":"number",W={any:{read:(e,n)=>e!=null?e:n,write:e=>String(e)},boolean:{read:(e,n)=>s.isDef(e)?e==="true":n,write:e=>String(e)},number:{read:(e,n)=>s.isDef(e)?Number.parseFloat(e):n,write:e=>String(e)},object:{read:(e,n)=>e?JSON.parse(e):n,write:e=>JSON.stringify(e)},string:{read:(e,n)=>s.isDef(e)?e:n,write:e=>String(e)},null:{read:()=>null,write:()=>"null"}},X=(e,n)=>{let t;const o=s.isUndef(e)?n:e;try{t=A(JSON.parse(o))}catch{t=A(o)}return W[t].read(e,n)},Ee=e=>W[A(e)].write(e),H={},U={};let Y=()=>{},B=()=>{};if(!s.isServer){window.addEventListener("storage",({key:n,oldValue:t,newValue:o,storageArea:c})=>{const a=c===window.localStorage?H:U;n&&a[n]&&e(n,X(o,t),a)}),Y=window.localStorage.setItem.bind(localStorage),B=window.sessionStorage.setItem.bind(sessionStorage),window.localStorage.setItem=(n,t)=>{window.dispatchEvent(new StorageEvent("storage",{key:n,oldValue:window.localStorage.getItem("key"),newValue:t,storageArea:window.localStorage})),Y(n,t)},window.sessionStorage.setItem=(n,t)=>{window.dispatchEvent(new StorageEvent("storage",{key:n,oldValue:window.sessionStorage.getItem("key"),newValue:t,storageArea:window.sessionStorage})),B(n,t)};const e=(n,t,o)=>{n in o&&(o[n].value=t)}}function N(e,n,t=window.localStorage){var l;if(s.isServer)return{value:null};const o=t===window.localStorage?H:U,c=i=>(t.setItem(e,Ee(i)),i),a=r.reactive((l=o[e])!=null?l:o[e]=r.ref(c(X(t.getItem(e),n))));return r.watch(a,()=>c(a.value),{flush:"post",deep:!0}),a}function Te(e,n=0){const t=r.ref(r.unref(e)),o=M(()=>t.value=r.unref(e),n);return r.watch(e,()=>r.unref(n)>0?o.value():t.value=r.unref(e)),r.readonly(t)}function me(e,n,t=0){const o=M(e,t);r.watch(n,(c,a)=>r.unref(t)>0?o.value(c,a):e(c,a))}var Ie=typeof global=="object"&&global&&global.Object===Object&&global,Oe=Ie,je=typeof self=="object"&&self&&self.Object===Object&&self,ve=Oe||je||Function("return this")(),k=ve,Fe=k.Symbol,j=Fe,q=Object.prototype,Le=q.hasOwnProperty,Ae=q.toString,I=j?j.toStringTag:void 0;function Ne(e){var n=Le.call(e,I),t=e[I];try{e[I]=void 0;var o=!0}catch{}var c=Ae.call(e);return o&&(n?e[I]=t:delete e[I]),c}var Ce=Object.prototype,Me=Ce.toString;function Re(e){return Me.call(e)}var $e="[object Null]",_e="[object Undefined]",G=j?j.toStringTag:void 0;function Pe(e){return e==null?e===void 0?_e:$e:G&&G in Object(e)?Ne(e):Re(e)}function We(e){return e!=null&&typeof e=="object"}var Xe="[object Symbol]";function He(e){return typeof e=="symbol"||We(e)&&Pe(e)==Xe}var Ue=/\s/;function Ye(e){for(var n=e.length;n--&&Ue.test(e.charAt(n)););return n}var Be=/^\s+/;function ke(e){return e&&e.slice(0,Ye(e)+1).replace(Be,"")}function v(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var z=0/0,qe=/^[-+]0x[0-9a-f]+$/i,Ge=/^0b[01]+$/i,ze=/^0o[0-7]+$/i,Je=parseInt;function J(e){if(typeof e=="number")return e;if(He(e))return z;if(v(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=v(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=ke(e);var t=Ge.test(e);return t||ze.test(e)?Je(e.slice(2),t?2:8):qe.test(e)?z:+e}var Qe=function(){return k.Date.now()},C=Qe,Ve="Expected a function",Ke=Math.max,Ze=Math.min;function Q(e,n,t){var o,c,a,l,i,u,b=0,T=!1,S=!1,p=!0;if(typeof e!="function")throw new TypeError(Ve);n=J(n)||0,v(t)&&(T=!!t.leading,S="maxWait"in t,a=S?Ke(J(t.maxWait)||0,n):a,p="trailing"in t?!!t.trailing:p);function h(g){var w=o,O=c;return o=c=void 0,b=g,l=e.apply(O,w),l}function d(g){return b=g,i=setTimeout(F,n),T?h(g):l}function E(g){var w=g-u,O=g-b,x=n-w;return S?Ze(x,a-O):x}function K(g){var w=g-u,O=g-b;return u===void 0||w>=n||w<0||S&&O>=a}function F(){var g=C();if(K(g))return Z(g);i=setTimeout(F,E(g))}function Z(g){return i=void 0,p&&o?h(g):(o=c=void 0,l)}function an(){i!==void 0&&clearTimeout(i),b=0,o=u=c=i=void 0}function sn(){return i===void 0?l:Z(C())}function $(){var g=C(),w=K(g);if(o=arguments,c=this,u=g,w){if(i===void 0)return d(u);if(S)return clearTimeout(i),i=setTimeout(F,n),h(u)}return i===void 0&&(i=setTimeout(F,n)),l}return $.cancel=an,$.flush=sn,$}var xe="Expected a function";function De(e,n,t){var o=!0,c=!0;if(typeof e!="function")throw new TypeError(xe);return v(t)&&(o="leading"in t?!!t.leading:o,c="trailing"in t?!!t.trailing:c),Q(e,n,{leading:o,maxWait:n,trailing:c})}function M(e,n=0){const t=r.ref(()=>{}),o=r.ref(n);return r.watch(o,()=>{s.isFunction(t.value.cancel)&&t.value.cancel(),t.value=Q(e,r.unref(n))},{immediate:!0}),r.readonly(t)}function en(){const e=r.ref(0),n=r.ref([]),t=new Set,o=(...a)=>{e.value++,n.value=a},c=a=>{s.isFunction(a)&&t.add(a)};return r.watch(e,()=>{for(let a of t)a(...n.value)},{flush:"post"}),r.onUnmounted(()=>{t.clear()}),{emit:o,on:c}}function nn(e,n){return fetch(e,n).then(t=>t.json())}function tn(e,n=0){const t=r.ref(r.unref(e)),o=R(()=>t.value=r.unref(e),n);return r.watch(e,()=>r.unref(n)>0?o.value():t.value=r.unref(e)),r.readonly(t)}function rn(e,n,t=0){const o=R(e,t);r.watch(n,(c,a)=>r.unref(t)>0?o.value(c,a):e(c,a))}function R(e,n=0){const t=r.ref(()=>{}),o=r.ref(n);return r.watch(o,()=>{var c;s.isFunction((c=t.value)==null?void 0:c.cancel)&&t.value.cancel(),t.value=De(e,r.unref(n))},{immediate:!0}),r.readonly(t)}function V(e,n=1e3,t=!0){let o=null;const c=r.ref(t),a=()=>{c.value=!1,o&&(clearInterval(o),o=null)},l=()=>{a(),c.value=!0,o=setInterval(()=>{s.isFunction(e)&&e()},r.unref(n))};return r.watchEffect(i=>{r.unref(t)&&l(),i(a)}),{isActive:r.readonly(c),start:l,stop:a}}function on(e,n=1e3,t=!0){let o=null;const c=r.ref(t),a=()=>{c.value=!1,o&&(clearTimeout(o),o=null)},l=()=>{a(),c.value=!0,o=setTimeout(()=>{s.isFunction(e)&&e(),c.value=!1},r.unref(n))};return r.watchEffect(i=>{r.unref(t)&&l(),i(a)}),{isActive:r.readonly(c),start:l,stop:a}}const{useSWR:ln,useSWRGlobalConfig:fn,...cn}=ee;return Object.defineProperty(f,"useSWR",{enumerable:!0,get:function(){return L.useSWR}}),Object.defineProperty(f,"useSWRGlobalConfig",{enumerable:!0,get:function(){return L.useSWRGlobalConfig}}),f.swr=cn,f.useClickOutside=te,f.useClipboard=re,f.useCookie=we,f.useCounter=P,f.useCounterInterval=de,f.useDebounce=Te,f.useDebounceEffect=me,f.useDebounceFn=M,f.useDynamicList=ge,f.useEventEmitter=en,f.useEventListener=m,f.useFavicon=oe,f.useFullscreen=ce,f.useInterval=V,f.useLocalStorage=ye,f.useMouse=le,f.usePageHidden=ae,f.useQueue=be,f.useRequest=nn,f.useScroll=ue,f.useSessionStorage=pe,f.useSet=he,f.useStorage=N,f.useThrottle=tn,f.useThrottleEffect=rn,f.useThrottleFn=R,f.useTimeout=on,f.useTitle=se,f.useToggle=Se,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),f}({},vueDemi,utils,swr);