@angular/material 5.2.4 → 5.2.5
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.
- package/bundles/material-core.umd.js +0 -1
- package/bundles/material-core.umd.js.map +1 -1
- package/bundles/material-datepicker.umd.js +0 -11
- package/bundles/material-datepicker.umd.js.map +1 -1
- package/bundles/material-datepicker.umd.min.js.map +1 -1
- package/bundles/material-dialog.umd.js +0 -2
- package/bundles/material-dialog.umd.js.map +1 -1
- package/bundles/material-form-field.umd.js +0 -1
- package/bundles/material-form-field.umd.js.map +1 -1
- package/bundles/material-menu.umd.js +4 -4
- package/bundles/material-menu.umd.min.js +1 -1
- package/bundles/material-snack-bar.umd.js +0 -2
- package/bundles/material-snack-bar.umd.js.map +1 -1
- package/bundles/material-table.umd.js +0 -3
- package/bundles/material-table.umd.js.map +1 -1
- package/bundles/material.umd.js +5 -25
- package/bundles/material.umd.js.map +1 -1
- package/bundles/material.umd.min.js +1 -1
- package/bundles/material.umd.min.js.map +1 -1
- package/esm2015/core.js +0 -1
- package/esm2015/core.js.map +1 -1
- package/esm2015/datepicker.js +0 -11
- package/esm2015/datepicker.js.map +1 -1
- package/esm2015/dialog.js +0 -2
- package/esm2015/dialog.js.map +1 -1
- package/esm2015/form-field.js +0 -1
- package/esm2015/form-field.js.map +1 -1
- package/esm2015/material.js +3 -3
- package/esm2015/material.js.map +1 -1
- package/esm2015/menu.js +1 -1
- package/esm2015/snack-bar.js +0 -2
- package/esm2015/snack-bar.js.map +1 -1
- package/esm2015/table.js +0 -3
- package/esm2015/table.js.map +1 -1
- package/esm5/core.es5.js +0 -1
- package/esm5/core.es5.js.map +1 -1
- package/esm5/datepicker.es5.js +0 -11
- package/esm5/datepicker.es5.js.map +1 -1
- package/esm5/dialog.es5.js +0 -2
- package/esm5/dialog.es5.js.map +1 -1
- package/esm5/form-field.es5.js +0 -1
- package/esm5/form-field.es5.js.map +1 -1
- package/esm5/material.es5.js +3 -3
- package/esm5/material.es5.js.map +1 -1
- package/esm5/menu.es5.js +1 -1
- package/esm5/snack-bar.es5.js +0 -2
- package/esm5/snack-bar.es5.js.map +1 -1
- package/esm5/table.es5.js +0 -3
- package/esm5/table.es5.js.map +1 -1
- package/menu/typings/index.d.ts +2 -2
- package/menu/typings/index.metadata.json +1 -1
- package/package.json +4 -4
- package/typings/esm5/index.metadata.json +1 -1
- package/typings/esm5/menu/index.d.ts +2 -2
- package/typings/esm5/menu/index.metadata.json +1 -1
- package/typings/index.metadata.json +1 -1
- package/typings/menu/index.d.ts +2 -2
- package/typings/menu/index.metadata.json +1 -1
package/esm2015/dialog.js
CHANGED
|
@@ -34,7 +34,6 @@ import { Subscription } from 'rxjs/Subscription';
|
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Configuration for opening a modal dialog with the MatDialog service.
|
|
37
|
-
* @template D
|
|
38
37
|
*/
|
|
39
38
|
class MatDialogConfig {
|
|
40
39
|
constructor() {
|
|
@@ -316,7 +315,6 @@ MatDialogContainer.propDecorators = {
|
|
|
316
315
|
let uniqueId = 0;
|
|
317
316
|
/**
|
|
318
317
|
* Reference to a dialog opened via the MatDialog service.
|
|
319
|
-
* @template T, R
|
|
320
318
|
*/
|
|
321
319
|
class MatDialogRef {
|
|
322
320
|
/**
|
package/esm2015/dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sources":["../../../src/lib/dialog/index.ts","../../../src/lib/dialog/public-api.ts","../../../src/lib/dialog/dialog-module.ts","../../../src/lib/dialog/dialog-content-directives.ts","../../../src/lib/dialog/dialog.ts","../../../src/lib/dialog/dialog-ref.ts","../../../src/lib/dialog/dialog-container.ts","../../../src/lib/dialog/dialog-animations.ts","../../../src/lib/dialog/dialog-config.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\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-module';\nexport * from './dialog';\nexport * from './dialog-container';\nexport * from './dialog-content-directives';\nexport * from './dialog-config';\nexport * from './dialog-ref';\nexport * from './dialog-animations';\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 {CommonModule} from '@angular/common';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MatCommonModule} from '@angular/material/core';\nimport {\n MatDialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER\n} from './dialog';\nimport {MatDialogContainer} from './dialog-container';\nimport {\n MatDialogClose,\n MatDialogContent,\n MatDialogTitle,\n MatDialogActions\n} from './dialog-content-directives';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n A11yModule,\n MatCommonModule,\n ],\n exports: [\n MatDialogContainer,\n MatDialogClose,\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatCommonModule,\n ],\n declarations: [\n MatDialogContainer,\n MatDialogClose,\n MatDialogTitle,\n MatDialogActions,\n MatDialogContent,\n ],\n providers: [\n MatDialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n ],\n entryComponents: [MatDialogContainer],\n})\nexport class MatDialogModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Directive,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n ElementRef,\n} from '@angular/core';\nimport {MatDialog} from './dialog';\nimport {MatDialogRef} from './dialog-ref';\n\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n selector: `button[mat-dialog-close], button[matDialogClose]`,\n exportAs: 'matDialogClose',\n host: {\n '(click)': 'dialogRef.close(dialogResult)',\n '[attr.aria-label]': 'ariaLabel',\n 'type': 'button', // Prevents accidental form submits.\n }\n})\nexport class MatDialogClose implements OnInit, OnChanges {\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string = 'Close dialog';\n\n /** Dialog close input. */\n @Input('mat-dialog-close') dialogResult: any;\n\n @Input('matDialogClose') _matDialogClose: any;\n\n constructor(\n @Optional() public dialogRef: MatDialogRef<any>,\n private _elementRef: ElementRef,\n private _dialog: MatDialog) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs)!;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes._matDialogClose || changes._matDialogCloseResult;\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n}\n\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\n@Directive({\n selector: '[mat-dialog-title], [matDialogTitle]',\n exportAs: 'matDialogTitle',\n host: {\n 'class': 'mat-dialog-title',\n '[id]': 'id',\n },\n})\nexport class MatDialogTitle implements OnInit {\n @Input() id = `mat-dialog-title-${dialogElementUid++}`;\n\n constructor(\n @Optional() private _dialogRef: MatDialogRef<any>,\n private _elementRef: ElementRef,\n private _dialog: MatDialog) {}\n\n ngOnInit() {\n if (!this._dialogRef) {\n this._dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs)!;\n }\n\n if (this._dialogRef) {\n Promise.resolve().then(() => {\n const container = this._dialogRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\n }\n }\n}\n\n\n/**\n * Scrollable content container of a dialog.\n */\n@Directive({\n selector: `[mat-dialog-content], mat-dialog-content, [matDialogContent]`,\n host: {'class': 'mat-dialog-content'}\n})\nexport class MatDialogContent {}\n\n\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\n@Directive({\n selector: `[mat-dialog-actions], mat-dialog-actions, [matDialogActions]`,\n host: {'class': 'mat-dialog-actions'}\n})\nexport class MatDialogActions {}\n\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(element: ElementRef, openDialogs: MatDialogRef<any>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('mat-dialog-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openDialogs.find(dialog => dialog.id === parent!.id) : null;\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n OverlayContainer,\n} from '@angular/cdk/overlay';\nimport {ComponentPortal, ComponentType, PortalInjector, TemplatePortal} from '@angular/cdk/portal';\nimport {Location} from '@angular/common';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n Optional,\n SkipSelf,\n TemplateRef,\n} from '@angular/core';\nimport {Observable} from 'rxjs/Observable';\nimport {defer} from 'rxjs/observable/defer';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {startWith} from 'rxjs/operators/startWith';\nimport {Subject} from 'rxjs/Subject';\nimport {MatDialogConfig} from './dialog-config';\nimport {MatDialogContainer} from './dialog-container';\nimport {MatDialogRef} from './dialog-ref';\n\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nexport const MAT_DIALOG_DATA = new InjectionToken<any>('MatDialogData');\n\n/** Injection token that can be used to specify default dialog options. */\nexport const MAT_DIALOG_DEFAULT_OPTIONS =\n new InjectionToken<MatDialogConfig>('mat-dialog-default-options');\n\n/** Injection token that determines the scroll handling while the dialog is open. */\nexport const MAT_DIALOG_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('mat-dialog-scroll-strategy');\n\n/** @docs-private */\nexport function MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => ScrollStrategy {\n return () => overlay.scrollStrategies.block();\n}\n\n/** @docs-private */\nexport const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n\n/**\n * Service to open Material Design modal dialogs.\n */\n@Injectable()\nexport class MatDialog {\n private _openDialogsAtThisLevel: MatDialogRef<any>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenAtThisLevel = new Subject<MatDialogRef<any>>();\n private _ariaHiddenElements = new Map<Element, string|null>();\n\n /** Keeps track of the currently-open dialogs. */\n get openDialogs(): MatDialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n\n /** Stream that emits when a dialog has been opened. */\n get afterOpen(): Subject<MatDialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpenAtThisLevel;\n }\n\n get _afterAllClosed() {\n const parent = this._parentDialog;\n return parent ? parent._afterAllClosed : this._afterAllClosedAtThisLevel;\n }\n\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n readonly afterAllClosed: Observable<void> = defer<void>(() => this.openDialogs.length ?\n this._afterAllClosed :\n this._afterAllClosed.pipe(startWith(undefined)));\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n @Optional() private _location: Location,\n @Optional() @Inject(MAT_DIALOG_DEFAULT_OPTIONS) private _defaultOptions,\n @Inject(MAT_DIALOG_SCROLL_STRATEGY) private _scrollStrategy,\n @Optional() @SkipSelf() private _parentDialog: MatDialog,\n private _overlayContainer: OverlayContainer) {}\n\n /**\n * Opens a modal dialog containing the given component.\n * @param componentOrTemplateRef Type of the component to load into the dialog,\n * or a TemplateRef to instantiate as the dialog content.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<T, D = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: MatDialogConfig<D>): MatDialogRef<T> {\n\n config = _applyConfigDefaults(config, this._defaultOptions || new MatDialogConfig());\n\n if (config.id && this.getDialogById(config.id)) {\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 =\n this._attachDialogContent<T>(componentOrTemplateRef, dialogContainer, overlayRef, config);\n\n // If this is the first dialog that we're opening, hide all the non-overlay content.\n if (!this.openDialogs.length) {\n this._hideNonDialogContentFromAssistiveTechnology();\n }\n\n this.openDialogs.push(dialogRef);\n dialogRef.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpen.next(dialogRef);\n\n return dialogRef;\n }\n\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll(): void {\n let i = this.openDialogs.length;\n\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n this.openDialogs[i].close();\n }\n }\n\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id: string): MatDialogRef<any> | undefined {\n return this.openDialogs.find(dialog => dialog.id === id);\n }\n\n /**\n * Creates the overlay into which the dialog will be loaded.\n * @param config The dialog configuration.\n * @returns A promise resolving to the OverlayRef for the created overlay.\n */\n private _createOverlay(config: MatDialogConfig): OverlayRef {\n const overlayConfig = this._getOverlayConfig(config);\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param dialogConfig The dialog configuration.\n * @returns The overlay configuration.\n */\n private _getOverlayConfig(dialogConfig: MatDialogConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: dialogConfig.scrollStrategy || this._scrollStrategy(),\n panelClass: dialogConfig.panelClass,\n hasBackdrop: dialogConfig.hasBackdrop,\n direction: dialogConfig.direction,\n minWidth: dialogConfig.minWidth,\n minHeight: dialogConfig.minHeight,\n maxWidth: dialogConfig.maxWidth,\n maxHeight: dialogConfig.maxHeight\n });\n\n if (dialogConfig.backdropClass) {\n state.backdropClass = dialogConfig.backdropClass;\n }\n\n return state;\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 private _attachDialogContainer(overlay: OverlayRef, config: MatDialogConfig): MatDialogContainer {\n let containerPortal = new ComponentPortal(MatDialogContainer, config.viewContainerRef);\n let containerRef: ComponentRef<MatDialogContainer> = 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 private _attachDialogContent<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n dialogContainer: MatDialogContainer,\n overlayRef: OverlayRef,\n config: MatDialogConfig): MatDialogRef<T> {\n\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 = new MatDialogRef<T>(overlayRef, dialogContainer, this._location, config.id);\n\n // When the dialog backdrop is clicked, we want to close it.\n if (config.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => {\n if (!dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n }\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!,\n <any>{ $implicit: config.data, dialogRef }));\n } else {\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer);\n const contentRef = dialogContainer.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, undefined, injector));\n dialogRef.componentInstance = contentRef.instance;\n }\n\n dialogRef\n .updateSize(config.width, config.height)\n .updatePosition(config.position);\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: MatDialogConfig,\n dialogRef: MatDialogRef<T>,\n dialogContainer: MatDialogContainer): PortalInjector {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injectionTokens = new WeakMap();\n\n // The MatDialogContainer is injected in the portal as the MatDialogContainer and the dialog's\n // content are created out of the same ViewContainerRef and as such, are siblings for injector\n // purposes. To allow the hierarchy that is expected, the MatDialogContainer is explicitly\n // added to the injection tokens.\n injectionTokens\n .set(MatDialogContainer, dialogContainer)\n .set(MAT_DIALOG_DATA, config.data)\n .set(MatDialogRef, dialogRef);\n\n if (!userInjector || !userInjector.get(Directionality, null)) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: observableOf()\n });\n }\n\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n }\n\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n */\n private _removeOpenDialog(dialogRef: MatDialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this._ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n\n this._ariaHiddenElements.clear();\n this._afterAllClosed.next();\n }\n }\n }\n\n /**\n * Hides all of the content that isn't an overlay from assistive technology.\n */\n private _hideNonDialogContentFromAssistiveTechnology() {\n const overlayContainer = this._overlayContainer.getContainerElement();\n\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n\n for (let i = siblings.length - 1; i > -1; i--) {\n let sibling = siblings[i];\n\n if (sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')) {\n\n this._ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n }\n\n}\n\n/**\n * Applies default options to the dialog config.\n * @param config Config to be modified.\n * @param defaultOptions Default options provided.\n * @returns The new configuration object.\n */\nfunction _applyConfigDefaults(\n config?: MatDialogConfig, defaultOptions?: MatDialogConfig): MatDialogConfig {\n return {...defaultOptions, ...config};\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 {OverlayRef, GlobalPositionStrategy} from '@angular/cdk/overlay';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {Location} from '@angular/common';\nimport {filter} from 'rxjs/operators/filter';\nimport {take} from 'rxjs/operators/take';\nimport {DialogPosition} from './dialog-config';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription, ISubscription} from 'rxjs/Subscription';\nimport {MatDialogContainer} from './dialog-container';\n\n\n// TODO(jelbourn): resizing\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n/**\n * Reference to a dialog opened via the MatDialog service.\n */\nexport class MatDialogRef<T, R = any> {\n /** The instance of component opened into the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined = this._containerInstance._config.disableClose;\n\n /** Subject for notifying the user that the dialog has finished opening. */\n private readonly _afterOpen = new Subject<void>();\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private readonly _afterClosed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the dialog has started closing. */\n private readonly _beforeClose = new Subject<R | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n /** Subscription to changes in the user's location. */\n private _locationChanges: ISubscription = Subscription.EMPTY;\n\n constructor(\n private _overlayRef: OverlayRef,\n public _containerInstance: MatDialogContainer,\n location?: Location,\n readonly id: string = `mat-dialog-${uniqueId++}`) {\n\n // Pass the id along to the container.\n _containerInstance._id = id;\n\n // Emit when opening animation completes\n _containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'enter'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpen.next();\n this._afterOpen.complete();\n });\n\n // Dispose overlay when closing animation is complete\n _containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'exit'),\n take(1)\n )\n .subscribe(() => {\n this._overlayRef.dispose();\n this._locationChanges.unsubscribe();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null!;\n });\n\n _overlayRef.keydownEvents()\n .pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose))\n .subscribe(() => this.close());\n\n if (location) {\n // Close the dialog when the user goes forwards/backwards in history or when the location\n // hash changes. Note that this usually doesn't include clicking on links (unless the user\n // is using the `HashLocationStrategy`).\n this._locationChanges = location.subscribe(() => {\n if (this._containerInstance._config.closeOnNavigation) {\n this.close();\n }\n });\n }\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\n // Transition the backdrop in parallel to the dialog.\n this._containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(() => {\n this._beforeClose.next(dialogResult);\n this._beforeClose.complete();\n this._overlayRef.detachBackdrop();\n });\n\n this._containerInstance._startExitAnimation();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpen(): Observable<void> {\n return this._afterOpen.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<R | undefined> {\n return this._afterClosed.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClose(): Observable<R | undefined> {\n return this._beforeClose.asObservable();\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\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 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 * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSize(width: string = 'auto', height: string = 'auto'): this {\n this._getPositionStrategy().width(width).height(height);\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","/**\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 Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n Optional,\n ChangeDetectorRef,\n ViewChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {AnimationEvent} from '@angular/animations';\nimport {matDialogAnimations} from './dialog-animations';\nimport {\n BasePortalOutlet,\n ComponentPortal,\n CdkPortalOutlet,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport {FocusTrap, FocusTrapFactory} from '@angular/cdk/a11y';\nimport {MatDialogConfig} from './dialog-config';\n\n\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nexport function throwMatDialogContentAlreadyAttachedError() {\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 * Animation is based on https://material.io/guidelines/motion/choreography.html.\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-dialog-container',\n templateUrl: 'dialog-container.html',\n styleUrls: ['dialog.css'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\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: [matDialogAnimations.slideDialog],\n host: {\n 'class': 'mat-dialog-container',\n 'tabindex': '-1',\n '[attr.id]': '_id',\n '[attr.role]': '_config?.role',\n '[attr.aria-labelledby]': '_config?.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config?.ariaLabel',\n '[attr.aria-describedby]': '_config?.ariaDescribedBy || null',\n '[@slideDialog]': '_state',\n '(@slideDialog.start)': '_onAnimationStart($event)',\n '(@slideDialog.done)': '_onAnimationDone($event)',\n },\n})\nexport class MatDialogContainer extends BasePortalOutlet {\n /** The portal outlet inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet;\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap: FocusTrap;\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 dialog configuration. */\n _config: MatDialogConfig;\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n _animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** ID of the element that should be considered as the dialog's label. */\n _ariaLabelledBy: string | null = null;\n\n /** ID for the container DOM element. */\n _id: string;\n\n constructor(\n private _elementRef: ElementRef,\n private _focusTrapFactory: FocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private _document: any) {\n\n super();\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._portalOutlet.hasAttached()) {\n throwMatDialogContentAlreadyAttachedError();\n }\n\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.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._portalOutlet.hasAttached()) {\n throwMatDialogContentAlreadyAttachedError();\n }\n\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Moves the focus inside the focus trap. */\n private _trapFocus() {\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\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.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady();\n }\n }\n\n /** Restores focus to the element that was focused before the dialog opened. */\n private _restoreFocus() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened;\n\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 toFocus.focus();\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\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 = this._document.activeElement as HTMLElement;\n\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n Promise.resolve().then(() => this._elementRef.nativeElement.focus());\n }\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n _onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._trapFocus();\n } else if (event.toState === 'exit') {\n this._restoreFocus();\n }\n\n this._animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n _onAnimationStart(event: AnimationEvent) {\n this._animationStateChanged.emit(event);\n }\n\n /** Starts the dialog exit animation. */\n _startExitAnimation(): 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","/**\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 {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by MatDialog. */\nexport const matDialogAnimations: {\n readonly slideDialog: AnimationTriggerMetadata;\n} = {\n /** Animation that slides the dialog in and out of view and fades the opacity. */\n slideDialog: trigger('slideDialog', [\n // Note: The `enter` animation doesn't transition to something like `translate3d(0, 0, 0)\n // scale(1)`, because for some reason specifying the transform explicitly, causes IE both\n // to blur the dialog content and decimate the animation performance. Leaving it as `none`\n // solves both issues.\n state('enter', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 25%, 0) scale(0.9)', opacity: 0 })),\n state('exit', style({ transform: 'translate3d(0, 25%, 0)', opacity: 0 })),\n transition('* => *', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)')),\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 {ViewContainerRef} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\nimport {ScrollStrategy} from '@angular/cdk/overlay';\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 /** Override for the dialog's top position. */\n top?: string;\n\n /** Override for the dialog's bottom position. */\n bottom?: string;\n\n /** Override for the dialog's left position. */\n left?: string;\n\n /** Override for the dialog's right position. */\n right?: string;\n}\n\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nexport class MatDialogConfig<D = any> {\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 /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The ARIA role of the dialog element. */\n role?: DialogRole = 'dialog';\n\n /** Custom class for the overlay pane. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop, */\n backdropClass?: string = '';\n\n /** Whether the user can use escape or clicking outside to close a modal. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, pixel units are assumed. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, pixel units are assumed. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, pixel units are assumed. Defaults to 80vw */\n maxWidth?: number | string = '80vw';\n\n /** Max-height of the dialog. If a number is provided, pixel units are assumed. */\n maxHeight?: number | string;\n\n /** Position overrides. */\n position?: DialogPosition;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Layout direction for the dialog's content. */\n direction?: Direction = 'ltr';\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 /** Whether the dialog should focus the first focusable element on open. */\n autoFocus?: boolean = true;\n\n /** Scroll strategy to be used for the dialog. */\n scrollStrategy?: ScrollStrategy;\n\n /** Whether the dialog should close when the user goes backwards/forwards in history. */\n closeOnNavigation?: boolean = true;\n\n // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n}\n"],"names":["observableOf","state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dialog.js","sources":["../../../src/lib/dialog/index.ts","../../../src/lib/dialog/public-api.ts","../../../src/lib/dialog/dialog-module.ts","../../../src/lib/dialog/dialog-content-directives.ts","../../../src/lib/dialog/dialog.ts","../../../src/lib/dialog/dialog-ref.ts","../../../src/lib/dialog/dialog-container.ts","../../../src/lib/dialog/dialog-animations.ts","../../../src/lib/dialog/dialog-config.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\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-module';\nexport * from './dialog';\nexport * from './dialog-container';\nexport * from './dialog-content-directives';\nexport * from './dialog-config';\nexport * from './dialog-ref';\nexport * from './dialog-animations';\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 {CommonModule} from '@angular/common';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MatCommonModule} from '@angular/material/core';\nimport {\n MatDialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER\n} from './dialog';\nimport {MatDialogContainer} from './dialog-container';\nimport {\n MatDialogClose,\n MatDialogContent,\n MatDialogTitle,\n MatDialogActions\n} from './dialog-content-directives';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n A11yModule,\n MatCommonModule,\n ],\n exports: [\n MatDialogContainer,\n MatDialogClose,\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatCommonModule,\n ],\n declarations: [\n MatDialogContainer,\n MatDialogClose,\n MatDialogTitle,\n MatDialogActions,\n MatDialogContent,\n ],\n providers: [\n MatDialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n ],\n entryComponents: [MatDialogContainer],\n})\nexport class MatDialogModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Directive,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n ElementRef,\n} from '@angular/core';\nimport {MatDialog} from './dialog';\nimport {MatDialogRef} from './dialog-ref';\n\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n selector: `button[mat-dialog-close], button[matDialogClose]`,\n exportAs: 'matDialogClose',\n host: {\n '(click)': 'dialogRef.close(dialogResult)',\n '[attr.aria-label]': 'ariaLabel',\n 'type': 'button', // Prevents accidental form submits.\n }\n})\nexport class MatDialogClose implements OnInit, OnChanges {\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string = 'Close dialog';\n\n /** Dialog close input. */\n @Input('mat-dialog-close') dialogResult: any;\n\n @Input('matDialogClose') _matDialogClose: any;\n\n constructor(\n @Optional() public dialogRef: MatDialogRef<any>,\n private _elementRef: ElementRef,\n private _dialog: MatDialog) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs)!;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes._matDialogClose || changes._matDialogCloseResult;\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n}\n\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\n@Directive({\n selector: '[mat-dialog-title], [matDialogTitle]',\n exportAs: 'matDialogTitle',\n host: {\n 'class': 'mat-dialog-title',\n '[id]': 'id',\n },\n})\nexport class MatDialogTitle implements OnInit {\n @Input() id = `mat-dialog-title-${dialogElementUid++}`;\n\n constructor(\n @Optional() private _dialogRef: MatDialogRef<any>,\n private _elementRef: ElementRef,\n private _dialog: MatDialog) {}\n\n ngOnInit() {\n if (!this._dialogRef) {\n this._dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs)!;\n }\n\n if (this._dialogRef) {\n Promise.resolve().then(() => {\n const container = this._dialogRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\n }\n }\n}\n\n\n/**\n * Scrollable content container of a dialog.\n */\n@Directive({\n selector: `[mat-dialog-content], mat-dialog-content, [matDialogContent]`,\n host: {'class': 'mat-dialog-content'}\n})\nexport class MatDialogContent {}\n\n\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\n@Directive({\n selector: `[mat-dialog-actions], mat-dialog-actions, [matDialogActions]`,\n host: {'class': 'mat-dialog-actions'}\n})\nexport class MatDialogActions {}\n\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(element: ElementRef, openDialogs: MatDialogRef<any>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('mat-dialog-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openDialogs.find(dialog => dialog.id === parent!.id) : null;\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n OverlayContainer,\n} from '@angular/cdk/overlay';\nimport {ComponentPortal, ComponentType, PortalInjector, TemplatePortal} from '@angular/cdk/portal';\nimport {Location} from '@angular/common';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n Optional,\n SkipSelf,\n TemplateRef,\n} from '@angular/core';\nimport {Observable} from 'rxjs/Observable';\nimport {defer} from 'rxjs/observable/defer';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {startWith} from 'rxjs/operators/startWith';\nimport {Subject} from 'rxjs/Subject';\nimport {MatDialogConfig} from './dialog-config';\nimport {MatDialogContainer} from './dialog-container';\nimport {MatDialogRef} from './dialog-ref';\n\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nexport const MAT_DIALOG_DATA = new InjectionToken<any>('MatDialogData');\n\n/** Injection token that can be used to specify default dialog options. */\nexport const MAT_DIALOG_DEFAULT_OPTIONS =\n new InjectionToken<MatDialogConfig>('mat-dialog-default-options');\n\n/** Injection token that determines the scroll handling while the dialog is open. */\nexport const MAT_DIALOG_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('mat-dialog-scroll-strategy');\n\n/** @docs-private */\nexport function MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => ScrollStrategy {\n return () => overlay.scrollStrategies.block();\n}\n\n/** @docs-private */\nexport const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n\n/**\n * Service to open Material Design modal dialogs.\n */\n@Injectable()\nexport class MatDialog {\n private _openDialogsAtThisLevel: MatDialogRef<any>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenAtThisLevel = new Subject<MatDialogRef<any>>();\n private _ariaHiddenElements = new Map<Element, string|null>();\n\n /** Keeps track of the currently-open dialogs. */\n get openDialogs(): MatDialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n\n /** Stream that emits when a dialog has been opened. */\n get afterOpen(): Subject<MatDialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpenAtThisLevel;\n }\n\n get _afterAllClosed() {\n const parent = this._parentDialog;\n return parent ? parent._afterAllClosed : this._afterAllClosedAtThisLevel;\n }\n\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n readonly afterAllClosed: Observable<void> = defer<void>(() => this.openDialogs.length ?\n this._afterAllClosed :\n this._afterAllClosed.pipe(startWith(undefined)));\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n @Optional() private _location: Location,\n @Optional() @Inject(MAT_DIALOG_DEFAULT_OPTIONS) private _defaultOptions,\n @Inject(MAT_DIALOG_SCROLL_STRATEGY) private _scrollStrategy,\n @Optional() @SkipSelf() private _parentDialog: MatDialog,\n private _overlayContainer: OverlayContainer) {}\n\n /**\n * Opens a modal dialog containing the given component.\n * @param componentOrTemplateRef Type of the component to load into the dialog,\n * or a TemplateRef to instantiate as the dialog content.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<T, D = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: MatDialogConfig<D>): MatDialogRef<T> {\n\n config = _applyConfigDefaults(config, this._defaultOptions || new MatDialogConfig());\n\n if (config.id && this.getDialogById(config.id)) {\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 =\n this._attachDialogContent<T>(componentOrTemplateRef, dialogContainer, overlayRef, config);\n\n // If this is the first dialog that we're opening, hide all the non-overlay content.\n if (!this.openDialogs.length) {\n this._hideNonDialogContentFromAssistiveTechnology();\n }\n\n this.openDialogs.push(dialogRef);\n dialogRef.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpen.next(dialogRef);\n\n return dialogRef;\n }\n\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll(): void {\n let i = this.openDialogs.length;\n\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n this.openDialogs[i].close();\n }\n }\n\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id: string): MatDialogRef<any> | undefined {\n return this.openDialogs.find(dialog => dialog.id === id);\n }\n\n /**\n * Creates the overlay into which the dialog will be loaded.\n * @param config The dialog configuration.\n * @returns A promise resolving to the OverlayRef for the created overlay.\n */\n private _createOverlay(config: MatDialogConfig): OverlayRef {\n const overlayConfig = this._getOverlayConfig(config);\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param dialogConfig The dialog configuration.\n * @returns The overlay configuration.\n */\n private _getOverlayConfig(dialogConfig: MatDialogConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: dialogConfig.scrollStrategy || this._scrollStrategy(),\n panelClass: dialogConfig.panelClass,\n hasBackdrop: dialogConfig.hasBackdrop,\n direction: dialogConfig.direction,\n minWidth: dialogConfig.minWidth,\n minHeight: dialogConfig.minHeight,\n maxWidth: dialogConfig.maxWidth,\n maxHeight: dialogConfig.maxHeight\n });\n\n if (dialogConfig.backdropClass) {\n state.backdropClass = dialogConfig.backdropClass;\n }\n\n return state;\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 private _attachDialogContainer(overlay: OverlayRef, config: MatDialogConfig): MatDialogContainer {\n let containerPortal = new ComponentPortal(MatDialogContainer, config.viewContainerRef);\n let containerRef: ComponentRef<MatDialogContainer> = 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 private _attachDialogContent<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n dialogContainer: MatDialogContainer,\n overlayRef: OverlayRef,\n config: MatDialogConfig): MatDialogRef<T> {\n\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 = new MatDialogRef<T>(overlayRef, dialogContainer, this._location, config.id);\n\n // When the dialog backdrop is clicked, we want to close it.\n if (config.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => {\n if (!dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n }\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!,\n <any>{ $implicit: config.data, dialogRef }));\n } else {\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer);\n const contentRef = dialogContainer.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, undefined, injector));\n dialogRef.componentInstance = contentRef.instance;\n }\n\n dialogRef\n .updateSize(config.width, config.height)\n .updatePosition(config.position);\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: MatDialogConfig,\n dialogRef: MatDialogRef<T>,\n dialogContainer: MatDialogContainer): PortalInjector {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injectionTokens = new WeakMap();\n\n // The MatDialogContainer is injected in the portal as the MatDialogContainer and the dialog's\n // content are created out of the same ViewContainerRef and as such, are siblings for injector\n // purposes. To allow the hierarchy that is expected, the MatDialogContainer is explicitly\n // added to the injection tokens.\n injectionTokens\n .set(MatDialogContainer, dialogContainer)\n .set(MAT_DIALOG_DATA, config.data)\n .set(MatDialogRef, dialogRef);\n\n if (!userInjector || !userInjector.get(Directionality, null)) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: observableOf()\n });\n }\n\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n }\n\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n */\n private _removeOpenDialog(dialogRef: MatDialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this._ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n\n this._ariaHiddenElements.clear();\n this._afterAllClosed.next();\n }\n }\n }\n\n /**\n * Hides all of the content that isn't an overlay from assistive technology.\n */\n private _hideNonDialogContentFromAssistiveTechnology() {\n const overlayContainer = this._overlayContainer.getContainerElement();\n\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n\n for (let i = siblings.length - 1; i > -1; i--) {\n let sibling = siblings[i];\n\n if (sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')) {\n\n this._ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n }\n\n}\n\n/**\n * Applies default options to the dialog config.\n * @param config Config to be modified.\n * @param defaultOptions Default options provided.\n * @returns The new configuration object.\n */\nfunction _applyConfigDefaults(\n config?: MatDialogConfig, defaultOptions?: MatDialogConfig): MatDialogConfig {\n return {...defaultOptions, ...config};\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 {OverlayRef, GlobalPositionStrategy} from '@angular/cdk/overlay';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {Location} from '@angular/common';\nimport {filter} from 'rxjs/operators/filter';\nimport {take} from 'rxjs/operators/take';\nimport {DialogPosition} from './dialog-config';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription, ISubscription} from 'rxjs/Subscription';\nimport {MatDialogContainer} from './dialog-container';\n\n\n// TODO(jelbourn): resizing\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n/**\n * Reference to a dialog opened via the MatDialog service.\n */\nexport class MatDialogRef<T, R = any> {\n /** The instance of component opened into the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined = this._containerInstance._config.disableClose;\n\n /** Subject for notifying the user that the dialog has finished opening. */\n private readonly _afterOpen = new Subject<void>();\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private readonly _afterClosed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the dialog has started closing. */\n private readonly _beforeClose = new Subject<R | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n /** Subscription to changes in the user's location. */\n private _locationChanges: ISubscription = Subscription.EMPTY;\n\n constructor(\n private _overlayRef: OverlayRef,\n public _containerInstance: MatDialogContainer,\n location?: Location,\n readonly id: string = `mat-dialog-${uniqueId++}`) {\n\n // Pass the id along to the container.\n _containerInstance._id = id;\n\n // Emit when opening animation completes\n _containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'enter'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpen.next();\n this._afterOpen.complete();\n });\n\n // Dispose overlay when closing animation is complete\n _containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'exit'),\n take(1)\n )\n .subscribe(() => {\n this._overlayRef.dispose();\n this._locationChanges.unsubscribe();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null!;\n });\n\n _overlayRef.keydownEvents()\n .pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose))\n .subscribe(() => this.close());\n\n if (location) {\n // Close the dialog when the user goes forwards/backwards in history or when the location\n // hash changes. Note that this usually doesn't include clicking on links (unless the user\n // is using the `HashLocationStrategy`).\n this._locationChanges = location.subscribe(() => {\n if (this._containerInstance._config.closeOnNavigation) {\n this.close();\n }\n });\n }\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\n // Transition the backdrop in parallel to the dialog.\n this._containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(() => {\n this._beforeClose.next(dialogResult);\n this._beforeClose.complete();\n this._overlayRef.detachBackdrop();\n });\n\n this._containerInstance._startExitAnimation();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpen(): Observable<void> {\n return this._afterOpen.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<R | undefined> {\n return this._afterClosed.asObservable();\n }\n\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClose(): Observable<R | undefined> {\n return this._beforeClose.asObservable();\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\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 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 * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSize(width: string = 'auto', height: string = 'auto'): this {\n this._getPositionStrategy().width(width).height(height);\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","/**\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 Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n Optional,\n ChangeDetectorRef,\n ViewChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {AnimationEvent} from '@angular/animations';\nimport {matDialogAnimations} from './dialog-animations';\nimport {\n BasePortalOutlet,\n ComponentPortal,\n CdkPortalOutlet,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport {FocusTrap, FocusTrapFactory} from '@angular/cdk/a11y';\nimport {MatDialogConfig} from './dialog-config';\n\n\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nexport function throwMatDialogContentAlreadyAttachedError() {\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 * Animation is based on https://material.io/guidelines/motion/choreography.html.\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-dialog-container',\n templateUrl: 'dialog-container.html',\n styleUrls: ['dialog.css'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\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: [matDialogAnimations.slideDialog],\n host: {\n 'class': 'mat-dialog-container',\n 'tabindex': '-1',\n '[attr.id]': '_id',\n '[attr.role]': '_config?.role',\n '[attr.aria-labelledby]': '_config?.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config?.ariaLabel',\n '[attr.aria-describedby]': '_config?.ariaDescribedBy || null',\n '[@slideDialog]': '_state',\n '(@slideDialog.start)': '_onAnimationStart($event)',\n '(@slideDialog.done)': '_onAnimationDone($event)',\n },\n})\nexport class MatDialogContainer extends BasePortalOutlet {\n /** The portal outlet inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet;\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap: FocusTrap;\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 dialog configuration. */\n _config: MatDialogConfig;\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n _animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** ID of the element that should be considered as the dialog's label. */\n _ariaLabelledBy: string | null = null;\n\n /** ID for the container DOM element. */\n _id: string;\n\n constructor(\n private _elementRef: ElementRef,\n private _focusTrapFactory: FocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private _document: any) {\n\n super();\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._portalOutlet.hasAttached()) {\n throwMatDialogContentAlreadyAttachedError();\n }\n\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.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._portalOutlet.hasAttached()) {\n throwMatDialogContentAlreadyAttachedError();\n }\n\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Moves the focus inside the focus trap. */\n private _trapFocus() {\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\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.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady();\n }\n }\n\n /** Restores focus to the element that was focused before the dialog opened. */\n private _restoreFocus() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened;\n\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 toFocus.focus();\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\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 = this._document.activeElement as HTMLElement;\n\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n Promise.resolve().then(() => this._elementRef.nativeElement.focus());\n }\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n _onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._trapFocus();\n } else if (event.toState === 'exit') {\n this._restoreFocus();\n }\n\n this._animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n _onAnimationStart(event: AnimationEvent) {\n this._animationStateChanged.emit(event);\n }\n\n /** Starts the dialog exit animation. */\n _startExitAnimation(): 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","/**\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 {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by MatDialog. */\nexport const matDialogAnimations: {\n readonly slideDialog: AnimationTriggerMetadata;\n} = {\n /** Animation that slides the dialog in and out of view and fades the opacity. */\n slideDialog: trigger('slideDialog', [\n // Note: The `enter` animation doesn't transition to something like `translate3d(0, 0, 0)\n // scale(1)`, because for some reason specifying the transform explicitly, causes IE both\n // to blur the dialog content and decimate the animation performance. Leaving it as `none`\n // solves both issues.\n state('enter', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 25%, 0) scale(0.9)', opacity: 0 })),\n state('exit', style({ transform: 'translate3d(0, 25%, 0)', opacity: 0 })),\n transition('* => *', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)')),\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 {ViewContainerRef} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\nimport {ScrollStrategy} from '@angular/cdk/overlay';\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 /** Override for the dialog's top position. */\n top?: string;\n\n /** Override for the dialog's bottom position. */\n bottom?: string;\n\n /** Override for the dialog's left position. */\n left?: string;\n\n /** Override for the dialog's right position. */\n right?: string;\n}\n\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nexport class MatDialogConfig<D = any> {\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 /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The ARIA role of the dialog element. */\n role?: DialogRole = 'dialog';\n\n /** Custom class for the overlay pane. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop, */\n backdropClass?: string = '';\n\n /** Whether the user can use escape or clicking outside to close a modal. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, pixel units are assumed. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, pixel units are assumed. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, pixel units are assumed. Defaults to 80vw */\n maxWidth?: number | string = '80vw';\n\n /** Max-height of the dialog. If a number is provided, pixel units are assumed. */\n maxHeight?: number | string;\n\n /** Position overrides. */\n position?: DialogPosition;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Layout direction for the dialog's content. */\n direction?: Direction = 'ltr';\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 /** Whether the dialog should focus the first focusable element on open. */\n autoFocus?: boolean = true;\n\n /** Scroll strategy to be used for the dialog. */\n scrollStrategy?: ScrollStrategy;\n\n /** Whether the dialog should close when the user goes backwards/forwards in history. */\n closeOnNavigation?: boolean = true;\n\n // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n}\n"],"names":["observableOf","state"],"mappings":"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"}
|
package/esm2015/form-field.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field.js","sources":["../../../src/lib/form-field/index.ts","../../../src/lib/form-field/public-api.ts","../../../src/lib/form-field/form-field-module.ts","../../../src/lib/form-field/form-field.ts","../../../src/lib/form-field/suffix.ts","../../../src/lib/form-field/prefix.ts","../../../src/lib/form-field/placeholder.ts","../../../src/lib/form-field/label.ts","../../../src/lib/form-field/hint.ts","../../../src/lib/form-field/form-field-errors.ts","../../../src/lib/form-field/form-field-control.ts","../../../src/lib/form-field/form-field-animations.ts","../../../src/lib/form-field/error.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\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 './form-field-module';\nexport * from './error';\nexport * from './form-field';\nexport * from './form-field-control';\nexport * from './form-field-errors';\nexport * from './hint';\nexport * from './placeholder';\nexport * from './prefix';\nexport * from './suffix';\nexport * from './label';\nexport * from './form-field-animations';\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 {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PlatformModule} from '@angular/cdk/platform';\nimport {MatError} from './error';\nimport {MatFormField} from './form-field';\nimport {MatHint} from './hint';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\nimport {MatLabel} from './label';\n\n\n@NgModule({\n declarations: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n MatLabel,\n ],\n imports: [\n CommonModule,\n PlatformModule,\n ],\n exports: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n MatLabel,\n ],\n})\nexport class MatFormFieldModule {}\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 {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CanColor,\n FloatLabelType,\n LabelOptions,\n MAT_LABEL_GLOBAL_OPTIONS,\n mixinColor,\n ThemePalette\n} from '@angular/material/core';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {startWith} from 'rxjs/operators/startWith';\nimport {take} from 'rxjs/operators/take';\nimport {MatError} from './error';\nimport {matFormFieldAnimations} from './form-field-animations';\nimport {MatFormFieldControl} from './form-field-control';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n getMatFormFieldPlaceholderConflictError,\n} from './form-field-errors';\nimport {MatHint} from './hint';\nimport {MatLabel} from './label';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\n\n\n// Boilerplate for applying mixins to MatFormField.\n/** @docs-private */\nexport class MatFormFieldBase {\n constructor(public _elementRef: ElementRef) { }\n}\n\nexport const _MatFormFieldMixinBase = mixinColor(MatFormFieldBase, 'primary');\n\n\nlet nextUniqueId = 0;\n\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n moduleId: module.id,\n // TODO(mmalerba): the input-container selectors and classes are deprecated and will be removed.\n selector: 'mat-input-container, mat-form-field',\n exportAs: 'matFormField',\n templateUrl: 'form-field.html',\n // MatInput is a directive and can't have styles, so we need to include its styles here.\n // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using MatInput.\n styleUrls: ['form-field.css', '../input/input.css'],\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-input-container mat-form-field',\n '[class.mat-input-invalid]': '_control.errorState',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canLabelFloat',\n '[class.mat-form-field-should-float]': '_shouldLabelFloat()',\n '[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-focused]': '_control.focused',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class MatFormField extends _MatFormFieldMixinBase\n implements AfterContentInit, AfterContentChecked, AfterViewInit, CanColor {\n private _labelOptions: LabelOptions;\n\n /**\n * @deprecated Use `color` instead.\n * @deletion-target 6.0.0\n */\n @Input()\n get dividerColor(): ThemePalette { return this.color; }\n set dividerColor(value: ThemePalette) { this.color = value; }\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean { return this._hideRequiredMarker; }\n set hideRequiredMarker(value: boolean) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker: boolean;\n\n /** Override for the logic that disables the label animation in certain cases. */\n private _showAlwaysAnimate = false;\n\n /** Whether the floating label should always float or not. */\n get _shouldAlwaysFloat(): boolean {\n return this._floatLabel === 'always' && !this._showAlwaysAnimate;\n }\n\n /** Whether the label can float or not. */\n get _canLabelFloat(): boolean { return this._floatLabel !== 'never'; }\n\n /** State of the mat-hint and mat-error animations. */\n _subscriptAnimationState: string = '';\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string { return this._hintLabel; }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n // Unique id for the hint label.\n _hintLabelId: string = `mat-hint-${nextUniqueId++}`;\n\n /**\n * Whether the placeholder should always float, never float or float as the user types.\n * @deprecated Use floatLabel instead.\n * @deletion-target 6.0.0\n */\n @Input()\n get floatPlaceholder(): FloatLabelType { return this._floatLabel; }\n set floatPlaceholder(value: FloatLabelType) { this.floatLabel = value; }\n\n /** Whether the label should always float, never float or float as the user types. */\n @Input()\n get floatLabel(): FloatLabelType { return this._floatLabel; }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value || this._labelOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** Reference to the form field's underline element. */\n @ViewChild('underline') underlineRef: ElementRef;\n @ViewChild('connectionContainer') _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n @ViewChild('label') private _label: ElementRef;\n @ContentChild(MatFormFieldControl) _control: MatFormFieldControl<any>;\n @ContentChild(MatPlaceholder) _placeholderChild: MatPlaceholder;\n @ContentChild(MatLabel) _labelChild: MatLabel;\n @ContentChildren(MatError) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint) _hintChildren: QueryList<MatHint>;\n @ContentChildren(MatPrefix) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MatSuffix) _suffixChildren: QueryList<MatSuffix>;\n\n constructor(\n public _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(MAT_LABEL_GLOBAL_OPTIONS) labelOptions: LabelOptions) {\n super(_elementRef);\n\n this._labelOptions = labelOptions ? labelOptions : {};\n this.floatLabel = this._labelOptions.float || 'auto';\n }\n\n ngAfterContentInit() {\n this._validateControlChild();\n if (this._control.controlType) {\n this._elementRef.nativeElement.classList\n .add(`mat-form-field-type-${this._control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._control.stateChanges.pipe(startWith(null!)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n let ngControl = this._control.ngControl;\n if (ngControl && ngControl.valueChanges) {\n ngControl.valueChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngAfterContentChecked() {\n this._validateControlChild();\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: string): boolean {\n let ngControl = this._control ? this._control.ngControl : null;\n return ngControl && (ngControl as any)[prop];\n }\n\n _hasPlaceholder() {\n return !!(this._control.placeholder || this._placeholderChild);\n }\n\n _hasLabel() {\n return !!this._labelChild;\n }\n\n _shouldLabelFloat() {\n return this._canLabelFloat && (this._control.shouldLabelFloat ||\n this._control.shouldPlaceholderFloat || this._shouldAlwaysFloat);\n }\n\n _hideControlPlaceholder() {\n return !this._hasLabel() || !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel() {\n return this._hasLabel() || this._hasPlaceholder();\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return (this._errorChildren && this._errorChildren.length > 0 &&\n this._control.errorState) ? 'error' : 'hint';\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n if (this._hasFloatingLabel() && this._canLabelFloat) {\n this._showAlwaysAnimate = true;\n this._floatLabel = 'always';\n\n fromEvent(this._label.nativeElement, 'transitionend').pipe(take(1)).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n */\n private _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each `<mat-hint>` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n */\n private _validateHints() {\n if (this._hintChildren) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n if (this._getDisplayedMessages() === 'hint') {\n let startHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'start') : null;\n let endHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'end') : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids = this._errorChildren.map(error => error.id);\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw getMatFormFieldMissingControlError();\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix]',\n})\nexport class MatSuffix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Prefix to be placed the the front of the form field. */\n@Directive({\n selector: '[matPrefix]',\n})\nexport class MatPrefix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** The placeholder text for an `MatFormField`. */\n@Directive({\n selector: 'mat-placeholder'\n})\nexport class MatPlaceholder {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label'\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-right]': 'align == \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n }\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `mat-hint-${nextUniqueId++}`;\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\n/** @docs-private */\nexport function getMatFormFieldPlaceholderConflictError(): Error {\n return Error('Placeholder attribute and child element were both specified.');\n}\n\n/** @docs-private */\nexport function getMatFormFieldDuplicatedHintError(align: string): Error {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n\n/** @docs-private */\nexport function getMatFormFieldMissingControlError(): Error {\n return Error('mat-form-field must contain a MatFormFieldControl.');\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 {Observable} from 'rxjs/Observable';\nimport {NgControl} from '@angular/forms';\n\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nexport abstract class MatFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat?: boolean;\n\n /**\n * Whether the `MatFormField` placeholder should try to float.\n * @deprecated Use `shouldLabelFloat` instead.\n * @deletion-target 6.0.0\n */\n readonly shouldPlaceholderFloat?: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\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 */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by the MatFormField. */\nexport const matFormFieldAnimations: {\n readonly transitionMessages: AnimationTriggerMetadata\n} = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: trigger('transitionMessages', [\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),\n transition('void => enter', [\n style({ opacity: 0, transform: 'translateY(-100%)' }),\n animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),\n ]),\n ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Single error message to be shown underneath the form field. */\n@Directive({\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n})\nexport class MatError {\n @Input() id: string = `mat-error-${nextUniqueId++}`;\n}\n"],"names":["nextUniqueId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-field.js","sources":["../../../src/lib/form-field/index.ts","../../../src/lib/form-field/public-api.ts","../../../src/lib/form-field/form-field-module.ts","../../../src/lib/form-field/form-field.ts","../../../src/lib/form-field/suffix.ts","../../../src/lib/form-field/prefix.ts","../../../src/lib/form-field/placeholder.ts","../../../src/lib/form-field/label.ts","../../../src/lib/form-field/hint.ts","../../../src/lib/form-field/form-field-errors.ts","../../../src/lib/form-field/form-field-control.ts","../../../src/lib/form-field/form-field-animations.ts","../../../src/lib/form-field/error.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\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 './form-field-module';\nexport * from './error';\nexport * from './form-field';\nexport * from './form-field-control';\nexport * from './form-field-errors';\nexport * from './hint';\nexport * from './placeholder';\nexport * from './prefix';\nexport * from './suffix';\nexport * from './label';\nexport * from './form-field-animations';\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 {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PlatformModule} from '@angular/cdk/platform';\nimport {MatError} from './error';\nimport {MatFormField} from './form-field';\nimport {MatHint} from './hint';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\nimport {MatLabel} from './label';\n\n\n@NgModule({\n declarations: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n MatLabel,\n ],\n imports: [\n CommonModule,\n PlatformModule,\n ],\n exports: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n MatLabel,\n ],\n})\nexport class MatFormFieldModule {}\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 {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CanColor,\n FloatLabelType,\n LabelOptions,\n MAT_LABEL_GLOBAL_OPTIONS,\n mixinColor,\n ThemePalette\n} from '@angular/material/core';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {startWith} from 'rxjs/operators/startWith';\nimport {take} from 'rxjs/operators/take';\nimport {MatError} from './error';\nimport {matFormFieldAnimations} from './form-field-animations';\nimport {MatFormFieldControl} from './form-field-control';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n getMatFormFieldPlaceholderConflictError,\n} from './form-field-errors';\nimport {MatHint} from './hint';\nimport {MatLabel} from './label';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\n\n\n// Boilerplate for applying mixins to MatFormField.\n/** @docs-private */\nexport class MatFormFieldBase {\n constructor(public _elementRef: ElementRef) { }\n}\n\nexport const _MatFormFieldMixinBase = mixinColor(MatFormFieldBase, 'primary');\n\n\nlet nextUniqueId = 0;\n\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n moduleId: module.id,\n // TODO(mmalerba): the input-container selectors and classes are deprecated and will be removed.\n selector: 'mat-input-container, mat-form-field',\n exportAs: 'matFormField',\n templateUrl: 'form-field.html',\n // MatInput is a directive and can't have styles, so we need to include its styles here.\n // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using MatInput.\n styleUrls: ['form-field.css', '../input/input.css'],\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-input-container mat-form-field',\n '[class.mat-input-invalid]': '_control.errorState',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canLabelFloat',\n '[class.mat-form-field-should-float]': '_shouldLabelFloat()',\n '[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-focused]': '_control.focused',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class MatFormField extends _MatFormFieldMixinBase\n implements AfterContentInit, AfterContentChecked, AfterViewInit, CanColor {\n private _labelOptions: LabelOptions;\n\n /**\n * @deprecated Use `color` instead.\n * @deletion-target 6.0.0\n */\n @Input()\n get dividerColor(): ThemePalette { return this.color; }\n set dividerColor(value: ThemePalette) { this.color = value; }\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean { return this._hideRequiredMarker; }\n set hideRequiredMarker(value: boolean) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker: boolean;\n\n /** Override for the logic that disables the label animation in certain cases. */\n private _showAlwaysAnimate = false;\n\n /** Whether the floating label should always float or not. */\n get _shouldAlwaysFloat(): boolean {\n return this._floatLabel === 'always' && !this._showAlwaysAnimate;\n }\n\n /** Whether the label can float or not. */\n get _canLabelFloat(): boolean { return this._floatLabel !== 'never'; }\n\n /** State of the mat-hint and mat-error animations. */\n _subscriptAnimationState: string = '';\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string { return this._hintLabel; }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n // Unique id for the hint label.\n _hintLabelId: string = `mat-hint-${nextUniqueId++}`;\n\n /**\n * Whether the placeholder should always float, never float or float as the user types.\n * @deprecated Use floatLabel instead.\n * @deletion-target 6.0.0\n */\n @Input()\n get floatPlaceholder(): FloatLabelType { return this._floatLabel; }\n set floatPlaceholder(value: FloatLabelType) { this.floatLabel = value; }\n\n /** Whether the label should always float, never float or float as the user types. */\n @Input()\n get floatLabel(): FloatLabelType { return this._floatLabel; }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value || this._labelOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** Reference to the form field's underline element. */\n @ViewChild('underline') underlineRef: ElementRef;\n @ViewChild('connectionContainer') _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n @ViewChild('label') private _label: ElementRef;\n @ContentChild(MatFormFieldControl) _control: MatFormFieldControl<any>;\n @ContentChild(MatPlaceholder) _placeholderChild: MatPlaceholder;\n @ContentChild(MatLabel) _labelChild: MatLabel;\n @ContentChildren(MatError) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint) _hintChildren: QueryList<MatHint>;\n @ContentChildren(MatPrefix) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MatSuffix) _suffixChildren: QueryList<MatSuffix>;\n\n constructor(\n public _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(MAT_LABEL_GLOBAL_OPTIONS) labelOptions: LabelOptions) {\n super(_elementRef);\n\n this._labelOptions = labelOptions ? labelOptions : {};\n this.floatLabel = this._labelOptions.float || 'auto';\n }\n\n ngAfterContentInit() {\n this._validateControlChild();\n if (this._control.controlType) {\n this._elementRef.nativeElement.classList\n .add(`mat-form-field-type-${this._control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._control.stateChanges.pipe(startWith(null!)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n let ngControl = this._control.ngControl;\n if (ngControl && ngControl.valueChanges) {\n ngControl.valueChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngAfterContentChecked() {\n this._validateControlChild();\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: string): boolean {\n let ngControl = this._control ? this._control.ngControl : null;\n return ngControl && (ngControl as any)[prop];\n }\n\n _hasPlaceholder() {\n return !!(this._control.placeholder || this._placeholderChild);\n }\n\n _hasLabel() {\n return !!this._labelChild;\n }\n\n _shouldLabelFloat() {\n return this._canLabelFloat && (this._control.shouldLabelFloat ||\n this._control.shouldPlaceholderFloat || this._shouldAlwaysFloat);\n }\n\n _hideControlPlaceholder() {\n return !this._hasLabel() || !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel() {\n return this._hasLabel() || this._hasPlaceholder();\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return (this._errorChildren && this._errorChildren.length > 0 &&\n this._control.errorState) ? 'error' : 'hint';\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n if (this._hasFloatingLabel() && this._canLabelFloat) {\n this._showAlwaysAnimate = true;\n this._floatLabel = 'always';\n\n fromEvent(this._label.nativeElement, 'transitionend').pipe(take(1)).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n */\n private _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each `<mat-hint>` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n */\n private _validateHints() {\n if (this._hintChildren) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n if (this._getDisplayedMessages() === 'hint') {\n let startHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'start') : null;\n let endHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'end') : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids = this._errorChildren.map(error => error.id);\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw getMatFormFieldMissingControlError();\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix]',\n})\nexport class MatSuffix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Prefix to be placed the the front of the form field. */\n@Directive({\n selector: '[matPrefix]',\n})\nexport class MatPrefix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** The placeholder text for an `MatFormField`. */\n@Directive({\n selector: 'mat-placeholder'\n})\nexport class MatPlaceholder {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label'\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-right]': 'align == \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n }\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `mat-hint-${nextUniqueId++}`;\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\n/** @docs-private */\nexport function getMatFormFieldPlaceholderConflictError(): Error {\n return Error('Placeholder attribute and child element were both specified.');\n}\n\n/** @docs-private */\nexport function getMatFormFieldDuplicatedHintError(align: string): Error {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n\n/** @docs-private */\nexport function getMatFormFieldMissingControlError(): Error {\n return Error('mat-form-field must contain a MatFormFieldControl.');\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 {Observable} from 'rxjs/Observable';\nimport {NgControl} from '@angular/forms';\n\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nexport abstract class MatFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat?: boolean;\n\n /**\n * Whether the `MatFormField` placeholder should try to float.\n * @deprecated Use `shouldLabelFloat` instead.\n * @deletion-target 6.0.0\n */\n readonly shouldPlaceholderFloat?: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\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 */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by the MatFormField. */\nexport const matFormFieldAnimations: {\n readonly transitionMessages: AnimationTriggerMetadata\n} = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: trigger('transitionMessages', [\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),\n transition('void => enter', [\n style({ opacity: 0, transform: 'translateY(-100%)' }),\n animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),\n ]),\n ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Single error message to be shown underneath the form field. */\n@Directive({\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n})\nexport class MatError {\n @Input() id: string = `mat-error-${nextUniqueId++}`;\n}\n"],"names":["nextUniqueId"],"mappings":"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"}
|
package/esm2015/material.js
CHANGED
|
@@ -22,7 +22,7 @@ import { MatGridAvatarCssMatStyler, MatGridList, MatGridListModule, MatGridTile,
|
|
|
22
22
|
import { ICON_REGISTRY_PROVIDER, ICON_REGISTRY_PROVIDER_FACTORY, MatIcon, MatIconBase, MatIconModule, MatIconRegistry, _MatIconMixinBase, getMatIconFailedToSanitizeError, getMatIconNameNotFoundError, getMatIconNoHttpProviderError } from '@angular/material/icon';
|
|
23
23
|
import { MAT_INPUT_VALUE_ACCESSOR, MatInput, MatInputBase, MatInputModule, MatTextareaAutosize, _MatInputMixinBase, getMatInputUnsupportedTypeError } from '@angular/material/input';
|
|
24
24
|
import { MAT_SELECTION_LIST_VALUE_ACCESSOR, MatList, MatListAvatarCssMatStyler, MatListBase, MatListIconCssMatStyler, MatListItem, MatListItemBase, MatListModule, MatListOption, MatListOptionBase, MatListOptionChange, MatListSubheaderCssMatStyler, MatNavList, MatSelectionList, MatSelectionListBase, MatSelectionListChange, _MatListItemMixinBase, _MatListMixinBase, _MatListOptionMixinBase, _MatSelectionListMixinBase } from '@angular/material/list';
|
|
25
|
-
import { MAT_MENU_DEFAULT_OPTIONS, MAT_MENU_SCROLL_STRATEGY, MatMenu, MatMenuContent, MatMenuItem, MatMenuModule, MatMenuTrigger, fadeInItems, matMenuAnimations, transformMenu, ɵ
|
|
25
|
+
import { MAT_MENU_DEFAULT_OPTIONS, MAT_MENU_SCROLL_STRATEGY, MatMenu, MatMenuContent, MatMenuItem, MatMenuModule, MatMenuTrigger, fadeInItems, matMenuAnimations, transformMenu, ɵa20, ɵb20, ɵc20, ɵd20 } from '@angular/material/menu';
|
|
26
26
|
import { MAT_PAGINATOR_INTL_PROVIDER, MAT_PAGINATOR_INTL_PROVIDER_FACTORY, MatPaginator, MatPaginatorIntl, MatPaginatorModule, PageEvent } from '@angular/material/paginator';
|
|
27
27
|
import { MatProgressBar, MatProgressBarBase, MatProgressBarModule, _MatProgressBarMixinBase } from '@angular/material/progress-bar';
|
|
28
28
|
import { MatProgressSpinner, MatProgressSpinnerBase, MatProgressSpinnerModule, MatSpinner, _MatProgressSpinnerMixinBase } from '@angular/material/progress-spinner';
|
|
@@ -47,7 +47,7 @@ import { MAT_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_S
|
|
|
47
47
|
/**
|
|
48
48
|
* Current version of Angular Material.
|
|
49
49
|
*/
|
|
50
|
-
const VERSION = new Version('5.2.
|
|
50
|
+
const VERSION = new Version('5.2.5');
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* @fileoverview added by tsickle
|
|
@@ -62,5 +62,5 @@ const VERSION = new Version('5.2.4');
|
|
|
62
62
|
* Generated bundle index. Do not edit.
|
|
63
63
|
*/
|
|
64
64
|
|
|
65
|
-
export { VERSION, MatAutocompleteSelectedEvent, MatAutocompleteBase, _MatAutocompleteMixinBase, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, AUTOCOMPLETE_OPTION_HEIGHT, AUTOCOMPLETE_PANEL_HEIGHT, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, getMatAutocompleteMissingPanelError, MatAutocompleteTrigger, MatButtonModule, MatButtonBase, _MatButtonMixinBase, MatButton, MatAnchor, MatButtonToggleGroupBase, _MatButtonToggleGroupMixinBase, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggleGroupMultiple, MatButtonToggle, MatButtonToggleModule, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardImage, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardXlImage, MatCardAvatar, MatCard, MatCardHeader, MatCardTitleGroup, MatCardModule, MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR, TransitionCheckState, MatCheckboxChange, MatCheckboxBase, _MatCheckboxMixinBase, MatCheckbox, MAT_CHECKBOX_CLICK_ACTION, MatCheckboxModule, MAT_CHECKBOX_REQUIRED_VALIDATOR, MatCheckboxRequiredValidator, MatChipsModule, MatChipListBase, _MatChipListMixinBase, MatChipListChange, MatChipList, MatChipSelectionChange, MatChipBase, _MatChipMixinBase, MatBasicChip, MatChip, MatChipRemove, MatChipInput, MAT_PLACEHOLDER_GLOBAL_OPTIONS, AnimationCurves, AnimationDurations, MatCommonModule, MATERIAL_SANITY_CHECKS, mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, mixinErrorState, mixinInitialized, NativeDateModule, MatNativeDateModule, MAT_DATE_LOCALE, MAT_DATE_LOCALE_PROVIDER, DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter, MAT_NATIVE_DATE_FORMATS, ShowOnDirtyErrorStateMatcher, ErrorStateMatcher, MAT_HAMMER_OPTIONS, GestureConfig, MatLine, MatLineSetter, MatLineModule, MatOptionModule, MatOptionSelectionChange, MAT_OPTION_PARENT_COMPONENT, MatOption, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MatOptgroupBase, _MatOptgroupMixinBase, MatOptgroup, MAT_LABEL_GLOBAL_OPTIONS, MatRippleModule, MAT_RIPPLE_GLOBAL_OPTIONS, MatRipple, RippleState, RippleRef, defaultRippleAnimationConfig, RippleRenderer, MatPseudoCheckboxModule, MatPseudoCheckbox, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, ɵa31, MatDatepickerModule, MatCalendar, MatCalendarCell, MatCalendarBody, MAT_DATEPICKER_SCROLL_STRATEGY, MAT_DATEPICKER_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DATEPICKER_SCROLL_STRATEGY_PROVIDER, MatDatepickerContent, MatDatepicker, MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATEPICKER_VALIDATORS, MatDatepickerInputEvent, MatDatepickerInput, MatDatepickerIntl, MatDatepickerToggleIcon, MatDatepickerToggle, MatMonthView, MatYearView, MatDialogModule, MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS, MAT_DIALOG_SCROLL_STRATEGY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, MatDialog, throwMatDialogContentAlreadyAttachedError, MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogConfig, MatDialogRef, matDialogAnimations, MatDivider, MatDividerModule, MatExpansionModule, MatAccordion, MatExpansionPanel, MatExpansionPanelActionRow, MatExpansionPanelHeader, MatExpansionPanelDescription, MatExpansionPanelTitle, MatExpansionPanelContent, EXPANSION_PANEL_ANIMATION_TIMING, matExpansionAnimations, MatFormFieldModule, MatError, MatFormFieldBase, _MatFormFieldMixinBase, MatFormField, MatFormFieldControl, getMatFormFieldPlaceholderConflictError, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, MatHint, MatPlaceholder, MatPrefix, MatSuffix, MatLabel, matFormFieldAnimations, MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatIconModule, MatIconBase, _MatIconMixinBase, MatIcon, getMatIconNameNotFoundError, getMatIconNoHttpProviderError, getMatIconFailedToSanitizeError, MatIconRegistry, ICON_REGISTRY_PROVIDER_FACTORY, ICON_REGISTRY_PROVIDER, MatInputModule, MatTextareaAutosize, MatInputBase, _MatInputMixinBase, MatInput, getMatInputUnsupportedTypeError, MAT_INPUT_VALUE_ACCESSOR, MatListModule, MatListBase, _MatListMixinBase, MatListItemBase, _MatListItemMixinBase, MatNavList, MatList, MatListAvatarCssMatStyler, MatListIconCssMatStyler, MatListSubheaderCssMatStyler, MatListItem, MatSelectionListBase, _MatSelectionListMixinBase, MatListOptionBase, _MatListOptionMixinBase, MAT_SELECTION_LIST_VALUE_ACCESSOR, MatListOptionChange, MatSelectionListChange, MatListOption, MatSelectionList, ɵ
|
|
65
|
+
export { VERSION, MatAutocompleteSelectedEvent, MatAutocompleteBase, _MatAutocompleteMixinBase, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, AUTOCOMPLETE_OPTION_HEIGHT, AUTOCOMPLETE_PANEL_HEIGHT, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, getMatAutocompleteMissingPanelError, MatAutocompleteTrigger, MatButtonModule, MatButtonBase, _MatButtonMixinBase, MatButton, MatAnchor, MatButtonToggleGroupBase, _MatButtonToggleGroupMixinBase, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggleGroupMultiple, MatButtonToggle, MatButtonToggleModule, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardImage, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardXlImage, MatCardAvatar, MatCard, MatCardHeader, MatCardTitleGroup, MatCardModule, MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR, TransitionCheckState, MatCheckboxChange, MatCheckboxBase, _MatCheckboxMixinBase, MatCheckbox, MAT_CHECKBOX_CLICK_ACTION, MatCheckboxModule, MAT_CHECKBOX_REQUIRED_VALIDATOR, MatCheckboxRequiredValidator, MatChipsModule, MatChipListBase, _MatChipListMixinBase, MatChipListChange, MatChipList, MatChipSelectionChange, MatChipBase, _MatChipMixinBase, MatBasicChip, MatChip, MatChipRemove, MatChipInput, MAT_PLACEHOLDER_GLOBAL_OPTIONS, AnimationCurves, AnimationDurations, MatCommonModule, MATERIAL_SANITY_CHECKS, mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, mixinErrorState, mixinInitialized, NativeDateModule, MatNativeDateModule, MAT_DATE_LOCALE, MAT_DATE_LOCALE_PROVIDER, DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter, MAT_NATIVE_DATE_FORMATS, ShowOnDirtyErrorStateMatcher, ErrorStateMatcher, MAT_HAMMER_OPTIONS, GestureConfig, MatLine, MatLineSetter, MatLineModule, MatOptionModule, MatOptionSelectionChange, MAT_OPTION_PARENT_COMPONENT, MatOption, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MatOptgroupBase, _MatOptgroupMixinBase, MatOptgroup, MAT_LABEL_GLOBAL_OPTIONS, MatRippleModule, MAT_RIPPLE_GLOBAL_OPTIONS, MatRipple, RippleState, RippleRef, defaultRippleAnimationConfig, RippleRenderer, MatPseudoCheckboxModule, MatPseudoCheckbox, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, ɵa31, MatDatepickerModule, MatCalendar, MatCalendarCell, MatCalendarBody, MAT_DATEPICKER_SCROLL_STRATEGY, MAT_DATEPICKER_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DATEPICKER_SCROLL_STRATEGY_PROVIDER, MatDatepickerContent, MatDatepicker, MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATEPICKER_VALIDATORS, MatDatepickerInputEvent, MatDatepickerInput, MatDatepickerIntl, MatDatepickerToggleIcon, MatDatepickerToggle, MatMonthView, MatYearView, MatDialogModule, MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS, MAT_DIALOG_SCROLL_STRATEGY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, MatDialog, throwMatDialogContentAlreadyAttachedError, MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogConfig, MatDialogRef, matDialogAnimations, MatDivider, MatDividerModule, MatExpansionModule, MatAccordion, MatExpansionPanel, MatExpansionPanelActionRow, MatExpansionPanelHeader, MatExpansionPanelDescription, MatExpansionPanelTitle, MatExpansionPanelContent, EXPANSION_PANEL_ANIMATION_TIMING, matExpansionAnimations, MatFormFieldModule, MatError, MatFormFieldBase, _MatFormFieldMixinBase, MatFormField, MatFormFieldControl, getMatFormFieldPlaceholderConflictError, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, MatHint, MatPlaceholder, MatPrefix, MatSuffix, MatLabel, matFormFieldAnimations, MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatIconModule, MatIconBase, _MatIconMixinBase, MatIcon, getMatIconNameNotFoundError, getMatIconNoHttpProviderError, getMatIconFailedToSanitizeError, MatIconRegistry, ICON_REGISTRY_PROVIDER_FACTORY, ICON_REGISTRY_PROVIDER, MatInputModule, MatTextareaAutosize, MatInputBase, _MatInputMixinBase, MatInput, getMatInputUnsupportedTypeError, MAT_INPUT_VALUE_ACCESSOR, MatListModule, MatListBase, _MatListMixinBase, MatListItemBase, _MatListItemMixinBase, MatNavList, MatList, MatListAvatarCssMatStyler, MatListIconCssMatStyler, MatListSubheaderCssMatStyler, MatListItem, MatSelectionListBase, _MatSelectionListMixinBase, MatListOptionBase, _MatListOptionMixinBase, MAT_SELECTION_LIST_VALUE_ACCESSOR, MatListOptionChange, MatSelectionListChange, MatListOption, MatSelectionList, ɵa20, ɵb20, ɵd20, ɵc20, MAT_MENU_SCROLL_STRATEGY, MatMenuModule, MatMenu, MAT_MENU_DEFAULT_OPTIONS, MatMenuItem, MatMenuTrigger, matMenuAnimations, fadeInItems, transformMenu, MatMenuContent, MatPaginatorModule, PageEvent, MatPaginator, MatPaginatorIntl, MAT_PAGINATOR_INTL_PROVIDER_FACTORY, MAT_PAGINATOR_INTL_PROVIDER, MatProgressBarModule, MatProgressBarBase, _MatProgressBarMixinBase, MatProgressBar, MatProgressSpinnerModule, MatProgressSpinnerBase, _MatProgressSpinnerMixinBase, MatProgressSpinner, MatSpinner, MatRadioModule, MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, MatRadioChange, MatRadioGroupBase, _MatRadioGroupMixinBase, MatRadioGroup, MatRadioButtonBase, _MatRadioButtonMixinBase, MatRadioButton, MatSelectModule, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_INDENT_PADDING_X, SELECT_ITEM_HEIGHT_EM, SELECT_MULTIPLE_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MatSelectChange, MatSelectBase, _MatSelectMixinBase, MatSelectTrigger, MatSelect, matSelectAnimations, transformPanel, fadeInContent, MatSidenavModule, throwMatDuplicatedDrawerError, MatDrawerToggleResult, MAT_DRAWER_DEFAULT_AUTOSIZE, MatDrawerContent, MatDrawer, MatDrawerContainer, MatSidenavContent, MatSidenav, MatSidenavContainer, matDrawerAnimations, MatSlideToggleModule, MAT_SLIDE_TOGGLE_VALUE_ACCESSOR, MatSlideToggleChange, MatSlideToggleBase, _MatSlideToggleMixinBase, MatSlideToggle, MatSliderModule, MAT_SLIDER_VALUE_ACCESSOR, MatSliderChange, MatSliderBase, _MatSliderMixinBase, MatSlider, MatSnackBarModule, MatSnackBar, MatSnackBarContainer, MAT_SNACK_BAR_DATA, MatSnackBarConfig, MatSnackBarRef, SimpleSnackBar, SHOW_ANIMATION, HIDE_ANIMATION, matSnackBarAnimations, MatSortModule, MatSortHeaderBase, _MatSortHeaderMixinBase, MatSortHeader, MatSortHeaderIntl, MAT_SORT_HEADER_INTL_PROVIDER_FACTORY, MAT_SORT_HEADER_INTL_PROVIDER, MatSortBase, _MatSortMixinBase, MatSort, matSortAnimations, MatStepperModule, MatStepLabel, _MatStep, _MatStepper, MatStep, MatStepper, MatHorizontalStepper, MatVerticalStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIntl, matStepperAnimations, MatStepperIcon, MatTableModule, MatCellDef, MatHeaderCellDef, MatColumnDef, MatHeaderCell, MatCell, MatTable, MatHeaderRowDef, MatRowDef, MatHeaderRow, MatRow, MatTableDataSource, ɵe22, ɵf22, ɵa22, ɵb22, ɵc22, ɵd22, ɵi22, ɵg22, ɵj22, ɵh22, MatInkBar, MatTabBody, MatTabBodyPortal, MatTabHeader, MatTabLabelWrapper, MatTab, MatTabLabel, MatTabNav, MatTabLink, MatTabsModule, MatTabChangeEvent, MatTabGroupBase, _MatTabGroupMixinBase, MatTabGroup, matTabsAnimations, MatToolbarModule, MatToolbarBase, _MatToolbarMixinBase, MatToolbarRow, MatToolbar, throwToolbarMixedModesError, MatTooltipModule, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, getMatTooltipInvalidPositionError, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY_PROVIDER, MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltip, TooltipComponent, matTooltipAnimations };
|
|
66
66
|
//# sourceMappingURL=material.js.map
|
package/esm2015/material.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material.js","sources":["../../src/lib/index.ts","../../src/lib/public-api.ts","../../src/lib/version.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\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 './version';\nexport * from '@angular/material/autocomplete';\nexport * from '@angular/material/button';\nexport * from '@angular/material/button-toggle';\nexport * from '@angular/material/card';\nexport * from '@angular/material/checkbox';\nexport * from '@angular/material/chips';\nexport * from '@angular/material/core';\nexport * from '@angular/material/datepicker';\nexport * from '@angular/material/dialog';\nexport * from '@angular/material/divider';\nexport * from '@angular/material/expansion';\nexport * from '@angular/material/form-field';\nexport * from '@angular/material/grid-list';\nexport * from '@angular/material/icon';\nexport * from '@angular/material/input';\nexport * from '@angular/material/list';\nexport * from '@angular/material/menu';\nexport * from '@angular/material/paginator';\nexport * from '@angular/material/progress-bar';\nexport * from '@angular/material/progress-spinner';\nexport * from '@angular/material/radio';\nexport * from '@angular/material/select';\nexport * from '@angular/material/sidenav';\nexport * from '@angular/material/slide-toggle';\nexport * from '@angular/material/slider';\nexport * from '@angular/material/snack-bar';\nexport * from '@angular/material/sort';\nexport * from '@angular/material/stepper';\nexport * from '@angular/material/table';\nexport * from '@angular/material/tabs';\nexport * from '@angular/material/toolbar';\nexport * from '@angular/material/tooltip';\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 {Version} from '@angular/core';\n\n/** Current version of Angular Material. */\nexport const VERSION = new Version('5.2.
|
|
1
|
+
{"version":3,"file":"material.js","sources":["../../src/lib/index.ts","../../src/lib/public-api.ts","../../src/lib/version.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\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 './version';\nexport * from '@angular/material/autocomplete';\nexport * from '@angular/material/button';\nexport * from '@angular/material/button-toggle';\nexport * from '@angular/material/card';\nexport * from '@angular/material/checkbox';\nexport * from '@angular/material/chips';\nexport * from '@angular/material/core';\nexport * from '@angular/material/datepicker';\nexport * from '@angular/material/dialog';\nexport * from '@angular/material/divider';\nexport * from '@angular/material/expansion';\nexport * from '@angular/material/form-field';\nexport * from '@angular/material/grid-list';\nexport * from '@angular/material/icon';\nexport * from '@angular/material/input';\nexport * from '@angular/material/list';\nexport * from '@angular/material/menu';\nexport * from '@angular/material/paginator';\nexport * from '@angular/material/progress-bar';\nexport * from '@angular/material/progress-spinner';\nexport * from '@angular/material/radio';\nexport * from '@angular/material/select';\nexport * from '@angular/material/sidenav';\nexport * from '@angular/material/slide-toggle';\nexport * from '@angular/material/slider';\nexport * from '@angular/material/snack-bar';\nexport * from '@angular/material/sort';\nexport * from '@angular/material/stepper';\nexport * from '@angular/material/table';\nexport * from '@angular/material/tabs';\nexport * from '@angular/material/toolbar';\nexport * from '@angular/material/tooltip';\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 {Version} from '@angular/core';\n\n/** Current version of Angular Material. */\nexport const VERSION = new Version('5.2.5');\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEQA;;;AAGA,AAAO,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;;;;;GDHxD,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AAA0C;;;;;;;;GDpC1C,AAA6B;;"}
|
package/esm2015/menu.js
CHANGED
|
@@ -1140,5 +1140,5 @@ MatMenuModule.ctorParameters = () => [];
|
|
|
1140
1140
|
* Generated bundle index. Do not edit.
|
|
1141
1141
|
*/
|
|
1142
1142
|
|
|
1143
|
-
export { MAT_MENU_SCROLL_STRATEGY, MatMenuModule, MatMenu, MAT_MENU_DEFAULT_OPTIONS, MatMenuItem, MatMenuTrigger, matMenuAnimations, fadeInItems, transformMenu, MatMenuContent, MatMenuItemBase as ɵ
|
|
1143
|
+
export { MAT_MENU_SCROLL_STRATEGY, MatMenuModule, MatMenu, MAT_MENU_DEFAULT_OPTIONS, MatMenuItem, MatMenuTrigger, matMenuAnimations, fadeInItems, transformMenu, MatMenuContent, MatMenuItemBase as ɵa20, _MatMenuItemMixinBase as ɵb20, MAT_MENU_SCROLL_STRATEGY_PROVIDER as ɵd20, MAT_MENU_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵc20 };
|
|
1144
1144
|
//# sourceMappingURL=menu.js.map
|
package/esm2015/snack-bar.js
CHANGED
|
@@ -29,7 +29,6 @@ import { animate, state, style, transition, trigger } from '@angular/animations'
|
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Reference to a snack bar dispatched from the snack bar service.
|
|
32
|
-
* @template T
|
|
33
32
|
*/
|
|
34
33
|
class MatSnackBarRef {
|
|
35
34
|
/**
|
|
@@ -154,7 +153,6 @@ class MatSnackBarRef {
|
|
|
154
153
|
const MAT_SNACK_BAR_DATA = new InjectionToken('MatSnackBarData');
|
|
155
154
|
/**
|
|
156
155
|
* Configuration used when opening a snack-bar.
|
|
157
|
-
* @template D
|
|
158
156
|
*/
|
|
159
157
|
class MatSnackBarConfig {
|
|
160
158
|
constructor() {
|