UNPKG

@angular/material

Version:
476 lines (465 loc) 28.6 kB
/** * @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 */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/coercion'), require('@angular/cdk/platform'), require('@angular/common'), require('@angular/core'), require('@angular/material/core'), require('@angular/platform-browser/animations')) : typeof define === 'function' && define.amd ? define('@angular/material/progress-spinner', ['exports', '@angular/cdk/coercion', '@angular/cdk/platform', '@angular/common', '@angular/core', '@angular/material/core', '@angular/platform-browser/animations'], factory) : (factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.progressSpinner = {}),global.ng.cdk.coercion,global.ng.cdk.platform,global.ng.common,global.ng.core,global.ng.material.core,global.ng.platformBrowser.animations)); }(this, (function (exports,coercion,platform,common,core,core$1,animations) { 'use strict'; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Base reference size of the spinner. * \@docs-private * @type {?} */ var BASE_SIZE = 100; /** * Base reference stroke width of the spinner. * \@docs-private * @type {?} */ var BASE_STROKE_WIDTH = 10; // Boilerplate for applying mixins to MatProgressSpinner. /** * \@docs-private */ var // Boilerplate for applying mixins to MatProgressSpinner. /** * \@docs-private */ MatProgressSpinnerBase = /** @class */ (function () { function MatProgressSpinnerBase(_elementRef) { this._elementRef = _elementRef; } return MatProgressSpinnerBase; }()); /** @type {?} */ var _MatProgressSpinnerMixinBase = core$1.mixinColor(MatProgressSpinnerBase, 'primary'); /** * Injection token to be used to override the default options for `mat-progress-spinner`. * @type {?} */ var MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = new core.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 {?} */ var INDETERMINATE_ANIMATION_TEMPLATE = "\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n"; /** * `<mat-progress-spinner>` component. */ var MatProgressSpinner = /** @class */ (function (_super) { __extends(MatProgressSpinner, _super); function MatProgressSpinner(_elementRef, platform$$1, _document, animationMode, defaults) { var _this = _super.call(this, _elementRef) || this; _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 {?} */ var 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._fallbackAnimation = platform$$1.EDGE || platform$$1.TRIDENT; _this._noopAnimations = animationMode === 'NoopAnimations' && (!!defaults && !defaults._forceAnimations); if (defaults) { if (defaults.diameter) { _this.diameter = defaults.diameter; } if (defaults.strokeWidth) { _this.strokeWidth = defaults.strokeWidth; } } return _this; } Object.defineProperty(MatProgressSpinner.prototype, "diameter", { /** The diameter of the progress spinner (will set width and height of svg). */ get: /** * The diameter of the progress spinner (will set width and height of svg). * @return {?} */ function () { return this._diameter; }, set: /** * @param {?} size * @return {?} */ function (size) { this._diameter = coercion.coerceNumberProperty(size); // If this is set before `ngOnInit`, the style root may not have been resolved yet. if (!this._fallbackAnimation && this._styleRoot) { this._attachStyleNode(); } }, enumerable: true, configurable: true }); Object.defineProperty(MatProgressSpinner.prototype, "strokeWidth", { /** Stroke width of the progress spinner. */ get: /** * Stroke width of the progress spinner. * @return {?} */ function () { return this._strokeWidth || this.diameter / 10; }, set: /** * @param {?} value * @return {?} */ function (value) { this._strokeWidth = coercion.coerceNumberProperty(value); }, enumerable: true, configurable: true }); Object.defineProperty(MatProgressSpinner.prototype, "value", { /** Value of the progress circle. */ get: /** * Value of the progress circle. * @return {?} */ function () { return this.mode === 'determinate' ? this._value : 0; }, set: /** * @param {?} newValue * @return {?} */ function (newValue) { this._value = Math.max(0, Math.min(100, coercion.coerceNumberProperty(newValue))); }, enumerable: true, configurable: true }); /** * @return {?} */ MatProgressSpinner.prototype.ngOnInit = /** * @return {?} */ function () { /** @type {?} */ var element = this._elementRef.nativeElement; // Note that we need to look up the root node in ngOnInit, rather than the constructor, because // Angular seems to create the element outside the shadow root and then moves it inside, if the // node is inside an `ngIf` and a ShadowDom-encapsulated component. this._styleRoot = _getShadowRoot(element, this._document) || this._document.head; this._attachStyleNode(); // On IE and Edge, we can't animate the `stroke-dashoffset` // reliably so we fall back to a non-spec animation. /** @type {?} */ var animationClass = "mat-progress-spinner-indeterminate" + (this._fallbackAnimation ? '-fallback' : '') + "-animation"; element.classList.add(animationClass); }; Object.defineProperty(MatProgressSpinner.prototype, "_circleRadius", { /** The radius of the spinner, adjusted for stroke width. */ get: /** * The radius of the spinner, adjusted for stroke width. * @return {?} */ function () { return (this.diameter - BASE_STROKE_WIDTH) / 2; }, enumerable: true, configurable: true }); Object.defineProperty(MatProgressSpinner.prototype, "_viewBox", { /** The view box of the spinner's svg element. */ get: /** * The view box of the spinner's svg element. * @return {?} */ function () { /** @type {?} */ var viewBox = this._circleRadius * 2 + this.strokeWidth; return "0 0 " + viewBox + " " + viewBox; }, enumerable: true, configurable: true }); Object.defineProperty(MatProgressSpinner.prototype, "_strokeCircumference", { /** The stroke circumference of the svg circle. */ get: /** * The stroke circumference of the svg circle. * @return {?} */ function () { return 2 * Math.PI * this._circleRadius; }, enumerable: true, configurable: true }); Object.defineProperty(MatProgressSpinner.prototype, "_strokeDashOffset", { /** The dash offset of the svg circle. */ get: /** * The dash offset of the svg circle. * @return {?} */ function () { 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; }, enumerable: true, configurable: true }); Object.defineProperty(MatProgressSpinner.prototype, "_circleStrokeWidth", { /** Stroke width of the circle in percent. */ get: /** * Stroke width of the circle in percent. * @return {?} */ function () { return this.strokeWidth / this.diameter * 100; }, enumerable: true, configurable: true }); /** Dynamically generates a style tag containing the correct animation for this diameter. */ /** * Dynamically generates a style tag containing the correct animation for this diameter. * @private * @return {?} */ MatProgressSpinner.prototype._attachStyleNode = /** * Dynamically generates a style tag containing the correct animation for this diameter. * @private * @return {?} */ function () { /** @type {?} */ var styleRoot = this._styleRoot; /** @type {?} */ var currentDiameter = this._diameter; /** @type {?} */ var diameters = MatProgressSpinner._diameters; /** @type {?} */ var diametersForElement = diameters.get(styleRoot); if (!diametersForElement || !diametersForElement.has(currentDiameter)) { /** @type {?} */ var styleTag = this._document.createElement('style'); 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. */ /** * Generates animation styles adjusted for the spinner's diameter. * @private * @return {?} */ MatProgressSpinner.prototype._getAnimationText = /** * Generates animation styles adjusted for the spinner's diameter. * @private * @return {?} */ function () { 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: core.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: core.ChangeDetectionStrategy.OnPush, encapsulation: core.ViewEncapsulation.None, },] }, ]; /** @nocollapse */ MatProgressSpinner.ctorParameters = function () { return [ { type: core.ElementRef }, { type: platform.Platform }, { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] }, { type: String, decorators: [{ type: core.Optional }, { type: core.Inject, args: [animations.ANIMATION_MODULE_TYPE,] }] }, { type: undefined, decorators: [{ type: core.Inject, args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS,] }] } ]; }; MatProgressSpinner.propDecorators = { diameter: [{ type: core.Input }], strokeWidth: [{ type: core.Input }], mode: [{ type: core.Input }], value: [{ type: core.Input }] }; return MatProgressSpinner; }(_MatProgressSpinnerMixinBase)); /** * `<mat-spinner>` component. * * This is a component definition to be used as a convenience reference to create an * indeterminate `<mat-progress-spinner>` instance. */ var MatSpinner = /** @class */ (function (_super) { __extends(MatSpinner, _super); function MatSpinner(elementRef, platform$$1, document, animationMode, defaults) { var _this = _super.call(this, elementRef, platform$$1, document, animationMode, defaults) || this; _this.mode = 'indeterminate'; return _this; } MatSpinner.decorators = [ { type: core.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: core.ChangeDetectionStrategy.OnPush, encapsulation: core.ViewEncapsulation.None, },] }, ]; /** @nocollapse */ MatSpinner.ctorParameters = function () { return [ { type: core.ElementRef }, { type: platform.Platform }, { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] }, { type: String, decorators: [{ type: core.Optional }, { type: core.Inject, args: [animations.ANIMATION_MODULE_TYPE,] }] }, { type: undefined, decorators: [{ type: core.Inject, args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS,] }] } ]; }; return MatSpinner; }(MatProgressSpinner)); /** * 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 {?} */ var head = _document.head; // Check whether the browser supports Shadow DOM. if (head && (((/** @type {?} */ (head))).createShadowRoot || head.attachShadow)) { /** @type {?} */ var 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 */ var MatProgressSpinnerModule = /** @class */ (function () { function MatProgressSpinnerModule() { } MatProgressSpinnerModule.decorators = [ { type: core.NgModule, args: [{ imports: [core$1.MatCommonModule, common.CommonModule], exports: [ MatProgressSpinner, MatSpinner, core$1.MatCommonModule ], declarations: [ MatProgressSpinner, MatSpinner ], },] }, ]; return MatProgressSpinnerModule; }()); exports.MatProgressSpinner = MatProgressSpinner; exports.MatSpinner = MatSpinner; exports.MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS; exports.MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY = MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY; exports.MatProgressSpinnerModule = MatProgressSpinnerModule; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=material-progress-spinner.umd.js.map