@vueuse/integrations 6.5.3 → 6.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,6 +18,7 @@ npm i <b>@vueuse/integrations</b>
18
18
  - [`useCookies`](https://vueuse.org/integrations/useCookies/) — wrapper for [`universal-cookie`](https://www.npmjs.com/package/universal-cookie)
19
19
  - [`useDrauu`](https://vueuse.org/integrations/useDrauu/) — reactive instance for [drauu](https://github.com/antfu/drauu)
20
20
  - [`useFocusTrap`](https://vueuse.org/integrations/useFocusTrap/) — reactive wrapper for [`focus-trap`](https://github.com/focus-trap/focus-trap)
21
+ - [`useFuse`](https://vueuse.org/integrations/useFuse/) — reactive wrapper for [Fuse.js](https://github.com/krisk/fuse)
21
22
  - [`useJwt`](https://vueuse.org/integrations/useJwt/) — wrapper for [`jwt-decode`](https://github.com/auth0/jwt-decode)
22
23
  - [`useNProgress`](https://vueuse.org/integrations/useNProgress/) — reactive wrapper for [`nprogress`](https://github.com/rstacruz/nprogress)
23
24
  - [`useQRCode`](https://vueuse.org/integrations/useQRCode/) — wrapper for [`qrcode`](https://github.com/soldair/node-qrcode)
package/index.cjs CHANGED
@@ -9,6 +9,7 @@ var Cookie = require('universal-cookie');
9
9
  var drauu = require('drauu');
10
10
  var core = require('@vueuse/core');
11
11
  var focusTrap = require('focus-trap');
12
+ var Fuse = require('fuse.js');
12
13
  var jwt_decode = require('jwt-decode');
13
14
  var nprogress = require('nprogress');
14
15
  var QRCode = require('qrcode');
@@ -17,6 +18,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
17
18
 
18
19
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
19
20
  var Cookie__default = /*#__PURE__*/_interopDefaultLegacy(Cookie);
21
+ var Fuse__default = /*#__PURE__*/_interopDefaultLegacy(Fuse);
20
22
  var jwt_decode__default = /*#__PURE__*/_interopDefaultLegacy(jwt_decode);
21
23
  var nprogress__default = /*#__PURE__*/_interopDefaultLegacy(nprogress);
22
24
  var QRCode__default = /*#__PURE__*/_interopDefaultLegacy(QRCode);
@@ -349,6 +351,35 @@ function useFocusTrap(target, options = {}) {
349
351
  };
350
352
  }
351
353
 
354
+ function useFuse(search, data, options) {
355
+ var _a;
356
+ const createFuse = (data2, options2) => {
357
+ var _a2;
358
+ const _options = options2;
359
+ return new Fuse__default["default"]((_a2 = vueDemi.unref(data2)) != null ? _a2 : [], _options);
360
+ };
361
+ const fuse = vueDemi.ref(createFuse(data, (_a = vueDemi.unref(options)) == null ? void 0 : _a.fuseOptions));
362
+ vueDemi.watch(() => {
363
+ var _a2;
364
+ return (_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.fuseOptions;
365
+ }, (newOptions) => {
366
+ fuse.value = createFuse(data, newOptions);
367
+ }, { deep: true });
368
+ vueDemi.watch(() => vueDemi.unref(data), (newData) => {
369
+ fuse.value.setCollection(newData);
370
+ }, { deep: true });
371
+ const results = vueDemi.computed(() => {
372
+ var _a2, _b;
373
+ if (((_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.matchAllWhenSearchEmpty) && !vueDemi.unref(search))
374
+ return vueDemi.unref(data).map((item, index) => ({ item, refIndex: index }));
375
+ const limit = (_b = vueDemi.unref(options)) == null ? void 0 : _b.resultLimit;
376
+ return fuse.value.search(vueDemi.unref(search), limit ? { limit } : void 0);
377
+ });
378
+ return {
379
+ results
380
+ };
381
+ }
382
+
352
383
  function useJwt(encodedJwt, options = {}) {
353
384
  const encodedJwtRef = vueDemi.ref(encodedJwt);
354
385
  const {
@@ -416,6 +447,7 @@ exports.useAxios = useAxios;
416
447
  exports.useCookies = useCookies;
417
448
  exports.useDrauu = useDrauu;
418
449
  exports.useFocusTrap = useFocusTrap;
450
+ exports.useFuse = useFuse;
419
451
  exports.useJwt = useJwt;
420
452
  exports.useNProgress = useNProgress;
421
453
  exports.useQRCode = useQRCode;
package/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import { IncomingMessage } from 'http';
7
7
  import { Options, Drauu, Brush } from 'drauu';
8
8
  import { EventHookOn, MaybeElementRef, Fn } from '@vueuse/core';
9
9
  import { Options as Options$1, ActivateOptions, DeactivateOptions } from 'focus-trap';
10
+ import Fuse from 'fuse.js';
10
11
  import { MaybeRef } from '@vueuse/shared';
11
12
  import { JwtPayload, JwtHeader } from 'jwt-decode';
12
13
  import nprogress, { NProgressOptions } from 'nprogress';
@@ -34,7 +35,7 @@ interface UseAxiosReturn<T> {
34
35
  */
35
36
  aborted: Ref<boolean>;
36
37
  /**
37
- * Any erros that may have occurred
38
+ * Any errors that may have occurred
38
39
  */
39
40
  error: Ref<AxiosError<T> | undefined>;
40
41
  /**
@@ -174,6 +175,17 @@ interface UseFocusTrapReturn {
174
175
  */
175
176
  declare function useFocusTrap(target: MaybeElementRef, options?: UseFocusTrapOptions): UseFocusTrapReturn;
176
177
 
178
+ declare type FuseOptions<T> = Fuse.IFuseOptions<T>;
179
+ declare type UseFuseOptions<T> = {
180
+ fuseOptions?: FuseOptions<T>;
181
+ resultLimit?: number;
182
+ matchAllWhenSearchEmpty?: boolean;
183
+ };
184
+ declare function useFuse<DataItem>(search: MaybeRef<string>, data: MaybeRef<DataItem[]>, options?: MaybeRef<UseFuseOptions<DataItem>>): {
185
+ results: ComputedRef<Fuse.FuseResult<DataItem>[]>;
186
+ };
187
+ declare type UseFuseReturn = ReturnType<typeof useFuse>;
188
+
177
189
  interface JwtOptions<Fallback> {
178
190
  /**
179
191
  * Value returned when encounter error on decoding
@@ -222,4 +234,4 @@ declare function useNProgress(currentProgress?: MaybeRef<number | null | undefin
222
234
  */
223
235
  declare function useQRCode(text: MaybeRef<string>, options?: QRCode.QRCodeToDataURLOptions): vue_demi.Ref<string>;
224
236
 
225
- export { JwtOptions, JwtResult, UseAxiosReturn, UseDrauuOptions, UseDrauuReturn, UseFocusTrapOptions, UseFocusTrapReturn, createCookies, useAxios, useCookies, useDrauu, useFocusTrap, useJwt, useNProgress, useQRCode };
237
+ export { FuseOptions, JwtOptions, JwtResult, UseAxiosReturn, UseDrauuOptions, UseDrauuReturn, UseFocusTrapOptions, UseFocusTrapReturn, UseFuseOptions, UseFuseReturn, createCookies, useAxios, useCookies, useDrauu, useFocusTrap, useFuse, useJwt, useNProgress, useQRCode };
package/index.iife.js CHANGED
@@ -59,13 +59,14 @@
59
59
  window.VueDemi = VueDemi
60
60
  })(window)
61
61
  ;
62
- ;(function (exports, vueDemi, axios, shared, Cookie, drauu, core, focusTrap, jwt_decode, nprogress, QRCode) {
62
+ ;(function (exports, vueDemi, axios, shared, Cookie, drauu, core, focusTrap, Fuse, jwt_decode, nprogress, QRCode) {
63
63
  'use strict';
64
64
 
65
65
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
66
66
 
67
67
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
68
68
  var Cookie__default = /*#__PURE__*/_interopDefaultLegacy(Cookie);
69
+ var Fuse__default = /*#__PURE__*/_interopDefaultLegacy(Fuse);
69
70
  var jwt_decode__default = /*#__PURE__*/_interopDefaultLegacy(jwt_decode);
70
71
  var nprogress__default = /*#__PURE__*/_interopDefaultLegacy(nprogress);
71
72
  var QRCode__default = /*#__PURE__*/_interopDefaultLegacy(QRCode);
@@ -398,6 +399,35 @@
398
399
  };
399
400
  }
400
401
 
402
+ function useFuse(search, data, options) {
403
+ var _a;
404
+ const createFuse = (data2, options2) => {
405
+ var _a2;
406
+ const _options = options2;
407
+ return new Fuse__default["default"]((_a2 = vueDemi.unref(data2)) != null ? _a2 : [], _options);
408
+ };
409
+ const fuse = vueDemi.ref(createFuse(data, (_a = vueDemi.unref(options)) == null ? void 0 : _a.fuseOptions));
410
+ vueDemi.watch(() => {
411
+ var _a2;
412
+ return (_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.fuseOptions;
413
+ }, (newOptions) => {
414
+ fuse.value = createFuse(data, newOptions);
415
+ }, { deep: true });
416
+ vueDemi.watch(() => vueDemi.unref(data), (newData) => {
417
+ fuse.value.setCollection(newData);
418
+ }, { deep: true });
419
+ const results = vueDemi.computed(() => {
420
+ var _a2, _b;
421
+ if (((_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.matchAllWhenSearchEmpty) && !vueDemi.unref(search))
422
+ return vueDemi.unref(data).map((item, index) => ({ item, refIndex: index }));
423
+ const limit = (_b = vueDemi.unref(options)) == null ? void 0 : _b.resultLimit;
424
+ return fuse.value.search(vueDemi.unref(search), limit ? { limit } : void 0);
425
+ });
426
+ return {
427
+ results
428
+ };
429
+ }
430
+
401
431
  function useJwt(encodedJwt, options = {}) {
402
432
  const encodedJwtRef = vueDemi.ref(encodedJwt);
403
433
  const {
@@ -465,10 +495,11 @@
465
495
  exports.useCookies = useCookies;
466
496
  exports.useDrauu = useDrauu;
467
497
  exports.useFocusTrap = useFocusTrap;
498
+ exports.useFuse = useFuse;
468
499
  exports.useJwt = useJwt;
469
500
  exports.useNProgress = useNProgress;
470
501
  exports.useQRCode = useQRCode;
471
502
 
472
503
  Object.defineProperty(exports, '__esModule', { value: true });
473
504
 
474
- })(this.VueUse = this.VueUse || {}, VueDemi, axios, VueUse, UniversalCookie, Drauu, VueUse, focusTrap, jwt_decode, nprogress, QRCode);
505
+ })(this.VueUse = this.VueUse || {}, VueDemi, axios, VueUse, UniversalCookie, Drauu, VueUse, focusTrap, Fuse, jwt_decode, nprogress, QRCode);
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- (function(v){if(!v.VueDemi){var a={},p=v.Vue;if(p)if(p.version.slice(0,2)==="2."){var O=v.VueCompositionAPI;if(O){for(var m in O)a[m]=O[m];a.isVue2=!0,a.isVue3=!1,a.install=function(){},a.Vue=p,a.Vue2=p,a.version=p.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(p.version.slice(0,2)==="3."){for(var m in p)a[m]=p[m];a.isVue2=!1,a.isVue3=!0,a.install=function(){},a.Vue=p,a.Vue2=void 0,a.version=p.version,a.set=function(_,i,y){return Array.isArray(_)?(_.length=Math.max(_.length,i),_.splice(i,1,y),y):(_[i]=y,y)},a.del=function(_,i){if(Array.isArray(_)){_.splice(i,1);return}delete _[i]}}else console.error("[vue-demi] Vue version "+p.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");v.VueDemi=a}})(window),function(v,a,p,O,m,_,i,y,G,M,q){"use strict";function b(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var $=b(p),j=b(m),z=b(G),h=b(M),W=b(q),B=Object.defineProperty,K=Object.defineProperties,X=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,R=(t,r,e)=>r in t?B(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,x=(t,r)=>{for(var e in r||(r={}))Y.call(r,e)&&R(t,e,r[e]);if(S)for(var e of S(r))Z.call(r,e)&&R(t,e,r[e]);return t},D=(t,r)=>K(t,X(r));function ee(t,...r){let e={},n=$.default;r.length>0&&("request"in r[0]?n=r[0]:e=r[0]),r.length>1&&"request"in r[1]&&(n=r[1]);const u=a.shallowRef(),s=a.shallowRef(),f=a.ref(!1),c=a.ref(!0),o=a.ref(!1),P=a.shallowRef(),g=$.default.CancelToken.source(),w=d=>{f.value||!c.value||(g.cancel(d),o.value=!0,c.value=!1,f.value=!1)};return n(t,D(x({},e),{cancelToken:g.token})).then(d=>{u.value=d,s.value=d.data}).catch(d=>{P.value=d}).finally(()=>{c.value=!1,f.value=!0}),{response:u,data:s,error:P,finished:f,loading:c,isFinished:f,isLoading:c,cancel:w,canceled:o,aborted:o,abort:w}}var re=Object.defineProperty,A=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,ae=Object.prototype.propertyIsEnumerable,H=(t,r,e)=>r in t?re(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,L=(t,r)=>{for(var e in r||(r={}))te.call(r,e)&&H(t,e,r[e]);if(A)for(var e of A(r))ae.call(r,e)&&H(t,e,r[e]);return t};function ne(t){const r=new j.default(t?t.headers.cookie:null);return(e,{doNotParse:n=!1,autoUpdateDependencies:u=!1}={})=>I(e,{doNotParse:n,autoUpdateDependencies:u},r)}function I(t,{doNotParse:r=!1,autoUpdateDependencies:e=!1}={},n=new j.default){const u=e?[...t||[]]:t;let s=n.getAll({doNotParse:!0});const f=a.ref(0),c=()=>{const o=n.getAll({doNotParse:!0});oe(u||null,o,s)&&f.value++,s=o};return n.addChangeListener(c),O.tryOnScopeDispose(()=>{n.removeChangeListener(c)}),{get:(...o)=>(e&&u&&!u.includes(o[0])&&u.push(o[0]),f.value,n.get(o[0],L({doNotParse:r},o[1]))),getAll:(...o)=>(f.value,n.getAll(L({doNotParse:r},o[0]))),set:(...o)=>n.set(...o),remove:(...o)=>n.remove(...o),addChangeListener:(...o)=>n.addChangeListener(...o),removeChangeListener:(...o)=>n.removeChangeListener(...o)}}function oe(t,r,e){if(!t)return!0;for(const n of t)if(r[n]!==e[n])return!0;return!1}var le=Object.defineProperty,N=Object.getOwnPropertySymbols,ue=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable,T=(t,r,e)=>r in t?le(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,fe=(t,r)=>{for(var e in r||(r={}))ue.call(r,e)&&T(t,e,r[e]);if(N)for(var e of N(r))se.call(r,e)&&T(t,e,r[e]);return t};function ce(t,r){const e=a.ref();let n=[];const u=i.createEventHook(),s=i.createEventHook(),f=i.createEventHook(),c=i.createEventHook(),o=i.createEventHook(),P=a.ref(!1),g=a.ref(!1),w=a.ref(!1),d=a.ref(!1),E=a.ref({color:"black",size:3,arrowEnd:!1,cornerRadius:0,dasharray:void 0,fill:"transparent",mode:"draw"});a.watch(E,()=>{const l=e.value;l&&(l.brush=E.value)},{deep:!0});const ye=()=>{var l;return(l=e.value)==null?void 0:l.undo()},we=()=>{var l;return(l=e.value)==null?void 0:l.redo()},be=()=>{var l;return(l=e.value)==null?void 0:l.clear()},Ce=()=>{var l;return(l=e.value)==null?void 0:l.cancel()},Ve=l=>{var V;return(V=e.value)==null?void 0:V.load(l)},Ee=()=>{var l;return(l=e.value)==null?void 0:l.dump()},Q=()=>{var l;n.forEach(V=>V()),(l=e.value)==null||l.unmount()},J=()=>{e.value&&(P.value=e.value.canUndo(),g.value=e.value.canRedo(),w.value=e.value.altPressed,d.value=e.value.shiftPressed)};return a.watch(()=>i.unrefElement(t),l=>{!l||!(l instanceof SVGSVGElement)||(e.value&&Q(),e.value=_.createDrauu(fe({el:l},r)),J(),n=[e.value.on("canceled",()=>s.trigger()),e.value.on("committed",()=>f.trigger()),e.value.on("start",()=>c.trigger()),e.value.on("end",()=>o.trigger()),e.value.on("changed",()=>{J(),u.trigger()})])},{flush:"post"}),O.tryOnScopeDispose(()=>Q()),{drauuInstance:e,load:Ve,dump:Ee,clear:be,cancel:Ce,undo:ye,redo:we,canUndo:P,canRedo:g,brush:E,onChanged:u.on,onCommitted:f.on,onStart:c.on,onEnd:o.on,onCanceled:s.on}}var ie=Object.defineProperty,de=Object.defineProperties,ve=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,F=(t,r,e)=>r in t?ie(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,pe=(t,r)=>{for(var e in r||(r={}))U.call(r,e)&&F(t,e,r[e]);if(C)for(var e of C(r))k.call(r,e)&&F(t,e,r[e]);return t},_e=(t,r)=>de(t,ve(r)),he=(t,r)=>{var e={};for(var n in t)U.call(t,n)&&r.indexOf(n)<0&&(e[n]=t[n]);if(t!=null&&C)for(var n of C(t))r.indexOf(n)<0&&k.call(t,n)&&(e[n]=t[n]);return e};function Oe(t,r={}){let e;const n=r,{immediate:u}=n,s=he(n,["immediate"]),f=a.ref(!1),c=a.ref(!1),o=d=>e&&e.activate(d),P=d=>e&&e.deactivate(d),g=()=>{e&&(e.pause(),c.value=!0)},w=()=>{e&&(e.unpause(),c.value=!1)};return a.watch(()=>i.unrefElement(t),d=>{!d||(e=y.createFocusTrap(d,_e(pe({},s),{onActivate(){f.value=!0,r.onActivate&&r.onActivate()},onDeactivate(){f.value=!1,r.onDeactivate&&r.onDeactivate()}})),u&&o())},{flush:"post"}),i.tryOnScopeDispose(()=>P()),{hasFocus:f,isPaused:c,activate:o,deactivate:P,pause:g,unpause:w}}function Pe(t,r={}){const e=a.ref(t),{onError:n,fallbackValue:u=null}=r,s=(o,P)=>{try{return z.default(o,P)}catch(g){return n==null||n(g),u}},f=a.computed(()=>s(e.value,{header:!0})),c=a.computed(()=>s(e.value));return{header:f,payload:c}}function ge(t=null,r){const e=a.isRef(t)?t:a.ref(t),n=a.computed({set:s=>s?h.default.start():h.default.done(),get:()=>O.isNumber(e.value)&&e.value<1});r&&h.default.configure(r);const u=h.default.set;return h.default.set=s=>(e.value=s,u.call(h.default,s)),a.watchEffect(()=>{O.isNumber(e.value)&&u.call(h.default,e.value)}),O.tryOnScopeDispose(h.default.remove),{isLoading:n,progress:e,start:h.default.start,done:h.default.done,remove:()=>{e.value=null,h.default.remove()}}}function me(t,r){const e=a.ref(t),n=a.ref("");return a.watch(e,async u=>{e.value&&O.isClient&&(n.value=await W.default.toDataURL(u,r))},{immediate:!0}),n}v.createCookies=ne,v.useAxios=ee,v.useCookies=I,v.useDrauu=ce,v.useFocusTrap=Oe,v.useJwt=Pe,v.useNProgress=ge,v.useQRCode=me,Object.defineProperty(v,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,axios,VueUse,UniversalCookie,Drauu,VueUse,focusTrap,jwt_decode,nprogress,QRCode);
1
+ (function(d){if(!d.VueDemi){var n={},_=d.Vue;if(_)if(_.version.slice(0,2)==="2."){var g=d.VueCompositionAPI;if(g){for(var y in g)n[y]=g[y];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=_,n.Vue2=_,n.version=_.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(_.version.slice(0,2)==="3."){for(var y in _)n[y]=_[y];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=_,n.Vue2=void 0,n.version=_.version,n.set=function(O,v,m){return Array.isArray(O)?(O.length=Math.max(O.length,v),O.splice(v,1,m),m):(O[v]=m,m)},n.del=function(O,v){if(Array.isArray(O)){O.splice(v,1);return}delete O[v]}}else console.error("[vue-demi] Vue version "+_.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");d.VueDemi=n}})(window),function(d,n,_,g,y,O,v,m,G,M,W,q){"use strict";function b(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var $=b(_),S=b(y),z=b(G),B=b(M),P=b(W),K=b(q),X=Object.defineProperty,Y=Object.defineProperties,Z=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,x=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,A=(t,r,e)=>r in t?X(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,ee=(t,r)=>{for(var e in r||(r={}))x.call(r,e)&&A(t,e,r[e]);if(j)for(var e of j(r))D.call(r,e)&&A(t,e,r[e]);return t},re=(t,r)=>Y(t,Z(r));function te(t,...r){let e={},a=$.default;r.length>0&&("request"in r[0]?a=r[0]:e=r[0]),r.length>1&&"request"in r[1]&&(a=r[1]);const s=n.shallowRef(),f=n.shallowRef(),c=n.ref(!1),l=n.ref(!0),o=n.ref(!1),i=n.shallowRef(),h=$.default.CancelToken.source(),w=p=>{c.value||!l.value||(h.cancel(p),o.value=!0,l.value=!1,c.value=!1)};return a(t,re(ee({},e),{cancelToken:h.token})).then(p=>{s.value=p,f.value=p.data}).catch(p=>{i.value=p}).finally(()=>{l.value=!1,c.value=!0}),{response:s,data:f,error:i,finished:c,loading:l,isFinished:c,isLoading:l,cancel:w,canceled:o,aborted:o,abort:w}}var ne=Object.defineProperty,R=Object.getOwnPropertySymbols,ae=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable,F=(t,r,e)=>r in t?ne(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,L=(t,r)=>{for(var e in r||(r={}))ae.call(r,e)&&F(t,e,r[e]);if(R)for(var e of R(r))oe.call(r,e)&&F(t,e,r[e]);return t};function le(t){const r=new S.default(t?t.headers.cookie:null);return(e,{doNotParse:a=!1,autoUpdateDependencies:s=!1}={})=>H(e,{doNotParse:a,autoUpdateDependencies:s},r)}function H(t,{doNotParse:r=!1,autoUpdateDependencies:e=!1}={},a=new S.default){const s=e?[...t||[]]:t;let f=a.getAll({doNotParse:!0});const c=n.ref(0),l=()=>{const o=a.getAll({doNotParse:!0});ue(s||null,o,f)&&c.value++,f=o};return a.addChangeListener(l),g.tryOnScopeDispose(()=>{a.removeChangeListener(l)}),{get:(...o)=>(e&&s&&!s.includes(o[0])&&s.push(o[0]),c.value,a.get(o[0],L({doNotParse:r},o[1]))),getAll:(...o)=>(c.value,a.getAll(L({doNotParse:r},o[0]))),set:(...o)=>a.set(...o),remove:(...o)=>a.remove(...o),addChangeListener:(...o)=>a.addChangeListener(...o),removeChangeListener:(...o)=>a.removeChangeListener(...o)}}function ue(t,r,e){if(!t)return!0;for(const a of t)if(r[a]!==e[a])return!0;return!1}var se=Object.defineProperty,I=Object.getOwnPropertySymbols,fe=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,N=(t,r,e)=>r in t?se(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,ie=(t,r)=>{for(var e in r||(r={}))fe.call(r,e)&&N(t,e,r[e]);if(I)for(var e of I(r))ce.call(r,e)&&N(t,e,r[e]);return t};function de(t,r){const e=n.ref();let a=[];const s=v.createEventHook(),f=v.createEventHook(),c=v.createEventHook(),l=v.createEventHook(),o=v.createEventHook(),i=n.ref(!1),h=n.ref(!1),w=n.ref(!1),p=n.ref(!1),E=n.ref({color:"black",size:3,arrowEnd:!1,cornerRadius:0,dasharray:void 0,fill:"transparent",mode:"draw"});n.watch(E,()=>{const u=e.value;u&&(u.brush=E.value)},{deep:!0});const Ce=()=>{var u;return(u=e.value)==null?void 0:u.undo()},Ve=()=>{var u;return(u=e.value)==null?void 0:u.redo()},Ee=()=>{var u;return(u=e.value)==null?void 0:u.clear()},$e=()=>{var u;return(u=e.value)==null?void 0:u.cancel()},Se=u=>{var V;return(V=e.value)==null?void 0:V.load(u)},je=()=>{var u;return(u=e.value)==null?void 0:u.dump()},Q=()=>{var u;a.forEach(V=>V()),(u=e.value)==null||u.unmount()},J=()=>{e.value&&(i.value=e.value.canUndo(),h.value=e.value.canRedo(),w.value=e.value.altPressed,p.value=e.value.shiftPressed)};return n.watch(()=>v.unrefElement(t),u=>{!u||!(u instanceof SVGSVGElement)||(e.value&&Q(),e.value=O.createDrauu(ie({el:u},r)),J(),a=[e.value.on("canceled",()=>f.trigger()),e.value.on("committed",()=>c.trigger()),e.value.on("start",()=>l.trigger()),e.value.on("end",()=>o.trigger()),e.value.on("changed",()=>{J(),s.trigger()})])},{flush:"post"}),g.tryOnScopeDispose(()=>Q()),{drauuInstance:e,load:Se,dump:je,clear:Ee,cancel:$e,undo:Ce,redo:Ve,canUndo:i,canRedo:h,brush:E,onChanged:s.on,onCommitted:c.on,onStart:l.on,onEnd:o.on,onCanceled:f.on}}var ve=Object.defineProperty,pe=Object.defineProperties,_e=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,k=(t,r,e)=>r in t?ve(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,he=(t,r)=>{for(var e in r||(r={}))T.call(r,e)&&k(t,e,r[e]);if(C)for(var e of C(r))U.call(r,e)&&k(t,e,r[e]);return t},Oe=(t,r)=>pe(t,_e(r)),Pe=(t,r)=>{var e={};for(var a in t)T.call(t,a)&&r.indexOf(a)<0&&(e[a]=t[a]);if(t!=null&&C)for(var a of C(t))r.indexOf(a)<0&&U.call(t,a)&&(e[a]=t[a]);return e};function ge(t,r={}){let e;const a=r,{immediate:s}=a,f=Pe(a,["immediate"]),c=n.ref(!1),l=n.ref(!1),o=p=>e&&e.activate(p),i=p=>e&&e.deactivate(p),h=()=>{e&&(e.pause(),l.value=!0)},w=()=>{e&&(e.unpause(),l.value=!1)};return n.watch(()=>v.unrefElement(t),p=>{!p||(e=m.createFocusTrap(p,Oe(he({},f),{onActivate(){c.value=!0,r.onActivate&&r.onActivate()},onDeactivate(){c.value=!1,r.onDeactivate&&r.onDeactivate()}})),s&&o())},{flush:"post"}),v.tryOnScopeDispose(()=>i()),{hasFocus:c,isPaused:l,activate:o,deactivate:i,pause:h,unpause:w}}function we(t,r,e){var a;const s=(l,o)=>{var i;const h=o;return new z.default((i=n.unref(l))!=null?i:[],h)},f=n.ref(s(r,(a=n.unref(e))==null?void 0:a.fuseOptions));return n.watch(()=>{var l;return(l=n.unref(e))==null?void 0:l.fuseOptions},l=>{f.value=s(r,l)},{deep:!0}),n.watch(()=>n.unref(r),l=>{f.value.setCollection(l)},{deep:!0}),{results:n.computed(()=>{var l,o;if(((l=n.unref(e))==null?void 0:l.matchAllWhenSearchEmpty)&&!n.unref(t))return n.unref(r).map((h,w)=>({item:h,refIndex:w}));const i=(o=n.unref(e))==null?void 0:o.resultLimit;return f.value.search(n.unref(t),i?{limit:i}:void 0)})}}function ye(t,r={}){const e=n.ref(t),{onError:a,fallbackValue:s=null}=r,f=(o,i)=>{try{return B.default(o,i)}catch(h){return a==null||a(h),s}},c=n.computed(()=>f(e.value,{header:!0})),l=n.computed(()=>f(e.value));return{header:c,payload:l}}function me(t=null,r){const e=n.isRef(t)?t:n.ref(t),a=n.computed({set:f=>f?P.default.start():P.default.done(),get:()=>g.isNumber(e.value)&&e.value<1});r&&P.default.configure(r);const s=P.default.set;return P.default.set=f=>(e.value=f,s.call(P.default,f)),n.watchEffect(()=>{g.isNumber(e.value)&&s.call(P.default,e.value)}),g.tryOnScopeDispose(P.default.remove),{isLoading:a,progress:e,start:P.default.start,done:P.default.done,remove:()=>{e.value=null,P.default.remove()}}}function be(t,r){const e=n.ref(t),a=n.ref("");return n.watch(e,async s=>{e.value&&g.isClient&&(a.value=await K.default.toDataURL(s,r))},{immediate:!0}),a}d.createCookies=le,d.useAxios=te,d.useCookies=H,d.useDrauu=de,d.useFocusTrap=ge,d.useFuse=we,d.useJwt=ye,d.useNProgress=me,d.useQRCode=be,Object.defineProperty(d,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,axios,VueUse,UniversalCookie,Drauu,VueUse,focusTrap,Fuse,jwt_decode,nprogress,QRCode);
package/index.mjs CHANGED
@@ -1,10 +1,11 @@
1
- import { shallowRef, ref, watch, computed, isRef, watchEffect } from 'vue-demi';
1
+ import { shallowRef, ref, watch, unref, computed, isRef, watchEffect } from 'vue-demi';
2
2
  import axios from 'axios';
3
3
  import { tryOnScopeDispose, isNumber, isClient } from '@vueuse/shared';
4
4
  import Cookie from 'universal-cookie';
5
5
  import { createDrauu } from 'drauu';
6
6
  import { createEventHook, unrefElement, tryOnScopeDispose as tryOnScopeDispose$1 } from '@vueuse/core';
7
7
  import { createFocusTrap } from 'focus-trap';
8
+ import Fuse from 'fuse.js';
8
9
  import jwt_decode from 'jwt-decode';
9
10
  import nprogress from 'nprogress';
10
11
  import QRCode from 'qrcode';
@@ -337,6 +338,35 @@ function useFocusTrap(target, options = {}) {
337
338
  };
338
339
  }
339
340
 
341
+ function useFuse(search, data, options) {
342
+ var _a;
343
+ const createFuse = (data2, options2) => {
344
+ var _a2;
345
+ const _options = options2;
346
+ return new Fuse((_a2 = unref(data2)) != null ? _a2 : [], _options);
347
+ };
348
+ const fuse = ref(createFuse(data, (_a = unref(options)) == null ? void 0 : _a.fuseOptions));
349
+ watch(() => {
350
+ var _a2;
351
+ return (_a2 = unref(options)) == null ? void 0 : _a2.fuseOptions;
352
+ }, (newOptions) => {
353
+ fuse.value = createFuse(data, newOptions);
354
+ }, { deep: true });
355
+ watch(() => unref(data), (newData) => {
356
+ fuse.value.setCollection(newData);
357
+ }, { deep: true });
358
+ const results = computed(() => {
359
+ var _a2, _b;
360
+ if (((_a2 = unref(options)) == null ? void 0 : _a2.matchAllWhenSearchEmpty) && !unref(search))
361
+ return unref(data).map((item, index) => ({ item, refIndex: index }));
362
+ const limit = (_b = unref(options)) == null ? void 0 : _b.resultLimit;
363
+ return fuse.value.search(unref(search), limit ? { limit } : void 0);
364
+ });
365
+ return {
366
+ results
367
+ };
368
+ }
369
+
340
370
  function useJwt(encodedJwt, options = {}) {
341
371
  const encodedJwtRef = ref(encodedJwt);
342
372
  const {
@@ -399,4 +429,4 @@ function useQRCode(text, options) {
399
429
  return result;
400
430
  }
401
431
 
402
- export { createCookies, useAxios, useCookies, useDrauu, useFocusTrap, useJwt, useNProgress, useQRCode };
432
+ export { createCookies, useAxios, useCookies, useDrauu, useFocusTrap, useFuse, useJwt, useNProgress, useQRCode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/integrations",
3
- "version": "6.5.3",
3
+ "version": "6.6.1",
4
4
  "description": "Integration wrappers for utility libraries",
5
5
  "keywords": [
6
6
  "vue",
@@ -36,6 +36,14 @@
36
36
  "import": "./useFocusTrap.mjs",
37
37
  "require": "./useFocusTrap.cjs"
38
38
  },
39
+ "./useFocusTrap/component": {
40
+ "import": "./useFocusTrap/component.mjs",
41
+ "require": "./useFocusTrap/component.cjs"
42
+ },
43
+ "./useFuse": {
44
+ "import": "./useFuse.mjs",
45
+ "require": "./useFuse.cjs"
46
+ },
39
47
  "./useJwt": {
40
48
  "import": "./useJwt.mjs",
41
49
  "require": "./useJwt.cjs"
@@ -60,13 +68,14 @@
60
68
  },
61
69
  "homepage": "https://github.com/vueuse/vueuse/tree/main/packages/integrations#readme",
62
70
  "dependencies": {
63
- "@vueuse/core": "6.5.3",
71
+ "@vueuse/core": "6.6.1",
64
72
  "vue-demi": "*"
65
73
  },
66
74
  "optionalDependencies": {
67
- "axios": "^0.21.4",
68
- "drauu": "^0.2.0",
69
- "focus-trap": "^6.7.0",
75
+ "axios": "^0.23.0",
76
+ "drauu": "^0.2.1",
77
+ "focus-trap": "^6.7.1",
78
+ "fuse.js": "^6.4.6",
70
79
  "jwt-decode": "^3.1.2",
71
80
  "nprogress": "^0.2.0",
72
81
  "qrcode": "^1.4.4",
package/useAxios.d.ts CHANGED
@@ -23,7 +23,7 @@ interface UseAxiosReturn<T> {
23
23
  */
24
24
  aborted: Ref<boolean>;
25
25
  /**
26
- * Any erros that may have occurred
26
+ * Any errors that may have occurred
27
27
  */
28
28
  error: Ref<AxiosError<T> | undefined>;
29
29
  /**
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vueDemi = require('vue-demi');
6
+ var focusTrap = require('focus-trap');
7
+ var core = require('@vueuse/core');
8
+
9
+ const UseFocusTrap = vueDemi.defineComponent({
10
+ name: "UseFocusTrap",
11
+ props: ["as"],
12
+ setup(props, { slots }) {
13
+ let trap;
14
+ const target = vueDemi.ref();
15
+ const activate = () => trap && trap.activate();
16
+ const deactivate = () => trap && trap.deactivate();
17
+ vueDemi.watch(() => core.unrefElement(target), (el) => {
18
+ if (!el)
19
+ return;
20
+ trap = focusTrap.createFocusTrap(el, {});
21
+ activate();
22
+ }, { flush: "post" });
23
+ vueDemi.onUnmounted(() => deactivate());
24
+ return () => {
25
+ if (slots.default)
26
+ return vueDemi.h(props.as || "div", { ref: target }, slots.default());
27
+ };
28
+ }
29
+ });
30
+
31
+ exports.UseFocusTrap = UseFocusTrap;
@@ -0,0 +1,6 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import { RenderableComponent } from '@vueuse/core/types';
3
+
4
+ declare const UseFocusTrap: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
5
+
6
+ export { UseFocusTrap };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, ref, watch, onUnmounted, h } from 'vue-demi';
2
+ import { createFocusTrap } from 'focus-trap';
3
+ import { unrefElement } from '@vueuse/core';
4
+
5
+ const UseFocusTrap = defineComponent({
6
+ name: "UseFocusTrap",
7
+ props: ["as"],
8
+ setup(props, { slots }) {
9
+ let trap;
10
+ const target = ref();
11
+ const activate = () => trap && trap.activate();
12
+ const deactivate = () => trap && trap.deactivate();
13
+ watch(() => unrefElement(target), (el) => {
14
+ if (!el)
15
+ return;
16
+ trap = createFocusTrap(el, {});
17
+ activate();
18
+ }, { flush: "post" });
19
+ onUnmounted(() => deactivate());
20
+ return () => {
21
+ if (slots.default)
22
+ return h(props.as || "div", { ref: target }, slots.default());
23
+ };
24
+ }
25
+ });
26
+
27
+ export { UseFocusTrap };
package/useFuse.cjs ADDED
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Fuse = require('fuse.js');
6
+ var vueDemi = require('vue-demi');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var Fuse__default = /*#__PURE__*/_interopDefaultLegacy(Fuse);
11
+
12
+ function useFuse(search, data, options) {
13
+ var _a;
14
+ const createFuse = (data2, options2) => {
15
+ var _a2;
16
+ const _options = options2;
17
+ return new Fuse__default["default"]((_a2 = vueDemi.unref(data2)) != null ? _a2 : [], _options);
18
+ };
19
+ const fuse = vueDemi.ref(createFuse(data, (_a = vueDemi.unref(options)) == null ? void 0 : _a.fuseOptions));
20
+ vueDemi.watch(() => {
21
+ var _a2;
22
+ return (_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.fuseOptions;
23
+ }, (newOptions) => {
24
+ fuse.value = createFuse(data, newOptions);
25
+ }, { deep: true });
26
+ vueDemi.watch(() => vueDemi.unref(data), (newData) => {
27
+ fuse.value.setCollection(newData);
28
+ }, { deep: true });
29
+ const results = vueDemi.computed(() => {
30
+ var _a2, _b;
31
+ if (((_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.matchAllWhenSearchEmpty) && !vueDemi.unref(search))
32
+ return vueDemi.unref(data).map((item, index) => ({ item, refIndex: index }));
33
+ const limit = (_b = vueDemi.unref(options)) == null ? void 0 : _b.resultLimit;
34
+ return fuse.value.search(vueDemi.unref(search), limit ? { limit } : void 0);
35
+ });
36
+ return {
37
+ results
38
+ };
39
+ }
40
+
41
+ exports.useFuse = useFuse;
package/useFuse.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import Fuse from 'fuse.js';
2
+ import { ComputedRef } from 'vue-demi';
3
+ import { MaybeRef } from '@vueuse/shared';
4
+
5
+ declare type FuseOptions<T> = Fuse.IFuseOptions<T>;
6
+ declare type UseFuseOptions<T> = {
7
+ fuseOptions?: FuseOptions<T>;
8
+ resultLimit?: number;
9
+ matchAllWhenSearchEmpty?: boolean;
10
+ };
11
+ declare function useFuse<DataItem>(search: MaybeRef<string>, data: MaybeRef<DataItem[]>, options?: MaybeRef<UseFuseOptions<DataItem>>): {
12
+ results: ComputedRef<Fuse.FuseResult<DataItem>[]>;
13
+ };
14
+ declare type UseFuseReturn = ReturnType<typeof useFuse>;
15
+
16
+ export { FuseOptions, UseFuseOptions, UseFuseReturn, useFuse };
@@ -0,0 +1,102 @@
1
+ ;(function (window) {
2
+ if (window.VueDemi) {
3
+ return
4
+ }
5
+ var VueDemi = {}
6
+ var Vue = window.Vue
7
+ if (Vue) {
8
+ if (Vue.version.slice(0, 2) === '2.') {
9
+ var VueCompositionAPI = window.VueCompositionAPI
10
+ if (VueCompositionAPI) {
11
+ for (var key in VueCompositionAPI) {
12
+ VueDemi[key] = VueCompositionAPI[key]
13
+ }
14
+ VueDemi.isVue2 = true
15
+ VueDemi.isVue3 = false
16
+ VueDemi.install = function (){}
17
+ VueDemi.Vue = Vue
18
+ VueDemi.Vue2 = Vue
19
+ VueDemi.version = Vue.version
20
+ } else {
21
+ console.error(
22
+ '[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.'
23
+ )
24
+ }
25
+ } else if (Vue.version.slice(0, 2) === '3.') {
26
+ for (var key in Vue) {
27
+ VueDemi[key] = Vue[key]
28
+ }
29
+ VueDemi.isVue2 = false
30
+ VueDemi.isVue3 = true
31
+ VueDemi.install = function (){}
32
+ VueDemi.Vue = Vue
33
+ VueDemi.Vue2 = undefined
34
+ VueDemi.version = Vue.version
35
+ VueDemi.set = function(target, key, val) {
36
+ if (Array.isArray(target)) {
37
+ target.length = Math.max(target.length, key)
38
+ target.splice(key, 1, val)
39
+ return val
40
+ }
41
+ target[key] = val
42
+ return val
43
+ }
44
+ VueDemi.del = function(target, key) {
45
+ if (Array.isArray(target)) {
46
+ target.splice(key, 1)
47
+ return
48
+ }
49
+ delete target[key]
50
+ }
51
+ } else {
52
+ console.error('[vue-demi] Vue version ' + Vue.version + ' is unsupported.')
53
+ }
54
+ } else {
55
+ console.error(
56
+ '[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.'
57
+ )
58
+ }
59
+ window.VueDemi = VueDemi
60
+ })(window)
61
+ ;
62
+ ;(function (exports, Fuse, vueDemi) {
63
+ 'use strict';
64
+
65
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
66
+
67
+ var Fuse__default = /*#__PURE__*/_interopDefaultLegacy(Fuse);
68
+
69
+ function useFuse(search, data, options) {
70
+ var _a;
71
+ const createFuse = (data2, options2) => {
72
+ var _a2;
73
+ const _options = options2;
74
+ return new Fuse__default["default"]((_a2 = vueDemi.unref(data2)) != null ? _a2 : [], _options);
75
+ };
76
+ const fuse = vueDemi.ref(createFuse(data, (_a = vueDemi.unref(options)) == null ? void 0 : _a.fuseOptions));
77
+ vueDemi.watch(() => {
78
+ var _a2;
79
+ return (_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.fuseOptions;
80
+ }, (newOptions) => {
81
+ fuse.value = createFuse(data, newOptions);
82
+ }, { deep: true });
83
+ vueDemi.watch(() => vueDemi.unref(data), (newData) => {
84
+ fuse.value.setCollection(newData);
85
+ }, { deep: true });
86
+ const results = vueDemi.computed(() => {
87
+ var _a2, _b;
88
+ if (((_a2 = vueDemi.unref(options)) == null ? void 0 : _a2.matchAllWhenSearchEmpty) && !vueDemi.unref(search))
89
+ return vueDemi.unref(data).map((item, index) => ({ item, refIndex: index }));
90
+ const limit = (_b = vueDemi.unref(options)) == null ? void 0 : _b.resultLimit;
91
+ return fuse.value.search(vueDemi.unref(search), limit ? { limit } : void 0);
92
+ });
93
+ return {
94
+ results
95
+ };
96
+ }
97
+
98
+ exports.useFuse = useFuse;
99
+
100
+ Object.defineProperty(exports, '__esModule', { value: true });
101
+
102
+ })(this.VueUse = this.VueUse || {}, Fuse, VueDemi);
@@ -0,0 +1 @@
1
+ (function(o){if(!o.VueDemi){var r={},e=o.Vue;if(e)if(e.version.slice(0,2)==="2."){var l=o.VueCompositionAPI;if(l){for(var t in l)r[t]=l[t];r.isVue2=!0,r.isVue3=!1,r.install=function(){},r.Vue=e,r.Vue2=e,r.version=e.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(e.version.slice(0,2)==="3."){for(var t in e)r[t]=e[t];r.isVue2=!1,r.isVue3=!0,r.install=function(){},r.Vue=e,r.Vue2=void 0,r.version=e.version,r.set=function(n,u,i){return Array.isArray(n)?(n.length=Math.max(n.length,u),n.splice(u,1,i),i):(n[u]=i,i)},r.del=function(n,u){if(Array.isArray(n)){n.splice(u,1);return}delete n[u]}}else console.error("[vue-demi] Vue version "+e.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");o.VueDemi=r}})(window),function(o,r,e){"use strict";function l(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var t=l(r);function n(u,i,c){var V;const p=(s,a)=>{var f;const v=a;return new t.default((f=e.unref(s))!=null?f:[],v)},d=e.ref(p(i,(V=e.unref(c))==null?void 0:V.fuseOptions));return e.watch(()=>{var s;return(s=e.unref(c))==null?void 0:s.fuseOptions},s=>{d.value=p(i,s)},{deep:!0}),e.watch(()=>e.unref(i),s=>{d.value.setCollection(s)},{deep:!0}),{results:e.computed(()=>{var s,a;if(((s=e.unref(c))==null?void 0:s.matchAllWhenSearchEmpty)&&!e.unref(u))return e.unref(i).map((v,_)=>({item:v,refIndex:_}));const f=(a=e.unref(c))==null?void 0:a.resultLimit;return d.value.search(e.unref(u),f?{limit:f}:void 0)})}}o.useFuse=n,Object.defineProperty(o,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},Fuse,VueDemi);
package/useFuse.mjs ADDED
@@ -0,0 +1,33 @@
1
+ import Fuse from 'fuse.js';
2
+ import { ref, unref, watch, computed } from 'vue-demi';
3
+
4
+ function useFuse(search, data, options) {
5
+ var _a;
6
+ const createFuse = (data2, options2) => {
7
+ var _a2;
8
+ const _options = options2;
9
+ return new Fuse((_a2 = unref(data2)) != null ? _a2 : [], _options);
10
+ };
11
+ const fuse = ref(createFuse(data, (_a = unref(options)) == null ? void 0 : _a.fuseOptions));
12
+ watch(() => {
13
+ var _a2;
14
+ return (_a2 = unref(options)) == null ? void 0 : _a2.fuseOptions;
15
+ }, (newOptions) => {
16
+ fuse.value = createFuse(data, newOptions);
17
+ }, { deep: true });
18
+ watch(() => unref(data), (newData) => {
19
+ fuse.value.setCollection(newData);
20
+ }, { deep: true });
21
+ const results = computed(() => {
22
+ var _a2, _b;
23
+ if (((_a2 = unref(options)) == null ? void 0 : _a2.matchAllWhenSearchEmpty) && !unref(search))
24
+ return unref(data).map((item, index) => ({ item, refIndex: index }));
25
+ const limit = (_b = unref(options)) == null ? void 0 : _b.resultLimit;
26
+ return fuse.value.search(unref(search), limit ? { limit } : void 0);
27
+ });
28
+ return {
29
+ results
30
+ };
31
+ }
32
+
33
+ export { useFuse };