@vueuse/shared 10.8.0 → 10.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
@@ -119,12 +119,13 @@ const injectLocal = (...args) => {
119
119
 
120
120
  function createInjectionState(composable, options) {
121
121
  const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState");
122
+ const defaultValue = options == null ? void 0 : options.defaultValue;
122
123
  const useProvidingState = (...args) => {
123
124
  const state = composable(...args);
124
125
  provideLocal(key, state);
125
126
  return state;
126
127
  };
127
- const useInjectedState = () => injectLocal(key);
128
+ const useInjectedState = () => injectLocal(key, defaultValue);
128
129
  return [useProvidingState, useInjectedState];
129
130
  }
130
131
 
@@ -310,7 +311,7 @@ const hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);
310
311
  const isIOS = /* @__PURE__ */ getIsIOS();
311
312
  function getIsIOS() {
312
313
  var _a, _b;
313
- return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
314
+ return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
314
315
  }
315
316
 
316
317
  function createFilterWrapper(filter, fn) {
@@ -490,7 +491,7 @@ function increaseWithUnit(target, delta) {
490
491
  var _a;
491
492
  if (typeof target === "number")
492
493
  return target + delta;
493
- const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || "";
494
+ const value = ((_a = target.match(/^-?\d+\.?\d*/)) == null ? void 0 : _a[0]) || "";
494
495
  const unit = target.slice(value.length);
495
496
  const result = Number.parseFloat(value) + delta;
496
497
  if (Number.isNaN(result))
@@ -1067,8 +1068,8 @@ function useCounter(initialValue = 0, options = {}) {
1067
1068
  return { count, inc, dec, get, set, reset };
1068
1069
  }
1069
1070
 
1070
- const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
1071
- const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)]|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;
1071
+ const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i;
1072
+ const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)\]|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;
1072
1073
  function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {
1073
1074
  let m = hours < 12 ? "AM" : "PM";
1074
1075
  if (hasPeriod)
@@ -1556,14 +1557,21 @@ function getOldValue(source) {
1556
1557
  }
1557
1558
 
1558
1559
  function whenever(source, cb, options) {
1559
- return vueDemi.watch(
1560
+ const stop = vueDemi.watch(
1560
1561
  source,
1561
1562
  (v, ov, onInvalidate) => {
1562
- if (v)
1563
+ if (v) {
1564
+ if (options == null ? void 0 : options.once)
1565
+ vueDemi.nextTick(() => stop());
1563
1566
  cb(v, ov, onInvalidate);
1567
+ }
1564
1568
  },
1565
- options
1569
+ {
1570
+ ...options,
1571
+ once: false
1572
+ }
1566
1573
  );
1574
+ return stop;
1567
1575
  }
1568
1576
 
1569
1577
  exports.assert = assert;
package/index.d.cts CHANGED
@@ -177,7 +177,7 @@ declare function createEventHook<T = any>(): EventHook<T>;
177
177
 
178
178
  declare const isClient: boolean;
179
179
  declare const isWorker: boolean;
180
- declare const isDef: <T = any>(val?: T | undefined) => val is T;
180
+ declare const isDef: <T = any>(val?: T) => val is T;
181
181
  declare const notNullish: <T = any>(val?: T | null | undefined) => val is T;
182
182
  declare const assert: (condition: boolean, ...infos: any[]) => void;
183
183
  declare const isObject: (val: any) => val is object;
@@ -331,6 +331,10 @@ interface CreateInjectionStateOptions<Return> {
331
331
  * Custom injectionKey for InjectionState
332
332
  */
333
333
  injectionKey?: string | InjectionKey<Return>;
334
+ /**
335
+ * Default value for the InjectionState
336
+ */
337
+ defaultValue?: Return;
334
338
  }
335
339
  /**
336
340
  * Create global state that can be injected into components.
@@ -391,7 +395,7 @@ declare function isDefined<T>(v: Ref<T>): v is Ref<Exclude<T, null | undefined>>
391
395
  declare function isDefined<T>(v: ComputedRef<T>): v is ComputedRef<Exclude<T, null | undefined>>;
392
396
  declare function isDefined<T>(v: T): v is Exclude<T, null | undefined>;
393
397
 
394
- declare function makeDestructurable<T extends Record<string, unknown>, A extends readonly any[]>(obj: T, arr: A): T & A;
398
+ declare function makeDestructurable<T extends Record<string, unknown>, const A extends readonly any[]>(obj: T, arr: A): T & A;
395
399
 
396
400
  /**
397
401
  * On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.
@@ -505,7 +509,7 @@ interface ControlledRefOptions<T> {
505
509
  onChanged?: (value: T, oldValue: T) => void;
506
510
  }
507
511
  /**
508
- * Explicitly define the deps of computed.
512
+ * Fine-grained controls over ref and its reactivity.
509
513
  */
510
514
  declare function refWithControl<T>(initial: T, options?: ControlledRefOptions<T>): vue_demi.ShallowUnwrapRef<{
511
515
  get: (tracking?: boolean) => T;
@@ -1003,7 +1007,7 @@ interface UseIntervalFnOptions {
1003
1007
  */
1004
1008
  immediate?: boolean;
1005
1009
  /**
1006
- * Execute the callback immediate after calling this function
1010
+ * Execute the callback immediately after calling `resume`
1007
1011
  *
1008
1012
  * @default false
1009
1013
  */
@@ -1036,12 +1040,13 @@ declare function useLastChanged(source: WatchSource, options: UseLastChangedOpti
1036
1040
  * @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
1037
1041
  * to `callback` when the throttled-function is executed.
1038
1042
  * @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
1043
+ * (default value: 200)
1039
1044
  *
1040
- * @param [trailing] if true, call fn again after the time is up
1045
+ * @param [trailing] if true, call fn again after the time is up (default value: false)
1041
1046
  *
1042
- * @param [leading] if true, call fn on the leading edge of the ms timeout
1047
+ * @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)
1043
1048
  *
1044
- * @param [rejectOnCancel] if true, reject the last call if it's been cancel
1049
+ * @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)
1045
1050
  *
1046
1051
  * @return A new, throttled, function.
1047
1052
  */
@@ -1083,8 +1088,8 @@ interface UseTimeoutOptions<Controls extends boolean> extends UseTimeoutFnOption
1083
1088
  * @param interval
1084
1089
  * @param options
1085
1090
  */
1086
- declare function useTimeout(interval?: number, options?: UseTimeoutOptions<false>): ComputedRef<boolean>;
1087
- declare function useTimeout(interval: number, options: UseTimeoutOptions<true>): {
1091
+ declare function useTimeout(interval?: MaybeRefOrGetter<number>, options?: UseTimeoutOptions<false>): ComputedRef<boolean>;
1092
+ declare function useTimeout(interval: MaybeRefOrGetter<number>, options: UseTimeoutOptions<true>): {
1088
1093
  ready: ComputedRef<boolean>;
1089
1094
  } & Stoppable;
1090
1095
 
@@ -1108,7 +1113,7 @@ interface UseToNumberOptions {
1108
1113
  nanToZero?: boolean;
1109
1114
  }
1110
1115
  /**
1111
- * Computed reactive object.
1116
+ * Reactively convert a string ref to number.
1112
1117
  */
1113
1118
  declare function useToNumber(value: MaybeRefOrGetter<number | string>, options?: UseToNumberOptions): ComputedRef<number>;
1114
1119
 
@@ -1204,11 +1209,21 @@ declare function watchTriggerable<T extends Readonly<WatchSource<unknown>[]>, Fn
1204
1209
  declare function watchTriggerable<T, FnReturnT>(source: WatchSource<T>, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1205
1210
  declare function watchTriggerable<T extends object, FnReturnT>(source: T, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1206
1211
 
1212
+ interface WheneverOptions extends WatchOptions {
1213
+ /**
1214
+ * Only trigger once when the condition is met
1215
+ *
1216
+ * Override the `once` option in `WatchOptions`
1217
+ *
1218
+ * @default false
1219
+ */
1220
+ once?: boolean;
1221
+ }
1207
1222
  /**
1208
1223
  * Shorthand for watching value to be truthy
1209
1224
  *
1210
1225
  * @see https://vueuse.org/whenever
1211
1226
  */
1212
- declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WatchOptions): vue_demi.WatchStopHandle;
1227
+ declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WheneverOptions): vue_demi.WatchStopHandle;
1213
1228
 
1214
- export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, type Awaited, type ComputedRefWithControl, type ComputedWithControlRefExtra, type ConfigurableEventFilter, type ConfigurableFlush, type ConfigurableFlushSync, type ControlledRefOptions, type CreateInjectionStateOptions, type DateLike, type DebounceFilterOptions, type DeepMaybeRef, type ElementOf, type EventFilter, type EventHook, type EventHookOff, type EventHookOn, type EventHookTrigger, type ExtendRefOptions, type Fn, type FunctionArgs, type FunctionWrapperOptions, type IfAny, type IgnoredUpdater, type IsAny, type MapOldSources, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MultiWatchSources, type Mutable, type Pausable, type Promisify, type PromisifyFn, type Reactified, type ReactifyNested, type ReactifyObjectOptions, type ReactifyOptions, type ReactiveOmitPredicate, type ReactivePickPredicate, type ReadonlyRefOrGetter, type RemovableRef, type ShallowUnwrapRef, type SingletonPromiseReturn, type Stoppable, type SyncRefOptions, type SyncRefsOptions, type ThrottleFilterOptions, type ToRefsOptions, type UntilArrayInstance, type UntilBaseInstance, type UntilToMatchOptions, type UntilValueInstance, type UseArrayIncludesComparatorFn, type UseArrayIncludesOptions, type UseArrayReducer, type UseCounterOptions, type UseDateFormatOptions, type UseDateFormatReturn, type UseIntervalControls, type UseIntervalFnOptions, type UseIntervalOptions, type UseLastChangedOptions, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseToNumberOptions, type UseToggleOptions, type WatchArrayCallback, type WatchAtMostOptions, type WatchAtMostReturn, type WatchDebouncedOptions, type WatchIgnorableReturn, type WatchPausableReturn, type WatchThrottledOptions, type WatchTriggerableCallback, type WatchTriggerableReturn, type WatchWithFilterOptions, type WritableComputedRefWithControl, assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
1229
+ export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, type Awaited, type ComputedRefWithControl, type ComputedWithControlRefExtra, type ConfigurableEventFilter, type ConfigurableFlush, type ConfigurableFlushSync, type ControlledRefOptions, type CreateInjectionStateOptions, type DateLike, type DebounceFilterOptions, type DeepMaybeRef, type ElementOf, type EventFilter, type EventHook, type EventHookOff, type EventHookOn, type EventHookTrigger, type ExtendRefOptions, type Fn, type FunctionArgs, type FunctionWrapperOptions, type IfAny, type IgnoredUpdater, type IsAny, type MapOldSources, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MultiWatchSources, type Mutable, type Pausable, type Promisify, type PromisifyFn, type Reactified, type ReactifyNested, type ReactifyObjectOptions, type ReactifyOptions, type ReactiveOmitPredicate, type ReactivePickPredicate, type ReadonlyRefOrGetter, type RemovableRef, type ShallowUnwrapRef, type SingletonPromiseReturn, type Stoppable, type SyncRefOptions, type SyncRefsOptions, type ThrottleFilterOptions, type ToRefsOptions, type UntilArrayInstance, type UntilBaseInstance, type UntilToMatchOptions, type UntilValueInstance, type UseArrayIncludesComparatorFn, type UseArrayIncludesOptions, type UseArrayReducer, type UseCounterOptions, type UseDateFormatOptions, type UseDateFormatReturn, type UseIntervalControls, type UseIntervalFnOptions, type UseIntervalOptions, type UseLastChangedOptions, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseToNumberOptions, type UseToggleOptions, type WatchArrayCallback, type WatchAtMostOptions, type WatchAtMostReturn, type WatchDebouncedOptions, type WatchIgnorableReturn, type WatchPausableReturn, type WatchThrottledOptions, type WatchTriggerableCallback, type WatchTriggerableReturn, type WatchWithFilterOptions, type WheneverOptions, type WritableComputedRefWithControl, assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
package/index.d.mts CHANGED
@@ -177,7 +177,7 @@ declare function createEventHook<T = any>(): EventHook<T>;
177
177
 
178
178
  declare const isClient: boolean;
179
179
  declare const isWorker: boolean;
180
- declare const isDef: <T = any>(val?: T | undefined) => val is T;
180
+ declare const isDef: <T = any>(val?: T) => val is T;
181
181
  declare const notNullish: <T = any>(val?: T | null | undefined) => val is T;
182
182
  declare const assert: (condition: boolean, ...infos: any[]) => void;
183
183
  declare const isObject: (val: any) => val is object;
@@ -331,6 +331,10 @@ interface CreateInjectionStateOptions<Return> {
331
331
  * Custom injectionKey for InjectionState
332
332
  */
333
333
  injectionKey?: string | InjectionKey<Return>;
334
+ /**
335
+ * Default value for the InjectionState
336
+ */
337
+ defaultValue?: Return;
334
338
  }
335
339
  /**
336
340
  * Create global state that can be injected into components.
@@ -391,7 +395,7 @@ declare function isDefined<T>(v: Ref<T>): v is Ref<Exclude<T, null | undefined>>
391
395
  declare function isDefined<T>(v: ComputedRef<T>): v is ComputedRef<Exclude<T, null | undefined>>;
392
396
  declare function isDefined<T>(v: T): v is Exclude<T, null | undefined>;
393
397
 
394
- declare function makeDestructurable<T extends Record<string, unknown>, A extends readonly any[]>(obj: T, arr: A): T & A;
398
+ declare function makeDestructurable<T extends Record<string, unknown>, const A extends readonly any[]>(obj: T, arr: A): T & A;
395
399
 
396
400
  /**
397
401
  * On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.
@@ -505,7 +509,7 @@ interface ControlledRefOptions<T> {
505
509
  onChanged?: (value: T, oldValue: T) => void;
506
510
  }
507
511
  /**
508
- * Explicitly define the deps of computed.
512
+ * Fine-grained controls over ref and its reactivity.
509
513
  */
510
514
  declare function refWithControl<T>(initial: T, options?: ControlledRefOptions<T>): vue_demi.ShallowUnwrapRef<{
511
515
  get: (tracking?: boolean) => T;
@@ -1003,7 +1007,7 @@ interface UseIntervalFnOptions {
1003
1007
  */
1004
1008
  immediate?: boolean;
1005
1009
  /**
1006
- * Execute the callback immediate after calling this function
1010
+ * Execute the callback immediately after calling `resume`
1007
1011
  *
1008
1012
  * @default false
1009
1013
  */
@@ -1036,12 +1040,13 @@ declare function useLastChanged(source: WatchSource, options: UseLastChangedOpti
1036
1040
  * @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
1037
1041
  * to `callback` when the throttled-function is executed.
1038
1042
  * @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
1043
+ * (default value: 200)
1039
1044
  *
1040
- * @param [trailing] if true, call fn again after the time is up
1045
+ * @param [trailing] if true, call fn again after the time is up (default value: false)
1041
1046
  *
1042
- * @param [leading] if true, call fn on the leading edge of the ms timeout
1047
+ * @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)
1043
1048
  *
1044
- * @param [rejectOnCancel] if true, reject the last call if it's been cancel
1049
+ * @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)
1045
1050
  *
1046
1051
  * @return A new, throttled, function.
1047
1052
  */
@@ -1083,8 +1088,8 @@ interface UseTimeoutOptions<Controls extends boolean> extends UseTimeoutFnOption
1083
1088
  * @param interval
1084
1089
  * @param options
1085
1090
  */
1086
- declare function useTimeout(interval?: number, options?: UseTimeoutOptions<false>): ComputedRef<boolean>;
1087
- declare function useTimeout(interval: number, options: UseTimeoutOptions<true>): {
1091
+ declare function useTimeout(interval?: MaybeRefOrGetter<number>, options?: UseTimeoutOptions<false>): ComputedRef<boolean>;
1092
+ declare function useTimeout(interval: MaybeRefOrGetter<number>, options: UseTimeoutOptions<true>): {
1088
1093
  ready: ComputedRef<boolean>;
1089
1094
  } & Stoppable;
1090
1095
 
@@ -1108,7 +1113,7 @@ interface UseToNumberOptions {
1108
1113
  nanToZero?: boolean;
1109
1114
  }
1110
1115
  /**
1111
- * Computed reactive object.
1116
+ * Reactively convert a string ref to number.
1112
1117
  */
1113
1118
  declare function useToNumber(value: MaybeRefOrGetter<number | string>, options?: UseToNumberOptions): ComputedRef<number>;
1114
1119
 
@@ -1204,11 +1209,21 @@ declare function watchTriggerable<T extends Readonly<WatchSource<unknown>[]>, Fn
1204
1209
  declare function watchTriggerable<T, FnReturnT>(source: WatchSource<T>, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1205
1210
  declare function watchTriggerable<T extends object, FnReturnT>(source: T, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1206
1211
 
1212
+ interface WheneverOptions extends WatchOptions {
1213
+ /**
1214
+ * Only trigger once when the condition is met
1215
+ *
1216
+ * Override the `once` option in `WatchOptions`
1217
+ *
1218
+ * @default false
1219
+ */
1220
+ once?: boolean;
1221
+ }
1207
1222
  /**
1208
1223
  * Shorthand for watching value to be truthy
1209
1224
  *
1210
1225
  * @see https://vueuse.org/whenever
1211
1226
  */
1212
- declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WatchOptions): vue_demi.WatchStopHandle;
1227
+ declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WheneverOptions): vue_demi.WatchStopHandle;
1213
1228
 
1214
- export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, type Awaited, type ComputedRefWithControl, type ComputedWithControlRefExtra, type ConfigurableEventFilter, type ConfigurableFlush, type ConfigurableFlushSync, type ControlledRefOptions, type CreateInjectionStateOptions, type DateLike, type DebounceFilterOptions, type DeepMaybeRef, type ElementOf, type EventFilter, type EventHook, type EventHookOff, type EventHookOn, type EventHookTrigger, type ExtendRefOptions, type Fn, type FunctionArgs, type FunctionWrapperOptions, type IfAny, type IgnoredUpdater, type IsAny, type MapOldSources, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MultiWatchSources, type Mutable, type Pausable, type Promisify, type PromisifyFn, type Reactified, type ReactifyNested, type ReactifyObjectOptions, type ReactifyOptions, type ReactiveOmitPredicate, type ReactivePickPredicate, type ReadonlyRefOrGetter, type RemovableRef, type ShallowUnwrapRef, type SingletonPromiseReturn, type Stoppable, type SyncRefOptions, type SyncRefsOptions, type ThrottleFilterOptions, type ToRefsOptions, type UntilArrayInstance, type UntilBaseInstance, type UntilToMatchOptions, type UntilValueInstance, type UseArrayIncludesComparatorFn, type UseArrayIncludesOptions, type UseArrayReducer, type UseCounterOptions, type UseDateFormatOptions, type UseDateFormatReturn, type UseIntervalControls, type UseIntervalFnOptions, type UseIntervalOptions, type UseLastChangedOptions, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseToNumberOptions, type UseToggleOptions, type WatchArrayCallback, type WatchAtMostOptions, type WatchAtMostReturn, type WatchDebouncedOptions, type WatchIgnorableReturn, type WatchPausableReturn, type WatchThrottledOptions, type WatchTriggerableCallback, type WatchTriggerableReturn, type WatchWithFilterOptions, type WritableComputedRefWithControl, assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
1229
+ export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, type Awaited, type ComputedRefWithControl, type ComputedWithControlRefExtra, type ConfigurableEventFilter, type ConfigurableFlush, type ConfigurableFlushSync, type ControlledRefOptions, type CreateInjectionStateOptions, type DateLike, type DebounceFilterOptions, type DeepMaybeRef, type ElementOf, type EventFilter, type EventHook, type EventHookOff, type EventHookOn, type EventHookTrigger, type ExtendRefOptions, type Fn, type FunctionArgs, type FunctionWrapperOptions, type IfAny, type IgnoredUpdater, type IsAny, type MapOldSources, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MultiWatchSources, type Mutable, type Pausable, type Promisify, type PromisifyFn, type Reactified, type ReactifyNested, type ReactifyObjectOptions, type ReactifyOptions, type ReactiveOmitPredicate, type ReactivePickPredicate, type ReadonlyRefOrGetter, type RemovableRef, type ShallowUnwrapRef, type SingletonPromiseReturn, type Stoppable, type SyncRefOptions, type SyncRefsOptions, type ThrottleFilterOptions, type ToRefsOptions, type UntilArrayInstance, type UntilBaseInstance, type UntilToMatchOptions, type UntilValueInstance, type UseArrayIncludesComparatorFn, type UseArrayIncludesOptions, type UseArrayReducer, type UseCounterOptions, type UseDateFormatOptions, type UseDateFormatReturn, type UseIntervalControls, type UseIntervalFnOptions, type UseIntervalOptions, type UseLastChangedOptions, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseToNumberOptions, type UseToggleOptions, type WatchArrayCallback, type WatchAtMostOptions, type WatchAtMostReturn, type WatchDebouncedOptions, type WatchIgnorableReturn, type WatchPausableReturn, type WatchThrottledOptions, type WatchTriggerableCallback, type WatchTriggerableReturn, type WatchWithFilterOptions, type WheneverOptions, type WritableComputedRefWithControl, assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
package/index.d.ts CHANGED
@@ -177,7 +177,7 @@ declare function createEventHook<T = any>(): EventHook<T>;
177
177
 
178
178
  declare const isClient: boolean;
179
179
  declare const isWorker: boolean;
180
- declare const isDef: <T = any>(val?: T | undefined) => val is T;
180
+ declare const isDef: <T = any>(val?: T) => val is T;
181
181
  declare const notNullish: <T = any>(val?: T | null | undefined) => val is T;
182
182
  declare const assert: (condition: boolean, ...infos: any[]) => void;
183
183
  declare const isObject: (val: any) => val is object;
@@ -331,6 +331,10 @@ interface CreateInjectionStateOptions<Return> {
331
331
  * Custom injectionKey for InjectionState
332
332
  */
333
333
  injectionKey?: string | InjectionKey<Return>;
334
+ /**
335
+ * Default value for the InjectionState
336
+ */
337
+ defaultValue?: Return;
334
338
  }
335
339
  /**
336
340
  * Create global state that can be injected into components.
@@ -391,7 +395,7 @@ declare function isDefined<T>(v: Ref<T>): v is Ref<Exclude<T, null | undefined>>
391
395
  declare function isDefined<T>(v: ComputedRef<T>): v is ComputedRef<Exclude<T, null | undefined>>;
392
396
  declare function isDefined<T>(v: T): v is Exclude<T, null | undefined>;
393
397
 
394
- declare function makeDestructurable<T extends Record<string, unknown>, A extends readonly any[]>(obj: T, arr: A): T & A;
398
+ declare function makeDestructurable<T extends Record<string, unknown>, const A extends readonly any[]>(obj: T, arr: A): T & A;
395
399
 
396
400
  /**
397
401
  * On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.
@@ -505,7 +509,7 @@ interface ControlledRefOptions<T> {
505
509
  onChanged?: (value: T, oldValue: T) => void;
506
510
  }
507
511
  /**
508
- * Explicitly define the deps of computed.
512
+ * Fine-grained controls over ref and its reactivity.
509
513
  */
510
514
  declare function refWithControl<T>(initial: T, options?: ControlledRefOptions<T>): vue_demi.ShallowUnwrapRef<{
511
515
  get: (tracking?: boolean) => T;
@@ -1003,7 +1007,7 @@ interface UseIntervalFnOptions {
1003
1007
  */
1004
1008
  immediate?: boolean;
1005
1009
  /**
1006
- * Execute the callback immediate after calling this function
1010
+ * Execute the callback immediately after calling `resume`
1007
1011
  *
1008
1012
  * @default false
1009
1013
  */
@@ -1036,12 +1040,13 @@ declare function useLastChanged(source: WatchSource, options: UseLastChangedOpti
1036
1040
  * @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
1037
1041
  * to `callback` when the throttled-function is executed.
1038
1042
  * @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
1043
+ * (default value: 200)
1039
1044
  *
1040
- * @param [trailing] if true, call fn again after the time is up
1045
+ * @param [trailing] if true, call fn again after the time is up (default value: false)
1041
1046
  *
1042
- * @param [leading] if true, call fn on the leading edge of the ms timeout
1047
+ * @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)
1043
1048
  *
1044
- * @param [rejectOnCancel] if true, reject the last call if it's been cancel
1049
+ * @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)
1045
1050
  *
1046
1051
  * @return A new, throttled, function.
1047
1052
  */
@@ -1083,8 +1088,8 @@ interface UseTimeoutOptions<Controls extends boolean> extends UseTimeoutFnOption
1083
1088
  * @param interval
1084
1089
  * @param options
1085
1090
  */
1086
- declare function useTimeout(interval?: number, options?: UseTimeoutOptions<false>): ComputedRef<boolean>;
1087
- declare function useTimeout(interval: number, options: UseTimeoutOptions<true>): {
1091
+ declare function useTimeout(interval?: MaybeRefOrGetter<number>, options?: UseTimeoutOptions<false>): ComputedRef<boolean>;
1092
+ declare function useTimeout(interval: MaybeRefOrGetter<number>, options: UseTimeoutOptions<true>): {
1088
1093
  ready: ComputedRef<boolean>;
1089
1094
  } & Stoppable;
1090
1095
 
@@ -1108,7 +1113,7 @@ interface UseToNumberOptions {
1108
1113
  nanToZero?: boolean;
1109
1114
  }
1110
1115
  /**
1111
- * Computed reactive object.
1116
+ * Reactively convert a string ref to number.
1112
1117
  */
1113
1118
  declare function useToNumber(value: MaybeRefOrGetter<number | string>, options?: UseToNumberOptions): ComputedRef<number>;
1114
1119
 
@@ -1204,11 +1209,21 @@ declare function watchTriggerable<T extends Readonly<WatchSource<unknown>[]>, Fn
1204
1209
  declare function watchTriggerable<T, FnReturnT>(source: WatchSource<T>, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1205
1210
  declare function watchTriggerable<T extends object, FnReturnT>(source: T, cb: WatchTriggerableCallback<T, T | undefined, FnReturnT>, options?: WatchWithFilterOptions<boolean>): WatchTriggerableReturn<FnReturnT>;
1206
1211
 
1212
+ interface WheneverOptions extends WatchOptions {
1213
+ /**
1214
+ * Only trigger once when the condition is met
1215
+ *
1216
+ * Override the `once` option in `WatchOptions`
1217
+ *
1218
+ * @default false
1219
+ */
1220
+ once?: boolean;
1221
+ }
1207
1222
  /**
1208
1223
  * Shorthand for watching value to be truthy
1209
1224
  *
1210
1225
  * @see https://vueuse.org/whenever
1211
1226
  */
1212
- declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WatchOptions): vue_demi.WatchStopHandle;
1227
+ declare function whenever<T>(source: WatchSource<T | false | null | undefined>, cb: WatchCallback<T>, options?: WheneverOptions): vue_demi.WatchStopHandle;
1213
1228
 
1214
- export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, type Awaited, type ComputedRefWithControl, type ComputedWithControlRefExtra, type ConfigurableEventFilter, type ConfigurableFlush, type ConfigurableFlushSync, type ControlledRefOptions, type CreateInjectionStateOptions, type DateLike, type DebounceFilterOptions, type DeepMaybeRef, type ElementOf, type EventFilter, type EventHook, type EventHookOff, type EventHookOn, type EventHookTrigger, type ExtendRefOptions, type Fn, type FunctionArgs, type FunctionWrapperOptions, type IfAny, type IgnoredUpdater, type IsAny, type MapOldSources, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MultiWatchSources, type Mutable, type Pausable, type Promisify, type PromisifyFn, type Reactified, type ReactifyNested, type ReactifyObjectOptions, type ReactifyOptions, type ReactiveOmitPredicate, type ReactivePickPredicate, type ReadonlyRefOrGetter, type RemovableRef, type ShallowUnwrapRef, type SingletonPromiseReturn, type Stoppable, type SyncRefOptions, type SyncRefsOptions, type ThrottleFilterOptions, type ToRefsOptions, type UntilArrayInstance, type UntilBaseInstance, type UntilToMatchOptions, type UntilValueInstance, type UseArrayIncludesComparatorFn, type UseArrayIncludesOptions, type UseArrayReducer, type UseCounterOptions, type UseDateFormatOptions, type UseDateFormatReturn, type UseIntervalControls, type UseIntervalFnOptions, type UseIntervalOptions, type UseLastChangedOptions, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseToNumberOptions, type UseToggleOptions, type WatchArrayCallback, type WatchAtMostOptions, type WatchAtMostReturn, type WatchDebouncedOptions, type WatchIgnorableReturn, type WatchPausableReturn, type WatchThrottledOptions, type WatchTriggerableCallback, type WatchTriggerableReturn, type WatchWithFilterOptions, type WritableComputedRefWithControl, assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
1229
+ export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, type Awaited, type ComputedRefWithControl, type ComputedWithControlRefExtra, type ConfigurableEventFilter, type ConfigurableFlush, type ConfigurableFlushSync, type ControlledRefOptions, type CreateInjectionStateOptions, type DateLike, type DebounceFilterOptions, type DeepMaybeRef, type ElementOf, type EventFilter, type EventHook, type EventHookOff, type EventHookOn, type EventHookTrigger, type ExtendRefOptions, type Fn, type FunctionArgs, type FunctionWrapperOptions, type IfAny, type IgnoredUpdater, type IsAny, type MapOldSources, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MultiWatchSources, type Mutable, type Pausable, type Promisify, type PromisifyFn, type Reactified, type ReactifyNested, type ReactifyObjectOptions, type ReactifyOptions, type ReactiveOmitPredicate, type ReactivePickPredicate, type ReadonlyRefOrGetter, type RemovableRef, type ShallowUnwrapRef, type SingletonPromiseReturn, type Stoppable, type SyncRefOptions, type SyncRefsOptions, type ThrottleFilterOptions, type ToRefsOptions, type UntilArrayInstance, type UntilBaseInstance, type UntilToMatchOptions, type UntilValueInstance, type UseArrayIncludesComparatorFn, type UseArrayIncludesOptions, type UseArrayReducer, type UseCounterOptions, type UseDateFormatOptions, type UseDateFormatReturn, type UseIntervalControls, type UseIntervalFnOptions, type UseIntervalOptions, type UseLastChangedOptions, type UseTimeoutFnOptions, type UseTimeoutOptions, type UseToNumberOptions, type UseToggleOptions, type WatchArrayCallback, type WatchAtMostOptions, type WatchAtMostReturn, type WatchDebouncedOptions, type WatchIgnorableReturn, type WatchPausableReturn, type WatchThrottledOptions, type WatchTriggerableCallback, type WatchTriggerableReturn, type WatchWithFilterOptions, type WheneverOptions, type WritableComputedRefWithControl, assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
package/index.iife.js CHANGED
@@ -238,12 +238,13 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
238
238
 
239
239
  function createInjectionState(composable, options) {
240
240
  const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState");
241
+ const defaultValue = options == null ? void 0 : options.defaultValue;
241
242
  const useProvidingState = (...args) => {
242
243
  const state = composable(...args);
243
244
  provideLocal(key, state);
244
245
  return state;
245
246
  };
246
- const useInjectedState = () => injectLocal(key);
247
+ const useInjectedState = () => injectLocal(key, defaultValue);
247
248
  return [useProvidingState, useInjectedState];
248
249
  }
249
250
 
@@ -429,7 +430,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
429
430
  const isIOS = /* @__PURE__ */ getIsIOS();
430
431
  function getIsIOS() {
431
432
  var _a, _b;
432
- return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
433
+ return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
433
434
  }
434
435
 
435
436
  function createFilterWrapper(filter, fn) {
@@ -609,7 +610,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
609
610
  var _a;
610
611
  if (typeof target === "number")
611
612
  return target + delta;
612
- const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || "";
613
+ const value = ((_a = target.match(/^-?\d+\.?\d*/)) == null ? void 0 : _a[0]) || "";
613
614
  const unit = target.slice(value.length);
614
615
  const result = Number.parseFloat(value) + delta;
615
616
  if (Number.isNaN(result))
@@ -1186,8 +1187,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1186
1187
  return { count, inc, dec, get, set, reset };
1187
1188
  }
1188
1189
 
1189
- const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
1190
- const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)]|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;
1190
+ const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i;
1191
+ const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)\]|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;
1191
1192
  function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {
1192
1193
  let m = hours < 12 ? "AM" : "PM";
1193
1194
  if (hasPeriod)
@@ -1675,14 +1676,21 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1675
1676
  }
1676
1677
 
1677
1678
  function whenever(source, cb, options) {
1678
- return vueDemi.watch(
1679
+ const stop = vueDemi.watch(
1679
1680
  source,
1680
1681
  (v, ov, onInvalidate) => {
1681
- if (v)
1682
+ if (v) {
1683
+ if (options == null ? void 0 : options.once)
1684
+ vueDemi.nextTick(() => stop());
1682
1685
  cb(v, ov, onInvalidate);
1686
+ }
1683
1687
  },
1684
- options
1688
+ {
1689
+ ...options,
1690
+ once: false
1691
+ }
1685
1692
  );
1693
+ return stop;
1686
1694
  }
1687
1695
 
1688
1696
  exports.assert = assert;
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- var VueDemi=function(c,u,E){if(c.install)return c;if(!u)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),c;if(u.version.slice(0,4)==="2.7."){let v=function(S,A){var T,_={},U={config:u.config,use:u.use.bind(u),mixin:u.mixin.bind(u),component:u.component.bind(u),provide:function(I,F){return _[I]=F,this},directive:function(I,F){return F?(u.directive(I,F),U):u.directive(I)},mount:function(I,F){return T||(T=new u(Object.assign({propsData:A},S,{provide:Object.assign(_,S.provide)})),T.$mount(I,F),T)},unmount:function(){T&&(T.$destroy(),T=void 0)}};return U};var M=v;for(var O in u)c[O]=u[O];c.isVue2=!0,c.isVue3=!1,c.install=function(){},c.Vue=u,c.Vue2=u,c.version=u.version,c.warn=u.util.warn,c.hasInjectionContext=function(){return!!c.getCurrentInstance()},c.createApp=v}else if(u.version.slice(0,2)==="2.")if(E){for(var O in E)c[O]=E[O];c.isVue2=!0,c.isVue3=!1,c.install=function(){},c.Vue=u,c.Vue2=u,c.version=u.version,c.hasInjectionContext=function(){return!!c.getCurrentInstance()}}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(u.version.slice(0,2)==="3."){for(var O in u)c[O]=u[O];c.isVue2=!1,c.isVue3=!0,c.install=function(){},c.Vue=u,c.Vue2=void 0,c.version=u.version,c.set=function(v,S,A){return Array.isArray(v)?(v.length=Math.max(v.length,S),v.splice(S,1,A),A):(v[S]=A,A)},c.del=function(v,S){if(Array.isArray(v)){v.splice(S,1);return}delete v[S]}}else console.error("[vue-demi] Vue version "+u.version+" is unsupported.");return c}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(c,u){"use strict";function E(t,e){var n;const r=u.shallowRef();return u.watchEffect(()=>{r.value=t()},{...e,flush:(n=e?.flush)!=null?n:"sync"}),u.readonly(r)}function O(t,e){let n,r,o;const i=u.ref(!0),a=()=>{i.value=!0,o()};u.watch(t,a,{flush:"sync"});const l=typeof e=="function"?e:e.get,f=typeof e=="function"?void 0:e.set,m=u.customRef((y,h)=>(r=y,o=h,{get(){return i.value&&(n=l(),i.value=!1),r(),n},set(d){f?.(d)}}));return Object.isExtensible(m)&&(m.trigger=a),m}function M(t){return u.getCurrentScope()?(u.onScopeDispose(t),!0):!1}function v(){const t=new Set,e=o=>{t.delete(o)};return{on:o=>{t.add(o);const i=()=>e(o);return M(i),{off:i}},off:e,trigger:(...o)=>Promise.all(Array.from(t).map(i=>i(...o)))}}function S(t){let e=!1,n;const r=u.effectScope(!0);return(...o)=>(e||(n=r.run(()=>t(...o)),e=!0),n)}const A=new WeakMap,T=(t,e)=>{var n;const r=(n=u.getCurrentInstance())==null?void 0:n.proxy;if(r==null)throw new Error("provideLocal must be called in setup");A.has(r)||A.set(r,Object.create(null));const o=A.get(r);o[t]=e,u.provide(t,e)},_=(...t)=>{var e;const n=t[0],r=(e=u.getCurrentInstance())==null?void 0:e.proxy;if(r==null)throw new Error("injectLocal must be called in setup");return A.has(r)&&n in A.get(r)?A.get(r)[n]:u.inject(...t)};function U(t,e){const n=e?.injectionKey||Symbol(t.name||"InjectionState");return[(...i)=>{const a=t(...i);return T(n,a),a},()=>_(n)]}function I(t){let e=0,n,r;const o=()=>{e-=1,r&&e<=0&&(r.stop(),n=void 0,r=void 0)};return(...i)=>(e+=1,n||(r=u.effectScope(!0),n=r.run(()=>t(...i))),M(o),n)}function F(t,e,{enumerable:n=!1,unwrap:r=!0}={}){if(!u.isVue3&&!u.version.startsWith("2.7.")){if(process.env.NODE_ENV!=="production")throw new Error("[VueUse] extendRef only works in Vue 2.7 or above.");return}for(const[o,i]of Object.entries(e))o!=="value"&&(u.isRef(i)&&r?Object.defineProperty(t,o,{get(){return i.value},set(a){i.value=a},enumerable:n}):Object.defineProperty(t,o,{value:i,enumerable:n}));return t}function wt(t,e){return e==null?u.unref(t):u.unref(t)[e]}function gt(t){return u.unref(t)!=null}function pt(t,e){if(typeof Symbol<"u"){const n={...t};return Object.defineProperty(n,Symbol.iterator,{enumerable:!1,value(){let r=0;return{next:()=>({value:e[r++],done:r>e.length})}}}),n}else return Object.assign([...e],t)}function s(t){return typeof t=="function"?t():u.unref(t)}const vt=s;function Y(t,e){const n=e?.computedGetter===!1?u.unref:s;return function(...r){return u.computed(()=>t.apply(this,r.map(o=>n(o))))}}function bt(t,e={}){let n=[],r;if(Array.isArray(e))n=e;else{r=e;const{includeOwnProperties:o=!0}=e;n.push(...Object.keys(t)),o&&n.push(...Object.getOwnPropertyNames(t))}return Object.fromEntries(n.map(o=>{const i=t[o];return[o,typeof i=="function"?Y(i.bind(t),r):i]}))}function D(t){if(!u.isRef(t))return u.reactive(t);const e=new Proxy({},{get(n,r,o){return u.unref(Reflect.get(t.value,r,o))},set(n,r,o){return u.isRef(t.value[r])&&!u.isRef(o)?t.value[r].value=o:t.value[r]=o,!0},deleteProperty(n,r){return Reflect.deleteProperty(t.value,r)},has(n,r){return Reflect.has(t.value,r)},ownKeys(){return Object.keys(t.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return u.reactive(e)}function G(t){return D(u.computed(t))}function At(t,...e){const n=e.flat(),r=n[0];return G(()=>Object.fromEntries(typeof r=="function"?Object.entries(u.toRefs(t)).filter(([o,i])=>!r(s(i),o)):Object.entries(u.toRefs(t)).filter(o=>!n.includes(o[0]))))}const j=typeof window<"u"&&typeof document<"u",Ot=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,St=t=>typeof t<"u",Tt=t=>t!=null,Pt=(t,...e)=>{t||console.warn(...e)},Ft=Object.prototype.toString,tt=t=>Ft.call(t)==="[object Object]",Mt=()=>Date.now(),et=()=>+Date.now(),It=(t,e,n)=>Math.min(n,Math.max(e,t)),C=()=>{},Ct=(t,e)=>(t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t),Rt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Et=kt();function kt(){var t,e;return j&&((t=window?.navigator)==null?void 0:t.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((e=window?.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function N(t,e){function n(...r){return new Promise((o,i)=>{Promise.resolve(t(()=>e.apply(this,r),{fn:e,thisArg:this,args:r})).then(o).catch(i)})}return n}const B=t=>t();function z(t,e={}){let n,r,o=C;const i=l=>{clearTimeout(l),o(),o=C};return l=>{const f=s(t),m=s(e.maxWait);return n&&i(n),f<=0||m!==void 0&&m<=0?(r&&(i(r),r=null),Promise.resolve(l())):new Promise((y,h)=>{o=e.rejectOnCancel?h:y,m&&!r&&(r=setTimeout(()=>{n&&i(n),r=null,y(l())},m)),n=setTimeout(()=>{r&&i(r),r=null,y(l())},f)})}}function q(...t){let e=0,n,r=!0,o=C,i,a,l,f,m;!u.isRef(t[0])&&typeof t[0]=="object"?{delay:a,trailing:l=!0,leading:f=!0,rejectOnCancel:m=!1}=t[0]:[a,l=!0,f=!0,m=!1]=t;const y=()=>{n&&(clearTimeout(n),n=void 0,o(),o=C)};return d=>{const w=s(a),g=Date.now()-e,b=()=>i=d();return y(),w<=0?(e=Date.now(),b()):(g>w&&(f||!r)?(e=Date.now(),b()):l&&(i=new Promise((p,P)=>{o=m?P:p,n=setTimeout(()=>{e=Date.now(),r=!0,p(b()),y()},Math.max(0,w-g))})),!f&&!n&&(n=setTimeout(()=>r=!0,w)),r=!1,i)}}function nt(t=B){const e=u.ref(!0);function n(){e.value=!1}function r(){e.value=!0}const o=(...i)=>{e.value&&t(...i)};return{isActive:u.readonly(e),pause:n,resume:r,eventFilter:o}}const _t={mounted:u.isVue3?"mounted":"inserted",updated:u.isVue3?"updated":"componentUpdated",unmounted:u.isVue3?"unmounted":"unbind"};function rt(t){const e=Object.create(null);return n=>e[n]||(e[n]=t(n))}const jt=/\B([A-Z])/g,Nt=rt(t=>t.replace(jt,"-$1").toLowerCase()),Lt=/-(\w)/g,Wt=rt(t=>t.replace(Lt,(e,n)=>n?n.toUpperCase():""));function Z(t,e=!1,n="Timeout"){return new Promise((r,o)=>{setTimeout(e?()=>o(n):r,t)})}function Ut(t){return t}function Bt(t){let e;function n(){return e||(e=t()),e}return n.reset=async()=>{const r=e;e=void 0,r&&await r},n}function $t(t){return t()}function ot(t,...e){return e.some(n=>n in t)}function Ht(t,e){var n;if(typeof t=="number")return t+e;const r=((n=t.match(/^-?[0-9]+\.?[0-9]*/))==null?void 0:n[0])||"",o=t.slice(r.length),i=Number.parseFloat(r)+e;return Number.isNaN(i)?t:i+o}function Yt(t,e,n=!1){return e.reduce((r,o)=>(o in t&&(!n||t[o]!==void 0)&&(r[o]=t[o]),r),{})}function Gt(t,e,n=!1){return Object.fromEntries(Object.entries(t).filter(([r,o])=>(!n||o!==void 0)&&!e.includes(r)))}function zt(t){return Object.entries(t)}function L(t){return t||u.getCurrentInstance()}function J(...t){if(t.length!==1)return u.toRef(...t);const e=t[0];return typeof e=="function"?u.readonly(u.customRef(()=>({get:e,set:C}))):u.ref(e)}const qt=J;function Zt(t,...e){const n=e.flat(),r=n[0];return G(()=>Object.fromEntries(typeof r=="function"?Object.entries(u.toRefs(t)).filter(([o,i])=>r(s(i),o)):n.map(o=>[o,J(t,o)])))}function ct(t,e=1e4){return u.customRef((n,r)=>{let o=s(t),i;const a=()=>setTimeout(()=>{o=s(t),r()},s(e));return M(()=>{clearTimeout(i)}),{get(){return n(),o},set(l){o=l,r(),clearTimeout(i),i=a()}}})}function ut(t,e=200,n={}){return N(z(e,n),t)}function X(t,e=200,n={}){const r=u.ref(t.value),o=ut(()=>{r.value=t.value},e,n);return u.watch(t,()=>o()),r}function Jt(t,e){return u.computed({get(){var n;return(n=t.value)!=null?n:e},set(n){t.value=n}})}function it(t,e=200,n=!1,r=!0,o=!1){return N(q(e,n,r,o),t)}function K(t,e=200,n=!0,r=!0){if(e<=0)return t;const o=u.ref(t.value),i=it(()=>{o.value=t.value},e,n,r);return u.watch(t,()=>i()),o}function at(t,e={}){let n=t,r,o;const i=u.customRef((d,w)=>(r=d,o=w,{get(){return a()},set(g){l(g)}}));function a(d=!0){return d&&r(),n}function l(d,w=!0){var g,b;if(d===n)return;const p=n;((g=e.onBeforeChange)==null?void 0:g.call(e,d,p))!==!1&&(n=d,(b=e.onChanged)==null||b.call(e,d,p),w&&o())}return F(i,{get:a,set:l,untrackedGet:()=>a(!1),silentSet:d=>l(d,!1),peek:()=>a(!1),lay:d=>l(d,!1)},{enumerable:!0})}const Xt=at;function Kt(...t){if(t.length===2){const[e,n]=t;e.value=n}if(t.length===3)if(u.isVue2)u.set(...t);else{const[e,n,r]=t;e[n]=r}}function W(t,e,n={}){const{eventFilter:r=B,...o}=n;return u.watch(t,N(r,e),o)}function $(t,e,n={}){const{eventFilter:r,...o}=n,{eventFilter:i,pause:a,resume:l,isActive:f}=nt(r);return{stop:W(t,e,{...o,eventFilter:i}),pause:a,resume:l,isActive:f}}function Qt(t,e,...[n]){const{flush:r="sync",deep:o=!1,immediate:i=!0,direction:a="both",transform:l={}}=n||{},f=[],m="ltr"in l&&l.ltr||(d=>d),y="rtl"in l&&l.rtl||(d=>d);return(a==="both"||a==="ltr")&&f.push($(t,d=>{f.forEach(w=>w.pause()),e.value=m(d),f.forEach(w=>w.resume())},{flush:r,deep:o,immediate:i})),(a==="both"||a==="rtl")&&f.push($(e,d=>{f.forEach(w=>w.pause()),t.value=y(d),f.forEach(w=>w.resume())},{flush:r,deep:o,immediate:i})),()=>{f.forEach(d=>d.stop())}}function Vt(t,e,n={}){const{flush:r="sync",deep:o=!1,immediate:i=!0}=n;return Array.isArray(e)||(e=[e]),u.watch(t,a=>e.forEach(l=>l.value=a),{flush:r,deep:o,immediate:i})}function xt(t,e={}){if(!u.isRef(t))return u.toRefs(t);const n=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const r in t.value)n[r]=u.customRef(()=>({get(){return t.value[r]},set(o){var i;if((i=s(e.replaceRef))!=null?i:!0)if(Array.isArray(t.value)){const l=[...t.value];l[r]=o,t.value=l}else{const l={...t.value,[r]:o};Object.setPrototypeOf(l,Object.getPrototypeOf(t.value)),t.value=l}else t.value[r]=o}}));return n}function Dt(t,e=!0,n){L(n)?u.onBeforeMount(t,n):e?t():u.nextTick(t)}function te(t,e){L(e)&&u.onBeforeUnmount(t,e)}function ee(t,e=!0,n){L()?u.onMounted(t,n):e?t():u.nextTick(t)}function ne(t,e){L(e)&&u.onUnmounted(t,e)}function Q(t,e=!1){function n(h,{flush:d="sync",deep:w=!1,timeout:g,throwOnTimeout:b}={}){let p=null;const x=[new Promise(H=>{p=u.watch(t,k=>{h(k)!==e&&(p?.(),H(k))},{flush:d,deep:w,immediate:!0})})];return g!=null&&x.push(Z(g,b).then(()=>s(t)).finally(()=>p?.())),Promise.race(x)}function r(h,d){if(!u.isRef(h))return n(k=>k===h,d);const{flush:w="sync",deep:g=!1,timeout:b,throwOnTimeout:p}=d??{};let P=null;const H=[new Promise(k=>{P=u.watch([t,h],([mt,He])=>{e!==(mt===He)&&(P?.(),k(mt))},{flush:w,deep:g,immediate:!0})})];return b!=null&&H.push(Z(b,p).then(()=>s(t)).finally(()=>(P?.(),s(t)))),Promise.race(H)}function o(h){return n(d=>!!d,h)}function i(h){return r(null,h)}function a(h){return r(void 0,h)}function l(h){return n(Number.isNaN,h)}function f(h,d){return n(w=>{const g=Array.from(w);return g.includes(h)||g.includes(s(h))},d)}function m(h){return y(1,h)}function y(h=1,d){let w=-1;return n(()=>(w+=1,w>=h),d)}return Array.isArray(s(t))?{toMatch:n,toContains:f,changed:m,changedTimes:y,get not(){return Q(t,!e)}}:{toMatch:n,toBe:r,toBeTruthy:o,toBeNull:i,toBeNaN:l,toBeUndefined:a,changed:m,changedTimes:y,get not(){return Q(t,!e)}}}function re(t){return Q(t)}function oe(t,e){return t===e}function ce(...t){var e;const n=t[0],r=t[1];let o=(e=t[2])!=null?e:oe;if(typeof o=="string"){const i=o;o=(a,l)=>a[i]===l[i]}return u.computed(()=>s(n).filter(i=>s(r).findIndex(a=>o(i,a))===-1))}function ue(t,e){return u.computed(()=>s(t).every((n,r,o)=>e(s(n),r,o)))}function ie(t,e){return u.computed(()=>s(t).map(n=>s(n)).filter(e))}function ae(t,e){return u.computed(()=>s(s(t).find((n,r,o)=>e(s(n),r,o))))}function le(t,e){return u.computed(()=>s(t).findIndex((n,r,o)=>e(s(n),r,o)))}function se(t,e){let n=t.length;for(;n-- >0;)if(e(t[n],n,t))return t[n]}function fe(t,e){return u.computed(()=>s(Array.prototype.findLast?s(t).findLast((n,r,o)=>e(s(n),r,o)):se(s(t),(n,r,o)=>e(s(n),r,o))))}function de(t){return tt(t)&&ot(t,"formIndex","comparator")}function he(...t){var e;const n=t[0],r=t[1];let o=t[2],i=0;if(de(o)&&(i=(e=o.fromIndex)!=null?e:0,o=o.comparator),typeof o=="string"){const a=o;o=(l,f)=>l[a]===s(f)}return o=o??((a,l)=>a===s(l)),u.computed(()=>s(n).slice(i).some((a,l,f)=>o(s(a),s(r),l,s(f))))}function ye(t,e){return u.computed(()=>s(t).map(n=>s(n)).join(s(e)))}function me(t,e){return u.computed(()=>s(t).map(n=>s(n)).map(e))}function we(t,e,...n){const r=(o,i,a)=>e(s(o),s(i),a);return u.computed(()=>{const o=s(t);return n.length?o.reduce(r,s(n[0])):o.reduce(r)})}function ge(t,e){return u.computed(()=>s(t).some((n,r,o)=>e(s(n),r,o)))}function pe(t){return Array.from(new Set(t))}function ve(t,e){return t.reduce((n,r)=>(n.some(o=>e(r,o,t))||n.push(r),n),[])}function be(t,e){return u.computed(()=>{const n=s(t).map(r=>s(r));return e?ve(n,e):pe(n)})}function Ae(t=0,e={}){let n=u.unref(t);const r=u.ref(t),{max:o=Number.POSITIVE_INFINITY,min:i=Number.NEGATIVE_INFINITY}=e,a=(h=1)=>r.value=Math.max(Math.min(o,r.value+h),i),l=(h=1)=>r.value=Math.min(Math.max(i,r.value-h),o),f=()=>r.value,m=h=>r.value=Math.max(i,Math.min(o,h));return{count:r,inc:a,dec:l,get:f,set:m,reset:(h=n)=>(n=h,m(h))}}const Oe=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,Se=/[YMDHhms]o|\[([^\]]+)]|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;function Te(t,e,n,r){let o=t<12?"AM":"PM";return r&&(o=o.split("").reduce((i,a)=>i+=`${a}.`,"")),n?o.toLowerCase():o}function R(t){const e=["th","st","nd","rd"],n=t%100;return t+(e[(n-20)%10]||e[n]||e[0])}function lt(t,e,n={}){var r;const o=t.getFullYear(),i=t.getMonth(),a=t.getDate(),l=t.getHours(),f=t.getMinutes(),m=t.getSeconds(),y=t.getMilliseconds(),h=t.getDay(),d=(r=n.customMeridiem)!=null?r:Te,w={Yo:()=>R(o),YY:()=>String(o).slice(-2),YYYY:()=>o,M:()=>i+1,Mo:()=>R(i+1),MM:()=>`${i+1}`.padStart(2,"0"),MMM:()=>t.toLocaleDateString(n.locales,{month:"short"}),MMMM:()=>t.toLocaleDateString(n.locales,{month:"long"}),D:()=>String(a),Do:()=>R(a),DD:()=>`${a}`.padStart(2,"0"),H:()=>String(l),Ho:()=>R(l),HH:()=>`${l}`.padStart(2,"0"),h:()=>`${l%12||12}`.padStart(1,"0"),ho:()=>R(l%12||12),hh:()=>`${l%12||12}`.padStart(2,"0"),m:()=>String(f),mo:()=>R(f),mm:()=>`${f}`.padStart(2,"0"),s:()=>String(m),so:()=>R(m),ss:()=>`${m}`.padStart(2,"0"),SSS:()=>`${y}`.padStart(3,"0"),d:()=>h,dd:()=>t.toLocaleDateString(n.locales,{weekday:"narrow"}),ddd:()=>t.toLocaleDateString(n.locales,{weekday:"short"}),dddd:()=>t.toLocaleDateString(n.locales,{weekday:"long"}),A:()=>d(l,f),AA:()=>d(l,f,!1,!0),a:()=>d(l,f,!0),aa:()=>d(l,f,!0,!0)};return e.replace(Se,(g,b)=>{var p,P;return(P=b??((p=w[g])==null?void 0:p.call(w)))!=null?P:g})}function st(t){if(t===null)return new Date(Number.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(Oe);if(e){const n=e[2]-1||0,r=(e[7]||"0").substring(0,3);return new Date(e[1],n,e[3]||1,e[4]||0,e[5]||0,e[6]||0,r)}}return new Date(t)}function Pe(t,e="HH:mm:ss",n={}){return u.computed(()=>lt(st(s(t)),s(e),n))}function ft(t,e=1e3,n={}){const{immediate:r=!0,immediateCallback:o=!1}=n;let i=null;const a=u.ref(!1);function l(){i&&(clearInterval(i),i=null)}function f(){a.value=!1,l()}function m(){const y=s(e);y<=0||(a.value=!0,o&&t(),l(),i=setInterval(t,y))}if(r&&j&&m(),u.isRef(e)||typeof e=="function"){const y=u.watch(e,()=>{a.value&&j&&m()});M(y)}return M(f),{isActive:a,pause:f,resume:m}}function Fe(t=1e3,e={}){const{controls:n=!1,immediate:r=!0,callback:o}=e,i=u.ref(0),a=()=>i.value+=1,l=()=>{i.value=0},f=ft(o?()=>{a(),o(i.value)}:a,t,{immediate:r});return n?{counter:i,reset:l,...f}:i}function Me(t,e={}){var n;const r=u.ref((n=e.initialValue)!=null?n:null);return u.watch(t,()=>r.value=et(),e),r}function dt(t,e,n={}){const{immediate:r=!0}=n,o=u.ref(!1);let i=null;function a(){i&&(clearTimeout(i),i=null)}function l(){o.value=!1,a()}function f(...m){a(),o.value=!0,i=setTimeout(()=>{o.value=!1,i=null,t(...m)},s(e))}return r&&(o.value=!0,j&&f()),M(l),{isPending:u.readonly(o),start:f,stop:l}}function Ie(t=1e3,e={}){const{controls:n=!1,callback:r}=e,o=dt(r??C,t,e),i=u.computed(()=>!o.isPending.value);return n?{ready:i,...o}:i}function Ce(t,e={}){const{method:n="parseFloat",radix:r,nanToZero:o}=e;return u.computed(()=>{let i=s(t);return typeof i=="string"&&(i=Number[n](i,r)),o&&Number.isNaN(i)&&(i=0),i})}function Re(t){return u.computed(()=>`${s(t)}`)}function Ee(t=!1,e={}){const{truthyValue:n=!0,falsyValue:r=!1}=e,o=u.isRef(t),i=u.ref(t);function a(l){if(arguments.length)return i.value=l,i.value;{const f=s(n);return i.value=i.value===f?s(r):f,i.value}}return o?a:[i,a]}function ke(t,e,n){let r=n?.immediate?[]:[...t instanceof Function?t():Array.isArray(t)?t:s(t)];return u.watch(t,(o,i,a)=>{const l=Array.from({length:r.length}),f=[];for(const y of o){let h=!1;for(let d=0;d<r.length;d++)if(!l[d]&&y===r[d]){l[d]=!0,h=!0;break}h||f.push(y)}const m=r.filter((y,h)=>!l[h]);e(o,r,f,m,a),r=[...o]},n)}function _e(t,e,n){const{count:r,...o}=n,i=u.ref(0),a=W(t,(...l)=>{i.value+=1,i.value>=s(r)&&u.nextTick(()=>a()),e(...l)},o);return{count:i,stop:a}}function ht(t,e,n={}){const{debounce:r=0,maxWait:o=void 0,...i}=n;return W(t,e,{...i,eventFilter:z(r,{maxWait:o})})}function je(t,e,n){return u.watch(t,e,{...n,deep:!0})}function V(t,e,n={}){const{eventFilter:r=B,...o}=n,i=N(r,e);let a,l,f;if(o.flush==="sync"){const m=u.ref(!1);l=()=>{},a=y=>{m.value=!0,y(),m.value=!1},f=u.watch(t,(...y)=>{m.value||i(...y)},o)}else{const m=[],y=u.ref(0),h=u.ref(0);l=()=>{y.value=h.value},m.push(u.watch(t,()=>{h.value++},{...o,flush:"sync"})),a=d=>{const w=h.value;d(),y.value+=h.value-w},m.push(u.watch(t,(...d)=>{const w=y.value>0&&y.value===h.value;y.value=0,h.value=0,!w&&i(...d)},o)),f=()=>{m.forEach(d=>d())}}return{stop:f,ignoreUpdates:a,ignorePrevAsyncUpdates:l}}function Ne(t,e,n){return u.watch(t,e,{...n,immediate:!0})}function Le(t,e,n){const r=u.watch(t,(...o)=>(u.nextTick(()=>r()),e(...o)),n);return r}function yt(t,e,n={}){const{throttle:r=0,trailing:o=!0,leading:i=!0,...a}=n;return W(t,e,{...a,eventFilter:q(r,o,i)})}function We(t,e,n={}){let r;function o(){if(!r)return;const y=r;r=void 0,y()}function i(y){r=y}const a=(y,h)=>(o(),e(y,h,i)),l=V(t,a,n),{ignoreUpdates:f}=l;return{...l,trigger:()=>{let y;return f(()=>{y=a(Ue(t),Be(t))}),y}}}function Ue(t){return u.isReactive(t)?t:Array.isArray(t)?t.map(e=>s(e)):s(t)}function Be(t){return Array.isArray(t)?t.map(()=>{}):void 0}function $e(t,e,n){return u.watch(t,(r,o,i)=>{r&&e(r,o,i)},n)}c.assert=Pt,c.autoResetRef=ct,c.bypassFilter=B,c.camelize=Wt,c.clamp=It,c.computedEager=E,c.computedWithControl=O,c.containsProp=ot,c.controlledComputed=O,c.controlledRef=Xt,c.createEventHook=v,c.createFilterWrapper=N,c.createGlobalState=S,c.createInjectionState=U,c.createReactiveFn=Y,c.createSharedComposable=I,c.createSingletonPromise=Bt,c.debounceFilter=z,c.debouncedRef=X,c.debouncedWatch=ht,c.directiveHooks=_t,c.eagerComputed=E,c.extendRef=F,c.formatDate=lt,c.get=wt,c.getLifeCycleTarget=L,c.hasOwn=Rt,c.hyphenate=Nt,c.identity=Ut,c.ignorableWatch=V,c.increaseWithUnit=Ht,c.injectLocal=_,c.invoke=$t,c.isClient=j,c.isDef=St,c.isDefined=gt,c.isIOS=Et,c.isObject=tt,c.isWorker=Ot,c.makeDestructurable=pt,c.noop=C,c.normalizeDate=st,c.notNullish=Tt,c.now=Mt,c.objectEntries=zt,c.objectOmit=Gt,c.objectPick=Yt,c.pausableFilter=nt,c.pausableWatch=$,c.promiseTimeout=Z,c.provideLocal=T,c.rand=Ct,c.reactify=Y,c.reactifyObject=bt,c.reactiveComputed=G,c.reactiveOmit=At,c.reactivePick=Zt,c.refAutoReset=ct,c.refDebounced=X,c.refDefault=Jt,c.refThrottled=K,c.refWithControl=at,c.resolveRef=qt,c.resolveUnref=vt,c.set=Kt,c.syncRef=Qt,c.syncRefs=Vt,c.throttleFilter=q,c.throttledRef=K,c.throttledWatch=yt,c.timestamp=et,c.toReactive=D,c.toRef=J,c.toRefs=xt,c.toValue=s,c.tryOnBeforeMount=Dt,c.tryOnBeforeUnmount=te,c.tryOnMounted=ee,c.tryOnScopeDispose=M,c.tryOnUnmounted=ne,c.until=re,c.useArrayDifference=ce,c.useArrayEvery=ue,c.useArrayFilter=ie,c.useArrayFind=ae,c.useArrayFindIndex=le,c.useArrayFindLast=fe,c.useArrayIncludes=he,c.useArrayJoin=ye,c.useArrayMap=me,c.useArrayReduce=we,c.useArraySome=ge,c.useArrayUnique=be,c.useCounter=Ae,c.useDateFormat=Pe,c.useDebounce=X,c.useDebounceFn=ut,c.useInterval=Fe,c.useIntervalFn=ft,c.useLastChanged=Me,c.useThrottle=K,c.useThrottleFn=it,c.useTimeout=Ie,c.useTimeoutFn=dt,c.useToNumber=Ce,c.useToString=Re,c.useToggle=Ee,c.watchArray=ke,c.watchAtMost=_e,c.watchDebounced=ht,c.watchDeep=je,c.watchIgnorable=V,c.watchImmediate=Ne,c.watchOnce=Le,c.watchPausable=$,c.watchThrottled=yt,c.watchTriggerable=We,c.watchWithFilter=W,c.whenever=$e})(this.VueUse=this.VueUse||{},VueDemi);
1
+ var VueDemi=function(c,u,E){if(c.install)return c;if(!u)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),c;if(u.version.slice(0,4)==="2.7."){let v=function(S,A){var T,_={},U={config:u.config,use:u.use.bind(u),mixin:u.mixin.bind(u),component:u.component.bind(u),provide:function(I,F){return _[I]=F,this},directive:function(I,F){return F?(u.directive(I,F),U):u.directive(I)},mount:function(I,F){return T||(T=new u(Object.assign({propsData:A},S,{provide:Object.assign(_,S.provide)})),T.$mount(I,F),T)},unmount:function(){T&&(T.$destroy(),T=void 0)}};return U};var M=v;for(var O in u)c[O]=u[O];c.isVue2=!0,c.isVue3=!1,c.install=function(){},c.Vue=u,c.Vue2=u,c.version=u.version,c.warn=u.util.warn,c.hasInjectionContext=function(){return!!c.getCurrentInstance()},c.createApp=v}else if(u.version.slice(0,2)==="2.")if(E){for(var O in E)c[O]=E[O];c.isVue2=!0,c.isVue3=!1,c.install=function(){},c.Vue=u,c.Vue2=u,c.version=u.version,c.hasInjectionContext=function(){return!!c.getCurrentInstance()}}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(u.version.slice(0,2)==="3."){for(var O in u)c[O]=u[O];c.isVue2=!1,c.isVue3=!0,c.install=function(){},c.Vue=u,c.Vue2=void 0,c.version=u.version,c.set=function(v,S,A){return Array.isArray(v)?(v.length=Math.max(v.length,S),v.splice(S,1,A),A):(v[S]=A,A)},c.del=function(v,S){if(Array.isArray(v)){v.splice(S,1);return}delete v[S]}}else console.error("[vue-demi] Vue version "+u.version+" is unsupported.");return c}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(c,u){"use strict";function E(t,e){var n;const r=u.shallowRef();return u.watchEffect(()=>{r.value=t()},{...e,flush:(n=e?.flush)!=null?n:"sync"}),u.readonly(r)}function O(t,e){let n,r,o;const i=u.ref(!0),l=()=>{i.value=!0,o()};u.watch(t,l,{flush:"sync"});const a=typeof e=="function"?e:e.get,f=typeof e=="function"?void 0:e.set,w=u.customRef((y,h)=>(r=y,o=h,{get(){return i.value&&(n=a(),i.value=!1),r(),n},set(d){f?.(d)}}));return Object.isExtensible(w)&&(w.trigger=l),w}function M(t){return u.getCurrentScope()?(u.onScopeDispose(t),!0):!1}function v(){const t=new Set,e=o=>{t.delete(o)};return{on:o=>{t.add(o);const i=()=>e(o);return M(i),{off:i}},off:e,trigger:(...o)=>Promise.all(Array.from(t).map(i=>i(...o)))}}function S(t){let e=!1,n;const r=u.effectScope(!0);return(...o)=>(e||(n=r.run(()=>t(...o)),e=!0),n)}const A=new WeakMap,T=(t,e)=>{var n;const r=(n=u.getCurrentInstance())==null?void 0:n.proxy;if(r==null)throw new Error("provideLocal must be called in setup");A.has(r)||A.set(r,Object.create(null));const o=A.get(r);o[t]=e,u.provide(t,e)},_=(...t)=>{var e;const n=t[0],r=(e=u.getCurrentInstance())==null?void 0:e.proxy;if(r==null)throw new Error("injectLocal must be called in setup");return A.has(r)&&n in A.get(r)?A.get(r)[n]:u.inject(...t)};function U(t,e){const n=e?.injectionKey||Symbol(t.name||"InjectionState"),r=e?.defaultValue;return[(...l)=>{const a=t(...l);return T(n,a),a},()=>_(n,r)]}function I(t){let e=0,n,r;const o=()=>{e-=1,r&&e<=0&&(r.stop(),n=void 0,r=void 0)};return(...i)=>(e+=1,n||(r=u.effectScope(!0),n=r.run(()=>t(...i))),M(o),n)}function F(t,e,{enumerable:n=!1,unwrap:r=!0}={}){if(!u.isVue3&&!u.version.startsWith("2.7.")){if(process.env.NODE_ENV!=="production")throw new Error("[VueUse] extendRef only works in Vue 2.7 or above.");return}for(const[o,i]of Object.entries(e))o!=="value"&&(u.isRef(i)&&r?Object.defineProperty(t,o,{get(){return i.value},set(l){i.value=l},enumerable:n}):Object.defineProperty(t,o,{value:i,enumerable:n}));return t}function mt(t,e){return e==null?u.unref(t):u.unref(t)[e]}function gt(t){return u.unref(t)!=null}function pt(t,e){if(typeof Symbol<"u"){const n={...t};return Object.defineProperty(n,Symbol.iterator,{enumerable:!1,value(){let r=0;return{next:()=>({value:e[r++],done:r>e.length})}}}),n}else return Object.assign([...e],t)}function s(t){return typeof t=="function"?t():u.unref(t)}const vt=s;function Y(t,e){const n=e?.computedGetter===!1?u.unref:s;return function(...r){return u.computed(()=>t.apply(this,r.map(o=>n(o))))}}function bt(t,e={}){let n=[],r;if(Array.isArray(e))n=e;else{r=e;const{includeOwnProperties:o=!0}=e;n.push(...Object.keys(t)),o&&n.push(...Object.getOwnPropertyNames(t))}return Object.fromEntries(n.map(o=>{const i=t[o];return[o,typeof i=="function"?Y(i.bind(t),r):i]}))}function D(t){if(!u.isRef(t))return u.reactive(t);const e=new Proxy({},{get(n,r,o){return u.unref(Reflect.get(t.value,r,o))},set(n,r,o){return u.isRef(t.value[r])&&!u.isRef(o)?t.value[r].value=o:t.value[r]=o,!0},deleteProperty(n,r){return Reflect.deleteProperty(t.value,r)},has(n,r){return Reflect.has(t.value,r)},ownKeys(){return Object.keys(t.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return u.reactive(e)}function G(t){return D(u.computed(t))}function At(t,...e){const n=e.flat(),r=n[0];return G(()=>Object.fromEntries(typeof r=="function"?Object.entries(u.toRefs(t)).filter(([o,i])=>!r(s(i),o)):Object.entries(u.toRefs(t)).filter(o=>!n.includes(o[0]))))}const j=typeof window<"u"&&typeof document<"u",Ot=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,St=t=>typeof t<"u",Tt=t=>t!=null,Pt=(t,...e)=>{t||console.warn(...e)},Ft=Object.prototype.toString,tt=t=>Ft.call(t)==="[object Object]",Mt=()=>Date.now(),et=()=>+Date.now(),It=(t,e,n)=>Math.min(n,Math.max(e,t)),C=()=>{},Ct=(t,e)=>(t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t),Rt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Et=kt();function kt(){var t,e;return j&&((t=window?.navigator)==null?void 0:t.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((e=window?.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function N(t,e){function n(...r){return new Promise((o,i)=>{Promise.resolve(t(()=>e.apply(this,r),{fn:e,thisArg:this,args:r})).then(o).catch(i)})}return n}const B=t=>t();function z(t,e={}){let n,r,o=C;const i=a=>{clearTimeout(a),o(),o=C};return a=>{const f=s(t),w=s(e.maxWait);return n&&i(n),f<=0||w!==void 0&&w<=0?(r&&(i(r),r=null),Promise.resolve(a())):new Promise((y,h)=>{o=e.rejectOnCancel?h:y,w&&!r&&(r=setTimeout(()=>{n&&i(n),r=null,y(a())},w)),n=setTimeout(()=>{r&&i(r),r=null,y(a())},f)})}}function q(...t){let e=0,n,r=!0,o=C,i,l,a,f,w;!u.isRef(t[0])&&typeof t[0]=="object"?{delay:l,trailing:a=!0,leading:f=!0,rejectOnCancel:w=!1}=t[0]:[l,a=!0,f=!0,w=!1]=t;const y=()=>{n&&(clearTimeout(n),n=void 0,o(),o=C)};return d=>{const m=s(l),g=Date.now()-e,b=()=>i=d();return y(),m<=0?(e=Date.now(),b()):(g>m&&(f||!r)?(e=Date.now(),b()):a&&(i=new Promise((p,P)=>{o=w?P:p,n=setTimeout(()=>{e=Date.now(),r=!0,p(b()),y()},Math.max(0,m-g))})),!f&&!n&&(n=setTimeout(()=>r=!0,m)),r=!1,i)}}function nt(t=B){const e=u.ref(!0);function n(){e.value=!1}function r(){e.value=!0}const o=(...i)=>{e.value&&t(...i)};return{isActive:u.readonly(e),pause:n,resume:r,eventFilter:o}}const _t={mounted:u.isVue3?"mounted":"inserted",updated:u.isVue3?"updated":"componentUpdated",unmounted:u.isVue3?"unmounted":"unbind"};function rt(t){const e=Object.create(null);return n=>e[n]||(e[n]=t(n))}const jt=/\B([A-Z])/g,Nt=rt(t=>t.replace(jt,"-$1").toLowerCase()),Lt=/-(\w)/g,Wt=rt(t=>t.replace(Lt,(e,n)=>n?n.toUpperCase():""));function Z(t,e=!1,n="Timeout"){return new Promise((r,o)=>{setTimeout(e?()=>o(n):r,t)})}function Ut(t){return t}function Bt(t){let e;function n(){return e||(e=t()),e}return n.reset=async()=>{const r=e;e=void 0,r&&await r},n}function $t(t){return t()}function ot(t,...e){return e.some(n=>n in t)}function Ht(t,e){var n;if(typeof t=="number")return t+e;const r=((n=t.match(/^-?\d+\.?\d*/))==null?void 0:n[0])||"",o=t.slice(r.length),i=Number.parseFloat(r)+e;return Number.isNaN(i)?t:i+o}function Yt(t,e,n=!1){return e.reduce((r,o)=>(o in t&&(!n||t[o]!==void 0)&&(r[o]=t[o]),r),{})}function Gt(t,e,n=!1){return Object.fromEntries(Object.entries(t).filter(([r,o])=>(!n||o!==void 0)&&!e.includes(r)))}function zt(t){return Object.entries(t)}function L(t){return t||u.getCurrentInstance()}function J(...t){if(t.length!==1)return u.toRef(...t);const e=t[0];return typeof e=="function"?u.readonly(u.customRef(()=>({get:e,set:C}))):u.ref(e)}const qt=J;function Zt(t,...e){const n=e.flat(),r=n[0];return G(()=>Object.fromEntries(typeof r=="function"?Object.entries(u.toRefs(t)).filter(([o,i])=>r(s(i),o)):n.map(o=>[o,J(t,o)])))}function ct(t,e=1e4){return u.customRef((n,r)=>{let o=s(t),i;const l=()=>setTimeout(()=>{o=s(t),r()},s(e));return M(()=>{clearTimeout(i)}),{get(){return n(),o},set(a){o=a,r(),clearTimeout(i),i=l()}}})}function ut(t,e=200,n={}){return N(z(e,n),t)}function X(t,e=200,n={}){const r=u.ref(t.value),o=ut(()=>{r.value=t.value},e,n);return u.watch(t,()=>o()),r}function Jt(t,e){return u.computed({get(){var n;return(n=t.value)!=null?n:e},set(n){t.value=n}})}function it(t,e=200,n=!1,r=!0,o=!1){return N(q(e,n,r,o),t)}function K(t,e=200,n=!0,r=!0){if(e<=0)return t;const o=u.ref(t.value),i=it(()=>{o.value=t.value},e,n,r);return u.watch(t,()=>i()),o}function at(t,e={}){let n=t,r,o;const i=u.customRef((d,m)=>(r=d,o=m,{get(){return l()},set(g){a(g)}}));function l(d=!0){return d&&r(),n}function a(d,m=!0){var g,b;if(d===n)return;const p=n;((g=e.onBeforeChange)==null?void 0:g.call(e,d,p))!==!1&&(n=d,(b=e.onChanged)==null||b.call(e,d,p),m&&o())}return F(i,{get:l,set:a,untrackedGet:()=>l(!1),silentSet:d=>a(d,!1),peek:()=>l(!1),lay:d=>a(d,!1)},{enumerable:!0})}const Xt=at;function Kt(...t){if(t.length===2){const[e,n]=t;e.value=n}if(t.length===3)if(u.isVue2)u.set(...t);else{const[e,n,r]=t;e[n]=r}}function W(t,e,n={}){const{eventFilter:r=B,...o}=n;return u.watch(t,N(r,e),o)}function $(t,e,n={}){const{eventFilter:r,...o}=n,{eventFilter:i,pause:l,resume:a,isActive:f}=nt(r);return{stop:W(t,e,{...o,eventFilter:i}),pause:l,resume:a,isActive:f}}function Qt(t,e,...[n]){const{flush:r="sync",deep:o=!1,immediate:i=!0,direction:l="both",transform:a={}}=n||{},f=[],w="ltr"in a&&a.ltr||(d=>d),y="rtl"in a&&a.rtl||(d=>d);return(l==="both"||l==="ltr")&&f.push($(t,d=>{f.forEach(m=>m.pause()),e.value=w(d),f.forEach(m=>m.resume())},{flush:r,deep:o,immediate:i})),(l==="both"||l==="rtl")&&f.push($(e,d=>{f.forEach(m=>m.pause()),t.value=y(d),f.forEach(m=>m.resume())},{flush:r,deep:o,immediate:i})),()=>{f.forEach(d=>d.stop())}}function Vt(t,e,n={}){const{flush:r="sync",deep:o=!1,immediate:i=!0}=n;return Array.isArray(e)||(e=[e]),u.watch(t,l=>e.forEach(a=>a.value=l),{flush:r,deep:o,immediate:i})}function xt(t,e={}){if(!u.isRef(t))return u.toRefs(t);const n=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const r in t.value)n[r]=u.customRef(()=>({get(){return t.value[r]},set(o){var i;if((i=s(e.replaceRef))!=null?i:!0)if(Array.isArray(t.value)){const a=[...t.value];a[r]=o,t.value=a}else{const a={...t.value,[r]:o};Object.setPrototypeOf(a,Object.getPrototypeOf(t.value)),t.value=a}else t.value[r]=o}}));return n}function Dt(t,e=!0,n){L(n)?u.onBeforeMount(t,n):e?t():u.nextTick(t)}function te(t,e){L(e)&&u.onBeforeUnmount(t,e)}function ee(t,e=!0,n){L()?u.onMounted(t,n):e?t():u.nextTick(t)}function ne(t,e){L(e)&&u.onUnmounted(t,e)}function Q(t,e=!1){function n(h,{flush:d="sync",deep:m=!1,timeout:g,throwOnTimeout:b}={}){let p=null;const x=[new Promise(H=>{p=u.watch(t,k=>{h(k)!==e&&(p?.(),H(k))},{flush:d,deep:m,immediate:!0})})];return g!=null&&x.push(Z(g,b).then(()=>s(t)).finally(()=>p?.())),Promise.race(x)}function r(h,d){if(!u.isRef(h))return n(k=>k===h,d);const{flush:m="sync",deep:g=!1,timeout:b,throwOnTimeout:p}=d??{};let P=null;const H=[new Promise(k=>{P=u.watch([t,h],([wt,He])=>{e!==(wt===He)&&(P?.(),k(wt))},{flush:m,deep:g,immediate:!0})})];return b!=null&&H.push(Z(b,p).then(()=>s(t)).finally(()=>(P?.(),s(t)))),Promise.race(H)}function o(h){return n(d=>!!d,h)}function i(h){return r(null,h)}function l(h){return r(void 0,h)}function a(h){return n(Number.isNaN,h)}function f(h,d){return n(m=>{const g=Array.from(m);return g.includes(h)||g.includes(s(h))},d)}function w(h){return y(1,h)}function y(h=1,d){let m=-1;return n(()=>(m+=1,m>=h),d)}return Array.isArray(s(t))?{toMatch:n,toContains:f,changed:w,changedTimes:y,get not(){return Q(t,!e)}}:{toMatch:n,toBe:r,toBeTruthy:o,toBeNull:i,toBeNaN:a,toBeUndefined:l,changed:w,changedTimes:y,get not(){return Q(t,!e)}}}function re(t){return Q(t)}function oe(t,e){return t===e}function ce(...t){var e;const n=t[0],r=t[1];let o=(e=t[2])!=null?e:oe;if(typeof o=="string"){const i=o;o=(l,a)=>l[i]===a[i]}return u.computed(()=>s(n).filter(i=>s(r).findIndex(l=>o(i,l))===-1))}function ue(t,e){return u.computed(()=>s(t).every((n,r,o)=>e(s(n),r,o)))}function ie(t,e){return u.computed(()=>s(t).map(n=>s(n)).filter(e))}function ae(t,e){return u.computed(()=>s(s(t).find((n,r,o)=>e(s(n),r,o))))}function le(t,e){return u.computed(()=>s(t).findIndex((n,r,o)=>e(s(n),r,o)))}function se(t,e){let n=t.length;for(;n-- >0;)if(e(t[n],n,t))return t[n]}function fe(t,e){return u.computed(()=>s(Array.prototype.findLast?s(t).findLast((n,r,o)=>e(s(n),r,o)):se(s(t),(n,r,o)=>e(s(n),r,o))))}function de(t){return tt(t)&&ot(t,"formIndex","comparator")}function he(...t){var e;const n=t[0],r=t[1];let o=t[2],i=0;if(de(o)&&(i=(e=o.fromIndex)!=null?e:0,o=o.comparator),typeof o=="string"){const l=o;o=(a,f)=>a[l]===s(f)}return o=o??((l,a)=>l===s(a)),u.computed(()=>s(n).slice(i).some((l,a,f)=>o(s(l),s(r),a,s(f))))}function ye(t,e){return u.computed(()=>s(t).map(n=>s(n)).join(s(e)))}function we(t,e){return u.computed(()=>s(t).map(n=>s(n)).map(e))}function me(t,e,...n){const r=(o,i,l)=>e(s(o),s(i),l);return u.computed(()=>{const o=s(t);return n.length?o.reduce(r,s(n[0])):o.reduce(r)})}function ge(t,e){return u.computed(()=>s(t).some((n,r,o)=>e(s(n),r,o)))}function pe(t){return Array.from(new Set(t))}function ve(t,e){return t.reduce((n,r)=>(n.some(o=>e(r,o,t))||n.push(r),n),[])}function be(t,e){return u.computed(()=>{const n=s(t).map(r=>s(r));return e?ve(n,e):pe(n)})}function Ae(t=0,e={}){let n=u.unref(t);const r=u.ref(t),{max:o=Number.POSITIVE_INFINITY,min:i=Number.NEGATIVE_INFINITY}=e,l=(h=1)=>r.value=Math.max(Math.min(o,r.value+h),i),a=(h=1)=>r.value=Math.min(Math.max(i,r.value-h),o),f=()=>r.value,w=h=>r.value=Math.max(i,Math.min(o,h));return{count:r,inc:l,dec:a,get:f,set:w,reset:(h=n)=>(n=h,w(h))}}const Oe=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i,Se=/[YMDHhms]o|\[([^\]]+)\]|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;function Te(t,e,n,r){let o=t<12?"AM":"PM";return r&&(o=o.split("").reduce((i,l)=>i+=`${l}.`,"")),n?o.toLowerCase():o}function R(t){const e=["th","st","nd","rd"],n=t%100;return t+(e[(n-20)%10]||e[n]||e[0])}function lt(t,e,n={}){var r;const o=t.getFullYear(),i=t.getMonth(),l=t.getDate(),a=t.getHours(),f=t.getMinutes(),w=t.getSeconds(),y=t.getMilliseconds(),h=t.getDay(),d=(r=n.customMeridiem)!=null?r:Te,m={Yo:()=>R(o),YY:()=>String(o).slice(-2),YYYY:()=>o,M:()=>i+1,Mo:()=>R(i+1),MM:()=>`${i+1}`.padStart(2,"0"),MMM:()=>t.toLocaleDateString(n.locales,{month:"short"}),MMMM:()=>t.toLocaleDateString(n.locales,{month:"long"}),D:()=>String(l),Do:()=>R(l),DD:()=>`${l}`.padStart(2,"0"),H:()=>String(a),Ho:()=>R(a),HH:()=>`${a}`.padStart(2,"0"),h:()=>`${a%12||12}`.padStart(1,"0"),ho:()=>R(a%12||12),hh:()=>`${a%12||12}`.padStart(2,"0"),m:()=>String(f),mo:()=>R(f),mm:()=>`${f}`.padStart(2,"0"),s:()=>String(w),so:()=>R(w),ss:()=>`${w}`.padStart(2,"0"),SSS:()=>`${y}`.padStart(3,"0"),d:()=>h,dd:()=>t.toLocaleDateString(n.locales,{weekday:"narrow"}),ddd:()=>t.toLocaleDateString(n.locales,{weekday:"short"}),dddd:()=>t.toLocaleDateString(n.locales,{weekday:"long"}),A:()=>d(a,f),AA:()=>d(a,f,!1,!0),a:()=>d(a,f,!0),aa:()=>d(a,f,!0,!0)};return e.replace(Se,(g,b)=>{var p,P;return(P=b??((p=m[g])==null?void 0:p.call(m)))!=null?P:g})}function st(t){if(t===null)return new Date(Number.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(Oe);if(e){const n=e[2]-1||0,r=(e[7]||"0").substring(0,3);return new Date(e[1],n,e[3]||1,e[4]||0,e[5]||0,e[6]||0,r)}}return new Date(t)}function Pe(t,e="HH:mm:ss",n={}){return u.computed(()=>lt(st(s(t)),s(e),n))}function ft(t,e=1e3,n={}){const{immediate:r=!0,immediateCallback:o=!1}=n;let i=null;const l=u.ref(!1);function a(){i&&(clearInterval(i),i=null)}function f(){l.value=!1,a()}function w(){const y=s(e);y<=0||(l.value=!0,o&&t(),a(),i=setInterval(t,y))}if(r&&j&&w(),u.isRef(e)||typeof e=="function"){const y=u.watch(e,()=>{l.value&&j&&w()});M(y)}return M(f),{isActive:l,pause:f,resume:w}}function Fe(t=1e3,e={}){const{controls:n=!1,immediate:r=!0,callback:o}=e,i=u.ref(0),l=()=>i.value+=1,a=()=>{i.value=0},f=ft(o?()=>{l(),o(i.value)}:l,t,{immediate:r});return n?{counter:i,reset:a,...f}:i}function Me(t,e={}){var n;const r=u.ref((n=e.initialValue)!=null?n:null);return u.watch(t,()=>r.value=et(),e),r}function dt(t,e,n={}){const{immediate:r=!0}=n,o=u.ref(!1);let i=null;function l(){i&&(clearTimeout(i),i=null)}function a(){o.value=!1,l()}function f(...w){l(),o.value=!0,i=setTimeout(()=>{o.value=!1,i=null,t(...w)},s(e))}return r&&(o.value=!0,j&&f()),M(a),{isPending:u.readonly(o),start:f,stop:a}}function Ie(t=1e3,e={}){const{controls:n=!1,callback:r}=e,o=dt(r??C,t,e),i=u.computed(()=>!o.isPending.value);return n?{ready:i,...o}:i}function Ce(t,e={}){const{method:n="parseFloat",radix:r,nanToZero:o}=e;return u.computed(()=>{let i=s(t);return typeof i=="string"&&(i=Number[n](i,r)),o&&Number.isNaN(i)&&(i=0),i})}function Re(t){return u.computed(()=>`${s(t)}`)}function Ee(t=!1,e={}){const{truthyValue:n=!0,falsyValue:r=!1}=e,o=u.isRef(t),i=u.ref(t);function l(a){if(arguments.length)return i.value=a,i.value;{const f=s(n);return i.value=i.value===f?s(r):f,i.value}}return o?l:[i,l]}function ke(t,e,n){let r=n?.immediate?[]:[...t instanceof Function?t():Array.isArray(t)?t:s(t)];return u.watch(t,(o,i,l)=>{const a=Array.from({length:r.length}),f=[];for(const y of o){let h=!1;for(let d=0;d<r.length;d++)if(!a[d]&&y===r[d]){a[d]=!0,h=!0;break}h||f.push(y)}const w=r.filter((y,h)=>!a[h]);e(o,r,f,w,l),r=[...o]},n)}function _e(t,e,n){const{count:r,...o}=n,i=u.ref(0),l=W(t,(...a)=>{i.value+=1,i.value>=s(r)&&u.nextTick(()=>l()),e(...a)},o);return{count:i,stop:l}}function ht(t,e,n={}){const{debounce:r=0,maxWait:o=void 0,...i}=n;return W(t,e,{...i,eventFilter:z(r,{maxWait:o})})}function je(t,e,n){return u.watch(t,e,{...n,deep:!0})}function V(t,e,n={}){const{eventFilter:r=B,...o}=n,i=N(r,e);let l,a,f;if(o.flush==="sync"){const w=u.ref(!1);a=()=>{},l=y=>{w.value=!0,y(),w.value=!1},f=u.watch(t,(...y)=>{w.value||i(...y)},o)}else{const w=[],y=u.ref(0),h=u.ref(0);a=()=>{y.value=h.value},w.push(u.watch(t,()=>{h.value++},{...o,flush:"sync"})),l=d=>{const m=h.value;d(),y.value+=h.value-m},w.push(u.watch(t,(...d)=>{const m=y.value>0&&y.value===h.value;y.value=0,h.value=0,!m&&i(...d)},o)),f=()=>{w.forEach(d=>d())}}return{stop:f,ignoreUpdates:l,ignorePrevAsyncUpdates:a}}function Ne(t,e,n){return u.watch(t,e,{...n,immediate:!0})}function Le(t,e,n){const r=u.watch(t,(...o)=>(u.nextTick(()=>r()),e(...o)),n);return r}function yt(t,e,n={}){const{throttle:r=0,trailing:o=!0,leading:i=!0,...l}=n;return W(t,e,{...l,eventFilter:q(r,o,i)})}function We(t,e,n={}){let r;function o(){if(!r)return;const y=r;r=void 0,y()}function i(y){r=y}const l=(y,h)=>(o(),e(y,h,i)),a=V(t,l,n),{ignoreUpdates:f}=a;return{...a,trigger:()=>{let y;return f(()=>{y=l(Ue(t),Be(t))}),y}}}function Ue(t){return u.isReactive(t)?t:Array.isArray(t)?t.map(e=>s(e)):s(t)}function Be(t){return Array.isArray(t)?t.map(()=>{}):void 0}function $e(t,e,n){const r=u.watch(t,(o,i,l)=>{o&&(n?.once&&u.nextTick(()=>r()),e(o,i,l))},{...n,once:!1});return r}c.assert=Pt,c.autoResetRef=ct,c.bypassFilter=B,c.camelize=Wt,c.clamp=It,c.computedEager=E,c.computedWithControl=O,c.containsProp=ot,c.controlledComputed=O,c.controlledRef=Xt,c.createEventHook=v,c.createFilterWrapper=N,c.createGlobalState=S,c.createInjectionState=U,c.createReactiveFn=Y,c.createSharedComposable=I,c.createSingletonPromise=Bt,c.debounceFilter=z,c.debouncedRef=X,c.debouncedWatch=ht,c.directiveHooks=_t,c.eagerComputed=E,c.extendRef=F,c.formatDate=lt,c.get=mt,c.getLifeCycleTarget=L,c.hasOwn=Rt,c.hyphenate=Nt,c.identity=Ut,c.ignorableWatch=V,c.increaseWithUnit=Ht,c.injectLocal=_,c.invoke=$t,c.isClient=j,c.isDef=St,c.isDefined=gt,c.isIOS=Et,c.isObject=tt,c.isWorker=Ot,c.makeDestructurable=pt,c.noop=C,c.normalizeDate=st,c.notNullish=Tt,c.now=Mt,c.objectEntries=zt,c.objectOmit=Gt,c.objectPick=Yt,c.pausableFilter=nt,c.pausableWatch=$,c.promiseTimeout=Z,c.provideLocal=T,c.rand=Ct,c.reactify=Y,c.reactifyObject=bt,c.reactiveComputed=G,c.reactiveOmit=At,c.reactivePick=Zt,c.refAutoReset=ct,c.refDebounced=X,c.refDefault=Jt,c.refThrottled=K,c.refWithControl=at,c.resolveRef=qt,c.resolveUnref=vt,c.set=Kt,c.syncRef=Qt,c.syncRefs=Vt,c.throttleFilter=q,c.throttledRef=K,c.throttledWatch=yt,c.timestamp=et,c.toReactive=D,c.toRef=J,c.toRefs=xt,c.toValue=s,c.tryOnBeforeMount=Dt,c.tryOnBeforeUnmount=te,c.tryOnMounted=ee,c.tryOnScopeDispose=M,c.tryOnUnmounted=ne,c.until=re,c.useArrayDifference=ce,c.useArrayEvery=ue,c.useArrayFilter=ie,c.useArrayFind=ae,c.useArrayFindIndex=le,c.useArrayFindLast=fe,c.useArrayIncludes=he,c.useArrayJoin=ye,c.useArrayMap=we,c.useArrayReduce=me,c.useArraySome=ge,c.useArrayUnique=be,c.useCounter=Ae,c.useDateFormat=Pe,c.useDebounce=X,c.useDebounceFn=ut,c.useInterval=Fe,c.useIntervalFn=ft,c.useLastChanged=Me,c.useThrottle=K,c.useThrottleFn=it,c.useTimeout=Ie,c.useTimeoutFn=dt,c.useToNumber=Ce,c.useToString=Re,c.useToggle=Ee,c.watchArray=ke,c.watchAtMost=_e,c.watchDebounced=ht,c.watchDeep=je,c.watchIgnorable=V,c.watchImmediate=Ne,c.watchOnce=Le,c.watchPausable=$,c.watchThrottled=yt,c.watchTriggerable=We,c.watchWithFilter=W,c.whenever=$e})(this.VueUse=this.VueUse||{},VueDemi);
package/index.mjs CHANGED
@@ -117,12 +117,13 @@ const injectLocal = (...args) => {
117
117
 
118
118
  function createInjectionState(composable, options) {
119
119
  const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState");
120
+ const defaultValue = options == null ? void 0 : options.defaultValue;
120
121
  const useProvidingState = (...args) => {
121
122
  const state = composable(...args);
122
123
  provideLocal(key, state);
123
124
  return state;
124
125
  };
125
- const useInjectedState = () => injectLocal(key);
126
+ const useInjectedState = () => injectLocal(key, defaultValue);
126
127
  return [useProvidingState, useInjectedState];
127
128
  }
128
129
 
@@ -308,7 +309,7 @@ const hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);
308
309
  const isIOS = /* @__PURE__ */ getIsIOS();
309
310
  function getIsIOS() {
310
311
  var _a, _b;
311
- return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
312
+ return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
312
313
  }
313
314
 
314
315
  function createFilterWrapper(filter, fn) {
@@ -488,7 +489,7 @@ function increaseWithUnit(target, delta) {
488
489
  var _a;
489
490
  if (typeof target === "number")
490
491
  return target + delta;
491
- const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || "";
492
+ const value = ((_a = target.match(/^-?\d+\.?\d*/)) == null ? void 0 : _a[0]) || "";
492
493
  const unit = target.slice(value.length);
493
494
  const result = Number.parseFloat(value) + delta;
494
495
  if (Number.isNaN(result))
@@ -1065,8 +1066,8 @@ function useCounter(initialValue = 0, options = {}) {
1065
1066
  return { count, inc, dec, get, set, reset };
1066
1067
  }
1067
1068
 
1068
- const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
1069
- const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)]|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;
1069
+ const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i;
1070
+ const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)\]|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;
1070
1071
  function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {
1071
1072
  let m = hours < 12 ? "AM" : "PM";
1072
1073
  if (hasPeriod)
@@ -1554,14 +1555,21 @@ function getOldValue(source) {
1554
1555
  }
1555
1556
 
1556
1557
  function whenever(source, cb, options) {
1557
- return watch(
1558
+ const stop = watch(
1558
1559
  source,
1559
1560
  (v, ov, onInvalidate) => {
1560
- if (v)
1561
+ if (v) {
1562
+ if (options == null ? void 0 : options.once)
1563
+ nextTick(() => stop());
1561
1564
  cb(v, ov, onInvalidate);
1565
+ }
1562
1566
  },
1563
- options
1567
+ {
1568
+ ...options,
1569
+ once: false
1570
+ }
1564
1571
  );
1572
+ return stop;
1565
1573
  }
1566
1574
 
1567
1575
  export { assert, refAutoReset as autoResetRef, bypassFilter, camelize, 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, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, 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, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, 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, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/shared",
3
- "version": "10.8.0",
3
+ "version": "10.10.0",
4
4
  "author": "Anthony Fu <https://github.com/antfu>",
5
5
  "license": "MIT",
6
6
  "funding": "https://github.com/sponsors/antfu",