@vueuse/integrations 10.2.1 → 10.4.0

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.
Files changed (89) hide show
  1. package/index.cjs +62 -214
  2. package/index.d.cts +427 -0
  3. package/index.d.mts +427 -0
  4. package/index.d.ts +8 -18
  5. package/index.iife.js +62 -214
  6. package/index.iife.min.js +1 -1
  7. package/index.mjs +64 -216
  8. package/package.json +10 -26
  9. package/useAsyncValidator/component.cjs +5 -29
  10. package/useAsyncValidator/component.d.cts +27 -0
  11. package/useAsyncValidator/component.d.mts +27 -0
  12. package/useAsyncValidator/component.mjs +5 -29
  13. package/useAsyncValidator.cjs +5 -29
  14. package/useAsyncValidator.d.cts +48 -0
  15. package/useAsyncValidator.d.mts +48 -0
  16. package/useAsyncValidator.d.ts +1 -1
  17. package/useAsyncValidator.iife.js +5 -29
  18. package/useAsyncValidator.iife.min.js +1 -1
  19. package/useAsyncValidator.mjs +5 -29
  20. package/useAxios.cjs +8 -25
  21. package/useAxios.d.cts +94 -0
  22. package/useAxios.d.mts +94 -0
  23. package/useAxios.d.ts +1 -1
  24. package/useAxios.iife.js +8 -25
  25. package/useAxios.iife.min.js +1 -1
  26. package/useAxios.mjs +8 -25
  27. package/useChangeCase.d.cts +24 -0
  28. package/useChangeCase.d.mts +24 -0
  29. package/useChangeCase.d.ts +2 -14
  30. package/useCookies.cjs +2 -18
  31. package/useCookies.d.cts +54 -0
  32. package/useCookies.d.mts +54 -0
  33. package/useCookies.iife.js +2 -18
  34. package/useCookies.iife.min.js +1 -1
  35. package/useCookies.mjs +2 -18
  36. package/useDrauu.cjs +8 -43
  37. package/useDrauu.d.cts +32 -0
  38. package/useDrauu.d.mts +32 -0
  39. package/useDrauu.d.ts +1 -1
  40. package/useDrauu.iife.js +8 -43
  41. package/useDrauu.iife.min.js +1 -1
  42. package/useDrauu.mjs +8 -43
  43. package/useFocusTrap/component.d.cts +17 -0
  44. package/useFocusTrap/component.d.mts +17 -0
  45. package/useFocusTrap/component.d.ts +1 -1
  46. package/useFocusTrap.cjs +4 -34
  47. package/useFocusTrap.d.cts +57 -0
  48. package/useFocusTrap.d.mts +57 -0
  49. package/useFocusTrap.d.ts +1 -1
  50. package/useFocusTrap.iife.js +4 -34
  51. package/useFocusTrap.iife.min.js +1 -1
  52. package/useFocusTrap.mjs +4 -34
  53. package/useFuse.cjs +5 -9
  54. package/useFuse.d.cts +25 -0
  55. package/useFuse.d.mts +25 -0
  56. package/useFuse.d.ts +1 -1
  57. package/useFuse.iife.js +5 -9
  58. package/useFuse.iife.min.js +1 -1
  59. package/useFuse.mjs +5 -9
  60. package/useIDBKeyval.cjs +17 -19
  61. package/useIDBKeyval.d.cts +43 -0
  62. package/useIDBKeyval.d.mts +43 -0
  63. package/useIDBKeyval.d.ts +8 -6
  64. package/useIDBKeyval.iife.js +18 -21
  65. package/useIDBKeyval.iife.min.js +1 -1
  66. package/useIDBKeyval.mjs +18 -20
  67. package/useJwt.cjs +1 -1
  68. package/useJwt.d.cts +29 -0
  69. package/useJwt.d.mts +29 -0
  70. package/useJwt.d.ts +1 -1
  71. package/useJwt.iife.js +1 -1
  72. package/useJwt.iife.min.js +1 -1
  73. package/useJwt.mjs +1 -1
  74. package/useNProgress.d.cts +20 -0
  75. package/useNProgress.d.mts +20 -0
  76. package/useNProgress.d.ts +1 -1
  77. package/useQRCode.d.cts +14 -0
  78. package/useQRCode.d.mts +14 -0
  79. package/useSortable/component.cjs +13 -36
  80. package/useSortable/component.d.cts +40 -0
  81. package/useSortable/component.d.mts +40 -0
  82. package/useSortable/component.mjs +14 -37
  83. package/useSortable.cjs +13 -36
  84. package/useSortable.d.cts +26 -0
  85. package/useSortable.d.mts +26 -0
  86. package/useSortable.d.ts +1 -1
  87. package/useSortable.iife.js +13 -36
  88. package/useSortable.iife.min.js +1 -1
  89. package/useSortable.mjs +14 -37
@@ -1 +1 @@
1
- var VueDemi=function(n,r,d){if(n.install)return n;if(!r)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),n;if(r.version.slice(0,4)==="2.7."){let t=function(o,e){var s,l={},a={config:r.config,use:r.use.bind(r),mixin:r.mixin.bind(r),component:r.component.bind(r),provide:function(c,f){return l[c]=f,this},directive:function(c,f){return f?(r.directive(c,f),a):r.directive(c)},mount:function(c,f){return s||(s=new r(Object.assign({propsData:e},o,{provide:Object.assign(l,o.provide)})),s.$mount(c,f),s)},unmount:function(){s&&(s.$destroy(),s=void 0)}};return a};var u=t;for(var i in r)n[i]=r[i];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=r,n.Vue2=r,n.version=r.version,n.warn=r.util.warn,n.hasInjectionContext=()=>!!n.getCurrentInstance(),n.createApp=t}else if(r.version.slice(0,2)==="2.")if(d){for(var i in d)n[i]=d[i];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=r,n.Vue2=r,n.version=r.version,n.hasInjectionContext=()=>!!n.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(r.version.slice(0,2)==="3."){for(var i in r)n[i]=r[i];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=r,n.Vue2=void 0,n.version=r.version,n.set=function(t,o,e){return Array.isArray(t)?(t.length=Math.max(t.length,o),t.splice(o,1,e),e):(t[o]=e,e)},n.del=function(t,o){if(Array.isArray(t)){t.splice(o,1);return}delete t[o]}}else console.error("[vue-demi] Vue version "+r.version+" is unsupported.");return n}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(n,r,d,i){"use strict";function u(t,o={}){const{onError:e,fallbackValue:s=null}=o,l=(f,v)=>{try{return i(f,v)}catch(p){return e?.(p),s}},a=r.computed(()=>l(d.toValue(t),{header:!0})),c=r.computed(()=>l(d.toValue(t)));return{header:a,payload:c}}n.useJwt=u})(this.VueUse=this.VueUse||{},VueDemi,VueUse,jwt_decode);
1
+ var VueDemi=function(n,r,d){if(n.install)return n;if(!r)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),n;if(r.version.slice(0,4)==="2.7."){let t=function(o,e){var s,l={},a={config:r.config,use:r.use.bind(r),mixin:r.mixin.bind(r),component:r.component.bind(r),provide:function(c,f){return l[c]=f,this},directive:function(c,f){return f?(r.directive(c,f),a):r.directive(c)},mount:function(c,f){return s||(s=new r(Object.assign({propsData:e},o,{provide:Object.assign(l,o.provide)})),s.$mount(c,f),s)},unmount:function(){s&&(s.$destroy(),s=void 0)}};return a};var u=t;for(var i in r)n[i]=r[i];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=r,n.Vue2=r,n.version=r.version,n.warn=r.util.warn,n.hasInjectionContext=()=>!!n.getCurrentInstance(),n.createApp=t}else if(r.version.slice(0,2)==="2.")if(d){for(var i in d)n[i]=d[i];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=r,n.Vue2=r,n.version=r.version,n.hasInjectionContext=()=>!!n.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(r.version.slice(0,2)==="3."){for(var i in r)n[i]=r[i];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=r,n.Vue2=void 0,n.version=r.version,n.set=function(t,o,e){return Array.isArray(t)?(t.length=Math.max(t.length,o),t.splice(o,1,e),e):(t[o]=e,e)},n.del=function(t,o){if(Array.isArray(t)){t.splice(o,1);return}delete t[o]}}else console.error("[vue-demi] Vue version "+r.version+" is unsupported.");return n}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(n,r,d,i){"use strict";function u(t,o={}){const{onError:e,fallbackValue:s=null}=o,l=(f,p)=>{try{return i(f,p)}catch(v){return e?.(v),s}},a=r.computed(()=>l(d.toValue(t),{header:!0})),c=r.computed(()=>l(d.toValue(t)));return{header:a,payload:c}}n.useJwt=u})(this.VueUse=this.VueUse||{},VueDemi,VueUse,jwt_decode);
package/useJwt.mjs CHANGED
@@ -11,7 +11,7 @@ function useJwt(encodedJwt, options = {}) {
11
11
  try {
12
12
  return jwt_decode(encodedJwt2, options2);
13
13
  } catch (err) {
14
- onError == null ? void 0 : onError(err);
14
+ onError?.(err);
15
15
  return fallbackValue;
16
16
  }
17
17
  };
