@vueuse/integrations 13.9.0 → 14.0.0-alpha.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.
Files changed (114) hide show
  1. package/dist/index.d.ts +473 -0
  2. package/dist/index.iife.js +772 -0
  3. package/dist/index.iife.min.js +1 -0
  4. package/dist/index.js +731 -0
  5. package/dist/useAsyncValidator/component.d.ts +19 -0
  6. package/dist/useAsyncValidator/component.js +20 -0
  7. package/dist/useAsyncValidator.d.ts +48 -0
  8. package/dist/useAsyncValidator.iife.js +99 -0
  9. package/dist/useAsyncValidator.iife.min.js +1 -0
  10. package/dist/useAsyncValidator.js +73 -0
  11. package/{useAxios.d.mts → dist/useAxios.d.ts} +86 -86
  12. package/dist/useAxios.iife.js +150 -0
  13. package/dist/useAxios.iife.min.js +1 -0
  14. package/dist/useAxios.js +124 -0
  15. package/{useChangeCase.d.mts → dist/useChangeCase.d.ts} +7 -9
  16. package/dist/useChangeCase.iife.js +61 -0
  17. package/dist/useChangeCase.iife.min.js +1 -0
  18. package/dist/useChangeCase.js +35 -0
  19. package/dist/useCookies.d.ts +64 -0
  20. package/dist/useCookies.iife.js +104 -0
  21. package/dist/useCookies.iife.min.js +1 -0
  22. package/dist/useCookies.js +77 -0
  23. package/dist/useDrauu.d.ts +33 -0
  24. package/dist/useDrauu.iife.js +146 -0
  25. package/dist/useDrauu.iife.min.js +1 -0
  26. package/dist/useDrauu.js +120 -0
  27. package/dist/useFocusTrap/component.d.ts +21 -0
  28. package/dist/useFocusTrap/component.js +17 -0
  29. package/dist/useFocusTrap.d.ts +55 -0
  30. package/dist/useFocusTrap.iife.js +97 -0
  31. package/dist/useFocusTrap.iife.min.js +1 -0
  32. package/dist/useFocusTrap.js +71 -0
  33. package/dist/useFuse.d.ts +33 -0
  34. package/dist/useFuse.iife.js +62 -0
  35. package/dist/useFuse.iife.min.js +1 -0
  36. package/dist/useFuse.js +36 -0
  37. package/dist/useIDBKeyval.d.ts +52 -0
  38. package/dist/useIDBKeyval.iife.js +93 -0
  39. package/dist/useIDBKeyval.iife.min.js +1 -0
  40. package/dist/useIDBKeyval.js +67 -0
  41. package/dist/useJwt.d.ts +28 -0
  42. package/dist/useJwt.iife.js +55 -0
  43. package/dist/useJwt.iife.min.js +1 -0
  44. package/dist/useJwt.js +29 -0
  45. package/dist/useNProgress.d.ts +21 -0
  46. package/dist/useNProgress.iife.js +66 -0
  47. package/dist/useNProgress.iife.min.js +1 -0
  48. package/dist/useNProgress.js +40 -0
  49. package/dist/useQRCode.d.ts +16 -0
  50. package/dist/useQRCode.iife.js +49 -0
  51. package/dist/useQRCode.iife.min.js +1 -0
  52. package/dist/useQRCode.js +23 -0
  53. package/dist/useSortable/component.d.ts +18 -0
  54. package/dist/useSortable/component.js +23 -0
  55. package/{useSortable.d.mts → dist/useSortable.d.ts} +20 -20
  56. package/dist/useSortable.iife.js +107 -0
  57. package/dist/useSortable.iife.min.js +1 -0
  58. package/dist/useSortable.js +78 -0
  59. package/package.json +27 -29
  60. package/index.d.mts +0 -458
  61. package/index.iife.js +0 -708
  62. package/index.iife.min.js +0 -1
  63. package/index.mjs +0 -685
  64. package/useAsyncValidator/component.d.mts +0 -27
  65. package/useAsyncValidator/component.mjs +0 -87
  66. package/useAsyncValidator.d.mts +0 -48
  67. package/useAsyncValidator.iife.js +0 -73
  68. package/useAsyncValidator.iife.min.js +0 -1
  69. package/useAsyncValidator.mjs +0 -72
  70. package/useAxios.iife.js +0 -124
  71. package/useAxios.iife.min.js +0 -1
  72. package/useAxios.mjs +0 -123
  73. package/useChangeCase.iife.js +0 -50
  74. package/useChangeCase.iife.min.js +0 -1
  75. package/useChangeCase.mjs +0 -29
  76. package/useCookies.d.mts +0 -56
  77. package/useCookies.iife.js +0 -64
  78. package/useCookies.iife.min.js +0 -1
  79. package/useCookies.mjs +0 -62
  80. package/useDrauu.d.mts +0 -33
  81. package/useDrauu.iife.js +0 -114
  82. package/useDrauu.iife.min.js +0 -1
  83. package/useDrauu.mjs +0 -114
  84. package/useFocusTrap/component.d.mts +0 -18
  85. package/useFocusTrap/component.mjs +0 -31
  86. package/useFocusTrap.d.mts +0 -55
  87. package/useFocusTrap.iife.js +0 -74
  88. package/useFocusTrap.iife.min.js +0 -1
  89. package/useFocusTrap.mjs +0 -74
  90. package/useFuse.d.mts +0 -33
  91. package/useFuse.iife.js +0 -45
  92. package/useFuse.iife.min.js +0 -1
  93. package/useFuse.mjs +0 -43
  94. package/useIDBKeyval.d.mts +0 -52
  95. package/useIDBKeyval.iife.js +0 -70
  96. package/useIDBKeyval.iife.min.js +0 -1
  97. package/useIDBKeyval.mjs +0 -69
  98. package/useJwt.d.mts +0 -28
  99. package/useJwt.iife.js +0 -27
  100. package/useJwt.iife.min.js +0 -1
  101. package/useJwt.mjs +0 -25
  102. package/useNProgress.d.mts +0 -21
  103. package/useNProgress.iife.js +0 -36
  104. package/useNProgress.iife.min.js +0 -1
  105. package/useNProgress.mjs +0 -35
  106. package/useQRCode.d.mts +0 -14
  107. package/useQRCode.iife.js +0 -20
  108. package/useQRCode.iife.min.js +0 -1
  109. package/useQRCode.mjs +0 -19
  110. package/useSortable/component.d.mts +0 -40
  111. package/useSortable/component.mjs +0 -89
  112. package/useSortable.iife.js +0 -66
  113. package/useSortable.iife.min.js +0 -1
  114. package/useSortable.mjs +0 -62
