vue-composable
Advanced tools
Comparing version 1.0.0-dev.28 to 1.0.0-dev.29
@@ -725,2 +725,26 @@ import { Ref } from '@vue/composition-api'; | ||
declare interface ShareReturn { | ||
/** | ||
* If current device supports [Web Share API](https://w3c.github.io/web-share) | ||
* - [compatibility table](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share) | ||
*/ | ||
supported: boolean; | ||
/** | ||
* Set to true if the content was shared | ||
*/ | ||
shared: Ref<boolean>; | ||
/** | ||
* Set to true if the user didn't share | ||
*/ | ||
cancelled: Ref<boolean>; | ||
/** | ||
* Share information with user | ||
*/ | ||
share: Navigator["share"]; | ||
/** | ||
* Check if you can share with user | ||
*/ | ||
canShare: Navigator["canShare"]; | ||
} | ||
export declare function storageAvailable(storage?: Storage): boolean; | ||
@@ -1133,2 +1157,9 @@ | ||
/** | ||
* Invokes the native sharing mechanism of the device | ||
* [compatibility](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share) | ||
* @param data - if provided it will automatically try to share it | ||
*/ | ||
export declare function useShare(data?: Partial<NavigatorShareData>): ShareReturn; | ||
export declare function useSharedRef<T = any>(name: string, defaultValue?: T): { | ||
@@ -1135,0 +1166,0 @@ supported: boolean; |
@@ -1,1 +0,1 @@ | ||
var vueComposable=function(e,t,n){"use strict";n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n;const r=t.set;function o(e,n,r){return t.watch(e,n,{...r,lazy:"boolean"==typeof r.immediate?!r.immediate:void 0})}function a(e){return t.isRef(e)?e.value:e}function s(e){return t.isRef(e)?e:t.ref(e)}const l=Array.isArray,u=e=>"function"==typeof e,i=e=>"string"==typeof e,c=e=>"boolean"==typeof e,v=e=>f(e)&&u(e.getTime),d=e=>"number"==typeof e,f=e=>null!==e&&"object"==typeof e,m=e=>f(e)&&!!e.tagName;function p(e){return f(e)&&u(e.then)&&u(e.catch)}const g=()=>{},h=()=>!1,y={passive:!0};function w(e){return new Promise(t=>{setTimeout(t,e)})}function b(e,t,n){return e<t?t:e>n?n:e}const E="undefined"!=typeof window;function $(e,...t){for(let n=0;n<t.length;n++){const r=t[n];if(void 0===r||!f(r))continue;const o=Object.keys(r);for(let t=0;t<o.length;t++){const n=o[t],s=a(r[n]),l=typeof s,u=typeof e[n];void 0!==e[n]&&l!==u||(e[n]=f(s)?$(e[n]||{},s):r[n])}}return e}function M(e,n,r,a){let l=g;if(e){const u=s(e),i=e=>e.removeEventListener(n,r),c=e=>e.addEventListener(n,r,a);l=()=>{i(u.value)},t.onUnmounted(l),t.onMounted(()=>{o(u,(e,t)=>{t&&i(t),e&&c(e)},{immediate:!0})})}return l}function S(e,t,n){return k(e,t,n)}function k(e,t=50,n={isImmediate:!1}){let r;return function(...o){const a=this,s=n.isImmediate&&void 0===r;void 0!==r&&clearTimeout(r),r=setTimeout((function(){r=void 0,n.isImmediate||e.apply(a,o)}),t),s&&e.apply(a,o)}}function L(e,n){if(!e)throw new Error(`[usePromise] argument can't be '${e}'`);if("function"!=typeof e)throw new Error(`[usePromise] expects function, but received ${typeof e}`);const[r,o]=c(n)?[n,!1]:f(n)?[n.lazy,n.throwException]:[!1,!1],a=t.ref(!1),s=t.ref(null),l=t.ref(null),u=t.ref(),i=async(...t)=>{a.value=!0,s.value=null;const n=t&&e.length!==t.length&&t.length>0&&c(t[t.length-1])?t[t.length-1]:o,r=u.value=e(...t);try{const e=await r;return u.value===r&&(l.value=e),e}catch(e){return u.value===r&&(s.value=e,l.value=null),n?r:void 0}finally{u.value===r&&(a.value=!1)}};return r||i(),{exec:i,result:l,promise:u,loading:a,error:s}}function x(e,n){const r=t.ref(!1);let o=void 0;return{...L((...t)=>{return n=e(...t),new Promise((e,t)=>{o=e=>{r.value=!0,t(e)},n.then(e).catch(t)});var n},n),cancel:e=>{o&&o(e)},cancelled:r}}const I=Symbol(""),R=Symbol(""),O=async(e,t,n,r)=>{const o=t[I].value;let a=-1;const s=e.maxRetries||9001,l=e.retryDelay||P;t.retryErrors.value=[],t.isRetrying.value=!1,t.nextRetry.value=void 0;let u=void 0;do{let e=!1,i=null;try{if(++a,i=r?n(...r):n(),p(i)&&(i=await i),t[R].value)return null;e=!0}catch(e){i=null,t.retryErrors.value.push(e)}if(o!==t[I].value)return i;if(e)return t.isRetrying.value=!1,t.nextRetry.value=void 0,i;if(a>=s)return t.isRetrying.value=!1,t.nextRetry.value=void 0,Promise.reject(new Error(`[useRetry] max retries reached ${s}`));t.isRetrying.value=!0;const c=Date.now(),f=l(a),m=p(f)?await f:f;if(!p(f)||m){if(d(m))u=m;else{if(!v(m))throw new Error(`[useRetry] invalid value received from options.retryDelay '${typeof m}'`);u=m.getTime()}u<c?t.nextRetry.value=c+u:(t.nextRetry.value=u,u-=c),u>0&&await w(u)}if(t[R].value)return null;if(o!==t[I].value)return i}while(a<9e3);return null};const P=()=>0;function j(e){return e&&(c(e.isJson)||c(e.parseImmediate))}let C=void 0;let T=void 0,_=void 0;let D=void 0,A=void 0;function F(e,n){const r=E&&"BroadcastChannel"in self,o=t.ref(null),a=t.ref(null),s=t.ref(null),l=t.ref(!1),u=t.ref(!1);let i=g,c=g,v=g;if(r){const r=new BroadcastChannel(e);r.addEventListener("messageerror",e=>{s.value=e,l.value=!0},y),r.addEventListener("message",e=>{a.value=e,o.value=e.data},y),i=e=>r.postMessage(e),c=()=>{r.close(),u.value=!0},v=(e,n)=>{r.addEventListener("message",e,n),t.onUnmounted(()=>r.removeEventListener("message",e))},t.onUnmounted(()=>{n&&n(),c()})}return{supported:r,data:o,messageEvent:a,errorEvent:s,errored:l,isClosed:u,send:i,close:c,addListener:v}}function U(e,t){const n=getComputedStyle(e).getPropertyValue(t);return n?n.trim():null}function V(e,t,n){e.style.setProperty(t,n)}const W={attributes:!0,childList:!0,subtree:!0},z=e=>e.length<=2||"-"!==e[0]||"-"!==e[1]?`--${e}`:e;const B=e=>function(t){const n=t.data||[];return new Promise(t=>{try{Promise.resolve(e.apply(e,n)).then(e=>t(postMessage([!0,e]))).catch(e=>t(postMessage([!1,e])))}catch(e){t(postMessage([!1,e]))}})};function N(e){const n=!!E&&"matchMedia"in window;let r=void 0,o=void 0,a=g;if(n){r=t.ref(matchMedia(e)),o=t.ref(r.value.matches);const n=e=>{o.value=e.matches};r.value.addEventListener("change",n,y);const a=()=>r.value.removeEventListener("change",n);t.onUnmounted(a)}else r=t.ref({}),o=t.ref(!1);return{supported:n,mediaQueryList:r,matches:o,remove:a}}function H(e,n){const{addListener:r,send:a,close:s,supported:l}=F(e,()=>w()),u=Date.now(),i=t.ref(!1),c=t.ref(0),v=t.computed(()=>1!==c.value||i.value),d=t.ref([]),m=t.ref(n);let p=!1,g=void 0;a({type:0});const h=()=>a({type:5,id:u}),w=()=>{0!==d.value.length&&(i.value&&a({type:3,mind:1,id:Math.min(...d.value)}),a({type:4,id:u}))};return r(e=>{switch(e.data.type){case 0:a({type:2,value:m.value,mind:c.value});break;case 4:{const t=d.value.indexOf(e.data.id);t>=0&&d.value.splice(t,1),g===e.data.id&&d.value.length>0&&a({type:3,mind:1,id:Math.min(u,...d.value)});break}case 2:p=!0,m.value=e.data.value,c.value=e.data.mind;break;case 3:c.value=e.data.mind,g=1===e.data.mind&&e.data.id||void 0,i.value=g===u,i.value&&(d.value=[],h());break;case 5:d.value=[e.data.id],a({type:6,id:u});break;case 6:d.value.push(e.data.id)}},y),h(),o(m,(e,t)=>{if(p)p=!1;else{if(1===c.value&&!1===i.value)return p=!0,void(m.value=t);a({type:2,mind:c.value,value:f(e)?{...e}:e}),p=!1}},{deep:!0,immediate:!1}),E&&window.addEventListener("unload",w,y),t.onUnmounted(()=>{w(),s()}),{supported:l,id:u,data:m,master:i,mind:c,editable:v,targets:d,ping:h,setMind:e=>{switch(e){case 1:i.value=!0;break;case 0:i.value=!1}c.value=e,a({type:3,id:u,mind:c.value})},addListener:r}}function K(e,n){const r=s(n),o=s(e);return f(r.value)||t.isRef(n)?[void 0!==o.value?o:void 0,r]:!f(o.value)||l(o.value)||i(o.value)?[o.value?o:void 0,void 0]:[void 0,o]}function J(e,n){const[r,o]=K(e,n),s=t.computed(()=>new Intl.NumberFormat(a(r),a(o))),l=(e,t,n)=>(t||n?new Intl.NumberFormat(a(n)||a(r),{...a(o),...a(t)}):s.value).format(a(e));return{format:(e,n,r)=>t.computed(()=>l(e,n,r)),formatString:l,formatter:s}}function q(e){if(e)return d(e)?e:Q(e)}const Q=e=>{const t=e.match(/^(\d+)px$/);if(t)return+t[1]};function G(e){const n={},r=new Map,o=t.ref();let a=[];const s=[];for(const o in e){const l=e[o],u=q(l);if(void 0!==u){const e=t.ref(!1);n[o]=e,r.set(u,{name:o,valid:e}),a.push(u)}else{const{matches:e,remove:t}=N(l);n[o]=e,s.push(t)}}a=a.sort((e,t)=>t-e);const l=E?()=>{const e=window.innerWidth;let t=void 0;for(let n=0;n<a.length;n++){const o=a[n],s=r.get(o);s.valid.value=e>=o,e>=o&&void 0===t&&(t=s.name)}o.value=t}:g,u=S(l,10),i=E?()=>window.removeEventListener("resize",u):g;return E&&(t.onMounted(()=>{l(),window.addEventListener("resize",u,y)}),t.onUnmounted(()=>{i(),s.forEach(e=>e())})),{...n,remove:i,current:o}}const X=Symbol(""),Y={sm:640,md:768,lg:1024,xl:1280};function Z(e){return f(e)&&f(e.theme)&&f(e.theme.screens)}function ee(e){return!!f(e)&&(i(e.min)||i(e.max)||d(e.min)||d(e.max))}function te(e){const t=[];if(l(e)){const n=e.map(te);for(let e=0;e<n.length;e++){const r=n[e];t.push(...r)}}else f(n=e)&&i(n.raw)?t.push(e.raw):ee(e)?t.push(function(e){return ee(e)?`(${[e.max&&`max-width: ${e.max}`,e.min&&`min-width: ${e.min}`].filter(Boolean).join(" and ")})`:""}(e)):(i(e)||d(e))&&t.push(`min-width: ${e}`);var n;return t}function ne(e){const n=Z(e)?e.theme.screens:e;if(Z(e))for(const e in n)n.hasOwnProperty(e)&&(n[e]=te(n[e]).join(" or "));const r=G(n);return t.provide(X,r),r}function re(e,t){return e instanceof DOMException&&(22===e.code||1014===e.code||"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&(t&&0!==t.length||!1)}function oe(e){try{if(!e)return!1;const t=":$";return e.setItem(t,t),e.removeItem(t),!0}catch(t){return re(t,e)}}function ae(e,t){try{return e.parse(t)}catch{return t}}let se=void 0;function le(e,n=JSON,r=10){const a=E?window[e]:void 0,l=oe(a);se||(se=new Map,E&&window.addEventListener("storage",e=>{if(e.newValue===e.oldValue)return;let t=se.get("localStorage");t=e.storageArea===window.localStorage?se.get("localStorage"):se.get("sessionStorage"),t&&Object.keys(t.$syncKeys).length>0&&(null===e.key?t.clear():t.$syncKeys[e.key]&&(null===e.newValue?t.removeItem(e.key):t.updateItem(e.key,e.newValue)))}));let u,c=se.get(e);return l&&a?c?u=c.$quotaError:(u=t.ref(!1),c={$refMap:new Map,$watchHandlers:new Map,$syncKeys:{},$quotaError:u,key:a.key,length:a.length,setSync(e,t){t?this.$syncKeys[e]=!0:delete this.$syncKeys[e]},clear(){this.$refMap.forEach((e,t)=>this.removeItem(t))},removeItem(e){const t=this.$refMap.get(e);t&&(t.value=void 0);const n=this.$watchHandlers.get(e);n&&n(),delete this.$syncKeys[e],this.$refMap.delete(e),a.removeItem(e)},getItem(e){const t=a.getItem(e);return t?this.setItem(e,ae(n,t)):null},setItem(e,t){const l=s(t);this.$refMap.set(e,l);const c=(e,t)=>{try{const r=a.getItem(e),o=i(t)?t:n.stringify(t);a.setItem(e,o),r!==o&&E&&this.$syncKeys[e]&&window.dispatchEvent(new StorageEvent(e,{newValue:o,oldValue:r,storageArea:a}))}catch(e){u.value=re(e,a)}};c(e,t);const v=o(l,k(t=>{c(e,t)},r),{immediate:!1,deep:!0});return this.$watchHandlers.set(e,v),l},updateItem(e,t){let r=this.$refMap.get(e);r&&(r.value=ae(n,t))}},se.set(e,c)):(u=t.ref(!1),c={}),{supported:l,quotaError:u,store:c,remove:()=>se.delete(e)}}function ue(e,n,r){const{supported:o,store:a}=le("localStorage");let s=g,l=g,u=g,i=void 0;return o&&a?(u=t=>a.setSync(e,t),s=()=>a.removeItem(e),l=()=>a.clear(),i=a.getItem(e),i||(i=a.setItem(e,n)),!1!==r&&u(!0)):i=t.ref(n),{supported:o,storage:i,clear:l,remove:s,setSync:u}}function ie(e,n,r){const{supported:o,store:a}=le("sessionStorage");let s=g,l=g,u=h,i=void 0;return o&&a?(s=()=>a.removeItem(e),l=()=>a.clear(),i=a.getItem(e),i||(i=a.setItem(e,n))):i=t.ref(n),{supported:o,storage:i,clear:l,remove:s,setSync:u}}let ce=void 0;function ve(e){const n=s(e.currentPage),r=s(e.pageSize),a=t.ref(0),l=s(e.total),u=t.computed({get:()=>a.value,set(e){d(e)&&(a.value=Math.min(e,l.value))}}),i=t.computed({get:()=>n.value,set(e){d(e)&&(n.value=b(e,1,v.value),u.value=(n.value-1)*c.value)}}),c=t.computed({get:()=>r.value,set(e){d(e)&&(r.value=e)}}),v=t.computed(()=>Math.ceil(l.value/c.value));i.value=n.value;return o([l,c],e=>{i.value>v.value&&(i.value=v.value)},{immediate:!1}),{pageSize:c,total:l,currentPage:i,offset:u,lastPage:v,next:()=>++i.value,prev:()=>--i.value,first:()=>i.value=1,last:()=>i.value=v.value}}function de(e){const n=e&&e.refreshMs||1e3,r=!e||!c(e.sync)||e.sync,o=e&&u(e.timeFn)&&e.timeFn||Date.now;let a=void 0,s=void 0;const l=t.ref(o()),i=()=>{clearInterval(a),clearTimeout(s)},v=E?()=>a=setInterval(()=>l.value=o(),n):g;if(r){const e=1e3-(l.value-1e3*Math.floor(l.value/1e3));s=setTimeout(v,e)}else v();return t.onUnmounted(i),{now:l,remove:i}}function fe(e,n){return t.computed(()=>{const r=a(e);if(!n)return r;const o=t.isRef(n)?t.reactive(n.value):t.reactive(n);return r.replace(/({?{[\w\s]*}?})/g,e=>{const t=e.replace("{","").replace("}","").trim();if(e[0]===e[1]&&"{"===e[0])return`${t}`;const n=l(o)?o[+t]:o[t];return void 0===n?e:`${a(n)}`})})}function me(e,n,r=".",o=g){return t.computed(()=>{const t=a(e),s=a(n);if(void 0===t)return o(s,t,s,t);if(!s)return t;const l=s.split(r);let u=t;for(let e=0;e<l.length;e++){let n=l[e];if("]"===n[n.length-1]){const t=/\[[`'"]?([^`'"\]]*)[`'"]?\]/g;let r=n,o=t.exec(r);if(o){let a=o[0].length,s=o.index-a,u=1;do{o.index,s=o.index,a=o[0].length,n=n.slice(0,-o[0].length),l.splice(e+u,0,o[1]),++u}while(o=t.exec(r));if(!n&&"["===r[0]&&r.length>2)continue}else n="",console.warn(`[usePath] invalid path provided "${r}"`)}if(!f(u))return o(l.slice(0,e+1).join(r),u,s,t);if(!n)return o(l.slice(0,e+1).join(r),u,s,t);if(u=u[n],!u)return o(l.slice(0,e+1).join(r),u,s,t)}return u})}function pe(e){return void 0!==e.$value}const ge=(e,n,r)=>{const{$message:s,$validator:l,...u}=function(e){return f(e)}(n)?n:{$validator:n,$message:""},{$pending:i,$promise:c,$invalid:v,$error:d}=((e,n,r)=>{const s=t.ref(null),l=t.ref(!1),u=t.ref(),i=t.ref(!1);let c=void 0;const v=e=>{s.value=(async()=>{try{l.value=!0;const t=n(e,c);p(t)?i.value=!await t:i.value=!t}catch(e){throw i.value=!0,e}finally{l.value=!1}})().catch(e=>(u.value=a(e),i.value=!0,e))};return r.push(t=>{c=t,o(()=>{try{n(e.value,c)}catch(e){}return e.value},v,{deep:!0,immediate:!0})}),{$promise:s,$pending:l,$invalid:i,$error:u}})(e,l,r);return{$pending:i,$error:d,$promise:c,$invalid:v,$message:s,...u}},he=(e,n)=>{const r={},l=pe(e)?s(e.$value):void 0;for(const s of Object.keys(e))if("$"!==s[0])if(l){const t=ge(l,e[s],n);r[s]={...t,$value:l}}else{const o=he(e[s],n);let l,u,i=void 0;if(pe(o)){const e=Object.keys(o).filter(e=>"$"!==e[0]).map(e=>o[e]);l=t.computed(()=>e.map(e=>e.$error).filter(Boolean).map(e=>a(e))),u=t.computed(()=>e.some(e=>!!a(e.$invalid)))}else{const e=Object.keys(o).map(e=>o[e]);l=t.computed(()=>e.map(e=>a(e.$errors)).filter(Boolean).filter(e=>e.some(Boolean))),i=t.computed(()=>e.some(e=>e.$anyDirty||c(a(e.$dirty))&&a(e.$dirty))),u=t.computed(()=>e.some(e=>!!a(e.$anyInvalid)))}r[s]={...o,$errors:l,$anyInvalid:u},i&&(r[s].$anyDirty=i)}else{if("$value"===s){r[s]=l;const e=t.ref(!1),n=o(l,()=>{e.value=!0,n()},{immediate:!1,deep:!0});r.$dirty=e;continue}r[s]=e[s]}return r};const ye=Symbol("");function we(e){const l=t.ref(Object.keys(e.messages)),i=t.ref(e.messages),v=t.ref(e.locale),d=t.ref({});let f=t.ref();const m={},g=(e,n)=>{if(m[e])return m[e];const r=n.value[e];if(!r)return t.ref({});let o=u(r)?r():r;return p(o)?o.then(t=>m[e]=s(t)):u(r)?s(o):m[e]=t.computed(()=>n.value[e])},h=!!e.fallback&&(!c(e.notFoundFallback)||e.notFoundFallback);let y=!1;if(h){const t=g(e.fallback,i);p(t)?(t.then(e=>{f.value=e.value}),y=!0):f.value=t.value}else f.value={};const w=t.ref(0);o(i,()=>w.value++,{deep:!0,immediate:!1}),o([v,f,w],([t,n,r])=>{if(t===e.fallback&&h)d.value=n;else{const e=e=>d.value=$({},n,a(e)),r=g(t,i);p(r)?r.then(e):e(r)}},{immediate:!y});const b=(t,n)=>e.resolve?s(e.resolve(d.value,t,n)):fe(me(d,t,".",(e,t,n,r)=>n),n);return{locale:v,locales:l,i18n:d,$t:b,$ts:(e,t)=>b(e,t).value,addLocale:(e,t)=>{l.value.indexOf(e)>=0||l.value.push(e),delete m[e],__VUE_2__?r(i.value,e,t):i.value[e]=t},removeLocale:t=>{const r=l.value.indexOf(t);if(r>=0){const n=[v.value,f.value&&e.fallback,...l.value].find(e=>e&&e!==t);n&&(t===e.fallback&&(f.value=void 0),t===v.value&&(v.value=n)),l.value.splice(r,1)}var o,a;__VUE_2__?(o=i.value,a=t,n.delete(o,a)):delete i.value[t],delete m[t]}}}function be(e){const n=we(e);return t.provide(ye,n),n}return e.FALSE_OP=h,e.NO_OP=g,e.PASSIVE_EV=y,e.buildI18n=we,e.debounce=k,e.deepClone=$,e.exponentialDelay=e=>{const t=100*Math.pow(2,e);return t+.2*t*Math.random()},e.exposeWorker=function(e){this.onmessage=async t=>{const n=e(t.data);if(void 0===n)this.postMessage(n);else if(null===n)this.postMessage(n);else if(l(n))this.postMessage(n);else if(n[Symbol.asyncIterator])for await(const e of n)this.postMessage(e);else if(n[Symbol.iterator])for(const e of n)this.postMessage(e);else this.postMessage(await n)}},e.getCssVariableFor=U,e.isArray=l,e.isBoolean=c,e.isClient=E,e.isDate=v,e.isElement=m,e.isFunction=u,e.isNumber=d,e.isObject=f,e.isPromise=p,e.isString=i,e.isSymbol=e=>"symbol"==typeof e,e.minMax=b,e.noDelay=P,e.promisedTimeout=w,e.refShared=function(e,n){const r=t.getCurrentInstance(),o=n||(__VUE_2__?r.$vnode.tag:r.vnode.scopeId);if(!o)return t.ref(e);const{data:a,supported:s}=H(o,e);return a},e.setBreakpointTailwindCSS=ne,e.setCssVariableFor=V,e.setI18n=be,e.storageAvailable=oe,e.unwrap=a,e.useArrayPagination=function(e,n){const r=s(e),o=ve({currentPage:1,pageSize:10,...n,total:t.computed(()=>r.value.length)}),a=t.computed(()=>{const e=r.value;return Array.isArray(e)?e.slice(o.offset.value,o.offset.value+o.pageSize.value):[]});return{...o,result:a}},e.useBreakpoint=G,e.useBreakpointChrome=function(){return G({mobileS:320,mobileM:375,mobileL:425,tablet:768,laptop:1024,laptopL:1440,desktop4K:2560})},e.useBreakpointTailwindCSS=function(e){const n=t.inject(X);return n||ne(e||Y)},e.useBroadcastChannel=F,e.useCancellablePromise=x,e.useCssVariables=function(e,n,r){const l=E&&"MutationObserver"in self,[u,c]=t.isRef(n)||m(n)?[n,r||W]:[l&&document.documentElement||{},n||W],v=t.ref(!0),d={},f=[],p=Object.entries(e).map(e=>{const[t,n]=i(e[1])?[e[1]]:[e[1].name,e[1].value];return n&&(f.push(()=>V(a(u),t,a(n))),d[e[0]]=s(n)),[e[0],z(t)]});for(let e=0;e<p.length;e++){const[n,r]=p[e];d[n]||(d[n]=t.ref(t.isRef(u)&&!u.value||!l?null:U(a(u),r))),l&&o([d[n],s(u)],e=>{v&&e[1]&&e[0]!==U(e[1],r)&&V(e[1],r,e[0])},{immediate:!t.isRef(u)})}if(!l)return{...d,stop:g,resume:g,supported:l,observing:v};const h=()=>{for(let e=0;e<p.length;e++){const[t,n]=p[e];d[t].value=U(a(u),n)}},y=new MutationObserver(h),w=()=>{y.disconnect(),v.value=!1},b=()=>{v.value||h(),y.observe(a(u),c),v.value=!0};return t.onUnmounted(w),t.isRef(u)?t.onMounted(()=>{f.forEach(e=>e()),o(u,(e,t)=>{t&&w(),e&&b()})}):(E||u)&&(f.forEach(e=>e()),b()),{...d,supported:l,resume:b,stop:w,observing:v}},e.useCurrencyFormat=function(e,n,r){const o=a(e),s=!f(o),l=s?e:t.computed(()=>a(e).currency),[u,i]=K(n,s?r:e),c=t.computed(()=>{const e=a(i)||{},t=a(l)||e.currency;return{style:"currency",...e,currency:t}}),v=J(u),d=(e,t,n,r,o)=>{const s={...c.value,...a(r)},l=a(t)||s.currency,u=a(n)||s.currencyDisplay;return v.formatString(e,{...s,currency:l,currencyDisplay:u},o)};return{format:(e,n,r,o,a)=>t.computed(()=>d(e,n,r,o,a)),formatString:d}},e.useDateNow=function(e){return de({refreshMs:e&&e.refreshMs||1e3,sync:!e||!c(e.sync)||e.sync,timeFn:Date.now})},e.useDebounce=S,e.useEvent=M,e.useFetch=function(e,n){const r=t.ref(null),o=t.ref(""),a=t.ref(),s=t.ref(null),[l,u]=j(e)?[!1!==e.isJson,!1!==e.parseImmediate]:j(n)?[!1!==n.isJson,!1!==n.parseImmediate]:[!0,!0],c=e?i(e)?n:j(e)?e:i(e.url)?n:e:void 0,v=t.ref(!1),d=t.ref();let f=void 0;const m=L(async(e,t)=>{f=new AbortController;const n=await fetch(e,{signal:f.signal,...c,...t});if(n){const e=[l?n.clone().json().then(e=>r.value=e).catch(e=>{r.value=null,s.value=e}):Promise.resolve(),n.clone().blob().then(e=>{a.value=e}),n.clone().text().then(e=>{o.value=e})];u&&await Promise.all(e)}return n},!0),p=t.computed(()=>m.result.value&&m.result.value.status||null),g=t.computed(()=>m.result.value&&m.result.value.statusText||null);return e&&(i(e)||i(e.url))&&m.exec(e,void 0,!1),{...m,cancel:e=>{f&&(f.abort(),v.value=!0,d.value=e)},isCancelled:v,cancelledMessage:d,text:o,blob:a,json:r,jsonError:s,status:p,statusText:g}},e.useFormat=fe,e.useGeolocation=function(e){const n=E&&!!navigator.geolocation,r=t.ref(e?!1===e.immediate:void 0),a=t.ref(null),s=t.ref(null),l=t.ref(null),u=t.ref(e&&e.enableHighAccuracy||null);let i=g;if(n){const n=e=>{s.value=e.timestamp,l.value=e.coords,a.value=null},v=e=>{s.value=Date.now(),l.value=null,a.value=e},d=()=>!0!==r.value&&m&&navigator.geolocation.clearWatch(m);let f=()=>navigator.geolocation.getCurrentPosition(n,v,e);i=r.value?()=>{r.value?r.value=!1:f()}:f;let m=0;t.onMounted(()=>o([u,r],t=>{d();const r=c(t[0])?t[0]:e?e.enableHighAccuracy:void 0;m=navigator.geolocation.watchPosition(n,v,e?{...e,enableHighAccuracy:r}:{enableHighAccuracy:r})},{immediate:!r.value})),t.onUnmounted(d)}return{supported:n,refresh:i,error:a,timestamp:s,coords:l,highAccuracy:u}},e.useI18n=function(e){return e?be(e):t.inject(ye)},e.useIntersectionObserver=function(e,n){const r=E&&"IntersectionObserver"in window,l=e?s(e):void 0,u=!l||!m(l.value)&&l.value?void 0:l,i=t.computed(()=>n?a(n):u?void 0:a(e)),c=t.ref([]),v=t.computed(()=>c.value.length>0&&c.value.every(e=>e.isIntersecting)),d=e=>{c.value=e};let f=t.ref();r&&o(i,e=>{f.value&&f.value.disconnect();const t=e&&e&&{root:a(e.root),rootMargin:a(e.rootMargin),threshold:a(e.threshold)}||void 0;f.value=new IntersectionObserver(d,t),c.value.map(e=>e.target).forEach(f.value.observe)},{deep:!0,immediate:!0});const p=r?e=>{const t=a(e);f.value.observe(t)}:g,h=r?e=>{const t=a(e);f.value.unobserve(t)}:g,y=()=>f.value.disconnect();return u&&(t.onMounted(()=>{u.value&&p(u)}),t.onUnmounted(()=>{y()})),{supported:r,elements:c,observe:p,unobserve:h,disconnect:y,isIntersecting:v}},e.useIntlNumberFormat=J,e.useLanguage=function(){if(D||(D=E?t.ref(navigator.language):t.ref("")),!A)if(E){A=t.ref(navigator.languages);const e=()=>{D.value=navigator.language,A.value=navigator.languages};window.addEventListener("languagechange",e,y)}else A=t.ref([]);return{language:D,languages:A}},e.useLocalStorage=ue,e.useMatchMedia=N,e.useNetworkInformation=function(){const e=!!E&&(navigator.connection||navigator.mozConnection||navigator.webkitConnection),n=!!e,r=t.ref(0),o=t.ref(0),a=t.ref("none"),s=t.ref(0),l=t.ref(!1),u=t.ref("none");let i=g,c=g;return e&&(i=()=>{r.value=e.downlink,o.value=e.downlinkMax,a.value=e.effectiveType,s.value=e.rtt,l.value=e.saveData,u.value=e.type},c=M(e,"change",i,y),i()),{supported:n,downlink:r,downlinkMax:o,effectiveType:a,rtt:s,saveData:l,type:u,remove:c}},e.useNow=de,e.useOnMouseMove=function(e,n,r){const o=t.ref(0),a=t.ref(0);let s=e=>{o.value=e.x,a.value=e.y};const[l,u]=d(n)?[void 0,n]:[n,r];u&&(s=S(s,r));const i=M(e,"mousemove",s,l);return{mouseX:o,mouseY:a,remove:i}},e.useOnResize=function(e,n,r){const o=s(e),a=t.ref(o.value&&o.value.clientHeight),l=t.ref(o.value&&o.value.clientWidth);let u=()=>{a.value=o.value.clientHeight,l.value=o.value.clientWidth};const[i,c]=d(n)?[void 0,n]:[n,r];c&&(u=S(u,r));const v=E?M(window,"resize",u,i||y):g;return{height:a,width:l,remove:v}},e.useOnScroll=function(e,n,r){const a=e=>!(d(e)||c(e)||!m(e)&&!t.isRef(e)||!e),l=a(e)?s(e):t.ref(E&&window||void 0),u=a(e)?l:t.ref(E&&window.document.scrollingElement||void 0),i=t.ref(u.value&&u.value.scrollTop||0),v=t.ref(u.value&&u.value.scrollLeft||0);let f=()=>{i.value=u.value.scrollTop,v.value=u.value.scrollLeft};const p=(...e)=>u.value&&u.value.scrollTo&&u.value.scrollTo.apply(u.value,e),g=e=>p({top:e}),h=e=>p({left:e}),[w,b]=d(e)||!e?[y,e]:d(n)?[y,n]:[n,r];b&&(f=S(f,r));const $=M(l,"scroll",f,w),k=o(i,g,{immediate:!1}),L=o(v,h,{immediate:!1});return{scrollTop:i,scrollLeft:v,scrollTo:p,remove:()=>{$(),L(),k()},scrollTopTo:g,scrollLeftTo:h}},e.useOnline=function(){const e=E&&"onLine"in navigator;return e||(C=t.ref(!1)),C||(C=t.ref(navigator.onLine),window.addEventListener("offline",()=>C.value=!1,y),window.addEventListener("online",()=>C.value=!0,y)),{supported:e,online:C}},e.usePageVisibility=function(){return _||(_=t.ref(E&&document.hidden)),T||(E?(T=t.ref(document.visibilityState),document.addEventListener("visibilitychange",()=>{T.value=document.visibilityState,_.value=document.hidden},y)):T=t.ref("visible")),{visibility:T,hidden:_}},e.usePagination=ve,e.usePath=me,e.usePerformanceNow=function(e){return de({refreshMs:e&&e.refreshMs||1e3,sync:!e||!c(e.sync)||e.sync,timeFn:()=>performance.now()})},e.usePromise=L,e.usePromiseLazy=function(e,t=!1){return L(e,{lazy:!0,throwException:t})},e.useRetry=function(e,n){const r=!e||u(e)?{}:e,o=u(e)?e:n;if(!u(e)&&!f(e))throw new Error("[useRetry] options needs to be 'object'");if(o&&!u(o))throw new Error("[useRetry] factory needs to be 'function'");const a=t.ref(!1),s=t.ref(),l=t.ref([]),i={value:!1},c={isRetrying:a,retryCount:t.computed(()=>l.value.length),nextRetry:s,retryErrors:l,[I]:{value:0},[R]:i},v=o?(...e)=>(++c[I].value,O(r,c,o,e)):e=>(++c[I].value,O(r,c,e,void 0));return{...c,cancel:()=>{c.isRetrying.value=!1,c.retryErrors.value.push(new Error("[useRetry] cancelled")),c.nextRetry.value=void 0,i.value=!0},exec:v}},e.useSessionStorage=ie,e.useSharedRef=H,e.useStorage=function(e,t,n){return void 0===ce&&(ce=le("localStorage").supported),ce?ue(e,t,n):ie(e,t)},e.useValidation=function(e){const n=[],r=he({input:e},n),o=t.reactive(r.input);return n.forEach(e=>e(o)),o},e.useWebSocket=function(e,n){const r=E&&"WebSocket"in window;let o=null;const a=t.ref(),s=t.ref(),l=t.ref(null),u=t.ref(!1),i=t.ref(!1),c=t.ref(!1);let v=g,d=g;return r&&(o=new WebSocket(e,n),o.addEventListener("message",e=>{a.value=e,l.value=e.data}),o.addEventListener("error",e=>{s.value=e,c.value=!0}),o.addEventListener("close",()=>{u.value=!1,i.value=!0}),o.addEventListener("open",()=>{u.value=!0,i.value=!1}),v=e=>o.send(e),d=(e,t)=>{o.close(e,t)}),{supported:r,ws:o,send:v,close:d,messageEvent:a,errorEvent:s,data:l,isOpen:u,isClosed:i,errored:c}},e.useWebStorage=le,e.useWorker=function(e,n,r){const o=E&&"Worker"in self,a=t.ref(),s=t.ref(),l=t.ref(!o),u=t.ref(!o);if(!o)return l.value=!0,{worker:void 0,data:s,postMessage:g,terminate:g,errorEvent:a,errored:u,terminated:l};const i=new Worker(e,r),c=e=>i.postMessage(e);function v(){i.terminate(),l.value=!0}return i.addEventListener("message",e=>{s.value=e.data},y),i.addEventListener("error",e=>{a.value=e,u.value=!0},y),t.onUnmounted(v),n&&c(n),{worker:i,data:s,postMessage:c,terminate:v,errorEvent:a,errored:u,terminated:l}},e.useWorkerFunction=function(e,n){const r=E&&"Worker"in self,s=t.computed(()=>n&&a(n.dependencies)||[]),l=t.computed(()=>n&&a(n.timeout));if(!r)return x(e,{lazy:!0,throwException:!0});const u=x((...n)=>new Promise((r,a)=>{const i=function(e,t){const n=[t.length>0?`importScripts("${t.join('","')}");`:"","onmessage=",`(${B.toString()})(${e.toString()})`],r=new Blob(n,{type:"text/javascript"});return URL.createObjectURL(r)}(e,s.value),c=new Worker(i);let v=-1;const d=l.value,f=()=>{c.terminate(),URL.revokeObjectURL(i),clearTimeout(v),p()},m=n.length===e.length+1&&t.isRef(n[n.length-1])&&!1===n[n.length-1].value?t.computed(()=>u.cancelled.value||n[n.length-1].value):u.cancelled,p=m?o(m,()=>{f(),r(void 0)},{immediate:!1}):g;c.addEventListener("message",e=>{e.data[0]?r(e.data[1]):a(e.data[1]),f()},y),c.addEventListener("error",e=>{f(),a(e)},y),c.postMessage([...n]),d&&(v=setTimeout(()=>{u.cancel(`[WebWorker] timeout after ${d}ms`)},d))}),{lazy:!0,throwException:!0});return u},e.wrap=s,e}({},vueCompositionApi,Vue); | ||
var vueComposable=function(e,t,n){"use strict";n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n;const r=t.set;function o(e,n,r){return t.watch(e,n,{...r,lazy:"boolean"==typeof r.immediate?!r.immediate:void 0})}function a(e){return t.isRef(e)?e.value:e}function s(e){return t.isRef(e)?e:t.ref(e)}const l=Array.isArray,u=e=>"function"==typeof e,i=e=>"string"==typeof e,c=e=>"boolean"==typeof e,v=e=>f(e)&&u(e.getTime),d=e=>"number"==typeof e,f=e=>null!==e&&"object"==typeof e,m=e=>f(e)&&!!e.tagName;function p(e){return f(e)&&u(e.then)&&u(e.catch)}const g=()=>{},h=()=>!1,y={passive:!0};function w(e){return new Promise(t=>{setTimeout(t,e)})}function b(e,t,n){return e<t?t:e>n?n:e}const E="undefined"!=typeof window;function $(e,...t){for(let n=0;n<t.length;n++){const r=t[n];if(void 0===r||!f(r))continue;const o=Object.keys(r);for(let t=0;t<o.length;t++){const n=o[t],s=a(r[n]),l=typeof s,u=typeof e[n];void 0!==e[n]&&l!==u||(e[n]=f(s)?$(e[n]||{},s):r[n])}}return e}function M(e,n,r,a){let l=g;if(e){const u=s(e),i=e=>e.removeEventListener(n,r),c=e=>e.addEventListener(n,r,a);l=()=>{i(u.value)},t.onUnmounted(l),t.onMounted(()=>{o(u,(e,t)=>{t&&i(t),e&&c(e)},{immediate:!0})})}return l}function S(e,t,n){return k(e,t,n)}function k(e,t=50,n={isImmediate:!1}){let r;return function(...o){const a=this,s=n.isImmediate&&void 0===r;void 0!==r&&clearTimeout(r),r=setTimeout((function(){r=void 0,n.isImmediate||e.apply(a,o)}),t),s&&e.apply(a,o)}}function L(e,n){if(!e)throw new Error(`[usePromise] argument can't be '${e}'`);if("function"!=typeof e)throw new Error(`[usePromise] expects function, but received ${typeof e}`);const[r,o]=c(n)?[n,!1]:f(n)?[n.lazy,n.throwException]:[!1,!1],a=t.ref(!1),s=t.ref(null),l=t.ref(null),u=t.ref(),i=async(...t)=>{a.value=!0,s.value=null;const n=t&&e.length!==t.length&&t.length>0&&c(t[t.length-1])?t[t.length-1]:o,r=u.value=e(...t);try{const e=await r;return u.value===r&&(l.value=e),e}catch(e){return u.value===r&&(s.value=e,l.value=null),n?r:void 0}finally{u.value===r&&(a.value=!1)}};return r||i(),{exec:i,result:l,promise:u,loading:a,error:s}}function x(e,n){const r=t.ref(!1);let o=void 0;return{...L((...t)=>{return n=e(...t),new Promise((e,t)=>{o=e=>{r.value=!0,t(e)},n.then(e).catch(t)});var n},n),cancel:e=>{o&&o(e)},cancelled:r}}const I=Symbol(""),R=Symbol(""),O=async(e,t,n,r)=>{const o=t[I].value;let a=-1;const s=e.maxRetries||9001,l=e.retryDelay||P;t.retryErrors.value=[],t.isRetrying.value=!1,t.nextRetry.value=void 0;let u=void 0;do{let e=!1,i=null;try{if(++a,i=r?n(...r):n(),p(i)&&(i=await i),t[R].value)return null;e=!0}catch(e){i=null,t.retryErrors.value.push(e)}if(o!==t[I].value)return i;if(e)return t.isRetrying.value=!1,t.nextRetry.value=void 0,i;if(a>=s)return t.isRetrying.value=!1,t.nextRetry.value=void 0,Promise.reject(new Error(`[useRetry] max retries reached ${s}`));t.isRetrying.value=!0;const c=Date.now(),f=l(a),m=p(f)?await f:f;if(!p(f)||m){if(d(m))u=m;else{if(!v(m))throw new Error(`[useRetry] invalid value received from options.retryDelay '${typeof m}'`);u=m.getTime()}u<c?t.nextRetry.value=c+u:(t.nextRetry.value=u,u-=c),u>0&&await w(u)}if(t[R].value)return null;if(o!==t[I].value)return i}while(a<9e3);return null};const P=()=>0;function j(e){return e&&(c(e.isJson)||c(e.parseImmediate))}let C=void 0;let T=void 0,_=void 0;let D=void 0,A=void 0;function F(e,n){const r=E&&"BroadcastChannel"in self,o=t.ref(null),a=t.ref(null),s=t.ref(null),l=t.ref(!1),u=t.ref(!1);let i=g,c=g,v=g;if(r){const r=new BroadcastChannel(e);r.addEventListener("messageerror",e=>{s.value=e,l.value=!0},y),r.addEventListener("message",e=>{a.value=e,o.value=e.data},y),i=e=>r.postMessage(e),c=()=>{r.close(),u.value=!0},v=(e,n)=>{r.addEventListener("message",e,n),t.onUnmounted(()=>r.removeEventListener("message",e))},t.onUnmounted(()=>{n&&n(),c()})}return{supported:r,data:o,messageEvent:a,errorEvent:s,errored:l,isClosed:u,send:i,close:c,addListener:v}}function U(e,t){const n=getComputedStyle(e).getPropertyValue(t);return n?n.trim():null}function V(e,t,n){e.style.setProperty(t,n)}const W={attributes:!0,childList:!0,subtree:!0},z=e=>e.length<=2||"-"!==e[0]||"-"!==e[1]?`--${e}`:e;const B=e=>function(t){const n=t.data||[];return new Promise(t=>{try{Promise.resolve(e.apply(e,n)).then(e=>t(postMessage([!0,e]))).catch(e=>t(postMessage([!1,e])))}catch(e){t(postMessage([!1,e]))}})};function N(e){const n=!!E&&"matchMedia"in window;let r=void 0,o=void 0,a=g;if(n){r=t.ref(matchMedia(e)),o=t.ref(r.value.matches);const n=e=>{o.value=e.matches};r.value.addEventListener("change",n,y);const a=()=>r.value.removeEventListener("change",n);t.onUnmounted(a)}else r=t.ref({}),o=t.ref(!1);return{supported:n,mediaQueryList:r,matches:o,remove:a}}function H(e,n){const{addListener:r,send:a,close:s,supported:l}=F(e,()=>w()),u=Date.now(),i=t.ref(!1),c=t.ref(0),v=t.computed(()=>1!==c.value||i.value),d=t.ref([]),m=t.ref(n);let p=!1,g=void 0;a({type:0});const h=()=>a({type:5,id:u}),w=()=>{0!==d.value.length&&(i.value&&a({type:3,mind:1,id:Math.min(...d.value)}),a({type:4,id:u}))};return r(e=>{switch(e.data.type){case 0:a({type:2,value:m.value,mind:c.value});break;case 4:{const t=d.value.indexOf(e.data.id);t>=0&&d.value.splice(t,1),g===e.data.id&&d.value.length>0&&a({type:3,mind:1,id:Math.min(u,...d.value)});break}case 2:p=!0,m.value=e.data.value,c.value=e.data.mind;break;case 3:c.value=e.data.mind,g=1===e.data.mind&&e.data.id||void 0,i.value=g===u,i.value&&(d.value=[],h());break;case 5:d.value=[e.data.id],a({type:6,id:u});break;case 6:d.value.push(e.data.id)}},y),h(),o(m,(e,t)=>{if(p)p=!1;else{if(1===c.value&&!1===i.value)return p=!0,void(m.value=t);a({type:2,mind:c.value,value:f(e)?{...e}:e}),p=!1}},{deep:!0,immediate:!1}),E&&window.addEventListener("unload",w,y),t.onUnmounted(()=>{w(),s()}),{supported:l,id:u,data:m,master:i,mind:c,editable:v,targets:d,ping:h,setMind:e=>{switch(e){case 1:i.value=!0;break;case 0:i.value=!1}c.value=e,a({type:3,id:u,mind:c.value})},addListener:r}}function K(e,n){const r=s(n),o=s(e);return f(r.value)||t.isRef(n)?[void 0!==o.value?o:void 0,r]:!f(o.value)||l(o.value)||i(o.value)?[o.value?o:void 0,void 0]:[void 0,o]}function J(e,n){const[r,o]=K(e,n),s=t.computed(()=>new Intl.NumberFormat(a(r),a(o))),l=(e,t,n)=>(t||n?new Intl.NumberFormat(a(n)||a(r),{...a(o),...a(t)}):s.value).format(a(e));return{format:(e,n,r)=>t.computed(()=>l(e,n,r)),formatString:l,formatter:s}}function q(e){if(e)return d(e)?e:Q(e)}const Q=e=>{const t=e.match(/^(\d+)px$/);if(t)return+t[1]};function G(e){const n={},r=new Map,o=t.ref();let a=[];const s=[];for(const o in e){const l=e[o],u=q(l);if(void 0!==u){const e=t.ref(!1);n[o]=e,r.set(u,{name:o,valid:e}),a.push(u)}else{const{matches:e,remove:t}=N(l);n[o]=e,s.push(t)}}a=a.sort((e,t)=>t-e);const l=E?()=>{const e=window.innerWidth;let t=void 0;for(let n=0;n<a.length;n++){const o=a[n],s=r.get(o);s.valid.value=e>=o,e>=o&&void 0===t&&(t=s.name)}o.value=t}:g,u=S(l,10),i=E?()=>window.removeEventListener("resize",u):g;return E&&(t.onMounted(()=>{l(),window.addEventListener("resize",u,y)}),t.onUnmounted(()=>{i(),s.forEach(e=>e())})),{...n,remove:i,current:o}}const X=Symbol(""),Y={sm:640,md:768,lg:1024,xl:1280};function Z(e){return f(e)&&f(e.theme)&&f(e.theme.screens)}function ee(e){return!!f(e)&&(i(e.min)||i(e.max)||d(e.min)||d(e.max))}function te(e){const t=[];if(l(e)){const n=e.map(te);for(let e=0;e<n.length;e++){const r=n[e];t.push(...r)}}else f(n=e)&&i(n.raw)?t.push(e.raw):ee(e)?t.push(function(e){return ee(e)?`(${[e.max&&`max-width: ${e.max}`,e.min&&`min-width: ${e.min}`].filter(Boolean).join(" and ")})`:""}(e)):(i(e)||d(e))&&t.push(`min-width: ${e}`);var n;return t}function ne(e){const n=Z(e)?e.theme.screens:e;if(Z(e))for(const e in n)n.hasOwnProperty(e)&&(n[e]=te(n[e]).join(" or "));const r=G(n);return t.provide(X,r),r}function re(e,t){return e instanceof DOMException&&(22===e.code||1014===e.code||"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&(t&&0!==t.length||!1)}function oe(e){try{if(!e)return!1;const t=":$";return e.setItem(t,t),e.removeItem(t),!0}catch(t){return re(t,e)}}function ae(e,t){try{return e.parse(t)}catch{return t}}let se=void 0;function le(e,n=JSON,r=10){const a=E?window[e]:void 0,l=oe(a);se||(se=new Map,E&&window.addEventListener("storage",e=>{if(e.newValue===e.oldValue)return;let t=se.get("localStorage");t=e.storageArea===window.localStorage?se.get("localStorage"):se.get("sessionStorage"),t&&Object.keys(t.$syncKeys).length>0&&(null===e.key?t.clear():t.$syncKeys[e.key]&&(null===e.newValue?t.removeItem(e.key):t.updateItem(e.key,e.newValue)))}));let u,c=se.get(e);return l&&a?c?u=c.$quotaError:(u=t.ref(!1),c={$refMap:new Map,$watchHandlers:new Map,$syncKeys:{},$quotaError:u,key:a.key,length:a.length,setSync(e,t){t?this.$syncKeys[e]=!0:delete this.$syncKeys[e]},clear(){this.$refMap.forEach((e,t)=>this.removeItem(t))},removeItem(e){const t=this.$refMap.get(e);t&&(t.value=void 0);const n=this.$watchHandlers.get(e);n&&n(),delete this.$syncKeys[e],this.$refMap.delete(e),a.removeItem(e)},getItem(e){const t=a.getItem(e);return t?this.setItem(e,ae(n,t)):null},setItem(e,t){const l=s(t);this.$refMap.set(e,l);const c=(e,t)=>{try{const r=a.getItem(e),o=i(t)?t:n.stringify(t);a.setItem(e,o),r!==o&&E&&this.$syncKeys[e]&&window.dispatchEvent(new StorageEvent(e,{newValue:o,oldValue:r,storageArea:a}))}catch(e){u.value=re(e,a)}};c(e,t);const v=o(l,k(t=>{c(e,t)},r),{immediate:!1,deep:!0});return this.$watchHandlers.set(e,v),l},updateItem(e,t){let r=this.$refMap.get(e);r&&(r.value=ae(n,t))}},se.set(e,c)):(u=t.ref(!1),c={}),{supported:l,quotaError:u,store:c,remove:()=>se.delete(e)}}function ue(e,n,r){const{supported:o,store:a}=le("localStorage");let s=g,l=g,u=g,i=void 0;return o&&a?(u=t=>a.setSync(e,t),s=()=>a.removeItem(e),l=()=>a.clear(),i=a.getItem(e),i||(i=a.setItem(e,n)),!1!==r&&u(!0)):i=t.ref(n),{supported:o,storage:i,clear:l,remove:s,setSync:u}}function ie(e,n,r){const{supported:o,store:a}=le("sessionStorage");let s=g,l=g,u=h,i=void 0;return o&&a?(s=()=>a.removeItem(e),l=()=>a.clear(),i=a.getItem(e),i||(i=a.setItem(e,n))):i=t.ref(n),{supported:o,storage:i,clear:l,remove:s,setSync:u}}let ce=void 0;function ve(e){const n=s(e.currentPage),r=s(e.pageSize),a=t.ref(0),l=s(e.total),u=t.computed({get:()=>a.value,set(e){d(e)&&(a.value=Math.min(e,l.value))}}),i=t.computed({get:()=>n.value,set(e){d(e)&&(n.value=b(e,1,v.value),u.value=(n.value-1)*c.value)}}),c=t.computed({get:()=>r.value,set(e){d(e)&&(r.value=e)}}),v=t.computed(()=>Math.ceil(l.value/c.value));i.value=n.value;return o([l,c],e=>{i.value>v.value&&(i.value=v.value)},{immediate:!1}),{pageSize:c,total:l,currentPage:i,offset:u,lastPage:v,next:()=>++i.value,prev:()=>--i.value,first:()=>i.value=1,last:()=>i.value=v.value}}function de(e){const n=e&&e.refreshMs||1e3,r=!e||!c(e.sync)||e.sync,o=e&&u(e.timeFn)&&e.timeFn||Date.now;let a=void 0,s=void 0;const l=t.ref(o()),i=()=>{clearInterval(a),clearTimeout(s)},v=E?()=>a=setInterval(()=>l.value=o(),n):g;if(r){const e=1e3-(l.value-1e3*Math.floor(l.value/1e3));s=setTimeout(v,e)}else v();return t.onUnmounted(i),{now:l,remove:i}}function fe(e,n){return t.computed(()=>{const r=a(e);if(!n)return r;const o=t.isRef(n)?t.reactive(n.value):t.reactive(n);return r.replace(/({?{[\w\s]*}?})/g,e=>{const t=e.replace("{","").replace("}","").trim();if(e[0]===e[1]&&"{"===e[0])return`${t}`;const n=l(o)?o[+t]:o[t];return void 0===n?e:`${a(n)}`})})}function me(e,n,r=".",o=g){return t.computed(()=>{const t=a(e),s=a(n);if(void 0===t)return o(s,t,s,t);if(!s)return t;const l=s.split(r);let u=t;for(let e=0;e<l.length;e++){let n=l[e];if("]"===n[n.length-1]){const t=/\[[`'"]?([^`'"\]]*)[`'"]?\]/g;let r=n,o=t.exec(r);if(o){let a=o[0].length,s=o.index-a,u=1;do{o.index,s=o.index,a=o[0].length,n=n.slice(0,-o[0].length),l.splice(e+u,0,o[1]),++u}while(o=t.exec(r));if(!n&&"["===r[0]&&r.length>2)continue}else n="",console.warn(`[usePath] invalid path provided "${r}"`)}if(!f(u))return o(l.slice(0,e+1).join(r),u,s,t);if(!n)return o(l.slice(0,e+1).join(r),u,s,t);if(u=u[n],!u)return o(l.slice(0,e+1).join(r),u,s,t)}return u})}function pe(e){return void 0!==e.$value}const ge=(e,n,r)=>{const{$message:s,$validator:l,...u}=function(e){return f(e)}(n)?n:{$validator:n,$message:""},{$pending:i,$promise:c,$invalid:v,$error:d}=((e,n,r)=>{const s=t.ref(null),l=t.ref(!1),u=t.ref(),i=t.ref(!1);let c=void 0;const v=e=>{s.value=(async()=>{try{l.value=!0;const t=n(e,c);p(t)?i.value=!await t:i.value=!t}catch(e){throw i.value=!0,e}finally{l.value=!1}})().catch(e=>(u.value=a(e),i.value=!0,e))};return r.push(t=>{c=t,o(()=>{try{n(e.value,c)}catch(e){}return e.value},v,{deep:!0,immediate:!0})}),{$promise:s,$pending:l,$invalid:i,$error:u}})(e,l,r);return{$pending:i,$error:d,$promise:c,$invalid:v,$message:s,...u}},he=(e,n)=>{const r={},l=pe(e)?s(e.$value):void 0;for(const s of Object.keys(e))if("$"!==s[0])if(l){const t=ge(l,e[s],n);r[s]={...t,$value:l}}else{const o=he(e[s],n);let l,u,i=void 0;if(pe(o)){const e=Object.keys(o).filter(e=>"$"!==e[0]).map(e=>o[e]);l=t.computed(()=>e.map(e=>e.$error).filter(Boolean).map(e=>a(e))),u=t.computed(()=>e.some(e=>!!a(e.$invalid)))}else{const e=Object.keys(o).map(e=>o[e]);l=t.computed(()=>e.map(e=>a(e.$errors)).filter(Boolean).filter(e=>e.some(Boolean))),i=t.computed(()=>e.some(e=>e.$anyDirty||c(a(e.$dirty))&&a(e.$dirty))),u=t.computed(()=>e.some(e=>!!a(e.$anyInvalid)))}r[s]={...o,$errors:l,$anyInvalid:u},i&&(r[s].$anyDirty=i)}else{if("$value"===s){r[s]=l;const e=t.ref(!1),n=o(l,()=>{e.value=!0,n()},{immediate:!1,deep:!0});r.$dirty=e;continue}r[s]=e[s]}return r};const ye=Symbol("");function we(e){const l=t.ref(Object.keys(e.messages)),i=t.ref(e.messages),v=t.ref(e.locale),d=t.ref({});let f=t.ref();const m={},g=(e,n)=>{if(m[e])return m[e];const r=n.value[e];if(!r)return t.ref({});let o=u(r)?r():r;return p(o)?o.then(t=>m[e]=s(t)):u(r)?s(o):m[e]=t.computed(()=>n.value[e])},h=!!e.fallback&&(!c(e.notFoundFallback)||e.notFoundFallback);let y=!1;if(h){const t=g(e.fallback,i);p(t)?(t.then(e=>{f.value=e.value}),y=!0):f.value=t.value}else f.value={};const w=t.ref(0);o(i,()=>w.value++,{deep:!0,immediate:!1}),o([v,f,w],([t,n,r])=>{if(t===e.fallback&&h)d.value=n;else{const e=e=>d.value=$({},n,a(e)),r=g(t,i);p(r)?r.then(e):e(r)}},{immediate:!y});const b=(t,n)=>e.resolve?s(e.resolve(d.value,t,n)):fe(me(d,t,".",(e,t,n,r)=>n),n);return{locale:v,locales:l,i18n:d,$t:b,$ts:(e,t)=>b(e,t).value,addLocale:(e,t)=>{l.value.indexOf(e)>=0||l.value.push(e),delete m[e],__VUE_2__?r(i.value,e,t):i.value[e]=t},removeLocale:t=>{const r=l.value.indexOf(t);if(r>=0){const n=[v.value,f.value&&e.fallback,...l.value].find(e=>e&&e!==t);n&&(t===e.fallback&&(f.value=void 0),t===v.value&&(v.value=n)),l.value.splice(r,1)}var o,a;__VUE_2__?(o=i.value,a=t,n.delete(o,a)):delete i.value[t],delete m[t]}}}function be(e){const n=we(e);return t.provide(ye,n),n}return e.FALSE_OP=h,e.NO_OP=g,e.PASSIVE_EV=y,e.buildI18n=we,e.debounce=k,e.deepClone=$,e.exponentialDelay=e=>{const t=100*Math.pow(2,e);return t+.2*t*Math.random()},e.exposeWorker=function(e){this.onmessage=async t=>{const n=e(t.data);if(void 0===n)this.postMessage(n);else if(null===n)this.postMessage(n);else if(l(n))this.postMessage(n);else if(n[Symbol.asyncIterator])for await(const e of n)this.postMessage(e);else if(n[Symbol.iterator])for(const e of n)this.postMessage(e);else this.postMessage(await n)}},e.getCssVariableFor=U,e.isArray=l,e.isBoolean=c,e.isClient=E,e.isDate=v,e.isElement=m,e.isFunction=u,e.isNumber=d,e.isObject=f,e.isPromise=p,e.isString=i,e.isSymbol=e=>"symbol"==typeof e,e.minMax=b,e.noDelay=P,e.promisedTimeout=w,e.refShared=function(e,n){const r=t.getCurrentInstance(),o=n||(__VUE_2__?r.$vnode.tag:r.vnode.scopeId);if(!o)return t.ref(e);const{data:a,supported:s}=H(o,e);return a},e.setBreakpointTailwindCSS=ne,e.setCssVariableFor=V,e.setI18n=be,e.storageAvailable=oe,e.unwrap=a,e.useArrayPagination=function(e,n){const r=s(e),o=ve({currentPage:1,pageSize:10,...n,total:t.computed(()=>r.value.length)}),a=t.computed(()=>{const e=r.value;return Array.isArray(e)?e.slice(o.offset.value,o.offset.value+o.pageSize.value):[]});return{...o,result:a}},e.useBreakpoint=G,e.useBreakpointChrome=function(){return G({mobileS:320,mobileM:375,mobileL:425,tablet:768,laptop:1024,laptopL:1440,desktop4K:2560})},e.useBreakpointTailwindCSS=function(e){const n=t.inject(X);return n||ne(e||Y)},e.useBroadcastChannel=F,e.useCancellablePromise=x,e.useCssVariables=function(e,n,r){const l=E&&"MutationObserver"in self,[u,c]=t.isRef(n)||m(n)?[n,r||W]:[l&&document.documentElement||{},n||W],v=t.ref(!0),d={},f=[],p=Object.entries(e).map(e=>{const[t,n]=i(e[1])?[e[1]]:[e[1].name,e[1].value];return n&&(f.push(()=>V(a(u),t,a(n))),d[e[0]]=s(n)),[e[0],z(t)]});for(let e=0;e<p.length;e++){const[n,r]=p[e];d[n]||(d[n]=t.ref(t.isRef(u)&&!u.value||!l?null:U(a(u),r))),l&&o([d[n],s(u)],e=>{v&&e[1]&&e[0]!==U(e[1],r)&&V(e[1],r,e[0])},{immediate:!t.isRef(u)})}if(!l)return{...d,stop:g,resume:g,supported:l,observing:v};const h=()=>{for(let e=0;e<p.length;e++){const[t,n]=p[e];d[t].value=U(a(u),n)}},y=new MutationObserver(h),w=()=>{y.disconnect(),v.value=!1},b=()=>{v.value||h(),y.observe(a(u),c),v.value=!0};return t.onUnmounted(w),t.isRef(u)?t.onMounted(()=>{f.forEach(e=>e()),o(u,(e,t)=>{t&&w(),e&&b()})}):(E||u)&&(f.forEach(e=>e()),b()),{...d,supported:l,resume:b,stop:w,observing:v}},e.useCurrencyFormat=function(e,n,r){const o=a(e),s=!f(o),l=s?e:t.computed(()=>a(e).currency),[u,i]=K(n,s?r:e),c=t.computed(()=>{const e=a(i)||{},t=a(l)||e.currency;return{style:"currency",...e,currency:t}}),v=J(u),d=(e,t,n,r,o)=>{const s={...c.value,...a(r)},l=a(t)||s.currency,u=a(n)||s.currencyDisplay;return v.formatString(e,{...s,currency:l,currencyDisplay:u},o)};return{format:(e,n,r,o,a)=>t.computed(()=>d(e,n,r,o,a)),formatString:d}},e.useDateNow=function(e){return de({refreshMs:e&&e.refreshMs||1e3,sync:!e||!c(e.sync)||e.sync,timeFn:Date.now})},e.useDebounce=S,e.useEvent=M,e.useFetch=function(e,n){const r=t.ref(null),o=t.ref(""),a=t.ref(),s=t.ref(null),[l,u]=j(e)?[!1!==e.isJson,!1!==e.parseImmediate]:j(n)?[!1!==n.isJson,!1!==n.parseImmediate]:[!0,!0],c=e?i(e)?n:j(e)?e:i(e.url)?n:e:void 0,v=t.ref(!1),d=t.ref();let f=void 0;const m=L(async(e,t)=>{f=new AbortController;const n=await fetch(e,{signal:f.signal,...c,...t});if(n){const e=[l?n.clone().json().then(e=>r.value=e).catch(e=>{r.value=null,s.value=e}):Promise.resolve(),n.clone().blob().then(e=>{a.value=e}),n.clone().text().then(e=>{o.value=e})];u&&await Promise.all(e)}return n},!0),p=t.computed(()=>m.result.value&&m.result.value.status||null),g=t.computed(()=>m.result.value&&m.result.value.statusText||null);return e&&(i(e)||i(e.url))&&m.exec(e,void 0,!1),{...m,cancel:e=>{f&&(f.abort(),v.value=!0,d.value=e)},isCancelled:v,cancelledMessage:d,text:o,blob:a,json:r,jsonError:s,status:p,statusText:g}},e.useFormat=fe,e.useGeolocation=function(e){const n=E&&!!navigator.geolocation,r=t.ref(e?!1===e.immediate:void 0),a=t.ref(null),s=t.ref(null),l=t.ref(null),u=t.ref(e&&e.enableHighAccuracy||null);let i=g;if(n){const n=e=>{s.value=e.timestamp,l.value=e.coords,a.value=null},v=e=>{s.value=Date.now(),l.value=null,a.value=e},d=()=>!0!==r.value&&m&&navigator.geolocation.clearWatch(m);let f=()=>navigator.geolocation.getCurrentPosition(n,v,e);i=r.value?()=>{r.value?r.value=!1:f()}:f;let m=0;t.onMounted(()=>o([u,r],t=>{d();const r=c(t[0])?t[0]:e?e.enableHighAccuracy:void 0;m=navigator.geolocation.watchPosition(n,v,e?{...e,enableHighAccuracy:r}:{enableHighAccuracy:r})},{immediate:!r.value})),t.onUnmounted(d)}return{supported:n,refresh:i,error:a,timestamp:s,coords:l,highAccuracy:u}},e.useI18n=function(e){return e?be(e):t.inject(ye)},e.useIntersectionObserver=function(e,n){const r=E&&"IntersectionObserver"in window,l=e?s(e):void 0,u=!l||!m(l.value)&&l.value?void 0:l,i=t.computed(()=>n?a(n):u?void 0:a(e)),c=t.ref([]),v=t.computed(()=>c.value.length>0&&c.value.every(e=>e.isIntersecting)),d=e=>{c.value=e};let f=t.ref();r&&o(i,e=>{f.value&&f.value.disconnect();const t=e&&e&&{root:a(e.root),rootMargin:a(e.rootMargin),threshold:a(e.threshold)}||void 0;f.value=new IntersectionObserver(d,t),c.value.map(e=>e.target).forEach(f.value.observe)},{deep:!0,immediate:!0});const p=r?e=>{const t=a(e);f.value.observe(t)}:g,h=r?e=>{const t=a(e);f.value.unobserve(t)}:g,y=()=>f.value.disconnect();return u&&(t.onMounted(()=>{u.value&&p(u)}),t.onUnmounted(()=>{y()})),{supported:r,elements:c,observe:p,unobserve:h,disconnect:y,isIntersecting:v}},e.useIntlNumberFormat=J,e.useLanguage=function(){if(D||(D=E?t.ref(navigator.language):t.ref("")),!A)if(E){A=t.ref(navigator.languages);const e=()=>{D.value=navigator.language,A.value=navigator.languages};window.addEventListener("languagechange",e,y)}else A=t.ref([]);return{language:D,languages:A}},e.useLocalStorage=ue,e.useMatchMedia=N,e.useNetworkInformation=function(){const e=!!E&&(navigator.connection||navigator.mozConnection||navigator.webkitConnection),n=!!e,r=t.ref(0),o=t.ref(0),a=t.ref("none"),s=t.ref(0),l=t.ref(!1),u=t.ref("none");let i=g,c=g;return e&&(i=()=>{r.value=e.downlink,o.value=e.downlinkMax,a.value=e.effectiveType,s.value=e.rtt,l.value=e.saveData,u.value=e.type},c=M(e,"change",i,y),i()),{supported:n,downlink:r,downlinkMax:o,effectiveType:a,rtt:s,saveData:l,type:u,remove:c}},e.useNow=de,e.useOnMouseMove=function(e,n,r){const o=t.ref(0),a=t.ref(0);let s=e=>{o.value=e.x,a.value=e.y};const[l,u]=d(n)?[void 0,n]:[n,r];u&&(s=S(s,r));const i=M(e,"mousemove",s,l);return{mouseX:o,mouseY:a,remove:i}},e.useOnResize=function(e,n,r){const o=s(e),a=t.ref(o.value&&o.value.clientHeight),l=t.ref(o.value&&o.value.clientWidth);let u=()=>{a.value=o.value.clientHeight,l.value=o.value.clientWidth};const[i,c]=d(n)?[void 0,n]:[n,r];c&&(u=S(u,r));const v=E?M(window,"resize",u,i||y):g;return{height:a,width:l,remove:v}},e.useOnScroll=function(e,n,r){const a=e=>!(d(e)||c(e)||!m(e)&&!t.isRef(e)||!e),l=a(e)?s(e):t.ref(E&&window||void 0),u=a(e)?l:t.ref(E&&window.document.scrollingElement||void 0),i=t.ref(u.value&&u.value.scrollTop||0),v=t.ref(u.value&&u.value.scrollLeft||0);let f=()=>{i.value=u.value.scrollTop,v.value=u.value.scrollLeft};const p=(...e)=>u.value&&u.value.scrollTo&&u.value.scrollTo.apply(u.value,e),g=e=>p({top:e}),h=e=>p({left:e}),[w,b]=d(e)||!e?[y,e]:d(n)?[y,n]:[n,r];b&&(f=S(f,r));const $=M(l,"scroll",f,w),k=o(i,g,{immediate:!1}),L=o(v,h,{immediate:!1});return{scrollTop:i,scrollLeft:v,scrollTo:p,remove:()=>{$(),L(),k()},scrollTopTo:g,scrollLeftTo:h}},e.useOnline=function(){const e=E&&"onLine"in navigator;return e||(C=t.ref(!1)),C||(C=t.ref(navigator.onLine),window.addEventListener("offline",()=>C.value=!1,y),window.addEventListener("online",()=>C.value=!0,y)),{supported:e,online:C}},e.usePageVisibility=function(){return _||(_=t.ref(E&&document.hidden)),T||(E?(T=t.ref(document.visibilityState),document.addEventListener("visibilitychange",()=>{T.value=document.visibilityState,_.value=document.hidden},y)):T=t.ref("visible")),{visibility:T,hidden:_}},e.usePagination=ve,e.usePath=me,e.usePerformanceNow=function(e){return de({refreshMs:e&&e.refreshMs||1e3,sync:!e||!c(e.sync)||e.sync,timeFn:()=>performance.now()})},e.usePromise=L,e.usePromiseLazy=function(e,t=!1){return L(e,{lazy:!0,throwException:t})},e.useRetry=function(e,n){const r=!e||u(e)?{}:e,o=u(e)?e:n;if(!u(e)&&!f(e))throw new Error("[useRetry] options needs to be 'object'");if(o&&!u(o))throw new Error("[useRetry] factory needs to be 'function'");const a=t.ref(!1),s=t.ref(),l=t.ref([]),i={value:!1},c={isRetrying:a,retryCount:t.computed(()=>l.value.length),nextRetry:s,retryErrors:l,[I]:{value:0},[R]:i},v=o?(...e)=>(++c[I].value,O(r,c,o,e)):e=>(++c[I].value,O(r,c,e,void 0));return{...c,cancel:()=>{c.isRetrying.value=!1,c.retryErrors.value.push(new Error("[useRetry] cancelled")),c.nextRetry.value=void 0,i.value=!0},exec:v}},e.useSessionStorage=ie,e.useShare=function(e){const n=E&&"share"in navigator;let r=()=>Promise.resolve(!1),o=h,a=t.ref(!1),s=t.ref(!1);return n&&(r=e=>(a.value=!1,s.value=!1,navigator.share(e).then(e=>(a.value=!0,e)).catch(e=>(a.value=!1,s.value=!0,!1))),o=e=>navigator.canShare(e),e&&o(e)&&r(e)),{supported:n,share:r,canShare:o,shared:a,cancelled:s}},e.useSharedRef=H,e.useStorage=function(e,t,n){return void 0===ce&&(ce=le("localStorage").supported),ce?ue(e,t,n):ie(e,t)},e.useValidation=function(e){const n=[],r=he({input:e},n),o=t.reactive(r.input);return n.forEach(e=>e(o)),o},e.useWebSocket=function(e,n){const r=E&&"WebSocket"in window;let o=null;const a=t.ref(),s=t.ref(),l=t.ref(null),u=t.ref(!1),i=t.ref(!1),c=t.ref(!1);let v=g,d=g;return r&&(o=new WebSocket(e,n),o.addEventListener("message",e=>{a.value=e,l.value=e.data}),o.addEventListener("error",e=>{s.value=e,c.value=!0}),o.addEventListener("close",()=>{u.value=!1,i.value=!0}),o.addEventListener("open",()=>{u.value=!0,i.value=!1}),v=e=>o.send(e),d=(e,t)=>{o.close(e,t)}),{supported:r,ws:o,send:v,close:d,messageEvent:a,errorEvent:s,data:l,isOpen:u,isClosed:i,errored:c}},e.useWebStorage=le,e.useWorker=function(e,n,r){const o=E&&"Worker"in self,a=t.ref(),s=t.ref(),l=t.ref(!o),u=t.ref(!o);if(!o)return l.value=!0,{worker:void 0,data:s,postMessage:g,terminate:g,errorEvent:a,errored:u,terminated:l};const i=new Worker(e,r),c=e=>i.postMessage(e);function v(){i.terminate(),l.value=!0}return i.addEventListener("message",e=>{s.value=e.data},y),i.addEventListener("error",e=>{a.value=e,u.value=!0},y),t.onUnmounted(v),n&&c(n),{worker:i,data:s,postMessage:c,terminate:v,errorEvent:a,errored:u,terminated:l}},e.useWorkerFunction=function(e,n){const r=E&&"Worker"in self,s=t.computed(()=>n&&a(n.dependencies)||[]),l=t.computed(()=>n&&a(n.timeout));if(!r)return x(e,{lazy:!0,throwException:!0});const u=x((...n)=>new Promise((r,a)=>{const i=function(e,t){const n=[t.length>0?`importScripts("${t.join('","')}");`:"","onmessage=",`(${B.toString()})(${e.toString()})`],r=new Blob(n,{type:"text/javascript"});return URL.createObjectURL(r)}(e,s.value),c=new Worker(i);let v=-1;const d=l.value,f=()=>{c.terminate(),URL.revokeObjectURL(i),clearTimeout(v),p()},m=n.length===e.length+1&&t.isRef(n[n.length-1])&&!1===n[n.length-1].value?t.computed(()=>u.cancelled.value||n[n.length-1].value):u.cancelled,p=m?o(m,()=>{f(),r(void 0)},{immediate:!1}):g;c.addEventListener("message",e=>{e.data[0]?r(e.data[1]):a(e.data[1]),f()},y),c.addEventListener("error",e=>{f(),a(e)},y),c.postMessage([...n]),d&&(v=setTimeout(()=>{u.cancel(`[WebWorker] timeout after ${d}ms`)},d))}),{lazy:!0,throwException:!0});return u},e.wrap=s,e}({},vueCompositionApi,Vue); |
{ | ||
"name": "vue-composable", | ||
"version": "1.0.0-dev.28", | ||
"version": "1.0.0-dev.29", | ||
"description": "vue-composable", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
122
README.md
@@ -5,37 +5,40 @@ # vue-composable | ||
<!-- [![CircleCI](https://circleci.com/gh/pikax/vue-composable.svg?style=svg)](https://circleci.com/gh/pikax/vue-composable) --> | ||
[![CircleCI](https://circleci.com/gh/pikax/vue-composable.svg?style=svg)](https://circleci.com/gh/pikax/vue-composable) | ||
[![Coverage Status](https://coveralls.io/repos/github/pikax/vue-composable/badge.svg?branch=master)](https://coveralls.io/github/pikax/vue-composable?branch=master) | ||
[![npm version](https://badge.fury.io/js/vue-composable.svg)](https://badge.fury.io/js/vue-composable) | ||
[![bundle size](https://badgen.net/bundlephobia/minzip/vue-composable)](https://bundlephobia.com/result?p=vue-composable@next) | ||
[![Coverage Status](https://coveralls.io/repos/github/pikax/vue-composable/badge.svg?branch=vue3)](https://coveralls.io/github/pikax/vue-composable?branch=vue3) | ||
## Introduction | ||
<!-- [![npm version](https://badge.fury.io/js/vue-composable.svg)](https://badge.fury.io/js/vue-composable) --> | ||
`vue-composable` is out-of-box ready to use [composition-api](https://github.com/vuejs/composition-api) generic components. | ||
[![bundle size](https://badgen.net/bundlephobia/minzip/vue-composable@next)](https://bundlephobia.com/result?p=vue-composable@next) | ||
100% typescript based composable components and full type support out-of-box. | ||
# Vue 3 | ||
Built for [vue-next](https://github.com/vuejs/vue-next) and [composition-api](https://github.com/vuejs/composition-api) | ||
This version is `alpha` with support for the vue3 ([vue-next](https://github.com/vuejs/vue-next)) | ||
This library aim is to be one stop shop for many real-world composable functions, with aggressive tree-shaking to keep it light on your end code. | ||
> Check webpack [vue3 example](https://github.com/pikax/vue-composable/tree/vue3/examples/vue-next-webpack-preview-master) or [CodeSandbox](https://codesandbox.io/s/vue-composable-next-6m5et) | ||
# Vue 3 | ||
## Introduction | ||
[Vue3](https://github.com/vuejs/vue-next) aka [vue-next](https://github.com/vuejs/vue-next) is supported on the [@next](https://www.npmjs.com/package/vue-composable/v/next) | ||
`vue-composable` is out-of-box ready to use the brand new [Vue 3](https://github.com/vuejs/vue-next) [composition-api](https://vue-composition-api-rfc.netlify.com/) generic components. | ||
## Installing | ||
100% typescript based composable components and full type support out-of-box. | ||
```bash | ||
# @vue/composition-api | ||
This library aim is to be one stop shop for many real-world composable functions, with aggressive tree-shaking to keep it light on your end code. | ||
# install with yarn | ||
yarn add @vue/composition-api vue-composable | ||
[vue-composable](https://www.npmjs.com/package/vue-composable) is composed by two package [@vue-composable/core](./packages/core) and [@vue-composable/web](./packages/web). | ||
# install with npm | ||
npm install @vue/composition-api vue-composable | ||
- [@vue-composable/core](./packages/core): contains helpers composables, such as Promise and Pagination. | ||
- [@vue-composable/web](./packages/web): contains [Web API](https://developer.mozilla.org/en-US/docs/Web/API) implementations | ||
## Installing | ||
# vue-next / vue@3.0.0-beta | ||
```bash | ||
# install with yarn | ||
yarn add @vue/runtime-core vue-composable | ||
yarn add vue-composable@next | ||
# install with npm | ||
npm install @vue/runtime-core vue-composable | ||
npm install vue-composable@next | ||
``` | ||
@@ -45,10 +48,10 @@ | ||
> NOTE documentation might be slightly wrong, because it was built for the v2 | ||
Check our [documentation](https://pikax.me/vue-composable/) | ||
### Composable | ||
### Event | ||
- [Event](https://pikax.me/vue-composable/composable/event/event) - Attach event listener to a DOM element | ||
- [Mouse Move](https://pikax.me/vue-composable/composable/event/onMoveMove) - Attach `mousemove` listener to a DOM element | ||
- [Mouse Move](https://pikax.me/vue-composable/composable/event/onMouseMove) - Attach `mousemove` listener to a DOM element | ||
- [Resize](https://pikax.me/vue-composable/composable/event/onResize) - Attach `resize` listener to a DOM element | ||
@@ -59,5 +62,5 @@ - [Scroll](https://pikax.me/vue-composable/composable/event/onScroll) - Attach `scroll` listener to a DOM element | ||
- [useNow][now] : Return reactive custom timer with specified refresh rate | ||
- [useDateNow][date-now] : Returns reactive `Date.now()` with custom refresh rate | ||
- [usePerformanceNow][performance-now] : Returns reactive `performance.now()` with custom refresh rate | ||
- [useNow](https://pikax.me/vue-composable/composable/date/now) : Return reactive custom timer with specified refresh rate | ||
- [useDateNow](https://pikax.me/vue-composable/composable/date/dateNow) : Returns reactive `Date.now()` with custom refresh rate | ||
- [usePerformanceNow](https://pikax.me/vue-composable/composable/date/performanceNow) : Returns reactive `performance.now()` with custom refresh rate | ||
@@ -108,2 +111,3 @@ ### Format | ||
- [Promise](https://pikax.me/vue-composable/composable/promise/promise) - `Promise` reactive resolve and reject | ||
- [promiseLazy](https://pikax.me/vue-composable/composable/promise/promiseLazy) - Sugar for [usePromise](https://pikax.me/vue-composable/composable/promise/promise) `lazy:true` | ||
- [Cancellable Promise](https://pikax.me/vue-composable/composable/promise/cancellablePromise) - Allow to cancel promises | ||
@@ -124,2 +128,5 @@ - [Retry](https://pikax.me/vue-composable/composable/promise/retry) - Provides functionality to retry `promise` | ||
- [CSS variables](https://pikax.me/vue-composable/composable/web/cssVariables) - reactive `CSS variables` | ||
- [Worker](https://pikax.me/vue-composable/composable/web/worker) - `Web Worker API` | ||
- [WorkerFunction](https://pikax.me/vue-composable/composable/web/workerFunction) - Webworker Function, offload a function to webworker | ||
- [share](https://pikax.me/vue-composable/composable/web/share) - WebShare API | ||
@@ -131,62 +138,35 @@ ### External | ||
- [Axios](https://pikax.me/vue-composable/composable/external/axios) - [@vue-composable/axios](https://www.npmjs.com/package/@vue-composable/axios) reactive `axios` wrapper client | ||
- [makeAxios](https://pikax.me/vue-composable/composable/external/makeAxios) - [@vue-composable/makeAxios](https://www.npmjs.com/package/@vue-composable/makeAxios) wrap your `axios` instance | ||
## Examples | ||
## Information | ||
Check out the [examples folder](examples) or start hacking on [codesandbox](https://codesandbox.io/s/vue-composable-examples-yuusf). | ||
This is a monorepo project, please check [packages](packages/) | ||
[![Edit Vue Composable Examples](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/vue-template-yuusf?fontsize=14) | ||
## Contributing | ||
### NOTE | ||
You can contribute raising issues and by helping out with code. | ||
Currently only works with [composition-api](https://github.com/vuejs/composition-api), when [Vue3](https://github.com/vuejs/vue-next) gets release I will update to use the new reactive system (using [@vue/reactivity](https://github.com/vuejs/vue-next/tree/master/packages/reactivity)) | ||
Tests and Documentation are the most important things for me, because good documentation is really useful! | ||
For [vue-next](https://github.com/vuejs/vue-next) support please check [@next](https://www.npmjs.com/package/vue-composable/v/next) | ||
I really appreciate some tweaks or changes on how the documentation is displayed and how to make it easier to read. | ||
## Usage | ||
> I really need an logo for this project, if you have a good idea for a logo, please enter in contact with me, you can find me on the `Vue discord : @pikax | ||
```vue | ||
<template> | ||
<div> | ||
<p>page {{ currentPage }} of {{ lastPage }}</p> | ||
<p> | ||
<button @click="prev">prev</button> | ||
<button @click="next">next</button> | ||
</p> | ||
<ul> | ||
<li v-for="n in result" :key="n"> | ||
{{ n }} | ||
</li> | ||
</ul> | ||
</div> | ||
</template> | ||
Twitter: [@pikax_dev](https://twitter.com/pikax_dev) | ||
<script> | ||
import { useArrayPagination } from "vue-composable"; | ||
## Build | ||
export default { | ||
setup() { | ||
const array = new Array(1000).fill(0).map((_, i) => i); | ||
const { result, next, prev, currentPage, lastPage } = useArrayPagination( | ||
array, | ||
{ | ||
pageSize: 3 | ||
} | ||
); | ||
```bash | ||
# install packages | ||
yarn | ||
return { result, next, prev, currentPage, lastPage }; | ||
} | ||
}; | ||
</script> | ||
# build and test for v2 | ||
yarn build --version=2 | ||
yarn test:vue2 | ||
# build and test for v3 | ||
yarn build | ||
yarn test | ||
``` | ||
## Contributing | ||
You can contribute raising issues and by helping out with code. | ||
Tests and Documentation are the most important things for me, because good documentation is really useful! | ||
I really appreciate some tweaks or changes on how the documentation is displayed and how to make it easier to read. | ||
> I really need an logo for this project, if you have a good idea for a logo, please enter in contact with me, you can find me on the `Vue discord : @pikax` | ||
### New composable | ||
@@ -193,0 +173,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
447466
11691
187