@@ -0,0 +1,20 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import nprogress, { NProgressOptions } from 'nprogress';
3
+ import { MaybeRefOrGetter } from '@vueuse/shared';
4
+
5
+ type UseNProgressOptions = Partial<NProgressOptions>;
6
+ /**
7
+ * Reactive progress bar.
8
+ *
9
+ * @see https://vueuse.org/useNProgress
10
+ */
11
+ declare function useNProgress(currentProgress?: MaybeRefOrGetter<number | null | undefined>, options?: UseNProgressOptions): {
12
+ isLoading: vue_demi.WritableComputedRef<boolean>;
13
+ progress: vue_demi.Ref<number | (() => number | null | undefined) | null | undefined>;
14
+ start: () => nprogress.NProgress;
15
+ done: (force?: boolean | undefined) => nprogress.NProgress;
16
+ remove: () => void;
17
+ };
18
+ type UseNProgressReturn = ReturnType<typeof useNProgress>;
19
+
20
+ export { type UseNProgressOptions, type UseNProgressReturn, useNProgress };
@@ -0,0 +1,20 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import nprogress, { NProgressOptions } from 'nprogress';
3
+ import { MaybeRefOrGetter } from '@vueuse/shared';
4
+
5
+ type UseNProgressOptions = Partial<NProgressOptions>;
6
+ /**
7
+ * Reactive progress bar.
8
+ *
9
+ * @see https://vueuse.org/useNProgress
10
+ */
11
+ declare function useNProgress(currentProgress?: MaybeRefOrGetter<number | null | undefined>, options?: UseNProgressOptions): {
12
+ isLoading: vue_demi.WritableComputedRef<boolean>;
13
+ progress: vue_demi.Ref<number | (() => number | null | undefined) | null | undefined>;
14
+ start: () => nprogress.NProgress;
15
+ done: (force?: boolean | undefined) => nprogress.NProgress;
16
+ remove: () => void;
17
+ };
18
+ type UseNProgressReturn = ReturnType<typeof useNProgress>;
19
+
20
+ export { type UseNProgressOptions, type UseNProgressReturn, useNProgress };
package/useNProgress.d.ts CHANGED
@@ -17,4 +17,4 @@ declare function useNProgress(currentProgress?: MaybeRefOrGetter<number | null |
17
17
  };
18
18
  type UseNProgressReturn = ReturnType<typeof useNProgress>;
19
19
 
20
- export { UseNProgressOptions, UseNProgressReturn, useNProgress };
20
+ export { type UseNProgressOptions, type UseNProgressReturn, useNProgress };
@@ -0,0 +1,14 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import { MaybeRefOrGetter } from '@vueuse/shared';
3
+ import QRCode from 'qrcode';
4
+
5
+ /**
6
+ * Wrapper for qrcode.
7
+ *
8
+ * @see https://vueuse.org/useQRCode
9
+ * @param text
10
+ * @param options
11
+ */
12
+ declare function useQRCode(text: MaybeRefOrGetter<string>, options?: QRCode.QRCodeToDataURLOptions): vue_demi.Ref<string>;
13
+
14
+ export { useQRCode };
@@ -0,0 +1,14 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import { MaybeRefOrGetter } from '@vueuse/shared';
3
+ import QRCode from 'qrcode';
4
+
5
+ /**
6
+ * Wrapper for qrcode.
7
+ *
8
+ * @see https://vueuse.org/useQRCode
9
+ * @param text
10
+ * @param options
11
+ */
12
+ declare function useQRCode(text: MaybeRefOrGetter<string>, options?: QRCode.QRCodeToDataURLOptions): vue_demi.Ref<string>;
13
+
14
+ export { useQRCode };
@@ -4,64 +4,41 @@ var vueDemi = require('vue-demi');
4
4
  var core = require('@vueuse/core');
5
5
  var Sortable = require('sortablejs');
6
6
 
