@vueuse/shared 9.9.0 → 9.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs CHANGED
@@ -65,7 +65,9 @@ function resolveUnref(r) {
65
65
 
66
66
  function createFilterWrapper(filter, fn) {
67
67
  function wrapper(...args) {
68
- filter(() => fn.apply(this, args), { fn, thisArg: this, args });
68
+ return new Promise((resolve, reject) => {
69
+ Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
70
+ });
69
71
  }
70
72
  return wrapper;
71
73
  }
@@ -75,48 +77,64 @@ const bypassFilter = (invoke) => {
75
77
  function debounceFilter(ms, options = {}) {
76
78
  let timer;
77
79
  let maxTimer;
80
+ let lastRejector = noop;
81
+ const _clearTimeout = (timer2) => {
82
+ clearTimeout(timer2);
83
+ lastRejector();
84
+ lastRejector = noop;
85
+ };
78
86
  const filter = (invoke) => {
79
87
  const duration = resolveUnref(ms);
80
88
  const maxDuration = resolveUnref(options.maxWait);
81
89
  if (timer)
82
- clearTimeout(timer);
90
+ _clearTimeout(timer);
83
91
  if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
84
92
  if (maxTimer) {
85
- clearTimeout(maxTimer);
93
+ _clearTimeout(maxTimer);
86
94
  maxTimer = null;
87
95
  }
88
- return invoke();
96
+ return Promise.resolve(invoke());
89
97
  }
90
- if (maxDuration && !maxTimer) {
91
- maxTimer = setTimeout(() => {
92
- if (timer)
93
- clearTimeout(timer);
98
+ return new Promise((resolve, reject) => {
99
+ lastRejector = options.rejectOnCancel ? reject : resolve;
100
+ if (maxDuration && !maxTimer) {
101
+ maxTimer = setTimeout(() => {
102
+ if (timer)
103
+ _clearTimeout(timer);
104
+ maxTimer = null;
105
+ resolve(invoke());
106
+ }, maxDuration);
107
+ }
108
+ timer = setTimeout(() => {
109
+ if (maxTimer)
110
+ _clearTimeout(maxTimer);
94
111
  maxTimer = null;
95
- invoke();
96
- }, maxDuration);
97
- }
98
- timer = setTimeout(() => {
99
- if (maxTimer)
100
- clearTimeout(maxTimer);
101
- maxTimer = null;
102
- invoke();
103
- }, duration);
112
+ resolve(invoke());
113
+ }, duration);
114
+ });
104
115
  };
105
116
  return filter;
106
117
  }
107
- function throttleFilter(ms, trailing = true, leading = true) {
118
+ function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {
108
119
  let lastExec = 0;
109
120
  let timer;
110
121
  let isLeading = true;
122
+ let lastRejector = noop;
123
+ let lastValue;
111
124
  const clear = () => {
112
125
  if (timer) {
113
126
  clearTimeout(timer);
114
127
  timer = void 0;
128
+ lastRejector();
129
+ lastRejector = noop;
115
130
  }
116
131
  };
117
- const filter = (invoke) => {
132
+ const filter = (_invoke) => {
118
133
  const duration = resolveUnref(ms);
119
134
  const elapsed = Date.now() - lastExec;
135
+ const invoke = () => {
136
+ return lastValue = _invoke();
137
+ };
120
138
  clear();
121
139
  if (duration <= 0) {
122
140
  lastExec = Date.now();
@@ -126,16 +144,20 @@ function throttleFilter(ms, trailing = true, leading = true) {
126
144
  lastExec = Date.now();
127
145
  invoke();
128
146
  } else if (trailing) {
129
- timer = setTimeout(() => {
130
- lastExec = Date.now();
131
- isLeading = true;
132
- clear();
133
- invoke();
134
- }, duration - elapsed);
147
+ return new Promise((resolve, reject) => {
148
+ lastRejector = rejectOnCancel ? reject : resolve;
149
+ timer = setTimeout(() => {
150
+ lastExec = Date.now();
151
+ isLeading = true;
152
+ resolve(invoke());
153
+ clear();
154
+ }, duration - elapsed);
155
+ });
135
156
  }
136
157
  if (!leading && !timer)
137
158
  timer = setTimeout(() => isLeading = true, duration);
138
159
  isLeading = false;
160
+ return lastValue;
139
161
  };
140
162
  return filter;
141
163
  }
@@ -530,8 +552,8 @@ function refDefault(source, defaultValue) {
530
552
  });
531
553
  }
532
554
 
533
- function useThrottleFn(fn, ms = 200, trailing = false, leading = true) {
534
- return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);
555
+ function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
556
+ return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);
535
557
  }
536
558
 
537
559
  function refThrottled(value, delay = 200, trailing = true, leading = true) {
@@ -863,6 +885,10 @@ function useArraySome(list, fn) {
863
885
  return vueDemi.computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));
864
886
  }
865
887
 
