@vueuse/shared 7.6.2 → 8.0.0-beta.2

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/index.iife.js CHANGED
@@ -62,31 +62,37 @@
62
62
  ;(function (exports, vueDemi) {
63
63
  'use strict';
64
64
 
65
- function and(...args) {
66
- return vueDemi.computed(() => args.every((i) => vueDemi.unref(i)));
67
- }
68
-
69
- function biSyncRef(a, b) {
70
- const flush = "sync";
71
- const stop1 = vueDemi.watch(a, (newValue) => {
72
- b.value = newValue;
73
- }, {
74
- flush,
75
- immediate: true
76
- });
77
- const stop2 = vueDemi.watch(b, (newValue) => {
78
- a.value = newValue;
79
- }, {
80
- flush,
81
- immediate: true
82
- });
83
- return () => {
84
- stop1();
85
- stop2();
86
- };
65
+ var __defProp$8 = Object.defineProperty;
66
+ var __defProps$5 = Object.defineProperties;
67
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
68
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
69
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
70
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
71
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
72
+ var __spreadValues$8 = (a, b) => {
73
+ for (var prop in b || (b = {}))
74
+ if (__hasOwnProp$a.call(b, prop))
75
+ __defNormalProp$8(a, prop, b[prop]);
76
+ if (__getOwnPropSymbols$a)
77
+ for (var prop of __getOwnPropSymbols$a(b)) {
78
+ if (__propIsEnum$a.call(b, prop))
79
+ __defNormalProp$8(a, prop, b[prop]);
80
+ }
81
+ return a;
82
+ };
83
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
84
+ function computedEager(fn, options) {
85
+ var _a;
86
+ const result = vueDemi.shallowRef();
87
+ vueDemi.watchEffect(() => {
88
+ result.value = fn();
89
+ }, __spreadProps$5(__spreadValues$8({}, options), {
90
+ flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
91
+ }));
92
+ return vueDemi.readonly(result);
87
93
  }
88
94
 
89
- function controlledComputed(source, fn) {
95
+ function computedWithControl(source, fn) {
90
96
  let v = void 0;
91
97
  let track;
92
98
  let trigger;
@@ -113,81 +119,6 @@
113
119
  });
114
120
  }
115
121
 
116
- function __onlyVue3(name = "this function") {
117
- if (vueDemi.isVue3)
118
- return;
119
- throw new Error(`[VueUse] ${name} is only works on Vue 3.`);
120
- }
121
-
122
- function extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {
123
- __onlyVue3();
124
- for (const [key, value] of Object.entries(extend)) {
125
- if (key === "value")
126
- continue;
127
- if (vueDemi.isRef(value) && unwrap) {
128
- Object.defineProperty(ref, key, {
129
- get() {
130
- return value.value;
131
- },
132
- set(v) {
133
- value.value = v;
134
- },
135
- enumerable
136
- });
137
- } else {
138
- Object.defineProperty(ref, key, { value, enumerable });
139
- }
140
- }
141
- return ref;
142
- }
143
-
144
- function controlledRef(initial, options = {}) {
145
- let source = initial;
146
- let track;
147
- let trigger;
148
- const ref = vueDemi.customRef((_track, _trigger) => {
149
- track = _track;
150
- trigger = _trigger;
151
- return {
152
- get() {
153
- return get();
154
- },
155
- set(v) {
156
- set(v);
157
- }
158
- };
159
- });
160
- function get(tracking = true) {
161
- if (tracking)
162
- track();
163
- return source;
164
- }
165
- function set(value, triggering = true) {
166
- var _a, _b;
167
- if (value === source)
168
- return;
169
- const old = source;
170
- if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)
171
- return;
172
- source = value;
173
- (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);
174
- if (triggering)
175
- trigger();
176
- }
177
- const untrackedGet = () => get(false);
178
- const silentSet = (v) => set(v, false);
179
- const peek = () => get(false);
180
- const lay = (v) => set(v, false);
181
- return extendRef(ref, {
182
- get,
183
- set,
184
- untrackedGet,
185
- silentSet,
186
- peek,
187
- lay
188
- }, { enumerable: true });
189
- }
190
-
191
122
  function createEventHook() {
192
123
  const fns = [];
193
124
  const off = (fn) => {
@@ -224,12 +155,6 @@
224
155
  };
225
156
  }
226
157
 
227
- function reactify(fn) {
228
- return function(...args) {
229
- return vueDemi.computed(() => fn.apply(this, args.map((i) => vueDemi.unref(i))));
230
- };
231
- }
232
-
233
158
  function tryOnScopeDispose(fn) {
234
159
  if (vueDemi.getCurrentScope()) {
235
160
  vueDemi.onScopeDispose(fn);
@@ -261,126 +186,306 @@
261
186
  };
262
187
  }
263
188
 
264
- const isClient = typeof window !== "undefined";
265
- const isDef = (val) => typeof val !== "undefined";
266
- const assert = (condition, ...infos) => {
267
- if (!condition)
268
- console.warn(...infos);
269
- };
270
- const toString = Object.prototype.toString;
271
- const isBoolean = (val) => typeof val === "boolean";
272
- const isFunction = (val) => typeof val === "function";
273
- const isNumber = (val) => typeof val === "number";
274
- const isString = (val) => typeof val === "string";
275
- const isObject = (val) => toString.call(val) === "[object Object]";
276
- const isWindow = (val) => typeof window !== "undefined" && toString.call(val) === "[object Window]";
277
- const now = () => Date.now();
278
- const timestamp = () => +Date.now();
279
- const clamp = (n, min, max) => Math.min(max, Math.max(min, n));
280
- const noop = () => {
281
- };
282
- const rand = (min, max) => {
283
- min = Math.ceil(min);
284
- max = Math.floor(max);
285
- return Math.floor(Math.random() * (max - min + 1)) + min;
286
- };
189
+ function __onlyVue3(name = "this function") {
190
+ if (vueDemi.isVue3)
191
+ return;
192
+ throw new Error(`[VueUse] ${name} is only works on Vue 3.`);
193
+ }
287
194
 
288
- function createFilterWrapper(filter, fn) {
289
- function wrapper(...args) {
290
- filter(() => fn.apply(this, args), { fn, thisArg: this, args });
195
+ function extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {
196
+ __onlyVue3();
197
+ for (const [key, value] of Object.entries(extend)) {
198
+ if (key === "value")
199
+ continue;
200
+ if (vueDemi.isRef(value) && unwrap) {
201
+ Object.defineProperty(ref, key, {
202
+ get() {
203
+ return value.value;
204
+ },
205
+ set(v) {
206
+ value.value = v;
207
+ },
208
+ enumerable
209
+ });
210
+ } else {
211
+ Object.defineProperty(ref, key, { value, enumerable });
212
+ }
291
213
  }
292
- return wrapper;
214
+ return ref;
293
215
  }
294
- const bypassFilter = (invoke) => {
295
- return invoke();
296
- };
297
- function debounceFilter(ms, options = {}) {
298
- let timer;
299
- let maxTimer;
300
- const filter = (invoke) => {
301
- const duration = vueDemi.unref(ms);
302
- const maxDuration = vueDemi.unref(options.maxWait);
303
- if (timer)
304
- clearTimeout(timer);
305
- if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
306
- if (maxTimer) {
307
- clearTimeout(maxTimer);
308
- maxTimer = null;
309
- }
310
- return invoke();
311
- }
312
- if (maxDuration && !maxTimer) {
313
- maxTimer = setTimeout(() => {
314
- if (timer)
315
- clearTimeout(timer);
316
- maxTimer = null;
317
- invoke();
318
- }, maxDuration);
319
- }
320
- timer = setTimeout(() => {
321
- if (maxTimer)
322
- clearTimeout(maxTimer);
323
- maxTimer = null;
324
- invoke();
325
- }, duration);
326
- };
327
- return filter;
216
+
217
+ function get(obj, key) {
218
+ if (key == null)
219
+ return vueDemi.unref(obj);
220
+ return vueDemi.unref(obj)[key];
328
221
  }
329
- function throttleFilter(ms, trailing = true, leading = true) {
330
- let lastExec = 0;
331
- let timer;
332
- let preventLeading = !leading;
333
- const clear = () => {
334
- if (timer) {
335
- clearTimeout(timer);
336
- timer = void 0;
337
- }
338
- };
339
- const filter = (invoke) => {
340
- const duration = vueDemi.unref(ms);
341
- const elapsed = Date.now() - lastExec;
342
- clear();
343
- if (duration <= 0) {
344
- lastExec = Date.now();
345
- return invoke();
346
- }
347
- if (elapsed > duration) {
348
- lastExec = Date.now();
349
- if (preventLeading)
350
- preventLeading = false;
351
- else
352
- invoke();
353
- }
354
- if (trailing) {
355
- timer = setTimeout(() => {
356
- lastExec = Date.now();
357
- if (!leading)
358
- preventLeading = true;
359
- clear();
360
- invoke();
361
- }, duration);
362
- }
363
- if (!leading && !timer)
364
- timer = setTimeout(() => preventLeading = true, duration);
365
- };
366
- return filter;
222
+
223
+ function isDefined(v) {
224
+ return vueDemi.unref(v) != null;
367
225
  }
368
- function pausableFilter(extendFilter = bypassFilter) {
369
- const isActive = vueDemi.ref(true);
370
- function pause() {
371
- isActive.value = false;
372
- }
373
- function resume() {
374
- isActive.value = true;
375
- }
376
- const eventFilter = (...args) => {
377
- if (isActive.value)
378
- extendFilter(...args);
379
- };
380
- return { isActive, pause, resume, eventFilter };
226
+
227
+ function logicAnd(...args) {
228
+ return vueDemi.computed(() => args.every((i) => vueDemi.unref(i)));
381
229
  }
382
230
 
383
- function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") {
231
+ function logicNot(v) {
232
+ return vueDemi.computed(() => !vueDemi.unref(v));
233
+ }
234
+
235
+ function logicOr(...args) {
236
+ return vueDemi.computed(() => args.some((i) => vueDemi.unref(i)));
237
+ }
238
+
239
+ var __defProp$7 = Object.defineProperty;
240
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
241
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
242
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
243
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
244
+ var __spreadValues$7 = (a, b) => {
245
+ for (var prop in b || (b = {}))
246
+ if (__hasOwnProp$9.call(b, prop))
247
+ __defNormalProp$7(a, prop, b[prop]);
248
+ if (__getOwnPropSymbols$9)
249
+ for (var prop of __getOwnPropSymbols$9(b)) {
250
+ if (__propIsEnum$9.call(b, prop))
251
+ __defNormalProp$7(a, prop, b[prop]);
252
+ }
253
+ return a;
254
+ };
255
+ function makeDestructurable(obj, arr) {
256
+ if (typeof Symbol !== "undefined") {
257
+ const clone = __spreadValues$7({}, obj);
258
+ Object.defineProperty(clone, Symbol.iterator, {
259
+ enumerable: false,
260
+ value() {
261
+ let index = 0;
262
+ return {
263
+ next: () => ({
264
+ value: arr[index++],
265
+ done: index > arr.length
266
+ })
267
+ };
268
+ }
269
+ });
270
+ return clone;
271
+ } else {
272
+ return Object.assign([...arr], obj);
273
+ }
274
+ }
275
+
276
+ function reactify(fn) {
277
+ return function(...args) {
278
+ return vueDemi.computed(() => fn.apply(this, args.map((i) => vueDemi.unref(i))));
279
+ };
280
+ }
281
+
282
+ function reactifyObject(obj, optionsOrKeys = {}) {
283
+ let keys = [];
284
+ if (Array.isArray(optionsOrKeys)) {
285
+ keys = optionsOrKeys;
286
+ } else {
287
+ const { includeOwnProperties = true } = optionsOrKeys;
288
+ keys.push(...Object.keys(obj));
289
+ if (includeOwnProperties)
290
+ keys.push(...Object.getOwnPropertyNames(obj));
291
+ }
292
+ return Object.fromEntries(keys.map((key) => {
293
+ const value = obj[key];
294
+ return [
295
+ key,
296
+ typeof value === "function" ? reactify(value.bind(obj)) : value
297
+ ];
298
+ }));
299
+ }
300
+
301
+ function toReactive(objectRef) {
302
+ if (!vueDemi.isRef(objectRef))
303
+ return vueDemi.reactive(objectRef);
304
+ const proxy = new Proxy({}, {
305
+ get(_, p, receiver) {
306
+ return vueDemi.unref(Reflect.get(objectRef.value, p, receiver));
307
+ },
308
+ set(_, p, value) {
309
+ if (vueDemi.isRef(objectRef.value[p]) && !vueDemi.isRef(value))
310
+ objectRef.value[p].value = value;
311
+ else
312
+ objectRef.value[p] = value;
313
+ return true;
314
+ },
315
+ deleteProperty(_, p) {
316
+ return Reflect.deleteProperty(objectRef.value, p);
317
+ },
318
+ has(_, p) {
319
+ return Reflect.has(objectRef.value, p);
320
+ },
321
+ ownKeys() {
322
+ return Object.keys(objectRef.value);
323
+ },
324
+ getOwnPropertyDescriptor() {
325
+ return {
326
+ enumerable: true,
327
+ configurable: true
328
+ };
329
+ }
330
+ });
331
+ return vueDemi.reactive(proxy);
332
+ }
333
+
334
+ function reactiveComputed(fn) {
335
+ return toReactive(vueDemi.computed(fn));
336
+ }
337
+
338
+ function reactiveOmit(obj, ...keys) {
339
+ return reactiveComputed(() => Object.fromEntries(Object.entries(vueDemi.toRefs(obj)).filter((e) => !keys.includes(e[0]))));
340
+ }
341
+
342
+ function reactivePick(obj, ...keys) {
343
+ return vueDemi.reactive(Object.fromEntries(keys.map((k) => [k, vueDemi.toRef(obj, k)])));
344
+ }
345
+
346
+ function refAutoReset(defaultValue, afterMs = 1e4) {
347
+ return vueDemi.customRef((track, trigger) => {
348
+ let value = defaultValue;
349
+ let timer;
350
+ const resetAfter = () => setTimeout(() => {
351
+ value = defaultValue;
352
+ trigger();
353
+ }, vueDemi.unref(afterMs));
354
+ return {
355
+ get() {
356
+ track();
357
+ return value;
358
+ },
359
+ set(newValue) {
360
+ value = newValue;
361
+ trigger();
362
+ clearTimeout(timer);
363
+ timer = resetAfter();
364
+ }
365
+ };
366
+ });
367
+ }
368
+
369
+ const isClient = typeof window !== "undefined";
370
+ const isDef = (val) => typeof val !== "undefined";
371
+ const assert = (condition, ...infos) => {
372
+ if (!condition)
373
+ console.warn(...infos);
374
+ };
375
+ const toString = Object.prototype.toString;
376
+ const isBoolean = (val) => typeof val === "boolean";
377
+ const isFunction = (val) => typeof val === "function";
378
+ const isNumber = (val) => typeof val === "number";
379
+ const isString = (val) => typeof val === "string";
380
+ const isObject = (val) => toString.call(val) === "[object Object]";
381
+ const isWindow = (val) => typeof window !== "undefined" && toString.call(val) === "[object Window]";
382
+ const now = () => Date.now();
383
+ const timestamp = () => +Date.now();
384
+ const clamp = (n, min, max) => Math.min(max, Math.max(min, n));
385
+ const noop = () => {
386
+ };
387
+ const rand = (min, max) => {
388
+ min = Math.ceil(min);
389
+ max = Math.floor(max);
390
+ return Math.floor(Math.random() * (max - min + 1)) + min;
391
+ };
392
+
393
+ function createFilterWrapper(filter, fn) {
394
+ function wrapper(...args) {
395
+ filter(() => fn.apply(this, args), { fn, thisArg: this, args });
396
+ }
397
+ return wrapper;
398
+ }
399
+ const bypassFilter = (invoke) => {
400
+ return invoke();
401
+ };
402
+ function debounceFilter(ms, options = {}) {
403
+ let timer;
404
+ let maxTimer;
405
+ const filter = (invoke) => {
406
+ const duration = vueDemi.unref(ms);
407
+ const maxDuration = vueDemi.unref(options.maxWait);
408
+ if (timer)
409
+ clearTimeout(timer);
410
+ if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
411
+ if (maxTimer) {
412
+ clearTimeout(maxTimer);
413
+ maxTimer = null;
414
+ }
415
+ return invoke();
416
+ }
417
+ if (maxDuration && !maxTimer) {
418
+ maxTimer = setTimeout(() => {
419
+ if (timer)
420
+ clearTimeout(timer);
421
+ maxTimer = null;
422
+ invoke();
423
+ }, maxDuration);
424
+ }
425
+ timer = setTimeout(() => {
426
+ if (maxTimer)
427
+ clearTimeout(maxTimer);
428
+ maxTimer = null;
429
+ invoke();
430
+ }, duration);
431
+ };
432
+ return filter;
433
+ }
434
+ function throttleFilter(ms, trailing = true, leading = true) {
435
+ let lastExec = 0;
436
+ let timer;
437
+ let preventLeading = !leading;
438
+ const clear = () => {
439
+ if (timer) {
440
+ clearTimeout(timer);
441
+ timer = void 0;
442
+ }
443
+ };
444
+ const filter = (invoke) => {
445
+ const duration = vueDemi.unref(ms);
446
+ const elapsed = Date.now() - lastExec;
447
+ clear();
448
+ if (duration <= 0) {
449
+ lastExec = Date.now();
450
+ return invoke();
451
+ }
452
+ if (elapsed > duration) {
453
+ lastExec = Date.now();
454
+ if (preventLeading)
455
+ preventLeading = false;
456
+ else
457
+ invoke();
458
+ }
459
+ if (trailing) {
460
+ timer = setTimeout(() => {
461
+ lastExec = Date.now();
462
+ if (!leading)
463
+ preventLeading = true;
464
+ clear();
465
+ invoke();
466
+ }, duration);
467
+ }
468
+ if (!leading && !timer)
469
+ timer = setTimeout(() => preventLeading = true, duration);
470
+ };
471
+ return filter;
472
+ }
473
+ function pausableFilter(extendFilter = bypassFilter) {
474
+ const isActive = vueDemi.ref(true);
475
+ function pause() {
476
+ isActive.value = false;
477
+ }
478
+ function resume() {
479
+ isActive.value = true;
480
+ }
481
+ const eventFilter = (...args) => {
482
+ if (isActive.value)
483
+ extendFilter(...args);
484
+ };
485
+ return { isActive, pause, resume, eventFilter };
486
+ }
487
+
488
+ function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") {
384
489
  return new Promise((resolve, reject) => {
385
490
  if (throwOnTimeout)
386
491
  setTimeout(() => reject(reason), ms);
@@ -437,7 +542,7 @@
437
542
  return createFilterWrapper(debounceFilter(ms, options), fn);
438
543
  }
439
544
 
440
- function useDebounce(value, ms = 200, options = {}) {
545
+ function refDebounced(value, ms = 200, options = {}) {
441
546
  if (ms <= 0)
442
547
  return value;
443
548
  const debounced = vueDemi.ref(value.value);
@@ -448,319 +553,80 @@
448
553
  return debounced;
449
554
  }
450
555
 
451
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
452
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
453
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
454
- var __objRest$5 = (source, exclude) => {
455
- var target = {};
456
- for (var prop in source)
457
- if (__hasOwnProp$a.call(source, prop) && exclude.indexOf(prop) < 0)
458
- target[prop] = source[prop];
459
- if (source != null && __getOwnPropSymbols$a)
460
- for (var prop of __getOwnPropSymbols$a(source)) {
461
- if (exclude.indexOf(prop) < 0 && __propIsEnum$a.call(source, prop))
462
- target[prop] = source[prop];
556
+ function refDefault(source, defaultValue) {
557
+ return vueDemi.computed({
558
+ get() {
559
+ var _a;
560
+ return (_a = source.value) != null ? _a : defaultValue;
561
+ },
562
+ set(value) {
563
+ source.value = value;
463
564
  }
464
- return target;
465
- };
466
- function watchWithFilter(source, cb, options = {}) {
467
- const _a = options, {
468
- eventFilter = bypassFilter
469
- } = _a, watchOptions = __objRest$5(_a, [
470
- "eventFilter"
471
- ]);
472
- return vueDemi.watch(source, createFilterWrapper(eventFilter, cb), watchOptions);
473
- }
474
-
475
- var __defProp$8 = Object.defineProperty;
476
- var __defProps$5 = Object.defineProperties;
477
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
478
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
479
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
480
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
481
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
482
- var __spreadValues$8 = (a, b) => {
483
- for (var prop in b || (b = {}))
484
- if (__hasOwnProp$9.call(b, prop))
485
- __defNormalProp$8(a, prop, b[prop]);
486
- if (__getOwnPropSymbols$9)
487
- for (var prop of __getOwnPropSymbols$9(b)) {
488
- if (__propIsEnum$9.call(b, prop))
489
- __defNormalProp$8(a, prop, b[prop]);
490
- }
491
- return a;
492
- };
493
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
494
- var __objRest$4 = (source, exclude) => {
495
- var target = {};
496
- for (var prop in source)
497
- if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
498
- target[prop] = source[prop];
499
- if (source != null && __getOwnPropSymbols$9)
500
- for (var prop of __getOwnPropSymbols$9(source)) {
501
- if (exclude.indexOf(prop) < 0 && __propIsEnum$9.call(source, prop))
502
- target[prop] = source[prop];
503
- }
504
- return target;
505
- };
506
- function debouncedWatch(source, cb, options = {}) {
507
- const _a = options, {
508
- debounce = 0
509
- } = _a, watchOptions = __objRest$4(_a, [
510
- "debounce"
511
- ]);
512
- return watchWithFilter(source, cb, __spreadProps$5(__spreadValues$8({}, watchOptions), {
513
- eventFilter: debounceFilter(debounce)
514
- }));
515
- }
516
-
517
- var __defProp$7 = Object.defineProperty;
518
- var __defProps$4 = Object.defineProperties;
519
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
520
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
521
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
522
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
523
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
524
- var __spreadValues$7 = (a, b) => {
525
- for (var prop in b || (b = {}))
526
- if (__hasOwnProp$8.call(b, prop))
527
- __defNormalProp$7(a, prop, b[prop]);
528
- if (__getOwnPropSymbols$8)
529
- for (var prop of __getOwnPropSymbols$8(b)) {
530
- if (__propIsEnum$8.call(b, prop))
531
- __defNormalProp$7(a, prop, b[prop]);
532
- }
533
- return a;
534
- };
535
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
536
- function eagerComputed(fn, options) {
537
- var _a;
538
- const result = vueDemi.shallowRef();
539
- vueDemi.watchEffect(() => {
540
- result.value = fn();
541
- }, __spreadProps$4(__spreadValues$7({}, options), {
542
- flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
543
- }));
544
- return vueDemi.readonly(result);
545
- }
546
-
547
- function get(obj, key) {
548
- if (key == null)
549
- return vueDemi.unref(obj);
550
- return vueDemi.unref(obj)[key];
565
+ });
551
566
  }
552
567
 
553
- var __defProp$6 = Object.defineProperty;
554
- var __defProps$3 = Object.defineProperties;
555
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
556
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
557
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
558
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
559
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
560
- var __spreadValues$6 = (a, b) => {
561
- for (var prop in b || (b = {}))
562
- if (__hasOwnProp$7.call(b, prop))
563
- __defNormalProp$6(a, prop, b[prop]);
564
- if (__getOwnPropSymbols$7)
565
- for (var prop of __getOwnPropSymbols$7(b)) {
566
- if (__propIsEnum$7.call(b, prop))
567
- __defNormalProp$6(a, prop, b[prop]);
568
- }
569
- return a;
570
- };
571
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
572
- var __objRest$3 = (source, exclude) => {
573
- var target = {};
574
- for (var prop in source)
575
- if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
576
- target[prop] = source[prop];
577
- if (source != null && __getOwnPropSymbols$7)
578
- for (var prop of __getOwnPropSymbols$7(source)) {
579
- if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
580
- target[prop] = source[prop];
581
- }
582
- return target;
583
- };
584
- function ignorableWatch(source, cb, options = {}) {
585
- const _a = options, {
586
- eventFilter = bypassFilter
587
- } = _a, watchOptions = __objRest$3(_a, [
588
- "eventFilter"
589
- ]);
590
- const filteredCb = createFilterWrapper(eventFilter, cb);
591
- let ignoreUpdates;
592
- let ignorePrevAsyncUpdates;
593
- let stop;
594
- if (watchOptions.flush === "sync") {
595
- const ignore = vueDemi.ref(false);
596
- ignorePrevAsyncUpdates = () => {
597
- };
598
- ignoreUpdates = (updater) => {
599
- ignore.value = true;
600
- updater();
601
- ignore.value = false;
602
- };
603
- stop = vueDemi.watch(source, (...args) => {
604
- if (!ignore.value)
605
- filteredCb(...args);
606
- }, watchOptions);
607
- } else {
608
- const disposables = [];
609
- const ignoreCounter = vueDemi.ref(0);
610
- const syncCounter = vueDemi.ref(0);
611
- ignorePrevAsyncUpdates = () => {
612
- ignoreCounter.value = syncCounter.value;
613
- };
614
- disposables.push(vueDemi.watch(source, () => {
615
- syncCounter.value++;
616
- }, __spreadProps$3(__spreadValues$6({}, watchOptions), { flush: "sync" })));
617
- ignoreUpdates = (updater) => {
618
- const syncCounterPrev = syncCounter.value;
619
- updater();
620
- ignoreCounter.value += syncCounter.value - syncCounterPrev;
621
- };
622
- disposables.push(vueDemi.watch(source, (...args) => {
623
- const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;
624
- ignoreCounter.value = 0;
625
- syncCounter.value = 0;
626
- if (ignore)
627
- return;
628
- filteredCb(...args);
629
- }, watchOptions));
630
- stop = () => {
631
- disposables.forEach((fn) => fn());
632
- };
633
- }
634
- return { stop, ignoreUpdates, ignorePrevAsyncUpdates };
568
+ function useThrottleFn(fn, ms = 200, trailing = true, leading = true) {
569
+ return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);
635
570
  }
636
571
 
637
- function isDefined(v) {
638
- return vueDemi.unref(v) != null;
572
+ function refThrottled(value, delay = 200, trailing = true, leading = true) {
573
+ if (delay <= 0)
574
+ return value;
575
+ const throttled = vueDemi.ref(value.value);
576
+ const updater = useThrottleFn(() => {
577
+ throttled.value = value.value;
578
+ }, delay, trailing, leading);
579
+ vueDemi.watch(value, () => updater());
580
+ return throttled;
639
581
  }
640
582
 
641
- var __defProp$5 = Object.defineProperty;
642
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
643
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
644
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
645
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
646
- var __spreadValues$5 = (a, b) => {
647
- for (var prop in b || (b = {}))
648
- if (__hasOwnProp$6.call(b, prop))
649
- __defNormalProp$5(a, prop, b[prop]);
650
- if (__getOwnPropSymbols$6)
651
- for (var prop of __getOwnPropSymbols$6(b)) {
652
- if (__propIsEnum$6.call(b, prop))
653
- __defNormalProp$5(a, prop, b[prop]);
654
- }
655
- return a;
656
- };
657
- function makeDestructurable(obj, arr) {
658
- if (typeof Symbol !== "undefined") {
659
- const clone = __spreadValues$5({}, obj);
660
- Object.defineProperty(clone, Symbol.iterator, {
661
- enumerable: false,
662
- value() {
663
- let index = 0;
664
- return {
665
- next: () => ({
666
- value: arr[index++],
667
- done: index > arr.length
668
- })
669
- };
583
+ function refWithControl(initial, options = {}) {
584
+ let source = initial;
585
+ let track;
586
+ let trigger;
587
+ const ref = vueDemi.customRef((_track, _trigger) => {
588
+ track = _track;
589
+ trigger = _trigger;
590
+ return {
591
+ get() {
592
+ return get();
593
+ },
594
+ set(v) {
595
+ set(v);
670
596
  }
671
- });
672
- return clone;
673
- } else {
674
- return Object.assign([...arr], obj);
597
+ };
598
+ });
599
+ function get(tracking = true) {
600
+ if (tracking)
601
+ track();
602
+ return source;
675
603
  }
676
- }
677
-
678
- function not(v) {
679
- return vueDemi.computed(() => !vueDemi.unref(v));
680
- }
681
-
682
- function or(...args) {
683
- return vueDemi.computed(() => args.some((i) => vueDemi.unref(i)));
684
- }
685
-
686
- var __defProp$4 = Object.defineProperty;
687
- var __defProps$2 = Object.defineProperties;
688
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
689
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
690
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
691
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
692
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
693
- var __spreadValues$4 = (a, b) => {
694
- for (var prop in b || (b = {}))
695
- if (__hasOwnProp$5.call(b, prop))
696
- __defNormalProp$4(a, prop, b[prop]);
697
- if (__getOwnPropSymbols$5)
698
- for (var prop of __getOwnPropSymbols$5(b)) {
699
- if (__propIsEnum$5.call(b, prop))
700
- __defNormalProp$4(a, prop, b[prop]);
701
- }
702
- return a;
703
- };
704
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
705
- var __objRest$2 = (source, exclude) => {
706
- var target = {};
707
- for (var prop in source)
708
- if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)
709
- target[prop] = source[prop];
710
- if (source != null && __getOwnPropSymbols$5)
711
- for (var prop of __getOwnPropSymbols$5(source)) {
712
- if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))
713
- target[prop] = source[prop];
714
- }
715
- return target;
716
- };
717
- function pausableWatch(source, cb, options = {}) {
718
- const _a = options, {
719
- eventFilter: filter
720
- } = _a, watchOptions = __objRest$2(_a, [
721
- "eventFilter"
722
- ]);
723
- const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
724
- const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$4({}, watchOptions), {
725
- eventFilter
726
- }));
727
- return { stop, pause, resume, isActive };
728
- }
729
-
730
- function reactifyObject(obj, optionsOrKeys = {}) {
731
- let keys = [];
732
- if (Array.isArray(optionsOrKeys)) {
733
- keys = optionsOrKeys;
734
- } else {
735
- const { includeOwnProperties = true } = optionsOrKeys;
736
- keys.push(...Object.keys(obj));
737
- if (includeOwnProperties)
738
- keys.push(...Object.getOwnPropertyNames(obj));
604
+ function set(value, triggering = true) {
605
+ var _a, _b;
606
+ if (value === source)
607
+ return;
608
+ const old = source;
609
+ if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)
610
+ return;
611
+ source = value;
612
+ (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);
613
+ if (triggering)
614
+ trigger();
739
615
  }
740
- return Object.fromEntries(keys.map((key) => {
741
- const value = obj[key];
742
- return [
743
- key,
744
- typeof value === "function" ? reactify(value.bind(obj)) : value
745
- ];
746
- }));
747
- }
748
-
749
- function reactivePick(obj, ...keys) {
750
- return vueDemi.reactive(Object.fromEntries(keys.map((k) => [k, vueDemi.toRef(obj, k)])));
751
- }
752
-
753
- function refDefault(source, defaultValue) {
754
- return vueDemi.computed({
755
- get() {
756
- var _a;
757
- return (_a = source.value) != null ? _a : defaultValue;
758
- },
759
- set(value) {
760
- source.value = value;
761
- }
762
- });
616
+ const untrackedGet = () => get(false);
617
+ const silentSet = (v) => set(v, false);
618
+ const peek = () => get(false);
619
+ const lay = (v) => set(v, false);
620
+ return extendRef(ref, {
621
+ get,
622
+ set,
623
+ untrackedGet,
624
+ silentSet,
625
+ peek,
626
+ lay
627
+ }, { enumerable: true });
763
628
  }
629
+ const controlledRef = refWithControl;
764
630
 
765
631
  function set(...args) {
766
632
  if (args.length === 2) {
@@ -777,126 +643,56 @@
777
643
  }
778
644
  }
779
645
 
780
- function syncRef(source, targets, {
781
- flush = "sync",
782
- deep = false,
783
- immediate = true
784
- } = {}) {
646
+ function syncRef(left, right, options = {}) {
647
+ const {
648
+ flush = "sync",
649
+ deep = false,
650
+ immediate = true,
651
+ direction = "both"
652
+ } = options;
653
+ let stop1, stop2;
654
+ if (direction === "both" || direction === "ltr") {
655
+ stop1 = vueDemi.watch(left, (newValue) => right.value = newValue, { flush, deep, immediate });
656
+ }
657
+ if (direction === "both" || direction === "rtl") {
658
+ stop2 = vueDemi.watch(right, (newValue) => left.value = newValue, { flush, deep, immediate });
659
+ }
660
+ return () => {
661
+ stop1 == null ? void 0 : stop1();
662
+ stop2 == null ? void 0 : stop2();
663
+ };
664
+ }
665
+
666
+ function syncRefs(source, targets, options = {}) {
667
+ const {
668
+ flush = "sync",
669
+ deep = false,
670
+ immediate = true
671
+ } = options;
785
672
  if (!Array.isArray(targets))
786
673
  targets = [targets];
787
674
  return vueDemi.watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });
788
675
  }
789
676
 
790
- function useThrottleFn(fn, ms = 200, trailing = true, leading = true) {
791
- return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);
792
- }
793
-
794
- function useThrottle(value, delay = 200, trailing = true, leading = true) {
795
- if (delay <= 0)
796
- return value;
797
- const throttled = vueDemi.ref(value.value);
798
- const updater = useThrottleFn(() => {
799
- throttled.value = value.value;
800
- }, delay, trailing, leading);
801
- vueDemi.watch(value, () => updater());
802
- return throttled;
803
- }
804
-
805
- var __defProp$3 = Object.defineProperty;
806
- var __defProps$1 = Object.defineProperties;
807
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
808
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
809
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
810
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
811
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
812
- var __spreadValues$3 = (a, b) => {
813
- for (var prop in b || (b = {}))
814
- if (__hasOwnProp$4.call(b, prop))
815
- __defNormalProp$3(a, prop, b[prop]);
816
- if (__getOwnPropSymbols$4)
817
- for (var prop of __getOwnPropSymbols$4(b)) {
818
- if (__propIsEnum$4.call(b, prop))
819
- __defNormalProp$3(a, prop, b[prop]);
820
- }
821
- return a;
822
- };
823
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
824
- var __objRest$1 = (source, exclude) => {
825
- var target = {};
826
- for (var prop in source)
827
- if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
828
- target[prop] = source[prop];
829
- if (source != null && __getOwnPropSymbols$4)
830
- for (var prop of __getOwnPropSymbols$4(source)) {
831
- if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
832
- target[prop] = source[prop];
833
- }
834
- return target;
835
- };
836
- function throttledWatch(source, cb, options = {}) {
837
- const _a = options, {
838
- throttle = 0,
839
- trailing = true,
840
- leading = true
841
- } = _a, watchOptions = __objRest$1(_a, [
842
- "throttle",
843
- "trailing",
844
- "leading"
845
- ]);
846
- return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$3({}, watchOptions), {
847
- eventFilter: throttleFilter(throttle, trailing, leading)
848
- }));
849
- }
850
-
851
- function toReactive(objectRef) {
852
- if (!vueDemi.isRef(objectRef))
853
- return vueDemi.reactive(objectRef);
854
- const proxy = new Proxy({}, {
855
- get(_, p, receiver) {
856
- return Reflect.get(objectRef.value, p, receiver);
857
- },
858
- set(_, p, value) {
859
- objectRef.value[p] = value;
860
- return true;
861
- },
862
- deleteProperty(_, p) {
863
- return Reflect.deleteProperty(objectRef.value, p);
864
- },
865
- has(_, p) {
866
- return Reflect.has(objectRef.value, p);
867
- },
868
- ownKeys() {
869
- return Object.keys(objectRef.value);
870
- },
871
- getOwnPropertyDescriptor() {
872
- return {
873
- enumerable: true,
874
- configurable: true
875
- };
876
- }
877
- });
878
- return vueDemi.reactive(proxy);
879
- }
880
-
881
- var __defProp$2 = Object.defineProperty;
882
- var __defProps = Object.defineProperties;
883
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
884
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
885
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
886
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
887
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
888
- var __spreadValues$2 = (a, b) => {
677
+ var __defProp$6 = Object.defineProperty;
678
+ var __defProps$4 = Object.defineProperties;
679
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
680
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
681
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
682
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
683
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
684
+ var __spreadValues$6 = (a, b) => {
889
685
  for (var prop in b || (b = {}))
890
- if (__hasOwnProp$3.call(b, prop))
891
- __defNormalProp$2(a, prop, b[prop]);
892
- if (__getOwnPropSymbols$3)
893
- for (var prop of __getOwnPropSymbols$3(b)) {
894
- if (__propIsEnum$3.call(b, prop))
895
- __defNormalProp$2(a, prop, b[prop]);
686
+ if (__hasOwnProp$8.call(b, prop))
687
+ __defNormalProp$6(a, prop, b[prop]);
688
+ if (__getOwnPropSymbols$8)
689
+ for (var prop of __getOwnPropSymbols$8(b)) {
690
+ if (__propIsEnum$8.call(b, prop))
691
+ __defNormalProp$6(a, prop, b[prop]);
896
692
  }
897
693
  return a;
898
694
  };
899
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
695
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
900
696
  function toRefs(objectRef) {
901
697
  if (!vueDemi.isRef(objectRef))
902
698
  return vueDemi.toRefs(objectRef);
@@ -912,7 +708,7 @@
912
708
  copy[key] = v;
913
709
  objectRef.value = copy;
914
710
  } else {
915
- objectRef.value = __spreadProps(__spreadValues$2({}, objectRef.value), { [key]: v });
711
+ objectRef.value = __spreadProps$4(__spreadValues$6({}, objectRef.value), { [key]: v });
916
712
  }
917
713
  }
918
714
  }));
@@ -1042,6 +838,56 @@
1042
838
  return { count, inc, dec, get, set, reset };
1043
839
  }