7
- var __defProp = Object.defineProperty;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __objRest = (source, exclude) => {
24
- var target = {};
25
- for (var prop in source)
26
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
- target[prop] = source[prop];
28
- if (source != null && __getOwnPropSymbols)
29
- for (var prop of __getOwnPropSymbols(source)) {
30
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
- target[prop] = source[prop];
32
- }
33
- return target;
34
- };
35
7
  function useSortable(el, list, options = {}) {
36
8
  let sortable;
37
- const _a = options, { document = core.defaultDocument } = _a, resetOptions = __objRest(_a, ["document"]);
9
+ const { document = core.defaultDocument, ...resetOptions } = options;
38
10
  const defaultOptions = {
39
11
  onUpdate: (e) => {
40
12
  moveArrayElement(list, e.oldIndex, e.newIndex);
41
13
  }
42
14
  };
43
15
  const start = () => {
44
- const target = typeof el === "string" ? document == null ? void 0 : document.querySelector(el) : core.unrefElement(el);
16
+ const target = typeof el === "string" ? document?.querySelector(el) : core.unrefElement(el);
45
17
  if (!target)
46
18
  return;
47
- sortable = new Sortable(target, __spreadValues(__spreadValues({}, defaultOptions), resetOptions));
19
+ sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });
48
20
  };
49
- const stop = () => sortable == null ? void 0 : sortable.destroy();
21
+ const stop = () => sortable?.destroy();
50
22
  const option = (name, value) => {
51
23
  if (value !== void 0)
52
- sortable == null ? void 0 : sortable.option(name, value);
24
+ sortable?.option(name, value);
53
25
  else
54
- return sortable == null ? void 0 : sortable.option(name);
26
+ return sortable?.option(name);
55
27
  };
56
28
  core.tryOnMounted(start);
57
29
  core.tryOnScopeDispose(stop);
58
30
  return { stop, start, option };
59
31
  }
60
32
  function moveArrayElement(list, from, to) {
61
- const array = core.toValue(list);
33
+ const _valueIsRef = vueDemi.isRef(list);
34
+ const array = _valueIsRef ? [...core.toValue(list)] : core.toValue(list);
62
35
  if (to >= 0 && to < array.length) {
63
36
  const element = array.splice(from, 1)[0];
64
- vueDemi.nextTick(() => array.splice(to, 0, element));
37
+ vueDemi.nextTick(() => {
38
+ array.splice(to, 0, element);
39
+ if (_valueIsRef)
40
+ list.value = array;
41
+ });
65
42
  }
66
43
  }
67
44
 
@@ -0,0 +1,40 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import { PropType } from 'vue-demi';
3
+ import { ConfigurableDocument } from '@vueuse/core';
4
+ import { Options } from 'sortablejs';
5
+
6
+ type UseSortableOptions = Options & ConfigurableDocument;
7
+
8
+ declare const UseSortable: vue_demi.DefineComponent<{
9
+ modelValue: {
10
+ type: PropType<any[]>;
11
+ required: true;
12
+ };
13
+ tag: {
14
+ type: StringConstructor;
15
+ default: string;
16
+ };
17
+ options: {
18
+ type: PropType<UseSortableOptions>;
19
+ required: true;
20
+ };
21
+ }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
22
+ [key: string]: any;
23
+ }> | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
24
+ modelValue: {
25
+ type: PropType<any[]>;
26
+ required: true;
27
+ };
28
+ tag: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ options: {
33
+ type: PropType<UseSortableOptions>;
34
+ required: true;
35
+ };
36
+ }>>, {
37
+ tag: string;
38
+ }, {}>;
39
+
40
+ export { UseSortable };
@@ -0,0 +1,40 @@
1
+ import * as vue_demi from 'vue-demi';
2
+ import { PropType } from 'vue-demi';
3
+ import { ConfigurableDocument } from '@vueuse/core';
4
+ import { Options } from 'sortablejs';
5
+
6
+ type UseSortableOptions = Options & ConfigurableDocument;
7
+
8
+ declare const UseSortable: vue_demi.DefineComponent<{
9
+ modelValue: {
10
+ type: PropType<any[]>;
11
+ required: true;
12
+ };
13
+ tag: {
14
+ type: StringConstructor;
15
+ default: string;
16
+ };
17
+ options: {
18
+ type: PropType<UseSortableOptions>;
19
+ required: true;
20
+ };
21
+ }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
22
+ [key: string]: any;
23
+ }> | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
24
+ modelValue: {
25
+ type: PropType<any[]>;
26
+ required: true;
27
+ };
28
+ tag: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ options: {
33
+ type: PropType<UseSortableOptions>;
34
+ required: true;
35
+ };
36
+ }>>, {
37
+ tag: string;
38
+ }, {}>;
39
+
40
+ export { UseSortable };
@@ -1,65 +1,42 @@
1
- import { nextTick, defineComponent, ref, reactive, h } from 'vue-demi';
1
+ import { isRef, nextTick, defineComponent, ref, reactive, h } from 'vue-demi';
2
2
  import { tryOnMounted, tryOnScopeDispose, unrefElement, defaultDocument, toValue, useVModel } from '@vueuse/core';