888
+ function useArrayUnique(list) {
889
+ return vueDemi.computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);
890
+ }
891
+
866
892
  function useCounter(initialValue = 0, options = {}) {
867
893
  const count = vueDemi.ref(initialValue);
868
894
  const {
@@ -1608,6 +1634,7 @@ exports.useArrayJoin = useArrayJoin;
1608
1634
  exports.useArrayMap = useArrayMap;
1609
1635
  exports.useArrayReduce = useArrayReduce;
1610
1636
  exports.useArraySome = useArraySome;
1637
+ exports.useArrayUnique = useArrayUnique;
1611
1638
  exports.useCounter = useCounter;
1612
1639
  exports.useDateFormat = useDateFormat;
1613
1640
  exports.useDebounce = refDebounced;
package/index.d.ts CHANGED
@@ -16,11 +16,11 @@ interface WritableComputedRefWithControl<T> extends WritableComputedRef<T>, Comp
16
16
  declare function computedWithControl<T, S>(source: WatchSource<S> | WatchSource<S>[], fn: ComputedGetter<T>): ComputedRefWithControl<T>;
17
17
  declare function computedWithControl<T, S>(source: WatchSource<S> | WatchSource<S>[], fn: WritableComputedOptions<T>): WritableComputedRefWithControl<T>;
18
18
 
19
- declare type EventHookOn<T = any> = (fn: (param: T) => void) => {
19
+ type EventHookOn<T = any> = (fn: (param: T) => void) => {
20
20
  off: () => void;
21
21
  };
22
- declare type EventHookOff<T = any> = (fn: (param: T) => void) => void;
23
- declare type EventHookTrigger<T = any> = (param: T) => void;
22
+ type EventHookOff<T = any> = (fn: (param: T) => void) => void;
23
+ type EventHookTrigger<T = any> = (param: T) => void;
24
24
  interface EventHook<T = any> {
25
25
  on: EventHookOn<T>;
26
26
  off: EventHookOff<T>;
@@ -33,7 +33,7 @@ interface EventHook<T = any> {
33
33
  */
34
34
  declare function createEventHook<T = any>(): EventHook<T>;
35
35
 
36
- declare type CreateGlobalStateReturn<T> = () => T;
36
+ type CreateGlobalStateReturn<T> = () => T;
37
37
  /**
38
38
  * Keep states in the global scope to be reusable across Vue instances.
39
39
  *
@@ -97,21 +97,25 @@ declare const rand: (min: number, max: number) => number;
97
97
  declare const isIOS: boolean | "";
98
98
  declare const hasOwn: <T extends object, K extends keyof T>(val: T, key: K) => key is K;
99
99
 
100
+ /**
101
+ * Void function
102
+ */
103
+ type Fn = () => void;
100
104
  /**
101
105
  * Any function
102
106
  */
103
- declare type Fn = () => void;
107
+ type AnyFn = (...args: any[]) => any;
104
108
  /**
105
109
  * A ref that allow to set null or undefined
106
110
  */
107
- declare type RemovableRef<T> = Omit<Ref<T>, 'value'> & {
111
+ type RemovableRef<T> = Omit<Ref<T>, 'value'> & {
108
112
  get value(): T;
109
113
  set value(value: T | null | undefined);
110
114
  };
111
115
  /**
112
116
  * @deprecated Use `RemovableRef`
113
117
  */
114
- declare type RemoveableRef<T> = RemovableRef<T>;
118
+ type RemoveableRef<T> = RemovableRef<T>;
115
119
  /**
116
120
  * Maybe it's a ref, or a plain value
117
121
  *
@@ -119,7 +123,7 @@ declare type RemoveableRef<T> = RemovableRef<T>;
119
123
  * type MaybeRef<T> = T | Ref<T>
120
124
  * ```
121
125
  */
122
- declare type MaybeRef<T> = T | Ref<T>;
126
+ type MaybeRef<T> = T | Ref<T>;
123
127
  /**
124
128
  * Maybe it's a ref, or a plain value, or a getter function
125
129
  *
@@ -127,7 +131,7 @@ declare type MaybeRef<T> = T | Ref<T>;
127
131
  * type MaybeComputedRef<T> = (() => T) | T | Ref<T> | ComputedRef<T>
128
132
  * ```
129
133
  */
130
- declare type MaybeComputedRef<T> = MaybeReadonlyRef<T> | MaybeRef<T>;
134
+ type MaybeComputedRef<T> = MaybeReadonlyRef<T> | MaybeRef<T>;
131
135
  /**
132
136
  * Maybe it's a computed ref, or a getter function
133
137
  *
@@ -135,7 +139,7 @@ declare type MaybeComputedRef<T> = MaybeReadonlyRef<T> | MaybeRef<T>;
135
139
  * type MaybeReadonlyRef<T> = (() => T) | ComputedRef<T>
136
140
  * ```
137
141
  */
138
- declare type MaybeReadonlyRef<T> = (() => T) | ComputedRef<T>;
142
+ type MaybeReadonlyRef<T> = (() => T) | ComputedRef<T>;
139
143
  /**
140
144
  * Make all the nested attributes of an object or array to MaybeRef<T>
141
145
  *
@@ -145,17 +149,18 @@ declare type MaybeReadonlyRef<T> = (() => T) | ComputedRef<T>;
145
149
  * UnwrapRef<DeepMaybeRef<T>> === T
146
150
  * ```
147
151
  */
148
- declare type DeepMaybeRef<T> = T extends Ref<infer V> ? MaybeRef<V> : T extends Array<any> | object ? {
152
+ type DeepMaybeRef<T> = T extends Ref<infer V> ? MaybeRef<V> : T extends Array<any> | object ? {
149
153
  [K in keyof T]: DeepMaybeRef<T[K]>;
150
154
  } : MaybeRef<T>;
151
- declare type Arrayable<T> = T[] | T;
155
+ type Arrayable<T> = T[] | T;
152
156
  /**
153
157
  * Infers the element type of an array
154
158
  */
155
- declare type ElementOf<T> = T extends (infer E)[] ? E : never;
156
- declare type ShallowUnwrapRef<T> = T extends Ref<infer P> ? P : T;
157
- declare type Awaitable<T> = Promise<T> | T;
158
- declare type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never;
159
+ type ElementOf<T> = T extends (infer E)[] ? E : never;
160
+ type ShallowUnwrapRef<T> = T extends Ref<infer P> ? P : T;
161
+ type Awaitable<T> = Promise<T> | T;
162
+ type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never;
163
+ type PromisifyFn<T extends AnyFn> = (...args: ArgumentsType<T>) => Promise<ReturnType<T>>;
159
164
  interface Pausable {
160
165
  /**
161
166
  * A ref indicate whether a pausable instance is active
@@ -187,7 +192,7 @@ interface Stoppable {
187
192
  /**
188
193
  * @deprecated Use `Stoppable`
189
194
  */
190
- declare type Stopable = Stoppable;
195
+ type Stopable = Stoppable;
191
196
  interface ConfigurableFlush {
192
197
  /**
193
198
  * Timing for monitoring changes, refer to WatchOptions for more details
@@ -205,20 +210,20 @@ interface ConfigurableFlushSync {
205
210
  */
206
211
  flush?: WatchOptions['flush'];
207
212
  }
208
- declare type MapSources<T> = {
213
+ type MapSources<T> = {
209
214
  [K in keyof T]: T[K] extends WatchSource<infer V> ? V : never;
210
215
  };
211
- declare type MapOldSources<T, Immediate> = {
216
+ type MapOldSources<T, Immediate> = {
212
217
  [K in keyof T]: T[K] extends WatchSource<infer V> ? Immediate extends true ? V | undefined : V : never;
213
218
  };
214
219
 
215
- declare type FunctionArgs<Args extends any[] = any[], Return = void> = (...args: Args) => Return;
220
+ type FunctionArgs<Args extends any[] = any[], Return = void> = (...args: Args) => Return;
216
221
  interface FunctionWrapperOptions<Args extends any[] = any[], This = any> {
217
222
  fn: FunctionArgs<Args, This>;
218
223
  args: Args;
219
224
  thisArg: This;
220
225
  }
221
- declare type EventFilter<Args extends any[] = any[], This = any> = (invoke: Fn, options: FunctionWrapperOptions<Args, This>) => void;
226
+ type EventFilter<Args extends any[] = any[], This = any, Invoke extends AnyFn = AnyFn> = (invoke: Invoke, options: FunctionWrapperOptions<Args, This>) => ReturnType<Invoke> | Promise<ReturnType<Invoke>>;
222
227
  interface ConfigurableEventFilter {
223
228
  /**
224
229
  * Filter for if events should to be received.
@@ -233,11 +238,17 @@ interface DebounceFilterOptions {
233
238
  * In milliseconds.
234
239
  */
235
240
  maxWait?: MaybeComputedRef<number>;
241
+ /**
242
+ * Whether to reject the last call if it's been cancel.
243
+ *
244
+ * @default false
245
+ */
246
+ rejectOnCancel?: boolean;
236
247
  }
237
248
  /**
238
249
  * @internal
239
250
  */
240
- declare function createFilterWrapper<T extends FunctionArgs>(filter: EventFilter, fn: T): T;
251
+ declare function createFilterWrapper<T extends AnyFn>(filter: EventFilter, fn: T): (this: any, ...args: ArgumentsType<T>) => Promise<ReturnType<T>>;
241
252
  declare const bypassFilter: EventFilter;
242
253
  /**
243
254
  * Create an EventFilter that debounce the events
@@ -245,15 +256,16 @@ declare const bypassFilter: EventFilter;
245
256
  * @param ms
246
257
  * @param options
247
258
  */
248
- declare function debounceFilter(ms: MaybeComputedRef<number>, options?: DebounceFilterOptions): EventFilter<any[], any>;
259
+ declare function debounceFilter(ms: MaybeComputedRef<number>, options?: DebounceFilterOptions): EventFilter<any[], any, AnyFn>;
249
260
  /**
250
261
  * Create an EventFilter that throttle the events
251
262
  *
252
263
  * @param ms
253
264
  * @param [trailing=true]
254
265
  * @param [leading=true]
266
+ * @param [rejectOnCancel=false]
255
267
  */
256
- declare function throttleFilter(ms: MaybeComputedRef<number>, trailing?: boolean, leading?: boolean): EventFilter<any[], any>;
268
+ declare function throttleFilter(ms: MaybeComputedRef<number>, trailing?: boolean, leading?: boolean, rejectOnCancel?: boolean): EventFilter<any[], any, AnyFn>;
257
269
  /**
258
270
  * EventFilter that gives extra controls to pause and resume the filter
259
271
  *
@@ -311,7 +323,7 @@ declare function increaseWithUnit(target: string | number, delta: number): strin
311
323
  *
312
324
  * @category Object
313
325
  */
314
- declare function objectPick<O, T extends keyof O>(obj: O, keys: T[], omitUndefined?: boolean): Pick<O, T>;
326
+ declare function objectPick<O extends object, T extends keyof O>(obj: O, keys: T[], omitUndefined?: boolean): Pick<O, T>;
315
327
 
316
328
  /**
317
329
  * Shorthand for accessing `ref.value`
@@ -325,7 +337,7 @@ declare function isDefined<T>(v: T): v is Exclude<T, null | undefined>;
325
337
 
326
338
  declare function makeDestructurable<T extends Record<string, unknown>, A extends readonly any[]>(obj: T, arr: A): T & A;
327
339
 
328
- declare type Reactified<T, Computed extends boolean> = T extends (...args: infer A) => infer R ? (...args: {
340
+ type Reactified<T, Computed extends boolean> = T extends (...args: infer A) => infer R ? (...args: {
329
341
  [K in keyof A]: Computed extends true ? MaybeComputedRef<A[K]> : MaybeRef<A[K]>;
330
342
  }) => ComputedRef<R> : never;
331
343
  interface ReactifyOptions<T extends boolean> {
@@ -345,7 +357,7 @@ interface ReactifyOptions<T extends boolean> {
345
357
  */
346
358
  declare function reactify<T extends Function, K extends boolean = true>(fn: T, options?: ReactifyOptions<K>): Reactified<T, K>;
347
359
 
348
- declare type ReactifyNested<T, Keys extends keyof T = keyof T, S extends boolean = true> = {
360
+ type ReactifyNested<T, Keys extends keyof T = keyof T, S extends boolean = true> = {
349
361
  [K in Keys]: T[K] extends (...args: any[]) => any ? Reactified<T[K], S> : T[K];
350
362
  };
351
363
  interface ReactifyObjectOptions<T extends boolean> extends ReactifyOptions<T> {
@@ -609,7 +621,7 @@ interface UntilBaseInstance<T, Not extends boolean = false> {
609
621
  changed(options?: UntilToMatchOptions): Promise<T>;
610
622
  changedTimes(n?: number, options?: UntilToMatchOptions): Promise<T>;
611
623
  }
612
- declare type Falsy = false | void | null | undefined | 0 | 0n | '';
624
+ type Falsy = false | void | null | undefined | 0 | 0n | '';
613
625
  interface UntilValueInstance<T, Not extends boolean = false> extends UntilBaseInstance<T, Not> {
614
626
  readonly not: UntilValueInstance<T, Not extends true ? false : true>;
615
627
  toBe<P = T>(value: MaybeComputedRef<P>, options?: UntilToMatchOptions): Not extends true ? Promise<T> : Promise<P>;
@@ -704,7 +716,7 @@ declare function useArrayJoin(list: MaybeComputedRef<MaybeComputedRef<any>[]>, s
704
716
  */
705
717
  declare function useArrayMap<T, U = T>(list: MaybeComputedRef<MaybeComputedRef<T>[]>, fn: (element: T, index: number, array: T[]) => U): ComputedRef<U[]>;
706
718
 
707
- declare type UseArrayReducer<PV, CV, R> = (previousValue: PV, currentValue: CV, currentIndex: number) => R;
719
+ type UseArrayReducer<PV, CV, R> = (previousValue: PV, currentValue: CV, currentIndex: number) => R;
708
720
  /**
709
721
  * Reactive `Array.reduce`
710
722
  *
@@ -738,6 +750,14 @@ declare function useArrayReduce<T, U>(list: MaybeComputedRef<MaybeComputedRef<T>
738
750
  */
739
751
  declare function useArraySome<T>(list: MaybeComputedRef<MaybeComputedRef<T>[]>, fn: (element: T, index: number, array: MaybeComputedRef<T>[]) => unknown): ComputedRef<boolean>;
740
752
 
753
+ /**
754
+ * reactive unique array
755
+ * @see https://vueuse.org/useArrayUnique
756
+ * @param {Array} list - the array was called upon.
757
+ * @returns {Array} A computed ref that returns a unique array of items.
758
+ */
759
+ declare function useArrayUnique<T>(list: MaybeComputedRef<MaybeComputedRef<T>[]>): ComputedRef<T[]>;
760
+
741
761
  interface UseCounterOptions {
742
762
  min?: number;
743
763
  max?: number;
@@ -758,7 +778,7 @@ declare function useCounter(initialValue?: number, options?: UseCounterOptions):
758
778
  reset: (val?: number) => number;
759
779
  };
760
780
 
761
- declare type DateLike = Date | number | string | undefined;
781
+ type DateLike = Date | number | string | undefined;
762
782
  interface UseDateFormatOptions {
763
783
  /**
764
784
  * The locale(s) to used for dd/ddd/dddd/MMM/MMMM format
@@ -783,7 +803,7 @@ declare const normalizeDate: (date: DateLike) => Date;
783
803
  * @param options - UseDateFormatOptions
784
804
  */
785
805
  declare function useDateFormat(date: MaybeComputedRef<DateLike>, formatStr?: MaybeComputedRef<string>, options?: UseDateFormatOptions): vue_demi.ComputedRef<string>;
786
- declare type UseDateFormatReturn = ReturnType<typeof useDateFormat>;
806
+ type UseDateFormatReturn = ReturnType<typeof useDateFormat>;
787
807
 
788
808
  /**
789
809
  * Debounce execution of a function.
@@ -795,7 +815,7 @@ declare type UseDateFormatReturn = ReturnType<typeof useDateFormat>;
795
815
  *
796
816
  * @return A new, debounce, function.
797
817
  */
798
- declare function useDebounceFn<T extends FunctionArgs>(fn: T, ms?: MaybeComputedRef<number>, options?: DebounceFilterOptions): T;
818
+ declare function useDebounceFn<T extends FunctionArgs>(fn: T, ms?: MaybeComputedRef<number>, options?: DebounceFilterOptions): PromisifyFn<T>;
799
819
 
800
820
  interface UseIntervalOptions<Controls extends boolean> {
801
821
  /**
@@ -874,9 +894,11 @@ declare function useLastChanged(source: WatchSource, options: UseLastChangedOpti
874
894
  *
875
895
  * @param [leading=true] if true, call fn on the leading edge of the ms timeout
876
896
  *
897
+ * @param [rejectOnCancel=false] if true, reject the last call if it's been cancel
898
+ *
877
899
  * @return A new, throttled, function.
878
900
  */
879
- declare function useThrottleFn<T extends FunctionArgs>(fn: T, ms?: MaybeComputedRef<number>, trailing?: boolean, leading?: boolean): T;
901
+ declare function useThrottleFn<T extends FunctionArgs>(fn: T, ms?: MaybeComputedRef<number>, trailing?: boolean, leading?: boolean, rejectOnCancel?: boolean): PromisifyFn<T>;
880
902
 
881
903
  interface UseTimeoutFnOptions {
882
904
  /**
@@ -988,7 +1010,7 @@ declare function watchDebounced<T extends Readonly<WatchSource<unknown>[]>, Imme
988
1010
  declare function watchDebounced<T, Immediate extends Readonly<boolean> = false>(source: WatchSource<T>, cb: WatchCallback<T, Immediate extends true ? T | undefined : T>, options?: WatchDebouncedOptions<Immediate>): WatchStopHandle;
989
1011
  declare function watchDebounced<T extends object, Immediate extends Readonly<boolean> = false>(source: T, cb: WatchCallback<T, Immediate extends true ? T | undefined : T>, options?: WatchDebouncedOptions<Immediate>): WatchStopHandle;
990
1012
 
991
- declare type IgnoredUpdater = (updater: () => void) => void;
1013
+ type IgnoredUpdater = (updater: () => void) => void;
992
1014
  interface WatchIgnorableReturn {
993
1015
  ignoreUpdates: IgnoredUpdater;
994
1016
  ignorePrevAsyncUpdates: () => void;
@@ -1021,8 +1043,8 @@ interface WatchTriggerableReturn<FnReturnT = void> extends WatchIgnorableReturn
1021
1043
  /** Execute `WatchCallback` immediately */
1022
1044
  trigger: () => FnReturnT;
1023
1045
  }
1024
- declare type OnCleanup = (cleanupFn: () => void) => void;
1025
- declare type WatchTriggerableCallback<V = any, OV = any, R = void> = (value: V, oldValue: OV, onCleanup: OnCleanup) => R;
1046
+ type OnCleanup = (cleanupFn: () => void) => void;
1047
+ type WatchTriggerableCallback<V = any, OV = any, R = void> = (value: V, oldValue: OV, onCleanup: OnCleanup) => R;
1026
1048
  declare function watchTriggerable<T extends Readonly<WatchSource<unknown>[]>, FnReturnT>(sources: [...T], cb: WatchTriggerableCallback<MapSources<T>, MapOldSources<T, true>, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1027
1049
  declare function watchTriggerable<T, FnReturnT>(source: WatchSource<T>, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1028
1050
  declare function watchTriggerable<T extends object, FnReturnT>(source: T, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
@@ -1034,4 +1056,4 @@ declare function watchTriggerable<T extends object, FnReturnT>(source: T, cb: Wa
1034
1056
  */
1035
1057
  declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WatchOptions): vue_demi.WatchStopHandle;
1036
1058
 
1037
- export { ArgumentsType, Arrayable, Awaitable, ComputedRefWithControl, ComputedWithControlRefExtra, ConfigurableEventFilter, ConfigurableFlush, ConfigurableFlushSync, ControlledRefOptions, CreateGlobalStateReturn, DateLike, DebounceFilterOptions, DeepMaybeRef, ElementOf, EventFilter, EventHook, EventHookOff, EventHookOn, EventHookTrigger, ExtendRefOptions, Fn, FunctionArgs, FunctionWrapperOptions, IgnoredUpdater, MapOldSources, MapSources, MaybeComputedRef, MaybeReadonlyRef, MaybeRef, Pausable, Reactified, ReactifyNested, ReactifyObjectOptions, ReactifyOptions, RemovableRef, RemoveableRef, ShallowUnwrapRef, SingletonPromiseReturn, Stopable, Stoppable, SyncRefOptions, SyncRefsOptions, UntilArrayInstance, UntilBaseInstance, UntilToMatchOptions, UntilValueInstance, UseArrayReducer, UseCounterOptions, UseDateFormatOptions, UseDateFormatReturn, UseIntervalFnOptions, UseIntervalOptions, UseLastChangedOptions, UseTimeoutFnOptions, UseTimeoutOptions, UseToNumberOptions, UseToggleOptions, WatchArrayCallback, WatchAtMostOptions, WatchAtMostReturn, WatchDebouncedOptions, WatchIgnorableReturn, WatchPausableReturn, WatchThrottledOptions, WatchTriggerableCallback, WatchTriggerableReturn, WatchWithFilterOptions, WritableComputedRefWithControl, __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
1059
+ export { AnyFn, ArgumentsType, Arrayable, Awaitable, ComputedRefWithControl, ComputedWithControlRefExtra, ConfigurableEventFilter, ConfigurableFlush, ConfigurableFlushSync, ControlledRefOptions, CreateGlobalStateReturn, DateLike, DebounceFilterOptions, DeepMaybeRef, ElementOf, EventFilter, EventHook, EventHookOff, EventHookOn, EventHookTrigger, ExtendRefOptions, Fn, FunctionArgs, FunctionWrapperOptions, IgnoredUpdater, MapOldSources, MapSources, MaybeComputedRef, MaybeReadonlyRef, MaybeRef, Pausable, PromisifyFn, Reactified, ReactifyNested, ReactifyObjectOptions, ReactifyOptions, RemovableRef, RemoveableRef, ShallowUnwrapRef, SingletonPromiseReturn, Stopable, Stoppable, SyncRefOptions, SyncRefsOptions, UntilArrayInstance, UntilBaseInstance, UntilToMatchOptions, UntilValueInstance, UseArrayReducer, UseCounterOptions, UseDateFormatOptions, UseDateFormatReturn, UseIntervalFnOptions, UseIntervalOptions, UseLastChangedOptions, UseTimeoutFnOptions, UseTimeoutOptions, UseToNumberOptions, UseToggleOptions, WatchArrayCallback, WatchAtMostOptions, WatchAtMostReturn, WatchDebouncedOptions, WatchIgnorableReturn, WatchPausableReturn, WatchThrottledOptions, WatchTriggerableCallback, WatchTriggerableReturn, WatchWithFilterOptions, WritableComputedRefWithControl, __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
package/index.iife.js CHANGED
@@ -178,7 +178,9 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
178
178
 
179
179
  function createFilterWrapper(filter, fn) {
180
180
  function wrapper(...args) {
181
- filter(() => fn.apply(this, args), { fn, thisArg: this, args });
181
+ return new Promise((resolve, reject) => {
182
+ Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
183
+ });
182
184
  }
183
185
  return wrapper;
184
186
  }
@@ -188,48 +190,64 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
188
190
  function debounceFilter(ms, options = {}) {
189
191
  let timer;
190
192
  let maxTimer;
193
+ let lastRejector = noop;
194
+ const _clearTimeout = (timer2) => {
195
+ clearTimeout(timer2);
196
+ lastRejector();
197
+ lastRejector = noop;
198
+ };
191
199
  const filter = (invoke) => {
192
200
  const duration = resolveUnref(ms);
193
201
  const maxDuration = resolveUnref(options.maxWait);
194
202
  if (timer)
195
- clearTimeout(timer);
203
+ _clearTimeout(timer);
196
204
  if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
197
205
  if (maxTimer) {
198
- clearTimeout(maxTimer);
206
+ _clearTimeout(maxTimer);
199
207
  maxTimer = null;
200
208
  }
201
- return invoke();
209
+ return Promise.resolve(invoke());
202
210
  }
203
- if (maxDuration && !maxTimer) {
204
- maxTimer = setTimeout(() => {
205
- if (timer)
206
- clearTimeout(timer);
211
+ return new Promise((resolve, reject) => {
212
+ lastRejector = options.rejectOnCancel ? reject : resolve;
213
+ if (maxDuration && !maxTimer) {
214
+ maxTimer = setTimeout(() => {
215
+ if (timer)
216
+ _clearTimeout(timer);
217
+ maxTimer = null;
218
+ resolve(invoke());
219
+ }, maxDuration);
220
+ }
221
+ timer = setTimeout(() => {
222
+ if (maxTimer)
223
+ _clearTimeout(maxTimer);
207
224
  maxTimer = null;
208
- invoke();
209
- }, maxDuration);
210
- }
211
- timer = setTimeout(() => {
212
- if (maxTimer)
213
- clearTimeout(maxTimer);
214
- maxTimer = null;
215
- invoke();
216
- }, duration);
225
+ resolve(invoke());
226
+ }, duration);
227
+ });
217
228
  };
218
229
  return filter;
219
230
  }
220
- function throttleFilter(ms, trailing = true, leading = true) {
231
+ function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {
221
232
  let lastExec = 0;
222
233
  let timer;
223
234
  let isLeading = true;
235
+ let lastRejector = noop;
236
+ let lastValue;
224
237
  const clear = () => {
225
238
  if (timer) {
226
239
  clearTimeout(timer);
227
240
  timer = void 0;
241
+ lastRejector();
242
+ lastRejector = noop;
228
243
  }
229
244
  };
230
- const filter = (invoke) => {
245
+ const filter = (_invoke) => {
231
246
  const duration = resolveUnref(ms);
232
247
  const elapsed = Date.now() - lastExec;
248
+ const invoke = () => {
249
+ return lastValue = _invoke();
250
+ };
233
251
  clear();
234
252
  if (duration <= 0) {
235
253
  lastExec = Date.now();
@@ -239,16 +257,20 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
239
257
  lastExec = Date.now();
240
258
  invoke();
241
259
  } else if (trailing) {
242
- timer = setTimeout(() => {
243
- lastExec = Date.now();
244
- isLeading = true;
245
- clear();
246
- invoke();
247
- }, duration - elapsed);
260
+ return new Promise((resolve, reject) => {
261
+ lastRejector = rejectOnCancel ? reject : resolve;
262
+ timer = setTimeout(() => {
263
+ lastExec = Date.now();
264
+ isLeading = true;
265
+ resolve(invoke());
266
+ clear();
267
+ }, duration - elapsed);
268
+ });
248
269
  }
249
270
  if (!leading && !timer)
250
271
  timer = setTimeout(() => isLeading = true, duration);
251
272
  isLeading = false;
273
+ return lastValue;
252
274
  };
253
275
  return filter;
254
276
  }
@@ -643,8 +665,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
643
665
  });
644
666
  }
645
667
 
646
- function useThrottleFn(fn, ms = 200, trailing = false, leading = true) {
647
- return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);
668
+ function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
669
+ return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);
648
670
  }
649
671
 
650
672
  function refThrottled(value, delay = 200, trailing = true, leading = true) {
@@ -976,6 +998,10 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
976
998
  return vueDemi.computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));
977
999
  }
978
1000
 
1001
+ function useArrayUnique(list) {
1002
+ return vueDemi.computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);
1003
+ }
1004
+
979
1005
  function useCounter(initialValue = 0, options = {}) {
980
1006
  const count = vueDemi.ref(initialValue);
981
1007
  const {
@@ -1721,6 +1747,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1721
1747
  exports.useArrayMap = useArrayMap;
1722
1748
  exports.useArrayReduce = useArrayReduce;
1723
1749
  exports.useArraySome = useArraySome;
1750
+ exports.useArrayUnique = useArrayUnique;
1724
1751
  exports.useCounter = useCounter;
1725
1752
  exports.useDateFormat = useDateFormat;
1726
1753
  exports.useDebounce = refDebounced;
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- var VueDemi=function(o,i,F){if(o.install)return o;if(!i)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),o;if(i.version.slice(0,4)==="2.7."){let O=function(w,A){var g,C={},N={config:i.config,use:i.use.bind(i),mixin:i.mixin.bind(i),component:i.component.bind(i),provide:function(b,$){return C[b]=$,this},directive:function(b,$){return $?(i.directive(b,$),N):i.directive(b)},mount:function(b,$){return g||(g=new i(Object.assign({propsData:A},w,{provide:Object.assign(C,w.provide)})),g.$mount(b,$),g)},unmount:function(){g&&(g.$destroy(),g=void 0)}};return N};var zt=O;for(var P in i)o[P]=i[P];o.isVue2=!0,o.isVue3=!1,o.install=function(){},o.Vue=i,o.Vue2=i,o.version=i.version,o.warn=i.util.warn,o.createApp=O}else if(i.version.slice(0,2)==="2.")if(F){for(var P in F)o[P]=F[P];o.isVue2=!0,o.isVue3=!1,o.install=function(){},o.Vue=i,o.Vue2=i,o.version=i.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(i.version.slice(0,2)==="3."){for(var P in i)o[P]=i[P];o.isVue2=!1,o.isVue3=!0,o.install=function(){},o.Vue=i,o.Vue2=void 0,o.version=i.version,o.set=function(O,w,A){return Array.isArray(O)?(O.length=Math.max(O.length,w),O.splice(w,1,A),A):(O[w]=A,A)},o.del=function(O,w){if(Array.isArray(O)){O.splice(w,1);return}delete O[w]}}else console.error("[vue-demi] Vue version "+i.version+" is unsupported.");return o}(this.VueDemi=this.VueDemi||(typeof VueDemi!="undefined"?VueDemi:{}),this.Vue||(typeof Vue!="undefined"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI!="undefined"?VueCompositionAPI:void 0));(function(o,i){"use strict";var F=Object.defineProperty,P=Object.defineProperties,zt=Object.getOwnPropertyDescriptors,O=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,g=(t,e,r)=>e in t?F(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,C=(t,e)=>{for(var r in e||(e={}))w.call(e,r)&&g(t,r,e[r]);if(O)for(var r of O(e))A.call(e,r)&&g(t,r,e[r]);return t},N=(t,e)=>P(t,zt(e));function b(t,e){var r;const n=i.shallowRef();return i.watchEffect(()=>{n.value=t()},N(C({},e),{flush:(r=e==null?void 0:e.flush)!=null?r:"sync"})),i.readonly(n)}var $;const E=typeof window!="undefined",Zt=t=>typeof t!="undefined",Jt=(t,...e)=>{t||console.warn(...e)},D=Object.prototype.toString,Xt=t=>typeof t=="boolean",W=t=>typeof t=="function",qt=t=>typeof t=="number",Kt=t=>typeof t=="string",Qt=t=>D.call(t)==="[object Object]",Vt=t=>typeof window!="undefined"&&D.call(t)==="[object Window]",Dt=()=>Date.now(),x=()=>+Date.now(),xt=(t,e,r)=>Math.min(r,Math.max(e,t)),tt=()=>{},te=(t,e)=>(t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t),ee=E&&(($=window==null?void 0:window.navigator)==null?void 0:$.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent),re=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);function y(t){return typeof t=="function"?t():i.unref(t)}function M(t,e){function r(...n){t(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})}return r}const U=t=>t();function G(t,e={}){let r,n;return l=>{const c=y(t),u=y(e.maxWait);if(r&&clearTimeout(r),c<=0||u!==void 0&&u<=0)return n&&(clearTimeout(n),n=null),l();u&&!n&&(n=setTimeout(()=>{r&&clearTimeout(r),n=null,l()},u)),r=setTimeout(()=>{n&&clearTimeout(n),n=null,l()},c)}}function z(t,e=!0,r=!0){let n=0,a,l=!0;const c=()=>{a&&(clearTimeout(a),a=void 0)};return d=>{const _=y(t),s=Date.now()-n;if(c(),_<=0)return n=Date.now(),d();s>_&&(r||!l)?(n=Date.now(),d()):e&&(a=setTimeout(()=>{n=Date.now(),l=!0,c(),d()},_-s)),!r&&!a&&(a=setTimeout(()=>l=!0,_)),l=!1}}function et(t=U){const e=i.ref(!0);function r(){e.value=!1}function n(){e.value=!0}return{isActive:e,pause:r,resume:n,eventFilter:(...l)=>{e.value&&t(...l)}}}function ne(t="this function"){if(!i.isVue3)throw new Error(`[VueUse] ${t} is only works on Vue 3.`)}function rt(t="this function"){if(!(i.isVue3||i.version.startsWith("2.7.")))throw new Error(`[VueUse] ${t} is only works on Vue 2.7 or above.`)}const oe={mounted:i.isVue3?"mounted":"inserted",updated:i.isVue3?"updated":"componentUpdated",unmounted:i.isVue3?"unmounted":"unbind"};function Z(t,e=!1,r="Timeout"){return new Promise((n,a)=>{setTimeout(e?()=>a(r):n,t)})}function ae(t){return t}function ie(t){let e;function r(){return e||(e=t()),e}return r.reset=async()=>{const n=e;e=void 0,n&&await n},r}function le(t){return t()}function ce(t,...e){return e.some(r=>r in t)}function ue(t,e){var r;if(typeof t=="number")return t+e;const n=((r=t.match(/^-?[0-9]+\.?[0-9]*/))==null?void 0:r[0])||"",a=t.slice(n.length),l=parseFloat(n)+e;return Number.isNaN(l)?t:l+a}function se(t,e,r=!1){return e.reduce((n,a)=>(a in t&&(!r||t[a]!==void 0)&&(n[a]=t[a]),n),{})}function nt(t,e){let r,n,a;const l=i.ref(!0),c=()=>{l.value=!0,a()};i.watch(t,c,{flush:"sync"});const u=W(e)?e:e.get,d=W(e)?void 0:e.set,_=i.customRef((s,f)=>(n=s,a=f,{get(){return l.value&&(r=u(),l.value=!1),n(),r},set(p){d==null||d(p)}}));return Object.isExtensible(_)&&(_.trigger=c),_}function j(t){return i.getCurrentScope()?(i.onScopeDispose(t),!0):!1}function fe(){const t=[],e=a=>{const l=t.indexOf(a);l!==-1&&t.splice(l,1)};return{on:a=>{t.push(a);const l=()=>e(a);return j(l),{off:l}},off:e,trigger:a=>{t.forEach(l=>l(a))}}}function de(t){let e=!1,r;const n=i.effectScope(!0);return()=>(e||(r=n.run(t),e=!0),r)}function pe(t){const e=Symbol("InjectionState");return[(...a)=>{i.provide(e,t(...a))},()=>i.inject(e)]}function ye(t){let e=0,r,n;const a=()=>{e-=1,n&&e<=0&&(n.stop(),r=void 0,n=void 0)};return(...l)=>(e+=1,r||(n=i.effectScope(!0),r=n.run(()=>t(...l))),j(a),r)}function ot(t,e,{enumerable:r=!1,unwrap:n=!0}={}){rt();for(const[a,l]of Object.entries(e))a!=="value"&&(i.isRef(l)&&n?Object.defineProperty(t,a,{get(){return l.value},set(c){l.value=c},enumerable:r}):Object.defineProperty(t,a,{value:l,enumerable:r}));return t}function _e(t,e){return e==null?i.unref(t):i.unref(t)[e]}function ve(t){return i.unref(t)!=null}var he=Object.defineProperty,at=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,it=(t,e,r)=>e in t?he(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ge=(t,e)=>{for(var r in e||(e={}))Oe.call(e,r)&&it(t,r,e[r]);if(at)for(var r of at(e))we.call(e,r)&&it(t,r,e[r]);return t};function Pe(t,e){if(typeof Symbol!="undefined"){const r=ge({},t);return Object.defineProperty(r,Symbol.iterator,{enumerable:!1,value(){let n=0;return{next:()=>({value:e[n++],done:n>e.length})}}}),r}else return Object.assign([...e],t)}function J(t,e){const r=(e==null?void 0:e.computedGetter)===!1?i.unref:y;return function(...n){return i.computed(()=>t.apply(this,n.map(a=>r(a))))}}function me(t,e={}){let r=[],n;if(Array.isArray(e))r=e;else{n=e;const{includeOwnProperties:a=!0}=e;r.push(...Object.keys(t)),a&&r.push(...Object.getOwnPropertyNames(t))}return Object.fromEntries(r.map(a=>{const l=t[a];return[a,typeof l=="function"?J(l.bind(t),n):l]}))}function lt(t){if(!i.isRef(t))return i.reactive(t);const e=new Proxy({},{get(r,n,a){return i.unref(Reflect.get(t.value,n,a))},set(r,n,a){return i.isRef(t.value[n])&&!i.isRef(a)?t.value[n].value=a:t.value[n]=a,!0},deleteProperty(r,n){return Reflect.deleteProperty(t.value,n)},has(r,n){return Reflect.has(t.value,n)},ownKeys(){return Object.keys(t.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return i.reactive(e)}function ct(t){return lt(i.computed(t))}function be(t,...e){const r=e.flat();return ct(()=>Object.fromEntries(Object.entries(i.toRefs(t)).filter(n=>!r.includes(n[0]))))}function $e(t,...e){const r=e.flat();return i.reactive(Object.fromEntries(r.map(n=>[n,i.toRef(t,n)])))}function ut(t,e=1e4){return i.customRef((r,n)=>{let a=t,l;const c=()=>setTimeout(()=>{a=t,n()},y(e));return j(()=>{clearTimeout(l)}),{get(){return r(),a},set(u){a=u,n(),clearTimeout(l),l=c()}}})}function st(t,e=200,r={}){return M(G(e,r),t)}function X(t,e=200,r={}){const n=i.ref(t.value),a=st(()=>{n.value=t.value},e,r);return i.watch(t,()=>a()),n}function Se(t,e){return i.computed({get(){var r;return(r=t.value)!=null?r:e},set(r){t.value=r}})}function ft(t,e=200,r=!1,n=!0){return M(z(e,r,n),t)}function q(t,e=200,r=!0,n=!0){if(e<=0)return t;const a=i.ref(t.value),l=ft(()=>{a.value=t.value},e,r,n);return i.watch(t,()=>l()),a}function dt(t,e={}){let r=t,n,a;const l=i.customRef((p,h)=>(n=p,a=h,{get(){return c()},set(v){u(v)}}));function c(p=!0){return p&&n(),r}function u(p,h=!0){var v,S;if(p===r)return;const m=r;((v=e.onBeforeChange)==null?void 0:v.call(e,p,m))!==!1&&(r=p,(S=e.onChanged)==null||S.call(e,p,m),h&&a())}return ot(l,{get:c,set:u,untrackedGet:()=>c(!1),silentSet:p=>u(p,!1),peek:()=>c(!1),lay:p=>u(p,!1)},{enumerable:!0})}const Ae=dt;function je(t){return typeof t=="function"?i.computed(t):i.ref(t)}function Ie(...t){if(t.length===2){const[e,r]=t;e.value=r}if(t.length===3)if(i.isVue2)i.set(...t);else{const[e,r,n]=t;e[r]=n}}function Te(t,e,r={}){var n,a;const{flush:l="sync",deep:c=!1,immediate:u=!0,direction:d="both",transform:_={}}=r;let s,f;const p=(n=_.ltr)!=null?n:v=>v,h=(a=_.rtl)!=null?a:v=>v;return(d==="both"||d==="ltr")&&(s=i.watch(t,v=>e.value=p(v),{flush:l,deep:c,immediate:u})),(d==="both"||d==="rtl")&&(f=i.watch(e,v=>t.value=h(v),{flush:l,deep:c,immediate:u})),()=>{s==null||s(),f==null||f()}}function Fe(t,e,r={}){const{flush:n="sync",deep:a=!1,immediate:l=!0}=r;return Array.isArray(e)||(e=[e]),i.watch(t,c=>e.forEach(u=>u.value=c),{flush:n,deep:a,immediate:l})}var Ee=Object.defineProperty,Me=Object.defineProperties,Re=Object.getOwnPropertyDescriptors,pt=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,yt=(t,e,r)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,We=(t,e)=>{for(var r in e||(e={}))Ce.call(e,r)&&yt(t,r,e[r]);if(pt)for(var r of pt(e))Ne.call(e,r)&&yt(t,r,e[r]);return t},Ue=(t,e)=>Me(t,Re(e));function Be(t){if(!i.isRef(t))return i.toRefs(t);const e=Array.isArray(t.value)?new Array(t.value.length):{};for(const r in t.value)e[r]=i.customRef(()=>({get(){return t.value[r]},set(n){if(Array.isArray(t.value)){const a=[...t.value];a[r]=n,t.value=a}else{const a=Ue(We({},t.value),{[r]:n});Object.setPrototypeOf(a,t.value),t.value=a}}}));return e}function Le(t,e=!0){i.getCurrentInstance()?i.onBeforeMount(t):e?t():i.nextTick(t)}function He(t){i.getCurrentInstance()&&i.onBeforeUnmount(t)}function Ye(t,e=!0){i.getCurrentInstance()?i.onMounted(t):e?t():i.nextTick(t)}function ke(t){i.getCurrentInstance()&&i.onUnmounted(t)}function K(t,e=!1){function r(f,{flush:p="sync",deep:h=!1,timeout:v,throwOnTimeout:S}={}){let m=null;const V=[new Promise(k=>{m=i.watch(t,T=>{f(T)!==e&&(m==null||m(),k(T))},{flush:p,deep:h,immediate:!0})})];return v!=null&&V.push(Z(v,S).then(()=>y(t)).finally(()=>m==null?void 0:m())),Promise.race(V)}function n(f,p){if(!i.isRef(f))return r(T=>T===f,p);const{flush:h="sync",deep:v=!1,timeout:S,throwOnTimeout:m}=p??{};let I=null;const k=[new Promise(T=>{I=i.watch([t,f],([Gt,cn])=>{e!==(Gt===cn)&&(I==null||I(),T(Gt))},{flush:h,deep:v,immediate:!0})})];return S!=null&&k.push(Z(S,m).then(()=>y(t)).finally(()=>(I==null||I(),y(t)))),Promise.race(k)}function a(f){return r(p=>Boolean(p),f)}function l(f){return n(null,f)}function c(f){return n(void 0,f)}function u(f){return r(Number.isNaN,f)}function d(f,p){return r(h=>{const v=Array.from(h);return v.includes(f)||v.includes(y(f))},p)}function _(f){return s(1,f)}function s(f=1,p){let h=-1;return r(()=>(h+=1,h>=f),p)}return Array.isArray(y(t))?{toMatch:r,toContains:d,changed:_,changedTimes:s,get not(){return K(t,!e)}}:{toMatch:r,toBe:n,toBeTruthy:a,toBeNull:l,toBeNaN:u,toBeUndefined:c,changed:_,changedTimes:s,get not(){return K(t,!e)}}}function Ge(t){return K(t)}function ze(t,e){return i.computed(()=>y(t).every((r,n,a)=>e(y(r),n,a)))}function Ze(t,e){return i.computed(()=>y(t).map(r=>y(r)).filter(e))}function Je(t,e){return i.computed(()=>y(y(t).find((r,n,a)=>e(y(r),n,a))))}function Xe(t,e){return i.computed(()=>y(t).findIndex((r,n,a)=>e(y(r),n,a)))}function qe(t,e){return i.computed(()=>y(t).map(r=>y(r)).join(y(e)))}function Ke(t,e){return i.computed(()=>y(t).map(r=>y(r)).map(e))}function Qe(t,e,...r){const n=(a,l,c)=>e(y(a),y(l),c);return i.computed(()=>{const a=y(t);return r.length?a.reduce(n,y(r[0])):a.reduce(n)})}function Ve(t,e){return i.computed(()=>y(t).some((r,n,a)=>e(y(r),n,a)))}function De(t=0,e={}){const r=i.ref(t),{max:n=1/0,min:a=-1/0}=e,l=(s=1)=>r.value=Math.min(n,r.value+s),c=(s=1)=>r.value=Math.max(a,r.value-s),u=()=>r.value,d=s=>r.value=Math.max(a,Math.min(n,s));return{count:r,inc:l,dec:c,get:u,set:d,reset:(s=t)=>(t=s,d(s))}}const xe=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,tr=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g,er=(t,e,r,n)=>{let a=t<12?"AM":"PM";return n&&(a=a.split("").reduce((l,c)=>l+=`${c}.`,"")),r?a.toLowerCase():a},_t=(t,e,r={})=>{var n;const a=t.getFullYear(),l=t.getMonth(),c=t.getDate(),u=t.getHours(),d=t.getMinutes(),_=t.getSeconds(),s=t.getMilliseconds(),f=t.getDay(),p=(n=r.customMeridiem)!=null?n:er,h={YY:()=>String(a).slice(-2),YYYY:()=>a,M:()=>l+1,MM:()=>`${l+1}`.padStart(2,"0"),MMM:()=>t.toLocaleDateString(r.locales,{month:"short"}),MMMM:()=>t.toLocaleDateString(r.locales,{month:"long"}),D:()=>String(c),DD:()=>`${c}`.padStart(2,"0"),H:()=>String(u),HH:()=>`${u}`.padStart(2,"0"),h:()=>`${u%12||12}`.padStart(1,"0"),hh:()=>`${u%12||12}`.padStart(2,"0"),m:()=>String(d),mm:()=>`${d}`.padStart(2,"0"),s:()=>String(_),ss:()=>`${_}`.padStart(2,"0"),SSS:()=>`${s}`.padStart(3,"0"),d:()=>f,dd:()=>t.toLocaleDateString(r.locales,{weekday:"narrow"}),ddd:()=>t.toLocaleDateString(r.locales,{weekday:"short"}),dddd:()=>t.toLocaleDateString(r.locales,{weekday:"long"}),A:()=>p(u,d),AA:()=>p(u,d,!1,!0),a:()=>p(u,d,!0),aa:()=>p(u,d,!0,!0)};return e.replace(tr,(v,S)=>S||h[v]())},vt=t=>{if(t===null)return new Date(NaN);if(t===void 0)return new Date;if(t instanceof Date)return new Date(t);if(typeof t=="string"&&!/Z$/i.test(t)){const e=t.match(xe);if(e){const r=e[2]-1||0,n=(e[7]||"0").substring(0,3);return new Date(e[1],r,e[3]||1,e[4]||0,e[5]||0,e[6]||0,n)}}return new Date(t)};function rr(t,e="HH:mm:ss",r={}){return i.computed(()=>_t(vt(y(t)),y(e),r))}function ht(t,e=1e3,r={}){const{immediate:n=!0,immediateCallback:a=!1}=r;let l=null;const c=i.ref(!1);function u(){l&&(clearInterval(l),l=null)}function d(){c.value=!1,u()}function _(){i.unref(e)<=0||(c.value=!0,a&&t(),u(),l=setInterval(t,y(e)))}if(n&&E&&_(),i.isRef(e)||W(e)){const s=i.watch(e,()=>{c.value&&E&&_()});j(s)}return j(d),{isActive:c,pause:d,resume:_}}var nr=Object.defineProperty,Ot=Object.getOwnPropertySymbols,or=Object.prototype.hasOwnProperty,ar=Object.prototype.propertyIsEnumerable,wt=(t,e,r)=>e in t?nr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ir=(t,e)=>{for(var r in e||(e={}))or.call(e,r)&&wt(t,r,e[r]);if(Ot)for(var r of Ot(e))ar.call(e,r)&&wt(t,r,e[r]);return t};function lr(t=1e3,e={}){const{controls:r=!1,immediate:n=!0,callback:a}=e,l=i.ref(0),c=()=>l.value+=1,u=ht(a?()=>{c(),a(l.value)}:c,t,{immediate:n});return r?ir({counter:l},u):l}function cr(t,e={}){var r;const n=i.ref((r=e.initialValue)!=null?r:null);return i.watch(t,()=>n.value=x(),e),n}function gt(t,e,r={}){const{immediate:n=!0}=r,a=i.ref(!1);let l=null;function c(){l&&(clearTimeout(l),l=null)}function u(){a.value=!1,c()}function d(..._){c(),a.value=!0,l=setTimeout(()=>{a.value=!1,l=null,t(..._)},y(e))}return n&&(a.value=!0,E&&d()),j(u),{isPending:a,start:d,stop:u}}var ur=Object.defineProperty,Pt=Object.getOwnPropertySymbols,sr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable,mt=(t,e,r)=>e in t?ur(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,dr=(t,e)=>{for(var r in e||(e={}))sr.call(e,r)&&mt(t,r,e[r]);if(Pt)for(var r of Pt(e))fr.call(e,r)&&mt(t,r,e[r]);return t};function pr(t=1e3,e={}){const{controls:r=!1,callback:n}=e,a=gt(n??tt,t,e),l=i.computed(()=>!a.isPending.value);return r?dr({ready:l},a):l}function yr(t,e={}){const{method:r="parseFloat",radix:n,nanToZero:a}=e;return i.computed(()=>{let l=y(t);return typeof l=="string"&&(l=Number[r](l,n)),a&&isNaN(l)&&(l=0),l})}function _r(t){return i.computed(()=>`${y(t)}`)}function vr(t=!1,e={}){const{truthyValue:r=!0,falsyValue:n=!1}=e,a=i.isRef(t),l=i.ref(t);function c(u){if(arguments.length)return l.value=u,l.value;{const d=y(r);return l.value=l.value===d?y(n):d,l.value}}return a?c:[l,c]}function hr(t,e,r){let n=(r==null?void 0:r.immediate)?[]:[...t instanceof Function?t():Array.isArray(t)?t:i.unref(t)];return i.watch(t,(a,l,c)=>{const u=new Array(n.length),d=[];for(const s of a){let f=!1;for(let p=0;p<n.length;p++)if(!u[p]&&s===n[p]){u[p]=!0,f=!0;break}f||d.push(s)}const _=n.filter((s,f)=>!u[f]);e(a,n,d,_,c),n=[...a]},r)}var bt=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,gr=(t,e)=>{var r={};for(var n in t)Or.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&bt)for(var n of bt(t))e.indexOf(n)<0&&wr.call(t,n)&&(r[n]=t[n]);return r};function R(t,e,r={}){const n=r,{eventFilter:a=U}=n,l=gr(n,["eventFilter"]);return i.watch(t,M(a,e),l)}var $t=Object.getOwnPropertySymbols,Pr=Object.prototype.hasOwnProperty,mr=Object.prototype.propertyIsEnumerable,br=(t,e)=>{var r={};for(var n in t)Pr.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&$t)for(var n of $t(t))e.indexOf(n)<0&&mr.call(t,n)&&(r[n]=t[n]);return r};function $r(t,e,r){const n=r,{count:a}=n,l=br(n,["count"]),c=i.ref(0),u=R(t,(...d)=>{c.value+=1,c.value>=y(a)&&i.nextTick(()=>u()),e(...d)},l);return{count:c,stop:u}}var Sr=Object.defineProperty,Ar=Object.defineProperties,jr=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,At=Object.prototype.propertyIsEnumerable,jt=(t,e,r)=>e in t?Sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ir=(t,e)=>{for(var r in e||(e={}))St.call(e,r)&&jt(t,r,e[r]);if(B)for(var r of B(e))At.call(e,r)&&jt(t,r,e[r]);return t},Tr=(t,e)=>Ar(t,jr(e)),Fr=(t,e)=>{var r={};for(var n in t)St.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&B)for(var n of B(t))e.indexOf(n)<0&&At.call(t,n)&&(r[n]=t[n]);return r};function It(t,e,r={}){const n=r,{debounce:a=0,maxWait:l=void 0}=n,c=Fr(n,["debounce","maxWait"]);return R(t,e,Tr(Ir({},c),{eventFilter:G(a,{maxWait:l})}))}var Er=Object.defineProperty,Mr=Object.defineProperties,Rr=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Tt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable,Et=(t,e,r)=>e in t?Er(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Cr=(t,e)=>{for(var r in e||(e={}))Tt.call(e,r)&&Et(t,r,e[r]);if(L)for(var r of L(e))Ft.call(e,r)&&Et(t,r,e[r]);return t},Nr=(t,e)=>Mr(t,Rr(e)),Wr=(t,e)=>{var r={};for(var n in t)Tt.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&L)for(var n of L(t))e.indexOf(n)<0&&Ft.call(t,n)&&(r[n]=t[n]);return r};function Q(t,e,r={}){const n=r,{eventFilter:a=U}=n,l=Wr(n,["eventFilter"]),c=M(a,e);let u,d,_;if(l.flush==="sync"){const s=i.ref(!1);d=()=>{},u=f=>{s.value=!0,f(),s.value=!1},_=i.watch(t,(...f)=>{s.value||c(...f)},l)}else{const s=[],f=i.ref(0),p=i.ref(0);d=()=>{f.value=p.value},s.push(i.watch(t,()=>{p.value++},Nr(Cr({},l),{flush:"sync"}))),u=h=>{const v=p.value;h(),f.value+=p.value-v},s.push(i.watch(t,(...h)=>{const v=f.value>0&&f.value===p.value;f.value=0,p.value=0,!v&&c(...h)},l)),_=()=>{s.forEach(h=>h())}}return{stop:_,ignoreUpdates:u,ignorePrevAsyncUpdates:d}}function Ur(t,e,r){const n=i.watch(t,(...a)=>(i.nextTick(()=>n()),e(...a)),r)}var Br=Object.defineProperty,Lr=Object.defineProperties,Hr=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,Ct=(t,e,r)=>e in t?Br(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Yr=(t,e)=>{for(var r in e||(e={}))Mt.call(e,r)&&Ct(t,r,e[r]);if(H)for(var r of H(e))Rt.call(e,r)&&Ct(t,r,e[r]);return t},kr=(t,e)=>Lr(t,Hr(e)),Gr=(t,e)=>{var r={};for(var n in t)Mt.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&H)for(var n of H(t))e.indexOf(n)<0&&Rt.call(t,n)&&(r[n]=t[n]);return r};function Nt(t,e,r={}){const n=r,{eventFilter:a}=n,l=Gr(n,["eventFilter"]),{eventFilter:c,pause:u,resume:d,isActive:_}=et(a);return{stop:R(t,e,kr(Yr({},l),{eventFilter:c})),pause:u,resume:d,isActive:_}}var zr=Object.defineProperty,Zr=Object.defineProperties,Jr=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,Wt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable,Bt=(t,e,r)=>e in t?zr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Xr=(t,e)=>{for(var r in e||(e={}))Wt.call(e,r)&&Bt(t,r,e[r]);if(Y)for(var r of Y(e))Ut.call(e,r)&&Bt(t,r,e[r]);return t},qr=(t,e)=>Zr(t,Jr(e)),Kr=(t,e)=>{var r={};for(var n in t)Wt.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&Y)for(var n of Y(t))e.indexOf(n)<0&&Ut.call(t,n)&&(r[n]=t[n]);return r};function Lt(t,e,r={}){const n=r,{throttle:a=0,trailing:l=!0,leading:c=!0}=n,u=Kr(n,["throttle","trailing","leading"]);return R(t,e,qr(Xr({},u),{eventFilter:z(a,l,c)}))}var Qr=Object.defineProperty,Vr=Object.defineProperties,Dr=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertySymbols,xr=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,Yt=(t,e,r)=>e in t?Qr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,en=(t,e)=>{for(var r in e||(e={}))xr.call(e,r)&&Yt(t,r,e[r]);if(Ht)for(var r of Ht(e))tn.call(e,r)&&Yt(t,r,e[r]);return t},rn=(t,e)=>Vr(t,Dr(e));function nn(t,e,r={}){let n;function a(){if(!n)return;const s=n;n=void 0,s()}function l(s){n=s}const c=(s,f)=>(a(),e(s,f,l)),u=Q(t,c,r),{ignoreUpdates:d}=u,_=()=>{let s;return d(()=>{s=c(on(t),an(t))}),s};return rn(en({},u),{trigger:_})}function on(t){return i.isReactive(t)?t:Array.isArray(t)?t.map(e=>kt(e)):kt(t)}function kt(t){return typeof t=="function"?t():i.unref(t)}function an(t){return Array.isArray(t)?t.map(()=>{}):void 0}function ln(t,e,r){return i.watch(t,(n,a,l)=>{n&&e(n,a,l)},r)}o.__onlyVue27Plus=rt,o.__onlyVue3=ne,o.assert=Jt,o.autoResetRef=ut,o.bypassFilter=U,o.clamp=xt,o.computedEager=b,o.computedWithControl=nt,o.containsProp=ce,o.controlledComputed=nt,o.controlledRef=Ae,o.createEventHook=fe,o.createFilterWrapper=M,o.createGlobalState=de,o.createInjectionState=pe,o.createReactiveFn=J,o.createSharedComposable=ye,o.createSingletonPromise=ie,o.debounceFilter=G,o.debouncedRef=X,o.debouncedWatch=It,o.directiveHooks=oe,o.eagerComputed=b,o.extendRef=ot,o.formatDate=_t,o.get=_e,o.hasOwn=re,o.identity=ae,o.ignorableWatch=Q,o.increaseWithUnit=ue,o.invoke=le,o.isBoolean=Xt,o.isClient=E,o.isDef=Zt,o.isDefined=ve,o.isFunction=W,o.isIOS=ee,o.isNumber=qt,o.isObject=Qt,o.isString=Kt,o.isWindow=Vt,o.makeDestructurable=Pe,o.noop=tt,o.normalizeDate=vt,o.now=Dt,o.objectPick=se,o.pausableFilter=et,o.pausableWatch=Nt,o.promiseTimeout=Z,o.rand=te,o.reactify=J,o.reactifyObject=me,o.reactiveComputed=ct,o.reactiveOmit=be,o.reactivePick=$e,o.refAutoReset=ut,o.refDebounced=X,o.refDefault=Se,o.refThrottled=q,o.refWithControl=dt,o.resolveRef=je,o.resolveUnref=y,o.set=Ie,o.syncRef=Te,o.syncRefs=Fe,o.throttleFilter=z,o.throttledRef=q,o.throttledWatch=Lt,o.timestamp=x,o.toReactive=lt,o.toRefs=Be,o.tryOnBeforeMount=Le,o.tryOnBeforeUnmount=He,o.tryOnMounted=Ye,o.tryOnScopeDispose=j,o.tryOnUnmounted=ke,o.until=Ge,o.useArrayEvery=ze,o.useArrayFilter=Ze,o.useArrayFind=Je,o.useArrayFindIndex=Xe,o.useArrayJoin=qe,o.useArrayMap=Ke,o.useArrayReduce=Qe,o.useArraySome=Ve,o.useCounter=De,o.useDateFormat=rr,o.useDebounce=X,o.useDebounceFn=st,o.useInterval=lr,o.useIntervalFn=ht,o.useLastChanged=cr,o.useThrottle=q,o.useThrottleFn=ft,o.useTimeout=pr,o.useTimeoutFn=gt,o.useToNumber=yr,o.useToString=_r,o.useToggle=vr,o.watchArray=hr,o.watchAtMost=$r,o.watchDebounced=It,o.watchIgnorable=Q,o.watchOnce=Ur,o.watchPausable=Nt,o.watchThrottled=Lt,o.watchTriggerable=nn,o.watchWithFilter=R,o.whenever=ln})(this.VueUse=this.VueUse||{},VueDemi);
1
+ var VueDemi=function(a,i,E){if(a.install)return a;if(!i)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),a;if(i.version.slice(0,4)==="2.7."){let O=function(P,A){var m,N={},W={config:i.config,use:i.use.bind(i),mixin:i.mixin.bind(i),component:i.component.bind(i),provide:function($,S){return N[$]=S,this},directive:function($,S){return S?(i.directive($,S),W):i.directive($)},mount:function($,S){return m||(m=new i(Object.assign({propsData:A},P,{provide:Object.assign(N,P.provide)})),m.$mount($,S),m)},unmount:function(){m&&(m.$destroy(),m=void 0)}};return W};var zt=O;for(var b in i)a[b]=i[b];a.isVue2=!0,a.isVue3=!1,a.install=function(){},a.Vue=i,a.Vue2=i,a.version=i.version,a.warn=i.util.warn,a.createApp=O}else if(i.version.slice(0,2)==="2.")if(E){for(var b in E)a[b]=E[b];a.isVue2=!0,a.isVue3=!1,a.install=function(){},a.Vue=i,a.Vue2=i,a.version=i.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(i.version.slice(0,2)==="3."){for(var b in i)a[b]=i[b];a.isVue2=!1,a.isVue3=!0,a.install=function(){},a.Vue=i,a.Vue2=void 0,a.version=i.version,a.set=function(O,P,A){return Array.isArray(O)?(O.length=Math.max(O.length,P),O.splice(P,1,A),A):(O[P]=A,A)},a.del=function(O,P){if(Array.isArray(O)){O.splice(P,1);return}delete O[P]}}else console.error("[vue-demi] Vue version "+i.version+" is unsupported.");return a}(this.VueDemi=this.VueDemi||(typeof VueDemi!="undefined"?VueDemi:{}),this.Vue||(typeof Vue!="undefined"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI!="undefined"?VueCompositionAPI:void 0));(function(a,i){"use strict";var E=Object.defineProperty,b=Object.defineProperties,zt=Object.getOwnPropertyDescriptors,O=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,m=(t,e,r)=>e in t?E(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,N=(t,e)=>{for(var r in e||(e={}))P.call(e,r)&&m(t,r,e[r]);if(O)for(var r of O(e))A.call(e,r)&&m(t,r,e[r]);return t},W=(t,e)=>b(t,zt(e));function $(t,e){var r;const n=i.shallowRef();return i.watchEffect(()=>{n.value=t()},W(N({},e),{flush:(r=e==null?void 0:e.flush)!=null?r:"sync"})),i.readonly(n)}var S;const M=typeof window!="undefined",Zt=t=>typeof t!="undefined",qt=(t,...e)=>{t||console.warn(...e)},x=Object.prototype.toString,Jt=t=>typeof t=="boolean",U=t=>typeof t=="function",Xt=t=>typeof t=="number",Kt=t=>typeof t=="string",Qt=t=>x.call(t)==="[object Object]",Vt=t=>typeof window!="undefined"&&x.call(t)==="[object Window]",Dt=()=>Date.now(),tt=()=>+Date.now(),xt=(t,e,r)=>Math.min(r,Math.max(e,t)),I=()=>{},te=(t,e)=>(t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t),ee=M&&((S=window==null?void 0:window.navigator)==null?void 0:S.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent),re=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);function y(t){return typeof t=="function"?t():i.unref(t)}function R(t,e){function r(...n){return new Promise((o,l)=>{Promise.resolve(t(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})).then(o).catch(l)})}return r}const B=t=>t();function z(t,e={}){let r,n,o=I;const l=c=>{clearTimeout(c),o(),o=I};return c=>{const p=y(t),_=y(e.maxWait);return r&&l(r),p<=0||_!==void 0&&_<=0?(n&&(l(n),n=null),Promise.resolve(c())):new Promise((d,s)=>{o=e.rejectOnCancel?s:d,_&&!n&&(n=setTimeout(()=>{r&&l(r),n=null,d(c())},_)),r=setTimeout(()=>{n&&l(n),n=null,d(c())},p)})}}function Z(t,e=!0,r=!0,n=!1){let o=0,l,u=!0,c=I,p;const _=()=>{l&&(clearTimeout(l),l=void 0,c(),c=I)};return s=>{const f=y(t),h=Date.now()-o,v=()=>p=s();if(_(),f<=0)return o=Date.now(),v();if(h>f&&(r||!u))o=Date.now(),v();else if(e)return new Promise((w,g)=>{c=n?g:w,l=setTimeout(()=>{o=Date.now(),u=!0,w(v()),_()},f-h)});return!r&&!l&&(l=setTimeout(()=>u=!0,f)),u=!1,p}}function et(t=B){const e=i.ref(!0);function r(){e.value=!1}function n(){e.value=!0}return{isActive:e,pause:r,resume:n,eventFilter:(...l)=>{e.value&&t(...l)}}}function ne(t="this function"){if(!i.isVue3)throw new Error(`[VueUse] ${t} is only works on Vue 3.`)}function rt(t="this function"){if(!(i.isVue3||i.version.startsWith("2.7.")))throw new Error(`[VueUse] ${t} is only works on Vue 2.7 or above.`)}const oe={mounted:i.isVue3?"mounted":"inserted",updated:i.isVue3?"updated":"componentUpdated",unmounted:i.isVue3?"unmounted":"unbind"};function q(t,e=!1,r="Timeout"){return new Promise((n,o)=>{setTimeout(e?()=>o(r):n,t)})}function ae(t){return t}function ie(t){let e;function r(){return e||(e=t()),e}return r.reset=async()=>{const n=e;e=void 0,n&&await n},r}function le(t){return t()}function ue(t,...e){return e.some(r=>r in t)}function ce(t,e){var r;if(typeof t=="number")return t+e;const n=((r=t.match(/^-?[0-9]+\.?[0-9]*/))==null?void 0:r[0])||"",o=t.slice(n.length),l=parseFloat(n)+e;return Number.isNaN(l)?t:l+o}function se(t,e,r=!1){return e.reduce((n,o)=>(o in t&&(!r||t[o]!==void 0)&&(n[o]=t[o]),n),{})}function nt(t,e){let r,n,o;const l=i.ref(!0),u=()=>{l.value=!0,o()};i.watch(t,u,{flush:"sync"});const c=U(e)?e:e.get,p=U(e)?void 0:e.set,_=i.customRef((d,s)=>(n=d,o=s,{get(){return l.value&&(r=c(),l.value=!1),n(),r},set(f){p==null||p(f)}}));return Object.isExtensible(_)&&(_.trigger=u),_}function j(t){return i.getCurrentScope()?(i.onScopeDispose(t),!0):!1}function fe(){const t=[],e=o=>{const l=t.indexOf(o);l!==-1&&t.splice(l,1)};return{on:o=>{t.push(o);const l=()=>e(o);return j(l),{off:l}},off:e,trigger:o=>{t.forEach(l=>l(o))}}}function de(t){let e=!1,r;const n=i.effectScope(!0);return()=>(e||(r=n.run(t),e=!0),r)}function pe(t){const e=Symbol("InjectionState");return[(...o)=>{i.provide(e,t(...o))},()=>i.inject(e)]}function ye(t){let e=0,r,n;const o=()=>{e-=1,n&&e<=0&&(n.stop(),r=void 0,n=void 0)};return(...l)=>(e+=1,r||(n=i.effectScope(!0),r=n.run(()=>t(...l))),j(o),r)}function ot(t,e,{enumerable:r=!1,unwrap:n=!0}={}){rt();for(const[o,l]of Object.entries(e))o!=="value"&&(i.isRef(l)&&n?Object.defineProperty(t,o,{get(){return l.value},set(u){l.value=u},enumerable:r}):Object.defineProperty(t,o,{value:l,enumerable:r}));return t}function _e(t,e){return e==null?i.unref(t):i.unref(t)[e]}function ve(t){return i.unref(t)!=null}var he=Object.defineProperty,at=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,it=(t,e,r)=>e in t?he(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ge=(t,e)=>{for(var r in e||(e={}))Oe.call(e,r)&&it(t,r,e[r]);if(at)for(var r of at(e))we.call(e,r)&&it(t,r,e[r]);return t};function Pe(t,e){if(typeof Symbol!="undefined"){const r=ge({},t);return Object.defineProperty(r,Symbol.iterator,{enumerable:!1,value(){let n=0;return{next:()=>({value:e[n++],done:n>e.length})}}}),r}else return Object.assign([...e],t)}function J(t,e){const r=(e==null?void 0:e.computedGetter)===!1?i.unref:y;return function(...n){return i.computed(()=>t.apply(this,n.map(o=>r(o))))}}function me(t,e={}){let r=[],n;if(Array.isArray(e))r=e;else{n=e;const{includeOwnProperties:o=!0}=e;r.push(...Object.keys(t)),o&&r.push(...Object.getOwnPropertyNames(t))}return Object.fromEntries(r.map(o=>{const l=t[o];return[o,typeof l=="function"?J(l.bind(t),n):l]}))}function lt(t){if(!i.isRef(t))return i.reactive(t);const e=new Proxy({},{get(r,n,o){return i.unref(Reflect.get(t.value,n,o))},set(r,n,o){return i.isRef(t.value[n])&&!i.isRef(o)?t.value[n].value=o:t.value[n]=o,!0},deleteProperty(r,n){return Reflect.deleteProperty(t.value,n)},has(r,n){return Reflect.has(t.value,n)},ownKeys(){return Object.keys(t.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return i.reactive(e)}function ut(t){return lt(i.computed(t))}function be(t,...e){const r=e.flat();return ut(()=>Object.fromEntries(Object.entries(i.toRefs(t)).filter(n=>!r.includes(n[0]))))}function $e(t,...e){const r=e.flat();return i.reactive(Object.fromEntries(r.map(n=>[n,i.toRef(t,n)])))}function ct(t,e=1e4){return i.customRef((r,n)=>{let o=t,l;const u=()=>setTimeout(()=>{o=t,n()},y(e));return j(()=>{clearTimeout(l)}),{get(){return r(),o},set(c){o=c,n(),clearTimeout(l),l=u()}}})}function st(t,e=200,r={}){return R(z(e,r),t)}function X(t,e=200,r={}){const n=i.ref(t.value),o=st(()=>{n.value=t.value},e,r);return i.watch(t,()=>o()),n}function Se(t,e){return i.computed({get(){var r;return(r=t.value)!=null?r:e},set(r){t.value=r}})}function ft(t,e=200,r=!1,n=!0,o=!1){return R(Z(e,r,n,o),t)}function K(t,e=200,r=!0,n=!0){if(e<=0)return t;const o=i.ref(t.value),l=ft(()=>{o.value=t.value},e,r,n);return i.watch(t,()=>l()),o}function dt(t,e={}){let r=t,n,o;const l=i.customRef((f,h)=>(n=f,o=h,{get(){return u()},set(v){c(v)}}));function u(f=!0){return f&&n(),r}function c(f,h=!0){var v,w;if(f===r)return;const g=r;((v=e.onBeforeChange)==null?void 0:v.call(e,f,g))!==!1&&(r=f,(w=e.onChanged)==null||w.call(e,f,g),h&&o())}return ot(l,{get:u,set:c,untrackedGet:()=>u(!1),silentSet:f=>c(f,!1),peek:()=>u(!1),lay:f=>c(f,!1)},{enumerable:!0})}const Ae=dt;function je(t){return typeof t=="function"?i.computed(t):i.ref(t)}function Ie(...t){if(t.length===2){const[e,r]=t;e.value=r}if(t.length===3)if(i.isVue2)i.set(...t);else{const[e,r,n]=t;e[r]=n}}function Fe(t,e,r={}){var n,o;const{flush:l="sync",deep:u=!1,immediate:c=!0,direction:p="both",transform:_={}}=r;let d,s;const f=(n=_.ltr)!=null?n:v=>v,h=(o=_.rtl)!=null?o:v=>v;return(p==="both"||p==="ltr")&&(d=i.watch(t,v=>e.value=f(v),{flush:l,deep:u,immediate:c})),(p==="both"||p==="rtl")&&(s=i.watch(e,v=>t.value=h(v),{flush:l,deep:u,immediate:c})),()=>{d==null||d(),s==null||s()}}function Te(t,e,r={}){const{flush:n="sync",deep:o=!1,immediate:l=!0}=r;return Array.isArray(e)||(e=[e]),i.watch(t,u=>e.forEach(c=>c.value=u),{flush:n,deep:o,immediate:l})}var Ee=Object.defineProperty,Me=Object.defineProperties,Re=Object.getOwnPropertyDescriptors,pt=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,yt=(t,e,r)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,We=(t,e)=>{for(var r in e||(e={}))Ce.call(e,r)&&yt(t,r,e[r]);if(pt)for(var r of pt(e))Ne.call(e,r)&&yt(t,r,e[r]);return t},Ue=(t,e)=>Me(t,Re(e));function Be(t){if(!i.isRef(t))return i.toRefs(t);const e=Array.isArray(t.value)?new Array(t.value.length):{};for(const r in t.value)e[r]=i.customRef(()=>({get(){return t.value[r]},set(n){if(Array.isArray(t.value)){const o=[...t.value];o[r]=n,t.value=o}else{const o=Ue(We({},t.value),{[r]:n});Object.setPrototypeOf(o,t.value),t.value=o}}}));return e}function Le(t,e=!0){i.getCurrentInstance()?i.onBeforeMount(t):e?t():i.nextTick(t)}function He(t){i.getCurrentInstance()&&i.onBeforeUnmount(t)}function ke(t,e=!0){i.getCurrentInstance()?i.onMounted(t):e?t():i.nextTick(t)}function Ye(t){i.getCurrentInstance()&&i.onUnmounted(t)}function Q(t,e=!1){function r(s,{flush:f="sync",deep:h=!1,timeout:v,throwOnTimeout:w}={}){let g=null;const D=[new Promise(G=>{g=i.watch(t,T=>{s(T)!==e&&(g==null||g(),G(T))},{flush:f,deep:h,immediate:!0})})];return v!=null&&D.push(q(v,w).then(()=>y(t)).finally(()=>g==null?void 0:g())),Promise.race(D)}function n(s,f){if(!i.isRef(s))return r(T=>T===s,f);const{flush:h="sync",deep:v=!1,timeout:w,throwOnTimeout:g}=f??{};let F=null;const G=[new Promise(T=>{F=i.watch([t,s],([Gt,cn])=>{e!==(Gt===cn)&&(F==null||F(),T(Gt))},{flush:h,deep:v,immediate:!0})})];return w!=null&&G.push(q(w,g).then(()=>y(t)).finally(()=>(F==null||F(),y(t)))),Promise.race(G)}function o(s){return r(f=>Boolean(f),s)}function l(s){return n(null,s)}function u(s){return n(void 0,s)}function c(s){return r(Number.isNaN,s)}function p(s,f){return r(h=>{const v=Array.from(h);return v.includes(s)||v.includes(y(s))},f)}function _(s){return d(1,s)}function d(s=1,f){let h=-1;return r(()=>(h+=1,h>=s),f)}return Array.isArray(y(t))?{toMatch:r,toContains:p,changed:_,changedTimes:d,get not(){return Q(t,!e)}}:{toMatch:r,toBe:n,toBeTruthy:o,toBeNull:l,toBeNaN:c,toBeUndefined:u,changed:_,changedTimes:d,get not(){return Q(t,!e)}}}function Ge(t){return Q(t)}function ze(t,e){return i.computed(()=>y(t).every((r,n,o)=>e(y(r),n,o)))}function Ze(t,e){return i.computed(()=>y(t).map(r=>y(r)).filter(e))}function qe(t,e){return i.computed(()=>y(y(t).find((r,n,o)=>e(y(r),n,o))))}function Je(t,e){return i.computed(()=>y(t).findIndex((r,n,o)=>e(y(r),n,o)))}function Xe(t,e){return i.computed(()=>y(t).map(r=>y(r)).join(y(e)))}function Ke(t,e){return i.computed(()=>y(t).map(r=>y(r)).map(e))}function Qe(t,e,...r){const n=(o,l,u)=>e(y(o),y(l),u);return i.computed(()=>{const o=y(t);return r.length?o.reduce(n,y(r[0])):o.reduce(n)})}function Ve(t,e){return i.computed(()=>y(t).some((r,n,o)=>e(y(r),n,o)))}function De(t){return i.computed(()=>[...new Set(y(t).map(e=>y(e)))])}function xe(t=0,e={}){const r=i.ref(t),{max:n=1/0,min:o=-1/0}=e,l=(d=1)=>r.value=Math.min(n,r.value+d),u=(d=1)=>r.value=Math.max(o,r.value-d),c=()=>r.value,p=d=>r.value=Math.max(o,Math.min(n,d));return{count:r,inc:l,dec:u,get:c,set:p,reset:(d=t)=>(t=d,p(d))}}const tr=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,er=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g,rr=(t,e,r,n)=>{let o=t<12?"AM":"PM";return n&&(o=o.split("").reduce((l,u)=>l+=`${u}.`,"")),r?o.toLowerCase():o},_t=(t,e,r={})=>{var n;const o=t.getFullYear(),l=t.getMonth(),u=t.getDate(),c=t.getHours(),p=t.getMinutes(),_=t.getSeconds(),d=t.getMilliseconds(),s=t.getDay(),f=(n=r.customMeridiem)!=null?n:rr,h={YY:()=>String(o).slice(-2),YYYY:()=>o,M:()=>l+1,MM:()=>`${l+1}`.padStart(2,"0"),MMM:()=>t.toLocaleDateString(r.locales,{month:"short"}),MMMM:()=>t.toLocaleDateString(r.locales,{month:"long"}),D:()=>String(u),DD:()=>`${u}`.padStart(2,"0"),H:()=>String(c),HH:()=>`${c}`.padStart(2,"0"),h:()=>`${c%12||12}`.padStart(1,"0"),hh:()=>`${c%12||12}`.padStart(2,"0"),m:()=>String(p),mm:()=>`${p}`.padStart(2,"0"),s:()=>String(_),ss:()=>`${_}`.padStart(2,"0"),SSS:()=>`${d}`.padStart(3,"0"),d:()=>s,dd:()=>t.toLocaleDateString(r.locales,{weekday:"narrow"}),ddd:()=>t.toLocaleDateString(r.locales,{weekday:"short"}),dddd:()=>t.toLocaleDateString(r.locales,{weekday:"long"}),A:()=>f(c,p),AA:()=>f(c,p,!1,!0),a:()=>f(c,p,!0),aa:()=>f(c,p,!0,!0)};return e.replace(er,(v,w)=>w||h[v]())},vt=t=>{if(t===null)return new Date(NaN);if(t===void 0)return new Date;if(t instanceof Date)return new Date(t);if(typeof t=="string"&&!/Z$/i.test(t)){const e=t.match(tr);if(e){const r=e[2]-1||0,n=(e[7]||"0").substring(0,3);return new Date(e[1],r,e[3]||1,e[4]||0,e[5]||0,e[6]||0,n)}}return new Date(t)};function nr(t,e="HH:mm:ss",r={}){return i.computed(()=>_t(vt(y(t)),y(e),r))}function ht(t,e=1e3,r={}){const{immediate:n=!0,immediateCallback:o=!1}=r;let l=null;const u=i.ref(!1);function c(){l&&(clearInterval(l),l=null)}function p(){u.value=!1,c()}function _(){i.unref(e)<=0||(u.value=!0,o&&t(),c(),l=setInterval(t,y(e)))}if(n&&M&&_(),i.isRef(e)||U(e)){const d=i.watch(e,()=>{u.value&&M&&_()});j(d)}return j(p),{isActive:u,pause:p,resume:_}}var or=Object.defineProperty,Ot=Object.getOwnPropertySymbols,ar=Object.prototype.hasOwnProperty,ir=Object.prototype.propertyIsEnumerable,wt=(t,e,r)=>e in t?or(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,lr=(t,e)=>{for(var r in e||(e={}))ar.call(e,r)&&wt(t,r,e[r]);if(Ot)for(var r of Ot(e))ir.call(e,r)&&wt(t,r,e[r]);return t};function ur(t=1e3,e={}){const{controls:r=!1,immediate:n=!0,callback:o}=e,l=i.ref(0),u=()=>l.value+=1,c=ht(o?()=>{u(),o(l.value)}:u,t,{immediate:n});return r?lr({counter:l},c):l}function cr(t,e={}){var r;const n=i.ref((r=e.initialValue)!=null?r:null);return i.watch(t,()=>n.value=tt(),e),n}function gt(t,e,r={}){const{immediate:n=!0}=r,o=i.ref(!1);let l=null;function u(){l&&(clearTimeout(l),l=null)}function c(){o.value=!1,u()}function p(..._){u(),o.value=!0,l=setTimeout(()=>{o.value=!1,l=null,t(..._)},y(e))}return n&&(o.value=!0,M&&p()),j(c),{isPending:o,start:p,stop:c}}var sr=Object.defineProperty,Pt=Object.getOwnPropertySymbols,fr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable,mt=(t,e,r)=>e in t?sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pr=(t,e)=>{for(var r in e||(e={}))fr.call(e,r)&&mt(t,r,e[r]);if(Pt)for(var r of Pt(e))dr.call(e,r)&&mt(t,r,e[r]);return t};function yr(t=1e3,e={}){const{controls:r=!1,callback:n}=e,o=gt(n??I,t,e),l=i.computed(()=>!o.isPending.value);return r?pr({ready:l},o):l}function _r(t,e={}){const{method:r="parseFloat",radix:n,nanToZero:o}=e;return i.computed(()=>{let l=y(t);return typeof l=="string"&&(l=Number[r](l,n)),o&&isNaN(l)&&(l=0),l})}function vr(t){return i.computed(()=>`${y(t)}`)}function hr(t=!1,e={}){const{truthyValue:r=!0,falsyValue:n=!1}=e,o=i.isRef(t),l=i.ref(t);function u(c){if(arguments.length)return l.value=c,l.value;{const p=y(r);return l.value=l.value===p?y(n):p,l.value}}return o?u:[l,u]}function Or(t,e,r){let n=(r==null?void 0:r.immediate)?[]:[...t instanceof Function?t():Array.isArray(t)?t:i.unref(t)];return i.watch(t,(o,l,u)=>{const c=new Array(n.length),p=[];for(const d of o){let s=!1;for(let f=0;f<n.length;f++)if(!c[f]&&d===n[f]){c[f]=!0,s=!0;break}s||p.push(d)}const _=n.filter((d,s)=>!c[s]);e(o,n,p,_,u),n=[...o]},r)}var bt=Object.getOwnPropertySymbols,wr=Object.prototype.hasOwnProperty,gr=Object.prototype.propertyIsEnumerable,Pr=(t,e)=>{var r={};for(var n in t)wr.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&bt)for(var n of bt(t))e.indexOf(n)<0&&gr.call(t,n)&&(r[n]=t[n]);return r};function C(t,e,r={}){const n=r,{eventFilter:o=B}=n,l=Pr(n,["eventFilter"]);return i.watch(t,R(o,e),l)}var $t=Object.getOwnPropertySymbols,mr=Object.prototype.hasOwnProperty,br=Object.prototype.propertyIsEnumerable,$r=(t,e)=>{var r={};for(var n in t)mr.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&$t)for(var n of $t(t))e.indexOf(n)<0&&br.call(t,n)&&(r[n]=t[n]);return r};function Sr(t,e,r){const n=r,{count:o}=n,l=$r(n,["count"]),u=i.ref(0),c=C(t,(...p)=>{u.value+=1,u.value>=y(o)&&i.nextTick(()=>c()),e(...p)},l);return{count:u,stop:c}}var Ar=Object.defineProperty,jr=Object.defineProperties,Ir=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,At=Object.prototype.propertyIsEnumerable,jt=(t,e,r)=>e in t?Ar(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Fr=(t,e)=>{for(var r in e||(e={}))St.call(e,r)&&jt(t,r,e[r]);if(L)for(var r of L(e))At.call(e,r)&&jt(t,r,e[r]);return t},Tr=(t,e)=>jr(t,Ir(e)),Er=(t,e)=>{var r={};for(var n in t)St.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&L)for(var n of L(t))e.indexOf(n)<0&&At.call(t,n)&&(r[n]=t[n]);return r};function It(t,e,r={}){const n=r,{debounce:o=0,maxWait:l=void 0}=n,u=Er(n,["debounce","maxWait"]);return C(t,e,Tr(Fr({},u),{eventFilter:z(o,{maxWait:l})}))}var Mr=Object.defineProperty,Rr=Object.defineProperties,Cr=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,Ft=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable,Et=(t,e,r)=>e in t?Mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Nr=(t,e)=>{for(var r in e||(e={}))Ft.call(e,r)&&Et(t,r,e[r]);if(H)for(var r of H(e))Tt.call(e,r)&&Et(t,r,e[r]);return t},Wr=(t,e)=>Rr(t,Cr(e)),Ur=(t,e)=>{var r={};for(var n in t)Ft.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&H)for(var n of H(t))e.indexOf(n)<0&&Tt.call(t,n)&&(r[n]=t[n]);return r};function V(t,e,r={}){const n=r,{eventFilter:o=B}=n,l=Ur(n,["eventFilter"]),u=R(o,e);let c,p,_;if(l.flush==="sync"){const d=i.ref(!1);p=()=>{},c=s=>{d.value=!0,s(),d.value=!1},_=i.watch(t,(...s)=>{d.value||u(...s)},l)}else{const d=[],s=i.ref(0),f=i.ref(0);p=()=>{s.value=f.value},d.push(i.watch(t,()=>{f.value++},Wr(Nr({},l),{flush:"sync"}))),c=h=>{const v=f.value;h(),s.value+=f.value-v},d.push(i.watch(t,(...h)=>{const v=s.value>0&&s.value===f.value;s.value=0,f.value=0,!v&&u(...h)},l)),_=()=>{d.forEach(h=>h())}}return{stop:_,ignoreUpdates:c,ignorePrevAsyncUpdates:p}}function Br(t,e,r){const n=i.watch(t,(...o)=>(i.nextTick(()=>n()),e(...o)),r)}var Lr=Object.defineProperty,Hr=Object.defineProperties,kr=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,Ct=(t,e,r)=>e in t?Lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Yr=(t,e)=>{for(var r in e||(e={}))Mt.call(e,r)&&Ct(t,r,e[r]);if(k)for(var r of k(e))Rt.call(e,r)&&Ct(t,r,e[r]);return t},Gr=(t,e)=>Hr(t,kr(e)),zr=(t,e)=>{var r={};for(var n in t)Mt.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&k)for(var n of k(t))e.indexOf(n)<0&&Rt.call(t,n)&&(r[n]=t[n]);return r};function Nt(t,e,r={}){const n=r,{eventFilter:o}=n,l=zr(n,["eventFilter"]),{eventFilter:u,pause:c,resume:p,isActive:_}=et(o);return{stop:C(t,e,Gr(Yr({},l),{eventFilter:u})),pause:c,resume:p,isActive:_}}var Zr=Object.defineProperty,qr=Object.defineProperties,Jr=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,Wt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable,Bt=(t,e,r)=>e in t?Zr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Xr=(t,e)=>{for(var r in e||(e={}))Wt.call(e,r)&&Bt(t,r,e[r]);if(Y)for(var r of Y(e))Ut.call(e,r)&&Bt(t,r,e[r]);return t},Kr=(t,e)=>qr(t,Jr(e)),Qr=(t,e)=>{var r={};for(var n in t)Wt.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&Y)for(var n of Y(t))e.indexOf(n)<0&&Ut.call(t,n)&&(r[n]=t[n]);return r};function Lt(t,e,r={}){const n=r,{throttle:o=0,trailing:l=!0,leading:u=!0}=n,c=Qr(n,["throttle","trailing","leading"]);return C(t,e,Kr(Xr({},c),{eventFilter:Z(o,l,u)}))}var Vr=Object.defineProperty,Dr=Object.defineProperties,xr=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable,kt=(t,e,r)=>e in t?Vr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,rn=(t,e)=>{for(var r in e||(e={}))tn.call(e,r)&&kt(t,r,e[r]);if(Ht)for(var r of Ht(e))en.call(e,r)&&kt(t,r,e[r]);return t},nn=(t,e)=>Dr(t,xr(e));function on(t,e,r={}){let n;function o(){if(!n)return;const d=n;n=void 0,d()}function l(d){n=d}const u=(d,s)=>(o(),e(d,s,l)),c=V(t,u,r),{ignoreUpdates:p}=c,_=()=>{let d;return p(()=>{d=u(an(t),ln(t))}),d};return nn(rn({},c),{trigger:_})}function an(t){return i.isReactive(t)?t:Array.isArray(t)?t.map(e=>Yt(e)):Yt(t)}function Yt(t){return typeof t=="function"?t():i.unref(t)}function ln(t){return Array.isArray(t)?t.map(()=>{}):void 0}function un(t,e,r){return i.watch(t,(n,o,l)=>{n&&e(n,o,l)},r)}a.__onlyVue27Plus=rt,a.__onlyVue3=ne,a.assert=qt,a.autoResetRef=ct,a.bypassFilter=B,a.clamp=xt,a.computedEager=$,a.computedWithControl=nt,a.containsProp=ue,a.controlledComputed=nt,a.controlledRef=Ae,a.createEventHook=fe,a.createFilterWrapper=R,a.createGlobalState=de,a.createInjectionState=pe,a.createReactiveFn=J,a.createSharedComposable=ye,a.createSingletonPromise=ie,a.debounceFilter=z,a.debouncedRef=X,a.debouncedWatch=It,a.directiveHooks=oe,a.eagerComputed=$,a.extendRef=ot,a.formatDate=_t,a.get=_e,a.hasOwn=re,a.identity=ae,a.ignorableWatch=V,a.increaseWithUnit=ce,a.invoke=le,a.isBoolean=Jt,a.isClient=M,a.isDef=Zt,a.isDefined=ve,a.isFunction=U,a.isIOS=ee,a.isNumber=Xt,a.isObject=Qt,a.isString=Kt,a.isWindow=Vt,a.makeDestructurable=Pe,a.noop=I,a.normalizeDate=vt,a.now=Dt,a.objectPick=se,a.pausableFilter=et,a.pausableWatch=Nt,a.promiseTimeout=q,a.rand=te,a.reactify=J,a.reactifyObject=me,a.reactiveComputed=ut,a.reactiveOmit=be,a.reactivePick=$e,a.refAutoReset=ct,a.refDebounced=X,a.refDefault=Se,a.refThrottled=K,a.refWithControl=dt,a.resolveRef=je,a.resolveUnref=y,a.set=Ie,a.syncRef=Fe,a.syncRefs=Te,a.throttleFilter=Z,a.throttledRef=K,a.throttledWatch=Lt,a.timestamp=tt,a.toReactive=lt,a.toRefs=Be,a.tryOnBeforeMount=Le,a.tryOnBeforeUnmount=He,a.tryOnMounted=ke,a.tryOnScopeDispose=j,a.tryOnUnmounted=Ye,a.until=Ge,a.useArrayEvery=ze,a.useArrayFilter=Ze,a.useArrayFind=qe,a.useArrayFindIndex=Je,a.useArrayJoin=Xe,a.useArrayMap=Ke,a.useArrayReduce=Qe,a.useArraySome=Ve,a.useArrayUnique=De,a.useCounter=xe,a.useDateFormat=nr,a.useDebounce=X,a.useDebounceFn=st,a.useInterval=ur,a.useIntervalFn=ht,a.useLastChanged=cr,a.useThrottle=K,a.useThrottleFn=ft,a.useTimeout=yr,a.useTimeoutFn=gt,a.useToNumber=_r,a.useToString=vr,a.useToggle=hr,a.watchArray=Or,a.watchAtMost=Sr,a.watchDebounced=It,a.watchIgnorable=V,a.watchOnce=Br,a.watchPausable=Nt,a.watchThrottled=Lt,a.watchTriggerable=on,a.watchWithFilter=C,a.whenever=un})(this.VueUse=this.VueUse||{},VueDemi);
package/index.mjs CHANGED
@@ -63,7 +63,9 @@ function resolveUnref(r) {
63
63
 
64
64
  function createFilterWrapper(filter, fn) {
65
65
  function wrapper(...args) {
66
- filter(() => fn.apply(this, args), { fn, thisArg: this, args });
66
+ return new Promise((resolve, reject) => {
67
+ Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
68
+ });
67
69
  }
68
70
  return wrapper;
69
71
  }
@@ -73,48 +75,64 @@ const bypassFilter = (invoke) => {
73
75
  function debounceFilter(ms, options = {}) {
74
76
  let timer;
75
77
  let maxTimer;
78
+ let lastRejector = noop;
79
+ const _clearTimeout = (timer2) => {
80
+ clearTimeout(timer2);
81
+ lastRejector();
82
+ lastRejector = noop;
83
+ };
76
84
  const filter = (invoke) => {
77
85
  const duration = resolveUnref(ms);
78
86
  const maxDuration = resolveUnref(options.maxWait);
79
87
  if (timer)
80
- clearTimeout(timer);
88
+ _clearTimeout(timer);
81
89
  if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
82
90
  if (maxTimer) {
83
- clearTimeout(maxTimer);
91
+ _clearTimeout(maxTimer);
84
92
  maxTimer = null;
85
93
  }
86
- return invoke();
94
+ return Promise.resolve(invoke());
87
95
  }
88
- if (maxDuration && !maxTimer) {
89
- maxTimer = setTimeout(() => {
90
- if (timer)
91
- clearTimeout(timer);
96
+ return new Promise((resolve, reject) => {
97
+ lastRejector = options.rejectOnCancel ? reject : resolve;
98
+ if (maxDuration && !maxTimer) {
99
+ maxTimer = setTimeout(() => {
100
+ if (timer)
101
+ _clearTimeout(timer);
102
+ maxTimer = null;
103
+ resolve(invoke());
104
+ }, maxDuration);
105
+ }
106
+ timer = setTimeout(() => {
107
+ if (maxTimer)
108
+ _clearTimeout(maxTimer);
92
109
  maxTimer = null;
93
- invoke();
94
- }, maxDuration);
95
- }
96
- timer = setTimeout(() => {
97
- if (maxTimer)
98
- clearTimeout(maxTimer);
99
- maxTimer = null;
100
- invoke();
101
- }, duration);
110
+ resolve(invoke());
111
+ }, duration);
112
+ });
102
113
  };
103
114
  return filter;
104
115
  }
105
- function throttleFilter(ms, trailing = true, leading = true) {
116
+ function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {
106
117
  let lastExec = 0;
107
118
  let timer;
108
119
  let isLeading = true;
120
+ let lastRejector = noop;
121
+ let lastValue;
109
122
  const clear = () => {
110
123
  if (timer) {
111
124
  clearTimeout(timer);
112
125
  timer = void 0;
126
+ lastRejector();
127
+ lastRejector = noop;
113
128
  }
114
129
  };
115
- const filter = (invoke) => {
130
+ const filter = (_invoke) => {
116
131
  const duration = resolveUnref(ms);
117
132
  const elapsed = Date.now() - lastExec;
133
+ const invoke = () => {
134
+ return lastValue = _invoke();
135
+ };
118
136
  clear();
119
137
  if (duration <= 0) {
120
138
  lastExec = Date.now();
@@ -124,16 +142,20 @@ function throttleFilter(ms, trailing = true, leading = true) {
124
142
  lastExec = Date.now();
125
143
  invoke();
126
144
  } else if (trailing) {
127
- timer = setTimeout(() => {
128
- lastExec = Date.now();
129
- isLeading = true;
130
- clear();
131
- invoke();
132
- }, duration - elapsed);
145
+ return new Promise((resolve, reject) => {
146
+ lastRejector = rejectOnCancel ? reject : resolve;
147
+ timer = setTimeout(() => {
148
+ lastExec = Date.now();
149
+ isLeading = true;
150
+ resolve(invoke());
151
+ clear();
152
+ }, duration - elapsed);
153
+ });
133
154
  }
134
155
  if (!leading && !timer)
135
156
  timer = setTimeout(() => isLeading = true, duration);
136
157
  isLeading = false;
158
+ return lastValue;
137
159
  };
138
160
  return filter;
139
161
  }
@@ -528,8 +550,8 @@ function refDefault(source, defaultValue) {
528
550
  });
529
551
  }
530
552
 
531
- function useThrottleFn(fn, ms = 200, trailing = false, leading = true) {
532
- return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);
553
+ function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
554
+ return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);
533
555
  }
534
556
 
535
557
  function refThrottled(value, delay = 200, trailing = true, leading = true) {
@@ -861,6 +883,10 @@ function useArraySome(list, fn) {
861
883
  return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));
862
884
  }
863
885
 
886
+ function useArrayUnique(list) {
887
+ return computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);
888
+ }
889
+
864
890
  function useCounter(initialValue = 0, options = {}) {
865
891
  const count = ref(initialValue);
866
892
  const {
@@ -1521,4 +1547,4 @@ function whenever(source, cb, options) {
1521
1547
  }, options);
1522
1548
  }
1523
1549
 
1524
- export { __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
1550
+ export { __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/shared",
3
- "version": "9.9.0",
3
+ "version": "9.10.0",
4
4
  "author": "Anthony Fu <https://github.com/antfu>",
5
5
  "license": "MIT",
6
6
  "funding": "https://github.com/sponsors/antfu",