@angular/cdk-experimental 13.0.0 → 13.0.4

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 (96) hide show
  1. package/column-resize/resizable.d.ts +1 -0
  2. package/dialog/dialog-container.d.ts +0 -5
  3. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
  4. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +4 -4
  5. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +4 -4
  6. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +4 -4
  7. package/esm2020/column-resize/column-resize-module.mjs +9 -9
  8. package/esm2020/column-resize/column-resize-notifier.mjs +7 -7
  9. package/esm2020/column-resize/column-resize.mjs +4 -4
  10. package/esm2020/column-resize/column-size-store.mjs +4 -4
  11. package/esm2020/column-resize/event-dispatcher.mjs +4 -4
  12. package/esm2020/column-resize/overlay-handle.mjs +4 -4
  13. package/esm2020/column-resize/resizable.mjs +8 -4
  14. package/esm2020/column-resize/resize-strategy.mjs +10 -10
  15. package/esm2020/combobox/combobox-module.mjs +5 -5
  16. package/esm2020/combobox/combobox-panel.mjs +4 -4
  17. package/esm2020/combobox/combobox-popup.mjs +4 -4
  18. package/esm2020/combobox/combobox.mjs +4 -4
  19. package/esm2020/dialog/dialog-container.mjs +11 -38
  20. package/esm2020/dialog/dialog-module.mjs +5 -6
  21. package/esm2020/dialog/dialog.mjs +4 -4
  22. package/esm2020/listbox/listbox-module.mjs +5 -5
  23. package/esm2020/listbox/listbox.mjs +7 -7
  24. package/esm2020/menu/context-menu.mjs +7 -7
  25. package/esm2020/menu/menu-aim.mjs +7 -7
  26. package/esm2020/menu/menu-bar.mjs +7 -27
  27. package/esm2020/menu/menu-group.mjs +4 -4
  28. package/esm2020/menu/menu-item-checkbox.mjs +4 -4
  29. package/esm2020/menu/menu-item-radio.mjs +4 -4
  30. package/esm2020/menu/menu-item-selectable.mjs +4 -4
  31. package/esm2020/menu/menu-item-trigger.mjs +4 -4
  32. package/esm2020/menu/menu-item.mjs +11 -58
  33. package/esm2020/menu/menu-module.mjs +5 -5
  34. package/esm2020/menu/menu-panel.mjs +4 -4
  35. package/esm2020/menu/menu.mjs +8 -23
  36. package/esm2020/popover-edit/edit-event-dispatcher.mjs +4 -4
  37. package/esm2020/popover-edit/edit-ref.mjs +4 -4
  38. package/esm2020/popover-edit/edit-services.mjs +4 -4
  39. package/esm2020/popover-edit/focus-dispatcher.mjs +4 -4
  40. package/esm2020/popover-edit/focus-escape-notifier.mjs +4 -4
  41. package/esm2020/popover-edit/lens-directives.mjs +28 -56
  42. package/esm2020/popover-edit/popover-edit-module.mjs +5 -5
  43. package/esm2020/popover-edit/popover-edit-position-strategy-factory.mjs +7 -7
  44. package/esm2020/popover-edit/table-directives.mjs +21 -25
  45. package/esm2020/scrolling/auto-size-virtual-scroll.mjs +4 -4
  46. package/esm2020/scrolling/scrolling-module.mjs +5 -5
  47. package/esm2020/selection/row-selection.mjs +4 -4
  48. package/esm2020/selection/select-all.mjs +4 -4
  49. package/esm2020/selection/selection-column.mjs +4 -4
  50. package/esm2020/selection/selection-module.mjs +5 -5
  51. package/esm2020/selection/selection-toggle.mjs +4 -4
  52. package/esm2020/selection/selection.mjs +4 -4
  53. package/esm2020/table-scroll-container/table-scroll-container-module.mjs +5 -5
  54. package/esm2020/table-scroll-container/table-scroll-container.mjs +4 -4
  55. package/esm2020/version.mjs +1 -1
  56. package/fesm2015/cdk-experimental.mjs +1 -1
  57. package/fesm2015/cdk-experimental.mjs.map +1 -1
  58. package/fesm2015/column-resize.mjs +54 -50
  59. package/fesm2015/column-resize.mjs.map +1 -1
  60. package/fesm2015/combobox.mjs +13 -13
  61. package/fesm2015/combobox.mjs.map +1 -1
  62. package/fesm2015/dialog.mjs +17 -45
  63. package/fesm2015/dialog.mjs.map +1 -1
  64. package/fesm2015/listbox.mjs +10 -10
  65. package/fesm2015/listbox.mjs.map +1 -1
  66. package/fesm2015/menu.mjs +55 -137
  67. package/fesm2015/menu.mjs.map +1 -1
  68. package/fesm2015/popover-edit.mjs +71 -103
  69. package/fesm2015/popover-edit.mjs.map +1 -1
  70. package/fesm2015/scrolling.mjs +7 -7
  71. package/fesm2015/scrolling.mjs.map +1 -1
  72. package/fesm2015/selection.mjs +19 -19
  73. package/fesm2015/selection.mjs.map +1 -1
  74. package/fesm2015/table-scroll-container.mjs +7 -7
  75. package/fesm2015/table-scroll-container.mjs.map +1 -1
  76. package/fesm2020/cdk-experimental.mjs +1 -1
  77. package/fesm2020/cdk-experimental.mjs.map +1 -1
  78. package/fesm2020/column-resize.mjs +54 -50
  79. package/fesm2020/column-resize.mjs.map +1 -1
  80. package/fesm2020/combobox.mjs +13 -13
  81. package/fesm2020/combobox.mjs.map +1 -1
  82. package/fesm2020/dialog.mjs +17 -45
  83. package/fesm2020/dialog.mjs.map +1 -1
  84. package/fesm2020/listbox.mjs +10 -10
  85. package/fesm2020/listbox.mjs.map +1 -1
  86. package/fesm2020/menu.mjs +55 -137
  87. package/fesm2020/menu.mjs.map +1 -1
  88. package/fesm2020/popover-edit.mjs +71 -103
  89. package/fesm2020/popover-edit.mjs.map +1 -1
  90. package/fesm2020/scrolling.mjs +7 -7
  91. package/fesm2020/scrolling.mjs.map +1 -1
  92. package/fesm2020/selection.mjs +19 -19
  93. package/fesm2020/selection.mjs.map +1 -1
  94. package/fesm2020/table-scroll-container.mjs +7 -7
  95. package/fesm2020/table-scroll-container.mjs.map +1 -1
  96. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"listbox.mjs","sources":["../../../../../../src/cdk-experimental/listbox/listbox.ts","../../../../../../src/cdk-experimental/listbox/listbox-module.ts","../../../../../../src/cdk-experimental/listbox/public-api.ts","../../../../../../src/cdk-experimental/listbox/index.ts","../../../../../../src/cdk-experimental/listbox/listbox_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n} from '@angular/core';\nimport {ActiveDescendantKeyManager, Highlightable, ListKeyManagerOption} from '@angular/cdk/a11y';\nimport {DOWN_ARROW, ENTER, SPACE, UP_ARROW, LEFT_ARROW, RIGHT_ARROW} from '@angular/cdk/keycodes';\nimport {BooleanInput, coerceBooleanProperty, coerceArray} from '@angular/cdk/coercion';\nimport {SelectionChange, SelectionModel} from '@angular/cdk/collections';\nimport {defer, merge, Observable, Subject} from 'rxjs';\nimport {startWith, switchMap, takeUntil} from 'rxjs/operators';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {CdkComboboxPanel} from '@angular/cdk-experimental/combobox';\nimport {Directionality} from '@angular/cdk/bidi';\n\nlet nextId = 0;\nlet listboxId = 0;\n\nexport const CDK_LISTBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CdkListbox),\n multi: true,\n};\n\nexport const PANEL = new InjectionToken<CdkComboboxPanel>('CdkComboboxPanel');\n\n@Directive({\n selector: '[cdkOption]',\n exportAs: 'cdkOption',\n host: {\n 'role': 'option',\n 'class': 'cdk-option',\n '(click)': 'toggle()',\n '(focus)': 'activate()',\n '(blur)': 'deactivate()',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected || null',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': '_isInteractionDisabled()',\n '[class.cdk-option-disabled]': '_isInteractionDisabled()',\n '[class.cdk-option-active]': '_active',\n '[class.cdk-option-selected]': 'selected',\n },\n})\nexport class CdkOption<T = unknown> implements ListKeyManagerOption, Highlightable {\n private _selected: boolean = false;\n private _disabled: boolean = false;\n private _value: T;\n _active: boolean = false;\n\n /** The id of the option, set to a uniqueid if the user does not provide one. */\n @Input() id = `cdk-option-${nextId++}`;\n\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: boolean) {\n if (!this._disabled) {\n this._selected = coerceBooleanProperty(value);\n }\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** The form value of the option. */\n @Input()\n get value(): T {\n return this._value;\n }\n set value(value: T) {\n if (this.selected && value !== this._value) {\n this.deselect();\n }\n this._value = value;\n }\n\n @Output() readonly selectionChange = new EventEmitter<OptionSelectionChangeEvent<T>>();\n\n constructor(\n private readonly _elementRef: ElementRef,\n @Inject(forwardRef(() => CdkListbox)) readonly listbox: CdkListbox<T>,\n ) {}\n\n /** Toggles the selected state, emits a change event through the injected listbox. */\n toggle() {\n if (!this._isInteractionDisabled()) {\n this.selected = !this.selected;\n this._emitSelectionChange(true);\n }\n }\n\n /** Sets the active property true if the option and listbox aren't disabled. */\n activate() {\n if (!this._isInteractionDisabled()) {\n this._active = true;\n }\n }\n\n /** Sets the active property false. */\n deactivate() {\n if (!this._isInteractionDisabled()) {\n this._active = false;\n }\n }\n\n /** Sets the selected property true if it was false. */\n select() {\n if (!this.selected) {\n this.selected = true;\n this._emitSelectionChange();\n }\n }\n\n /** Sets the selected property false if it was true. */\n deselect() {\n if (this.selected) {\n this.selected = false;\n this._emitSelectionChange();\n }\n }\n\n /** Applies focus to the option. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /** Returns true if the option or listbox are disabled, and false otherwise. */\n _isInteractionDisabled(): boolean {\n return this.listbox.disabled || this._disabled;\n }\n\n /** Emits a change event extending the Option Selection Change Event interface. */\n private _emitSelectionChange(isUserInput = false) {\n this.selectionChange.emit({\n source: this,\n isUserInput: isUserInput,\n });\n }\n\n /** Returns the tab index which depends on the disabled property. */\n _getTabIndex(): string | null {\n return this._isInteractionDisabled() ? null : '-1';\n }\n\n /** Get the label for this element which is required by the FocusableOption interface. */\n getLabel() {\n // we know that the current node is an element type\n const clone = this._elementRef.nativeElement.cloneNode(true) as Element;\n this._removeIcons(clone);\n\n return clone.textContent?.trim() || '';\n }\n\n /** Remove any child from the given element which can be identified as an icon. */\n private _removeIcons(element: Element) {\n // TODO: make this a configurable function that can removed any desired type of node.\n for (const icon of Array.from(element.querySelectorAll('mat-icon, .material-icons'))) {\n icon.remove();\n }\n }\n\n getElementRef() {\n return this._elementRef;\n }\n\n /** Sets the active property to true to enable the active css class. */\n setActiveStyles() {\n this._active = true;\n }\n\n /** Sets the active property to false to disable the active css class. */\n setInactiveStyles() {\n this._active = false;\n }\n\n static ngAcceptInputType_selected: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n\n@Directive({\n selector: '[cdkListbox]',\n exportAs: 'cdkListbox',\n host: {\n 'role': 'listbox',\n 'class': 'cdk-listbox',\n '[id]': 'id',\n '(focus)': '_focusActiveOption()',\n '(keydown)': '_keydown($event)',\n '[attr.tabindex]': '_tabIndex',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[attr.aria-orientation]': 'orientation',\n },\n providers: [CDK_LISTBOX_VALUE_ACCESSOR],\n})\nexport class CdkListbox<T> implements AfterContentInit, OnDestroy, OnInit, ControlValueAccessor {\n _listKeyManager: ActiveDescendantKeyManager<CdkOption<T>>;\n _selectionModel: SelectionModel<CdkOption<T>>;\n _tabIndex = 0;\n\n /** `View -> model callback called when select has been touched` */\n _onTouched: () => void = () => {};\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: T) => void = () => {};\n\n readonly optionSelectionChanges: Observable<OptionSelectionChangeEvent<T>> = defer(() => {\n const options = this._options;\n\n return options.changes.pipe(\n startWith(options),\n switchMap(() => merge(...options.map(option => option.selectionChange))),\n );\n }) as Observable<OptionSelectionChangeEvent<T>>;\n\n private _disabled: boolean = false;\n private _multiple: boolean = false;\n private _useActiveDescendant: boolean = false;\n private _autoFocus: boolean = true;\n private _activeOption: CdkOption<T>;\n private readonly _destroyed = new Subject<void>();\n\n @ContentChildren(CdkOption, {descendants: true}) _options: QueryList<CdkOption<T>>;\n\n @Output() readonly selectionChange = new EventEmitter<ListboxSelectionChangeEvent<T>>();\n\n @Input() id = `cdk-listbox-${listboxId++}`;\n\n /**\n * Whether the listbox allows multiple options to be selected.\n * If `multiple` switches from `true` to `false`, all options are deselected.\n */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: boolean) {\n this._updateSelectionOnMultiSelectionChange(value);\n this._multiple = coerceBooleanProperty(value);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Whether the listbox will use active descendant or will move focus onto the options. */\n @Input()\n get useActiveDescendant(): boolean {\n return this._useActiveDescendant;\n }\n set useActiveDescendant(shouldUseActiveDescendant: boolean) {\n this._useActiveDescendant = coerceBooleanProperty(shouldUseActiveDescendant);\n }\n\n /** Whether on focus the listbox will focus its active option, default to true. */\n @Input()\n get autoFocus(): boolean {\n return this._autoFocus;\n }\n set autoFocus(shouldAutoFocus: boolean) {\n this._autoFocus = coerceBooleanProperty(shouldAutoFocus);\n }\n\n /** Determines the orientation for the list key manager. Affects keyboard interaction. */\n @Input('listboxOrientation') orientation: 'horizontal' | 'vertical' = 'vertical';\n\n @Input() compareWith: (o1: T, o2: T) => boolean = (a1, a2) => a1 === a2;\n\n @Input('parentPanel') private readonly _explicitPanel: CdkComboboxPanel;\n\n constructor(\n @Optional() @Inject(PANEL) readonly _parentPanel?: CdkComboboxPanel<T>,\n @Optional() private readonly _dir?: Directionality,\n ) {}\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<CdkOption<T>>(this.multiple);\n }\n\n ngAfterContentInit() {\n this._initKeyManager();\n this._initSelectionModel();\n this._registerWithPanel();\n\n this.optionSelectionChanges.subscribe(event => {\n this._emitChangeEvent(event.source);\n this._updateSelectionModel(event.source);\n this.setActiveOption(event.source);\n this._updatePanelForSelection(event.source);\n });\n }\n\n ngOnDestroy() {\n this._listKeyManager.change.complete();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private _registerWithPanel(): void {\n const panel = this._parentPanel || this._explicitPanel;\n panel?._registerContent(this.id, 'listbox');\n }\n\n private _initKeyManager() {\n this._listKeyManager = new ActiveDescendantKeyManager(this._options)\n .withWrap()\n .withTypeAhead()\n .withHomeAndEnd()\n .withAllowedModifierKeys(['shiftKey']);\n\n if (this.orientation === 'vertical') {\n this._listKeyManager.withVerticalOrientation();\n } else {\n this._listKeyManager.withHorizontalOrientation(this._dir?.value || 'ltr');\n }\n\n this._listKeyManager.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._updateActiveOption();\n });\n }\n\n private _initSelectionModel() {\n this._selectionModel.changed\n .pipe(takeUntil(this._destroyed))\n .subscribe((event: SelectionChange<CdkOption<T>>) => {\n for (const option of event.added) {\n option.selected = true;\n }\n\n for (const option of event.removed) {\n option.selected = false;\n }\n });\n }\n\n _keydown(event: KeyboardEvent) {\n if (this._disabled) {\n return;\n }\n\n const manager = this._listKeyManager;\n const {keyCode} = event;\n const previousActiveIndex = manager.activeItemIndex;\n\n if (keyCode === SPACE || keyCode === ENTER) {\n if (manager.activeItem && !manager.isTyping()) {\n this._toggleActiveOption();\n }\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n\n /** Will select an option if shift was pressed while navigating to the option */\n const isArrow =\n keyCode === UP_ARROW ||\n keyCode === DOWN_ARROW ||\n keyCode === LEFT_ARROW ||\n keyCode === RIGHT_ARROW;\n if (isArrow && event.shiftKey && previousActiveIndex !== this._listKeyManager.activeItemIndex) {\n this._toggleActiveOption();\n }\n }\n\n /** Emits a selection change event, called when an option has its selected state changed. */\n _emitChangeEvent(option: CdkOption<T>) {\n this.selectionChange.emit({\n source: this,\n option: option,\n });\n }\n\n /** Updates the selection model after a toggle. */\n _updateSelectionModel(option: CdkOption<T>) {\n if (!this.multiple && this._selectionModel.selected.length !== 0) {\n const previouslySelected = this._selectionModel.selected[0];\n this.deselect(previouslySelected);\n }\n\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n\n _updatePanelForSelection(option: CdkOption<T>) {\n const panel = this._parentPanel || this._explicitPanel;\n if (!this.multiple) {\n option.selected ? panel?.closePanel(option.value) : panel?.closePanel();\n } else {\n panel?.closePanel(this.getSelectedValues());\n }\n }\n\n /** Toggles the selected state of the active option if not disabled. */\n private _toggleActiveOption() {\n const activeOption = this._listKeyManager.activeItem;\n if (activeOption && !activeOption.disabled) {\n activeOption.toggle();\n }\n }\n\n /** Returns the id of the active option if active descendant is being used. */\n _getAriaActiveDescendant(): string | null | undefined {\n return this._useActiveDescendant ? this._listKeyManager?.activeItem?.id : null;\n }\n\n /** Updates the activeOption and the active and focus properties of the option. */\n private _updateActiveOption() {\n if (!this._listKeyManager.activeItem) {\n return;\n }\n\n this._activeOption?.deactivate();\n this._activeOption = this._listKeyManager.activeItem;\n this._activeOption.activate();\n\n if (!this.useActiveDescendant) {\n this._activeOption.focus();\n }\n }\n\n /** Updates selection states of options when the 'multiple' property changes. */\n private _updateSelectionOnMultiSelectionChange(value: boolean) {\n if (this.multiple && !value) {\n // Deselect all options instead of arbitrarily keeping one of the selected options.\n this.setAllSelected(false);\n } else if (!this.multiple && value) {\n this._selectionModel = new SelectionModel<CdkOption<T>>(\n value,\n this._selectionModel?.selected,\n );\n }\n }\n\n _focusActiveOption() {\n if (!this.autoFocus) {\n return;\n }\n\n if (this._listKeyManager.activeItem) {\n this.setActiveOption(this._listKeyManager.activeItem);\n } else if (this._options.first) {\n this.setActiveOption(this._options.first);\n }\n }\n\n /** Selects the given option if the option and listbox aren't disabled. */\n select(option: CdkOption<T>) {\n if (!this.disabled && !option.disabled) {\n option.select();\n }\n }\n\n /** Deselects the given option if the option and listbox aren't disabled. */\n deselect(option: CdkOption<T>) {\n if (!this.disabled && !option.disabled) {\n option.deselect();\n }\n }\n\n /** Sets the selected state of all options to be the given value. */\n setAllSelected(isSelected: boolean) {\n for (const option of this._options.toArray()) {\n isSelected ? this.select(option) : this.deselect(option);\n }\n }\n\n /** Updates the key manager's active item to the given option. */\n setActiveOption(option: CdkOption<T>) {\n this._listKeyManager.updateActiveItem(option);\n this._updateActiveOption();\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Required to implement ControlValueAccessor.\n */\n registerOnChange(fn: (value: T) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Required to implement ControlValueAccessor.\n */\n registerOnTouched(fn: () => {}): void {\n this._onTouched = fn;\n }\n\n /** Sets the select's value. Required to implement ControlValueAccessor. */\n writeValue(values: T | T[]): void {\n if (this._options) {\n this._setSelectionByValue(values);\n }\n }\n\n /** Disables the select. Required to implement ControlValueAccessor. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Returns the values of the currently selected options. */\n getSelectedValues(): T[] {\n return this._options.filter(option => option.selected).map(option => option.value);\n }\n\n /** Selects an option that has the corresponding given value. */\n private _setSelectionByValue(values: T | T[]) {\n for (const option of this._options.toArray()) {\n this.deselect(option);\n }\n\n const valuesArray = coerceArray(values);\n for (const value of valuesArray) {\n const correspondingOption = this._options.find((option: CdkOption<T>) => {\n return option.value != null && this.compareWith(option.value, value);\n });\n\n if (correspondingOption) {\n this.select(correspondingOption);\n if (!this.multiple) {\n return;\n }\n }\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_useActiveDescendant: BooleanInput;\n static ngAcceptInputType_autoFocus: BooleanInput;\n}\n\n/** Change event that is being fired whenever the selected state of an option changes. */\nexport interface ListboxSelectionChangeEvent<T> {\n /** Reference to the listbox that emitted the event. */\n readonly source: CdkListbox<T>;\n\n /** Reference to the option that has been changed. */\n readonly option: CdkOption<T>;\n}\n\n/** Event object emitted by MatOption when selected or deselected. */\nexport interface OptionSelectionChangeEvent<T> {\n /** Reference to the option that emitted the event. */\n source: CdkOption<T>;\n\n /** Whether the change in the option's value was a result of a user action. */\n isUserInput: boolean;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkListbox, CdkOption} from './listbox';\n\nconst EXPORTED_DECLARATIONS = [CdkListbox, CdkOption];\n@NgModule({\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n})\nexport class CdkListboxModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './listbox';\nexport * from './listbox-module';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listbox.mjs","sources":["../../../../../../src/cdk-experimental/listbox/listbox.ts","../../../../../../src/cdk-experimental/listbox/listbox-module.ts","../../../../../../src/cdk-experimental/listbox/public-api.ts","../../../../../../src/cdk-experimental/listbox/index.ts","../../../../../../src/cdk-experimental/listbox/listbox_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n} from '@angular/core';\nimport {ActiveDescendantKeyManager, Highlightable, ListKeyManagerOption} from '@angular/cdk/a11y';\nimport {DOWN_ARROW, ENTER, SPACE, UP_ARROW, LEFT_ARROW, RIGHT_ARROW} from '@angular/cdk/keycodes';\nimport {BooleanInput, coerceBooleanProperty, coerceArray} from '@angular/cdk/coercion';\nimport {SelectionChange, SelectionModel} from '@angular/cdk/collections';\nimport {defer, merge, Observable, Subject} from 'rxjs';\nimport {startWith, switchMap, takeUntil} from 'rxjs/operators';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {CdkComboboxPanel} from '@angular/cdk-experimental/combobox';\nimport {Directionality} from '@angular/cdk/bidi';\n\nlet nextId = 0;\nlet listboxId = 0;\n\nexport const CDK_LISTBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CdkListbox),\n multi: true,\n};\n\nexport const PANEL = new InjectionToken<CdkComboboxPanel>('CdkComboboxPanel');\n\n@Directive({\n selector: '[cdkOption]',\n exportAs: 'cdkOption',\n host: {\n 'role': 'option',\n 'class': 'cdk-option',\n '(click)': 'toggle()',\n '(focus)': 'activate()',\n '(blur)': 'deactivate()',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected || null',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': '_isInteractionDisabled()',\n '[class.cdk-option-disabled]': '_isInteractionDisabled()',\n '[class.cdk-option-active]': '_active',\n '[class.cdk-option-selected]': 'selected',\n },\n})\nexport class CdkOption<T = unknown> implements ListKeyManagerOption, Highlightable {\n private _selected: boolean = false;\n private _disabled: boolean = false;\n private _value: T;\n _active: boolean = false;\n\n /** The id of the option, set to a uniqueid if the user does not provide one. */\n @Input() id = `cdk-option-${nextId++}`;\n\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: boolean) {\n if (!this._disabled) {\n this._selected = coerceBooleanProperty(value);\n }\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** The form value of the option. */\n @Input()\n get value(): T {\n return this._value;\n }\n set value(value: T) {\n if (this.selected && value !== this._value) {\n this.deselect();\n }\n this._value = value;\n }\n\n @Output() readonly selectionChange = new EventEmitter<OptionSelectionChangeEvent<T>>();\n\n constructor(\n private readonly _elementRef: ElementRef,\n @Inject(forwardRef(() => CdkListbox)) readonly listbox: CdkListbox<T>,\n ) {}\n\n /** Toggles the selected state, emits a change event through the injected listbox. */\n toggle() {\n if (!this._isInteractionDisabled()) {\n this.selected = !this.selected;\n this._emitSelectionChange(true);\n }\n }\n\n /** Sets the active property true if the option and listbox aren't disabled. */\n activate() {\n if (!this._isInteractionDisabled()) {\n this._active = true;\n }\n }\n\n /** Sets the active property false. */\n deactivate() {\n if (!this._isInteractionDisabled()) {\n this._active = false;\n }\n }\n\n /** Sets the selected property true if it was false. */\n select() {\n if (!this.selected) {\n this.selected = true;\n this._emitSelectionChange();\n }\n }\n\n /** Sets the selected property false if it was true. */\n deselect() {\n if (this.selected) {\n this.selected = false;\n this._emitSelectionChange();\n }\n }\n\n /** Applies focus to the option. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /** Returns true if the option or listbox are disabled, and false otherwise. */\n _isInteractionDisabled(): boolean {\n return this.listbox.disabled || this._disabled;\n }\n\n /** Emits a change event extending the Option Selection Change Event interface. */\n private _emitSelectionChange(isUserInput = false) {\n this.selectionChange.emit({\n source: this,\n isUserInput: isUserInput,\n });\n }\n\n /** Returns the tab index which depends on the disabled property. */\n _getTabIndex(): string | null {\n return this._isInteractionDisabled() ? null : '-1';\n }\n\n /** Get the label for this element which is required by the FocusableOption interface. */\n getLabel() {\n // we know that the current node is an element type\n const clone = this._elementRef.nativeElement.cloneNode(true) as Element;\n this._removeIcons(clone);\n\n return clone.textContent?.trim() || '';\n }\n\n /** Remove any child from the given element which can be identified as an icon. */\n private _removeIcons(element: Element) {\n // TODO: make this a configurable function that can removed any desired type of node.\n for (const icon of Array.from(element.querySelectorAll('mat-icon, .material-icons'))) {\n icon.remove();\n }\n }\n\n getElementRef() {\n return this._elementRef;\n }\n\n /** Sets the active property to true to enable the active css class. */\n setActiveStyles() {\n this._active = true;\n }\n\n /** Sets the active property to false to disable the active css class. */\n setInactiveStyles() {\n this._active = false;\n }\n\n static ngAcceptInputType_selected: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n\n@Directive({\n selector: '[cdkListbox]',\n exportAs: 'cdkListbox',\n host: {\n 'role': 'listbox',\n 'class': 'cdk-listbox',\n '[id]': 'id',\n '(focus)': '_focusActiveOption()',\n '(keydown)': '_keydown($event)',\n '[attr.tabindex]': '_tabIndex',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[attr.aria-orientation]': 'orientation',\n },\n providers: [CDK_LISTBOX_VALUE_ACCESSOR],\n})\nexport class CdkListbox<T> implements AfterContentInit, OnDestroy, OnInit, ControlValueAccessor {\n _listKeyManager: ActiveDescendantKeyManager<CdkOption<T>>;\n _selectionModel: SelectionModel<CdkOption<T>>;\n _tabIndex = 0;\n\n /** `View -> model callback called when select has been touched` */\n _onTouched: () => void = () => {};\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: T) => void = () => {};\n\n readonly optionSelectionChanges: Observable<OptionSelectionChangeEvent<T>> = defer(() => {\n const options = this._options;\n\n return options.changes.pipe(\n startWith(options),\n switchMap(() => merge(...options.map(option => option.selectionChange))),\n );\n }) as Observable<OptionSelectionChangeEvent<T>>;\n\n private _disabled: boolean = false;\n private _multiple: boolean = false;\n private _useActiveDescendant: boolean = false;\n private _autoFocus: boolean = true;\n private _activeOption: CdkOption<T>;\n private readonly _destroyed = new Subject<void>();\n\n @ContentChildren(CdkOption, {descendants: true}) _options: QueryList<CdkOption<T>>;\n\n @Output() readonly selectionChange = new EventEmitter<ListboxSelectionChangeEvent<T>>();\n\n @Input() id = `cdk-listbox-${listboxId++}`;\n\n /**\n * Whether the listbox allows multiple options to be selected.\n * If `multiple` switches from `true` to `false`, all options are deselected.\n */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: boolean) {\n this._updateSelectionOnMultiSelectionChange(value);\n this._multiple = coerceBooleanProperty(value);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Whether the listbox will use active descendant or will move focus onto the options. */\n @Input()\n get useActiveDescendant(): boolean {\n return this._useActiveDescendant;\n }\n set useActiveDescendant(shouldUseActiveDescendant: boolean) {\n this._useActiveDescendant = coerceBooleanProperty(shouldUseActiveDescendant);\n }\n\n /** Whether on focus the listbox will focus its active option, default to true. */\n @Input()\n get autoFocus(): boolean {\n return this._autoFocus;\n }\n set autoFocus(shouldAutoFocus: boolean) {\n this._autoFocus = coerceBooleanProperty(shouldAutoFocus);\n }\n\n /** Determines the orientation for the list key manager. Affects keyboard interaction. */\n @Input('listboxOrientation') orientation: 'horizontal' | 'vertical' = 'vertical';\n\n @Input() compareWith: (o1: T, o2: T) => boolean = (a1, a2) => a1 === a2;\n\n @Input('parentPanel') private readonly _explicitPanel: CdkComboboxPanel;\n\n constructor(\n @Optional() @Inject(PANEL) readonly _parentPanel?: CdkComboboxPanel<T>,\n @Optional() private readonly _dir?: Directionality,\n ) {}\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<CdkOption<T>>(this.multiple);\n }\n\n ngAfterContentInit() {\n this._initKeyManager();\n this._initSelectionModel();\n this._registerWithPanel();\n\n this.optionSelectionChanges.subscribe(event => {\n this._emitChangeEvent(event.source);\n this._updateSelectionModel(event.source);\n this.setActiveOption(event.source);\n this._updatePanelForSelection(event.source);\n });\n }\n\n ngOnDestroy() {\n this._listKeyManager.change.complete();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private _registerWithPanel(): void {\n const panel = this._parentPanel || this._explicitPanel;\n panel?._registerContent(this.id, 'listbox');\n }\n\n private _initKeyManager() {\n this._listKeyManager = new ActiveDescendantKeyManager(this._options)\n .withWrap()\n .withTypeAhead()\n .withHomeAndEnd()\n .withAllowedModifierKeys(['shiftKey']);\n\n if (this.orientation === 'vertical') {\n this._listKeyManager.withVerticalOrientation();\n } else {\n this._listKeyManager.withHorizontalOrientation(this._dir?.value || 'ltr');\n }\n\n this._listKeyManager.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._updateActiveOption();\n });\n }\n\n private _initSelectionModel() {\n this._selectionModel.changed\n .pipe(takeUntil(this._destroyed))\n .subscribe((event: SelectionChange<CdkOption<T>>) => {\n for (const option of event.added) {\n option.selected = true;\n }\n\n for (const option of event.removed) {\n option.selected = false;\n }\n });\n }\n\n _keydown(event: KeyboardEvent) {\n if (this._disabled) {\n return;\n }\n\n const manager = this._listKeyManager;\n const {keyCode} = event;\n const previousActiveIndex = manager.activeItemIndex;\n\n if (keyCode === SPACE || keyCode === ENTER) {\n if (manager.activeItem && !manager.isTyping()) {\n this._toggleActiveOption();\n }\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n\n /** Will select an option if shift was pressed while navigating to the option */\n const isArrow =\n keyCode === UP_ARROW ||\n keyCode === DOWN_ARROW ||\n keyCode === LEFT_ARROW ||\n keyCode === RIGHT_ARROW;\n if (isArrow && event.shiftKey && previousActiveIndex !== this._listKeyManager.activeItemIndex) {\n this._toggleActiveOption();\n }\n }\n\n /** Emits a selection change event, called when an option has its selected state changed. */\n _emitChangeEvent(option: CdkOption<T>) {\n this.selectionChange.emit({\n source: this,\n option: option,\n });\n }\n\n /** Updates the selection model after a toggle. */\n _updateSelectionModel(option: CdkOption<T>) {\n if (!this.multiple && this._selectionModel.selected.length !== 0) {\n const previouslySelected = this._selectionModel.selected[0];\n this.deselect(previouslySelected);\n }\n\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n\n _updatePanelForSelection(option: CdkOption<T>) {\n const panel = this._parentPanel || this._explicitPanel;\n if (!this.multiple) {\n option.selected ? panel?.closePanel(option.value) : panel?.closePanel();\n } else {\n panel?.closePanel(this.getSelectedValues());\n }\n }\n\n /** Toggles the selected state of the active option if not disabled. */\n private _toggleActiveOption() {\n const activeOption = this._listKeyManager.activeItem;\n if (activeOption && !activeOption.disabled) {\n activeOption.toggle();\n }\n }\n\n /** Returns the id of the active option if active descendant is being used. */\n _getAriaActiveDescendant(): string | null | undefined {\n return this._useActiveDescendant ? this._listKeyManager?.activeItem?.id : null;\n }\n\n /** Updates the activeOption and the active and focus properties of the option. */\n private _updateActiveOption() {\n if (!this._listKeyManager.activeItem) {\n return;\n }\n\n this._activeOption?.deactivate();\n this._activeOption = this._listKeyManager.activeItem;\n this._activeOption.activate();\n\n if (!this.useActiveDescendant) {\n this._activeOption.focus();\n }\n }\n\n /** Updates selection states of options when the 'multiple' property changes. */\n private _updateSelectionOnMultiSelectionChange(value: boolean) {\n if (this.multiple && !value) {\n // Deselect all options instead of arbitrarily keeping one of the selected options.\n this.setAllSelected(false);\n } else if (!this.multiple && value) {\n this._selectionModel = new SelectionModel<CdkOption<T>>(\n value,\n this._selectionModel?.selected,\n );\n }\n }\n\n _focusActiveOption() {\n if (!this.autoFocus) {\n return;\n }\n\n if (this._listKeyManager.activeItem) {\n this.setActiveOption(this._listKeyManager.activeItem);\n } else if (this._options.first) {\n this.setActiveOption(this._options.first);\n }\n }\n\n /** Selects the given option if the option and listbox aren't disabled. */\n select(option: CdkOption<T>) {\n if (!this.disabled && !option.disabled) {\n option.select();\n }\n }\n\n /** Deselects the given option if the option and listbox aren't disabled. */\n deselect(option: CdkOption<T>) {\n if (!this.disabled && !option.disabled) {\n option.deselect();\n }\n }\n\n /** Sets the selected state of all options to be the given value. */\n setAllSelected(isSelected: boolean) {\n for (const option of this._options.toArray()) {\n isSelected ? this.select(option) : this.deselect(option);\n }\n }\n\n /** Updates the key manager's active item to the given option. */\n setActiveOption(option: CdkOption<T>) {\n this._listKeyManager.updateActiveItem(option);\n this._updateActiveOption();\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Required to implement ControlValueAccessor.\n */\n registerOnChange(fn: (value: T) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Required to implement ControlValueAccessor.\n */\n registerOnTouched(fn: () => {}): void {\n this._onTouched = fn;\n }\n\n /** Sets the select's value. Required to implement ControlValueAccessor. */\n writeValue(values: T | T[]): void {\n if (this._options) {\n this._setSelectionByValue(values);\n }\n }\n\n /** Disables the select. Required to implement ControlValueAccessor. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Returns the values of the currently selected options. */\n getSelectedValues(): T[] {\n return this._options.filter(option => option.selected).map(option => option.value);\n }\n\n /** Selects an option that has the corresponding given value. */\n private _setSelectionByValue(values: T | T[]) {\n for (const option of this._options.toArray()) {\n this.deselect(option);\n }\n\n const valuesArray = coerceArray(values);\n for (const value of valuesArray) {\n const correspondingOption = this._options.find((option: CdkOption<T>) => {\n return option.value != null && this.compareWith(option.value, value);\n });\n\n if (correspondingOption) {\n this.select(correspondingOption);\n if (!this.multiple) {\n return;\n }\n }\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_useActiveDescendant: BooleanInput;\n static ngAcceptInputType_autoFocus: BooleanInput;\n}\n\n/** Change event that is being fired whenever the selected state of an option changes. */\nexport interface ListboxSelectionChangeEvent<T> {\n /** Reference to the listbox that emitted the event. */\n readonly source: CdkListbox<T>;\n\n /** Reference to the option that has been changed. */\n readonly option: CdkOption<T>;\n}\n\n/** Event object emitted by MatOption when selected or deselected. */\nexport interface OptionSelectionChangeEvent<T> {\n /** Reference to the option that emitted the event. */\n source: CdkOption<T>;\n\n /** Whether the change in the option's value was a result of a user action. */\n isUserInput: boolean;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkListbox, CdkOption} from './listbox';\n\nconst EXPORTED_DECLARATIONS = [CdkListbox, CdkOption];\n@NgModule({\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n})\nexport class CdkListboxModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './listbox';\nexport * from './listbox-module';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/fesm2020/menu.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Directive, EventEmitter, Optional, Inject, Input, Output, Self, HostListener, ContentChildren, NgModule } from '@angular/core';
2
+ import { InjectionToken, Injectable, Directive, EventEmitter, Optional, Inject, Input, Output, Self, ContentChildren, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/cdk/overlay';
4
4
  import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
5
5
  import { FocusKeyManager } from '@angular/cdk/a11y';
@@ -329,9 +329,9 @@ class TargetMenuAim {
329
329
  this._destroyed.complete();
330
330
  }
331
331
  }
332
- TargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: TargetMenuAim, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
333
- TargetMenuAim.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: TargetMenuAim });
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: TargetMenuAim, decorators: [{
332
+ TargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TargetMenuAim, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
333
+ TargetMenuAim.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TargetMenuAim });
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TargetMenuAim, decorators: [{
335
335
  type: Injectable
336
336
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
337
337
  /**
@@ -340,9 +340,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
340
340
  */
341
341
  class CdkTargetMenuAim {
342
342
  }
343
- CdkTargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive });
344
- CdkTargetMenuAim.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkTargetMenuAim, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 });
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
343
+ CdkTargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive });
344
+ CdkTargetMenuAim.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkTargetMenuAim, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 });
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
346
346
  type: Directive,
