{"version":3,"file":"core.es5.js","sources":["../../packages/material/esm5/core/animation/animation.js","../../packages/material/esm5/core/compatibility/compatibility.js","../../packages/material/esm5/core/common-behaviors/common-module.js","../../packages/material/esm5/core/common-behaviors/disabled.js","../../packages/material/esm5/core/common-behaviors/color.js","../../packages/material/esm5/core/common-behaviors/disable-ripple.js","../../packages/material/esm5/core/common-behaviors/tabindex.js","../../packages/material/esm5/core/datetime/date-adapter.js","../../packages/material/esm5/core/util/object-extend.js","../../packages/material/esm5/core/datetime/native-date-adapter.js","../../packages/material/esm5/core/datetime/date-formats.js","../../packages/material/esm5/core/datetime/native-date-formats.js","../../packages/material/esm5/core/datetime/index.js","../../packages/material/esm5/core/error/error-options.js","../../packages/material/esm5/core/gestures/gesture-config.js","../../packages/material/esm5/core/line/line.js","../../packages/material/esm5/core/ripple/ripple-ref.js","../../packages/material/esm5/core/ripple/ripple-renderer.js","../../packages/material/esm5/core/ripple/ripple.js","../../packages/material/esm5/core/ripple/index.js","../../packages/material/esm5/core/selection/pseudo-checkbox/pseudo-checkbox.js","../../packages/material/esm5/core/selection/index.js","../../packages/material/esm5/core/option/optgroup.js","../../packages/material/esm5/core/option/option.js","../../packages/material/esm5/core/option/index.js","../../packages/material/esm5/core/placeholder/placeholder-options.js","../../packages/material/esm5/core/style/apply-transform.js","../../packages/material/esm5/core/testing/month-constants.js","../../packages/material/esm5/core/index.js"],"sourcesContent":["/**\n * \\@docs-private\n */\nvar AnimationCurves = (function () {\n function AnimationCurves() {\n }\n AnimationCurves.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\n AnimationCurves.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\n AnimationCurves.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\n AnimationCurves.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\n return AnimationCurves;\n}());\nexport { AnimationCurves };\nfunction AnimationCurves_tsickle_Closure_declarations() {\n /** @type {?} */\n AnimationCurves.STANDARD_CURVE;\n /** @type {?} */\n AnimationCurves.DECELERATION_CURVE;\n /** @type {?} */\n AnimationCurves.ACCELERATION_CURVE;\n /** @type {?} */\n AnimationCurves.SHARP_CURVE;\n}\n/**\n * \\@docs-private\n */\nvar AnimationDurations = (function () {\n function AnimationDurations() {\n }\n AnimationDurations.COMPLEX = '375ms';\n AnimationDurations.ENTERING = '225ms';\n AnimationDurations.EXITING = '195ms';\n return AnimationDurations;\n}());\nexport { AnimationDurations };\nfunction AnimationDurations_tsickle_Closure_declarations() {\n /** @type {?} */\n AnimationDurations.COMPLEX;\n /** @type {?} */\n AnimationDurations.ENTERING;\n /** @type {?} */\n AnimationDurations.EXITING;\n}\n//# sourceMappingURL=animation.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 { Directive, InjectionToken, NgModule } from '@angular/core';\nexport var /** @type {?} */ MATERIAL_COMPATIBILITY_MODE = new InjectionToken('md-compatibility-mode');\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nexport var MAT_ELEMENTS_SELECTOR = \"\\n [mat-button],\\n [mat-fab],\\n [mat-icon-button],\\n [mat-mini-fab],\\n [mat-raised-button],\\n [matCardSubtitle],\\n [matCardTitle],\\n [matCellDef],\\n [matColumnDef],\\n [matDialogActions],\\n [matDialogClose],\\n [matDialogContent],\\n [matDialogTitle],\\n [matHeaderCellDef],\\n [matHeaderRowDef],\\n [matLine],\\n [matRowDef],\\n [matStepLabel],\\n [matStepperNext],\\n [matStepperPrevious],\\n [matTabLabel],\\n [matTabLink],\\n [matTabNav],\\n [matTooltip],\\n [matInput],\\n [matPrefix],\\n [matSuffix],\\n mat-autocomplete,\\n mat-button-toggle,\\n mat-button-toggle,\\n mat-button-toggle-group,\\n mat-card,\\n mat-card-actions,\\n mat-card-content,\\n mat-card-footer,\\n mat-card-header,\\n mat-card-subtitle,\\n mat-card-title,\\n mat-card-title-group,\\n mat-cell,\\n mat-checkbox,\\n mat-chip,\\n mat-dialog-actions,\\n mat-dialog-container,\\n mat-dialog-content,\\n mat-divider,\\n mat-error,\\n mat-grid-list,\\n mat-grid-tile,\\n mat-grid-tile-footer,\\n mat-grid-tile-header,\\n mat-header-cell,\\n mat-header-row,\\n mat-hint,\\n mat-horizontal-stepper,\\n mat-icon,\\n mat-input-container,\\n mat-form-field,\\n mat-list,\\n mat-list-item,\\n mat-menu,\\n mat-nav-list,\\n mat-option,\\n mat-placeholder,\\n mat-progress-bar,\\n mat-pseudo-checkbox,\\n mat-radio-button,\\n mat-radio-group,\\n mat-row,\\n mat-select,\\n mat-sidenav,\\n mat-sidenav-container,\\n mat-slider,\\n mat-spinner,\\n mat-step,\\n mat-tab,\\n mat-table,\\n mat-tab-group,\\n mat-toolbar,\\n mat-vertical-stepper\";\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nexport var MD_ELEMENTS_SELECTOR = \"\\n [md-button],\\n [md-fab],\\n [md-icon-button],\\n [md-mini-fab],\\n [md-raised-button],\\n [mdCardSubtitle],\\n [mdCardTitle],\\n [mdCellDef],\\n [mdColumnDef],\\n [mdDialogActions],\\n [mdDialogClose],\\n [mdDialogContent],\\n [mdDialogTitle],\\n [mdHeaderCellDef],\\n [mdHeaderRowDef],\\n [mdLine],\\n [mdRowDef],\\n [mdStepLabel],\\n [mdStepperNext],\\n [mdStepperPrevious],\\n [mdTabLabel],\\n [mdTabLink],\\n [mdTabNav],\\n [mdTooltip],\\n [mdInput],\\n [mdPrefix],\\n [mdSuffix],\\n md-autocomplete,\\n md-button-toggle,\\n md-button-toggle,\\n md-button-toggle-group,\\n md-card,\\n md-card-actions,\\n md-card-content,\\n md-card-footer,\\n md-card-header,\\n md-card-subtitle,\\n md-card-title,\\n md-card-title-group,\\n md-cell,\\n md-checkbox,\\n md-chip,\\n md-dialog-actions,\\n md-dialog-container,\\n md-dialog-content,\\n md-divider,\\n md-error,\\n md-grid-list,\\n md-grid-tile,\\n md-grid-tile-footer,\\n md-grid-tile-header,\\n md-header-cell,\\n md-header-row,\\n md-hint,\\n md-horizontal-stepper,\\n md-icon,\\n md-input-container,\\n md-form-field,\\n md-list,\\n md-list-item,\\n md-menu,\\n md-nav-list,\\n md-option,\\n md-placeholder,\\n md-progress-bar,\\n md-pseudo-checkbox,\\n md-radio-button,\\n md-radio-group,\\n md-row,\\n md-select,\\n md-sidenav,\\n md-sidenav-container,\\n md-slider,\\n md-spinner,\\n md-step,\\n md-tab,\\n md-table,\\n md-tab-group,\\n md-toolbar,\\n md-vertical-stepper\";\n/**\n * Directive that enforces that the `mat-` prefix cannot be used.\n */\nvar MatPrefixRejector = (function () {\n function MatPrefixRejector() {\n }\n MatPrefixRejector.decorators = [\n { type: Directive, args: [{ selector: MAT_ELEMENTS_SELECTOR },] },\n ];\n /**\n * @nocollapse\n */\n MatPrefixRejector.ctorParameters = function () { return []; };\n return MatPrefixRejector;\n}());\nexport { MatPrefixRejector };\nfunction MatPrefixRejector_tsickle_Closure_declarations() {\n /** @type {?} */\n MatPrefixRejector.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatPrefixRejector.ctorParameters;\n}\n/**\n * Directive that enforces that the `md-` prefix cannot be used.\n */\nvar MdPrefixRejector = (function () {\n function MdPrefixRejector() {\n }\n MdPrefixRejector.decorators = [\n { type: Directive, args: [{ selector: MD_ELEMENTS_SELECTOR },] },\n ];\n /**\n * @nocollapse\n */\n MdPrefixRejector.ctorParameters = function () { return []; };\n return MdPrefixRejector;\n}());\nexport { MdPrefixRejector };\nfunction MdPrefixRejector_tsickle_Closure_declarations() {\n /** @type {?} */\n MdPrefixRejector.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MdPrefixRejector.ctorParameters;\n}\n/**\n * Module that enforces the default compatibility mode settings. When this module is loaded\n * without NoConflictStyleCompatibilityMode also being imported, it will throw an error if\n * there are any uses of the `mat-` prefix.\n */\nvar CompatibilityModule = (function () {\n function CompatibilityModule() {\n }\n CompatibilityModule.decorators = [\n { type: NgModule, args: [{\n declarations: [MatPrefixRejector, MdPrefixRejector],\n exports: [MatPrefixRejector, MdPrefixRejector],\n },] },\n ];\n /**\n * @nocollapse\n */\n CompatibilityModule.ctorParameters = function () { return []; };\n return CompatibilityModule;\n}());\nexport { CompatibilityModule };\nfunction CompatibilityModule_tsickle_Closure_declarations() {\n /** @type {?} */\n CompatibilityModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CompatibilityModule.ctorParameters;\n}\n/**\n * Module that enforces \"no-conflict\" compatibility mode settings. When this module is loaded,\n * it will throw an error if there are any uses of the `md-` prefix.\n */\nvar NoConflictStyleCompatibilityMode = (function () {\n function NoConflictStyleCompatibilityMode() {\n }\n NoConflictStyleCompatibilityMode.decorators = [\n { type: NgModule },\n ];\n /**\n * @nocollapse\n */\n NoConflictStyleCompatibilityMode.ctorParameters = function () { return []; };\n return NoConflictStyleCompatibilityMode;\n}());\nexport { NoConflictStyleCompatibilityMode };\nfunction NoConflictStyleCompatibilityMode_tsickle_Closure_declarations() {\n /** @type {?} */\n NoConflictStyleCompatibilityMode.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n NoConflictStyleCompatibilityMode.ctorParameters;\n}\n//# sourceMappingURL=compatibility.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, InjectionToken, Optional, Inject, isDevMode } from '@angular/core';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CompatibilityModule } from '../compatibility/compatibility';\n/**\n * Injection token that configures whether the Material sanity checks are enabled.\n */\nexport var MATERIAL_SANITY_CHECKS = new InjectionToken('mat-sanity-checks');\n/**\n * Module that captures anything that should be loaded and/or run for *all* Angular Material\n * components. This includes Bidi, compatibility mode, etc.\n *\n * This module should be imported to each top-level component module (e.g., MatTabsModule).\n */\nvar MatCommonModule = (function () {\n /**\n * @param {?} sanityChecksEnabled\n */\n function MatCommonModule(sanityChecksEnabled) {\n /**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n */\n this._hasDoneGlobalChecks = false;\n /**\n * Reference to the global `document` object.\n */\n this._document = typeof document === 'object' && document ? document : null;\n if (sanityChecksEnabled && !this._hasDoneGlobalChecks && isDevMode()) {\n this._checkDoctype();\n this._checkTheme();\n this._hasDoneGlobalChecks = true;\n }\n }\n /**\n * @return {?}\n */\n MatCommonModule.prototype._checkDoctype = function () {\n if (this._document && !this._document.doctype) {\n console.warn('Current document does not have a doctype. This may cause ' +\n 'some Angular Material components not to behave as expected.');\n }\n };\n /**\n * @return {?}\n */\n MatCommonModule.prototype._checkTheme = function () {\n if (this._document && typeof getComputedStyle === 'function') {\n var /** @type {?} */ testElement = this._document.createElement('div');\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n var /** @type {?} */ computedStyle = getComputedStyle(testElement);\n // In some situations, the computed style of the test element can be null. For example in\n // Firefox, the computed style is null if an application is running inside of a hidden iframe.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n if (computedStyle && computedStyle.display !== 'none') {\n console.warn('Could not find Angular Material core theme. Most Material ' +\n 'components may not work as expected. For more info refer ' +\n 'to the theming guide: https://material.angular.io/guide/theming');\n }\n this._document.body.removeChild(testElement);\n }\n };\n MatCommonModule.decorators = [\n { type: NgModule, args: [{\n imports: [CompatibilityModule, BidiModule],\n exports: [CompatibilityModule, BidiModule],\n providers: [{\n provide: MATERIAL_SANITY_CHECKS, useValue: true,\n }],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatCommonModule.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS,] },] },\n ]; };\n return MatCommonModule;\n}());\nexport { MatCommonModule };\nfunction MatCommonModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatCommonModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatCommonModule.ctorParameters;\n /**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n * @type {?}\n */\n MatCommonModule.prototype._hasDoneGlobalChecks;\n /**\n * Reference to the global `document` object.\n * @type {?}\n */\n MatCommonModule.prototype._document;\n}\n//# sourceMappingURL=common-module.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 { coerceBooleanProperty } from '@angular/cdk/coercion';\n/**\n * Mixin to augment a directive with a `disabled` property.\n * @template T\n * @param {?} base\n * @return {?}\n */\nexport function mixinDisabled(base) {\n return (function (_super) {\n tslib_1.__extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._disabled = false;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"disabled\", {\n /**\n * @return {?}\n */\n get: function () { return this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n//# sourceMappingURL=disabled.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\";\n/**\n * Mixin to augment a directive with a `color` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultColor\n * @return {?}\n */\nexport function mixinColor(base, defaultColor) {\n return (function (_super) {\n tslib_1.__extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n // Set the default color that can be specified from the mixin.\n _this.color = defaultColor;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"color\", {\n /**\n * @return {?}\n */\n get: function () { return this._color; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n var /** @type {?} */ colorPalette = value || defaultColor;\n if (colorPalette !== this._color) {\n if (this._color) {\n this._renderer.removeClass(this._elementRef.nativeElement, \"mat-\" + this._color);\n }\n if (colorPalette) {\n this._renderer.addClass(this._elementRef.nativeElement, \"mat-\" + colorPalette);\n }\n this._color = colorPalette;\n }\n },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n//# sourceMappingURL=color.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 { coerceBooleanProperty } from '@angular/cdk/coercion';\n/**\n * Mixin to augment a directive with a `disableRipple` property.\n * @template T\n * @param {?} base\n * @return {?}\n */\nexport function mixinDisableRipple(base) {\n return (function (_super) {\n tslib_1.__extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._disableRipple = false;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"disableRipple\", {\n /**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\n get: function () { return this._disableRipple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disableRipple = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n//# sourceMappingURL=disable-ripple.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\";\n/**\n * Mixin to augment a directive with a `tabIndex` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultTabIndex\n * @return {?}\n */\nexport function mixinTabIndex(base, defaultTabIndex) {\n if (defaultTabIndex === void 0) { defaultTabIndex = 0; }\n return (function (_super) {\n tslib_1.__extends(class_1, _super);\n /**\n * @param {...?} args\n */\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._tabIndex = defaultTabIndex;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"tabIndex\", {\n /**\n * @return {?}\n */\n get: function () { return this.disabled ? -1 : this._tabIndex; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : defaultTabIndex;\n },\n enumerable: true,\n configurable: true\n });\n return class_1;\n }(base));\n}\n//# sourceMappingURL=tabindex.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, LOCALE_ID } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\n/**\n * InjectionToken for datepicker that can be used to override default locale code.\n */\nexport var MAT_DATE_LOCALE = new InjectionToken('MAT_DATE_LOCALE');\n/**\n * Provider for MAT_DATE_LOCALE injection token.\n */\nexport var MAT_DATE_LOCALE_PROVIDER = { provide: MAT_DATE_LOCALE, useExisting: LOCALE_ID };\n/**\n * Adapts type `D` to be usable as a date by cdk-based components that work with dates.\n * @abstract\n */\nvar DateAdapter = (function () {\n function DateAdapter() {\n this._localeChanges = new Subject();\n }\n Object.defineProperty(DateAdapter.prototype, \"localeChanges\", {\n /**\n * A stream that emits when the locale changes.\n * @return {?}\n */\n get: function () { return this._localeChanges; },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the year component of the given date.\n * @abstract\n * @param {?} date The date to extract the year from.\n * @return {?} The year component.\n */\n DateAdapter.prototype.getYear = function (date) { };\n /**\n * Gets the month component of the given date.\n * @abstract\n * @param {?} date The date to extract the month from.\n * @return {?} The month component (0-indexed, 0 = January).\n */\n DateAdapter.prototype.getMonth = function (date) { };\n /**\n * Gets the date of the month component of the given date.\n * @abstract\n * @param {?} date The date to extract the date of the month from.\n * @return {?} The month component (1-indexed, 1 = first of month).\n */\n DateAdapter.prototype.getDate = function (date) { };\n /**\n * Gets the day of the week component of the given date.\n * @abstract\n * @param {?} date The date to extract the day of the week from.\n * @return {?} The month component (0-indexed, 0 = Sunday).\n */\n DateAdapter.prototype.getDayOfWeek = function (date) { };\n /**\n * Gets a list of names for the months.\n * @abstract\n * @param {?} style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').\n * @return {?} An ordered list of all month names, starting with January.\n */\n DateAdapter.prototype.getMonthNames = function (style) { };\n /**\n * Gets a list of names for the dates of the month.\n * @abstract\n * @return {?} An ordered list of all date of the month names, starting with '1'.\n */\n DateAdapter.prototype.getDateNames = function () { };\n /**\n * Gets a list of names for the days of the week.\n * @abstract\n * @param {?} style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').\n * @return {?} An ordered list of all weekday names, starting with Sunday.\n */\n DateAdapter.prototype.getDayOfWeekNames = function (style) { };\n /**\n * Gets the name for the year of the given date.\n * @abstract\n * @param {?} date The date to get the year name for.\n * @return {?} The name of the given year (e.g. '2017').\n */\n DateAdapter.prototype.getYearName = function (date) { };\n /**\n * Gets the first day of the week.\n * @abstract\n * @return {?} The first day of the week (0-indexed, 0 = Sunday).\n */\n DateAdapter.prototype.getFirstDayOfWeek = function () { };\n /**\n * Gets the number of days in the month of the given date.\n * @abstract\n * @param {?} date The date whose month should be checked.\n * @return {?} The number of days in the month of the given date.\n */\n DateAdapter.prototype.getNumDaysInMonth = function (date) { };\n /**\n * Clones the given date.\n * @abstract\n * @param {?} date The date to clone\n * @return {?} A new date equal to the given date.\n */\n DateAdapter.prototype.clone = function (date) { };\n /**\n * Creates a date with the given year, month, and date. Does not allow over/under-flow of the\n * month and date.\n * @abstract\n * @param {?} year The full year of the date. (e.g. 89 means the year 89, not the year 1989).\n * @param {?} month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.\n * @param {?} date The date of month of the date. Must be an integer 1 - length of the given month.\n * @return {?} The new date, or null if invalid.\n */\n DateAdapter.prototype.createDate = function (year, month, date) { };\n /**\n * Gets today's date.\n * @abstract\n * @return {?} Today's date.\n */\n DateAdapter.prototype.today = function () { };\n /**\n * Parses a date from a value.\n * @abstract\n * @param {?} value The value to parse.\n * @param {?} parseFormat The expected format of the value being parsed\n * (type is implementation-dependent).\n * @return {?} The parsed date.\n */\n DateAdapter.prototype.parse = function (value, parseFormat) { };\n /**\n * Formats a date as a string.\n * @abstract\n * @param {?} date The value to format.\n * @param {?} displayFormat The format to use to display the date as a string.\n * @return {?} The formatted date string.\n */\n DateAdapter.prototype.format = function (date, displayFormat) { };\n /**\n * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the\n * calendar for each year and then finding the closest date in the new month. For example when\n * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.\n * @abstract\n * @param {?} date The date to add years to.\n * @param {?} years The number of years to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of years added.\n */\n DateAdapter.prototype.addCalendarYears = function (date, years) { };\n /**\n * Adds the given number of months to the date. Months are counted as if flipping a page on the\n * calendar for each month and then finding the closest date in the new month. For example when\n * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.\n * @abstract\n * @param {?} date The date to add months to.\n * @param {?} months The number of months to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of months added.\n */\n DateAdapter.prototype.addCalendarMonths = function (date, months) { };\n /**\n * Adds the given number of days to the date. Days are counted as if moving one cell on the\n * calendar for each day.\n * @abstract\n * @param {?} date The date to add days to.\n * @param {?} days The number of days to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of days added.\n */\n DateAdapter.prototype.addCalendarDays = function (date, days) { };\n /**\n * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.\n * @abstract\n * @param {?} date The date to get the ISO date string for.\n * @return {?} The ISO date string date string.\n */\n DateAdapter.prototype.toIso8601 = function (date) { };\n /**\n * Creates a date from an RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339).\n * @abstract\n * @param {?} iso8601String The ISO date string to create a date from\n * @return {?} The date created from the ISO date string.\n */\n DateAdapter.prototype.fromIso8601 = function (iso8601String) { };\n /**\n * Checks whether the given object is considered a date instance by this DateAdapter.\n * @abstract\n * @param {?} obj The object to check\n * @return {?} Whether the object is a date instance.\n */\n DateAdapter.prototype.isDateInstance = function (obj) { };\n /**\n * Checks whether the given date is valid.\n * @abstract\n * @param {?} date The date to check.\n * @return {?} Whether the date is valid.\n */\n DateAdapter.prototype.isValid = function (date) { };\n /**\n * Sets the locale used for all dates.\n * @param {?} locale The new locale.\n * @return {?}\n */\n DateAdapter.prototype.setLocale = function (locale) {\n this.locale = locale;\n this._localeChanges.next();\n };\n /**\n * Compares two dates.\n * @param {?} first The first date to compare.\n * @param {?} second The second date to compare.\n * @return {?} 0 if the dates are equal, a number less than 0 if the first date is earlier,\n * a number greater than 0 if the first date is later.\n */\n DateAdapter.prototype.compareDate = function (first, second) {\n return this.getYear(first) - this.getYear(second) ||\n this.getMonth(first) - this.getMonth(second) ||\n this.getDate(first) - this.getDate(second);\n };\n /**\n * Checks if two dates are equal.\n * @param {?} first The first date to check.\n * @param {?} second The second date to check.\n * Null dates are considered equal to other null dates.\n * @return {?}\n */\n DateAdapter.prototype.sameDate = function (first, second) {\n return first && second ? !this.compareDate(first, second) : first == second;\n };\n /**\n * Clamp the given date between min and max dates.\n * @param {?} date The date to clamp.\n * @param {?=} min The minimum value to allow. If null or omitted no min is enforced.\n * @param {?=} max The maximum value to allow. If null or omitted no max is enforced.\n * @return {?} `min` if `date` is less than `min`, `max` if date is greater than `max`,\n * otherwise `date`.\n */\n DateAdapter.prototype.clampDate = function (date, min, max) {\n if (min && this.compareDate(date, min) < 0) {\n return min;\n }\n if (max && this.compareDate(date, max) > 0) {\n return max;\n }\n return date;\n };\n return DateAdapter;\n}());\nexport { DateAdapter };\nfunction DateAdapter_tsickle_Closure_declarations() {\n /**\n * The locale to use for all dates.\n * @type {?}\n */\n DateAdapter.prototype.locale;\n /** @type {?} */\n DateAdapter.prototype._localeChanges;\n}\n//# sourceMappingURL=date-adapter.js.map","/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n *\n * @param {?} dest The object which will have properties copied to it.\n * @param {...?} sources The source objects from which properties will be copied.\n * @return {?}\n */\nexport function extendObject(dest) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n if (source != null) {\n for (var /** @type {?} */ key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n return dest;\n}\n//# sourceMappingURL=object-extend.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 { Inject, Injectable, Optional } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from './date-adapter';\nimport { extendObject } from '../util/object-extend';\n/**\n * Whether the browser supports the Intl API.\n */\nvar SUPPORTS_INTL_API = typeof Intl != 'undefined';\n/**\n * The default month names to use if Intl API is not available.\n */\nvar DEFAULT_MONTH_NAMES = {\n 'long': [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December'\n ],\n 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']\n};\n/**\n * The default date names to use if Intl API is not available.\n */\nvar DEFAULT_DATE_NAMES = range(31, function (i) { return String(i + 1); });\n/**\n * The default day of the week names to use if Intl API is not available.\n */\nvar DEFAULT_DAY_OF_WEEK_NAMES = {\n 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']\n};\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings an with out of bounds month, date, etc.\n */\nvar ISO_8601_REGEX = /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n/**\n * Creates an array and fills it with values.\n * @template T\n * @param {?} length\n * @param {?} valueFunction\n * @return {?}\n */\nfunction range(length, valueFunction) {\n var /** @type {?} */ valuesArray = Array(length);\n for (var /** @type {?} */ i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n/**\n * Adapts the native JS Date for use with cdk-based components that work with dates.\n */\nvar NativeDateAdapter = (function (_super) {\n tslib_1.__extends(NativeDateAdapter, _super);\n /**\n * @param {?} matDateLocale\n */\n function NativeDateAdapter(matDateLocale) {\n var _this = _super.call(this) || this;\n /**\n * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.\n * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off\n * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`\n * will produce `'8/13/1800'`.\n */\n _this.useUtcForDisplay = true;\n _super.prototype.setLocale.call(_this, matDateLocale);\n return _this;\n }\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getYear = function (date) {\n return date.getFullYear();\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getMonth = function (date) {\n return date.getMonth();\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getDate = function (date) {\n return date.getDate();\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getDayOfWeek = function (date) {\n return date.getDay();\n };\n /**\n * @param {?} style\n * @return {?}\n */\n NativeDateAdapter.prototype.getMonthNames = function (style) {\n var _this = this;\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf_1 = new Intl.DateTimeFormat(this.locale, { month: style });\n return range(12, function (i) { return _this._stripDirectionalityCharacters(dtf_1.format(new Date(2017, i, 1))); });\n }\n return DEFAULT_MONTH_NAMES[style];\n };\n /**\n * @return {?}\n */\n NativeDateAdapter.prototype.getDateNames = function () {\n var _this = this;\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf_2 = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });\n return range(31, function (i) { return _this._stripDirectionalityCharacters(dtf_2.format(new Date(2017, 0, i + 1))); });\n }\n return DEFAULT_DATE_NAMES;\n };\n /**\n * @param {?} style\n * @return {?}\n */\n NativeDateAdapter.prototype.getDayOfWeekNames = function (style) {\n var _this = this;\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf_3 = new Intl.DateTimeFormat(this.locale, { weekday: style });\n return range(7, function (i) { return _this._stripDirectionalityCharacters(dtf_3.format(new Date(2017, 0, i + 1))); });\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getYearName = function (date) {\n if (SUPPORTS_INTL_API) {\n var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric' });\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return String(this.getYear(date));\n };\n /**\n * @return {?}\n */\n NativeDateAdapter.prototype.getFirstDayOfWeek = function () {\n // We can't tell using native JS Date what the first day of the week is, we default to Sunday.\n return 0;\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.getNumDaysInMonth = function (date) {\n return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.clone = function (date) {\n return this.createDate(this.getYear(date), this.getMonth(date), this.getDate(date));\n };\n /**\n * @param {?} year\n * @param {?} month\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.createDate = function (year, month, date) {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(\"Invalid month index \\\"\" + month + \"\\\". Month index has to be between 0 and 11.\");\n }\n if (date < 1) {\n throw Error(\"Invalid date \\\"\" + date + \"\\\". Date has to be greater than 0.\");\n }\n var /** @type {?} */ result = this._createDateWithOverflow(year, month, date);\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() != month) {\n throw Error(\"Invalid date \\\"\" + date + \"\\\" for month with index \\\"\" + month + \"\\\".\");\n }\n return result;\n };\n /**\n * @return {?}\n */\n NativeDateAdapter.prototype.today = function () {\n return new Date();\n };\n /**\n * @param {?} value\n * @return {?}\n */\n NativeDateAdapter.prototype.parse = function (value) {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n return value ? new Date(Date.parse(value)) : null;\n };\n /**\n * @param {?} date\n * @param {?} displayFormat\n * @return {?}\n */\n NativeDateAdapter.prototype.format = function (date, displayFormat) {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n if (SUPPORTS_INTL_API) {\n if (this.useUtcForDisplay) {\n date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n displayFormat = extendObject({}, displayFormat, { timeZone: 'utc' });\n }\n var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n };\n /**\n * @param {?} date\n * @param {?} years\n * @return {?}\n */\n NativeDateAdapter.prototype.addCalendarYears = function (date, years) {\n return this.addCalendarMonths(date, years * 12);\n };\n /**\n * @param {?} date\n * @param {?} months\n * @return {?}\n */\n NativeDateAdapter.prototype.addCalendarMonths = function (date, months) {\n var /** @type {?} */ newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n return newDate;\n };\n /**\n * @param {?} date\n * @param {?} days\n * @return {?}\n */\n NativeDateAdapter.prototype.addCalendarDays = function (date, days) {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.toIso8601 = function (date) {\n return [\n date.getUTCFullYear(),\n this._2digit(date.getUTCMonth() + 1),\n this._2digit(date.getUTCDate())\n ].join('-');\n };\n /**\n * @param {?} iso8601String\n * @return {?}\n */\n NativeDateAdapter.prototype.fromIso8601 = function (iso8601String) {\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(iso8601String)) {\n var /** @type {?} */ d = new Date(iso8601String);\n if (this.isValid(d)) {\n return d;\n }\n }\n return null;\n };\n /**\n * @param {?} obj\n * @return {?}\n */\n NativeDateAdapter.prototype.isDateInstance = function (obj) {\n return obj instanceof Date;\n };\n /**\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype.isValid = function (date) {\n return !isNaN(date.getTime());\n };\n /**\n * Creates a date but allows the month and date to overflow.\n * @param {?} year\n * @param {?} month\n * @param {?} date\n * @return {?}\n */\n NativeDateAdapter.prototype._createDateWithOverflow = function (year, month, date) {\n var /** @type {?} */ result = new Date(year, month, date);\n // We need to correct for the fact that JS native Date treats years in range [0, 99] as\n // abbreviations for 19xx.\n if (year >= 0 && year < 100) {\n result.setFullYear(this.getYear(result) - 1900);\n }\n return result;\n };\n /**\n * Pads a number to make it two digits.\n * @param {?} n The number to pad.\n * @return {?} The padded number.\n */\n NativeDateAdapter.prototype._2digit = function (n) {\n return ('00' + n).slice(-2);\n };\n /**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param {?} str The string to strip direction characters from.\n * @return {?} The stripped string.\n */\n NativeDateAdapter.prototype._stripDirectionalityCharacters = function (str) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n };\n NativeDateAdapter.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n NativeDateAdapter.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] },] },\n ]; };\n return NativeDateAdapter;\n}(DateAdapter));\nexport { NativeDateAdapter };\nfunction NativeDateAdapter_tsickle_Closure_declarations() {\n /** @type {?} */\n NativeDateAdapter.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n NativeDateAdapter.ctorParameters;\n /**\n * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.\n * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off\n * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`\n * will produce `'8/13/1800'`.\n * @type {?}\n */\n NativeDateAdapter.prototype.useUtcForDisplay;\n}\n//# sourceMappingURL=native-date-adapter.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_DATE_FORMATS = new InjectionToken('mat-date-formats');\n//# sourceMappingURL=date-formats.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 */\nexport var /** @type {?} */ MAT_NATIVE_DATE_FORMATS = {\n parse: {\n dateInput: null,\n },\n display: {\n dateInput: { year: 'numeric', month: 'numeric', day: 'numeric' },\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n }\n};\n//# sourceMappingURL=native-date-formats.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 { DateAdapter, MAT_DATE_LOCALE_PROVIDER } from './date-adapter';\nimport { NativeDateAdapter } from './native-date-adapter';\nimport { MAT_DATE_FORMATS } from './date-formats';\nimport { MAT_NATIVE_DATE_FORMATS } from './native-date-formats';\nexport { MAT_DATE_LOCALE, MAT_DATE_LOCALE_PROVIDER, DateAdapter } from './date-adapter';\nexport { MAT_DATE_FORMATS } from './date-formats';\nexport { NativeDateAdapter } from './native-date-adapter';\nexport { MAT_NATIVE_DATE_FORMATS } from './native-date-formats';\nvar NativeDateModule = (function () {\n function NativeDateModule() {\n }\n NativeDateModule.decorators = [\n { type: NgModule, args: [{\n providers: [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n MAT_DATE_LOCALE_PROVIDER\n ],\n },] },\n ];\n /**\n * @nocollapse\n */\n NativeDateModule.ctorParameters = function () { return []; };\n return NativeDateModule;\n}());\nexport { NativeDateModule };\nfunction NativeDateModule_tsickle_Closure_declarations() {\n /** @type {?} */\n NativeDateModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n NativeDateModule.ctorParameters;\n}\nvar MatNativeDateModule = (function () {\n function MatNativeDateModule() {\n }\n MatNativeDateModule.decorators = [\n { type: NgModule, args: [{\n imports: [NativeDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_NATIVE_DATE_FORMATS }],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatNativeDateModule.ctorParameters = function () { return []; };\n return MatNativeDateModule;\n}());\nexport { MatNativeDateModule };\nfunction MatNativeDateModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatNativeDateModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatNativeDateModule.ctorParameters;\n}\n//# sourceMappingURL=index.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 { Injectable } from '@angular/core';\n/**\n * Error state matcher that matches when a control is invalid and dirty.\n */\nvar ShowOnDirtyErrorStateMatcher = (function () {\n function ShowOnDirtyErrorStateMatcher() {\n }\n /**\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n ShowOnDirtyErrorStateMatcher.prototype.isErrorState = function (control, form) {\n return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n };\n ShowOnDirtyErrorStateMatcher.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n ShowOnDirtyErrorStateMatcher.ctorParameters = function () { return []; };\n return ShowOnDirtyErrorStateMatcher;\n}());\nexport { ShowOnDirtyErrorStateMatcher };\nfunction ShowOnDirtyErrorStateMatcher_tsickle_Closure_declarations() {\n /** @type {?} */\n ShowOnDirtyErrorStateMatcher.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n ShowOnDirtyErrorStateMatcher.ctorParameters;\n}\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n */\nvar ErrorStateMatcher = (function () {\n function ErrorStateMatcher() {\n }\n /**\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n ErrorStateMatcher.prototype.isErrorState = function (control, form) {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n };\n ErrorStateMatcher.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n ErrorStateMatcher.ctorParameters = function () { return []; };\n return ErrorStateMatcher;\n}());\nexport { ErrorStateMatcher };\nfunction ErrorStateMatcher_tsickle_Closure_declarations() {\n /** @type {?} */\n ErrorStateMatcher.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n ErrorStateMatcher.ctorParameters;\n}\n//# sourceMappingURL=error-options.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 { Injectable, isDevMode } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\nvar GestureConfig = (function (_super) {\n tslib_1.__extends(GestureConfig, _super);\n function GestureConfig() {\n var _this = _super.call(this) || this;\n _this._hammer = typeof window !== 'undefined' ? ((window)).Hammer : null;\n /* List of new event names to add to the gesture support list */\n _this.events = _this._hammer ? [\n 'longpress',\n 'slide',\n 'slidestart',\n 'slideend',\n 'slideright',\n 'slideleft'\n ] : [];\n if (!_this._hammer && isDevMode()) {\n console.warn('Could not find HammerJS. Certain Angular Material ' +\n 'components may not work correctly.');\n }\n return _this;\n }\n /**\n * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.\n *\n * Our gesture names come from the Material Design gestures spec:\n * https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics\n *\n * More information on default recognizers can be found in Hammer docs:\n * http://hammerjs.github.io/recognizer-pan/\n * http://hammerjs.github.io/recognizer-press/\n *\n * @param {?} element Element to which to assign the new HammerJS gestures.\n * @return {?} Newly-created HammerJS instance.\n */\n GestureConfig.prototype.buildHammer = function (element) {\n var /** @type {?} */ mc = new this._hammer(element);\n // Default Hammer Recognizers.\n var /** @type {?} */ pan = new this._hammer.Pan();\n var /** @type {?} */ swipe = new this._hammer.Swipe();\n var /** @type {?} */ press = new this._hammer.Press();\n // Notice that a HammerJS recognizer can only depend on one other recognizer once.\n // Otherwise the previous `recognizeWith` will be dropped.\n // TODO: Confirm threshold numbers with Material Design UX Team\n var /** @type {?} */ slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);\n var /** @type {?} */ longpress = this._createRecognizer(press, { event: 'longpress', time: 500 });\n // Overwrite the default `pan` event to use the swipe event.\n pan.recognizeWith(swipe);\n // Add customized gestures to Hammer manager\n mc.add([swipe, press, pan, slide, longpress]);\n return (mc);\n };\n /**\n * Creates a new recognizer, without affecting the default recognizers of HammerJS\n * @param {?} base\n * @param {?} options\n * @param {...?} inheritances\n * @return {?}\n */\n GestureConfig.prototype._createRecognizer = function (base, options) {\n var inheritances = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n inheritances[_i - 2] = arguments[_i];\n }\n var /** @type {?} */ recognizer = new ((base.constructor))(options);\n inheritances.push(base);\n inheritances.forEach(function (item) { return recognizer.recognizeWith(item); });\n return recognizer;\n };\n GestureConfig.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n GestureConfig.ctorParameters = function () { return []; };\n return GestureConfig;\n}(HammerGestureConfig));\nexport { GestureConfig };\nfunction GestureConfig_tsickle_Closure_declarations() {\n /** @type {?} */\n GestureConfig.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n GestureConfig.ctorParameters;\n /** @type {?} */\n GestureConfig.prototype._hammer;\n /** @type {?} */\n GestureConfig.prototype.events;\n}\n//# sourceMappingURL=gesture-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 { NgModule, Directive, } from '@angular/core';\nimport { MatCommonModule } from '../common-behaviors/common-module';\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a \\@ContentChildren(MatLine) query, then\n * counted by checking the query list's length.\n */\nvar MatLine = (function () {\n function MatLine() {\n }\n MatLine.decorators = [\n { type: Directive, args: [{\n selector: '[mat-line], [matLine]',\n host: { 'class': 'mat-line' }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatLine.ctorParameters = function () { return []; };\n return MatLine;\n}());\nexport { MatLine };\nfunction MatLine_tsickle_Closure_declarations() {\n /** @type {?} */\n MatLine.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatLine.ctorParameters;\n}\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * \\@docs-private\n */\nvar MatLineSetter = (function () {\n /**\n * @param {?} _lines\n * @param {?} _renderer\n * @param {?} _element\n */\n function MatLineSetter(_lines, _renderer, _element) {\n var _this = this;\n this._lines = _lines;\n this._renderer = _renderer;\n this._element = _element;\n this._setLineClass(this._lines.length);\n this._lines.changes.subscribe(function () {\n _this._setLineClass(_this._lines.length);\n });\n }\n /**\n * @param {?} count\n * @return {?}\n */\n MatLineSetter.prototype._setLineClass = function (count) {\n this._resetClasses();\n if (count === 2 || count === 3) {\n this._setClass(\"mat-\" + count + \"-line\", true);\n }\n else if (count > 3) {\n this._setClass(\"mat-multi-line\", true);\n }\n };\n /**\n * @return {?}\n */\n MatLineSetter.prototype._resetClasses = function () {\n this._setClass('mat-2-line', false);\n this._setClass('mat-3-line', false);\n this._setClass('mat-multi-line', false);\n };\n /**\n * @param {?} className\n * @param {?} isAdd\n * @return {?}\n */\n MatLineSetter.prototype._setClass = function (className, isAdd) {\n if (isAdd) {\n this._renderer.addClass(this._element.nativeElement, className);\n }\n else {\n this._renderer.removeClass(this._element.nativeElement, className);\n }\n };\n return MatLineSetter;\n}());\nexport { MatLineSetter };\nfunction MatLineSetter_tsickle_Closure_declarations() {\n /** @type {?} */\n MatLineSetter.prototype._lines;\n /** @type {?} */\n MatLineSetter.prototype._renderer;\n /** @type {?} */\n MatLineSetter.prototype._element;\n}\nvar MatLineModule = (function () {\n function MatLineModule() {\n }\n MatLineModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule],\n exports: [MatLine, MatCommonModule],\n declarations: [MatLine],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatLineModule.ctorParameters = function () { return []; };\n return MatLineModule;\n}());\nexport { MatLineModule };\nfunction MatLineModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatLineModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatLineModule.ctorParameters;\n}\n//# sourceMappingURL=line.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 */\nexport var RippleState = {};\nRippleState.FADING_IN = 0;\nRippleState.VISIBLE = 1;\nRippleState.FADING_OUT = 2;\nRippleState.HIDDEN = 3;\nRippleState[RippleState.FADING_IN] = \"FADING_IN\";\nRippleState[RippleState.VISIBLE] = \"VISIBLE\";\nRippleState[RippleState.FADING_OUT] = \"FADING_OUT\";\nRippleState[RippleState.HIDDEN] = \"HIDDEN\";\n/**\n * Reference to a previously launched ripple element.\n */\nvar RippleRef = (function () {\n /**\n * @param {?} _renderer\n * @param {?} element\n * @param {?} config\n */\n function RippleRef(_renderer, element, config) {\n this._renderer = _renderer;\n this.element = element;\n this.config = config;\n /**\n * Current state of the ripple reference.\n */\n this.state = RippleState.HIDDEN;\n }\n /**\n * Fades out the ripple element.\n * @return {?}\n */\n RippleRef.prototype.fadeOut = function () {\n this._renderer.fadeOutRipple(this);\n };\n return RippleRef;\n}());\nexport { RippleRef };\nfunction RippleRef_tsickle_Closure_declarations() {\n /**\n * Current state of the ripple reference.\n * @type {?}\n */\n RippleRef.prototype.state;\n /** @type {?} */\n RippleRef.prototype._renderer;\n /** @type {?} */\n RippleRef.prototype.element;\n /** @type {?} */\n RippleRef.prototype.config;\n}\n//# sourceMappingURL=ripple-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 { RippleRef, RippleState } from './ripple-ref';\n/**\n * Fade-in duration for the ripples. Can be modified with the speedFactor option.\n */\nexport var RIPPLE_FADE_IN_DURATION = 450;\n/**\n * Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor.\n */\nexport var RIPPLE_FADE_OUT_DURATION = 400;\n/**\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\n * event handlers to be installed on the element that triggers ripple animations.\n * This will eventually become a custom renderer once Angular support exists.\n * \\@docs-private\n */\nvar RippleRenderer = (function () {\n /**\n * @param {?} elementRef\n * @param {?} _ngZone\n * @param {?} platform\n */\n function RippleRenderer(elementRef, _ngZone, platform) {\n this._ngZone = _ngZone;\n /**\n * Whether the pointer is currently being held on the trigger or not.\n */\n this._isPointerDown = false;\n /**\n * Events to be registered on the trigger element.\n */\n this._triggerEvents = new Map();\n /**\n * Set of currently active ripple references.\n */\n this._activeRipples = new Set();\n /**\n * Ripple config for all ripples created by events.\n */\n this.rippleConfig = {};\n /**\n * Whether mouse ripples should be created or not.\n */\n this.rippleDisabled = false;\n // Only do anything if we're on the browser.\n if (platform.isBrowser) {\n this._containerElement = elementRef.nativeElement;\n // Specify events which need to be registered on the trigger.\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\n this._triggerEvents.set('touchstart', this.onTouchstart.bind(this));\n this._triggerEvents.set('mouseup', this.onPointerUp.bind(this));\n this._triggerEvents.set('touchend', this.onPointerUp.bind(this));\n this._triggerEvents.set('mouseleave', this.onPointerLeave.bind(this));\n // By default use the host element as trigger element.\n this.setTriggerElement(this._containerElement);\n }\n }\n /**\n * Fades in a ripple at the given coordinates.\n * @param {?} x Coordinate within the element, along the X axis at which to start the ripple.\n * @param {?} y\n * @param {?=} config Extra ripple options.\n * @return {?}\n */\n RippleRenderer.prototype.fadeInRipple = function (x, y, config) {\n var _this = this;\n if (config === void 0) { config = {}; }\n var /** @type {?} */ containerRect = this._containerElement.getBoundingClientRect();\n if (config.centered) {\n x = containerRect.left + containerRect.width / 2;\n y = containerRect.top + containerRect.height / 2;\n }\n var /** @type {?} */ radius = config.radius || distanceToFurthestCorner(x, y, containerRect);\n var /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\n var /** @type {?} */ offsetX = x - containerRect.left;\n var /** @type {?} */ offsetY = y - containerRect.top;\n var /** @type {?} */ ripple = document.createElement('div');\n ripple.classList.add('mat-ripple-element');\n ripple.style.left = offsetX - radius + \"px\";\n ripple.style.top = offsetY - radius + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.width = radius * 2 + \"px\";\n // If the color is not set, the default CSS color will be used.\n ripple.style.backgroundColor = config.color || null;\n ripple.style.transitionDuration = duration + \"ms\";\n this._containerElement.appendChild(ripple);\n // By default the browser does not recalculate the styles of dynamically created\n // ripple elements. This is critical because then the `scale` would not animate properly.\n enforceStyleRecalculation(ripple);\n ripple.style.transform = 'scale(1)';\n // Exposed reference to the ripple that will be returned.\n var /** @type {?} */ rippleRef = new RippleRef(this, ripple, config);\n rippleRef.state = RippleState.FADING_IN;\n // Add the ripple reference to the list of all active ripples.\n this._activeRipples.add(rippleRef);\n // Wait for the ripple element to be completely faded in.\n // Once it's faded in, the ripple can be hidden immediately if the mouse is released.\n this.runTimeoutOutsideZone(function () {\n rippleRef.state = RippleState.VISIBLE;\n if (!config.persistent && !_this._isPointerDown) {\n rippleRef.fadeOut();\n }\n }, duration);\n return rippleRef;\n };\n /**\n * Fades out a ripple reference.\n * @param {?} rippleRef\n * @return {?}\n */\n RippleRenderer.prototype.fadeOutRipple = function (rippleRef) {\n // For ripples that are not active anymore, don't re-un the fade-out animation.\n if (!this._activeRipples.delete(rippleRef)) {\n return;\n }\n var /** @type {?} */ rippleEl = rippleRef.element;\n rippleEl.style.transitionDuration = RIPPLE_FADE_OUT_DURATION + \"ms\";\n rippleEl.style.opacity = '0';\n rippleRef.state = RippleState.FADING_OUT;\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\n this.runTimeoutOutsideZone(function () {\n rippleRef.state = RippleState.HIDDEN; /** @type {?} */\n ((rippleEl.parentNode)).removeChild(rippleEl);\n }, RIPPLE_FADE_OUT_DURATION);\n };\n /**\n * Fades out all currently active ripples.\n * @return {?}\n */\n RippleRenderer.prototype.fadeOutAll = function () {\n this._activeRipples.forEach(function (ripple) { return ripple.fadeOut(); });\n };\n /**\n * Sets the trigger element and registers the mouse events.\n * @param {?} element\n * @return {?}\n */\n RippleRenderer.prototype.setTriggerElement = function (element) {\n var _this = this;\n // Remove all previously register event listeners from the trigger element.\n if (this._triggerElement) {\n this._triggerEvents.forEach(function (fn, type) {\n ((_this._triggerElement)).removeEventListener(type, fn);\n });\n }\n if (element) {\n // If the element is not null, register all event listeners on the trigger element.\n this._ngZone.runOutsideAngular(function () {\n _this._triggerEvents.forEach(function (fn, type) { return element.addEventListener(type, fn); });\n });\n }\n this._triggerElement = element;\n };\n /**\n * Function being called whenever the trigger is being pressed.\n * @param {?} event\n * @return {?}\n */\n RippleRenderer.prototype.onMousedown = function (event) {\n if (!this.rippleDisabled) {\n this._isPointerDown = true;\n this.fadeInRipple(event.clientX, event.clientY, this.rippleConfig);\n }\n };\n /**\n * Function being called whenever the pointer is being released.\n * @return {?}\n */\n RippleRenderer.prototype.onPointerUp = function () {\n this._isPointerDown = false;\n // Fade-out all ripples that are completely visible and not persistent.\n this._activeRipples.forEach(function (ripple) {\n if (!ripple.config.persistent && ripple.state === RippleState.VISIBLE) {\n ripple.fadeOut();\n }\n });\n };\n /**\n * Function being called whenever the pointer leaves the trigger.\n * @return {?}\n */\n RippleRenderer.prototype.onPointerLeave = function () {\n if (this._isPointerDown) {\n this.onPointerUp();\n }\n };\n /**\n * Function being called whenever the trigger is being touched.\n * @param {?} event\n * @return {?}\n */\n RippleRenderer.prototype.onTouchstart = function (event) {\n if (!this.rippleDisabled) {\n var _a = event.touches[0], clientX = _a.clientX, clientY = _a.clientY;\n this._isPointerDown = true;\n this.fadeInRipple(clientX, clientY, this.rippleConfig);\n }\n };\n /**\n * Runs a timeout outside of the Angular zone to avoid triggering the change detection.\n * @param {?} fn\n * @param {?=} delay\n * @return {?}\n */\n RippleRenderer.prototype.runTimeoutOutsideZone = function (fn, delay) {\n if (delay === void 0) { delay = 0; }\n this._ngZone.runOutsideAngular(function () { return setTimeout(fn, delay); });\n };\n return RippleRenderer;\n}());\nexport { RippleRenderer };\nfunction RippleRenderer_tsickle_Closure_declarations() {\n /**\n * Element where the ripples are being added to.\n * @type {?}\n */\n RippleRenderer.prototype._containerElement;\n /**\n * Element which triggers the ripple elements on mouse events.\n * @type {?}\n */\n RippleRenderer.prototype._triggerElement;\n /**\n * Whether the pointer is currently being held on the trigger or not.\n * @type {?}\n */\n RippleRenderer.prototype._isPointerDown;\n /**\n * Events to be registered on the trigger element.\n * @type {?}\n */\n RippleRenderer.prototype._triggerEvents;\n /**\n * Set of currently active ripple references.\n * @type {?}\n */\n RippleRenderer.prototype._activeRipples;\n /**\n * Ripple config for all ripples created by events.\n * @type {?}\n */\n RippleRenderer.prototype.rippleConfig;\n /**\n * Whether mouse ripples should be created or not.\n * @type {?}\n */\n RippleRenderer.prototype.rippleDisabled;\n /** @type {?} */\n RippleRenderer.prototype._ngZone;\n}\n/**\n * @param {?} element\n * @return {?}\n */\nfunction enforceStyleRecalculation(element) {\n // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.\n // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n window.getComputedStyle(element).getPropertyValue('opacity');\n}\n/**\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\n * @param {?} x\n * @param {?} y\n * @param {?} rect\n * @return {?}\n */\nfunction distanceToFurthestCorner(x, y, rect) {\n var /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n var /** @type {?} */ distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n return Math.sqrt(distX * distX + distY * distY);\n}\n//# sourceMappingURL=ripple-renderer.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 { Directive, ElementRef, Input, Inject, NgZone, InjectionToken, Optional, } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { RippleRenderer } from './ripple-renderer';\n/**\n * Injection token that can be used to specify the global ripple options.\n */\nexport var MAT_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('mat-ripple-global-options');\nvar MatRipple = (function () {\n /**\n * @param {?} elementRef\n * @param {?} ngZone\n * @param {?} platform\n * @param {?} globalOptions\n */\n function MatRipple(elementRef, ngZone, platform, globalOptions) {\n /**\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n * will be the distance from the center of the ripple to the furthest corner of the host element's\n * bounding rectangle.\n */\n this.radius = 0;\n /**\n * If set, the normal duration of ripple animations is divided by this value. For example,\n * setting it to 0.5 will cause the animations to take twice as long.\n * A changed speedFactor will not modify the fade-out duration of the ripples.\n */\n this.speedFactor = 1;\n this._rippleRenderer = new RippleRenderer(elementRef, ngZone, platform);\n this._globalOptions = globalOptions ? globalOptions : {};\n this._updateRippleRenderer();\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n MatRipple.prototype.ngOnChanges = function (changes) {\n if ((changes['trigger'] || changes['_matRippleTrigger']) && this.trigger) {\n this._rippleRenderer.setTriggerElement(this.trigger);\n }\n this._updateRippleRenderer();\n };\n /**\n * @return {?}\n */\n MatRipple.prototype.ngOnDestroy = function () {\n // Set the trigger element to null to cleanup all listeners.\n this._rippleRenderer.setTriggerElement(null);\n };\n /**\n * Launches a manual ripple at the specified position.\n * @param {?} x\n * @param {?} y\n * @param {?=} config\n * @return {?}\n */\n MatRipple.prototype.launch = function (x, y, config) {\n if (config === void 0) { config = this.rippleConfig; }\n return this._rippleRenderer.fadeInRipple(x, y, config);\n };\n /**\n * Fades out all currently showing ripple elements.\n * @return {?}\n */\n MatRipple.prototype.fadeOutAll = function () {\n this._rippleRenderer.fadeOutAll();\n };\n Object.defineProperty(MatRipple.prototype, \"rippleConfig\", {\n /**\n * Ripple configuration from the directive's input values.\n * @return {?}\n */\n get: function () {\n return {\n centered: this.centered,\n speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),\n radius: this.radius,\n color: this.color\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Updates the ripple renderer with the latest ripple configuration.\n * @return {?}\n */\n MatRipple.prototype._updateRippleRenderer = function () {\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\n this._rippleRenderer.rippleConfig = this.rippleConfig;\n };\n MatRipple.decorators = [\n { type: Directive, args: [{\n selector: '[mat-ripple], [matRipple]',\n exportAs: 'matRipple',\n host: {\n 'class': 'mat-ripple',\n '[class.mat-ripple-unbounded]': 'unbounded'\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRipple.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: NgZone, },\n { type: Platform, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] },] },\n ]; };\n MatRipple.propDecorators = {\n 'trigger': [{ type: Input, args: ['matRippleTrigger',] },],\n 'centered': [{ type: Input, args: ['matRippleCentered',] },],\n 'disabled': [{ type: Input, args: ['matRippleDisabled',] },],\n 'radius': [{ type: Input, args: ['matRippleRadius',] },],\n 'speedFactor': [{ type: Input, args: ['matRippleSpeedFactor',] },],\n 'color': [{ type: Input, args: ['matRippleColor',] },],\n 'unbounded': [{ type: Input, args: ['matRippleUnbounded',] },],\n };\n return MatRipple;\n}());\nexport { MatRipple };\nfunction MatRipple_tsickle_Closure_declarations() {\n /** @type {?} */\n MatRipple.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatRipple.ctorParameters;\n /** @type {?} */\n MatRipple.propDecorators;\n /** @type {?} */\n MatRipple.prototype.trigger;\n /**\n * Whether the ripple always originates from the center of the host element's bounds, rather\n * than originating from the location of the click event.\n * @type {?}\n */\n MatRipple.prototype.centered;\n /**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n * @type {?}\n */\n MatRipple.prototype.disabled;\n /**\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n * will be the distance from the center of the ripple to the furthest corner of the host element's\n * bounding rectangle.\n * @type {?}\n */\n MatRipple.prototype.radius;\n /**\n * If set, the normal duration of ripple animations is divided by this value. For example,\n * setting it to 0.5 will cause the animations to take twice as long.\n * A changed speedFactor will not modify the fade-out duration of the ripples.\n * @type {?}\n */\n MatRipple.prototype.speedFactor;\n /**\n * Custom color for ripples.\n * @type {?}\n */\n MatRipple.prototype.color;\n /**\n * Whether foreground ripples should be visible outside the component's bounds.\n * @type {?}\n */\n MatRipple.prototype.unbounded;\n /**\n * Renderer for the ripple DOM manipulations.\n * @type {?}\n */\n MatRipple.prototype._rippleRenderer;\n /**\n * Options that are set globally for all ripples.\n * @type {?}\n */\n MatRipple.prototype._globalOptions;\n}\n//# sourceMappingURL=ripple.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 { PlatformModule } from '@angular/cdk/platform';\nimport { MatCommonModule } from '../common-behaviors/common-module';\nimport { MatRipple } from './ripple';\nexport { MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS } from './ripple';\nexport { RippleRef, RippleState } from './ripple-ref';\nexport { RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION } from './ripple-renderer';\nvar MatRippleModule = (function () {\n function MatRippleModule() {\n }\n MatRippleModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, PlatformModule],\n exports: [MatRipple, MatCommonModule],\n declarations: [MatRipple],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRippleModule.ctorParameters = function () { return []; };\n return MatRippleModule;\n}());\nexport { MatRippleModule };\nfunction MatRippleModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatRippleModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatRippleModule.ctorParameters;\n}\n//# sourceMappingURL=index.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, Input, ChangeDetectionStrategy } from '@angular/core';\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `mat-primary .mat-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with and should *not* be used if the user would directly interact\n * with the checkbox. The pseudo-checkbox should only be used as an implementation detail of\n * more complex components that appropriately handle selected / checked state.\n * \\@docs-private\n */\nvar MatPseudoCheckbox = (function () {\n function MatPseudoCheckbox() {\n /**\n * Display state of the checkbox.\n */\n this.state = 'unchecked';\n /**\n * Whether the checkbox is disabled.\n */\n this.disabled = false;\n }\n MatPseudoCheckbox.decorators = [\n { type: Component, args: [{encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'mat-pseudo-checkbox',\n styles: [\".mat-pseudo-checkbox{width:20px;height:20px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:'';border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:9px;left:2px;width:16px;opacity:1}.mat-pseudo-checkbox-checked::after{top:5px;left:3px;width:12px;height:5px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1}\"],\n template: '',\n host: {\n 'class': 'mat-pseudo-checkbox',\n '[class.mat-pseudo-checkbox-indeterminate]': 'state === \"indeterminate\"',\n '[class.mat-pseudo-checkbox-checked]': 'state === \"checked\"',\n '[class.mat-pseudo-checkbox-disabled]': 'disabled',\n },\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPseudoCheckbox.ctorParameters = function () { return []; };\n MatPseudoCheckbox.propDecorators = {\n 'state': [{ type: Input },],\n 'disabled': [{ type: Input },],\n };\n return MatPseudoCheckbox;\n}());\nexport { MatPseudoCheckbox };\nfunction MatPseudoCheckbox_tsickle_Closure_declarations() {\n /** @type {?} */\n MatPseudoCheckbox.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatPseudoCheckbox.ctorParameters;\n /** @type {?} */\n MatPseudoCheckbox.propDecorators;\n /**\n * Display state of the checkbox.\n * @type {?}\n */\n MatPseudoCheckbox.prototype.state;\n /**\n * Whether the checkbox is disabled.\n * @type {?}\n */\n MatPseudoCheckbox.prototype.disabled;\n}\n//# sourceMappingURL=pseudo-checkbox.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 { MatPseudoCheckbox } from './pseudo-checkbox/pseudo-checkbox';\nvar MatPseudoCheckboxModule = (function () {\n function MatPseudoCheckboxModule() {\n }\n MatPseudoCheckboxModule.decorators = [\n { type: NgModule, args: [{\n exports: [MatPseudoCheckbox],\n declarations: [MatPseudoCheckbox]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatPseudoCheckboxModule.ctorParameters = function () { return []; };\n return MatPseudoCheckboxModule;\n}());\nexport { MatPseudoCheckboxModule };\nfunction MatPseudoCheckboxModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatPseudoCheckboxModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatPseudoCheckboxModule.ctorParameters;\n}\nexport { MatPseudoCheckbox } from './pseudo-checkbox/pseudo-checkbox';\n//# sourceMappingURL=index.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, ViewEncapsulation, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { mixinDisabled } from '../common-behaviors/disabled';\n/**\n * \\@docs-private\n */\nvar MatOptgroupBase = (function () {\n function MatOptgroupBase() {\n }\n return MatOptgroupBase;\n}());\nexport { MatOptgroupBase };\nexport var /** @type {?} */ _MatOptgroupMixinBase = mixinDisabled(MatOptgroupBase);\n// Counter for unique group ids.\nvar /** @type {?} */ _uniqueOptgroupIdCounter = 0;\n/**\n * Component that is used to group instances of `mat-option`.\n */\nvar MatOptgroup = (function (_super) {\n tslib_1.__extends(MatOptgroup, _super);\n function MatOptgroup() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Unique id for the underlying label.\n */\n _this._labelId = \"mat-optgroup-label-\" + _uniqueOptgroupIdCounter++;\n return _this;\n }\n MatOptgroup.decorators = [\n { type: Component, args: [{selector: 'mat-optgroup',\n exportAs: 'matOptgroup',\n template: \"\",\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n 'class': 'mat-optgroup',\n 'role': 'group',\n '[class.mat-optgroup-disabled]': 'disabled',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-labelledby]': '_labelId',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatOptgroup.ctorParameters = function () { return []; };\n MatOptgroup.propDecorators = {\n 'label': [{ type: Input },],\n };\n return MatOptgroup;\n}(_MatOptgroupMixinBase));\nexport { MatOptgroup };\nfunction MatOptgroup_tsickle_Closure_declarations() {\n /** @type {?} */\n MatOptgroup.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatOptgroup.ctorParameters;\n /** @type {?} */\n MatOptgroup.propDecorators;\n /**\n * Label for the option group.\n * @type {?}\n */\n MatOptgroup.prototype.label;\n /**\n * Unique id for the underlying label.\n * @type {?}\n */\n MatOptgroup.prototype._labelId;\n}\n//# sourceMappingURL=optgroup.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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Optional, Output, ViewEncapsulation, } from '@angular/core';\nimport { MatOptgroup } from './optgroup';\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nvar _uniqueIdCounter = 0;\n/**\n * Event object emitted by MatOption when selected or deselected.\n */\nvar MatOptionSelectionChange = (function () {\n /**\n * @param {?} source\n * @param {?=} isUserInput\n */\n function MatOptionSelectionChange(source, isUserInput) {\n if (isUserInput === void 0) { isUserInput = false; }\n this.source = source;\n this.isUserInput = isUserInput;\n }\n return MatOptionSelectionChange;\n}());\nexport { MatOptionSelectionChange };\nfunction MatOptionSelectionChange_tsickle_Closure_declarations() {\n /** @type {?} */\n MatOptionSelectionChange.prototype.source;\n /** @type {?} */\n MatOptionSelectionChange.prototype.isUserInput;\n}\n/**\n * Single option inside of a `` element.\n */\nvar MatOption = (function () {\n /**\n * @param {?} _element\n * @param {?} _changeDetectorRef\n * @param {?} group\n */\n function MatOption(_element, _changeDetectorRef, group) {\n this._element = _element;\n this._changeDetectorRef = _changeDetectorRef;\n this.group = group;\n this._selected = false;\n this._active = false;\n this._multiple = false;\n this._disableRipple = false;\n /**\n * Whether the option is disabled.\n */\n this._disabled = false;\n this._id = \"mat-option-\" + _uniqueIdCounter++;\n /**\n * Event emitted when the option is selected or deselected.\n */\n this.onSelectionChange = new EventEmitter();\n }\n Object.defineProperty(MatOption.prototype, \"multiple\", {\n /**\n * Whether the wrapping component is in multiple selection mode.\n * @return {?}\n */\n get: function () { return this._multiple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (value !== this._multiple) {\n this._multiple = value;\n this._changeDetectorRef.markForCheck();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"id\", {\n /**\n * The unique ID of the option.\n * @return {?}\n */\n get: function () { return this._id; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"selected\", {\n /**\n * Whether or not the option is currently selected.\n * @return {?}\n */\n get: function () { return this._selected; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"disabled\", {\n /**\n * Whether the option is disabled.\n * @return {?}\n */\n get: function () { return (this.group && this.group.disabled) || this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"disableRipple\", {\n /**\n * Whether ripples for the option are disabled.\n * @return {?}\n */\n get: function () { return this._disableRipple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disableRipple = value;\n this._changeDetectorRef.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"active\", {\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n * @return {?}\n */\n get: function () {\n return this._active;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatOption.prototype, \"viewValue\", {\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n * @return {?}\n */\n get: function () {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Selects the option.\n * @return {?}\n */\n MatOption.prototype.select = function () {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n };\n /**\n * Deselects the option.\n * @return {?}\n */\n MatOption.prototype.deselect = function () {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n };\n /**\n * Sets focus onto this option.\n * @return {?}\n */\n MatOption.prototype.focus = function () {\n var /** @type {?} */ element = this._getHostElement();\n if (typeof element.focus === 'function') {\n element.focus();\n }\n };\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n * @return {?}\n */\n MatOption.prototype.setActiveStyles = function () {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n * @return {?}\n */\n MatOption.prototype.setInactiveStyles = function () {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * Gets the label to be used when determining whether the option should be focused.\n * @return {?}\n */\n MatOption.prototype.getLabel = function () {\n return this.viewValue;\n };\n /**\n * Ensures the option is selected when activated from the keyboard.\n * @param {?} event\n * @return {?}\n */\n MatOption.prototype._handleKeydown = function (event) {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this._selectViaInteraction();\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n }\n };\n /**\n * Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.\n * @return {?}\n */\n MatOption.prototype._selectViaInteraction = function () {\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent(true);\n }\n };\n /**\n * Returns the correct tabindex for the option depending on disabled state.\n * @return {?}\n */\n MatOption.prototype._getTabIndex = function () {\n return this.disabled ? '-1' : '0';\n };\n /**\n * Gets the host DOM element.\n * @return {?}\n */\n MatOption.prototype._getHostElement = function () {\n return this._element.nativeElement;\n };\n /**\n * Emits the selection change event.\n * @param {?=} isUserInput\n * @return {?}\n */\n MatOption.prototype._emitSelectionChangeEvent = function (isUserInput) {\n if (isUserInput === void 0) { isUserInput = false; }\n this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));\n };\n /**\n * Counts the amount of option group labels that precede the specified option.\n * @param {?} optionIndex Index of the option at which to start counting.\n * @param {?} options Flat list of all of the options.\n * @param {?} optionGroups Flat list of all of the option groups.\n * @return {?}\n */\n MatOption.countGroupLabelsBeforeOption = function (optionIndex, options, optionGroups) {\n if (optionGroups.length) {\n var /** @type {?} */ optionsArray = options.toArray();\n var /** @type {?} */ groups = optionGroups.toArray();\n var /** @type {?} */ groupCounter = 0;\n for (var /** @type {?} */ i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n return groupCounter;\n }\n return 0;\n };\n MatOption.decorators = [\n { type: Component, args: [{selector: 'mat-option',\n exportAs: 'matOption',\n host: {\n 'role': 'option',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-selected]': 'selected',\n '[class.mat-option-multiple]': 'multiple',\n '[class.mat-active]': 'active',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class.mat-option-disabled]': 'disabled',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-option',\n },\n template: \"
\",\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatOption.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n { type: MatOptgroup, decorators: [{ type: Optional },] },\n ]; };\n MatOption.propDecorators = {\n 'value': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'onSelectionChange': [{ type: Output },],\n };\n return MatOption;\n}());\nexport { MatOption };\nfunction MatOption_tsickle_Closure_declarations() {\n /** @type {?} */\n MatOption.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatOption.ctorParameters;\n /** @type {?} */\n MatOption.propDecorators;\n /** @type {?} */\n MatOption.prototype._selected;\n /** @type {?} */\n MatOption.prototype._active;\n /** @type {?} */\n MatOption.prototype._multiple;\n /** @type {?} */\n MatOption.prototype._disableRipple;\n /**\n * Whether the option is disabled.\n * @type {?}\n */\n MatOption.prototype._disabled;\n /** @type {?} */\n MatOption.prototype._id;\n /**\n * The form value of the option.\n * @type {?}\n */\n MatOption.prototype.value;\n /**\n * Event emitted when the option is selected or deselected.\n * @type {?}\n */\n MatOption.prototype.onSelectionChange;\n /** @type {?} */\n MatOption.prototype._element;\n /** @type {?} */\n MatOption.prototype._changeDetectorRef;\n /** @type {?} */\n MatOption.prototype.group;\n}\n//# sourceMappingURL=option.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 { MatRippleModule } from '../ripple/index';\nimport { MatPseudoCheckboxModule } from '../selection/index';\nimport { MatOption } from './option';\nimport { MatOptgroup } from './optgroup';\nvar MatOptionModule = (function () {\n function MatOptionModule() {\n }\n MatOptionModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatRippleModule, CommonModule, MatPseudoCheckboxModule],\n exports: [MatOption, MatOptgroup],\n declarations: [MatOption, MatOptgroup]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatOptionModule.ctorParameters = function () { return []; };\n return MatOptionModule;\n}());\nexport { MatOptionModule };\nfunction MatOptionModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatOptionModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatOptionModule.ctorParameters;\n}\nexport { MatOptionSelectionChange, MatOption } from './option';\nexport { MatOptgroupBase, _MatOptgroupMixinBase, MatOptgroup } from './optgroup';\n//# sourceMappingURL=index.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';\n/**\n * InjectionToken that can be used to specify the global placeholder options.\n */\nexport var MAT_PLACEHOLDER_GLOBAL_OPTIONS = new InjectionToken('mat-placeholder-global-options');\n//# sourceMappingURL=placeholder-options.js.map","/**\n * Applies a CSS transform to an element, including browser-prefixed properties.\n * @param {?} element\n * @param {?} transformValue\n * @return {?}\n */\nexport function applyCssTransform(element, transformValue) {\n // It's important to trim the result, because the browser will ignore the set operation\n // if the string contains only whitespace.\n var /** @type {?} */ value = transformValue.trim();\n element.style.transform = value;\n element.style.webkitTransform = value;\n}\n//# sourceMappingURL=apply-transform.js.map","/**\n * When constructing a Date, the month is zero-based. This can be confusing, since people are\n * used to seeing them one-based. So we create these aliases to make writing the tests easier.\n */\nexport var JAN = 0, FEB = 1, MAR = 2, APR = 3, MAY = 4, JUN = 5, JUL = 6, AUG = 7, SEP = 8, OCT = 9, NOV = 10, DEC = 11;\n//# sourceMappingURL=month-constants.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { AnimationCurves, AnimationDurations, MatCommonModule, MATERIAL_SANITY_CHECKS, mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MATERIAL_COMPATIBILITY_MODE, MAT_ELEMENTS_SELECTOR, MD_ELEMENTS_SELECTOR, MatPrefixRejector, MdPrefixRejector, CompatibilityModule, NoConflictStyleCompatibilityMode, NativeDateModule, MatNativeDateModule, MAT_DATE_LOCALE, MAT_DATE_LOCALE_PROVIDER, DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter, MAT_NATIVE_DATE_FORMATS, ShowOnDirtyErrorStateMatcher, ErrorStateMatcher, GestureConfig, MatLine, MatLineSetter, MatLineModule, MatOptionModule, MatOptionSelectionChange, MatOption, MatOptgroupBase, _MatOptgroupMixinBase, MatOptgroup, MAT_PLACEHOLDER_GLOBAL_OPTIONS, MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS, RippleRef, RippleState, RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION, MatRippleModule, MatPseudoCheckboxModule, MatPseudoCheckbox, applyCssTransform, extendObject, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC } from './public-api';\nexport { RippleRenderer as ɵa0 } from './ripple/ripple-renderer';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}