{"version":3,"file":"snack-bar.es5.js","sources":["../../packages/material/esm5/snack-bar/snack-bar-ref.js","../../packages/material/esm5/snack-bar/snack-bar-config.js","../../packages/material/esm5/snack-bar/simple-snack-bar.js","../../packages/material/esm5/snack-bar/snack-bar-container.js","../../packages/material/esm5/snack-bar/snack-bar.js","../../packages/material/esm5/snack-bar/snack-bar-module.js","../../packages/material/esm5/snack-bar/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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 { Subject } from 'rxjs/Subject';\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nvar MatSnackBarRef = (function () {\n /**\n * @param {?} containerInstance\n * @param {?} _overlayRef\n */\n function MatSnackBarRef(containerInstance, _overlayRef) {\n var _this = this;\n this._overlayRef = _overlayRef;\n /**\n * Subject for notifying the user that the snack bar has closed.\n */\n this._afterClosed = new Subject();\n /**\n * Subject for notifying the user that the snack bar has opened and appeared.\n */\n this._afterOpened = new Subject();\n /**\n * Subject for notifying the user that the snack bar action was called.\n */\n this._onAction = new Subject();\n this.containerInstance = containerInstance;\n // Dismiss snackbar on action.\n this.onAction().subscribe(function () { return _this.dismiss(); });\n containerInstance._onExit.subscribe(function () { return _this._finishDismiss(); });\n }\n /**\n * Dismisses the snack bar.\n * @return {?}\n */\n MatSnackBarRef.prototype.dismiss = function () {\n if (!this._afterClosed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n };\n /**\n * Marks the snackbar action clicked.\n * @return {?}\n */\n MatSnackBarRef.prototype.closeWithAction = function () {\n if (!this._onAction.closed) {\n this._onAction.next();\n this._onAction.complete();\n }\n };\n /**\n * Dismisses the snack bar after some duration\n * @param {?} duration\n * @return {?}\n */\n MatSnackBarRef.prototype._dismissAfter = function (duration) {\n var _this = this;\n this._durationTimeoutId = setTimeout(function () { return _this.dismiss(); }, duration);\n };\n /**\n * Marks the snackbar as opened\n * @return {?}\n */\n MatSnackBarRef.prototype._open = function () {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n };\n /**\n * Cleans up the DOM after closing.\n * @return {?}\n */\n MatSnackBarRef.prototype._finishDismiss = function () {\n this._overlayRef.dispose();\n this._afterClosed.next();\n this._afterClosed.complete();\n };\n /**\n * Gets an observable that is notified when the snack bar is finished closing.\n * @return {?}\n */\n MatSnackBarRef.prototype.afterDismissed = function () {\n return this._afterClosed.asObservable();\n };\n /**\n * Gets an observable that is notified when the snack bar has opened and appeared.\n * @return {?}\n */\n MatSnackBarRef.prototype.afterOpened = function () {\n return this.containerInstance._onEnter;\n };\n /**\n * Gets an observable that is notified when the snack bar action is called.\n * @return {?}\n */\n MatSnackBarRef.prototype.onAction = function () {\n return this._onAction.asObservable();\n };\n return MatSnackBarRef;\n}());\nexport { MatSnackBarRef };\nfunction MatSnackBarRef_tsickle_Closure_declarations() {\n /**\n * The instance of the component making up the content of the snack bar.\n * @type {?}\n */\n MatSnackBarRef.prototype.instance;\n /**\n * The instance of the component making up the content of the snack bar.\n * \\@docs-private\n * @type {?}\n */\n MatSnackBarRef.prototype.containerInstance;\n /**\n * Subject for notifying the user that the snack bar has closed.\n * @type {?}\n */\n MatSnackBarRef.prototype._afterClosed;\n /**\n * Subject for notifying the user that the snack bar has opened and appeared.\n * @type {?}\n */\n MatSnackBarRef.prototype._afterOpened;\n /**\n * Subject for notifying the user that the snack bar action was called.\n * @type {?}\n */\n MatSnackBarRef.prototype._onAction;\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n * @type {?}\n */\n MatSnackBarRef.prototype._durationTimeoutId;\n /** @type {?} */\n MatSnackBarRef.prototype._overlayRef;\n}\n//# sourceMappingURL=snack-bar-ref.js.map","/**\n * @license\n * Copyright Google Inc. 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 { InjectionToken } from '@angular/core';\nexport var /** @type {?} */ MAT_SNACK_BAR_DATA = new InjectionToken('MatSnackBarData');\n/**\n * Configuration used when opening a snack-bar.\n */\nvar MatSnackBarConfig = (function () {\n function MatSnackBarConfig() {\n /**\n * The politeness level for the MatAriaLiveAnnouncer announcement.\n */\n this.politeness = 'assertive';\n /**\n * Message to be announced by the MatAriaLiveAnnouncer\n */\n this.announcementMessage = '';\n /**\n * The length of time in milliseconds to wait before automatically dismissing the snack bar.\n */\n this.duration = 0;\n /**\n * Text layout direction for the snack bar.\n */\n this.direction = 'ltr';\n /**\n * Data being injected into the child component.\n */\n this.data = null;\n /**\n * The horizontal position to place the snack bar.\n */\n this.horizontalPosition = 'center';\n /**\n * The vertical position to place the snack bar.\n */\n this.verticalPosition = 'bottom';\n }\n return MatSnackBarConfig;\n}());\nexport { MatSnackBarConfig };\nfunction MatSnackBarConfig_tsickle_Closure_declarations() {\n /**\n * The politeness level for the MatAriaLiveAnnouncer announcement.\n * @type {?}\n */\n MatSnackBarConfig.prototype.politeness;\n /**\n * Message to be announced by the MatAriaLiveAnnouncer\n * @type {?}\n */\n MatSnackBarConfig.prototype.announcementMessage;\n /**\n * The view container to place the overlay for the snack bar into.\n * @type {?}\n */\n MatSnackBarConfig.prototype.viewContainerRef;\n /**\n * The length of time in milliseconds to wait before automatically dismissing the snack bar.\n * @type {?}\n */\n MatSnackBarConfig.prototype.duration;\n /**\n * Extra CSS classes to be added to the snack bar container.\n * @type {?}\n */\n MatSnackBarConfig.prototype.extraClasses;\n /**\n * Text layout direction for the snack bar.\n * @type {?}\n */\n MatSnackBarConfig.prototype.direction;\n /**\n * Data being injected into the child component.\n * @type {?}\n */\n MatSnackBarConfig.prototype.data;\n /**\n * The horizontal position to place the snack bar.\n * @type {?}\n */\n MatSnackBarConfig.prototype.horizontalPosition;\n /**\n * The vertical position to place the snack bar.\n * @type {?}\n */\n MatSnackBarConfig.prototype.verticalPosition;\n}\n//# sourceMappingURL=snack-bar-config.js.map","/**\n * @license\n * Copyright Google Inc. 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 { Component, ViewEncapsulation, Inject, ChangeDetectionStrategy } from '@angular/core';\nimport { MatSnackBarRef } from './snack-bar-ref';\nimport { MAT_SNACK_BAR_DATA } from './snack-bar-config';\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n */\nvar SimpleSnackBar = (function () {\n /**\n * @param {?} snackBarRef\n * @param {?} data\n */\n function SimpleSnackBar(snackBarRef, data) {\n this.snackBarRef = snackBarRef;\n this.data = data;\n }\n /**\n * Performs the action on the snack bar.\n * @return {?}\n */\n SimpleSnackBar.prototype.action = function () {\n this.snackBarRef.closeWithAction();\n };\n Object.defineProperty(SimpleSnackBar.prototype, \"hasAction\", {\n /**\n * If the action button should be shown.\n * @return {?}\n */\n get: function () {\n return !!this.data.action;\n },\n enumerable: true,\n configurable: true\n });\n SimpleSnackBar.decorators = [\n { type: Component, args: [{selector: 'simple-snack-bar',\n template: \"{{data.message}} \",\n styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;line-height:20px}.mat-simple-snackbar-action{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;background:0 0;flex-shrink:0;margin-left:48px}[dir=rtl] .mat-simple-snackbar-action{margin-right:48px;margin-left:0}\"],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-simple-snackbar',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n SimpleSnackBar.ctorParameters = function () { return [\n { type: MatSnackBarRef, },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_SNACK_BAR_DATA,] },] },\n ]; };\n return SimpleSnackBar;\n}());\nexport { SimpleSnackBar };\nfunction SimpleSnackBar_tsickle_Closure_declarations() {\n /** @type {?} */\n SimpleSnackBar.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n SimpleSnackBar.ctorParameters;\n /**\n * Data that was injected into the snack bar.\n * @type {?}\n */\n SimpleSnackBar.prototype.data;\n /** @type {?} */\n SimpleSnackBar.prototype.snackBarRef;\n}\n//# sourceMappingURL=simple-snack-bar.js.map","/**\n * @license\n * Copyright Google Inc. 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 * as tslib_1 from \"tslib\";\nimport { Component, ViewChild, NgZone, Renderer2, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, } from '@angular/core';\nimport { trigger, state, style, transition, animate, } from '@angular/animations';\nimport { BasePortalHost, PortalHostDirective, } from '@angular/cdk/portal';\nimport { first } from '@angular/cdk/rxjs';\nimport { Subject } from 'rxjs/Subject';\n// TODO(jelbourn): we can't use constants from animation.ts here because you can't use\n// a text interpolation in anything that is analyzed statically with ngc (for AoT compile).\nexport var /** @type {?} */ SHOW_ANIMATION = '225ms cubic-bezier(0.4,0.0,1,1)';\nexport var /** @type {?} */ HIDE_ANIMATION = '195ms cubic-bezier(0.0,0.0,0.2,1)';\n/**\n * Internal component that wraps user-provided snack bar content.\n * \\@docs-private\n */\nvar MatSnackBarContainer = (function (_super) {\n tslib_1.__extends(MatSnackBarContainer, _super);\n /**\n * @param {?} _ngZone\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _changeDetectorRef\n */\n function MatSnackBarContainer(_ngZone, _renderer, _elementRef, _changeDetectorRef) {\n var _this = _super.call(this) || this;\n _this._ngZone = _ngZone;\n _this._renderer = _renderer;\n _this._elementRef = _elementRef;\n _this._changeDetectorRef = _changeDetectorRef;\n /**\n * Whether the component has been destroyed.\n */\n _this._destroyed = false;\n /**\n * Subject for notifying that the snack bar has exited from view.\n */\n _this._onExit = new Subject();\n /**\n * Subject for notifying that the snack bar has finished entering the view.\n */\n _this._onEnter = new Subject();\n /**\n * The state of the snack bar animations.\n */\n _this._animationState = 'void';\n return _this;\n }\n /**\n * Attach a component portal as content to this snack bar container.\n * @template T\n * @param {?} portal\n * @return {?}\n */\n MatSnackBarContainer.prototype.attachComponentPortal = function (portal) {\n if (this._portalHost.hasAttached()) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n if (this.snackBarConfig.extraClasses) {\n // Not the most efficient way of adding classes, but the renderer doesn't allow us\n // to pass in an array or a space-separated list.\n for (var _i = 0, _a = this.snackBarConfig.extraClasses; _i < _a.length; _i++) {\n var cssClass = _a[_i];\n this._renderer.addClass(this._elementRef.nativeElement, cssClass);\n }\n }\n if (this.snackBarConfig.horizontalPosition === 'center') {\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-snack-bar-center');\n }\n if (this.snackBarConfig.verticalPosition === 'top') {\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-snack-bar-top');\n }\n return this._portalHost.attachComponentPortal(portal);\n };\n /**\n * Attach a template portal as content to this snack bar container.\n * @return {?}\n */\n MatSnackBarContainer.prototype.attachTemplatePortal = function () {\n throw Error('Not yet implemented');\n };\n /**\n * Handle end of animations, updating the state of the snackbar.\n * @param {?} event\n * @return {?}\n */\n MatSnackBarContainer.prototype.onAnimationEnd = function (event) {\n var fromState = event.fromState, toState = event.toState;\n if ((toState === 'void' && fromState !== 'void') || toState.startsWith('hidden')) {\n this._completeExit();\n }\n if (toState.startsWith('visible')) {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n var /** @type {?} */ onEnter_1 = this._onEnter;\n this._ngZone.run(function () {\n onEnter_1.next();\n onEnter_1.complete();\n });\n }\n };\n /**\n * Begin animation of snack bar entrance into view.\n * @return {?}\n */\n MatSnackBarContainer.prototype.enter = function () {\n if (!this._destroyed) {\n this._animationState = \"visible-\" + this.snackBarConfig.verticalPosition;\n this._changeDetectorRef.detectChanges();\n }\n };\n /**\n * Begin animation of the snack bar exiting from view.\n * @return {?}\n */\n MatSnackBarContainer.prototype.exit = function () {\n this._animationState = \"hidden-\" + this.snackBarConfig.verticalPosition;\n return this._onExit;\n };\n /**\n * Makes sure the exit callbacks have been invoked when the element is destroyed.\n * @return {?}\n */\n MatSnackBarContainer.prototype.ngOnDestroy = function () {\n this._destroyed = true;\n this._completeExit();\n };\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n * @return {?}\n */\n MatSnackBarContainer.prototype._completeExit = function () {\n var _this = this;\n first.call(this._ngZone.onMicrotaskEmpty.asObservable()).subscribe(function () {\n _this._onExit.next();\n _this._onExit.complete();\n });\n };\n MatSnackBarContainer.decorators = [\n { type: Component, args: [{selector: 'snack-bar-container',\n template: \"\",\n styles: [\".mat-snack-bar-container{border-radius:2px;box-sizing:content-box;display:block;margin:24px;max-width:568px;min-width:288px;padding:14px 24px;transform:translateY(100%) translateY(24px)}.mat-snack-bar-container.mat-snack-bar-center{margin:0;transform:translateY(100%)}.mat-snack-bar-container.mat-snack-bar-top{transform:translateY(-100%) translateY(-24px)}.mat-snack-bar-container.mat-snack-bar-top.mat-snack-bar-center{transform:translateY(-100%)}@media screen and (-ms-high-contrast:active){.mat-snack-bar-container{border:solid 1px}}\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'role': 'alert',\n 'class': 'mat-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)'\n },\n animations: [\n trigger('state', [\n state('visible-top, visible-bottom', style({ transform: 'translateY(0%)' })),\n transition('visible-top => hidden-top, visible-bottom => hidden-bottom', animate(HIDE_ANIMATION)),\n transition('void => visible-top, void => visible-bottom', animate(SHOW_ANIMATION)),\n ])\n ],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSnackBarContainer.ctorParameters = function () { return [\n { type: NgZone, },\n { type: Renderer2, },\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n ]; };\n MatSnackBarContainer.propDecorators = {\n '_portalHost': [{ type: ViewChild, args: [PortalHostDirective,] },],\n };\n return MatSnackBarContainer;\n}(BasePortalHost));\nexport { MatSnackBarContainer };\nfunction MatSnackBarContainer_tsickle_Closure_declarations() {\n /** @type {?} */\n MatSnackBarContainer.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatSnackBarContainer.ctorParameters;\n /** @type {?} */\n MatSnackBarContainer.propDecorators;\n /**\n * Whether the component has been destroyed.\n * @type {?}\n */\n MatSnackBarContainer.prototype._destroyed;\n /**\n * The portal host inside of this container into which the snack bar content will be loaded.\n * @type {?}\n */\n MatSnackBarContainer.prototype._portalHost;\n /**\n * Subject for notifying that the snack bar has exited from view.\n * @type {?}\n */\n MatSnackBarContainer.prototype._onExit;\n /**\n * Subject for notifying that the snack bar has finished entering the view.\n * @type {?}\n */\n MatSnackBarContainer.prototype._onEnter;\n /**\n * The state of the snack bar animations.\n * @type {?}\n */\n MatSnackBarContainer.prototype._animationState;\n /**\n * The snack bar configuration.\n * @type {?}\n */\n MatSnackBarContainer.prototype.snackBarConfig;\n /** @type {?} */\n MatSnackBarContainer.prototype._ngZone;\n /** @type {?} */\n MatSnackBarContainer.prototype._renderer;\n /** @type {?} */\n MatSnackBarContainer.prototype._elementRef;\n /** @type {?} */\n MatSnackBarContainer.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=snack-bar-container.js.map","/**\n * @license\n * Copyright Google Inc. 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 { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\nimport { Injectable, Injector, Optional, SkipSelf } from '@angular/core';\nimport { extendObject } from '@angular/material/core';\nimport { SimpleSnackBar } from './simple-snack-bar';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarConfig } from './snack-bar-config';\nimport { MatSnackBarContainer } from './snack-bar-container';\nimport { MatSnackBarRef } from './snack-bar-ref';\n/**\n * Service to dispatch Material Design snack bar messages.\n */\nvar MatSnackBar = (function () {\n /**\n * @param {?} _overlay\n * @param {?} _live\n * @param {?} _injector\n * @param {?} _parentSnackBar\n */\n function MatSnackBar(_overlay, _live, _injector, _parentSnackBar) {\n this._overlay = _overlay;\n this._live = _live;\n this._injector = _injector;\n this._parentSnackBar = _parentSnackBar;\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n this._snackBarRefAtThisLevel = null;\n }\n Object.defineProperty(MatSnackBar.prototype, \"_openedSnackBarRef\", {\n /**\n * Reference to the currently opened snackbar at *any* level.\n * @return {?}\n */\n get: function () {\n var /** @type {?} */ parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n }\n else {\n this._snackBarRefAtThisLevel = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @template T\n * @param {?} component Component to be instantiated.\n * @param {?=} config Extra configuration for the snack bar.\n * @return {?}\n */\n MatSnackBar.prototype.openFromComponent = function (component, config) {\n var _this = this;\n var /** @type {?} */ _config = _applyConfigDefaults(config);\n var /** @type {?} */ snackBarRef = this._attach(component, _config);\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(function () {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (_this._openedSnackBarRef == snackBarRef) {\n _this._openedSnackBarRef = null;\n }\n });\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(function () {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n }\n else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (_config.duration && _config.duration > 0) {\n snackBarRef.afterOpened().subscribe(function () { return snackBarRef._dismissAfter(/** @type {?} */ ((((_config)).duration))); });\n }\n if (_config.announcementMessage) {\n this._live.announce(_config.announcementMessage, _config.politeness);\n }\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n };\n /**\n * Opens a snackbar with a message and an optional action.\n * @param {?} message The message to show in the snackbar.\n * @param {?=} action The label for the snackbar action.\n * @param {?=} config Additional configuration options for the snackbar.\n * @return {?}\n */\n MatSnackBar.prototype.open = function (message, action, config) {\n if (action === void 0) { action = ''; }\n var /** @type {?} */ _config = _applyConfigDefaults(config);\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = { message: message, action: action };\n _config.announcementMessage = message;\n return this.openFromComponent(SimpleSnackBar, _config);\n };\n /**\n * Dismisses the currently-visible snack bar.\n * @return {?}\n */\n MatSnackBar.prototype.dismiss = function () {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n };\n /**\n * Attaches the snack bar container component to the overlay.\n * @param {?} overlayRef\n * @param {?} config\n * @return {?}\n */\n MatSnackBar.prototype._attachSnackBarContainer = function (overlayRef, config) {\n var /** @type {?} */ containerPortal = new ComponentPortal(MatSnackBarContainer, config.viewContainerRef);\n var /** @type {?} */ containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n };\n /**\n * Places a new component as the content of the snack bar container.\n * @template T\n * @param {?} component\n * @param {?} config\n * @return {?}\n */\n MatSnackBar.prototype._attach = function (component, config) {\n var /** @type {?} */ overlayRef = this._createOverlay(config);\n var /** @type {?} */ container = this._attachSnackBarContainer(overlayRef, config);\n var /** @type {?} */ snackBarRef = new MatSnackBarRef(container, overlayRef);\n var /** @type {?} */ injector = this._createInjector(config, snackBarRef);\n var /** @type {?} */ portal = new ComponentPortal(component, undefined, injector);\n var /** @type {?} */ contentRef = container.attachComponentPortal(portal);\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n return snackBarRef;\n };\n /**\n * Creates a new overlay and places it in the correct location.\n * @param {?} config The user-specified snack bar config.\n * @return {?}\n */\n MatSnackBar.prototype._createOverlay = function (config) {\n var /** @type {?} */ overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n var /** @type {?} */ positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n var /** @type {?} */ isRtl = config.direction === 'rtl';\n var /** @type {?} */ isLeft = (config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl));\n var /** @type {?} */ isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n }\n else if (isRight) {\n positionStrategy.right('0');\n }\n else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n }\n else {\n positionStrategy.bottom('0');\n }\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n };\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @template T\n * @param {?} config Config that was used to create the snack bar.\n * @param {?} snackBarRef Reference to the snack bar.\n * @return {?}\n */\n MatSnackBar.prototype._createInjector = function (config, snackBarRef) {\n var /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n var /** @type {?} */ injectionTokens = new WeakMap();\n injectionTokens.set(MatSnackBarRef, snackBarRef);\n injectionTokens.set(MAT_SNACK_BAR_DATA, config.data);\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n };\n MatSnackBar.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n MatSnackBar.ctorParameters = function () { return [\n { type: Overlay, },\n { type: LiveAnnouncer, },\n { type: Injector, },\n { type: MatSnackBar, decorators: [{ type: Optional }, { type: SkipSelf },] },\n ]; };\n return MatSnackBar;\n}());\nexport { MatSnackBar };\nfunction MatSnackBar_tsickle_Closure_declarations() {\n /** @type {?} */\n MatSnackBar.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatSnackBar.ctorParameters;\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n * @type {?}\n */\n MatSnackBar.prototype._snackBarRefAtThisLevel;\n /** @type {?} */\n MatSnackBar.prototype._overlay;\n /** @type {?} */\n MatSnackBar.prototype._live;\n /** @type {?} */\n MatSnackBar.prototype._injector;\n /** @type {?} */\n MatSnackBar.prototype._parentSnackBar;\n}\n/**\n * Applies default options to the snackbar config.\n * @param {?=} config The configuration to which the defaults will be applied.\n * @return {?} The new configuration object with defaults applied.\n */\nfunction _applyConfigDefaults(config) {\n return extendObject(new MatSnackBarConfig(), config);\n}\n//# sourceMappingURL=snack-bar.js.map","/**\n * @license\n * Copyright Google Inc. 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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { LIVE_ANNOUNCER_PROVIDER } from '@angular/cdk/a11y';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatSnackBar } from './snack-bar';\nimport { MatSnackBarContainer } from './snack-bar-container';\nimport { SimpleSnackBar } from './simple-snack-bar';\nvar MatSnackBarModule = (function () {\n function MatSnackBarModule() {\n }\n MatSnackBarModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n OverlayModule,\n PortalModule,\n CommonModule,\n MatCommonModule,\n ],\n exports: [MatSnackBarContainer, MatCommonModule],\n declarations: [MatSnackBarContainer, SimpleSnackBar],\n entryComponents: [MatSnackBarContainer, SimpleSnackBar],\n providers: [MatSnackBar, LIVE_ANNOUNCER_PROVIDER]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSnackBarModule.ctorParameters = function () { return []; };\n return MatSnackBarModule;\n}());\nexport { MatSnackBarModule };\nfunction MatSnackBarModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatSnackBarModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatSnackBarModule.ctorParameters;\n}\n//# sourceMappingURL=snack-bar-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatSnackBarModule, MatSnackBar, SHOW_ANIMATION, HIDE_ANIMATION, MatSnackBarContainer, MAT_SNACK_BAR_DATA, MatSnackBarConfig, MatSnackBarRef, SimpleSnackBar } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}