mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 12:37:53 +00:00
1 line
264 KiB
JSON
1 line
264 KiB
JSON
{"ast":null,"code":"import { Version, InjectionToken, isDevMode, NgModule, Optional, Inject, inject, LOCALE_ID, Injectable, ɵɵdefineInjectable, Directive, ElementRef, NgZone, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, EventEmitter, ChangeDetectorRef, Output } from '@angular/core';\nimport { HighContrastModeDetector, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader } from '@angular/cdk/a11y';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { VERSION as VERSION$2 } from '@angular/cdk';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { coerceBooleanProperty, coerceNumberProperty, coerceElement } from '@angular/cdk/coercion';\nimport { Subject, Observable } from 'rxjs';\nimport { Platform, PlatformModule, normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { startWith } from 'rxjs/operators';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Current version of Angular Material. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/a11y';\nimport * as ɵngcc2 from '@angular/cdk/platform';\nimport * as ɵngcc3 from '@angular/common';\nconst _c0 = [\"*\", [[\"mat-option\"], [\"ng-container\"]]];\nconst _c1 = [\"*\", \"mat-option, ng-container\"];\nfunction MatOption_mat_pseudo_checkbox_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"mat-pseudo-checkbox\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"state\", ctx_r0.selected ? \"checked\" : \"unchecked\")(\"disabled\", ctx_r0.disabled);\n }\n}\nfunction MatOption_span_3_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", ctx_r1.group.label, \")\");\n }\n}\nconst _c2 = [\"*\"];\nconst VERSION = new Version('11.2.13');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nclass AnimationCurves {}\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)';\n/** @docs-private */\nclass AnimationDurations {}\nAnimationDurations.COMPLEX = '375ms';\nAnimationDurations.ENTERING = '225ms';\nAnimationDurations.EXITING = '195ms';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Private version constant to circumvent test/build issues,\n// i.e. avoid core to depend on the @angular/material primary entry-point\n// Can be removed once the Material primary entry-point no longer\n// re-exports all secondary entry-points\nconst VERSION$1 = new Version('11.2.13');\n/** @docs-private */\nfunction MATERIAL_SANITY_CHECKS_FACTORY() {\n return true;\n}\n/** Injection token that configures whether the Material sanity checks are enabled. */\nconst MATERIAL_SANITY_CHECKS = new InjectionToken('mat-sanity-checks', {\n providedIn: 'root',\n factory: MATERIAL_SANITY_CHECKS_FACTORY\n});\n/**\n * Module that captures anything that should be loaded and/or run for *all* Angular Material\n * components. This includes Bidi, etc.\n *\n * This module should be imported to each top-level component module (e.g., MatTabsModule).\n */\nclass MatCommonModule {\n constructor(highContrastModeDetector, sanityChecks, document) {\n /** Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype). */\n this._hasDoneGlobalChecks = false;\n this._document = document;\n // While A11yModule also does this, we repeat it here to avoid importing A11yModule\n // in MatCommonModule.\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n // Note that `_sanityChecks` is typed to `any`, because AoT\n // throws an error if we use the `SanityChecks` type directly.\n this._sanityChecks = sanityChecks;\n if (!this._hasDoneGlobalChecks) {\n this._checkDoctypeIsDefined();\n this._checkThemeIsPresent();\n this._checkCdkVersionMatch();\n this._hasDoneGlobalChecks = true;\n }\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const win = this._document.defaultView || window;\n return typeof win === 'object' && win ? win : null;\n }\n /** Whether any sanity checks are enabled. */\n _checksAreEnabled() {\n // TODO(crisbeto): we can't use `ngDevMode` here yet, because ViewEngine apps might not support\n // it. Since these checks can have performance implications and they aren't tree shakeable\n // in their current form, we can leave the `isDevMode` check in for now.\n // tslint:disable-next-line:ban\n return isDevMode() && !this._isTestEnv();\n }\n /** Whether the code is running in tests. */\n _isTestEnv() {\n const window = this._getWindow();\n return window && (window.__karma__ || window.jasmine);\n }\n _checkDoctypeIsDefined() {\n const isEnabled = this._checksAreEnabled() && (this._sanityChecks === true || this._sanityChecks.doctype);\n if (isEnabled && !this._document.doctype) {\n console.warn('Current document does not have a doctype. This may cause ' + 'some Angular Material components not to behave as expected.');\n }\n }\n _checkThemeIsPresent() {\n // We need to assert that the `body` is defined, because these checks run very early\n // and the `body` won't be defined if the consumer put their scripts in the `head`.\n const isDisabled = !this._checksAreEnabled() || this._sanityChecks === false || !this._sanityChecks.theme;\n if (isDisabled || !this._document.body || typeof getComputedStyle !== 'function') {\n return;\n }\n const testElement = this._document.createElement('div');\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n const 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 ' + 'components may not work as expected. For more info refer ' + 'to the theming guide: https://material.angular.io/guide/theming');\n }\n this._document.body.removeChild(testElement);\n }\n /** Checks whether the material version matches the cdk version */\n _checkCdkVersionMatch() {\n const isEnabled = this._checksAreEnabled() && (this._sanityChecks === true || this._sanityChecks.version);\n if (isEnabled && VERSION$1.full !== VERSION$2.full) {\n console.warn('The Angular Material version (' + VERSION$1.full + ') does not match ' + 'the Angular CDK version (' + VERSION$2.full + ').\\n' + 'Please ensure the versions of these two packages exactly match.');\n }\n }\n}\nMatCommonModule.ɵfac = function MatCommonModule_Factory(t) {\n return new (t || MatCommonModule)(ɵngcc0.ɵɵinject(ɵngcc1.HighContrastModeDetector), ɵngcc0.ɵɵinject(MATERIAL_SANITY_CHECKS, 8), ɵngcc0.ɵɵinject(DOCUMENT));\n};\nMatCommonModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatCommonModule\n});\nMatCommonModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [BidiModule, BidiModule]\n});\nMatCommonModule.ctorParameters = () => [{\n type: HighContrastModeDetector\n}, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MATERIAL_SANITY_CHECKS]\n }]\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatCommonModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule],\n exports: [BidiModule]\n }]\n }], function () {\n return [{\n type: ɵngcc1.HighContrastModeDetector\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MATERIAL_SANITY_CHECKS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatCommonModule, {\n imports: function () {\n return [BidiModule];\n },\n exports: function () {\n return [BidiModule];\n }\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `disabled` property. */\nfunction mixinDisabled(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n this._disabled = false;\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `color` property. */\nfunction mixinColor(base, defaultColor) {\n return class extends base {\n constructor(...args) {\n super(...args);\n this.defaultColor = defaultColor;\n // Set the default color that can be specified from the mixin.\n this.color = defaultColor;\n }\n get color() {\n return this._color;\n }\n set color(value) {\n const colorPalette = value || this.defaultColor;\n if (colorPalette !== this._color) {\n if (this._color) {\n this._elementRef.nativeElement.classList.remove(`mat-${this._color}`);\n }\n if (colorPalette) {\n this._elementRef.nativeElement.classList.add(`mat-${colorPalette}`);\n }\n this._color = colorPalette;\n }\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `disableRipple` property. */\nfunction mixinDisableRipple(base) {\n class Mixin extends base {\n constructor(...args) {\n super(...args);\n this._disableRipple = false;\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = coerceBooleanProperty(value);\n }\n }\n // Since we don't directly extend from `base` with it's original types, and we instruct\n // TypeScript that `T` actually is instantiatable through `new`, the types don't overlap.\n // This is a limitation in TS as abstract classes cannot be typed properly dynamically.\n return Mixin;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `tabIndex` property. */\nfunction mixinTabIndex(base, defaultTabIndex = 0) {\n // Note: We cast `base` to `unknown` and then `Constructor`. It could be an abstract class,\n // but given we `extend` it from another class, we can assume a constructor being accessible.\n class Mixin extends base {\n constructor(...args) {\n super(...args);\n this._tabIndex = defaultTabIndex;\n this.defaultTabIndex = defaultTabIndex;\n }\n get tabIndex() {\n return this.disabled ? -1 : this._tabIndex;\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 ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n }\n // Since we don't directly extend from `base` with it's original types, and we instruct\n // TypeScript that `T` actually is instantiatable through `new`, the types don't overlap.\n // This is a limitation in TS as abstract classes cannot be typed properly dynamically.\n return Mixin;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nfunction mixinErrorState(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n /** Whether the component is in an error state. */\n this.errorState = false;\n /**\n * Stream that emits whenever the state of the input changes such that the wrapping\n * `MatFormField` needs to run change detection.\n */\n this.stateChanges = new Subject();\n }\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;\n const control = this.ngControl ? this.ngControl.control : null;\n const newState = matcher.isErrorState(control, parent);\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. */\nfunction mixinInitialized(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n /** Whether this directive has been marked as initialized. */\n this._isInitialized = false;\n /**\n * List of subscribers that subscribed before the directive was initialized. Should be notified\n * during _markInitialized. Set to null after pending subscribers are notified, and should\n * not expect to be populated after.\n */\n this._pendingSubscribers = [];\n /**\n * Observable stream that emits when the directive initializes. If already initialized, the\n * subscriber is stored to be notified once _markInitialized is called.\n */\n this.initialized = new Observable(subscriber => {\n // If initialized, immediately notify the subscriber. Otherwise store the subscriber to notify\n // when _markInitialized is called.\n if (this._isInitialized) {\n this._notifySubscriber(subscriber);\n } else {\n this._pendingSubscribers.push(subscriber);\n }\n });\n }\n /**\n * Marks the state as initialized and notifies pending subscribers. Should be called at the end\n * of ngOnInit.\n * @docs-private\n */\n _markInitialized() {\n if (this._isInitialized && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This directive has already been marked as initialized and ' + 'should not be called twice.');\n }\n this._isInitialized = true;\n this._pendingSubscribers.forEach(this._notifySubscriber);\n this._pendingSubscribers = null;\n }\n /** Emits and completes the subscriber stream (should only emit once). */\n _notifySubscriber(subscriber) {\n subscriber.next();\n subscriber.complete();\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** InjectionToken for datepicker that can be used to override default locale code. */\nconst MAT_DATE_LOCALE = new InjectionToken('MAT_DATE_LOCALE', {\n providedIn: 'root',\n factory: MAT_DATE_LOCALE_FACTORY\n});\n/** @docs-private */\nfunction MAT_DATE_LOCALE_FACTORY() {\n return inject(LOCALE_ID);\n}\n/** Adapts type `D` to be usable as a date by cdk-based components that work with dates. */\nclass DateAdapter {\n constructor() {\n this._localeChanges = new Subject();\n /** A stream that emits when the locale changes. */\n this.localeChanges = this._localeChanges;\n }\n /**\n * Given a potential date object, returns that same date object if it is\n * a valid date, or `null` if it's not a valid date.\n * @param obj The object to check.\n * @returns A date or `null`.\n */\n getValidDateOrNull(obj) {\n return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;\n }\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of its `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n deserialize(value) {\n if (value == null || this.isDateInstance(value) && this.isValid(value)) {\n return value;\n }\n return this.invalid();\n }\n /**\n * Sets the locale used for all dates.\n * @param locale The new locale.\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 * @returns 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) || this.getMonth(first) - this.getMonth(second) || 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 * @returns Whether the two dates are equal.\n * Null dates are considered equal to other null dates.\n */\n sameDate(first, second) {\n if (first && second) {\n let firstValid = this.isValid(first);\n let secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareDate(first, second);\n }\n return firstValid == secondValid;\n }\n return 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 * @returns `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}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst MAT_DATE_FORMATS = new InjectionToken('mat-date-formats');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO(mmalerba): Remove when we no longer support safari 9.\n/** Whether the browser supports the Intl API. */\nlet SUPPORTS_INTL_API;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n SUPPORTS_INTL_API = typeof Intl != 'undefined';\n} catch (_a) {\n SUPPORTS_INTL_API = false;\n}\n/** The default month names to use if Intl API is not available. */\nconst DEFAULT_MONTH_NAMES = {\n 'long': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\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};\nconst ɵ0 = i => String(i + 1);\n/** The default date names to use if Intl API is not available. */\nconst DEFAULT_DATE_NAMES = range(31, ɵ0);\n/** The default day of the week names to use if Intl API is not available. */\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/** Creates an array and fills it with values. */\nfunction range(length, valueFunction) {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n/** Adapts the native JS Date for use with cdk-based components that work with dates. */\nclass NativeDateAdapter extends DateAdapter {\n constructor(matDateLocale, platform) {\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 * TODO(mmalerba): drop this variable. It's not being used in the code right now. We're now\n * getting the string representation of a Date object from its utc representation. We're keeping\n * it here for sometime, just for precaution, in case we decide to revert some of these changes\n * though.\n */\n this.useUtcForDisplay = true;\n super.setLocale(matDateLocale);\n // IE does its own time zone correction, so we disable this on IE.\n this.useUtcForDisplay = !platform.TRIDENT;\n this._clampDate = platform.TRIDENT || platform.EDGE;\n }\n getYear(date) {\n return date.getFullYear();\n }\n getMonth(date) {\n return date.getMonth();\n }\n getDate(date) {\n return date.getDate();\n }\n getDayOfWeek(date) {\n return date.getDay();\n }\n getMonthNames(style) {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, {\n month: style,\n timeZone: 'utc'\n });\n return range(12, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n getDateNames() {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n timeZone: 'utc'\n });\n return range(31, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n getDayOfWeekNames(style) {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, {\n weekday: style,\n timeZone: 'utc'\n });\n return range(7, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n }\n getYearName(date) {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, {\n year: 'numeric',\n timeZone: 'utc'\n });\n return this._stripDirectionalityCharacters(this._format(dtf, date));\n }\n return String(this.getYear(date));\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 getNumDaysInMonth(date) {\n return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));\n }\n clone(date) {\n return new Date(date.getTime());\n }\n createDate(year, month, date) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\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 }\n let 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 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n return result;\n }\n today() {\n return new Date();\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 format(date, displayFormat) {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n if (SUPPORTS_INTL_API) {\n // On IE and Edge the i18n API will throw a hard error that can crash the entire app\n // if we attempt to format a date whose year is less than 1 or greater than 9999.\n if (this._clampDate && (date.getFullYear() < 1 || date.getFullYear() > 9999)) {\n date = this.clone(date);\n date.setFullYear(Math.max(1, Math.min(9999, date.getFullYear())));\n }\n displayFormat = Object.assign(Object.assign({}, displayFormat), {\n timeZone: 'utc'\n });\n const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(this._format(dtf, date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n }\n addCalendarYears(date, years) {\n return this.addCalendarMonths(date, years * 12);\n }\n addCalendarMonths(date, months) {\n let 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 addCalendarDays(date, days) {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n }\n toIso8601(date) {\n return [date.getUTCFullYear(), this._2digit(date.getUTCMonth() + 1), this._2digit(date.getUTCDate())].join('-');\n }\n /**\n * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n * invalid date for all other values.\n */\n deserialize(value) {\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\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(value)) {\n let date = new Date(value);\n if (this.isValid(date)) {\n return date;\n }\n }\n }\n return super.deserialize(value);\n }\n isDateInstance(obj) {\n return obj instanceof Date;\n }\n isValid(date) {\n return !isNaN(date.getTime());\n }\n invalid() {\n return new Date(NaN);\n }\n /** Creates a date but allows the month and date to overflow. */\n _createDateWithOverflow(year, month, date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setFullYear` and `setHours` instead.\n const d = new Date();\n d.setFullYear(year, month, date);\n d.setHours(0, 0, 0, 0);\n return d;\n }\n /**\n * Pads a number to make it two digits.\n * @param n The number to pad.\n * @returns 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 * @returns The stripped string.\n */\n _stripDirectionalityCharacters(str) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n /**\n * When converting Date object to string, javascript built-in functions may return wrong\n * results because it applies its internal DST rules. The DST rules around the world change\n * very frequently, and the current valid rule is not always valid in previous years though.\n * We work around this problem building a new Date object which has its internal UTC\n * representation with the local date and time.\n * @param dtf Intl.DateTimeFormat object, containg the desired string format. It must have\n * timeZone set to 'utc' to work fine.\n * @param date Date from which we want to get the string representation according to dtf\n * @returns A Date object with its UTC representation based on the passed in date info\n */\n _format(dtf, date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setUTCFullYear` and `setUTCHours` instead.\n const d = new Date();\n d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n d.setUTCHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return dtf.format(d);\n }\n}\nNativeDateAdapter.ɵfac = function NativeDateAdapter_Factory(t) {\n return new (t || NativeDateAdapter)(ɵngcc0.ɵɵinject(MAT_DATE_LOCALE, 8), ɵngcc0.ɵɵinject(ɵngcc2.Platform));\n};\nNativeDateAdapter.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NativeDateAdapter,\n factory: NativeDateAdapter.ɵfac\n});\nNativeDateAdapter.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DATE_LOCALE]\n }]\n}, {\n type: Platform\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NativeDateAdapter, [{\n type: Injectable\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DATE_LOCALE]\n }]\n }, {\n type: ɵngcc2.Platform\n }];\n }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst MAT_NATIVE_DATE_FORMATS = {\n parse: {\n dateInput: null\n },\n display: {\n dateInput: {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n },\n monthYearLabel: {\n year: 'numeric',\n month: 'short'\n },\n dateA11yLabel: {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n },\n monthYearA11yLabel: {\n year: 'numeric',\n month: 'long'\n }\n }\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass NativeDateModule {}\nNativeDateModule.ɵfac = function NativeDateModule_Factory(t) {\n return new (t || NativeDateModule)();\n};\nNativeDateModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NativeDateModule\n});\nNativeDateModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n providers: [{\n provide: DateAdapter,\n useClass: NativeDateAdapter\n }],\n imports: [PlatformModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NativeDateModule, [{\n type: NgModule,\n args: [{\n imports: [PlatformModule],\n providers: [{\n provide: DateAdapter,\n useClass: NativeDateAdapter\n }]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NativeDateModule, {\n imports: function () {\n return [PlatformModule];\n }\n });\n})();\nconst ɵ0$1 = MAT_NATIVE_DATE_FORMATS;\nclass MatNativeDateModule {}\nMatNativeDateModule.ɵfac = function MatNativeDateModule_Factory(t) {\n return new (t || MatNativeDateModule)();\n};\nMatNativeDateModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatNativeDateModule\n});\nMatNativeDateModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n providers: [{\n provide: MAT_DATE_FORMATS,\n useValue: ɵ0$1\n }],\n imports: [NativeDateModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatNativeDateModule, [{\n type: NgModule,\n args: [{\n imports: [NativeDateModule],\n providers: [{\n provide: MAT_DATE_FORMATS,\n useValue: ɵ0$1\n }]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatNativeDateModule, {\n imports: [NativeDateModule]\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Error state matcher that matches when a control is invalid and dirty. */\nclass ShowOnDirtyErrorStateMatcher {\n isErrorState(control, form) {\n return !!(control && control.invalid && (control.dirty || form && form.submitted));\n }\n}\nShowOnDirtyErrorStateMatcher.ɵfac = function ShowOnDirtyErrorStateMatcher_Factory(t) {\n return new (t || ShowOnDirtyErrorStateMatcher)();\n};\nShowOnDirtyErrorStateMatcher.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: ShowOnDirtyErrorStateMatcher,\n factory: ShowOnDirtyErrorStateMatcher.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ShowOnDirtyErrorStateMatcher, [{\n type: Injectable\n }], null, null);\n})();\n/** Provider that defines how form controls behave with regards to displaying error messages. */\nclass ErrorStateMatcher {\n isErrorState(control, form) {\n return !!(control && control.invalid && (control.touched || form && form.submitted));\n }\n}\nErrorStateMatcher.ɵfac = function ErrorStateMatcher_Factory(t) {\n return new (t || ErrorStateMatcher)();\n};\nErrorStateMatcher.ɵprov = ɵɵdefineInjectable({\n factory: function ErrorStateMatcher_Factory() {\n return new ErrorStateMatcher();\n },\n token: ErrorStateMatcher,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ErrorStateMatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\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 */\nclass MatLine {}\nMatLine.ɵfac = function MatLine_Factory(t) {\n return new (t || MatLine)();\n};\nMatLine.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: MatLine,\n selectors: [[\"\", \"mat-line\", \"\"], [\"\", \"matLine\", \"\"]],\n hostAttrs: [1, \"mat-line\"]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatLine, [{\n type: Directive,\n args: [{\n selector: '[mat-line], [matLine]',\n host: {\n 'class': 'mat-line'\n }\n }]\n }], null, null);\n})();\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nfunction setLines(lines, element, prefix = 'mat') {\n // Note: doesn't need to unsubscribe, because `changes`\n // gets completed by Angular when the view is destroyed.\n lines.changes.pipe(startWith(lines)).subscribe(({\n length\n }) => {\n setClass(element, `${prefix}-2-line`, false);\n setClass(element, `${prefix}-3-line`, false);\n setClass(element, `${prefix}-multi-line`, false);\n if (length === 2 || length === 3) {\n setClass(element, `${prefix}-${length}-line`, true);\n } else if (length > 3) {\n setClass(element, `${prefix}-multi-line`, true);\n }\n });\n}\n/** Adds or removes a class from an element. */\nfunction setClass(element, className, isAdd) {\n const classList = element.nativeElement.classList;\n isAdd ? classList.add(className) : classList.remove(className);\n}\nclass MatLineModule {}\nMatLineModule.ɵfac = function MatLineModule_Factory(t) {\n return new (t || MatLineModule)();\n};\nMatLineModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatLineModule\n});\nMatLineModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatLineModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatLine, MatCommonModule],\n declarations: [MatLine]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatLineModule, {\n declarations: [MatLine],\n imports: [MatCommonModule],\n exports: [MatLine, MatCommonModule]\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Reference to a previously launched ripple element.\n */\nclass RippleRef {\n constructor(_renderer, /** Reference to the ripple HTML element. */\n element, /** Ripple configuration used for the ripple. */\n config) {\n this._renderer = _renderer;\n this.element = element;\n this.config = config;\n /** Current state of the ripple. */\n this.state = 3 /* HIDDEN */;\n }\n /** Fades out the ripple element. */\n fadeOut() {\n this._renderer.fadeOutRipple(this);\n }\n}\n\n/**\n * Default ripple animation configuration for ripples without an explicit\n * animation config specified.\n */\nconst defaultRippleAnimationConfig = {\n enterDuration: 450,\n exitDuration: 400\n};\n/**\n * Timeout for ignoring mouse events. Mouse events will be temporary ignored after touch\n * events to avoid synthetic mouse events.\n */\nconst ignoreMouseEventsTimeout = 800;\n/** Options that apply to all the event listeners that are bound by the ripple renderer. */\nconst passiveEventOptions = normalizePassiveListenerOptions({\n passive: true\n});\n/** Events that signal that the pointer is down. */\nconst pointerDownEvents = ['mousedown', 'touchstart'];\n/** Events that signal that the pointer is up. */\nconst pointerUpEvents = ['mouseup', 'mouseleave', 'touchend', 'touchcancel'];\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 */\nclass RippleRenderer {\n constructor(_target, _ngZone, elementOrElementRef, platform) {\n this._target = _target;\n this._ngZone = _ngZone;\n /** Whether the pointer is currently down or not. */\n this._isPointerDown = false;\n /** Set of currently active ripple references. */\n this._activeRipples = new Set();\n /** Whether pointer-up event listeners have been registered. */\n this._pointerUpEventsRegistered = false;\n // Only do anything if we're on the browser.\n if (platform.isBrowser) {\n this._containerElement = coerceElement(elementOrElementRef);\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 Coordinate within the element, along the Y axis at which to start the ripple.\n * @param config Extra ripple options.\n */\n fadeInRipple(x, y, config = {}) {\n const containerRect = this._containerRect = this._containerRect || this._containerElement.getBoundingClientRect();\n const animationConfig = Object.assign(Object.assign({}, defaultRippleAnimationConfig), config.animation);\n if (config.centered) {\n x = containerRect.left + containerRect.width / 2;\n y = containerRect.top + containerRect.height / 2;\n }\n const radius = config.radius || distanceToFurthestCorner(x, y, containerRect);\n const offsetX = x - containerRect.left;\n const offsetY = y - containerRect.top;\n const duration = animationConfig.enterDuration;\n const 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 a custom color has been specified, set it as inline style. If no color is\n // set, the default color will be applied through the ripple theme styles.\n if (config.color != null) {\n ripple.style.backgroundColor = config.color;\n }\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 const rippleRef = new RippleRef(this, ripple, config);\n rippleRef.state = 0 /* FADING_IN */;\n // Add the ripple reference to the list of all active ripples.\n this._activeRipples.add(rippleRef);\n if (!config.persistent) {\n this._mostRecentTransientRipple = rippleRef;\n }\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 const isMostRecentTransientRipple = rippleRef === this._mostRecentTransientRipple;\n rippleRef.state = 1 /* VISIBLE */;\n // When the timer runs out while the user has kept their pointer down, we want to\n // keep only the persistent ripples and the latest transient ripple. We do this,\n // because we don't want stacked transient ripples to appear after their enter\n // animation has finished.\n if (!config.persistent && (!isMostRecentTransientRipple || !this._isPointerDown)) {\n rippleRef.fadeOut();\n }\n }, duration);\n return rippleRef;\n }\n /** Fades out a ripple reference. */\n fadeOutRipple(rippleRef) {\n const wasActive = this._activeRipples.delete(rippleRef);\n if (rippleRef === this._mostRecentTransientRipple) {\n this._mostRecentTransientRipple = null;\n }\n // Clear out the cached bounding rect if we have no more ripples.\n if (!this._activeRipples.size) {\n this._containerRect = null;\n }\n // For ripples that are not active anymore, don't re-run the fade-out animation.\n if (!wasActive) {\n return;\n }\n const rippleEl = rippleRef.element;\n const animationConfig = Object.assign(Object.assign({}, defaultRippleAnimationConfig), rippleRef.config.animation);\n rippleEl.style.transitionDuration = `${animationConfig.exitDuration}ms`;\n rippleEl.style.opacity = '0';\n rippleRef.state = 2 /* FADING_OUT */;\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\n this._runTimeoutOutsideZone(() => {\n rippleRef.state = 3 /* HIDDEN */;\n rippleEl.parentNode.removeChild(rippleEl);\n }, animationConfig.exitDuration);\n }\n /** Fades out all currently active ripples. */\n fadeOutAll() {\n this._activeRipples.forEach(ripple => ripple.fadeOut());\n }\n /** Fades out all currently active non-persistent ripples. */\n fadeOutAllNonPersistent() {\n this._activeRipples.forEach(ripple => {\n if (!ripple.config.persistent) {\n ripple.fadeOut();\n }\n });\n }\n /** Sets up the trigger event listeners */\n setupTriggerEvents(elementOrElementRef) {\n const element = coerceElement(elementOrElementRef);\n if (!element || element === this._triggerElement) {\n return;\n }\n // Remove all previously registered event listeners from the trigger element.\n this._removeTriggerEvents();\n this._triggerElement = element;\n this._registerEvents(pointerDownEvents);\n }\n /**\n * Handles all registered events.\n * @docs-private\n */\n handleEvent(event) {\n if (event.type === 'mousedown') {\n this._onMousedown(event);\n } else if (event.type === 'touchstart') {\n this._onTouchStart(event);\n } else {\n this._onPointerUp();\n }\n // If pointer-up events haven't been registered yet, do so now.\n // We do this on-demand in order to reduce the total number of event listeners\n // registered by the ripples, which speeds up the rendering time for large UIs.\n if (!this._pointerUpEventsRegistered) {\n this._registerEvents(pointerUpEvents);\n this._pointerUpEventsRegistered = true;\n }\n }\n /** Function being called whenever the trigger is being pressed using mouse. */\n _onMousedown(event) {\n // Screen readers will fire fake mouse events for space/enter. Skip launching a\n // ripple in this case for consistency with the non-screen-reader experience.\n const isFakeMousedown = isFakeMousedownFromScreenReader(event);\n const isSyntheticEvent = this._lastTouchStartEvent && Date.now() < this._lastTouchStartEvent + ignoreMouseEventsTimeout;\n if (!this._target.rippleDisabled && !isFakeMousedown && !isSyntheticEvent) {\n this._isPointerDown = true;\n this.fadeInRipple(event.clientX, event.clientY, this._target.rippleConfig);\n }\n }\n /** Function being called whenever the trigger is being pressed using touch. */\n _onTouchStart(event) {\n if (!this._target.rippleDisabled && !isFakeTouchstartFromScreenReader(event)) {\n // Some browsers fire mouse events after a `touchstart` event. Those synthetic mouse\n // events will launch a second ripple if we don't ignore mouse events for a specific\n // time after a touchstart event.\n this._lastTouchStartEvent = Date.now();\n this._isPointerDown = true;\n // Use `changedTouches` so we skip any touches where the user put\n // their finger down, but used another finger to tap the element again.\n const touches = event.changedTouches;\n for (let i = 0; i < touches.length; i++) {\n this.fadeInRipple(touches[i].clientX, touches[i].clientY, this._target.rippleConfig);\n }\n }\n }\n /** Function being called whenever the trigger is being released. */\n _onPointerUp() {\n if (!this._isPointerDown) {\n return;\n }\n this._isPointerDown = false;\n // Fade-out all ripples that are visible and not persistent.\n this._activeRipples.forEach(ripple => {\n // By default, only ripples that are completely visible will fade out on pointer release.\n // If the `terminateOnPointerUp` option is set, ripples that still fade in will also fade out.\n const isVisible = ripple.state === 1 /* VISIBLE */ || ripple.config.terminateOnPointerUp && ripple.state === 0 /* FADING_IN */;\n if (!ripple.config.persistent && isVisible) {\n ripple.fadeOut();\n }\n });\n }\n /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */\n _runTimeoutOutsideZone(fn, delay = 0) {\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n }\n /** Registers event listeners for a given list of events. */\n _registerEvents(eventTypes) {\n this._ngZone.runOutsideAngular(() => {\n eventTypes.forEach(type => {\n this._triggerElement.addEventListener(type, this, passiveEventOptions);\n });\n });\n }\n /** Removes previously registered event listeners from the trigger element. */\n _removeTriggerEvents() {\n if (this._triggerElement) {\n pointerDownEvents.forEach(type => {\n this._triggerElement.removeEventListener(type, this, passiveEventOptions);\n });\n if (this._pointerUpEventsRegistered) {\n pointerUpEvents.forEach(type => {\n this._triggerElement.removeEventListener(type, this, passiveEventOptions);\n });\n }\n }\n }\n}\n/** Enforces a style recalculation of a DOM element by computing its styles. */\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 */\nfunction distanceToFurthestCorner(x, y, rect) {\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n return Math.sqrt(distX * distX + distY * distY);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Injection token that can be used to specify the global ripple options. */\nconst MAT_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('mat-ripple-global-options');\nclass MatRipple {\n constructor(_elementRef, ngZone, platform, globalOptions, _animationMode) {\n this._elementRef = _elementRef;\n this._animationMode = _animationMode;\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 this._disabled = false;\n /** Whether ripple directive is initialized and the input bindings are set. */\n this._isInitialized = false;\n this._globalOptions = globalOptions || {};\n this._rippleRenderer = new RippleRenderer(this, ngZone, _elementRef, platform);\n }\n /**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n if (value) {\n this.fadeOutAllNonPersistent();\n }\n this._disabled = value;\n this._setupTriggerEventsIfEnabled();\n }\n /**\n * The element that triggers the ripple when click events are received.\n * Defaults to the directive's host element.\n */\n get trigger() {\n return this._trigger || this._elementRef.nativeElement;\n }\n set trigger(trigger) {\n this._trigger = trigger;\n this._setupTriggerEventsIfEnabled();\n }\n ngOnInit() {\n this._isInitialized = true;\n this._setupTriggerEventsIfEnabled();\n }\n ngOnDestroy() {\n this._rippleRenderer._removeTriggerEvents();\n }\n /** Fades out all currently showing ripple elements. */\n fadeOutAll() {\n this._rippleRenderer.fadeOutAll();\n }\n /** Fades out all currently showing non-persistent ripple elements. */\n fadeOutAllNonPersistent() {\n this._rippleRenderer.fadeOutAllNonPersistent();\n }\n /**\n * Ripple configuration from the directive's input values.\n * @docs-private Implemented as part of RippleTarget\n */\n get rippleConfig() {\n return {\n centered: this.centered,\n radius: this.radius,\n color: this.color,\n animation: Object.assign(Object.assign(Object.assign({}, this._globalOptions.animation), this._animationMode === 'NoopAnimations' ? {\n enterDuration: 0,\n exitDuration: 0\n } : {}), this.animation),\n terminateOnPointerUp: this._globalOptions.terminateOnPointerUp\n };\n }\n /**\n * Whether ripples on pointer-down are disabled or not.\n * @docs-private Implemented as part of RippleTarget\n */\n get rippleDisabled() {\n return this.disabled || !!this._globalOptions.disabled;\n }\n /** Sets up the trigger event listeners if ripples are enabled. */\n _setupTriggerEventsIfEnabled() {\n if (!this.disabled && this._isInitialized) {\n this._rippleRenderer.setupTriggerEvents(this.trigger);\n }\n }\n /** Launches a manual ripple at the specified coordinated or just by the ripple config. */\n launch(configOrX, y = 0, config) {\n if (typeof configOrX === 'number') {\n return this._rippleRenderer.fadeInRipple(configOrX, y, Object.assign(Object.assign({}, this.rippleConfig), config));\n } else {\n return this._rippleRenderer.fadeInRipple(0, 0, Object.assign(Object.assign({}, this.rippleConfig), configOrX));\n }\n }\n}\nMatRipple.ɵfac = function MatRipple_Factory(t) {\n return new (t || MatRipple)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.Platform), ɵngcc0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\nMatRipple.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: MatRipple,\n selectors: [[\"\", \"mat-ripple\", \"\"], [\"\", \"matRipple\", \"\"]],\n hostAttrs: [1, \"mat-ripple\"],\n hostVars: 2,\n hostBindings: function MatRipple_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-ripple-unbounded\", ctx.unbounded);\n }\n },\n inputs: {\n radius: [\"matRippleRadius\", \"radius\"],\n disabled: [\"matRippleDisabled\", \"disabled\"],\n trigger: [\"matRippleTrigger\", \"trigger\"],\n color: [\"matRippleColor\", \"color\"],\n unbounded: [\"matRippleUnbounded\", \"unbounded\"],\n centered: [\"matRippleCentered\", \"centered\"],\n animation: [\"matRippleAnimation\", \"animation\"]\n },\n exportAs: [\"matRipple\"]\n});\nMatRipple.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: NgZone\n}, {\n type: Platform\n}, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n}, {\n type: String,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n}];\nMatRipple.propDecorators = {\n color: [{\n type: Input,\n args: ['matRippleColor']\n }],\n unbounded: [{\n type: Input,\n args: ['matRippleUnbounded']\n }],\n centered: [{\n type: Input,\n args: ['matRippleCentered']\n }],\n radius: [{\n type: Input,\n args: ['matRippleRadius']\n }],\n animation: [{\n type: Input,\n args: ['matRippleAnimation']\n }],\n disabled: [{\n type: Input,\n args: ['matRippleDisabled']\n }],\n trigger: [{\n type: Input,\n args: ['matRippleTrigger']\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatRipple, [{\n type: Directive,\n args: [{\n selector: '[mat-ripple], [matRipple]',\n exportAs: 'matRipple',\n host: {\n 'class': 'mat-ripple',\n '[class.mat-ripple-unbounded]': 'unbounded'\n }\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: ɵngcc2.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: String,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n radius: [{\n type: Input,\n args: ['matRippleRadius']\n }],\n disabled: [{\n type: Input,\n args: ['matRippleDisabled']\n }],\n trigger: [{\n type: Input,\n args: ['matRippleTrigger']\n }],\n color: [{\n type: Input,\n args: ['matRippleColor']\n }],\n unbounded: [{\n type: Input,\n args: ['matRippleUnbounded']\n }],\n centered: [{\n type: Input,\n args: ['matRippleCentered']\n }],\n animation: [{\n type: Input,\n args: ['matRippleAnimation']\n }]\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatRippleModule {}\nMatRippleModule.ɵfac = function MatRippleModule_Factory(t) {\n return new (t || MatRippleModule)();\n};\nMatRippleModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatRippleModule\n});\nMatRippleModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [MatCommonModule, PlatformModule, MatCommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatRippleModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, PlatformModule],\n exports: [MatRipple, MatCommonModule],\n declarations: [MatRipple]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatRippleModule, {\n declarations: function () {\n return [MatRipple];\n },\n imports: function () {\n return [MatCommonModule, PlatformModule];\n },\n exports: function () {\n return [MatRipple, MatCommonModule];\n }\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\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 `<mat-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\nclass MatPseudoCheckbox {\n constructor(_animationMode) {\n this._animationMode = _animationMode;\n /** Display state of the checkbox. */\n this.state = 'unchecked';\n /** Whether the checkbox is disabled. */\n this.disabled = false;\n }\n}\nMatPseudoCheckbox.ɵfac = function MatPseudoCheckbox_Factory(t) {\n return new (t || MatPseudoCheckbox)(ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\nMatPseudoCheckbox.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: MatPseudoCheckbox,\n selectors: [[\"mat-pseudo-checkbox\"]],\n hostAttrs: [1, \"mat-pseudo-checkbox\"],\n hostVars: 8,\n hostBindings: function MatPseudoCheckbox_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-pseudo-checkbox-indeterminate\", ctx.state === \"indeterminate\")(\"mat-pseudo-checkbox-checked\", ctx.state === \"checked\")(\"mat-pseudo-checkbox-disabled\", ctx.disabled)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n },\n inputs: {\n state: \"state\",\n disabled: \"disabled\"\n },\n decls: 0,\n vars: 0,\n template: function MatPseudoCheckbox_Template(rf, ctx) {},\n styles: [\".mat-pseudo-checkbox{width:16px;height:16px;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, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:\\\"\\\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n});\nMatPseudoCheckbox.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n}];\nMatPseudoCheckbox.propDecorators = {\n state: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatPseudoCheckbox, [{\n type: Component,\n args: [{\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'mat-pseudo-checkbox',\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 '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"'\n },\n styles: [\".mat-pseudo-checkbox{width:16px;height:16px;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, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:\\\"\\\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\\n\"]\n }]\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n state: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatPseudoCheckboxModule {}\nMatPseudoCheckboxModule.ɵfac = function MatPseudoCheckboxModule_Factory(t) {\n return new (t || MatPseudoCheckboxModule)();\n};\nMatPseudoCheckboxModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatPseudoCheckboxModule\n});\nMatPseudoCheckboxModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [MatCommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatPseudoCheckboxModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatPseudoCheckbox],\n declarations: [MatPseudoCheckbox]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatPseudoCheckboxModule, {\n declarations: [MatPseudoCheckbox],\n imports: [MatCommonModule],\n exports: [MatPseudoCheckbox]\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token used to provide the parent component to options.\n */\nconst MAT_OPTION_PARENT_COMPONENT = new InjectionToken('MAT_OPTION_PARENT_COMPONENT');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Notes on the accessibility pattern used for `mat-optgroup`.\n// The option group has two different \"modes\": regular and inert. The regular mode uses the\n// recommended a11y pattern which has `role=\"group\"` on the group element with `aria-labelledby`\n// pointing to the label. This works for `mat-select`, but it seems to hit a bug for autocomplete\n// under VoiceOver where the group doesn't get read out at all. The bug appears to be that if\n// there's __any__ a11y-related attribute on the group (e.g. `role` or `aria-labelledby`),\n// VoiceOver on Safari won't read it out.\n// We've introduced the `inert` mode as a workaround. Under this mode, all a11y attributes are\n// removed from the group, and we get the screen reader to read out the group label by mirroring it\n// inside an invisible element in the option. This is sub-optimal, because the screen reader will\n// repeat the group label on each navigation, whereas the default pattern only reads the group when\n// the user enters a new group. The following alternate approaches were considered:\n// 1. Reading out the group label using the `LiveAnnouncer` solves the problem, but we can't control\n// when the text will be read out so sometimes it comes in too late or never if the user\n// navigates quickly.\n// 2. `<mat-option aria-describedby=\"groupLabel\"` - This works on Safari, but VoiceOver in Chrome\n// won't read out the description at all.\n// 3. `<mat-option aria-labelledby=\"optionLabel groupLabel\"` - This works on Chrome, but Safari\n// doesn't read out the text at all. Furthermore, on\n// Boilerplate for applying mixins to MatOptgroup.\n/** @docs-private */\nclass MatOptgroupBase {}\nconst _MatOptgroupMixinBase = mixinDisabled(MatOptgroupBase);\n// Counter for unique group ids.\nlet _uniqueOptgroupIdCounter = 0;\nclass _MatOptgroupBase extends _MatOptgroupMixinBase {\n constructor(parent) {\n var _a;\n super();\n /** Unique id for the underlying label. */\n this._labelId = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;\n this._inert = (_a = parent === null || parent === void 0 ? void 0 : parent.inertGroups) !== null && _a !== void 0 ? _a : false;\n }\n}\n_MatOptgroupBase.ɵfac = function _MatOptgroupBase_Factory(t) {\n return new (t || _MatOptgroupBase)(ɵngcc0.ɵɵdirectiveInject(MAT_OPTION_PARENT_COMPONENT, 8));\n};\n_MatOptgroupBase.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: _MatOptgroupBase,\n inputs: {\n label: \"label\"\n },\n features: [ɵngcc0.ɵɵInheritDefinitionFeature]\n});\n_MatOptgroupBase.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }, {\n type: Optional\n }]\n}];\n_MatOptgroupBase.propDecorators = {\n label: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatOptgroupBase, [{\n type: Directive\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }, {\n type: Optional\n }]\n }];\n }, {\n label: [{\n type: Input\n }]\n });\n})();\n/**\n * Injection token that can be used to reference instances of `MatOptgroup`. It serves as\n * alternative token to the actual `MatOptgroup` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_OPTGROUP = new InjectionToken('MatOptgroup');\n/**\n * Component that is used to group instances of `mat-option`.\n */\nclass MatOptgroup extends _MatOptgroupBase {}\nMatOptgroup.ɵfac = /*@__PURE__*/function () {\n let ɵMatOptgroup_BaseFactory;\n return function MatOptgroup_Factory(t) {\n return (ɵMatOptgroup_BaseFactory || (ɵMatOptgroup_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatOptgroup)))(t || MatOptgroup);\n };\n}();\nMatOptgroup.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: MatOptgroup,\n selectors: [[\"mat-optgroup\"]],\n hostAttrs: [1, \"mat-optgroup\"],\n hostVars: 5,\n hostBindings: function MatOptgroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx._inert ? null : \"group\")(\"aria-disabled\", ctx._inert ? null : ctx.disabled.toString())(\"aria-labelledby\", ctx._inert ? null : ctx._labelId);\n ɵngcc0.ɵɵclassProp(\"mat-optgroup-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\"\n },\n exportAs: [\"matOptgroup\"],\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: MAT_OPTGROUP,\n useExisting: MatOptgroup\n }]), ɵngcc0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 4,\n vars: 2,\n consts: [[\"aria-hidden\", \"true\", 1, \"mat-optgroup-label\", 3, \"id\"]],\n template: function MatOptgroup_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c0);\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(3, 1);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"id\", ctx._labelId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"\", ctx.label, \" \");\n }\n },\n styles: [\".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatOptgroup, [{\n type: Component,\n args: [{\n selector: 'mat-optgroup',\n exportAs: 'matOptgroup',\n template: \"<span class=\\\"mat-optgroup-label\\\" aria-hidden=\\\"true\\\" [id]=\\\"_labelId\\\">{{ label }} <ng-content></ng-content></span>\\n<ng-content select=\\\"mat-option, ng-container\\\"></ng-content>\\n\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n 'class': 'mat-optgroup',\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled.toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId',\n '[class.mat-optgroup-disabled]': 'disabled'\n },\n providers: [{\n provide: MAT_OPTGROUP,\n useExisting: MatOptgroup\n }],\n styles: [\".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\\n\"]\n }]\n }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet _uniqueIdCounter = 0;\n/** Event object emitted by MatOption when selected or deselected. */\nclass MatOptionSelectionChange {\n constructor( /** Reference to the option that emitted the event. */\n source, /** Whether the change in the option's value was a result of a user action. */\n isUserInput = false) {\n this.source = source;\n this.isUserInput = isUserInput;\n }\n}\nclass _MatOptionBase {\n constructor(_element, _changeDetectorRef, _parent, group) {\n this._element = _element;\n this._changeDetectorRef = _changeDetectorRef;\n this._parent = _parent;\n this.group = group;\n this._selected = false;\n this._active = false;\n this._disabled = false;\n this._mostRecentViewValue = '';\n /** The unique ID of the option. */\n this.id = `mat-option-${_uniqueIdCounter++}`;\n /** Event emitted when the option is selected or deselected. */\n // tslint:disable-next-line:no-output-on-prefix\n this.onSelectionChange = new EventEmitter();\n /** Emits when the state of the option changes and any parents have to be notified. */\n this._stateChanges = new Subject();\n }\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple() {\n return this._parent && this._parent.multiple;\n }\n /** Whether or not the option is currently selected. */\n get selected() {\n return this._selected;\n }\n /** Whether the option is disabled. */\n get disabled() {\n return this.group && this.group.disabled || this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /** Whether ripples for the option are disabled. */\n get disableRipple() {\n return this._parent && this._parent.disableRipple;\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 */\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 */\n get viewValue() {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n }\n /** Selects the option. */\n select() {\n if (!this._selected) {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n }\n /** Deselects the option. */\n deselect() {\n if (this._selected) {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n }\n /** Sets focus onto this option. */\n focus(_origin, options) {\n // Note that we aren't using `_origin`, but we need to keep it because some internal consumers\n // use `MatOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.\n const element = this._getHostElement();\n if (typeof element.focus === 'function') {\n element.focus(options);\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 */\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 */\n setInactiveStyles() {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel() {\n return this.viewValue;\n }\n /** Ensures the option is selected when activated from the keyboard. */\n _handleKeydown(event) {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {\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 */\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 * Gets the `aria-selected` value for the option. We explicitly omit the `aria-selected`\n * attribute from single-selection, unselected options. Including the `aria-selected=\"false\"`\n * attributes adds a significant amount of noise to screen-reader users without providing useful\n * information.\n */\n _getAriaSelected() {\n return this.selected || (this.multiple ? false : null);\n }\n /** Returns the correct tabindex for the option depending on disabled state. */\n _getTabIndex() {\n return this.disabled ? '-1' : '0';\n }\n /** Gets the host DOM element. */\n _getHostElement() {\n return this._element.nativeElement;\n }\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `mat-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n if (viewValue !== this._mostRecentViewValue) {\n this._mostRecentViewValue = viewValue;\n this._stateChanges.next();\n }\n }\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n /** Emits the selection change event. */\n _emitSelectionChangeEvent(isUserInput = false) {\n this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));\n }\n}\n_MatOptionBase.ɵfac = function _MatOptionBase_Factory(t) {\n return new (t || _MatOptionBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(_MatOptgroupBase));\n};\n_MatOptionBase.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: _MatOptionBase,\n inputs: {\n id: \"id\",\n disabled: \"disabled\",\n value: \"value\"\n },\n outputs: {\n onSelectionChange: \"onSelectionChange\"\n }\n});\n_MatOptionBase.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: ChangeDetectorRef\n}, {\n type: undefined\n}, {\n type: _MatOptgroupBase\n}];\n_MatOptionBase.propDecorators = {\n value: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n onSelectionChange: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatOptionBase, [{\n type: Directive\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: undefined\n }, {\n type: _MatOptgroupBase\n }];\n }, {\n id: [{\n type: Input\n }],\n onSelectionChange: [{\n type: Output\n }],\n disabled: [{\n type: Input\n }],\n value: [{\n type: Input\n }]\n });\n})();\n/**\n * Single option inside of a `<mat-select>` element.\n */\nclass MatOption extends _MatOptionBase {\n constructor(element, changeDetectorRef, parent, group) {\n super(element, changeDetectorRef, parent, group);\n }\n}\nMatOption.ɵfac = function MatOption_Factory(t) {\n return new (t || MatOption)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(MAT_OPTION_PARENT_COMPONENT, 8), ɵngcc0.ɵɵdirectiveInject(MAT_OPTGROUP, 8));\n};\nMatOption.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: MatOption,\n selectors: [[\"mat-option\"]],\n hostAttrs: [\"role\", \"option\", 1, \"mat-option\", \"mat-focus-indicator\"],\n hostVars: 12,\n hostBindings: function MatOption_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function MatOption_click_HostBindingHandler() {\n return ctx._selectViaInteraction();\n })(\"keydown\", function MatOption_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx._getTabIndex())(\"aria-selected\", ctx._getAriaSelected())(\"aria-disabled\", ctx.disabled.toString());\n ɵngcc0.ɵɵclassProp(\"mat-selected\", ctx.selected)(\"mat-option-multiple\", ctx.multiple)(\"mat-active\", ctx.active)(\"mat-option-disabled\", ctx.disabled);\n }\n },\n exportAs: [\"matOption\"],\n features: [ɵngcc0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c2,\n decls: 5,\n vars: 4,\n consts: [[\"class\", \"mat-option-pseudo-checkbox\", 3, \"state\", \"disabled\", 4, \"ngIf\"], [1, \"mat-option-text\"], [\"class\", \"cdk-visually-hidden\", 4, \"ngIf\"], [\"mat-ripple\", \"\", 1, \"mat-option-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mat-option-pseudo-checkbox\", 3, \"state\", \"disabled\"], [1, \"cdk-visually-hidden\"]],\n template: function MatOption_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, MatOption_mat_pseudo_checkbox_0_Template, 1, 2, \"mat-pseudo-checkbox\", 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, MatOption_span_3_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵelement(4, \"div\", 3);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.multiple);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.group && ctx.group._inert);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"matRippleTrigger\", ctx._getHostElement())(\"matRippleDisabled\", ctx.disabled || ctx.disableRipple);\n }\n },\n dependencies: [MatRipple, ɵngcc3.NgIf, MatPseudoCheckbox],\n styles: [\".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n});\nMatOption.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: ChangeDetectorRef\n}, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }]\n}, {\n type: MatOptgroup,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTGROUP]\n }]\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatOption, [{\n type: Component,\n args: [{\n 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]': '_getAriaSelected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class.mat-option-disabled]': 'disabled',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-option mat-focus-indicator'\n },\n template: \"<mat-pseudo-checkbox *ngIf=\\\"multiple\\\" class=\\\"mat-option-pseudo-checkbox\\\"\\n [state]=\\\"selected ? 'checked' : 'unchecked'\\\" [disabled]=\\\"disabled\\\"></mat-pseudo-checkbox>\\n\\n<span class=\\\"mat-option-text\\\"><ng-content></ng-content></span>\\n\\n<!-- See a11y notes inside optgroup.ts for context behind this element. -->\\n<span class=\\\"cdk-visually-hidden\\\" *ngIf=\\\"group && group._inert\\\">({{ group.label }})</span>\\n\\n<div class=\\\"mat-option-ripple\\\" mat-ripple\\n [matRippleTrigger]=\\\"_getHostElement()\\\"\\n [matRippleDisabled]=\\\"disabled || disableRipple\\\">\\n</div>\\n\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\\n\"]\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }]\n }, {\n type: MatOptgroup,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTGROUP]\n }]\n }];\n }, null);\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 * @docs-private\n */\nfunction _countGroupLabelsBeforeOption(optionIndex, options, optionGroups) {\n if (optionGroups.length) {\n let optionsArray = options.toArray();\n let groups = optionGroups.toArray();\n let groupCounter = 0;\n for (let 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/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionOffset Offset of the option from the top of the panel.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nfunction _getOptionScrollPosition(optionOffset, optionHeight, currentScrollPosition, panelHeight) {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n return currentScrollPosition;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatOptionModule {}\nMatOptionModule.ɵfac = function MatOptionModule_Factory(t) {\n return new (t || MatOptionModule)();\n};\nMatOptionModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatOptionModule\n});\nMatOptionModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatOptionModule, [{\n type: NgModule,\n args: [{\n imports: [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule],\n exports: [MatOption, MatOptgroup],\n declarations: [MatOption, MatOptgroup]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatOptionModule, {\n declarations: function () {\n return [MatOption, MatOptgroup];\n },\n imports: function () {\n return [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule];\n },\n exports: function () {\n return [MatOption, MatOptgroup];\n }\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationCurves, AnimationDurations, DateAdapter, ErrorStateMatcher, MATERIAL_SANITY_CHECKS, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY, MAT_NATIVE_DATE_FORMATS, MAT_OPTGROUP, MAT_OPTION_PARENT_COMPONENT, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatLine, MatLineModule, MatNativeDateModule, MatOptgroup, MatOption, MatOptionModule, MatOptionSelectionChange, MatPseudoCheckbox, MatPseudoCheckboxModule, MatRipple, MatRippleModule, NativeDateAdapter, NativeDateModule, RippleRef, RippleRenderer, ShowOnDirtyErrorStateMatcher, VERSION, _MatOptgroupBase, _MatOptionBase, _countGroupLabelsBeforeOption, _getOptionScrollPosition, defaultRippleAnimationConfig, mixinColor, mixinDisableRipple, mixinDisabled, mixinErrorState, mixinInitialized, mixinTabIndex, setLines, ɵ0$1 as ɵ0, MATERIAL_SANITY_CHECKS_FACTORY as ɵangular_material_src_material_core_core_a };","map":{"version":3,"names":["Version","InjectionToken","isDevMode","NgModule","Optional","Inject","inject","LOCALE_ID","Injectable","ɵɵdefineInjectable","Directive","ElementRef","NgZone","Input","Component","ViewEncapsulation","ChangeDetectionStrategy","EventEmitter","ChangeDetectorRef","Output","HighContrastModeDetector","isFakeMousedownFromScreenReader","isFakeTouchstartFromScreenReader","BidiModule","VERSION","VERSION$2","DOCUMENT","CommonModule","coerceBooleanProperty","coerceNumberProperty","coerceElement","Subject","Observable","Platform","PlatformModule","normalizePassiveListenerOptions","startWith","ANIMATION_MODULE_TYPE","ENTER","SPACE","hasModifierKey","ɵngcc0","ɵngcc1","ɵngcc2","ɵngcc3","_c0","_c1","MatOption_mat_pseudo_checkbox_0_Template","rf","ctx","ɵɵelement","ctx_r0","ɵɵnextContext","ɵɵproperty","selected","disabled","MatOption_span_3_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r1","ɵɵadvance","ɵɵtextInterpolate1","group","label","_c2","AnimationCurves","STANDARD_CURVE","DECELERATION_CURVE","ACCELERATION_CURVE","SHARP_CURVE","AnimationDurations","COMPLEX","ENTERING","EXITING","VERSION$1","MATERIAL_SANITY_CHECKS_FACTORY","MATERIAL_SANITY_CHECKS","providedIn","factory","MatCommonModule","constructor","highContrastModeDetector","sanityChecks","document","_hasDoneGlobalChecks","_document","_applyBodyHighContrastModeCssClasses","_sanityChecks","_checkDoctypeIsDefined","_checkThemeIsPresent","_checkCdkVersionMatch","_getWindow","win","defaultView","window","_checksAreEnabled","_isTestEnv","__karma__","jasmine","isEnabled","doctype","console","warn","isDisabled","theme","body","getComputedStyle","testElement","createElement","classList","add","appendChild","computedStyle","display","removeChild","version","full","ɵfac","MatCommonModule_Factory","t","ɵɵinject","ɵmod","ɵɵdefineNgModule","type","ɵinj","ɵɵdefineInjector","imports","ctorParameters","undefined","decorators","args","ngDevMode","ɵsetClassMetadata","exports","ngJitMode","ɵɵsetNgModuleScope","mixinDisabled","base","_disabled","value","mixinColor","defaultColor","color","_color","colorPalette","_elementRef","nativeElement","remove","mixinDisableRipple","Mixin","_disableRipple","disableRipple","mixinTabIndex","defaultTabIndex","_tabIndex","tabIndex","mixinErrorState","errorState","stateChanges","updateErrorState","oldState","parent","_parentFormGroup","_parentForm","matcher","errorStateMatcher","_defaultErrorStateMatcher","control","ngControl","newState","isErrorState","next","mixinInitialized","_isInitialized","_pendingSubscribers","initialized","subscriber","_notifySubscriber","push","_markInitialized","Error","forEach","complete","MAT_DATE_LOCALE","MAT_DATE_LOCALE_FACTORY","DateAdapter","_localeChanges","localeChanges","getValidDateOrNull","obj","isDateInstance","isValid","deserialize","invalid","setLocale","locale","compareDate","first","second","getYear","getMonth","getDate","sameDate","firstValid","secondValid","clampDate","date","min","max","MAT_DATE_FORMATS","SUPPORTS_INTL_API","Intl","_a","DEFAULT_MONTH_NAMES","ɵ0","i","String","DEFAULT_DATE_NAMES","range","DEFAULT_DAY_OF_WEEK_NAMES","ISO_8601_REGEX","length","valueFunction","valuesArray","Array","NativeDateAdapter","matDateLocale","platform","useUtcForDisplay","TRIDENT","_clampDate","EDGE","getFullYear","getDayOfWeek","getDay","getMonthNames","style","dtf","DateTimeFormat","month","timeZone","_stripDirectionalityCharacters","_format","Date","getDateNames","day","getDayOfWeekNames","weekday","getYearName","year","getFirstDayOfWeek","getNumDaysInMonth","_createDateWithOverflow","clone","getTime","createDate","result","today","parse","format","displayFormat","setFullYear","Math","Object","assign","toDateString","addCalendarYears","years","addCalendarMonths","months","newDate","addCalendarDays","days","toIso8601","getUTCFullYear","_2digit","getUTCMonth","getUTCDate","join","test","isNaN","NaN","d","setHours","n","slice","str","replace","setUTCFullYear","setUTCHours","getHours","getMinutes","getSeconds","getMilliseconds","NativeDateAdapter_Factory","ɵprov","token","MAT_NATIVE_DATE_FORMATS","dateInput","monthYearLabel","dateA11yLabel","monthYearA11yLabel","NativeDateModule","NativeDateModule_Factory","providers","provide","useClass","ɵ0$1","MatNativeDateModule","MatNativeDateModule_Factory","useValue","ShowOnDirtyErrorStateMatcher","form","dirty","submitted","ShowOnDirtyErrorStateMatcher_Factory","ErrorStateMatcher","touched","ErrorStateMatcher_Factory","MatLine","MatLine_Factory","ɵdir","ɵɵdefineDirective","selectors","hostAttrs","selector","host","setLines","lines","element","prefix","changes","pipe","subscribe","setClass","className","isAdd","MatLineModule","MatLineModule_Factory","declarations","RippleRef","_renderer","config","state","fadeOut","fadeOutRipple","defaultRippleAnimationConfig","enterDuration","exitDuration","ignoreMouseEventsTimeout","passiveEventOptions","passive","pointerDownEvents","pointerUpEvents","RippleRenderer","_target","_ngZone","elementOrElementRef","_isPointerDown","_activeRipples","Set","_pointerUpEventsRegistered","isBrowser","_containerElement","fadeInRipple","x","y","containerRect","_containerRect","getBoundingClientRect","animationConfig","animation","centered","left","width","top","height","radius","distanceToFurthestCorner","offsetX","offsetY","duration","ripple","backgroundColor","transitionDuration","enforceStyleRecalculation","transform","rippleRef","persistent","_mostRecentTransientRipple","_runTimeoutOutsideZone","isMostRecentTransientRipple","wasActive","delete","size","rippleEl","opacity","parentNode","fadeOutAll","fadeOutAllNonPersistent","setupTriggerEvents","_triggerElement","_removeTriggerEvents","_registerEvents","handleEvent","event","_onMousedown","_onTouchStart","_onPointerUp","isFakeMousedown","isSyntheticEvent","_lastTouchStartEvent","now","rippleDisabled","clientX","clientY","rippleConfig","touches","changedTouches","isVisible","terminateOnPointerUp","fn","delay","runOutsideAngular","setTimeout","eventTypes","addEventListener","removeEventListener","getPropertyValue","rect","distX","abs","right","distY","bottom","sqrt","MAT_RIPPLE_GLOBAL_OPTIONS","MatRipple","ngZone","globalOptions","_animationMode","_globalOptions","_rippleRenderer","_setupTriggerEventsIfEnabled","trigger","_trigger","ngOnInit","ngOnDestroy","launch","configOrX","MatRipple_Factory","ɵɵdirectiveInject","hostVars","hostBindings","MatRipple_HostBindings","ɵɵclassProp","unbounded","inputs","exportAs","propDecorators","MatRippleModule","MatRippleModule_Factory","MatPseudoCheckbox","MatPseudoCheckbox_Factory","ɵcmp","ɵɵdefineComponent","MatPseudoCheckbox_HostBindings","decls","vars","template","MatPseudoCheckbox_Template","styles","encapsulation","changeDetection","None","OnPush","MatPseudoCheckboxModule","MatPseudoCheckboxModule_Factory","MAT_OPTION_PARENT_COMPONENT","MatOptgroupBase","_MatOptgroupMixinBase","_uniqueOptgroupIdCounter","_MatOptgroupBase","_labelId","_inert","inertGroups","_MatOptgroupBase_Factory","features","ɵɵInheritDefinitionFeature","MAT_OPTGROUP","MatOptgroup","ɵMatOptgroup_BaseFactory","MatOptgroup_Factory","ɵɵgetInheritedFactory","MatOptgroup_HostBindings","ɵɵattribute","toString","ɵɵProvidersFeature","useExisting","ngContentSelectors","consts","MatOptgroup_Template","ɵɵprojectionDef","ɵɵprojection","_uniqueIdCounter","MatOptionSelectionChange","source","isUserInput","_MatOptionBase","_element","_changeDetectorRef","_parent","_selected","_active","_mostRecentViewValue","id","onSelectionChange","_stateChanges","multiple","active","viewValue","_getHostElement","textContent","trim","select","markForCheck","_emitSelectionChangeEvent","deselect","focus","_origin","options","setActiveStyles","setInactiveStyles","getLabel","_handleKeydown","keyCode","_selectViaInteraction","preventDefault","_getAriaSelected","_getTabIndex","ngAfterViewChecked","emit","_MatOptionBase_Factory","outputs","MatOption","changeDetectorRef","MatOption_Factory","MatOption_HostBindings","ɵɵlistener","MatOption_click_HostBindingHandler","MatOption_keydown_HostBindingHandler","$event","ɵɵhostProperty","MatOption_Template","ɵɵtemplate","dependencies","NgIf","_countGroupLabelsBeforeOption","optionIndex","optionGroups","optionsArray","toArray","groups","groupCounter","_getOptionScrollPosition","optionOffset","optionHeight","currentScrollPosition","panelHeight","MatOptionModule","MatOptionModule_Factory","ɵangular_material_src_material_core_core_a"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js"],"sourcesContent":["import { Version, InjectionToken, isDevMode, NgModule, Optional, Inject, inject, LOCALE_ID, Injectable, ɵɵdefineInjectable, Directive, ElementRef, NgZone, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, EventEmitter, ChangeDetectorRef, Output } from '@angular/core';\nimport { HighContrastModeDetector, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader } from '@angular/cdk/a11y';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { VERSION as VERSION$2 } from '@angular/cdk';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { coerceBooleanProperty, coerceNumberProperty, coerceElement } from '@angular/cdk/coercion';\nimport { Subject, Observable } from 'rxjs';\nimport { Platform, PlatformModule, normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { startWith } from 'rxjs/operators';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Current version of Angular Material. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/a11y';\nimport * as ɵngcc2 from '@angular/cdk/platform';\nimport * as ɵngcc3 from '@angular/common';\n\nconst _c0 = [\"*\", [[\"mat-option\"], [\"ng-container\"]]];\nconst _c1 = [\"*\", \"mat-option, ng-container\"];\nfunction MatOption_mat_pseudo_checkbox_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"mat-pseudo-checkbox\", 4);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"state\", ctx_r0.selected ? \"checked\" : \"unchecked\")(\"disabled\", ctx_r0.disabled);\n} }\nfunction MatOption_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", ctx_r1.group.label, \")\");\n} }\nconst _c2 = [\"*\"];\nconst VERSION = new Version('11.2.13');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nclass 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)';\n/** @docs-private */\nclass AnimationDurations {\n}\nAnimationDurations.COMPLEX = '375ms';\nAnimationDurations.ENTERING = '225ms';\nAnimationDurations.EXITING = '195ms';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Private version constant to circumvent test/build issues,\n// i.e. avoid core to depend on the @angular/material primary entry-point\n// Can be removed once the Material primary entry-point no longer\n// re-exports all secondary entry-points\nconst VERSION$1 = new Version('11.2.13');\n/** @docs-private */\nfunction MATERIAL_SANITY_CHECKS_FACTORY() {\n return true;\n}\n/** Injection token that configures whether the Material sanity checks are enabled. */\nconst MATERIAL_SANITY_CHECKS = new InjectionToken('mat-sanity-checks', {\n providedIn: 'root',\n factory: MATERIAL_SANITY_CHECKS_FACTORY,\n});\n/**\n * Module that captures anything that should be loaded and/or run for *all* Angular Material\n * components. This includes Bidi, etc.\n *\n * This module should be imported to each top-level component module (e.g., MatTabsModule).\n */\nclass MatCommonModule {\n constructor(highContrastModeDetector, sanityChecks, document) {\n /** Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype). */\n this._hasDoneGlobalChecks = false;\n this._document = document;\n // While A11yModule also does this, we repeat it here to avoid importing A11yModule\n // in MatCommonModule.\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n // Note that `_sanityChecks` is typed to `any`, because AoT\n // throws an error if we use the `SanityChecks` type directly.\n this._sanityChecks = sanityChecks;\n if (!this._hasDoneGlobalChecks) {\n this._checkDoctypeIsDefined();\n this._checkThemeIsPresent();\n this._checkCdkVersionMatch();\n this._hasDoneGlobalChecks = true;\n }\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const win = this._document.defaultView || window;\n return typeof win === 'object' && win ? win : null;\n }\n /** Whether any sanity checks are enabled. */\n _checksAreEnabled() {\n // TODO(crisbeto): we can't use `ngDevMode` here yet, because ViewEngine apps might not support\n // it. Since these checks can have performance implications and they aren't tree shakeable\n // in their current form, we can leave the `isDevMode` check in for now.\n // tslint:disable-next-line:ban\n return isDevMode() && !this._isTestEnv();\n }\n /** Whether the code is running in tests. */\n _isTestEnv() {\n const window = this._getWindow();\n return window && (window.__karma__ || window.jasmine);\n }\n _checkDoctypeIsDefined() {\n const isEnabled = this._checksAreEnabled() &&\n (this._sanityChecks === true || this._sanityChecks.doctype);\n if (isEnabled && !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 _checkThemeIsPresent() {\n // We need to assert that the `body` is defined, because these checks run very early\n // and the `body` won't be defined if the consumer put their scripts in the `head`.\n const isDisabled = !this._checksAreEnabled() ||\n (this._sanityChecks === false || !this._sanityChecks.theme);\n if (isDisabled || !this._document.body || typeof getComputedStyle !== 'function') {\n return;\n }\n const testElement = this._document.createElement('div');\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n const 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 /** Checks whether the material version matches the cdk version */\n _checkCdkVersionMatch() {\n const isEnabled = this._checksAreEnabled() &&\n (this._sanityChecks === true || this._sanityChecks.version);\n if (isEnabled && VERSION$1.full !== VERSION$2.full) {\n console.warn('The Angular Material version (' + VERSION$1.full + ') does not match ' +\n 'the Angular CDK version (' + VERSION$2.full + ').\\n' +\n 'Please ensure the versions of these two packages exactly match.');\n }\n }\n}\nMatCommonModule.ɵfac = function MatCommonModule_Factory(t) { return new (t || MatCommonModule)(ɵngcc0.ɵɵinject(ɵngcc1.HighContrastModeDetector), ɵngcc0.ɵɵinject(MATERIAL_SANITY_CHECKS, 8), ɵngcc0.ɵɵinject(DOCUMENT)); };\nMatCommonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatCommonModule });\nMatCommonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [BidiModule, BidiModule] });\nMatCommonModule.ctorParameters = () => [\n { type: HighContrastModeDetector },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatCommonModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule],\n exports: [BidiModule]\n }]\n }], function () { return [{ type: ɵngcc1.HighContrastModeDetector }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MATERIAL_SANITY_CHECKS]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatCommonModule, { imports: function () { return [BidiModule]; }, exports: function () { return [BidiModule]; } }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `disabled` property. */\nfunction mixinDisabled(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n this._disabled = false;\n }\n get disabled() { return this._disabled; }\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `color` property. */\nfunction mixinColor(base, defaultColor) {\n return class extends base {\n constructor(...args) {\n super(...args);\n this.defaultColor = defaultColor;\n // Set the default color that can be specified from the mixin.\n this.color = defaultColor;\n }\n get color() { return this._color; }\n set color(value) {\n const colorPalette = value || this.defaultColor;\n if (colorPalette !== this._color) {\n if (this._color) {\n this._elementRef.nativeElement.classList.remove(`mat-${this._color}`);\n }\n if (colorPalette) {\n this._elementRef.nativeElement.classList.add(`mat-${colorPalette}`);\n }\n this._color = colorPalette;\n }\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `disableRipple` property. */\nfunction mixinDisableRipple(base) {\n class Mixin extends base {\n constructor(...args) {\n super(...args);\n this._disableRipple = false;\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() { return this._disableRipple; }\n set disableRipple(value) { this._disableRipple = coerceBooleanProperty(value); }\n }\n // Since we don't directly extend from `base` with it's original types, and we instruct\n // TypeScript that `T` actually is instantiatable through `new`, the types don't overlap.\n // This is a limitation in TS as abstract classes cannot be typed properly dynamically.\n return Mixin;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with a `tabIndex` property. */\nfunction mixinTabIndex(base, defaultTabIndex = 0) {\n // Note: We cast `base` to `unknown` and then `Constructor`. It could be an abstract class,\n // but given we `extend` it from another class, we can assume a constructor being accessible.\n class Mixin extends base {\n constructor(...args) {\n super(...args);\n this._tabIndex = defaultTabIndex;\n this.defaultTabIndex = defaultTabIndex;\n }\n get tabIndex() { return this.disabled ? -1 : this._tabIndex; }\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 ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n }\n // Since we don't directly extend from `base` with it's original types, and we instruct\n // TypeScript that `T` actually is instantiatable through `new`, the types don't overlap.\n // This is a limitation in TS as abstract classes cannot be typed properly dynamically.\n return Mixin;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nfunction mixinErrorState(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n /** Whether the component is in an error state. */\n this.errorState = false;\n /**\n * Stream that emits whenever the state of the input changes such that the wrapping\n * `MatFormField` needs to run change detection.\n */\n this.stateChanges = new Subject();\n }\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;\n const control = this.ngControl ? this.ngControl.control : null;\n const newState = matcher.isErrorState(control, parent);\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. */\nfunction mixinInitialized(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n /** Whether this directive has been marked as initialized. */\n this._isInitialized = false;\n /**\n * List of subscribers that subscribed before the directive was initialized. Should be notified\n * during _markInitialized. Set to null after pending subscribers are notified, and should\n * not expect to be populated after.\n */\n this._pendingSubscribers = [];\n /**\n * Observable stream that emits when the directive initializes. If already initialized, the\n * subscriber is stored to be notified once _markInitialized is called.\n */\n this.initialized = new Observable(subscriber => {\n // If initialized, immediately notify the subscriber. Otherwise store the subscriber to notify\n // when _markInitialized is called.\n if (this._isInitialized) {\n this._notifySubscriber(subscriber);\n }\n else {\n this._pendingSubscribers.push(subscriber);\n }\n });\n }\n /**\n * Marks the state as initialized and notifies pending subscribers. Should be called at the end\n * of ngOnInit.\n * @docs-private\n */\n _markInitialized() {\n if (this._isInitialized && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This directive has already been marked as initialized and ' +\n 'should not be called twice.');\n }\n this._isInitialized = true;\n this._pendingSubscribers.forEach(this._notifySubscriber);\n this._pendingSubscribers = null;\n }\n /** Emits and completes the subscriber stream (should only emit once). */\n _notifySubscriber(subscriber) {\n subscriber.next();\n subscriber.complete();\n }\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** InjectionToken for datepicker that can be used to override default locale code. */\nconst MAT_DATE_LOCALE = new InjectionToken('MAT_DATE_LOCALE', {\n providedIn: 'root',\n factory: MAT_DATE_LOCALE_FACTORY,\n});\n/** @docs-private */\nfunction MAT_DATE_LOCALE_FACTORY() {\n return inject(LOCALE_ID);\n}\n/** Adapts type `D` to be usable as a date by cdk-based components that work with dates. */\nclass DateAdapter {\n constructor() {\n this._localeChanges = new Subject();\n /** A stream that emits when the locale changes. */\n this.localeChanges = this._localeChanges;\n }\n /**\n * Given a potential date object, returns that same date object if it is\n * a valid date, or `null` if it's not a valid date.\n * @param obj The object to check.\n * @returns A date or `null`.\n */\n getValidDateOrNull(obj) {\n return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;\n }\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of its `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n deserialize(value) {\n if (value == null || this.isDateInstance(value) && this.isValid(value)) {\n return value;\n }\n return this.invalid();\n }\n /**\n * Sets the locale used for all dates.\n * @param locale The new locale.\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 * @returns 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 * @returns Whether the two dates are equal.\n * Null dates are considered equal to other null dates.\n */\n sameDate(first, second) {\n if (first && second) {\n let firstValid = this.isValid(first);\n let secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareDate(first, second);\n }\n return firstValid == secondValid;\n }\n return 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 * @returns `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}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst MAT_DATE_FORMATS = new InjectionToken('mat-date-formats');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO(mmalerba): Remove when we no longer support safari 9.\n/** Whether the browser supports the Intl API. */\nlet SUPPORTS_INTL_API;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n SUPPORTS_INTL_API = typeof Intl != 'undefined';\n}\ncatch (_a) {\n SUPPORTS_INTL_API = false;\n}\n/** The default month names to use if Intl API is not available. */\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};\nconst ɵ0 = i => String(i + 1);\n/** The default date names to use if Intl API is not available. */\nconst DEFAULT_DATE_NAMES = range(31, ɵ0);\n/** The default day of the week names to use if Intl API is not available. */\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/** Creates an array and fills it with values. */\nfunction range(length, valueFunction) {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n/** Adapts the native JS Date for use with cdk-based components that work with dates. */\nclass NativeDateAdapter extends DateAdapter {\n constructor(matDateLocale, platform) {\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 * TODO(mmalerba): drop this variable. It's not being used in the code right now. We're now\n * getting the string representation of a Date object from its utc representation. We're keeping\n * it here for sometime, just for precaution, in case we decide to revert some of these changes\n * though.\n */\n this.useUtcForDisplay = true;\n super.setLocale(matDateLocale);\n // IE does its own time zone correction, so we disable this on IE.\n this.useUtcForDisplay = !platform.TRIDENT;\n this._clampDate = platform.TRIDENT || platform.EDGE;\n }\n getYear(date) {\n return date.getFullYear();\n }\n getMonth(date) {\n return date.getMonth();\n }\n getDate(date) {\n return date.getDate();\n }\n getDayOfWeek(date) {\n return date.getDay();\n }\n getMonthNames(style) {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, { month: style, timeZone: 'utc' });\n return range(12, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n getDateNames() {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'utc' });\n return range(31, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n getDayOfWeekNames(style) {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, { weekday: style, timeZone: 'utc' });\n return range(7, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n }\n getYearName(date) {\n if (SUPPORTS_INTL_API) {\n const dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric', timeZone: 'utc' });\n return this._stripDirectionalityCharacters(this._format(dtf, date));\n }\n return String(this.getYear(date));\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 getNumDaysInMonth(date) {\n return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));\n }\n clone(date) {\n return new Date(date.getTime());\n }\n createDate(year, month, date) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\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 }\n let 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 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n return result;\n }\n today() {\n return new Date();\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 format(date, displayFormat) {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n if (SUPPORTS_INTL_API) {\n // On IE and Edge the i18n API will throw a hard error that can crash the entire app\n // if we attempt to format a date whose year is less than 1 or greater than 9999.\n if (this._clampDate && (date.getFullYear() < 1 || date.getFullYear() > 9999)) {\n date = this.clone(date);\n date.setFullYear(Math.max(1, Math.min(9999, date.getFullYear())));\n }\n displayFormat = Object.assign(Object.assign({}, displayFormat), { timeZone: 'utc' });\n const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(this._format(dtf, date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n }\n addCalendarYears(date, years) {\n return this.addCalendarMonths(date, years * 12);\n }\n addCalendarMonths(date, months) {\n let 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 addCalendarDays(date, days) {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);\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 * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n * invalid date for all other values.\n */\n deserialize(value) {\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\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(value)) {\n let date = new Date(value);\n if (this.isValid(date)) {\n return date;\n }\n }\n }\n return super.deserialize(value);\n }\n isDateInstance(obj) {\n return obj instanceof Date;\n }\n isValid(date) {\n return !isNaN(date.getTime());\n }\n invalid() {\n return new Date(NaN);\n }\n /** Creates a date but allows the month and date to overflow. */\n _createDateWithOverflow(year, month, date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setFullYear` and `setHours` instead.\n const d = new Date();\n d.setFullYear(year, month, date);\n d.setHours(0, 0, 0, 0);\n return d;\n }\n /**\n * Pads a number to make it two digits.\n * @param n The number to pad.\n * @returns 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 * @returns The stripped string.\n */\n _stripDirectionalityCharacters(str) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n /**\n * When converting Date object to string, javascript built-in functions may return wrong\n * results because it applies its internal DST rules. The DST rules around the world change\n * very frequently, and the current valid rule is not always valid in previous years though.\n * We work around this problem building a new Date object which has its internal UTC\n * representation with the local date and time.\n * @param dtf Intl.DateTimeFormat object, containg the desired string format. It must have\n * timeZone set to 'utc' to work fine.\n * @param date Date from which we want to get the string representation according to dtf\n * @returns A Date object with its UTC representation based on the passed in date info\n */\n _format(dtf, date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setUTCFullYear` and `setUTCHours` instead.\n const d = new Date();\n d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n d.setUTCHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return dtf.format(d);\n }\n}\nNativeDateAdapter.ɵfac = function NativeDateAdapter_Factory(t) { return new (t || NativeDateAdapter)(ɵngcc0.ɵɵinject(MAT_DATE_LOCALE, 8), ɵngcc0.ɵɵinject(ɵngcc2.Platform)); };\nNativeDateAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NativeDateAdapter, factory: NativeDateAdapter.ɵfac });\nNativeDateAdapter.ctorParameters = () => [\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] }] },\n { type: Platform }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NativeDateAdapter, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DATE_LOCALE]\n }] }, { type: ɵngcc2.Platform }]; }, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst 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\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass NativeDateModule {\n}\nNativeDateModule.ɵfac = function NativeDateModule_Factory(t) { return new (t || NativeDateModule)(); };\nNativeDateModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NativeDateModule });\nNativeDateModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n ], imports: [PlatformModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NativeDateModule, [{\n type: NgModule,\n args: [{\n imports: [PlatformModule],\n providers: [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NativeDateModule, { imports: function () { return [PlatformModule]; } }); })();\nconst ɵ0$1 = MAT_NATIVE_DATE_FORMATS;\nclass MatNativeDateModule {\n}\nMatNativeDateModule.ɵfac = function MatNativeDateModule_Factory(t) { return new (t || MatNativeDateModule)(); };\nMatNativeDateModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatNativeDateModule });\nMatNativeDateModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0$1 }], imports: [NativeDateModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatNativeDateModule, [{\n type: NgModule,\n args: [{\n imports: [NativeDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0$1 }]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatNativeDateModule, { imports: [NativeDateModule] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Error state matcher that matches when a control is invalid and dirty. */\nclass ShowOnDirtyErrorStateMatcher {\n isErrorState(control, form) {\n return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n }\n}\nShowOnDirtyErrorStateMatcher.ɵfac = function ShowOnDirtyErrorStateMatcher_Factory(t) { return new (t || ShowOnDirtyErrorStateMatcher)(); };\nShowOnDirtyErrorStateMatcher.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ShowOnDirtyErrorStateMatcher, factory: ShowOnDirtyErrorStateMatcher.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ShowOnDirtyErrorStateMatcher, [{\n type: Injectable\n }], null, null); })();\n/** Provider that defines how form controls behave with regards to displaying error messages. */\nclass ErrorStateMatcher {\n isErrorState(control, form) {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\nErrorStateMatcher.ɵfac = function ErrorStateMatcher_Factory(t) { return new (t || ErrorStateMatcher)(); };\nErrorStateMatcher.ɵprov = ɵɵdefineInjectable({ factory: function ErrorStateMatcher_Factory() { return new ErrorStateMatcher(); }, token: ErrorStateMatcher, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ErrorStateMatcher, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\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 */\nclass MatLine {\n}\nMatLine.ɵfac = function MatLine_Factory(t) { return new (t || MatLine)(); };\nMatLine.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatLine, selectors: [[\"\", \"mat-line\", \"\"], [\"\", \"matLine\", \"\"]], hostAttrs: [1, \"mat-line\"] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatLine, [{\n type: Directive,\n args: [{\n selector: '[mat-line], [matLine]',\n host: { 'class': 'mat-line' }\n }]\n }], null, null); })();\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nfunction setLines(lines, element, prefix = 'mat') {\n // Note: doesn't need to unsubscribe, because `changes`\n // gets completed by Angular when the view is destroyed.\n lines.changes.pipe(startWith(lines)).subscribe(({ length }) => {\n setClass(element, `${prefix}-2-line`, false);\n setClass(element, `${prefix}-3-line`, false);\n setClass(element, `${prefix}-multi-line`, false);\n if (length === 2 || length === 3) {\n setClass(element, `${prefix}-${length}-line`, true);\n }\n else if (length > 3) {\n setClass(element, `${prefix}-multi-line`, true);\n }\n });\n}\n/** Adds or removes a class from an element. */\nfunction setClass(element, className, isAdd) {\n const classList = element.nativeElement.classList;\n isAdd ? classList.add(className) : classList.remove(className);\n}\nclass MatLineModule {\n}\nMatLineModule.ɵfac = function MatLineModule_Factory(t) { return new (t || MatLineModule)(); };\nMatLineModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatLineModule });\nMatLineModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [MatCommonModule, MatCommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatLineModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatLine, MatCommonModule],\n declarations: [MatLine]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatLineModule, { declarations: [MatLine], imports: [MatCommonModule], exports: [MatLine, MatCommonModule] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Reference to a previously launched ripple element.\n */\nclass RippleRef {\n constructor(_renderer, \n /** Reference to the ripple HTML element. */\n element, \n /** Ripple configuration used for the ripple. */\n config) {\n this._renderer = _renderer;\n this.element = element;\n this.config = config;\n /** Current state of the ripple. */\n this.state = 3 /* HIDDEN */;\n }\n /** Fades out the ripple element. */\n fadeOut() {\n this._renderer.fadeOutRipple(this);\n }\n}\n\n/**\n * Default ripple animation configuration for ripples without an explicit\n * animation config specified.\n */\nconst defaultRippleAnimationConfig = {\n enterDuration: 450,\n exitDuration: 400\n};\n/**\n * Timeout for ignoring mouse events. Mouse events will be temporary ignored after touch\n * events to avoid synthetic mouse events.\n */\nconst ignoreMouseEventsTimeout = 800;\n/** Options that apply to all the event listeners that are bound by the ripple renderer. */\nconst passiveEventOptions = normalizePassiveListenerOptions({ passive: true });\n/** Events that signal that the pointer is down. */\nconst pointerDownEvents = ['mousedown', 'touchstart'];\n/** Events that signal that the pointer is up. */\nconst pointerUpEvents = ['mouseup', 'mouseleave', 'touchend', 'touchcancel'];\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 */\nclass RippleRenderer {\n constructor(_target, _ngZone, elementOrElementRef, platform) {\n this._target = _target;\n this._ngZone = _ngZone;\n /** Whether the pointer is currently down or not. */\n this._isPointerDown = false;\n /** Set of currently active ripple references. */\n this._activeRipples = new Set();\n /** Whether pointer-up event listeners have been registered. */\n this._pointerUpEventsRegistered = false;\n // Only do anything if we're on the browser.\n if (platform.isBrowser) {\n this._containerElement = coerceElement(elementOrElementRef);\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 Coordinate within the element, along the Y axis at which to start the ripple.\n * @param config Extra ripple options.\n */\n fadeInRipple(x, y, config = {}) {\n const containerRect = this._containerRect =\n this._containerRect || this._containerElement.getBoundingClientRect();\n const animationConfig = Object.assign(Object.assign({}, defaultRippleAnimationConfig), config.animation);\n if (config.centered) {\n x = containerRect.left + containerRect.width / 2;\n y = containerRect.top + containerRect.height / 2;\n }\n const radius = config.radius || distanceToFurthestCorner(x, y, containerRect);\n const offsetX = x - containerRect.left;\n const offsetY = y - containerRect.top;\n const duration = animationConfig.enterDuration;\n const 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 a custom color has been specified, set it as inline style. If no color is\n // set, the default color will be applied through the ripple theme styles.\n if (config.color != null) {\n ripple.style.backgroundColor = config.color;\n }\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 const rippleRef = new RippleRef(this, ripple, config);\n rippleRef.state = 0 /* FADING_IN */;\n // Add the ripple reference to the list of all active ripples.\n this._activeRipples.add(rippleRef);\n if (!config.persistent) {\n this._mostRecentTransientRipple = rippleRef;\n }\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 const isMostRecentTransientRipple = rippleRef === this._mostRecentTransientRipple;\n rippleRef.state = 1 /* VISIBLE */;\n // When the timer runs out while the user has kept their pointer down, we want to\n // keep only the persistent ripples and the latest transient ripple. We do this,\n // because we don't want stacked transient ripples to appear after their enter\n // animation has finished.\n if (!config.persistent && (!isMostRecentTransientRipple || !this._isPointerDown)) {\n rippleRef.fadeOut();\n }\n }, duration);\n return rippleRef;\n }\n /** Fades out a ripple reference. */\n fadeOutRipple(rippleRef) {\n const wasActive = this._activeRipples.delete(rippleRef);\n if (rippleRef === this._mostRecentTransientRipple) {\n this._mostRecentTransientRipple = null;\n }\n // Clear out the cached bounding rect if we have no more ripples.\n if (!this._activeRipples.size) {\n this._containerRect = null;\n }\n // For ripples that are not active anymore, don't re-run the fade-out animation.\n if (!wasActive) {\n return;\n }\n const rippleEl = rippleRef.element;\n const animationConfig = Object.assign(Object.assign({}, defaultRippleAnimationConfig), rippleRef.config.animation);\n rippleEl.style.transitionDuration = `${animationConfig.exitDuration}ms`;\n rippleEl.style.opacity = '0';\n rippleRef.state = 2 /* FADING_OUT */;\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\n this._runTimeoutOutsideZone(() => {\n rippleRef.state = 3 /* HIDDEN */;\n rippleEl.parentNode.removeChild(rippleEl);\n }, animationConfig.exitDuration);\n }\n /** Fades out all currently active ripples. */\n fadeOutAll() {\n this._activeRipples.forEach(ripple => ripple.fadeOut());\n }\n /** Fades out all currently active non-persistent ripples. */\n fadeOutAllNonPersistent() {\n this._activeRipples.forEach(ripple => {\n if (!ripple.config.persistent) {\n ripple.fadeOut();\n }\n });\n }\n /** Sets up the trigger event listeners */\n setupTriggerEvents(elementOrElementRef) {\n const element = coerceElement(elementOrElementRef);\n if (!element || element === this._triggerElement) {\n return;\n }\n // Remove all previously registered event listeners from the trigger element.\n this._removeTriggerEvents();\n this._triggerElement = element;\n this._registerEvents(pointerDownEvents);\n }\n /**\n * Handles all registered events.\n * @docs-private\n */\n handleEvent(event) {\n if (event.type === 'mousedown') {\n this._onMousedown(event);\n }\n else if (event.type === 'touchstart') {\n this._onTouchStart(event);\n }\n else {\n this._onPointerUp();\n }\n // If pointer-up events haven't been registered yet, do so now.\n // We do this on-demand in order to reduce the total number of event listeners\n // registered by the ripples, which speeds up the rendering time for large UIs.\n if (!this._pointerUpEventsRegistered) {\n this._registerEvents(pointerUpEvents);\n this._pointerUpEventsRegistered = true;\n }\n }\n /** Function being called whenever the trigger is being pressed using mouse. */\n _onMousedown(event) {\n // Screen readers will fire fake mouse events for space/enter. Skip launching a\n // ripple in this case for consistency with the non-screen-reader experience.\n const isFakeMousedown = isFakeMousedownFromScreenReader(event);\n const isSyntheticEvent = this._lastTouchStartEvent &&\n Date.now() < this._lastTouchStartEvent + ignoreMouseEventsTimeout;\n if (!this._target.rippleDisabled && !isFakeMousedown && !isSyntheticEvent) {\n this._isPointerDown = true;\n this.fadeInRipple(event.clientX, event.clientY, this._target.rippleConfig);\n }\n }\n /** Function being called whenever the trigger is being pressed using touch. */\n _onTouchStart(event) {\n if (!this._target.rippleDisabled && !isFakeTouchstartFromScreenReader(event)) {\n // Some browsers fire mouse events after a `touchstart` event. Those synthetic mouse\n // events will launch a second ripple if we don't ignore mouse events for a specific\n // time after a touchstart event.\n this._lastTouchStartEvent = Date.now();\n this._isPointerDown = true;\n // Use `changedTouches` so we skip any touches where the user put\n // their finger down, but used another finger to tap the element again.\n const touches = event.changedTouches;\n for (let i = 0; i < touches.length; i++) {\n this.fadeInRipple(touches[i].clientX, touches[i].clientY, this._target.rippleConfig);\n }\n }\n }\n /** Function being called whenever the trigger is being released. */\n _onPointerUp() {\n if (!this._isPointerDown) {\n return;\n }\n this._isPointerDown = false;\n // Fade-out all ripples that are visible and not persistent.\n this._activeRipples.forEach(ripple => {\n // By default, only ripples that are completely visible will fade out on pointer release.\n // If the `terminateOnPointerUp` option is set, ripples that still fade in will also fade out.\n const isVisible = ripple.state === 1 /* VISIBLE */ ||\n ripple.config.terminateOnPointerUp && ripple.state === 0 /* FADING_IN */;\n if (!ripple.config.persistent && isVisible) {\n ripple.fadeOut();\n }\n });\n }\n /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */\n _runTimeoutOutsideZone(fn, delay = 0) {\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n }\n /** Registers event listeners for a given list of events. */\n _registerEvents(eventTypes) {\n this._ngZone.runOutsideAngular(() => {\n eventTypes.forEach((type) => {\n this._triggerElement.addEventListener(type, this, passiveEventOptions);\n });\n });\n }\n /** Removes previously registered event listeners from the trigger element. */\n _removeTriggerEvents() {\n if (this._triggerElement) {\n pointerDownEvents.forEach((type) => {\n this._triggerElement.removeEventListener(type, this, passiveEventOptions);\n });\n if (this._pointerUpEventsRegistered) {\n pointerUpEvents.forEach((type) => {\n this._triggerElement.removeEventListener(type, this, passiveEventOptions);\n });\n }\n }\n }\n}\n/** Enforces a style recalculation of a DOM element by computing its styles. */\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 */\nfunction distanceToFurthestCorner(x, y, rect) {\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n return Math.sqrt(distX * distX + distY * distY);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Injection token that can be used to specify the global ripple options. */\nconst MAT_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('mat-ripple-global-options');\nclass MatRipple {\n constructor(_elementRef, ngZone, platform, globalOptions, _animationMode) {\n this._elementRef = _elementRef;\n this._animationMode = _animationMode;\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 this._disabled = false;\n /** Whether ripple directive is initialized and the input bindings are set. */\n this._isInitialized = false;\n this._globalOptions = globalOptions || {};\n this._rippleRenderer = new RippleRenderer(this, ngZone, _elementRef, platform);\n }\n /**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n */\n get disabled() { return this._disabled; }\n set disabled(value) {\n if (value) {\n this.fadeOutAllNonPersistent();\n }\n this._disabled = value;\n this._setupTriggerEventsIfEnabled();\n }\n /**\n * The element that triggers the ripple when click events are received.\n * Defaults to the directive's host element.\n */\n get trigger() { return this._trigger || this._elementRef.nativeElement; }\n set trigger(trigger) {\n this._trigger = trigger;\n this._setupTriggerEventsIfEnabled();\n }\n ngOnInit() {\n this._isInitialized = true;\n this._setupTriggerEventsIfEnabled();\n }\n ngOnDestroy() {\n this._rippleRenderer._removeTriggerEvents();\n }\n /** Fades out all currently showing ripple elements. */\n fadeOutAll() {\n this._rippleRenderer.fadeOutAll();\n }\n /** Fades out all currently showing non-persistent ripple elements. */\n fadeOutAllNonPersistent() {\n this._rippleRenderer.fadeOutAllNonPersistent();\n }\n /**\n * Ripple configuration from the directive's input values.\n * @docs-private Implemented as part of RippleTarget\n */\n get rippleConfig() {\n return {\n centered: this.centered,\n radius: this.radius,\n color: this.color,\n animation: Object.assign(Object.assign(Object.assign({}, this._globalOptions.animation), (this._animationMode === 'NoopAnimations' ? { enterDuration: 0, exitDuration: 0 } : {})), this.animation),\n terminateOnPointerUp: this._globalOptions.terminateOnPointerUp,\n };\n }\n /**\n * Whether ripples on pointer-down are disabled or not.\n * @docs-private Implemented as part of RippleTarget\n */\n get rippleDisabled() {\n return this.disabled || !!this._globalOptions.disabled;\n }\n /** Sets up the trigger event listeners if ripples are enabled. */\n _setupTriggerEventsIfEnabled() {\n if (!this.disabled && this._isInitialized) {\n this._rippleRenderer.setupTriggerEvents(this.trigger);\n }\n }\n /** Launches a manual ripple at the specified coordinated or just by the ripple config. */\n launch(configOrX, y = 0, config) {\n if (typeof configOrX === 'number') {\n return this._rippleRenderer.fadeInRipple(configOrX, y, Object.assign(Object.assign({}, this.rippleConfig), config));\n }\n else {\n return this._rippleRenderer.fadeInRipple(0, 0, Object.assign(Object.assign({}, this.rippleConfig), configOrX));\n }\n }\n}\nMatRipple.ɵfac = function MatRipple_Factory(t) { return new (t || MatRipple)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.Platform), ɵngcc0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\nMatRipple.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatRipple, selectors: [[\"\", \"mat-ripple\", \"\"], [\"\", \"matRipple\", \"\"]], hostAttrs: [1, \"mat-ripple\"], hostVars: 2, hostBindings: function MatRipple_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-ripple-unbounded\", ctx.unbounded);\n } }, inputs: { radius: [\"matRippleRadius\", \"radius\"], disabled: [\"matRippleDisabled\", \"disabled\"], trigger: [\"matRippleTrigger\", \"trigger\"], color: [\"matRippleColor\", \"color\"], unbounded: [\"matRippleUnbounded\", \"unbounded\"], centered: [\"matRippleCentered\", \"centered\"], animation: [\"matRippleAnimation\", \"animation\"] }, exportAs: [\"matRipple\"] });\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 { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n];\nMatRipple.propDecorators = {\n color: [{ type: Input, args: ['matRippleColor',] }],\n unbounded: [{ type: Input, args: ['matRippleUnbounded',] }],\n centered: [{ type: Input, args: ['matRippleCentered',] }],\n radius: [{ type: Input, args: ['matRippleRadius',] }],\n animation: [{ type: Input, args: ['matRippleAnimation',] }],\n disabled: [{ type: Input, args: ['matRippleDisabled',] }],\n trigger: [{ type: Input, args: ['matRippleTrigger',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatRipple, [{\n type: Directive,\n args: [{\n selector: '[mat-ripple], [matRipple]',\n exportAs: 'matRipple',\n host: {\n 'class': 'mat-ripple',\n '[class.mat-ripple-unbounded]': 'unbounded'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc2.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }] }, { type: String, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }]; }, { radius: [{\n type: Input,\n args: ['matRippleRadius']\n }], disabled: [{\n type: Input,\n args: ['matRippleDisabled']\n }], trigger: [{\n type: Input,\n args: ['matRippleTrigger']\n }], color: [{\n type: Input,\n args: ['matRippleColor']\n }], unbounded: [{\n type: Input,\n args: ['matRippleUnbounded']\n }], centered: [{\n type: Input,\n args: ['matRippleCentered']\n }], animation: [{\n type: Input,\n args: ['matRippleAnimation']\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatRippleModule {\n}\nMatRippleModule.ɵfac = function MatRippleModule_Factory(t) { return new (t || MatRippleModule)(); };\nMatRippleModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatRippleModule });\nMatRippleModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [MatCommonModule, PlatformModule, MatCommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatRippleModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, PlatformModule],\n exports: [MatRipple, MatCommonModule],\n declarations: [MatRipple]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatRippleModule, { declarations: function () { return [MatRipple]; }, imports: function () { return [MatCommonModule, PlatformModule]; }, exports: function () { return [MatRipple, MatCommonModule]; } }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * 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 `<mat-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\nclass MatPseudoCheckbox {\n constructor(_animationMode) {\n this._animationMode = _animationMode;\n /** Display state of the checkbox. */\n this.state = 'unchecked';\n /** Whether the checkbox is disabled. */\n this.disabled = false;\n }\n}\nMatPseudoCheckbox.ɵfac = function MatPseudoCheckbox_Factory(t) { return new (t || MatPseudoCheckbox)(ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\nMatPseudoCheckbox.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatPseudoCheckbox, selectors: [[\"mat-pseudo-checkbox\"]], hostAttrs: [1, \"mat-pseudo-checkbox\"], hostVars: 8, hostBindings: function MatPseudoCheckbox_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-pseudo-checkbox-indeterminate\", ctx.state === \"indeterminate\")(\"mat-pseudo-checkbox-checked\", ctx.state === \"checked\")(\"mat-pseudo-checkbox-disabled\", ctx.disabled)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n } }, inputs: { state: \"state\", disabled: \"disabled\" }, decls: 0, vars: 0, template: function MatPseudoCheckbox_Template(rf, ctx) { }, styles: [\".mat-pseudo-checkbox{width:16px;height:16px;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, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:\\\"\\\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\\n\"], encapsulation: 2, changeDetection: 0 });\nMatPseudoCheckbox.ctorParameters = () => [\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n];\nMatPseudoCheckbox.propDecorators = {\n state: [{ type: Input }],\n disabled: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatPseudoCheckbox, [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, selector: 'mat-pseudo-checkbox', template: '', 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 '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"'\n }, styles: [\".mat-pseudo-checkbox{width:16px;height:16px;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, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:\\\"\\\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\\n\"] }]\n }], function () { return [{ type: String, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }]; }, { state: [{\n type: Input\n }], disabled: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatPseudoCheckboxModule {\n}\nMatPseudoCheckboxModule.ɵfac = function MatPseudoCheckboxModule_Factory(t) { return new (t || MatPseudoCheckboxModule)(); };\nMatPseudoCheckboxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatPseudoCheckboxModule });\nMatPseudoCheckboxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [MatCommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatPseudoCheckboxModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatPseudoCheckbox],\n declarations: [MatPseudoCheckbox]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatPseudoCheckboxModule, { declarations: [MatPseudoCheckbox], imports: [MatCommonModule], exports: [MatPseudoCheckbox] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token used to provide the parent component to options.\n */\nconst MAT_OPTION_PARENT_COMPONENT = new InjectionToken('MAT_OPTION_PARENT_COMPONENT');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Notes on the accessibility pattern used for `mat-optgroup`.\n// The option group has two different \"modes\": regular and inert. The regular mode uses the\n// recommended a11y pattern which has `role=\"group\"` on the group element with `aria-labelledby`\n// pointing to the label. This works for `mat-select`, but it seems to hit a bug for autocomplete\n// under VoiceOver where the group doesn't get read out at all. The bug appears to be that if\n// there's __any__ a11y-related attribute on the group (e.g. `role` or `aria-labelledby`),\n// VoiceOver on Safari won't read it out.\n// We've introduced the `inert` mode as a workaround. Under this mode, all a11y attributes are\n// removed from the group, and we get the screen reader to read out the group label by mirroring it\n// inside an invisible element in the option. This is sub-optimal, because the screen reader will\n// repeat the group label on each navigation, whereas the default pattern only reads the group when\n// the user enters a new group. The following alternate approaches were considered:\n// 1. Reading out the group label using the `LiveAnnouncer` solves the problem, but we can't control\n// when the text will be read out so sometimes it comes in too late or never if the user\n// navigates quickly.\n// 2. `<mat-option aria-describedby=\"groupLabel\"` - This works on Safari, but VoiceOver in Chrome\n// won't read out the description at all.\n// 3. `<mat-option aria-labelledby=\"optionLabel groupLabel\"` - This works on Chrome, but Safari\n// doesn't read out the text at all. Furthermore, on\n// Boilerplate for applying mixins to MatOptgroup.\n/** @docs-private */\nclass MatOptgroupBase {\n}\nconst _MatOptgroupMixinBase = mixinDisabled(MatOptgroupBase);\n// Counter for unique group ids.\nlet _uniqueOptgroupIdCounter = 0;\nclass _MatOptgroupBase extends _MatOptgroupMixinBase {\n constructor(parent) {\n var _a;\n super();\n /** Unique id for the underlying label. */\n this._labelId = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;\n this._inert = (_a = parent === null || parent === void 0 ? void 0 : parent.inertGroups) !== null && _a !== void 0 ? _a : false;\n }\n}\n_MatOptgroupBase.ɵfac = function _MatOptgroupBase_Factory(t) { return new (t || _MatOptgroupBase)(ɵngcc0.ɵɵdirectiveInject(MAT_OPTION_PARENT_COMPONENT, 8)); };\n_MatOptgroupBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatOptgroupBase, inputs: { label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n_MatOptgroupBase.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [MAT_OPTION_PARENT_COMPONENT,] }, { type: Optional }] }\n];\n_MatOptgroupBase.propDecorators = {\n label: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatOptgroupBase, [{\n type: Directive\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }, {\n type: Optional\n }] }]; }, { label: [{\n type: Input\n }] }); })();\n/**\n * Injection token that can be used to reference instances of `MatOptgroup`. It serves as\n * alternative token to the actual `MatOptgroup` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_OPTGROUP = new InjectionToken('MatOptgroup');\n/**\n * Component that is used to group instances of `mat-option`.\n */\nclass MatOptgroup extends _MatOptgroupBase {\n}\nMatOptgroup.ɵfac = /*@__PURE__*/ function () { let ɵMatOptgroup_BaseFactory; return function MatOptgroup_Factory(t) { return (ɵMatOptgroup_BaseFactory || (ɵMatOptgroup_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatOptgroup)))(t || MatOptgroup); }; }();\nMatOptgroup.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatOptgroup, selectors: [[\"mat-optgroup\"]], hostAttrs: [1, \"mat-optgroup\"], hostVars: 5, hostBindings: function MatOptgroup_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx._inert ? null : \"group\")(\"aria-disabled\", ctx._inert ? null : ctx.disabled.toString())(\"aria-labelledby\", ctx._inert ? null : ctx._labelId);\n ɵngcc0.ɵɵclassProp(\"mat-optgroup-disabled\", ctx.disabled);\n } }, inputs: { disabled: \"disabled\" }, exportAs: [\"matOptgroup\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: MAT_OPTGROUP, useExisting: MatOptgroup }]), ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 4, vars: 2, consts: [[\"aria-hidden\", \"true\", 1, \"mat-optgroup-label\", 3, \"id\"]], template: function MatOptgroup_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c0);\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(3, 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"id\", ctx._labelId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"\", ctx.label, \" \");\n } }, styles: [\".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\\n\"], encapsulation: 2, changeDetection: 0 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatOptgroup, [{\n type: Component,\n args: [{ selector: 'mat-optgroup', exportAs: 'matOptgroup', template: \"<span class=\\\"mat-optgroup-label\\\" aria-hidden=\\\"true\\\" [id]=\\\"_labelId\\\">{{ label }} <ng-content></ng-content></span>\\n<ng-content select=\\\"mat-option, ng-container\\\"></ng-content>\\n\", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['disabled'], host: {\n 'class': 'mat-optgroup',\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled.toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId',\n '[class.mat-optgroup-disabled]': 'disabled'\n }, providers: [{ provide: MAT_OPTGROUP, useExisting: MatOptgroup }], styles: [\".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\\n\"] }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet _uniqueIdCounter = 0;\n/** Event object emitted by MatOption when selected or deselected. */\nclass MatOptionSelectionChange {\n constructor(\n /** Reference to the option that emitted the event. */\n source, \n /** Whether the change in the option's value was a result of a user action. */\n isUserInput = false) {\n this.source = source;\n this.isUserInput = isUserInput;\n }\n}\nclass _MatOptionBase {\n constructor(_element, _changeDetectorRef, _parent, group) {\n this._element = _element;\n this._changeDetectorRef = _changeDetectorRef;\n this._parent = _parent;\n this.group = group;\n this._selected = false;\n this._active = false;\n this._disabled = false;\n this._mostRecentViewValue = '';\n /** The unique ID of the option. */\n this.id = `mat-option-${_uniqueIdCounter++}`;\n /** Event emitted when the option is selected or deselected. */\n // tslint:disable-next-line:no-output-on-prefix\n this.onSelectionChange = new EventEmitter();\n /** Emits when the state of the option changes and any parents have to be notified. */\n this._stateChanges = new Subject();\n }\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple() { return this._parent && this._parent.multiple; }\n /** Whether or not the option is currently selected. */\n get selected() { return this._selected; }\n /** Whether the option is disabled. */\n get disabled() { return (this.group && this.group.disabled) || this._disabled; }\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n /** Whether ripples for the option are disabled. */\n get disableRipple() { return this._parent && this._parent.disableRipple; }\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 */\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 */\n get viewValue() {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n }\n /** Selects the option. */\n select() {\n if (!this._selected) {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n }\n /** Deselects the option. */\n deselect() {\n if (this._selected) {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n }\n /** Sets focus onto this option. */\n focus(_origin, options) {\n // Note that we aren't using `_origin`, but we need to keep it because some internal consumers\n // use `MatOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.\n const element = this._getHostElement();\n if (typeof element.focus === 'function') {\n element.focus(options);\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 */\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 */\n setInactiveStyles() {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel() {\n return this.viewValue;\n }\n /** Ensures the option is selected when activated from the keyboard. */\n _handleKeydown(event) {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {\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 */\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 * Gets the `aria-selected` value for the option. We explicitly omit the `aria-selected`\n * attribute from single-selection, unselected options. Including the `aria-selected=\"false\"`\n * attributes adds a significant amount of noise to screen-reader users without providing useful\n * information.\n */\n _getAriaSelected() {\n return this.selected || (this.multiple ? false : null);\n }\n /** Returns the correct tabindex for the option depending on disabled state. */\n _getTabIndex() {\n return this.disabled ? '-1' : '0';\n }\n /** Gets the host DOM element. */\n _getHostElement() {\n return this._element.nativeElement;\n }\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `mat-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n if (viewValue !== this._mostRecentViewValue) {\n this._mostRecentViewValue = viewValue;\n this._stateChanges.next();\n }\n }\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n /** Emits the selection change event. */\n _emitSelectionChangeEvent(isUserInput = false) {\n this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));\n }\n}\n_MatOptionBase.ɵfac = function _MatOptionBase_Factory(t) { return new (t || _MatOptionBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(_MatOptgroupBase)); };\n_MatOptionBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatOptionBase, inputs: { id: \"id\", disabled: \"disabled\", value: \"value\" }, outputs: { onSelectionChange: \"onSelectionChange\" } });\n_MatOptionBase.ctorParameters = () => [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: undefined },\n { type: _MatOptgroupBase }\n];\n_MatOptionBase.propDecorators = {\n value: [{ type: Input }],\n id: [{ type: Input }],\n disabled: [{ type: Input }],\n onSelectionChange: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatOptionBase, [{\n type: Directive\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: undefined }, { type: _MatOptgroupBase }]; }, { id: [{\n type: Input\n }], onSelectionChange: [{\n type: Output\n }], disabled: [{\n type: Input\n }], value: [{\n type: Input\n }] }); })();\n/**\n * Single option inside of a `<mat-select>` element.\n */\nclass MatOption extends _MatOptionBase {\n constructor(element, changeDetectorRef, parent, group) {\n super(element, changeDetectorRef, parent, group);\n }\n}\nMatOption.ɵfac = function MatOption_Factory(t) { return new (t || MatOption)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(MAT_OPTION_PARENT_COMPONENT, 8), ɵngcc0.ɵɵdirectiveInject(MAT_OPTGROUP, 8)); };\nMatOption.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatOption, selectors: [[\"mat-option\"]], hostAttrs: [\"role\", \"option\", 1, \"mat-option\", \"mat-focus-indicator\"], hostVars: 12, hostBindings: function MatOption_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function MatOption_click_HostBindingHandler() { return ctx._selectViaInteraction(); })(\"keydown\", function MatOption_keydown_HostBindingHandler($event) { return ctx._handleKeydown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx._getTabIndex())(\"aria-selected\", ctx._getAriaSelected())(\"aria-disabled\", ctx.disabled.toString());\n ɵngcc0.ɵɵclassProp(\"mat-selected\", ctx.selected)(\"mat-option-multiple\", ctx.multiple)(\"mat-active\", ctx.active)(\"mat-option-disabled\", ctx.disabled);\n } }, exportAs: [\"matOption\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c2, decls: 5, vars: 4, consts: [[\"class\", \"mat-option-pseudo-checkbox\", 3, \"state\", \"disabled\", 4, \"ngIf\"], [1, \"mat-option-text\"], [\"class\", \"cdk-visually-hidden\", 4, \"ngIf\"], [\"mat-ripple\", \"\", 1, \"mat-option-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mat-option-pseudo-checkbox\", 3, \"state\", \"disabled\"], [1, \"cdk-visually-hidden\"]], template: function MatOption_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, MatOption_mat_pseudo_checkbox_0_Template, 1, 2, \"mat-pseudo-checkbox\", 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, MatOption_span_3_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵelement(4, \"div\", 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.multiple);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.group && ctx.group._inert);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"matRippleTrigger\", ctx._getHostElement())(\"matRippleDisabled\", ctx.disabled || ctx.disableRipple);\n } }, dependencies: [MatRipple, ɵngcc3.NgIf, MatPseudoCheckbox], styles: [\".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\\n\"], encapsulation: 2, changeDetection: 0 });\nMatOption.ctorParameters = () => [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_OPTION_PARENT_COMPONENT,] }] },\n { type: MatOptgroup, decorators: [{ type: Optional }, { type: Inject, args: [MAT_OPTGROUP,] }] }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatOption, [{\n type: Component,\n args: [{ selector: 'mat-option', exportAs: 'matOption', 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]': '_getAriaSelected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class.mat-option-disabled]': 'disabled',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-option mat-focus-indicator'\n }, template: \"<mat-pseudo-checkbox *ngIf=\\\"multiple\\\" class=\\\"mat-option-pseudo-checkbox\\\"\\n [state]=\\\"selected ? 'checked' : 'unchecked'\\\" [disabled]=\\\"disabled\\\"></mat-pseudo-checkbox>\\n\\n<span class=\\\"mat-option-text\\\"><ng-content></ng-content></span>\\n\\n<!-- See a11y notes inside optgroup.ts for context behind this element. -->\\n<span class=\\\"cdk-visually-hidden\\\" *ngIf=\\\"group && group._inert\\\">({{ group.label }})</span>\\n\\n<div class=\\\"mat-option-ripple\\\" mat-ripple\\n [matRippleTrigger]=\\\"_getHostElement()\\\"\\n [matRippleDisabled]=\\\"disabled || disableRipple\\\">\\n</div>\\n\", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\\n\"] }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }] }, { type: MatOptgroup, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTGROUP]\n }] }]; }, null); })();\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 * @docs-private\n */\nfunction _countGroupLabelsBeforeOption(optionIndex, options, optionGroups) {\n if (optionGroups.length) {\n let optionsArray = options.toArray();\n let groups = optionGroups.toArray();\n let groupCounter = 0;\n for (let 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/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionOffset Offset of the option from the top of the panel.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nfunction _getOptionScrollPosition(optionOffset, optionHeight, currentScrollPosition, panelHeight) {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n return currentScrollPosition;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatOptionModule {\n}\nMatOptionModule.ɵfac = function MatOptionModule_Factory(t) { return new (t || MatOptionModule)(); };\nMatOptionModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatOptionModule });\nMatOptionModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatOptionModule, [{\n type: NgModule,\n args: [{\n imports: [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule],\n exports: [MatOption, MatOptgroup],\n declarations: [MatOption, MatOptgroup]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatOptionModule, { declarations: function () { return [MatOption, MatOptgroup]; }, imports: function () { return [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule]; }, exports: function () { return [MatOption, MatOptgroup]; } }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationCurves, AnimationDurations, DateAdapter, ErrorStateMatcher, MATERIAL_SANITY_CHECKS, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY, MAT_NATIVE_DATE_FORMATS, MAT_OPTGROUP, MAT_OPTION_PARENT_COMPONENT, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatLine, MatLineModule, MatNativeDateModule, MatOptgroup, MatOption, MatOptionModule, MatOptionSelectionChange, MatPseudoCheckbox, MatPseudoCheckboxModule, MatRipple, MatRippleModule, NativeDateAdapter, NativeDateModule, RippleRef, RippleRenderer, ShowOnDirtyErrorStateMatcher, VERSION, _MatOptgroupBase, _MatOptionBase, _countGroupLabelsBeforeOption, _getOptionScrollPosition, defaultRippleAnimationConfig, mixinColor, mixinDisableRipple, mixinDisabled, mixinErrorState, mixinInitialized, mixinTabIndex, setLines, ɵ0$1 as ɵ0, MATERIAL_SANITY_CHECKS_FACTORY as ɵangular_material_src_material_core_core_a };\n\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |