@vueuse/components 10.7.1 → 10.8.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.d.ts CHANGED
@@ -46,7 +46,7 @@ type OnClickOutsideHandler<T extends {
46
46
  interface OnClickOutsideProps extends RenderableComponent {
47
47
  options?: OnClickOutsideOptions;
48
48
  }
49
- declare const OnClickOutside: vue_demi.DefineComponent<OnClickOutsideProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnClickOutsideProps>, {}, {}>;
49
+ declare const OnClickOutside: vue_demi.DefineComponent<OnClickOutsideProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<OnClickOutsideProps>, {}, {}>;
50
50
 
51
51
  declare const vOnClickOutside: ObjectDirective<HTMLElement, OnClickOutsideHandler | [(evt: any) => void, OnClickOutsideOptions]>;
52
52
 
@@ -93,7 +93,7 @@ interface OnLongPressModifiers {
93
93
  interface OnLongPressProps extends RenderableComponent {
94
94
  options?: OnLongPressOptions;
95
95
  }
96
- declare const OnLongPress: vue_demi.DefineComponent<OnLongPressProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnLongPressProps>, {}, {}>;
96
+ declare const OnLongPress: vue_demi.DefineComponent<OnLongPressProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<OnLongPressProps>, {}, {}>;
97
97
 
98
98
  type BindingValueFunction$6 = (evt: PointerEvent) => void;
99
99
  type BindingValueArray$5 = [
@@ -104,29 +104,29 @@ declare const vOnLongPress: ObjectDirective<HTMLElement, BindingValueFunction$6
104
104
 
105
105
  declare const UseActiveElement: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
106
106
  [key: string]: any;
107
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
107
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
108
108
 
109
109
  declare const UseBattery: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
110
110
  [key: string]: any;
111
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
111
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
112
112
 
113
113
  declare const UseBrowserLocation: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
114
114
  [key: string]: any;
115
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
115
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
116
116
 
117
117
  interface UseClipboardProps<Source = string> extends UseClipboardOptions<Source> {
118
118
  }
119
- declare const UseClipboard: vue_demi.DefineComponent<UseClipboardProps<string>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseClipboardProps<string>>, {}, {}>;
119
+ declare const UseClipboard: vue_demi.DefineComponent<UseClipboardProps<string>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseClipboardProps<string>>, {}, {}>;
120
120
 
121
121
  interface StorageLike {
122
- getItem(key: string): string | null;
123
- setItem(key: string, value: string): void;
124
- removeItem(key: string): void;
122
+ getItem: (key: string) => string | null;
123
+ setItem: (key: string, value: string) => void;
124
+ removeItem: (key: string) => void;
125
125
  }
126
126
 
127
127
  interface Serializer<T> {
128
- read(raw: string): T;
129
- write(value: T): string;
128
+ read: (raw: string) => T;
129
+ write: (value: T) => string;
130
130
  }
131
131
  interface UseStorageOptions<T> extends ConfigurableEventFilter, ConfigurableWindow, ConfigurableFlush {
132
132
  /**
@@ -252,27 +252,27 @@ interface UseColorModeOptions<T extends string = BasicColorMode> extends UseStor
252
252
  disableTransition?: boolean;
253
253
  }
254
254
 
255
- declare const UseColorMode: vue_demi.DefineComponent<UseColorModeOptions<BasicColorMode>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseColorModeOptions<BasicColorMode>>, {}, {}>;
255
+ declare const UseColorMode: vue_demi.DefineComponent<UseColorModeOptions<BasicColorMode>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseColorModeOptions<BasicColorMode>>, {}, {}>;
256
256
 
257
- declare const UseDark: vue_demi.DefineComponent<UseDarkOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDarkOptions>, {}, {}>;
257
+ declare const UseDark: vue_demi.DefineComponent<UseDarkOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseDarkOptions>, {}, {}>;
258
258
 
259
259
  declare const UseDeviceMotion: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
260
260
  [key: string]: any;
261
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
261
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
262
262
 
263
263
  declare const UseDeviceOrientation: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
264
264
  [key: string]: any;
265
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
265
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
266
266
 
267
267
  declare const UseDevicePixelRatio: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
268
268
  [key: string]: any;
269
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
269
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
270
270
 
271
- declare const UseDevicesList: vue_demi.DefineComponent<UseDevicesListOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDevicesListOptions>, {}, {}>;
271
+ declare const UseDevicesList: vue_demi.DefineComponent<UseDevicesListOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseDevicesListOptions>, {}, {}>;
272
272
 
273
273
  declare const UseDocumentVisibility: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
274
274
  [key: string]: any;
275
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
275
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
276
276
 
277
277
  interface UseDraggableProps extends UseDraggableOptions, RenderableComponent {
278
278
  /**
@@ -286,7 +286,7 @@ interface UseDraggableProps extends UseDraggableOptions, RenderableComponent {
286
286
  */
287
287
  storageType?: 'local' | 'session';
288
288
  }
289
- declare const UseDraggable: vue_demi.DefineComponent<UseDraggableProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDraggableProps>, {}, {}>;
289
+ declare const UseDraggable: vue_demi.DefineComponent<UseDraggableProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseDraggableProps>, {}, {}>;
290
290
 
291
291
  interface UseResizeObserverOptions extends ConfigurableWindow {
292
292
  /**
@@ -298,12 +298,12 @@ interface UseResizeObserverOptions extends ConfigurableWindow {
298
298
  box?: ResizeObserverBoxOptions;
299
299
  }
300
300
 
301
- declare const UseElementBounding: vue_demi.DefineComponent<UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseResizeObserverOptions & RenderableComponent>, {}, {}>;
301
+ declare const UseElementBounding: vue_demi.DefineComponent<UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseResizeObserverOptions & RenderableComponent>, {}, {}>;
302
302
 
303
303
  type BindingValueFunction$5 = (state: boolean) => void;
304
304
  declare const vElementHover: ObjectDirective<HTMLElement, BindingValueFunction$5>;
305
305
 
306
- declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 & UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<ElementSize$1 & UseResizeObserverOptions & RenderableComponent>, {}, {}>;
306
+ declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 & UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<ElementSize$1 & UseResizeObserverOptions & RenderableComponent>, {}, {}>;
307
307
 
308
308
  interface ElementSize {
309
309
  width: number;
@@ -326,9 +326,30 @@ type VElementSizeOptions = RemoveFirstFromTuple<Parameters<typeof useElementSize
326
326
  type BindingValueArray$4 = [BindingValueFunction$4, ...VElementSizeOptions];
327
327
  declare const vElementSize: ObjectDirective<HTMLElement, BindingValueFunction$4 | BindingValueArray$4>;
328
328
 
329
- declare const UseElementVisibility: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}, {}>;
329
+ declare const UseElementVisibility: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<RenderableComponent>, {}, {}>;
330
330
 
331
- interface UseElementVisibilityOptions extends ConfigurableWindow {
331
+ interface UseIntersectionObserverOptions extends ConfigurableWindow {
332
+ /**
333
+ * Start the IntersectionObserver immediately on creation
334
+ *
335
+ * @default true
336
+ */
337
+ immediate?: boolean;
338
+ /**
339
+ * The Element or Document whose bounds are used as the bounding box when testing for intersection.
340
+ */
341
+ root?: MaybeComputedElementRef;
342
+ /**
343
+ * A string which specifies a set of offsets to add to the root's bounding_box when calculating intersections.
344
+ */
345
+ rootMargin?: string;
346
+ /**
347
+ * Either a single number or an array of numbers between 0.0 and 1.
348
+ */
349
+ threshold?: number | number[];
350
+ }
351
+
352
+ interface UseElementVisibilityOptions extends ConfigurableWindow, Pick<UseIntersectionObserverOptions, 'threshold'> {
332
353
  scrollTarget?: MaybeRefOrGetter<HTMLElement | undefined | null>;
333
354
  }
334
355
 
@@ -340,17 +361,17 @@ declare const UseEyeDropper: vue_demi.DefineComponent<{
340
361
  sRGBHex: StringConstructor;
341
362
  }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
342
363
  [key: string]: any;
343
- }>[] | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
364
+ }>[] | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{
344
365
  sRGBHex: StringConstructor;
345
366
  }>>, {}, {}>;
346
367
 
347
- declare const UseFullscreen: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}, {}>;
368
+ declare const UseFullscreen: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<RenderableComponent>, {}, {}>;
348
369
 
