@angular/cdk-experimental 14.0.0-next.7 → 14.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/column-resize/index.d.ts +419 -6
  2. package/combobox/index.d.ts +123 -8
  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 +4 -4
  14. package/esm2020/column-resize/resize-strategy.mjs +10 -10
  15. package/esm2020/combobox/combobox-module.mjs +6 -7
  16. package/esm2020/combobox/combobox-popup.mjs +12 -23
  17. package/esm2020/combobox/combobox.mjs +50 -34
  18. package/esm2020/combobox/public-api.mjs +1 -2
  19. package/esm2020/listbox/listbox-module.mjs +5 -5
  20. package/esm2020/listbox/listbox.mjs +26 -44
  21. package/esm2020/popover-edit/edit-event-dispatcher.mjs +7 -7
  22. package/esm2020/popover-edit/edit-ref.mjs +4 -4
  23. package/esm2020/popover-edit/edit-services.mjs +4 -4
  24. package/esm2020/popover-edit/focus-dispatcher.mjs +4 -4
  25. package/esm2020/popover-edit/focus-escape-notifier.mjs +6 -6
  26. package/esm2020/popover-edit/lens-directives.mjs +10 -10
  27. package/esm2020/popover-edit/popover-edit-module.mjs +6 -6
  28. package/esm2020/popover-edit/popover-edit-position-strategy-factory.mjs +7 -7
  29. package/esm2020/popover-edit/table-directives.mjs +19 -19
  30. package/esm2020/scrolling/auto-size-virtual-scroll.mjs +4 -4
  31. package/esm2020/scrolling/scrolling-module.mjs +5 -5
  32. package/esm2020/selection/row-selection.mjs +4 -4
  33. package/esm2020/selection/select-all.mjs +4 -4
  34. package/esm2020/selection/selection-column.mjs +10 -10
  35. package/esm2020/selection/selection-module.mjs +5 -5
  36. package/esm2020/selection/selection-toggle.mjs +4 -4
  37. package/esm2020/selection/selection.mjs +4 -4
  38. package/esm2020/table-scroll-container/table-scroll-container-module.mjs +5 -5
  39. package/esm2020/table-scroll-container/table-scroll-container.mjs +4 -4
  40. package/esm2020/version.mjs +1 -1
  41. package/fesm2015/cdk-experimental.mjs +1 -1
  42. package/fesm2015/cdk-experimental.mjs.map +1 -1
  43. package/fesm2015/column-resize.mjs +50 -50
  44. package/fesm2015/column-resize.mjs.map +1 -1
  45. package/fesm2015/combobox.mjs +63 -106
  46. package/fesm2015/combobox.mjs.map +1 -1
  47. package/fesm2015/listbox.mjs +31 -47
  48. package/fesm2015/listbox.mjs.map +1 -1
  49. package/fesm2015/popover-edit.mjs +58 -58
  50. package/fesm2015/popover-edit.mjs.map +1 -1
  51. package/fesm2015/scrolling.mjs +7 -7
  52. package/fesm2015/scrolling.mjs.map +1 -1
  53. package/fesm2015/selection.mjs +23 -23
  54. package/fesm2015/selection.mjs.map +1 -1
  55. package/fesm2015/table-scroll-container.mjs +7 -7
  56. package/fesm2015/table-scroll-container.mjs.map +1 -1
  57. package/fesm2020/cdk-experimental.mjs +1 -1
  58. package/fesm2020/cdk-experimental.mjs.map +1 -1
  59. package/fesm2020/column-resize.mjs +50 -50
  60. package/fesm2020/column-resize.mjs.map +1 -1
  61. package/fesm2020/combobox.mjs +62 -103
  62. package/fesm2020/combobox.mjs.map +1 -1
  63. package/fesm2020/listbox.mjs +29 -46
  64. package/fesm2020/listbox.mjs.map +1 -1
  65. package/fesm2020/popover-edit.mjs +58 -58
  66. package/fesm2020/popover-edit.mjs.map +1 -1
  67. package/fesm2020/scrolling.mjs +7 -7
  68. package/fesm2020/scrolling.mjs.map +1 -1
  69. package/fesm2020/selection.mjs +23 -23
  70. package/fesm2020/selection.mjs.map +1 -1
  71. package/fesm2020/table-scroll-container.mjs +7 -7
  72. package/fesm2020/table-scroll-container.mjs.map +1 -1
  73. package/index.d.ts +6 -8
  74. package/listbox/index.d.ts +197 -8
  75. package/package.json +9 -25
  76. package/popover-edit/index.d.ts +532 -5
  77. package/scrolling/index.d.ts +173 -6
  78. package/selection/index.d.ts +273 -5
  79. package/table-scroll-container/index.d.ts +61 -5
  80. package/column-resize/column-resize-directives/column-resize-flex.d.ts +0 -28
  81. package/column-resize/column-resize-directives/column-resize.d.ts +0 -28
  82. package/column-resize/column-resize-directives/constants.d.ts +0 -10
  83. package/column-resize/column-resize-directives/default-enabled-column-resize-flex.d.ts +0 -28
  84. package/column-resize/column-resize-directives/default-enabled-column-resize.d.ts +0 -28
  85. package/column-resize/column-resize-module.d.ts +0 -23
  86. package/column-resize/column-resize-notifier.d.ts +0 -49
  87. package/column-resize/column-resize.d.ts +0 -39
  88. package/column-resize/column-resize_public_index.d.ts +0 -4
  89. package/column-resize/column-size-store.d.ts +0 -12
  90. package/column-resize/event-dispatcher.d.ts +0 -44
  91. package/column-resize/overlay-handle.d.ts +0 -43
  92. package/column-resize/package.json +0 -9
  93. package/column-resize/public-api.d.ts +0 -20
  94. package/column-resize/resizable.d.ts +0 -69
  95. package/column-resize/resize-ref.d.ts +0 -17
  96. package/column-resize/resize-strategy.d.ts +0 -83
  97. package/column-resize/selectors.d.ts +0 -10
  98. package/combobox/combobox-module.d.ts +0 -10
  99. package/combobox/combobox-panel.d.ts +0 -27
  100. package/combobox/combobox-popup.d.ts +0 -29
  101. package/combobox/combobox.d.ts +0 -71
  102. package/combobox/combobox_public_index.d.ts +0 -4
  103. package/combobox/package.json +0 -9
  104. package/combobox/public-api.d.ts +0 -11
  105. package/dialog/dialog-config.d.ts +0 -77
  106. package/dialog/dialog-container.d.ts +0 -99
  107. package/dialog/dialog-injectors.d.ts +0 -30
  108. package/dialog/dialog-module.d.ts +0 -10
  109. package/dialog/dialog-ref.d.ts +0 -57
  110. package/dialog/dialog.d.ts +0 -100
  111. package/dialog/dialog_public_index.d.ts +0 -4
  112. package/dialog/index.d.ts +0 -8
  113. package/dialog/package.json +0 -9
  114. package/dialog/public-api.d.ts +0 -13
  115. package/esm2020/combobox/combobox-panel.mjs +0 -48
  116. package/esm2020/dialog/dialog-config.mjs +0 -43
  117. package/esm2020/dialog/dialog-container.mjs +0 -295
  118. package/esm2020/dialog/dialog-injectors.mjs +0 -30
  119. package/esm2020/dialog/dialog-module.mjs +0 -56
  120. package/esm2020/dialog/dialog-ref.mjs +0 -116
  121. package/esm2020/dialog/dialog.mjs +0 -252
  122. package/esm2020/dialog/dialog_public_index.mjs +0 -5
  123. package/esm2020/dialog/index.mjs +0 -9
  124. package/esm2020/dialog/public-api.mjs +0 -14
  125. package/esm2020/menu/context-menu.mjs +0 -274
  126. package/esm2020/menu/index.mjs +0 -9
  127. package/esm2020/menu/menu-aim.mjs +0 -199
  128. package/esm2020/menu/menu-bar.mjs +0 -255
  129. package/esm2020/menu/menu-errors.mjs +0 -22
  130. package/esm2020/menu/menu-group.mjs +0 -68
  131. package/esm2020/menu/menu-interface.mjs +0 -11
  132. package/esm2020/menu/menu-item-checkbox.mjs +0 -48
  133. package/esm2020/menu/menu-item-radio.mjs +0 -97
  134. package/esm2020/menu/menu-item-selectable.mjs +0 -57
  135. package/esm2020/menu/menu-item-trigger.mjs +0 -343
  136. package/esm2020/menu/menu-item.mjs +0 -245
  137. package/esm2020/menu/menu-module.mjs +0 -60
  138. package/esm2020/menu/menu-stack.mjs +0 -110
  139. package/esm2020/menu/menu-trigger.mjs +0 -43
  140. package/esm2020/menu/menu.mjs +0 -288
  141. package/esm2020/menu/menu_public_index.mjs +0 -5
  142. package/esm2020/menu/pointer-focus-tracker.mjs +0 -49
  143. package/esm2020/menu/public-api.mjs +0 -21
  144. package/fesm2015/dialog.mjs +0 -797
  145. package/fesm2015/dialog.mjs.map +0 -1
  146. package/fesm2015/menu.mjs +0 -2106
  147. package/fesm2015/menu.mjs.map +0 -1
  148. package/fesm2020/dialog.mjs +0 -792
  149. package/fesm2020/dialog.mjs.map +0 -1
  150. package/fesm2020/menu.mjs +0 -2076
  151. package/fesm2020/menu.mjs.map +0 -1
  152. package/listbox/listbox-module.d.ts +0 -7
  153. package/listbox/listbox.d.ts +0 -169
  154. package/listbox/listbox_public_index.d.ts +0 -4
  155. package/listbox/package.json +0 -9
  156. package/listbox/public-api.d.ts +0 -9
  157. package/menu/context-menu.d.ts +0 -117
  158. package/menu/index.d.ts +0 -8
  159. package/menu/menu-aim.d.ts +0 -96
  160. package/menu/menu-bar.d.ts +0 -88
  161. package/menu/menu-errors.d.ts +0 -17
  162. package/menu/menu-group.d.ts +0 -33
  163. package/menu/menu-interface.d.ts +0 -23
  164. package/menu/menu-item-checkbox.d.ts +0 -12
  165. package/menu/menu-item-radio.d.ts +0 -36
  166. package/menu/menu-item-selectable.d.ts +0 -31
  167. package/menu/menu-item-trigger.d.ts +0 -110
  168. package/menu/menu-item.d.ts +0 -100
  169. package/menu/menu-module.d.ts +0 -16
  170. package/menu/menu-stack.d.ts +0 -79
  171. package/menu/menu-trigger.d.ts +0 -24
  172. package/menu/menu.d.ts +0 -97
  173. package/menu/menu_public_index.d.ts +0 -4
  174. package/menu/package.json +0 -9
  175. package/menu/pointer-focus-tracker.d.ts +0 -44
  176. package/menu/public-api.d.ts +0 -20
  177. package/popover-edit/constants.d.ts +0 -19
  178. package/popover-edit/edit-event-dispatcher.d.ts +0 -99
  179. package/popover-edit/edit-ref.d.ts +0 -52
  180. package/popover-edit/edit-services.d.ts +0 -37
  181. package/popover-edit/focus-dispatcher.d.ts +0 -31
  182. package/popover-edit/focus-escape-notifier.d.ts +0 -40
  183. package/popover-edit/form-value-container.d.ts +0 -24
  184. package/popover-edit/lens-directives.d.ts +0 -82
  185. package/popover-edit/package.json +0 -9
  186. package/popover-edit/polyfill.d.ts +0 -9
  187. package/popover-edit/popover-edit-module.d.ts +0 -9
  188. package/popover-edit/popover-edit-position-strategy-factory.d.ts +0 -42
  189. package/popover-edit/popover-edit_public_index.d.ts +0 -4
  190. package/popover-edit/public-api.d.ts +0 -17
  191. package/popover-edit/table-directives.d.ts +0 -150
  192. package/public-api.d.ts +0 -8
  193. package/scrolling/auto-size-virtual-scroll.d.ts +0 -160
  194. package/scrolling/package.json +0 -9
  195. package/scrolling/public-api.d.ts +0 -9
  196. package/scrolling/scrolling-module.d.ts +0 -7
  197. package/scrolling/scrolling_public_index.d.ts +0 -4
  198. package/selection/package.json +0 -9
  199. package/selection/public-api.d.ts +0 -14
  200. package/selection/row-selection.d.ts +0 -27
  201. package/selection/select-all.d.ts +0 -52
  202. package/selection/selection-column.d.ts +0 -34
  203. package/selection/selection-module.d.ts +0 -13
  204. package/selection/selection-set.d.ts +0 -56
  205. package/selection/selection-toggle.d.ts +0 -46
  206. package/selection/selection.d.ts +0 -65
  207. package/selection/selection_public_index.d.ts +0 -4
  208. package/table-scroll-container/package.json +0 -9
  209. package/table-scroll-container/public-api.d.ts +0 -9
  210. package/table-scroll-container/table-scroll-container-module.d.ts +0 -7
  211. package/table-scroll-container/table-scroll-container.d.ts +0 -53
  212. package/table-scroll-container/table-scroll-container_public_index.d.ts +0 -4
  213. package/version.d.ts +0 -10
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { forwardRef, InjectionToken, EventEmitter, Directive, Inject, Input, Output, Optional, ContentChildren, NgModule } from '@angular/core';
2
+ import { forwardRef, EventEmitter, Directive, Inject, Input, Output, Optional, ContentChildren, NgModule } from '@angular/core';
3
3
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
4
4
  import { SPACE, ENTER, UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
5
5
  import { coerceBooleanProperty, coerceArray } from '@angular/cdk/coercion';
@@ -7,8 +7,9 @@ import { SelectionModel } from '@angular/cdk/collections';
7
7
  import { defer, merge, Subject } from 'rxjs';
8
8
  import { startWith, switchMap, takeUntil } from 'rxjs/operators';
9
9
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
10
- import * as i1 from '@angular/cdk/bidi';
11
10
  import * as i2 from '@angular/cdk-experimental/combobox';
11
+ import { CDK_COMBOBOX } from '@angular/cdk-experimental/combobox';
12
+ import * as i1 from '@angular/cdk/bidi';
12
13
 
13
14
  /**
14
15
  * @license
@@ -24,7 +25,6 @@ const CDK_LISTBOX_VALUE_ACCESSOR = {
24
25
  useExisting: forwardRef(() => CdkListbox),
25
26
  multi: true,
26
27
  };
27
- const PANEL = new InjectionToken('CdkComboboxPanel');
28
28
  class CdkOption {
29
29
  constructor(_elementRef, listbox) {
30
30
  this._elementRef = _elementRef;
@@ -114,21 +114,8 @@ class CdkOption {
114
114
  }
115
115
  /** Get the label for this element which is required by the FocusableOption interface. */
116
116
  getLabel() {
117
- var _a;
118
- // we know that the current node is an element type
119
- const clone = this._elementRef.nativeElement.cloneNode(true);
120
- this._removeIcons(clone);
121
- return ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
122
- }
123
- /** Remove any child from the given element which can be identified as an icon. */
124
- _removeIcons(element) {
125
- // TODO: make this a configurable function that can removed any desired type of node.
126
- for (const icon of Array.from(element.querySelectorAll('mat-icon, .material-icons'))) {
127
- icon.remove();
128
- }
129
- }
130
- getElementRef() {
131
- return this._elementRef;
117
+ var _a, _b;
118
+ return ((_a = this.typeahead) !== null && _a !== void 0 ? _a : (_b = this._elementRef.nativeElement.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || '';
132
119
  }
133
120
  /** Sets the active property to true to enable the active css class. */
134
121
  setActiveStyles() {
@@ -139,9 +126,9 @@ class CdkOption {
139
126
  this._active = false;
140
127
  }
141
128
  }
142
- CdkOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkOption, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => CdkListbox) }], target: i0.ɵɵFactoryTarget.Directive });
143
- CdkOption.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: CdkOption, selector: "[cdkOption]", inputs: { id: "id", selected: "selected", disabled: "disabled", value: "value" }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "option" }, listeners: { "click": "toggle()", "focus": "activate()", "blur": "deactivate()" }, properties: { "id": "id", "attr.aria-selected": "selected || null", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "_isInteractionDisabled()", "class.cdk-option-disabled": "_isInteractionDisabled()", "class.cdk-option-active": "_active", "class.cdk-option-selected": "selected" }, classAttribute: "cdk-option" }, exportAs: ["cdkOption"], ngImport: i0 });
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkOption, decorators: [{
129
+ CdkOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkOption, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => CdkListbox) }], target: i0.ɵɵFactoryTarget.Directive });
130
+ CdkOption.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0-next.16", type: CdkOption, selector: "[cdkOption]", inputs: { id: "id", selected: "selected", disabled: "disabled", value: "value", typeahead: "typeahead" }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "option" }, listeners: { "click": "toggle()", "focus": "activate()", "blur": "deactivate()" }, properties: { "id": "id", "attr.aria-selected": "selected || null", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "_isInteractionDisabled()", "class.cdk-option-disabled": "_isInteractionDisabled()", "class.cdk-option-active": "_active", "class.cdk-option-selected": "selected" }, classAttribute: "cdk-option" }, exportAs: ["cdkOption"], ngImport: i0 });
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkOption, decorators: [{
145
132
  type: Directive,
146
133
  args: [{
147
134
  selector: '[cdkOption]',
@@ -174,12 +161,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6",
174
161
  type: Input
175
162
  }], value: [{
176
163
  type: Input
164
+ }], typeahead: [{
165
+ type: Input
177
166
  }], selectionChange: [{
178
167
  type: Output
179
168
  }] } });
