{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getShadowRoot } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Base reference size of the spinner.\n * @docs-private\n */\n\nfunction MatProgressSpinner__svg_circle_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵnamespaceSVG();\n    i0.ɵɵelement(0, \"circle\", 3);\n  }\n\n  if (rf & 2) {\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵstyleProp(\"animation-name\", \"mat-progress-spinner-stroke-rotate-\" + ctx_r0._spinnerAnimationLabel)(\"stroke-dashoffset\", ctx_r0._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r0._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r0._getCircleStrokeWidth(), \"%\");\n    i0.ɵɵattribute(\"r\", ctx_r0._getCircleRadius());\n  }\n}\n\nfunction MatProgressSpinner__svg_circle_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵnamespaceSVG();\n    i0.ɵɵelement(0, \"circle\", 3);\n  }\n\n  if (rf & 2) {\n    const ctx_r1 = i0.ɵɵnextContext();\n    i0.ɵɵstyleProp(\"stroke-dashoffset\", ctx_r1._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r1._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r1._getCircleStrokeWidth(), \"%\");\n    i0.ɵɵattribute(\"r\", ctx_r1._getCircleRadius());\n  }\n}\n\nfunction MatSpinner__svg_circle_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵnamespaceSVG();\n    i0.ɵɵelement(0, \"circle\", 3);\n  }\n\n  if (rf & 2) {\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵstyleProp(\"animation-name\", \"mat-progress-spinner-stroke-rotate-\" + ctx_r0._spinnerAnimationLabel)(\"stroke-dashoffset\", ctx_r0._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r0._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r0._getCircleStrokeWidth(), \"%\");\n    i0.ɵɵattribute(\"r\", ctx_r0._getCircleRadius());\n  }\n}\n\nfunction MatSpinner__svg_circle_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵnamespaceSVG();\n    i0.ɵɵelement(0, \"circle\", 3);\n  }\n\n  if (rf & 2) {\n    const ctx_r1 = i0.ɵɵnextContext();\n    i0.ɵɵstyleProp(\"stroke-dashoffset\", ctx_r1._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r1._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r1._getCircleStrokeWidth(), \"%\");\n    i0.ɵɵattribute(\"r\", ctx_r1._getCircleRadius());\n  }\n}\n\nconst _c0 = \".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\";\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n * @docs-private\n */\n\nconst BASE_STROKE_WIDTH = 10; // Boilerplate for applying mixins to MatProgressSpinner.\n\n/** @docs-private */\n\nconst _MatProgressSpinnerBase = mixinColor(class {\n  constructor(_elementRef) {\n    this._elementRef = _elementRef;\n  }\n\n}, 'primary');\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\n\n\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = new InjectionToken('mat-progress-spinner-default-options', {\n  providedIn: 'root',\n  factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\n\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n  return {\n    diameter: BASE_SIZE\n  };\n} // .0001 percentage difference is necessary in order to avoid unwanted animation frames\n// for example because the animation duration is 4 seconds, .1% accounts to 4ms\n// which are enough to see the flicker described in\n// https://github.com/angular/components/issues/8984\n\n\nconst 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`;\n/**\n * `<mat-progress-spinner>` component.\n */\n\nclass MatProgressSpinner extends _MatProgressSpinnerBase {\n  constructor(elementRef,\n  /**\n   * @deprecated `_platform` parameter no longer being used.\n   * @breaking-change 14.0.0\n   */\n  _platform, _document, animationMode, defaults) {\n    super(elementRef);\n    this._document = _document;\n    this._diameter = BASE_SIZE;\n    this._value = 0;\n    /** Mode of the progress circle */\n\n    this.mode = 'determinate';\n    const trackedDiameters = MatProgressSpinner._diameters;\n    this._spinnerAnimationLabel = this._getSpinnerAnimationLabel(); // The base size is already inserted via the component's structural styles. We still\n    // need to track it so we don't end up adding the same styles again.\n\n    if (!trackedDiameters.has(_document.head)) {\n      trackedDiameters.set(_document.head, new Set([BASE_SIZE]));\n    }\n\n    this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n\n    if (defaults) {\n      if (defaults.diameter) {\n        this.diameter = defaults.diameter;\n      }\n\n      if (defaults.strokeWidth) {\n        this.strokeWidth = defaults.strokeWidth;\n      }\n    }\n  }\n  /** The diameter of the progress spinner (will set width and height of svg). */\n\n\n  get diameter() {\n    return this._diameter;\n  }\n\n  set diameter(size) {\n    this._diameter = coerceNumberProperty(size);\n    this._spinnerAnimationLabel = this._getSpinnerAnimationLabel(); // If this is set before `ngOnInit`, the style root may not have been resolved yet.\n\n    if (this._styleRoot) {\n      this._attachStyleNode();\n    }\n  }\n  /** Stroke width of the progress spinner. */\n\n\n  get strokeWidth() {\n    return this._strokeWidth || this.diameter / 10;\n  }\n\n  set strokeWidth(value) {\n    this._strokeWidth = coerceNumberProperty(value);\n  }\n  /** Value of the progress circle. */\n\n\n  get value() {\n    return this.mode === 'determinate' ? this._value : 0;\n  }\n\n  set value(newValue) {\n    this._value = Math.max(0, Math.min(100, coerceNumberProperty(newValue)));\n  }\n\n  ngOnInit() {\n    const element = this._elementRef.nativeElement; // Note that we need to look up the root node in ngOnInit, rather than the constructor, because\n    // Angular seems to create the element outside the shadow root and then moves it inside, if the\n    // node is inside an `ngIf` and a ShadowDom-encapsulated component.\n\n    this._styleRoot = _getShadowRoot(element) || this._document.head;\n\n    this._attachStyleNode();\n\n    element.classList.add('mat-progress-spinner-indeterminate-animation');\n  }\n  /** The radius of the spinner, adjusted for stroke width. */\n\n\n  _getCircleRadius() {\n    return (this.diameter - BASE_STROKE_WIDTH) / 2;\n  }\n  /** The view box of the spinner's svg element. */\n\n\n  _getViewBox() {\n    const viewBox = this._getCircleRadius() * 2 + this.strokeWidth;\n    return `0 0 ${viewBox} ${viewBox}`;\n  }\n  /** The stroke circumference of the svg circle. */\n\n\n  _getStrokeCircumference() {\n    return 2 * Math.PI * this._getCircleRadius();\n  }\n  /** The dash offset of the svg circle. */\n\n\n  _getStrokeDashOffset() {\n    if (this.mode === 'determinate') {\n      return this._getStrokeCircumference() * (100 - this._value) / 100;\n    }\n\n    return null;\n  }\n  /** Stroke width of the circle in percent. */\n\n\n  _getCircleStrokeWidth() {\n    return this.strokeWidth / this.diameter * 100;\n  }\n  /** Dynamically generates a style tag containing the correct animation for this diameter. */\n\n\n  _attachStyleNode() {\n    const styleRoot = this._styleRoot;\n    const currentDiameter = this._diameter;\n    const diameters = MatProgressSpinner._diameters;\n    let diametersForElement = diameters.get(styleRoot);\n\n    if (!diametersForElement || !diametersForElement.has(currentDiameter)) {\n      const styleTag = this._document.createElement('style');\n\n      styleTag.setAttribute('mat-spinner-animation', this._spinnerAnimationLabel);\n      styleTag.textContent = this._getAnimationText();\n      styleRoot.appendChild(styleTag);\n\n      if (!diametersForElement) {\n        diametersForElement = new Set();\n        diameters.set(styleRoot, diametersForElement);\n      }\n\n      diametersForElement.add(currentDiameter);\n    }\n  }\n  /** Generates animation styles adjusted for the spinner's diameter. */\n\n\n  _getAnimationText() {\n    const strokeCircumference = this._getStrokeCircumference();\n\n    return INDETERMINATE_ANIMATION_TEMPLATE // Animation should begin at 5% and end at 80%\n    .replace(/START_VALUE/g, `${0.95 * strokeCircumference}`).replace(/END_VALUE/g, `${0.2 * strokeCircumference}`).replace(/DIAMETER/g, `${this._spinnerAnimationLabel}`);\n  }\n  /** Returns the circle diameter formatted for use with the animation-name CSS property. */\n\n\n  _getSpinnerAnimationLabel() {\n    // The string of a float point number will include a period ‘.’ character,\n    // which is not valid for a CSS animation-name.\n    return this.diameter.toString().replace('.', '_');\n  }\n\n}\n/**\n * Tracks diameters of existing instances to de-dupe generated styles (default d = 100).\n * We need to keep track of which elements the diameters were attached to, because for\n * elements in the Shadow DOM the style tags are attached to the shadow root, rather\n * than the document head.\n */\n\n\nMatProgressSpinner._diameters = new WeakMap();\n\nMatProgressSpinner.ɵfac = function MatProgressSpinner_Factory(t) {\n  return new (t || MatProgressSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS));\n};\n\nMatProgressSpinner.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatProgressSpinner,\n  selectors: [[\"mat-progress-spinner\"]],\n  hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-progress-spinner\"],\n  hostVars: 10,\n  hostBindings: function MatProgressSpinner_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵattribute(\"aria-valuemin\", ctx.mode === \"determinate\" ? 0 : null)(\"aria-valuemax\", ctx.mode === \"determinate\" ? 100 : null)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n      i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n      i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations);\n    }\n  },\n  inputs: {\n    color: \"color\",\n    diameter: \"diameter\",\n    strokeWidth: \"strokeWidth\",\n    mode: \"mode\",\n    value: \"value\"\n  },\n  exportAs: [\"matProgressSpinner\"],\n  features: [i0.ɵɵInheritDefinitionFeature],\n  decls: 3,\n  vars: 8,\n  consts: [[\"preserveAspectRatio\", \"xMidYMid meet\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 3, \"ngSwitch\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"animation-name\", \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n  template: function MatProgressSpinner_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵnamespaceSVG();\n      i0.ɵɵelementStart(0, \"svg\", 0);\n      i0.ɵɵtemplate(1, MatProgressSpinner__svg_circle_1_Template, 1, 9, \"circle\", 1);\n      i0.ɵɵtemplate(2, MatProgressSpinner__svg_circle_2_Template, 1, 7, \"circle\", 2);\n      i0.ɵɵelementEnd();\n    }\n\n    if (rf & 2) {\n      i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n      i0.ɵɵproperty(\"ngSwitch\", ctx.mode === \"indeterminate\");\n      i0.ɵɵattribute(\"viewBox\", ctx._getViewBox());\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngSwitchCase\", true);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngSwitchCase\", false);\n    }\n  },\n  directives: [i2.NgSwitch, i2.NgSwitchCase],\n  styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatProgressSpinner, [{\n    type: Component,\n    args: [{\n      selector: 'mat-progress-spinner',\n      exportAs: 'matProgressSpinner',\n      host: {\n        'role': 'progressbar',\n        'class': 'mat-progress-spinner',\n        // set tab index to -1 so screen readers will read the aria-label\n        // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n        'tabindex': '-1',\n        '[class._mat-animation-noopable]': `_noopAnimations`,\n        '[style.width.px]': 'diameter',\n        '[style.height.px]': 'diameter',\n        '[attr.aria-valuemin]': 'mode === \"determinate\" ? 0 : null',\n        '[attr.aria-valuemax]': 'mode === \"determinate\" ? 100 : null',\n        '[attr.aria-valuenow]': 'mode === \"determinate\" ? value : null',\n        '[attr.mode]': 'mode'\n      },\n      inputs: ['color'],\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      template: \"<!--\\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\n  center. The center of the circle will remain at the center of the mat-progress-spinner\\n  element containing the SVG.\\n-->\\n<!--\\n  All children need to be hidden for screen readers in order to support ChromeVox.\\n  More context in the issue: https://github.com/angular/components/issues/22165.\\n-->\\n<svg\\n  [style.width.px]=\\\"diameter\\\"\\n  [style.height.px]=\\\"diameter\\\"\\n  [attr.viewBox]=\\\"_getViewBox()\\\"\\n  preserveAspectRatio=\\\"xMidYMid meet\\\"\\n  focusable=\\\"false\\\"\\n  [ngSwitch]=\\\"mode === 'indeterminate'\\\"\\n  aria-hidden=\\\"true\\\">\\n\\n  <!--\\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\\n    for a split second and then removing it when switching between modes, but it's hard to know\\n    for how long to hide the element and it can cause the UI to blink.\\n  -->\\n  <circle\\n    *ngSwitchCase=\\\"true\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.animation-name]=\\\"'mat-progress-spinner-stroke-rotate-' + _spinnerAnimationLabel\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n\\n  <circle\\n    *ngSwitchCase=\\\"false\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n</svg>\\n\",\n      styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [DOCUMENT]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n      }]\n    }];\n  }, {\n    diameter: [{\n      type: Input\n    }],\n    strokeWidth: [{\n      type: Input\n    }],\n    mode: [{\n      type: Input\n    }],\n    value: [{\n      type: Input\n    }]\n  });\n})();\n/**\n * `<mat-spinner>` component.\n *\n * This is a component definition to be used as a convenience reference to create an\n * indeterminate `<mat-progress-spinner>` instance.\n */\n\n\nclass MatSpinner extends MatProgressSpinner {\n  constructor(elementRef, platform, document, animationMode, defaults) {\n    super(elementRef, platform, document, animationMode, defaults);\n    this.mode = 'indeterminate';\n  }\n\n}\n\nMatSpinner.ɵfac = function MatSpinner_Factory(t) {\n  return new (t || MatSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS));\n};\n\nMatSpinner.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatSpinner,\n  selectors: [[\"mat-spinner\"]],\n  hostAttrs: [\"role\", \"progressbar\", \"mode\", \"indeterminate\", 1, \"mat-spinner\", \"mat-progress-spinner\"],\n  hostVars: 6,\n  hostBindings: function MatSpinner_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n      i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations);\n    }\n  },\n  inputs: {\n    color: \"color\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature],\n  decls: 3,\n  vars: 8,\n  consts: [[\"preserveAspectRatio\", \"xMidYMid meet\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 3, \"ngSwitch\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"animation-name\", \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n  template: function MatSpinner_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵnamespaceSVG();\n      i0.ɵɵelementStart(0, \"svg\", 0);\n      i0.ɵɵtemplate(1, MatSpinner__svg_circle_1_Template, 1, 9, \"circle\", 1);\n      i0.ɵɵtemplate(2, MatSpinner__svg_circle_2_Template, 1, 7, \"circle\", 2);\n      i0.ɵɵelementEnd();\n    }\n\n    if (rf & 2) {\n      i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n      i0.ɵɵproperty(\"ngSwitch\", ctx.mode === \"indeterminate\");\n      i0.ɵɵattribute(\"viewBox\", ctx._getViewBox());\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngSwitchCase\", true);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngSwitchCase\", false);\n    }\n  },\n  directives: [i2.NgSwitch, i2.NgSwitchCase],\n  styles: [_c0],\n  encapsulation: 2,\n  changeDetection: 0\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSpinner, [{\n    type: Component,\n    args: [{\n      selector: 'mat-spinner',\n      host: {\n        'role': 'progressbar',\n        'mode': 'indeterminate',\n        'class': 'mat-spinner mat-progress-spinner',\n        '[class._mat-animation-noopable]': `_noopAnimations`,\n        '[style.width.px]': 'diameter',\n        '[style.height.px]': 'diameter'\n      },\n      inputs: ['color'],\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      template: \"<!--\\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\n  center. The center of the circle will remain at the center of the mat-progress-spinner\\n  element containing the SVG.\\n-->\\n<!--\\n  All children need to be hidden for screen readers in order to support ChromeVox.\\n  More context in the issue: https://github.com/angular/components/issues/22165.\\n-->\\n<svg\\n  [style.width.px]=\\\"diameter\\\"\\n  [style.height.px]=\\\"diameter\\\"\\n  [attr.viewBox]=\\\"_getViewBox()\\\"\\n  preserveAspectRatio=\\\"xMidYMid meet\\\"\\n  focusable=\\\"false\\\"\\n  [ngSwitch]=\\\"mode === 'indeterminate'\\\"\\n  aria-hidden=\\\"true\\\">\\n\\n  <!--\\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\\n    for a split second and then removing it when switching between modes, but it's hard to know\\n    for how long to hide the element and it can cause the UI to blink.\\n  -->\\n  <circle\\n    *ngSwitchCase=\\\"true\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.animation-name]=\\\"'mat-progress-spinner-stroke-rotate-' + _spinnerAnimationLabel\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n\\n  <circle\\n    *ngSwitchCase=\\\"false\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n</svg>\\n\",\n      styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [DOCUMENT]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n      }]\n    }];\n  }, null);\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nclass MatProgressSpinnerModule {}\n\nMatProgressSpinnerModule.ɵfac = function MatProgressSpinnerModule_Factory(t) {\n  return new (t || MatProgressSpinnerModule)();\n};\n\nMatProgressSpinnerModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: MatProgressSpinnerModule\n});\nMatProgressSpinnerModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [[MatCommonModule, CommonModule], MatCommonModule]\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatProgressSpinnerModule, [{\n    type: NgModule,\n    args: [{\n      imports: [MatCommonModule, CommonModule],\n      exports: [MatProgressSpinner, MatSpinner, MatCommonModule],\n      declarations: [MatProgressSpinner, MatSpinner]\n    }]\n  }], null, null);\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/@angular/material/fesm2015/progress-spinner.mjs"],"names":["i0","InjectionToken","Component","ChangeDetectionStrategy","ViewEncapsulation","Optional","Inject","Input","NgModule","i2","DOCUMENT","CommonModule","mixinColor","MatCommonModule","coerceNumberProperty","i1","_getShadowRoot","ANIMATION_MODULE_TYPE","BASE_SIZE","BASE_STROKE_WIDTH","_MatProgressSpinnerBase","constructor","_elementRef","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","providedIn","factory","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY","diameter","INDETERMINATE_ANIMATION_TEMPLATE","MatProgressSpinner","elementRef","_platform","_document","animationMode","defaults","_diameter","_value","mode","trackedDiameters","_diameters","_spinnerAnimationLabel","_getSpinnerAnimationLabel","has","head","set","Set","_noopAnimations","_forceAnimations","strokeWidth","size","_styleRoot","_attachStyleNode","_strokeWidth","value","newValue","Math","max","min","ngOnInit","element","nativeElement","classList","add","_getCircleRadius","_getViewBox","viewBox","_getStrokeCircumference","PI","_getStrokeDashOffset","_getCircleStrokeWidth","styleRoot","currentDiameter","diameters","diametersForElement","get","styleTag","createElement","setAttribute","textContent","_getAnimationText","appendChild","strokeCircumference","replace","toString","WeakMap","ɵfac","ElementRef","Platform","ɵcmp","NgSwitch","NgSwitchCase","type","args","selector","exportAs","host","inputs","changeDetection","OnPush","encapsulation","None","template","styles","undefined","decorators","MatSpinner","platform","document","MatProgressSpinnerModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getShadowRoot } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Base reference size of the spinner.\n * @docs-private\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n * @docs-private\n */\nconst BASE_STROKE_WIDTH = 10;\n// Boilerplate for applying mixins to MatProgressSpinner.\n/** @docs-private */\nconst _MatProgressSpinnerBase = mixinColor(class {\n    constructor(_elementRef) {\n        this._elementRef = _elementRef;\n    }\n}, 'primary');\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = new InjectionToken('mat-progress-spinner-default-options', {\n    providedIn: 'root',\n    factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY,\n});\n/** @docs-private */\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n    return { diameter: BASE_SIZE };\n}\n// .0001 percentage difference is necessary in order to avoid unwanted animation frames\n// for example because the animation duration is 4 seconds, .1% accounts to 4ms\n// which are enough to see the flicker described in\n// https://github.com/angular/components/issues/8984\nconst 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`;\n/**\n * `<mat-progress-spinner>` component.\n */\nclass MatProgressSpinner extends _MatProgressSpinnerBase {\n    constructor(elementRef, \n    /**\n     * @deprecated `_platform` parameter no longer being used.\n     * @breaking-change 14.0.0\n     */\n    _platform, _document, animationMode, defaults) {\n        super(elementRef);\n        this._document = _document;\n        this._diameter = BASE_SIZE;\n        this._value = 0;\n        /** Mode of the progress circle */\n        this.mode = 'determinate';\n        const trackedDiameters = MatProgressSpinner._diameters;\n        this._spinnerAnimationLabel = this._getSpinnerAnimationLabel();\n        // The base size is already inserted via the component's structural styles. We still\n        // need to track it so we don't end up adding the same styles again.\n        if (!trackedDiameters.has(_document.head)) {\n            trackedDiameters.set(_document.head, new Set([BASE_SIZE]));\n        }\n        this._noopAnimations =\n            animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n        if (defaults) {\n            if (defaults.diameter) {\n                this.diameter = defaults.diameter;\n            }\n            if (defaults.strokeWidth) {\n                this.strokeWidth = defaults.strokeWidth;\n            }\n        }\n    }\n    /** The diameter of the progress spinner (will set width and height of svg). */\n    get diameter() {\n        return this._diameter;\n    }\n    set diameter(size) {\n        this._diameter = coerceNumberProperty(size);\n        this._spinnerAnimationLabel = this._getSpinnerAnimationLabel();\n        // If this is set before `ngOnInit`, the style root may not have been resolved yet.\n        if (this._styleRoot) {\n            this._attachStyleNode();\n        }\n    }\n    /** Stroke width of the progress spinner. */\n    get strokeWidth() {\n        return this._strokeWidth || this.diameter / 10;\n    }\n    set strokeWidth(value) {\n        this._strokeWidth = coerceNumberProperty(value);\n    }\n    /** Value of the progress circle. */\n    get value() {\n        return this.mode === 'determinate' ? this._value : 0;\n    }\n    set value(newValue) {\n        this._value = Math.max(0, Math.min(100, coerceNumberProperty(newValue)));\n    }\n    ngOnInit() {\n        const element = this._elementRef.nativeElement;\n        // Note that we need to look up the root node in ngOnInit, rather than the constructor, because\n        // Angular seems to create the element outside the shadow root and then moves it inside, if the\n        // node is inside an `ngIf` and a ShadowDom-encapsulated component.\n        this._styleRoot = _getShadowRoot(element) || this._document.head;\n        this._attachStyleNode();\n        element.classList.add('mat-progress-spinner-indeterminate-animation');\n    }\n    /** The radius of the spinner, adjusted for stroke width. */\n    _getCircleRadius() {\n        return (this.diameter - BASE_STROKE_WIDTH) / 2;\n    }\n    /** The view box of the spinner's svg element. */\n    _getViewBox() {\n        const viewBox = this._getCircleRadius() * 2 + this.strokeWidth;\n        return `0 0 ${viewBox} ${viewBox}`;\n    }\n    /** The stroke circumference of the svg circle. */\n    _getStrokeCircumference() {\n        return 2 * Math.PI * this._getCircleRadius();\n    }\n    /** The dash offset of the svg circle. */\n    _getStrokeDashOffset() {\n        if (this.mode === 'determinate') {\n            return (this._getStrokeCircumference() * (100 - this._value)) / 100;\n        }\n        return null;\n    }\n    /** Stroke width of the circle in percent. */\n    _getCircleStrokeWidth() {\n        return (this.strokeWidth / this.diameter) * 100;\n    }\n    /** Dynamically generates a style tag containing the correct animation for this diameter. */\n    _attachStyleNode() {\n        const styleRoot = this._styleRoot;\n        const currentDiameter = this._diameter;\n        const diameters = MatProgressSpinner._diameters;\n        let diametersForElement = diameters.get(styleRoot);\n        if (!diametersForElement || !diametersForElement.has(currentDiameter)) {\n            const styleTag = this._document.createElement('style');\n            styleTag.setAttribute('mat-spinner-animation', this._spinnerAnimationLabel);\n            styleTag.textContent = this._getAnimationText();\n            styleRoot.appendChild(styleTag);\n            if (!diametersForElement) {\n                diametersForElement = new Set();\n                diameters.set(styleRoot, diametersForElement);\n            }\n            diametersForElement.add(currentDiameter);\n        }\n    }\n    /** Generates animation styles adjusted for the spinner's diameter. */\n    _getAnimationText() {\n        const strokeCircumference = this._getStrokeCircumference();\n        return (INDETERMINATE_ANIMATION_TEMPLATE\n            // Animation should begin at 5% and end at 80%\n            .replace(/START_VALUE/g, `${0.95 * strokeCircumference}`)\n            .replace(/END_VALUE/g, `${0.2 * strokeCircumference}`)\n            .replace(/DIAMETER/g, `${this._spinnerAnimationLabel}`));\n    }\n    /** Returns the circle diameter formatted for use with the animation-name CSS property. */\n    _getSpinnerAnimationLabel() {\n        // The string of a float point number will include a period ‘.’ character,\n        // which is not valid for a CSS animation-name.\n        return this.diameter.toString().replace('.', '_');\n    }\n}\n/**\n * Tracks diameters of existing instances to de-dupe generated styles (default d = 100).\n * We need to keep track of which elements the diameters were attached to, because for\n * elements in the Shadow DOM the style tags are attached to the shadow root, rather\n * than the document head.\n */\nMatProgressSpinner._diameters = new WeakMap();\nMatProgressSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatProgressSpinner, deps: [{ token: i0.ElementRef }, { token: i1.Platform }, { token: DOCUMENT, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });\nMatProgressSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: MatProgressSpinner, selector: \"mat-progress-spinner\", inputs: { color: \"color\", diameter: \"diameter\", strokeWidth: \"strokeWidth\", mode: \"mode\", value: \"value\" }, host: { attributes: { \"role\": \"progressbar\", \"tabindex\": \"-1\" }, properties: { \"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\" }, classAttribute: \"mat-progress-spinner\" }, exportAs: [\"matProgressSpinner\"], usesInheritance: true, ngImport: i0, template: \"<!--\\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\n  center. The center of the circle will remain at the center of the mat-progress-spinner\\n  element containing the SVG.\\n-->\\n<!--\\n  All children need to be hidden for screen readers in order to support ChromeVox.\\n  More context in the issue: https://github.com/angular/components/issues/22165.\\n-->\\n<svg\\n  [style.width.px]=\\\"diameter\\\"\\n  [style.height.px]=\\\"diameter\\\"\\n  [attr.viewBox]=\\\"_getViewBox()\\\"\\n  preserveAspectRatio=\\\"xMidYMid meet\\\"\\n  focusable=\\\"false\\\"\\n  [ngSwitch]=\\\"mode === 'indeterminate'\\\"\\n  aria-hidden=\\\"true\\\">\\n\\n  <!--\\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\\n    for a split second and then removing it when switching between modes, but it's hard to know\\n    for how long to hide the element and it can cause the UI to blink.\\n  -->\\n  <circle\\n    *ngSwitchCase=\\\"true\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.animation-name]=\\\"'mat-progress-spinner-stroke-rotate-' + _spinnerAnimationLabel\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n\\n  <circle\\n    *ngSwitchCase=\\\"false\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n</svg>\\n\", styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"], directives: [{ type: i2.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { type: i2.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatProgressSpinner, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-progress-spinner', exportAs: 'matProgressSpinner', host: {\n                        'role': 'progressbar',\n                        'class': 'mat-progress-spinner',\n                        // set tab index to -1 so screen readers will read the aria-label\n                        // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n                        'tabindex': '-1',\n                        '[class._mat-animation-noopable]': `_noopAnimations`,\n                        '[style.width.px]': 'diameter',\n                        '[style.height.px]': 'diameter',\n                        '[attr.aria-valuemin]': 'mode === \"determinate\" ? 0 : null',\n                        '[attr.aria-valuemax]': 'mode === \"determinate\" ? 100 : null',\n                        '[attr.aria-valuenow]': 'mode === \"determinate\" ? value : null',\n                        '[attr.mode]': 'mode',\n                    }, inputs: ['color'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"<!--\\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\n  center. The center of the circle will remain at the center of the mat-progress-spinner\\n  element containing the SVG.\\n-->\\n<!--\\n  All children need to be hidden for screen readers in order to support ChromeVox.\\n  More context in the issue: https://github.com/angular/components/issues/22165.\\n-->\\n<svg\\n  [style.width.px]=\\\"diameter\\\"\\n  [style.height.px]=\\\"diameter\\\"\\n  [attr.viewBox]=\\\"_getViewBox()\\\"\\n  preserveAspectRatio=\\\"xMidYMid meet\\\"\\n  focusable=\\\"false\\\"\\n  [ngSwitch]=\\\"mode === 'indeterminate'\\\"\\n  aria-hidden=\\\"true\\\">\\n\\n  <!--\\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\\n    for a split second and then removing it when switching between modes, but it's hard to know\\n    for how long to hide the element and it can cause the UI to blink.\\n  -->\\n  <circle\\n    *ngSwitchCase=\\\"true\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.animation-name]=\\\"'mat-progress-spinner-stroke-rotate-' + _spinnerAnimationLabel\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n\\n  <circle\\n    *ngSwitchCase=\\\"false\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n</svg>\\n\", styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"] }]\n        }], ctorParameters: function () {\n        return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: undefined, decorators: [{\n                        type: Optional\n                    }, {\n                        type: Inject,\n                        args: [DOCUMENT]\n                    }] }, { type: undefined, decorators: [{\n                        type: Optional\n                    }, {\n                        type: Inject,\n                        args: [ANIMATION_MODULE_TYPE]\n                    }] }, { type: undefined, decorators: [{\n                        type: Inject,\n                        args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n                    }] }];\n    }, propDecorators: { diameter: [{\n                type: Input\n            }], strokeWidth: [{\n                type: Input\n            }], mode: [{\n                type: Input\n            }], value: [{\n                type: Input\n            }] } });\n/**\n * `<mat-spinner>` component.\n *\n * This is a component definition to be used as a convenience reference to create an\n * indeterminate `<mat-progress-spinner>` instance.\n */\nclass MatSpinner extends MatProgressSpinner {\n    constructor(elementRef, platform, document, animationMode, defaults) {\n        super(elementRef, platform, document, animationMode, defaults);\n        this.mode = 'indeterminate';\n    }\n}\nMatSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatSpinner, deps: [{ token: i0.ElementRef }, { token: i1.Platform }, { token: DOCUMENT, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });\nMatSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: MatSpinner, selector: \"mat-spinner\", inputs: { color: \"color\" }, host: { attributes: { \"role\": \"progressbar\", \"mode\": \"indeterminate\" }, properties: { \"class._mat-animation-noopable\": \"_noopAnimations\", \"style.width.px\": \"diameter\", \"style.height.px\": \"diameter\" }, classAttribute: \"mat-spinner mat-progress-spinner\" }, usesInheritance: true, ngImport: i0, template: \"<!--\\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\n  center. The center of the circle will remain at the center of the mat-progress-spinner\\n  element containing the SVG.\\n-->\\n<!--\\n  All children need to be hidden for screen readers in order to support ChromeVox.\\n  More context in the issue: https://github.com/angular/components/issues/22165.\\n-->\\n<svg\\n  [style.width.px]=\\\"diameter\\\"\\n  [style.height.px]=\\\"diameter\\\"\\n  [attr.viewBox]=\\\"_getViewBox()\\\"\\n  preserveAspectRatio=\\\"xMidYMid meet\\\"\\n  focusable=\\\"false\\\"\\n  [ngSwitch]=\\\"mode === 'indeterminate'\\\"\\n  aria-hidden=\\\"true\\\">\\n\\n  <!--\\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\\n    for a split second and then removing it when switching between modes, but it's hard to know\\n    for how long to hide the element and it can cause the UI to blink.\\n  -->\\n  <circle\\n    *ngSwitchCase=\\\"true\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.animation-name]=\\\"'mat-progress-spinner-stroke-rotate-' + _spinnerAnimationLabel\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n\\n  <circle\\n    *ngSwitchCase=\\\"false\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n</svg>\\n\", styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"], directives: [{ type: i2.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { type: i2.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatSpinner, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-spinner', host: {\n                        'role': 'progressbar',\n                        'mode': 'indeterminate',\n                        'class': 'mat-spinner mat-progress-spinner',\n                        '[class._mat-animation-noopable]': `_noopAnimations`,\n                        '[style.width.px]': 'diameter',\n                        '[style.height.px]': 'diameter',\n                    }, inputs: ['color'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"<!--\\n  preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\n  center. The center of the circle will remain at the center of the mat-progress-spinner\\n  element containing the SVG.\\n-->\\n<!--\\n  All children need to be hidden for screen readers in order to support ChromeVox.\\n  More context in the issue: https://github.com/angular/components/issues/22165.\\n-->\\n<svg\\n  [style.width.px]=\\\"diameter\\\"\\n  [style.height.px]=\\\"diameter\\\"\\n  [attr.viewBox]=\\\"_getViewBox()\\\"\\n  preserveAspectRatio=\\\"xMidYMid meet\\\"\\n  focusable=\\\"false\\\"\\n  [ngSwitch]=\\\"mode === 'indeterminate'\\\"\\n  aria-hidden=\\\"true\\\">\\n\\n  <!--\\n    Technically we can reuse the same `circle` element, however Safari has an issue that breaks\\n    the SVG rendering in determinate mode, after switching between indeterminate and determinate.\\n    Using a different element avoids the issue. An alternative to this is adding `display: none`\\n    for a split second and then removing it when switching between modes, but it's hard to know\\n    for how long to hide the element and it can cause the UI to blink.\\n  -->\\n  <circle\\n    *ngSwitchCase=\\\"true\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.animation-name]=\\\"'mat-progress-spinner-stroke-rotate-' + _spinnerAnimationLabel\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n\\n  <circle\\n    *ngSwitchCase=\\\"false\\\"\\n    cx=\\\"50%\\\"\\n    cy=\\\"50%\\\"\\n    [attr.r]=\\\"_getCircleRadius()\\\"\\n    [style.stroke-dashoffset.px]=\\\"_getStrokeDashOffset()\\\"\\n    [style.stroke-dasharray.px]=\\\"_getStrokeCircumference()\\\"\\n    [style.stroke-width.%]=\\\"_getCircleStrokeWidth()\\\"></circle>\\n</svg>\\n\", styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.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}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 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}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\\n\"] }]\n        }], ctorParameters: function () {\n        return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: undefined, decorators: [{\n                        type: Optional\n                    }, {\n                        type: Inject,\n                        args: [DOCUMENT]\n                    }] }, { type: undefined, decorators: [{\n                        type: Optional\n                    }, {\n                        type: Inject,\n                        args: [ANIMATION_MODULE_TYPE]\n                    }] }, { type: undefined, decorators: [{\n                        type: Inject,\n                        args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n                    }] }];\n    } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatProgressSpinnerModule {\n}\nMatProgressSpinnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatProgressSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nMatProgressSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatProgressSpinnerModule, declarations: [MatProgressSpinner, MatSpinner], imports: [MatCommonModule, CommonModule], exports: [MatProgressSpinner, MatSpinner, MatCommonModule] });\nMatProgressSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatProgressSpinnerModule, imports: [[MatCommonModule, CommonModule], MatCommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: MatProgressSpinnerModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [MatCommonModule, CommonModule],\n                    exports: [MatProgressSpinner, MatSpinner, MatCommonModule],\n                    declarations: [MatProgressSpinner, MatSpinner],\n                }]\n        }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };\n"]},"metadata":{},"sourceType":"module"}