349
- declare const UseGeolocation: vue_demi.DefineComponent<UseGeolocationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseGeolocationOptions>, {}, {}>;
370
+ declare const UseGeolocation: vue_demi.DefineComponent<UseGeolocationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseGeolocationOptions>, {}, {}>;
350
371
 
351
372
  declare const UseIdle: vue_demi.DefineComponent<UseIdleOptions & {
352
373
  timeout: number;
353
- }, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseIdleOptions & {
374
+ }, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseIdleOptions & {
354
375
  timeout: number;
355
376
  }>, {}, {}>;
356
377
 
@@ -373,7 +394,7 @@ interface UseImageOptions {
373
394
  referrerPolicy?: HTMLImageElement['referrerPolicy'];
374
395
  }
375
396
 
376
- declare const UseImage: vue_demi.DefineComponent<UseImageOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseImageOptions & RenderableComponent>, {}, {}>;
397
+ declare const UseImage: vue_demi.DefineComponent<UseImageOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseImageOptions & RenderableComponent>, {}, {}>;
377
398
 
378
399
  interface UseScrollOptions extends ConfigurableWindow {
379
400
  /**
@@ -422,6 +443,12 @@ interface UseScrollOptions extends ConfigurableWindow {
422
443
  * @default 'auto'
423
444
  */
424
445
  behavior?: MaybeRefOrGetter<ScrollBehavior>;
446
+ /**
447
+ * On error callback
448
+ *
449
+ * Default log error to `console.error`
450
+ */
451
+ onError?: (error: unknown) => void;
425
452
  }