3
3
  import Sortable from 'sortablejs';
4
4
 
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __objRest = (source, exclude) => {
22
- var target = {};
23
- for (var prop in source)
24
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
- target[prop] = source[prop];
26
- if (source != null && __getOwnPropSymbols)
27
- for (var prop of __getOwnPropSymbols(source)) {
28
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
- target[prop] = source[prop];
30
- }
31
- return target;
32
- };
33
5
  function useSortable(el, list, options = {}) {
34
6
  let sortable;
35
- const _a = options, { document = defaultDocument } = _a, resetOptions = __objRest(_a, ["document"]);
7
+ const { document = defaultDocument, ...resetOptions } = options;
36
8
  const defaultOptions = {
37
9
  onUpdate: (e) => {
38
10
  moveArrayElement(list, e.oldIndex, e.newIndex);
39
11
  }
40
12
  };
41
13
  const start = () => {
42
- const target = typeof el === "string" ? document == null ? void 0 : document.querySelector(el) : unrefElement(el);
14
+ const target = typeof el === "string" ? document?.querySelector(el) : unrefElement(el);
43
15
  if (!target)
44
16
  return;
45
- sortable = new Sortable(target, __spreadValues(__spreadValues({}, defaultOptions), resetOptions));
17
+ sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });
46
18
  };
47
- const stop = () => sortable == null ? void 0 : sortable.destroy();
19
+ const stop = () => sortable?.destroy();
48
20
  const option = (name, value) => {
49
21
  if (value !== void 0)
50
- sortable == null ? void 0 : sortable.option(name, value);
22
+ sortable?.option(name, value);
51
23
  else
52
- return sortable == null ? void 0 : sortable.option(name);
24
+ return sortable?.option(name);
53
25
  };
54
26
  tryOnMounted(start);
55
27
  tryOnScopeDispose(stop);
56
28
  return { stop, start, option };
57
29
  }
58
30
  function moveArrayElement(list, from, to) {
59
- const array = toValue(list);
31
+ const _valueIsRef = isRef(list);
32
+ const array = _valueIsRef ? [...toValue(list)] : toValue(list);
60
33
  if (to >= 0 && to < array.length) {
61
34
  const element = array.splice(from, 1)[0];
62
- nextTick(() => array.splice(to, 0, element));
35
+ nextTick(() => {
36
+ array.splice(to, 0, element);
37
+ if (_valueIsRef)
38
+ list.value = array;
39
+ });
63
40
  }
64
41
  }
65
42
 
package/useSortable.cjs CHANGED
@@ -4,64 +4,41 @@ var core = require('@vueuse/core');
4
4
  var Sortable = require('sortablejs');
5
5
  var vueDemi = require('vue-demi');
6
6
 
7
- var __defProp = Object.defineProperty;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __objRest = (source, exclude) => {
24
- var target = {};
25
- for (var prop in source)
26
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
- target[prop] = source[prop];
28
- if (source != null && __getOwnPropSymbols)
29
- for (var prop of __getOwnPropSymbols(source)) {
30
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
- target[prop] = source[prop];
32
- }
33
- return target;
34
- };
35
7
  function useSortable(el, list, options = {}) {
36
8
  let sortable;
37
- const _a = options, { document = core.defaultDocument } = _a, resetOptions = __objRest(_a, ["document"]);
9
+ const { document = core.defaultDocument, ...resetOptions } = options;
38
10
  const defaultOptions = {
39
11
  onUpdate: (e) => {
40
12
  moveArrayElement(list, e.oldIndex, e.newIndex);
41
13
  }
42
14
  };
43
15
  const start = () => {
44
- const target = typeof el === "string" ? document == null ? void 0 : document.querySelector(el) : core.unrefElement(el);
16
+ const target = typeof el === "string" ? document?.querySelector(el) : core.unrefElement(el);
45
17
  if (!target)
46
18
  return;
47
- sortable = new Sortable(target, __spreadValues(__spreadValues({}, defaultOptions), resetOptions));
19
+ sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });
48
20
  };
49
- const stop = () => sortable == null ? void 0 : sortable.destroy();
21
+ const stop = () => sortable?.destroy();
50
22
  const option = (name, value) => {
51
23
  if (value !== void 0)
52
- sortable == null ? void 0 : sortable.option(name, value);
24
+ sortable?.option(name, value);
53
25
  else
54
- return sortable == null ? void 0 : sortable.option(name);
26
+ return sortable?.option(name);
55
27
  };