1044
840
 
841
+ const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
842
+ const REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
843
+ const formatDate = (date, formatStr) => {
844
+ const years = date.getFullYear();
845
+ const month = date.getMonth();
846
+ const days = date.getDate();
847
+ const hours = date.getHours();
848
+ const minutes = date.getMinutes();
849
+ const seconds = date.getSeconds();
850
+ const milliseconds = date.getMilliseconds();
851
+ const matches = {
852
+ YY: String(years).slice(-2),
853
+ YYYY: years,
854
+ M: month + 1,
855
+ MM: `${month + 1}`.padStart(2, "0"),
856
+ D: String(days),
857
+ DD: `${days}`.padStart(2, "0"),
858
+ H: String(hours),
859
+ HH: `${hours}`.padStart(2, "0"),
860
+ h: `${hours % 12 || 12}`.padStart(1, "0"),
861
+ hh: `${hours % 12 || 12}`.padStart(2, "0"),
862
+ m: String(minutes),
863
+ mm: `${minutes}`.padStart(2, "0"),
864
+ s: String(seconds),
865
+ ss: `${seconds}`.padStart(2, "0"),
866
+ SSS: `${milliseconds}`.padStart(3, "0")
867
+ };
868
+ return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]);
869
+ };
870
+ const normalizeDate = (date) => {
871
+ if (date === null)
872
+ return new Date(NaN);
873
+ if (date === void 0)
874
+ return new Date();
875
+ if (date instanceof Date)
876
+ return new Date(date);
877
+ if (typeof date === "string" && !/Z$/i.test(date)) {
878
+ const d = date.match(REGEX_PARSE);
879
+ if (d) {
880
+ const m = d[2] - 1 || 0;
881
+ const ms = (d[7] || "0").substring(0, 3);
882
+ return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
883
+ }
884
+ }
885
+ return new Date(date);
886
+ };
887
+ function useDateFormat(date, formatStr = "HH:mm:ss") {
888
+ return vueDemi.computed(() => formatDate(normalizeDate(vueDemi.unref(date)), vueDemi.unref(formatStr)));
889
+ }
890
+
1045
891
  function useIntervalFn(cb, interval = 1e3, options = {}) {
1046
892
  const {
1047
893
  immediate = true,
@@ -1085,19 +931,19 @@
1085
931
  };
1086
932
  }
