@angular/cdk 10.0.2 → 10.1.3

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 (216) hide show
  1. package/a11y/aria-describer/aria-describer.d.ts +10 -1
  2. package/a11y/index.metadata.json +1 -1
  3. package/a11y/interactivity-checker/interactivity-checker.d.ts +11 -1
  4. package/a11y/key-manager/list-key-manager.d.ts +6 -0
  5. package/accordion/accordion.d.ts +7 -1
  6. package/accordion/index.d.ts +1 -0
  7. package/accordion/index.metadata.json +1 -1
  8. package/bundles/cdk-a11y.umd.js +514 -410
  9. package/bundles/cdk-a11y.umd.js.map +1 -1
  10. package/bundles/cdk-a11y.umd.min.js +35 -11
  11. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  12. package/bundles/cdk-accordion.umd.js +47 -39
  13. package/bundles/cdk-accordion.umd.js.map +1 -1
  14. package/bundles/cdk-accordion.umd.min.js +10 -2
  15. package/bundles/cdk-accordion.umd.min.js.map +1 -1
  16. package/bundles/cdk-bidi.umd.js +25 -25
  17. package/bundles/cdk-bidi.umd.js.map +1 -1
  18. package/bundles/cdk-bidi.umd.min.js +5 -4
  19. package/bundles/cdk-bidi.umd.min.js.map +1 -1
  20. package/bundles/cdk-clipboard.umd.js +37 -36
  21. package/bundles/cdk-clipboard.umd.js.map +1 -1
  22. package/bundles/cdk-clipboard.umd.min.js +10 -2
  23. package/bundles/cdk-clipboard.umd.min.js.map +1 -1
  24. package/bundles/cdk-coercion.umd.js.map +1 -1
  25. package/bundles/cdk-collections.umd.js +303 -237
  26. package/bundles/cdk-collections.umd.js.map +1 -1
  27. package/bundles/cdk-collections.umd.min.js +3 -9
  28. package/bundles/cdk-collections.umd.min.js.map +1 -1
  29. package/bundles/cdk-drag-drop.umd.js +1059 -927
  30. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  31. package/bundles/cdk-drag-drop.umd.min.js +72 -10
  32. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  33. package/bundles/cdk-keycodes.umd.js.map +1 -1
  34. package/bundles/cdk-layout.umd.js +18 -18
  35. package/bundles/cdk-layout.umd.js.map +1 -1
  36. package/bundles/cdk-layout.umd.min.js +6 -5
  37. package/bundles/cdk-layout.umd.min.js.map +1 -1
  38. package/bundles/cdk-observers.umd.js +34 -34
  39. package/bundles/cdk-observers.umd.js.map +1 -1
  40. package/bundles/cdk-observers.umd.min.js +2 -2
  41. package/bundles/cdk-observers.umd.min.js.map +1 -1
  42. package/bundles/cdk-overlay.umd.js +638 -416
  43. package/bundles/cdk-overlay.umd.js.map +1 -1
  44. package/bundles/cdk-overlay.umd.min.js +51 -12
  45. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  46. package/bundles/cdk-platform.umd.js +10 -10
  47. package/bundles/cdk-platform.umd.js.map +1 -1
  48. package/bundles/cdk-platform.umd.min.js +4 -11
  49. package/bundles/cdk-platform.umd.min.js.map +1 -1
  50. package/bundles/cdk-portal.umd.js +355 -300
  51. package/bundles/cdk-portal.umd.js.map +1 -1
  52. package/bundles/cdk-portal.umd.min.js +4 -5
  53. package/bundles/cdk-portal.umd.min.js.map +1 -1
  54. package/bundles/cdk-scrolling.umd.js +482 -392
  55. package/bundles/cdk-scrolling.umd.js.map +1 -1
  56. package/bundles/cdk-scrolling.umd.min.js +20 -12
  57. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  58. package/bundles/cdk-stepper.umd.js +117 -117
  59. package/bundles/cdk-stepper.umd.js.map +1 -1
  60. package/bundles/cdk-stepper.umd.min.js +11 -2
  61. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  62. package/bundles/cdk-table.umd.js +862 -607
  63. package/bundles/cdk-table.umd.js.map +1 -1
  64. package/bundles/cdk-table.umd.min.js +8 -15
  65. package/bundles/cdk-table.umd.min.js.map +1 -1
  66. package/bundles/cdk-testing-protractor.umd.js +300 -241
  67. package/bundles/cdk-testing-protractor.umd.js.map +1 -1
  68. package/bundles/cdk-testing-protractor.umd.min.js +2 -9
  69. package/bundles/cdk-testing-protractor.umd.min.js.map +1 -1
  70. package/bundles/cdk-testing-testbed.umd.js +337 -276
  71. package/bundles/cdk-testing-testbed.umd.js.map +1 -1
  72. package/bundles/cdk-testing-testbed.umd.min.js +7 -30
  73. package/bundles/cdk-testing-testbed.umd.min.js.map +1 -1
  74. package/bundles/cdk-testing.umd.js +358 -270
  75. package/bundles/cdk-testing.umd.js.map +1 -1
  76. package/bundles/cdk-testing.umd.min.js +3 -18
  77. package/bundles/cdk-testing.umd.min.js.map +1 -1
  78. package/bundles/cdk-text-field.umd.js +51 -51
  79. package/bundles/cdk-text-field.umd.js.map +1 -1
  80. package/bundles/cdk-text-field.umd.min.js +10 -2
  81. package/bundles/cdk-text-field.umd.min.js.map +1 -1
  82. package/bundles/cdk-tree.umd.js +449 -396
  83. package/bundles/cdk-tree.umd.js.map +1 -1
  84. package/bundles/cdk-tree.umd.min.js +28 -3
  85. package/bundles/cdk-tree.umd.min.js.map +1 -1
  86. package/bundles/cdk.umd.js +1 -1
  87. package/bundles/cdk.umd.js.map +1 -1
  88. package/bundles/cdk.umd.min.js +1 -1
  89. package/bundles/cdk.umd.min.js.map +1 -1
  90. package/drag-drop/clone-node.d.ts +9 -0
  91. package/drag-drop/directives/drag-handle.d.ts +8 -2
  92. package/drag-drop/directives/drag-placeholder.d.ts +7 -1
  93. package/drag-drop/directives/drag-preview.d.ts +7 -1
  94. package/drag-drop/directives/drag.d.ts +3 -7
  95. package/drag-drop/directives/drop-list-group.d.ts +7 -1
  96. package/drag-drop/directives/drop-list.d.ts +7 -1
  97. package/drag-drop/index.d.ts +2 -2
  98. package/drag-drop/index.metadata.json +1 -1
  99. package/drag-drop/parent-position-tracker.d.ts +1 -1
  100. package/esm2015/a11y/aria-describer/aria-describer.js +21 -7
  101. package/esm2015/a11y/focus-trap/configurable-focus-trap-factory.js +3 -3
  102. package/esm2015/a11y/focus-trap/focus-trap.js +1 -1
  103. package/esm2015/a11y/interactivity-checker/interactivity-checker.js +43 -30
  104. package/esm2015/a11y/key-manager/list-key-manager.js +27 -2
  105. package/esm2015/a11y/live-announcer/live-announcer.js +1 -1
  106. package/esm2015/accordion/accordion-item.js +7 -7
  107. package/esm2015/accordion/accordion.js +9 -2
  108. package/esm2015/accordion/index.js +2 -1
  109. package/esm2015/clipboard/pending-copy.js +7 -6
  110. package/esm2015/drag-drop/clone-node.js +54 -0
  111. package/esm2015/drag-drop/directives/drag-handle.js +12 -5
  112. package/esm2015/drag-drop/directives/drag-placeholder.js +10 -3
  113. package/esm2015/drag-drop/directives/drag-preview.js +10 -3
  114. package/esm2015/drag-drop/directives/drag.js +19 -15
  115. package/esm2015/drag-drop/directives/drop-list-group.js +9 -2
  116. package/esm2015/drag-drop/directives/drop-list.js +19 -8
  117. package/esm2015/drag-drop/drag-ref.js +2 -29
  118. package/esm2015/drag-drop/index.js +3 -2
  119. package/esm2015/layout/breakpoints-observer.js +1 -1
  120. package/esm2015/overlay/dispatchers/base-overlay-dispatcher.js +51 -0
  121. package/esm2015/overlay/dispatchers/index.js +10 -0
  122. package/esm2015/overlay/dispatchers/overlay-keyboard-dispatcher.js +79 -0
  123. package/esm2015/overlay/dispatchers/overlay-outside-click-dispatcher.js +94 -0
  124. package/esm2015/overlay/index.js +5 -4
  125. package/esm2015/overlay/overlay-config.js +5 -1
  126. package/esm2015/overlay/overlay-directives.js +34 -8
  127. package/esm2015/overlay/overlay-module.js +2 -2
  128. package/esm2015/overlay/overlay-ref.js +24 -2
  129. package/esm2015/overlay/overlay-reference.js +1 -1
  130. package/esm2015/overlay/overlay.js +10 -5
  131. package/esm2015/overlay/position/connected-position-strategy.js +1 -5
  132. package/esm2015/overlay/position/flexible-connected-position-strategy.js +3 -3
  133. package/esm2015/overlay/position/overlay-position-builder.js +1 -1
  134. package/esm2015/overlay/public-api.js +2 -2
  135. package/esm2015/portal/dom-portal-outlet.js +5 -2
  136. package/esm2015/scrolling/public-api.js +2 -1
  137. package/esm2015/scrolling/scrolling-module.js +4 -1
  138. package/esm2015/scrolling/viewport-ruler.js +24 -10
  139. package/esm2015/scrolling/virtual-for-of.js +26 -12
  140. package/esm2015/scrolling/virtual-scroll-repeater.js +8 -0
  141. package/esm2015/scrolling/virtual-scroll-viewport.js +2 -2
  142. package/esm2015/table/cell.js +18 -3
  143. package/esm2015/table/coalesced-style-scheduler.js +87 -0
  144. package/esm2015/table/public-api.js +2 -1
  145. package/esm2015/table/sticky-styler.js +79 -45
  146. package/esm2015/table/table.js +33 -12
  147. package/esm2015/testing/component-harness.js +19 -1
  148. package/esm2015/testing/harness-environment.js +7 -1
  149. package/esm2015/testing/testbed/fake-events/dispatch-events.js +5 -4
  150. package/esm2015/testing/testbed/fake-events/event-objects.js +10 -7
  151. package/esm2015/testing/testbed/fake-events/type-in-element.js +4 -4
  152. package/esm2015/testing/testbed/unit-test-element.js +20 -12
  153. package/esm2015/tree/control/nested-tree-control.js +7 -3
  154. package/esm2015/tree/tree.js +9 -23
  155. package/esm2015/version.js +1 -1
  156. package/fesm2015/a11y.js +88 -38
  157. package/fesm2015/a11y.js.map +1 -1
  158. package/fesm2015/accordion.js +13 -6
  159. package/fesm2015/accordion.js.map +1 -1
  160. package/fesm2015/cdk.js +1 -1
  161. package/fesm2015/cdk.js.map +1 -1
  162. package/fesm2015/clipboard.js +6 -5
  163. package/fesm2015/clipboard.js.map +1 -1
  164. package/fesm2015/drag-drop.js +669 -600
  165. package/fesm2015/drag-drop.js.map +1 -1
  166. package/fesm2015/overlay.js +215 -40
  167. package/fesm2015/overlay.js.map +1 -1
  168. package/fesm2015/portal.js +4 -1
  169. package/fesm2015/portal.js.map +1 -1
  170. package/fesm2015/scrolling.js +60 -21
  171. package/fesm2015/scrolling.js.map +1 -1
  172. package/fesm2015/table.js +214 -61
  173. package/fesm2015/table.js.map +1 -1
  174. package/fesm2015/testing/testbed.js +35 -23
  175. package/fesm2015/testing/testbed.js.map +1 -1
  176. package/fesm2015/testing.js +25 -1
  177. package/fesm2015/testing.js.map +1 -1
  178. package/fesm2015/tree.js +13 -23
  179. package/fesm2015/tree.js.map +1 -1
  180. package/overlay/dispatchers/base-overlay-dispatcher.d.ts +28 -0
  181. package/overlay/dispatchers/index.d.ts +9 -0
  182. package/overlay/{keyboard → dispatchers}/overlay-keyboard-dispatcher.d.ts +4 -10
  183. package/overlay/dispatchers/overlay-outside-click-dispatcher.d.ts +27 -0
  184. package/overlay/index.d.ts +4 -3
  185. package/overlay/index.metadata.json +1 -1
  186. package/overlay/overlay-config.d.ts +4 -0
  187. package/overlay/overlay-directives.d.ts +5 -0
  188. package/overlay/overlay-ref.d.ts +8 -2
  189. package/overlay/overlay-reference.d.ts +1 -0
  190. package/overlay/overlay.d.ts +4 -2
  191. package/overlay/position/connected-position-strategy.d.ts +0 -2
  192. package/overlay/public-api.d.ts +1 -1
  193. package/package.json +1 -1
  194. package/schematics/ng-add/index.js +1 -1
  195. package/scrolling/index.metadata.json +1 -1
  196. package/scrolling/public-api.d.ts +1 -0
  197. package/scrolling/scrolling-module.d.ts +3 -0
  198. package/scrolling/viewport-ruler.d.ts +2 -2
  199. package/scrolling/virtual-for-of.d.ts +2 -1
  200. package/scrolling/virtual-scroll-repeater.d.ts +16 -0
  201. package/scrolling/virtual-scroll-viewport.d.ts +4 -4
  202. package/table/cell.d.ts +13 -0
  203. package/table/coalesced-style-scheduler.d.ts +41 -0
  204. package/table/index.metadata.json +1 -1
  205. package/table/public-api.d.ts +1 -0
  206. package/table/sticky-styler.d.ts +7 -1
  207. package/table/table.d.ts +9 -1
  208. package/testing/component-harness.d.ts +12 -0
  209. package/testing/harness-environment.d.ts +1 -0
  210. package/testing/testbed/fake-events/dispatch-events.d.ts +3 -2
  211. package/testing/testbed/fake-events/event-objects.d.ts +2 -2
  212. package/testing/testbed/unit-test-element.d.ts +7 -0
  213. package/tree/control/nested-tree-control.d.ts +7 -2
  214. package/tree/index.metadata.json +1 -1
  215. package/tree/tree.d.ts +2 -4
  216. package/esm2015/overlay/keyboard/overlay-keyboard-dispatcher.js +0 -96
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('rxjs'), require('@angular/cdk/keycodes'), require('rxjs/operators'), require('@angular/cdk/coercion'), require('@angular/cdk/platform'), require('@angular/cdk/observers')) :
3
- typeof define === 'function' && define.amd ? define('@angular/cdk/a11y', ['exports', '@angular/common', '@angular/core', 'rxjs', '@angular/cdk/keycodes', 'rxjs/operators', '@angular/cdk/coercion', '@angular/cdk/platform', '@angular/cdk/observers'], factory) :
4
- (global = global || self, factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.a11y = {}), global.ng.common, global.ng.core, global.rxjs, global.ng.cdk.keycodes, global.rxjs.operators, global.ng.cdk.coercion, global.ng.cdk.platform, global.ng.cdk.observers));
5
- }(this, (function (exports, i2, i0, rxjs, keycodes, operators, coercion, i1, observers) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/cdk/platform'), require('rxjs'), require('@angular/cdk/keycodes'), require('rxjs/operators'), require('@angular/cdk/coercion'), require('@angular/cdk/observers')) :
3
+ typeof define === 'function' && define.amd ? define('@angular/cdk/a11y', ['exports', '@angular/common', '@angular/core', '@angular/cdk/platform', 'rxjs', '@angular/cdk/keycodes', 'rxjs/operators', '@angular/cdk/coercion', '@angular/cdk/observers'], factory) :
4
+ (global = global || self, factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.a11y = {}), global.ng.common, global.ng.core, global.ng.cdk.platform, global.rxjs, global.ng.cdk.keycodes, global.rxjs.operators, global.ng.cdk.coercion, global.ng.cdk.observers));
5
+ }(this, (function (exports, i2, i0, i1, rxjs, keycodes, operators, coercion, observers) { 'use strict';
6
6
 
7
7
  /**
8
8
  * @license
@@ -73,7 +73,12 @@
73
73
  * content.
74
74
  */
75
75
  var AriaDescriber = /** @class */ (function () {
76
- function AriaDescriber(_document) {
76
+ function AriaDescriber(_document,
77
+ /**
78
+ * @breaking-change 8.0.0 `_platform` parameter to be made required.
79
+ */
80
+ _platform) {
81
+ this._platform = _platform;
77
82
  this._document = _document;
78
83
  }
79
84
  /**
@@ -99,7 +104,7 @@
99
104
  };
100
105
  /** Removes the host element's aria-describedby reference to the message element. */
101
106
  AriaDescriber.prototype.removeDescription = function (hostElement, message) {
102
- if (!this._isElementNode(hostElement)) {
107
+ if (!message || !this._isElementNode(hostElement)) {
103
108
  return;
104
109
  }
105
110
  if (this._isElementDescribedByMessage(hostElement, message)) {
@@ -159,6 +164,8 @@
159
164
  /** Creates the global container for all aria-describedby messages. */
160
165
  AriaDescriber.prototype._createMessagesContainer = function () {
161
166
  if (!messagesContainer) {
167
+ // @breaking-change 8.0.0 `_platform` null check can be removed once the parameter is required
168
+ var canBeAriaHidden = !this._platform || (!this._platform.EDGE && !this._platform.TRIDENT);
162
169
  var preExistingContainer = this._document.getElementById(MESSAGES_CONTAINER_ID);
163
170
  // When going from the server to the client, we may end up in a situation where there's
164
171
  // already a container on the page, but we don't have a reference to it. Clear the
@@ -169,8 +176,12 @@
169
176
  }
170
177
  messagesContainer = this._document.createElement('div');
171
178
  messagesContainer.id = MESSAGES_CONTAINER_ID;
172
- messagesContainer.setAttribute('aria-hidden', 'true');
173
- messagesContainer.style.display = 'none';
179
+ messagesContainer.classList.add('cdk-visually-hidden');
180
+ // IE and Edge won't read out the messages if they're in an `aria-hidden` container.
181
+ // We only disable `aria-hidden` for these platforms, because it comes with the
182
+ // disadvantage that people might hit the messages when they've navigated past
183
+ // the end of the document using the arrow keys.
184
+ messagesContainer.setAttribute('aria-hidden', canBeAriaHidden + '');
174
185
  this._document.body.appendChild(messagesContainer);
175
186
  }
176
187
  };
@@ -238,242 +249,316 @@
238
249
  AriaDescriber.prototype._isElementNode = function (element) {
239
250
  return element.nodeType === this._document.ELEMENT_NODE;
240
251
  };
241
- AriaDescriber.ɵprov = i0.ɵɵdefineInjectable({ factory: function AriaDescriber_Factory() { return new AriaDescriber(i0.ɵɵinject(i2.DOCUMENT)); }, token: AriaDescriber, providedIn: "root" });
242
- AriaDescriber.decorators = [
243
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
244
- ];
245
- AriaDescriber.ctorParameters = function () { return [
246
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
247
- ]; };
248
252
  return AriaDescriber;
249
253
  }());
254
+ AriaDescriber.ɵprov = i0.ɵɵdefineInjectable({ factory: function AriaDescriber_Factory() { return new AriaDescriber(i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(i1.Platform)); }, token: AriaDescriber, providedIn: "root" });
255
+ AriaDescriber.decorators = [
256
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
257
+ ];
258
+ AriaDescriber.ctorParameters = function () { return [
259
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] },
260
+ { type: i1.Platform }
261
+ ]; };
262
+
263
+ /*! *****************************************************************************
264
+ Copyright (c) Microsoft Corporation.
250
265
 
251
- /*! *****************************************************************************
252
- Copyright (c) Microsoft Corporation.
253
-
254
- Permission to use, copy, modify, and/or distribute this software for any
255
- purpose with or without fee is hereby granted.
256
-
257
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
258
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
259
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
260
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
261
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
262
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
263
- PERFORMANCE OF THIS SOFTWARE.
264
- ***************************************************************************** */
265
- /* global Reflect, Promise */
266
-
267
- var extendStatics = function(d, b) {
268
- extendStatics = Object.setPrototypeOf ||
269
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
270
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
271
- return extendStatics(d, b);
272
- };
273
-
274
- function __extends(d, b) {
275
- extendStatics(d, b);
276
- function __() { this.constructor = d; }
277
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
278
- }
279
-
280
- var __assign = function() {
281
- __assign = Object.assign || function __assign(t) {
282
- for (var s, i = 1, n = arguments.length; i < n; i++) {
283
- s = arguments[i];
284
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
285
- }
286
- return t;
287
- };
288
- return __assign.apply(this, arguments);
289
- };
290
-
291
- function __rest(s, e) {
292
- var t = {};
293
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
294
- t[p] = s[p];
295
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
296
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
297
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
298
- t[p[i]] = s[p[i]];
299
- }
300
- return t;
301
- }
302
-
303
- function __decorate(decorators, target, key, desc) {
304
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
305
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
306
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
307
- return c > 3 && r && Object.defineProperty(target, key, r), r;
308
- }
309
-
310
- function __param(paramIndex, decorator) {
311
- return function (target, key) { decorator(target, key, paramIndex); }
312
- }
313
-
314
- function __metadata(metadataKey, metadataValue) {
315
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
316
- }
317
-
318
- function __awaiter(thisArg, _arguments, P, generator) {
319
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
320
- return new (P || (P = Promise))(function (resolve, reject) {
321
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
322
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
323
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
324
- step((generator = generator.apply(thisArg, _arguments || [])).next());
325
- });
326
- }
327
-
328
- function __generator(thisArg, body) {
329
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
330
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
331
- function verb(n) { return function (v) { return step([n, v]); }; }
332
- function step(op) {
333
- if (f) throw new TypeError("Generator is already executing.");
334
- while (_) try {
335
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
336
- if (y = 0, t) op = [op[0] & 2, t.value];
337
- switch (op[0]) {
338
- case 0: case 1: t = op; break;
339
- case 4: _.label++; return { value: op[1], done: false };
340
- case 5: _.label++; y = op[1]; op = [0]; continue;
341
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
342
- default:
343
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
344
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
345
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
346
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
347
- if (t[2]) _.ops.pop();
348
- _.trys.pop(); continue;
349
- }
350
- op = body.call(thisArg, _);
351
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
352
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
353
- }
354
- }
355
-
356
- var __createBinding = Object.create ? (function(o, m, k, k2) {
357
- if (k2 === undefined) k2 = k;
358
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
359
- }) : (function(o, m, k, k2) {
360
- if (k2 === undefined) k2 = k;
361
- o[k2] = m[k];
362
- });
363
-
364
- function __exportStar(m, exports) {
365
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
366
- }
367
-
368
- function __values(o) {
369
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
370
- if (m) return m.call(o);
371
- if (o && typeof o.length === "number") return {
372
- next: function () {
373
- if (o && i >= o.length) o = void 0;
374
- return { value: o && o[i++], done: !o };
375
- }
376
- };
377
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
378
- }
379
-
380
- function __read(o, n) {
381
- var m = typeof Symbol === "function" && o[Symbol.iterator];
382
- if (!m) return o;
383
- var i = m.call(o), r, ar = [], e;
384
- try {
385
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
386
- }
387
- catch (error) { e = { error: error }; }
388
- finally {
389
- try {
390
- if (r && !r.done && (m = i["return"])) m.call(i);
391
- }
392
- finally { if (e) throw e.error; }
393
- }
394
- return ar;
395
- }
396
-
397
- function __spread() {
398
- for (var ar = [], i = 0; i < arguments.length; i++)
399
- ar = ar.concat(__read(arguments[i]));
400
- return ar;
401
- }
402
-
403
- function __spreadArrays() {
404
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
405
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
406
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
407
- r[k] = a[j];
408
- return r;
409
- };
410
-
411
- function __await(v) {
412
- return this instanceof __await ? (this.v = v, this) : new __await(v);
413
- }
414
-
415
- function __asyncGenerator(thisArg, _arguments, generator) {
416
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
417
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
418
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
419
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
420
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
421
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
422
- function fulfill(value) { resume("next", value); }
423
- function reject(value) { resume("throw", value); }
424
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
425
- }
426
-
427
- function __asyncDelegator(o) {
428
- var i, p;
429
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
430
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
431
- }
432
-
433
- function __asyncValues(o) {
434
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
435
- var m = o[Symbol.asyncIterator], i;
436
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
437
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
438
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
439
- }
440
-
441
- function __makeTemplateObject(cooked, raw) {
442
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
443
- return cooked;
444
- };
445
-
446
- var __setModuleDefault = Object.create ? (function(o, v) {
447
- Object.defineProperty(o, "default", { enumerable: true, value: v });
448
- }) : function(o, v) {
449
- o["default"] = v;
450
- };
451
-
452
- function __importStar(mod) {
453
- if (mod && mod.__esModule) return mod;
454
- var result = {};
455
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
456
- __setModuleDefault(result, mod);
457
- return result;
458
- }
459
-
460
- function __importDefault(mod) {
461
- return (mod && mod.__esModule) ? mod : { default: mod };
462
- }
463
-
464
- function __classPrivateFieldGet(receiver, privateMap) {
465
- if (!privateMap.has(receiver)) {
466
- throw new TypeError("attempted to get private field on non-instance");
467
- }
468
- return privateMap.get(receiver);
469
- }
470
-
471
- function __classPrivateFieldSet(receiver, privateMap, value) {
472
- if (!privateMap.has(receiver)) {
473
- throw new TypeError("attempted to set private field on non-instance");
474
- }
475
- privateMap.set(receiver, value);
476
- return value;
266
+ Permission to use, copy, modify, and/or distribute this software for any
267
+ purpose with or without fee is hereby granted.
268
+
269
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
270
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
271
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
272
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
273
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
274
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
275
+ PERFORMANCE OF THIS SOFTWARE.
276
+ ***************************************************************************** */
277
+ /* global Reflect, Promise */
278
+ var extendStatics = function (d, b) {
279
+ extendStatics = Object.setPrototypeOf ||
280
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
281
+ function (d, b) { for (var p in b)
282
+ if (b.hasOwnProperty(p))
283
+ d[p] = b[p]; };
284
+ return extendStatics(d, b);
285
+ };
286
+ function __extends(d, b) {
287
+ extendStatics(d, b);
288
+ function __() { this.constructor = d; }
289
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
290
+ }
291
+ var __assign = function () {
292
+ __assign = Object.assign || function __assign(t) {
293
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
294
+ s = arguments[i];
295
+ for (var p in s)
296
+ if (Object.prototype.hasOwnProperty.call(s, p))
297
+ t[p] = s[p];
298
+ }
299
+ return t;
300
+ };
301
+ return __assign.apply(this, arguments);
302
+ };
303
+ function __rest(s, e) {
304
+ var t = {};
305
+ for (var p in s)
306
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
307
+ t[p] = s[p];
308
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
309
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
310
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
311
+ t[p[i]] = s[p[i]];
312
+ }
313
+ return t;
314
+ }
315
+ function __decorate(decorators, target, key, desc) {
316
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
317
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
318
+ r = Reflect.decorate(decorators, target, key, desc);
319
+ else
320
+ for (var i = decorators.length - 1; i >= 0; i--)
321
+ if (d = decorators[i])
322
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
323
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
324
+ }
325
+ function __param(paramIndex, decorator) {
326
+ return function (target, key) { decorator(target, key, paramIndex); };
327
+ }
328
+ function __metadata(metadataKey, metadataValue) {
329
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
330
+ return Reflect.metadata(metadataKey, metadataValue);
331
+ }
332
+ function __awaiter(thisArg, _arguments, P, generator) {
333
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
334
+ return new (P || (P = Promise))(function (resolve, reject) {
335
+ function fulfilled(value) { try {
336
+ step(generator.next(value));
337
+ }
338
+ catch (e) {
339
+ reject(e);
340
+ } }
341
+ function rejected(value) { try {
342
+ step(generator["throw"](value));
343
+ }
344
+ catch (e) {
345
+ reject(e);
346
+ } }
347
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
348
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
349
+ });
350
+ }
351
+ function __generator(thisArg, body) {
352
+ var _ = { label: 0, sent: function () { if (t[0] & 1)
353
+ throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
354
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
355
+ function verb(n) { return function (v) { return step([n, v]); }; }
356
+ function step(op) {
357
+ if (f)
358
+ throw new TypeError("Generator is already executing.");
359
+ while (_)
360
+ try {
361
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
362
+ return t;
363
+ if (y = 0, t)
364
+ op = [op[0] & 2, t.value];
365
+ switch (op[0]) {
366
+ case 0:
367
+ case 1:
368
+ t = op;
369
+ break;
370
+ case 4:
371
+ _.label++;
372
+ return { value: op[1], done: false };
373
+ case 5:
374
+ _.label++;
375
+ y = op[1];
376
+ op = [0];
377
+ continue;
378
+ case 7:
379
+ op = _.ops.pop();
380
+ _.trys.pop();
381
+ continue;
382
+ default:
383
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
384
+ _ = 0;
385
+ continue;
386
+ }
387
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
388
+ _.label = op[1];
389
+ break;
390
+ }
391
+ if (op[0] === 6 && _.label < t[1]) {
392
+ _.label = t[1];
393
+ t = op;
394
+ break;
395
+ }
396
+ if (t && _.label < t[2]) {
397
+ _.label = t[2];
398
+ _.ops.push(op);
399
+ break;
400
+ }
401
+ if (t[2])
402
+ _.ops.pop();
403
+ _.trys.pop();
404
+ continue;
405
+ }
406
+ op = body.call(thisArg, _);
407
+ }
408
+ catch (e) {
409
+ op = [6, e];
410
+ y = 0;
411
+ }
412
+ finally {
413
+ f = t = 0;
414
+ }
415
+ if (op[0] & 5)
416
+ throw op[1];
417
+ return { value: op[0] ? op[1] : void 0, done: true };
418
+ }
419
+ }
420
+ var __createBinding = Object.create ? (function (o, m, k, k2) {
421
+ if (k2 === undefined)
422
+ k2 = k;
423
+ Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
424
+ }) : (function (o, m, k, k2) {
425
+ if (k2 === undefined)
426
+ k2 = k;
427
+ o[k2] = m[k];
428
+ });
429
+ function __exportStar(m, exports) {
430
+ for (var p in m)
431
+ if (p !== "default" && !exports.hasOwnProperty(p))
432
+ __createBinding(exports, m, p);
433
+ }
434
+ function __values(o) {
435
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
436
+ if (m)
437
+ return m.call(o);
438
+ if (o && typeof o.length === "number")
439
+ return {
440
+ next: function () {
441
+ if (o && i >= o.length)
442
+ o = void 0;
443
+ return { value: o && o[i++], done: !o };
444
+ }
445
+ };
446
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
447
+ }
448
+ function __read(o, n) {
449
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
450
+ if (!m)
451
+ return o;
452
+ var i = m.call(o), r, ar = [], e;
453
+ try {
454
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
455
+ ar.push(r.value);
456
+ }
457
+ catch (error) {
458
+ e = { error: error };
459
+ }
460
+ finally {
461
+ try {
462
+ if (r && !r.done && (m = i["return"]))
463
+ m.call(i);
464
+ }
465
+ finally {
466
+ if (e)
467
+ throw e.error;
468
+ }
469
+ }
470
+ return ar;
471
+ }
472
+ function __spread() {
473
+ for (var ar = [], i = 0; i < arguments.length; i++)
474
+ ar = ar.concat(__read(arguments[i]));
475
+ return ar;
476
+ }
477
+ function __spreadArrays() {
478
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
479
+ s += arguments[i].length;
480
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
481
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
482
+ r[k] = a[j];
483
+ return r;
484
+ }
485
+ ;
486
+ function __await(v) {
487
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
488
+ }
489
+ function __asyncGenerator(thisArg, _arguments, generator) {
490
+ if (!Symbol.asyncIterator)
491
+ throw new TypeError("Symbol.asyncIterator is not defined.");
492
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
493
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
494
+ function verb(n) { if (g[n])
495
+ i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
496
+ function resume(n, v) { try {
497
+ step(g[n](v));
498
+ }
499
+ catch (e) {
500
+ settle(q[0][3], e);
501
+ } }
502
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
503
+ function fulfill(value) { resume("next", value); }
504
+ function reject(value) { resume("throw", value); }
505
+ function settle(f, v) { if (f(v), q.shift(), q.length)
506
+ resume(q[0][0], q[0][1]); }
507
+ }
508
+ function __asyncDelegator(o) {
509
+ var i, p;
510
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
511
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
512
+ }
513
+ function __asyncValues(o) {
514
+ if (!Symbol.asyncIterator)
515
+ throw new TypeError("Symbol.asyncIterator is not defined.");
516
+ var m = o[Symbol.asyncIterator], i;
517
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
518
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
519
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
520
+ }
521
+ function __makeTemplateObject(cooked, raw) {
522
+ if (Object.defineProperty) {
523
+ Object.defineProperty(cooked, "raw", { value: raw });
524
+ }
525
+ else {
526
+ cooked.raw = raw;
527
+ }
528
+ return cooked;
529
+ }
530
+ ;
531
+ var __setModuleDefault = Object.create ? (function (o, v) {
532
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
533
+ }) : function (o, v) {
534
+ o["default"] = v;
535
+ };
536
+ function __importStar(mod) {
537
+ if (mod && mod.__esModule)
538
+ return mod;
539
+ var result = {};
540
+ if (mod != null)
541
+ for (var k in mod)
542
+ if (Object.hasOwnProperty.call(mod, k))
543
+ __createBinding(result, mod, k);
544
+ __setModuleDefault(result, mod);
545
+ return result;
546
+ }
547
+ function __importDefault(mod) {
548
+ return (mod && mod.__esModule) ? mod : { default: mod };
549
+ }
550
+ function __classPrivateFieldGet(receiver, privateMap) {
551
+ if (!privateMap.has(receiver)) {
552
+ throw new TypeError("attempted to get private field on non-instance");
553
+ }
554
+ return privateMap.get(receiver);
555
+ }
556
+ function __classPrivateFieldSet(receiver, privateMap, value) {
557
+ if (!privateMap.has(receiver)) {
558
+ throw new TypeError("attempted to set private field on non-instance");
559
+ }
560
+ privateMap.set(receiver, value);
561
+ return value;
477
562
  }
478
563
 
479
564
  /**
@@ -498,6 +583,7 @@
498
583
  this._typeaheadSubscription = rxjs.Subscription.EMPTY;
499
584
  this._vertical = true;
500
585
  this._allowedModifierKeys = [];
586
+ this._homeAndEnd = false;
501
587
  /**
502
588
  * Predicate function that can be used to check whether an item should be skipped
503
589
  * by the key manager. By default, disabled items are skipped.
@@ -603,6 +689,14 @@
603
689
  });
604
690
  return this;
605
691
  };
692
+ /**
693
+ * Configures the key manager to focus the first and last items
694
+ * respectively when the Home key and End Key are pressed.
695
+ */
696
+ ListKeyManager.prototype.withHomeAndEnd = function () {
697
+ this._homeAndEnd = true;
698
+ return this;
699
+ };
606
700
  ListKeyManager.prototype.setActiveItem = function (item) {
607
701
  var previousActiveItem = this._activeItem;
608
702
  this.updateActiveItem(item);
@@ -657,6 +751,22 @@
657
751
  else {
658
752
  return;
659
753
  }
754
+ case keycodes.HOME:
755
+ if (this._homeAndEnd && isModifierAllowed) {
756
+ this.setFirstItemActive();
757
+ break;
758
+ }
759
+ else {
760
+ return;
761
+ }
762
+ case keycodes.END:
763
+ if (this._homeAndEnd && isModifierAllowed) {
764
+ this.setLastItemActive();
765
+ break;
766
+ }
767
+ else {
768
+ return;
769
+ }
660
770
  default:
661
771
  if (isModifierAllowed || keycodes.hasModifierKey(event, 'shiftKey')) {
662
772
  // Attempt to use the `event.key` which also maps it to the user's keyboard language,
@@ -777,13 +887,6 @@
777
887
  return ListKeyManager;
778
888
  }());
779
889
 
780
- /**
781
- * @license
782
- * Copyright Google LLC All Rights Reserved.
783
- *
784
- * Use of this source code is governed by an MIT-style license that can be
785
- * found in the LICENSE file at https://angular.io/license
786
- */
787
890
  var ActiveDescendantKeyManager = /** @class */ (function (_super) {
788
891
  __extends(ActiveDescendantKeyManager, _super);
789
892
  function ActiveDescendantKeyManager() {
@@ -801,17 +904,10 @@
801
904
  return ActiveDescendantKeyManager;
802
905
  }(ListKeyManager));
803
906
 
804
- /**
805
- * @license
806
- * Copyright Google LLC All Rights Reserved.
807
- *
808
- * Use of this source code is governed by an MIT-style license that can be
809
- * found in the LICENSE file at https://angular.io/license
810
- */
811
907
  var FocusKeyManager = /** @class */ (function (_super) {
812
908
  __extends(FocusKeyManager, _super);
813
909
  function FocusKeyManager() {
814
- var _this = _super !== null && _super.apply(this, arguments) || this;
910
+ var _this = _super.apply(this, __spread(arguments)) || this;
815
911
  _this._origin = 'program';
816
912
  return _this;
817
913
  }
@@ -839,6 +935,18 @@
839
935
  * Use of this source code is governed by an MIT-style license that can be
840
936
  * found in the LICENSE file at https://angular.io/license
841
937
  */
938
+ /**
939
+ * Configuration for the isFocusable method.
940
+ */
941
+ var IsFocusableConfig = /** @class */ (function () {
942
+ function IsFocusableConfig() {
943
+ /**
944
+ * Whether to count an element as focusable even if it is not currently visible.
945
+ */
946
+ this.ignoreVisibility = false;
947
+ }
948
+ return IsFocusableConfig;
949
+ }());
842
950
  // The InteractivityChecker leans heavily on the ally.js accessibility utilities.
843
951
  // Methods like `isTabbable` are only covering specific edge-cases for the browsers which are
844
952
  // supported.
@@ -886,17 +994,12 @@
886
994
  }
887
995
  var frameElement = getFrameElement(getWindow(element));
888
996
  if (frameElement) {
889
- var frameType = frameElement && frameElement.nodeName.toLowerCase();
890
997
  // Frame elements inherit their tabindex onto all child elements.
891
998
  if (getTabIndexValue(frameElement) === -1) {
892
999
  return false;
893
1000
  }
894
- // Webkit and Blink consider anything inside of an <object> element as non-tabbable.
895
- if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {
896
- return false;
897
- }
898
- // Webkit and Blink disable tabbing to an element inside of an invisible frame.
899
- if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) {
1001
+ // Browsers disable tabbing to an element inside of an invisible frame.
1002
+ if (!this.isVisible(frameElement)) {
900
1003
  return false;
901
1004
  }
902
1005
  }
@@ -905,38 +1008,43 @@
905
1008
  if (element.hasAttribute('contenteditable')) {
906
1009
  return tabIndexValue !== -1;
907
1010
  }
908
- if (nodeName === 'iframe') {
909
- // The frames may be tabbable depending on content, but it's not possibly to reliably
910
- // investigate the content of the frames.
1011
+ if (nodeName === 'iframe' || nodeName === 'object') {
1012
+ // The frame or object's content may be tabbable depending on the content, but it's
1013
+ // not possibly to reliably detect the content of the frames. We always consider such
1014
+ // elements as non-tabbable.
1015
+ return false;
1016
+ }
1017
+ // In iOS, the browser only considers some specific elements as tabbable.
1018
+ if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
911
1019
  return false;
912
1020
  }
913
1021
  if (nodeName === 'audio') {
1022
+ // Audio elements without controls enabled are never tabbable, regardless
1023
+ // of the tabindex attribute explicitly being set.
914
1024
  if (!element.hasAttribute('controls')) {
915
- // By default an <audio> element without the controls enabled is not tabbable.
916
1025
  return false;
917
1026
  }
918
- else if (this._platform.BLINK) {
919
- // In Blink <audio controls> elements are always tabbable.
920
- return true;
921
- }
1027
+ // Audio elements with controls are by default tabbable unless the
1028
+ // tabindex attribute is set to `-1` explicitly.
1029
+ return tabIndexValue !== -1;
922
1030
  }
923
1031
  if (nodeName === 'video') {
924
- if (!element.hasAttribute('controls') && this._platform.TRIDENT) {
925
- // In Trident a <video> element without the controls enabled is not tabbable.
1032
+ // For all video elements, if the tabindex attribute is set to `-1`, the video
1033
+ // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`
1034
+ // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The
1035
+ // tabindex attribute is the source of truth here.
1036
+ if (tabIndexValue === -1) {
926
1037
  return false;
927
1038
  }
928
- else if (this._platform.BLINK || this._platform.FIREFOX) {
929
- // In Chrome and Firefox <video controls> elements are always tabbable.
1039
+ // If the tabindex is explicitly set, and not `-1` (as per check before), the
1040
+ // video element is always tabbable (regardless of whether it has controls or not).
1041
+ if (tabIndexValue !== null) {
930
1042
  return true;
931
1043
  }
932
- }
933
- if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {
934
- // In all Blink and WebKit based browsers <object> elements are never tabbable.
935
- return false;
936
- }
937
- // In iOS the browser only considers some specific elements as tabbable.
938
- if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
939
- return false;
1044
+ // Otherwise (when no explicit tabindex is set), a video is only tabbable if it
1045
+ // has controls enabled. Firefox is special as videos are always tabbable regardless
1046
+ // of whether there are controls or not.
1047
+ return this._platform.FIREFOX || element.hasAttribute('controls');
940
1048
  }
941
1049
  return element.tabIndex >= 0;
942
1050
  };
@@ -944,22 +1052,24 @@
944
1052
  * Gets whether an element can be focused by the user.
945
1053
  *
946
1054
  * @param element Element to be checked.
1055
+ * @param config The config object with options to customize this method's behavior
947
1056
  * @returns Whether the element is focusable.
948
1057
  */
949
- InteractivityChecker.prototype.isFocusable = function (element) {
1058
+ InteractivityChecker.prototype.isFocusable = function (element, config) {
950
1059
  // Perform checks in order of left to most expensive.
951
1060
  // Again, naive approach that does not capture many edge cases and browser quirks.
952
- return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);
953
- };
954
- InteractivityChecker.ɵprov = i0.ɵɵdefineInjectable({ factory: function InteractivityChecker_Factory() { return new InteractivityChecker(i0.ɵɵinject(i1.Platform)); }, token: InteractivityChecker, providedIn: "root" });
955
- InteractivityChecker.decorators = [
956
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
957
- ];
958
- InteractivityChecker.ctorParameters = function () { return [
959
- { type: i1.Platform }
960
- ]; };
1061
+ return isPotentiallyFocusable(element) && !this.isDisabled(element) &&
1062
+ ((config === null || config === void 0 ? void 0 : config.ignoreVisibility) || this.isVisible(element));
1063
+ };
961
1064
  return InteractivityChecker;
962
1065
  }());
1066
+ InteractivityChecker.ɵprov = i0.ɵɵdefineInjectable({ factory: function InteractivityChecker_Factory() { return new InteractivityChecker(i0.ɵɵinject(i1.Platform)); }, token: InteractivityChecker, providedIn: "root" });
1067
+ InteractivityChecker.decorators = [
1068
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1069
+ ];
1070
+ InteractivityChecker.ctorParameters = function () { return [
1071
+ { type: i1.Platform }
1072
+ ]; };
963
1073
  /**
964
1074
  * Returns the frame element from a window object. Since browsers like MS Edge throw errors if
965
1075
  * the frameElement property is being accessed from a different host address, this property
@@ -1367,17 +1477,17 @@
1367
1477
  if (deferCaptureElements === void 0) { deferCaptureElements = false; }
1368
1478
  return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);
1369
1479
  };
1370
- FocusTrapFactory.ɵprov = i0.ɵɵdefineInjectable({ factory: function FocusTrapFactory_Factory() { return new FocusTrapFactory(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.DOCUMENT)); }, token: FocusTrapFactory, providedIn: "root" });
1371
- FocusTrapFactory.decorators = [
1372
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1373
- ];
1374
- FocusTrapFactory.ctorParameters = function () { return [
1375
- { type: InteractivityChecker },
1376
- { type: i0.NgZone },
1377
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
1378
- ]; };
1379
1480
  return FocusTrapFactory;
1380
1481
  }());
1482
+ FocusTrapFactory.ɵprov = i0.ɵɵdefineInjectable({ factory: function FocusTrapFactory_Factory() { return new FocusTrapFactory(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.DOCUMENT)); }, token: FocusTrapFactory, providedIn: "root" });
1483
+ FocusTrapFactory.decorators = [
1484
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1485
+ ];
1486
+ FocusTrapFactory.ctorParameters = function () { return [
1487
+ { type: InteractivityChecker },
1488
+ { type: i0.NgZone },
1489
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
1490
+ ]; };
1381
1491
  /** Directive for trapping focus within a region. */
1382
1492
  var CdkTrapFocus = /** @class */ (function () {
1383
1493
  function CdkTrapFocus(_elementRef, _focusTrapFactory, _document) {
@@ -1436,31 +1546,24 @@
1436
1546
  this._previouslyFocusedElement = this._document.activeElement;
1437
1547
  this.focusTrap.focusInitialElementWhenReady();
1438
1548
  };
1439
- CdkTrapFocus.decorators = [
1440
- { type: i0.Directive, args: [{
1441
- selector: '[cdkTrapFocus]',
1442
- exportAs: 'cdkTrapFocus',
1443
- },] }
1444
- ];
1445
- CdkTrapFocus.ctorParameters = function () { return [
1446
- { type: i0.ElementRef },
1447
- { type: FocusTrapFactory },
1448
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
1449
- ]; };
1450
- CdkTrapFocus.propDecorators = {
1451
- enabled: [{ type: i0.Input, args: ['cdkTrapFocus',] }],
1452
- autoCapture: [{ type: i0.Input, args: ['cdkTrapFocusAutoCapture',] }]
1453
- };
1454
1549
  return CdkTrapFocus;
1455
1550
  }());
1551
+ CdkTrapFocus.decorators = [
1552
+ { type: i0.Directive, args: [{
1553
+ selector: '[cdkTrapFocus]',
1554
+ exportAs: 'cdkTrapFocus',
1555
+ },] }
1556
+ ];
1557
+ CdkTrapFocus.ctorParameters = function () { return [
1558
+ { type: i0.ElementRef },
1559
+ { type: FocusTrapFactory },
1560
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
1561
+ ]; };
1562
+ CdkTrapFocus.propDecorators = {
1563
+ enabled: [{ type: i0.Input, args: ['cdkTrapFocus',] }],
1564
+ autoCapture: [{ type: i0.Input, args: ['cdkTrapFocusAutoCapture',] }]
1565
+ };
1456
1566
 
1457
- /**
1458
- * @license
1459
- * Copyright Google LLC All Rights Reserved.
1460
- *
1461
- * Use of this source code is governed by an MIT-style license that can be
1462
- * found in the LICENSE file at https://angular.io/license
1463
- */
1464
1567
  /**
1465
1568
  * Class that allows for trapping focus within a DOM element.
1466
1569
  *
@@ -1682,12 +1785,12 @@
1682
1785
  }
1683
1786
  }
1684
1787
  };
1685
- FocusTrapManager.ɵprov = i0.ɵɵdefineInjectable({ factory: function FocusTrapManager_Factory() { return new FocusTrapManager(); }, token: FocusTrapManager, providedIn: "root" });
1686
- FocusTrapManager.decorators = [
1687
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1688
- ];
1689
1788
  return FocusTrapManager;
1690
1789
  }());
1790
+ FocusTrapManager.ɵprov = i0.ɵɵdefineInjectable({ factory: function FocusTrapManager_Factory() { return new FocusTrapManager(); }, token: FocusTrapManager, providedIn: "root" });
1791
+ FocusTrapManager.decorators = [
1792
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1793
+ ];
1691
1794
 
1692
1795
  /**
1693
1796
  * @license
@@ -1718,19 +1821,19 @@
1718
1821
  }
1719
1822
  return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);
1720
1823
  };
1721
- ConfigurableFocusTrapFactory.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigurableFocusTrapFactory_Factory() { return new ConfigurableFocusTrapFactory(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(FocusTrapManager), i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(FOCUS_TRAP_INERT_STRATEGY, 8)); }, token: ConfigurableFocusTrapFactory, providedIn: "root" });
1722
- ConfigurableFocusTrapFactory.decorators = [
1723
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1724
- ];
1725
- ConfigurableFocusTrapFactory.ctorParameters = function () { return [
1726
- { type: InteractivityChecker },
1727
- { type: i0.NgZone },
1728
- { type: FocusTrapManager },
1729
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] },
1730
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [FOCUS_TRAP_INERT_STRATEGY,] }] }
1731
- ]; };
1732
1824
  return ConfigurableFocusTrapFactory;
1733
1825
  }());
1826
+ ConfigurableFocusTrapFactory.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigurableFocusTrapFactory_Factory() { return new ConfigurableFocusTrapFactory(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(FocusTrapManager), i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(FOCUS_TRAP_INERT_STRATEGY, 8)); }, token: ConfigurableFocusTrapFactory, providedIn: "root" });
1827
+ ConfigurableFocusTrapFactory.decorators = [
1828
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1829
+ ];
1830
+ ConfigurableFocusTrapFactory.ctorParameters = function () { return [
1831
+ { type: InteractivityChecker },
1832
+ { type: i0.NgZone },
1833
+ { type: FocusTrapManager },
1834
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] },
1835
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [FOCUS_TRAP_INERT_STRATEGY,] }] }
1836
+ ]; };
1734
1837
 
1735
1838
  /**
1736
1839
  * @license
@@ -1837,18 +1940,18 @@
1837
1940
  this._document.body.appendChild(liveEl);
1838
1941
  return liveEl;
1839
1942
  };
1840
- LiveAnnouncer.ɵprov = i0.ɵɵdefineInjectable({ factory: function LiveAnnouncer_Factory() { return new LiveAnnouncer(i0.ɵɵinject(LIVE_ANNOUNCER_ELEMENT_TOKEN, 8), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(LIVE_ANNOUNCER_DEFAULT_OPTIONS, 8)); }, token: LiveAnnouncer, providedIn: "root" });
1841
- LiveAnnouncer.decorators = [
1842
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1843
- ];
1844
- LiveAnnouncer.ctorParameters = function () { return [
1845
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] }] },
1846
- { type: i0.NgZone },
1847
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] },
1848
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS,] }] }
1849
- ]; };
1850
1943
  return LiveAnnouncer;
1851
1944
  }());
1945
+ LiveAnnouncer.ɵprov = i0.ɵɵdefineInjectable({ factory: function LiveAnnouncer_Factory() { return new LiveAnnouncer(i0.ɵɵinject(LIVE_ANNOUNCER_ELEMENT_TOKEN, 8), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(LIVE_ANNOUNCER_DEFAULT_OPTIONS, 8)); }, token: LiveAnnouncer, providedIn: "root" });
1946
+ LiveAnnouncer.decorators = [
1947
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
1948
+ ];
1949
+ LiveAnnouncer.ctorParameters = function () { return [
1950
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] }] },
1951
+ { type: i0.NgZone },
1952
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] },
1953
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS,] }] }
1954
+ ]; };
1852
1955
  /**
1853
1956
  * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility
1854
1957
  * with a wider range of browsers and screen readers.
@@ -1898,23 +2001,23 @@
1898
2001
  this._subscription.unsubscribe();
1899
2002
  }
1900
2003
  };
1901
- CdkAriaLive.decorators = [
1902
- { type: i0.Directive, args: [{
1903
- selector: '[cdkAriaLive]',
1904
- exportAs: 'cdkAriaLive',
1905
- },] }
1906
- ];
1907
- CdkAriaLive.ctorParameters = function () { return [
1908
- { type: i0.ElementRef },
1909
- { type: LiveAnnouncer },
1910
- { type: observers.ContentObserver },
1911
- { type: i0.NgZone }
1912
- ]; };
1913
- CdkAriaLive.propDecorators = {
1914
- politeness: [{ type: i0.Input, args: ['cdkAriaLive',] }]
1915
- };
1916
2004
  return CdkAriaLive;
1917
2005
  }());
2006
+ CdkAriaLive.decorators = [
2007
+ { type: i0.Directive, args: [{
2008
+ selector: '[cdkAriaLive]',
2009
+ exportAs: 'cdkAriaLive',
2010
+ },] }
2011
+ ];
2012
+ CdkAriaLive.ctorParameters = function () { return [
2013
+ { type: i0.ElementRef },
2014
+ { type: LiveAnnouncer },
2015
+ { type: observers.ContentObserver },
2016
+ { type: i0.NgZone }
2017
+ ]; };
2018
+ CdkAriaLive.propDecorators = {
2019
+ politeness: [{ type: i0.Input, args: ['cdkAriaLive',] }]
2020
+ };
1918
2021
 
1919
2022
  /**
1920
2023
  * @license
@@ -2270,30 +2373,30 @@
2270
2373
  }
2271
2374
  // Unregister global listeners when last element is unmonitored.
2272
2375
  if (!--this._monitoredElementCount) {
2273
- var document_1 = this._getDocument();
2274
- var window_1 = this._getWindow();
2275
- document_1.removeEventListener('keydown', this._documentKeydownListener, captureEventListenerOptions);
2276
- document_1.removeEventListener('mousedown', this._documentMousedownListener, captureEventListenerOptions);
2277
- document_1.removeEventListener('touchstart', this._documentTouchstartListener, captureEventListenerOptions);
2278
- window_1.removeEventListener('focus', this._windowFocusListener);
2376
+ var document = this._getDocument();
2377
+ var window = this._getWindow();
2378
+ document.removeEventListener('keydown', this._documentKeydownListener, captureEventListenerOptions);
2379
+ document.removeEventListener('mousedown', this._documentMousedownListener, captureEventListenerOptions);
2380
+ document.removeEventListener('touchstart', this._documentTouchstartListener, captureEventListenerOptions);
2381
+ window.removeEventListener('focus', this._windowFocusListener);
2279
2382
  // Clear timeouts for all potentially pending timeouts to prevent the leaks.
2280
2383
  clearTimeout(this._windowFocusTimeoutId);
2281
2384
  clearTimeout(this._touchTimeoutId);
2282
2385
  clearTimeout(this._originTimeoutId);
2283
2386
  }
2284
2387
  };
2285
- FocusMonitor.ɵprov = i0.ɵɵdefineInjectable({ factory: function FocusMonitor_Factory() { return new FocusMonitor(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.DOCUMENT, 8), i0.ɵɵinject(FOCUS_MONITOR_DEFAULT_OPTIONS, 8)); }, token: FocusMonitor, providedIn: "root" });
2286
- FocusMonitor.decorators = [
2287
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
2288
- ];
2289
- FocusMonitor.ctorParameters = function () { return [
2290
- { type: i0.NgZone },
2291
- { type: i1.Platform },
2292
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i2.DOCUMENT,] }] },
2293
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [FOCUS_MONITOR_DEFAULT_OPTIONS,] }] }
2294
- ]; };
2295
2388
  return FocusMonitor;
2296
2389
  }());
2390
+ FocusMonitor.ɵprov = i0.ɵɵdefineInjectable({ factory: function FocusMonitor_Factory() { return new FocusMonitor(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.DOCUMENT, 8), i0.ɵɵinject(FOCUS_MONITOR_DEFAULT_OPTIONS, 8)); }, token: FocusMonitor, providedIn: "root" });
2391
+ FocusMonitor.decorators = [
2392
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
2393
+ ];
2394
+ FocusMonitor.ctorParameters = function () { return [
2395
+ { type: i0.NgZone },
2396
+ { type: i1.Platform },
2397
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i2.DOCUMENT,] }] },
2398
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [FOCUS_MONITOR_DEFAULT_OPTIONS,] }] }
2399
+ ]; };
2297
2400
  /** Gets the target of an event, accounting for Shadow DOM. */
2298
2401
  function getTarget(event) {
2299
2402
  // If an event is bound outside the Shadow DOM, the `event.target` will
@@ -2326,20 +2429,20 @@
2326
2429
  this._monitorSubscription.unsubscribe();
2327
2430
  }
2328
2431
  };
2329
- CdkMonitorFocus.decorators = [
2330
- { type: i0.Directive, args: [{
2331
- selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',
2332
- },] }
2333
- ];
2334
- CdkMonitorFocus.ctorParameters = function () { return [
2335
- { type: i0.ElementRef },
2336
- { type: FocusMonitor }
2337
- ]; };
2338
- CdkMonitorFocus.propDecorators = {
2339
- cdkFocusChange: [{ type: i0.Output }]
2340
- };
2341
2432
  return CdkMonitorFocus;
2342
2433
  }());
