@angular/cdk-experimental 14.0.0-next.1 → 14.0.0-next.12

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 (160) hide show
  1. package/column-resize/column-resize-directives/column-resize-flex.d.ts +1 -1
  2. package/column-resize/column-resize-directives/column-resize.d.ts +1 -1
  3. package/column-resize/column-resize-directives/default-enabled-column-resize-flex.d.ts +1 -1
  4. package/column-resize/column-resize-directives/default-enabled-column-resize.d.ts +1 -1
  5. package/column-resize/column-resize.d.ts +1 -1
  6. package/column-resize/overlay-handle.d.ts +1 -1
  7. package/column-resize/resizable.d.ts +1 -1
  8. package/combobox/combobox-module.d.ts +3 -4
  9. package/combobox/combobox-popup.d.ts +6 -8
  10. package/combobox/combobox.d.ts +15 -18
  11. package/combobox/public-api.d.ts +0 -1
  12. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
  13. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +4 -4
  14. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +4 -4
  15. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +4 -4
  16. package/esm2020/column-resize/column-resize-module.mjs +9 -9
  17. package/esm2020/column-resize/column-resize-notifier.mjs +7 -7
  18. package/esm2020/column-resize/column-resize.mjs +6 -5
  19. package/esm2020/column-resize/column-size-store.mjs +4 -4
  20. package/esm2020/column-resize/event-dispatcher.mjs +4 -4
  21. package/esm2020/column-resize/overlay-handle.mjs +4 -4
  22. package/esm2020/column-resize/resizable.mjs +4 -4
  23. package/esm2020/column-resize/resize-strategy.mjs +10 -10
  24. package/esm2020/combobox/combobox-module.mjs +6 -7
  25. package/esm2020/combobox/combobox-popup.mjs +12 -23
  26. package/esm2020/combobox/combobox.mjs +50 -34
  27. package/esm2020/combobox/public-api.mjs +1 -2
  28. package/esm2020/listbox/listbox-module.mjs +5 -5
  29. package/esm2020/listbox/listbox.mjs +26 -44
  30. package/esm2020/popover-edit/edit-event-dispatcher.mjs +4 -4
  31. package/esm2020/popover-edit/edit-ref.mjs +4 -4
  32. package/esm2020/popover-edit/edit-services.mjs +4 -4
  33. package/esm2020/popover-edit/focus-dispatcher.mjs +4 -4
  34. package/esm2020/popover-edit/focus-escape-notifier.mjs +4 -4
  35. package/esm2020/popover-edit/lens-directives.mjs +10 -10
  36. package/esm2020/popover-edit/popover-edit-module.mjs +5 -5
  37. package/esm2020/popover-edit/popover-edit-position-strategy-factory.mjs +7 -7
  38. package/esm2020/popover-edit/table-directives.mjs +16 -16
  39. package/esm2020/scrolling/auto-size-virtual-scroll.mjs +4 -4
  40. package/esm2020/scrolling/scrolling-module.mjs +5 -5
  41. package/esm2020/selection/row-selection.mjs +4 -4
  42. package/esm2020/selection/select-all.mjs +4 -4
  43. package/esm2020/selection/selection-column.mjs +10 -10
  44. package/esm2020/selection/selection-module.mjs +5 -5
  45. package/esm2020/selection/selection-toggle.mjs +4 -4
  46. package/esm2020/selection/selection.mjs +4 -4
  47. package/esm2020/table-scroll-container/table-scroll-container-module.mjs +5 -5
  48. package/esm2020/table-scroll-container/table-scroll-container.mjs +4 -4
  49. package/esm2020/version.mjs +1 -1
  50. package/fesm2015/cdk-experimental.mjs +1 -1
  51. package/fesm2015/cdk-experimental.mjs.map +1 -1
  52. package/fesm2015/column-resize.mjs +52 -51
  53. package/fesm2015/column-resize.mjs.map +1 -1
  54. package/fesm2015/combobox.mjs +63 -106
  55. package/fesm2015/combobox.mjs.map +1 -1
  56. package/fesm2015/listbox.mjs +31 -47
  57. package/fesm2015/listbox.mjs.map +1 -1
  58. package/fesm2015/popover-edit.mjs +49 -49
  59. package/fesm2015/popover-edit.mjs.map +1 -1
  60. package/fesm2015/scrolling.mjs +7 -7
  61. package/fesm2015/scrolling.mjs.map +1 -1
  62. package/fesm2015/selection.mjs +23 -23
  63. package/fesm2015/selection.mjs.map +1 -1
  64. package/fesm2015/table-scroll-container.mjs +7 -7
  65. package/fesm2015/table-scroll-container.mjs.map +1 -1
  66. package/fesm2020/cdk-experimental.mjs +1 -1
  67. package/fesm2020/cdk-experimental.mjs.map +1 -1
  68. package/fesm2020/column-resize.mjs +52 -51
  69. package/fesm2020/column-resize.mjs.map +1 -1
  70. package/fesm2020/combobox.mjs +62 -103
  71. package/fesm2020/combobox.mjs.map +1 -1
  72. package/fesm2020/listbox.mjs +29 -46
  73. package/fesm2020/listbox.mjs.map +1 -1
  74. package/fesm2020/popover-edit.mjs +49 -49
  75. package/fesm2020/popover-edit.mjs.map +1 -1
  76. package/fesm2020/scrolling.mjs +7 -7
  77. package/fesm2020/scrolling.mjs.map +1 -1
  78. package/fesm2020/selection.mjs +23 -23
  79. package/fesm2020/selection.mjs.map +1 -1
  80. package/fesm2020/table-scroll-container.mjs +7 -7
  81. package/fesm2020/table-scroll-container.mjs.map +1 -1
  82. package/listbox/listbox.d.ts +16 -13
  83. package/package.json +3 -19
  84. package/popover-edit/lens-directives.d.ts +3 -3
  85. package/popover-edit/table-directives.d.ts +5 -5
  86. package/scrolling/auto-size-virtual-scroll.d.ts +1 -1
  87. package/selection/row-selection.d.ts +1 -1
  88. package/selection/select-all.d.ts +1 -1
  89. package/selection/selection-column.d.ts +1 -1
  90. package/selection/selection-toggle.d.ts +1 -1
  91. package/selection/selection.d.ts +1 -1
  92. package/table-scroll-container/table-scroll-container.d.ts +1 -1
  93. package/combobox/combobox-panel.d.ts +0 -27
  94. package/dialog/dialog-config.d.ts +0 -77
  95. package/dialog/dialog-container.d.ts +0 -99
  96. package/dialog/dialog-injectors.d.ts +0 -30
  97. package/dialog/dialog-module.d.ts +0 -10
  98. package/dialog/dialog-ref.d.ts +0 -57
  99. package/dialog/dialog.d.ts +0 -100
  100. package/dialog/dialog_public_index.d.ts +0 -4
  101. package/dialog/index.d.ts +0 -8
  102. package/dialog/package.json +0 -9
  103. package/dialog/public-api.d.ts +0 -13
  104. package/esm2020/combobox/combobox-panel.mjs +0 -48
  105. package/esm2020/dialog/dialog-config.mjs +0 -43
  106. package/esm2020/dialog/dialog-container.mjs +0 -283
  107. package/esm2020/dialog/dialog-injectors.mjs +0 -30
  108. package/esm2020/dialog/dialog-module.mjs +0 -56
  109. package/esm2020/dialog/dialog-ref.mjs +0 -116
  110. package/esm2020/dialog/dialog.mjs +0 -252
  111. package/esm2020/dialog/dialog_public_index.mjs +0 -5
  112. package/esm2020/dialog/index.mjs +0 -9
  113. package/esm2020/dialog/public-api.mjs +0 -14
  114. package/esm2020/menu/context-menu.mjs +0 -294
  115. package/esm2020/menu/index.mjs +0 -9
  116. package/esm2020/menu/menu-aim.mjs +0 -199
  117. package/esm2020/menu/menu-bar.mjs +0 -252
  118. package/esm2020/menu/menu-errors.mjs +0 -30
  119. package/esm2020/menu/menu-group.mjs +0 -68
  120. package/esm2020/menu/menu-interface.mjs +0 -11
  121. package/esm2020/menu/menu-item-checkbox.mjs +0 -48
  122. package/esm2020/menu/menu-item-radio.mjs +0 -90
  123. package/esm2020/menu/menu-item-selectable.mjs +0 -57
  124. package/esm2020/menu/menu-item-trigger.mjs +0 -361
  125. package/esm2020/menu/menu-item.mjs +0 -244
  126. package/esm2020/menu/menu-module.mjs +0 -64
  127. package/esm2020/menu/menu-panel.mjs +0 -37
  128. package/esm2020/menu/menu-stack.mjs +0 -106
  129. package/esm2020/menu/menu.mjs +0 -301
  130. package/esm2020/menu/menu_public_index.mjs +0 -5
  131. package/esm2020/menu/pointer-focus-tracker.mjs +0 -49
  132. package/esm2020/menu/public-api.mjs +0 -21
  133. package/fesm2015/dialog.mjs +0 -785
  134. package/fesm2015/dialog.mjs.map +0 -1
  135. package/fesm2015/menu.mjs +0 -2162
  136. package/fesm2015/menu.mjs.map +0 -1
  137. package/fesm2020/dialog.mjs +0 -780
  138. package/fesm2020/dialog.mjs.map +0 -1
  139. package/fesm2020/menu.mjs +0 -2127
  140. package/fesm2020/menu.mjs.map +0 -1
  141. package/menu/context-menu.d.ts +0 -123
  142. package/menu/index.d.ts +0 -8
  143. package/menu/menu-aim.d.ts +0 -96
  144. package/menu/menu-bar.d.ts +0 -88
  145. package/menu/menu-errors.d.ts +0 -22
  146. package/menu/menu-group.d.ts +0 -33
  147. package/menu/menu-interface.d.ts +0 -23
  148. package/menu/menu-item-checkbox.d.ts +0 -12
  149. package/menu/menu-item-radio.d.ts +0 -35
  150. package/menu/menu-item-selectable.d.ts +0 -31
  151. package/menu/menu-item-trigger.d.ts +0 -119
  152. package/menu/menu-item.d.ts +0 -100
  153. package/menu/menu-module.d.ts +0 -17
  154. package/menu/menu-panel.d.ts +0 -30
  155. package/menu/menu-stack.d.ts +0 -78
  156. package/menu/menu.d.ts +0 -113
  157. package/menu/menu_public_index.d.ts +0 -4
  158. package/menu/package.json +0 -9
  159. package/menu/pointer-focus-tracker.d.ts +0 -44
  160. package/menu/public-api.d.ts +0 -20
@@ -1,20 +1,30 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Directive, Optional, Input, Output, InjectionToken, Inject, NgModule } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, Directive, Inject, Optional, Input, Output, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/cdk/overlay';
4
4
  import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
5
+ import { DOCUMENT } from '@angular/common';
5
6
  import { TemplatePortal } from '@angular/cdk/portal';
6
7
  import { coerceBooleanProperty, coerceArray } from '@angular/cdk/coercion';
7
8
  import { _getEventTarget } from '@angular/cdk/platform';
8
9
  import { DOWN_ARROW, ENTER, ESCAPE, TAB } from '@angular/cdk/keycodes';
9
10
  import * as i2 from '@angular/cdk/bidi';
10
- import { Subject } from 'rxjs';
11
11
 
12
+ /**
13
+ * @license
14
+ * Copyright Google LLC All Rights Reserved.
15
+ *
16
+ * Use of this source code is governed by an MIT-style license that can be
17
+ * found in the LICENSE file at https://angular.io/license
18
+ */
12
19
  const allowedOpenActions = ['focus', 'click', 'downKey', 'toggle'];
20
+ const CDK_COMBOBOX = new InjectionToken('CDK_COMBOBOX');
13
21
  class CdkCombobox {
14
- constructor(_elementRef, _overlay, _viewContainerRef, _directionality) {
22
+ constructor(_elementRef, _overlay, _viewContainerRef, _injector, _doc, _directionality) {
15
23
  this._elementRef = _elementRef;
16
24
  this._overlay = _overlay;
17
25
  this._viewContainerRef = _viewContainerRef;
26
+ this._injector = _injector;
27
+ this._doc = _doc;
18
28
  this._directionality = _directionality;
19
29
  this._disabled = false;
20
30
  this._openActions = ['click'];
@@ -24,12 +34,6 @@ class CdkCombobox {
24
34
  this.panelValueChanged = new EventEmitter();
25
35
  this.contentId = '';
26
36
  }
27
- get panel() {
28
- return this._panel;
29
- }
30
- set panel(panel) {
31
- this._panel = panel;
32
- }
33
37
  get disabled() {
34
38
  return this._disabled;
35
39
  }
@@ -49,19 +53,6 @@ class CdkCombobox {
49
53
  set autoSetText(value) {
50
54
  this._autoSetText = coerceBooleanProperty(value);
51
55
  }
52
- ngAfterContentInit() {
53
- var _a, _b, _c;
54
- (_a = this._panel) === null || _a === void 0 ? void 0 : _a.valueUpdated.subscribe(data => {
55
- this._setComboboxValue(data);
56
- this.close();
57
- });
58
- (_b = this._panel) === null || _b === void 0 ? void 0 : _b.contentIdUpdated.subscribe(id => {
59
- this.contentId = id;
60
- });
61
- (_c = this._panel) === null || _c === void 0 ? void 0 : _c.contentTypeUpdated.subscribe(type => {
62
- this.contentType = type;
63
- });
64
- }
65
56
  ngOnDestroy() {
66
57
  if (this._overlayRef) {
67
58
  this._overlayRef.dispose();
@@ -75,7 +66,8 @@ class CdkCombobox {
75
66
  const { keyCode } = event;
76
67
  if (keyCode === DOWN_ARROW) {
77
68
  if (this.isOpen()) {
78
- (_a = this._panel) === null || _a === void 0 ? void 0 : _a.focusContent();
69
+ // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping
70
+ (_a = this._doc.getElementById(this.contentId)) === null || _a === void 0 ? void 0 : _a.focus();
79
71
  }
80
72
  else if (this._openActions.indexOf('downKey') !== -1) {
81
73
  this.open();
@@ -140,7 +132,8 @@ class CdkCombobox {
140
132
  this._overlayRef = this._overlayRef || this._overlay.create(this._getOverlayConfig());
141
133
  this._overlayRef.attach(this._getPanelContent());
142
134
  if (!this._isTextTrigger()) {
143
- (_a = this._panel) === null || _a === void 0 ? void 0 : _a.focusContent();
135
+ // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping
136
+ (_a = this._doc.getElementById(this.contentId)) === null || _a === void 0 ? void 0 : _a.focus();
144
137
  }
145
138
  }
146
139
  }
@@ -157,7 +150,7 @@ class CdkCombobox {
157
150
  }
158
151
  /** Returns true if combobox has a child panel. */
159
152
  hasPanel() {
160
- return !!this.panel;
153
+ return !!this._panelTemplateRef;
161
154
  }
162
155
  _getTabIndex() {
163
156
  return this.disabled ? null : '0';
@@ -172,6 +165,10 @@ class CdkCombobox {
172
165
  }
173
166
  }
174
167
  }
168
+ updateAndClose(value) {
169
+ this._setComboboxValue(value);
170
+ this.close();
171
+ }
175
172
  _setTextContent(content) {
176
173
  const contentArray = coerceArray(content);
177
174
  this._elementRef.nativeElement.textContent = contentArray.join(' ');
@@ -202,13 +199,16 @@ class CdkCombobox {
202
199
  { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },
203
200
  ];
204
201
  }
202
+ _getPanelInjector() {
203
+ return this._injector;
204
+ }
205
205
  _getPanelContent() {
206
- var _a, _b;
207
- const hasPanelChanged = ((_a = this._panel) === null || _a === void 0 ? void 0 : _a._templateRef) !== ((_b = this._panelContent) === null || _b === void 0 ? void 0 : _b.templateRef);
208
- if (this._panel && (!this._panel || hasPanelChanged)) {
209
- this._panelContent = new TemplatePortal(this._panel._templateRef, this._viewContainerRef);
206
+ var _a;
207
+ const hasPanelChanged = this._panelTemplateRef !== ((_a = this._panelPortal) === null || _a === void 0 ? void 0 : _a.templateRef);
208
+ if (this._panelTemplateRef && (!this._panelPortal || hasPanelChanged)) {
209
+ this._panelPortal = new TemplatePortal(this._panelTemplateRef, this._viewContainerRef, undefined, this._getPanelInjector());
210
210
  }
211
- return this._panelContent;
211
+ return this._panelPortal;
212
212
  }
213
213
  _coerceOpenActionProperty(input) {
214
214
  let actions = typeof input === 'string' ? input.trim().split(/[ ,]+/) : input;
@@ -218,10 +218,20 @@ class CdkCombobox {
218
218
  }
219
219
  return actions;
220
220
  }
221
+ /** Registers the content's id and the content type with the panel. */
222
+ _registerContent(contentId, contentType) {
223
+ if ((typeof ngDevMode === 'undefined' || ngDevMode) &&
224
+ contentType !== 'listbox' &&
225
+ contentType !== 'dialog') {
226
+ throw Error('CdkComboboxPanel currently only supports listbox or dialog content.');
227
+ }
228
+ this.contentId = contentId;
229
+ this.contentType = contentType;
230
+ }
221
231
  }
222
- CdkCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkCombobox, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
223
- CdkCombobox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: CdkCombobox, selector: "[cdkCombobox]", inputs: { panel: ["cdkComboboxTriggerFor", "panel"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, exportAs: ["cdkCombobox"], ngImport: i0 });
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkCombobox, decorators: [{
232
+ CdkCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkCombobox, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: DOCUMENT }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
233
+ CdkCombobox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.14", type: CdkCombobox, selector: "[cdkCombobox]", inputs: { _panelTemplateRef: ["cdkComboboxTriggerFor", "_panelTemplateRef"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }], exportAs: ["cdkCombobox"], ngImport: i0 });
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkCombobox, decorators: [{
225
235
  type: Directive,
226
236
  args: [{
227
237
  selector: '[cdkCombobox]',
@@ -239,12 +249,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
239
249
  '[attr.aria-expanded]': 'isOpen()',
240
250
  '[attr.tabindex]': '_getTabIndex()',
241
251
  },
252
+ providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }],
242
253
  }]
243
254
  }], ctorParameters: function () {
244
- return [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.Directionality, decorators: [{
255
+ return [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: undefined, decorators: [{
256
+ type: Inject,
257
+ args: [DOCUMENT]
258
+ }] }, { type: i2.Directionality, decorators: [{
245
259
  type: Optional
246
260
  }] }];
247
- }, propDecorators: { panel: [{
261
+ }, propDecorators: { _panelTemplateRef: [{
248
262
  type: Input,
249
263
  args: ['cdkComboboxTriggerFor']
250
264
  }], value: [{
@@ -266,52 +280,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
266
280
  args: ['panelValueChanged']
267
281
  }] } });
268
282
 
269
- class CdkComboboxPanel {
270
- constructor(_templateRef) {
271
- this._templateRef = _templateRef;
272
- this.valueUpdated = new Subject();
273
- this.contentIdUpdated = new Subject();
274
- this.contentTypeUpdated = new Subject();
275
- this.contentId = '';
276
- }
277
- /** Tells the parent combobox to close the panel and sends back the content value. */
278
- closePanel(data) {
279
- this.valueUpdated.next(data || []);
280
- }
281
- // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping
282
- focusContent() {
283
- var _a;
284
- // TODO: Use an injected document here
285
- (_a = document.getElementById(this.contentId)) === null || _a === void 0 ? void 0 : _a.focus();
286
- }
287
- /** Registers the content's id and the content type with the panel. */
288
- _registerContent(contentId, contentType) {
289
- // If content has already been registered, no further contentIds are registered.
290
- if (this.contentType && this.contentType !== contentType) {
291
- return;
292
- }
293
- this.contentId = contentId;
294
- if (contentType !== 'listbox' && contentType !== 'dialog') {
295
- throw Error('CdkComboboxPanel currently only supports listbox or dialog content.');
296
- }
297
- this.contentType = contentType;
298
- this.contentIdUpdated.next(this.contentId);
299
- this.contentTypeUpdated.next(this.contentType);
300
- }
301
- }
302
- CdkComboboxPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxPanel, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
303
- CdkComboboxPanel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: CdkComboboxPanel, selector: "ng-template[cdkComboboxPanel]", host: { classAttribute: "cdk-combobox-panel" }, exportAs: ["cdkComboboxPanel"], ngImport: i0 });
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxPanel, decorators: [{
305
- type: Directive,
306
- args: [{
307
- host: {
308
- 'class': 'cdk-combobox-panel',
309
- },
310
- selector: 'ng-template[cdkComboboxPanel]',
311
- exportAs: 'cdkComboboxPanel',
312
- }]
313
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
314
-
315
283
  /**
316
284
  * @license
317
285
  * Copyright Google LLC All Rights Reserved.
@@ -319,12 +287,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
319
287
  * Use of this source code is governed by an MIT-style license that can be
320
288
  * found in the LICENSE file at https://angular.io/license
321
289
  */
322
- const PANEL = new InjectionToken('CdkComboboxPanel');
323
290
  let nextId = 0;
324
291
  class CdkComboboxPopup {
325
- constructor(_elementRef, _parentPanel) {
292
+ constructor(_elementRef, _combobox) {
326
293
  this._elementRef = _elementRef;
327
- this._parentPanel = _parentPanel;
294
+ this._combobox = _combobox;
328
295
  this._role = 'dialog';
329
296
  this.id = `cdk-combobox-popup-${nextId++}`;
330
297
  }
@@ -344,12 +311,7 @@ class CdkComboboxPopup {
344
311
  this.registerWithPanel();
345
312
  }
346
313
  registerWithPanel() {
347
- if (this._parentPanel === null || this._parentPanel === undefined) {
348
- this._explicitPanel._registerContent(this.id, this._role);
349
- }
350
- else {
351
- this._parentPanel._registerContent(this.id, this._role);
352
- }
314
+ this._combobox._registerContent(this.id, this._role);
353
315
  }
354
316
  focusFirstElement() {
355
317
  if (this._firstFocusElement) {
@@ -360,9 +322,9 @@ class CdkComboboxPopup {
360
322
  }
361
323
  }
362
324
  }
363
- CdkComboboxPopup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxPopup, deps: [{ token: i0.ElementRef }, { token: PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
364
- CdkComboboxPopup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: CdkComboboxPopup, selector: "[cdkComboboxPopup]", inputs: { role: "role", firstFocus: "firstFocus", id: "id", _explicitPanel: ["parentPanel", "_explicitPanel"] }, host: { attributes: { "tabindex": "-1" }, listeners: { "focus": "focusFirstElement()" }, properties: { "attr.role": "role", "id": "id" }, classAttribute: "cdk-combobox-popup" }, exportAs: ["cdkComboboxPopup"], ngImport: i0 });
365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxPopup, decorators: [{
325
+ CdkComboboxPopup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkComboboxPopup, deps: [{ token: i0.ElementRef }, { token: CDK_COMBOBOX }], target: i0.ɵɵFactoryTarget.Directive });
326
+ CdkComboboxPopup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.14", type: CdkComboboxPopup, selector: "[cdkComboboxPopup]", inputs: { role: "role", firstFocus: "firstFocus", id: "id" }, host: { attributes: { "tabindex": "-1" }, listeners: { "focus": "focusFirstElement()" }, properties: { "attr.role": "role", "id": "id" }, classAttribute: "cdk-combobox-popup" }, exportAs: ["cdkComboboxPopup"], ngImport: i0 });
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkComboboxPopup, decorators: [{
366
328
  type: Directive,
367
329
  args: [{
368
330
  selector: '[cdkComboboxPopup]',
@@ -376,11 +338,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
376
338
  },
377
339
  }]
378
340
  }], ctorParameters: function () {
379
- return [{ type: i0.ElementRef }, { type: CdkComboboxPanel, decorators: [{
380
- type: Optional
381
- }, {
341
+ return [{ type: i0.ElementRef }, { type: CdkCombobox, decorators: [{
382
342
  type: Inject,
383
- args: [PANEL]
343
+ args: [CDK_COMBOBOX]
384
344
  }] }];
385
345
  }, propDecorators: { role: [{
386
346
  type: Input
@@ -388,9 +348,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
388
348
  type: Input
389
349
  }], id: [{
390
350
  type: Input
391
- }], _explicitPanel: [{
392
- type: Input,
393
- args: ['parentPanel']
394
351
  }] } });
395
352
 
396
353
  /**
@@ -400,13 +357,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
400
357
  * Use of this source code is governed by an MIT-style license that can be
401
358
  * found in the LICENSE file at https://angular.io/license
402
359
  */
403
- const EXPORTED_DECLARATIONS = [CdkCombobox, CdkComboboxPanel, CdkComboboxPopup];
360
+ const EXPORTED_DECLARATIONS = [CdkCombobox, CdkComboboxPopup];
404
361
  class CdkComboboxModule {
405
362
  }
406
- CdkComboboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
407
- CdkComboboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxModule, declarations: [CdkCombobox, CdkComboboxPanel, CdkComboboxPopup], imports: [OverlayModule], exports: [CdkCombobox, CdkComboboxPanel, CdkComboboxPopup] });
408
- CdkComboboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxModule, imports: [[OverlayModule]] });
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkComboboxModule, decorators: [{
363
+ CdkComboboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
364
+ CdkComboboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkComboboxModule, declarations: [CdkCombobox, CdkComboboxPopup], imports: [OverlayModule], exports: [CdkCombobox, CdkComboboxPopup] });
365
+ CdkComboboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkComboboxModule, imports: [[OverlayModule]] });
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkComboboxModule, decorators: [{
410
367
  type: NgModule,
411
368
  args: [{
412
369
  imports: [OverlayModule],
@@ -435,5 +392,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
435
392
  * Generated bundle index. Do not edit.
436
393
  */
437
394
 
438
- export { CdkCombobox, CdkComboboxModule, CdkComboboxPanel, CdkComboboxPopup, PANEL };
395
+ export { CDK_COMBOBOX, CdkCombobox, CdkComboboxModule, CdkComboboxPopup };
439
396
  //# sourceMappingURL=combobox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.mjs","sources":["../../../../../../src/cdk-experimental/combobox/combobox.ts","../../../../../../src/cdk-experimental/combobox/combobox-panel.ts","../../../../../../src/cdk-experimental/combobox/combobox-popup.ts","../../../../../../src/cdk-experimental/combobox/combobox-module.ts","../../../../../../src/cdk-experimental/combobox/public-api.ts","../../../../../../src/cdk-experimental/combobox/index.ts","../../../../../../src/cdk-experimental/combobox/combobox_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\nexport type OpenAction = 'focus' | 'click' | 'downKey' | 'toggle';\nexport type OpenActionInput = OpenAction | OpenAction[] | string | null | undefined;\n\nimport {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport {CdkComboboxPanel, AriaHasPopupValue} from './combobox-panel';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BooleanInput, coerceBooleanProperty, coerceArray} from '@angular/cdk/coercion';\nimport {_getEventTarget} from '@angular/cdk/platform';\nimport {DOWN_ARROW, ENTER, ESCAPE, TAB} from '@angular/cdk/keycodes';\n\nconst allowedOpenActions = ['focus', 'click', 'downKey', 'toggle'];\n\n@Directive({\n selector: '[cdkCombobox]',\n exportAs: 'cdkCombobox',\n host: {\n 'role': 'combobox',\n 'class': 'cdk-combobox',\n '(click)': '_handleInteractions(\"click\")',\n '(focus)': '_handleInteractions(\"focus\")',\n '(keydown)': '_keydown($event)',\n '(document:click)': '_attemptClose($event)',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-owns]': 'contentId',\n '[attr.aria-haspopup]': 'contentType',\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.tabindex]': '_getTabIndex()',\n },\n})\nexport class CdkCombobox<T = unknown> implements OnDestroy, AfterContentInit {\n @Input('cdkComboboxTriggerFor')\n get panel(): CdkComboboxPanel<T> | undefined {\n return this._panel;\n }\n set panel(panel: CdkComboboxPanel<T> | undefined) {\n this._panel = panel;\n }\n private _panel: CdkComboboxPanel<T> | undefined;\n\n @Input()\n value: T | T[];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean = false;\n\n @Input()\n get openActions(): OpenAction[] {\n return this._openActions;\n }\n set openActions(action: OpenActionInput) {\n this._openActions = this._coerceOpenActionProperty(action);\n }\n private _openActions: OpenAction[] = ['click'];\n\n /** Whether the textContent is automatically updated upon change of the combobox value. */\n @Input()\n get autoSetText(): boolean {\n return this._autoSetText;\n }\n set autoSetText(value: BooleanInput) {\n this._autoSetText = coerceBooleanProperty(value);\n }\n private _autoSetText: boolean = true;\n\n @Output('comboboxPanelOpened') readonly opened: EventEmitter<void> = new EventEmitter<void>();\n @Output('comboboxPanelClosed') readonly closed: EventEmitter<void> = new EventEmitter<void>();\n @Output('panelValueChanged') readonly panelValueChanged: EventEmitter<T[]> = new EventEmitter<\n T[]\n >();\n\n private _overlayRef: OverlayRef;\n private _panelContent: TemplatePortal;\n contentId: string = '';\n contentType: AriaHasPopupValue;\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _overlay: Overlay,\n protected readonly _viewContainerRef: ViewContainerRef,\n @Optional() private readonly _directionality?: Directionality,\n ) {}\n\n ngAfterContentInit() {\n this._panel?.valueUpdated.subscribe(data => {\n this._setComboboxValue(data);\n this.close();\n });\n\n this._panel?.contentIdUpdated.subscribe(id => {\n this.contentId = id;\n });\n\n this._panel?.contentTypeUpdated.subscribe(type => {\n this.contentType = type;\n });\n }\n\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n\n this.opened.complete();\n this.closed.complete();\n this.panelValueChanged.complete();\n }\n\n _keydown(event: KeyboardEvent) {\n const {keyCode} = event;\n\n if (keyCode === DOWN_ARROW) {\n if (this.isOpen()) {\n this._panel?.focusContent();\n } else if (this._openActions.indexOf('downKey') !== -1) {\n this.open();\n }\n } else if (keyCode === ENTER) {\n if (this._openActions.indexOf('toggle') !== -1) {\n this.toggle();\n } else if (this._openActions.indexOf('click') !== -1) {\n this.open();\n }\n } else if (keyCode === ESCAPE) {\n event.preventDefault();\n this.close();\n } else if (keyCode === TAB) {\n this.close();\n }\n }\n\n /** Handles click or focus interactions. */\n _handleInteractions(interaction: OpenAction) {\n if (interaction === 'click') {\n if (this._openActions.indexOf('toggle') !== -1) {\n this.toggle();\n } else if (this._openActions.indexOf('click') !== -1) {\n this.open();\n }\n } else if (interaction === 'focus') {\n if (this._openActions.indexOf('focus') !== -1) {\n this.open();\n }\n }\n }\n\n /** Given a click in the document, determines if the click was inside a combobox. */\n _attemptClose(event: MouseEvent) {\n if (this.isOpen()) {\n let target = _getEventTarget(event);\n while (target instanceof Element) {\n if (target.className.indexOf('cdk-combobox') !== -1) {\n return;\n }\n target = target.parentElement;\n }\n }\n\n this.close();\n }\n\n /** Toggles the open state of the panel. */\n toggle() {\n if (this.hasPanel()) {\n this.isOpen() ? this.close() : this.open();\n }\n }\n\n /** If the combobox is closed and not disabled, opens the panel. */\n open() {\n if (!this.isOpen() && !this.disabled) {\n this.opened.next();\n this._overlayRef = this._overlayRef || this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getPanelContent());\n if (!this._isTextTrigger()) {\n this._panel?.focusContent();\n }\n }\n }\n\n /** If the combobox is open and not disabled, closes the panel. */\n close() {\n if (this.isOpen() && !this.disabled) {\n this.closed.next();\n this._overlayRef.detach();\n }\n }\n\n /** Returns true if panel is currently opened. */\n isOpen(): boolean {\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\n }\n\n /** Returns true if combobox has a child panel. */\n hasPanel(): boolean {\n return !!this.panel;\n }\n\n _getTabIndex(): string | null {\n return this.disabled ? null : '0';\n }\n\n private _setComboboxValue(value: T | T[]) {\n const valueChanged = this.value !== value;\n this.value = value;\n\n if (valueChanged) {\n this.panelValueChanged.emit(coerceArray(value));\n if (this._autoSetText) {\n this._setTextContent(value);\n }\n }\n }\n\n private _setTextContent(content: T | T[]) {\n const contentArray = coerceArray(content);\n this._elementRef.nativeElement.textContent = contentArray.join(' ');\n }\n\n private _isTextTrigger() {\n // TODO: Should check if the trigger is contenteditable.\n const tagName = this._elementRef.nativeElement.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'textarea' ? true : false;\n }\n\n private _getOverlayConfig() {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPositionStrategy(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n direction: this._directionality,\n });\n }\n\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions(this._getOverlayPositions());\n }\n\n private _getOverlayPositions(): ConnectedPosition[] {\n return [\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'},\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'},\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\n ];\n }\n\n private _getPanelContent() {\n const hasPanelChanged = this._panel?._templateRef !== this._panelContent?.templateRef;\n if (this._panel && (!this._panel || hasPanelChanged)) {\n this._panelContent = new TemplatePortal(this._panel._templateRef, this._viewContainerRef);\n }\n\n return this._panelContent;\n }\n\n private _coerceOpenActionProperty(input: OpenActionInput): OpenAction[] {\n let actions = typeof input === 'string' ? input.trim().split(/[ ,]+/) : input;\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n actions?.some(a => allowedOpenActions.indexOf(a) === -1)\n ) {\n throw Error(`${input} is not a support open action for CdkCombobox`);\n }\n return actions as OpenAction[];\n }\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\nexport type AriaHasPopupValue = 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n\nimport {Directive, TemplateRef} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Directive({\n host: {\n 'class': 'cdk-combobox-panel',\n },\n selector: 'ng-template[cdkComboboxPanel]',\n exportAs: 'cdkComboboxPanel',\n})\nexport class CdkComboboxPanel<T = unknown> {\n valueUpdated: Subject<T | T[]> = new Subject<T | T[]>();\n contentIdUpdated: Subject<string> = new Subject<string>();\n contentTypeUpdated: Subject<AriaHasPopupValue> = new Subject<AriaHasPopupValue>();\n\n contentId: string = '';\n contentType: AriaHasPopupValue;\n\n constructor(readonly _templateRef: TemplateRef<unknown>) {}\n\n /** Tells the parent combobox to close the panel and sends back the content value. */\n closePanel(data?: T | T[]) {\n this.valueUpdated.next(data || []);\n }\n\n // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping\n focusContent() {\n // TODO: Use an injected document here\n document.getElementById(this.contentId)?.focus();\n }\n\n /** Registers the content's id and the content type with the panel. */\n _registerContent(contentId: string, contentType: AriaHasPopupValue) {\n // If content has already been registered, no further contentIds are registered.\n if (this.contentType && this.contentType !== contentType) {\n return;\n }\n\n this.contentId = contentId;\n if (contentType !== 'listbox' && contentType !== 'dialog') {\n throw Error('CdkComboboxPanel currently only supports listbox or dialog content.');\n }\n this.contentType = contentType;\n\n this.contentIdUpdated.next(this.contentId);\n this.contentTypeUpdated.next(this.contentType);\n }\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 {\n Directive,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {AriaHasPopupValue, CdkComboboxPanel} from './combobox-panel';\n\nexport const PANEL = new InjectionToken<CdkComboboxPanel>('CdkComboboxPanel');\n\nlet nextId = 0;\n\n@Directive({\n selector: '[cdkComboboxPopup]',\n exportAs: 'cdkComboboxPopup',\n host: {\n 'class': 'cdk-combobox-popup',\n '[attr.role]': 'role',\n '[id]': 'id',\n 'tabindex': '-1',\n '(focus)': 'focusFirstElement()',\n },\n})\nexport class CdkComboboxPopup<T = unknown> implements OnInit {\n @Input()\n get role(): AriaHasPopupValue {\n return this._role;\n }\n set role(value: AriaHasPopupValue) {\n this._role = value;\n }\n private _role: AriaHasPopupValue = 'dialog';\n\n @Input()\n get firstFocus(): HTMLElement {\n return this._firstFocusElement;\n }\n set firstFocus(id: HTMLElement) {\n this._firstFocusElement = id;\n }\n private _firstFocusElement: HTMLElement;\n\n @Input() id = `cdk-combobox-popup-${nextId++}`;\n\n @Input('parentPanel') private readonly _explicitPanel: CdkComboboxPanel;\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Optional() @Inject(PANEL) readonly _parentPanel?: CdkComboboxPanel<T>,\n ) {}\n\n ngOnInit() {\n this.registerWithPanel();\n }\n\n registerWithPanel(): void {\n if (this._parentPanel === null || this._parentPanel === undefined) {\n this._explicitPanel._registerContent(this.id, this._role);\n } else {\n this._parentPanel._registerContent(this.id, this._role);\n }\n }\n\n focusFirstElement() {\n if (this._firstFocusElement) {\n this._firstFocusElement.focus();\n } else {\n this._elementRef.nativeElement.focus();\n }\n }\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 {OverlayModule} from '@angular/cdk/overlay';\nimport {CdkCombobox} from './combobox';\nimport {CdkComboboxPanel} from './combobox-panel';\nimport {CdkComboboxPopup} from './combobox-popup';\n\nconst EXPORTED_DECLARATIONS = [CdkCombobox, CdkComboboxPanel, CdkComboboxPopup];\n@NgModule({\n imports: [OverlayModule],\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n})\nexport class CdkComboboxModule {}\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 './combobox-module';\nexport * from './combobox';\nexport * from './combobox-panel';\nexport * from './combobox-popup';\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":"combobox.mjs","sources":["../../../../../../src/cdk-experimental/combobox/combobox.ts","../../../../../../src/cdk-experimental/combobox/combobox-popup.ts","../../../../../../src/cdk-experimental/combobox/combobox-module.ts","../../../../../../src/cdk-experimental/combobox/public-api.ts","../../../../../../src/cdk-experimental/combobox/index.ts","../../../../../../src/cdk-experimental/combobox/combobox_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 */\nimport {DOCUMENT} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BooleanInput, coerceArray, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {_getEventTarget} from '@angular/cdk/platform';\nimport {DOWN_ARROW, ENTER, ESCAPE, TAB} from '@angular/cdk/keycodes';\n\nexport type AriaHasPopupValue = 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\nexport type OpenAction = 'focus' | 'click' | 'downKey' | 'toggle';\nexport type OpenActionInput = OpenAction | OpenAction[] | string | null | undefined;\n\nconst allowedOpenActions = ['focus', 'click', 'downKey', 'toggle'];\n\nexport const CDK_COMBOBOX = new InjectionToken<CdkCombobox>('CDK_COMBOBOX');\n\n@Directive({\n selector: '[cdkCombobox]',\n exportAs: 'cdkCombobox',\n host: {\n 'role': 'combobox',\n 'class': 'cdk-combobox',\n '(click)': '_handleInteractions(\"click\")',\n '(focus)': '_handleInteractions(\"focus\")',\n '(keydown)': '_keydown($event)',\n '(document:click)': '_attemptClose($event)',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-owns]': 'contentId',\n '[attr.aria-haspopup]': 'contentType',\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.tabindex]': '_getTabIndex()',\n },\n providers: [{provide: CDK_COMBOBOX, useExisting: CdkCombobox}],\n})\nexport class CdkCombobox<T = unknown> implements OnDestroy {\n @Input('cdkComboboxTriggerFor')\n _panelTemplateRef: TemplateRef<unknown>;\n\n @Input()\n value: T | T[];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean = false;\n\n @Input()\n get openActions(): OpenAction[] {\n return this._openActions;\n }\n set openActions(action: OpenActionInput) {\n this._openActions = this._coerceOpenActionProperty(action);\n }\n private _openActions: OpenAction[] = ['click'];\n\n /** Whether the textContent is automatically updated upon change of the combobox value. */\n @Input()\n get autoSetText(): boolean {\n return this._autoSetText;\n }\n set autoSetText(value: BooleanInput) {\n this._autoSetText = coerceBooleanProperty(value);\n }\n private _autoSetText: boolean = true;\n\n @Output('comboboxPanelOpened') readonly opened: EventEmitter<void> = new EventEmitter<void>();\n @Output('comboboxPanelClosed') readonly closed: EventEmitter<void> = new EventEmitter<void>();\n @Output('panelValueChanged') readonly panelValueChanged: EventEmitter<T[]> = new EventEmitter<\n T[]\n >();\n\n private _overlayRef: OverlayRef;\n private _panelPortal: TemplatePortal;\n\n contentId: string = '';\n contentType: AriaHasPopupValue;\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _overlay: Overlay,\n protected readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Inject(DOCUMENT) private readonly _doc: any,\n @Optional() private readonly _directionality?: Directionality,\n ) {}\n\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n\n this.opened.complete();\n this.closed.complete();\n this.panelValueChanged.complete();\n }\n\n _keydown(event: KeyboardEvent) {\n const {keyCode} = event;\n\n if (keyCode === DOWN_ARROW) {\n if (this.isOpen()) {\n // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping\n this._doc.getElementById(this.contentId)?.focus();\n } else if (this._openActions.indexOf('downKey') !== -1) {\n this.open();\n }\n } else if (keyCode === ENTER) {\n if (this._openActions.indexOf('toggle') !== -1) {\n this.toggle();\n } else if (this._openActions.indexOf('click') !== -1) {\n this.open();\n }\n } else if (keyCode === ESCAPE) {\n event.preventDefault();\n this.close();\n } else if (keyCode === TAB) {\n this.close();\n }\n }\n\n /** Handles click or focus interactions. */\n _handleInteractions(interaction: OpenAction) {\n if (interaction === 'click') {\n if (this._openActions.indexOf('toggle') !== -1) {\n this.toggle();\n } else if (this._openActions.indexOf('click') !== -1) {\n this.open();\n }\n } else if (interaction === 'focus') {\n if (this._openActions.indexOf('focus') !== -1) {\n this.open();\n }\n }\n }\n\n /** Given a click in the document, determines if the click was inside a combobox. */\n _attemptClose(event: MouseEvent) {\n if (this.isOpen()) {\n let target = _getEventTarget(event);\n while (target instanceof Element) {\n if (target.className.indexOf('cdk-combobox') !== -1) {\n return;\n }\n target = target.parentElement;\n }\n }\n\n this.close();\n }\n\n /** Toggles the open state of the panel. */\n toggle() {\n if (this.hasPanel()) {\n this.isOpen() ? this.close() : this.open();\n }\n }\n\n /** If the combobox is closed and not disabled, opens the panel. */\n open() {\n if (!this.isOpen() && !this.disabled) {\n this.opened.next();\n this._overlayRef = this._overlayRef || this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getPanelContent());\n if (!this._isTextTrigger()) {\n // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping\n this._doc.getElementById(this.contentId)?.focus();\n }\n }\n }\n\n /** If the combobox is open and not disabled, closes the panel. */\n close() {\n if (this.isOpen() && !this.disabled) {\n this.closed.next();\n this._overlayRef.detach();\n }\n }\n\n /** Returns true if panel is currently opened. */\n isOpen(): boolean {\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\n }\n\n /** Returns true if combobox has a child panel. */\n hasPanel(): boolean {\n return !!this._panelTemplateRef;\n }\n\n _getTabIndex(): string | null {\n return this.disabled ? null : '0';\n }\n\n private _setComboboxValue(value: T | T[]) {\n const valueChanged = this.value !== value;\n this.value = value;\n\n if (valueChanged) {\n this.panelValueChanged.emit(coerceArray(value));\n if (this._autoSetText) {\n this._setTextContent(value);\n }\n }\n }\n\n updateAndClose(value: T | T[]) {\n this._setComboboxValue(value);\n this.close();\n }\n\n private _setTextContent(content: T | T[]) {\n const contentArray = coerceArray(content);\n this._elementRef.nativeElement.textContent = contentArray.join(' ');\n }\n\n private _isTextTrigger() {\n // TODO: Should check if the trigger is contenteditable.\n const tagName = this._elementRef.nativeElement.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'textarea' ? true : false;\n }\n\n private _getOverlayConfig() {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPositionStrategy(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n direction: this._directionality,\n });\n }\n\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions(this._getOverlayPositions());\n }\n\n private _getOverlayPositions(): ConnectedPosition[] {\n return [\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'},\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'},\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\n ];\n }\n\n private _getPanelInjector() {\n return this._injector;\n }\n\n private _getPanelContent() {\n const hasPanelChanged = this._panelTemplateRef !== this._panelPortal?.templateRef;\n if (this._panelTemplateRef && (!this._panelPortal || hasPanelChanged)) {\n this._panelPortal = new TemplatePortal(\n this._panelTemplateRef,\n this._viewContainerRef,\n undefined,\n this._getPanelInjector(),\n );\n }\n\n return this._panelPortal;\n }\n\n private _coerceOpenActionProperty(input: OpenActionInput): OpenAction[] {\n let actions = typeof input === 'string' ? input.trim().split(/[ ,]+/) : input;\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n actions?.some(a => allowedOpenActions.indexOf(a) === -1)\n ) {\n throw Error(`${input} is not a support open action for CdkCombobox`);\n }\n return actions as OpenAction[];\n }\n\n /** Registers the content's id and the content type with the panel. */\n _registerContent(contentId: string, contentType: AriaHasPopupValue) {\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n contentType !== 'listbox' &&\n contentType !== 'dialog'\n ) {\n throw Error('CdkComboboxPanel currently only supports listbox or dialog content.');\n }\n this.contentId = contentId;\n this.contentType = contentType;\n }\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 {Directive, ElementRef, Inject, Input, OnInit} from '@angular/core';\nimport {AriaHasPopupValue, CDK_COMBOBOX, CdkCombobox} from './combobox';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[cdkComboboxPopup]',\n exportAs: 'cdkComboboxPopup',\n host: {\n 'class': 'cdk-combobox-popup',\n '[attr.role]': 'role',\n '[id]': 'id',\n 'tabindex': '-1',\n '(focus)': 'focusFirstElement()',\n },\n})\nexport class CdkComboboxPopup<T = unknown> implements OnInit {\n @Input()\n get role(): AriaHasPopupValue {\n return this._role;\n }\n set role(value: AriaHasPopupValue) {\n this._role = value;\n }\n private _role: AriaHasPopupValue = 'dialog';\n\n @Input()\n get firstFocus(): HTMLElement {\n return this._firstFocusElement;\n }\n set firstFocus(id: HTMLElement) {\n this._firstFocusElement = id;\n }\n private _firstFocusElement: HTMLElement;\n\n @Input() id = `cdk-combobox-popup-${nextId++}`;\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(CDK_COMBOBOX) private readonly _combobox: CdkCombobox,\n ) {}\n\n ngOnInit() {\n this.registerWithPanel();\n }\n\n registerWithPanel(): void {\n this._combobox._registerContent(this.id, this._role);\n }\n\n focusFirstElement() {\n if (this._firstFocusElement) {\n this._firstFocusElement.focus();\n } else {\n this._elementRef.nativeElement.focus();\n }\n }\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 {OverlayModule} from '@angular/cdk/overlay';\nimport {CdkCombobox} from './combobox';\nimport {CdkComboboxPopup} from './combobox-popup';\n\nconst EXPORTED_DECLARATIONS = [CdkCombobox, CdkComboboxPopup];\n@NgModule({\n imports: [OverlayModule],\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n})\nexport class CdkComboboxModule {}\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 './combobox-module';\nexport * from './combobox';\nexport * from './combobox-popup';\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,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: "13.2.0", 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: "13.2.0", 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: "13.2.0", ngImport: i0, type: CdkOption, decorators: [{
129
+ CdkOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkOption, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => CdkListbox) }], target: i0.ɵɵFactoryTarget.Directive });
130
+ CdkOption.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.14", 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.14", 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: "13.2.0", ngImpor
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: "13.2.0", 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: "13.2.0", 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: "13.2.0", ngImport: i0, type: CdkListbox, decorators: [{
441
+ CdkListbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.14", 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: "12.0.0", version: "14.0.0-next.14", 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.14", 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: "13.2.0", ngImpor
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: "13.2.0", ngImpor
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: "13.2.0", ngImpor
516
500
  const EXPORTED_DECLARATIONS = [CdkListbox, CdkOption];
517
501
  class CdkListboxModule {
518
502
  }
519
- CdkListboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
520
- CdkListboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkListboxModule, declarations: [CdkListbox, CdkOption], exports: [CdkListbox, CdkOption] });
521
- CdkListboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkListboxModule });
522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkListboxModule, decorators: [{
503
+ CdkListboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
504
+ CdkListboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkListboxModule, declarations: [CdkListbox, CdkOption], exports: [CdkListbox, CdkOption] });
505
+ CdkListboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.14", ngImport: i0, type: CdkListboxModule });
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.14", 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: "13.2.0", ngImpor
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