1087
933
 
1088
- var __defProp$1 = Object.defineProperty;
1089
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
1090
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
1091
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
1092
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1093
- var __spreadValues$1 = (a, b) => {
934
+ var __defProp$5 = Object.defineProperty;
935
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
936
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
937
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
938
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
939
+ var __spreadValues$5 = (a, b) => {
1094
940
  for (var prop in b || (b = {}))
1095
- if (__hasOwnProp$2.call(b, prop))
1096
- __defNormalProp$1(a, prop, b[prop]);
1097
- if (__getOwnPropSymbols$2)
1098
- for (var prop of __getOwnPropSymbols$2(b)) {
1099
- if (__propIsEnum$2.call(b, prop))
1100
- __defNormalProp$1(a, prop, b[prop]);
941
+ if (__hasOwnProp$7.call(b, prop))
942
+ __defNormalProp$5(a, prop, b[prop]);
943
+ if (__getOwnPropSymbols$7)
944
+ for (var prop of __getOwnPropSymbols$7(b)) {
945
+ if (__propIsEnum$7.call(b, prop))
946
+ __defNormalProp$5(a, prop, b[prop]);
1101
947
  }
1102
948
  return a;
1103
949
  };
@@ -1109,7 +955,7 @@
1109
955
  const counter = vueDemi.ref(0);
1110
956
  const controls = useIntervalFn(() => counter.value += 1, interval, { immediate });
1111
957
  if (exposeControls) {
1112
- return __spreadValues$1({
958
+ return __spreadValues$5({
1113
959
  counter
1114
960
  }, controls);
1115
961
  } else {
@@ -1158,23 +1004,23 @@
1158
1004
  return {
1159
1005
  isPending,
1160
1006
  start,
1161
- stop
1162
- };
1163
- }
1164
-
1165
- var __defProp = Object.defineProperty;
1166
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
1167
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
1168
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
1169
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1170
- var __spreadValues = (a, b) => {
1007
+ stop
1008
+ };
1009
+ }
1010
+
1011
+ var __defProp$4 = Object.defineProperty;
1012
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
1013
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
1014
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
1015
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1016
+ var __spreadValues$4 = (a, b) => {
1171
1017
  for (var prop in b || (b = {}))
1172
- if (__hasOwnProp$1.call(b, prop))
1173
- __defNormalProp(a, prop, b[prop]);
1174
- if (__getOwnPropSymbols$1)
1175
- for (var prop of __getOwnPropSymbols$1(b)) {
1176
- if (__propIsEnum$1.call(b, prop))
1177
- __defNormalProp(a, prop, b[prop]);
1018
+ if (__hasOwnProp$6.call(b, prop))
1019
+ __defNormalProp$4(a, prop, b[prop]);
1020
+ if (__getOwnPropSymbols$6)
1021
+ for (var prop of __getOwnPropSymbols$6(b)) {
1022
+ if (__propIsEnum$6.call(b, prop))
1023
+ __defNormalProp$4(a, prop, b[prop]);
1178
1024
  }
1179
1025
  return a;
1180
1026
  };
@@ -1185,7 +1031,7 @@
1185
1031
  const controls = useTimeoutFn(noop, interval, options);
1186
1032
  const ready = vueDemi.computed(() => !controls.isPending.value);
1187
1033
  if (exposeControls) {
1188
- return __spreadValues({
1034
+ return __spreadValues$4({
1189
1035
  ready
1190
1036
  }, controls);
1191
1037
  } else {
@@ -1209,17 +1055,41 @@
1209
1055
  }
1210
1056
  }
1211
1057
 
1212
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
1213
- var __hasOwnProp = Object.prototype.hasOwnProperty;
1214
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
1215
- var __objRest = (source, exclude) => {
1058
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
1059
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
1060
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
1061
+ var __objRest$5 = (source, exclude) => {
1216
1062
  var target = {};
1217
1063
  for (var prop in source)
1218
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
1064
+ if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)
1219
1065
  target[prop] = source[prop];
1220
- if (source != null && __getOwnPropSymbols)
1221
- for (var prop of __getOwnPropSymbols(source)) {
1222
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
1066
+ if (source != null && __getOwnPropSymbols$5)
1067
+ for (var prop of __getOwnPropSymbols$5(source)) {
1068
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))
1069
+ target[prop] = source[prop];
1070
+ }
1071
+ return target;
1072
+ };
1073
+ function watchWithFilter(source, cb, options = {}) {
1074
+ const _a = options, {
1075
+ eventFilter = bypassFilter
1076
+ } = _a, watchOptions = __objRest$5(_a, [
1077
+ "eventFilter"
1078
+ ]);
1079
+ return vueDemi.watch(source, createFilterWrapper(eventFilter, cb), watchOptions);
1080
+ }
1081
+
1082
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
1083
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
1084
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
1085
+ var __objRest$4 = (source, exclude) => {
1086
+ var target = {};
1087
+ for (var prop in source)
1088
+ if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
1089
+ target[prop] = source[prop];
1090
+ if (source != null && __getOwnPropSymbols$4)
1091
+ for (var prop of __getOwnPropSymbols$4(source)) {
1092
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
1223
1093
  target[prop] = source[prop];
1224
1094
  }
1225
1095
  return target;
@@ -1227,7 +1097,7 @@
1227
1097
  function watchAtMost(source, cb, options) {
1228
1098
  const _a = options, {
1229
1099
  count
1230
- } = _a, watchOptions = __objRest(_a, [
1100
+ } = _a, watchOptions = __objRest$4(_a, [
1231
1101
  "count"
1232
1102
  ]);
1233
1103
  const current = vueDemi.ref(0);
@@ -1240,6 +1110,132 @@
1240
1110
  return { count: current, stop };
1241
1111
  }
1242
1112
 
1113
+ var __defProp$3 = Object.defineProperty;
1114
+ var __defProps$3 = Object.defineProperties;
1115
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
1116
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
1117
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
1118
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
1119
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1120
+ var __spreadValues$3 = (a, b) => {
1121
+ for (var prop in b || (b = {}))
1122
+ if (__hasOwnProp$3.call(b, prop))
1123
+ __defNormalProp$3(a, prop, b[prop]);
1124
+ if (__getOwnPropSymbols$3)
1125
+ for (var prop of __getOwnPropSymbols$3(b)) {
1126
+ if (__propIsEnum$3.call(b, prop))
1127
+ __defNormalProp$3(a, prop, b[prop]);
1128
+ }
1129
+ return a;
1130
+ };
1131
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
1132
+ var __objRest$3 = (source, exclude) => {
1133
+ var target = {};
1134
+ for (var prop in source)
1135
+ if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
1136
+ target[prop] = source[prop];
1137
+ if (source != null && __getOwnPropSymbols$3)
1138
+ for (var prop of __getOwnPropSymbols$3(source)) {
1139
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
1140
+ target[prop] = source[prop];
1141
+ }
1142
+ return target;
1143
+ };
1144
+ function watchDebounced(source, cb, options = {}) {
1145
+ const _a = options, {
1146
+ debounce = 0
1147
+ } = _a, watchOptions = __objRest$3(_a, [
1148
+ "debounce"
1149
+ ]);
1150
+ return watchWithFilter(source, cb, __spreadProps$3(__spreadValues$3({}, watchOptions), {
1151
+ eventFilter: debounceFilter(debounce)
1152
+ }));
1153
+ }
1154
+
1155
+ var __defProp$2 = Object.defineProperty;
1156
+ var __defProps$2 = Object.defineProperties;
1157
+ var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
1158
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
1159
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
1160
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
1161
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1162
+ var __spreadValues$2 = (a, b) => {
1163
+ for (var prop in b || (b = {}))
1164
+ if (__hasOwnProp$2.call(b, prop))
1165
+ __defNormalProp$2(a, prop, b[prop]);
1166
+ if (__getOwnPropSymbols$2)
1167
+ for (var prop of __getOwnPropSymbols$2(b)) {
1168
+ if (__propIsEnum$2.call(b, prop))
1169
+ __defNormalProp$2(a, prop, b[prop]);
1170
+ }
1171
+ return a;
1172
+ };
1173
+ var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1174
+ var __objRest$2 = (source, exclude) => {
1175
+ var target = {};
1176
+ for (var prop in source)
1177
+ if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
1178
+ target[prop] = source[prop];
1179
+ if (source != null && __getOwnPropSymbols$2)
1180
+ for (var prop of __getOwnPropSymbols$2(source)) {
1181
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
1182
+ target[prop] = source[prop];
1183
+ }
1184
+ return target;
1185
+ };
1186
+ function watchIgnorable(source, cb, options = {}) {
1187
+ const _a = options, {
1188
+ eventFilter = bypassFilter
1189
+ } = _a, watchOptions = __objRest$2(_a, [
1190
+ "eventFilter"
1191
+ ]);
1192
+ const filteredCb = createFilterWrapper(eventFilter, cb);
1193
+ let ignoreUpdates;
1194
+ let ignorePrevAsyncUpdates;
1195
+ let stop;
1196
+ if (watchOptions.flush === "sync") {
1197
+ const ignore = vueDemi.ref(false);
1198
+ ignorePrevAsyncUpdates = () => {
1199
+ };
1200
+ ignoreUpdates = (updater) => {
1201
+ ignore.value = true;
1202
+ updater();
1203
+ ignore.value = false;
1204
+ };
1205
+ stop = vueDemi.watch(source, (...args) => {
1206
+ if (!ignore.value)
1207
+ filteredCb(...args);
1208
+ }, watchOptions);
1209
+ } else {
1210
+ const disposables = [];
1211
+ const ignoreCounter = vueDemi.ref(0);
1212
+ const syncCounter = vueDemi.ref(0);
1213
+ ignorePrevAsyncUpdates = () => {
1214
+ ignoreCounter.value = syncCounter.value;
1215
+ };
1216
+ disposables.push(vueDemi.watch(source, () => {
1217
+ syncCounter.value++;
1218
+ }, __spreadProps$2(__spreadValues$2({}, watchOptions), { flush: "sync" })));
1219
+ ignoreUpdates = (updater) => {
1220
+ const syncCounterPrev = syncCounter.value;
1221
+ updater();
1222
+ ignoreCounter.value += syncCounter.value - syncCounterPrev;
1223
+ };
1224
+ disposables.push(vueDemi.watch(source, (...args) => {
1225
+ const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;
1226
+ ignoreCounter.value = 0;
1227
+ syncCounter.value = 0;
1228
+ if (ignore)
1229
+ return;
1230
+ filteredCb(...args);
1231
+ }, watchOptions));
1232
+ stop = () => {
1233
+ disposables.forEach((fn) => fn());
1234
+ };
1235
+ }
1236
+ return { stop, ignoreUpdates, ignorePrevAsyncUpdates };
1237
+ }
1238
+
1243
1239
  function watchOnce(source, cb, options) {
1244
1240
  const stop = vueDemi.watch(source, (...args) => {
1245
1241
  vueDemi.nextTick(() => stop());
@@ -1247,6 +1243,96 @@
1247
1243
  }, options);
1248
1244
  }
1249
1245
 
1246
+ var __defProp$1 = Object.defineProperty;
1247
+ var __defProps$1 = Object.defineProperties;
1248
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
1249
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
1250
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
1251
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
1252
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1253
+ var __spreadValues$1 = (a, b) => {
1254
+ for (var prop in b || (b = {}))
1255
+ if (__hasOwnProp$1.call(b, prop))
1256
+ __defNormalProp$1(a, prop, b[prop]);
1257
+ if (__getOwnPropSymbols$1)
1258
+ for (var prop of __getOwnPropSymbols$1(b)) {
1259
+ if (__propIsEnum$1.call(b, prop))
1260
+ __defNormalProp$1(a, prop, b[prop]);
1261
+ }
1262
+ return a;
1263
+ };
1264
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
1265
+ var __objRest$1 = (source, exclude) => {
1266
+ var target = {};
1267
+ for (var prop in source)
1268
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
1269
+ target[prop] = source[prop];
1270
+ if (source != null && __getOwnPropSymbols$1)
1271
+ for (var prop of __getOwnPropSymbols$1(source)) {
1272
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
1273
+ target[prop] = source[prop];
1274
+ }
1275
+ return target;
1276
+ };
1277
+ function watchPausable(source, cb, options = {}) {
1278
+ const _a = options, {
1279
+ eventFilter: filter
1280
+ } = _a, watchOptions = __objRest$1(_a, [
1281
+ "eventFilter"
1282
+ ]);
1283
+ const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
1284
+ const stop = watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {
1285
+ eventFilter
1286
+ }));
1287
+ return { stop, pause, resume, isActive };
1288
+ }
1289
+
1290
+ var __defProp = Object.defineProperty;
1291
+ var __defProps = Object.defineProperties;
1292
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
1293
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
1294
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
1295
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
1296
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1297
+ var __spreadValues = (a, b) => {
1298
+ for (var prop in b || (b = {}))
1299
+ if (__hasOwnProp.call(b, prop))
1300
+ __defNormalProp(a, prop, b[prop]);
1301
+ if (__getOwnPropSymbols)
1302
+ for (var prop of __getOwnPropSymbols(b)) {
1303
+ if (__propIsEnum.call(b, prop))
1304
+ __defNormalProp(a, prop, b[prop]);
1305
+ }
1306
+ return a;
1307
+ };
1308
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1309
+ var __objRest = (source, exclude) => {
1310
+ var target = {};
1311
+ for (var prop in source)
1312
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
1313
+ target[prop] = source[prop];
1314
+ if (source != null && __getOwnPropSymbols)
1315
+ for (var prop of __getOwnPropSymbols(source)) {
1316
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
1317
+ target[prop] = source[prop];
1318
+ }
1319
+ return target;
1320
+ };
1321
+ function watchThrottled(source, cb, options = {}) {
1322
+ const _a = options, {
1323
+ throttle = 0,
1324
+ trailing = true,
1325
+ leading = true
1326
+ } = _a, watchOptions = __objRest(_a, [
1327
+ "throttle",
1328
+ "trailing",
1329
+ "leading"
1330
+ ]);
1331
+ return watchWithFilter(source, cb, __spreadProps(__spreadValues({}, watchOptions), {
1332
+ eventFilter: throttleFilter(throttle, trailing, leading)
1333
+ }));
1334
+ }
1335
+
1250
1336
  function whenever(source, cb, options) {
1251
1337
  return vueDemi.watch(source, (v, ov, onInvalidate) => {
1252
1338
  if (v)
@@ -1254,13 +1340,15 @@
1254
1340
  }, options);
1255
1341
  }
1256
1342
 
1257
- exports.and = and;
1343
+ exports.and = logicAnd;
1258
1344
  exports.assert = assert;
1259
- exports.biSyncRef = biSyncRef;
1345
+ exports.autoResetRef = refAutoReset;
1260
1346
  exports.bypassFilter = bypassFilter;
1261
1347
  exports.clamp = clamp;
1348
+ exports.computedEager = computedEager;
1349
+ exports.computedWithControl = computedWithControl;
1262
1350
  exports.containsProp = containsProp;
1263
- exports.controlledComputed = controlledComputed;
1351
+ exports.controlledComputed = computedWithControl;
1264
1352
  exports.controlledRef = controlledRef;
1265
1353
  exports.createEventHook = createEventHook;
1266
1354
  exports.createFilterWrapper = createFilterWrapper;
@@ -1269,13 +1357,14 @@
1269
1357
  exports.createSharedComposable = createSharedComposable;
1270
1358
  exports.createSingletonPromise = createSingletonPromise;
1271
1359
  exports.debounceFilter = debounceFilter;
1272
- exports.debouncedRef = useDebounce;
1273
- exports.debouncedWatch = debouncedWatch;
1274
- exports.eagerComputed = eagerComputed;
1360
+ exports.debouncedRef = refDebounced;
1361
+ exports.debouncedWatch = watchDebounced;
1362
+ exports.eagerComputed = computedEager;
1275
1363
  exports.extendRef = extendRef;
1364
+ exports.formatDate = formatDate;
1276
1365
  exports.get = get;
1277
1366
  exports.identity = identity;
1278
- exports.ignorableWatch = ignorableWatch;
1367
+ exports.ignorableWatch = watchIgnorable;
1279
1368
  exports.increaseWithUnit = increaseWithUnit;
1280
1369
  exports.invoke = invoke;
1281
1370
  exports.isBoolean = isBoolean;
@@ -1287,25 +1376,36 @@
1287
1376
  exports.isObject = isObject;
1288
1377
  exports.isString = isString;
1289
1378
  exports.isWindow = isWindow;
1379
+ exports.logicAnd = logicAnd;
1380
+ exports.logicNot = logicNot;
1381
+ exports.logicOr = logicOr;
1290
1382
  exports.makeDestructurable = makeDestructurable;
1291
1383
  exports.noop = noop;
1292
- exports.not = not;
1384
+ exports.normalizeDate = normalizeDate;
1385
+ exports.not = logicNot;
1293
1386
  exports.now = now;
1294
1387
  exports.objectPick = objectPick;
1295
- exports.or = or;
1388
+ exports.or = logicOr;
1296
1389
  exports.pausableFilter = pausableFilter;
1297
- exports.pausableWatch = pausableWatch;
1390
+ exports.pausableWatch = watchPausable;
1298
1391
  exports.promiseTimeout = promiseTimeout;
1299
1392
  exports.rand = rand;
1300
1393
  exports.reactify = reactify;
1301
1394
  exports.reactifyObject = reactifyObject;
1395
+ exports.reactiveComputed = reactiveComputed;
1396
+ exports.reactiveOmit = reactiveOmit;
1302
1397
  exports.reactivePick = reactivePick;
1398
+ exports.refAutoReset = refAutoReset;
1399
+ exports.refDebounced = refDebounced;
1303
1400
  exports.refDefault = refDefault;
1401
+ exports.refThrottled = refThrottled;
1402
+ exports.refWithControl = refWithControl;
1304
1403
  exports.set = set;
1305
1404
  exports.syncRef = syncRef;
1405
+ exports.syncRefs = syncRefs;
1306
1406
  exports.throttleFilter = throttleFilter;
1307
- exports.throttledRef = useThrottle;
1308
- exports.throttledWatch = throttledWatch;
1407
+ exports.throttledRef = refThrottled;
1408
+ exports.throttledWatch = watchThrottled;
1309
1409
  exports.timestamp = timestamp;
1310
1410
  exports.toReactive = toReactive;
1311
1411
  exports.toRefs = toRefs;
@@ -1315,18 +1415,23 @@
1315
1415
  exports.tryOnUnmounted = tryOnUnmounted;
1316
1416
  exports.until = until;
1317
1417
  exports.useCounter = useCounter;
1318
- exports.useDebounce = useDebounce;
1418
+ exports.useDateFormat = useDateFormat;
1419
+ exports.useDebounce = refDebounced;
1319
1420
  exports.useDebounceFn = useDebounceFn;
1320
1421
  exports.useInterval = useInterval;
1321
1422
  exports.useIntervalFn = useIntervalFn;
1322
1423
  exports.useLastChanged = useLastChanged;
1323
- exports.useThrottle = useThrottle;
1424
+ exports.useThrottle = refThrottled;
1324
1425
  exports.useThrottleFn = useThrottleFn;
1325
1426
  exports.useTimeout = useTimeout;
1326
1427
  exports.useTimeoutFn = useTimeoutFn;
1327
1428
  exports.useToggle = useToggle;
1328
1429
  exports.watchAtMost = watchAtMost;
1430
+ exports.watchDebounced = watchDebounced;
1431
+ exports.watchIgnorable = watchIgnorable;
1329
1432
  exports.watchOnce = watchOnce;
1433
+ exports.watchPausable = watchPausable;
1434
+ exports.watchThrottled = watchThrottled;
1330
1435
  exports.watchWithFilter = watchWithFilter;
1331
1436
  exports.whenever = whenever;
1332
1437