426
453
  /**
427
454
  * Reactive scroll.
@@ -490,47 +517,26 @@ type BindingValueFunction$2 = Parameters<typeof useInfiniteScroll>[1];
490
517
  type BindingValueArray$2 = [BindingValueFunction$2, UseInfiniteScrollOptions];
491
518
  declare const vInfiniteScroll: ObjectDirective<HTMLElement, BindingValueFunction$2 | BindingValueArray$2>;
492
519
 
493
- interface UseIntersectionObserverOptions extends ConfigurableWindow {
494
- /**
495
- * Start the IntersectionObserver immediately on creation
496
- *
497
- * @default true
498
- */
499
- immediate?: boolean;
500
- /**
501
- * The Element or Document whose bounds are used as the bounding box when testing for intersection.
502
- */
503
- root?: MaybeComputedElementRef;
504
- /**
505
- * A string which specifies a set of offsets to add to the root's bounding_box when calculating intersections.
506
- */
507
- rootMargin?: string;
508
- /**
509
- * Either a single number or an array of numbers between 0.0 and 1.
510
- */
511
- threshold?: number | number[];
512
- }
513
-
514
520
  type BindingValueFunction$1 = IntersectionObserverCallback;
515
521
  type BindingValueArray$1 = [BindingValueFunction$1, UseIntersectionObserverOptions];
516
522
  declare const vIntersectionObserver: ObjectDirective<HTMLElement, BindingValueFunction$1 | BindingValueArray$1>;
517
523
 
518
- declare const UseMouse: vue_demi.DefineComponent<UseMouseOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseMouseOptions>, {}, {}>;
524
+ declare const UseMouse: vue_demi.DefineComponent<UseMouseOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseMouseOptions>, {}, {}>;
519
525
 
520
- declare const UseMouseInElement: vue_demi.DefineComponent<MouseInElementOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<MouseInElementOptions & RenderableComponent>, {}, {}>;
526
+ declare const UseMouseInElement: vue_demi.DefineComponent<MouseInElementOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<MouseInElementOptions & RenderableComponent>, {}, {}>;
521
527
 
522
- declare const UseMousePressed: vue_demi.DefineComponent<Omit<MousePressedOptions, "target"> & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<MousePressedOptions, "target"> & RenderableComponent>, {}, {}>;
528
+ declare const UseMousePressed: vue_demi.DefineComponent<Omit<MousePressedOptions, "target"> & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<Omit<MousePressedOptions, "target"> & RenderableComponent>, {}, {}>;
523
529
 
524
530
  declare const UseNetwork: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
525
531
  [key: string]: any;
526
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
532
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
527
533
 
528
- declare const UseNow: vue_demi.DefineComponent<Omit<UseNowOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseNowOptions<true>, "controls">>, {}, {}>;
534
+ declare const UseNow: vue_demi.DefineComponent<Omit<UseNowOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<Omit<UseNowOptions<true>, "controls">>, {}, {}>;
529
535
 
