@angular/cdk 19.2.3 → 20.0.0-next.1

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.
Files changed (180) hide show
  1. package/a11y/index.d.ts +12 -843
  2. package/a11y-module.d-7d03e079.d.ts +313 -0
  3. package/accordion/index.d.ts +1 -1
  4. package/activedescendant-key-manager.d-11921e3a.d.ts +31 -0
  5. package/bidi/index.d.ts +3 -52
  6. package/bidi-module.d-f8648621.d.ts +53 -0
  7. package/coercion/index.d.ts +2 -15
  8. package/collections/index.d.ts +10 -269
  9. package/data-source.d-7cab2c9d.d.ts +42 -0
  10. package/dialog/index.d.ts +17 -32
  11. package/drag-drop/index.d.ts +14 -18
  12. package/fesm2022/a11y-module-e6996d20.mjs +952 -0
  13. package/fesm2022/a11y-module-e6996d20.mjs.map +1 -0
  14. package/fesm2022/a11y.mjs +42 -2448
  15. package/fesm2022/a11y.mjs.map +1 -1
  16. package/fesm2022/accordion.mjs +12 -12
  17. package/fesm2022/accordion.mjs.map +1 -1
  18. package/fesm2022/activedescendant-key-manager-1351a9d3.mjs +16 -0
  19. package/fesm2022/activedescendant-key-manager-1351a9d3.mjs.map +1 -0
  20. package/fesm2022/array-ee3b4bab.mjs +6 -0
  21. package/fesm2022/array-ee3b4bab.mjs.map +1 -0
  22. package/fesm2022/backwards-compatibility-bcbe473e.mjs +25 -0
  23. package/fesm2022/backwards-compatibility-bcbe473e.mjs.map +1 -0
  24. package/fesm2022/bidi-module-0726b65c.mjs +78 -0
  25. package/fesm2022/bidi-module-0726b65c.mjs.map +1 -0
  26. package/fesm2022/bidi.mjs +4 -143
  27. package/fesm2022/bidi.mjs.map +1 -1
  28. package/fesm2022/breakpoints-observer-d4584b66.mjs +179 -0
  29. package/fesm2022/breakpoints-observer-d4584b66.mjs.map +1 -0
  30. package/fesm2022/cdk.mjs +1 -1
  31. package/fesm2022/cdk.mjs.map +1 -1
  32. package/fesm2022/clipboard.mjs +10 -10
  33. package/fesm2022/clipboard.mjs.map +1 -1
  34. package/fesm2022/coercion/private.mjs +2 -14
  35. package/fesm2022/coercion/private.mjs.map +1 -1
  36. package/fesm2022/coercion.mjs +5 -39
  37. package/fesm2022/coercion.mjs.map +1 -1
  38. package/fesm2022/collections.mjs +7 -472
  39. package/fesm2022/collections.mjs.map +1 -1
  40. package/fesm2022/css-pixel-value-286c9a60.mjs +10 -0
  41. package/fesm2022/css-pixel-value-286c9a60.mjs.map +1 -0
  42. package/fesm2022/data-source-5320b6fd.mjs +15 -0
  43. package/fesm2022/data-source-5320b6fd.mjs.map +1 -0
  44. package/fesm2022/dialog.mjs +37 -41
  45. package/fesm2022/dialog.mjs.map +1 -1
  46. package/fesm2022/directionality-7ea26429.mjs +72 -0
  47. package/fesm2022/directionality-7ea26429.mjs.map +1 -0
  48. package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs +44 -0
  49. package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs.map +1 -0
  50. package/fesm2022/drag-drop.mjs +48 -46
  51. package/fesm2022/drag-drop.mjs.map +1 -1
  52. package/fesm2022/element-705567fe.mjs +29 -0
  53. package/fesm2022/element-705567fe.mjs.map +1 -0
  54. package/fesm2022/fake-event-detection-7055b1bd.mjs +24 -0
  55. package/fesm2022/fake-event-detection-7055b1bd.mjs.map +1 -0
  56. package/fesm2022/focus-key-manager-58d29acd.mjs +22 -0
  57. package/fesm2022/focus-key-manager-58d29acd.mjs.map +1 -0
  58. package/fesm2022/focus-monitor-cebaa0d1.mjs +629 -0
  59. package/fesm2022/focus-monitor-cebaa0d1.mjs.map +1 -0
  60. package/fesm2022/id-generator-fba495fb.mjs +37 -0
  61. package/fesm2022/id-generator-fba495fb.mjs.map +1 -0
  62. package/fesm2022/keycodes-107cd3e4.mjs +122 -0
  63. package/fesm2022/keycodes-107cd3e4.mjs.map +1 -0
  64. package/fesm2022/keycodes.mjs +2 -132
  65. package/fesm2022/keycodes.mjs.map +1 -1
  66. package/fesm2022/layout.mjs +12 -180
  67. package/fesm2022/layout.mjs.map +1 -1
  68. package/fesm2022/list-key-manager-c7b5cefb.mjs +360 -0
  69. package/fesm2022/list-key-manager-c7b5cefb.mjs.map +1 -0
  70. package/fesm2022/listbox.mjs +21 -16
  71. package/fesm2022/listbox.mjs.map +1 -1
  72. package/fesm2022/menu.mjs +76 -56
  73. package/fesm2022/menu.mjs.map +1 -1
  74. package/fesm2022/modifiers-33a5859e.mjs +13 -0
  75. package/fesm2022/modifiers-33a5859e.mjs.map +1 -0
  76. package/fesm2022/observable-97c0792c.mjs +15 -0
  77. package/fesm2022/observable-97c0792c.mjs.map +1 -0
  78. package/fesm2022/observe-content-d2a6b5a0.mjs +210 -0
  79. package/fesm2022/observe-content-d2a6b5a0.mjs.map +1 -0
  80. package/fesm2022/observers/private.mjs +3 -3
  81. package/fesm2022/observers/private.mjs.map +1 -1
  82. package/fesm2022/observers.mjs +5 -209
  83. package/fesm2022/observers.mjs.map +1 -1
  84. package/fesm2022/overlay-module-863b82c9.mjs +3029 -0
  85. package/fesm2022/overlay-module-863b82c9.mjs.map +1 -0
  86. package/fesm2022/overlay.mjs +28 -3023
  87. package/fesm2022/overlay.mjs.map +1 -1
  88. package/fesm2022/passive-listeners-c0bdc49f.mjs +31 -0
  89. package/fesm2022/passive-listeners-c0bdc49f.mjs.map +1 -0
  90. package/fesm2022/platform-1be098b0.mjs +77 -0
  91. package/fesm2022/platform-1be098b0.mjs.map +1 -0
  92. package/fesm2022/platform.mjs +13 -289
  93. package/fesm2022/platform.mjs.map +1 -1
  94. package/fesm2022/portal-directives-c88fea11.mjs +615 -0
  95. package/fesm2022/portal-directives-c88fea11.mjs.map +1 -0
  96. package/fesm2022/portal.mjs +3 -675
  97. package/fesm2022/portal.mjs.map +1 -1
  98. package/fesm2022/private.mjs +3 -59
  99. package/fesm2022/private.mjs.map +1 -1
  100. package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs +156 -0
  101. package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs.map +1 -0
  102. package/fesm2022/scrolling-61955dd1.mjs +99 -0
  103. package/fesm2022/scrolling-61955dd1.mjs.map +1 -0
  104. package/fesm2022/scrolling-module-aa9eeac5.mjs +1463 -0
  105. package/fesm2022/scrolling-module-aa9eeac5.mjs.map +1 -0
  106. package/fesm2022/scrolling.mjs +12 -1459
  107. package/fesm2022/scrolling.mjs.map +1 -1
  108. package/fesm2022/selection-model-30243dba.mjs +221 -0
  109. package/fesm2022/selection-model-30243dba.mjs.map +1 -0
  110. package/fesm2022/shadow-dom-9f403d00.mjs +49 -0
  111. package/fesm2022/shadow-dom-9f403d00.mjs.map +1 -0
  112. package/fesm2022/stepper.mjs +32 -26
  113. package/fesm2022/stepper.mjs.map +1 -1
  114. package/fesm2022/style-loader-e14dc585.mjs +47 -0
  115. package/fesm2022/style-loader-e14dc585.mjs.map +1 -0
  116. package/fesm2022/table.mjs +87 -121
  117. package/fesm2022/table.mjs.map +1 -1
  118. package/fesm2022/test-environment-34eef1ee.mjs +19 -0
  119. package/fesm2022/test-environment-34eef1ee.mjs.map +1 -0
  120. package/fesm2022/testing/selenium-webdriver.mjs +2 -1
  121. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  122. package/fesm2022/testing/testbed.mjs +33 -34
  123. package/fesm2022/testing/testbed.mjs.map +1 -1
  124. package/fesm2022/testing.mjs +2 -697
  125. package/fesm2022/testing.mjs.map +1 -1
  126. package/fesm2022/text-field.mjs +20 -19
  127. package/fesm2022/text-field.mjs.map +1 -1
  128. package/fesm2022/text-filtering-b60ba8a2.mjs +698 -0
  129. package/fesm2022/text-filtering-b60ba8a2.mjs.map +1 -0
  130. package/fesm2022/tree-key-manager-2f20c79c.mjs +360 -0
  131. package/fesm2022/tree-key-manager-2f20c79c.mjs.map +1 -0
  132. package/fesm2022/tree.mjs +33 -29
  133. package/fesm2022/tree.mjs.map +1 -1
  134. package/fesm2022/typeahead-11ae39bd.mjs +88 -0
  135. package/fesm2022/typeahead-11ae39bd.mjs.map +1 -0
  136. package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs +49 -0
  137. package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs.map +1 -0
  138. package/fesm2022/visually-hidden-83aea4a0.mjs +18 -0
  139. package/fesm2022/visually-hidden-83aea4a0.mjs.map +1 -0
  140. package/focus-key-manager.d-415a6958.d.ts +33 -0
  141. package/focus-monitor.d-810a02e6.d.ts +209 -0
  142. package/harness-environment.d-4d615248.d.ts +619 -0
  143. package/list-key-manager.d-72e9a2e7.d.ts +164 -0
  144. package/listbox/index.d.ts +5 -4
  145. package/menu/index.d.ts +14 -6
  146. package/number-property.d-ce316715.d.ts +15 -0
  147. package/observe-content.d-c08bc882.d.ts +84 -0
  148. package/observers/index.d.ts +4 -84
  149. package/overlay/index.d.ts +16 -792
  150. package/overlay-module.d-5d06db8a.d.ts +790 -0
  151. package/package.json +3 -3
  152. package/platform/index.d.ts +2 -31
  153. package/platform.d-0a5b4792.d.ts +33 -0
  154. package/portal/index.d.ts +5 -266
  155. package/portal-directives.d-d345bd53.d.ts +210 -0
  156. package/private/index.d.ts +2 -19
  157. package/schematics/migration.json +4 -4
  158. package/schematics/ng-add/index.js +1 -1
  159. package/schematics/ng-add/index.mjs +1 -1
  160. package/schematics/ng-update/index.d.ts +2 -2
  161. package/schematics/ng-update/index.js +5 -5
  162. package/schematics/ng-update/index.mjs +5 -5
  163. package/schematics/update-tool/target-version.d.ts +1 -1
  164. package/schematics/update-tool/target-version.js +2 -2
  165. package/schematics/update-tool/target-version.mjs +2 -2
  166. package/scrolling/index.d.ts +7 -604
  167. package/scrolling-module.d-a08a462d.d.ts +551 -0
  168. package/selection-model.d-1a70542c.d.ts +111 -0
  169. package/stepper/index.d.ts +5 -3
  170. package/style-loader.d-19baab84.d.ts +21 -0
  171. package/table/index.d.ts +8 -19
  172. package/testing/index.d.ts +2 -618
  173. package/testing/selenium-webdriver/index.d.ts +1 -1
  174. package/testing/testbed/index.d.ts +1 -1
  175. package/text-field/index.d.ts +1 -1
  176. package/tree/index.d.ts +3 -2
  177. package/tree-key-manager-strategy.d-603161dd.d.ts +116 -0
  178. package/unique-selection-dispatcher.d-7993b9f5.d.ts +32 -0
  179. package/view-repeater.d-79039e1f.d.ts +88 -0
  180. package/viewport-ruler.d-f3d3e82f.d.ts +57 -0