56
28
  core.tryOnMounted(start);
57
29
  core.tryOnScopeDispose(stop);
58
30
  return { stop, start, option };
59
31
  }
60
32
  function moveArrayElement(list, from, to) {
61
- const array = core.toValue(list);
33
+ const _valueIsRef = vueDemi.isRef(list);
34
+ const array = _valueIsRef ? [...core.toValue(list)] : core.toValue(list);
62
35
  if (to >= 0 && to < array.length) {
63
36
  const element = array.splice(from, 1)[0];
64
- vueDemi.nextTick(() => array.splice(to, 0, element));
37
+ vueDemi.nextTick(() => {
38
+ array.splice(to, 0, element);
39
+ if (_valueIsRef)
40
+ list.value = array;
41
+ });
65
42
  }
66
43
  }
67
44
 
@@ -0,0 +1,26 @@
1
+ import { ConfigurableDocument, MaybeRefOrGetter } from '@vueuse/core';
2
+ import Sortable, { Options } from 'sortablejs';
3
+
4
+ interface UseSortableReturn {
5
+ /**
6
+ * start sortable instance
7
+ */
8
+ start: () => void;
9
+ /**
10
+ * destroy sortable instance
11
+ */
12
+ stop: () => void;
13
+ /**
14
+ * Options getter/setter
15
+ * @param name a Sortable.Options property.
16
+ * @param value a value.
17
+ */
18
+ option<K extends keyof Sortable.Options>(name: K, value: Sortable.Options[K]): void;
19
+ option<K extends keyof Sortable.Options>(name: K): Sortable.Options[K];
20
+ }
21
+ type UseSortableOptions = Options & ConfigurableDocument;
22
+ declare function useSortable<T>(selector: string, list: MaybeRefOrGetter<T[]>, options?: UseSortableOptions): UseSortableReturn;
23
+ declare function useSortable<T>(el: MaybeRefOrGetter<HTMLElement | null | undefined>, list: MaybeRefOrGetter<T[]>, options?: UseSortableOptions): UseSortableReturn;
24
+ declare function moveArrayElement<T>(list: MaybeRefOrGetter<T[]>, from: number, to: number): void;
25
+
26
+ export { type UseSortableOptions, type UseSortableReturn, moveArrayElement, useSortable };
@@ -0,0 +1,26 @@
1
+ import { ConfigurableDocument, MaybeRefOrGetter } from '@vueuse/core';
2
+ import Sortable, { Options } from 'sortablejs';
3
+
4
+ interface UseSortableReturn {
5
+ /**
6
+ * start sortable instance
7
+ */
8
+ start: () => void;
9
+ /**
10
+ * destroy sortable instance
11
+ */
12
+ stop: () => void;
13
+ /**
14
+ * Options getter/setter
15
+ * @param name a Sortable.Options property.
16
+ * @param value a value.
17
+ */
18
+ option<K extends keyof Sortable.Options>(name: K, value: Sortable.Options[K]): void;
19
+ option<K extends keyof Sortable.Options>(name: K): Sortable.Options[K];
20
+ }
21
+ type UseSortableOptions = Options & ConfigurableDocument;
22
+ declare function useSortable<T>(selector: string, list: MaybeRefOrGetter<T[]>, options?: UseSortableOptions): UseSortableReturn;
23
+ declare function useSortable<T>(el: MaybeRefOrGetter<HTMLElement | null | undefined>, list: MaybeRefOrGetter<T[]>, options?: UseSortableOptions): UseSortableReturn;
24
+ declare function moveArrayElement<T>(list: MaybeRefOrGetter<T[]>, from: number, to: number): void;
25
+
26
+ export { type UseSortableOptions, type UseSortableReturn, moveArrayElement, useSortable };
package/useSortable.d.ts CHANGED
@@ -23,4 +23,4 @@ declare function useSortable<T>(selector: string, list: MaybeRefOrGetter<T[]>, o
23
23
  declare function useSortable<T>(el: MaybeRefOrGetter<HTMLElement | null | undefined>, list: MaybeRefOrGetter<T[]>, options?: UseSortableOptions): UseSortableReturn;
24
24
  declare function moveArrayElement<T>(list: MaybeRefOrGetter<T[]>, from: number, to: number): void;
25
25
 
26
- export { UseSortableOptions, UseSortableReturn, moveArrayElement, useSortable };
26
+ export { type UseSortableOptions, type UseSortableReturn, moveArrayElement, useSortable };
@@ -117,64 +117,41 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
117
117
  ;(function (exports, core, Sortable, vueDemi) {
118
118
  'use strict';
119
119
 
120
- var __defProp = Object.defineProperty;
121
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
122
- var __hasOwnProp = Object.prototype.hasOwnProperty;
123
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
124
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
125
- var __spreadValues = (a, b) => {
126
- for (var prop in b || (b = {}))
127
- if (__hasOwnProp.call(b, prop))
128
- __defNormalProp(a, prop, b[prop]);
129
- if (__getOwnPropSymbols)
130
- for (var prop of __getOwnPropSymbols(b)) {
131
- if (__propIsEnum.call(b, prop))
132
- __defNormalProp(a, prop, b[prop]);
133
- }
134
- return a;
135
- };
136
- var __objRest = (source, exclude) => {
137
- var target = {};
138
- for (var prop in source)
139
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
140
- target[prop] = source[prop];
141
- if (source != null && __getOwnPropSymbols)
142
- for (var prop of __getOwnPropSymbols(source)) {
143
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
144
- target[prop] = source[prop];
145
- }
146
- return target;
147
- };
148
120
  function useSortable(el, list, options = {}) {
149
121
  let sortable;
150
- const _a = options, { document = core.defaultDocument } = _a, resetOptions = __objRest(_a, ["document"]);
122
+ const { document = core.defaultDocument, ...resetOptions } = options;
151
123
  const defaultOptions = {
152
124
  onUpdate: (e) => {
153
125
  moveArrayElement(list, e.oldIndex, e.newIndex);
154
126
  }
155
127
  };
156
128
  const start = () => {
157
- const target = typeof el === "string" ? document == null ? void 0 : document.querySelector(el) : core.unrefElement(el);
129
+ const target = typeof el === "string" ? document?.querySelector(el) : core.unrefElement(el);
158
130
  if (!target)
159
131
  return;
160
- sortable = new Sortable(target, __spreadValues(__spreadValues({}, defaultOptions), resetOptions));
132
+ sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });
161
133
  };
162
- const stop = () => sortable == null ? void 0 : sortable.destroy();
134
+ const stop = () => sortable?.destroy();
163
135
  const option = (name, value) => {
164
136
  if (value !== void 0)
165
- sortable == null ? void 0 : sortable.option(name, value);
137
+ sortable?.option(name, value);
166
138
  else
167
- return sortable == null ? void 0 : sortable.option(name);
139
+ return sortable?.option(name);
168
140
  };
169
141
  core.tryOnMounted(start);
170
142
  core.tryOnScopeDispose(stop);
171
143
  return { stop, start, option };
172
144
  }
173
145
  function moveArrayElement(list, from, to) {
174
- const array = core.toValue(list);
146
+ const _valueIsRef = vueDemi.isRef(list);
147
+ const array = _valueIsRef ? [...core.toValue(list)] : core.toValue(list);
175
148
  if (to >= 0 && to < array.length) {
176
149
  const element = array.splice(from, 1)[0];
177
- vueDemi.nextTick(() => array.splice(to, 0, element));
150
+ vueDemi.nextTick(() => {
151
+ array.splice(to, 0, element);
152
+ if (_valueIsRef)
153
+ list.value = array;
154
+ });
178
155
  }
179
156
  }
180
157
 
@@ -1 +1 @@
1
- var VueDemi=function(n,t,u){if(n.install)return n;if(!t)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),n;if(t.version.slice(0,4)==="2.7."){let s=function(f,c){var l,y={},b={config:t.config,use:t.use.bind(t),mixin:t.mixin.bind(t),component:t.component.bind(t),provide:function(p,d){return y[p]=d,this},directive:function(p,d){return d?(t.directive(p,d),b):t.directive(p)},mount:function(p,d){return l||(l=new t(Object.assign({propsData:c},f,{provide:Object.assign(y,f.provide)})),l.$mount(p,d),l)},unmount:function(){l&&(l.$destroy(),l=void 0)}};return b};var h=s;for(var a in t)n[a]=t[a];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=t,n.Vue2=t,n.version=t.version,n.warn=t.util.warn,n.hasInjectionContext=()=>!!n.getCurrentInstance(),n.createApp=s}else if(t.version.slice(0,2)==="2.")if(u){for(var a in u)n[a]=u[a];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=t,n.Vue2=t,n.version=t.version,n.hasInjectionContext=()=>!!n.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(t.version.slice(0,2)==="3."){for(var a in t)n[a]=t[a];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=t,n.Vue2=void 0,n.version=t.version,n.set=function(s,f,c){return Array.isArray(s)?(s.length=Math.max(s.length,f),s.splice(f,1,c),c):(s[f]=c,c)},n.del=function(s,f){if(Array.isArray(s)){s.splice(f,1);return}delete s[f]}}else console.error("[vue-demi] Vue version "+t.version+" is unsupported.");return n}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(n,t,u,a){"use strict";var h=Object.defineProperty,s=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,l=(r,i,o)=>i in r?h(r,i,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[i]=o,y=(r,i)=>{for(var o in i||(i={}))f.call(i,o)&&l(r,o,i[o]);if(s)for(var o of s(i))c.call(i,o)&&l(r,o,i[o]);return r},b=(r,i)=>{var o={};for(var e in r)f.call(r,e)&&i.indexOf(e)<0&&(o[e]=r[e]);if(r!=null&&s)for(var e of s(r))i.indexOf(e)<0&&c.call(r,e)&&(o[e]=r[e]);return o};function p(r,i,o={}){let e;const O=o,{document:_=t.defaultDocument}=O,A=b(O,["document"]),P={onUpdate:v=>{d(i,v.oldIndex,v.newIndex)}},w=()=>{const v=typeof r=="string"?_?.querySelector(r):t.unrefElement(r);v&&(e=new u(v,y(y({},P),A)))},I=()=>e?.destroy(),x=(v,g)=>{if(g!==void 0)e?.option(v,g);else return e?.option(v)};return t.tryOnMounted(w),t.tryOnScopeDispose(I),{stop:I,start:w,option:x}}function d(r,i,o){const e=t.toValue(r);if(o>=0&&o<e.length){const O=e.splice(i,1)[0];a.nextTick(()=>e.splice(o,0,O))}}n.moveArrayElement=d,n.useSortable=p})(this.VueUse=this.VueUse||{},VueUse,Sortable,VueDemi);
1
+ var VueDemi=function(n,t,u){if(n.install)return n;if(!t)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),n;if(t.version.slice(0,4)==="2.7."){let o=function(e,i){var r,f={},d={config:t.config,use:t.use.bind(t),mixin:t.mixin.bind(t),component:t.component.bind(t),provide:function(c,l){return f[c]=l,this},directive:function(c,l){return l?(t.directive(c,l),d):t.directive(c)},mount:function(c,l){return r||(r=new t(Object.assign({propsData:i},e,{provide:Object.assign(f,e.provide)})),r.$mount(c,l),r)},unmount:function(){r&&(r.$destroy(),r=void 0)}};return d};var p=o;for(var s in t)n[s]=t[s];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=t,n.Vue2=t,n.version=t.version,n.warn=t.util.warn,n.hasInjectionContext=()=>!!n.getCurrentInstance(),n.createApp=o}else if(t.version.slice(0,2)==="2.")if(u){for(var s in u)n[s]=u[s];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=t,n.Vue2=t,n.version=t.version,n.hasInjectionContext=()=>!!n.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(t.version.slice(0,2)==="3."){for(var s in t)n[s]=t[s];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=t,n.Vue2=void 0,n.version=t.version,n.set=function(o,e,i){return Array.isArray(o)?(o.length=Math.max(o.length,e),o.splice(e,1,i),i):(o[e]=i,i)},n.del=function(o,e){if(Array.isArray(o)){o.splice(e,1);return}delete o[e]}}else console.error("[vue-demi] Vue version "+t.version+" is unsupported.");return n}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(n,t,u,s){"use strict";function p(e,i,r={}){let f;const{document:d=t.defaultDocument,...c}=r,l={onUpdate:a=>{o(i,a.oldIndex,a.newIndex)}},v=()=>{const a=typeof e=="string"?d?.querySelector(e):t.unrefElement(e);a&&(f=new u(a,{...l,...c}))},y=()=>f?.destroy(),h=(a,b)=>{if(b!==void 0)f?.option(a,b);else return f?.option(a)};return t.tryOnMounted(v),t.tryOnScopeDispose(y),{stop:y,start:v,option:h}}function o(e,i,r){const f=s.isRef(e),d=f?[...t.toValue(e)]:t.toValue(e);if(r>=0&&r<d.length){const c=d.splice(i,1)[0];s.nextTick(()=>{d.splice(r,0,c),f&&(e.value=d)})}}n.moveArrayElement=o,n.useSortable=p})(this.VueUse=this.VueUse||{},VueUse,Sortable,VueDemi);