2434
+ CdkMonitorFocus.decorators = [
2435
+ { type: i0.Directive, args: [{
2436
+ selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',
2437
+ },] }
2438
+ ];
2439
+ CdkMonitorFocus.ctorParameters = function () { return [
2440
+ { type: i0.ElementRef },
2441
+ { type: FocusMonitor }
2442
+ ]; };
2443
+ CdkMonitorFocus.propDecorators = {
2444
+ cdkFocusChange: [{ type: i0.Output }]
2445
+ };
2343
2446
 
2344
2447
  /**
2345
2448
  * @license
@@ -2416,16 +2519,16 @@
2416
2519
  }
2417
2520
  }
2418
2521
  };
2419
- HighContrastModeDetector.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighContrastModeDetector_Factory() { return new HighContrastModeDetector(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.DOCUMENT)); }, token: HighContrastModeDetector, providedIn: "root" });
2420
- HighContrastModeDetector.decorators = [
2421
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
2422
- ];
2423
- HighContrastModeDetector.ctorParameters = function () { return [
2424
- { type: i1.Platform },
2425
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
2426
- ]; };
2427
2522
  return HighContrastModeDetector;
2428
2523
  }());
2524
+ HighContrastModeDetector.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighContrastModeDetector_Factory() { return new HighContrastModeDetector(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.DOCUMENT)); }, token: HighContrastModeDetector, providedIn: "root" });
2525
+ HighContrastModeDetector.decorators = [
2526
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
2527
+ ];
2528
+ HighContrastModeDetector.ctorParameters = function () { return [
2529
+ { type: i1.Platform },
2530
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
2531
+ ]; };
2429
2532
 
2430
2533
  /**
2431
2534
  * @license
@@ -2438,18 +2541,18 @@
2438
2541
  function A11yModule(highContrastModeDetector) {
2439
2542
  highContrastModeDetector._applyBodyHighContrastModeCssClasses();
2440
2543
  }
2441
- A11yModule.decorators = [
2442
- { type: i0.NgModule, args: [{
2443
- imports: [i1.PlatformModule, observers.ObserversModule],
2444
- declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
2445
- exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
2446
- },] }
2447
- ];
2448
- A11yModule.ctorParameters = function () { return [
2449
- { type: HighContrastModeDetector }
2450
- ]; };
2451
2544
  return A11yModule;
2452
2545
  }());
2546
+ A11yModule.decorators = [
2547
+ { type: i0.NgModule, args: [{
2548
+ imports: [i1.PlatformModule, observers.ObserversModule],
2549
+ declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
2550
+ exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
2551
+ },] }
2552
+ ];
2553
+ A11yModule.ctorParameters = function () { return [
2554
+ { type: HighContrastModeDetector }
2555
+ ]; };
2453
2556
 
2454
2557
  /**
2455
2558
  * @license
@@ -2482,6 +2585,7 @@
2482
2585
  exports.FocusTrapFactory = FocusTrapFactory;
2483
2586
  exports.HighContrastModeDetector = HighContrastModeDetector;
2484
2587
  exports.InteractivityChecker = InteractivityChecker;
2588
+ exports.IsFocusableConfig = IsFocusableConfig;
2485
2589
  exports.LIVE_ANNOUNCER_DEFAULT_OPTIONS = LIVE_ANNOUNCER_DEFAULT_OPTIONS;
2486
2590
  exports.LIVE_ANNOUNCER_ELEMENT_TOKEN = LIVE_ANNOUNCER_ELEMENT_TOKEN;
2487
2591
  exports.LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY = LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY;