@angular/cdk-experimental 13.2.6 → 13.3.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 (94) hide show
  1. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
  2. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +3 -3
  3. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +3 -3
  4. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +3 -3
  5. package/esm2020/column-resize/column-resize-module.mjs +8 -8
  6. package/esm2020/column-resize/column-resize-notifier.mjs +6 -6
  7. package/esm2020/column-resize/column-resize.mjs +3 -3
  8. package/esm2020/column-resize/column-size-store.mjs +3 -3
  9. package/esm2020/column-resize/event-dispatcher.mjs +3 -3
  10. package/esm2020/column-resize/overlay-handle.mjs +3 -3
  11. package/esm2020/column-resize/resizable.mjs +3 -3
  12. package/esm2020/column-resize/resize-strategy.mjs +9 -9
  13. package/esm2020/combobox/combobox-module.mjs +4 -4
  14. package/esm2020/combobox/combobox-panel.mjs +3 -3
  15. package/esm2020/combobox/combobox-popup.mjs +3 -3
  16. package/esm2020/combobox/combobox.mjs +3 -3
  17. package/esm2020/dialog/dialog-container.mjs +3 -3
  18. package/esm2020/dialog/dialog-module.mjs +4 -4
  19. package/esm2020/dialog/dialog.mjs +3 -3
  20. package/esm2020/listbox/listbox-module.mjs +4 -4
  21. package/esm2020/listbox/listbox.mjs +6 -6
  22. package/esm2020/menu/context-menu.mjs +6 -6
  23. package/esm2020/menu/menu-aim.mjs +6 -6
  24. package/esm2020/menu/menu-bar.mjs +3 -3
  25. package/esm2020/menu/menu-group.mjs +3 -3
  26. package/esm2020/menu/menu-item-checkbox.mjs +3 -3
  27. package/esm2020/menu/menu-item-radio.mjs +3 -3
  28. package/esm2020/menu/menu-item-selectable.mjs +3 -3
  29. package/esm2020/menu/menu-item-trigger.mjs +3 -3
  30. package/esm2020/menu/menu-item.mjs +3 -3
  31. package/esm2020/menu/menu-module.mjs +4 -4
  32. package/esm2020/menu/menu-panel.mjs +3 -3
  33. package/esm2020/menu/menu.mjs +3 -3
  34. package/esm2020/popover-edit/edit-event-dispatcher.mjs +3 -3
  35. package/esm2020/popover-edit/edit-ref.mjs +3 -3
  36. package/esm2020/popover-edit/edit-services.mjs +3 -3
  37. package/esm2020/popover-edit/focus-dispatcher.mjs +3 -3
  38. package/esm2020/popover-edit/focus-escape-notifier.mjs +3 -3
  39. package/esm2020/popover-edit/lens-directives.mjs +9 -9
  40. package/esm2020/popover-edit/popover-edit-module.mjs +4 -4
  41. package/esm2020/popover-edit/popover-edit-position-strategy-factory.mjs +6 -6
  42. package/esm2020/popover-edit/table-directives.mjs +15 -15
  43. package/esm2020/scrolling/auto-size-virtual-scroll.mjs +3 -3
  44. package/esm2020/scrolling/scrolling-module.mjs +4 -4
  45. package/esm2020/selection/row-selection.mjs +3 -3
  46. package/esm2020/selection/select-all.mjs +3 -3
  47. package/esm2020/selection/selection-column.mjs +3 -3
  48. package/esm2020/selection/selection-module.mjs +4 -4
  49. package/esm2020/selection/selection-toggle.mjs +3 -3
  50. package/esm2020/selection/selection.mjs +3 -3
  51. package/esm2020/table-scroll-container/table-scroll-container-module.mjs +4 -4
  52. package/esm2020/table-scroll-container/table-scroll-container.mjs +3 -3
  53. package/esm2020/version.mjs +1 -1
  54. package/fesm2015/cdk-experimental.mjs +1 -1
  55. package/fesm2015/cdk-experimental.mjs.map +1 -1
  56. package/fesm2015/column-resize.mjs +50 -50
  57. package/fesm2015/column-resize.mjs.map +1 -1
  58. package/fesm2015/combobox.mjs +13 -13
  59. package/fesm2015/combobox.mjs.map +1 -1
  60. package/fesm2015/dialog.mjs +10 -10
  61. package/fesm2015/dialog.mjs.map +1 -1
  62. package/fesm2015/listbox.mjs +10 -10
  63. package/fesm2015/listbox.mjs.map +1 -1
  64. package/fesm2015/menu.mjs +43 -43
  65. package/fesm2015/menu.mjs.map +1 -1
  66. package/fesm2015/popover-edit.mjs +49 -49
  67. package/fesm2015/popover-edit.mjs.map +1 -1
  68. package/fesm2015/scrolling.mjs +7 -7
  69. package/fesm2015/scrolling.mjs.map +1 -1
  70. package/fesm2015/selection.mjs +19 -19
  71. package/fesm2015/selection.mjs.map +1 -1
  72. package/fesm2015/table-scroll-container.mjs +7 -7
  73. package/fesm2015/table-scroll-container.mjs.map +1 -1
  74. package/fesm2020/cdk-experimental.mjs +1 -1
  75. package/fesm2020/cdk-experimental.mjs.map +1 -1
  76. package/fesm2020/column-resize.mjs +50 -50
  77. package/fesm2020/column-resize.mjs.map +1 -1
  78. package/fesm2020/combobox.mjs +13 -13
  79. package/fesm2020/combobox.mjs.map +1 -1
  80. package/fesm2020/dialog.mjs +10 -10
  81. package/fesm2020/dialog.mjs.map +1 -1
  82. package/fesm2020/listbox.mjs +10 -10
  83. package/fesm2020/listbox.mjs.map +1 -1
  84. package/fesm2020/menu.mjs +43 -43
  85. package/fesm2020/menu.mjs.map +1 -1
  86. package/fesm2020/popover-edit.mjs +49 -49
  87. package/fesm2020/popover-edit.mjs.map +1 -1
  88. package/fesm2020/scrolling.mjs +7 -7
  89. package/fesm2020/scrolling.mjs.map +1 -1
  90. package/fesm2020/selection.mjs +19 -19
  91. package/fesm2020/selection.mjs.map +1 -1
  92. package/fesm2020/table-scroll-container.mjs +7 -7
  93. package/fesm2020/table-scroll-container.mjs.map +1 -1
  94. package/package.json +2 -2
@@ -284,8 +284,8 @@ class CdkDialogContainer extends BasePortalOutlet {
284
284
  }