@@ -0,0 +1,772 @@
1
+ (function(exports, __vueuse_shared, async_validator, vue, axios, change_case, universal_cookie, __vueuse_core, drauu, focus_trap, fuse_js, idb_keyval, jwt_decode, nprogress, qrcode, sortablejs) {
2
+
3
+ //#region rolldown:runtime
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
+ key = keys[i];
13
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: ((k) => from[k]).bind(null, key),
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
21
+ value: mod,
22
+ enumerable: true
23
+ }) : target, mod));
24
+
25
+ //#endregion
26
+ __vueuse_shared = __toESM(__vueuse_shared);
27
+ async_validator = __toESM(async_validator);
28
+ vue = __toESM(vue);
29
+ axios = __toESM(axios);
30
+ change_case = __toESM(change_case);
31
+ universal_cookie = __toESM(universal_cookie);
32
+ __vueuse_core = __toESM(__vueuse_core);
33
+ drauu = __toESM(drauu);
34
+ focus_trap = __toESM(focus_trap);
35
+ fuse_js = __toESM(fuse_js);
36
+ idb_keyval = __toESM(idb_keyval);
37
+ jwt_decode = __toESM(jwt_decode);
38
+ nprogress = __toESM(nprogress);
39
+ qrcode = __toESM(qrcode);
40
+ sortablejs = __toESM(sortablejs);
41
+
42
+ //#region useAsyncValidator/index.ts
43
+ const AsyncValidatorSchema = async_validator.default.default || async_validator.default;
44
+ /**
45
+ * Wrapper for async-validator.
46
+ *
47
+ * @see https://vueuse.org/useAsyncValidator
48
+ * @see https://github.com/yiminghe/async-validator
49
+ */
50
+ function useAsyncValidator(value, rules, options = {}) {
51
+ const { validateOption = {}, immediate = true, manual = false } = options;
52
+ const valueRef = (0, __vueuse_shared.toRef)(value);
53
+ const errorInfo = (0, vue.shallowRef)(null);
54
+ const isFinished = (0, vue.shallowRef)(true);
55
+ const pass = (0, vue.shallowRef)(!immediate || manual);
56
+ const errors = (0, vue.computed)(() => {
57
+ var _errorInfo$value;
58
+ return ((_errorInfo$value = errorInfo.value) === null || _errorInfo$value === void 0 ? void 0 : _errorInfo$value.errors) || [];
59
+ });
60
+ const errorFields = (0, vue.computed)(() => {
61
+ var _errorInfo$value2;
62
+ return ((_errorInfo$value2 = errorInfo.value) === null || _errorInfo$value2 === void 0 ? void 0 : _errorInfo$value2.fields) || {};
63
+ });
64
+ const validator = (0, vue.computed)(() => new AsyncValidatorSchema((0, vue.toValue)(rules)));
65
+ const execute = async () => {
66
+ isFinished.value = false;
67
+ pass.value = false;
68
+ try {
69
+ await validator.value.validate(valueRef.value, validateOption);
70
+ pass.value = true;
71
+ errorInfo.value = null;
72
+ } catch (err) {
73
+ errorInfo.value = err;
74
+ } finally {
75
+ isFinished.value = true;
76
+ }
77
+ return {
78
+ pass: pass.value,
79
+ errorInfo: errorInfo.value,
80
+ errors: errors.value,
81
+ errorFields: errorFields.value
82
+ };
83
+ };
84
+ if (!manual) (0, vue.watch)([valueRef, validator], () => execute(), {
85
+ immediate,
86
+ deep: true
87
+ });
88
+ const shell = {
89
+ isFinished,
90
+ pass,
91
+ errors,
92
+ errorInfo,
93
+ errorFields,
94
+ execute
95
+ };
96
+ function waitUntilFinished() {
97
+ return new Promise((resolve, reject) => {
98
+ (0, __vueuse_shared.until)(isFinished).toBe(true).then(() => resolve(shell)).catch((error) => reject(error));
99
+ });
100
+ }
101
+ return {
102
+ ...shell,
103
+ then(onFulfilled, onRejected) {
104
+ return waitUntilFinished().then(onFulfilled, onRejected);
105
+ }
106
+ };
107
+ }
108
+
109
+ //#endregion
110
+ //#region useAxios/index.ts
111
+ /**
112
+ * Wrapper for axios.
113
+ *
114
+ * @see https://vueuse.org/useAxios
115
+ */
116
+ function useAxios(...args) {
117
+ const url = typeof args[0] === "string" ? args[0] : void 0;
118
+ const argsPlaceholder = typeof url === "string" ? 1 : 0;
119
+ const defaultOptions = {
120
+ immediate: !!argsPlaceholder,
121
+ shallow: true,
122
+ abortPrevious: true
123
+ };
124
+ let defaultConfig = {};
125
+ let instance = axios.default;
126
+ let options = defaultOptions;
127
+ const isAxiosInstance = (val) => !!(val === null || val === void 0 ? void 0 : val.request);
128
+ if (args.length > 0 + argsPlaceholder)
129
+ /**
130
+ * Unable to use `instanceof` here because of (https://github.com/axios/axios/issues/737)
131
+ * so instead we are checking if there is a `request` on the object to see if it is an
132
+ * axios instance
133
+ */
134
+ if (isAxiosInstance(args[0 + argsPlaceholder])) instance = args[0 + argsPlaceholder];
135
+ else defaultConfig = args[0 + argsPlaceholder];
136
+ if (args.length > 1 + argsPlaceholder) {
137
+ if (isAxiosInstance(args[1 + argsPlaceholder])) instance = args[1 + argsPlaceholder];
138
+ }
139
+ if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder) options = args[args.length - 1] || defaultOptions;
140
+ const { shallow, onSuccess = __vueuse_shared.noop, onError = __vueuse_shared.noop, immediate, resetOnExecute = false } = options;
141
+ const initialData = options.initialData;
142
+ const response = (0, vue.shallowRef)();
143
+ const data = (shallow ? vue.shallowRef : vue.ref)(initialData);
144
+ const isFinished = (0, vue.shallowRef)(false);
145
+ const isLoading = (0, vue.shallowRef)(false);
146
+ const isAborted = (0, vue.shallowRef)(false);
147
+ const error = (0, vue.shallowRef)();
148
+ let abortController = new AbortController();
149
+ const abort = (message) => {
150
+ if (isFinished.value || !isLoading.value) return;
151
+ abortController.abort(message);
152
+ abortController = new AbortController();
153
+ isAborted.value = true;
154
+ isLoading.value = false;
155
+ isFinished.value = false;
156
+ };
157
+ const loading = (loading$1) => {
158
+ isLoading.value = loading$1;
159
+ isFinished.value = !loading$1;
160
+ };
161
+ /**
162
+ * Reset data to initialData
163
+ */
164
+ const resetData = () => {
165
+ if (resetOnExecute) data.value = initialData;
166
+ };
167
+ const waitUntilFinished = () => new Promise((resolve, reject) => {
168
+ (0, __vueuse_shared.until)(isFinished).toBe(true).then(() => error.value ? reject(error.value) : resolve(result));
169
+ });
170
+ const promise = {
171
+ then: (...args$1) => waitUntilFinished().then(...args$1),
172
+ catch: (...args$1) => waitUntilFinished().catch(...args$1)
173
+ };
174
+ let executeCounter = 0;
175
+ const execute = (executeUrl = url, config = {}) => {
176
+ error.value = void 0;
177
+ const _url = typeof executeUrl === "string" ? executeUrl : url !== null && url !== void 0 ? url : config.url;
178
+ if (_url === void 0) {
179
+ error.value = new axios.AxiosError(axios.AxiosError.ERR_INVALID_URL);
180
+ isFinished.value = true;
181
+ return promise;
182
+ }
183
+ resetData();
184
+ if (options.abortPrevious !== false) abort();
185
+ loading(true);
186
+ executeCounter += 1;
187
+ const currentExecuteCounter = executeCounter;
188
+ isAborted.value = false;
189
+ instance(_url, {
190
+ ...defaultConfig,
191
+ ...typeof executeUrl === "object" ? executeUrl : config,
192
+ signal: abortController.signal
193
+ }).then((r) => {
194
+ if (isAborted.value) return;
195
+ response.value = r;
196
+ const result$1 = r.data;
197
+ data.value = result$1;
198
+ onSuccess(result$1);
199
+ }).catch((e) => {
200
+ error.value = e;
201
+ onError(e);
202
+ }).finally(() => {
203
+ var _options$onFinish;
204
+ (_options$onFinish = options.onFinish) === null || _options$onFinish === void 0 || _options$onFinish.call(options);
205
+ if (currentExecuteCounter === executeCounter) loading(false);
206
+ });
207
+ return promise;
208
+ };
209
+ if (immediate && url) execute();
210
+ const result = {
211
+ response,
212
+ data,
213
+ error,
214
+ isFinished,
215
+ isLoading,
216
+ cancel: abort,
217
+ isAborted,
218
+ isCanceled: isAborted,
219
+ abort,
220
+ execute
221
+ };
222
+ return {
223
+ ...result,
224
+ ...promise
225
+ };
226
+ }
227
+
228
+ //#endregion
229
+ //#region useChangeCase/index.ts
230
+ const changeCaseTransforms = /* @__PURE__ */ Object.entries(change_case).filter(([name, fn]) => typeof fn === "function" && name.endsWith("Case")).reduce((acc, [name, fn]) => {
231
+ acc[name] = fn;
232
+ return acc;
233
+ }, {});
234
+ /**
235
+ * Reactive wrapper for `change-case`
236
+ *
237
+ * @see https://vueuse.org/useChangeCase
238
+ *
239
+ * @__NO_SIDE_EFFECTS__
240
+ */
241
+ function useChangeCase(input, type, options) {
242
+ const typeRef = (0, vue.computed)(() => {
243
+ const t = (0, vue.toValue)(type);
244
+ if (!changeCaseTransforms[t]) throw new Error(`Invalid change case type "${t}"`);
245
+ return t;
246
+ });
247
+ if (typeof input === "function") return (0, vue.computed)(() => changeCaseTransforms[typeRef.value]((0, vue.toValue)(input), (0, vue.toValue)(options)));
248
+ const text = (0, vue.ref)(input);
249
+ return (0, vue.computed)({
250
+ get() {
251
+ return changeCaseTransforms[typeRef.value](text.value, (0, vue.toValue)(options));
252
+ },
253
+ set(value) {
254
+ text.value = value;
255
+ }
256
+ });
257
+ }
258
+
259
+ //#endregion
260
+ //#region useCookies/index.ts
261
+ /**
262
+ * Creates a new {@link useCookies} function
263
+ * @param req - incoming http request (for SSR)
264
+ * @see https://github.com/reactivestack/cookies/tree/master/packages/universal-cookie universal-cookie
265
+ * @description Creates universal-cookie instance using request (default is window.document.cookie) and returns {@link useCookies} function with provided universal-cookie instance
266
+ */
267
+ function createCookies(req) {
268
+ const universalCookie = new universal_cookie.default(req ? req.headers.cookie : null);
269
+ return (dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}) => useCookies(dependencies, {
270
+ doNotParse,
271
+ autoUpdateDependencies
272
+ }, universalCookie);
273
+ }
274
+ /**
275
+ * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR)
276
+ * @param dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes.
277
+ * @param options
278
+ * @param options.doNotParse - don't try parse value as JSON
279
+ * @param options.autoUpdateDependencies - automatically update watching dependencies
280
+ * @param cookies - universal-cookie instance
281
+ *
282
+ * @__NO_SIDE_EFFECTS__
283
+ */
284
+ function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new universal_cookie.default()) {
285
+ const watchingDependencies = autoUpdateDependencies ? [...dependencies || []] : dependencies;
286
+ let previousCookies = cookies.getAll({ doNotParse: true });
287
+ /**
288
+ * Adds reactivity to get/getAll methods
289
+ */
290
+ const touches = (0, vue.shallowRef)(0);
291
+ const onChange = () => {
292
+ const newCookies = cookies.getAll({ doNotParse: true });
293
+ if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies)) touches.value++;
294
+ previousCookies = newCookies;
295
+ };
296
+ cookies.addChangeListener(onChange);
297
+ (0, __vueuse_shared.tryOnScopeDispose)(() => {
298
+ cookies.removeChangeListener(onChange);
299
+ });
300
+ return {
301
+ get: (...args) => {
302
+ /**
303
+ * Auto update watching dependencies if needed
304
+ */
305
+ if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0])) watchingDependencies.push(args[0]);
306
+ touches.value;
307
+ return cookies.get(args[0], {
308
+ doNotParse,
309
+ ...args[1]
310
+ });
311
+ },
312
+ getAll: (...args) => {
313
+ touches.value;
314
+ return cookies.getAll({
315
+ doNotParse,
316
+ ...args[0]
317
+ });
318
+ },
319
+ set: (...args) => cookies.set(...args),
320
+ remove: (...args) => cookies.remove(...args),
321
+ addChangeListener: (...args) => cookies.addChangeListener(...args),
322
+ removeChangeListener: (...args) => cookies.removeChangeListener(...args)
323
+ };
324
+ }
325
+ function shouldUpdate(dependencies, newCookies, oldCookies) {
326
+ if (!dependencies) return true;
327
+ for (const dependency of dependencies) if (newCookies[dependency] !== oldCookies[dependency]) return true;
328
+ return false;
329
+ }
330
+
331
+ //#endregion
332
+ //#region useDrauu/index.ts
333
+ /**
334
+ * Reactive drauu
335
+ *
336
+ * @see https://vueuse.org/useDrauu
337
+ * @param target The target svg element
338
+ * @param options Drauu Options
339
+ */
340
+ function useDrauu(target, options) {
341
+ const drauuInstance = (0, vue.ref)();
342
+ let disposables = [];
343
+ const onChangedHook = (0, __vueuse_core.createEventHook)();
344
+ const onCanceledHook = (0, __vueuse_core.createEventHook)();
345
+ const onCommittedHook = (0, __vueuse_core.createEventHook)();
346
+ const onStartHook = (0, __vueuse_core.createEventHook)();
347
+ const onEndHook = (0, __vueuse_core.createEventHook)();
348
+ const canUndo = (0, vue.shallowRef)(false);
349
+ const canRedo = (0, vue.shallowRef)(false);
350
+ const altPressed = (0, vue.shallowRef)(false);
351
+ const shiftPressed = (0, vue.shallowRef)(false);
352
+ const brush = (0, vue.ref)({
353
+ color: "black",
354
+ size: 3,
355
+ arrowEnd: false,
356
+ cornerRadius: 0,
357
+ dasharray: void 0,
358
+ fill: "transparent",
359
+ mode: "draw",
360
+ ...options === null || options === void 0 ? void 0 : options.brush
361
+ });
362
+ (0, vue.watch)(brush, () => {
363
+ const instance = drauuInstance.value;
364
+ if (instance) {
365
+ instance.brush = brush.value;
366
+ instance.mode = brush.value.mode;
367
+ }
368
+ }, { deep: true });
369
+ const undo = () => {
370
+ var _drauuInstance$value;
371
+ return (_drauuInstance$value = drauuInstance.value) === null || _drauuInstance$value === void 0 ? void 0 : _drauuInstance$value.undo();
372
+ };
373
+ const redo = () => {
374
+ var _drauuInstance$value2;
375
+ return (_drauuInstance$value2 = drauuInstance.value) === null || _drauuInstance$value2 === void 0 ? void 0 : _drauuInstance$value2.redo();
376
+ };
377
+ const clear = () => {
378
+ var _drauuInstance$value3;
379
+ return (_drauuInstance$value3 = drauuInstance.value) === null || _drauuInstance$value3 === void 0 ? void 0 : _drauuInstance$value3.clear();
380
+ };
381
+ const cancel = () => {
382
+ var _drauuInstance$value4;
383
+ return (_drauuInstance$value4 = drauuInstance.value) === null || _drauuInstance$value4 === void 0 ? void 0 : _drauuInstance$value4.cancel();
384
+ };
385
+ const load = (svg) => {
386
+ var _drauuInstance$value5;
387
+ return (_drauuInstance$value5 = drauuInstance.value) === null || _drauuInstance$value5 === void 0 ? void 0 : _drauuInstance$value5.load(svg);
388
+ };
389
+ const dump = () => {
390
+ var _drauuInstance$value6;
391
+ return (_drauuInstance$value6 = drauuInstance.value) === null || _drauuInstance$value6 === void 0 ? void 0 : _drauuInstance$value6.dump();
392
+ };
393
+ const cleanup = () => {
394
+ var _drauuInstance$value7;
395
+ disposables.forEach((dispose) => dispose());
396
+ (_drauuInstance$value7 = drauuInstance.value) === null || _drauuInstance$value7 === void 0 || _drauuInstance$value7.unmount();
397
+ };
398
+ const syncStatus = () => {
399
+ if (drauuInstance.value) {
400
+ canUndo.value = drauuInstance.value.canUndo();
401
+ canRedo.value = drauuInstance.value.canRedo();
402
+ altPressed.value = drauuInstance.value.altPressed;
403
+ shiftPressed.value = drauuInstance.value.shiftPressed;
404
+ }
405
+ };
406
+ (0, vue.watch)(() => (0, __vueuse_core.unrefElement)(target), (el) => {
407
+ if (!el || typeof SVGSVGElement === "undefined" || !(el instanceof SVGSVGElement)) return;
408
+ if (drauuInstance.value) cleanup();
409
+ drauuInstance.value = (0, drauu.createDrauu)({
410
+ el,
411
+ ...options
412
+ });
413
+ syncStatus();
414
+ disposables = [
415
+ drauuInstance.value.on("canceled", () => onCanceledHook.trigger()),
416
+ drauuInstance.value.on("committed", (node) => onCommittedHook.trigger(node)),
417
+ drauuInstance.value.on("start", () => onStartHook.trigger()),
418
+ drauuInstance.value.on("end", () => onEndHook.trigger()),
419
+ drauuInstance.value.on("changed", () => {
420
+ syncStatus();
421
+ onChangedHook.trigger();
422
+ })
423
+ ];
424
+ }, { flush: "post" });
425
+ (0, __vueuse_shared.tryOnScopeDispose)(() => cleanup());
426
+ return {
427
+ drauuInstance,
428
+ load,
429
+ dump,
430
+ clear,
431
+ cancel,
432
+ undo,
433
+ redo,
434
+ canUndo,
435
+ canRedo,
436
+ brush,
437
+ onChanged: onChangedHook.on,
438
+ onCommitted: onCommittedHook.on,
439
+ onStart: onStartHook.on,
440
+ onEnd: onEndHook.on,
441
+ onCanceled: onCanceledHook.on
442
+ };
443
+ }
444
+
445
+ //#endregion
446
+ //#region useFocusTrap/index.ts
447
+ /**
448
+ * Reactive focus-trap
449
+ *
450
+ * @see https://vueuse.org/useFocusTrap
451
+ */
452
+ function useFocusTrap(target, options = {}) {
453
+ let trap;
454
+ const { immediate,...focusTrapOptions } = options;
455
+ const hasFocus = (0, vue.shallowRef)(false);
456
+ const isPaused = (0, vue.shallowRef)(false);
457
+ const activate = (opts) => trap && trap.activate(opts);
458
+ const deactivate = (opts) => trap && trap.deactivate(opts);
459
+ const pause = () => {
460
+ if (trap) {
461
+ trap.pause();
462
+ isPaused.value = true;
463
+ }
464
+ };
465
+ const unpause = () => {
466
+ if (trap) {
467
+ trap.unpause();
468
+ isPaused.value = false;
469
+ }
470
+ };
471
+ const targets = (0, vue.computed)(() => {
472
+ const _targets = (0, vue.toValue)(target);
473
+ return (0, __vueuse_core.toArray)(_targets).map((el) => {
474
+ const _el = (0, vue.toValue)(el);
475
+ return typeof _el === "string" ? _el : (0, __vueuse_core.unrefElement)(_el);
476
+ }).filter(__vueuse_shared.notNullish);
477
+ });
478
+ (0, vue.watch)(targets, (els) => {
479
+ if (!els.length) return;
480
+ if (!trap) {
481
+ trap = (0, focus_trap.createFocusTrap)(els, {
482
+ ...focusTrapOptions,
483
+ onActivate() {
484
+ hasFocus.value = true;
485
+ if (options.onActivate) options.onActivate();
486
+ },
487
+ onDeactivate() {
488
+ hasFocus.value = false;
489
+ if (options.onDeactivate) options.onDeactivate();
490
+ }
491
+ });
492
+ if (immediate) activate();
493
+ } else {
494
+ const isActive = trap === null || trap === void 0 ? void 0 : trap.active;
495
+ trap === null || trap === void 0 || trap.updateContainerElements(els);
496
+ if (!isActive && immediate) activate();
497
+ }
498
+ }, { flush: "post" });
499
+ (0, __vueuse_core.tryOnScopeDispose)(() => deactivate());
500
+ return {
501
+ hasFocus,
502
+ isPaused,
503
+ activate,
504
+ deactivate,
505
+ pause,
506
+ unpause
507
+ };
508
+ }
509
+
510
+ //#endregion
511
+ //#region useFuse/index.ts
512
+ function useFuse(search, data, options) {
513
+ const createFuse = () => {
514
+ var _toValue, _toValue2;
515
+ return new fuse_js.default((_toValue = (0, vue.toValue)(data)) !== null && _toValue !== void 0 ? _toValue : [], (_toValue2 = (0, vue.toValue)(options)) === null || _toValue2 === void 0 ? void 0 : _toValue2.fuseOptions);
516
+ };
517
+ const fuse = (0, vue.ref)(createFuse());
518
+ (0, vue.watch)(() => {
519
+ var _toValue3;
520
+ return (_toValue3 = (0, vue.toValue)(options)) === null || _toValue3 === void 0 ? void 0 : _toValue3.fuseOptions;
521
+ }, () => {
522
+ fuse.value = createFuse();
523
+ }, { deep: true });
524
+ (0, vue.watch)(() => (0, vue.toValue)(data), (newData) => {
525
+ fuse.value.setCollection(newData);
526
+ }, { deep: true });
527
+ const results = (0, vue.computed)(() => {
528
+ const resolved = (0, vue.toValue)(options);
529
+ if ((resolved === null || resolved === void 0 ? void 0 : resolved.matchAllWhenSearchEmpty) && !(0, vue.toValue)(search)) return (0, vue.toValue)(data).map((item, index) => ({
530
+ item,
531
+ refIndex: index
532
+ }));
533
+ const limit = resolved === null || resolved === void 0 ? void 0 : resolved.resultLimit;
534
+ return fuse.value.search((0, vue.toValue)(search), limit ? { limit } : void 0);
535
+ });
536
+ return {
537
+ fuse,
538
+ results
539
+ };
540
+ }
541
+
542
+ //#endregion
543
+ //#region useIDBKeyval/index.ts
544
+ /**
545
+ *
546
+ * @param key
547
+ * @param initialValue
548
+ * @param options
549
+ */
550
+ function useIDBKeyval(key, initialValue, options = {}) {
551
+ const { flush = "pre", deep = true, shallow = false, onError = (e) => {
552
+ console.error(e);
553
+ }, writeDefaults = true, serializer = {
554
+ read: (raw) => raw,
555
+ write: (value) => value
556
+ } } = options;
557
+ const isFinished = (0, vue.shallowRef)(false);
558
+ const data = (shallow ? vue.shallowRef : vue.ref)(initialValue);
559
+ const rawInit = (0, vue.toValue)(initialValue);
560
+ async function read() {
561
+ try {
562
+ const rawValue = await (0, idb_keyval.get)(key);
563
+ if (rawValue === void 0) {
564
+ if (rawInit !== void 0 && rawInit !== null && writeDefaults) {
565
+ const initValue = serializer.write(rawInit);
566
+ await (0, idb_keyval.set)(key, initValue);
567
+ }
568
+ } else data.value = serializer.read(rawValue);
569
+ } catch (e) {
570
+ onError(e);
571
+ }
572
+ isFinished.value = true;
573
+ }
574
+ read();
575
+ async function write() {
576
+ try {
577
+ if (data.value == null) await (0, idb_keyval.del)(key);
578
+ else {
579
+ const rawValue = (0, vue.toRaw)(data.value);
580
+ const serializedValue = serializer.write(rawValue);
581
+ await (0, idb_keyval.update)(key, () => serializedValue);
582
+ }
583
+ } catch (e) {
584
+ onError(e);
585
+ }
586
+ }
587
+ const { pause: pauseWatch, resume: resumeWatch } = (0, __vueuse_core.watchPausable)(data, () => write(), {
588
+ flush,
589
+ deep
590
+ });
591
+ async function setData(value) {
592
+ pauseWatch();
593
+ data.value = value;
594
+ await write();
595
+ resumeWatch();
596
+ }
597
+ return {
598
+ set: setData,
599
+ isFinished,
600
+ data
601
+ };
602
+ }
603
+
604
+ //#endregion
605
+ //#region useJwt/index.ts
606
+ /**
607
+ * Reactive decoded jwt token.
608
+ *
609
+ * @see https://vueuse.org/useJwt
610
+ */
611
+ function useJwt(encodedJwt, options = {}) {
612
+ const { onError, fallbackValue = null } = options;
613
+ const decodeWithFallback = (encodedJwt$1, options$1) => {
614
+ try {
615
+ return (0, jwt_decode.jwtDecode)(encodedJwt$1, options$1);
616
+ } catch (err) {
617
+ onError === null || onError === void 0 || onError(err);
618
+ return fallbackValue;
619
+ }
620
+ };
621
+ const header = (0, vue.computed)(() => decodeWithFallback((0, vue.toValue)(encodedJwt), { header: true }));
622
+ const payload = (0, vue.computed)(() => decodeWithFallback((0, vue.toValue)(encodedJwt)));
623
+ return {
624
+ header,
625
+ payload
626
+ };
627
+ }
628
+
629
+ //#endregion
630
+ //#region useNProgress/index.ts
631
+ /**
632
+ * Reactive progress bar.
633
+ *
634
+ * @see https://vueuse.org/useNProgress
635
+ */
636
+ function useNProgress(currentProgress = null, options) {
637
+ const progress = (0, __vueuse_shared.toRef)(currentProgress);
638
+ const isLoading = (0, vue.computed)({
639
+ set: (load) => load ? nprogress.default.start() : nprogress.default.done(),
640
+ get: () => typeof progress.value === "number" && progress.value < 1
641
+ });
642
+ if (options) nprogress.default.configure(options);
643
+ const setProgress = nprogress.default.set;
644
+ nprogress.default.set = (n) => {
645
+ progress.value = n;
646
+ return setProgress.call(nprogress.default, n);
647
+ };
648
+ (0, vue.watchEffect)(() => {
649
+ if (typeof progress.value === "number" && __vueuse_shared.isClient) setProgress.call(nprogress.default, progress.value);
650
+ });
651
+ (0, __vueuse_shared.tryOnScopeDispose)(nprogress.default.remove);
652
+ return {
653
+ isLoading,
654
+ progress,
655
+ start: nprogress.default.start,
656
+ done: nprogress.default.done,
657
+ remove: () => {
658
+ progress.value = null;
659
+ nprogress.default.remove();
660
+ }
661
+ };
662
+ }
663
+
664
+ //#endregion
665
+ //#region useQRCode/index.ts
666
+ /**
667
+ * Wrapper for qrcode.
668
+ *
669
+ * @see https://vueuse.org/useQRCode
670
+ * @param text
671
+ * @param options
672
+ */
673
+ function useQRCode(text, options) {
674
+ const src = (0, __vueuse_shared.toRef)(text);
675
+ const result = (0, vue.shallowRef)("");
676
+ (0, vue.watch)(src, async (value) => {
677
+ if (src.value && __vueuse_shared.isClient) result.value = await qrcode.default.toDataURL(value, options);
678
+ }, { immediate: true });
679
+ return result;
680
+ }
681
+
682
+ //#endregion
683
+ //#region useSortable/index.ts
684
+ /**
685
+ * Wrapper for sortablejs.
686
+ * @param el
687
+ * @param list
688
+ * @param options
689
+ */
690
+ function useSortable(el, list, options = {}) {
691
+ let sortable;
692
+ const { document = __vueuse_core.defaultDocument,...resetOptions } = options;
693
+ const defaultOptions = { onUpdate: (e) => {
694
+ moveArrayElement(list, e.oldIndex, e.newIndex, e);
695
+ } };
696
+ const start = () => {
697
+ const target = typeof el === "string" ? document === null || document === void 0 ? void 0 : document.querySelector(el) : (0, __vueuse_core.unrefElement)(el);
698
+ if (!target || sortable !== void 0) return;
699
+ sortable = new sortablejs.default(target, {
700
+ ...defaultOptions,
701
+ ...resetOptions
702
+ });
703
+ };
704
+ const stop = () => {
705
+ sortable === null || sortable === void 0 || sortable.destroy();
706
+ sortable = void 0;
707
+ };
708
+ const option = (name, value) => {
709
+ if (value !== void 0) sortable === null || sortable === void 0 || sortable.option(name, value);
710
+ else return sortable === null || sortable === void 0 ? void 0 : sortable.option(name);
711
+ };
712
+ (0, __vueuse_core.tryOnMounted)(start);
713
+ (0, __vueuse_core.tryOnScopeDispose)(stop);
714
+ return {
715
+ stop,
716
+ start,
717
+ option
718
+ };
719
+ }
720
+ /**
721
+ * Inserts a element into the DOM at a given index.
722
+ * @param parentElement
723
+ * @param element
724
+ * @param {number} index
725
+ * @see https://github.com/Alfred-Skyblue/vue-draggable-plus/blob/a3829222095e1949bf2c9a20979d7b5930e66f14/src/utils/index.ts#L81C1-L94C2
726
+ */
727
+ function insertNodeAt(parentElement, element, index) {
728
+ const refElement = parentElement.children[index];
729
+ parentElement.insertBefore(element, refElement);
730
+ }
731
+ /**
732
+ * Removes a node from the DOM.
733
+ * @param {Node} node
734
+ * @see https://github.com/Alfred-Skyblue/vue-draggable-plus/blob/a3829222095e1949bf2c9a20979d7b5930e66f14/src/utils/index.ts#L96C1-L102C2
735
+ */
736
+ function removeNode(node) {
737
+ if (node.parentNode) node.parentNode.removeChild(node);
738
+ }
739
+ function moveArrayElement(list, from, to, e = null) {
740
+ if (e != null) {
741
+ removeNode(e.item);
742
+ insertNodeAt(e.from, e.item, from);
743
+ }
744
+ const _valueIsRef = (0, vue.isRef)(list);
745
+ const array = _valueIsRef ? [...(0, vue.toValue)(list)] : (0, vue.toValue)(list);
746
+ if (to >= 0 && to < array.length) {
747
+ const element = array.splice(from, 1)[0];
748
+ (0, vue.nextTick)(() => {
749
+ array.splice(to, 0, element);
750
+ if (_valueIsRef) list.value = array;
751
+ });
752
+ }
753
+ }
754
+
755
+ //#endregion
756
+ exports.createCookies = createCookies;
757
+ exports.insertNodeAt = insertNodeAt;
758
+ exports.moveArrayElement = moveArrayElement;
759
+ exports.removeNode = removeNode;
760
+ exports.useAsyncValidator = useAsyncValidator;
761
+ exports.useAxios = useAxios;
762
+ exports.useChangeCase = useChangeCase;
763
+ exports.useCookies = useCookies;
764
+ exports.useDrauu = useDrauu;
765
+ exports.useFocusTrap = useFocusTrap;
766
+ exports.useFuse = useFuse;
767
+ exports.useIDBKeyval = useIDBKeyval;
768
+ exports.useJwt = useJwt;
769
+ exports.useNProgress = useNProgress;
770
+ exports.useQRCode = useQRCode;
771
+ exports.useSortable = useSortable;
772
+ })(this.VueUse = this.VueUse || {}, VueUse, AsyncValidator, Vue, axios, changeCase, UniversalCookie, VueUse, Drauu, focusTrap, Fuse, idbKeyval, jwt_decode, nprogress, QRCode, Sortable);