180
169
  class CdkListbox {
181
- constructor(_parentPanel, _dir) {
182
- this._parentPanel = _parentPanel;
170
+ constructor(_combobox, _dir) {
171
+ this._combobox = _combobox;
183
172
  this._dir = _dir;
184
173
  this._tabIndex = 0;
185
174
  /** `View -> model callback called when select has been touched` */
@@ -237,9 +226,10 @@ class CdkListbox {
237
226
  this._selectionModel = new SelectionModel(this.multiple);
238
227
  }
239
228
  ngAfterContentInit() {
229
+ var _a;
240
230
  this._initKeyManager();
241
231
  this._initSelectionModel();
242
- this._registerWithPanel();
232
+ (_a = this._combobox) === null || _a === void 0 ? void 0 : _a._registerContent(this.id, 'listbox');
243
233
  this.optionSelectionChanges.subscribe(event => {
244
234
  this._emitChangeEvent(event.source);
245
235
  this._updateSelectionModel(event.source);
@@ -252,10 +242,6 @@ class CdkListbox {
252
242
  this._destroyed.next();
253
243
  this._destroyed.complete();
254
244
  }
255
- _registerWithPanel() {
256
- const panel = this._parentPanel || this._explicitPanel;
257
- panel === null || panel === void 0 ? void 0 : panel._registerContent(this.id, 'listbox');
258
- }
259
245
  _initKeyManager() {
260
246
  var _a;
261
247
  this._listKeyManager = new ActiveDescendantKeyManager(this._options)
@@ -326,12 +312,13 @@ class CdkListbox {
326
312
  option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);
327
313
  }
328
314
  _updatePanelForSelection(option) {
329
- const panel = this._parentPanel || this._explicitPanel;
330
- if (!this.multiple) {
331
- option.selected ? panel === null || panel === void 0 ? void 0 : panel.closePanel(option.value) : panel === null || panel === void 0 ? void 0 : panel.closePanel();
332
- }
333
- else {
334
- panel === null || panel === void 0 ? void 0 : panel.closePanel(this.getSelectedValues());
315
+ if (this._combobox) {
316
+ if (!this.multiple) {
317
+ this._combobox.updateAndClose(option.selected ? option.value : []);
318
+ }
319
+ else {
320
+ this._combobox.updateAndClose(this.getSelectedValues());
321
+ }
335
322
  }
336
323
  }
337
324
  /** Toggles the selected state of the active option if not disabled. */
@@ -451,9 +438,9 @@ class CdkListbox {
451
438
  }
452
439
  }
453
440
  }
454
- CdkListbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkListbox, deps: [{ token: PANEL, optional: true }, { token: i1.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
455
- CdkListbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: CdkListbox, selector: "[cdkListbox]", inputs: { id: "id", multiple: "multiple", disabled: "disabled", useActiveDescendant: "useActiveDescendant", autoFocus: "autoFocus", orientation: ["listboxOrientation", "orientation"], compareWith: "compareWith", _explicitPanel: ["parentPanel", "_explicitPanel"] }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "listbox" }, listeners: { "focus": "_focusActiveOption()", "keydown": "_keydown($event)" }, properties: { "id": "id", "attr.tabindex": "_tabIndex", "attr.aria-disabled": "disabled", "attr.aria-multiselectable": "multiple", "attr.aria-activedescendant": "_getAriaActiveDescendant()", "attr.aria-orientation": "orientation" }, classAttribute: "cdk-listbox" }, providers: [CDK_LISTBOX_VALUE_ACCESSOR], queries: [{ propertyName: "_options", predicate: CdkOption, descendants: true }], exportAs: ["cdkListbox"], ngImport: i0 });
456
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkListbox, decorators: [{
441
+ CdkListbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkListbox, deps: [{ token: CDK_COMBOBOX, optional: true }, { token: i1.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
442
+ CdkListbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0-next.16", type: CdkListbox, selector: "[cdkListbox]", inputs: { id: "id", multiple: "multiple", disabled: "disabled", useActiveDescendant: "useActiveDescendant", autoFocus: "autoFocus", orientation: ["listboxOrientation", "orientation"], compareWith: "compareWith" }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "listbox" }, listeners: { "focus": "_focusActiveOption()", "keydown": "_keydown($event)" }, properties: { "id": "id", "attr.tabindex": "_tabIndex", "attr.aria-disabled": "disabled", "attr.aria-multiselectable": "multiple", "attr.aria-activedescendant": "_getAriaActiveDescendant()", "attr.aria-orientation": "orientation" }, classAttribute: "cdk-listbox" }, providers: [CDK_LISTBOX_VALUE_ACCESSOR], queries: [{ propertyName: "_options", predicate: CdkOption, descendants: true }], exportAs: ["cdkListbox"], ngImport: i0 });
443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkListbox, decorators: [{
457
444
  type: Directive,
458
445
  args: [{
459
446
  selector: '[cdkListbox]',
@@ -473,11 +460,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6",
473
460
  providers: [CDK_LISTBOX_VALUE_ACCESSOR],
474
461
  }]
475
462
  }], ctorParameters: function () {
476
- return [{ type: i2.CdkComboboxPanel, decorators: [{
463
+ return [{ type: i2.CdkCombobox, decorators: [{
477
464
  type: Optional
478
465
  }, {
479
466
  type: Inject,
480
- args: [PANEL]
467
+ args: [CDK_COMBOBOX]
481
468
  }] }, { type: i1.Directionality, decorators: [{
482
469
  type: Optional
483
470
  }] }];
@@ -501,9 +488,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6",
501
488
  args: ['listboxOrientation']
502
489
  }], compareWith: [{
503
490
  type: Input
504
- }], _explicitPanel: [{
505
- type: Input,
506
- args: ['parentPanel']
507
491
  }] } });
508
492
 
509
493
  /**
@@ -516,10 +500,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6",
516
500
  const EXPORTED_DECLARATIONS = [CdkListbox, CdkOption];
517
501
  class CdkListboxModule {
518
502
  }
519
- CdkListboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
520
- CdkListboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkListboxModule, declarations: [CdkListbox, CdkOption], exports: [CdkListbox, CdkOption] });
521
- CdkListboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkListboxModule });
522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: CdkListboxModule, decorators: [{
503
+ CdkListboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
504
+ CdkListboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkListboxModule, declarations: [CdkListbox, CdkOption], exports: [CdkListbox, CdkOption] });
505
+ CdkListboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkListboxModule });
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkListboxModule, decorators: [{
523
507
  type: NgModule,
524
508
  args: [{
525
509
  exports: EXPORTED_DECLARATIONS,
@@ -547,5 +531,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6",
547
531
  * Generated bundle index. Do not edit.
548
532
  */
549
533
 
550
- export { CDK_LISTBOX_VALUE_ACCESSOR, CdkListbox, CdkListboxModule, CdkOption, PANEL };
534
+ export { CDK_LISTBOX_VALUE_ACCESSOR, CdkListbox, CdkListboxModule, CdkOption };
551
535
  //# sourceMappingURL=listbox.mjs.map
@@ -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: BooleanInput) {\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: BooleanInput) {\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\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: BooleanInput) {\n const coercedValue = coerceBooleanProperty(value);\n this._updateSelectionOnMultiSelectionChange(coercedValue);\n this._multiple = coercedValue;\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\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: BooleanInput) {\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: BooleanInput) {\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\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 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, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW} from '@angular/cdk/keycodes';\nimport {BooleanInput, coerceArray, coerceBooleanProperty} 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 {Directionality} from '@angular/cdk/bidi';\nimport {CDK_COMBOBOX, CdkCombobox} from '@angular/cdk-experimental/combobox';\n\nlet nextId = 0;\nlet listboxId = 0;\n\nexport const CDK_LISTBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CdkListbox),\n multi: true,\n};\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: BooleanInput) {\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: BooleanInput) {\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 /**\n * The text used to locate this item during menu typeahead. If not specified,\n * the `textContent` of the item will be used.\n */\n @Input() typeahead: string;\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 return (this.typeahead ?? this._elementRef.nativeElement.textContent?.trim()) || '';\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\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: BooleanInput) {\n const coercedValue = coerceBooleanProperty(value);\n this._updateSelectionOnMultiSelectionChange(coercedValue);\n this._multiple = coercedValue;\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\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: BooleanInput) {\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: BooleanInput) {\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 constructor(\n @Optional() @Inject(CDK_COMBOBOX) private readonly _combobox: CdkCombobox,\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._combobox?._registerContent(this.id, 'listbox');\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 _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 if (this._combobox) {\n if (!this.multiple) {\n this._combobox.updateAndClose(option.selected ? option.value : []);\n } else {\n this._combobox.updateAndClose(this.getSelectedValues());\n }\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\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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"}