@@ -0,0 +1,116 @@
1
+ import { QueryList } from '@angular/core';
2
+ import { Observable, Subject } from 'rxjs';
3
+
4
+ /** Represents an item within a tree that can be passed to a TreeKeyManager. */
5
+ interface TreeKeyManagerItem {
6
+ /** Whether the item is disabled. */
7
+ isDisabled?: (() => boolean) | boolean;
8
+ /** The user-facing label for this item. */
9
+ getLabel?(): string;
10
+ /** Perform the main action (i.e. selection) for this item. */
11
+ activate(): void;
12
+ /** Retrieves the parent for this item. This is `null` if there is no parent. */
13
+ getParent(): TreeKeyManagerItem | null;
14
+ /** Retrieves the children for this item. */
15
+ getChildren(): TreeKeyManagerItem[] | Observable<TreeKeyManagerItem[]>;
16
+ /** Determines if the item is currently expanded. */
17
+ isExpanded: (() => boolean) | boolean;
18
+ /** Collapses the item, hiding its children. */
19
+ collapse(): void;
20
+ /** Expands the item, showing its children. */
21
+ expand(): void;
22
+ /**
23
+ * Focuses the item. This should provide some indication to the user that this item is focused.
24
+ */
25
+ focus(): void;
26
+ /**
27
+ * Unfocus the item. This should remove the focus state.
28
+ */
29
+ unfocus(): void;
30
+ /**
31
+ * Sets the item to be focusable without actually focusing it.
32
+ */
33
+ makeFocusable?(): void;
34
+ }
35
+ /**
36
+ * Configuration for the TreeKeyManager.
37
+ */
38
+ interface TreeKeyManagerOptions<T extends TreeKeyManagerItem> {
39
+ /**
40
+ * If true, then the key manager will call `activate` in addition to calling `focus` when a
41
+ * particular item is focused.
42
+ */
43
+ shouldActivationFollowFocus?: boolean;
44
+ /**
45
+ * The direction in which the tree items are laid out horizontally. This influences which key
46
+ * will be interpreted as expand or collapse.
47
+ */
48
+ horizontalOrientation?: 'rtl' | 'ltr';
49
+ /**
50
+ * If provided, navigation "skips" over items that pass the given predicate.
51
+ *
52
+ * If the item is to be skipped, predicate function should return false.
53
+ */
54
+ skipPredicate?: (item: T) => boolean;
55
+ /**
56
+ * If provided, determines how the key manager determines if two items are equivalent.
57
+ *
58
+ * It should provide a unique key for each unique tree item. If two tree items are equivalent,
59
+ * then this function should return the same value.
60
+ */
61
+ trackBy?: (treeItem: T) => unknown;
62
+ /**
63
+ * If a value is provided, enables typeahead mode, which allows users to set the active item
64
+ * by typing the visible label of the item.
65
+ *
66
+ * If a number is provided, this will be the time to wait after the last keystroke before
67
+ * setting the active item. If `true` is provided, the default interval of 200ms will be used.
68
+ */
69
+ typeAheadDebounceInterval?: true | number;
70
+ }
71
+ interface TreeKeyManagerStrategy<T extends TreeKeyManagerItem> {
72
+ /** Stream that emits any time the focused item changes. */
73
+ readonly change: Subject<T | null>;
74
+ /**
75
+ * Cleans up the key manager.
76
+ */
77
+ destroy(): void;
78
+ /**
79
+ * Handles a keyboard event on the tree.
80
+ *
81
+ * @param event Keyboard event that represents the user interaction with the tree.
82
+ */
83
+ onKeydown(event: KeyboardEvent): void;
84
+ /** Index of the currently active item. */
85
+ getActiveItemIndex(): number | null;
86
+ /** The currently active item. */
87
+ getActiveItem(): T | null;
88
+ /**
89
+ * Focus the provided item by index.
90
+ *
91
+ * Updates the state of the currently active item. Emits to `change` stream if active item
92
+ * Changes.
93
+ * @param index The index of the item to focus.
94
+ * @param options Additional focusing options.
95
+ */
96
+ focusItem(index: number, options?: {
97
+ emitChangeEvent?: boolean;
98
+ }): void;
99
+ /**
100
+ * Focus the provided item.
101
+ *
102
+ * Updates the state of the currently active item. Emits to `change` stream if active item
103
+ * Changes.
104
+ * @param item The item to focus. Equality is determined via the trackBy function.
105
+ * @param options Additional focusing options.
106
+ */
107
+ focusItem(item: T, options?: {
108
+ emitChangeEvent?: boolean;
109
+ }): void;
110
+ focusItem(itemOrIndex: number | T, options?: {
111
+ emitChangeEvent?: boolean;
112
+ }): void;
113
+ }
114
+ type TreeKeyManagerFactory<T extends TreeKeyManagerItem> = (items: Observable<T[]> | QueryList<T> | T[], options: TreeKeyManagerOptions<T>) => TreeKeyManagerStrategy<T>;
115
+
116
+ export type { TreeKeyManagerItem as T, TreeKeyManagerStrategy as a, TreeKeyManagerFactory as b, TreeKeyManagerOptions as c };
@@ -0,0 +1,32 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnDestroy } from '@angular/core';
3
+
4
+ type UniqueSelectionDispatcherListener = (id: string, name: string) => void;
5
+ /**
6
+ * Class to coordinate unique selection based on name.
7
+ * Intended to be consumed as an Angular service.
8
+ * This service is needed because native radio change events are only fired on the item currently
9
+ * being selected, and we still need to uncheck the previous selection.
10
+ *
11
+ * This service does not *store* any IDs and names because they may change at any time, so it is
12
+ * less error-prone if they are simply passed through when the events occur.
13
+ */
14
+ declare class UniqueSelectionDispatcher implements OnDestroy {
15
+ private _listeners;
16
+ /**
17
+ * Notify other items that selection for the given name has been set.
18
+ * @param id ID of the item.
19
+ * @param name Name of the item.
20
+ */
21
+ notify(id: string, name: string): void;
22
+ /**
23
+ * Listen for future changes to item selection.
24
+ * @return Function used to deregister listener
25
+ */
26
+ listen(listener: UniqueSelectionDispatcherListener): () => void;
27
+ ngOnDestroy(): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<UniqueSelectionDispatcher, never>;
29
+ static ɵprov: i0.ɵɵInjectableDeclaration<UniqueSelectionDispatcher>;
30
+ }
31
+
32
+ export { UniqueSelectionDispatcher as U, type UniqueSelectionDispatcherListener as a };
@@ -0,0 +1,88 @@
1
+ import { TemplateRef, IterableChangeRecord, IterableChanges, ViewContainerRef, InjectionToken } from '@angular/core';
2
+
3
+ /**
4
+ * The context for an embedded view in the repeater's view container.
5
+ *
6
+ * @template T The type for the embedded view's $implicit property.
7
+ */
8
+ interface _ViewRepeaterItemContext<T> {
9
+ $implicit?: T;
10
+ }
11
+ /**
12
+ * The arguments needed to construct an embedded view for an item in a view
13
+ * container.
14
+ *
15
+ * @template C The type for the context passed to each embedded view.
16
+ */
17
+ interface _ViewRepeaterItemInsertArgs<C> {
18
+ templateRef: TemplateRef<C>;
19
+ context?: C;
20
+ index?: number;
21
+ }
22
+ /**
23
+ * A factory that derives the embedded view context for an item in a view
24
+ * container.
25
+ *
26
+ * @template T The type for the embedded view's $implicit property.
27
+ * @template R The type for the item in each IterableDiffer change record.
28
+ * @template C The type for the context passed to each embedded view.
29
+ */
30
+ type _ViewRepeaterItemContextFactory<T, R, C extends _ViewRepeaterItemContext<T>> = (record: IterableChangeRecord<R>, adjustedPreviousIndex: number | null, currentIndex: number | null) => _ViewRepeaterItemInsertArgs<C>;
31
+ /**
32
+ * Extracts the value of an item from an {@link IterableChangeRecord}.
33
+ *
34
+ * @template T The type for the embedded view's $implicit property.
35
+ * @template R The type for the item in each IterableDiffer change record.
36
+ */
37
+ type _ViewRepeaterItemValueResolver<T, R> = (record: IterableChangeRecord<R>) => T;
38
+ /** Indicates how a view was changed by a {@link _ViewRepeater}. */
39
+ declare enum _ViewRepeaterOperation {
40
+ /** The content of an existing view was replaced with another item. */
41
+ REPLACED = 0,
42
+ /** A new view was created with `createEmbeddedView`. */
43
+ INSERTED = 1,
44
+ /** The position of a view changed, but the content remains the same. */
45
+ MOVED = 2,
46
+ /** A view was detached from the view container. */
47
+ REMOVED = 3
48
+ }
49
+ /**
50
+ * Meta data describing the state of a view after it was updated by a
51
+ * {@link _ViewRepeater}.
52
+ *
53
+ * @template R The type for the item in each IterableDiffer change record.
54
+ * @template C The type for the context passed to each embedded view.
55
+ */
56
+ interface _ViewRepeaterItemChange<R, C> {
57
+ /** The view's context after it was changed. */
58
+ context?: C;
59
+ /** Indicates how the view was changed. */
60
+ operation: _ViewRepeaterOperation;
61
+ /** The view's corresponding change record. */
62
+ record: IterableChangeRecord<R>;
63
+ }
64
+ /**
65
+ * Type for a callback to be executed after a view has changed.
66
+ *
67
+ * @template R The type for the item in each IterableDiffer change record.
68
+ * @template C The type for the context passed to each embedded view.
69
+ */
70
+ type _ViewRepeaterItemChanged<R, C> = (change: _ViewRepeaterItemChange<R, C>) => void;
71
+ /**
72
+ * Describes a strategy for rendering items in a {@link ViewContainerRef}.
73
+ *
74
+ * @template T The type for the embedded view's $implicit property.
75
+ * @template R The type for the item in each IterableDiffer change record.
76
+ * @template C The type for the context passed to each embedded view.
77
+ */
78
+ interface _ViewRepeater<T, R, C extends _ViewRepeaterItemContext<T>> {
79
+ applyChanges(changes: IterableChanges<R>, viewContainerRef: ViewContainerRef, itemContextFactory: _ViewRepeaterItemContextFactory<T, R, C>, itemValueResolver: _ViewRepeaterItemValueResolver<T, R>, itemViewChanged?: _ViewRepeaterItemChanged<R, C>): void;
80
+ detach(): void;
81
+ }
82
+ /**
83
+ * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.
84
+ * @docs-private
85
+ */
86
+ declare const _VIEW_REPEATER_STRATEGY: InjectionToken<_ViewRepeater<unknown, unknown, _ViewRepeaterItemContext<unknown>>>;
87
+
88
+ export { type _ViewRepeaterItemContext as _, type _ViewRepeater as a, type _ViewRepeaterItemContextFactory as b, type _ViewRepeaterItemValueResolver as c, type _ViewRepeaterItemChanged as d, type _ViewRepeaterItemInsertArgs as e, _ViewRepeaterOperation as f, type _ViewRepeaterItemChange as g, _VIEW_REPEATER_STRATEGY as h };
@@ -0,0 +1,57 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnDestroy } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+
5
+ /** Time in ms to throttle the resize events by default. */
6
+ declare const DEFAULT_RESIZE_TIME = 20;
7
+ /** Object that holds the scroll position of the viewport in each direction. */
8
+ interface ViewportScrollPosition {
9
+ top: number;
10
+ left: number;
11
+ }
12
+ /**
13
+ * Simple utility for getting the bounds of the browser viewport.
14
+ * @docs-private
15
+ */
16
+ declare class ViewportRuler implements OnDestroy {
17
+ private _platform;
18
+ private _listeners;
19
+ /** Cached viewport dimensions. */
20
+ private _viewportSize;
21
+ /** Stream of viewport change events. */
22
+ private readonly _change;
23
+ /** Used to reference correct document/window */
24
+ protected _document: Document;
25
+ constructor(...args: unknown[]);
26
+ ngOnDestroy(): void;
27
+ /** Returns the viewport's width and height. */
28
+ getViewportSize(): Readonly<{
29
+ width: number;
30
+ height: number;
31
+ }>;
32
+ /** Gets a DOMRect for the viewport's bounds. */
33
+ getViewportRect(): {
34
+ top: number;
35
+ left: number;
36
+ bottom: number;
37
+ right: number;
38
+ height: number;
39
+ width: number;
40
+ };
41
+ /** Gets the (top, left) scroll position of the viewport. */
42
+ getViewportScrollPosition(): ViewportScrollPosition;
43
+ /**
44
+ * Returns a stream that emits whenever the size of the viewport changes.
45
+ * This stream emits outside of the Angular zone.
46
+ * @param throttleTime Time in milliseconds to throttle the stream.
47
+ */
48
+ change(throttleTime?: number): Observable<Event>;
49
+ /** Use defaultView of injected document if available or fallback to global window reference */
50
+ private _getWindow;
51
+ /** Updates the cached viewport size. */
52
+ private _updateViewportSize;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<ViewportRuler, never>;
54
+ static ɵprov: i0.ɵɵInjectableDeclaration<ViewportRuler>;
55
+ }
56
+
57
+ export { DEFAULT_RESIZE_TIME as D, ViewportRuler as V, type ViewportScrollPosition as a };