530
536
  interface UseObjectUrlProps {
531
537
  object: Blob | MediaSource | undefined;
532
538
  }
533
- declare const UseObjectUrl: vue_demi.DefineComponent<UseObjectUrlProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseObjectUrlProps>, {}, {}>;
539
+ declare const UseObjectUrl: vue_demi.DefineComponent<UseObjectUrlProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseObjectUrlProps>, {}, {}>;
534
540
 
535
541
  interface UseOffsetPaginationOptions {
536
542
  /**
@@ -570,43 +576,43 @@ interface UseOffsetPaginationReturn {
570
576
  next: () => void;
571
577
  }
572
578
 
573
- declare const UseOffsetPagination: vue_demi.DefineComponent<UseOffsetPaginationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseOffsetPaginationOptions>, {}, {}>;
579
+ declare const UseOffsetPagination: vue_demi.DefineComponent<UseOffsetPaginationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseOffsetPaginationOptions>, {}, {}>;
574
580
 
575
581
  declare const UseOnline: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
576
582
  [key: string]: any;
577
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
583
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
578
584
 
579
585
  declare const UsePageLeave: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
580
586
  [key: string]: any;
581
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
587
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
582
588
 
583
589
  declare const UsePointer: vue_demi.DefineComponent<Omit<UsePointerOptions, "target"> & {
584
590
  target: 'window' | 'self';
585
- }, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UsePointerOptions, "target"> & {
591
+ }, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<Omit<UsePointerOptions, "target"> & {
586
592
  target: 'window' | 'self';
587
593
  }>, {}, {}>;
588
594
 
589
- declare const UsePointerLock: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}, {}>;
595
+ declare const UsePointerLock: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<RenderableComponent>, {}, {}>;
590
596
 
591
597
  declare const UsePreferredColorScheme: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
592
598
  [key: string]: any;
593
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
599
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
594
600
 
595
601
  declare const UsePreferredContrast: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
596
602
  [key: string]: any;
597
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
603
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
598
604
 
599
605
  declare const UsePreferredDark: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
600
606
  [key: string]: any;
601
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
607
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
602
608
 
603
609
  declare const UsePreferredLanguages: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
604
610
  [key: string]: any;
605
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
611
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
606
612
 
607
613
  declare const UsePreferredReducedMotion: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
608
614
  [key: string]: any;
609
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
615
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
610
616
 
611
617
  declare const UseScreenSafeArea: vue_demi.DefineComponent<{
612
618
  top: BooleanConstructor;
@@ -615,7 +621,7 @@ declare const UseScreenSafeArea: vue_demi.DefineComponent<{
615
621
  left: BooleanConstructor;
616
622
  }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
617
623
  [key: string]: any;
618
- }> | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
624
+ }> | undefined, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{
619
625
  top: BooleanConstructor;
620
626
  right: BooleanConstructor;
621
627
  bottom: BooleanConstructor;
@@ -636,9 +642,9 @@ declare const vScrollLock: FunctionDirective<HTMLElement, boolean>;
636
642
  interface UseTimeAgoComponentOptions extends Omit<UseTimeAgoOptions<true>, 'controls'> {
637
643
  time: MaybeRef<Date | number | string>;
638
644
  }
639
- declare const UseTimeAgo: vue_demi.DefineComponent<UseTimeAgoComponentOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseTimeAgoComponentOptions>, {}, {}>;
645
+ declare const UseTimeAgo: vue_demi.DefineComponent<UseTimeAgoComponentOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseTimeAgoComponentOptions>, {}, {}>;
640
646
 
641
- declare const UseTimestamp: vue_demi.DefineComponent<Omit<UseTimestampOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseTimestampOptions<true>, "controls">>, {}, {}>;
647
+ declare const UseTimestamp: vue_demi.DefineComponent<Omit<UseTimestampOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<Omit<UseTimestampOptions<true>, "controls">>, {}, {}>;
642
648
 
643
649
  interface UseVirtualListProps {
644
650
  /**
@@ -660,12 +666,12 @@ interface UseVirtualListProps {
660
666
  */
661
667
  height: string;
662
668
  }
663
- declare const UseVirtualList: vue_demi.DefineComponent<UseVirtualListProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseVirtualListProps>, {}, {}>;
669
+ declare const UseVirtualList: vue_demi.DefineComponent<UseVirtualListProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseVirtualListProps>, {}, {}>;
664
670
 
