{"version":3,"file":"progress-spinner.es5.js","sources":["../../packages/material/esm5/progress-spinner/progress-spinner.js","../../packages/material/esm5/progress-spinner/progress-spinner-module.js","../../packages/material/esm5/progress-spinner/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Component, ChangeDetectionStrategy, Input, ElementRef, Renderer2, ViewEncapsulation, Optional, Inject, } from '@angular/core';\nimport { mixinColor } from '@angular/material/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\n/**\n * \\@docs-private\n */\nvar MatProgressSpinnerBase = (function () {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n function MatProgressSpinnerBase(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n return MatProgressSpinnerBase;\n}());\nexport { MatProgressSpinnerBase };\nfunction MatProgressSpinnerBase_tsickle_Closure_declarations() {\n /** @type {?} */\n MatProgressSpinnerBase.prototype._renderer;\n /** @type {?} */\n MatProgressSpinnerBase.prototype._elementRef;\n}\nexport var /** @type {?} */ _MatProgressSpinnerMixinBase = mixinColor(MatProgressSpinnerBase, 'primary');\nvar /** @type {?} */ 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.51% { 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.1% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\\n 37.51% { 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.01% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\\n 62.51% { 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.01% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\\n 87.51% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\\n }\\n\";\n/**\n * component.\n */\nvar MatProgressSpinner = (function (_super) {\n tslib_1.__extends(MatProgressSpinner, _super);\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} platform\n * @param {?} _document\n */\n function MatProgressSpinner(_renderer, _elementRef, platform, _document) {\n var _this = _super.call(this, _renderer, _elementRef) || this;\n _this._renderer = _renderer;\n _this._elementRef = _elementRef;\n _this._document = _document;\n _this._baseSize = 100;\n _this._baseStrokeWidth = 10;\n _this._fallbackAnimation = false;\n /**\n * The width and height of the host element. Will grow with stroke width. *\n */\n _this._elementSize = _this._baseSize;\n _this._diameter = _this._baseSize;\n /**\n * Stroke width of the progress spinner.\n */\n _this.strokeWidth = 10;\n /**\n * Mode of the progress circle\n */\n _this.mode = 'determinate';\n _this._fallbackAnimation = platform.EDGE || platform.TRIDENT;\n // On IE and Edge, we can't animate the `stroke-dashoffset`\n // reliably so we fall back to a non-spec animation.\n var animationClass = _this._fallbackAnimation ?\n 'mat-progress-spinner-indeterminate-fallback-animation' :\n 'mat-progress-spinner-indeterminate-animation';\n _renderer.addClass(_elementRef.nativeElement, animationClass);\n return _this;\n }\n Object.defineProperty(MatProgressSpinner.prototype, \"diameter\", {\n /**\n * The diameter of the progress spinner (will set width and height of svg).\n * @return {?}\n */\n get: function () {\n return this._diameter;\n },\n /**\n * @param {?} size\n * @return {?}\n */\n set: function (size) {\n this._setDiameterAndInitStyles(size);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatProgressSpinner.prototype, \"value\", {\n /**\n * Value of the progress circle.\n * @return {?}\n */\n get: function () {\n return this.mode === 'determinate' ? this._value : 0;\n },\n /**\n * @param {?} newValue\n * @return {?}\n */\n set: function (newValue) {\n if (newValue != null && this.mode === 'determinate') {\n this._value = Math.max(0, Math.min(100, newValue));\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} changes\n * @return {?}\n */\n MatProgressSpinner.prototype.ngOnChanges = function (changes) {\n if (changes.strokeWidth || changes.diameter) {\n this._elementSize =\n this._diameter + Math.max(this.strokeWidth - this._baseStrokeWidth, 0);\n }\n };\n Object.defineProperty(MatProgressSpinner.prototype, \"_circleRadius\", {\n /**\n * The radius of the spinner, adjusted for stroke width.\n * @return {?}\n */\n get: function () {\n return (this.diameter - this._baseStrokeWidth) / 2;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatProgressSpinner.prototype, \"_viewBox\", {\n /**\n * The view box of the spinner's svg element.\n * @return {?}\n */\n get: function () {\n return \"0 0 \" + this._elementSize + \" \" + this._elementSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatProgressSpinner.prototype, \"_strokeCircumference\", {\n /**\n * The stroke circumference of the svg circle.\n * @return {?}\n */\n get: function () {\n return 2 * Math.PI * this._circleRadius;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatProgressSpinner.prototype, \"_strokeDashOffset\", {\n /**\n * The dash offset of the svg circle.\n * @return {?}\n */\n get: function () {\n if (this.mode === 'determinate') {\n return this._strokeCircumference * (100 - this._value) / 100;\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the diameter and adds diameter-specific styles if necessary.\n * @param {?} size\n * @return {?}\n */\n MatProgressSpinner.prototype._setDiameterAndInitStyles = function (size) {\n this._diameter = size;\n if (!MatProgressSpinner.diameters.has(this.diameter) && !this._fallbackAnimation) {\n this._attachStyleNode();\n }\n };\n /**\n * Dynamically generates a style tag containing the correct animation for this diameter.\n * @return {?}\n */\n MatProgressSpinner.prototype._attachStyleNode = function () {\n var /** @type {?} */ styleTag = this._renderer.createElement('style');\n styleTag.textContent = this._getAnimationText();\n this._renderer.appendChild(this._document.head, styleTag);\n MatProgressSpinner.diameters.add(this.diameter);\n };\n /**\n * Generates animation styles adjusted for the spinner's diameter.\n * @return {?}\n */\n MatProgressSpinner.prototype._getAnimationText = function () {\n return INDETERMINATE_ANIMATION_TEMPLATE\n .replace(/START_VALUE/g, \"\" + 0.95 * this._strokeCircumference)\n .replace(/END_VALUE/g, \"\" + 0.2 * this._strokeCircumference)\n .replace(/DIAMETER/g, \"\" + this.diameter);\n };\n /**\n * Tracks diameters of existing instances to de-dupe generated styles (default d = 100)\n */\n MatProgressSpinner.diameters = new Set([100]);\n MatProgressSpinner.decorators = [\n { type: Component, args: [{selector: 'mat-progress-spinner',\n exportAs: 'matProgressSpinner',\n host: {\n 'role': 'progressbar',\n 'class': 'mat-progress-spinner',\n '[style.width.px]': '_elementSize',\n '[style.height.px]': '_elementSize',\n '[attr.aria-valuemin]': 'mode === \"determinate\" ? 0 : null',\n '[attr.aria-valuemax]': 'mode === \"determinate\" ? 100 : null',\n '[attr.aria-valuenow]': 'value',\n '[attr.mode]': 'mode',\n },\n inputs: ['color'],\n template: \"\",\n styles: [\".mat-progress-spinner{display:block;position:relative}.mat-progress-spinner svg{position:absolute;transform:translate(-50%,-50%) rotate(-90deg);top:50%;left:50%;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate]{animation:mat-progress-spinner-linear-rotate 2s linear infinite}.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-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-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}@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.51%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(72.5deg)}25.1%{stroke-dashoffset:268.60617px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.54867px;transform:rotate(270deg)}37.51%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(161.5deg)}50.01%{stroke-dashoffset:268.60617px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.54867px;transform:rotate(180deg)}62.51%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(251.5deg)}75.01%{stroke-dashoffset:268.60617px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.54867px;transform:rotate(90deg)}87.51%{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)}}\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatProgressSpinner.ctorParameters = function () { return [\n { type: Renderer2, },\n { type: ElementRef, },\n { type: Platform, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] },] },\n ]; };\n MatProgressSpinner.propDecorators = {\n 'diameter': [{ type: Input },],\n 'strokeWidth': [{ type: Input },],\n 'mode': [{ type: Input },],\n 'value': [{ type: Input },],\n };\n return MatProgressSpinner;\n}(_MatProgressSpinnerMixinBase));\nexport { MatProgressSpinner };\nfunction MatProgressSpinner_tsickle_Closure_declarations() {\n /**\n * Tracks diameters of existing instances to de-dupe generated styles (default d = 100)\n * @type {?}\n */\n MatProgressSpinner.diameters;\n /** @type {?} */\n MatProgressSpinner.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatProgressSpinner.ctorParameters;\n /** @type {?} */\n MatProgressSpinner.propDecorators;\n /** @type {?} */\n MatProgressSpinner.prototype._value;\n /** @type {?} */\n MatProgressSpinner.prototype._baseSize;\n /** @type {?} */\n MatProgressSpinner.prototype._baseStrokeWidth;\n /** @type {?} */\n MatProgressSpinner.prototype._fallbackAnimation;\n /**\n * The width and height of the host element. Will grow with stroke width. *\n * @type {?}\n */\n MatProgressSpinner.prototype._elementSize;\n /** @type {?} */\n MatProgressSpinner.prototype._diameter;\n /**\n * Stroke width of the progress spinner.\n * @type {?}\n */\n MatProgressSpinner.prototype.strokeWidth;\n /**\n * Mode of the progress circle\n * @type {?}\n */\n MatProgressSpinner.prototype.mode;\n /** @type {?} */\n MatProgressSpinner.prototype._renderer;\n /** @type {?} */\n MatProgressSpinner.prototype._elementRef;\n /** @type {?} */\n MatProgressSpinner.prototype._document;\n}\n/**\n * component.\n *\n * This is a component definition to be used as a convenience reference to create an\n * indeterminate instance.\n */\nvar MatSpinner = (function (_super) {\n tslib_1.__extends(MatSpinner, _super);\n /**\n * @param {?} renderer\n * @param {?} elementRef\n * @param {?} platform\n * @param {?} document\n */\n function MatSpinner(renderer, elementRef, platform, document) {\n var _this = _super.call(this, renderer, elementRef, platform, document) || this;\n _this.mode = 'indeterminate';\n return _this;\n }\n MatSpinner.decorators = [\n { type: Component, args: [{selector: 'mat-spinner',\n host: {\n 'role': 'progressbar',\n 'mode': 'indeterminate',\n 'class': 'mat-spinner mat-progress-spinner',\n '[style.width.px]': '_elementSize',\n '[style.height.px]': '_elementSize',\n },\n inputs: ['color'],\n template: \"\",\n styles: [\".mat-progress-spinner{display:block;position:relative}.mat-progress-spinner svg{position:absolute;transform:translate(-50%,-50%) rotate(-90deg);top:50%;left:50%;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate]{animation:mat-progress-spinner-linear-rotate 2s linear infinite}.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-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-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}@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.51%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(72.5deg)}25.1%{stroke-dashoffset:268.60617px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.54867px;transform:rotate(270deg)}37.51%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(161.5deg)}50.01%{stroke-dashoffset:268.60617px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.54867px;transform:rotate(180deg)}62.51%{stroke-dashoffset:56.54867px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.60617px;transform:rotateX(180deg) rotate(251.5deg)}75.01%{stroke-dashoffset:268.60617px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.54867px;transform:rotate(90deg)}87.51%{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)}}\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatSpinner.ctorParameters = function () { return [\n { type: Renderer2, },\n { type: ElementRef, },\n { type: Platform, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] },] },\n ]; };\n return MatSpinner;\n}(MatProgressSpinner));\nexport { MatSpinner };\nfunction MatSpinner_tsickle_Closure_declarations() {\n /** @type {?} */\n MatSpinner.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatSpinner.ctorParameters;\n}\n//# sourceMappingURL=progress-spinner.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatProgressSpinner, MatSpinner } from './progress-spinner';\nvar MatProgressSpinnerModule = (function () {\n function MatProgressSpinnerModule() {\n }\n MatProgressSpinnerModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, PlatformModule],\n exports: [\n MatProgressSpinner,\n MatSpinner,\n MatCommonModule\n ],\n declarations: [\n MatProgressSpinner,\n MatSpinner\n ],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatProgressSpinnerModule.ctorParameters = function () { return []; };\n return MatProgressSpinnerModule;\n}());\nfunction MatProgressSpinnerModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatProgressSpinnerModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatProgressSpinnerModule.ctorParameters;\n}\nexport { MatProgressSpinnerModule };\n//# sourceMappingURL=progress-spinner-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatProgressSpinnerModule, MatProgressSpinnerBase, _MatProgressSpinnerMixinBase, MatProgressSpinner, MatSpinner } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}