{"version":3,"file":"progress-bar.mjs","sources":["../../../../../../src/material/progress-bar/progress-bar.ts","../../../../../../src/material/progress-bar/progress-bar.html","../../../../../../src/material/progress-bar/progress-bar-module.ts","../../../../../../src/material/progress-bar/public-api.ts","../../../../../../src/material/progress-bar/index.ts","../../../../../../src/material/progress-bar/progress-bar_public_index.ts"],"sourcesContent":["/**\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 */\nimport {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  inject,\n  InjectionToken,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport {CanColor, mixinColor, ThemePalette} from '@angular/material/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {fromEvent, Observable, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\n// TODO(josephperrott): Benchpress tests.\n// TODO(josephperrott): Add ARIA attributes for progress bar \"for\".\n\n/** Last animation end data. */\nexport interface ProgressAnimationEnd {\n  value: number;\n}\n\n// Boilerplate for applying mixins to MatProgressBar.\n/** @docs-private */\nconst _MatProgressBarBase = mixinColor(\n  class {\n    constructor(public _elementRef: ElementRef) {}\n  },\n  'primary',\n);\n\n/**\n * Injection token used to provide the current location to `MatProgressBar`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nexport const MAT_PROGRESS_BAR_LOCATION = new InjectionToken<MatProgressBarLocation>(\n  'mat-progress-bar-location',\n  {providedIn: 'root', factory: MAT_PROGRESS_BAR_LOCATION_FACTORY},\n);\n\n/**\n * Stubbed out location for `MatProgressBar`.\n * @docs-private\n */\nexport interface MatProgressBarLocation {\n  getPathname: () => string;\n}\n\n/** @docs-private */\nexport function MAT_PROGRESS_BAR_LOCATION_FACTORY(): MatProgressBarLocation {\n  const _document = inject(DOCUMENT);\n  const _location = _document ? _document.location : null;\n\n  return {\n    // Note that this needs to be a function, rather than a property, because Angular\n    // will only resolve it once, but we want the current path on each call.\n    getPathname: () => (_location ? _location.pathname + _location.search : ''),\n  };\n}\n\nexport type ProgressBarMode = 'determinate' | 'indeterminate' | 'buffer' | 'query';\n\n/** Default `mat-progress-bar` options that can be overridden. */\nexport interface MatProgressBarDefaultOptions {\n  /** Default color of the progress bar. */\n  color?: ThemePalette;\n\n  /** Default mode of the progress bar. */\n  mode?: ProgressBarMode;\n}\n\n/** Injection token to be used to override the default options for `mat-progress-bar`. */\nexport const MAT_PROGRESS_BAR_DEFAULT_OPTIONS = new InjectionToken<MatProgressBarDefaultOptions>(\n  'MAT_PROGRESS_BAR_DEFAULT_OPTIONS',\n);\n\n/** Counter used to generate unique IDs for progress bars. */\nlet progressbarId = 0;\n\n/**\n * `<mat-progress-bar>` component.\n */\n@Component({\n  selector: 'mat-progress-bar',\n  exportAs: 'matProgressBar',\n  host: {\n    'role': 'progressbar',\n    'aria-valuemin': '0',\n    'aria-valuemax': '100',\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    '[attr.aria-valuenow]': '(mode === \"indeterminate\" || mode === \"query\") ? null : value',\n    '[attr.mode]': 'mode',\n    'class': 'mat-progress-bar',\n    '[class._mat-animation-noopable]': '_isNoopAnimation',\n  },\n  inputs: ['color'],\n  templateUrl: 'progress-bar.html',\n  styleUrls: ['progress-bar.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MatProgressBar\n  extends _MatProgressBarBase\n  implements CanColor, AfterViewInit, OnDestroy\n{\n  constructor(\n    elementRef: ElementRef,\n    private _ngZone: NgZone,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string,\n    /**\n     * @deprecated `location` parameter to be made required.\n     * @breaking-change 8.0.0\n     */\n    @Optional() @Inject(MAT_PROGRESS_BAR_LOCATION) location?: MatProgressBarLocation,\n    @Optional()\n    @Inject(MAT_PROGRESS_BAR_DEFAULT_OPTIONS)\n    defaults?: MatProgressBarDefaultOptions,\n    /**\n     * @deprecated `_changeDetectorRef` parameter to be made required.\n     * @breaking-change 11.0.0\n     */\n    private _changeDetectorRef?: ChangeDetectorRef,\n  ) {\n    super(elementRef);\n\n    // We need to prefix the SVG reference with the current path, otherwise they won't work\n    // in Safari if the page has a `<base>` tag. Note that we need quotes inside the `url()`,\n    // because named route URLs can contain parentheses (see #12338). Also we don't use `Location`\n    // since we can't tell the difference between whether the consumer is using the hash location\n    // strategy or not, because `Location` normalizes both `/#/foo/bar` and `/foo/bar` to\n    // the same thing.\n    const path = location ? location.getPathname().split('#')[0] : '';\n    this._rectangleFillValue = `url('${path}#${this.progressbarId}')`;\n    this._isNoopAnimation = _animationMode === 'NoopAnimations';\n\n    if (defaults) {\n      if (defaults.color) {\n        this.color = this.defaultColor = defaults.color;\n      }\n\n      this.mode = defaults.mode || this.mode;\n    }\n  }\n\n  /** Flag that indicates whether NoopAnimations mode is set to true. */\n  _isNoopAnimation = false;\n\n  /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n  @Input()\n  get value(): number {\n    return this._value;\n  }\n  set value(v: NumberInput) {\n    this._value = clamp(coerceNumberProperty(v) || 0);\n\n    // @breaking-change 11.0.0 Remove null check for _changeDetectorRef.\n    this._changeDetectorRef?.markForCheck();\n  }\n  private _value: number = 0;\n\n  /** Buffer value of the progress bar. Defaults to zero. */\n  @Input()\n  get bufferValue(): number {\n    return this._bufferValue;\n  }\n  set bufferValue(v: number) {\n    this._bufferValue = clamp(v || 0);\n\n    // @breaking-change 11.0.0 Remove null check for _changeDetectorRef.\n    this._changeDetectorRef?.markForCheck();\n  }\n  private _bufferValue: number = 0;\n\n  @ViewChild('primaryValueBar') _primaryValueBar: ElementRef;\n\n  /**\n   * Event emitted when animation of the primary progress bar completes. This event will not\n   * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n   * animations (indeterminate and query).\n   */\n  @Output() readonly animationEnd = new EventEmitter<ProgressAnimationEnd>();\n\n  /** Reference to animation end subscription to be unsubscribed on destroy. */\n  private _animationEndSubscription: Subscription = Subscription.EMPTY;\n\n  /**\n   * Mode of the progress bar.\n   *\n   * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n   * 'determinate'.\n   * Mirrored to mode attribute.\n   */\n  @Input() mode: ProgressBarMode = 'determinate';\n\n  /** ID of the progress bar. */\n  progressbarId = `mat-progress-bar-${progressbarId++}`;\n\n  /** Attribute to be used for the `fill` attribute on the internal `rect` element. */\n  _rectangleFillValue: string;\n\n  /** Gets the current transform value for the progress bar's primary indicator. */\n  _primaryTransform() {\n    // We use a 3d transform to work around some rendering issues in iOS Safari. See #19328.\n    const scale = this.value / 100;\n    return {transform: `scale3d(${scale}, 1, 1)`};\n  }\n\n  /**\n   * Gets the current transform value for the progress bar's buffer indicator. Only used if the\n   * progress mode is set to buffer, otherwise returns an undefined, causing no transformation.\n   */\n  _bufferTransform() {\n    if (this.mode === 'buffer') {\n      // We use a 3d transform to work around some rendering issues in iOS Safari. See #19328.\n      const scale = this.bufferValue / 100;\n      return {transform: `scale3d(${scale}, 1, 1)`};\n    }\n    return null;\n  }\n\n  ngAfterViewInit() {\n    // Run outside angular so change detection didn't get triggered on every transition end\n    // instead only on the animation that we care about (primary value bar's transitionend)\n    this._ngZone.runOutsideAngular(() => {\n      const element = this._primaryValueBar.nativeElement;\n\n      this._animationEndSubscription = (\n        fromEvent(element, 'transitionend') as Observable<TransitionEvent>\n      )\n        .pipe(filter((e: TransitionEvent) => e.target === element))\n        .subscribe(() => {\n          if (this.animationEnd.observers.length === 0) {\n            return;\n          }\n\n          if (this.mode === 'determinate' || this.mode === 'buffer') {\n            this._ngZone.run(() => this.animationEnd.next({value: this.value}));\n          }\n        });\n    });\n  }\n\n  ngOnDestroy() {\n    this._animationEndSubscription.unsubscribe();\n  }\n}\n\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v: number, min = 0, max = 100) {\n  return Math.max(min, Math.min(max, v));\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<div aria-hidden=\"true\">\n  <svg width=\"100%\" height=\"4\" focusable=\"false\" class=\"mat-progress-bar-background mat-progress-bar-element\">\n    <defs>\n      <pattern [id]=\"progressbarId\" x=\"4\" y=\"0\" width=\"8\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n        <circle cx=\"2\" cy=\"2\" r=\"2\"/>\n      </pattern>\n    </defs>\n    <rect [attr.fill]=\"_rectangleFillValue\" width=\"100%\" height=\"100%\"/>\n  </svg>\n  <!--\n    The background div is named as such because it appears below the other divs and is not sized based\n    on values.\n  -->\n  <div class=\"mat-progress-bar-buffer mat-progress-bar-element\" [ngStyle]=\"_bufferTransform()\"></div>\n  <div class=\"mat-progress-bar-primary mat-progress-bar-fill mat-progress-bar-element\" [ngStyle]=\"_primaryTransform()\" #primaryValueBar></div>\n  <div class=\"mat-progress-bar-secondary mat-progress-bar-fill mat-progress-bar-element\"></div>\n</div>\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatProgressBar} from './progress-bar';\n\n@NgModule({\n  imports: [CommonModule, MatCommonModule],\n  exports: [MatProgressBar, MatCommonModule],\n  declarations: [MatProgressBar],\n})\nexport class MatProgressBarModule {}\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\nexport * from './progress-bar-module';\nexport * from './progress-bar';\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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}