Mr.Combet Webshell
Your IP :
216.73.216.136
Server IP :
103.233.58.157
Server :
Windows NT WIN-4PGF72KEHKB 10.0 build 17763 (Windows Server 2016) AMD64
Server Software :
Microsoft-IIS/10.0
PHP Version :
7.3.25
Add File :
Submit
Add Directory :
Submit
Dir :
C:
/
inetpub
/
wwwroot
/
ActionAidWeb
/
View File Name :
13-es2015.6dfb2dda262d7ca26108.js
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{ /***/ "./node_modules/@angular/material/esm2015/autocomplete.js": /*!****************************************************************!*\ !*** ./node_modules/@angular/material/esm2015/autocomplete.js ***! \****************************************************************/ /*! exports provided: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MatAutocompleteSelectedEvent, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, getMatAutocompleteMissingPanelError, AUTOCOMPLETE_OPTION_HEIGHT, AUTOCOMPLETE_PANEL_HEIGHT, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, MatAutocompleteTrigger, MatAutocompleteOrigin */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY", function() { return MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteSelectedEvent", function() { return MatAutocompleteSelectedEvent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_DEFAULT_OPTIONS", function() { return MAT_AUTOCOMPLETE_DEFAULT_OPTIONS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatAutocomplete", function() { return MatAutocomplete; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteModule", function() { return MatAutocompleteModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY", function() { return MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMatAutocompleteMissingPanelError", function() { return getMatAutocompleteMissingPanelError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AUTOCOMPLETE_OPTION_HEIGHT", function() { return AUTOCOMPLETE_OPTION_HEIGHT; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AUTOCOMPLETE_PANEL_HEIGHT", function() { return AUTOCOMPLETE_PANEL_HEIGHT; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_SCROLL_STRATEGY", function() { return MAT_AUTOCOMPLETE_SCROLL_STRATEGY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER", function() { return MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_VALUE_ACCESSOR", function() { return MAT_AUTOCOMPLETE_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteTrigger", function() { return MatAutocompleteTrigger; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteOrigin", function() { return MatAutocompleteOrigin; }); /* harmony import */ var _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/cdk/a11y */ "./node_modules/@angular/cdk/esm2015/a11y.js"); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/cdk/bidi */ "./node_modules/@angular/cdk/esm2015/bidi.js"); /* harmony import */ var _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/cdk/keycodes */ "./node_modules/@angular/cdk/esm2015/keycodes.js"); /* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/cdk/overlay */ "./node_modules/@angular/cdk/esm2015/overlay.js"); /* harmony import */ var _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/cdk/portal */ "./node_modules/@angular/cdk/esm2015/portal.js"); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js"); /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); /* harmony import */ var _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/cdk/scrolling */ "./node_modules/@angular/cdk/esm2015/scrolling.js"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js"); /* harmony import */ var _angular_material_form_field__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/form-field */ "./node_modules/@angular/material/esm2015/form-field.js"); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Autocomplete IDs need to be unique across components, so this counter exists outside of * the component definition. * @type {?} */ let _uniqueAutocompleteIdCounter = 0; /** * Event object that is emitted when an autocomplete option is selected. */ class MatAutocompleteSelectedEvent { /** * @param {?} source * @param {?} option */ constructor(source, option) { this.source = source; this.option = option; } } // Boilerplate for applying mixins to MatAutocomplete. /** * \@docs-private */ class MatAutocompleteBase { } /** @type {?} */ const _MatAutocompleteMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["mixinDisableRipple"])(MatAutocompleteBase); /** * Injection token to be used to override the default options for `mat-autocomplete`. * @type {?} */ const MAT_AUTOCOMPLETE_DEFAULT_OPTIONS = new _angular_core__WEBPACK_IMPORTED_MODULE_2__["InjectionToken"]('mat-autocomplete-default-options', { providedIn: 'root', factory: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, }); /** * \@docs-private * @return {?} */ function MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY() { return { autoActiveFirstOption: false }; } class MatAutocomplete extends _MatAutocompleteMixinBase { /** * @param {?} _changeDetectorRef * @param {?} _elementRef * @param {?} defaults */ constructor(_changeDetectorRef, _elementRef, defaults) { super(); this._changeDetectorRef = _changeDetectorRef; this._elementRef = _elementRef; /** * Whether the autocomplete panel should be visible, depending on option length. */ this.showPanel = false; this._isOpen = false; /** * Function that maps an option's control value to its display value in the trigger. */ this.displayWith = null; /** * Event that is emitted whenever an option from the list is selected. */ this.optionSelected = new _angular_core__WEBPACK_IMPORTED_MODULE_2__["EventEmitter"](); /** * Event that is emitted when the autocomplete panel is opened. */ this.opened = new _angular_core__WEBPACK_IMPORTED_MODULE_2__["EventEmitter"](); /** * Event that is emitted when the autocomplete panel is closed. */ this.closed = new _angular_core__WEBPACK_IMPORTED_MODULE_2__["EventEmitter"](); this._classList = {}; /** * Unique ID to be used by autocomplete trigger's "aria-owns" property. */ this.id = `mat-autocomplete-${_uniqueAutocompleteIdCounter++}`; this._autoActiveFirstOption = !!defaults.autoActiveFirstOption; } /** * Whether the autocomplete panel is open. * @return {?} */ get isOpen() { return this._isOpen && this.showPanel; } /** * Whether the first option should be highlighted when the autocomplete panel is opened. * Can be configured globally through the `MAT_AUTOCOMPLETE_DEFAULT_OPTIONS` token. * @return {?} */ get autoActiveFirstOption() { return this._autoActiveFirstOption; } /** * @param {?} value * @return {?} */ set autoActiveFirstOption(value) { this._autoActiveFirstOption = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); } /** * Takes classes set on the host mat-autocomplete element and applies them to the panel * inside the overlay container to allow for easy styling. * @param {?} value * @return {?} */ set classList(value) { if (value && value.length) { this._classList = value.split(' ').reduce((/** * @param {?} classList * @param {?} className * @return {?} */ (classList, className) => { classList[className.trim()] = true; return classList; }), (/** @type {?} */ ({}))); } else { this._classList = {}; } this._setVisibilityClasses(this._classList); this._elementRef.nativeElement.className = ''; } /** * @return {?} */ ngAfterContentInit() { this._keyManager = new _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__["ActiveDescendantKeyManager"](this.options).withWrap(); // Set the initial visibility state. this._setVisibility(); } /** * Sets the panel scrollTop. This allows us to manually scroll to display options * above or below the fold, as they are not actually being focused when active. * @param {?} scrollTop * @return {?} */ _setScrollTop(scrollTop) { if (this.panel) { this.panel.nativeElement.scrollTop = scrollTop; } } /** * Returns the panel's scrollTop. * @return {?} */ _getScrollTop() { return this.panel ? this.panel.nativeElement.scrollTop : 0; } /** * Panel should hide itself when the option list is empty. * @return {?} */ _setVisibility() { this.showPanel = !!this.options.length; this._setVisibilityClasses(this._classList); this._changeDetectorRef.markForCheck(); } /** * Emits the `select` event. * @param {?} option * @return {?} */ _emitSelectEvent(option) { /** @type {?} */ const event = new MatAutocompleteSelectedEvent(this, option); this.optionSelected.emit(event); } /** * Sets the autocomplete visibility classes on a classlist based on the panel is visible. * @private * @param {?} classList * @return {?} */ _setVisibilityClasses(classList) { classList['mat-autocomplete-visible'] = this.showPanel; classList['mat-autocomplete-hidden'] = !this.showPanel; } } MatAutocomplete.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Component"], args: [{selector: 'mat-autocomplete', template: "<ng-template><div class=\"mat-autocomplete-panel\" role=\"listbox\" [id]=\"id\" [ngClass]=\"_classList\" #panel><ng-content></ng-content></div></ng-template>", styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}@media (-ms-high-contrast:active){.mat-autocomplete-panel{outline:solid 1px}}"], encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ChangeDetectionStrategy"].OnPush, exportAs: 'matAutocomplete', inputs: ['disableRipple'], host: { 'class': 'mat-autocomplete' }, providers: [ { provide: _angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MAT_OPTION_PARENT_COMPONENT"], useExisting: MatAutocomplete } ] },] }, ]; /** @nocollapse */ MatAutocomplete.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ElementRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Inject"], args: [MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,] }] } ]; MatAutocomplete.propDecorators = { template: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ViewChild"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_2__["TemplateRef"], { static: true },] }], panel: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ViewChild"], args: ['panel', { static: false },] }], options: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ContentChildren"], args: [_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatOption"], { descendants: true },] }], optionGroups: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ContentChildren"], args: [_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatOptgroup"],] }], displayWith: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"] }], autoActiveFirstOption: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"] }], panelWidth: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"] }], optionSelected: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Output"] }], opened: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Output"] }], closed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Output"] }], classList: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['class',] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Directive applied to an element to make it usable * as a connection point for an autocomplete panel. */ class MatAutocompleteOrigin { /** * @param {?} elementRef */ constructor(elementRef) { this.elementRef = elementRef; } } MatAutocompleteOrigin.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Directive"], args: [{ selector: '[matAutocompleteOrigin]', exportAs: 'matAutocompleteOrigin', },] }, ]; /** @nocollapse */ MatAutocompleteOrigin.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ElementRef"] } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * The height of each autocomplete option. * @type {?} */ const AUTOCOMPLETE_OPTION_HEIGHT = 48; /** * The total height of the autocomplete panel. * @type {?} */ const AUTOCOMPLETE_PANEL_HEIGHT = 256; /** * Injection token that determines the scroll handling while the autocomplete panel is open. * @type {?} */ const MAT_AUTOCOMPLETE_SCROLL_STRATEGY = new _angular_core__WEBPACK_IMPORTED_MODULE_2__["InjectionToken"]('mat-autocomplete-scroll-strategy'); /** * \@docs-private * @param {?} overlay * @return {?} */ function MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay) { return (/** * @return {?} */ () => overlay.scrollStrategies.reposition()); } /** * \@docs-private * @type {?} */ const MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER = { provide: MAT_AUTOCOMPLETE_SCROLL_STRATEGY, deps: [_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_6__["Overlay"]], useFactory: MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, }; /** * Provider that allows the autocomplete to register as a ControlValueAccessor. * \@docs-private * @type {?} */ const MAT_AUTOCOMPLETE_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_11__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["forwardRef"])((/** * @return {?} */ () => MatAutocompleteTrigger)), multi: true }; /** * Creates an error to be thrown when attempting to use an autocomplete trigger without a panel. * \@docs-private * @return {?} */ function getMatAutocompleteMissingPanelError() { return Error('Attempting to open an undefined instance of `mat-autocomplete`. ' + 'Make sure that the id passed to the `matAutocomplete` is correct and that ' + 'you\'re attempting to open it after the ngAfterContentInit hook.'); } class MatAutocompleteTrigger { /** * @param {?} _element * @param {?} _overlay * @param {?} _viewContainerRef * @param {?} _zone * @param {?} _changeDetectorRef * @param {?} scrollStrategy * @param {?} _dir * @param {?} _formField * @param {?} _document * @param {?=} _viewportRuler */ constructor(_element, _overlay, _viewContainerRef, _zone, _changeDetectorRef, scrollStrategy, _dir, _formField, _document, _viewportRuler) { this._element = _element; this._overlay = _overlay; this._viewContainerRef = _viewContainerRef; this._zone = _zone; this._changeDetectorRef = _changeDetectorRef; this._dir = _dir; this._formField = _formField; this._document = _document; this._viewportRuler = _viewportRuler; this._componentDestroyed = false; this._autocompleteDisabled = false; /** * Whether or not the label state is being overridden. */ this._manuallyFloatingLabel = false; /** * Subscription to viewport size changes. */ this._viewportSubscription = rxjs__WEBPACK_IMPORTED_MODULE_13__["Subscription"].EMPTY; /** * Whether the autocomplete can open the next time it is focused. Used to prevent a focused, * closed autocomplete from being reopened if the user switches to another browser tab and then * comes back. */ this._canOpenOnNextFocus = true; /** * Stream of keyboard events that can close the panel. */ this._closeKeyEventStream = new rxjs__WEBPACK_IMPORTED_MODULE_13__["Subject"](); /** * Event handler for when the window is blurred. Needs to be an * arrow function in order to preserve the context. */ this._windowBlurHandler = (/** * @return {?} */ () => { // If the user blurred the window while the autocomplete is focused, it means that it'll be // refocused when they come back. In this case we want to skip the first focus event, if the // pane was closed, in order to avoid reopening it unintentionally. this._canOpenOnNextFocus = this._document.activeElement !== this._element.nativeElement || this.panelOpen; }); /** * `View -> model callback called when value changes` */ this._onChange = (/** * @return {?} */ () => { }); /** * `View -> model callback called when autocomplete has been touched` */ this._onTouched = (/** * @return {?} */ () => { }); /** * Position of the autocomplete panel relative to the trigger element. A position of `auto` * will render the panel underneath the trigger if there is enough space for it to fit in * the viewport, otherwise the panel will be shown above it. If the position is set to * `above` or `below`, the panel will always be shown above or below the trigger. no matter * whether it fits completely in the viewport. */ this.position = 'auto'; /** * `autocomplete` attribute to be set on the input element. * \@docs-private */ this.autocompleteAttribute = 'off'; this._overlayAttached = false; /** * Stream of autocomplete option selections. */ this.optionSelections = (/** @type {?} */ (Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["defer"])((/** * @return {?} */ () => { if (this.autocomplete && this.autocomplete.options) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["merge"])(...this.autocomplete.options.map((/** * @param {?} option * @return {?} */ option => option.onSelectionChange))); } // If there are any subscribers before `ngAfterViewInit`, the `autocomplete` will be undefined. // Return a stream that we'll replace with the real one once everything is in place. return this._zone.onStable .asObservable() .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["take"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["switchMap"])((/** * @return {?} */ () => this.optionSelections))); })))); if (typeof window !== 'undefined') { _zone.runOutsideAngular((/** * @return {?} */ () => { window.addEventListener('blur', this._windowBlurHandler); })); } this._scrollStrategy = scrollStrategy; } /** * Whether the autocomplete is disabled. When disabled, the element will * act as a regular input and the user won't be able to open the panel. * @return {?} */ get autocompleteDisabled() { return this._autocompleteDisabled; } /** * @param {?} value * @return {?} */ set autocompleteDisabled(value) { this._autocompleteDisabled = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { if (changes['position'] && this._positionStrategy) { this._setStrategyPositions(this._positionStrategy); if (this.panelOpen) { (/** @type {?} */ (this._overlayRef)).updatePosition(); } } } /** * @return {?} */ ngOnDestroy() { if (typeof window !== 'undefined') { window.removeEventListener('blur', this._windowBlurHandler); } this._viewportSubscription.unsubscribe(); this._componentDestroyed = true; this._destroyPanel(); this._closeKeyEventStream.complete(); } /** * Whether or not the autocomplete panel is open. * @return {?} */ get panelOpen() { return this._overlayAttached && this.autocomplete.showPanel; } /** * Opens the autocomplete suggestion panel. * @return {?} */ openPanel() { this._attachOverlay(); this._floatLabel(); } /** * Closes the autocomplete suggestion panel. * @return {?} */ closePanel() { this._resetLabel(); if (!this._overlayAttached) { return; } if (this.panelOpen) { // Only emit if the panel was visible. this.autocomplete.closed.emit(); } this.autocomplete._isOpen = this._overlayAttached = false; if (this._overlayRef && this._overlayRef.hasAttached()) { this._overlayRef.detach(); this._closingActionsSubscription.unsubscribe(); } // Note that in some cases this can end up being called after the component is destroyed. // Add a check to ensure that we don't try to run change detection on a destroyed view. if (!this._componentDestroyed) { // We need to trigger change detection manually, because // `fromEvent` doesn't seem to do it at the proper time. // This ensures that the label is reset when the // user clicks outside. this._changeDetectorRef.detectChanges(); } } /** * Updates the position of the autocomplete suggestion panel to ensure that it fits all options * within the viewport. * @return {?} */ updatePosition() { if (this._overlayAttached) { (/** @type {?} */ (this._overlayRef)).updatePosition(); } } /** * A stream of actions that should close the autocomplete panel, including * when an option is selected, on blur, and when TAB is pressed. * @return {?} */ get panelClosingActions() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["merge"])(this.optionSelections, this.autocomplete._keyManager.tabOut.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["filter"])((/** * @return {?} */ () => this._overlayAttached))), this._closeKeyEventStream, this._getOutsideClickStream(), this._overlayRef ? this._overlayRef.detachments().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["filter"])((/** * @return {?} */ () => this._overlayAttached))) : Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["of"])()).pipe( // Normalize the output so we return a consistent type. Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["map"])((/** * @param {?} event * @return {?} */ event => event instanceof _angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatOptionSelectionChange"] ? event : null))); } /** * The currently active option, coerced to MatOption type. * @return {?} */ get activeOption() { if (this.autocomplete && this.autocomplete._keyManager) { return this.autocomplete._keyManager.activeItem; } return null; } /** * Stream of clicks outside of the autocomplete panel. * @private * @return {?} */ _getOutsideClickStream() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["merge"])((/** @type {?} */ (Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["fromEvent"])(this._document, 'click'))), (/** @type {?} */ (Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["fromEvent"])(this._document, 'touchend')))) .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["filter"])((/** * @param {?} event * @return {?} */ event => { /** @type {?} */ const clickTarget = (/** @type {?} */ (event.target)); /** @type {?} */ const formField = this._formField ? this._formField._elementRef.nativeElement : null; return this._overlayAttached && clickTarget !== this._element.nativeElement && (!formField || !formField.contains(clickTarget)) && (!!this._overlayRef && !this._overlayRef.overlayElement.contains(clickTarget)); }))); } // Implemented as part of ControlValueAccessor. /** * @param {?} value * @return {?} */ writeValue(value) { Promise.resolve(null).then((/** * @return {?} */ () => this._setTriggerValue(value))); } // Implemented as part of ControlValueAccessor. /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this._onChange = fn; } // Implemented as part of ControlValueAccessor. /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this._onTouched = fn; } // Implemented as part of ControlValueAccessor. /** * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { this._element.nativeElement.disabled = isDisabled; } /** * @param {?} event * @return {?} */ _handleKeydown(event) { /** @type {?} */ const keyCode = event.keyCode; // Prevent the default action on all escape key presses. This is here primarily to bring IE // in line with other browsers. By default, pressing escape on IE will cause it to revert // the input value to the one that it had on focus, however it won't dispatch any events // which means that the model value will be out of sync with the view. if (keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["ESCAPE"]) { event.preventDefault(); } if (this.activeOption && keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["ENTER"] && this.panelOpen) { this.activeOption._selectViaInteraction(); this._resetActiveItem(); event.preventDefault(); } else if (this.autocomplete) { /** @type {?} */ const prevActiveItem = this.autocomplete._keyManager.activeItem; /** @type {?} */ const isArrowKey = keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["UP_ARROW"] || keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["DOWN_ARROW"]; if (this.panelOpen || keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["TAB"]) { this.autocomplete._keyManager.onKeydown(event); } else if (isArrowKey && this._canOpen()) { this.openPanel(); } if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) { this._scrollToOption(); } } } /** * @param {?} event * @return {?} */ _handleInput(event) { /** @type {?} */ let target = (/** @type {?} */ (event.target)); /** @type {?} */ let value = target.value; // Based on `NumberValueAccessor` from forms. if (target.type === 'number') { value = value == '' ? null : parseFloat(value); } // If the input has a placeholder, IE will fire the `input` event on page load, // focus and blur, in addition to when the user actually changed the value. To // filter out all of the extra events, we save the value on focus and between // `input` events, and we check whether it changed. // See: https://connect.microsoft.com/IE/feedback/details/885747/ if (this._previousValue !== value) { this._previousValue = value; this._onChange(value); if (this._canOpen() && this._document.activeElement === event.target) { this.openPanel(); } } } /** * @return {?} */ _handleFocus() { if (!this._canOpenOnNextFocus) { this._canOpenOnNextFocus = true; } else if (this._canOpen()) { this._previousValue = this._element.nativeElement.value; this._attachOverlay(); this._floatLabel(true); } } /** * In "auto" mode, the label will animate down as soon as focus is lost. * This causes the value to jump when selecting an option with the mouse. * This method manually floats the label until the panel can be closed. * @private * @param {?=} shouldAnimate Whether the label should be animated when it is floated. * @return {?} */ _floatLabel(shouldAnimate = false) { if (this._formField && this._formField.floatLabel === 'auto') { if (shouldAnimate) { this._formField._animateAndLockLabel(); } else { this._formField.floatLabel = 'always'; } this._manuallyFloatingLabel = true; } } /** * If the label has been manually elevated, return it to its normal state. * @private * @return {?} */ _resetLabel() { if (this._manuallyFloatingLabel) { this._formField.floatLabel = 'auto'; this._manuallyFloatingLabel = false; } } /** * Given that we are not actually focusing active options, we must manually adjust scroll * to reveal options below the fold. First, we find the offset of the option from the top * of the panel. If that offset is below the fold, the new scrollTop will be the offset - * the panel height + the option height, so the active option will be just visible at the * bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop * will become the offset. If that offset is visible within the panel already, the scrollTop is * not adjusted. * @private * @return {?} */ _scrollToOption() { /** @type {?} */ const index = this.autocomplete._keyManager.activeItemIndex || 0; /** @type {?} */ const labelCount = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["_countGroupLabelsBeforeOption"])(index, this.autocomplete.options, this.autocomplete.optionGroups); /** @type {?} */ const newScrollPosition = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["_getOptionScrollPosition"])(index + labelCount, AUTOCOMPLETE_OPTION_HEIGHT, this.autocomplete._getScrollTop(), AUTOCOMPLETE_PANEL_HEIGHT); this.autocomplete._setScrollTop(newScrollPosition); } /** * This method listens to a stream of panel closing actions and resets the * stream every time the option list changes. * @private * @return {?} */ _subscribeToClosingActions() { /** @type {?} */ const firstStable = this._zone.onStable.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["take"])(1)); /** @type {?} */ const optionChanges = this.autocomplete.options.changes.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["tap"])((/** * @return {?} */ () => this._positionStrategy.reapplyLastPosition())), // Defer emitting to the stream until the next tick, because changing // bindings in here will cause "changed after checked" errors. Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["delay"])(0)); // When the zone is stable initially, and when the option list changes... return Object(rxjs__WEBPACK_IMPORTED_MODULE_13__["merge"])(firstStable, optionChanges) .pipe( // create a new stream of panelClosingActions, replacing any previous streams // that were created, and flatten it so our stream only emits closing events... Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["switchMap"])((/** * @return {?} */ () => { /** @type {?} */ const wasOpen = this.panelOpen; this._resetActiveItem(); this.autocomplete._setVisibility(); if (this.panelOpen) { (/** @type {?} */ (this._overlayRef)).updatePosition(); // If the `panelOpen` state changed, we need to make sure to emit the `opened` // event, because we may not have emitted it when the panel was attached. This // can happen if the users opens the panel and there are no options, but the // options come in slightly later or as a result of the value changing. if (wasOpen !== this.panelOpen) { this.autocomplete.opened.emit(); } } return this.panelClosingActions; })), // when the first closing event occurs... Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["take"])(1)) // set the value, close the panel, and complete. .subscribe((/** * @param {?} event * @return {?} */ event => this._setValueAndClose(event))); } /** * Destroys the autocomplete suggestion panel. * @private * @return {?} */ _destroyPanel() { if (this._overlayRef) { this.closePanel(); this._overlayRef.dispose(); this._overlayRef = null; } } /** * @private * @param {?} value * @return {?} */ _setTriggerValue(value) { /** @type {?} */ const toDisplay = this.autocomplete && this.autocomplete.displayWith ? this.autocomplete.displayWith(value) : value; // Simply falling back to an empty string if the display value is falsy does not work properly. // The display value can also be the number zero and shouldn't fall back to an empty string. /** @type {?} */ const inputValue = toDisplay != null ? toDisplay : ''; // If it's used within a `MatFormField`, we should set it through the property so it can go // through change detection. if (this._formField) { this._formField._control.value = inputValue; } else { this._element.nativeElement.value = inputValue; } this._previousValue = inputValue; } /** * This method closes the panel, and if a value is specified, also sets the associated * control to that value. It will also mark the control as dirty if this interaction * stemmed from the user. * @private * @param {?} event * @return {?} */ _setValueAndClose(event) { if (event && event.source) { this._clearPreviousSelectedOption(event.source); this._setTriggerValue(event.source.value); this._onChange(event.source.value); this._element.nativeElement.focus(); this.autocomplete._emitSelectEvent(event.source); } this.closePanel(); } /** * Clear any previous selected option and emit a selection change event for this option * @private * @param {?} skip * @return {?} */ _clearPreviousSelectedOption(skip) { this.autocomplete.options.forEach((/** * @param {?} option * @return {?} */ option => { if (option != skip && option.selected) { option.deselect(); } })); } /** * @private * @return {?} */ _attachOverlay() { if (!this.autocomplete) { throw getMatAutocompleteMissingPanelError(); } /** @type {?} */ let overlayRef = this._overlayRef; if (!overlayRef) { this._portal = new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_7__["TemplatePortal"](this.autocomplete.template, this._viewContainerRef); overlayRef = this._overlay.create(this._getOverlayConfig()); this._overlayRef = overlayRef; // Use the `keydownEvents` in order to take advantage of // the overlay event targeting provided by the CDK overlay. overlayRef.keydownEvents().subscribe((/** * @param {?} event * @return {?} */ event => { // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines. // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction if (event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["ESCAPE"] || (event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_5__["UP_ARROW"] && event.altKey)) { this._resetActiveItem(); this._closeKeyEventStream.next(); // We need to stop propagation, otherwise the event will eventually // reach the input itself and cause the overlay to be reopened. event.stopPropagation(); event.preventDefault(); } })); if (this._viewportRuler) { this._viewportSubscription = this._viewportRuler.change().subscribe((/** * @return {?} */ () => { if (this.panelOpen && overlayRef) { overlayRef.updateSize({ width: this._getPanelWidth() }); } })); } } else { // Update the trigger, panel width and direction, in case anything has changed. this._positionStrategy.setOrigin(this._getConnectedElement()); overlayRef.updateSize({ width: this._getPanelWidth() }); } if (overlayRef && !overlayRef.hasAttached()) { overlayRef.attach(this._portal); this._closingActionsSubscription = this._subscribeToClosingActions(); } /** @type {?} */ const wasOpen = this.panelOpen; this.autocomplete._setVisibility(); this.autocomplete._isOpen = this._overlayAttached = true; // We need to do an extra `panelOpen` check in here, because the // autocomplete won't be shown if there are no options. if (this.panelOpen && wasOpen !== this.panelOpen) { this.autocomplete.opened.emit(); } } /** * @private * @return {?} */ _getOverlayConfig() { return new _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_6__["OverlayConfig"]({ positionStrategy: this._getOverlayPosition(), scrollStrategy: this._scrollStrategy(), width: this._getPanelWidth(), direction: this._dir }); } /** * @private * @return {?} */ _getOverlayPosition() { /** @type {?} */ const strategy = this._overlay.position() .flexibleConnectedTo(this._getConnectedElement()) .withFlexibleDimensions(false) .withPush(false); this._setStrategyPositions(strategy); this._positionStrategy = strategy; return strategy; } /** * Sets the positions on a position strategy based on the directive's input state. * @private * @param {?} positionStrategy * @return {?} */ _setStrategyPositions(positionStrategy) { /** @type {?} */ const belowPosition = { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' }; /** @type {?} */ const abovePosition = { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', // The overlay edge connected to the trigger should have squared corners, while // the opposite end has rounded corners. We apply a CSS class to swap the // border-radius based on the overlay position. panelClass: 'mat-autocomplete-panel-above' }; /** @type {?} */ let positions; if (this.position === 'above') { positions = [abovePosition]; } else if (this.position === 'below') { positions = [belowPosition]; } else { positions = [belowPosition, abovePosition]; } positionStrategy.withPositions(positions); } /** * @private * @return {?} */ _getConnectedElement() { if (this.connectedTo) { return this.connectedTo.elementRef; } return this._formField ? this._formField.getConnectedOverlayOrigin() : this._element; } /** * @private * @return {?} */ _getPanelWidth() { return this.autocomplete.panelWidth || this._getHostWidth(); } /** * Returns the width of the input element, so the panel width can match it. * @private * @return {?} */ _getHostWidth() { return this._getConnectedElement().nativeElement.getBoundingClientRect().width; } /** * Resets the active item to -1 so arrow events will activate the * correct options, or to 0 if the consumer opted into it. * @private * @return {?} */ _resetActiveItem() { this.autocomplete._keyManager.setActiveItem(this.autocomplete.autoActiveFirstOption ? 0 : -1); } /** * Determines whether the panel can be opened. * @private * @return {?} */ _canOpen() { /** @type {?} */ const element = this._element.nativeElement; return !element.readOnly && !element.disabled && !this._autocompleteDisabled; } } MatAutocompleteTrigger.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Directive"], args: [{ selector: `input[matAutocomplete], textarea[matAutocomplete]`, host: { '[attr.autocomplete]': 'autocompleteAttribute', '[attr.role]': 'autocompleteDisabled ? null : "combobox"', '[attr.aria-autocomplete]': 'autocompleteDisabled ? null : "list"', '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null', '[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()', '[attr.aria-owns]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id', '[attr.aria-haspopup]': '!autocompleteDisabled', // Note: we use `focusin`, as opposed to `focus`, in order to open the panel // a little earlier. This avoids issues where IE delays the focusing of the input. '(focusin)': '_handleFocus()', '(blur)': '_onTouched()', '(input)': '_handleInput($event)', '(keydown)': '_handleKeydown($event)', }, exportAs: 'matAutocompleteTrigger', providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR] },] }, ]; /** @nocollapse */ MatAutocompleteTrigger.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ElementRef"] }, { type: _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_6__["Overlay"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ViewContainerRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ChangeDetectorRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Inject"], args: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY,] }] }, { type: _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_4__["Directionality"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Optional"] }] }, { type: _angular_material_form_field__WEBPACK_IMPORTED_MODULE_12__["MatFormField"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Host"] }] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_8__["DOCUMENT"],] }] }, { type: _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_10__["ViewportRuler"] } ]; MatAutocompleteTrigger.propDecorators = { autocomplete: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matAutocomplete',] }], position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matAutocompletePosition',] }], connectedTo: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matAutocompleteConnectedTo',] }], autocompleteAttribute: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['autocomplete',] }], autocompleteDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matAutocompleteDisabled',] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatAutocompleteModule { } MatAutocompleteModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["NgModule"], args: [{ imports: [_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatOptionModule"], _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_6__["OverlayModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatCommonModule"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"]], exports: [ MatAutocomplete, _angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatOptionModule"], MatAutocompleteTrigger, MatAutocompleteOrigin, _angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatCommonModule"] ], declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin], providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=autocomplete.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/badge.js": /*!*********************************************************!*\ !*** ./node_modules/@angular/material/esm2015/badge.js ***! \*********************************************************/ /*! exports provided: MatBadgeModule, MatBadge */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBadgeModule", function() { return MatBadgeModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBadge", function() { return MatBadge; }); /* harmony import */ var _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/cdk/a11y */ "./node_modules/@angular/cdk/esm2015/a11y.js"); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ let nextId = 0; // Boilerplate for applying mixins to MatBadge. /** * \@docs-private */ class MatBadgeBase { } /** @type {?} */ const _MatBadgeMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_3__["mixinDisabled"])(MatBadgeBase); /** * Directive to display a text badge. */ class MatBadge extends _MatBadgeMixinBase { /** * @param {?} _ngZone * @param {?} _elementRef * @param {?} _ariaDescriber * @param {?} _renderer * @param {?=} _animationMode */ constructor(_ngZone, _elementRef, _ariaDescriber, _renderer, _animationMode) { super(); this._ngZone = _ngZone; this._elementRef = _elementRef; this._ariaDescriber = _ariaDescriber; this._renderer = _renderer; this._animationMode = _animationMode; /** * Whether the badge has any content. */ this._hasContent = false; this._color = 'primary'; this._overlap = true; /** * Position the badge should reside. * Accepts any combination of 'above'|'below' and 'before'|'after' */ this.position = 'above after'; /** * Size of the badge. Can be 'small', 'medium', or 'large'. */ this.size = 'medium'; /** * Unique id for the badge */ this._id = nextId++; if (Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["isDevMode"])()) { /** @type {?} */ const nativeElement = _elementRef.nativeElement; if (nativeElement.nodeType !== nativeElement.ELEMENT_NODE) { throw Error('matBadge must be attached to an element node.'); } } } /** * The color of the badge. Can be `primary`, `accent`, or `warn`. * @return {?} */ get color() { return this._color; } /** * @param {?} value * @return {?} */ set color(value) { this._setColor(value); this._color = value; } /** * Whether the badge should overlap its contents or not * @return {?} */ get overlap() { return this._overlap; } /** * @param {?} val * @return {?} */ set overlap(val) { this._overlap = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(val); } /** * Message used to describe the decorated element via aria-describedby * @return {?} */ get description() { return this._description; } /** * @param {?} newDescription * @return {?} */ set description(newDescription) { if (newDescription !== this._description) { /** @type {?} */ const badgeElement = this._badgeElement; this._updateHostAriaDescription(newDescription, this._description); this._description = newDescription; if (badgeElement) { newDescription ? badgeElement.setAttribute('aria-label', newDescription) : badgeElement.removeAttribute('aria-label'); } } } /** * Whether the badge is hidden. * @return {?} */ get hidden() { return this._hidden; } /** * @param {?} val * @return {?} */ set hidden(val) { this._hidden = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(val); } /** * Whether the badge is above the host or not * @return {?} */ isAbove() { return this.position.indexOf('below') === -1; } /** * Whether the badge is after the host or not * @return {?} */ isAfter() { return this.position.indexOf('before') === -1; } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { /** @type {?} */ const contentChange = changes['content']; if (contentChange) { /** @type {?} */ const value = contentChange.currentValue; this._hasContent = value != null && `${value}`.trim().length > 0; this._updateTextContent(); } } /** * @return {?} */ ngOnDestroy() { /** @type {?} */ const badgeElement = this._badgeElement; if (badgeElement) { if (this.description) { this._ariaDescriber.removeDescription(badgeElement, this.description); } // When creating a badge through the Renderer, Angular will keep it in an index. // We have to destroy it ourselves, otherwise it'll be retained in memory. if (this._renderer.destroyNode) { this._renderer.destroyNode(badgeElement); } } } /** * Gets the element into which the badge's content is being rendered. * Undefined if the element hasn't been created (e.g. if the badge doesn't have content). * @return {?} */ getBadgeElement() { return this._badgeElement; } /** * Injects a span element into the DOM with the content. * @private * @return {?} */ _updateTextContent() { if (!this._badgeElement) { this._badgeElement = this._createBadgeElement(); } else { this._badgeElement.textContent = this.content; } return this._badgeElement; } /** * Creates the badge element * @private * @return {?} */ _createBadgeElement() { /** @type {?} */ const badgeElement = this._renderer.createElement('span'); /** @type {?} */ const activeClass = 'mat-badge-active'; /** @type {?} */ const contentClass = 'mat-badge-content'; // Clear any existing badges which may have persisted from a server-side render. this._clearExistingBadges(contentClass); badgeElement.setAttribute('id', `mat-badge-content-${this._id}`); badgeElement.classList.add(contentClass); badgeElement.textContent = this.content; if (this._animationMode === 'NoopAnimations') { badgeElement.classList.add('_mat-animation-noopable'); } if (this.description) { badgeElement.setAttribute('aria-label', this.description); } this._elementRef.nativeElement.appendChild(badgeElement); // animate in after insertion if (typeof requestAnimationFrame === 'function' && this._animationMode !== 'NoopAnimations') { this._ngZone.runOutsideAngular((/** * @return {?} */ () => { requestAnimationFrame((/** * @return {?} */ () => { badgeElement.classList.add(activeClass); })); })); } else { badgeElement.classList.add(activeClass); } return badgeElement; } /** * Sets the aria-label property on the element * @private * @param {?} newDescription * @param {?} oldDescription * @return {?} */ _updateHostAriaDescription(newDescription, oldDescription) { // ensure content available before setting label /** @type {?} */ const content = this._updateTextContent(); if (oldDescription) { this._ariaDescriber.removeDescription(content, oldDescription); } if (newDescription) { this._ariaDescriber.describe(content, newDescription); } } /** * Adds css theme class given the color to the component host * @private * @param {?} colorPalette * @return {?} */ _setColor(colorPalette) { if (colorPalette !== this._color) { if (this._color) { this._elementRef.nativeElement.classList.remove(`mat-badge-${this._color}`); } if (colorPalette) { this._elementRef.nativeElement.classList.add(`mat-badge-${colorPalette}`); } } } /** * Clears any existing badges that might be left over from server-side rendering. * @private * @param {?} cssClass * @return {?} */ _clearExistingBadges(cssClass) { /** @type {?} */ const element = this._elementRef.nativeElement; /** @type {?} */ let childCount = element.children.length; // Use a reverse while, because we'll be removing elements from the list as we're iterating. while (childCount--) { /** @type {?} */ const currentChild = element.children[childCount]; if (currentChild.classList.contains(cssClass)) { element.removeChild(currentChild); } } } } MatBadge.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Directive"], args: [{ selector: '[matBadge]', inputs: ['disabled: matBadgeDisabled'], host: { 'class': 'mat-badge', '[class.mat-badge-overlap]': 'overlap', '[class.mat-badge-above]': 'isAbove()', '[class.mat-badge-below]': '!isAbove()', '[class.mat-badge-before]': '!isAfter()', '[class.mat-badge-after]': 'isAfter()', '[class.mat-badge-small]': 'size === "small"', '[class.mat-badge-medium]': 'size === "medium"', '[class.mat-badge-large]': 'size === "large"', '[class.mat-badge-hidden]': 'hidden || !_hasContent', '[class.mat-badge-disabled]': 'disabled', }, },] }, ]; /** @nocollapse */ MatBadge.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["ElementRef"] }, { type: _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__["AriaDescriber"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Renderer2"] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Inject"], args: [_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_4__["ANIMATION_MODULE_TYPE"],] }] } ]; MatBadge.propDecorators = { color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadgeColor',] }], overlap: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadgeOverlap',] }], position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadgePosition',] }], content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadge',] }], description: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadgeDescription',] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadgeSize',] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["Input"], args: ['matBadgeHidden',] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatBadgeModule { } MatBadgeModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_2__["NgModule"], args: [{ imports: [ _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__["A11yModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_3__["MatCommonModule"] ], exports: [MatBadge], declarations: [MatBadge], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=badge.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/bottom-sheet.js": /*!****************************************************************!*\ !*** ./node_modules/@angular/material/esm2015/bottom-sheet.js ***! \****************************************************************/ /*! exports provided: MatBottomSheetModule, MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, MatBottomSheet, MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig, MatBottomSheetContainer, matBottomSheetAnimations, MatBottomSheetRef */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetModule", function() { return MatBottomSheetModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_BOTTOM_SHEET_DEFAULT_OPTIONS", function() { return MAT_BOTTOM_SHEET_DEFAULT_OPTIONS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheet", function() { return MatBottomSheet; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_BOTTOM_SHEET_DATA", function() { return MAT_BOTTOM_SHEET_DATA; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetConfig", function() { return MatBottomSheetConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetContainer", function() { return MatBottomSheetContainer; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matBottomSheetAnimations", function() { return matBottomSheetAnimations; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetRef", function() { return MatBottomSheetRef; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_animations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/animations */ "./node_modules/@angular/animations/fesm2015/animations.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/portal */ "./node_modules/@angular/cdk/esm2015/portal.js"); /* harmony import */ var _angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/cdk/layout */ "./node_modules/@angular/cdk/esm2015/layout.js"); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js"); /* harmony import */ var _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/cdk/a11y */ "./node_modules/@angular/cdk/esm2015/a11y.js"); /* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/cdk/overlay */ "./node_modules/@angular/cdk/esm2015/overlay.js"); /* harmony import */ var _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/cdk/keycodes */ "./node_modules/@angular/cdk/esm2015/keycodes.js"); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); /* harmony import */ var _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/cdk/bidi */ "./node_modules/@angular/cdk/esm2015/bidi.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Injection token that can be used to access the data that was passed in to a bottom sheet. * @type {?} */ const MAT_BOTTOM_SHEET_DATA = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('MatBottomSheetData'); /** * Configuration used when opening a bottom sheet. * @template D */ class MatBottomSheetConfig { constructor() { /** * Data being injected into the child component. */ this.data = null; /** * Whether the bottom sheet has a backdrop. */ this.hasBackdrop = true; /** * Whether the user can use escape or clicking outside to close the bottom sheet. */ this.disableClose = false; /** * Aria label to assign to the bottom sheet element. */ this.ariaLabel = null; /** * Whether the bottom sheet should close when the user goes backwards/forwards in history. * Note that this usually doesn't include clicking on links (unless the user is using * the `HashLocationStrategy`). */ this.closeOnNavigation = true; // Note that this is disabled by default, because while the a11y recommendations are to focus // the first focusable element, doing so prevents screen readers from reading out the // rest of the bottom sheet content. /** * Whether the bottom sheet should focus the first focusable element on open. */ this.autoFocus = false; /** * Whether the bottom sheet should restore focus to the * previously-focused element, after it's closed. */ this.restoreFocus = true; } } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Animations used by the Material bottom sheet. * @type {?} */ const matBottomSheetAnimations = { /** * Animation that shows and hides a bottom sheet. */ bottomSheetState: Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["trigger"])('state', [ Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["state"])('void, hidden', Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["style"])({ transform: 'translateY(100%)' })), Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["state"])('visible', Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["style"])({ transform: 'translateY(0%)' })), Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["transition"])('visible => void, visible => hidden', Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["animate"])(`${_angular_material_core__WEBPACK_IMPORTED_MODULE_2__["AnimationDurations"].COMPLEX} ${_angular_material_core__WEBPACK_IMPORTED_MODULE_2__["AnimationCurves"].ACCELERATION_CURVE}`)), Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["transition"])('void => visible', Object(_angular_animations__WEBPACK_IMPORTED_MODULE_1__["animate"])(`${_angular_material_core__WEBPACK_IMPORTED_MODULE_2__["AnimationDurations"].EXITING} ${_angular_material_core__WEBPACK_IMPORTED_MODULE_2__["AnimationCurves"].DECELERATION_CURVE}`)), ]) }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // TODO(crisbeto): consolidate some logic between this, MatDialog and MatSnackBar /** * Internal component that wraps user-provided bottom sheet content. * \@docs-private */ class MatBottomSheetContainer extends _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["BasePortalOutlet"] { /** * @param {?} _elementRef * @param {?} _changeDetectorRef * @param {?} _focusTrapFactory * @param {?} breakpointObserver * @param {?} document * @param {?} bottomSheetConfig */ constructor(_elementRef, _changeDetectorRef, _focusTrapFactory, breakpointObserver, document, bottomSheetConfig) { super(); this._elementRef = _elementRef; this._changeDetectorRef = _changeDetectorRef; this._focusTrapFactory = _focusTrapFactory; this.bottomSheetConfig = bottomSheetConfig; /** * The state of the bottom sheet animations. */ this._animationState = 'void'; /** * Emits whenever the state of the animation changes. */ this._animationStateChanged = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * Element that was focused before the bottom sheet was opened. */ this._elementFocusedBeforeOpened = null; this._document = document; this._breakpointSubscription = breakpointObserver .observe([_angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"].Medium, _angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"].Large, _angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"].XLarge]) .subscribe((/** * @return {?} */ () => { this._toggleClass('mat-bottom-sheet-container-medium', breakpointObserver.isMatched(_angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"].Medium)); this._toggleClass('mat-bottom-sheet-container-large', breakpointObserver.isMatched(_angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"].Large)); this._toggleClass('mat-bottom-sheet-container-xlarge', breakpointObserver.isMatched(_angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"].XLarge)); })); } /** * Attach a component portal as content to this bottom sheet container. * @template T * @param {?} portal * @return {?} */ attachComponentPortal(portal) { this._validatePortalAttached(); this._setPanelClass(); this._savePreviouslyFocusedElement(); return this._portalOutlet.attachComponentPortal(portal); } /** * Attach a template portal as content to this bottom sheet container. * @template C * @param {?} portal * @return {?} */ attachTemplatePortal(portal) { this._validatePortalAttached(); this._setPanelClass(); this._savePreviouslyFocusedElement(); return this._portalOutlet.attachTemplatePortal(portal); } /** * Begin animation of bottom sheet entrance into view. * @return {?} */ enter() { if (!this._destroyed) { this._animationState = 'visible'; this._changeDetectorRef.detectChanges(); } } /** * Begin animation of the bottom sheet exiting from view. * @return {?} */ exit() { if (!this._destroyed) { this._animationState = 'hidden'; this._changeDetectorRef.markForCheck(); } } /** * @return {?} */ ngOnDestroy() { this._breakpointSubscription.unsubscribe(); this._destroyed = true; } /** * @param {?} event * @return {?} */ _onAnimationDone(event) { if (event.toState === 'hidden') { this._restoreFocus(); } else if (event.toState === 'visible') { this._trapFocus(); } this._animationStateChanged.emit(event); } /** * @param {?} event * @return {?} */ _onAnimationStart(event) { this._animationStateChanged.emit(event); } /** * @private * @param {?} cssClass * @param {?} add * @return {?} */ _toggleClass(cssClass, add) { /** @type {?} */ const classList = this._elementRef.nativeElement.classList; add ? classList.add(cssClass) : classList.remove(cssClass); } /** * @private * @return {?} */ _validatePortalAttached() { if (this._portalOutlet.hasAttached()) { throw Error('Attempting to attach bottom sheet content after content is already attached'); } } /** * @private * @return {?} */ _setPanelClass() { /** @type {?} */ const element = this._elementRef.nativeElement; /** @type {?} */ const panelClass = this.bottomSheetConfig.panelClass; if (Array.isArray(panelClass)) { // Note that we can't use a spread here, because IE doesn't support multiple arguments. panelClass.forEach((/** * @param {?} cssClass * @return {?} */ cssClass => element.classList.add(cssClass))); } else if (panelClass) { element.classList.add(panelClass); } } /** * Moves the focus inside the focus trap. * @private * @return {?} */ _trapFocus() { if (!this._focusTrap) { this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement); } if (this.bottomSheetConfig.autoFocus) { this._focusTrap.focusInitialElementWhenReady(); } } /** * Restores focus to the element that was focused before the bottom sheet was opened. * @private * @return {?} */ _restoreFocus() { /** @type {?} */ const toFocus = this._elementFocusedBeforeOpened; // We need the extra check, because IE can set the `activeElement` to null in some cases. if (this.bottomSheetConfig.restoreFocus && toFocus && typeof toFocus.focus === 'function') { toFocus.focus(); } if (this._focusTrap) { this._focusTrap.destroy(); } } /** * Saves a reference to the element that was focused before the bottom sheet was opened. * @private * @return {?} */ _savePreviouslyFocusedElement() { this._elementFocusedBeforeOpened = (/** @type {?} */ (this._document.activeElement)); // The `focus` method isn't available during server-side rendering. if (this._elementRef.nativeElement.focus) { Promise.resolve().then((/** * @return {?} */ () => this._elementRef.nativeElement.focus())); } } } MatBottomSheetContainer.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-bottom-sheet-container', template: "<ng-template cdkPortalOutlet></ng-template>", styles: [".mat-bottom-sheet-container{padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto}@media (-ms-high-contrast:active){.mat-bottom-sheet-container{outline:1px solid}}.mat-bottom-sheet-container-large,.mat-bottom-sheet-container-medium,.mat-bottom-sheet-container-xlarge{border-top-left-radius:4px;border-top-right-radius:4px}.mat-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.mat-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.mat-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}"], changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, animations: [matBottomSheetAnimations.bottomSheetState], host: { 'class': 'mat-bottom-sheet-container', 'tabindex': '-1', 'role': 'dialog', 'aria-modal': 'true', '[attr.aria-label]': 'bottomSheetConfig?.ariaLabel', '[@state]': '_animationState', '(@state.start)': '_onAnimationStart($event)', '(@state.done)': '_onAnimationDone($event)' }, },] }, ]; /** @nocollapse */ MatBottomSheetContainer.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_6__["FocusTrapFactory"] }, { type: _angular_cdk_layout__WEBPACK_IMPORTED_MODULE_4__["BreakpointObserver"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_5__["DOCUMENT"],] }] }, { type: MatBottomSheetConfig } ]; MatBottomSheetContainer.propDecorators = { _portalOutlet: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: [_angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["CdkPortalOutlet"], { static: true },] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatBottomSheetModule { } MatBottomSheetModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ imports: [ _angular_common__WEBPACK_IMPORTED_MODULE_5__["CommonModule"], _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__["OverlayModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_2__["MatCommonModule"], _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["PortalModule"], ], exports: [MatBottomSheetContainer, _angular_material_core__WEBPACK_IMPORTED_MODULE_2__["MatCommonModule"]], declarations: [MatBottomSheetContainer], entryComponents: [MatBottomSheetContainer], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Reference to a bottom sheet dispatched from the bottom sheet service. * @template T, R */ class MatBottomSheetRef { /** * @param {?} containerInstance * @param {?} _overlayRef * @param {?=} _location */ constructor(containerInstance, _overlayRef, // @breaking-change 8.0.0 `_location` parameter to be removed. _location) { this._overlayRef = _overlayRef; /** * Subject for notifying the user that the bottom sheet has been dismissed. */ this._afterDismissed = new rxjs__WEBPACK_IMPORTED_MODULE_9__["Subject"](); /** * Subject for notifying the user that the bottom sheet has opened and appeared. */ this._afterOpened = new rxjs__WEBPACK_IMPORTED_MODULE_9__["Subject"](); this.containerInstance = containerInstance; this.disableClose = containerInstance.bottomSheetConfig.disableClose; // Emit when opening animation completes containerInstance._animationStateChanged.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])((/** * @param {?} event * @return {?} */ event => event.phaseName === 'done' && event.toState === 'visible')), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["take"])(1)) .subscribe((/** * @return {?} */ () => { this._afterOpened.next(); this._afterOpened.complete(); })); // Dispose overlay when closing animation is complete containerInstance._animationStateChanged .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])((/** * @param {?} event * @return {?} */ event => event.phaseName === 'done' && event.toState === 'hidden')), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["take"])(1)) .subscribe((/** * @return {?} */ () => { clearTimeout(this._closeFallbackTimeout); _overlayRef.dispose(); })); _overlayRef.detachments().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["take"])(1)).subscribe((/** * @return {?} */ () => { this._afterDismissed.next(this._result); this._afterDismissed.complete(); })); Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["merge"])(_overlayRef.backdropClick(), _overlayRef.keydownEvents().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])((/** * @param {?} event * @return {?} */ event => event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_8__["ESCAPE"])))).subscribe((/** * @param {?} event * @return {?} */ event => { if (!this.disableClose && (event.type !== 'keydown' || !Object(_angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_8__["hasModifierKey"])((/** @type {?} */ (event))))) { event.preventDefault(); this.dismiss(); } })); } /** * Dismisses the bottom sheet. * @param {?=} result Data to be passed back to the bottom sheet opener. * @return {?} */ dismiss(result) { if (!this._afterDismissed.closed) { // Transition the backdrop in parallel to the bottom sheet. this.containerInstance._animationStateChanged.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])((/** * @param {?} event * @return {?} */ event => event.phaseName === 'start')), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["take"])(1)).subscribe((/** * @param {?} event * @return {?} */ event => { // The logic that disposes of the overlay depends on the exit animation completing, however // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback // timeout which will clean everything up if the animation hasn't fired within the specified // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the // vast majority of cases the timeout will have been cleared before it has fired. this._closeFallbackTimeout = setTimeout((/** * @return {?} */ () => { this._overlayRef.dispose(); }), event.totalTime + 100); this._overlayRef.detachBackdrop(); })); this._result = result; this.containerInstance.exit(); } } /** * Gets an observable that is notified when the bottom sheet is finished closing. * @return {?} */ afterDismissed() { return this._afterDismissed.asObservable(); } /** * Gets an observable that is notified when the bottom sheet has opened and appeared. * @return {?} */ afterOpened() { return this._afterOpened.asObservable(); } /** * Gets an observable that emits when the overlay's backdrop has been clicked. * @return {?} */ backdropClick() { return this._overlayRef.backdropClick(); } /** * Gets an observable that emits when keydown events are targeted on the overlay. * @return {?} */ keydownEvents() { return this._overlayRef.keydownEvents(); } } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Injection token that can be used to specify default bottom sheet options. * @type {?} */ const MAT_BOTTOM_SHEET_DEFAULT_OPTIONS = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('mat-bottom-sheet-default-options'); /** * Service to trigger Material Design bottom sheets. */ class MatBottomSheet { /** * @param {?} _overlay * @param {?} _injector * @param {?} _parentBottomSheet * @param {?=} _location * @param {?=} _defaultOptions */ constructor(_overlay, _injector, _parentBottomSheet, _location, _defaultOptions) { this._overlay = _overlay; this._injector = _injector; this._parentBottomSheet = _parentBottomSheet; this._location = _location; this._defaultOptions = _defaultOptions; this._bottomSheetRefAtThisLevel = null; } /** * Reference to the currently opened bottom sheet. * @return {?} */ get _openedBottomSheetRef() { /** @type {?} */ const parent = this._parentBottomSheet; return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel; } /** * @param {?} value * @return {?} */ set _openedBottomSheetRef(value) { if (this._parentBottomSheet) { this._parentBottomSheet._openedBottomSheetRef = value; } else { this._bottomSheetRefAtThisLevel = value; } } /** * @template T, D, R * @param {?} componentOrTemplateRef * @param {?=} config * @return {?} */ open(componentOrTemplateRef, config) { /** @type {?} */ const _config = _applyConfigDefaults(this._defaultOptions || new MatBottomSheetConfig(), config); /** @type {?} */ const overlayRef = this._createOverlay(_config); /** @type {?} */ const container = this._attachContainer(overlayRef, _config); /** @type {?} */ const ref = new MatBottomSheetRef(container, overlayRef, this._location); if (componentOrTemplateRef instanceof _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]) { container.attachTemplatePortal(new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["TemplatePortal"](componentOrTemplateRef, (/** @type {?} */ (null)), (/** @type {?} */ ({ $implicit: _config.data, bottomSheetRef: ref })))); } else { /** @type {?} */ const portal = new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["ComponentPortal"](componentOrTemplateRef, undefined, this._createInjector(_config, ref)); /** @type {?} */ const contentRef = container.attachComponentPortal(portal); ref.instance = contentRef.instance; } // When the bottom sheet is dismissed, clear the reference to it. ref.afterDismissed().subscribe((/** * @return {?} */ () => { // Clear the bottom sheet ref if it hasn't already been replaced by a newer one. if (this._openedBottomSheetRef == ref) { this._openedBottomSheetRef = null; } })); if (this._openedBottomSheetRef) { // If a bottom sheet is already in view, dismiss it and enter the // new bottom sheet after exit animation is complete. this._openedBottomSheetRef.afterDismissed().subscribe((/** * @return {?} */ () => ref.containerInstance.enter())); this._openedBottomSheetRef.dismiss(); } else { // If no bottom sheet is in view, enter the new bottom sheet. ref.containerInstance.enter(); } this._openedBottomSheetRef = ref; return ref; } /** * Dismisses the currently-visible bottom sheet. * @return {?} */ dismiss() { if (this._openedBottomSheetRef) { this._openedBottomSheetRef.dismiss(); } } /** * @return {?} */ ngOnDestroy() { if (this._bottomSheetRefAtThisLevel) { this._bottomSheetRefAtThisLevel.dismiss(); } } /** * Attaches the bottom sheet container component to the overlay. * @private * @param {?} overlayRef * @param {?} config * @return {?} */ _attachContainer(overlayRef, config) { /** @type {?} */ const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector; /** @type {?} */ const injector = new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["PortalInjector"](userInjector || this._injector, new WeakMap([ [MatBottomSheetConfig, config] ])); /** @type {?} */ const containerPortal = new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["ComponentPortal"](MatBottomSheetContainer, config.viewContainerRef, injector); /** @type {?} */ const containerRef = overlayRef.attach(containerPortal); return containerRef.instance; } /** * Creates a new overlay and places it in the correct location. * @private * @param {?} config The user-specified bottom sheet config. * @return {?} */ _createOverlay(config) { /** @type {?} */ const overlayConfig = new _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__["OverlayConfig"]({ direction: config.direction, hasBackdrop: config.hasBackdrop, disposeOnNavigation: config.closeOnNavigation, maxWidth: '100%', scrollStrategy: config.scrollStrategy || this._overlay.scrollStrategies.block(), positionStrategy: this._overlay.position().global().centerHorizontally().bottom('0') }); if (config.backdropClass) { overlayConfig.backdropClass = config.backdropClass; } return this._overlay.create(overlayConfig); } /** * Creates an injector to be used inside of a bottom sheet component. * @private * @template T * @param {?} config Config that was used to create the bottom sheet. * @param {?} bottomSheetRef Reference to the bottom sheet. * @return {?} */ _createInjector(config, bottomSheetRef) { /** @type {?} */ const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector; /** @type {?} */ const injectionTokens = new WeakMap([ [MatBottomSheetRef, bottomSheetRef], [MAT_BOTTOM_SHEET_DATA, config.data] ]); if (config.direction && (!userInjector || !userInjector.get(_angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_11__["Directionality"], null))) { injectionTokens.set(_angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_11__["Directionality"], { value: config.direction, change: Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["of"])() }); } return new _angular_cdk_portal__WEBPACK_IMPORTED_MODULE_3__["PortalInjector"](userInjector || this._injector, injectionTokens); } } MatBottomSheet.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: MatBottomSheetModule },] }, ]; /** @nocollapse */ MatBottomSheet.ctorParameters = () => [ { type: _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__["Overlay"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: MatBottomSheet, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["SkipSelf"] }] }, { type: _angular_common__WEBPACK_IMPORTED_MODULE_5__["Location"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] }, { type: MatBottomSheetConfig, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [MAT_BOTTOM_SHEET_DEFAULT_OPTIONS,] }] } ]; /** @nocollapse */ MatBottomSheet.ngInjectableDef = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function MatBottomSheet_Factory() { return new MatBottomSheet(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__["Overlay"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["INJECTOR"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(MatBottomSheet, 12), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_common__WEBPACK_IMPORTED_MODULE_5__["Location"], 8), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, 8)); }, token: MatBottomSheet, providedIn: MatBottomSheetModule }); /** * Applies default options to the bottom sheet config. * @param {?} defaults Object containing the default values to which to fall back. * @param {?=} config The configuration to which the defaults will be applied. * @return {?} The new configuration object with defaults applied. */ function _applyConfigDefaults(defaults, config) { return Object.assign({}, defaults, config); } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=bottom-sheet.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/button-toggle.js": /*!*****************************************************************!*\ !*** ./node_modules/@angular/material/esm2015/button-toggle.js ***! \*****************************************************************/ /*! exports provided: MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleGroupMultiple, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggle, MatButtonToggleModule */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS", function() { return MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR", function() { return MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleGroupMultiple", function() { return MatButtonToggleGroupMultiple; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleChange", function() { return MatButtonToggleChange; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleGroup", function() { return MatButtonToggleGroup; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggle", function() { return MatButtonToggle; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleModule", function() { return MatButtonToggleModule; }); /* harmony import */ var _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/cdk/a11y */ "./node_modules/@angular/cdk/esm2015/a11y.js"); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/collections */ "./node_modules/@angular/cdk/esm2015/collections.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Injection token that can be used to configure the * default options for all button toggles within an app. * @type {?} */ const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["InjectionToken"]('MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS'); /** * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor. * This allows it to support [(ngModel)]. * \@docs-private * @type {?} */ const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_3__["forwardRef"])((/** * @return {?} */ () => MatButtonToggleGroup)), multi: true }; /** * @deprecated Use `MatButtonToggleGroup` instead. * \@breaking-change 8.0.0 */ class MatButtonToggleGroupMultiple { } /** @type {?} */ let _uniqueIdCounter = 0; /** * Change event object emitted by MatButtonToggle. */ class MatButtonToggleChange { /** * @param {?} source * @param {?} value */ constructor(source, value) { this.source = source; this.value = value; } } /** * Exclusive selection button toggle group that behaves like a radio-button group. */ class MatButtonToggleGroup { /** * @param {?} _changeDetector * @param {?=} defaultOptions */ constructor(_changeDetector, defaultOptions) { this._changeDetector = _changeDetector; this._vertical = false; this._multiple = false; this._disabled = false; /** * The method to be called in order to update ngModel. * Now `ngModel` binding is not supported in multiple selection mode. */ this._controlValueAccessorChangeFn = (/** * @return {?} */ () => { }); /** * onTouch function registered via registerOnTouch (ControlValueAccessor). */ this._onTouched = (/** * @return {?} */ () => { }); this._name = `mat-button-toggle-group-${_uniqueIdCounter++}`; /** * Event that emits whenever the value of the group changes. * Used to facilitate two-way data binding. * \@docs-private */ this.valueChange = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); /** * Event emitted when the group's value changes. */ this.change = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); this.appearance = defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard'; } /** * `name` attribute for the underlying `input` element. * @return {?} */ get name() { return this._name; } /** * @param {?} value * @return {?} */ set name(value) { this._name = value; if (this._buttonToggles) { this._buttonToggles.forEach((/** * @param {?} toggle * @return {?} */ toggle => { toggle.name = this._name; toggle._markForCheck(); })); } } /** * Whether the toggle group is vertical. * @return {?} */ get vertical() { return this._vertical; } /** * @param {?} value * @return {?} */ set vertical(value) { this._vertical = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); } /** * Value of the toggle group. * @return {?} */ get value() { /** @type {?} */ const selected = this._selectionModel ? this._selectionModel.selected : []; if (this.multiple) { return selected.map((/** * @param {?} toggle * @return {?} */ toggle => toggle.value)); } return selected[0] ? selected[0].value : undefined; } /** * @param {?} newValue * @return {?} */ set value(newValue) { this._setSelectionByValue(newValue); this.valueChange.emit(this.value); } /** * Selected button toggles in the group. * @return {?} */ get selected() { /** @type {?} */ const selected = this._selectionModel.selected; return this.multiple ? selected : (selected[0] || null); } /** * Whether multiple button toggles can be selected. * @return {?} */ get multiple() { return this._multiple; } /** * @param {?} value * @return {?} */ set multiple(value) { this._multiple = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); } /** * Whether multiple button toggle group is disabled. * @return {?} */ get disabled() { return this._disabled; } /** * @param {?} value * @return {?} */ set disabled(value) { this._disabled = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); if (this._buttonToggles) { this._buttonToggles.forEach((/** * @param {?} toggle * @return {?} */ toggle => toggle._markForCheck())); } } /** * @return {?} */ ngOnInit() { this._selectionModel = new _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_2__["SelectionModel"](this.multiple, undefined, false); } /** * @return {?} */ ngAfterContentInit() { this._selectionModel.select(...this._buttonToggles.filter((/** * @param {?} toggle * @return {?} */ toggle => toggle.checked))); } /** * Sets the model value. Implemented as part of ControlValueAccessor. * @param {?} value Value to be set to the model. * @return {?} */ writeValue(value) { this.value = value; this._changeDetector.markForCheck(); } // Implemented as part of ControlValueAccessor. /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this._controlValueAccessorChangeFn = fn; } // Implemented as part of ControlValueAccessor. /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this._onTouched = fn; } // Implemented as part of ControlValueAccessor. /** * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { this.disabled = isDisabled; } /** * Dispatch change event with current selection and group value. * @return {?} */ _emitChangeEvent() { /** @type {?} */ const selected = this.selected; /** @type {?} */ const source = Array.isArray(selected) ? selected[selected.length - 1] : selected; /** @type {?} */ const event = new MatButtonToggleChange((/** @type {?} */ (source)), this.value); this._controlValueAccessorChangeFn(event.value); this.change.emit(event); } /** * Syncs a button toggle's selected state with the model value. * @param {?} toggle Toggle to be synced. * @param {?} select Whether the toggle should be selected. * @param {?=} isUserInput Whether the change was a result of a user interaction. * @param {?=} deferEvents Whether to defer emitting the change events. * @return {?} */ _syncButtonToggle(toggle, select, isUserInput = false, deferEvents = false) { // Deselect the currently-selected toggle, if we're in single-selection // mode and the button being toggled isn't selected at the moment. if (!this.multiple && this.selected && !toggle.checked) { ((/** @type {?} */ (this.selected))).checked = false; } if (select) { this._selectionModel.select(toggle); } else { this._selectionModel.deselect(toggle); } // We need to defer in some cases in order to avoid "changed after checked errors", however // the side-effect is that we may end up updating the model value out of sequence in others // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis. if (deferEvents) { } else { this._updateModelValue(isUserInput); } } /** * Checks whether a button toggle is selected. * @param {?} toggle * @return {?} */ _isSelected(toggle) { return this._selectionModel.isSelected(toggle); } /** * Determines whether a button toggle should be checked on init. * @param {?} toggle * @return {?} */ _isPrechecked(toggle) { if (typeof this._rawValue === 'undefined') { return false; } if (this.multiple && Array.isArray(this._rawValue)) { return this._rawValue.some((/** * @param {?} value * @return {?} */ value => toggle.value != null && value === toggle.value)); } return toggle.value === this._rawValue; } /** * Updates the selection state of the toggles in the group based on a value. * @private * @param {?} value * @return {?} */ _setSelectionByValue(value) { this._rawValue = value; if (!this._buttonToggles) { return; } if (this.multiple && value) { if (!Array.isArray(value)) { throw Error('Value must be an array in multiple-selection mode.'); } this._clearSelection(); value.forEach((/** * @param {?} currentValue * @return {?} */ (currentValue) => this._selectValue(currentValue))); } else { this._clearSelection(); this._selectValue(value); } } /** * Clears the selected toggles. * @private * @return {?} */ _clearSelection() { this._selectionModel.clear(); this._buttonToggles.forEach((/** * @param {?} toggle * @return {?} */ toggle => toggle.checked = false)); } /** * Selects a value if there's a toggle that corresponds to it. * @private * @param {?} value * @return {?} */ _selectValue(value) { /** @type {?} */ const correspondingOption = this._buttonToggles.find((/** * @param {?} toggle * @return {?} */ toggle => { return toggle.value != null && toggle.value === value; })); if (correspondingOption) { correspondingOption.checked = true; this._selectionModel.select(correspondingOption); } } /** * Syncs up the group's value with the model and emits the change event. * @private * @param {?} isUserInput * @return {?} */ _updateModelValue(isUserInput) { // Only emit the change event for user input. if (isUserInput) { this._emitChangeEvent(); } // Note: we emit this one no matter whether it was a user interaction, because // it is used by Angular to sync up the two-way data binding. this.valueChange.emit(this.value); } } MatButtonToggleGroup.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Directive"], args: [{ selector: 'mat-button-toggle-group', providers: [ MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, { provide: MatButtonToggleGroupMultiple, useExisting: MatButtonToggleGroup }, ], host: { 'role': 'group', 'class': 'mat-button-toggle-group', '[attr.aria-disabled]': 'disabled', '[class.mat-button-toggle-vertical]': 'vertical', '[class.mat-button-toggle-group-appearance-standard]': 'appearance === "standard"', }, exportAs: 'matButtonToggleGroup', },] }, ]; /** @nocollapse */ MatButtonToggleGroup.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectorRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,] }] } ]; MatButtonToggleGroup.propDecorators = { _buttonToggles: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ContentChildren"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_3__["forwardRef"])((/** * @return {?} */ () => MatButtonToggle)),] }], appearance: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], vertical: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], valueChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }], multiple: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], change: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }] }; // Boilerplate for applying mixins to the MatButtonToggle class. /** * \@docs-private */ class MatButtonToggleBase { } /** @type {?} */ const _MatButtonToggleMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_5__["mixinDisableRipple"])(MatButtonToggleBase); /** * Single button inside of a toggle group. */ class MatButtonToggle extends _MatButtonToggleMixinBase { /** * @param {?} toggleGroup * @param {?} _changeDetectorRef * @param {?} _elementRef * @param {?} _focusMonitor * @param {?} defaultTabIndex * @param {?=} defaultOptions */ constructor(toggleGroup, _changeDetectorRef, _elementRef, _focusMonitor, // @breaking-change 8.0.0 `defaultTabIndex` to be made a required parameter. defaultTabIndex, defaultOptions) { super(); this._changeDetectorRef = _changeDetectorRef; this._elementRef = _elementRef; this._focusMonitor = _focusMonitor; this._isSingleSelector = false; this._checked = false; /** * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element */ this.ariaLabelledby = null; this._disabled = false; /** * Event emitted when the group value changes. */ this.change = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); /** @type {?} */ const parsedTabIndex = Number(defaultTabIndex); this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null; this.buttonToggleGroup = toggleGroup; this.appearance = defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard'; } /** * Unique ID for the underlying `button` element. * @return {?} */ get buttonId() { return `${this.id}-button`; } /** * The appearance style of the button. * @return {?} */ get appearance() { return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance; } /** * @param {?} value * @return {?} */ set appearance(value) { this._appearance = value; } /** * Whether the button is checked. * @return {?} */ get checked() { return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked; } /** * @param {?} value * @return {?} */ set checked(value) { /** @type {?} */ const newValue = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); if (newValue !== this._checked) { this._checked = newValue; if (this.buttonToggleGroup) { this.buttonToggleGroup._syncButtonToggle(this, this._checked); } this._changeDetectorRef.markForCheck(); } } /** * Whether the button is disabled. * @return {?} */ get disabled() { return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled); } /** * @param {?} value * @return {?} */ set disabled(value) { this._disabled = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_1__["coerceBooleanProperty"])(value); } /** * @return {?} */ ngOnInit() { this._isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple; this._type = this._isSingleSelector ? 'radio' : 'checkbox'; this.id = this.id || `mat-button-toggle-${_uniqueIdCounter++}`; if (this._isSingleSelector) { this.name = this.buttonToggleGroup.name; } if (this.buttonToggleGroup && this.buttonToggleGroup._isPrechecked(this)) { this.checked = true; } this._focusMonitor.monitor(this._elementRef, true); } /** * @return {?} */ ngOnDestroy() { /** @type {?} */ const group = this.buttonToggleGroup; this._focusMonitor.stopMonitoring(this._elementRef); // Remove the toggle from the selection once it's destroyed. Needs to happen // on the next tick in order to avoid "changed after checked" errors. if (group && group._isSelected(this)) { group._syncButtonToggle(this, false, false, true); } } /** * Focuses the button. * @return {?} */ focus() { this._buttonElement.nativeElement.focus(); } /** * Checks the button toggle due to an interaction with the underlying native button. * @return {?} */ _onButtonClick() { /** @type {?} */ const newChecked = this._isSingleSelector ? true : !this._checked; if (newChecked !== this._checked) { this._checked = newChecked; if (this.buttonToggleGroup) { this.buttonToggleGroup._syncButtonToggle(this, this._checked, true); this.buttonToggleGroup._onTouched(); } } // Emit a change event when it's the single selector this.change.emit(new MatButtonToggleChange(this, this.value)); } /** * Marks the button toggle as needing checking for change detection. * This method is exposed because the parent button toggle group will directly * update bound properties of the radio button. * @return {?} */ _markForCheck() { // When the group value changes, the button will not be notified. // Use `markForCheck` to explicit update button toggle's status. this._changeDetectorRef.markForCheck(); } } MatButtonToggle.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Component"], args: [{selector: 'mat-button-toggle', template: "<button #button class=\"mat-button-toggle-button\" type=\"button\" [id]=\"buttonId\" [attr.tabindex]=\"disabled ? -1 : tabIndex\" [attr.aria-pressed]=\"checked\" [disabled]=\"disabled || null\" [attr.name]=\"name || null\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\" (click)=\"_onButtonClick()\"><div class=\"mat-button-toggle-label-content\"><ng-content></ng-content></div></button><div class=\"mat-button-toggle-focus-overlay\"></div><div class=\"mat-button-toggle-ripple\" matRipple [matRippleTrigger]=\"button\" [matRippleDisabled]=\"this.disableRipple || this.disabled\"></div>", styles: [".mat-button-toggle-group,.mat-button-toggle-standalone{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:transparent}@media (-ms-high-contrast:active){.mat-button-toggle-group,.mat-button-toggle-standalone{outline:solid 1px}}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border-radius:4px}@media (-ms-high-contrast:active){.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}@media (-ms-high-contrast:active){.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:.5}}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media (-ms-high-contrast:active){.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.5}}@media (hover:none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px;padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px}@media (-ms-high-contrast:active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{opacity:.5;height:0}}@media (-ms-high-contrast:active){.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 48px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:0 0;color:inherit;padding:0;margin:0;font:inherit;outline:0;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}"], encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ViewEncapsulation"].None, exportAs: 'matButtonToggle', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectionStrategy"].OnPush, inputs: ['disableRipple'], host: { '[class.mat-button-toggle-standalone]': '!buttonToggleGroup', '[class.mat-button-toggle-checked]': 'checked', '[class.mat-button-toggle-disabled]': 'disabled', '[class.mat-button-toggle-appearance-standard]': 'appearance === "standard"', 'class': 'mat-button-toggle', // Always reset the tabindex to -1 so it doesn't conflict with the one on the `button`, // but can still receive focus from things like cdkFocusInitial. '[attr.tabindex]': '-1', '[attr.id]': 'id', '[attr.name]': 'null', '(focus)': 'focus()', } },] }, ]; /** @nocollapse */ MatButtonToggle.ctorParameters = () => [ { type: MatButtonToggleGroup, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ElementRef"] }, { type: _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__["FocusMonitor"] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Attribute"], args: ['tabindex',] }] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,] }] } ]; MatButtonToggle.propDecorators = { ariaLabel: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"], args: ['aria-label',] }], ariaLabelledby: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"], args: ['aria-labelledby',] }], _buttonElement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ViewChild"], args: ['button', { static: false },] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], tabIndex: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], appearance: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], checked: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], change: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatButtonToggleModule { } MatButtonToggleModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["NgModule"], args: [{ imports: [_angular_material_core__WEBPACK_IMPORTED_MODULE_5__["MatCommonModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_5__["MatRippleModule"]], exports: [_angular_material_core__WEBPACK_IMPORTED_MODULE_5__["MatCommonModule"], MatButtonToggleGroup, MatButtonToggle], declarations: [MatButtonToggleGroup, MatButtonToggle], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=button-toggle.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/card.js": /*!********************************************************!*\ !*** ./node_modules/@angular/material/esm2015/card.js ***! \********************************************************/ /*! exports provided: MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardImage, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardXlImage, MatCardAvatar, MatCard, MatCardHeader, MatCardTitleGroup, MatCardModule */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardContent", function() { return MatCardContent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardTitle", function() { return MatCardTitle; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardSubtitle", function() { return MatCardSubtitle; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardActions", function() { return MatCardActions; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardFooter", function() { return MatCardFooter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardImage", function() { return MatCardImage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardSmImage", function() { return MatCardSmImage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardMdImage", function() { return MatCardMdImage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardLgImage", function() { return MatCardLgImage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardXlImage", function() { return MatCardXlImage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardAvatar", function() { return MatCardAvatar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCard", function() { return MatCard; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardHeader", function() { return MatCardHeader; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardTitleGroup", function() { return MatCardTitleGroup; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatCardModule", function() { return MatCardModule; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Content of a card, needed as it's used as a selector in the API. * \@docs-private */ class MatCardContent { } MatCardContent.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'mat-card-content', host: { 'class': 'mat-card-content' } },] }, ]; /** * Title of a card, needed as it's used as a selector in the API. * \@docs-private */ class MatCardTitle { } MatCardTitle.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: `mat-card-title, [mat-card-title], [matCardTitle]`, host: { 'class': 'mat-card-title' } },] }, ]; /** * Sub-title of a card, needed as it's used as a selector in the API. * \@docs-private */ class MatCardSubtitle { } MatCardSubtitle.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: `mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]`, host: { 'class': 'mat-card-subtitle' } },] }, ]; /** * Action section of a card, needed as it's used as a selector in the API. * \@docs-private */ class MatCardActions { constructor() { /** * Position of the actions inside the card. */ this.align = 'start'; } } MatCardActions.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'mat-card-actions', exportAs: 'matCardActions', host: { 'class': 'mat-card-actions', '[class.mat-card-actions-align-end]': 'align === "end"', } },] }, ]; MatCardActions.propDecorators = { align: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /** * Footer of a card, needed as it's used as a selector in the API. * \@docs-private */ class MatCardFooter { } MatCardFooter.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'mat-card-footer', host: { 'class': 'mat-card-footer' } },] }, ]; /** * Image used in a card, needed to add the mat- CSS styling. * \@docs-private */ class MatCardImage { } MatCardImage.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-card-image], [matCardImage]', host: { 'class': 'mat-card-image' } },] }, ]; /** * Image used in a card, needed to add the mat- CSS styling. * \@docs-private */ class MatCardSmImage { } MatCardSmImage.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-card-sm-image], [matCardImageSmall]', host: { 'class': 'mat-card-sm-image' } },] }, ]; /** * Image used in a card, needed to add the mat- CSS styling. * \@docs-private */ class MatCardMdImage { } MatCardMdImage.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-card-md-image], [matCardImageMedium]', host: { 'class': 'mat-card-md-image' } },] }, ]; /** * Image used in a card, needed to add the mat- CSS styling. * \@docs-private */ class MatCardLgImage { } MatCardLgImage.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-card-lg-image], [matCardImageLarge]', host: { 'class': 'mat-card-lg-image' } },] }, ]; /** * Large image used in a card, needed to add the mat- CSS styling. * \@docs-private */ class MatCardXlImage { } MatCardXlImage.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-card-xl-image], [matCardImageXLarge]', host: { 'class': 'mat-card-xl-image' } },] }, ]; /** * Avatar image used in a card, needed to add the mat- CSS styling. * \@docs-private */ class MatCardAvatar { } MatCardAvatar.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-card-avatar], [matCardAvatar]', host: { 'class': 'mat-card-avatar' } },] }, ]; /** * A basic content container component that adds the styles of a Material design card. * * While this component can be used alone, it also provides a number * of preset styles for common card sections, including: * - mat-card-title * - mat-card-subtitle * - mat-card-content * - mat-card-actions * - mat-card-footer */ class MatCard { // @breaking-change 9.0.0 `_animationMode` parameter to be made required. /** * @param {?=} _animationMode */ constructor(_animationMode) { this._animationMode = _animationMode; } } MatCard.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-card', exportAs: 'matCard', template: "<ng-content></ng-content><ng-content select=\"mat-card-footer\"></ng-content>", styles: [".mat-card{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:16px;border-radius:4px}._mat-animation-noopable.mat-card{transition:none;animation:none}.mat-card .mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider-horizontal{left:auto;right:0}.mat-card .mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card .mat-divider-horizontal.mat-divider-inset{margin-right:0}@media (-ms-high-contrast:active){.mat-card{outline:solid 1px}}.mat-card-actions,.mat-card-content,.mat-card-subtitle{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media (max-width:599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card-content>:first-child,.mat-card>:first-child{margin-top:0}.mat-card-content>:last-child:not(.mat-card-footer),.mat-card>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child{margin-left:0;margin-right:0}.mat-card-subtitle:not(:first-child),.mat-card-title:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}"], encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, host: { 'class': 'mat-card', '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"', } },] }, ]; /** @nocollapse */ MatCard.ctorParameters = () => [ { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_1__["ANIMATION_MODULE_TYPE"],] }] } ]; /** * Component intended to be used within the `<mat-card>` component. It adds styles for a * preset header section (i.e. a title, subtitle, and avatar layout). * \@docs-private */ class MatCardHeader { } MatCardHeader.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-card-header', template: "<ng-content select=\"[mat-card-avatar], [matCardAvatar]\"></ng-content><div class=\"mat-card-header-text\"><ng-content select=\"mat-card-title, mat-card-subtitle, [mat-card-title], [mat-card-subtitle], [matCardTitle], [matCardSubtitle]\"></ng-content></div><ng-content></ng-content>", encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, host: { 'class': 'mat-card-header' } },] }, ]; /** * Component intended to be used within the `<mat-card>` component. It adds styles for a preset * layout that groups an image with a title section. * \@docs-private */ class MatCardTitleGroup { } MatCardTitleGroup.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-card-title-group', template: "<div><ng-content select=\"mat-card-title, mat-card-subtitle, [mat-card-title], [mat-card-subtitle], [matCardTitle], [matCardSubtitle]\"></ng-content></div><ng-content select=\"img\"></ng-content><ng-content></ng-content>", encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, host: { 'class': 'mat-card-title-group' } },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatCardModule { } MatCardModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ imports: [_angular_material_core__WEBPACK_IMPORTED_MODULE_2__["MatCommonModule"]], exports: [ MatCard, MatCardHeader, MatCardTitleGroup, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardImage, MatCardXlImage, MatCardAvatar, _angular_material_core__WEBPACK_IMPORTED_MODULE_2__["MatCommonModule"], ], declarations: [ MatCard, MatCardHeader, MatCardTitleGroup, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardImage, MatCardXlImage, MatCardAvatar, ], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=card.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/chips.js": /*!*********************************************************!*\ !*** ./node_modules/@angular/material/esm2015/chips.js ***! \*********************************************************/ /*! exports provided: MatChipsModule, MatChipListChange, MatChipList, MatChipSelectionChange, MatChipAvatar, MatChipTrailingIcon, MatChip, MatChipRemove, MatChipInput, MAT_CHIPS_DEFAULT_OPTIONS */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipsModule", function() { return MatChipsModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipListChange", function() { return MatChipListChange; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipList", function() { return MatChipList; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipSelectionChange", function() { return MatChipSelectionChange; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipAvatar", function() { return MatChipAvatar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipTrailingIcon", function() { return MatChipTrailingIcon; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChip", function() { return MatChip; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipRemove", function() { return MatChipRemove; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatChipInput", function() { return MatChipInput; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_CHIPS_DEFAULT_OPTIONS", function() { return MAT_CHIPS_DEFAULT_OPTIONS; }); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/keycodes */ "./node_modules/@angular/cdk/esm2015/keycodes.js"); /* harmony import */ var _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/platform */ "./node_modules/@angular/cdk/esm2015/platform.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); /* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js"); /* harmony import */ var _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/cdk/a11y */ "./node_modules/@angular/cdk/esm2015/a11y.js"); /* harmony import */ var _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/cdk/bidi */ "./node_modules/@angular/cdk/esm2015/bidi.js"); /* harmony import */ var _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/cdk/collections */ "./node_modules/@angular/cdk/esm2015/collections.js"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js"); /* harmony import */ var _angular_material_form_field__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/form-field */ "./node_modules/@angular/material/esm2015/form-field.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Event object emitted by MatChip when selected or deselected. */ class MatChipSelectionChange { /** * @param {?} source * @param {?} selected * @param {?=} isUserInput */ constructor(source, selected, isUserInput = false) { this.source = source; this.selected = selected; this.isUserInput = isUserInput; } } // Boilerplate for applying mixins to MatChip. /** * \@docs-private */ class MatChipBase { /** * @param {?} _elementRef */ constructor(_elementRef) { this._elementRef = _elementRef; } } /** @type {?} */ const _MatChipMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["mixinColor"])(Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["mixinDisableRipple"])(Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["mixinDisabled"])(MatChipBase)), 'primary'); /** * Dummy directive to add CSS class to chip avatar. * \@docs-private */ class MatChipAvatar { } MatChipAvatar.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Directive"], args: [{ selector: 'mat-chip-avatar, [matChipAvatar]', host: { 'class': 'mat-chip-avatar' } },] }, ]; /** * Dummy directive to add CSS class to chip trailing icon. * \@docs-private */ class MatChipTrailingIcon { } MatChipTrailingIcon.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Directive"], args: [{ selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]', host: { 'class': 'mat-chip-trailing-icon' } },] }, ]; /** * Material design styled Chip component. Used inside the MatChipList component. */ class MatChip extends _MatChipMixinBase { /** * @param {?} _elementRef * @param {?} _ngZone * @param {?} platform * @param {?} globalRippleOptions * @param {?=} animationMode */ constructor(_elementRef, _ngZone, platform, globalRippleOptions, // @breaking-change 8.0.0 `animationMode` parameter to become required. animationMode) { super(_elementRef); this._elementRef = _elementRef; this._ngZone = _ngZone; /** * Whether the chip has focus. */ this._hasFocus = false; /** * Whether the chip list is selectable */ this.chipListSelectable = true; /** * Whether the chip list is in multi-selection mode. */ this._chipListMultiple = false; this._selected = false; this._selectable = true; this._removable = true; /** * Emits when the chip is focused. */ this._onFocus = new rxjs__WEBPACK_IMPORTED_MODULE_5__["Subject"](); /** * Emits when the chip is blured. */ this._onBlur = new rxjs__WEBPACK_IMPORTED_MODULE_5__["Subject"](); /** * Emitted when the chip is selected or deselected. */ this.selectionChange = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); /** * Emitted when the chip is destroyed. */ this.destroyed = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); /** * Emitted when a chip is to be removed. */ this.removed = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); this._addHostClassName(); this._chipRipple = new _angular_material_core__WEBPACK_IMPORTED_MODULE_4__["RippleRenderer"](this, _ngZone, _elementRef, platform); this._chipRipple.setupTriggerEvents(_elementRef.nativeElement); this.rippleConfig = globalRippleOptions || {}; this._animationsDisabled = animationMode === 'NoopAnimations'; } /** * Whether ripples are disabled on interaction * \@docs-private * @return {?} */ get rippleDisabled() { return this.disabled || this.disableRipple || !!this.rippleConfig.disabled; } /** * Whether the chip is selected. * @return {?} */ get selected() { return this._selected; } /** * @param {?} value * @return {?} */ set selected(value) { /** @type {?} */ const coercedValue = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); if (coercedValue !== this._selected) { this._selected = coercedValue; this._dispatchSelectionChange(); } } /** * The value of the chip. Defaults to the content inside `<mat-chip>` tags. * @return {?} */ get value() { return this._value != undefined ? this._value : this._elementRef.nativeElement.textContent; } /** * @param {?} value * @return {?} */ set value(value) { this._value = value; } /** * Whether or not the chip is selectable. When a chip is not selectable, * changes to its selected state are always ignored. By default a chip is * selectable, and it becomes non-selectable if its parent chip list is * not selectable. * @return {?} */ get selectable() { return this._selectable && this.chipListSelectable; } /** * @param {?} value * @return {?} */ set selectable(value) { this._selectable = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); } /** * Determines whether or not the chip displays the remove styling and emits (removed) events. * @return {?} */ get removable() { return this._removable; } /** * @param {?} value * @return {?} */ set removable(value) { this._removable = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); } /** * The ARIA selected applied to the chip. * @return {?} */ get ariaSelected() { // Remove the `aria-selected` when the chip is deselected in single-selection mode, because // it adds noise to NVDA users where "not selected" will be read out for each chip. return this.selectable && (this._chipListMultiple || this.selected) ? this.selected.toString() : null; } /** * @return {?} */ _addHostClassName() { /** @type {?} */ const basicChipAttrName = 'mat-basic-chip'; /** @type {?} */ const element = (/** @type {?} */ (this._elementRef.nativeElement)); if (element.hasAttribute(basicChipAttrName) || element.tagName.toLowerCase() === basicChipAttrName) { element.classList.add(basicChipAttrName); return; } else { element.classList.add('mat-standard-chip'); } } /** * @return {?} */ ngOnDestroy() { this.destroyed.emit({ chip: this }); this._chipRipple._removeTriggerEvents(); } /** * Selects the chip. * @return {?} */ select() { if (!this._selected) { this._selected = true; this._dispatchSelectionChange(); } } /** * Deselects the chip. * @return {?} */ deselect() { if (this._selected) { this._selected = false; this._dispatchSelectionChange(); } } /** * Select this chip and emit selected event * @return {?} */ selectViaInteraction() { if (!this._selected) { this._selected = true; this._dispatchSelectionChange(true); } } /** * Toggles the current selected state of this chip. * @param {?=} isUserInput * @return {?} */ toggleSelected(isUserInput = false) { this._selected = !this.selected; this._dispatchSelectionChange(isUserInput); return this.selected; } /** * Allows for programmatic focusing of the chip. * @return {?} */ focus() { if (!this._hasFocus) { this._elementRef.nativeElement.focus(); this._onFocus.next({ chip: this }); } this._hasFocus = true; } /** * Allows for programmatic removal of the chip. Called by the MatChipList when the DELETE or * BACKSPACE keys are pressed. * * Informs any listeners of the removal request. Does not remove the chip from the DOM. * @return {?} */ remove() { if (this.removable) { this.removed.emit({ chip: this }); } } /** * Handles click events on the chip. * @param {?} event * @return {?} */ _handleClick(event) { if (this.disabled) { event.preventDefault(); } else { event.stopPropagation(); } } /** * Handle custom key presses. * @param {?} event * @return {?} */ _handleKeydown(event) { if (this.disabled) { return; } switch (event.keyCode) { case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["DELETE"]: case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["BACKSPACE"]: // If we are removable, remove the focused chip this.remove(); // Always prevent so page navigation does not occur event.preventDefault(); break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["SPACE"]: // If we are selectable, toggle the focused chip if (this.selectable) { this.toggleSelected(true); } // Always prevent space from scrolling the page since the list has focus event.preventDefault(); break; } } /** * @return {?} */ _blur() { // When animations are enabled, Angular may end up removing the chip from the DOM a little // earlier than usual, causing it to be blurred and throwing off the logic in the chip list // that moves focus not the next item. To work around the issue, we defer marking the chip // as not focused until the next time the zone stabilizes. this._ngZone.onStable .asObservable() .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_6__["take"])(1)) .subscribe((/** * @return {?} */ () => { this._ngZone.run((/** * @return {?} */ () => { this._hasFocus = false; this._onBlur.next({ chip: this }); })); })); } /** * @private * @param {?=} isUserInput * @return {?} */ _dispatchSelectionChange(isUserInput = false) { this.selectionChange.emit({ source: this, isUserInput, selected: this._selected }); } } MatChip.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Directive"], args: [{ selector: `mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]`, inputs: ['color', 'disabled', 'disableRipple'], exportAs: 'matChip', host: { 'class': 'mat-chip', '[attr.tabindex]': 'disabled ? null : -1', 'role': 'option', '[class.mat-chip-selected]': 'selected', '[class.mat-chip-with-avatar]': 'avatar', '[class.mat-chip-with-trailing-icon]': 'trailingIcon || removeIcon', '[class.mat-chip-disabled]': 'disabled', '[class._mat-animation-noopable]': '_animationsDisabled', '[attr.disabled]': 'disabled || null', '[attr.aria-disabled]': 'disabled.toString()', '[attr.aria-selected]': 'ariaSelected', '(click)': '_handleClick($event)', '(keydown)': '_handleKeydown($event)', '(focus)': 'focus()', '(blur)': '_blur()', }, },] }, ]; /** @nocollapse */ MatChip.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["NgZone"] }, { type: _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_2__["Platform"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["MAT_RIPPLE_GLOBAL_OPTIONS"],] }] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_7__["ANIMATION_MODULE_TYPE"],] }] } ]; MatChip.propDecorators = { avatar: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ContentChild"], args: [MatChipAvatar, { static: false },] }], trailingIcon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ContentChild"], args: [MatChipTrailingIcon, { static: false },] }], removeIcon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ContentChild"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_3__["forwardRef"])((/** * @return {?} */ () => MatChipRemove)), { static: false },] }], selected: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], selectable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], removable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], selectionChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }], destroyed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }], removed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }] }; /** * Applies proper (click) support and adds styling for use with the Material Design "cancel" icon * available at https://material.io/icons/#ic_cancel. * * Example: * * `<mat-chip> * <mat-icon matChipRemove>cancel</mat-icon> * </mat-chip>` * * You *may* use a custom icon, but you may need to override the `mat-chip-remove` positioning * styles to properly center the icon within the chip. */ class MatChipRemove { /** * @param {?} _parentChip */ constructor(_parentChip) { this._parentChip = _parentChip; } /** * Calls the parent chip's public `remove()` method if applicable. * @param {?} event * @return {?} */ _handleClick(event) { /** @type {?} */ const parentChip = this._parentChip; if (parentChip.removable && !parentChip.disabled) { parentChip.remove(); } // We need to stop event propagation because otherwise the event will bubble up to the // form field and cause the `onContainerClick` method to be invoked. This method would then // reset the focused chip that has been focused after chip removal. Usually the parent // the parent click listener of the `MatChip` would prevent propagation, but it can happen // that the chip is being removed before the event bubbles up. event.stopPropagation(); } } MatChipRemove.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Directive"], args: [{ selector: '[matChipRemove]', host: { 'class': 'mat-chip-remove mat-chip-trailing-icon', '(click)': '_handleClick($event)', } },] }, ]; /** @nocollapse */ MatChipRemove.ctorParameters = () => [ { type: MatChip } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Injection token to be used to override the default options for the chips module. * @type {?} */ const MAT_CHIPS_DEFAULT_OPTIONS = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["InjectionToken"]('mat-chips-default-options'); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // Boilerplate for applying mixins to MatChipList. /** * \@docs-private */ class MatChipListBase { /** * @param {?} _defaultErrorStateMatcher * @param {?} _parentForm * @param {?} _parentFormGroup * @param {?} ngControl */ constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl) { this._defaultErrorStateMatcher = _defaultErrorStateMatcher; this._parentForm = _parentForm; this._parentFormGroup = _parentFormGroup; this.ngControl = ngControl; } } /** @type {?} */ const _MatChipListMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["mixinErrorState"])(MatChipListBase); // Increasing integer for generating unique ids for chip-list components. /** @type {?} */ let nextUniqueId = 0; /** * Change event object that is emitted when the chip list value has changed. */ class MatChipListChange { /** * @param {?} source * @param {?} value */ constructor(source, value) { this.source = source; this.value = value; } } /** * A material design chips component (named ChipList for its similarity to the List component). */ class MatChipList extends _MatChipListMixinBase { /** * @param {?} _elementRef * @param {?} _changeDetectorRef * @param {?} _dir * @param {?} _parentForm * @param {?} _parentFormGroup * @param {?} _defaultErrorStateMatcher * @param {?} ngControl */ constructor(_elementRef, _changeDetectorRef, _dir, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, ngControl) { super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl); this._elementRef = _elementRef; this._changeDetectorRef = _changeDetectorRef; this._dir = _dir; this.ngControl = ngControl; /** * Implemented as part of MatFormFieldControl. * \@docs-private */ this.controlType = 'mat-chip-list'; /** * When a chip is destroyed, we store the index of the destroyed chip until the chips * query list notifies about the update. This is necessary because we cannot determine an * appropriate chip that should receive focus until the array of chips updated completely. */ this._lastDestroyedChipIndex = null; /** * Subject that emits when the component has been destroyed. */ this._destroyed = new rxjs__WEBPACK_IMPORTED_MODULE_5__["Subject"](); /** * Uid of the chip list */ this._uid = `mat-chip-list-${nextUniqueId++}`; /** * Tab index for the chip list. */ this._tabIndex = 0; /** * User defined tab index. * When it is not null, use user defined tab index. Otherwise use _tabIndex */ this._userTabIndex = null; /** * Function when touched */ this._onTouched = (/** * @return {?} */ () => { }); /** * Function when changed */ this._onChange = (/** * @return {?} */ () => { }); this._multiple = false; this._compareWith = (/** * @param {?} o1 * @param {?} o2 * @return {?} */ (o1, o2) => o1 === o2); this._required = false; this._disabled = false; /** * Orientation of the chip list. */ this.ariaOrientation = 'horizontal'; this._selectable = true; /** * Event emitted when the selected chip list value has been changed by the user. */ this.change = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); /** * Event that emits whenever the raw value of the chip-list changes. This is here primarily * to facilitate the two-way binding for the `value` input. * \@docs-private */ this.valueChange = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); if (this.ngControl) { this.ngControl.valueAccessor = this; } } /** * The array of selected chips inside chip list. * @return {?} */ get selected() { return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0]; } /** * The ARIA role applied to the chip list. * @return {?} */ get role() { return this.empty ? null : 'listbox'; } /** * Whether the user should be allowed to select multiple chips. * @return {?} */ get multiple() { return this._multiple; } /** * @param {?} value * @return {?} */ set multiple(value) { this._multiple = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); this._syncChipsState(); } /** * A function to compare the option values with the selected values. The first argument * is a value from an option. The second is a value from the selection. A boolean * should be returned. * @return {?} */ get compareWith() { return this._compareWith; } /** * @param {?} fn * @return {?} */ set compareWith(fn) { this._compareWith = fn; if (this._selectionModel) { // A different comparator means the selection could change. this._initializeSelection(); } } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get value() { return this._value; } /** * @param {?} value * @return {?} */ set value(value) { this.writeValue(value); this._value = value; } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get id() { return this._chipInput ? this._chipInput.id : this._uid; } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get required() { return this._required; } /** * @param {?} value * @return {?} */ set required(value) { this._required = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); this.stateChanges.next(); } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get placeholder() { return this._chipInput ? this._chipInput.placeholder : this._placeholder; } /** * @param {?} value * @return {?} */ set placeholder(value) { this._placeholder = value; this.stateChanges.next(); } /** * Whether any chips or the matChipInput inside of this chip-list has focus. * @return {?} */ get focused() { return (this._chipInput && this._chipInput.focused) || this._hasFocusedChip(); } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get empty() { return (!this._chipInput || this._chipInput.empty) && this.chips.length === 0; } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get shouldLabelFloat() { return !this.empty || this.focused; } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @return {?} */ get disabled() { return this.ngControl ? !!this.ngControl.disabled : this._disabled; } /** * @param {?} value * @return {?} */ set disabled(value) { this._disabled = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); this._syncChipsState(); } /** * Whether or not this chip list is selectable. When a chip list is not selectable, * the selected states for all the chips inside the chip list are always ignored. * @return {?} */ get selectable() { return this._selectable; } /** * @param {?} value * @return {?} */ set selectable(value) { this._selectable = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); if (this.chips) { this.chips.forEach((/** * @param {?} chip * @return {?} */ chip => chip.chipListSelectable = this._selectable)); } } /** * @param {?} value * @return {?} */ set tabIndex(value) { this._userTabIndex = value; this._tabIndex = value; } /** * Combined stream of all of the child chips' selection change events. * @return {?} */ get chipSelectionChanges() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["merge"])(...this.chips.map((/** * @param {?} chip * @return {?} */ chip => chip.selectionChange))); } /** * Combined stream of all of the child chips' focus change events. * @return {?} */ get chipFocusChanges() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["merge"])(...this.chips.map((/** * @param {?} chip * @return {?} */ chip => chip._onFocus))); } /** * Combined stream of all of the child chips' blur change events. * @return {?} */ get chipBlurChanges() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["merge"])(...this.chips.map((/** * @param {?} chip * @return {?} */ chip => chip._onBlur))); } /** * Combined stream of all of the child chips' remove change events. * @return {?} */ get chipRemoveChanges() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["merge"])(...this.chips.map((/** * @param {?} chip * @return {?} */ chip => chip.destroyed))); } /** * @return {?} */ ngAfterContentInit() { this._keyManager = new _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_8__["FocusKeyManager"](this.chips) .withWrap() .withVerticalOrientation() .withHorizontalOrientation(this._dir ? this._dir.value : 'ltr'); if (this._dir) { this._dir.change .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_6__["takeUntil"])(this._destroyed)) .subscribe((/** * @param {?} dir * @return {?} */ dir => this._keyManager.withHorizontalOrientation(dir))); } this._keyManager.tabOut.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_6__["takeUntil"])(this._destroyed)).subscribe((/** * @return {?} */ () => { this._allowFocusEscape(); })); // When the list changes, re-subscribe this.chips.changes.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_6__["startWith"])(null), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_6__["takeUntil"])(this._destroyed)).subscribe((/** * @return {?} */ () => { if (this.disabled) { // Since this happens after the content has been // checked, we need to defer it to the next tick. Promise.resolve().then((/** * @return {?} */ () => { this._syncChipsState(); })); } this._resetChips(); // Reset chips selected/deselected status this._initializeSelection(); // Check to see if we need to update our tab index this._updateTabIndex(); // Check to see if we have a destroyed chip and need to refocus this._updateFocusForDestroyedChips(); this.stateChanges.next(); })); } /** * @return {?} */ ngOnInit() { this._selectionModel = new _angular_cdk_collections__WEBPACK_IMPORTED_MODULE_10__["SelectionModel"](this.multiple, undefined, false); this.stateChanges.next(); } /** * @return {?} */ ngDoCheck() { if (this.ngControl) { // We need to re-evaluate this on every change detection cycle, because there are some // error triggers that we can't subscribe to (e.g. parent form submissions). This means // that whatever logic is in here has to be super lean or we risk destroying the performance. this.updateErrorState(); } } /** * @return {?} */ ngOnDestroy() { this._destroyed.next(); this._destroyed.complete(); this.stateChanges.complete(); this._dropSubscriptions(); } /** * Associates an HTML input element with this chip list. * @param {?} inputElement * @return {?} */ registerInput(inputElement) { this._chipInput = inputElement; } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @param {?} ids * @return {?} */ setDescribedByIds(ids) { this._ariaDescribedby = ids.join(' '); } // Implemented as part of ControlValueAccessor. /** * @param {?} value * @return {?} */ writeValue(value) { if (this.chips) { this._setSelectionByValue(value, false); } } // Implemented as part of ControlValueAccessor. /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this._onChange = fn; } // Implemented as part of ControlValueAccessor. /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this._onTouched = fn; } // Implemented as part of ControlValueAccessor. /** * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { this.disabled = isDisabled; this.stateChanges.next(); } /** * Implemented as part of MatFormFieldControl. * \@docs-private * @param {?} event * @return {?} */ onContainerClick(event) { if (!this._originatesFromChip(event)) { this.focus(); } } /** * Focuses the first non-disabled chip in this chip list, or the associated input when there * are no eligible chips. * @return {?} */ focus() { if (this.disabled) { return; } // TODO: ARIA says this should focus the first `selected` chip if any are selected. // Focus on first element if there's no chipInput inside chip-list if (this._chipInput && this._chipInput.focused) { // do nothing } else if (this.chips.length > 0) { this._keyManager.setFirstItemActive(); this.stateChanges.next(); } else { this._focusInput(); this.stateChanges.next(); } } /** * Attempt to focus an input if we have one. * @return {?} */ _focusInput() { if (this._chipInput) { this._chipInput.focus(); } } /** * Pass events to the keyboard manager. Available here for tests. * @param {?} event * @return {?} */ _keydown(event) { /** @type {?} */ const target = (/** @type {?} */ (event.target)); // If they are on an empty input and hit backspace, focus the last chip if (event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["BACKSPACE"] && this._isInputEmpty(target)) { this._keyManager.setLastItemActive(); event.preventDefault(); } else if (target && target.classList.contains('mat-chip')) { if (event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["HOME"]) { this._keyManager.setFirstItemActive(); event.preventDefault(); } else if (event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["END"]) { this._keyManager.setLastItemActive(); event.preventDefault(); } else { this._keyManager.onKeydown(event); } this.stateChanges.next(); } } /** * Check the tab index as you should not be allowed to focus an empty list. * @protected * @return {?} */ _updateTabIndex() { // If we have 0 chips, we should not allow keyboard focus this._tabIndex = this._userTabIndex || (this.chips.length === 0 ? -1 : 0); } /** * If the amount of chips changed, we need to update the * key manager state and focus the next closest chip. * @protected * @return {?} */ _updateFocusForDestroyedChips() { // Move focus to the closest chip. If no other chips remain, focus the chip-list itself. if (this._lastDestroyedChipIndex != null) { if (this.chips.length) { /** @type {?} */ const newChipIndex = Math.min(this._lastDestroyedChipIndex, this.chips.length - 1); this._keyManager.setActiveItem(newChipIndex); } else { this.focus(); } } this._lastDestroyedChipIndex = null; } /** * Utility to ensure all indexes are valid. * * @private * @param {?} index The index to be checked. * @return {?} True if the index is valid for our list of chips. */ _isValidIndex(index) { return index >= 0 && index < this.chips.length; } /** * @private * @param {?} element * @return {?} */ _isInputEmpty(element) { if (element && element.nodeName.toLowerCase() === 'input') { /** @type {?} */ let input = (/** @type {?} */ (element)); return !input.value; } return false; } /** * @param {?} value * @param {?=} isUserInput * @return {?} */ _setSelectionByValue(value, isUserInput = true) { this._clearSelection(); this.chips.forEach((/** * @param {?} chip * @return {?} */ chip => chip.deselect())); if (Array.isArray(value)) { value.forEach((/** * @param {?} currentValue * @return {?} */ currentValue => this._selectValue(currentValue, isUserInput))); this._sortValues(); } else { /** @type {?} */ const correspondingChip = this._selectValue(value, isUserInput); // Shift focus to the active item. Note that we shouldn't do this in multiple // mode, because we don't know what chip the user interacted with last. if (correspondingChip) { if (isUserInput) { this._keyManager.setActiveItem(correspondingChip); } } } } /** * Finds and selects the chip based on its value. * @private * @param {?} value * @param {?=} isUserInput * @return {?} Chip that has the corresponding value. */ _selectValue(value, isUserInput = true) { /** @type {?} */ const correspondingChip = this.chips.find((/** * @param {?} chip * @return {?} */ chip => { return chip.value != null && this._compareWith(chip.value, value); })); if (correspondingChip) { isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select(); this._selectionModel.select(correspondingChip); } return correspondingChip; } /** * @private * @return {?} */ _initializeSelection() { // Defer setting the value in order to avoid the "Expression // has changed after it was checked" errors from Angular. Promise.resolve().then((/** * @return {?} */ () => { if (this.ngControl || this._value) { this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._value, false); this.stateChanges.next(); } })); } /** * Deselects every chip in the list. * @private * @param {?=} skip Chip that should not be deselected. * @return {?} */ _clearSelection(skip) { this._selectionModel.clear(); this.chips.forEach((/** * @param {?} chip * @return {?} */ chip => { if (chip !== skip) { chip.deselect(); } })); this.stateChanges.next(); } /** * Sorts the model values, ensuring that they keep the same * order that they have in the panel. * @private * @return {?} */ _sortValues() { if (this._multiple) { this._selectionModel.clear(); this.chips.forEach((/** * @param {?} chip * @return {?} */ chip => { if (chip.selected) { this._selectionModel.select(chip); } })); this.stateChanges.next(); } } /** * Emits change event to set the model value. * @private * @param {?=} fallbackValue * @return {?} */ _propagateChanges(fallbackValue) { /** @type {?} */ let valueToEmit = null; if (Array.isArray(this.selected)) { valueToEmit = this.selected.map((/** * @param {?} chip * @return {?} */ chip => chip.value)); } else { valueToEmit = this.selected ? this.selected.value : fallbackValue; } this._value = valueToEmit; this.change.emit(new MatChipListChange(this, valueToEmit)); this.valueChange.emit(valueToEmit); this._onChange(valueToEmit); this._changeDetectorRef.markForCheck(); } /** * When blurred, mark the field as touched when focus moved outside the chip list. * @return {?} */ _blur() { if (!this._hasFocusedChip()) { this._keyManager.setActiveItem(-1); } if (!this.disabled) { if (this._chipInput) { // If there's a chip input, we should check whether the focus moved to chip input. // If the focus is not moved to chip input, mark the field as touched. If the focus moved // to chip input, do nothing. // Timeout is needed to wait for the focus() event trigger on chip input. setTimeout((/** * @return {?} */ () => { if (!this.focused) { this._markAsTouched(); } })); } else { // If there's no chip input, then mark the field as touched. this._markAsTouched(); } } } /** * Mark the field as touched * @return {?} */ _markAsTouched() { this._onTouched(); this._changeDetectorRef.markForCheck(); this.stateChanges.next(); } /** * Removes the `tabindex` from the chip list and resets it back afterwards, allowing the * user to tab out of it. This prevents the list from capturing focus and redirecting * it back to the first chip, creating a focus trap, if it user tries to tab away. * @return {?} */ _allowFocusEscape() { if (this._tabIndex !== -1) { this._tabIndex = -1; setTimeout((/** * @return {?} */ () => { this._tabIndex = this._userTabIndex || 0; this._changeDetectorRef.markForCheck(); })); } } /** * @private * @return {?} */ _resetChips() { this._dropSubscriptions(); this._listenToChipsFocus(); this._listenToChipsSelection(); this._listenToChipsRemoved(); } /** * @private * @return {?} */ _dropSubscriptions() { if (this._chipFocusSubscription) { this._chipFocusSubscription.unsubscribe(); this._chipFocusSubscription = null; } if (this._chipBlurSubscription) { this._chipBlurSubscription.unsubscribe(); this._chipBlurSubscription = null; } if (this._chipSelectionSubscription) { this._chipSelectionSubscription.unsubscribe(); this._chipSelectionSubscription = null; } if (this._chipRemoveSubscription) { this._chipRemoveSubscription.unsubscribe(); this._chipRemoveSubscription = null; } } /** * Listens to user-generated selection events on each chip. * @private * @return {?} */ _listenToChipsSelection() { this._chipSelectionSubscription = this.chipSelectionChanges.subscribe((/** * @param {?} event * @return {?} */ event => { event.source.selected ? this._selectionModel.select(event.source) : this._selectionModel.deselect(event.source); // For single selection chip list, make sure the deselected value is unselected. if (!this.multiple) { this.chips.forEach((/** * @param {?} chip * @return {?} */ chip => { if (!this._selectionModel.isSelected(chip) && chip.selected) { chip.deselect(); } })); } if (event.isUserInput) { this._propagateChanges(); } })); } /** * Listens to user-generated selection events on each chip. * @private * @return {?} */ _listenToChipsFocus() { this._chipFocusSubscription = this.chipFocusChanges.subscribe((/** * @param {?} event * @return {?} */ event => { /** @type {?} */ let chipIndex = this.chips.toArray().indexOf(event.chip); if (this._isValidIndex(chipIndex)) { this._keyManager.updateActiveItemIndex(chipIndex); } this.stateChanges.next(); })); this._chipBlurSubscription = this.chipBlurChanges.subscribe((/** * @return {?} */ () => { this._blur(); this.stateChanges.next(); })); } /** * @private * @return {?} */ _listenToChipsRemoved() { this._chipRemoveSubscription = this.chipRemoveChanges.subscribe((/** * @param {?} event * @return {?} */ event => { /** @type {?} */ const chip = event.chip; /** @type {?} */ const chipIndex = this.chips.toArray().indexOf(event.chip); // In case the chip that will be removed is currently focused, we temporarily store // the index in order to be able to determine an appropriate sibling chip that will // receive focus. if (this._isValidIndex(chipIndex) && chip._hasFocus) { this._lastDestroyedChipIndex = chipIndex; } })); } /** * Checks whether an event comes from inside a chip element. * @private * @param {?} event * @return {?} */ _originatesFromChip(event) { /** @type {?} */ let currentElement = (/** @type {?} */ (event.target)); while (currentElement && currentElement !== this._elementRef.nativeElement) { if (currentElement.classList.contains('mat-chip')) { return true; } currentElement = currentElement.parentElement; } return false; } /** * Checks whether any of the chips is focused. * @private * @return {?} */ _hasFocusedChip() { return this.chips.some((/** * @param {?} chip * @return {?} */ chip => chip._hasFocus)); } /** * Syncs the list's state with the individual chips. * @private * @return {?} */ _syncChipsState() { if (this.chips) { this.chips.forEach((/** * @param {?} chip * @return {?} */ chip => { chip.disabled = this._disabled; chip._chipListMultiple = this.multiple; })); } } } MatChipList.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Component"], args: [{selector: 'mat-chip-list', template: `<div class="mat-chip-list-wrapper"><ng-content></ng-content></div>`, exportAs: 'matChipList', host: { '[attr.tabindex]': 'disabled ? null : _tabIndex', '[attr.aria-describedby]': '_ariaDescribedby || null', '[attr.aria-required]': 'required.toString()', '[attr.aria-disabled]': 'disabled.toString()', '[attr.aria-invalid]': 'errorState', '[attr.aria-multiselectable]': 'multiple', '[attr.role]': 'role', '[class.mat-chip-list-disabled]': 'disabled', '[class.mat-chip-list-invalid]': 'errorState', '[class.mat-chip-list-required]': 'required', '[attr.aria-orientation]': 'ariaOrientation', 'class': 'mat-chip-list', '(focus)': 'focus()', '(blur)': '_blur()', '(keydown)': '_keydown($event)', '[id]': '_uid', }, providers: [{ provide: _angular_material_form_field__WEBPACK_IMPORTED_MODULE_12__["MatFormFieldControl"], useExisting: MatChipList }], styles: [".mat-chip{position:relative;overflow:hidden;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transform:translateZ(0)}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}._mat-animation-noopable.mat-standard-chip{transition:none;animation:none}.mat-standard-chip .mat-chip-remove.mat-icon{width:18px;height:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:'';pointer-events:none;transition:opacity .2s cubic-bezier(.35,0,.25,1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:0}.mat-standard-chip:focus::after{opacity:.16}@media (-ms-high-contrast:active){.mat-standard-chip{outline:solid 1px}.mat-standard-chip:focus{outline:dotted 2px}}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper .mat-standard-chip,.mat-chip-list-wrapper input.mat-input-element{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}"], encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectionStrategy"].OnPush },] }, ]; /** @nocollapse */ MatChipList.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectorRef"] }, { type: _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_9__["Directionality"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }] }, { type: _angular_forms__WEBPACK_IMPORTED_MODULE_11__["NgForm"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }] }, { type: _angular_forms__WEBPACK_IMPORTED_MODULE_11__["FormGroupDirective"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }] }, { type: _angular_material_core__WEBPACK_IMPORTED_MODULE_4__["ErrorStateMatcher"] }, { type: _angular_forms__WEBPACK_IMPORTED_MODULE_11__["NgControl"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Self"] }] } ]; MatChipList.propDecorators = { errorStateMatcher: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], multiple: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], compareWith: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], required: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], placeholder: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], ariaOrientation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"], args: ['aria-orientation',] }], selectable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], tabIndex: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], change: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }], valueChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"] }], chips: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ContentChildren"], args: [MatChip, { // We need to use `descendants: true`, because Ivy will no longer match // indirect descendants if it's left as false. descendants: true },] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // Increasing integer for generating unique ids. /** @type {?} */ let nextUniqueId$1 = 0; /** * Directive that adds chip-specific behaviors to an input element inside `<mat-form-field>`. * May be placed inside or outside of an `<mat-chip-list>`. */ class MatChipInput { /** * @param {?} _elementRef * @param {?} _defaultOptions */ constructor(_elementRef, _defaultOptions) { this._elementRef = _elementRef; this._defaultOptions = _defaultOptions; /** * Whether the control is focused. */ this.focused = false; this._addOnBlur = false; /** * The list of key codes that will trigger a chipEnd event. * * Defaults to `[ENTER]`. */ this.separatorKeyCodes = this._defaultOptions.separatorKeyCodes; /** * Emitted when a chip is to be added. */ this.chipEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](); /** * The input's placeholder text. */ this.placeholder = ''; /** * Unique id for the input. */ this.id = `mat-chip-list-input-${nextUniqueId$1++}`; this._disabled = false; this._inputElement = (/** @type {?} */ (this._elementRef.nativeElement)); } /** * Register input for chip list * @param {?} value * @return {?} */ set chipList(value) { if (value) { this._chipList = value; this._chipList.registerInput(this); } } /** * Whether or not the chipEnd event will be emitted when the input is blurred. * @return {?} */ get addOnBlur() { return this._addOnBlur; } /** * @param {?} value * @return {?} */ set addOnBlur(value) { this._addOnBlur = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); } /** * Whether the input is disabled. * @return {?} */ get disabled() { return this._disabled || (this._chipList && this._chipList.disabled); } /** * @param {?} value * @return {?} */ set disabled(value) { this._disabled = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceBooleanProperty"])(value); } /** * Whether the input is empty. * @return {?} */ get empty() { return !this._inputElement.value; } /** * @return {?} */ ngOnChanges() { this._chipList.stateChanges.next(); } /** * Utility method to make host definition/tests more clear. * @param {?=} event * @return {?} */ _keydown(event) { // Allow the user's focus to escape when they're tabbing forward. Note that we don't // want to do this when going backwards, because focus should go back to the first chip. if (event && event.keyCode === _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["TAB"] && !Object(_angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["hasModifierKey"])(event, 'shiftKey')) { this._chipList._allowFocusEscape(); } this._emitChipEnd(event); } /** * Checks to see if the blur should emit the (chipEnd) event. * @return {?} */ _blur() { if (this.addOnBlur) { this._emitChipEnd(); } this.focused = false; // Blur the chip list if it is not focused if (!this._chipList.focused) { this._chipList._blur(); } this._chipList.stateChanges.next(); } /** * @return {?} */ _focus() { this.focused = true; this._chipList.stateChanges.next(); } /** * Checks to see if the (chipEnd) event needs to be emitted. * @param {?=} event * @return {?} */ _emitChipEnd(event) { if (!this._inputElement.value && !!event) { this._chipList._keydown(event); } if (!event || this._isSeparatorKey(event)) { this.chipEnd.emit({ input: this._inputElement, value: this._inputElement.value }); if (event) { event.preventDefault(); } } } /** * @return {?} */ _onInput() { // Let chip list know whenever the value changes. this._chipList.stateChanges.next(); } /** * Focuses the input. * @return {?} */ focus() { this._inputElement.focus(); } /** * Checks whether a keycode is one of the configured separators. * @private * @param {?} event * @return {?} */ _isSeparatorKey(event) { if (Object(_angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["hasModifierKey"])(event)) { return false; } /** @type {?} */ const separators = this.separatorKeyCodes; /** @type {?} */ const keyCode = event.keyCode; return Array.isArray(separators) ? separators.indexOf(keyCode) > -1 : separators.has(keyCode); } } MatChipInput.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Directive"], args: [{ selector: 'input[matChipInputFor]', exportAs: 'matChipInput, matChipInputFor', host: { 'class': 'mat-chip-input mat-input-element', '(keydown)': '_keydown($event)', '(blur)': '_blur()', '(focus)': '_focus()', '(input)': '_onInput()', '[id]': 'id', '[attr.disabled]': 'disabled || null', '[attr.placeholder]': 'placeholder || null', '[attr.aria-invalid]': '_chipList && _chipList.ngControl ? _chipList.ngControl.invalid : null', } },] }, ]; /** @nocollapse */ MatChipInput.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ElementRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [MAT_CHIPS_DEFAULT_OPTIONS,] }] } ]; MatChipInput.propDecorators = { chipList: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"], args: ['matChipInputFor',] }], addOnBlur: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"], args: ['matChipInputAddOnBlur',] }], separatorKeyCodes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"], args: ['matChipInputSeparatorKeyCodes',] }], chipEnd: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Output"], args: ['matChipInputTokenEnd',] }], placeholder: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const CHIP_DECLARATIONS = [ MatChipList, MatChip, MatChipInput, MatChipRemove, MatChipAvatar, MatChipTrailingIcon, ]; const ɵ0 = ({ separatorKeyCodes: [_angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_1__["ENTER"]] }); class MatChipsModule { } MatChipsModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["NgModule"], args: [{ exports: CHIP_DECLARATIONS, declarations: CHIP_DECLARATIONS, providers: [ _angular_material_core__WEBPACK_IMPORTED_MODULE_4__["ErrorStateMatcher"], { provide: MAT_CHIPS_DEFAULT_OPTIONS, useValue: (/** @type {?} */ (ɵ0)) } ] },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=chips.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/grid-list.js": /*!*************************************************************!*\ !*** ./node_modules/@angular/material/esm2015/grid-list.js ***! \*************************************************************/ /*! exports provided: MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, ɵa4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridListModule", function() { return MatGridListModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridList", function() { return MatGridList; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridTile", function() { return MatGridTile; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridTileText", function() { return MatGridTileText; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridAvatarCssMatStyler", function() { return MatGridAvatarCssMatStyler; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridTileHeaderCssMatStyler", function() { return MatGridTileHeaderCssMatStyler; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatGridTileFooterCssMatStyler", function() { return MatGridTileFooterCssMatStyler; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵa4", function() { return MAT_GRID_LIST; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/bidi */ "./node_modules/@angular/cdk/esm2015/bidi.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Injection token used to provide a grid list to a tile and to avoid circular imports. * \@docs-private * @type {?} */ const MAT_GRID_LIST = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('MAT_GRID_LIST'); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatGridTile { /** * @param {?} _element * @param {?=} _gridList */ constructor(_element, _gridList) { this._element = _element; this._gridList = _gridList; this._rowspan = 1; this._colspan = 1; } /** * Amount of rows that the grid tile takes up. * @return {?} */ get rowspan() { return this._rowspan; } /** * @param {?} value * @return {?} */ set rowspan(value) { this._rowspan = Math.round(Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(value)); } /** * Amount of columns that the grid tile takes up. * @return {?} */ get colspan() { return this._colspan; } /** * @param {?} value * @return {?} */ set colspan(value) { this._colspan = Math.round(Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(value)); } /** * Sets the style of the grid-tile element. Needs to be set manually to avoid * "Changed after checked" errors that would occur with HostBinding. * @param {?} property * @param {?} value * @return {?} */ _setStyle(property, value) { ((/** @type {?} */ (this._element.nativeElement.style)))[property] = value; } } MatGridTile.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-grid-tile', exportAs: 'matGridTile', host: { 'class': 'mat-grid-tile', }, template: "<figure class=\"mat-figure\"><ng-content></ng-content></figure>", styles: [".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}"], encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, },] }, ]; /** @nocollapse */ MatGridTile.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [MAT_GRID_LIST,] }] } ]; MatGridTile.propDecorators = { rowspan: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], colspan: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; class MatGridTileText { /** * @param {?} _element */ constructor(_element) { this._element = _element; } /** * @return {?} */ ngAfterContentInit() { Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_1__["setLines"])(this._lines, this._element); } } MatGridTileText.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-grid-tile-header, mat-grid-tile-footer', template: "<ng-content select=\"[mat-grid-avatar], [matGridAvatar]\"></ng-content><div class=\"mat-grid-list-text\"><ng-content select=\"[mat-line], [matLine]\"></ng-content></div><ng-content></ng-content>", changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, },] }, ]; /** @nocollapse */ MatGridTileText.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; MatGridTileText.propDecorators = { _lines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [_angular_material_core__WEBPACK_IMPORTED_MODULE_1__["MatLine"],] }] }; /** * Directive whose purpose is to add the mat- CSS styling to this selector. * \@docs-private */ class MatGridAvatarCssMatStyler { } MatGridAvatarCssMatStyler.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[mat-grid-avatar], [matGridAvatar]', host: { 'class': 'mat-grid-avatar' } },] }, ]; /** * Directive whose purpose is to add the mat- CSS styling to this selector. * \@docs-private */ class MatGridTileHeaderCssMatStyler { } MatGridTileHeaderCssMatStyler.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'mat-grid-tile-header', host: { 'class': 'mat-grid-tile-header' } },] }, ]; /** * Directive whose purpose is to add the mat- CSS styling to this selector. * \@docs-private */ class MatGridTileFooterCssMatStyler { } MatGridTileFooterCssMatStyler.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'mat-grid-tile-footer', host: { 'class': 'mat-grid-tile-footer' } },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Class for determining, from a list of tiles, the (row, col) position of each of those tiles * in the grid. This is necessary (rather than just rendering the tiles in normal document flow) * because the tiles can have a rowspan. * * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid * large enough to accommodate it so that the tiles still render in the same order in which they * are given. * * The basis of the algorithm is the use of an array to track the already placed tiles. Each * element of the array corresponds to a column, and the value indicates how many cells in that * column are already occupied; zero indicates an empty cell. Moving "down" to the next row * decrements each value in the tracking array (indicating that the column is one cell closer to * being free). * * \@docs-private */ class TileCoordinator { constructor() { /** * Index at which the search for the next gap will start. */ this.columnIndex = 0; /** * The current row index. */ this.rowIndex = 0; } /** * Gets the total number of rows occupied by tiles * @return {?} */ get rowCount() { return this.rowIndex + 1; } /** * Gets the total span of rows occupied by tiles. * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2. * @return {?} */ get rowspan() { /** @type {?} */ const lastRowMax = Math.max(...this.tracker); // if any of the tiles has a rowspan that pushes it beyond the total row count, // add the difference to the rowcount return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount; } /** * Updates the tile positions. * @param {?} numColumns Amount of columns in the grid. * @param {?} tiles * @return {?} */ update(numColumns, tiles) { this.columnIndex = 0; this.rowIndex = 0; this.tracker = new Array(numColumns); this.tracker.fill(0, 0, this.tracker.length); this.positions = tiles.map((/** * @param {?} tile * @return {?} */ tile => this._trackTile(tile))); } /** * Calculates the row and col position of a tile. * @private * @param {?} tile * @return {?} */ _trackTile(tile) { // Find a gap large enough for this tile. /** @type {?} */ const gapStartIndex = this._findMatchingGap(tile.colspan); // Place tile in the resulting gap. this._markTilePosition(gapStartIndex, tile); // The next time we look for a gap, the search will start at columnIndex, which should be // immediately after the tile that has just been placed. this.columnIndex = gapStartIndex + tile.colspan; return new TilePosition(this.rowIndex, gapStartIndex); } /** * Finds the next available space large enough to fit the tile. * @private * @param {?} tileCols * @return {?} */ _findMatchingGap(tileCols) { if (tileCols > this.tracker.length) { throw Error(`mat-grid-list: tile with colspan ${tileCols} is wider than ` + `grid with cols="${this.tracker.length}".`); } // Start index is inclusive, end index is exclusive. /** @type {?} */ let gapStartIndex = -1; /** @type {?} */ let gapEndIndex = -1; // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero. do { // If we've reached the end of the row, go to the next row. if (this.columnIndex + tileCols > this.tracker.length) { this._nextRow(); gapStartIndex = this.tracker.indexOf(0, this.columnIndex); gapEndIndex = this._findGapEndIndex(gapStartIndex); continue; } gapStartIndex = this.tracker.indexOf(0, this.columnIndex); // If there are no more empty spaces in this row at all, move on to the next row. if (gapStartIndex == -1) { this._nextRow(); gapStartIndex = this.tracker.indexOf(0, this.columnIndex); gapEndIndex = this._findGapEndIndex(gapStartIndex); continue; } gapEndIndex = this._findGapEndIndex(gapStartIndex); // If a gap large enough isn't found, we want to start looking immediately after the current // gap on the next iteration. this.columnIndex = gapStartIndex + 1; // Continue iterating until we find a gap wide enough for this tile. Since gapEndIndex is // exclusive, gapEndIndex is 0 means we didn't find a gap and should continue. } while ((gapEndIndex - gapStartIndex < tileCols) || (gapEndIndex == 0)); // If we still didn't manage to find a gap, ensure that the index is // at least zero so the tile doesn't get pulled out of the grid. return Math.max(gapStartIndex, 0); } /** * Move "down" to the next row. * @private * @return {?} */ _nextRow() { this.columnIndex = 0; this.rowIndex++; // Decrement all spaces by one to reflect moving down one row. for (let i = 0; i < this.tracker.length; i++) { this.tracker[i] = Math.max(0, this.tracker[i] - 1); } } /** * Finds the end index (exclusive) of a gap given the index from which to start looking. * The gap ends when a non-zero value is found. * @private * @param {?} gapStartIndex * @return {?} */ _findGapEndIndex(gapStartIndex) { for (let i = gapStartIndex + 1; i < this.tracker.length; i++) { if (this.tracker[i] != 0) { return i; } } // The gap ends with the end of the row. return this.tracker.length; } /** * Update the tile tracker to account for the given tile in the given space. * @private * @param {?} start * @param {?} tile * @return {?} */ _markTilePosition(start, tile) { for (let i = 0; i < tile.colspan; i++) { this.tracker[start + i] = tile.rowspan; } } } /** * Simple data structure for tile position (row, col). * \@docs-private */ class TilePosition { /** * @param {?} row * @param {?} col */ constructor(row, col) { this.row = row; this.col = col; } } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * RegExp that can be used to check whether a value will * be allowed inside a CSS `calc()` expression. * @type {?} */ const cssCalcAllowedValue = /^-?\d+((\.\d+)?[A-Za-z%$]?)+$/; /** * Sets the style properties for an individual tile, given the position calculated by the * Tile Coordinator. * \@docs-private * @abstract */ class TileStyler { constructor() { this._rows = 0; this._rowspan = 0; } /** * Adds grid-list layout info once it is available. Cannot be processed in the constructor * because these properties haven't been calculated by that point. * * @param {?} gutterSize Size of the grid's gutter. * @param {?} tracker Instance of the TileCoordinator. * @param {?} cols Amount of columns in the grid. * @param {?} direction Layout direction of the grid. * @return {?} */ init(gutterSize, tracker, cols, direction) { this._gutterSize = normalizeUnits(gutterSize); this._rows = tracker.rowCount; this._rowspan = tracker.rowspan; this._cols = cols; this._direction = direction; } /** * Computes the amount of space a single 1x1 tile would take up (width or height). * Used as a basis for other calculations. * @param {?} sizePercent Percent of the total grid-list space that one 1x1 tile would take up. * @param {?} gutterFraction Fraction of the gutter size taken up by one 1x1 tile. * @return {?} The size of a 1x1 tile as an expression that can be evaluated via CSS calc(). */ getBaseTileSize(sizePercent, gutterFraction) { // Take the base size percent (as would be if evenly dividing the size between cells), // and then subtracting the size of one gutter. However, since there are no gutters on the // edges, each tile only uses a fraction (gutterShare = numGutters / numCells) of the gutter // size. (Imagine having one gutter per tile, and then breaking up the extra gutter on the // edge evenly among the cells). return `(${sizePercent}% - (${this._gutterSize} * ${gutterFraction}))`; } /** * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value. * @param {?} baseSize Base size of a 1x1 tile (as computed in getBaseTileSize). * @param {?} offset Number of tiles that have already been rendered in the row/column. * @return {?} Position of the tile as a CSS calc() expression. */ getTilePosition(baseSize, offset) { // The position comes the size of a 1x1 tile plus gutter for each previous tile in the // row/column (offset). return offset === 0 ? '0' : calc(`(${baseSize} + ${this._gutterSize}) * ${offset}`); } /** * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account. * @param {?} baseSize Base size of a 1x1 tile (as computed in getBaseTileSize). * @param {?} span The tile's rowspan or colspan. * @return {?} Size of the tile as a CSS calc() expression. */ getTileSize(baseSize, span) { return `(${baseSize} * ${span}) + (${span - 1} * ${this._gutterSize})`; } /** * Sets the style properties to be applied to a tile for the given row and column index. * @param {?} tile Tile to which to apply the styling. * @param {?} rowIndex Index of the tile's row. * @param {?} colIndex Index of the tile's column. * @return {?} */ setStyle(tile, rowIndex, colIndex) { // Percent of the available horizontal space that one column takes up. /** @type {?} */ let percentWidthPerTile = 100 / this._cols; // Fraction of the vertical gutter size that each column takes up. // For example, if there are 5 columns, each column uses 4/5 = 0.8 times the gutter width. /** @type {?} */ let gutterWidthFractionPerTile = (this._cols - 1) / this._cols; this.setColStyles(tile, colIndex, percentWidthPerTile, gutterWidthFractionPerTile); this.setRowStyles(tile, rowIndex, percentWidthPerTile, gutterWidthFractionPerTile); } /** * Sets the horizontal placement of the tile in the list. * @param {?} tile * @param {?} colIndex * @param {?} percentWidth * @param {?} gutterWidth * @return {?} */ setColStyles(tile, colIndex, percentWidth, gutterWidth) { // Base horizontal size of a column. /** @type {?} */ let baseTileWidth = this.getBaseTileSize(percentWidth, gutterWidth); // The width and horizontal position of each tile is always calculated the same way, but the // height and vertical position depends on the rowMode. /** @type {?} */ let side = this._direction === 'rtl' ? 'right' : 'left'; tile._setStyle(side, this.getTilePosition(baseTileWidth, colIndex)); tile._setStyle('width', calc(this.getTileSize(baseTileWidth, tile.colspan))); } /** * Calculates the total size taken up by gutters across one axis of a list. * @return {?} */ getGutterSpan() { return `${this._gutterSize} * (${this._rowspan} - 1)`; } /** * Calculates the total size taken up by tiles across one axis of a list. * @param {?} tileHeight Height of the tile. * @return {?} */ getTileSpan(tileHeight) { return `${this._rowspan} * ${this.getTileSize(tileHeight, 1)}`; } /** * Calculates the computed height and returns the correct style property to set. * This method can be implemented by each type of TileStyler. * \@docs-private * @return {?} */ getComputedHeight() { return null; } } /** * This type of styler is instantiated when the user passes in a fixed row height. * Example `<mat-grid-list cols="3" rowHeight="100px">` * \@docs-private */ class FixedTileStyler extends TileStyler { /** * @param {?} fixedRowHeight */ constructor(fixedRowHeight) { super(); this.fixedRowHeight = fixedRowHeight; } /** * @param {?} gutterSize * @param {?} tracker * @param {?} cols * @param {?} direction * @return {?} */ init(gutterSize, tracker, cols, direction) { super.init(gutterSize, tracker, cols, direction); this.fixedRowHeight = normalizeUnits(this.fixedRowHeight); if (!cssCalcAllowedValue.test(this.fixedRowHeight)) { throw Error(`Invalid value "${this.fixedRowHeight}" set as rowHeight.`); } } /** * @param {?} tile * @param {?} rowIndex * @return {?} */ setRowStyles(tile, rowIndex) { tile._setStyle('top', this.getTilePosition(this.fixedRowHeight, rowIndex)); tile._setStyle('height', calc(this.getTileSize(this.fixedRowHeight, tile.rowspan))); } /** * @return {?} */ getComputedHeight() { return [ 'height', calc(`${this.getTileSpan(this.fixedRowHeight)} + ${this.getGutterSpan()}`) ]; } /** * @param {?} list * @return {?} */ reset(list) { list._setListStyle(['height', null]); if (list._tiles) { list._tiles.forEach((/** * @param {?} tile * @return {?} */ tile => { tile._setStyle('top', null); tile._setStyle('height', null); })); } } } /** * This type of styler is instantiated when the user passes in a width:height ratio * for the row height. Example `<mat-grid-list cols="3" rowHeight="3:1">` * \@docs-private */ class RatioTileStyler extends TileStyler { /** * @param {?} value */ constructor(value) { super(); this._parseRatio(value); } /** * @param {?} tile * @param {?} rowIndex * @param {?} percentWidth * @param {?} gutterWidth * @return {?} */ setRowStyles(tile, rowIndex, percentWidth, gutterWidth) { /** @type {?} */ let percentHeightPerTile = percentWidth / this.rowHeightRatio; this.baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterWidth); // Use padding-top and margin-top to maintain the given aspect ratio, as // a percentage-based value for these properties is applied versus the *width* of the // containing block. See http://www.w3.org/TR/CSS2/box.html#margin-properties tile._setStyle('marginTop', this.getTilePosition(this.baseTileHeight, rowIndex)); tile._setStyle('paddingTop', calc(this.getTileSize(this.baseTileHeight, tile.rowspan))); } /** * @return {?} */ getComputedHeight() { return [ 'paddingBottom', calc(`${this.getTileSpan(this.baseTileHeight)} + ${this.getGutterSpan()}`) ]; } /** * @param {?} list * @return {?} */ reset(list) { list._setListStyle(['paddingBottom', null]); list._tiles.forEach((/** * @param {?} tile * @return {?} */ tile => { tile._setStyle('marginTop', null); tile._setStyle('paddingTop', null); })); } /** * @private * @param {?} value * @return {?} */ _parseRatio(value) { /** @type {?} */ const ratioParts = value.split(':'); if (ratioParts.length !== 2) { throw Error(`mat-grid-list: invalid ratio given for row-height: "${value}"`); } this.rowHeightRatio = parseFloat(ratioParts[0]) / parseFloat(ratioParts[1]); } } /** * This type of styler is instantiated when the user selects a "fit" row height mode. * In other words, the row height will reflect the total height of the container divided * by the number of rows. Example `<mat-grid-list cols="3" rowHeight="fit">` * * \@docs-private */ class FitTileStyler extends TileStyler { /** * @param {?} tile * @param {?} rowIndex * @return {?} */ setRowStyles(tile, rowIndex) { // Percent of the available vertical space that one row takes up. /** @type {?} */ let percentHeightPerTile = 100 / this._rowspan; // Fraction of the horizontal gutter size that each column takes up. /** @type {?} */ let gutterHeightPerTile = (this._rows - 1) / this._rows; // Base vertical size of a column. /** @type {?} */ let baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterHeightPerTile); tile._setStyle('top', this.getTilePosition(baseTileHeight, rowIndex)); tile._setStyle('height', calc(this.getTileSize(baseTileHeight, tile.rowspan))); } /** * @param {?} list * @return {?} */ reset(list) { if (list._tiles) { list._tiles.forEach((/** * @param {?} tile * @return {?} */ tile => { tile._setStyle('top', null); tile._setStyle('height', null); })); } } } /** * Wraps a CSS string in a calc function * @param {?} exp * @return {?} */ function calc(exp) { return `calc(${exp})`; } /** * Appends pixels to a CSS string if no units are given. * @param {?} value * @return {?} */ function normalizeUnits(value) { return value.match(/([A-Za-z%]+)$/) ? value : `${value}px`; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // TODO(kara): Conditional (responsive) column count / row size. // TODO(kara): Re-layout on window resize / media change (debounced). // TODO(kara): gridTileHeader and gridTileFooter. /** @type {?} */ const MAT_FIT_MODE = 'fit'; class MatGridList { /** * @param {?} _element * @param {?} _dir */ constructor(_element, _dir) { this._element = _element; this._dir = _dir; /** * The amount of space between tiles. This will be something like '5px' or '2em'. */ this._gutter = '1px'; } /** * Amount of columns in the grid list. * @return {?} */ get cols() { return this._cols; } /** * @param {?} value * @return {?} */ set cols(value) { this._cols = Math.max(1, Math.round(Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(value))); } /** * Size of the grid list's gutter in pixels. * @return {?} */ get gutterSize() { return this._gutter; } /** * @param {?} value * @return {?} */ set gutterSize(value) { this._gutter = `${value == null ? '' : value}`; } /** * Set internal representation of row height from the user-provided value. * @return {?} */ get rowHeight() { return this._rowHeight; } /** * @param {?} value * @return {?} */ set rowHeight(value) { /** @type {?} */ const newValue = `${value == null ? '' : value}`; if (newValue !== this._rowHeight) { this._rowHeight = newValue; this._setTileStyler(this._rowHeight); } } /** * @return {?} */ ngOnInit() { this._checkCols(); this._checkRowHeight(); } /** * The layout calculation is fairly cheap if nothing changes, so there's little cost * to run it frequently. * @return {?} */ ngAfterContentChecked() { this._layoutTiles(); } /** * Throw a friendly error if cols property is missing * @private * @return {?} */ _checkCols() { if (!this.cols) { throw Error(`mat-grid-list: must pass in number of columns. ` + `Example: <mat-grid-list cols="3">`); } } /** * Default to equal width:height if rowHeight property is missing * @private * @return {?} */ _checkRowHeight() { if (!this._rowHeight) { this._setTileStyler('1:1'); } } /** * Creates correct Tile Styler subtype based on rowHeight passed in by user * @private * @param {?} rowHeight * @return {?} */ _setTileStyler(rowHeight) { if (this._tileStyler) { this._tileStyler.reset(this); } if (rowHeight === MAT_FIT_MODE) { this._tileStyler = new FitTileStyler(); } else if (rowHeight && rowHeight.indexOf(':') > -1) { this._tileStyler = new RatioTileStyler(rowHeight); } else { this._tileStyler = new FixedTileStyler(rowHeight); } } /** * Computes and applies the size and position for all children grid tiles. * @private * @return {?} */ _layoutTiles() { if (!this._tileCoordinator) { this._tileCoordinator = new TileCoordinator(); } /** @type {?} */ const tracker = this._tileCoordinator; /** @type {?} */ const tiles = this._tiles.filter((/** * @param {?} tile * @return {?} */ tile => !tile._gridList || tile._gridList === this)); /** @type {?} */ const direction = this._dir ? this._dir.value : 'ltr'; this._tileCoordinator.update(this.cols, tiles); this._tileStyler.init(this.gutterSize, tracker, this.cols, direction); tiles.forEach((/** * @param {?} tile * @param {?} index * @return {?} */ (tile, index) => { /** @type {?} */ const pos = tracker.positions[index]; this._tileStyler.setStyle(tile, pos.row, pos.col); })); this._setListStyle(this._tileStyler.getComputedHeight()); } /** * Sets style on the main grid-list element, given the style name and value. * @param {?} style * @return {?} */ _setListStyle(style) { if (style) { ((/** @type {?} */ (this._element.nativeElement.style)))[style[0]] = style[1]; } } } MatGridList.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{selector: 'mat-grid-list', exportAs: 'matGridList', template: "<div><ng-content></ng-content></div>", styles: [".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}"], host: { 'class': 'mat-grid-list', }, providers: [{ provide: MAT_GRID_LIST, useExisting: MatGridList }], changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, },] }, ]; /** @nocollapse */ MatGridList.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_3__["Directionality"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] } ]; MatGridList.propDecorators = { _tiles: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [MatGridTile, { descendants: true },] }], cols: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], gutterSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], rowHeight: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatGridListModule { } MatGridListModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ imports: [_angular_material_core__WEBPACK_IMPORTED_MODULE_1__["MatLineModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_1__["MatCommonModule"]], exports: [ MatGridList, MatGridTile, MatGridTileText, _angular_material_core__WEBPACK_IMPORTED_MODULE_1__["MatLineModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_1__["MatCommonModule"], MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatGridAvatarCssMatStyler ], declarations: [ MatGridList, MatGridTile, MatGridTileText, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatGridAvatarCssMatStyler ], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=grid-list.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/material.js": /*!************************************************************!*\ !*** ./node_modules/@angular/material/esm2015/material.js ***! \************************************************************/ /*! exports provided: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MatAutocompleteSelectedEvent, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, getMatAutocompleteMissingPanelError, AUTOCOMPLETE_OPTION_HEIGHT, AUTOCOMPLETE_PANEL_HEIGHT, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, MatAutocompleteTrigger, MatAutocompleteOrigin, MatBadgeModule, MatBadge, MatBottomSheetModule, MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, MatBottomSheet, MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig, MatBottomSheetContainer, matBottomSheetAnimations, MatBottomSheetRef, MatButtonModule, MatButton, MatAnchor, MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleGroupMultiple, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggle, MatButtonToggleModule, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardImage, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardXlImage, MatCardAvatar, MatCard, MatCardHeader, MatCardTitleGroup, MatCardModule, MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR, TransitionCheckState, MatCheckboxChange, MatCheckbox, MAT_CHECKBOX_CLICK_ACTION, _MatCheckboxRequiredValidatorModule, MatCheckboxModule, MAT_CHECKBOX_REQUIRED_VALIDATOR, MatCheckboxRequiredValidator, MatChipsModule, MatChipListChange, MatChipList, MatChipSelectionChange, MatChipAvatar, MatChipTrailingIcon, MatChip, MatChipRemove, MatChipInput, MAT_CHIPS_DEFAULT_OPTIONS, ɵa1, VERSION, AnimationCurves, AnimationDurations, MatCommonModule, MATERIAL_SANITY_CHECKS, mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, mixinErrorState, mixinInitialized, NativeDateModule, MatNativeDateModule, MAT_DATE_LOCALE_FACTORY, MAT_DATE_LOCALE, MAT_DATE_LOCALE_PROVIDER, DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter, MAT_NATIVE_DATE_FORMATS, ShowOnDirtyErrorStateMatcher, ErrorStateMatcher, MAT_HAMMER_OPTIONS, GestureConfig, setLines, MatLine, MatLineSetter, MatLineModule, MatOptionModule, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MatOptionSelectionChange, MAT_OPTION_PARENT_COMPONENT, MatOption, MatOptgroup, MAT_LABEL_GLOBAL_OPTIONS, MatRippleModule, MAT_RIPPLE_GLOBAL_OPTIONS, MatRipple, RippleState, RippleRef, defaultRippleAnimationConfig, RippleRenderer, MatPseudoCheckboxModule, MatPseudoCheckbox, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, MatMultiYearView, yearsPerPage, yearsPerRow, MatDatepickerModule, MatCalendarHeader, MatCalendar, MatCalendarCell, MatCalendarBody, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY, MAT_DATEPICKER_SCROLL_STRATEGY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER, MatDatepickerContent, MatDatepicker, matDatepickerAnimations, MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATEPICKER_VALIDATORS, MatDatepickerInputEvent, MatDatepickerInput, MatDatepickerIntl, MatDatepickerToggleIcon, MatDatepickerToggle, MatMonthView, MatYearView, MatDialogModule, MAT_DIALOG_SCROLL_STRATEGY_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS, MAT_DIALOG_SCROLL_STRATEGY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, MatDialog, throwMatDialogContentAlreadyAttachedError, MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogConfig, MatDialogRef, matDialogAnimations, MatDivider, MatDividerModule, MatExpansionModule, MatAccordion, MAT_ACCORDION, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, MatExpansionPanel, MatExpansionPanelActionRow, MatExpansionPanelHeader, MatExpansionPanelDescription, MatExpansionPanelTitle, MatExpansionPanelContent, EXPANSION_PANEL_ANIMATION_TIMING, matExpansionAnimations, MatFormFieldModule, MatError, MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormField, MatFormFieldControl, getMatFormFieldPlaceholderConflictError, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, MatHint, MatPlaceholder, MatPrefix, MatSuffix, MatLabel, matFormFieldAnimations, ɵa4, MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatIconModule, MAT_ICON_LOCATION_FACTORY, MAT_ICON_LOCATION, MatIcon, getMatIconNameNotFoundError, getMatIconNoHttpProviderError, getMatIconFailedToSanitizeUrlError, getMatIconFailedToSanitizeLiteralError, ICON_REGISTRY_PROVIDER_FACTORY, MatIconRegistry, ICON_REGISTRY_PROVIDER, MatTextareaAutosize, MatInput, getMatInputUnsupportedTypeError, MatInputModule, MAT_INPUT_VALUE_ACCESSOR, MatListModule, MatNavList, MatList, MatListAvatarCssMatStyler, MatListIconCssMatStyler, MatListSubheaderCssMatStyler, MatListItem, MAT_SELECTION_LIST_VALUE_ACCESSOR, MatSelectionListChange, MatListOption, MatSelectionList, ɵa23, ɵb23, ɵc23, MatMenu, MAT_MENU_DEFAULT_OPTIONS, _MatMenu, _MatMenuBase, MatMenuItem, MatMenuTrigger, MAT_MENU_SCROLL_STRATEGY, MAT_MENU_PANEL, _MatMenuDirectivesModule, MatMenuModule, matMenuAnimations, fadeInItems, transformMenu, MatMenuContent, MatPaginatorModule, PageEvent, MatPaginator, MAT_PAGINATOR_INTL_PROVIDER_FACTORY, MatPaginatorIntl, MAT_PAGINATOR_INTL_PROVIDER, MatProgressBarModule, MAT_PROGRESS_BAR_LOCATION_FACTORY, MAT_PROGRESS_BAR_LOCATION, MatProgressBar, MatProgressSpinner, MatSpinner, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinnerModule, MatRadioModule, MAT_RADIO_DEFAULT_OPTIONS_FACTORY, MAT_RADIO_DEFAULT_OPTIONS, MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, MatRadioChange, MatRadioGroup, MatRadioButton, MatSelectModule, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_INDENT_PADDING_X, SELECT_ITEM_HEIGHT_EM, SELECT_MULTIPLE_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MatSelectChange, MatSelectTrigger, MatSelect, matSelectAnimations, transformPanel, fadeInContent, MatSidenavModule, throwMatDuplicatedDrawerError, MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY, MAT_DRAWER_DEFAULT_AUTOSIZE, MatDrawerContent, MatDrawer, MatDrawerContainer, MatSidenavContent, MatSidenav, MatSidenavContainer, matDrawerAnimations, MatSlideToggleModule, MAT_SLIDE_TOGGLE_VALUE_ACCESSOR, MatSlideToggleChange, MatSlideToggle, MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS, MatSliderModule, MAT_SLIDER_VALUE_ACCESSOR, MatSliderChange, MatSlider, MatSnackBarModule, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MAT_SNACK_BAR_DEFAULT_OPTIONS, MatSnackBar, MatSnackBarContainer, MAT_SNACK_BAR_DATA, MatSnackBarConfig, MatSnackBarRef, SimpleSnackBar, matSnackBarAnimations, MatSortModule, MatSortHeader, MAT_SORT_HEADER_INTL_PROVIDER_FACTORY, MatSortHeaderIntl, MAT_SORT_HEADER_INTL_PROVIDER, MatSort, matSortAnimations, MatStepperModule, MatStepLabel, MatStep, MatStepper, MatHorizontalStepper, MatVerticalStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MAT_STEPPER_INTL_PROVIDER_FACTORY, MatStepperIntl, MAT_STEPPER_INTL_PROVIDER, matStepperAnimations, MatStepperIcon, MatTableModule, MatCellDef, MatHeaderCellDef, MatFooterCellDef, MatColumnDef, MatHeaderCell, MatFooterCell, MatCell, MatTable, MatHeaderRowDef, MatFooterRowDef, MatRowDef, MatHeaderRow, MatFooterRow, MatRow, MatTableDataSource, MatTextColumn, ɵa24, ɵb24, MatInkBar, _MAT_INK_BAR_POSITIONER, MatTabBody, MatTabBodyPortal, MatTabHeader, MatTabLabelWrapper, MatTab, MatTabLabel, MatTabNav, MatTabLink, MatTabContent, MatTabsModule, MatTabChangeEvent, MAT_TABS_CONFIG, MatTabGroup, matTabsAnimations, MatToolbarModule, throwToolbarMixedModesError, MatToolbarRow, MatToolbar, MatTooltipModule, getMatTooltipInvalidPositionError, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltip, TooltipComponent, matTooltipAnimations, MatTreeNode, MatTreeNodeDef, MatNestedTreeNode, MatTreeNodePadding, MatTree, MatTreeModule, MatTreeNodeToggle, MatTreeNodeOutlet, MatTreeFlattener, MatTreeFlatDataSource, MatTreeNestedDataSource */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/material/autocomplete */ "./node_modules/@angular/material/esm2015/autocomplete.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteSelectedEvent", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MatAutocompleteSelectedEvent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_DEFAULT_OPTIONS", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MAT_AUTOCOMPLETE_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAutocomplete", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MatAutocomplete"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteModule", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MatAutocompleteModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatAutocompleteMissingPanelError", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["getMatAutocompleteMissingPanelError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AUTOCOMPLETE_OPTION_HEIGHT", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["AUTOCOMPLETE_OPTION_HEIGHT"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AUTOCOMPLETE_PANEL_HEIGHT", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["AUTOCOMPLETE_PANEL_HEIGHT"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_SCROLL_STRATEGY", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MAT_AUTOCOMPLETE_SCROLL_STRATEGY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_AUTOCOMPLETE_VALUE_ACCESSOR", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MAT_AUTOCOMPLETE_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteTrigger", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MatAutocompleteTrigger"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAutocompleteOrigin", function() { return _angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_0__["MatAutocompleteOrigin"]; }); /* harmony import */ var _angular_material_badge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/material/badge */ "./node_modules/@angular/material/esm2015/badge.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBadgeModule", function() { return _angular_material_badge__WEBPACK_IMPORTED_MODULE_1__["MatBadgeModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBadge", function() { return _angular_material_badge__WEBPACK_IMPORTED_MODULE_1__["MatBadge"]; }); /* harmony import */ var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/bottom-sheet */ "./node_modules/@angular/material/esm2015/bottom-sheet.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetModule", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheetModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_BOTTOM_SHEET_DEFAULT_OPTIONS", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MAT_BOTTOM_SHEET_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheet", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheet"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_BOTTOM_SHEET_DATA", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MAT_BOTTOM_SHEET_DATA"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetConfig", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheetConfig"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetContainer", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheetContainer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matBottomSheetAnimations", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["matBottomSheetAnimations"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatBottomSheetRef", function() { return _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheetRef"]; }); /* harmony import */ var _angular_material_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/button */ "./node_modules/@angular/material/esm2015/button.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButtonModule", function() { return _angular_material_button__WEBPACK_IMPORTED_MODULE_3__["MatButtonModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButton", function() { return _angular_material_button__WEBPACK_IMPORTED_MODULE_3__["MatButton"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAnchor", function() { return _angular_material_button__WEBPACK_IMPORTED_MODULE_3__["MatAnchor"]; }); /* harmony import */ var _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/button-toggle */ "./node_modules/@angular/material/esm2015/button-toggle.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleGroupMultiple", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MatButtonToggleGroupMultiple"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleChange", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MatButtonToggleChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleGroup", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MatButtonToggleGroup"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggle", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MatButtonToggle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatButtonToggleModule", function() { return _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_4__["MatButtonToggleModule"]; }); /* harmony import */ var _angular_material_card__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/card */ "./node_modules/@angular/material/esm2015/card.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardContent", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardTitle", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardTitle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardSubtitle", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardSubtitle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardActions", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardActions"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardFooter", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardFooter"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardImage", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardImage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardSmImage", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardSmImage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardMdImage", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardMdImage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardLgImage", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardLgImage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardXlImage", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardXlImage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardAvatar", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardAvatar"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCard", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCard"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardHeader", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardHeader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardTitleGroup", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardTitleGroup"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCardModule", function() { return _angular_material_card__WEBPACK_IMPORTED_MODULE_5__["MatCardModule"]; }); /* harmony import */ var _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/checkbox */ "./node_modules/@angular/material/esm2015/checkbox.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TransitionCheckState", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["TransitionCheckState"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCheckboxChange", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MatCheckboxChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCheckbox", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MatCheckbox"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_CHECKBOX_CLICK_ACTION", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MAT_CHECKBOX_CLICK_ACTION"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_MatCheckboxRequiredValidatorModule", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["_MatCheckboxRequiredValidatorModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCheckboxModule", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MatCheckboxModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_CHECKBOX_REQUIRED_VALIDATOR", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MAT_CHECKBOX_REQUIRED_VALIDATOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCheckboxRequiredValidator", function() { return _angular_material_checkbox__WEBPACK_IMPORTED_MODULE_6__["MatCheckboxRequiredValidator"]; }); /* harmony import */ var _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/chips */ "./node_modules/@angular/material/esm2015/chips.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipsModule", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipsModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipListChange", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipListChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipList", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipList"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipSelectionChange", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipSelectionChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipAvatar", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipAvatar"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipTrailingIcon", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipTrailingIcon"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChip", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChip"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipRemove", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipRemove"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatChipInput", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MatChipInput"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_CHIPS_DEFAULT_OPTIONS", function() { return _angular_material_chips__WEBPACK_IMPORTED_MODULE_7__["MAT_CHIPS_DEFAULT_OPTIONS"]; }); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵa1", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["ɵa1"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["VERSION"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationCurves", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["AnimationCurves"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationDurations", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["AnimationDurations"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCommonModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatCommonModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MATERIAL_SANITY_CHECKS", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MATERIAL_SANITY_CHECKS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mixinDisabled", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["mixinDisabled"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mixinColor", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["mixinColor"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mixinDisableRipple", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["mixinDisableRipple"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mixinTabIndex", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["mixinTabIndex"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mixinErrorState", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["mixinErrorState"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mixinInitialized", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["mixinInitialized"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NativeDateModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["NativeDateModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatNativeDateModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatNativeDateModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATE_LOCALE_FACTORY", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_DATE_LOCALE_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATE_LOCALE", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_DATE_LOCALE"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATE_LOCALE_PROVIDER", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_DATE_LOCALE_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateAdapter", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["DateAdapter"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATE_FORMATS", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_DATE_FORMATS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NativeDateAdapter", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["NativeDateAdapter"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_NATIVE_DATE_FORMATS", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_NATIVE_DATE_FORMATS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShowOnDirtyErrorStateMatcher", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["ShowOnDirtyErrorStateMatcher"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorStateMatcher", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["ErrorStateMatcher"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_HAMMER_OPTIONS", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_HAMMER_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GestureConfig", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["GestureConfig"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setLines", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["setLines"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatLine", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatLine"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatLineSetter", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatLineSetter"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatLineModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatLineModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatOptionModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatOptionModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_countGroupLabelsBeforeOption", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["_countGroupLabelsBeforeOption"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_getOptionScrollPosition", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["_getOptionScrollPosition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatOptionSelectionChange", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatOptionSelectionChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_OPTION_PARENT_COMPONENT", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_OPTION_PARENT_COMPONENT"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatOption", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatOption"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatOptgroup", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatOptgroup"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_LABEL_GLOBAL_OPTIONS", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_LABEL_GLOBAL_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRippleModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatRippleModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_RIPPLE_GLOBAL_OPTIONS", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAT_RIPPLE_GLOBAL_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRipple", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatRipple"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RippleState", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["RippleState"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RippleRef", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["RippleRef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultRippleAnimationConfig", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["defaultRippleAnimationConfig"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RippleRenderer", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["RippleRenderer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPseudoCheckboxModule", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatPseudoCheckboxModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPseudoCheckbox", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MatPseudoCheckbox"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JAN", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["JAN"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FEB", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["FEB"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAR", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "APR", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["APR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAY", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["MAY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JUN", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["JUN"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JUL", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["JUL"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AUG", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["AUG"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SEP", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["SEP"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OCT", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["OCT"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NOV", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["NOV"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEC", function() { return _angular_material_core__WEBPACK_IMPORTED_MODULE_8__["DEC"]; }); /* harmony import */ var _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/datepicker */ "./node_modules/@angular/material/esm2015/datepicker.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMultiYearView", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatMultiYearView"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "yearsPerPage", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["yearsPerPage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "yearsPerRow", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["yearsPerRow"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerModule", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCalendarHeader", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatCalendarHeader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCalendar", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatCalendar"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCalendarCell", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatCalendarCell"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCalendarBody", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatCalendarBody"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATEPICKER_SCROLL_STRATEGY", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MAT_DATEPICKER_SCROLL_STRATEGY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerContent", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepicker", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepicker"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matDatepickerAnimations", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["matDatepickerAnimations"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATEPICKER_VALUE_ACCESSOR", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MAT_DATEPICKER_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DATEPICKER_VALIDATORS", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MAT_DATEPICKER_VALIDATORS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerInputEvent", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerInputEvent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerInput", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerInput"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerIntl", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerIntl"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerToggleIcon", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerToggleIcon"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDatepickerToggle", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatDatepickerToggle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMonthView", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatMonthView"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatYearView", function() { return _angular_material_datepicker__WEBPACK_IMPORTED_MODULE_9__["MatYearView"]; }); /* harmony import */ var _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/dialog */ "./node_modules/@angular/material/esm2015/dialog.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogModule", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DIALOG_SCROLL_STRATEGY_FACTORY", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MAT_DIALOG_SCROLL_STRATEGY_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DIALOG_DATA", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MAT_DIALOG_DATA"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DIALOG_DEFAULT_OPTIONS", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MAT_DIALOG_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DIALOG_SCROLL_STRATEGY", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MAT_DIALOG_SCROLL_STRATEGY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DIALOG_SCROLL_STRATEGY_PROVIDER", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialog", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialog"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwMatDialogContentAlreadyAttachedError", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["throwMatDialogContentAlreadyAttachedError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogContainer", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogContainer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogClose", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogClose"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogTitle", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogTitle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogContent", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogActions", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogActions"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogConfig", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogConfig"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDialogRef", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["MatDialogRef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matDialogAnimations", function() { return _angular_material_dialog__WEBPACK_IMPORTED_MODULE_10__["matDialogAnimations"]; }); /* harmony import */ var _angular_material_divider__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/divider */ "./node_modules/@angular/material/esm2015/divider.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDivider", function() { return _angular_material_divider__WEBPACK_IMPORTED_MODULE_11__["MatDivider"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDividerModule", function() { return _angular_material_divider__WEBPACK_IMPORTED_MODULE_11__["MatDividerModule"]; }); /* harmony import */ var _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/expansion */ "./node_modules/@angular/material/esm2015/expansion.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionModule", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatAccordion", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatAccordion"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_ACCORDION", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MAT_ACCORDION"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_EXPANSION_PANEL_DEFAULT_OPTIONS", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionPanel", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionPanel"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionPanelActionRow", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionPanelActionRow"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionPanelHeader", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionPanelHeader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionPanelDescription", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionPanelDescription"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionPanelTitle", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionPanelTitle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatExpansionPanelContent", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["MatExpansionPanelContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EXPANSION_PANEL_ANIMATION_TIMING", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["EXPANSION_PANEL_ANIMATION_TIMING"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matExpansionAnimations", function() { return _angular_material_expansion__WEBPACK_IMPORTED_MODULE_12__["matExpansionAnimations"]; }); /* harmony import */ var _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/form-field */ "./node_modules/@angular/material/esm2015/form-field.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFormFieldModule", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatFormFieldModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatError", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_FORM_FIELD_DEFAULT_OPTIONS", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MAT_FORM_FIELD_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFormField", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatFormField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFormFieldControl", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatFormFieldControl"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatFormFieldPlaceholderConflictError", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["getMatFormFieldPlaceholderConflictError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatFormFieldDuplicatedHintError", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["getMatFormFieldDuplicatedHintError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatFormFieldMissingControlError", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["getMatFormFieldMissingControlError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatHint", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatHint"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPlaceholder", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatPlaceholder"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPrefix", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatPrefix"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSuffix", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatSuffix"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatLabel", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["MatLabel"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matFormFieldAnimations", function() { return _angular_material_form_field__WEBPACK_IMPORTED_MODULE_13__["matFormFieldAnimations"]; }); /* harmony import */ var _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/material/grid-list */ "./node_modules/@angular/material/esm2015/grid-list.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵa4", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["ɵa4"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridListModule", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridListModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridList", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridList"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridTile", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridTile"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridTileText", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridTileText"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridAvatarCssMatStyler", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridAvatarCssMatStyler"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridTileHeaderCssMatStyler", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridTileHeaderCssMatStyler"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatGridTileFooterCssMatStyler", function() { return _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_14__["MatGridTileFooterCssMatStyler"]; }); /* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/material/icon */ "./node_modules/@angular/material/esm2015/icon.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatIconModule", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["MatIconModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_ICON_LOCATION_FACTORY", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["MAT_ICON_LOCATION_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_ICON_LOCATION", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["MAT_ICON_LOCATION"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatIcon", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["MatIcon"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatIconNameNotFoundError", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["getMatIconNameNotFoundError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatIconNoHttpProviderError", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["getMatIconNoHttpProviderError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatIconFailedToSanitizeUrlError", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["getMatIconFailedToSanitizeUrlError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatIconFailedToSanitizeLiteralError", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["getMatIconFailedToSanitizeLiteralError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ICON_REGISTRY_PROVIDER_FACTORY", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["ICON_REGISTRY_PROVIDER_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatIconRegistry", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["MatIconRegistry"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ICON_REGISTRY_PROVIDER", function() { return _angular_material_icon__WEBPACK_IMPORTED_MODULE_15__["ICON_REGISTRY_PROVIDER"]; }); /* harmony import */ var _angular_material_input__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/material/input */ "./node_modules/@angular/material/esm2015/input.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTextareaAutosize", function() { return _angular_material_input__WEBPACK_IMPORTED_MODULE_16__["MatTextareaAutosize"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatInput", function() { return _angular_material_input__WEBPACK_IMPORTED_MODULE_16__["MatInput"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatInputUnsupportedTypeError", function() { return _angular_material_input__WEBPACK_IMPORTED_MODULE_16__["getMatInputUnsupportedTypeError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatInputModule", function() { return _angular_material_input__WEBPACK_IMPORTED_MODULE_16__["MatInputModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_INPUT_VALUE_ACCESSOR", function() { return _angular_material_input__WEBPACK_IMPORTED_MODULE_16__["MAT_INPUT_VALUE_ACCESSOR"]; }); /* harmony import */ var _angular_material_list__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/list */ "./node_modules/@angular/material/esm2015/list.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatListModule", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatListModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatNavList", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatNavList"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatList", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatList"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatListAvatarCssMatStyler", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatListAvatarCssMatStyler"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatListIconCssMatStyler", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatListIconCssMatStyler"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatListSubheaderCssMatStyler", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatListSubheaderCssMatStyler"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatListItem", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatListItem"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SELECTION_LIST_VALUE_ACCESSOR", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MAT_SELECTION_LIST_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSelectionListChange", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatSelectionListChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatListOption", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatListOption"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSelectionList", function() { return _angular_material_list__WEBPACK_IMPORTED_MODULE_17__["MatSelectionList"]; }); /* harmony import */ var _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/material/menu */ "./node_modules/@angular/material/esm2015/menu.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵa23", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["ɵa23"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵb23", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["ɵb23"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵc23", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["ɵc23"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMenu", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MatMenu"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_MENU_DEFAULT_OPTIONS", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MAT_MENU_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_MatMenu", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["_MatMenu"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_MatMenuBase", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["_MatMenuBase"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMenuItem", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MatMenuItem"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMenuTrigger", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MatMenuTrigger"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_MENU_SCROLL_STRATEGY", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MAT_MENU_SCROLL_STRATEGY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_MENU_PANEL", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MAT_MENU_PANEL"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_MatMenuDirectivesModule", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["_MatMenuDirectivesModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMenuModule", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MatMenuModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matMenuAnimations", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["matMenuAnimations"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fadeInItems", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["fadeInItems"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformMenu", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["transformMenu"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatMenuContent", function() { return _angular_material_menu__WEBPACK_IMPORTED_MODULE_18__["MatMenuContent"]; }); /* harmony import */ var _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @angular/material/paginator */ "./node_modules/@angular/material/esm2015/paginator.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPaginatorModule", function() { return _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__["MatPaginatorModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PageEvent", function() { return _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__["PageEvent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPaginator", function() { return _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__["MatPaginator"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_PAGINATOR_INTL_PROVIDER_FACTORY", function() { return _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__["MAT_PAGINATOR_INTL_PROVIDER_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatPaginatorIntl", function() { return _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__["MatPaginatorIntl"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_PAGINATOR_INTL_PROVIDER", function() { return _angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__["MAT_PAGINATOR_INTL_PROVIDER"]; }); /* harmony import */ var _angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/material/progress-bar */ "./node_modules/@angular/material/esm2015/progress-bar.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatProgressBarModule", function() { return _angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_20__["MatProgressBarModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_PROGRESS_BAR_LOCATION_FACTORY", function() { return _angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_20__["MAT_PROGRESS_BAR_LOCATION_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_PROGRESS_BAR_LOCATION", function() { return _angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_20__["MAT_PROGRESS_BAR_LOCATION"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatProgressBar", function() { return _angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_20__["MatProgressBar"]; }); /* harmony import */ var _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/material/progress-spinner */ "./node_modules/@angular/material/esm2015/progress-spinner.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatProgressSpinner", function() { return _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_21__["MatProgressSpinner"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSpinner", function() { return _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_21__["MatSpinner"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS", function() { return _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_21__["MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY", function() { return _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_21__["MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatProgressSpinnerModule", function() { return _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_21__["MatProgressSpinnerModule"]; }); /* harmony import */ var _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/material/radio */ "./node_modules/@angular/material/esm2015/radio.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRadioModule", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MatRadioModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_RADIO_DEFAULT_OPTIONS_FACTORY", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MAT_RADIO_DEFAULT_OPTIONS_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_RADIO_DEFAULT_OPTIONS", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MAT_RADIO_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRadioChange", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MatRadioChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRadioGroup", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MatRadioGroup"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRadioButton", function() { return _angular_material_radio__WEBPACK_IMPORTED_MODULE_22__["MatRadioButton"]; }); /* harmony import */ var _angular_material_select__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @angular/material/select */ "./node_modules/@angular/material/esm2015/select.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSelectModule", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MatSelectModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECT_PANEL_MAX_HEIGHT", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["SELECT_PANEL_MAX_HEIGHT"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECT_PANEL_PADDING_X", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["SELECT_PANEL_PADDING_X"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECT_PANEL_INDENT_PADDING_X", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["SELECT_PANEL_INDENT_PADDING_X"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECT_ITEM_HEIGHT_EM", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["SELECT_ITEM_HEIGHT_EM"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECT_MULTIPLE_PANEL_PADDING_X", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["SELECT_MULTIPLE_PANEL_PADDING_X"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECT_PANEL_VIEWPORT_PADDING", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["SELECT_PANEL_VIEWPORT_PADDING"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SELECT_SCROLL_STRATEGY", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MAT_SELECT_SCROLL_STRATEGY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SELECT_SCROLL_STRATEGY_PROVIDER", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MAT_SELECT_SCROLL_STRATEGY_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSelectChange", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MatSelectChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSelectTrigger", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MatSelectTrigger"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSelect", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["MatSelect"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matSelectAnimations", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["matSelectAnimations"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPanel", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["transformPanel"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fadeInContent", function() { return _angular_material_select__WEBPACK_IMPORTED_MODULE_23__["fadeInContent"]; }); /* harmony import */ var _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/material/sidenav */ "./node_modules/@angular/material/esm2015/sidenav.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSidenavModule", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatSidenavModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwMatDuplicatedDrawerError", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["throwMatDuplicatedDrawerError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_DRAWER_DEFAULT_AUTOSIZE", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MAT_DRAWER_DEFAULT_AUTOSIZE"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDrawerContent", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatDrawerContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDrawer", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatDrawer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatDrawerContainer", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatDrawerContainer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSidenavContent", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatSidenavContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSidenav", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatSidenav"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSidenavContainer", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["MatSidenavContainer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matDrawerAnimations", function() { return _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_24__["matDrawerAnimations"]; }); /* harmony import */ var _angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @angular/material/slide-toggle */ "./node_modules/@angular/material/esm2015/slide-toggle.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSlideToggleModule", function() { return _angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_25__["MatSlideToggleModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SLIDE_TOGGLE_VALUE_ACCESSOR", function() { return _angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_25__["MAT_SLIDE_TOGGLE_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSlideToggleChange", function() { return _angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_25__["MatSlideToggleChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSlideToggle", function() { return _angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_25__["MatSlideToggle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS", function() { return _angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_25__["MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS"]; }); /* harmony import */ var _angular_material_slider__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/material/slider */ "./node_modules/@angular/material/esm2015/slider.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSliderModule", function() { return _angular_material_slider__WEBPACK_IMPORTED_MODULE_26__["MatSliderModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SLIDER_VALUE_ACCESSOR", function() { return _angular_material_slider__WEBPACK_IMPORTED_MODULE_26__["MAT_SLIDER_VALUE_ACCESSOR"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSliderChange", function() { return _angular_material_slider__WEBPACK_IMPORTED_MODULE_26__["MatSliderChange"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSlider", function() { return _angular_material_slider__WEBPACK_IMPORTED_MODULE_26__["MatSlider"]; }); /* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @angular/material/snack-bar */ "./node_modules/@angular/material/esm2015/snack-bar.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSnackBarModule", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MatSnackBarModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SNACK_BAR_DEFAULT_OPTIONS", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MAT_SNACK_BAR_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSnackBar", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MatSnackBar"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSnackBarContainer", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MatSnackBarContainer"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SNACK_BAR_DATA", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MAT_SNACK_BAR_DATA"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSnackBarConfig", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MatSnackBarConfig"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSnackBarRef", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["MatSnackBarRef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleSnackBar", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["SimpleSnackBar"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matSnackBarAnimations", function() { return _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_27__["matSnackBarAnimations"]; }); /* harmony import */ var _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/material/sort */ "./node_modules/@angular/material/esm2015/sort.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSortModule", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["MatSortModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSortHeader", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["MatSortHeader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SORT_HEADER_INTL_PROVIDER_FACTORY", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["MAT_SORT_HEADER_INTL_PROVIDER_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSortHeaderIntl", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["MatSortHeaderIntl"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_SORT_HEADER_INTL_PROVIDER", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["MAT_SORT_HEADER_INTL_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatSort", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["MatSort"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matSortAnimations", function() { return _angular_material_sort__WEBPACK_IMPORTED_MODULE_28__["matSortAnimations"]; }); /* harmony import */ var _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/material/stepper */ "./node_modules/@angular/material/esm2015/stepper.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepperModule", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepperModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepLabel", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepLabel"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStep", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStep"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepper", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepper"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatHorizontalStepper", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatHorizontalStepper"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatVerticalStepper", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatVerticalStepper"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepperNext", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepperNext"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepperPrevious", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepperPrevious"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepHeader", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepHeader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_STEPPER_INTL_PROVIDER_FACTORY", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MAT_STEPPER_INTL_PROVIDER_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepperIntl", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepperIntl"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_STEPPER_INTL_PROVIDER", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MAT_STEPPER_INTL_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matStepperAnimations", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["matStepperAnimations"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatStepperIcon", function() { return _angular_material_stepper__WEBPACK_IMPORTED_MODULE_29__["MatStepperIcon"]; }); /* harmony import */ var _angular_material_table__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @angular/material/table */ "./node_modules/@angular/material/esm2015/table.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTableModule", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatTableModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCellDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatCellDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatHeaderCellDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatHeaderCellDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFooterCellDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatFooterCellDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatColumnDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatColumnDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatHeaderCell", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatHeaderCell"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFooterCell", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatFooterCell"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatCell", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatCell"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTable", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatTable"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatHeaderRowDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatHeaderRowDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFooterRowDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatFooterRowDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRowDef", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatRowDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatHeaderRow", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatHeaderRow"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatFooterRow", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatFooterRow"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatRow", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatRow"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTableDataSource", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatTableDataSource"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTextColumn", function() { return _angular_material_table__WEBPACK_IMPORTED_MODULE_30__["MatTextColumn"]; }); /* harmony import */ var _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @angular/material/tabs */ "./node_modules/@angular/material/esm2015/tabs.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵa24", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["ɵa24"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ɵb24", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["ɵb24"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatInkBar", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatInkBar"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_MAT_INK_BAR_POSITIONER", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["_MAT_INK_BAR_POSITIONER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabBody", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabBody"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabBodyPortal", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabBodyPortal"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabHeader", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabHeader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabLabelWrapper", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabLabelWrapper"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTab", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTab"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabLabel", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabLabel"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabNav", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabNav"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabLink", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabLink"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabContent", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabContent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabsModule", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabsModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabChangeEvent", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabChangeEvent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_TABS_CONFIG", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MAT_TABS_CONFIG"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTabGroup", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["MatTabGroup"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matTabsAnimations", function() { return _angular_material_tabs__WEBPACK_IMPORTED_MODULE_31__["matTabsAnimations"]; }); /* harmony import */ var _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @angular/material/toolbar */ "./node_modules/@angular/material/esm2015/toolbar.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatToolbarModule", function() { return _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__["MatToolbarModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwToolbarMixedModesError", function() { return _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__["throwToolbarMixedModesError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatToolbarRow", function() { return _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__["MatToolbarRow"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatToolbar", function() { return _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_32__["MatToolbar"]; }); /* harmony import */ var _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @angular/material/tooltip */ "./node_modules/@angular/material/esm2015/tooltip.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTooltipModule", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MatTooltipModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMatTooltipInvalidPositionError", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["getMatTooltipInvalidPositionError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SCROLL_THROTTLE_MS", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["SCROLL_THROTTLE_MS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TOOLTIP_PANEL_CLASS", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["TOOLTIP_PANEL_CLASS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_TOOLTIP_SCROLL_STRATEGY", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MAT_TOOLTIP_SCROLL_STRATEGY"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAT_TOOLTIP_DEFAULT_OPTIONS", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MAT_TOOLTIP_DEFAULT_OPTIONS"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTooltip", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["MatTooltip"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["TooltipComponent"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matTooltipAnimations", function() { return _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_33__["matTooltipAnimations"]; }); /* harmony import */ var _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @angular/material/tree */ "./node_modules/@angular/material/esm2015/tree.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeNode", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeNode"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeNodeDef", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeNodeDef"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatNestedTreeNode", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatNestedTreeNode"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeNodePadding", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeNodePadding"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTree", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTree"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeModule", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeModule"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeNodeToggle", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeNodeToggle"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeNodeOutlet", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeNodeOutlet"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeFlattener", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeFlattener"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeFlatDataSource", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeFlatDataSource"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatTreeNestedDataSource", function() { return _angular_material_tree__WEBPACK_IMPORTED_MODULE_34__["MatTreeNestedDataSource"]; }); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=material.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/progress-spinner.js": /*!********************************************************************!*\ !*** ./node_modules/@angular/material/esm2015/progress-spinner.js ***! \********************************************************************/ /*! exports provided: MatProgressSpinner, MatSpinner, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinnerModule */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatProgressSpinner", function() { return MatProgressSpinner; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatSpinner", function() { return MatSpinner; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS", function() { return MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY", function() { return MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatProgressSpinnerModule", function() { return MatProgressSpinnerModule; }); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/platform */ "./node_modules/@angular/cdk/esm2015/platform.js"); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Base reference size of the spinner. * \@docs-private * @type {?} */ const BASE_SIZE = 100; /** * Base reference stroke width of the spinner. * \@docs-private * @type {?} */ const BASE_STROKE_WIDTH = 10; // Boilerplate for applying mixins to MatProgressSpinner. /** * \@docs-private */ class MatProgressSpinnerBase { /** * @param {?} _elementRef */ constructor(_elementRef) { this._elementRef = _elementRef; } } /** @type {?} */ const _MatProgressSpinnerMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["mixinColor"])(MatProgressSpinnerBase, 'primary'); /** * Injection token to be used to override the default options for `mat-progress-spinner`. * @type {?} */ const MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = new _angular_core__WEBPACK_IMPORTED_MODULE_3__["InjectionToken"]('mat-progress-spinner-default-options', { providedIn: 'root', factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, }); /** * \@docs-private * @return {?} */ function MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() { return { diameter: BASE_SIZE }; } // .0001 percentage difference is necessary in order to avoid unwanted animation frames // for example because the animation duration is 4 seconds, .1% accounts to 4ms // which are enough to see the flicker described in // https://github.com/angular/components/issues/8984 /** @type {?} */ const INDETERMINATE_ANIMATION_TEMPLATE = ` @keyframes mat-progress-spinner-stroke-rotate-DIAMETER { 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); } 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); } 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); } 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); } 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); } 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); } 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); } 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); } 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); } 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); } 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); } 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); } 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); } 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); } 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); } 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); } } `; /** * `<mat-progress-spinner>` component. */ class MatProgressSpinner extends _MatProgressSpinnerMixinBase { /** * @param {?} _elementRef * @param {?} platform * @param {?} _document * @param {?} animationMode * @param {?=} defaults */ constructor(_elementRef, platform, _document, animationMode, defaults) { super(_elementRef); this._elementRef = _elementRef; this._document = _document; this._diameter = BASE_SIZE; this._value = 0; this._fallbackAnimation = false; /** * Mode of the progress circle */ this.mode = 'determinate'; /** @type {?} */ const trackedDiameters = MatProgressSpinner._diameters; // The base size is already inserted via the component's structural styles. We still // need to track it so we don't end up adding the same styles again. if (!trackedDiameters.has(_document.head)) { trackedDiameters.set(_document.head, new Set([BASE_SIZE])); } this._styleRoot = _getShadowRoot(_elementRef.nativeElement, _document) || _document.head; this._fallbackAnimation = platform.EDGE || platform.TRIDENT; this._noopAnimations = animationMode === 'NoopAnimations' && (!!defaults && !defaults._forceAnimations); if (defaults) { if (defaults.diameter) { this.diameter = defaults.diameter; } if (defaults.strokeWidth) { this.strokeWidth = defaults.strokeWidth; } } // On IE and Edge, we can't animate the `stroke-dashoffset` // reliably so we fall back to a non-spec animation. /** @type {?} */ const animationClass = `mat-progress-spinner-indeterminate${this._fallbackAnimation ? '-fallback' : ''}-animation`; _elementRef.nativeElement.classList.add(animationClass); } /** * The diameter of the progress spinner (will set width and height of svg). * @return {?} */ get diameter() { return this._diameter; } /** * @param {?} size * @return {?} */ set diameter(size) { this._diameter = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceNumberProperty"])(size); if (!this._fallbackAnimation) { /** @type {?} */ const trackedDiameters = MatProgressSpinner._diameters; /** @type {?} */ const diametersForElement = trackedDiameters.get(this._styleRoot); if (!diametersForElement || !diametersForElement.has(this._diameter)) { this._attachStyleNode(); } } } /** * Stroke width of the progress spinner. * @return {?} */ get strokeWidth() { return this._strokeWidth || this.diameter / 10; } /** * @param {?} value * @return {?} */ set strokeWidth(value) { this._strokeWidth = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceNumberProperty"])(value); } /** * Value of the progress circle. * @return {?} */ get value() { return this.mode === 'determinate' ? this._value : 0; } /** * @param {?} newValue * @return {?} */ set value(newValue) { this._value = Math.max(0, Math.min(100, Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_0__["coerceNumberProperty"])(newValue))); } /** * The radius of the spinner, adjusted for stroke width. * @return {?} */ get _circleRadius() { return (this.diameter - BASE_STROKE_WIDTH) / 2; } /** * The view box of the spinner's svg element. * @return {?} */ get _viewBox() { /** @type {?} */ const viewBox = this._circleRadius * 2 + this.strokeWidth; return `0 0 ${viewBox} ${viewBox}`; } /** * The stroke circumference of the svg circle. * @return {?} */ get _strokeCircumference() { return 2 * Math.PI * this._circleRadius; } /** * The dash offset of the svg circle. * @return {?} */ get _strokeDashOffset() { if (this.mode === 'determinate') { return this._strokeCircumference * (100 - this._value) / 100; } // In fallback mode set the circle to 80% and rotate it with CSS. if (this._fallbackAnimation && this.mode === 'indeterminate') { return this._strokeCircumference * 0.2; } return null; } /** * Stroke width of the circle in percent. * @return {?} */ get _circleStrokeWidth() { return this.strokeWidth / this.diameter * 100; } /** * Dynamically generates a style tag containing the correct animation for this diameter. * @private * @return {?} */ _attachStyleNode() { /** @type {?} */ const styleTag = this._document.createElement('style'); /** @type {?} */ const styleRoot = this._styleRoot; /** @type {?} */ const currentDiameter = this._diameter; /** @type {?} */ const diameters = MatProgressSpinner._diameters; /** @type {?} */ let diametersForElement = diameters.get(styleRoot); styleTag.setAttribute('mat-spinner-animation', currentDiameter + ''); styleTag.textContent = this._getAnimationText(); styleRoot.appendChild(styleTag); if (!diametersForElement) { diametersForElement = new Set(); diameters.set(styleRoot, diametersForElement); } diametersForElement.add(currentDiameter); } /** * Generates animation styles adjusted for the spinner's diameter. * @private * @return {?} */ _getAnimationText() { return INDETERMINATE_ANIMATION_TEMPLATE // Animation should begin at 5% and end at 80% .replace(/START_VALUE/g, `${0.95 * this._strokeCircumference}`) .replace(/END_VALUE/g, `${0.2 * this._strokeCircumference}`) .replace(/DIAMETER/g, `${this.diameter}`); } } /** * Tracks diameters of existing instances to de-dupe generated styles (default d = 100). * We need to keep track of which elements the diameters were attached to, because for * elements in the Shadow DOM the style tags are attached to the shadow root, rather * than the document head. */ MatProgressSpinner._diameters = new WeakMap(); MatProgressSpinner.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Component"], args: [{selector: 'mat-progress-spinner', exportAs: 'matProgressSpinner', host: { 'role': 'progressbar', 'class': 'mat-progress-spinner', '[class._mat-animation-noopable]': `_noopAnimations`, '[style.width.px]': 'diameter', '[style.height.px]': 'diameter', '[attr.aria-valuemin]': 'mode === "determinate" ? 0 : null', '[attr.aria-valuemax]': 'mode === "determinate" ? 100 : null', '[attr.aria-valuenow]': 'mode === "determinate" ? value : null', '[attr.mode]': 'mode', }, inputs: ['color'], template: "<svg [style.width.px]=\"diameter\" [style.height.px]=\"diameter\" [attr.viewBox]=\"_viewBox\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\" [ngSwitch]=\"mode === 'indeterminate'\"><circle *ngSwitchCase=\"true\" cx=\"50%\" cy=\"50%\" [attr.r]=\"_circleRadius\" [style.animation-name]=\"'mat-progress-spinner-stroke-rotate-' + diameter\" [style.stroke-dashoffset.px]=\"_strokeDashOffset\" [style.stroke-dasharray.px]=\"_strokeCircumference\" [style.stroke-width.%]=\"_circleStrokeWidth\"></circle><circle *ngSwitchCase=\"false\" cx=\"50%\" cy=\"50%\" [attr.r]=\"_circleRadius\" [style.stroke-dashoffset.px]=\"_strokeDashOffset\" [style.stroke-dasharray.px]=\"_strokeCircumference\" [style.stroke-width.%]=\"_circleStrokeWidth\"></circle></svg>", styles: [".mat-progress-spinner{display:block;position:relative}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate]{animation:mat-progress-spinner-linear-rotate 2s linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate]{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4s;animation-timing-function:cubic-bezier(.35,0,.25,1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate]{animation:mat-progress-spinner-stroke-rotate-fallback 10s cubic-bezier(.87,.03,.33,1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate]{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.60617px;transform:rotate(0)}12.5%{stroke-dashoffset:56.54867px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.60617px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.54867px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.60617px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.54867px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.60617px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.54867px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}"], changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ViewEncapsulation"].None, },] }, ]; /** @nocollapse */ MatProgressSpinner.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ElementRef"] }, { type: _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_1__["Platform"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_2__["DOCUMENT"],] }] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__["ANIMATION_MODULE_TYPE"],] }] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS,] }] } ]; MatProgressSpinner.propDecorators = { diameter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], strokeWidth: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], mode: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Input"] }] }; /** * `<mat-spinner>` component. * * This is a component definition to be used as a convenience reference to create an * indeterminate `<mat-progress-spinner>` instance. */ class MatSpinner extends MatProgressSpinner { /** * @param {?} elementRef * @param {?} platform * @param {?} document * @param {?} animationMode * @param {?=} defaults */ constructor(elementRef, platform, document, animationMode, defaults) { super(elementRef, platform, document, animationMode, defaults); this.mode = 'indeterminate'; } } MatSpinner.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Component"], args: [{selector: 'mat-spinner', host: { 'role': 'progressbar', 'mode': 'indeterminate', 'class': 'mat-spinner mat-progress-spinner', '[class._mat-animation-noopable]': `_noopAnimations`, '[style.width.px]': 'diameter', '[style.height.px]': 'diameter', }, inputs: ['color'], template: "<svg [style.width.px]=\"diameter\" [style.height.px]=\"diameter\" [attr.viewBox]=\"_viewBox\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\" [ngSwitch]=\"mode === 'indeterminate'\"><circle *ngSwitchCase=\"true\" cx=\"50%\" cy=\"50%\" [attr.r]=\"_circleRadius\" [style.animation-name]=\"'mat-progress-spinner-stroke-rotate-' + diameter\" [style.stroke-dashoffset.px]=\"_strokeDashOffset\" [style.stroke-dasharray.px]=\"_strokeCircumference\" [style.stroke-width.%]=\"_circleStrokeWidth\"></circle><circle *ngSwitchCase=\"false\" cx=\"50%\" cy=\"50%\" [attr.r]=\"_circleRadius\" [style.stroke-dashoffset.px]=\"_strokeDashOffset\" [style.stroke-dasharray.px]=\"_strokeCircumference\" [style.stroke-width.%]=\"_circleStrokeWidth\"></circle></svg>", styles: [".mat-progress-spinner{display:block;position:relative}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate]{animation:mat-progress-spinner-linear-rotate 2s linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate]{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4s;animation-timing-function:cubic-bezier(.35,0,.25,1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate]{animation:mat-progress-spinner-stroke-rotate-fallback 10s cubic-bezier(.87,.03,.33,1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate]{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.60617px;transform:rotate(0)}12.5%{stroke-dashoffset:56.54867px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.60617px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.54867px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.60617px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.54867px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.60617px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.54867px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}"], changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ViewEncapsulation"].None, },] }, ]; /** @nocollapse */ MatSpinner.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["ElementRef"] }, { type: _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_1__["Platform"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_2__["DOCUMENT"],] }] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__["ANIMATION_MODULE_TYPE"],] }] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["Inject"], args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS,] }] } ]; /** * Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. * @param {?} element * @param {?} _document * @return {?} */ function _getShadowRoot(element, _document) { // TODO(crisbeto): see whether we should move this into the CDK // feature detection utilities once #15616 gets merged in. if (typeof window !== 'undefined') { /** @type {?} */ const head = _document.head; // Check whether the browser supports Shadow DOM. if (head && (((/** @type {?} */ (head))).createShadowRoot || head.attachShadow)) { /** @type {?} */ const rootNode = element.getRootNode ? element.getRootNode() : null; // We need to take the `ShadowRoot` off of `window`, because the built-in types are // incorrect. See https://github.com/Microsoft/TypeScript/issues/27929. if (rootNode instanceof ((/** @type {?} */ (window))).ShadowRoot) { return rootNode; } } } return null; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatProgressSpinnerModule { } MatProgressSpinnerModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_3__["NgModule"], args: [{ imports: [_angular_material_core__WEBPACK_IMPORTED_MODULE_4__["MatCommonModule"], _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"]], exports: [ MatProgressSpinner, MatSpinner, _angular_material_core__WEBPACK_IMPORTED_MODULE_4__["MatCommonModule"] ], declarations: [ MatProgressSpinner, MatSpinner ], },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=progress-spinner.js.map /***/ }), /***/ "./node_modules/@angular/material/esm2015/slider.js": /*!**********************************************************!*\ !*** ./node_modules/@angular/material/esm2015/slider.js ***! \**********************************************************/ /*! exports provided: MatSliderModule, MAT_SLIDER_VALUE_ACCESSOR, MatSliderChange, MatSlider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatSliderModule", function() { return MatSliderModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAT_SLIDER_VALUE_ACCESSOR", function() { return MAT_SLIDER_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatSliderChange", function() { return MatSliderChange; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatSlider", function() { return MatSlider; }); /* harmony import */ var _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/cdk/a11y */ "./node_modules/@angular/cdk/esm2015/a11y.js"); /* harmony import */ var _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/cdk/bidi */ "./node_modules/@angular/cdk/esm2015/bidi.js"); /* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm2015/coercion.js"); /* harmony import */ var _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/keycodes */ "./node_modules/@angular/cdk/esm2015/keycodes.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js"); /* harmony import */ var _angular_material_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/core */ "./node_modules/@angular/material/esm2015/core.js"); /* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js"); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js"); /* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js"); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Visually, a 30px separation between tick marks looks best. This is very subjective but it is * the default separation we chose. * @type {?} */ const MIN_AUTO_TICK_SEPARATION = 30; /** * The thumb gap size for a disabled slider. * @type {?} */ const DISABLED_THUMB_GAP = 7; /** * The thumb gap size for a non-active slider at its minimum value. * @type {?} */ const MIN_VALUE_NONACTIVE_THUMB_GAP = 7; /** * The thumb gap size for an active slider at its minimum value. * @type {?} */ const MIN_VALUE_ACTIVE_THUMB_GAP = 10; /** * Provider Expression that allows mat-slider to register as a ControlValueAccessor. * This allows it to support [(ngModel)] and [formControl]. * \@docs-private * @type {?} */ const MAT_SLIDER_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_5__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_4__["forwardRef"])((/** * @return {?} */ () => MatSlider)), multi: true }; /** * A simple change event emitted by the MatSlider component. */ class MatSliderChange { } // Boilerplate for applying mixins to MatSlider. /** * \@docs-private */ class MatSliderBase { /** * @param {?} _elementRef */ constructor(_elementRef) { this._elementRef = _elementRef; } } /** @type {?} */ const _MatSliderMixinBase = Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_6__["mixinTabIndex"])(Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_6__["mixinColor"])(Object(_angular_material_core__WEBPACK_IMPORTED_MODULE_6__["mixinDisabled"])(MatSliderBase), 'accent')); /** * Allows users to select from a range of values by moving the slider thumb. It is similar in * behavior to the native `<input type="range">` element. */ class MatSlider extends _MatSliderMixinBase { /** * @param {?} elementRef * @param {?} _focusMonitor * @param {?} _changeDetectorRef * @param {?} _dir * @param {?} tabIndex * @param {?=} _animationMode */ constructor(elementRef, _focusMonitor, _changeDetectorRef, _dir, tabIndex, _animationMode) { super(elementRef); this._focusMonitor = _focusMonitor; this._changeDetectorRef = _changeDetectorRef; this._dir = _dir; this._animationMode = _animationMode; this._invert = false; this._max = 100; this._min = 0; this._step = 1; this._thumbLabel = false; this._tickInterval = 0; this._value = null; this._vertical = false; /** * Event emitted when the slider value has changed. */ this.change = new _angular_core__WEBPACK_IMPORTED_MODULE_4__["EventEmitter"](); /** * Event emitted when the slider thumb moves. */ this.input = new _angular_core__WEBPACK_IMPORTED_MODULE_4__["EventEmitter"](); /** * Emits when the raw value of the slider changes. This is here primarily * to facilitate the two-way binding for the `value` input. * \@docs-private */ this.valueChange = new _angular_core__WEBPACK_IMPORTED_MODULE_4__["EventEmitter"](); /** * onTouch function registered via registerOnTouch (ControlValueAccessor). */ this.onTouched = (/** * @return {?} */ () => { }); this._percent = 0; /** * Whether or not the thumb is sliding. * Used to determine if there should be a transition for the thumb and fill track. */ this._isSliding = false; /** * Whether or not the slider is active (clicked or sliding). * Used to shrink and grow the thumb as according to the Material Design spec. */ this._isActive = false; /** * The size of a tick interval as a percentage of the size of the track. */ this._tickIntervalPercent = 0; /** * The dimensions of the slider. */ this._sliderDimensions = null; this._controlValueAccessorChangeFn = (/** * @return {?} */ () => { }); /** * Subscription to the Directionality change EventEmitter. */ this._dirChangeSubscription = rxjs__WEBPACK_IMPORTED_MODULE_8__["Subscription"].EMPTY; this.tabIndex = parseInt(tabIndex) || 0; } /** * Whether the slider is inverted. * @return {?} */ get invert() { return this._invert; } /** * @param {?} value * @return {?} */ set invert(value) { this._invert = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceBooleanProperty"])(value); } /** * The maximum value that the slider can have. * @return {?} */ get max() { return this._max; } /** * @param {?} v * @return {?} */ set max(v) { this._max = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(v, this._max); this._percent = this._calculatePercentage(this._value); // Since this also modifies the percentage, we need to let the change detection know. this._changeDetectorRef.markForCheck(); } /** * The minimum value that the slider can have. * @return {?} */ get min() { return this._min; } /** * @param {?} v * @return {?} */ set min(v) { this._min = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(v, this._min); // If the value wasn't explicitly set by the user, set it to the min. if (this._value === null) { this.value = this._min; } this._percent = this._calculatePercentage(this._value); // Since this also modifies the percentage, we need to let the change detection know. this._changeDetectorRef.markForCheck(); } /** * The values at which the thumb will snap. * @return {?} */ get step() { return this._step; } /** * @param {?} v * @return {?} */ set step(v) { this._step = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(v, this._step); if (this._step % 1 !== 0) { this._roundToDecimal = (/** @type {?} */ (this._step.toString().split('.').pop())).length; } // Since this could modify the label, we need to notify the change detection. this._changeDetectorRef.markForCheck(); } /** * Whether or not to show the thumb label. * @return {?} */ get thumbLabel() { return this._thumbLabel; } /** * @param {?} value * @return {?} */ set thumbLabel(value) { this._thumbLabel = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceBooleanProperty"])(value); } /** * How often to show ticks. Relative to the step so that a tick always appears on a step. * Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values). * @return {?} */ get tickInterval() { return this._tickInterval; } /** * @param {?} value * @return {?} */ set tickInterval(value) { if (value === 'auto') { this._tickInterval = 'auto'; } else if (typeof value === 'number' || typeof value === 'string') { this._tickInterval = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(value, (/** @type {?} */ (this._tickInterval))); } else { this._tickInterval = 0; } } /** * Value of the slider. * @return {?} */ get value() { // If the value needs to be read and it is still uninitialized, initialize it to the min. if (this._value === null) { this.value = this._min; } return this._value; } /** * @param {?} v * @return {?} */ set value(v) { if (v !== this._value) { /** @type {?} */ let value = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceNumberProperty"])(v); // While incrementing by a decimal we can end up with values like 33.300000000000004. // Truncate it to ensure that it matches the label and to make it easier to work with. if (this._roundToDecimal) { value = parseFloat(value.toFixed(this._roundToDecimal)); } this._value = value; this._percent = this._calculatePercentage(this._value); // Since this also modifies the percentage, we need to let the change detection know. this._changeDetectorRef.markForCheck(); } } /** * Whether the slider is vertical. * @return {?} */ get vertical() { return this._vertical; } /** * @param {?} value * @return {?} */ set vertical(value) { this._vertical = Object(_angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_2__["coerceBooleanProperty"])(value); } /** * The value to be used for display purposes. * @return {?} */ get displayValue() { if (this.displayWith) { return this.displayWith(this.value); } // Note that this could be improved further by rounding something like 0.999 to 1 or // 0.899 to 0.9, however it is very performance sensitive, because it gets called on // every change detection cycle. if (this._roundToDecimal && this.value && this.value % 1 !== 0) { return this.value.toFixed(this._roundToDecimal); } return this.value || 0; } /** * set focus to the host element * @return {?} */ focus() { this._focusHostElement(); } /** * blur the host element * @return {?} */ blur() { this._blurHostElement(); } /** * The percentage of the slider that coincides with the value. * @return {?} */ get percent() { return this._clamp(this._percent); } /** * Whether the axis of the slider is inverted. * (i.e. whether moving the thumb in the positive x or y direction decreases the slider's value). * @return {?} */ get _invertAxis() { // Standard non-inverted mode for a vertical slider should be dragging the thumb from bottom to // top. However from a y-axis standpoint this is inverted. return this.vertical ? !this.invert : this.invert; } /** * Whether the slider is at its minimum value. * @return {?} */ get _isMinValue() { return this.percent === 0; } /** * The amount of space to leave between the slider thumb and the track fill & track background * elements. * @return {?} */ get _thumbGap() { if (this.disabled) { return DISABLED_THUMB_GAP; } if (this._isMinValue && !this.thumbLabel) { return this._isActive ? MIN_VALUE_ACTIVE_THUMB_GAP : MIN_VALUE_NONACTIVE_THUMB_GAP; } return 0; } /** * CSS styles for the track background element. * @return {?} */ get _trackBackgroundStyles() { /** @type {?} */ const axis = this.vertical ? 'Y' : 'X'; /** @type {?} */ const scale = this.vertical ? `1, ${1 - this.percent}, 1` : `${1 - this.percent}, 1, 1`; /** @type {?} */ const sign = this._shouldInvertMouseCoords() ? '-' : ''; return { // scale3d avoids some rendering issues in Chrome. See #12071. transform: `translate${axis}(${sign}${this._thumbGap}px) scale3d(${scale})` }; } /** * CSS styles for the track fill element. * @return {?} */ get _trackFillStyles() { /** @type {?} */ const axis = this.vertical ? 'Y' : 'X'; /** @type {?} */ const scale = this.vertical ? `1, ${this.percent}, 1` : `${this.percent}, 1, 1`; /** @type {?} */ const sign = this._shouldInvertMouseCoords() ? '' : '-'; return { // scale3d avoids some rendering issues in Chrome. See #12071. transform: `translate${axis}(${sign}${this._thumbGap}px) scale3d(${scale})` }; } /** * CSS styles for the ticks container element. * @return {?} */ get _ticksContainerStyles() { /** @type {?} */ let axis = this.vertical ? 'Y' : 'X'; // For a horizontal slider in RTL languages we push the ticks container off the left edge // instead of the right edge to avoid causing a horizontal scrollbar to appear. /** @type {?} */ let sign = !this.vertical && this._getDirection() == 'rtl' ? '' : '-'; /** @type {?} */ let offset = this._tickIntervalPercent / 2 * 100; return { 'transform': `translate${axis}(${sign}${offset}%)` }; } /** * CSS styles for the ticks element. * @return {?} */ get _ticksStyles() { /** @type {?} */ let tickSize = this._tickIntervalPercent * 100; /** @type {?} */ let backgroundSize = this.vertical ? `2px ${tickSize}%` : `${tickSize}% 2px`; /** @type {?} */ let axis = this.vertical ? 'Y' : 'X'; // Depending on the direction we pushed the ticks container, push the ticks the opposite // direction to re-center them but clip off the end edge. In RTL languages we need to flip the // ticks 180 degrees so we're really cutting off the end edge abd not the start. /** @type {?} */ let sign = !this.vertical && this._getDirection() == 'rtl' ? '-' : ''; /** @type {?} */ let rotate = !this.vertical && this._getDirection() == 'rtl' ? ' rotate(180deg)' : ''; /** @type {?} */ let styles = { 'backgroundSize': backgroundSize, // Without translateZ ticks sometimes jitter as the slider moves on Chrome & Firefox. 'transform': `translateZ(0) translate${axis}(${sign}${tickSize / 2}%)${rotate}` }; if (this._isMinValue && this._thumbGap) { /** @type {?} */ let side = this.vertical ? (this._invertAxis ? 'Bottom' : 'Top') : (this._invertAxis ? 'Right' : 'Left'); styles[`padding${side}`] = `${this._thumbGap}px`; } return styles; } /** * @return {?} */ get _thumbContainerStyles() { /** @type {?} */ let axis = this.vertical ? 'Y' : 'X'; // For a horizontal slider in RTL languages we push the thumb container off the left edge // instead of the right edge to avoid causing a horizontal scrollbar to appear. /** @type {?} */ let invertOffset = (this._getDirection() == 'rtl' && !this.vertical) ? !this._invertAxis : this._invertAxis; /** @type {?} */ let offset = (invertOffset ? this.percent : 1 - this.percent) * 100; return { 'transform': `translate${axis}(-${offset}%)` }; } /** * Whether mouse events should be converted to a slider position by calculating their distance * from the right or bottom edge of the slider as opposed to the top or left. * @private * @return {?} */ _shouldInvertMouseCoords() { return (this._getDirection() == 'rtl' && !this.vertical) ? !this._invertAxis : this._invertAxis; } /** * The language direction for this slider element. * @private * @return {?} */ _getDirection() { return (this._dir && this._dir.value == 'rtl') ? 'rtl' : 'ltr'; } /** * @return {?} */ ngOnInit() { this._focusMonitor .monitor(this._elementRef, true) .subscribe((/** * @param {?} origin * @return {?} */ (origin) => { this._isActive = !!origin && origin !== 'keyboard'; this._changeDetectorRef.detectChanges(); })); if (this._dir) { this._dirChangeSubscription = this._dir.change.subscribe((/** * @return {?} */ () => { this._changeDetectorRef.markForCheck(); })); } } /** * @return {?} */ ngOnDestroy() { this._focusMonitor.stopMonitoring(this._elementRef); this._dirChangeSubscription.unsubscribe(); } /** * @return {?} */ _onMouseenter() { if (this.disabled) { return; } // We save the dimensions of the slider here so we can use them to update the spacing of the // ticks and determine where on the slider click and slide events happen. this._sliderDimensions = this._getSliderDimensions(); this._updateTickIntervalPercent(); } /** * @param {?} event * @return {?} */ _onMousedown(event) { // Don't do anything if the slider is disabled or the // user is using anything other than the main mouse button. if (this.disabled || event.button !== 0) { return; } /** @type {?} */ const oldValue = this.value; this._isSliding = false; this._focusHostElement(); this._updateValueFromPosition({ x: event.clientX, y: event.clientY }); // Emit a change and input event if the value changed. if (oldValue != this.value) { this._emitInputEvent(); this._emitChangeEvent(); } } /** * @param {?} event * @return {?} */ _onSlide(event) { if (this.disabled) { return; } // The slide start event sometimes fails to fire on iOS, so if we're not already in the sliding // state, call the slide start handler manually. if (!this._isSliding) { this._onSlideStart(null); } // Prevent the slide from selecting anything else. event.preventDefault(); /** @type {?} */ let oldValue = this.value; this._updateValueFromPosition({ x: event.center.x, y: event.center.y }); // Native range elements always emit `input` events when the value changed while sliding. if (oldValue != this.value) { this._emitInputEvent(); } } /** * @param {?} event * @return {?} */ _onSlideStart(event) { if (this.disabled || this._isSliding) { return; } // Simulate mouseenter in case this is a mobile device. this._onMouseenter(); this._isSliding = true; this._focusHostElement(); this._valueOnSlideStart = this.value; if (event) { this._updateValueFromPosition({ x: event.center.x, y: event.center.y }); event.preventDefault(); } } /** * @return {?} */ _onSlideEnd() { this._isSliding = false; if (this._valueOnSlideStart != this.value && !this.disabled) { this._emitChangeEvent(); } this._valueOnSlideStart = null; } /** * @return {?} */ _onFocus() { // We save the dimensions of the slider here so we can use them to update the spacing of the // ticks and determine where on the slider click and slide events happen. this._sliderDimensions = this._getSliderDimensions(); this._updateTickIntervalPercent(); } /** * @return {?} */ _onBlur() { this.onTouched(); } /** * @param {?} event * @return {?} */ _onKeydown(event) { if (this.disabled || Object(_angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["hasModifierKey"])(event)) { return; } /** @type {?} */ const oldValue = this.value; switch (event.keyCode) { case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["PAGE_UP"]: this._increment(10); break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["PAGE_DOWN"]: this._increment(-10); break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["END"]: this.value = this.max; break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["HOME"]: this.value = this.min; break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["LEFT_ARROW"]: // NOTE: For a sighted user it would make more sense that when they press an arrow key on an // inverted slider the thumb moves in that direction. However for a blind user, nothing // about the slider indicates that it is inverted. They will expect left to be decrement, // regardless of how it appears on the screen. For speakers ofRTL languages, they probably // expect left to mean increment. Therefore we flip the meaning of the side arrow keys for // RTL. For inverted sliders we prefer a good a11y experience to having it "look right" for // sighted users, therefore we do not swap the meaning. this._increment(this._getDirection() == 'rtl' ? 1 : -1); break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["UP_ARROW"]: this._increment(1); break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["RIGHT_ARROW"]: // See comment on LEFT_ARROW about the conditions under which we flip the meaning. this._increment(this._getDirection() == 'rtl' ? -1 : 1); break; case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["DOWN_ARROW"]: this._increment(-1); break; default: // Return if the key is not one that we explicitly handle to avoid calling preventDefault on // it. return; } if (oldValue != this.value) { this._emitInputEvent(); this._emitChangeEvent(); } this._isSliding = true; event.preventDefault(); } /** * @return {?} */ _onKeyup() { this._isSliding = false; } /** * Increments the slider by the given number of steps (negative number decrements). * @private * @param {?} numSteps * @return {?} */ _increment(numSteps) { this.value = this._clamp((this.value || 0) + this.step * numSteps, this.min, this.max); } /** * Calculate the new value from the new physical location. The value will always be snapped. * @private * @param {?} pos * @return {?} */ _updateValueFromPosition(pos) { if (!this._sliderDimensions) { return; } /** @type {?} */ let offset = this.vertical ? this._sliderDimensions.top : this._sliderDimensions.left; /** @type {?} */ let size = this.vertical ? this._sliderDimensions.height : this._sliderDimensions.width; /** @type {?} */ let posComponent = this.vertical ? pos.y : pos.x; // The exact value is calculated from the event and used to find the closest snap value. /** @type {?} */ let percent = this._clamp((posComponent - offset) / size); if (this._shouldInvertMouseCoords()) { percent = 1 - percent; } // Since the steps may not divide cleanly into the max value, if the user // slid to 0 or 100 percent, we jump to the min/max value. This approach // is slightly more intuitive than using `Math.ceil` below, because it // follows the user's pointer closer. if (percent === 0) { this.value = this.min; } else if (percent === 1) { this.value = this.max; } else { /** @type {?} */ const exactValue = this._calculateValue(percent); // This calculation finds the closest step by finding the closest // whole number divisible by the step relative to the min. /** @type {?} */ const closestValue = Math.round((exactValue - this.min) / this.step) * this.step + this.min; // The value needs to snap to the min and max. this.value = this._clamp(closestValue, this.min, this.max); } } /** * Emits a change event if the current value is different from the last emitted value. * @private * @return {?} */ _emitChangeEvent() { this._controlValueAccessorChangeFn(this.value); this.valueChange.emit(this.value); this.change.emit(this._createChangeEvent()); } /** * Emits an input event when the current value is different from the last emitted value. * @private * @return {?} */ _emitInputEvent() { this.input.emit(this._createChangeEvent()); } /** * Updates the amount of space between ticks as a percentage of the width of the slider. * @private * @return {?} */ _updateTickIntervalPercent() { if (!this.tickInterval || !this._sliderDimensions) { return; } if (this.tickInterval == 'auto') { /** @type {?} */ let trackSize = this.vertical ? this._sliderDimensions.height : this._sliderDimensions.width; /** @type {?} */ let pixelsPerStep = trackSize * this.step / (this.max - this.min); /** @type {?} */ let stepsPerTick = Math.ceil(MIN_AUTO_TICK_SEPARATION / pixelsPerStep); /** @type {?} */ let pixelsPerTick = stepsPerTick * this.step; this._tickIntervalPercent = pixelsPerTick / trackSize; } else { this._tickIntervalPercent = this.tickInterval * this.step / (this.max - this.min); } } /** * Creates a slider change object from the specified value. * @private * @param {?=} value * @return {?} */ _createChangeEvent(value = this.value) { /** @type {?} */ let event = new MatSliderChange(); event.source = this; event.value = value; return event; } /** * Calculates the percentage of the slider that a value is. * @private * @param {?} value * @return {?} */ _calculatePercentage(value) { return ((value || 0) - this.min) / (this.max - this.min); } /** * Calculates the value a percentage of the slider corresponds to. * @private * @param {?} percentage * @return {?} */ _calculateValue(percentage) { return this.min + percentage * (this.max - this.min); } /** * Return a number between two numbers. * @private * @param {?} value * @param {?=} min * @param {?=} max * @return {?} */ _clamp(value, min = 0, max = 1) { return Math.max(min, Math.min(value, max)); } /** * Get the bounding client rect of the slider track element. * The track is used rather than the native element to ignore the extra space that the thumb can * take up. * @private * @return {?} */ _getSliderDimensions() { return this._sliderWrapper ? this._sliderWrapper.nativeElement.getBoundingClientRect() : null; } /** * Focuses the native element. * Currently only used to allow a blur event to fire but will be used with keyboard input later. * @private * @return {?} */ _focusHostElement() { this._elementRef.nativeElement.focus(); } /** * Blurs the native element. * @private * @return {?} */ _blurHostElement() { this._elementRef.nativeElement.blur(); } /** * Sets the model value. Implemented as part of ControlValueAccessor. * @param {?} value * @return {?} */ writeValue(value) { this.value = value; } /** * Registers a callback to be triggered when the value has changed. * Implemented as part of ControlValueAccessor. * @param {?} fn Callback to be registered. * @return {?} */ registerOnChange(fn) { this._controlValueAccessorChangeFn = fn; } /** * Registers a callback to be triggered when the component is touched. * Implemented as part of ControlValueAccessor. * @param {?} fn Callback to be registered. * @return {?} */ registerOnTouched(fn) { this.onTouched = fn; } /** * Sets whether the component should be disabled. * Implemented as part of ControlValueAccessor. * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { this.disabled = isDisabled; } } MatSlider.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Component"], args: [{selector: 'mat-slider', exportAs: 'matSlider', providers: [MAT_SLIDER_VALUE_ACCESSOR], host: { '(focus)': '_onFocus()', '(blur)': '_onBlur()', '(mousedown)': '_onMousedown($event)', '(keydown)': '_onKeydown($event)', '(keyup)': '_onKeyup()', '(mouseenter)': '_onMouseenter()', '(slide)': '_onSlide($event)', '(slideend)': '_onSlideEnd()', '(slidestart)': '_onSlideStart($event)', 'class': 'mat-slider', 'role': 'slider', '[tabIndex]': 'tabIndex', '[attr.aria-disabled]': 'disabled', '[attr.aria-valuemax]': 'max', '[attr.aria-valuemin]': 'min', '[attr.aria-valuenow]': 'value', '[attr.aria-orientation]': 'vertical ? "vertical" : "horizontal"', '[class.mat-slider-disabled]': 'disabled', '[class.mat-slider-has-ticks]': 'tickInterval', '[class.mat-slider-horizontal]': '!vertical', '[class.mat-slider-axis-inverted]': '_invertAxis', '[class.mat-slider-sliding]': '_isSliding', '[class.mat-slider-thumb-label-showing]': 'thumbLabel', '[class.mat-slider-vertical]': 'vertical', '[class.mat-slider-min-value]': '_isMinValue', '[class.mat-slider-hide-last-tick]': 'disabled || _isMinValue && _thumbGap && _invertAxis', '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"', }, template: "<div class=\"mat-slider-wrapper\" #sliderWrapper><div class=\"mat-slider-track-wrapper\"><div class=\"mat-slider-track-background\" [ngStyle]=\"_trackBackgroundStyles\"></div><div class=\"mat-slider-track-fill\" [ngStyle]=\"_trackFillStyles\"></div></div><div class=\"mat-slider-ticks-container\" [ngStyle]=\"_ticksContainerStyles\"><div class=\"mat-slider-ticks\" [ngStyle]=\"_ticksStyles\"></div></div><div class=\"mat-slider-thumb-container\" [ngStyle]=\"_thumbContainerStyles\"><div class=\"mat-slider-focus-ring\"></div><div class=\"mat-slider-thumb\"></div><div class=\"mat-slider-thumb-label\"><span class=\"mat-slider-thumb-label-text\">{{displayValue}}</span></div></div></div>", styles: [".mat-slider{display:inline-block;position:relative;box-sizing:border-box;padding:8px;outline:0;vertical-align:middle}.mat-slider-wrapper{position:absolute}.mat-slider-track-wrapper{position:absolute;top:0;left:0;overflow:hidden}.mat-slider-track-fill{position:absolute;transform-origin:0 0;transition:transform .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-track-background{position:absolute;transform-origin:100% 100%;transition:transform .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-ticks-container{position:absolute;left:0;top:0;overflow:hidden}.mat-slider-ticks{background-repeat:repeat;background-clip:content-box;box-sizing:border-box;opacity:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-thumb-container{position:absolute;z-index:1;transition:transform .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-focus-ring{position:absolute;width:30px;height:30px;border-radius:50%;transform:scale(0);opacity:0;transition:transform .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),opacity .4s cubic-bezier(.25,.8,.25,1)}.mat-slider.cdk-keyboard-focused .mat-slider-focus-ring,.mat-slider.cdk-program-focused .mat-slider-focus-ring{transform:scale(1);opacity:1}.mat-slider:not(.mat-slider-disabled) .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled) .mat-slider-thumb-label{cursor:-webkit-grab;cursor:grab}.mat-slider-sliding:not(.mat-slider-disabled) .mat-slider-thumb,.mat-slider-sliding:not(.mat-slider-disabled) .mat-slider-thumb-label,.mat-slider:not(.mat-slider-disabled) .mat-slider-thumb-label:active,.mat-slider:not(.mat-slider-disabled) .mat-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing}.mat-slider-thumb{position:absolute;right:-10px;bottom:-10px;box-sizing:border-box;width:20px;height:20px;border:3px solid transparent;border-radius:50%;transform:scale(.7);transition:transform .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),border-color .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-thumb-label{display:none;align-items:center;justify-content:center;position:absolute;width:28px;height:28px;border-radius:50%;transition:transform .4s cubic-bezier(.25,.8,.25,1),border-radius .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}@media (-ms-high-contrast:active){.mat-slider-thumb-label{outline:solid 1px}}.mat-slider-thumb-label-text{z-index:1;opacity:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-sliding .mat-slider-thumb-container,.mat-slider-sliding .mat-slider-track-background,.mat-slider-sliding .mat-slider-track-fill{transition-duration:0s}.mat-slider-has-ticks .mat-slider-wrapper::after{content:'';position:absolute;border-width:0;border-style:solid;opacity:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after,.mat-slider-has-ticks:hover:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after{opacity:1}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-disabled) .mat-slider-ticks,.mat-slider-has-ticks:hover:not(.mat-slider-disabled) .mat-slider-ticks{opacity:1}.mat-slider-thumb-label-showing .mat-slider-focus-ring{display:none}.mat-slider-thumb-label-showing .mat-slider-thumb-label{display:flex}.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:100% 100%}.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:0 0}.mat-slider:not(.mat-slider-disabled).cdk-focused.mat-slider-thumb-label-showing .mat-slider-thumb{transform:scale(0)}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label{border-radius:50% 50% 0}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label-text{opacity:1}.mat-slider:not(.mat-slider-disabled).cdk-mouse-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-program-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-touch-focused .mat-slider-thumb{border-width:2px;transform:scale(1)}.mat-slider-disabled .mat-slider-focus-ring{transform:scale(0);opacity:0}.mat-slider-disabled .mat-slider-thumb{border-width:4px;transform:scale(.5)}.mat-slider-disabled .mat-slider-thumb-label{display:none}.mat-slider-horizontal{height:48px;min-width:128px}.mat-slider-horizontal .mat-slider-wrapper{height:2px;top:23px;left:8px;right:8px}.mat-slider-horizontal .mat-slider-wrapper::after{height:2px;border-left-width:2px;right:0;top:0}.mat-slider-horizontal .mat-slider-track-wrapper{height:2px;width:100%}.mat-slider-horizontal .mat-slider-track-fill{height:2px;width:100%;transform:scaleX(0)}.mat-slider-horizontal .mat-slider-track-background{height:2px;width:100%;transform:scaleX(1)}.mat-slider-horizontal .mat-slider-ticks-container{height:2px;width:100%}@media (-ms-high-contrast:active){.mat-slider-horizontal .mat-slider-ticks-container{height:0;outline:solid 2px;top:1px}}.mat-slider-horizontal .mat-slider-ticks{height:2px;width:100%}.mat-slider-horizontal .mat-slider-thumb-container{width:100%;height:0;top:50%}.mat-slider-horizontal .mat-slider-focus-ring{top:-15px;right:-15px}.mat-slider-horizontal .mat-slider-thumb-label{right:-14px;top:-40px;transform:translateY(26px) scale(.01) rotate(45deg)}.mat-slider-horizontal .mat-slider-thumb-label-text{transform:rotate(-45deg)}.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(45deg)}@media (-ms-high-contrast:active){.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label,.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label-text{transform:none}}.mat-slider-vertical{width:48px;min-height:128px}.mat-slider-vertical .mat-slider-wrapper{width:2px;top:8px;bottom:8px;left:23px}.mat-slider-vertical .mat-slider-wrapper::after{width:2px;border-top-width:2px;bottom:0;left:0}.mat-slider-vertical .mat-slider-track-wrapper{height:100%;width:2px}.mat-slider-vertical .mat-slider-track-fill{height:100%;width:2px;transform:scaleY(0)}.mat-slider-vertical .mat-slider-track-background{height:100%;width:2px;transform:scaleY(1)}.mat-slider-vertical .mat-slider-ticks-container{width:2px;height:100%}@media (-ms-high-contrast:active){.mat-slider-vertical .mat-slider-ticks-container{width:0;outline:solid 2px;left:1px}}.mat-slider-vertical .mat-slider-focus-ring{bottom:-15px;left:-15px}.mat-slider-vertical .mat-slider-ticks{width:2px;height:100%}.mat-slider-vertical .mat-slider-thumb-container{height:100%;width:0;left:50%}.mat-slider-vertical .mat-slider-thumb{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-slider-vertical .mat-slider-thumb-label{bottom:-14px;left:-40px;transform:translateX(26px) scale(.01) rotate(-45deg)}.mat-slider-vertical .mat-slider-thumb-label-text{transform:rotate(45deg)}.mat-slider-vertical.cdk-focused .mat-slider-thumb-label{transform:rotate(-45deg)}[dir=rtl] .mat-slider-wrapper::after{left:0;right:auto}[dir=rtl] .mat-slider-horizontal .mat-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .mat-slider-horizontal .mat-slider-track-background{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:100% 100%}.mat-slider._mat-animation-noopable .mat-slider-focus-ring,.mat-slider._mat-animation-noopable .mat-slider-has-ticks .mat-slider-wrapper::after,.mat-slider._mat-animation-noopable .mat-slider-thumb,.mat-slider._mat-animation-noopable .mat-slider-thumb-container,.mat-slider._mat-animation-noopable .mat-slider-thumb-label,.mat-slider._mat-animation-noopable .mat-slider-thumb-label-text,.mat-slider._mat-animation-noopable .mat-slider-ticks,.mat-slider._mat-animation-noopable .mat-slider-track-background,.mat-slider._mat-animation-noopable .mat-slider-track-fill{transition:none}"], inputs: ['disabled', 'color', 'tabIndex'], encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ViewEncapsulation"].None, changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ChangeDetectionStrategy"].OnPush, },] }, ]; /** @nocollapse */ MatSlider.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ElementRef"] }, { type: _angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_0__["FocusMonitor"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ChangeDetectorRef"] }, { type: _angular_cdk_bidi__WEBPACK_IMPORTED_MODULE_1__["Directionality"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Optional"] }] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Attribute"], args: ['tabindex',] }] }, { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Inject"], args: [_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_7__["ANIMATION_MODULE_TYPE"],] }] } ]; MatSlider.propDecorators = { invert: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], min: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], step: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], thumbLabel: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], tickInterval: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], displayWith: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], vertical: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Input"] }], change: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Output"] }], input: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Output"] }], valueChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["Output"] }], _sliderWrapper: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["ViewChild"], args: ['sliderWrapper', { static: false },] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class MatSliderModule { } MatSliderModule.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__["NgModule"], args: [{ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_9__["CommonModule"], _angular_material_core__WEBPACK_IMPORTED_MODULE_6__["MatCommonModule"]], exports: [MatSlider, _angular_material_core__WEBPACK_IMPORTED_MODULE_6__["MatCommonModule"]], declarations: [MatSlider], providers: [{ provide: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_10__["HAMMER_GESTURE_CONFIG"], useClass: _angular_material_core__WEBPACK_IMPORTED_MODULE_6__["GestureConfig"] }] },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ //# sourceMappingURL=slider.js.map /***/ }) }]);