svelte-intersection-observer 1.2.0 → 2.1.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.
@@ -1,90 +1,98 @@
1
- import type { SvelteComponentTyped } from "svelte";
1
+ import type { Component, Snippet } from "svelte";
2
2
 
3
- export default class extends SvelteComponentTyped<
4
- {
5
- /**
6
- * Array of HTML Elements to observe.
7
- * Use this for better performance when observing multiple elements.
8
- * @default []
9
- */
10
- elements?: (HTMLElement | null)[];
3
+ export interface MultipleIntersectionObserverProps {
4
+ /**
5
+ * Array of HTML Elements to observe.
6
+ * Use this for better performance when observing multiple elements.
7
+ * @default []
8
+ */
9
+ elements?: (HTMLElement | null)[];
11
10
 
12
- /**
13
- * Set to `true` to unobserve the element
14
- * after it intersects the viewport.
15
- * @default false
16
- */
17
- once?: boolean;
11
+ /**
12
+ * Set to `true` to unobserve the element
13
+ * after it intersects the viewport.
14
+ * @default false
15
+ */
16
+ once?: boolean;
18
17
 
19
- /**
20
- * Specify the containing element.
21
- * Defaults to the browser viewport.
22
- * @default null
23
- */
24
- root?: null | HTMLElement;
18
+ /**
19
+ * Specify the containing element.
20
+ * Defaults to the browser viewport.
21
+ * @default null
22
+ */
23
+ root?: null | HTMLElement;
25
24
 
26
- /**
27
- * Margin offset of the containing element.
28
- * @default "0px"
29
- */
30
- rootMargin?: string;
25
+ /**
26
+ * Margin offset of the containing element.
27
+ * @default "0px"
28
+ */
29
+ rootMargin?: string;
31
30
 
32
- /**
33
- * Percentage of element visibility to trigger an event.
34
- * Value must be a number between 0 and 1, or an array of numbers between 0 and 1.
35
- * @default 0
36
- */
37
- threshold?: number | number[];
31
+ /**
32
+ * Percentage of element visibility to trigger an event.
33
+ * Value must be a number between 0 and 1, or an array of numbers between 0 and 1.
34
+ * @default 0
35
+ */
36
+ threshold?: number | number[];
38
37
 
39
- /**
40
- * Map of element to its intersection state.
41
- * @default new Map()
42
- */
43
- elementIntersections?: Map<HTMLElement | null, boolean>;
38
+ /**
39
+ * Map of element to its intersection state.
40
+ * @default new Map()
41
+ */
42
+ elementIntersections?: Map<HTMLElement | null, boolean>;
44
43
 
45
- /**
46
- * Map of element to its latest entry.
47
- * @default new Map()
48
- */
49
- elementEntries?: Map<HTMLElement | null, IntersectionObserverEntry>;
44
+ /**
45
+ * Map of element to its latest entry.
46
+ * @default new Map()
47
+ */
48
+ elementEntries?: Map<HTMLElement | null, IntersectionObserverEntry>;
50
49
 
51
- /**
52
- * `IntersectionObserver` instance.
53
- * @default null
54
- */
55
- observer?: null | IntersectionObserver;
50
+ /**
51
+ * `IntersectionObserver` instance.
52
+ * @default null
53
+ */
54
+ observer?: null | IntersectionObserver;
56
55
 
57
- /**
58
- * Set to `true` to pause observing all elements without disconnecting
59
- * the observer or losing `elementIntersections`/`elementEntries` state.
60
- * Set back to `false` to resume.
61
- * @default false
62
- */
63
- skip?: boolean;
64
- },
65
- {
66
- /**
67
- * Dispatched when an element is first observed
68
- * and also whenever an intersection event occurs.
69
- */
70
- observe: CustomEvent<{
71
- entry: IntersectionObserverEntry;
72
- target: HTMLElement;
73
- }>;
56
+ /**
57
+ * Set to `true` to pause observing all elements without disconnecting
58
+ * the observer or losing `elementIntersections`/`elementEntries` state.
59
+ * Set back to `false` to resume.
60
+ * @default false
61
+ */
62
+ skip?: boolean;
74
63
 
75
- /**
76
- * Dispatched only when an element is intersecting the viewport.
77
- */
78
- intersect: CustomEvent<{
79
- entry: IntersectionObserverEntry & { isIntersecting: true };
80
- target: HTMLElement;
81
- }>;
82
- },
83
- {
84
- default: {
85
- observer: IntersectionObserver;
86
- elementIntersections: Map<HTMLElement | null, boolean>;
87
- elementEntries: Map<HTMLElement | null, IntersectionObserverEntry>;
88
- };
89
- }
90
- > {}
64
+ /**
65
+ * Called when an element is first observed
66
+ * and also whenever an intersection event occurs.
67
+ */
68
+ onobserve?: (detail: {
69
+ entry: IntersectionObserverEntry;
70
+ target: HTMLElement;
71
+ }) => void;
72
+
73
+ /**
74
+ * Called only when an element is intersecting the viewport.
75
+ */
76
+ onintersect?: (detail: {
77
+ entry: IntersectionObserverEntry & { isIntersecting: true };
78
+ target: HTMLElement;
79
+ }) => void;
80
+
81
+ children?: Snippet<
82
+ [
83
+ {
84
+ observer: null | IntersectionObserver;
85
+ elementIntersections: Map<HTMLElement | null, boolean>;
86
+ elementEntries: Map<HTMLElement | null, IntersectionObserverEntry>;
87
+ },
88
+ ]
89
+ >;
90
+ }
91
+
92
+ declare const MultipleIntersectionObserverComponent: Component<
93
+ MultipleIntersectionObserverProps,
94
+ Record<string, never>,
95
+ "elementIntersections" | "elementEntries" | "observer"
96
+ >;
97
+
98
+ export default MultipleIntersectionObserverComponent;