@angular/cdk 11.0.3 → 11.1.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 (142) hide show
  1. package/LICENSE +1 -1
  2. package/a11y/aria-describer/aria-describer.d.ts +9 -14
  3. package/a11y/focus-monitor/focus-monitor.d.ts +6 -0
  4. package/a11y/index.metadata.json +1 -1
  5. package/bundles/cdk-a11y.umd.js +83 -66
  6. package/bundles/cdk-a11y.umd.js.map +1 -1
  7. package/bundles/cdk-a11y.umd.min.js +13 -21
  8. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  9. package/bundles/cdk-accordion.umd.js.map +1 -1
  10. package/bundles/cdk-bidi.umd.js.map +1 -1
  11. package/bundles/cdk-coercion.umd.js +9 -1
  12. package/bundles/cdk-coercion.umd.js.map +1 -1
  13. package/bundles/cdk-coercion.umd.min.js.map +1 -1
  14. package/bundles/cdk-collections.umd.js +9 -1
  15. package/bundles/cdk-collections.umd.js.map +1 -1
  16. package/bundles/cdk-collections.umd.min.js +1 -1
  17. package/bundles/cdk-collections.umd.min.js.map +1 -1
  18. package/bundles/cdk-drag-drop.umd.js +136 -53
  19. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  20. package/bundles/cdk-drag-drop.umd.min.js +8 -8
  21. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  22. package/bundles/cdk-overlay.umd.js +49 -11
  23. package/bundles/cdk-overlay.umd.js.map +1 -1
  24. package/bundles/cdk-overlay.umd.min.js +18 -25
  25. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  26. package/bundles/cdk-platform.umd.js +1 -0
  27. package/bundles/cdk-platform.umd.js.map +1 -1
  28. package/bundles/cdk-platform.umd.min.js +1 -1
  29. package/bundles/cdk-platform.umd.min.js.map +1 -1
  30. package/bundles/cdk-portal.umd.js +9 -1
  31. package/bundles/cdk-portal.umd.js.map +1 -1
  32. package/bundles/cdk-portal.umd.min.js +2 -2
  33. package/bundles/cdk-portal.umd.min.js.map +1 -1
  34. package/bundles/cdk-scrolling.umd.js +25 -11
  35. package/bundles/cdk-scrolling.umd.js.map +1 -1
  36. package/bundles/cdk-scrolling.umd.min.js +4 -4
  37. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  38. package/bundles/cdk-table.umd.js +99 -30
  39. package/bundles/cdk-table.umd.js.map +1 -1
  40. package/bundles/cdk-table.umd.min.js +7 -7
  41. package/bundles/cdk-table.umd.min.js.map +1 -1
  42. package/bundles/cdk-testing-protractor.umd.js +59 -13
  43. package/bundles/cdk-testing-protractor.umd.js.map +1 -1
  44. package/bundles/cdk-testing-protractor.umd.min.js +2 -2
  45. package/bundles/cdk-testing-protractor.umd.min.js.map +1 -1
  46. package/bundles/cdk-testing-testbed.umd.js +40 -15
  47. package/bundles/cdk-testing-testbed.umd.js.map +1 -1
  48. package/bundles/cdk-testing-testbed.umd.min.js +7 -7
  49. package/bundles/cdk-testing-testbed.umd.min.js.map +1 -1
  50. package/bundles/cdk-testing.umd.js +11 -10
  51. package/bundles/cdk-testing.umd.js.map +1 -1
  52. package/bundles/cdk-testing.umd.min.js +2 -2
  53. package/bundles/cdk-testing.umd.min.js.map +1 -1
  54. package/bundles/cdk-tree.umd.js +9 -1
  55. package/bundles/cdk-tree.umd.js.map +1 -1
  56. package/bundles/cdk-tree.umd.min.js +5 -5
  57. package/bundles/cdk-tree.umd.min.js.map +1 -1
  58. package/bundles/cdk.umd.js +1 -1
  59. package/bundles/cdk.umd.js.map +1 -1
  60. package/bundles/cdk.umd.min.js +1 -1
  61. package/bundles/cdk.umd.min.js.map +1 -1
  62. package/drag-drop/directives/drag.d.ts +3 -1
  63. package/drag-drop/directives/drop-list.d.ts +4 -1
  64. package/drag-drop/drag-drop-registry.d.ts +8 -1
  65. package/drag-drop/drag-ref.d.ts +6 -0
  66. package/drag-drop/drop-list-ref.d.ts +7 -1
  67. package/drag-drop/index.metadata.json +1 -1
  68. package/esm2015/a11y/aria-describer/aria-describer.js +50 -55
  69. package/esm2015/a11y/focus-monitor/focus-monitor.js +18 -3
  70. package/esm2015/drag-drop/directives/drag.js +39 -5
  71. package/esm2015/drag-drop/directives/drop-list.js +4 -2
  72. package/esm2015/drag-drop/drag-drop-registry.js +25 -12
  73. package/esm2015/drag-drop/drag-ref.js +17 -10
  74. package/esm2015/drag-drop/drop-list-ref.js +46 -28
  75. package/esm2015/overlay/overlay-ref.js +2 -2
  76. package/esm2015/overlay/position/flexible-connected-position-strategy.js +25 -3
  77. package/esm2015/overlay/scroll/block-scroll-strategy.js +13 -4
  78. package/esm2015/platform/features/scrolling.js +2 -1
  79. package/esm2015/scrolling/fixed-size-virtual-scroll.js +3 -2
  80. package/esm2015/scrolling/scroll-dispatcher.js +9 -8
  81. package/esm2015/scrolling/virtual-for-of.js +8 -4
  82. package/esm2015/scrolling/virtual-scroll-viewport.js +1 -1
  83. package/esm2015/table/public-api.js +2 -1
  84. package/esm2015/table/sticky-position-listener.js +11 -0
  85. package/esm2015/table/sticky-styler.js +60 -14
  86. package/esm2015/table/table.js +9 -4
  87. package/esm2015/testing/change-detection.js +1 -8
  88. package/esm2015/testing/harness-environment.js +3 -3
  89. package/esm2015/testing/protractor/protractor-element.js +29 -13
  90. package/esm2015/testing/test-element.js +1 -1
  91. package/esm2015/testing/testbed/fake-events/dispatch-events.js +3 -3
  92. package/esm2015/testing/testbed/fake-events/event-objects.js +6 -6
  93. package/esm2015/testing/testbed/unit-test-element.js +21 -9
  94. package/esm2015/tree/nested-node.js +1 -1
  95. package/esm2015/tree/padding.js +1 -1
  96. package/esm2015/tree/toggle.js +1 -1
  97. package/esm2015/tree/tree.js +1 -1
  98. package/esm2015/version.js +1 -1
  99. package/fesm2015/a11y.js +67 -55
  100. package/fesm2015/a11y.js.map +1 -1
  101. package/fesm2015/accordion.js.map +1 -1
  102. package/fesm2015/bidi.js.map +1 -1
  103. package/fesm2015/cdk.js +1 -1
  104. package/fesm2015/cdk.js.map +1 -1
  105. package/fesm2015/drag-drop.js +125 -51
  106. package/fesm2015/drag-drop.js.map +1 -1
  107. package/fesm2015/overlay.js +37 -7
  108. package/fesm2015/overlay.js.map +1 -1
  109. package/fesm2015/platform.js +1 -0
  110. package/fesm2015/platform.js.map +1 -1
  111. package/fesm2015/scrolling.js +17 -12
  112. package/fesm2015/scrolling.js.map +1 -1
  113. package/fesm2015/table.js +77 -17
  114. package/fesm2015/table.js.map +1 -1
  115. package/fesm2015/testing/protractor.js +27 -11
  116. package/fesm2015/testing/protractor.js.map +1 -1
  117. package/fesm2015/testing/testbed.js +25 -13
  118. package/fesm2015/testing/testbed.js.map +1 -1
  119. package/fesm2015/testing.js +2 -9
  120. package/fesm2015/testing.js.map +1 -1
  121. package/fesm2015/tree.js.map +1 -1
  122. package/overlay/index.metadata.json +1 -1
  123. package/package.json +1 -1
  124. package/schematics/ng-add/index.js +1 -1
  125. package/scrolling/index.metadata.json +1 -1
  126. package/scrolling/scroll-dispatcher.d.ts +3 -3
  127. package/table/index.metadata.json +1 -1
  128. package/table/public-api.d.ts +1 -0
  129. package/table/sticky-position-listener.d.ts +28 -0
  130. package/table/sticky-styler.d.ts +7 -2
  131. package/table/table.d.ts +4 -2
  132. package/testing/change-detection.d.ts +44 -1
  133. package/testing/protractor/protractor-element.d.ts +12 -4
  134. package/testing/test-element.d.ts +11 -5
  135. package/testing/testbed/fake-events/dispatch-events.d.ts +1 -1
  136. package/testing/testbed/fake-events/event-objects.d.ts +1 -1
  137. package/testing/testbed/unit-test-element.d.ts +12 -4
  138. package/tree/index.metadata.json +1 -1
  139. package/tree/nested-node.d.ts +3 -3
  140. package/tree/padding.d.ts +2 -2
  141. package/tree/toggle.d.ts +4 -4
  142. package/tree/tree.d.ts +5 -5
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2020 Google LLC.
3
+ Copyright (c) 2021 Google LLC.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -6,7 +6,6 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  import { OnDestroy } from '@angular/core';
9
- import { Platform } from '@angular/cdk/platform';
10
9
  /**
11
10
  * Interface used to register message elements and keep a count of how many registrations have
12
11
  * the same message and the reference to the message element used for the `aria-describedby`.
@@ -29,24 +28,22 @@ export declare const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = "cdk-describedby-host";
29
28
  * content.
30
29
  */