285
285
  }
286
286
  }
287
- CdkDialogContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkDialogContainer, deps: [{ token: i0.ElementRef }, { token: i1.FocusTrapFactory }, { token: i0.ChangeDetectorRef }, { token: i1.InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }, { token: DialogConfig }], target: i0.ɵɵFactoryTarget.Component });
288
- CdkDialogContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: CdkDialogContainer, selector: "cdk-dialog-container", host: { attributes: { "tabindex": "-1", "aria-modal": "true" }, listeners: { "@dialog.start": "_onAnimationStart($event)", "@dialog.done": "_animationDone.next($event)" }, properties: { "@dialog": "{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }", "attr.role": "_config.role", "attr.aria-label": "_config.ariaLabel || null", "attr.aria-describedby": "_config.ariaDescribedBy" } }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: ["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}\n"], directives: [{ type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
287
+ CdkDialogContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CdkDialogContainer, deps: [{ token: i0.ElementRef }, { token: i1.FocusTrapFactory }, { token: i0.ChangeDetectorRef }, { token: i1.InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }, { token: DialogConfig }], target: i0.ɵɵFactoryTarget.Component });
288
+ CdkDialogContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: CdkDialogContainer, selector: "cdk-dialog-container", host: { attributes: { "tabindex": "-1", "aria-modal": "true" }, listeners: { "@dialog.start": "_onAnimationStart($event)", "@dialog.done": "_animationDone.next($event)" }, properties: { "@dialog": "{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }", "attr.role": "_config.role", "attr.aria-label": "_config.ariaLabel || null", "attr.aria-describedby": "_config.ariaDescribedBy" } }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: ["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}\n"], directives: [{ type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
289
289
  trigger('dialog', [
290
290
  state('enter', style({ opacity: 1 })),
291
291
  state('exit, void', style({ opacity: 0 })),
@@ -299,7 +299,7 @@ CdkDialogContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
299
299
  ])),
300
300
  ]),