665
671
  declare const UseWindowFocus: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
666
672
  [key: string]: any;
667
- }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
673
+ }>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}, {}>;
668
674
 
669
- declare const UseWindowSize: vue_demi.DefineComponent<UseWindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseWindowSizeOptions>, {}, {}>;
675
+ declare const UseWindowSize: vue_demi.DefineComponent<UseWindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.PublicProps, Readonly<UseWindowSizeOptions>, {}, {}>;
670
676
 
671
677
  export { OnClickOutside, type OnClickOutsideProps, OnLongPress, type OnLongPressProps, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, type UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, type UseObjectUrlProps, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, type UseVirtualListProps, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };
package/index.iife.js CHANGED
@@ -19,7 +19,9 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
19
19
  VueDemi.Vue2 = Vue
20
20
  VueDemi.version = Vue.version
21
21
  VueDemi.warn = Vue.util.warn
22
- VueDemi.hasInjectionContext = () => !!VueDemi.getCurrentInstance()
22
+ VueDemi.hasInjectionContext = function() {
23
+ return !!VueDemi.getCurrentInstance()
24
+ }
23
25
  function createApp(rootComponent, rootProps) {
24
26
  var vm
25
27
  var provide = {}
@@ -72,7 +74,9 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
72
74
  VueDemi.Vue = Vue
73
75
  VueDemi.Vue2 = Vue
74
76
  VueDemi.version = Vue.version
75
- VueDemi.hasInjectionContext = () => !!VueDemi.getCurrentInstance()
77
+ VueDemi.hasInjectionContext = function() {
78
+ return !!VueDemi.getCurrentInstance()
79
+ }
76
80
  } else {
77
81
  console.error('[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.')
78
82
  }
@@ -565,23 +569,27 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
565
569
  return data;
566
570
  function write(v) {
567
571
  try {
572
+ const oldValue = storage.getItem(key);
573
+ const dispatchWriteEvent = (newValue) => {
574
+ if (window) {
575
+ window.dispatchEvent(new CustomEvent(customStorageEventName, {
576
+ detail: {
577
+ key,
578
+ oldValue,
579
+ newValue,
580
+ storageArea: storage
581
+ }
582
+ }));
583
+ }
584
+ };
568
585
  if (v == null) {
586
+ dispatchWriteEvent(null);
569
587
  storage.removeItem(key);
570
588
  } else {
571
589
  const serialized = serializer.write(v);
572
- const oldValue = storage.getItem(key);
573
590
  if (oldValue !== serialized) {
574
591
  storage.setItem(key, serialized);
575
- if (window) {
576
- window.dispatchEvent(new CustomEvent(customStorageEventName, {
577
- detail: {
578
- key,
579
- oldValue,
580
- newValue: serialized,
581
- storageArea: storage
582
- }
583
- }));
584
- }
592
+ dispatchWriteEvent(serialized);
585
593
  }
586
594
  }
587
595
  } catch (e) {
@@ -636,10 +644,11 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
636
644
 
637
645
  function useMounted() {
638
646
  const isMounted = vueDemi.ref(false);
639
- if (vueDemi.getCurrentInstance()) {
647
+ const instance = vueDemi.getCurrentInstance();
648
+ if (instance) {
640
649
  vueDemi.onMounted(() => {
641
650
  isMounted.value = true;
642
- });
651
+ }, instance);
643
652
  }
644
653
  return isMounted;
645
654
  }
@@ -879,7 +888,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
879
888
  "axis",
880
889
  "onStart",
881
890
  "onMove",
882
- "onEnd"
891
+ "onEnd",
892
+ "disabled"
883
893
  ],
884
894
  setup(props, { slots }) {
885
895
  const target = vueDemi.ref();
@@ -887,6 +897,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
887
897
  var _a;
888
898
  return (_a = props.handle) != null ? _a : target.value;
889
899
  });
900
+ const disabled = vueDemi.computed(() => !!props.disabled);
890
901
  const storageValue = props.storageKey && core.useStorage(
891
902
  props.storageKey,
892
903
  shared.toValue(props.initialValue) || { x: 0, y: 0 },
@@ -905,7 +916,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
905
916
  ...props,
906
917
  handle,
907
918
  initialValue,
908
- onEnd
919
+ onEnd,
920
+ disabled
909
921
  }));
