{"version":3,"file":"core.js","sources":["../../packages/material/core/animation/animation.js","../../packages/material/core/compatibility/compatibility.js","../../packages/material/core/common-behaviors/common-module.js","../../packages/material/core/common-behaviors/disabled.js","../../packages/material/core/common-behaviors/color.js","../../packages/material/core/common-behaviors/disable-ripple.js","../../packages/material/core/common-behaviors/tabindex.js","../../packages/material/core/datetime/date-adapter.js","../../packages/material/core/util/object-extend.js","../../packages/material/core/datetime/native-date-adapter.js","../../packages/material/core/datetime/date-formats.js","../../packages/material/core/datetime/native-date-formats.js","../../packages/material/core/datetime/index.js","../../packages/material/core/error/error-options.js","../../packages/material/core/gestures/gesture-config.js","../../packages/material/core/line/line.js","../../packages/material/core/ripple/ripple-ref.js","../../packages/material/core/ripple/ripple-renderer.js","../../packages/material/core/ripple/ripple.js","../../packages/material/core/ripple/index.js","../../packages/material/core/selection/pseudo-checkbox/pseudo-checkbox.js","../../packages/material/core/selection/index.js","../../packages/material/core/option/optgroup.js","../../packages/material/core/option/option.js","../../packages/material/core/option/index.js","../../packages/material/core/placeholder/placeholder-options.js","../../packages/material/core/style/apply-transform.js","../../packages/material/core/testing/month-constants.js","../../packages/material/core/index.js"],"sourcesContent":["/**\n * \\@docs-private\n */\nexport class AnimationCurves {\n}\nAnimationCurves.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\nAnimationCurves.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\nAnimationCurves.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\nAnimationCurves.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\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 */\nexport class AnimationDurations {\n}\nAnimationDurations.COMPLEX = '375ms';\nAnimationDurations.ENTERING = '225ms';\nAnimationDurations.EXITING = '195ms';\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 const /** @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 const 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 const 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 */\nexport class MatPrefixRejector {\n}\nMatPrefixRejector.decorators = [\n { type: Directive, args: [{ selector: MAT_ELEMENTS_SELECTOR },] },\n];\n/**\n * @nocollapse\n */\nMatPrefixRejector.ctorParameters = () => [];\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 */\nexport class MdPrefixRejector {\n}\nMdPrefixRejector.decorators = [\n { type: Directive, args: [{ selector: MD_ELEMENTS_SELECTOR },] },\n];\n/**\n * @nocollapse\n */\nMdPrefixRejector.ctorParameters = () => [];\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 */\nexport class CompatibilityModule {\n}\nCompatibilityModule.decorators = [\n { type: NgModule, args: [{\n declarations: [MatPrefixRejector, MdPrefixRejector],\n exports: [MatPrefixRejector, MdPrefixRejector],\n },] },\n];\n/**\n * @nocollapse\n */\nCompatibilityModule.ctorParameters = () => [];\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 */\nexport class NoConflictStyleCompatibilityMode {\n}\nNoConflictStyleCompatibilityMode.decorators = [\n { type: NgModule },\n];\n/**\n * @nocollapse\n */\nNoConflictStyleCompatibilityMode.ctorParameters = () => [];\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 const 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 */\nexport class MatCommonModule {\n /**\n * @param {?} sanityChecksEnabled\n */\n constructor(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 _checkDoctype() {\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 _checkTheme() {\n if (this._document && typeof getComputedStyle === 'function') {\n const /** @type {?} */ testElement = this._document.createElement('div');\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n const /** @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}\nMatCommonModule.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 */\nMatCommonModule.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS,] },] },\n];\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 { 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 class extends base {\n /**\n * @param {...?} args\n */\n constructor(...args) {\n super(...args);\n this._disabled = false;\n }\n /**\n * @return {?}\n */\n get disabled() { return this._disabled; }\n /**\n * @param {?} value\n * @return {?}\n */\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n };\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 */\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 class extends base {\n /**\n * @return {?}\n */\n get color() { return this._color; }\n /**\n * @param {?} value\n * @return {?}\n */\n set color(value) {\n const /** @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 /**\n * @param {...?} args\n */\n constructor(...args) {\n super(...args);\n // Set the default color that can be specified from the mixin.\n this.color = defaultColor;\n }\n };\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 { 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 class extends base {\n /**\n * @param {...?} args\n */\n constructor(...args) {\n super(...args);\n this._disableRipple = false;\n }\n /**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\n get disableRipple() { return this._disableRipple; }\n /**\n * @param {?} value\n * @return {?}\n */\n set disableRipple(value) { this._disableRipple = coerceBooleanProperty(value); }\n };\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 */\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 = 0) {\n return class extends base {\n /**\n * @param {...?} args\n */\n constructor(...args) {\n super(...args);\n this._tabIndex = defaultTabIndex;\n }\n /**\n * @return {?}\n */\n get tabIndex() { return this.disabled ? -1 : this._tabIndex; }\n /**\n * @param {?} value\n * @return {?}\n */\n set tabIndex(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 };\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 const MAT_DATE_LOCALE = new InjectionToken('MAT_DATE_LOCALE');\n/**\n * Provider for MAT_DATE_LOCALE injection token.\n */\nexport const 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 */\nexport class DateAdapter {\n constructor() {\n this._localeChanges = new Subject();\n }\n /**\n * A stream that emits when the locale changes.\n * @return {?}\n */\n get localeChanges() { return this._localeChanges; }\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 getYear(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 getMonth(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 getDate(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 getDayOfWeek(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 getMonthNames(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 getDateNames() { }\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 getDayOfWeekNames(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 getYearName(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 getFirstDayOfWeek() { }\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 getNumDaysInMonth(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 clone(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 createDate(year, month, date) { }\n /**\n * Gets today's date.\n * @abstract\n * @return {?} Today's date.\n */\n today() { }\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 parse(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 format(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 addCalendarYears(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 addCalendarMonths(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 addCalendarDays(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 toIso8601(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 fromIso8601(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 isDateInstance(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 isValid(date) { }\n /**\n * Sets the locale used for all dates.\n * @param {?} locale The new locale.\n * @return {?}\n */\n setLocale(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 compareDate(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 sameDate(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 clampDate(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}\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, ...sources) {\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n for (let /** @type {?} */ source of sources) {\n if (source != null) {\n for (let /** @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 { 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 */\nconst SUPPORTS_INTL_API = typeof Intl != 'undefined';\n/**\n * The default month names to use if Intl API is not available.\n */\nconst 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 */\nconst DEFAULT_DATE_NAMES = range(31, i => String(i + 1));\n/**\n * The default day of the week names to use if Intl API is not available.\n */\nconst 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 */\nconst 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 const /** @type {?} */ valuesArray = Array(length);\n for (let /** @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 */\nexport class NativeDateAdapter extends DateAdapter {\n /**\n * @param {?} matDateLocale\n */\n constructor(matDateLocale) {\n super();\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.setLocale(matDateLocale);\n }\n /**\n * @param {?} date\n * @return {?}\n */\n getYear(date) {\n return date.getFullYear();\n }\n /**\n * @param {?} date\n * @return {?}\n */\n getMonth(date) {\n return date.getMonth();\n }\n /**\n * @param {?} date\n * @return {?}\n */\n getDate(date) {\n return date.getDate();\n }\n /**\n * @param {?} date\n * @return {?}\n */\n getDayOfWeek(date) {\n return date.getDay();\n }\n /**\n * @param {?} style\n * @return {?}\n */\n getMonthNames(style) {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { month: style });\n return range(12, i => this._stripDirectionalityCharacters(dtf.format(new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n /**\n * @return {?}\n */\n getDateNames() {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });\n return range(31, i => this._stripDirectionalityCharacters(dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n /**\n * @param {?} style\n * @return {?}\n */\n getDayOfWeekNames(style) {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { weekday: style });\n return range(7, i => this._stripDirectionalityCharacters(dtf.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 getYearName(date) {\n if (SUPPORTS_INTL_API) {\n let /** @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 getFirstDayOfWeek() {\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 getNumDaysInMonth(date) {\n return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));\n }\n /**\n * @param {?} date\n * @return {?}\n */\n clone(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 createDate(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 let /** @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 today() {\n return new Date();\n }\n /**\n * @param {?} value\n * @return {?}\n */\n parse(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 format(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 let /** @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 addCalendarYears(date, years) {\n return this.addCalendarMonths(date, years * 12);\n }\n /**\n * @param {?} date\n * @param {?} months\n * @return {?}\n */\n addCalendarMonths(date, months) {\n let /** @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 addCalendarDays(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 toIso8601(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 fromIso8601(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 let /** @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 isDateInstance(obj) {\n return obj instanceof Date;\n }\n /**\n * @param {?} date\n * @return {?}\n */\n isValid(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 _createDateWithOverflow(year, month, date) {\n let /** @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 _2digit(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 _stripDirectionalityCharacters(str) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n}\nNativeDateAdapter.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nNativeDateAdapter.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] },] },\n];\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 const /** @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 const /** @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';\nexport class NativeDateModule {\n}\nNativeDateModule.decorators = [\n { type: NgModule, args: [{\n providers: [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n MAT_DATE_LOCALE_PROVIDER\n ],\n },] },\n];\n/**\n * @nocollapse\n */\nNativeDateModule.ctorParameters = () => [];\nfunction NativeDateModule_tsickle_Closure_declarations() {\n /** @type {?} */\n NativeDateModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n NativeDateModule.ctorParameters;\n}\nexport class MatNativeDateModule {\n}\nMatNativeDateModule.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 */\nMatNativeDateModule.ctorParameters = () => [];\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 */\nexport class ShowOnDirtyErrorStateMatcher {\n /**\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n isErrorState(control, form) {\n return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n }\n}\nShowOnDirtyErrorStateMatcher.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nShowOnDirtyErrorStateMatcher.ctorParameters = () => [];\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 */\nexport class ErrorStateMatcher {\n /**\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n isErrorState(control, form) {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\nErrorStateMatcher.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nErrorStateMatcher.ctorParameters = () => [];\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 { Injectable, isDevMode } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\nexport class GestureConfig extends HammerGestureConfig {\n constructor() {\n super();\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 }\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 buildHammer(element) {\n const /** @type {?} */ mc = new this._hammer(element);\n // Default Hammer Recognizers.\n let /** @type {?} */ pan = new this._hammer.Pan();\n let /** @type {?} */ swipe = new this._hammer.Swipe();\n let /** @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 let /** @type {?} */ slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);\n let /** @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 _createRecognizer(base, options, ...inheritances) {\n let /** @type {?} */ recognizer = new ((base.constructor))(options);\n inheritances.push(base);\n inheritances.forEach(item => recognizer.recognizeWith(item));\n return recognizer;\n }\n}\nGestureConfig.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nGestureConfig.ctorParameters = () => [];\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 */\nexport class MatLine {\n}\nMatLine.decorators = [\n { type: Directive, args: [{\n selector: '[mat-line], [matLine]',\n host: { 'class': 'mat-line' }\n },] },\n];\n/**\n * @nocollapse\n */\nMatLine.ctorParameters = () => [];\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 */\nexport class MatLineSetter {\n /**\n * @param {?} _lines\n * @param {?} _renderer\n * @param {?} _element\n */\n constructor(_lines, _renderer, _element) {\n this._lines = _lines;\n this._renderer = _renderer;\n this._element = _element;\n this._setLineClass(this._lines.length);\n this._lines.changes.subscribe(() => {\n this._setLineClass(this._lines.length);\n });\n }\n /**\n * @param {?} count\n * @return {?}\n */\n _setLineClass(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 _resetClasses() {\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 _setClass(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}\nfunction MatLineSetter_tsickle_Closure_declarations() {\n /** @type {?} */\n MatLineSetter.prototype._lines;\n /** @type {?} */\n MatLineSetter.prototype._renderer;\n /** @type {?} */\n MatLineSetter.prototype._element;\n}\nexport class MatLineModule {\n}\nMatLineModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule],\n exports: [MatLine, MatCommonModule],\n declarations: [MatLine],\n },] },\n];\n/**\n * @nocollapse\n */\nMatLineModule.ctorParameters = () => [];\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 let 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 */\nexport class RippleRef {\n /**\n * @param {?} _renderer\n * @param {?} element\n * @param {?} config\n */\n constructor(_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 fadeOut() {\n this._renderer.fadeOutRipple(this);\n }\n}\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 const 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 const 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 */\nexport class RippleRenderer {\n /**\n * @param {?} elementRef\n * @param {?} _ngZone\n * @param {?} platform\n */\n constructor(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 fadeInRipple(x, y, config = {}) {\n const /** @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 const /** @type {?} */ radius = config.radius || distanceToFurthestCorner(x, y, containerRect);\n const /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\n const /** @type {?} */ offsetX = x - containerRect.left;\n const /** @type {?} */ offsetY = y - containerRect.top;\n const /** @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 let /** @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(() => {\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 fadeOutRipple(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 let /** @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(() => {\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 fadeOutAll() {\n this._activeRipples.forEach(ripple => ripple.fadeOut());\n }\n /**\n * Sets the trigger element and registers the mouse events.\n * @param {?} element\n * @return {?}\n */\n setTriggerElement(element) {\n // Remove all previously register event listeners from the trigger element.\n if (this._triggerElement) {\n this._triggerEvents.forEach((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(() => {\n this._triggerEvents.forEach((fn, type) => 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 onMousedown(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 onPointerUp() {\n this._isPointerDown = false;\n // Fade-out all ripples that are completely visible and not persistent.\n this._activeRipples.forEach(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 onPointerLeave() {\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 onTouchstart(event) {\n if (!this.rippleDisabled) {\n const { clientX, clientY } = event.touches[0];\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 runTimeoutOutsideZone(fn, delay = 0) {\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n }\n}\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 const /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n const /** @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 const MAT_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('mat-ripple-global-options');\nexport class MatRipple {\n /**\n * @param {?} elementRef\n * @param {?} ngZone\n * @param {?} platform\n * @param {?} globalOptions\n */\n constructor(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 ngOnChanges(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 ngOnDestroy() {\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 launch(x, y, 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 fadeOutAll() {\n this._rippleRenderer.fadeOutAll();\n }\n /**\n * Ripple configuration from the directive's input values.\n * @return {?}\n */\n get rippleConfig() {\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 /**\n * Updates the ripple renderer with the latest ripple configuration.\n * @return {?}\n */\n _updateRippleRenderer() {\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\n this._rippleRenderer.rippleConfig = this.rippleConfig;\n }\n}\nMatRipple.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 */\nMatRipple.ctorParameters = () => [\n { type: ElementRef, },\n { type: NgZone, },\n { type: Platform, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] },] },\n];\nMatRipple.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};\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';\nexport class MatRippleModule {\n}\nMatRippleModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, PlatformModule],\n exports: [MatRipple, MatCommonModule],\n declarations: [MatRipple],\n },] },\n];\n/**\n * @nocollapse\n */\nMatRippleModule.ctorParameters = () => [];\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 */\nexport class MatPseudoCheckbox {\n constructor() {\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}\nMatPseudoCheckbox.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 */\nMatPseudoCheckbox.ctorParameters = () => [];\nMatPseudoCheckbox.propDecorators = {\n 'state': [{ type: Input },],\n 'disabled': [{ type: Input },],\n};\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';\nexport class MatPseudoCheckboxModule {\n}\nMatPseudoCheckboxModule.decorators = [\n { type: NgModule, args: [{\n exports: [MatPseudoCheckbox],\n declarations: [MatPseudoCheckbox]\n },] },\n];\n/**\n * @nocollapse\n */\nMatPseudoCheckboxModule.ctorParameters = () => [];\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 { Component, ViewEncapsulation, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { mixinDisabled } from '../common-behaviors/disabled';\n/**\n * \\@docs-private\n */\nexport class MatOptgroupBase {\n}\nexport const /** @type {?} */ _MatOptgroupMixinBase = mixinDisabled(MatOptgroupBase);\n// Counter for unique group ids.\nlet /** @type {?} */ _uniqueOptgroupIdCounter = 0;\n/**\n * Component that is used to group instances of `mat-option`.\n */\nexport class MatOptgroup extends _MatOptgroupMixinBase {\n constructor() {\n super(...arguments);\n /**\n * Unique id for the underlying label.\n */\n this._labelId = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;\n }\n}\nMatOptgroup.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 */\nMatOptgroup.ctorParameters = () => [];\nMatOptgroup.propDecorators = {\n 'label': [{ type: Input },],\n};\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 */\nlet _uniqueIdCounter = 0;\n/**\n * Event object emitted by MatOption when selected or deselected.\n */\nexport class MatOptionSelectionChange {\n /**\n * @param {?} source\n * @param {?=} isUserInput\n */\n constructor(source, isUserInput = false) {\n this.source = source;\n this.isUserInput = isUserInput;\n }\n}\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 */\nexport class MatOption {\n /**\n * @param {?} _element\n * @param {?} _changeDetectorRef\n * @param {?} group\n */\n constructor(_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 /**\n * Whether the wrapping component is in multiple selection mode.\n * @return {?}\n */\n get multiple() { return this._multiple; }\n /**\n * @param {?} value\n * @return {?}\n */\n set multiple(value) {\n if (value !== this._multiple) {\n this._multiple = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * The unique ID of the option.\n * @return {?}\n */\n get id() { return this._id; }\n /**\n * Whether or not the option is currently selected.\n * @return {?}\n */\n get selected() { return this._selected; }\n /**\n * Whether the option is disabled.\n * @return {?}\n */\n get disabled() { return (this.group && this.group.disabled) || this._disabled; }\n /**\n * @param {?} value\n * @return {?}\n */\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n /**\n * Whether ripples for the option are disabled.\n * @return {?}\n */\n get disableRipple() { return this._disableRipple; }\n /**\n * @param {?} value\n * @return {?}\n */\n set disableRipple(value) {\n this._disableRipple = value;\n this._changeDetectorRef.markForCheck();\n }\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 active() {\n return this._active;\n }\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 viewValue() {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n }\n /**\n * Selects the option.\n * @return {?}\n */\n select() {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n /**\n * Deselects the option.\n * @return {?}\n */\n deselect() {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n /**\n * Sets focus onto this option.\n * @return {?}\n */\n focus() {\n const /** @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 setActiveStyles() {\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 setInactiveStyles() {\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 getLabel() {\n return this.viewValue;\n }\n /**\n * Ensures the option is selected when activated from the keyboard.\n * @param {?} event\n * @return {?}\n */\n _handleKeydown(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 _selectViaInteraction() {\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 _getTabIndex() {\n return this.disabled ? '-1' : '0';\n }\n /**\n * Gets the host DOM element.\n * @return {?}\n */\n _getHostElement() {\n return this._element.nativeElement;\n }\n /**\n * Emits the selection change event.\n * @param {?=} isUserInput\n * @return {?}\n */\n _emitSelectionChangeEvent(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 static countGroupLabelsBeforeOption(optionIndex, options, optionGroups) {\n if (optionGroups.length) {\n let /** @type {?} */ optionsArray = options.toArray();\n let /** @type {?} */ groups = optionGroups.toArray();\n let /** @type {?} */ groupCounter = 0;\n for (let /** @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}\nMatOption.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 */\nMatOption.ctorParameters = () => [\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n { type: MatOptgroup, decorators: [{ type: Optional },] },\n];\nMatOption.propDecorators = {\n 'value': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'onSelectionChange': [{ type: Output },],\n};\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';\nexport class MatOptionModule {\n}\nMatOptionModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatRippleModule, CommonModule, MatPseudoCheckboxModule],\n exports: [MatOption, MatOptgroup],\n declarations: [MatOption, MatOptgroup]\n },] },\n];\n/**\n * @nocollapse\n */\nMatOptionModule.ctorParameters = () => [];\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 const 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 let /** @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 const 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":[],"mappings":"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"}