347
347
  args: [{
348
348
  selector: '[cdkTargetMenuAim]',
@@ -660,9 +660,9 @@ class CdkMenuItemTrigger {
660
660
  }
661
661
  }
662
662
  }
663
- CdkMenuItemTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemTrigger, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i0.NgZone }, { token: CDK_MENU, optional: true }, { token: MENU_AIM, optional: true }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
664
- CdkMenuItemTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuItemTrigger, selector: "[cdkMenuTriggerFor]", inputs: { menuPanel: ["cdkMenuTriggerFor", "menuPanel"] }, outputs: { opened: "cdkMenuOpened", closed: "cdkMenuClosed" }, host: { attributes: { "aria-haspopup": "menu" }, listeners: { "keydown": "_toggleOnKeydown($event)", "click": "toggle()" }, properties: { "attr.aria-expanded": "isMenuOpen()" }, classAttribute: "cdk-menu-trigger" }, exportAs: ["cdkMenuTriggerFor"], ngImport: i0 });
665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemTrigger, decorators: [{
663
+ CdkMenuItemTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemTrigger, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i0.NgZone }, { token: CDK_MENU, optional: true }, { token: MENU_AIM, optional: true }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
664
+ CdkMenuItemTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuItemTrigger, selector: "[cdkMenuTriggerFor]", inputs: { menuPanel: ["cdkMenuTriggerFor", "menuPanel"] }, outputs: { opened: "cdkMenuOpened", closed: "cdkMenuClosed" }, host: { attributes: { "aria-haspopup": "menu" }, listeners: { "keydown": "_toggleOnKeydown($event)", "click": "toggle()" }, properties: { "attr.aria-expanded": "isMenuOpen()" }, classAttribute: "cdk-menu-trigger" }, exportAs: ["cdkMenuTriggerFor"], ngImport: i0 });
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemTrigger, decorators: [{
666
666
  type: Directive,
667
667
  args: [{
668
668
  selector: '[cdkMenuTriggerFor]',
@@ -758,20 +758,12 @@ class CdkMenuItem {
758
758
  focus() {
759
759
  this._elementRef.nativeElement.focus();
760
760
  }
761
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
762
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
763
- // can move this back into `host`.
764
- // tslint:disable:no-host-decorator-in-concrete
765
761
  /** Reset the _tabindex to -1. */
766
762
  _resetTabIndex() {
767
763
  if (!this._isStandaloneItem()) {
768
764
  this._tabindex = -1;
769
765
  }
770
766
  }
771
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
772
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
773
- // can move this back into `host`.
774
- // tslint:disable:no-host-decorator-in-concrete
775
767
  /**
776
768
  * Set the tab index to 0 if not disabled and it's a focus event, or a mouse enter if this element
777
769
  * is not in a menu bar.
@@ -789,10 +781,6 @@ class CdkMenuItem {
789
781
  _isStandaloneItem() {
790
782
  return !this._parentMenu;
791
783
  }
792
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
793
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
794
- // can move this back into `host`.
795
- // tslint:disable:no-host-decorator-in-concrete
796
784
  /**
797
785
  * If the menu item is not disabled and the element does not have a menu trigger attached, emit
798
786
  * on the cdkMenuItemTriggered emitter and close all open menus.
@@ -830,10 +818,6 @@ class CdkMenuItem {
830
818
  removeIcons(clone);
831
819
  return clone.textContent?.trim() || '';
832
820
  }
833
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
834
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
835
- // can move this back into `host`.
836
- // tslint:disable:no-host-decorator-in-concrete
837
821
  /**
838
822
  * Handles keyboard events for the menu item, specifically either triggering the user defined
839
823
  * callback or opening/closing the current menu based on whether the left or right arrow key was
@@ -902,9 +886,9 @@ class CdkMenuItem {
902
886
  this._destroyed.next();
903
887
  }
904
888
  }
905
- CdkMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItem, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: CDK_MENU, optional: true }, { token: MENU_AIM, optional: true }, { token: i2.Directionality, optional: true }, { token: CdkMenuItemTrigger, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
906
- CdkMenuItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuItem, selector: "[cdkMenuItem]", inputs: { disabled: "disabled" }, outputs: { triggered: "cdkMenuItemTriggered" }, host: { attributes: { "type": "button", "role": "menuitem" }, listeners: { "blur": "_resetTabIndex()", "mouseout": "_resetTabIndex()", "focus": "_setTabIndex()", "mouseenter": "_setTabIndex($event)", "click": "trigger()", "keydown": "_onKeydown($event)" }, properties: { "tabindex": "_tabindex", "attr.aria-disabled": "disabled || null" }, classAttribute: "cdk-menu-item" }, exportAs: ["cdkMenuItem"], ngImport: i0 });
907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItem, decorators: [{
889
+ CdkMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItem, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: CDK_MENU, optional: true }, { token: MENU_AIM, optional: true }, { token: i2.Directionality, optional: true }, { token: CdkMenuItemTrigger, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
890
+ CdkMenuItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuItem, selector: "[cdkMenuItem]", inputs: { disabled: "disabled" }, outputs: { triggered: "cdkMenuItemTriggered" }, host: { attributes: { "type": "button", "role": "menuitem" }, listeners: { "blur": "_resetTabIndex()", "mouseout": "_resetTabIndex()", "focus": "_setTabIndex()", "mouseenter": "_setTabIndex($event)", "click": "trigger()", "keydown": "_onKeydown($event)" }, properties: { "tabindex": "_tabindex", "attr.aria-disabled": "disabled || null" }, classAttribute: "cdk-menu-item" }, exportAs: ["cdkMenuItem"], ngImport: i0 });
891
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItem, decorators: [{
908
892
  type: Directive,
909
893
  args: [{
910
894
  selector: '[cdkMenuItem]',
@@ -915,6 +899,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
915
899
  'role': 'menuitem',
916
900
  'class': 'cdk-menu-item',
917
901
  '[attr.aria-disabled]': 'disabled || null',
902
+ '(blur)': '_resetTabIndex()',
903
+ '(mouseout)': '_resetTabIndex()',
904
+ '(focus)': '_setTabIndex()',
905
+ '(mouseenter)': '_setTabIndex($event)',
906
+ '(click)': 'trigger()',
907
+ '(keydown)': '_onKeydown($event)',
918
908
  },
919
909
  }]
920
910
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
@@ -938,43 +928,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
938
928
  }], triggered: [{
939
929
  type: Output,
940
930
  args: ['cdkMenuItemTriggered']
941
- }],
942
- /** Reset the _tabindex to -1. */
943
- _resetTabIndex: [{
944
- type: HostListener,
945
- args: ['blur']
946
- }, {
947
- type: HostListener,
948
- args: ['mouseout']
949
- }],
950
- /**
951
- * Set the tab index to 0 if not disabled and it's a focus event, or a mouse enter if this element
952
- * is not in a menu bar.
953
- */
954
- _setTabIndex: [{
955
- type: HostListener,
956
- args: ['focus']
957
- }, {
958
- type: HostListener,
959
- args: ['mouseenter', ['$event']]
960
- }],
961
- /**
962
- * If the menu item is not disabled and the element does not have a menu trigger attached, emit
963
- * on the cdkMenuItemTriggered emitter and close all open menus.
964
- */
965
- trigger: [{
966
- type: HostListener,
967
- args: ['click']
968
- }],
969
- /**
970
- * Handles keyboard events for the menu item, specifically either triggering the user defined
971
- * callback or opening/closing the current menu based on whether the left or right arrow key was
972
- * pressed.
973
- * @param event the keyboard event to handle
974
- */
975
- _onKeydown: [{
976
- type: HostListener,
977
- args: ['keydown', ['$event']]
978
931
  }] } });
979
932
 
980
933
  /**
@@ -1015,9 +968,9 @@ class CdkMenuItemSelectable extends CdkMenuItem {
1015
968
  }
1016
969
  }
1017
970
  }
1018
- CdkMenuItemSelectable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1019
- CdkMenuItemSelectable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuItemSelectable, inputs: { checked: "checked", name: "name", id: "id" }, outputs: { toggled: "cdkMenuItemToggled" }, usesInheritance: true, ngImport: i0 });
1020
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemSelectable, decorators: [{
971
+ CdkMenuItemSelectable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive });
972
+ CdkMenuItemSelectable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuItemSelectable, inputs: { checked: "checked", name: "name", id: "id" }, outputs: { toggled: "cdkMenuItemToggled" }, usesInheritance: true, ngImport: i0 });
973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemSelectable, decorators: [{
1021
974
  type: Directive
1022
975
  }], propDecorators: { toggled: [{
1023
976
  type: Output,
@@ -1073,9 +1026,9 @@ class CdkMenuGroup {
1073
1026
  this._selectableChanges.complete();
1074
1027
  }
1075
1028
  }
1076
- CdkMenuGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1077
- CdkMenuGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuGroup, selector: "[cdkMenuGroup]", outputs: { change: "change" }, host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], queries: [{ propertyName: "_selectableItems", predicate: CdkMenuItemSelectable, descendants: true }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
1078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuGroup, decorators: [{
1029
+ CdkMenuGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1030
+ CdkMenuGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuGroup, selector: "[cdkMenuGroup]", outputs: { change: "change" }, host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], queries: [{ propertyName: "_selectableItems", predicate: CdkMenuItemSelectable, descendants: true }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
1031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuGroup, decorators: [{
1079
1032
  type: Directive,
1080
1033
  args: [{
1081
1034
  selector: '[cdkMenuGroup]',
@@ -1121,9 +1074,9 @@ class CdkMenuPanel {
1121
1074
  this._menuStack?.push(child);
1122
1075
  }
1123
1076
  }
1124
- CdkMenuPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuPanel, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1125
- CdkMenuPanel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuPanel, selector: "ng-template[cdkMenuPanel]", exportAs: ["cdkMenuPanel"], ngImport: i0 });
1126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuPanel, decorators: [{
1077
+ CdkMenuPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuPanel, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1078
+ CdkMenuPanel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuPanel, selector: "ng-template[cdkMenuPanel]", exportAs: ["cdkMenuPanel"], ngImport: i0 });
1079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuPanel, decorators: [{
1127
1080
  type: Directive,
1128
1081
  args: [{ selector: 'ng-template[cdkMenuPanel]', exportAs: 'cdkMenuPanel' }]
1129
1082
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
@@ -1225,10 +1178,6 @@ class CdkMenu extends CdkMenuGroup {
1225
1178
  this._subscribeToMouseManager();
1226
1179
  this._menuAim?.initialize(this, this._pointerTracker);
1227
1180
  }
1228
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
1229
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
1230
- // can move this back into `host`.
1231
- // tslint:disable:no-host-decorator-in-concrete
1232
1181
  /** Place focus on the first MenuItem in the menu and set the focus origin. */
1233
1182
  focusFirstItem(focusOrigin = 'program') {
1234
1183
  this._keyManager.setFocusOrigin(focusOrigin);
@@ -1239,10 +1188,6 @@ class CdkMenu extends CdkMenuGroup {
1239
1188
  this._keyManager.setFocusOrigin(focusOrigin);
1240
1189
  this._keyManager.setLastItemActive();
1241
1190
  }
1242
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
1243
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
1244
- // can move this back into `host`.
1245
- // tslint:disable:no-host-decorator-in-concrete
1246
1191
  /** Handle keyboard events for the Menu. */
1247
1192
  _handleKeyEvent(event) {
1248
1193
  const keyManager = this._keyManager;
@@ -1407,6 +1352,7 @@ class CdkMenu extends CdkMenuGroup {
1407
1352
  return this._menuStack instanceof NoopMenuStack;
1408
1353
  }
1409
1354
  ngOnDestroy() {
1355
+ super.ngOnDestroy();
1410
1356
  this._emitClosedEvent();
1411
1357
  this._pointerTracker?.destroy();
1412
1358
  }
@@ -1416,12 +1362,12 @@ class CdkMenu extends CdkMenuGroup {
1416
1362
  this.closed.complete();
1417
1363
  }
1418
1364
  }
1419
- CdkMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenu, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: MENU_AIM, optional: true, self: true }, { token: i2.Directionality, optional: true }, { token: CdkMenuPanel, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1420
- CdkMenu.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenu, selector: "[cdkMenu]", inputs: { orientation: ["cdkMenuOrientation", "orientation"], _explicitPanel: ["cdkMenuPanel", "_explicitPanel"] }, outputs: { closed: "closed" }, host: { attributes: { "role": "menu" }, listeners: { "focus": "focusFirstItem()", "keydown": "_handleKeyEvent($event)" }, properties: { "tabindex": "_isInline() ? 0 : null", "class.cdk-menu-inline": "_isInline()", "attr.aria-orientation": "orientation" }, classAttribute: "cdk-menu" }, providers: [
1365
+ CdkMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenu, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: MENU_AIM, optional: true, self: true }, { token: i2.Directionality, optional: true }, { token: CdkMenuPanel, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1366
+ CdkMenu.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenu, selector: "[cdkMenu]", inputs: { orientation: ["cdkMenuOrientation", "orientation"], _explicitPanel: ["cdkMenuPanel", "_explicitPanel"] }, outputs: { closed: "closed" }, host: { attributes: { "role": "menu" }, listeners: { "focus": "focusFirstItem()", "keydown": "_handleKeyEvent($event)" }, properties: { "tabindex": "_isInline() ? 0 : null", "class.cdk-menu-inline": "_isInline()", "attr.aria-orientation": "orientation" }, classAttribute: "cdk-menu" }, providers: [
1421
1367
  { provide: CdkMenuGroup, useExisting: CdkMenu },
1422
1368
  { provide: CDK_MENU, useExisting: CdkMenu },
1423
1369
  ], queries: [{ propertyName: "_nestedGroups", predicate: CdkMenuGroup, descendants: true }, { propertyName: "_allItems", predicate: CdkMenuItem, descendants: true }], exportAs: ["cdkMenu"], usesInheritance: true, ngImport: i0 });
1424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenu, decorators: [{
1370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenu, decorators: [{
1425
1371
  type: Directive,
1426
1372
  args: [{
1427
1373
  selector: '[cdkMenu]',
@@ -1432,6 +1378,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
1432
1378
  'class': 'cdk-menu',
1433
1379
  '[class.cdk-menu-inline]': '_isInline()',
1434
1380
  '[attr.aria-orientation]': 'orientation',
1381
+ '(focus)': 'focusFirstItem()',
1382
+ '(keydown)': '_handleKeyEvent($event)',
1435
1383
  },
1436
1384
  providers: [
1437
1385
  { provide: CdkMenuGroup, useExisting: CdkMenu },
@@ -1463,16 +1411,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
1463
1411
  }], _explicitPanel: [{
1464
1412
  type: Input,
1465
1413
  args: ['cdkMenuPanel']
1466
- }],
1467
- /** Place focus on the first MenuItem in the menu and set the focus origin. */
1468
- focusFirstItem: [{
1469
- type: HostListener,
1470
- args: ['focus']
1471
- }],
1472
- /** Handle keyboard events for the Menu. */
1473
- _handleKeyEvent: [{
1474
- type: HostListener,
1475
- args: ['keydown', ['$event']]
1476
1414
  }] } });
1477
1415
 
1478
1416
  /**
@@ -1512,10 +1450,6 @@ class CdkMenuBar extends CdkMenuGroup {
1512
1450
  this._subscribeToMouseManager();
1513
1451
  this._menuAim?.initialize(this, this._pointerTracker);
1514
1452
  }
1515
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
1516
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
1517
- // can move this back into `host`.
1518
- // tslint:disable:no-host-decorator-in-concrete
1519
1453
  /** Place focus on the first MenuItem in the menu and set the focus origin. */
1520
1454
  focusFirstItem(focusOrigin = 'program') {
1521
1455
  this._keyManager.setFocusOrigin(focusOrigin);
@@ -1526,10 +1460,6 @@ class CdkMenuBar extends CdkMenuGroup {
1526
1460
  this._keyManager.setFocusOrigin(focusOrigin);
1527
1461
  this._keyManager.setLastItemActive();
1528
1462
  }
1529
- // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order
1530
- // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we
1531
- // can move this back into `host`.
1532
- // tslint:disable:no-host-decorator-in-concrete
1533
1463
  /**
1534
1464
  * Handle keyboard events, specifically changing the focused element and/or toggling the active
1535
1465
  * items menu.
@@ -1678,13 +1608,13 @@ class CdkMenuBar extends CdkMenuGroup {
1678
1608
  this._pointerTracker?.destroy();
1679
1609
  }
1680
1610
  }
1681
- CdkMenuBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuBar, deps: [{ token: MenuStack }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: MENU_AIM, optional: true, self: true }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1682
- CdkMenuBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuBar, selector: "[cdkMenuBar]", inputs: { orientation: ["cdkMenuBarOrientation", "orientation"] }, host: { attributes: { "role": "menubar", "tabindex": "0" }, listeners: { "focus": "focusFirstItem()", "keydown": "_handleKeyEvent($event)" }, properties: { "attr.aria-orientation": "orientation" }, classAttribute: "cdk-menu-bar" }, providers: [
1611
+ CdkMenuBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuBar, deps: [{ token: MenuStack }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: MENU_AIM, optional: true, self: true }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1612
+ CdkMenuBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuBar, selector: "[cdkMenuBar]", inputs: { orientation: ["cdkMenuBarOrientation", "orientation"] }, host: { attributes: { "role": "menubar", "tabindex": "0" }, listeners: { "focus": "focusFirstItem()", "keydown": "_handleKeyEvent($event)" }, properties: { "attr.aria-orientation": "orientation" }, classAttribute: "cdk-menu-bar" }, providers: [
1683
1613
  { provide: CdkMenuGroup, useExisting: CdkMenuBar },
1684
1614
  { provide: CDK_MENU, useExisting: CdkMenuBar },
1685
1615
  { provide: MenuStack, useClass: MenuStack },
1686
1616
  ], queries: [{ propertyName: "_allItems", predicate: CdkMenuItem, descendants: true }], exportAs: ["cdkMenuBar"], usesInheritance: true, ngImport: i0 });
1687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuBar, decorators: [{
1617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuBar, decorators: [{
1688
1618
  type: Directive,
1689
1619
  args: [{
1690
1620
  selector: '[cdkMenuBar]',
@@ -1694,6 +1624,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
1694
1624
  'class': 'cdk-menu-bar',
1695
1625
  'tabindex': '0',
1696
1626
  '[attr.aria-orientation]': 'orientation',
1627
+ '(focus)': 'focusFirstItem()',
1628
+ '(keydown)': '_handleKeyEvent($event)',
1697
1629
  },
1698
1630
  providers: [
1699
1631
  { provide: CdkMenuGroup, useExisting: CdkMenuBar },
@@ -1716,20 +1648,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ng
1716
1648
  }], _allItems: [{
1717
1649
  type: ContentChildren,
1718
1650
  args: [CdkMenuItem, { descendants: true }]
1719
- }],
1720
- /** Place focus on the first MenuItem in the menu and set the focus origin. */
1721
- focusFirstItem: [{
1722
- type: HostListener,
1723
- args: ['focus']
1724
- }],
1725
- /**
1726
- * Handle keyboard events, specifically changing the focused element and/or toggling the active
1727
- * items menu.
1728
- * @param event the KeyboardEvent to handle.
1729
- */
1730
- _handleKeyEvent: [{
1731
- type: HostListener,
1732
- args: ['keydown', ['$event']]
1733
1651
  }] } });
1734
1652
 
1735
1653
  /**
@@ -1770,12 +1688,12 @@ class CdkMenuItemRadio extends CdkMenuItemSelectable {
1770
1688
  this._removeDispatcherListener();
1771
1689
  }
1772
1690
  }
1773
- CdkMenuItemRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemRadio, deps: [{ token: i1$1.UniqueSelectionDispatcher }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: CDK_MENU, optional: true }, { token: MENU_AIM, optional: true }, { token: i2.Directionality, optional: true }, { token: CdkMenuItemTrigger, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
1774
- CdkMenuItemRadio.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuItemRadio, selector: "[cdkMenuItemRadio]", host: { attributes: { "type": "button", "role": "menuitemradio" }, properties: { "tabindex": "_tabindex", "attr.aria-checked": "checked || null", "attr.aria-disabled": "disabled || null" } }, providers: [
1691
+ CdkMenuItemRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemRadio, deps: [{ token: i1$1.UniqueSelectionDispatcher }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: CDK_MENU, optional: true }, { token: MENU_AIM, optional: true }, { token: i2.Directionality, optional: true }, { token: CdkMenuItemTrigger, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
1692
+ CdkMenuItemRadio.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuItemRadio, selector: "[cdkMenuItemRadio]", host: { attributes: { "type": "button", "role": "menuitemradio" }, properties: { "tabindex": "_tabindex", "attr.aria-checked": "checked || null", "attr.aria-disabled": "disabled || null" } }, providers: [
1775
1693
  { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemRadio },
1776
1694
  { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
1777
1695
  ], exportAs: ["cdkMenuItemRadio"], usesInheritance: true, ngImport: i0 });
1778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemRadio, decorators: [{
1696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemRadio, decorators: [{
1779
1697
  type: Directive,
1780
1698
  args: [{
1781
1699
  selector: '[cdkMenuItemRadio]',
@@ -1830,12 +1748,12 @@ class CdkMenuItemCheckbox extends CdkMenuItemSelectable {
1830
1748
  }
1831
1749
  }
1832
1750
  }
1833
- CdkMenuItemCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1834
- CdkMenuItemCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkMenuItemCheckbox, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "type": "button", "role": "menuitemcheckbox" }, properties: { "tabindex": "_tabindex", "attr.aria-checked": "checked || null", "attr.aria-disabled": "disabled || null" } }, providers: [
1751
+ CdkMenuItemCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1752
+ CdkMenuItemCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkMenuItemCheckbox, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "type": "button", "role": "menuitemcheckbox" }, properties: { "tabindex": "_tabindex", "attr.aria-checked": "checked || null", "attr.aria-disabled": "disabled || null" } }, providers: [
1835
1753
  { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemCheckbox },
1836
1754
  { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
1837
1755
  ], exportAs: ["cdkMenuItemCheckbox"], usesInheritance: true, ngImport: i0 });
1838
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
1756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
1839
1757
  type: Directive,
1840
1758
  args: [{
1841
1759
  selector: '[cdkMenuItemCheckbox]',
@@ -1874,9 +1792,9 @@ class ContextMenuTracker {
1874
1792
  }
1875
1793
  }
1876
1794
  }
1877
- ContextMenuTracker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1878
- ContextMenuTracker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' });
1879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: ContextMenuTracker, decorators: [{
1795
+ ContextMenuTracker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1796
+ ContextMenuTracker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' });
1797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuTracker, decorators: [{
1880
1798
  type: Injectable,
1881
1799
  args: [{ providedIn: 'root' }]
1882
1800
  }] });
@@ -2088,13 +2006,13 @@ class CdkContextMenuTrigger {
2088
2006
  }
2089
2007
  }
2090
2008
  }
2091
- CdkContextMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkContextMenuTrigger, deps: [{ token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: ContextMenuTracker }, { token: CDK_CONTEXT_MENU_DEFAULT_OPTIONS }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2092
- CdkContextMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: CdkContextMenuTrigger, selector: "[cdkContextMenuTriggerFor]", inputs: { menuPanel: ["cdkContextMenuTriggerFor", "menuPanel"], disabled: ["cdkContextMenuDisabled", "disabled"] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" } }, providers: [
2009
+ CdkContextMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkContextMenuTrigger, deps: [{ token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: ContextMenuTracker }, { token: CDK_CONTEXT_MENU_DEFAULT_OPTIONS }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2010
+ CdkContextMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: CdkContextMenuTrigger, selector: "[cdkContextMenuTriggerFor]", inputs: { menuPanel: ["cdkContextMenuTriggerFor", "menuPanel"], disabled: ["cdkContextMenuDisabled", "disabled"] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" } }, providers: [
2093
2011
  // In cases where the first menu item in the context menu is a trigger the submenu opens on a
2094
2012
  // hover event. Offsetting the opened context menu by 2px prevents this from occurring.
2095
2013
  { provide: CDK_CONTEXT_MENU_DEFAULT_OPTIONS, useValue: { offsetX: 2, offsetY: 2 } },
2096
2014
  ], exportAs: ["cdkContextMenuTriggerFor"], ngImport: i0 });
2097
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
2015
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
2098
2016
  type: Directive,
2099
2017
  args: [{
2100
2018
  selector: '[cdkContextMenuTriggerFor]',
@@ -2148,8 +2066,8 @@ const EXPORTED_DECLARATIONS = [
2148
2066
  ];
2149
2067
  class CdkMenuModule {
2150
2068
  }
2151
- CdkMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2152
- CdkMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuModule, declarations: [CdkMenuBar,
2069
+ CdkMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2070
+ CdkMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuModule, declarations: [CdkMenuBar,
2153
2071
  CdkMenu,
2154
2072
  CdkMenuPanel,
2155
2073
  CdkMenuItem,
@@ -2168,8 +2086,8 @@ CdkMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
2168
2086
  CdkMenuGroup,
2169
2087
  CdkContextMenuTrigger,
2170
2088
  CdkTargetMenuAim] });
2171
- CdkMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuModule, imports: [[OverlayModule]] });
2172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: CdkMenuModule, decorators: [{
2089
+ CdkMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuModule, imports: [[OverlayModule]] });
2090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CdkMenuModule, decorators: [{
2173
2091
  type: NgModule,
2174
2092
  args: [{
2175
2093
  imports: [OverlayModule],