910
922
  return () => {
911
923
  if (slots.default)
@@ -996,7 +1008,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
996
1008
  _el && observer.observe(_el, observerOptions);
997
1009
  }
998
1010
  },
999
- { immediate: true, flush: "post", deep: true }
1011
+ { immediate: true, flush: "post" }
1000
1012
  );
1001
1013
  const stop = () => {
1002
1014
  cleanup();
@@ -1151,7 +1163,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1151
1163
  }
1152
1164
 
1153
1165
  function useElementVisibility(element, options = {}) {
1154
- const { window = defaultWindow, scrollTarget } = options;
1166
+ const { window = defaultWindow, scrollTarget, threshold = 0 } = options;
1155
1167
  const elementIsVisible = vueDemi.ref(false);
1156
1168
  useIntersectionObserver(
1157
1169
  element,
@@ -1169,7 +1181,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1169
1181
  {
1170
1182
  root: scrollTarget,
1171
1183
  window,
1172
- threshold: 0
1184
+ threshold
1173
1185
  }
1174
1186
  );
1175
1187
  return elementIsVisible;
@@ -1383,7 +1395,10 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1383
1395
  passive: true
1384
1396
  },
1385
1397
  behavior = "auto",
1386
- window = defaultWindow
1398
+ window = defaultWindow,
1399
+ onError = (e) => {
1400
+ console.error(e);
1401
+ }
1387
1402
  } = options;
1388
1403
  const internalX = vueDemi.ref(0);
1389
1404
  const internalY = vueDemi.ref(0);
@@ -1444,12 +1459,12 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1444
1459
  var _a;
1445
1460
  if (!window)
1446
1461
  return;
1447
- const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target;
1462
+ const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);
1448
1463
  const { display, flexDirection } = getComputedStyle(el);
1449
1464
  const scrollLeft = el.scrollLeft;
1450
1465
  directions.left = scrollLeft < internalX.value;
1451
1466
  directions.right = scrollLeft > internalX.value;
1452
- const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
1467
+ const left = Math.abs(scrollLeft) <= (offset.left || 0);
1453
1468
  const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1454
1469
  if (display === "flex" && flexDirection === "row-reverse") {
1455
1470
  arrivedState.left = right;
@@ -1464,7 +1479,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1464
1479
  scrollTop = window.document.body.scrollTop;
1465
1480
  directions.top = scrollTop < internalY.value;
1466
1481
  directions.bottom = scrollTop > internalY.value;
1467
- const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
1482
+ const top = Math.abs(scrollTop) <= (offset.top || 0);
1468
1483
  const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1469
1484
  if (display === "flex" && flexDirection === "column-reverse") {
1470
1485
  arrivedState.top = bottom;
@@ -1492,10 +1507,14 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1492
1507
  eventListenerOptions
1493
1508
  );
1494
1509
  shared.tryOnMounted(() => {
1495
- const _element = shared.toValue(element);
1496
- if (!_element)
1497
- return;
1498
- setArrivedState(_element);
1510
+ try {
1511
+ const _element = shared.toValue(element);
1512
+ if (!_element)
1513
+ return;
1514
+ setArrivedState(_element);
1515
+ } catch (e) {
1516
+ onError(e);
1517
+ }
1499
1518
  });
1500
1519
  useEventListener(
1501
1520
  element,
@@ -1845,16 +1864,21 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
1845
1864
  observer = void 0;
1846
1865
  }
1847
1866
  };
1867
+ const targets = vueDemi.computed(() => {
1868
+ const value = shared.toValue(target);
1869
+ const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(shared.notNullish);
1870
+ return new Set(items);
1871
+ });
1848
1872
  const stopWatch = vueDemi.watch(
1849
- () => unrefElement(target),
1850
- (el) => {
1873
+ () => targets.value,
1874
+ (targets2) => {
1851
1875
  cleanup();
1852
- if (isSupported.value && window && el) {
1876
+ if (isSupported.value && window && targets2.size) {
1853
1877
  observer = new MutationObserver(callback);
1854
- observer.observe(el, mutationOptions);
1878
+ targets2.forEach((el) => observer.observe(el, mutationOptions));
1855
1879
  }
1856
1880
  },
1857
- { immediate: true }
1881
+ { immediate: true, flush: "post" }
1858
1882
  );
1859
1883
  const takeRecords = () => {
1860
1884
  return observer == null ? void 0 : observer.takeRecords();