31
30
  export declare class AriaDescriber implements OnDestroy {
32
- /**
33
- * @breaking-change 8.0.0 `_platform` parameter to be made required.
34
- */
35
- private _platform?;
36
31
  private _document;
37
- constructor(_document: any,
38
- /**
39
- * @breaking-change 8.0.0 `_platform` parameter to be made required.
40
- */
41
- _platform?: Platform | undefined);
32
+ constructor(_document: any);
42
33
  /**
43
34
  * Adds to the host element an aria-describedby reference to a hidden element that contains
44
35
  * the message. If the same message has already been registered, then it will reuse the created
45
36
  * message element.
46
37
  */
47
- describe(hostElement: Element, message: string | HTMLElement): void;
38
+ describe(hostElement: Element, message: string, role?: string): void;
39
+ /**
40
+ * Adds to the host element an aria-describedby reference to an already-existing message element.
41
+ */
42
+ describe(hostElement: Element, message: HTMLElement): void;
43
+ /** Removes the host element's aria-describedby reference to the message. */
44
+ removeDescription(hostElement: Element, message: string, role?: string): void;
48
45
  /** Removes the host element's aria-describedby reference to the message element. */
49
- removeDescription(hostElement: Element, message: string | HTMLElement): void;
46
+ removeDescription(hostElement: Element, message: HTMLElement): void;
50
47
  /** Unregisters all created message elements and removes the message container. */
51
48
  ngOnDestroy(): void;
52
49
  /**
@@ -54,8 +51,6 @@ export declare class AriaDescriber implements OnDestroy {
54
51
  * as its content and adds it to the message registry.
55
52
  */
56
53
  private _createMessageElement;
57
- /** Assigns a unique ID to an element, if it doesn't have one already. */
58
- private _setMessageId;
59
54
  /** Deletes the message element from the global messages container. */
60
55
  private _deleteMessageElement;
61
56
  /** Creates the global container for all aria-describedby messages. */
@@ -184,6 +184,12 @@ export declare class FocusMonitor implements OnDestroy {
184
184
  private _removeGlobalListeners;
185
185
  /** Updates all the state on an element once its focus origin has changed. */
186
186
  private _originChanged;
187
+ /**
188
+ * Collects the `MonitoredElementInfo` of a particular element and
189
+ * all of its ancestors that have enabled `checkChildren`.
190
+ * @param element Element from which to start the search.
191
+ */
192
+ private _getClosestElementsInfo;
187
193
  }
188
194
  /**
189
195
  * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"RegisteredMessage":{"__symbolic":"interface"},"MESSAGES_CONTAINER_ID":"cdk-describedby-message-container","CDK_DESCRIBEDBY_ID_PREFIX":"cdk-describedby-message","CDK_DESCRIBEDBY_HOST_ATTRIBUTE":"cdk-describedby-host","AriaDescriber":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":49,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":54,"character":12}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":58,"character":24}]}],"describe":[{"__symbolic":"method"}],"removeDescription":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_createMessageElement":[{"__symbolic":"method"}],"_setMessageId":[{"__symbolic":"method"}],"_deleteMessageElement":[{"__symbolic":"method"}],"_createMessagesContainer":[{"__symbolic":"method"}],"_deleteMessagesContainer":[{"__symbolic":"method"}],"_removeCdkDescribedByReferenceIds":[{"__symbolic":"method"}],"_addMessageReference":[{"__symbolic":"method"}],"_removeMessageReference":[{"__symbolic":"method"}],"_isElementDescribedByMessage":[{"__symbolic":"method"}],"_canBeDescribed":[{"__symbolic":"method"}],"_isElementNode":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Highlightable":{"__symbolic":"interface"},"ActiveDescendantKeyManager":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ListKeyManager"},"members":{"setActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]}},"FocusableOption":{"__symbolic":"interface"},"FocusKeyManager":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ListKeyManager"},"members":{"setFocusOrigin":[{"__symbolic":"method"}],"setActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]}},"ListKeyManagerOption":{"__symbolic":"interface"},"ListKeyManagerModifierKey":{"__symbolic":"interface"},"ListKeyManager":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"QueryList","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":62,"character":40,"context":{"typeName":"T"},"module":"./key-manager/list-key-manager"}]}]}],"skipPredicate":[{"__symbolic":"method"}],"withWrap":[{"__symbolic":"method"}],"withVerticalOrientation":[{"__symbolic":"method"}],"withHorizontalOrientation":[{"__symbolic":"method"}],"withAllowedModifierKeys":[{"__symbolic":"method"}],"withTypeAhead":[{"__symbolic":"method"}],"withHomeAndEnd":[{"__symbolic":"method"}],"setActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"onKeydown":[{"__symbolic":"method"}],"isTyping":[{"__symbolic":"method"}],"setFirstItemActive":[{"__symbolic":"method"}],"setLastItemActive":[{"__symbolic":"method"}],"setNextItemActive":[{"__symbolic":"method"}],"setPreviousItemActive":[{"__symbolic":"method"}],"updateActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_setActiveItemByDelta":[{"__symbolic":"method"}],"_setActiveInWrapMode":[{"__symbolic":"method"}],"_setActiveInDefaultMode":[{"__symbolic":"method"}],"_setActiveItemByIndex":[{"__symbolic":"method"}],"_getItemsArray":[{"__symbolic":"method"}]}},"ConfigurableFocusTrap":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FocusTrap"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":34,"character":14,"context":{"typeName":"HTMLElement"},"module":"./focus-trap/configurable-focus-trap"},{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":36,"character":13},{"__symbolic":"error","message":"Could not resolve type","line":37,"character":15,"context":{"typeName":"Document"},"module":"./focus-trap/configurable-focus-trap"},{"__symbolic":"reference","name":"ɵangular_material_src_cdk_a11y_a11y_a"},{"__symbolic":"reference","name":"FocusTrapInertStrategy"},{"__symbolic":"reference","name":"ɵangular_material_src_cdk_a11y_a11y_b"}]}],"destroy":[{"__symbolic":"method"}],"_enable":[{"__symbolic":"method"}],"_disable":[{"__symbolic":"method"}]}},"EventListenerFocusTrapInertStrategy":{"__symbolic":"class","members":{"preventFocus":[{"__symbolic":"method"}],"allowFocus":[{"__symbolic":"method"}],"_trapFocus":[{"__symbolic":"method"}]}},"FocusTrap":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":59,"character":23,"context":{"typeName":"HTMLElement"},"module":"./focus-trap/focus-trap"},{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":61,"character":22},{"__symbolic":"error","message":"Could not resolve type","line":62,"character":24,"context":{"typeName":"Document"},"module":"./focus-trap/focus-trap"},null]}],"destroy":[{"__symbolic":"method"}],"attachAnchors":[{"__symbolic":"method"}],"focusInitialElementWhenReady":[{"__symbolic":"method"}],"focusFirstTabbableElementWhenReady":[{"__symbolic":"method"}],"focusLastTabbableElementWhenReady":[{"__symbolic":"method"}],"_getRegionBoundary":[{"__symbolic":"method"}],"focusInitialElement":[{"__symbolic":"method"}],"focusFirstTabbableElement":[{"__symbolic":"method"}],"focusLastTabbableElement":[{"__symbolic":"method"}],"hasAttached":[{"__symbolic":"method"}],"_getFirstTabbableElement":[{"__symbolic":"method"}],"_getLastTabbableElement":[{"__symbolic":"method"}],"_createAnchor":[{"__symbolic":"method"}],"_toggleAnchorTabIndex":[{"__symbolic":"method"}],"toggleAnchors":[{"__symbolic":"method"}],"_executeOnStable":[{"__symbolic":"method"}]}},"FocusTrapFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":359,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":366,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":366,"character":14}]}]],"parameters":[{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":61,"character":22},{"__symbolic":"reference","name":"any"}]}],"create":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkTrapFocus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":385,"character":1},"arguments":[{"selector":"[cdkTrapFocus]","exportAs":"cdkTrapFocus"}]}],"members":{"enabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":399,"character":3},"arguments":["cdkTrapFocus"]}]}],"autoCapture":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":407,"character":3},"arguments":["cdkTrapFocusAutoCapture"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":415,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":415,"character":14}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":413,"character":38,"context":{"typeName":"HTMLElement"},"module":"./focus-trap/focus-trap"}]},{"__symbolic":"reference","name":"FocusTrapFactory"},{"__symbolic":"reference","name":"any"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"_captureFocus":[{"__symbolic":"method"}]}},"ConfigurableFocusTrapFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":32,"character":14}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":33,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":19},"arguments":[{"__symbolic":"reference","name":"FOCUS_TRAP_INERT_STRATEGY"}]}]],"parameters":[{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":30,"character":23},{"__symbolic":"reference","name":"ɵangular_material_src_cdk_a11y_a11y_a"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"FocusTrapInertStrategy"}]}],"create":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"FOCUS_TRAP_INERT_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":14,"character":6},"arguments":["FOCUS_TRAP_INERT_STRATEGY"]},"FocusTrapInertStrategy":{"__symbolic":"interface"},"IsFocusableConfig":{"__symbolic":"class","members":{}},"InteractivityChecker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":32,"character":33}]}],"isDisabled":[{"__symbolic":"method"}],"isVisible":[{"__symbolic":"method"}],"isTabbable":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LiveAnnouncer":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":19},"arguments":[{"__symbolic":"reference","name":"LIVE_ANNOUNCER_ELEMENT_TOKEN"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":38,"character":14}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":39,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":19},"arguments":[{"__symbolic":"reference","name":"LIVE_ANNOUNCER_DEFAULT_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":37,"character":23},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"LiveAnnouncerDefaultOptions"}]}],"announce":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_createLiveElement":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkAriaLive":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":179,"character":1},"arguments":[{"selector":"[cdkAriaLive]","exportAs":"cdkAriaLive"}]}],"members":{"politeness":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":185,"character":3},"arguments":["cdkAriaLive"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":217,"character":35},{"__symbolic":"reference","name":"LiveAnnouncer"},{"__symbolic":"reference","module":"@angular/cdk/observers","name":"ContentObserver","line":218,"character":40},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":37,"character":23}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"AriaLivePoliteness":{"__symbolic":"interface"},"LIVE_ANNOUNCER_ELEMENT_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":8},"arguments":["liveAnnouncerElement",{"providedIn":"root","factory":{"__symbolic":"reference","name":"LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY"}}]},"LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY":{"__symbolic":"function","parameters":[],"value":null},"LiveAnnouncerDefaultOptions":{"__symbolic":"interface"},"LIVE_ANNOUNCER_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":38,"character":8},"arguments":["LIVE_ANNOUNCER_DEFAULT_OPTIONS"]},"TOUCH_BUFFER_MS":650,"FocusOrigin":{"__symbolic":"interface"},"FocusOptions":{"__symbolic":"interface"},"FocusMonitorDetectionMode":{"IMMEDIATE":0,"EVENTUAL":1},"FocusMonitorOptions":{"__symbolic":"interface"},"FOCUS_MONITOR_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":66,"character":8},"arguments":["cdk-focus-monitor-default-options"]},"FocusMonitor":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":85,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":187,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":187,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":187,"character":26}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":188,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":188,"character":19},"arguments":[{"__symbolic":"reference","name":"FOCUS_MONITOR_DEFAULT_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":184,"character":23},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":185,"character":25},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"monitor":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"stopMonitoring":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"focusVia":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_getDocument":[{"__symbolic":"method"}],"_getWindow":[{"__symbolic":"method"}],"_toggleClass":[{"__symbolic":"method"}],"_getFocusOrigin":[{"__symbolic":"method"}],"_setClasses":[{"__symbolic":"method"}],"_setOriginForCurrentEventQueue":[{"__symbolic":"method"}],"_wasCausedByTouch":[{"__symbolic":"method"}],"_onFocus":[{"__symbolic":"method"}],"_onBlur":[{"__symbolic":"method"}],"_emitOrigin":[{"__symbolic":"method"}],"_registerGlobalListeners":[{"__symbolic":"method"}],"_removeGlobalListeners":[{"__symbolic":"method"}],"_originChanged":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkMonitorFocus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":574,"character":1},"arguments":[{"selector":"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]"}]}],"members":{"cdkFocusChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":579,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":581,"character":46,"context":{"typeName":"HTMLElement"},"module":"./focus-monitor/focus-monitor"}]},{"__symbolic":"reference","name":"FocusMonitor"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"isFakeMousedownFromScreenReader":{"__symbolic":"function","parameters":["event"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"buttons"},"right":0}},"A11yModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"PlatformModule","line":18,"character":12},{"__symbolic":"reference","module":"@angular/cdk/observers","name":"ObserversModule","line":18,"character":28}],"declarations":[{"__symbolic":"reference","name":"CdkAriaLive"},{"__symbolic":"reference","name":"CdkTrapFocus"},{"__symbolic":"reference","name":"CdkMonitorFocus"}],"exports":[{"__symbolic":"reference","name":"CdkAriaLive"},{"__symbolic":"reference","name":"CdkTrapFocus"},{"__symbolic":"reference","name":"CdkMonitorFocus"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HighContrastModeDetector"}]}]}},"HighContrastModeDetector":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":44},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":44,"character":51}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":44,"character":33},{"__symbolic":"reference","name":"any"}]}],"getHighContrastMode":[{"__symbolic":"method"}],"_applyBodyHighContrastModeCssClasses":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"HighContrastMode":{"NONE":0,"BLACK_ON_WHITE":1,"WHITE_ON_BLACK":2},"ɵangular_material_src_cdk_a11y_a11y_a":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"register":[{"__symbolic":"method"}],"deregister":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵangular_material_src_cdk_a11y_a11y_b":{"__symbolic":"class","members":{}}},"origins":{"RegisteredMessage":"./aria-describer/aria-describer","MESSAGES_CONTAINER_ID":"./aria-describer/aria-describer","CDK_DESCRIBEDBY_ID_PREFIX":"./aria-describer/aria-describer","CDK_DESCRIBEDBY_HOST_ATTRIBUTE":"./aria-describer/aria-describer","AriaDescriber":"./aria-describer/aria-describer","Highlightable":"./key-manager/activedescendant-key-manager","ActiveDescendantKeyManager":"./key-manager/activedescendant-key-manager","FocusableOption":"./key-manager/focus-key-manager","FocusKeyManager":"./key-manager/focus-key-manager","ListKeyManagerOption":"./key-manager/list-key-manager","ListKeyManagerModifierKey":"./key-manager/list-key-manager","ListKeyManager":"./key-manager/list-key-manager","ConfigurableFocusTrap":"./focus-trap/configurable-focus-trap","EventListenerFocusTrapInertStrategy":"./focus-trap/event-listener-inert-strategy","FocusTrap":"./focus-trap/focus-trap","FocusTrapFactory":"./focus-trap/focus-trap","CdkTrapFocus":"./focus-trap/focus-trap","ConfigurableFocusTrapFactory":"./focus-trap/configurable-focus-trap-factory","FOCUS_TRAP_INERT_STRATEGY":"./focus-trap/focus-trap-inert-strategy","FocusTrapInertStrategy":"./focus-trap/focus-trap-inert-strategy","IsFocusableConfig":"./interactivity-checker/interactivity-checker","InteractivityChecker":"./interactivity-checker/interactivity-checker","LiveAnnouncer":"./live-announcer/live-announcer","CdkAriaLive":"./live-announcer/live-announcer","AriaLivePoliteness":"./live-announcer/live-announcer-tokens","LIVE_ANNOUNCER_ELEMENT_TOKEN":"./live-announcer/live-announcer-tokens","LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY":"./live-announcer/live-announcer-tokens","LiveAnnouncerDefaultOptions":"./live-announcer/live-announcer-tokens","LIVE_ANNOUNCER_DEFAULT_OPTIONS":"./live-announcer/live-announcer-tokens","TOUCH_BUFFER_MS":"./focus-monitor/focus-monitor","FocusOrigin":"./focus-monitor/focus-monitor","FocusOptions":"./focus-monitor/focus-monitor","FocusMonitorDetectionMode":"./focus-monitor/focus-monitor","FocusMonitorOptions":"./focus-monitor/focus-monitor","FOCUS_MONITOR_DEFAULT_OPTIONS":"./focus-monitor/focus-monitor","FocusMonitor":"./focus-monitor/focus-monitor","CdkMonitorFocus":"./focus-monitor/focus-monitor","isFakeMousedownFromScreenReader":"./fake-mousedown","A11yModule":"./a11y-module","HighContrastModeDetector":"./high-contrast-mode/high-contrast-mode-detector","HighContrastMode":"./high-contrast-mode/high-contrast-mode-detector","ɵangular_material_src_cdk_a11y_a11y_a":"./focus-trap/focus-trap-manager","ɵangular_material_src_cdk_a11y_a11y_b":"./focus-trap/configurable-focus-trap-config"},"importAs":"@angular/cdk/a11y"}
1
+ {"__symbolic":"module","version":4,"metadata":{"RegisteredMessage":{"__symbolic":"interface"},"MESSAGES_CONTAINER_ID":"cdk-describedby-message-container","CDK_DESCRIBEDBY_ID_PREFIX":"cdk-describedby-message","CDK_DESCRIBEDBY_HOST_ATTRIBUTE":"cdk-describedby-host","AriaDescriber":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":48,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":53,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"describe":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"removeDescription":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_createMessageElement":[{"__symbolic":"method"}],"_deleteMessageElement":[{"__symbolic":"method"}],"_createMessagesContainer":[{"__symbolic":"method"}],"_deleteMessagesContainer":[{"__symbolic":"method"}],"_removeCdkDescribedByReferenceIds":[{"__symbolic":"method"}],"_addMessageReference":[{"__symbolic":"method"}],"_removeMessageReference":[{"__symbolic":"method"}],"_isElementDescribedByMessage":[{"__symbolic":"method"}],"_canBeDescribed":[{"__symbolic":"method"}],"_isElementNode":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Highlightable":{"__symbolic":"interface"},"ActiveDescendantKeyManager":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ListKeyManager"},"members":{"setActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]}},"FocusableOption":{"__symbolic":"interface"},"FocusKeyManager":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ListKeyManager"},"members":{"setFocusOrigin":[{"__symbolic":"method"}],"setActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]}},"ListKeyManagerOption":{"__symbolic":"interface"},"ListKeyManagerModifierKey":{"__symbolic":"interface"},"ListKeyManager":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"QueryList","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":62,"character":40,"context":{"typeName":"T"},"module":"./key-manager/list-key-manager"}]}]}],"skipPredicate":[{"__symbolic":"method"}],"withWrap":[{"__symbolic":"method"}],"withVerticalOrientation":[{"__symbolic":"method"}],"withHorizontalOrientation":[{"__symbolic":"method"}],"withAllowedModifierKeys":[{"__symbolic":"method"}],"withTypeAhead":[{"__symbolic":"method"}],"withHomeAndEnd":[{"__symbolic":"method"}],"setActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"onKeydown":[{"__symbolic":"method"}],"isTyping":[{"__symbolic":"method"}],"setFirstItemActive":[{"__symbolic":"method"}],"setLastItemActive":[{"__symbolic":"method"}],"setNextItemActive":[{"__symbolic":"method"}],"setPreviousItemActive":[{"__symbolic":"method"}],"updateActiveItem":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_setActiveItemByDelta":[{"__symbolic":"method"}],"_setActiveInWrapMode":[{"__symbolic":"method"}],"_setActiveInDefaultMode":[{"__symbolic":"method"}],"_setActiveItemByIndex":[{"__symbolic":"method"}],"_getItemsArray":[{"__symbolic":"method"}]}},"ConfigurableFocusTrap":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FocusTrap"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":34,"character":14,"context":{"typeName":"HTMLElement"},"module":"./focus-trap/configurable-focus-trap"},{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":36,"character":13},{"__symbolic":"error","message":"Could not resolve type","line":37,"character":15,"context":{"typeName":"Document"},"module":"./focus-trap/configurable-focus-trap"},{"__symbolic":"reference","name":"ɵangular_material_src_cdk_a11y_a11y_a"},{"__symbolic":"reference","name":"FocusTrapInertStrategy"},{"__symbolic":"reference","name":"ɵangular_material_src_cdk_a11y_a11y_b"}]}],"destroy":[{"__symbolic":"method"}],"_enable":[{"__symbolic":"method"}],"_disable":[{"__symbolic":"method"}]}},"EventListenerFocusTrapInertStrategy":{"__symbolic":"class","members":{"preventFocus":[{"__symbolic":"method"}],"allowFocus":[{"__symbolic":"method"}],"_trapFocus":[{"__symbolic":"method"}]}},"FocusTrap":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":59,"character":23,"context":{"typeName":"HTMLElement"},"module":"./focus-trap/focus-trap"},{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":61,"character":22},{"__symbolic":"error","message":"Could not resolve type","line":62,"character":24,"context":{"typeName":"Document"},"module":"./focus-trap/focus-trap"},null]}],"destroy":[{"__symbolic":"method"}],"attachAnchors":[{"__symbolic":"method"}],"focusInitialElementWhenReady":[{"__symbolic":"method"}],"focusFirstTabbableElementWhenReady":[{"__symbolic":"method"}],"focusLastTabbableElementWhenReady":[{"__symbolic":"method"}],"_getRegionBoundary":[{"__symbolic":"method"}],"focusInitialElement":[{"__symbolic":"method"}],"focusFirstTabbableElement":[{"__symbolic":"method"}],"focusLastTabbableElement":[{"__symbolic":"method"}],"hasAttached":[{"__symbolic":"method"}],"_getFirstTabbableElement":[{"__symbolic":"method"}],"_getLastTabbableElement":[{"__symbolic":"method"}],"_createAnchor":[{"__symbolic":"method"}],"_toggleAnchorTabIndex":[{"__symbolic":"method"}],"toggleAnchors":[{"__symbolic":"method"}],"_executeOnStable":[{"__symbolic":"method"}]}},"FocusTrapFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":359,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":366,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":366,"character":14}]}]],"parameters":[{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":61,"character":22},{"__symbolic":"reference","name":"any"}]}],"create":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkTrapFocus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":385,"character":1},"arguments":[{"selector":"[cdkTrapFocus]","exportAs":"cdkTrapFocus"}]}],"members":{"enabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":399,"character":3},"arguments":["cdkTrapFocus"]}]}],"autoCapture":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":407,"character":3},"arguments":["cdkTrapFocusAutoCapture"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":415,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":415,"character":14}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":413,"character":38,"context":{"typeName":"HTMLElement"},"module":"./focus-trap/focus-trap"}]},{"__symbolic":"reference","name":"FocusTrapFactory"},{"__symbolic":"reference","name":"any"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"_captureFocus":[{"__symbolic":"method"}]}},"ConfigurableFocusTrapFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":32,"character":14}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":33,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":19},"arguments":[{"__symbolic":"reference","name":"FOCUS_TRAP_INERT_STRATEGY"}]}]],"parameters":[{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":30,"character":23},{"__symbolic":"reference","name":"ɵangular_material_src_cdk_a11y_a11y_a"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"FocusTrapInertStrategy"}]}],"create":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"FOCUS_TRAP_INERT_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":14,"character":6},"arguments":["FOCUS_TRAP_INERT_STRATEGY"]},"FocusTrapInertStrategy":{"__symbolic":"interface"},"IsFocusableConfig":{"__symbolic":"class","members":{}},"InteractivityChecker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":32,"character":33}]}],"isDisabled":[{"__symbolic":"method"}],"isVisible":[{"__symbolic":"method"}],"isTabbable":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LiveAnnouncer":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":19},"arguments":[{"__symbolic":"reference","name":"LIVE_ANNOUNCER_ELEMENT_TOKEN"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":38,"character":14}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":39,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":19},"arguments":[{"__symbolic":"reference","name":"LIVE_ANNOUNCER_DEFAULT_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":37,"character":23},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"LiveAnnouncerDefaultOptions"}]}],"announce":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_createLiveElement":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkAriaLive":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":179,"character":1},"arguments":[{"selector":"[cdkAriaLive]","exportAs":"cdkAriaLive"}]}],"members":{"politeness":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":185,"character":3},"arguments":["cdkAriaLive"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":217,"character":35},{"__symbolic":"reference","name":"LiveAnnouncer"},{"__symbolic":"reference","module":"@angular/cdk/observers","name":"ContentObserver","line":218,"character":40},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":37,"character":23}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"AriaLivePoliteness":{"__symbolic":"interface"},"LIVE_ANNOUNCER_ELEMENT_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":8},"arguments":["liveAnnouncerElement",{"providedIn":"root","factory":{"__symbolic":"reference","name":"LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY"}}]},"LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY":{"__symbolic":"function","parameters":[],"value":null},"LiveAnnouncerDefaultOptions":{"__symbolic":"interface"},"LIVE_ANNOUNCER_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":38,"character":8},"arguments":["LIVE_ANNOUNCER_DEFAULT_OPTIONS"]},"TOUCH_BUFFER_MS":650,"FocusOrigin":{"__symbolic":"interface"},"FocusOptions":{"__symbolic":"interface"},"FocusMonitorDetectionMode":{"IMMEDIATE":0,"EVENTUAL":1},"FocusMonitorOptions":{"__symbolic":"interface"},"FOCUS_MONITOR_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":66,"character":8},"arguments":["cdk-focus-monitor-default-options"]},"FocusMonitor":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":85,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":187,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":187,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":187,"character":26}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":188,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":188,"character":19},"arguments":[{"__symbolic":"reference","name":"FOCUS_MONITOR_DEFAULT_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":184,"character":23},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":185,"character":25},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"monitor":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"stopMonitoring":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"focusVia":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_getDocument":[{"__symbolic":"method"}],"_getWindow":[{"__symbolic":"method"}],"_toggleClass":[{"__symbolic":"method"}],"_getFocusOrigin":[{"__symbolic":"method"}],"_setClasses":[{"__symbolic":"method"}],"_setOriginForCurrentEventQueue":[{"__symbolic":"method"}],"_wasCausedByTouch":[{"__symbolic":"method"}],"_onFocus":[{"__symbolic":"method"}],"_onBlur":[{"__symbolic":"method"}],"_emitOrigin":[{"__symbolic":"method"}],"_registerGlobalListeners":[{"__symbolic":"method"}],"_removeGlobalListeners":[{"__symbolic":"method"}],"_originChanged":[{"__symbolic":"method"}],"_getClosestElementsInfo":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkMonitorFocus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":592,"character":1},"arguments":[{"selector":"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]"}]}],"members":{"cdkFocusChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":597,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":599,"character":46,"context":{"typeName":"HTMLElement"},"module":"./focus-monitor/focus-monitor"}]},{"__symbolic":"reference","name":"FocusMonitor"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"isFakeMousedownFromScreenReader":{"__symbolic":"function","parameters":["event"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"buttons"},"right":0}},"A11yModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"PlatformModule","line":18,"character":12},{"__symbolic":"reference","module":"@angular/cdk/observers","name":"ObserversModule","line":18,"character":28}],"declarations":[{"__symbolic":"reference","name":"CdkAriaLive"},{"__symbolic":"reference","name":"CdkTrapFocus"},{"__symbolic":"reference","name":"CdkMonitorFocus"}],"exports":[{"__symbolic":"reference","name":"CdkAriaLive"},{"__symbolic":"reference","name":"CdkTrapFocus"},{"__symbolic":"reference","name":"CdkMonitorFocus"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HighContrastModeDetector"}]}]}},"HighContrastModeDetector":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":44},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":44,"character":51}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":44,"character":33},{"__symbolic":"reference","name":"any"}]}],"getHighContrastMode":[{"__symbolic":"method"}],"_applyBodyHighContrastModeCssClasses":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"HighContrastMode":{"NONE":0,"BLACK_ON_WHITE":1,"WHITE_ON_BLACK":2},"ɵangular_material_src_cdk_a11y_a11y_a":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"register":[{"__symbolic":"method"}],"deregister":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵangular_material_src_cdk_a11y_a11y_b":{"__symbolic":"class","members":{}}},"origins":{"RegisteredMessage":"./aria-describer/aria-describer","MESSAGES_CONTAINER_ID":"./aria-describer/aria-describer","CDK_DESCRIBEDBY_ID_PREFIX":"./aria-describer/aria-describer","CDK_DESCRIBEDBY_HOST_ATTRIBUTE":"./aria-describer/aria-describer","AriaDescriber":"./aria-describer/aria-describer","Highlightable":"./key-manager/activedescendant-key-manager","ActiveDescendantKeyManager":"./key-manager/activedescendant-key-manager","FocusableOption":"./key-manager/focus-key-manager","FocusKeyManager":"./key-manager/focus-key-manager","ListKeyManagerOption":"./key-manager/list-key-manager","ListKeyManagerModifierKey":"./key-manager/list-key-manager","ListKeyManager":"./key-manager/list-key-manager","ConfigurableFocusTrap":"./focus-trap/configurable-focus-trap","EventListenerFocusTrapInertStrategy":"./focus-trap/event-listener-inert-strategy","FocusTrap":"./focus-trap/focus-trap","FocusTrapFactory":"./focus-trap/focus-trap","CdkTrapFocus":"./focus-trap/focus-trap","ConfigurableFocusTrapFactory":"./focus-trap/configurable-focus-trap-factory","FOCUS_TRAP_INERT_STRATEGY":"./focus-trap/focus-trap-inert-strategy","FocusTrapInertStrategy":"./focus-trap/focus-trap-inert-strategy","IsFocusableConfig":"./interactivity-checker/interactivity-checker","InteractivityChecker":"./interactivity-checker/interactivity-checker","LiveAnnouncer":"./live-announcer/live-announcer","CdkAriaLive":"./live-announcer/live-announcer","AriaLivePoliteness":"./live-announcer/live-announcer-tokens","LIVE_ANNOUNCER_ELEMENT_TOKEN":"./live-announcer/live-announcer-tokens","LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY":"./live-announcer/live-announcer-tokens","LiveAnnouncerDefaultOptions":"./live-announcer/live-announcer-tokens","LIVE_ANNOUNCER_DEFAULT_OPTIONS":"./live-announcer/live-announcer-tokens","TOUCH_BUFFER_MS":"./focus-monitor/focus-monitor","FocusOrigin":"./focus-monitor/focus-monitor","FocusOptions":"./focus-monitor/focus-monitor","FocusMonitorDetectionMode":"./focus-monitor/focus-monitor","FocusMonitorOptions":"./focus-monitor/focus-monitor","FOCUS_MONITOR_DEFAULT_OPTIONS":"./focus-monitor/focus-monitor","FocusMonitor":"./focus-monitor/focus-monitor","CdkMonitorFocus":"./focus-monitor/focus-monitor","isFakeMousedownFromScreenReader":"./fake-mousedown","A11yModule":"./a11y-module","HighContrastModeDetector":"./high-contrast-mode/high-contrast-mode-detector","HighContrastMode":"./high-contrast-mode/high-contrast-mode-detector","ɵangular_material_src_cdk_a11y_a11y_a":"./focus-trap/focus-trap-manager","ɵangular_material_src_cdk_a11y_a11y_b":"./focus-trap/configurable-focus-trap-config"},"importAs":"@angular/cdk/a11y"}
@@ -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('@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';
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';
6
6
 
7
7
  /**
8
8
  * @license
@@ -73,49 +73,40 @@
73
73
  * content.
74
74
  */
75
75
  var AriaDescriber = /** @class */ (function () {
76
- function AriaDescriber(_document,
77
- /**
78
- * @breaking-change 8.0.0 `_platform` parameter to be made required.
79
- */
80
- _platform) {
81
- this._platform = _platform;
76
+ function AriaDescriber(_document) {
82
77
  this._document = _document;
83
78
  }
84
- /**
85
- * Adds to the host element an aria-describedby reference to a hidden element that contains
86
- * the message. If the same message has already been registered, then it will reuse the created
87
- * message element.
88
- */
89
- AriaDescriber.prototype.describe = function (hostElement, message) {
79
+ AriaDescriber.prototype.describe = function (hostElement, message, role) {
90
80
  if (!this._canBeDescribed(hostElement, message)) {
91
81
  return;
92
82
  }
83
+ var key = getKey(message, role);
93
84
  if (typeof message !== 'string') {
94
85
  // We need to ensure that the element has an ID.
95
- this._setMessageId(message);
96
- messageRegistry.set(message, { messageElement: message, referenceCount: 0 });
86
+ setMessageId(message);
87
+ messageRegistry.set(key, { messageElement: message, referenceCount: 0 });
97
88
  }
98
- else if (!messageRegistry.has(message)) {
99
- this._createMessageElement(message);
89
+ else if (!messageRegistry.has(key)) {
90
+ this._createMessageElement(message, role);
100
91
  }
101
- if (!this._isElementDescribedByMessage(hostElement, message)) {
102
- this._addMessageReference(hostElement, message);
92
+ if (!this._isElementDescribedByMessage(hostElement, key)) {
93
+ this._addMessageReference(hostElement, key);
103
94
  }
104
95
  };
105
- /** Removes the host element's aria-describedby reference to the message element. */
106
- AriaDescriber.prototype.removeDescription = function (hostElement, message) {
96
+ AriaDescriber.prototype.removeDescription = function (hostElement, message, role) {
107
97
  if (!message || !this._isElementNode(hostElement)) {
108
98
  return;
109
99
  }
110
- if (this._isElementDescribedByMessage(hostElement, message)) {
111
- this._removeMessageReference(hostElement, message);
100
+ var key = getKey(message, role);
101
+ if (this._isElementDescribedByMessage(hostElement, key)) {
102
+ this._removeMessageReference(hostElement, key);
112
103
  }
113
104
  // If the message is a string, it means that it's one that we created for the
114
105
  // consumer so we can remove it safely, otherwise we should leave it in place.
115
106
  if (typeof message === 'string') {
116
- var registeredMessage = messageRegistry.get(message);
107
+ var registeredMessage = messageRegistry.get(key);
117
108
  if (registeredMessage && registeredMessage.referenceCount === 0) {
118
- this._deleteMessageElement(message);
109
+ this._deleteMessageElement(key);
119
110
  }
120
111
  }
121
112
  if (messagesContainer && messagesContainer.childNodes.length === 0) {
@@ -138,34 +129,29 @@
138
129
  * Creates a new element in the visually hidden message container element with the message
139
130
  * as its content and adds it to the message registry.
140
131
  */
141
- AriaDescriber.prototype._createMessageElement = function (message) {
132
+ AriaDescriber.prototype._createMessageElement = function (message, role) {
142
133
  var messageElement = this._document.createElement('div');
143
- this._setMessageId(messageElement);
134
+ setMessageId(messageElement);
144
135
  messageElement.textContent = message;
136
+ if (role) {
137
+ messageElement.setAttribute('role', role);
138
+ }
145
139
  this._createMessagesContainer();
146
140
  messagesContainer.appendChild(messageElement);
147
- messageRegistry.set(message, { messageElement: messageElement, referenceCount: 0 });
148
- };
149
- /** Assigns a unique ID to an element, if it doesn't have one already. */
150
- AriaDescriber.prototype._setMessageId = function (element) {
151
- if (!element.id) {
152
- element.id = CDK_DESCRIBEDBY_ID_PREFIX + "-" + nextId++;
153
- }
141
+ messageRegistry.set(getKey(message, role), { messageElement: messageElement, referenceCount: 0 });
154
142
  };
155
143
  /** Deletes the message element from the global messages container. */
156
- AriaDescriber.prototype._deleteMessageElement = function (message) {
157
- var registeredMessage = messageRegistry.get(message);
144
+ AriaDescriber.prototype._deleteMessageElement = function (key) {
145
+ var registeredMessage = messageRegistry.get(key);
158
146
  var messageElement = registeredMessage && registeredMessage.messageElement;
159
147
  if (messagesContainer && messageElement) {
160
148
  messagesContainer.removeChild(messageElement);
161
149
  }
162
- messageRegistry.delete(message);
150
+ messageRegistry.delete(key);
163
151
  };
164
152
  /** Creates the global container for all aria-describedby messages. */
165
153
  AriaDescriber.prototype._createMessagesContainer = function () {
166
154
  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);
169
155
  var preExistingContainer = this._document.getElementById(MESSAGES_CONTAINER_ID);
170
156
  // When going from the server to the client, we may end up in a situation where there's
171
157
  // already a container on the page, but we don't have a reference to it. Clear the
@@ -176,12 +162,14 @@
176
162
  }
177
163
  messagesContainer = this._document.createElement('div');
178
164
  messagesContainer.id = MESSAGES_CONTAINER_ID;
165
+ // We add `visibility: hidden` in order to prevent text in this container from
166
+ // being searchable by the browser's Ctrl + F functionality.
167
+ // Screen-readers will still read the description for elements with aria-describedby even
168
+ // when the description element is not visible.
169
+ messagesContainer.style.visibility = 'hidden';
170
+ // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that
171
+ // the description element doesn't impact page layout.
179
172
  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 + '');
185
173
  this._document.body.appendChild(messagesContainer);
186
174
  }
187
175
  };
@@ -203,8 +191,8 @@
203
191
  * Adds a message reference to the element using aria-describedby and increments the registered
204
192
  * message's reference count.
205
193
  */
206
- AriaDescriber.prototype._addMessageReference = function (element, message) {
207
- var registeredMessage = messageRegistry.get(message);
194
+ AriaDescriber.prototype._addMessageReference = function (element, key) {
195
+ var registeredMessage = messageRegistry.get(key);
208
196
  // Add the aria-describedby reference and set the
209
197
  // describedby_host attribute to mark the element.
210
198
  addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
@@ -215,16 +203,16 @@
215
203
  * Removes a message reference from the element using aria-describedby
216
204
  * and decrements the registered message's reference count.
217
205
  */
218
- AriaDescriber.prototype._removeMessageReference = function (element, message) {
219
- var registeredMessage = messageRegistry.get(message);
206
+ AriaDescriber.prototype._removeMessageReference = function (element, key) {
207
+ var registeredMessage = messageRegistry.get(key);
220
208
  registeredMessage.referenceCount--;
221
209
  removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
222
210
  element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
223
211
  };
224
212
  /** Returns true if the element has been described by the provided message ID. */
225
- AriaDescriber.prototype._isElementDescribedByMessage = function (element, message) {
213
+ AriaDescriber.prototype._isElementDescribedByMessage = function (element, key) {
226
214
  var referenceIds = getAriaReferenceIds(element, 'aria-describedby');
227
- var registeredMessage = messageRegistry.get(message);
215
+ var registeredMessage = messageRegistry.get(key);
228
216
  var messageId = registeredMessage && registeredMessage.messageElement.id;
229
217
  return !!messageId && referenceIds.indexOf(messageId) != -1;
230
218
  };
@@ -251,14 +239,23 @@
251
239
  };
252
240
  return AriaDescriber;
253
241
  }());
254
- AriaDescriber.ɵprov = i0.ɵɵdefineInjectable({ factory: function AriaDescriber_Factory() { return new AriaDescriber(i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(i1.Platform)); }, token: AriaDescriber, providedIn: "root" });
242
+ AriaDescriber.ɵprov = i0.ɵɵdefineInjectable({ factory: function AriaDescriber_Factory() { return new AriaDescriber(i0.ɵɵinject(i2.DOCUMENT)); }, token: AriaDescriber, providedIn: "root" });
255
243
  AriaDescriber.decorators = [
256
244
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
257
245
  ];
258
246
  AriaDescriber.ctorParameters = function () { return [
259
- { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] },
260
- { type: i1.Platform }
247
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
261
248
  ]; };
249
+ /** Gets a key that can be used to look messages up in the registry. */
250
+ function getKey(message, role) {
251
+ return typeof message === 'string' ? (role || '') + "/" + message : message;
252
+ }
253
+ /** Assigns a unique ID to an element, if it doesn't have one already. */
254
+ function setMessageId(element) {
255
+ if (!element.id) {
256
+ element.id = CDK_DESCRIBEDBY_ID_PREFIX + "-" + nextId++;
257
+ }
258
+ }
262
259
 
263
260
  /*! *****************************************************************************
264
261
  Copyright (c) Microsoft Corporation.
@@ -284,6 +281,8 @@
284
281
  return extendStatics(d, b);
285
282
  };
286
283
  function __extends(d, b) {
284
+ if (typeof b !== "function" && b !== null)
285
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
287
286
  extendStatics(d, b);
288
287
  function __() { this.constructor = d; }
289
288
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -469,11 +468,13 @@
469
468
  }
470
469
  return ar;
471
470
  }
471
+ /** @deprecated */
472
472
  function __spread() {
473
473
  for (var ar = [], i = 0; i < arguments.length; i++)
474
474
  ar = ar.concat(__read(arguments[i]));
475
475
  return ar;
476
476
  }
477
+ /** @deprecated */
477
478
  function __spreadArrays() {
478
479
  for (var s = 0, i = 0, il = arguments.length; i < il; i++)
479
480
  s += arguments[i].length;
@@ -482,7 +483,11 @@
482
483
  r[k] = a[j];
483
484
  return r;
484
485
  }
485
- ;
486
+ function __spreadArray(to, from) {
487
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
488
+ to[j] = from[i];
489
+ return to;
490
+ }
486
491
  function __await(v) {
487
492
  return this instanceof __await ? (this.v = v, this) : new __await(v);
488
493
  }
@@ -2046,13 +2051,6 @@
2046
2051
  return event.buttons === 0;
2047
2052
  }
2048
2053
 
2049
- /**
2050
- * @license
2051
- * Copyright Google LLC All Rights Reserved.
2052
- *
2053
- * Use of this source code is governed by an MIT-style license that can be
2054
- * found in the LICENSE file at https://angular.io/license
2055
- */
2056
2054
  // This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found
2057
2055
  // that a value of around 650ms seems appropriate.
2058
2056
  var TOUCH_BUFFER_MS = 650;
@@ -2194,13 +2192,18 @@
2194
2192
  }
2195
2193
  };
2196
2194
  FocusMonitor.prototype.focusVia = function (element, origin, options) {
2195
+ var _this = this;
2197
2196
  var nativeElement = coercion.coerceElement(element);
2198
2197
  var focusedElement = this._getDocument().activeElement;
2199
2198
  // If the element is focused already, calling `focus` again won't trigger the event listener
2200
2199
  // which means that the focus classes won't be updated. If that's the case, update the classes
2201
2200
  // directly without waiting for an event.
2202
- if (nativeElement === focusedElement && this._elementInfo.has(nativeElement)) {
2203
- this._originChanged(nativeElement, origin, this._elementInfo.get(nativeElement));
2201
+ if (nativeElement === focusedElement) {
2202
+ this._getClosestElementsInfo(nativeElement)
2203
+ .forEach(function (_a) {
2204
+ var _b = __read(_a, 2), currentElement = _b[0], info = _b[1];
2205
+ return _this._originChanged(currentElement, origin, info);
2206
+ });
2204
2207
  }
2205
2208
  else {
2206
2209
  this._setOriginForCurrentEventQueue(origin);
@@ -2405,6 +2408,20 @@
2405
2408
  this._emitOrigin(elementInfo.subject, origin);
2406
2409
  this._lastFocusOrigin = origin;
2407
2410
  };
2411
+ /**
2412
+ * Collects the `MonitoredElementInfo` of a particular element and
2413
+ * all of its ancestors that have enabled `checkChildren`.
2414
+ * @param element Element from which to start the search.
2415
+ */
2416
+ FocusMonitor.prototype._getClosestElementsInfo = function (element) {
2417
+ var results = [];
2418
+ this._elementInfo.forEach(function (info, currentElement) {
2419
+ if (currentElement === element || (info.checkChildren && currentElement.contains(element))) {
2420
+ results.push([currentElement, info]);
2421
+ }
2422
+ });
2423
+ return results;
2424
+ };
2408
2425
  return FocusMonitor;
2409
2426
  }());
2410
2427
  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" });