301
301
  ], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: CdkDialogContainer, decorators: [{
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CdkDialogContainer, decorators: [{
303
303
  type: Component,
304
304
  args: [{ selector: 'cdk-dialog-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [
305
305
  trigger('dialog', [
@@ -706,9 +706,9 @@ class Dialog {
706
706
  return Object.assign(Object.assign({}, new dialogConfig()), config);
707
707
  }
708
708
  }
709
- Dialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: Dialog, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }, { token: DIALOG_REF }, { token: DIALOG_SCROLL_STRATEGY }, { token: Dialog, optional: true, skipSelf: true }, { token: i2.Location, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
710
- Dialog.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: Dialog });
711
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: Dialog, decorators: [{
709
+ Dialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: Dialog, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }, { token: DIALOG_REF }, { token: DIALOG_SCROLL_STRATEGY }, { token: Dialog, optional: true, skipSelf: true }, { token: i2.Location, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
710
+ Dialog.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: Dialog });
711
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: Dialog, decorators: [{
712
712
  type: Injectable
713
713
  }], ctorParameters: function () {
714
714
  return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: i0.Type, decorators: [{
@@ -735,14 +735,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
735
735
  */
736
736
  class DialogModule {
737
737
  }
738
- DialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
739
- DialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DialogModule, declarations: [CdkDialogContainer], imports: [OverlayModule, PortalModule, A11yModule], exports: [
738
+ DialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
739
+ DialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DialogModule, declarations: [CdkDialogContainer], imports: [OverlayModule, PortalModule, A11yModule], exports: [
740
740
  // Re-export the PortalModule so that people extending the `CdkDialogContainer`
741
741
  // don't have to remember to import it or be faced with an unhelpful error.
742
742
  PortalModule,
743
743
  CdkDialogContainer
744
744
  ] });
745
- DialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DialogModule, providers: [
745
+ DialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DialogModule, providers: [
746
746
  Dialog,
747
747
  MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,
748
748
  { provide: DIALOG_REF, useValue: DialogRef },
@@ -752,7 +752,7 @@ DialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
752
752
  // Re-export the PortalModule so that people extending the `CdkDialogContainer`
753
753
  // don't have to remember to import it or be faced with an unhelpful error.
754
754
  PortalModule] });
755
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DialogModule, decorators: [{
755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DialogModule, decorators: [{
756
756
  type: NgModule,
757
757
  args: [{
758
758
  imports: [OverlayModule, PortalModule, A11yModule],
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.mjs","sources":["../../../../../../src/cdk-experimental/dialog/dialog-config.ts","../../../../../../src/cdk-experimental/dialog/dialog-container.ts","../../../../../../src/cdk-experimental/dialog/dialog-container.html","../../../../../../src/cdk-experimental/dialog/dialog-ref.ts","../../../../../../src/cdk-experimental/dialog/dialog-injectors.ts","../../../../../../src/cdk-experimental/dialog/dialog.ts","../../../../../../src/cdk-experimental/dialog/dialog-module.ts","../../../../../../src/cdk-experimental/dialog/public-api.ts","../../../../../../src/cdk-experimental/dialog/index.ts","../../../../../../src/cdk-experimental/dialog/dialog_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 {ViewContainerRef} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\nimport {ComponentType} from '@angular/cdk/overlay';\nimport {CdkDialogContainer} from './dialog-container';\n\n/** Options for where to set focus to automatically on dialog open */\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** Possible overrides for a dialog's position. */\nexport interface DialogPosition {\n top?: string;\n bottom?: string;\n left?: string;\n right?: string;\n}\n\nexport class DialogConfig<D = any> {\n /** Component to use as the container for the dialog. */\n containerComponent?: ComponentType<CdkDialogContainer>;\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** The id of the dialog. */\n id?: string;\n\n /** The ARIA role of the dialog. */\n role?: DialogRole = 'dialog';\n\n /** Custom class(es) for the overlay panel. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a background. */\n hasBackdrop?: boolean = true;\n\n /** Custom class(es) for the backdrop. */\n backdropClass?: string | undefined = '';\n\n /** Whether the dialog can be closed by user interaction. */\n disableClose?: boolean = false;\n\n /** The width of the dialog. */\n width?: string = '';\n\n /** The height of the dialog. */\n height?: string = '';\n\n /** The minimum width of the dialog. */\n minWidth?: string | number = '';\n\n /** The minimum height of the dialog. */\n minHeight?: string | number = '';\n\n /** The maximum width of the dialog. */\n maxWidth?: string | number = '80vw';\n\n /** The maximum height of the dialog. */\n maxHeight?: string | number = '';\n\n /** The position of the dialog. */\n position?: DialogPosition;\n\n /** Data to be injected into the dialog content. */\n data?: D | null = null;\n\n /** The layout direction for the dialog content. */\n direction?: Direction;\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null;\n\n /** Aria label to assign to the dialog element */\n ariaLabel?: string | null = null;\n\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n autoFocus?: AutoFocusTarget | string | boolean = 'first-tabbable';\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms';\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms';\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 animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {FocusTrapFactory, InteractivityChecker} from '@angular/cdk/a11y';\nimport {_getFocusedElementPierceShadowDom} from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n NgZone,\n OnDestroy,\n Optional,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {DialogConfig} from './dialog-config';\n\nexport function throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached');\n}\n\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\n@Component({\n selector: 'cdk-dialog-container',\n templateUrl: './dialog-container.html',\n styleUrls: ['dialog-container.css'],\n encapsulation: ViewEncapsulation.None,\n // Using OnPush for dialogs caused some G3 sync issues. Disabled until we can track them down.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [\n trigger('dialog', [\n state('enter', style({opacity: 1})),\n state('exit, void', style({opacity: 0})),\n transition(\n '* => enter',\n group([\n animate('{{enterAnimationDuration}}'),\n query('@*', animateChild(), {optional: true}),\n ]),\n ),\n transition(\n '* => exit, * => void',\n group([\n animate('{{exitAnimationDuration}}'),\n query('@*', animateChild(), {optional: true}),\n ]),\n ),\n ]),\n ],\n host: {\n '[@dialog]': `{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }`,\n '(@dialog.start)': '_onAnimationStart($event)',\n '(@dialog.done)': '_animationDone.next($event)',\n 'tabindex': '-1',\n '[attr.role]': '_config.role',\n 'aria-modal': 'true',\n '[attr.aria-label]': '_config.ariaLabel || null',\n '[attr.aria-describedby]': '_config.ariaDescribedBy',\n },\n})\nexport class CdkDialogContainer extends BasePortalOutlet implements OnDestroy {\n private readonly _document: Document;\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n\n /** The portal host inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet, {static: true}) _portalHost: CdkPortalOutlet;\n\n /** A subject emitting before the dialog enters the view. */\n readonly _beforeEnter = new Subject<void>();\n\n /** A subject emitting after the dialog enters the view. */\n readonly _afterEnter = new Subject<void>();\n\n /** A subject emitting before the dialog exits the view. */\n readonly _beforeExit = new Subject<void>();\n\n /** A subject emitting after the dialog exits the view. */\n readonly _afterExit = new Subject<void>();\n\n /** Stream of animation `done` events. */\n readonly _animationDone = new Subject<AnimationEvent>();\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusTrapFactory: FocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n private readonly _interactivityChecker: InteractivityChecker,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) _document: any,\n /** The dialog configuration. */\n public _config: DialogConfig,\n ) {\n super();\n\n this._document = _document;\n\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone\n .pipe(\n distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n }),\n )\n .subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._autoFocus();\n this._afterEnter.next();\n this._afterEnter.complete();\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._returnFocusAfterDialog();\n this._afterExit.next();\n this._afterExit.complete();\n }\n });\n }\n\n /** Initializes the dialog container with the attached content. */\n _initializeWithAttachedContent() {\n // Save the previously focused element. This element will be re-focused\n // when the dialog closes.\n this._savePreviouslyFocusedElement();\n // Move focus onto the dialog immediately in order to prevent the user\n // from accidentally opening multiple dialogs at the same time.\n this._focusDialogContainer();\n }\n\n /** Destroy focus trap to place focus back to the element focused before the dialog opened. */\n ngOnDestroy() {\n this._focusTrap.destroy();\n this._animationDone.complete();\n }\n\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n\n return this._portalHost.attachComponentPortal(portal);\n }\n\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n\n return this._portalHost.attachTemplatePortal(portal);\n }\n\n /**\n * Attaches a DOM portal to the dialog container.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n\n return this._portalHost.attachDomPortal(portal);\n };\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next();\n this._beforeEnter.complete();\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next();\n this._beforeExit.complete();\n }\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck();\n }\n\n /** Saves a reference to the element that was focused before the dialog was opened. */\n private _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = _getFocusedElementPierceShadowDom();\n }\n }\n\n /** Focuses the dialog container. */\n private _focusDialogContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n * @param element The element to focus.\n */\n private _forceFocus(element: HTMLElement, options?: FocusOptions) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('blur', () => element.removeAttribute('tabindex'));\n element.addEventListener('mousedown', () => element.removeAttribute('tabindex'));\n });\n }\n element.focus(options);\n }\n\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n * @param selector The CSS selector for the element to set focus to.\n */\n private _focusByCssSelector(selector: string, options?: FocusOptions) {\n let elementToFocus = this._elementRef.nativeElement.querySelector(\n selector,\n ) as HTMLElement | null;\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n\n /**\n * Autofocus the element specified by the autoFocus field. When autoFocus is not 'dialog', if\n * for some reason the element cannot be focused, the dialog container will be focused.\n */\n private _autoFocus() {\n const element = this._elementRef.nativeElement;\n\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n // dialog. If the element inside the dialog can't be focused, then the container is focused\n // so the user can't tab into other elements behind it.\n switch (this._config.autoFocus) {\n case false:\n case 'dialog':\n const activeElement = _getFocusedElementPierceShadowDom();\n // Ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n break;\n case true:\n case 'first-tabbable':\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n if (!hasMovedFocus) {\n element.focus();\n }\n });\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this._config.autoFocus!);\n break;\n }\n }\n\n /** Returns the focus to the element focused before the dialog was open. */\n private _returnFocusAfterDialog() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened;\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n\n // Make sure that focus is still inside the dialog or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (\n !activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n toFocus.focus();\n }\n }\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\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 {OverlayRef, GlobalPositionStrategy, OverlaySizeConfig} from '@angular/cdk/overlay';\nimport {ESCAPE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {Observable} from 'rxjs';\nimport {map, filter} from 'rxjs/operators';\nimport {DialogPosition} from './dialog-config';\nimport {CdkDialogContainer} from './dialog-container';\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0;\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class DialogRef<T, R = any> {\n /** The instance of the component in the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined;\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n constructor(\n public _overlayRef: OverlayRef,\n protected _containerInstance: CdkDialogContainer,\n readonly id: string = `dialog-${uniqueId++}`,\n ) {\n // If the dialog has a backdrop, handle clicks from the backdrop.\n if (_containerInstance._config.hasBackdrop) {\n _overlayRef.backdropClick().subscribe(() => {\n if (!this.disableClose) {\n this.close();\n }\n });\n }\n\n this.beforeClosed().subscribe(() => {\n this._overlayRef.detachBackdrop();\n });\n\n this.afterClosed().subscribe(() => {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n this.componentInstance = null!;\n });\n\n // Close when escape keydown event occurs\n _overlayRef\n .keydownEvents()\n .pipe(\n filter(event => {\n return event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event);\n }),\n )\n .subscribe(event => {\n event.preventDefault();\n this.close();\n });\n }\n\n /** Gets an observable that emits when the overlay's backdrop has been clicked. */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult;\n this._containerInstance._startExiting();\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: DialogPosition): this {\n let strategy = this._getPositionStrategy();\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._overlayRef.updatePosition();\n\n return this;\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents();\n }\n\n /**\n * Updates the dialog's width and height, defined, min and max.\n * @param size New size for the overlay.\n */\n updateSize(size: OverlaySizeConfig): this {\n this._overlayRef.updateSize(size);\n this._overlayRef.updatePosition();\n return this;\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy;\n }\n\n /** Gets an observable that emits when dialog begins opening. */\n beforeOpened(): Observable<void> {\n return this._containerInstance._beforeEnter;\n }\n\n /** Gets an observable that emits when dialog is finished opening. */\n afterOpened(): Observable<void> {\n return this._containerInstance._afterEnter;\n }\n\n /** Gets an observable that emits when dialog begins closing. */\n beforeClosed(): Observable<R | undefined> {\n return this._containerInstance._beforeExit.pipe(map(() => this._result));\n }\n\n /** Gets an observable that emits when dialog is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this._containerInstance._afterExit.pipe(map(() => this._result));\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 {InjectionToken} from '@angular/core';\nimport {ComponentType, Overlay, ScrollStrategy} from '@angular/cdk/overlay';\nimport {DialogRef} from './dialog-ref';\nimport {CdkDialogContainer} from './dialog-container';\nimport {DialogConfig} from './dialog-config';\n\n/** Injection token for the Dialog's ScrollStrategy. */\nexport const DIALOG_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'DialogScrollStrategy',\n);\n\n/** Injection token for the Dialog's Data. */\nexport const DIALOG_DATA = new InjectionToken<any>('DialogData');\n\n/** Injection token for the DialogRef constructor. */\nexport const DIALOG_REF = new InjectionToken<DialogRef<any>>('DialogRef');\n\n/** Injection token for the DialogConfig. */\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('DialogConfig');\n\n/** Injection token for the Dialog's DialogContainer component. */\nexport const DIALOG_CONTAINER = new InjectionToken<ComponentType<CdkDialogContainer>>(\n 'DialogContainer',\n);\n\n/** @docs-private */\nexport function MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(\n overlay: Overlay,\n): () => ScrollStrategy {\n return () => overlay.scrollStrategies.block();\n}\n\n/** @docs-private */\nexport const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\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 TemplateRef,\n SkipSelf,\n Optional,\n Injectable,\n Injector,\n Inject,\n ComponentRef,\n OnDestroy,\n Type,\n StaticProvider,\n InjectFlags,\n} from '@angular/core';\nimport {ComponentPortal, TemplatePortal} from '@angular/cdk/portal';\nimport {of as observableOf, Observable, Subject, defer} from 'rxjs';\nimport {DialogRef} from './dialog-ref';\nimport {Location} from '@angular/common';\nimport {DialogConfig} from './dialog-config';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {CdkDialogContainer} from './dialog-container';\nimport {\n ComponentType,\n Overlay,\n OverlayRef,\n OverlayConfig,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {startWith} from 'rxjs/operators';\n\nimport {\n DIALOG_SCROLL_STRATEGY,\n DIALOG_DATA,\n DIALOG_REF,\n DIALOG_CONTAINER,\n DIALOG_CONFIG,\n} from './dialog-injectors';\n\n/**\n * Service to open modal dialogs.\n */\n@Injectable()\nexport class Dialog implements OnDestroy {\n private _scrollStrategy: () => ScrollStrategy;\n\n /** Stream that emits when all dialogs are closed. */\n _getAfterAllClosed(): Observable<void> {\n return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase;\n }\n readonly _afterAllClosedBase = new Subject<void>();\n\n // TODO(jelbourn): tighten the type on the right-hand side of this expression.\n afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length\n ? this._getAfterAllClosed()\n : this._getAfterAllClosed().pipe(startWith(undefined)),\n );\n\n /** Stream that emits when a dialog is opened. */\n get afterOpened(): Subject<DialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;\n }\n readonly _afterOpened = new Subject<DialogRef<any>>();\n\n /** Stream that emits when a dialog is opened. */\n get openDialogs(): DialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs;\n }\n _openDialogs: DialogRef<any>[] = [];\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n @Inject(DIALOG_REF) private _dialogRefConstructor: Type<DialogRef<any>>,\n // TODO(crisbeto): the `any` here can be replaced\n // with the proper type once we start using Ivy.\n @Inject(DIALOG_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() @SkipSelf() private _parentDialog: Dialog,\n @Optional() location: Location,\n ) {\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll());\n }\n\n this._scrollStrategy = scrollStrategy;\n }\n\n /** Gets an open dialog by id. */\n getById(id: string): DialogRef<any> | undefined {\n return this._openDialogs.find(ref => ref.id === id);\n }\n\n /** Closes all open dialogs. */\n closeAll(): void {\n this.openDialogs.forEach(ref => ref.close());\n }\n\n /** Opens a dialog from a component. */\n openFromComponent<T>(component: ComponentType<T>, config?: DialogConfig): DialogRef<any> {\n config = this._applyConfigDefaults(config);\n\n if (config.id && this.getById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const overlayRef = this._createOverlay(config);\n const dialogContainer = this._attachDialogContainer(overlayRef, config);\n const dialogRef = this._attachDialogContentForComponent(\n component,\n dialogContainer,\n overlayRef,\n config,\n );\n\n this._registerDialogRef(dialogRef);\n dialogContainer._initializeWithAttachedContent();\n\n return dialogRef;\n }\n\n /** Opens a dialog from a template. */\n openFromTemplate<T>(template: TemplateRef<T>, config?: DialogConfig): DialogRef<any> {\n config = this._applyConfigDefaults(config);\n\n if (config.id && this.getById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const overlayRef = this._createOverlay(config);\n const dialogContainer = this._attachDialogContainer(overlayRef, config);\n const dialogRef = this._attachDialogContentForTemplate(\n template,\n dialogContainer,\n overlayRef,\n config,\n );\n\n this._registerDialogRef(dialogRef);\n dialogContainer._initializeWithAttachedContent();\n\n return dialogRef;\n }\n\n ngOnDestroy() {\n // Only close all the dialogs at this level.\n this._openDialogs.forEach(ref => ref.close());\n }\n\n /**\n * Forwards emitting events for when dialogs are opened and all dialogs are closed.\n */\n private _registerDialogRef(dialogRef: DialogRef<any>): void {\n this.openDialogs.push(dialogRef);\n\n const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {\n this.afterOpened.next(dialogRef);\n dialogOpenSub.unsubscribe();\n });\n\n const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {\n let dialogIndex = this._openDialogs.indexOf(dialogRef);\n\n if (dialogIndex > -1) {\n this._openDialogs.splice(dialogIndex, 1);\n }\n\n if (!this._openDialogs.length) {\n this._afterAllClosedBase.next();\n dialogCloseSub.unsubscribe();\n }\n });\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n protected _createOverlay(config: DialogConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n });\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Attaches an MatDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n protected _attachDialogContainer(overlay: OverlayRef, config: DialogConfig): CdkDialogContainer {\n const container = config.containerComponent || this._injector.get(DIALOG_CONTAINER);\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{provide: DialogConfig, useValue: config}],\n });\n const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector);\n const containerRef: ComponentRef<CdkDialogContainer> = overlay.attach(containerPortal);\n containerRef.instance._config = config;\n\n return containerRef.instance;\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForComponent<T>(\n componentOrTemplateRef: ComponentType<T>,\n dialogContainer: CdkDialogContainer,\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = this._createDialogRef(overlayRef, dialogContainer, config);\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer);\n const contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n return dialogRef;\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForTemplate<T>(\n componentOrTemplateRef: TemplateRef<T>,\n dialogContainer: CdkDialogContainer,\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = this._createDialogRef(overlayRef, dialogContainer, config);\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{\n $implicit: config.data,\n dialogRef,\n }),\n );\n return dialogRef;\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param container Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(\n config: DialogConfig,\n dialogRef: DialogRef<T>,\n dialogContainer: CdkDialogContainer,\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const providers: StaticProvider[] = [\n {provide: this._injector.get(DIALOG_REF), useValue: dialogRef},\n {provide: this._injector.get(DIALOG_CONTAINER), useValue: dialogContainer},\n {provide: DIALOG_DATA, useValue: config.data},\n ];\n\n if (\n config.direction &&\n (!userInjector ||\n !userInjector.get<Directionality | null>(Directionality, null, InjectFlags.Optional))\n ) {\n providers.push({\n provide: Directionality,\n useValue: {value: config.direction, change: observableOf()},\n });\n }\n\n return Injector.create({parent: userInjector || this._injector, providers});\n }\n\n /** Creates a new dialog ref. */\n private _createDialogRef(\n overlayRef: OverlayRef,\n dialogContainer: CdkDialogContainer,\n config: DialogConfig,\n ) {\n const dialogRef = new this._dialogRefConstructor(overlayRef, dialogContainer, config.id);\n dialogRef.disableClose = config.disableClose;\n dialogRef.updateSize(config).updatePosition(config.position);\n return dialogRef;\n }\n\n /**\n * Expands the provided configuration object to include the default values for properties which\n * are undefined.\n */\n private _applyConfigDefaults(config?: DialogConfig): DialogConfig {\n const dialogConfig = this._injector.get(DIALOG_CONFIG) as typeof DialogConfig;\n return {...new dialogConfig(), ...config};\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 {PortalModule} from '@angular/cdk/portal';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {Dialog} from './dialog';\nimport {CdkDialogContainer} from './dialog-container';\nimport {DialogConfig} from './dialog-config';\nimport {DialogRef} from './dialog-ref';\nimport {\n DIALOG_CONFIG,\n DIALOG_CONTAINER,\n DIALOG_REF,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n} from './dialog-injectors';\n\n@NgModule({\n imports: [OverlayModule, PortalModule, A11yModule],\n exports: [\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n CdkDialogContainer,\n ],\n declarations: [CdkDialogContainer],\n providers: [\n Dialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n {provide: DIALOG_REF, useValue: DialogRef},\n {provide: DIALOG_CONTAINER, useValue: CdkDialogContainer},\n {provide: DIALOG_CONFIG, useValue: DialogConfig},\n ],\n})\nexport class DialogModule {}\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 './dialog-container';\nexport * from './dialog-config';\nexport * from './dialog-ref';\nexport * from './dialog';\nexport * from './dialog-module';\nexport * from './dialog-injectors';\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":["observableOf"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.mjs","sources":["../../../../../../src/cdk-experimental/dialog/dialog-config.ts","../../../../../../src/cdk-experimental/dialog/dialog-container.ts","../../../../../../src/cdk-experimental/dialog/dialog-container.html","../../../../../../src/cdk-experimental/dialog/dialog-ref.ts","../../../../../../src/cdk-experimental/dialog/dialog-injectors.ts","../../../../../../src/cdk-experimental/dialog/dialog.ts","../../../../../../src/cdk-experimental/dialog/dialog-module.ts","../../../../../../src/cdk-experimental/dialog/public-api.ts","../../../../../../src/cdk-experimental/dialog/index.ts","../../../../../../src/cdk-experimental/dialog/dialog_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 {ViewContainerRef} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\nimport {ComponentType} from '@angular/cdk/overlay';\nimport {CdkDialogContainer} from './dialog-container';\n\n/** Options for where to set focus to automatically on dialog open */\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** Possible overrides for a dialog's position. */\nexport interface DialogPosition {\n top?: string;\n bottom?: string;\n left?: string;\n right?: string;\n}\n\nexport class DialogConfig<D = any> {\n /** Component to use as the container for the dialog. */\n containerComponent?: ComponentType<CdkDialogContainer>;\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** The id of the dialog. */\n id?: string;\n\n /** The ARIA role of the dialog. */\n role?: DialogRole = 'dialog';\n\n /** Custom class(es) for the overlay panel. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a background. */\n hasBackdrop?: boolean = true;\n\n /** Custom class(es) for the backdrop. */\n backdropClass?: string | undefined = '';\n\n /** Whether the dialog can be closed by user interaction. */\n disableClose?: boolean = false;\n\n /** The width of the dialog. */\n width?: string = '';\n\n /** The height of the dialog. */\n height?: string = '';\n\n /** The minimum width of the dialog. */\n minWidth?: string | number = '';\n\n /** The minimum height of the dialog. */\n minHeight?: string | number = '';\n\n /** The maximum width of the dialog. */\n maxWidth?: string | number = '80vw';\n\n /** The maximum height of the dialog. */\n maxHeight?: string | number = '';\n\n /** The position of the dialog. */\n position?: DialogPosition;\n\n /** Data to be injected into the dialog content. */\n data?: D | null = null;\n\n /** The layout direction for the dialog content. */\n direction?: Direction;\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null;\n\n /** Aria label to assign to the dialog element */\n ariaLabel?: string | null = null;\n\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n autoFocus?: AutoFocusTarget | string | boolean = 'first-tabbable';\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms';\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms';\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 animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {FocusTrapFactory, InteractivityChecker} from '@angular/cdk/a11y';\nimport {_getFocusedElementPierceShadowDom} from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n NgZone,\n OnDestroy,\n Optional,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {DialogConfig} from './dialog-config';\n\nexport function throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached');\n}\n\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\n@Component({\n selector: 'cdk-dialog-container',\n templateUrl: './dialog-container.html',\n styleUrls: ['dialog-container.css'],\n encapsulation: ViewEncapsulation.None,\n // Using OnPush for dialogs caused some G3 sync issues. Disabled until we can track them down.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [\n trigger('dialog', [\n state('enter', style({opacity: 1})),\n state('exit, void', style({opacity: 0})),\n transition(\n '* => enter',\n group([\n animate('{{enterAnimationDuration}}'),\n query('@*', animateChild(), {optional: true}),\n ]),\n ),\n transition(\n '* => exit, * => void',\n group([\n animate('{{exitAnimationDuration}}'),\n query('@*', animateChild(), {optional: true}),\n ]),\n ),\n ]),\n ],\n host: {\n '[@dialog]': `{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }`,\n '(@dialog.start)': '_onAnimationStart($event)',\n '(@dialog.done)': '_animationDone.next($event)',\n 'tabindex': '-1',\n '[attr.role]': '_config.role',\n 'aria-modal': 'true',\n '[attr.aria-label]': '_config.ariaLabel || null',\n '[attr.aria-describedby]': '_config.ariaDescribedBy',\n },\n})\nexport class CdkDialogContainer extends BasePortalOutlet implements OnDestroy {\n private readonly _document: Document;\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n\n /** The portal host inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet, {static: true}) _portalHost: CdkPortalOutlet;\n\n /** A subject emitting before the dialog enters the view. */\n readonly _beforeEnter = new Subject<void>();\n\n /** A subject emitting after the dialog enters the view. */\n readonly _afterEnter = new Subject<void>();\n\n /** A subject emitting before the dialog exits the view. */\n readonly _beforeExit = new Subject<void>();\n\n /** A subject emitting after the dialog exits the view. */\n readonly _afterExit = new Subject<void>();\n\n /** Stream of animation `done` events. */\n readonly _animationDone = new Subject<AnimationEvent>();\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusTrapFactory: FocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n private readonly _interactivityChecker: InteractivityChecker,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) _document: any,\n /** The dialog configuration. */\n public _config: DialogConfig,\n ) {\n super();\n\n this._document = _document;\n\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone\n .pipe(\n distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n }),\n )\n .subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._autoFocus();\n this._afterEnter.next();\n this._afterEnter.complete();\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._returnFocusAfterDialog();\n this._afterExit.next();\n this._afterExit.complete();\n }\n });\n }\n\n /** Initializes the dialog container with the attached content. */\n _initializeWithAttachedContent() {\n // Save the previously focused element. This element will be re-focused\n // when the dialog closes.\n this._savePreviouslyFocusedElement();\n // Move focus onto the dialog immediately in order to prevent the user\n // from accidentally opening multiple dialogs at the same time.\n this._focusDialogContainer();\n }\n\n /** Destroy focus trap to place focus back to the element focused before the dialog opened. */\n ngOnDestroy() {\n this._focusTrap.destroy();\n this._animationDone.complete();\n }\n\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n\n return this._portalHost.attachComponentPortal(portal);\n }\n\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n\n return this._portalHost.attachTemplatePortal(portal);\n }\n\n /**\n * Attaches a DOM portal to the dialog container.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n\n return this._portalHost.attachDomPortal(portal);\n };\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next();\n this._beforeEnter.complete();\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next();\n this._beforeExit.complete();\n }\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck();\n }\n\n /** Saves a reference to the element that was focused before the dialog was opened. */\n private _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = _getFocusedElementPierceShadowDom();\n }\n }\n\n /** Focuses the dialog container. */\n private _focusDialogContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n * @param element The element to focus.\n */\n private _forceFocus(element: HTMLElement, options?: FocusOptions) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('blur', () => element.removeAttribute('tabindex'));\n element.addEventListener('mousedown', () => element.removeAttribute('tabindex'));\n });\n }\n element.focus(options);\n }\n\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n * @param selector The CSS selector for the element to set focus to.\n */\n private _focusByCssSelector(selector: string, options?: FocusOptions) {\n let elementToFocus = this._elementRef.nativeElement.querySelector(\n selector,\n ) as HTMLElement | null;\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n\n /**\n * Autofocus the element specified by the autoFocus field. When autoFocus is not 'dialog', if\n * for some reason the element cannot be focused, the dialog container will be focused.\n */\n private _autoFocus() {\n const element = this._elementRef.nativeElement;\n\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n // dialog. If the element inside the dialog can't be focused, then the container is focused\n // so the user can't tab into other elements behind it.\n switch (this._config.autoFocus) {\n case false:\n case 'dialog':\n const activeElement = _getFocusedElementPierceShadowDom();\n // Ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n break;\n case true:\n case 'first-tabbable':\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n if (!hasMovedFocus) {\n element.focus();\n }\n });\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this._config.autoFocus!);\n break;\n }\n }\n\n /** Returns the focus to the element focused before the dialog was open. */\n private _returnFocusAfterDialog() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened;\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n\n // Make sure that focus is still inside the dialog or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (\n !activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n toFocus.focus();\n }\n }\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\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 {OverlayRef, GlobalPositionStrategy, OverlaySizeConfig} from '@angular/cdk/overlay';\nimport {ESCAPE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {Observable} from 'rxjs';\nimport {map, filter} from 'rxjs/operators';\nimport {DialogPosition} from './dialog-config';\nimport {CdkDialogContainer} from './dialog-container';\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0;\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class DialogRef<T, R = any> {\n /** The instance of the component in the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined;\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n constructor(\n public _overlayRef: OverlayRef,\n protected _containerInstance: CdkDialogContainer,\n readonly id: string = `dialog-${uniqueId++}`,\n ) {\n // If the dialog has a backdrop, handle clicks from the backdrop.\n if (_containerInstance._config.hasBackdrop) {\n _overlayRef.backdropClick().subscribe(() => {\n if (!this.disableClose) {\n this.close();\n }\n });\n }\n\n this.beforeClosed().subscribe(() => {\n this._overlayRef.detachBackdrop();\n });\n\n this.afterClosed().subscribe(() => {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n this.componentInstance = null!;\n });\n\n // Close when escape keydown event occurs\n _overlayRef\n .keydownEvents()\n .pipe(\n filter(event => {\n return event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event);\n }),\n )\n .subscribe(event => {\n event.preventDefault();\n this.close();\n });\n }\n\n /** Gets an observable that emits when the overlay's backdrop has been clicked. */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult;\n this._containerInstance._startExiting();\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: DialogPosition): this {\n let strategy = this._getPositionStrategy();\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._overlayRef.updatePosition();\n\n return this;\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents();\n }\n\n /**\n * Updates the dialog's width and height, defined, min and max.\n * @param size New size for the overlay.\n */\n updateSize(size: OverlaySizeConfig): this {\n this._overlayRef.updateSize(size);\n this._overlayRef.updatePosition();\n return this;\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy;\n }\n\n /** Gets an observable that emits when dialog begins opening. */\n beforeOpened(): Observable<void> {\n return this._containerInstance._beforeEnter;\n }\n\n /** Gets an observable that emits when dialog is finished opening. */\n afterOpened(): Observable<void> {\n return this._containerInstance._afterEnter;\n }\n\n /** Gets an observable that emits when dialog begins closing. */\n beforeClosed(): Observable<R | undefined> {\n return this._containerInstance._beforeExit.pipe(map(() => this._result));\n }\n\n /** Gets an observable that emits when dialog is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this._containerInstance._afterExit.pipe(map(() => this._result));\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 {InjectionToken} from '@angular/core';\nimport {ComponentType, Overlay, ScrollStrategy} from '@angular/cdk/overlay';\nimport {DialogRef} from './dialog-ref';\nimport {CdkDialogContainer} from './dialog-container';\nimport {DialogConfig} from './dialog-config';\n\n/** Injection token for the Dialog's ScrollStrategy. */\nexport const DIALOG_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'DialogScrollStrategy',\n);\n\n/** Injection token for the Dialog's Data. */\nexport const DIALOG_DATA = new InjectionToken<any>('DialogData');\n\n/** Injection token for the DialogRef constructor. */\nexport const DIALOG_REF = new InjectionToken<DialogRef<any>>('DialogRef');\n\n/** Injection token for the DialogConfig. */\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('DialogConfig');\n\n/** Injection token for the Dialog's DialogContainer component. */\nexport const DIALOG_CONTAINER = new InjectionToken<ComponentType<CdkDialogContainer>>(\n 'DialogContainer',\n);\n\n/** @docs-private */\nexport function MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(\n overlay: Overlay,\n): () => ScrollStrategy {\n return () => overlay.scrollStrategies.block();\n}\n\n/** @docs-private */\nexport const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\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 TemplateRef,\n SkipSelf,\n Optional,\n Injectable,\n Injector,\n Inject,\n ComponentRef,\n OnDestroy,\n Type,\n StaticProvider,\n InjectFlags,\n} from '@angular/core';\nimport {ComponentPortal, TemplatePortal} from '@angular/cdk/portal';\nimport {of as observableOf, Observable, Subject, defer} from 'rxjs';\nimport {DialogRef} from './dialog-ref';\nimport {Location} from '@angular/common';\nimport {DialogConfig} from './dialog-config';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {CdkDialogContainer} from './dialog-container';\nimport {\n ComponentType,\n Overlay,\n OverlayRef,\n OverlayConfig,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {startWith} from 'rxjs/operators';\n\nimport {\n DIALOG_SCROLL_STRATEGY,\n DIALOG_DATA,\n DIALOG_REF,\n DIALOG_CONTAINER,\n DIALOG_CONFIG,\n} from './dialog-injectors';\n\n/**\n * Service to open modal dialogs.\n */\n@Injectable()\nexport class Dialog implements OnDestroy {\n private _scrollStrategy: () => ScrollStrategy;\n\n /** Stream that emits when all dialogs are closed. */\n _getAfterAllClosed(): Observable<void> {\n return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase;\n }\n readonly _afterAllClosedBase = new Subject<void>();\n\n // TODO(jelbourn): tighten the type on the right-hand side of this expression.\n afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length\n ? this._getAfterAllClosed()\n : this._getAfterAllClosed().pipe(startWith(undefined)),\n );\n\n /** Stream that emits when a dialog is opened. */\n get afterOpened(): Subject<DialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;\n }\n readonly _afterOpened = new Subject<DialogRef<any>>();\n\n /** Stream that emits when a dialog is opened. */\n get openDialogs(): DialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs;\n }\n _openDialogs: DialogRef<any>[] = [];\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n @Inject(DIALOG_REF) private _dialogRefConstructor: Type<DialogRef<any>>,\n // TODO(crisbeto): the `any` here can be replaced\n // with the proper type once we start using Ivy.\n @Inject(DIALOG_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() @SkipSelf() private _parentDialog: Dialog,\n @Optional() location: Location,\n ) {\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll());\n }\n\n this._scrollStrategy = scrollStrategy;\n }\n\n /** Gets an open dialog by id. */\n getById(id: string): DialogRef<any> | undefined {\n return this._openDialogs.find(ref => ref.id === id);\n }\n\n /** Closes all open dialogs. */\n closeAll(): void {\n this.openDialogs.forEach(ref => ref.close());\n }\n\n /** Opens a dialog from a component. */\n openFromComponent<T>(component: ComponentType<T>, config?: DialogConfig): DialogRef<any> {\n config = this._applyConfigDefaults(config);\n\n if (config.id && this.getById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const overlayRef = this._createOverlay(config);\n const dialogContainer = this._attachDialogContainer(overlayRef, config);\n const dialogRef = this._attachDialogContentForComponent(\n component,\n dialogContainer,\n overlayRef,\n config,\n );\n\n this._registerDialogRef(dialogRef);\n dialogContainer._initializeWithAttachedContent();\n\n return dialogRef;\n }\n\n /** Opens a dialog from a template. */\n openFromTemplate<T>(template: TemplateRef<T>, config?: DialogConfig): DialogRef<any> {\n config = this._applyConfigDefaults(config);\n\n if (config.id && this.getById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const overlayRef = this._createOverlay(config);\n const dialogContainer = this._attachDialogContainer(overlayRef, config);\n const dialogRef = this._attachDialogContentForTemplate(\n template,\n dialogContainer,\n overlayRef,\n config,\n );\n\n this._registerDialogRef(dialogRef);\n dialogContainer._initializeWithAttachedContent();\n\n return dialogRef;\n }\n\n ngOnDestroy() {\n // Only close all the dialogs at this level.\n this._openDialogs.forEach(ref => ref.close());\n }\n\n /**\n * Forwards emitting events for when dialogs are opened and all dialogs are closed.\n */\n private _registerDialogRef(dialogRef: DialogRef<any>): void {\n this.openDialogs.push(dialogRef);\n\n const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {\n this.afterOpened.next(dialogRef);\n dialogOpenSub.unsubscribe();\n });\n\n const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {\n let dialogIndex = this._openDialogs.indexOf(dialogRef);\n\n if (dialogIndex > -1) {\n this._openDialogs.splice(dialogIndex, 1);\n }\n\n if (!this._openDialogs.length) {\n this._afterAllClosedBase.next();\n dialogCloseSub.unsubscribe();\n }\n });\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n protected _createOverlay(config: DialogConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n });\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Attaches an MatDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n protected _attachDialogContainer(overlay: OverlayRef, config: DialogConfig): CdkDialogContainer {\n const container = config.containerComponent || this._injector.get(DIALOG_CONTAINER);\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{provide: DialogConfig, useValue: config}],\n });\n const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector);\n const containerRef: ComponentRef<CdkDialogContainer> = overlay.attach(containerPortal);\n containerRef.instance._config = config;\n\n return containerRef.instance;\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForComponent<T>(\n componentOrTemplateRef: ComponentType<T>,\n dialogContainer: CdkDialogContainer,\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = this._createDialogRef(overlayRef, dialogContainer, config);\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer);\n const contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n return dialogRef;\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForTemplate<T>(\n componentOrTemplateRef: TemplateRef<T>,\n dialogContainer: CdkDialogContainer,\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = this._createDialogRef(overlayRef, dialogContainer, config);\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{\n $implicit: config.data,\n dialogRef,\n }),\n );\n return dialogRef;\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param container Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(\n config: DialogConfig,\n dialogRef: DialogRef<T>,\n dialogContainer: CdkDialogContainer,\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const providers: StaticProvider[] = [\n {provide: this._injector.get(DIALOG_REF), useValue: dialogRef},\n {provide: this._injector.get(DIALOG_CONTAINER), useValue: dialogContainer},\n {provide: DIALOG_DATA, useValue: config.data},\n ];\n\n if (\n config.direction &&\n (!userInjector ||\n !userInjector.get<Directionality | null>(Directionality, null, InjectFlags.Optional))\n ) {\n providers.push({\n provide: Directionality,\n useValue: {value: config.direction, change: observableOf()},\n });\n }\n\n return Injector.create({parent: userInjector || this._injector, providers});\n }\n\n /** Creates a new dialog ref. */\n private _createDialogRef(\n overlayRef: OverlayRef,\n dialogContainer: CdkDialogContainer,\n config: DialogConfig,\n ) {\n const dialogRef = new this._dialogRefConstructor(overlayRef, dialogContainer, config.id);\n dialogRef.disableClose = config.disableClose;\n dialogRef.updateSize(config).updatePosition(config.position);\n return dialogRef;\n }\n\n /**\n * Expands the provided configuration object to include the default values for properties which\n * are undefined.\n */\n private _applyConfigDefaults(config?: DialogConfig): DialogConfig {\n const dialogConfig = this._injector.get(DIALOG_CONFIG) as typeof DialogConfig;\n return {...new dialogConfig(), ...config};\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 {PortalModule} from '@angular/cdk/portal';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {Dialog} from './dialog';\nimport {CdkDialogContainer} from './dialog-container';\nimport {DialogConfig} from './dialog-config';\nimport {DialogRef} from './dialog-ref';\nimport {\n DIALOG_CONFIG,\n DIALOG_CONTAINER,\n DIALOG_REF,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n} from './dialog-injectors';\n\n@NgModule({\n imports: [OverlayModule, PortalModule, A11yModule],\n exports: [\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n CdkDialogContainer,\n ],\n declarations: [CdkDialogContainer],\n providers: [\n Dialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n {provide: DIALOG_REF, useValue: DialogRef},\n {provide: DIALOG_CONTAINER, useValue: CdkDialogContainer},\n {provide: DIALOG_CONFIG, useValue: DialogConfig},\n ],\n})\nexport class DialogModule {}\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 './dialog-container';\nexport * from './dialog-config';\nexport * from './dialog-ref';\nexport * from './dialog';\nexport * from './dialog-module';\nexport * from './dialog-injectors';\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":["i2.DialogConfig","observableOf","i1"],"mappings":"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"}
@@ -139,9 +139,9 @@ class CdkOption {
139
139
  this._active = false;
140
140
  }
141
141
  }
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: [{
142
+ CdkOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.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.3.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.3.0", ngImport: i0, type: CdkOption, decorators: [{
145
145
  type: Directive,
146
146
  args: [{
147
147
  selector: '[cdkOption]',
@@ -451,9 +451,9 @@ class CdkListbox {
451
451
  }
452
452
  }
453
453
  }
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: [{
454
+ CdkListbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.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.3.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.3.0", ngImport: i0, type: CdkListbox, decorators: [{
457
457
  type: Directive,
458
458
  args: [{
459
459
  selector: '[cdkListbox]',
@@ -516,10 +516,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
516
516
  const EXPORTED_DECLARATIONS = [CdkListbox, CdkOption];
517
517
  class CdkListboxModule {
518
518
  }
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: [{
519
+ CdkListboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CdkListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
520
+ CdkListboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CdkListboxModule, declarations: [CdkListbox, CdkOption], exports: [CdkListbox, CdkOption] });
521
+ CdkListboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CdkListboxModule });
522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CdkListboxModule, decorators: [{
523
523
  type: NgModule,
524
524
  args: [{
525
525
  exports: EXPORTED_DECLARATIONS,
@@ -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 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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"}