{"ast":null,"code":"import * as i2$1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, ViewChild, Optional, ViewChildren, ContentChild, ContentChildren, forwardRef, EventEmitter, Directive, Output, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { MatRipple, mixinColor, mixinDisableRipple, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { take } from 'rxjs/operators';\nimport * as i3 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\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 * Injection token that can be used for a `MatSlider` to provide itself as a\n * parent to the `MatSliderThumb` and `MatSliderRangeThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst _c0 = [\"knob\"];\nconst _c1 = [\"valueIndicatorContainer\"];\nfunction MatSliderVisualThumb_div_0_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 5, 1)(2, \"div\", 6)(3, \"span\", 7);\n    i0.ɵɵtext(4);\n    i0.ɵɵelementEnd()()();\n  }\n  if (rf & 2) {\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵadvance(4);\n    i0.ɵɵtextInterpolate(ctx_r0.valueIndicatorText);\n  }\n}\nconst _c2 = [\"trackActive\"];\nconst _c3 = [\"*\"];\nfunction MatSlider_div_6_ng_container_2_div_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"div\");\n  }\n  if (rf & 2) {\n    const tickMark_r1 = ctx.$implicit;\n    const i_r2 = ctx.index;\n    const ctx_r2 = i0.ɵɵnextContext(3);\n    i0.ɵɵclassMap(tickMark_r1 === 0 ? \"mdc-slider__tick-mark--active\" : \"mdc-slider__tick-mark--inactive\");\n    i0.ɵɵstyleProp(\"transform\", ctx_r2._calcTickMarkTransform(i_r2));\n  }\n}\nfunction MatSlider_div_6_ng_container_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainerStart(0);\n    i0.ɵɵtemplate(1, MatSlider_div_6_ng_container_2_div_1_Template, 1, 4, \"div\", 11);\n    i0.ɵɵelementContainerEnd();\n  }\n  if (rf & 2) {\n    const ctx_r2 = i0.ɵɵnextContext(2);\n    i0.ɵɵadvance();\n    i0.ɵɵproperty(\"ngForOf\", ctx_r2._tickMarks);\n  }\n}\nfunction MatSlider_div_6_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 9, 1);\n    i0.ɵɵtemplate(2, MatSlider_div_6_ng_container_2_Template, 2, 1, \"ng-container\", 10);\n    i0.ɵɵelementEnd();\n  }\n  if (rf & 2) {\n    const ctx_r2 = i0.ɵɵnextContext();\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"ngIf\", ctx_r2._cachedWidth);\n  }\n}\nfunction MatSlider_mat_slider_visual_thumb_7_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"mat-slider-visual-thumb\", 8);\n  }\n  if (rf & 2) {\n    const ctx_r2 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"discrete\", ctx_r2.discrete)(\"thumbPosition\", 1)(\"valueIndicatorText\", ctx_r2.startValueIndicatorText);\n  }\n}\nconst MAT_SLIDER = new InjectionToken('_MatSlider');\n/**\n * Injection token that can be used to query for a `MatSliderThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_THUMB = new InjectionToken('_MatSliderThumb');\n/**\n * Injection token that can be used to query for a `MatSliderRangeThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_RANGE_THUMB = new InjectionToken('_MatSliderRangeThumb');\n/**\n * Injection token that can be used to query for a `MatSliderVisualThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_VISUAL_THUMB = new InjectionToken('_MatSliderVisualThumb');\n/**\n * A simple change event emitted by the MatSlider component.\n * @deprecated Use event bindings directly on the MatSliderThumbs for `change` and `input` events. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatSliderChange {}\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 * The visual slider thumb.\n *\n * Handles the slider thumb ripple states (hover, focus, and active),\n * and displaying the value tooltip on discrete sliders.\n * @docs-private\n */\nclass MatSliderVisualThumb {\n  constructor(_cdr, _ngZone, _elementRef, _slider) {\n    this._cdr = _cdr;\n    this._ngZone = _ngZone;\n    this._slider = _slider;\n    /** Whether the slider thumb is currently being hovered. */\n    this._isHovered = false;\n    /** Whether the slider thumb is currently being pressed. */\n    this._isActive = false;\n    /** Whether the value indicator tooltip is visible. */\n    this._isValueIndicatorVisible = false;\n    this._onPointerMove = event => {\n      if (this._sliderInput._isFocused) {\n        return;\n      }\n      const rect = this._hostElement.getBoundingClientRect();\n      const isHovered = this._isSliderThumbHovered(event, rect);\n      this._isHovered = isHovered;\n      if (isHovered) {\n        this._showHoverRipple();\n      } else {\n        this._hideRipple(this._hoverRippleRef);\n      }\n    };\n    this._onMouseLeave = () => {\n      this._isHovered = false;\n      this._hideRipple(this._hoverRippleRef);\n    };\n    this._onFocus = () => {\n      // We don't want to show the hover ripple on top of the focus ripple.\n      // Happen when the users cursor is over a thumb and then the user tabs to it.\n      this._hideRipple(this._hoverRippleRef);\n      this._showFocusRipple();\n      this._hostElement.classList.add('mdc-slider__thumb--focused');\n    };\n    this._onBlur = () => {\n      // Happens when the user tabs away while still dragging a thumb.\n      if (!this._isActive) {\n        this._hideRipple(this._focusRippleRef);\n      }\n      // Happens when the user tabs away from a thumb but their cursor is still over it.\n      if (this._isHovered) {\n        this._showHoverRipple();\n      }\n      this._hostElement.classList.remove('mdc-slider__thumb--focused');\n    };\n    this._onDragStart = () => {\n      this._isActive = true;\n      this._showActiveRipple();\n    };\n    this._onDragEnd = () => {\n      this._isActive = false;\n      this._hideRipple(this._activeRippleRef);\n      // Happens when the user starts dragging a thumb, tabs away, and then stops dragging.\n      if (!this._sliderInput._isFocused) {\n        this._hideRipple(this._focusRippleRef);\n      }\n    };\n    this._hostElement = _elementRef.nativeElement;\n  }\n  ngAfterViewInit() {\n    this._ripple.radius = 24;\n    this._sliderInput = this._slider._getInput(this.thumbPosition);\n    this._sliderInputEl = this._sliderInput._hostElement;\n    const input = this._sliderInputEl;\n    // These listeners don't update any data bindings so we bind them outside\n    // of the NgZone to prevent Angular from needlessly running change detection.\n    this._ngZone.runOutsideAngular(() => {\n      input.addEventListener('pointermove', this._onPointerMove);\n      input.addEventListener('pointerdown', this._onDragStart);\n      input.addEventListener('pointerup', this._onDragEnd);\n      input.addEventListener('pointerleave', this._onMouseLeave);\n      input.addEventListener('focus', this._onFocus);\n      input.addEventListener('blur', this._onBlur);\n    });\n  }\n  ngOnDestroy() {\n    const input = this._sliderInputEl;\n    input.removeEventListener('pointermove', this._onPointerMove);\n    input.removeEventListener('pointerdown', this._onDragStart);\n    input.removeEventListener('pointerup', this._onDragEnd);\n    input.removeEventListener('pointerleave', this._onMouseLeave);\n    input.removeEventListener('focus', this._onFocus);\n    input.removeEventListener('blur', this._onBlur);\n  }\n  /** Handles displaying the hover ripple. */\n  _showHoverRipple() {\n    if (!this._isShowingRipple(this._hoverRippleRef)) {\n      this._hoverRippleRef = this._showRipple({\n        enterDuration: 0,\n        exitDuration: 0\n      });\n      this._hoverRippleRef?.element.classList.add('mat-mdc-slider-hover-ripple');\n    }\n  }\n  /** Handles displaying the focus ripple. */\n  _showFocusRipple() {\n    // Show the focus ripple event if noop animations are enabled.\n    if (!this._isShowingRipple(this._focusRippleRef)) {\n      this._focusRippleRef = this._showRipple({\n        enterDuration: 0,\n        exitDuration: 0\n      }, true);\n      this._focusRippleRef?.element.classList.add('mat-mdc-slider-focus-ripple');\n    }\n  }\n  /** Handles displaying the active ripple. */\n  _showActiveRipple() {\n    if (!this._isShowingRipple(this._activeRippleRef)) {\n      this._activeRippleRef = this._showRipple({\n        enterDuration: 225,\n        exitDuration: 400\n      });\n      this._activeRippleRef?.element.classList.add('mat-mdc-slider-active-ripple');\n    }\n  }\n  /** Whether the given rippleRef is currently fading in or visible. */\n  _isShowingRipple(rippleRef) {\n    return rippleRef?.state === 0 /* RippleState.FADING_IN */ || rippleRef?.state === 1 /* RippleState.VISIBLE */;\n  }\n  /** Manually launches the slider thumb ripple using the specified ripple animation config. */\n  _showRipple(animation, ignoreGlobalRippleConfig) {\n    if (this._slider.disabled) {\n      return;\n    }\n    this._showValueIndicator();\n    if (this._slider._isRange) {\n      const sibling = this._slider._getThumb(this.thumbPosition === 1 /* _MatThumb.START */ ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */);\n      sibling._showValueIndicator();\n    }\n    if (this._slider._globalRippleOptions?.disabled && !ignoreGlobalRippleConfig) {\n      return;\n    }\n    return this._ripple.launch({\n      animation: this._slider._noopAnimations ? {\n        enterDuration: 0,\n        exitDuration: 0\n      } : animation,\n      centered: true,\n      persistent: true\n    });\n  }\n  /**\n   * Fades out the given ripple.\n   * Also hides the value indicator if no ripple is showing.\n   */\n  _hideRipple(rippleRef) {\n    rippleRef?.fadeOut();\n    if (this._isShowingAnyRipple()) {\n      return;\n    }\n    if (!this._slider._isRange) {\n      this._hideValueIndicator();\n    }\n    const sibling = this._getSibling();\n    if (!sibling._isShowingAnyRipple()) {\n      this._hideValueIndicator();\n      sibling._hideValueIndicator();\n    }\n  }\n  /** Shows the value indicator ui. */\n  _showValueIndicator() {\n    this._hostElement.classList.add('mdc-slider__thumb--with-indicator');\n  }\n  /** Hides the value indicator ui. */\n  _hideValueIndicator() {\n    this._hostElement.classList.remove('mdc-slider__thumb--with-indicator');\n  }\n  _getSibling() {\n    return this._slider._getThumb(this.thumbPosition === 1 /* _MatThumb.START */ ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */);\n  }\n  /** Gets the value indicator container's native HTML element. */\n  _getValueIndicatorContainer() {\n    return this._valueIndicatorContainer?.nativeElement;\n  }\n  /** Gets the native HTML element of the slider thumb knob. */\n  _getKnob() {\n    return this._knob.nativeElement;\n  }\n  _isShowingAnyRipple() {\n    return this._isShowingRipple(this._hoverRippleRef) || this._isShowingRipple(this._focusRippleRef) || this._isShowingRipple(this._activeRippleRef);\n  }\n  _isSliderThumbHovered(event, rect) {\n    const radius = rect.width / 2;\n    const centerX = rect.x + radius;\n    const centerY = rect.y + radius;\n    const dx = event.clientX - centerX;\n    const dy = event.clientY - centerY;\n    return Math.pow(dx, 2) + Math.pow(dy, 2) < Math.pow(radius, 2);\n  }\n}\nMatSliderVisualThumb.ɵfac = function MatSliderVisualThumb_Factory(t) {\n  return new (t || MatSliderVisualThumb)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_SLIDER));\n};\nMatSliderVisualThumb.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatSliderVisualThumb,\n  selectors: [[\"mat-slider-visual-thumb\"]],\n  viewQuery: function MatSliderVisualThumb_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(MatRipple, 5);\n      i0.ɵɵviewQuery(_c0, 5);\n      i0.ɵɵviewQuery(_c1, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._ripple = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._knob = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._valueIndicatorContainer = _t.first);\n    }\n  },\n  hostAttrs: [1, \"mdc-slider__thumb\", \"mat-mdc-slider-visual-thumb\"],\n  inputs: {\n    discrete: \"discrete\",\n    thumbPosition: \"thumbPosition\",\n    valueIndicatorText: \"valueIndicatorText\"\n  },\n  features: [i0.ɵɵProvidersFeature([{\n    provide: MAT_SLIDER_VISUAL_THUMB,\n    useExisting: MatSliderVisualThumb\n  }])],\n  decls: 4,\n  vars: 2,\n  consts: [[\"knob\", \"\"], [\"valueIndicatorContainer\", \"\"], [\"class\", \"mdc-slider__value-indicator-container\", 4, \"ngIf\"], [1, \"mdc-slider__thumb-knob\"], [\"matRipple\", \"\", 1, \"mat-mdc-focus-indicator\", 3, \"matRippleDisabled\"], [1, \"mdc-slider__value-indicator-container\"], [1, \"mdc-slider__value-indicator\"], [1, \"mdc-slider__value-indicator-text\"]],\n  template: function MatSliderVisualThumb_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵtemplate(0, MatSliderVisualThumb_div_0_Template, 5, 1, \"div\", 2);\n      i0.ɵɵelement(1, \"div\", 3, 0)(3, \"div\", 4);\n    }\n    if (rf & 2) {\n      i0.ɵɵproperty(\"ngIf\", ctx.discrete);\n      i0.ɵɵadvance(3);\n      i0.ɵɵproperty(\"matRippleDisabled\", true);\n    }\n  },\n  dependencies: [i3.NgIf, i2.MatRipple],\n  styles: [\".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSliderVisualThumb, [{\n    type: Component,\n    args: [{\n      selector: 'mat-slider-visual-thumb',\n      host: {\n        'class': 'mdc-slider__thumb mat-mdc-slider-visual-thumb'\n      },\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      providers: [{\n        provide: MAT_SLIDER_VISUAL_THUMB,\n        useExisting: MatSliderVisualThumb\n      }],\n      template: \"<div class=\\\"mdc-slider__value-indicator-container\\\" *ngIf=\\\"discrete\\\" #valueIndicatorContainer>\\n  <div class=\\\"mdc-slider__value-indicator\\\">\\n    <span class=\\\"mdc-slider__value-indicator-text\\\">{{valueIndicatorText}}</span>\\n  </div>\\n</div>\\n<div class=\\\"mdc-slider__thumb-knob\\\" #knob></div>\\n<div matRipple class=\\\"mat-mdc-focus-indicator\\\" [matRippleDisabled]=\\\"true\\\"></div>\\n\",\n      styles: [\".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i0.ElementRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_SLIDER]\n      }]\n    }];\n  }, {\n    discrete: [{\n      type: Input\n    }],\n    thumbPosition: [{\n      type: Input\n    }],\n    valueIndicatorText: [{\n      type: Input\n    }],\n    _ripple: [{\n      type: ViewChild,\n      args: [MatRipple]\n    }],\n    _knob: [{\n      type: ViewChild,\n      args: ['knob']\n    }],\n    _valueIndicatorContainer: [{\n      type: ViewChild,\n      args: ['valueIndicatorContainer']\n    }]\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// TODO(wagnermaciel): maybe handle the following edge case:\n// 1. start dragging discrete slider\n// 2. tab to disable checkbox\n// 3. without ending drag, disable the slider\n// Boilerplate for applying mixins to MatSlider.\nconst _MatSliderMixinBase = mixinColor(mixinDisableRipple(class {\n  constructor(_elementRef) {\n    this._elementRef = _elementRef;\n  }\n}), 'primary');\n/**\n * Allows users to select from a range of values by moving the slider thumb. It is similar in\n * behavior to the native `<input type=\"range\">` element.\n */\nclass MatSlider extends _MatSliderMixinBase {\n  /** Whether the slider is disabled. */\n  get disabled() {\n    return this._disabled;\n  }\n  set disabled(v) {\n    this._disabled = coerceBooleanProperty(v);\n    const endInput = this._getInput(2 /* _MatThumb.END */);\n    const startInput = this._getInput(1 /* _MatThumb.START */);\n    if (endInput) {\n      endInput.disabled = this._disabled;\n    }\n    if (startInput) {\n      startInput.disabled = this._disabled;\n    }\n  }\n  /** Whether the slider displays a numeric value label upon pressing the thumb. */\n  get discrete() {\n    return this._discrete;\n  }\n  set discrete(v) {\n    this._discrete = coerceBooleanProperty(v);\n    this._updateValueIndicatorUIs();\n  }\n  /** Whether the slider displays tick marks along the slider track. */\n  get showTickMarks() {\n    return this._showTickMarks;\n  }\n  set showTickMarks(v) {\n    this._showTickMarks = coerceBooleanProperty(v);\n  }\n  /** The minimum value that the slider can have. */\n  get min() {\n    return this._min;\n  }\n  set min(v) {\n    const min = coerceNumberProperty(v, this._min);\n    if (this._min !== min) {\n      this._updateMin(min);\n    }\n  }\n  _updateMin(min) {\n    const prevMin = this._min;\n    this._min = min;\n    this._isRange ? this._updateMinRange({\n      old: prevMin,\n      new: min\n    }) : this._updateMinNonRange(min);\n    this._onMinMaxOrStepChange();\n  }\n  _updateMinRange(min) {\n    const endInput = this._getInput(2 /* _MatThumb.END */);\n    const startInput = this._getInput(1 /* _MatThumb.START */);\n    const oldEndValue = endInput.value;\n    const oldStartValue = startInput.value;\n    startInput.min = min.new;\n    endInput.min = Math.max(min.new, startInput.value);\n    startInput.max = Math.min(endInput.max, endInput.value);\n    startInput._updateWidthInactive();\n    endInput._updateWidthInactive();\n    min.new < min.old ? this._onTranslateXChangeBySideEffect(endInput, startInput) : this._onTranslateXChangeBySideEffect(startInput, endInput);\n    if (oldEndValue !== endInput.value) {\n      this._onValueChange(endInput);\n    }\n    if (oldStartValue !== startInput.value) {\n      this._onValueChange(startInput);\n    }\n  }\n  _updateMinNonRange(min) {\n    const input = this._getInput(2 /* _MatThumb.END */);\n    if (input) {\n      const oldValue = input.value;\n      input.min = min;\n      input._updateThumbUIByValue();\n      this._updateTrackUI(input);\n      if (oldValue !== input.value) {\n        this._onValueChange(input);\n      }\n    }\n  }\n  /** The maximum value that the slider can have. */\n  get max() {\n    return this._max;\n  }\n  set max(v) {\n    const max = coerceNumberProperty(v, this._max);\n    if (this._max !== max) {\n      this._updateMax(max);\n    }\n  }\n  _updateMax(max) {\n    const prevMax = this._max;\n    this._max = max;\n    this._isRange ? this._updateMaxRange({\n      old: prevMax,\n      new: max\n    }) : this._updateMaxNonRange(max);\n    this._onMinMaxOrStepChange();\n  }\n  _updateMaxRange(max) {\n    const endInput = this._getInput(2 /* _MatThumb.END */);\n    const startInput = this._getInput(1 /* _MatThumb.START */);\n    const oldEndValue = endInput.value;\n    const oldStartValue = startInput.value;\n    endInput.max = max.new;\n    startInput.max = Math.min(max.new, endInput.value);\n    endInput.min = startInput.value;\n    endInput._updateWidthInactive();\n    startInput._updateWidthInactive();\n    max.new > max.old ? this._onTranslateXChangeBySideEffect(startInput, endInput) : this._onTranslateXChangeBySideEffect(endInput, startInput);\n    if (oldEndValue !== endInput.value) {\n      this._onValueChange(endInput);\n    }\n    if (oldStartValue !== startInput.value) {\n      this._onValueChange(startInput);\n    }\n  }\n  _updateMaxNonRange(max) {\n    const input = this._getInput(2 /* _MatThumb.END */);\n    if (input) {\n      const oldValue = input.value;\n      input.max = max;\n      input._updateThumbUIByValue();\n      this._updateTrackUI(input);\n      if (oldValue !== input.value) {\n        this._onValueChange(input);\n      }\n    }\n  }\n  /** The values at which the thumb will snap. */\n  get step() {\n    return this._step;\n  }\n  set step(v) {\n    const step = coerceNumberProperty(v, this._step);\n    if (this._step !== step) {\n      this._updateStep(step);\n    }\n  }\n  _updateStep(step) {\n    this._step = step;\n    this._isRange ? this._updateStepRange() : this._updateStepNonRange();\n    this._onMinMaxOrStepChange();\n  }\n  _updateStepRange() {\n    const endInput = this._getInput(2 /* _MatThumb.END */);\n    const startInput = this._getInput(1 /* _MatThumb.START */);\n    const oldEndValue = endInput.value;\n    const oldStartValue = startInput.value;\n    const prevStartValue = startInput.value;\n    endInput.min = this._min;\n    startInput.max = this._max;\n    endInput.step = this._step;\n    startInput.step = this._step;\n    if (this._platform.SAFARI) {\n      endInput.value = endInput.value;\n      startInput.value = startInput.value;\n    }\n    endInput.min = Math.max(this._min, startInput.value);\n    startInput.max = Math.min(this._max, endInput.value);\n    startInput._updateWidthInactive();\n    endInput._updateWidthInactive();\n    endInput.value < prevStartValue ? this._onTranslateXChangeBySideEffect(startInput, endInput) : this._onTranslateXChangeBySideEffect(endInput, startInput);\n    if (oldEndValue !== endInput.value) {\n      this._onValueChange(endInput);\n    }\n    if (oldStartValue !== startInput.value) {\n      this._onValueChange(startInput);\n    }\n  }\n  _updateStepNonRange() {\n    const input = this._getInput(2 /* _MatThumb.END */);\n    if (input) {\n      const oldValue = input.value;\n      input.step = this._step;\n      if (this._platform.SAFARI) {\n        input.value = input.value;\n      }\n      input._updateThumbUIByValue();\n      if (oldValue !== input.value) {\n        this._onValueChange(input);\n      }\n    }\n  }\n  constructor(_ngZone, _cdr, _platform, elementRef, _dir, _globalRippleOptions, animationMode) {\n    super(elementRef);\n    this._ngZone = _ngZone;\n    this._cdr = _cdr;\n    this._platform = _platform;\n    this._dir = _dir;\n    this._globalRippleOptions = _globalRippleOptions;\n    this._disabled = false;\n    this._discrete = false;\n    this._showTickMarks = false;\n    this._min = 0;\n    this._max = 100;\n    this._step = 0;\n    /**\n     * Function that will be used to format the value before it is displayed\n     * in the thumb label. Can be used to format very large number in order\n     * for them to fit into the slider thumb.\n     */\n    this.displayWith = value => `${value}`;\n    this._rippleRadius = 24;\n    // The value indicator tooltip text for the visual slider thumb(s).\n    /** @docs-private */\n    this.startValueIndicatorText = '';\n    /** @docs-private */\n    this.endValueIndicatorText = '';\n    this._isRange = false;\n    /** Whether the slider is rtl. */\n    this._isRtl = false;\n    this._hasViewInitialized = false;\n    /**\n     * The width of the tick mark track.\n     * The tick mark track width is different from full track width\n     */\n    this._tickMarkTrackWidth = 0;\n    this._hasAnimation = false;\n    this._resizeTimer = null;\n    /** The radius of the native slider's knob. AFAIK there is no way to avoid hardcoding this. */\n    this._knobRadius = 8;\n    /** Whether or not the slider thumbs overlap. */\n    this._thumbsOverlap = false;\n    this._noopAnimations = animationMode === 'NoopAnimations';\n    this._dirChangeSubscription = this._dir.change.subscribe(() => this._onDirChange());\n    this._isRtl = this._dir.value === 'rtl';\n  }\n  ngAfterViewInit() {\n    if (this._platform.isBrowser) {\n      this._updateDimensions();\n    }\n    const eInput = this._getInput(2 /* _MatThumb.END */);\n    const sInput = this._getInput(1 /* _MatThumb.START */);\n    this._isRange = !!eInput && !!sInput;\n    this._cdr.detectChanges();\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      _validateInputs(this._isRange, this._getInput(2 /* _MatThumb.END */), this._getInput(1 /* _MatThumb.START */));\n    }\n    const thumb = this._getThumb(2 /* _MatThumb.END */);\n    this._rippleRadius = thumb._ripple.radius;\n    this._inputPadding = this._rippleRadius - this._knobRadius;\n    this._inputOffset = this._knobRadius;\n    this._isRange ? this._initUIRange(eInput, sInput) : this._initUINonRange(eInput);\n    this._updateTrackUI(eInput);\n    this._updateTickMarkUI();\n    this._updateTickMarkTrackUI();\n    this._observeHostResize();\n    this._cdr.detectChanges();\n  }\n  _initUINonRange(eInput) {\n    eInput.initProps();\n    eInput.initUI();\n    this._updateValueIndicatorUI(eInput);\n    this._hasViewInitialized = true;\n    eInput._updateThumbUIByValue();\n  }\n  _initUIRange(eInput, sInput) {\n    eInput.initProps();\n    eInput.initUI();\n    sInput.initProps();\n    sInput.initUI();\n    eInput._updateMinMax();\n    sInput._updateMinMax();\n    eInput._updateStaticStyles();\n    sInput._updateStaticStyles();\n    this._updateValueIndicatorUIs();\n    this._hasViewInitialized = true;\n    eInput._updateThumbUIByValue();\n    sInput._updateThumbUIByValue();\n  }\n  ngOnDestroy() {\n    this._dirChangeSubscription.unsubscribe();\n    this._resizeObserver?.disconnect();\n    this._resizeObserver = null;\n  }\n  /** Handles updating the slider ui after a dir change. */\n  _onDirChange() {\n    this._isRtl = this._dir.value === 'rtl';\n    this._isRange ? this._onDirChangeRange() : this._onDirChangeNonRange();\n    this._updateTickMarkUI();\n  }\n  _onDirChangeRange() {\n    const endInput = this._getInput(2 /* _MatThumb.END */);\n    const startInput = this._getInput(1 /* _MatThumb.START */);\n    endInput._setIsLeftThumb();\n    startInput._setIsLeftThumb();\n    endInput.translateX = endInput._calcTranslateXByValue();\n    startInput.translateX = startInput._calcTranslateXByValue();\n    endInput._updateStaticStyles();\n    startInput._updateStaticStyles();\n    endInput._updateWidthInactive();\n    startInput._updateWidthInactive();\n    endInput._updateThumbUIByValue();\n    startInput._updateThumbUIByValue();\n  }\n  _onDirChangeNonRange() {\n    const input = this._getInput(2 /* _MatThumb.END */);\n    input._updateThumbUIByValue();\n  }\n  /** Starts observing and updating the slider if the host changes its size. */\n  _observeHostResize() {\n    if (typeof ResizeObserver === 'undefined' || !ResizeObserver) {\n      return;\n    }\n    this._ngZone.runOutsideAngular(() => {\n      this._resizeObserver = new ResizeObserver(() => {\n        if (this._isActive()) {\n          return;\n        }\n        if (this._resizeTimer) {\n          clearTimeout(this._resizeTimer);\n        }\n        this._onResize();\n      });\n      this._resizeObserver.observe(this._elementRef.nativeElement);\n    });\n  }\n  /** Whether any of the thumbs are currently active. */\n  _isActive() {\n    return this._getThumb(1 /* _MatThumb.START */)._isActive || this._getThumb(2 /* _MatThumb.END */)._isActive;\n  }\n  _getValue(thumbPosition = 2 /* _MatThumb.END */) {\n    const input = this._getInput(thumbPosition);\n    if (!input) {\n      return this.min;\n    }\n    return input.value;\n  }\n  _skipUpdate() {\n    return !!(this._getInput(1 /* _MatThumb.START */)?._skipUIUpdate || this._getInput(2 /* _MatThumb.END */)?._skipUIUpdate);\n  }\n  /** Stores the slider dimensions. */\n  _updateDimensions() {\n    this._cachedWidth = this._elementRef.nativeElement.offsetWidth;\n    this._cachedLeft = this._elementRef.nativeElement.getBoundingClientRect().left;\n  }\n  /** Sets the styles for the active portion of the track. */\n  _setTrackActiveStyles(styles) {\n    const trackStyle = this._trackActive.nativeElement.style;\n    const animationOriginChanged = styles.left !== trackStyle.left && styles.right !== trackStyle.right;\n    trackStyle.left = styles.left;\n    trackStyle.right = styles.right;\n    trackStyle.transformOrigin = styles.transformOrigin;\n    if (animationOriginChanged) {\n      this._elementRef.nativeElement.classList.add('mat-mdc-slider-disable-track-animation');\n      this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n        this._elementRef.nativeElement.classList.remove('mat-mdc-slider-disable-track-animation');\n        trackStyle.transform = styles.transform;\n      });\n    } else {\n      trackStyle.transform = styles.transform;\n    }\n  }\n  /** Returns the translateX positioning for a tick mark based on it's index. */\n  _calcTickMarkTransform(index) {\n    // TODO(wagnermaciel): See if we can avoid doing this and just using flex to position these.\n    const translateX = index * (this._tickMarkTrackWidth / (this._tickMarks.length - 1));\n    return `translateX(${translateX}px`;\n  }\n  // Handlers for updating the slider ui.\n  _onTranslateXChange(source) {\n    if (!this._hasViewInitialized) {\n      return;\n    }\n    this._updateThumbUI(source);\n    this._updateTrackUI(source);\n    this._updateOverlappingThumbUI(source);\n  }\n  _onTranslateXChangeBySideEffect(input1, input2) {\n    if (!this._hasViewInitialized) {\n      return;\n    }\n    input1._updateThumbUIByValue();\n    input2._updateThumbUIByValue();\n  }\n  _onValueChange(source) {\n    if (!this._hasViewInitialized) {\n      return;\n    }\n    this._updateValueIndicatorUI(source);\n    this._updateTickMarkUI();\n    this._cdr.detectChanges();\n  }\n  _onMinMaxOrStepChange() {\n    if (!this._hasViewInitialized) {\n      return;\n    }\n    this._updateTickMarkUI();\n    this._updateTickMarkTrackUI();\n    this._cdr.markForCheck();\n  }\n  _onResize() {\n    if (!this._hasViewInitialized) {\n      return;\n    }\n    this._updateDimensions();\n    if (this._isRange) {\n      const eInput = this._getInput(2 /* _MatThumb.END */);\n      const sInput = this._getInput(1 /* _MatThumb.START */);\n      eInput._updateThumbUIByValue();\n      sInput._updateThumbUIByValue();\n      eInput._updateStaticStyles();\n      sInput._updateStaticStyles();\n      eInput._updateMinMax();\n      sInput._updateMinMax();\n      eInput._updateWidthInactive();\n      sInput._updateWidthInactive();\n    } else {\n      const eInput = this._getInput(2 /* _MatThumb.END */);\n      if (eInput) {\n        eInput._updateThumbUIByValue();\n      }\n    }\n    this._updateTickMarkUI();\n    this._updateTickMarkTrackUI();\n    this._cdr.detectChanges();\n  }\n  /** Returns true if the slider knobs are overlapping one another. */\n  _areThumbsOverlapping() {\n    const startInput = this._getInput(1 /* _MatThumb.START */);\n    const endInput = this._getInput(2 /* _MatThumb.END */);\n    if (!startInput || !endInput) {\n      return false;\n    }\n    return endInput.translateX - startInput.translateX < 20;\n  }\n  /**\n   * Updates the class names of overlapping slider thumbs so\n   * that the current active thumb is styled to be on \"top\".\n   */\n  _updateOverlappingThumbClassNames(source) {\n    const sibling = source.getSibling();\n    const sourceThumb = this._getThumb(source.thumbPosition);\n    const siblingThumb = this._getThumb(sibling.thumbPosition);\n    siblingThumb._hostElement.classList.remove('mdc-slider__thumb--top');\n    sourceThumb._hostElement.classList.toggle('mdc-slider__thumb--top', this._thumbsOverlap);\n  }\n  /** Updates the UI of slider thumbs when they begin or stop overlapping. */\n  _updateOverlappingThumbUI(source) {\n    if (!this._isRange || this._skipUpdate()) {\n      return;\n    }\n    if (this._thumbsOverlap !== this._areThumbsOverlapping()) {\n      this._thumbsOverlap = !this._thumbsOverlap;\n      this._updateOverlappingThumbClassNames(source);\n    }\n  }\n  // _MatThumb styles update conditions\n  //\n  // 1. TranslateX, resize, or dir change\n  //    - Reason: The thumb styles need to be updated according to the new translateX.\n  // 2. Min, max, or step\n  //    - Reason: The value may have silently changed.\n  /** Updates the translateX of the given thumb. */\n  _updateThumbUI(source) {\n    if (this._skipUpdate()) {\n      return;\n    }\n    const thumb = this._getThumb(source.thumbPosition === 2 /* _MatThumb.END */ ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */);\n    thumb._hostElement.style.transform = `translateX(${source.translateX}px)`;\n  }\n  // Value indicator text update conditions\n  //\n  // 1. Value\n  //    - Reason: The value displayed needs to be updated.\n  // 2. Min, max, or step\n  //    - Reason: The value may have silently changed.\n  /** Updates the value indicator tooltip ui for the given thumb. */\n  _updateValueIndicatorUI(source) {\n    if (this._skipUpdate()) {\n      return;\n    }\n    const valuetext = this.displayWith(source.value);\n    this._hasViewInitialized ? source._valuetext = valuetext : source._hostElement.setAttribute('aria-valuetext', valuetext);\n    if (this.discrete) {\n      source.thumbPosition === 1 /* _MatThumb.START */ ? this.startValueIndicatorText = valuetext : this.endValueIndicatorText = valuetext;\n      const visualThumb = this._getThumb(source.thumbPosition);\n      valuetext.length < 3 ? visualThumb._hostElement.classList.add('mdc-slider__thumb--short-value') : visualThumb._hostElement.classList.remove('mdc-slider__thumb--short-value');\n    }\n  }\n  /** Updates all value indicator UIs in the slider. */\n  _updateValueIndicatorUIs() {\n    const eInput = this._getInput(2 /* _MatThumb.END */);\n    const sInput = this._getInput(1 /* _MatThumb.START */);\n    if (eInput) {\n      this._updateValueIndicatorUI(eInput);\n    }\n    if (sInput) {\n      this._updateValueIndicatorUI(sInput);\n    }\n  }\n  // Update Tick Mark Track Width\n  //\n  // 1. Min, max, or step\n  //    - Reason: The maximum reachable value may have changed.\n  //    - Side note: The maximum reachable value is different from the maximum value set by the\n  //      user. For example, a slider with [min: 5, max: 100, step: 10] would have a maximum\n  //      reachable value of 95.\n  // 2. Resize\n  //    - Reason: The position for the maximum reachable value needs to be recalculated.\n  /** Updates the width of the tick mark track. */\n  _updateTickMarkTrackUI() {\n    if (!this.showTickMarks || this._skipUpdate()) {\n      return;\n    }\n    const step = this._step && this._step > 0 ? this._step : 1;\n    const maxValue = Math.floor(this.max / step) * step;\n    const percentage = (maxValue - this.min) / (this.max - this.min);\n    this._tickMarkTrackWidth = this._cachedWidth * percentage - 6;\n  }\n  // Track active update conditions\n  //\n  // 1. TranslateX\n  //    - Reason: The track active should line up with the new thumb position.\n  // 2. Min or max\n  //    - Reason #1: The 'active' percentage needs to be recalculated.\n  //    - Reason #2: The value may have silently changed.\n  // 3. Step\n  //    - Reason: The value may have silently changed causing the thumb(s) to shift.\n  // 4. Dir change\n  //    - Reason: The track active will need to be updated according to the new thumb position(s).\n  // 5. Resize\n  //    - Reason: The total width the 'active' tracks translateX is based on has changed.\n  /** Updates the scale on the active portion of the track. */\n  _updateTrackUI(source) {\n    if (this._skipUpdate()) {\n      return;\n    }\n    this._isRange ? this._updateTrackUIRange(source) : this._updateTrackUINonRange(source);\n  }\n  _updateTrackUIRange(source) {\n    const sibling = source.getSibling();\n    if (!sibling || !this._cachedWidth) {\n      return;\n    }\n    const activePercentage = Math.abs(sibling.translateX - source.translateX) / this._cachedWidth;\n    if (source._isLeftThumb && this._cachedWidth) {\n      this._setTrackActiveStyles({\n        left: 'auto',\n        right: `${this._cachedWidth - sibling.translateX}px`,\n        transformOrigin: 'right',\n        transform: `scaleX(${activePercentage})`\n      });\n    } else {\n      this._setTrackActiveStyles({\n        left: `${sibling.translateX}px`,\n        right: 'auto',\n        transformOrigin: 'left',\n        transform: `scaleX(${activePercentage})`\n      });\n    }\n  }\n  _updateTrackUINonRange(source) {\n    this._isRtl ? this._setTrackActiveStyles({\n      left: 'auto',\n      right: '0px',\n      transformOrigin: 'right',\n      transform: `scaleX(${1 - source.fillPercentage})`\n    }) : this._setTrackActiveStyles({\n      left: '0px',\n      right: 'auto',\n      transformOrigin: 'left',\n      transform: `scaleX(${source.fillPercentage})`\n    });\n  }\n  // Tick mark update conditions\n  //\n  // 1. Value\n  //    - Reason: a tick mark which was once active might now be inactive or vice versa.\n  // 2. Min, max, or step\n  //    - Reason #1: the number of tick marks may have changed.\n  //    - Reason #2: The value may have silently changed.\n  /** Updates the dots along the slider track. */\n  _updateTickMarkUI() {\n    if (!this.showTickMarks || this.step === undefined || this.min === undefined || this.max === undefined) {\n      return;\n    }\n    const step = this.step > 0 ? this.step : 1;\n    this._isRange ? this._updateTickMarkUIRange(step) : this._updateTickMarkUINonRange(step);\n    if (this._isRtl) {\n      this._tickMarks.reverse();\n    }\n  }\n  _updateTickMarkUINonRange(step) {\n    const value = this._getValue();\n    let numActive = Math.max(Math.round((value - this.min) / step), 0);\n    let numInactive = Math.max(Math.round((this.max - value) / step), 0);\n    this._isRtl ? numActive++ : numInactive++;\n    this._tickMarks = Array(numActive).fill(0 /* _MatTickMark.ACTIVE */).concat(Array(numInactive).fill(1 /* _MatTickMark.INACTIVE */));\n  }\n  _updateTickMarkUIRange(step) {\n    const endValue = this._getValue();\n    const startValue = this._getValue(1 /* _MatThumb.START */);\n    const numInactiveBeforeStartThumb = Math.max(Math.floor((startValue - this.min) / step), 0);\n    const numActive = Math.max(Math.floor((endValue - startValue) / step) + 1, 0);\n    const numInactiveAfterEndThumb = Math.max(Math.floor((this.max - endValue) / step), 0);\n    this._tickMarks = Array(numInactiveBeforeStartThumb).fill(1 /* _MatTickMark.INACTIVE */).concat(Array(numActive).fill(0 /* _MatTickMark.ACTIVE */), Array(numInactiveAfterEndThumb).fill(1 /* _MatTickMark.INACTIVE */));\n  }\n  /** Gets the slider thumb input of the given thumb position. */\n  _getInput(thumbPosition) {\n    if (thumbPosition === 2 /* _MatThumb.END */ && this._input) {\n      return this._input;\n    }\n    if (this._inputs?.length) {\n      return thumbPosition === 1 /* _MatThumb.START */ ? this._inputs.first : this._inputs.last;\n    }\n    return;\n  }\n  /** Gets the slider thumb HTML input element of the given thumb position. */\n  _getThumb(thumbPosition) {\n    return thumbPosition === 2 /* _MatThumb.END */ ? this._thumbs?.last : this._thumbs?.first;\n  }\n  _setTransition(withAnimation) {\n    this._hasAnimation = withAnimation && !this._noopAnimations;\n    this._elementRef.nativeElement.classList.toggle('mat-mdc-slider-with-animation', this._hasAnimation);\n  }\n}\nMatSlider.ɵfac = function MatSlider_Factory(t) {\n  return new (t || MatSlider)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2$1.Directionality, 8), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\nMatSlider.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatSlider,\n  selectors: [[\"mat-slider\"]],\n  contentQueries: function MatSlider_ContentQueries(rf, ctx, dirIndex) {\n    if (rf & 1) {\n      i0.ɵɵcontentQuery(dirIndex, MAT_SLIDER_THUMB, 5);\n      i0.ɵɵcontentQuery(dirIndex, MAT_SLIDER_RANGE_THUMB, 4);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._input = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputs = _t);\n    }\n  },\n  viewQuery: function MatSlider_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(_c2, 5);\n      i0.ɵɵviewQuery(MAT_SLIDER_VISUAL_THUMB, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._trackActive = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._thumbs = _t);\n    }\n  },\n  hostAttrs: [1, \"mat-mdc-slider\", \"mdc-slider\"],\n  hostVars: 10,\n  hostBindings: function MatSlider_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵclassProp(\"mdc-slider--range\", ctx._isRange)(\"mdc-slider--disabled\", ctx.disabled)(\"mdc-slider--discrete\", ctx.discrete)(\"mdc-slider--tick-marks\", ctx.showTickMarks)(\"_mat-animation-noopable\", ctx._noopAnimations);\n    }\n  },\n  inputs: {\n    color: \"color\",\n    disableRipple: \"disableRipple\",\n    disabled: \"disabled\",\n    discrete: \"discrete\",\n    showTickMarks: \"showTickMarks\",\n    min: \"min\",\n    max: \"max\",\n    step: \"step\",\n    displayWith: \"displayWith\"\n  },\n  exportAs: [\"matSlider\"],\n  features: [i0.ɵɵProvidersFeature([{\n    provide: MAT_SLIDER,\n    useExisting: MatSlider\n  }]), i0.ɵɵInheritDefinitionFeature],\n  ngContentSelectors: _c3,\n  decls: 9,\n  vars: 5,\n  consts: [[\"trackActive\", \"\"], [\"tickMarkContainer\", \"\"], [1, \"mdc-slider__track\"], [1, \"mdc-slider__track--inactive\"], [1, \"mdc-slider__track--active\"], [1, \"mdc-slider__track--active_fill\"], [\"class\", \"mdc-slider__tick-marks\", 4, \"ngIf\"], [3, \"discrete\", \"thumbPosition\", \"valueIndicatorText\", 4, \"ngIf\"], [3, \"discrete\", \"thumbPosition\", \"valueIndicatorText\"], [1, \"mdc-slider__tick-marks\"], [4, \"ngIf\"], [3, \"class\", \"transform\", 4, \"ngFor\", \"ngForOf\"]],\n  template: function MatSlider_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵprojectionDef();\n      i0.ɵɵprojection(0);\n      i0.ɵɵelementStart(1, \"div\", 2);\n      i0.ɵɵelement(2, \"div\", 3);\n      i0.ɵɵelementStart(3, \"div\", 4);\n      i0.ɵɵelement(4, \"div\", 5, 0);\n      i0.ɵɵelementEnd();\n      i0.ɵɵtemplate(6, MatSlider_div_6_Template, 3, 1, \"div\", 6);\n      i0.ɵɵelementEnd();\n      i0.ɵɵtemplate(7, MatSlider_mat_slider_visual_thumb_7_Template, 1, 3, \"mat-slider-visual-thumb\", 7);\n      i0.ɵɵelement(8, \"mat-slider-visual-thumb\", 8);\n    }\n    if (rf & 2) {\n      i0.ɵɵadvance(6);\n      i0.ɵɵproperty(\"ngIf\", ctx.showTickMarks);\n      i0.ɵɵadvance();\n      i0.ɵɵproperty(\"ngIf\", ctx._isRange);\n      i0.ɵɵadvance();\n      i0.ɵɵproperty(\"discrete\", ctx.discrete)(\"thumbPosition\", 2)(\"valueIndicatorText\", ctx.endValueIndicatorText);\n    }\n  },\n  dependencies: [i3.NgForOf, i3.NgIf, MatSliderVisualThumb],\n  styles: [\".mdc-slider{cursor:pointer;height:48px;margin:0 24px;position:relative;touch-action:pan-y}.mdc-slider .mdc-slider__track{position:absolute;top:50%;transform:translateY(-50%);width:100%}.mdc-slider .mdc-slider__track--active,.mdc-slider .mdc-slider__track--inactive{display:flex;height:100%;position:absolute;width:100%}.mdc-slider .mdc-slider__track--active{overflow:hidden}.mdc-slider .mdc-slider__track--active_fill{border-top-style:solid;box-sizing:border-box;height:100%;width:100%;position:relative;-webkit-transform-origin:left;transform-origin:left}[dir=rtl] .mdc-slider .mdc-slider__track--active_fill,.mdc-slider .mdc-slider__track--active_fill[dir=rtl]{-webkit-transform-origin:right;transform-origin:right}.mdc-slider .mdc-slider__track--inactive{left:0;top:0}.mdc-slider .mdc-slider__track--inactive::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__track--inactive::before{border-color:CanvasText}}.mdc-slider .mdc-slider__value-indicator-container{bottom:44px;left:var(--slider-value-indicator-container-left, 50%);pointer-events:none;position:absolute;right:var(--slider-value-indicator-container-right);transform:var(--slider-value-indicator-container-transform, translateX(-50%))}.mdc-slider .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0.4, 0, 1, 1);align-items:center;border-radius:4px;display:flex;height:32px;padding:0 12px;transform:scale(0);transform-origin:bottom}.mdc-slider .mdc-slider__value-indicator::before{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:6px solid;bottom:-5px;content:\\\"\\\";height:0;left:var(--slider-value-indicator-caret-left, 50%);position:absolute;right:var(--slider-value-indicator-caret-right);transform:var(--slider-value-indicator-caret-transform, translateX(-50%));width:0}.mdc-slider .mdc-slider__value-indicator::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__value-indicator::after{border-color:CanvasText}}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator-container{pointer-events:auto}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(1)}@media(prefers-reduced-motion){.mdc-slider .mdc-slider__value-indicator,.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:none}}.mdc-slider .mdc-slider__thumb{display:flex;left:-24px;outline:none;position:absolute;user-select:none;height:48px;width:48px}.mdc-slider .mdc-slider__thumb--top{z-index:1}.mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-style:solid;border-width:1px;box-sizing:content-box}.mdc-slider .mdc-slider__thumb-knob{box-sizing:border-box;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%)}.mdc-slider .mdc-slider__tick-marks{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:space-between;padding:0 1px;position:absolute;width:100%}.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:transform 80ms ease}@media(prefers-reduced-motion){.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:none}}.mdc-slider--disabled{cursor:auto}.mdc-slider--disabled .mdc-slider__thumb{pointer-events:none}.mdc-slider__input{cursor:pointer;left:0;margin:0;height:100%;opacity:0;pointer-events:none;position:absolute;top:0;width:100%}.mat-mdc-slider{display:inline-block;box-sizing:border-box;outline:none;vertical-align:middle;margin-left:8px;margin-right:8px;width:auto;min-width:112px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb-knob{background-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000));border-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb::before,.mat-mdc-slider .mdc-slider__thumb::after{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover::before,.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-surface--hover::before{opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded--background-focused::before,.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):focus::before{transition-duration:75ms;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--mdc-slider-active-track-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--active_fill{border-color:var(--mdc-slider-disabled-active-track-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--mdc-slider-inactive-track-color, var(--mdc-theme-primary, #6200ee));opacity:.24}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--inactive{background-color:var(--mdc-slider-disabled-inactive-track-color, var(--mdc-theme-on-surface, #000));opacity:.24}.mat-mdc-slider .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-inactive-container-color, var(--mdc-theme-primary, #6200ee));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-disabled-container-color, var(--mdc-theme-on-surface, #000));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__value-indicator{background-color:var(--mdc-slider-label-container-color, #666666);opacity:1}.mat-mdc-slider .mdc-slider__value-indicator::before{border-top-color:var(--mdc-slider-label-container-color, #666666)}.mat-mdc-slider .mdc-slider__value-indicator{color:var(--mdc-slider-label-label-text-color, var(--mdc-theme-on-primary, #fff))}.mat-mdc-slider .mdc-slider__track{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__track--active{height:var(--mdc-slider-active-track-height, 6px);top:calc((var(--mdc-slider-inactive-track-height, 4px) - var(--mdc-slider-active-track-height, 6px)) / 2)}.mat-mdc-slider .mdc-slider__track--active_fill{border-top-width:var(--mdc-slider-active-track-height, 6px)}.mat-mdc-slider .mdc-slider__track--inactive{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{height:var(--mdc-slider-with-tick-marks-container-size, 2px);width:var(--mdc-slider-with-tick-marks-container-size, 2px)}.mat-mdc-slider.mdc-slider--disabled{opacity:0.38}.mat-mdc-slider .mdc-slider__value-indicator-text{letter-spacing:var(--mdc-slider-label-label-text-tracking, 0.0071428571em);font-size:var(--mdc-slider-label-label-text-size, 0.875rem);font-family:var(--mdc-slider-label-label-text-font, Roboto, sans-serif);font-weight:var(--mdc-slider-label-label-text-weight, 500);line-height:var(--mdc-slider-label-label-text-line-height, 1.375rem)}.mat-mdc-slider .mdc-slider__track--active{border-radius:var(--mdc-slider-active-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__track--inactive{border-radius:var(--mdc-slider-inactive-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__thumb-knob{border-radius:var(--mdc-slider-handle-shape, 50%);width:var(--mdc-slider-handle-width, 20px);height:var(--mdc-slider-handle-height, 20px);border-style:solid;border-width:calc(var(--mdc-slider-handle-height, 20px) / 2) calc(var(--mdc-slider-handle-width, 20px) / 2)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{border-radius:var(--mdc-slider-with-tick-marks-container-shape, 50%)}.mat-mdc-slider .mdc-slider__thumb-knob{box-shadow:var(--mdc-slider-handle-elevation, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb-knob{background-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:var(--mdc-slider-with-overlap-handle-outline-color, #fff);border-width:var(--mdc-slider-with-overlap-handle-outline-width, 1px)}.mat-mdc-slider .mdc-slider__input{box-sizing:content-box;pointer-events:auto}.mat-mdc-slider .mdc-slider__input.mat-mdc-slider-input-no-pointer-events{pointer-events:none}.mat-mdc-slider .mdc-slider__input.mat-slider__right-input{left:auto;right:0}.mat-mdc-slider .mdc-slider__thumb,.mat-mdc-slider .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider.mdc-slider--discrete .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider .mdc-slider__track,.mat-mdc-slider .mdc-slider__thumb{pointer-events:none}.mat-mdc-slider .mdc-slider__value-indicator{opacity:var(--mat-mdc-slider-value-indicator-opacity, 1)}.mat-mdc-slider .mat-ripple .mat-ripple-element{background-color:var(--mat-mdc-slider-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-hover-ripple{background-color:var(--mat-mdc-slider-hover-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-focus-ripple,.mat-mdc-slider .mat-ripple .mat-mdc-slider-active-ripple{background-color:var(--mat-mdc-slider-focus-ripple-color, transparent)}.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__track--active_fill,.mat-mdc-slider._mat-animation-noopable .mdc-slider__value-indicator{transition:none}.mat-mdc-slider .mat-mdc-focus-indicator::before{border-radius:50%}.mdc-slider__thumb--focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSlider, [{\n    type: Component,\n    args: [{\n      selector: 'mat-slider',\n      host: {\n        'class': 'mat-mdc-slider mdc-slider',\n        '[class.mdc-slider--range]': '_isRange',\n        '[class.mdc-slider--disabled]': 'disabled',\n        '[class.mdc-slider--discrete]': 'discrete',\n        '[class.mdc-slider--tick-marks]': 'showTickMarks',\n        '[class._mat-animation-noopable]': '_noopAnimations'\n      },\n      exportAs: 'matSlider',\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      inputs: ['color', 'disableRipple'],\n      providers: [{\n        provide: MAT_SLIDER,\n        useExisting: MatSlider\n      }],\n      template: \"<!-- Inputs -->\\n<ng-content></ng-content>\\n\\n<!-- Track -->\\n<div class=\\\"mdc-slider__track\\\">\\n  <div class=\\\"mdc-slider__track--inactive\\\"></div>\\n  <div class=\\\"mdc-slider__track--active\\\">\\n    <div #trackActive class=\\\"mdc-slider__track--active_fill\\\"></div>\\n  </div>\\n  <div *ngIf=\\\"showTickMarks\\\" class=\\\"mdc-slider__tick-marks\\\" #tickMarkContainer>\\n    <ng-container *ngIf=\\\"_cachedWidth\\\">\\n        <div\\n          *ngFor=\\\"let tickMark of _tickMarks; let i = index\\\"\\n          [class]=\\\"tickMark === 0 ? 'mdc-slider__tick-mark--active' : 'mdc-slider__tick-mark--inactive'\\\"\\n          [style.transform]=\\\"_calcTickMarkTransform(i)\\\"></div>\\n    </ng-container>\\n  </div>\\n</div>\\n\\n<!-- Thumbs -->\\n<mat-slider-visual-thumb\\n  *ngIf=\\\"_isRange\\\"\\n  [discrete]=\\\"discrete\\\"\\n  [thumbPosition]=\\\"1\\\"\\n  [valueIndicatorText]=\\\"startValueIndicatorText\\\">\\n</mat-slider-visual-thumb>\\n\\n<mat-slider-visual-thumb\\n  [discrete]=\\\"discrete\\\"\\n  [thumbPosition]=\\\"2\\\"\\n  [valueIndicatorText]=\\\"endValueIndicatorText\\\">\\n</mat-slider-visual-thumb>\\n\",\n      styles: [\".mdc-slider{cursor:pointer;height:48px;margin:0 24px;position:relative;touch-action:pan-y}.mdc-slider .mdc-slider__track{position:absolute;top:50%;transform:translateY(-50%);width:100%}.mdc-slider .mdc-slider__track--active,.mdc-slider .mdc-slider__track--inactive{display:flex;height:100%;position:absolute;width:100%}.mdc-slider .mdc-slider__track--active{overflow:hidden}.mdc-slider .mdc-slider__track--active_fill{border-top-style:solid;box-sizing:border-box;height:100%;width:100%;position:relative;-webkit-transform-origin:left;transform-origin:left}[dir=rtl] .mdc-slider .mdc-slider__track--active_fill,.mdc-slider .mdc-slider__track--active_fill[dir=rtl]{-webkit-transform-origin:right;transform-origin:right}.mdc-slider .mdc-slider__track--inactive{left:0;top:0}.mdc-slider .mdc-slider__track--inactive::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__track--inactive::before{border-color:CanvasText}}.mdc-slider .mdc-slider__value-indicator-container{bottom:44px;left:var(--slider-value-indicator-container-left, 50%);pointer-events:none;position:absolute;right:var(--slider-value-indicator-container-right);transform:var(--slider-value-indicator-container-transform, translateX(-50%))}.mdc-slider .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0.4, 0, 1, 1);align-items:center;border-radius:4px;display:flex;height:32px;padding:0 12px;transform:scale(0);transform-origin:bottom}.mdc-slider .mdc-slider__value-indicator::before{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:6px solid;bottom:-5px;content:\\\"\\\";height:0;left:var(--slider-value-indicator-caret-left, 50%);position:absolute;right:var(--slider-value-indicator-caret-right);transform:var(--slider-value-indicator-caret-transform, translateX(-50%));width:0}.mdc-slider .mdc-slider__value-indicator::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__value-indicator::after{border-color:CanvasText}}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator-container{pointer-events:auto}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(1)}@media(prefers-reduced-motion){.mdc-slider .mdc-slider__value-indicator,.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:none}}.mdc-slider .mdc-slider__thumb{display:flex;left:-24px;outline:none;position:absolute;user-select:none;height:48px;width:48px}.mdc-slider .mdc-slider__thumb--top{z-index:1}.mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-style:solid;border-width:1px;box-sizing:content-box}.mdc-slider .mdc-slider__thumb-knob{box-sizing:border-box;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%)}.mdc-slider .mdc-slider__tick-marks{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:space-between;padding:0 1px;position:absolute;width:100%}.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:transform 80ms ease}@media(prefers-reduced-motion){.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:none}}.mdc-slider--disabled{cursor:auto}.mdc-slider--disabled .mdc-slider__thumb{pointer-events:none}.mdc-slider__input{cursor:pointer;left:0;margin:0;height:100%;opacity:0;pointer-events:none;position:absolute;top:0;width:100%}.mat-mdc-slider{display:inline-block;box-sizing:border-box;outline:none;vertical-align:middle;margin-left:8px;margin-right:8px;width:auto;min-width:112px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb-knob{background-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000));border-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb::before,.mat-mdc-slider .mdc-slider__thumb::after{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover::before,.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-surface--hover::before{opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded--background-focused::before,.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):focus::before{transition-duration:75ms;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--mdc-slider-active-track-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--active_fill{border-color:var(--mdc-slider-disabled-active-track-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--mdc-slider-inactive-track-color, var(--mdc-theme-primary, #6200ee));opacity:.24}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--inactive{background-color:var(--mdc-slider-disabled-inactive-track-color, var(--mdc-theme-on-surface, #000));opacity:.24}.mat-mdc-slider .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-inactive-container-color, var(--mdc-theme-primary, #6200ee));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-disabled-container-color, var(--mdc-theme-on-surface, #000));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__value-indicator{background-color:var(--mdc-slider-label-container-color, #666666);opacity:1}.mat-mdc-slider .mdc-slider__value-indicator::before{border-top-color:var(--mdc-slider-label-container-color, #666666)}.mat-mdc-slider .mdc-slider__value-indicator{color:var(--mdc-slider-label-label-text-color, var(--mdc-theme-on-primary, #fff))}.mat-mdc-slider .mdc-slider__track{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__track--active{height:var(--mdc-slider-active-track-height, 6px);top:calc((var(--mdc-slider-inactive-track-height, 4px) - var(--mdc-slider-active-track-height, 6px)) / 2)}.mat-mdc-slider .mdc-slider__track--active_fill{border-top-width:var(--mdc-slider-active-track-height, 6px)}.mat-mdc-slider .mdc-slider__track--inactive{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{height:var(--mdc-slider-with-tick-marks-container-size, 2px);width:var(--mdc-slider-with-tick-marks-container-size, 2px)}.mat-mdc-slider.mdc-slider--disabled{opacity:0.38}.mat-mdc-slider .mdc-slider__value-indicator-text{letter-spacing:var(--mdc-slider-label-label-text-tracking, 0.0071428571em);font-size:var(--mdc-slider-label-label-text-size, 0.875rem);font-family:var(--mdc-slider-label-label-text-font, Roboto, sans-serif);font-weight:var(--mdc-slider-label-label-text-weight, 500);line-height:var(--mdc-slider-label-label-text-line-height, 1.375rem)}.mat-mdc-slider .mdc-slider__track--active{border-radius:var(--mdc-slider-active-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__track--inactive{border-radius:var(--mdc-slider-inactive-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__thumb-knob{border-radius:var(--mdc-slider-handle-shape, 50%);width:var(--mdc-slider-handle-width, 20px);height:var(--mdc-slider-handle-height, 20px);border-style:solid;border-width:calc(var(--mdc-slider-handle-height, 20px) / 2) calc(var(--mdc-slider-handle-width, 20px) / 2)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{border-radius:var(--mdc-slider-with-tick-marks-container-shape, 50%)}.mat-mdc-slider .mdc-slider__thumb-knob{box-shadow:var(--mdc-slider-handle-elevation, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb-knob{background-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:var(--mdc-slider-with-overlap-handle-outline-color, #fff);border-width:var(--mdc-slider-with-overlap-handle-outline-width, 1px)}.mat-mdc-slider .mdc-slider__input{box-sizing:content-box;pointer-events:auto}.mat-mdc-slider .mdc-slider__input.mat-mdc-slider-input-no-pointer-events{pointer-events:none}.mat-mdc-slider .mdc-slider__input.mat-slider__right-input{left:auto;right:0}.mat-mdc-slider .mdc-slider__thumb,.mat-mdc-slider .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider.mdc-slider--discrete .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider .mdc-slider__track,.mat-mdc-slider .mdc-slider__thumb{pointer-events:none}.mat-mdc-slider .mdc-slider__value-indicator{opacity:var(--mat-mdc-slider-value-indicator-opacity, 1)}.mat-mdc-slider .mat-ripple .mat-ripple-element{background-color:var(--mat-mdc-slider-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-hover-ripple{background-color:var(--mat-mdc-slider-hover-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-focus-ripple,.mat-mdc-slider .mat-ripple .mat-mdc-slider-active-ripple{background-color:var(--mat-mdc-slider-focus-ripple-color, transparent)}.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__track--active_fill,.mat-mdc-slider._mat-animation-noopable .mdc-slider__value-indicator{transition:none}.mat-mdc-slider .mat-mdc-focus-indicator::before{border-radius:50%}.mdc-slider__thumb--focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.NgZone\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i1.Platform\n    }, {\n      type: i0.ElementRef\n    }, {\n      type: i2$1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    _trackActive: [{\n      type: ViewChild,\n      args: ['trackActive']\n    }],\n    _thumbs: [{\n      type: ViewChildren,\n      args: [MAT_SLIDER_VISUAL_THUMB]\n    }],\n    _input: [{\n      type: ContentChild,\n      args: [MAT_SLIDER_THUMB]\n    }],\n    _inputs: [{\n      type: ContentChildren,\n      args: [MAT_SLIDER_RANGE_THUMB, {\n        descendants: false\n      }]\n    }],\n    disabled: [{\n      type: Input\n    }],\n    discrete: [{\n      type: Input\n    }],\n    showTickMarks: [{\n      type: Input\n    }],\n    min: [{\n      type: Input\n    }],\n    max: [{\n      type: Input\n    }],\n    step: [{\n      type: Input\n    }],\n    displayWith: [{\n      type: Input\n    }]\n  });\n})();\n/** Ensures that there is not an invalid configuration for the slider thumb inputs. */\nfunction _validateInputs(isRange, endInputElement, startInputElement) {\n  const startValid = !isRange || startInputElement?._hostElement.hasAttribute('matSliderStartThumb');\n  const endValid = endInputElement._hostElement.hasAttribute(isRange ? 'matSliderEndThumb' : 'matSliderThumb');\n  if (!startValid || !endValid) {\n    _throwInvalidInputConfigurationError();\n  }\n}\nfunction _throwInvalidInputConfigurationError() {\n  throw Error(`Invalid slider thumb input configuration!\n\n   Valid configurations are as follows:\n\n     <mat-slider>\n       <input matSliderThumb>\n     </mat-slider>\n\n     or\n\n     <mat-slider>\n       <input matSliderStartThumb>\n       <input matSliderEndThumb>\n     </mat-slider>\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 * Provider that allows the slider thumb to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_SLIDER_THUMB_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MatSliderThumb),\n  multi: true\n};\n/**\n * Provider that allows the range slider thumb to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MatSliderRangeThumb),\n  multi: true\n};\n/**\n * Directive that adds slider-specific behaviors to an input element inside `<mat-slider>`.\n * Up to two may be placed inside of a `<mat-slider>`.\n *\n * If one is used, the selector `matSliderThumb` must be used, and the outcome will be a normal\n * slider. If two are used, the selectors `matSliderStartThumb` and `matSliderEndThumb` must be\n * used, and the outcome will be a range slider with two slider thumbs.\n */\nclass MatSliderThumb {\n  get value() {\n    return coerceNumberProperty(this._hostElement.value);\n  }\n  set value(v) {\n    const val = coerceNumberProperty(v).toString();\n    if (!this._hasSetInitialValue) {\n      this._initialValue = val;\n      return;\n    }\n    if (this._isActive) {\n      return;\n    }\n    this._hostElement.value = val;\n    this._updateThumbUIByValue();\n    this._slider._onValueChange(this);\n    this._cdr.detectChanges();\n  }\n  /**\n   * The current translateX in px of the slider visual thumb.\n   * @docs-private\n   */\n  get translateX() {\n    if (this._slider.min >= this._slider.max) {\n      this._translateX = 0;\n      return this._translateX;\n    }\n    if (this._translateX === undefined) {\n      this._translateX = this._calcTranslateXByValue();\n    }\n    return this._translateX;\n  }\n  set translateX(v) {\n    this._translateX = v;\n  }\n  /** @docs-private */\n  get min() {\n    return coerceNumberProperty(this._hostElement.min);\n  }\n  set min(v) {\n    this._hostElement.min = coerceNumberProperty(v).toString();\n    this._cdr.detectChanges();\n  }\n  /** @docs-private */\n  get max() {\n    return coerceNumberProperty(this._hostElement.max);\n  }\n  set max(v) {\n    this._hostElement.max = coerceNumberProperty(v).toString();\n    this._cdr.detectChanges();\n  }\n  get step() {\n    return coerceNumberProperty(this._hostElement.step);\n  }\n  set step(v) {\n    this._hostElement.step = coerceNumberProperty(v).toString();\n    this._cdr.detectChanges();\n  }\n  /** @docs-private */\n  get disabled() {\n    return coerceBooleanProperty(this._hostElement.disabled);\n  }\n  set disabled(v) {\n    this._hostElement.disabled = coerceBooleanProperty(v);\n    this._cdr.detectChanges();\n    if (this._slider.disabled !== this.disabled) {\n      this._slider.disabled = this.disabled;\n    }\n  }\n  /** The percentage of the slider that coincides with the value. */\n  get percentage() {\n    if (this._slider.min >= this._slider.max) {\n      return this._slider._isRtl ? 1 : 0;\n    }\n    return (this.value - this._slider.min) / (this._slider.max - this._slider.min);\n  }\n  /** @docs-private */\n  get fillPercentage() {\n    if (!this._slider._cachedWidth) {\n      return this._slider._isRtl ? 1 : 0;\n    }\n    if (this._translateX === 0) {\n      return 0;\n    }\n    return this.translateX / this._slider._cachedWidth;\n  }\n  /** Used to relay updates to _isFocused to the slider visual thumbs. */\n  _setIsFocused(v) {\n    this._isFocused = v;\n  }\n  constructor(_ngZone, _elementRef, _cdr, _slider) {\n    this._ngZone = _ngZone;\n    this._elementRef = _elementRef;\n    this._cdr = _cdr;\n    this._slider = _slider;\n    /** Event emitted when the `value` is changed. */\n    this.valueChange = new EventEmitter();\n    /** Event emitted when the slider thumb starts being dragged. */\n    this.dragStart = new EventEmitter();\n    /** Event emitted when the slider thumb stops being dragged. */\n    this.dragEnd = new EventEmitter();\n    /**\n     * Indicates whether this thumb is the start or end thumb.\n     * @docs-private\n     */\n    this.thumbPosition = 2 /* _MatThumb.END */;\n    /** The radius of a native html slider's knob. */\n    this._knobRadius = 8;\n    /** Whether user's cursor is currently in a mouse down state on the input. */\n    this._isActive = false;\n    /** Whether the input is currently focused (either by tab or after clicking). */\n    this._isFocused = false;\n    /**\n     * Whether the initial value has been set.\n     * This exists because the initial value cannot be immediately set because the min and max\n     * must first be relayed from the parent MatSlider component, which can only happen later\n     * in the component lifecycle.\n     */\n    this._hasSetInitialValue = false;\n    /** Emits when the component is destroyed. */\n    this._destroyed = new Subject();\n    /**\n     * Indicates whether UI updates should be skipped.\n     *\n     * This flag is used to avoid flickering\n     * when correcting values on pointer up/down.\n     */\n    this._skipUIUpdate = false;\n    /** Callback called when the slider input value changes. */\n    this._onChangeFn = () => {};\n    /** Callback called when the slider input has been touched. */\n    this._onTouchedFn = () => {};\n    this._hostElement = _elementRef.nativeElement;\n    this._ngZone.runOutsideAngular(() => {\n      this._hostElement.addEventListener('pointerdown', this._onPointerDown.bind(this));\n      this._hostElement.addEventListener('pointermove', this._onPointerMove.bind(this));\n      this._hostElement.addEventListener('pointerup', this._onPointerUp.bind(this));\n    });\n  }\n  ngOnDestroy() {\n    this._hostElement.removeEventListener('pointerdown', this._onPointerDown);\n    this._hostElement.removeEventListener('pointermove', this._onPointerMove);\n    this._hostElement.removeEventListener('pointerup', this._onPointerUp);\n    this._destroyed.next();\n    this._destroyed.complete();\n    this.dragStart.complete();\n    this.dragEnd.complete();\n  }\n  /** @docs-private */\n  initProps() {\n    this._updateWidthInactive();\n    // If this or the parent slider is disabled, just make everything disabled.\n    if (this.disabled !== this._slider.disabled) {\n      // The MatSlider setter for disabled will relay this and disable both inputs.\n      this._slider.disabled = true;\n    }\n    this.step = this._slider.step;\n    this.min = this._slider.min;\n    this.max = this._slider.max;\n    this._initValue();\n  }\n  /** @docs-private */\n  initUI() {\n    this._updateThumbUIByValue();\n  }\n  _initValue() {\n    this._hasSetInitialValue = true;\n    if (this._initialValue === undefined) {\n      this.value = this._getDefaultValue();\n    } else {\n      this._hostElement.value = this._initialValue;\n      this._updateThumbUIByValue();\n      this._slider._onValueChange(this);\n      this._cdr.detectChanges();\n    }\n  }\n  _getDefaultValue() {\n    return this.min;\n  }\n  _onBlur() {\n    this._setIsFocused(false);\n    this._onTouchedFn();\n  }\n  _onFocus() {\n    this._setIsFocused(true);\n  }\n  _onChange() {\n    this.valueChange.emit(this.value);\n    // only used to handle the edge case where user\n    // mousedown on the slider then uses arrow keys.\n    if (this._isActive) {\n      this._updateThumbUIByValue({\n        withAnimation: true\n      });\n    }\n  }\n  _onInput() {\n    this._onChangeFn(this.value);\n    // handles arrowing and updating the value when\n    // a step is defined.\n    if (this._slider.step || !this._isActive) {\n      this._updateThumbUIByValue({\n        withAnimation: true\n      });\n    }\n    this._slider._onValueChange(this);\n  }\n  _onNgControlValueChange() {\n    // only used to handle when the value change\n    // originates outside of the slider.\n    if (!this._isActive || !this._isFocused) {\n      this._slider._onValueChange(this);\n      this._updateThumbUIByValue();\n    }\n    this._slider.disabled = this._formControl.disabled;\n  }\n  _onPointerDown(event) {\n    if (this.disabled || event.button !== 0) {\n      return;\n    }\n    this._isActive = true;\n    this._setIsFocused(true);\n    this._updateWidthActive();\n    this._slider._updateDimensions();\n    // Does nothing if a step is defined because we\n    // want the value to snap to the values on input.\n    if (!this._slider.step) {\n      this._updateThumbUIByPointerEvent(event, {\n        withAnimation: true\n      });\n    }\n    if (!this.disabled) {\n      this._handleValueCorrection(event);\n      this.dragStart.emit({\n        source: this,\n        parent: this._slider,\n        value: this.value\n      });\n    }\n  }\n  /**\n   * Corrects the value of the slider on pointer up/down.\n   *\n   * Called on pointer down and up because the value is set based\n   * on the inactive width instead of the active width.\n   */\n  _handleValueCorrection(event) {\n    // Don't update the UI with the current value! The value on pointerdown\n    // and pointerup is calculated in the split second before the input(s)\n    // resize. See _updateWidthInactive() and _updateWidthActive() for more\n    // details.\n    this._skipUIUpdate = true;\n    // Note that this function gets triggered before the actual value of the\n    // slider is updated. This means if we were to set the value here, it\n    // would immediately be overwritten. Using setTimeout ensures the setting\n    // of the value happens after the value has been updated by the\n    // pointerdown event.\n    setTimeout(() => {\n      this._skipUIUpdate = false;\n      this._fixValue(event);\n    }, 0);\n  }\n  /** Corrects the value of the slider based on the pointer event's position. */\n  _fixValue(event) {\n    const xPos = event.clientX - this._slider._cachedLeft;\n    const width = this._slider._cachedWidth;\n    const step = this._slider.step === 0 ? 1 : this._slider.step;\n    const numSteps = Math.floor((this._slider.max - this._slider.min) / step);\n    const percentage = this._slider._isRtl ? 1 - xPos / width : xPos / width;\n    // To ensure the percentage is rounded to the necessary number of decimals.\n    const fixedPercentage = Math.round(percentage * numSteps) / numSteps;\n    const impreciseValue = fixedPercentage * (this._slider.max - this._slider.min) + this._slider.min;\n    const value = Math.round(impreciseValue / step) * step;\n    const prevValue = this.value;\n    if (value === prevValue) {\n      // Because we prevented UI updates, if it turns out that the race\n      // condition didn't happen and the value is already correct, we\n      // have to apply the ui updates now.\n      this._slider._onValueChange(this);\n      this._slider.step > 0 ? this._updateThumbUIByValue() : this._updateThumbUIByPointerEvent(event, {\n        withAnimation: this._slider._hasAnimation\n      });\n      return;\n    }\n    this.value = value;\n    this.valueChange.emit(this.value);\n    this._onChangeFn(this.value);\n    this._slider._onValueChange(this);\n    this._slider.step > 0 ? this._updateThumbUIByValue() : this._updateThumbUIByPointerEvent(event, {\n      withAnimation: this._slider._hasAnimation\n    });\n  }\n  _onPointerMove(event) {\n    // Again, does nothing if a step is defined because\n    // we want the value to snap to the values on input.\n    if (!this._slider.step && this._isActive) {\n      this._updateThumbUIByPointerEvent(event);\n    }\n  }\n  _onPointerUp() {\n    if (this._isActive) {\n      this._isActive = false;\n      this.dragEnd.emit({\n        source: this,\n        parent: this._slider,\n        value: this.value\n      });\n      setTimeout(() => this._updateWidthInactive());\n    }\n  }\n  _clamp(v) {\n    return Math.max(Math.min(v, this._slider._cachedWidth), 0);\n  }\n  _calcTranslateXByValue() {\n    if (this._slider._isRtl) {\n      return (1 - this.percentage) * this._slider._cachedWidth;\n    }\n    return this.percentage * this._slider._cachedWidth;\n  }\n  _calcTranslateXByPointerEvent(event) {\n    return event.clientX - this._slider._cachedLeft;\n  }\n  /**\n   * Used to set the slider width to the correct\n   * dimensions while the user is dragging.\n   */\n  _updateWidthActive() {\n    this._hostElement.style.padding = `0 ${this._slider._inputPadding}px`;\n    this._hostElement.style.width = `calc(100% + ${this._slider._inputPadding}px)`;\n  }\n  /**\n   * Sets the slider input to disproportionate dimensions to allow for touch\n   * events to be captured on touch devices.\n   */\n  _updateWidthInactive() {\n    this._hostElement.style.padding = '0px';\n    this._hostElement.style.width = 'calc(100% + 48px)';\n    this._hostElement.style.left = '-24px';\n  }\n  _updateThumbUIByValue(options) {\n    this.translateX = this._clamp(this._calcTranslateXByValue());\n    this._updateThumbUI(options);\n  }\n  _updateThumbUIByPointerEvent(event, options) {\n    this.translateX = this._clamp(this._calcTranslateXByPointerEvent(event));\n    this._updateThumbUI(options);\n  }\n  _updateThumbUI(options) {\n    this._slider._setTransition(!!options?.withAnimation);\n    this._slider._onTranslateXChange(this);\n  }\n  /**\n   * Sets the input's value.\n   * @param value The new value of the input\n   * @docs-private\n   */\n  writeValue(value) {\n    this.value = value;\n  }\n  /**\n   * Registers a callback to be invoked when the input's value changes from user input.\n   * @param fn The callback to register\n   * @docs-private\n   */\n  registerOnChange(fn) {\n    this._onChangeFn = fn;\n  }\n  /**\n   * Registers a callback to be invoked when the input is blurred by the user.\n   * @param fn The callback to register\n   * @docs-private\n   */\n  registerOnTouched(fn) {\n    this._onTouchedFn = fn;\n  }\n  /**\n   * Sets the disabled state of the slider.\n   * @param isDisabled The new disabled state\n   * @docs-private\n   */\n  setDisabledState(isDisabled) {\n    this.disabled = isDisabled;\n  }\n  focus() {\n    this._hostElement.focus();\n  }\n  blur() {\n    this._hostElement.blur();\n  }\n}\nMatSliderThumb.ɵfac = function MatSliderThumb_Factory(t) {\n  return new (t || MatSliderThumb)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_SLIDER));\n};\nMatSliderThumb.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatSliderThumb,\n  selectors: [[\"input\", \"matSliderThumb\", \"\"]],\n  hostAttrs: [\"type\", \"range\", 1, \"mdc-slider__input\"],\n  hostVars: 1,\n  hostBindings: function MatSliderThumb_HostBindings(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵlistener(\"change\", function MatSliderThumb_change_HostBindingHandler() {\n        return ctx._onChange();\n      })(\"input\", function MatSliderThumb_input_HostBindingHandler() {\n        return ctx._onInput();\n      })(\"blur\", function MatSliderThumb_blur_HostBindingHandler() {\n        return ctx._onBlur();\n      })(\"focus\", function MatSliderThumb_focus_HostBindingHandler() {\n        return ctx._onFocus();\n      });\n    }\n    if (rf & 2) {\n      i0.ɵɵattribute(\"aria-valuetext\", ctx._valuetext);\n    }\n  },\n  inputs: {\n    value: \"value\"\n  },\n  outputs: {\n    valueChange: \"valueChange\",\n    dragStart: \"dragStart\",\n    dragEnd: \"dragEnd\"\n  },\n  exportAs: [\"matSliderThumb\"],\n  features: [i0.ɵɵProvidersFeature([MAT_SLIDER_THUMB_VALUE_ACCESSOR, {\n    provide: MAT_SLIDER_THUMB,\n    useExisting: MatSliderThumb\n  }])]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSliderThumb, [{\n    type: Directive,\n    args: [{\n      selector: 'input[matSliderThumb]',\n      exportAs: 'matSliderThumb',\n      host: {\n        'class': 'mdc-slider__input',\n        'type': 'range',\n        '[attr.aria-valuetext]': '_valuetext',\n        '(change)': '_onChange()',\n        '(input)': '_onInput()',\n        // TODO(wagnermaciel): Consider using a global event listener instead.\n        // Reason: I have found a semi-consistent way to mouse up without triggering this event.\n        '(blur)': '_onBlur()',\n        '(focus)': '_onFocus()'\n      },\n      providers: [MAT_SLIDER_THUMB_VALUE_ACCESSOR, {\n        provide: MAT_SLIDER_THUMB,\n        useExisting: MatSliderThumb\n      }]\n    }]\n  }], function () {\n    return [{\n      type: i0.NgZone\n    }, {\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_SLIDER]\n      }]\n    }];\n  }, {\n    value: [{\n      type: Input\n    }],\n    valueChange: [{\n      type: Output\n    }],\n    dragStart: [{\n      type: Output\n    }],\n    dragEnd: [{\n      type: Output\n    }]\n  });\n})();\nclass MatSliderRangeThumb extends MatSliderThumb {\n  /** @docs-private */\n  getSibling() {\n    if (!this._sibling) {\n      this._sibling = this._slider._getInput(this._isEndThumb ? 1 /* _MatThumb.START */ : 2 /* _MatThumb.END */);\n    }\n    return this._sibling;\n  }\n  /**\n   * Returns the minimum translateX position allowed for this slider input's visual thumb.\n   * @docs-private\n   */\n  getMinPos() {\n    const sibling = this.getSibling();\n    if (!this._isLeftThumb && sibling) {\n      return sibling.translateX;\n    }\n    return 0;\n  }\n  /**\n   * Returns the maximum translateX position allowed for this slider input's visual thumb.\n   * @docs-private\n   */\n  getMaxPos() {\n    const sibling = this.getSibling();\n    if (this._isLeftThumb && sibling) {\n      return sibling.translateX;\n    }\n    return this._slider._cachedWidth;\n  }\n  _setIsLeftThumb() {\n    this._isLeftThumb = this._isEndThumb && this._slider._isRtl || !this._isEndThumb && !this._slider._isRtl;\n  }\n  constructor(_ngZone, _slider, _elementRef, _cdr) {\n    super(_ngZone, _elementRef, _cdr, _slider);\n    this._cdr = _cdr;\n    this._isEndThumb = this._hostElement.hasAttribute('matSliderEndThumb');\n    this._setIsLeftThumb();\n    this.thumbPosition = this._isEndThumb ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */;\n  }\n  _getDefaultValue() {\n    return this._isEndThumb && this._slider._isRange ? this.max : this.min;\n  }\n  _onInput() {\n    super._onInput();\n    this._updateSibling();\n    if (!this._isActive) {\n      this._updateWidthInactive();\n    }\n  }\n  _onNgControlValueChange() {\n    super._onNgControlValueChange();\n    this.getSibling()?._updateMinMax();\n  }\n  _onPointerDown(event) {\n    if (this.disabled) {\n      return;\n    }\n    if (this._sibling) {\n      this._sibling._updateWidthActive();\n      this._sibling._hostElement.classList.add('mat-mdc-slider-input-no-pointer-events');\n    }\n    super._onPointerDown(event);\n  }\n  _onPointerUp() {\n    super._onPointerUp();\n    if (this._sibling) {\n      setTimeout(() => {\n        this._sibling._updateWidthInactive();\n        this._sibling._hostElement.classList.remove('mat-mdc-slider-input-no-pointer-events');\n      });\n    }\n  }\n  _onPointerMove(event) {\n    super._onPointerMove(event);\n    if (!this._slider.step && this._isActive) {\n      this._updateSibling();\n    }\n  }\n  _fixValue(event) {\n    super._fixValue(event);\n    this._sibling?._updateMinMax();\n  }\n  _clamp(v) {\n    return Math.max(Math.min(v, this.getMaxPos()), this.getMinPos());\n  }\n  _updateMinMax() {\n    const sibling = this.getSibling();\n    if (!sibling) {\n      return;\n    }\n    if (this._isEndThumb) {\n      this.min = Math.max(this._slider.min, sibling.value);\n      this.max = this._slider.max;\n    } else {\n      this.min = this._slider.min;\n      this.max = Math.min(this._slider.max, sibling.value);\n    }\n  }\n  _updateWidthActive() {\n    const minWidth = this._slider._rippleRadius * 2 - this._slider._inputPadding * 2;\n    const maxWidth = this._slider._cachedWidth + this._slider._inputPadding - minWidth;\n    const percentage = this._slider.min < this._slider.max ? (this.max - this.min) / (this._slider.max - this._slider.min) : 1;\n    const width = maxWidth * percentage + minWidth;\n    this._hostElement.style.width = `${width}px`;\n    this._hostElement.style.padding = `0 ${this._slider._inputPadding}px`;\n  }\n  _updateWidthInactive() {\n    const sibling = this.getSibling();\n    if (!sibling) {\n      return;\n    }\n    const maxWidth = this._slider._cachedWidth;\n    const midValue = this._isEndThumb ? this.value - (this.value - sibling.value) / 2 : this.value + (sibling.value - this.value) / 2;\n    const _percentage = this._isEndThumb ? (this.max - midValue) / (this._slider.max - this._slider.min) : (midValue - this.min) / (this._slider.max - this._slider.min);\n    const percentage = this._slider.min < this._slider.max ? _percentage : 1;\n    const width = maxWidth * percentage + 24;\n    this._hostElement.style.width = `${width}px`;\n    this._hostElement.style.padding = '0px';\n    if (this._isLeftThumb) {\n      this._hostElement.style.left = '-24px';\n      this._hostElement.style.right = 'auto';\n    } else {\n      this._hostElement.style.left = 'auto';\n      this._hostElement.style.right = '-24px';\n    }\n  }\n  _updateStaticStyles() {\n    this._hostElement.classList.toggle('mat-slider__right-input', !this._isLeftThumb);\n  }\n  _updateSibling() {\n    const sibling = this.getSibling();\n    if (!sibling) {\n      return;\n    }\n    sibling._updateMinMax();\n    if (this._isActive) {\n      sibling._updateWidthActive();\n    } else {\n      sibling._updateWidthInactive();\n    }\n  }\n  /**\n   * Sets the input's value.\n   * @param value The new value of the input\n   * @docs-private\n   */\n  writeValue(value) {\n    this.value = value;\n    this._updateWidthInactive();\n    this._updateSibling();\n  }\n}\nMatSliderRangeThumb.ɵfac = function MatSliderRangeThumb_Factory(t) {\n  return new (t || MatSliderRangeThumb)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_SLIDER), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\nMatSliderRangeThumb.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatSliderRangeThumb,\n  selectors: [[\"input\", \"matSliderStartThumb\", \"\"], [\"input\", \"matSliderEndThumb\", \"\"]],\n  exportAs: [\"matSliderRangeThumb\"],\n  features: [i0.ɵɵProvidersFeature([MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR, {\n    provide: MAT_SLIDER_RANGE_THUMB,\n    useExisting: MatSliderRangeThumb\n  }]), i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSliderRangeThumb, [{\n    type: Directive,\n    args: [{\n      selector: 'input[matSliderStartThumb], input[matSliderEndThumb]',\n      exportAs: 'matSliderRangeThumb',\n      providers: [MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR, {\n        provide: MAT_SLIDER_RANGE_THUMB,\n        useExisting: MatSliderRangeThumb\n      }]\n    }]\n  }], function () {\n    return [{\n      type: i0.NgZone\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_SLIDER]\n      }]\n    }, {\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }];\n  }, null);\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 MatSliderModule {}\nMatSliderModule.ɵfac = function MatSliderModule_Factory(t) {\n  return new (t || MatSliderModule)();\n};\nMatSliderModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: MatSliderModule\n});\nMatSliderModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [MatCommonModule, CommonModule, MatRippleModule]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSliderModule, [{\n    type: NgModule,\n    args: [{\n      imports: [MatCommonModule, CommonModule, MatRippleModule],\n      exports: [MatSlider, MatSliderThumb, MatSliderRangeThumb],\n      declarations: [MatSlider, MatSliderThumb, MatSliderRangeThumb, MatSliderVisualThumb]\n    }]\n  }], null, null);\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 { MatSlider, MatSliderChange, MatSliderModule, MatSliderRangeThumb, MatSliderThumb, MatSliderVisualThumb };","map":{"version":3,"names":["i2$1","coerceBooleanProperty","coerceNumberProperty","i1","i0","InjectionToken","Component","ChangeDetectionStrategy","ViewEncapsulation","Inject","Input","ViewChild","Optional","ViewChildren","ContentChild","ContentChildren","forwardRef","EventEmitter","Directive","Output","NgModule","i2","MatRipple","mixinColor","mixinDisableRipple","MAT_RIPPLE_GLOBAL_OPTIONS","MatCommonModule","MatRippleModule","ANIMATION_MODULE_TYPE","take","i3","CommonModule","NG_VALUE_ACCESSOR","Subject","_c0","_c1","MatSliderVisualThumb_div_0_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","valueIndicatorText","_c2","_c3","MatSlider_div_6_ng_container_2_div_1_Template","ɵɵelement","tickMark_r1","$implicit","i_r2","index","ctx_r2","ɵɵclassMap","ɵɵstyleProp","_calcTickMarkTransform","MatSlider_div_6_ng_container_2_Template","ɵɵelementContainerStart","ɵɵtemplate","ɵɵelementContainerEnd","ɵɵproperty","_tickMarks","MatSlider_div_6_Template","_cachedWidth","MatSlider_mat_slider_visual_thumb_7_Template","discrete","startValueIndicatorText","MAT_SLIDER","MAT_SLIDER_THUMB","MAT_SLIDER_RANGE_THUMB","MAT_SLIDER_VISUAL_THUMB","MatSliderChange","MatSliderVisualThumb","constructor","_cdr","_ngZone","_elementRef","_slider","_isHovered","_isActive","_isValueIndicatorVisible","_onPointerMove","event","_sliderInput","_isFocused","rect","_hostElement","getBoundingClientRect","isHovered","_isSliderThumbHovered","_showHoverRipple","_hideRipple","_hoverRippleRef","_onMouseLeave","_onFocus","_showFocusRipple","classList","add","_onBlur","_focusRippleRef","remove","_onDragStart","_showActiveRipple","_onDragEnd","_activeRippleRef","nativeElement","ngAfterViewInit","_ripple","radius","_getInput","thumbPosition","_sliderInputEl","input","runOutsideAngular","addEventListener","ngOnDestroy","removeEventListener","_isShowingRipple","_showRipple","enterDuration","exitDuration","element","rippleRef","state","animation","ignoreGlobalRippleConfig","disabled","_showValueIndicator","_isRange","sibling","_getThumb","_globalRippleOptions","launch","_noopAnimations","centered","persistent","fadeOut","_isShowingAnyRipple","_hideValueIndicator","_getSibling","_getValueIndicatorContainer","_valueIndicatorContainer","_getKnob","_knob","width","centerX","x","centerY","y","dx","clientX","dy","clientY","Math","pow","ɵfac","MatSliderVisualThumb_Factory","t","ɵɵdirectiveInject","ChangeDetectorRef","NgZone","ElementRef","ɵcmp","ɵɵdefineComponent","type","selectors","viewQuery","MatSliderVisualThumb_Query","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","first","hostAttrs","inputs","features","ɵɵProvidersFeature","provide","useExisting","decls","vars","consts","template","MatSliderVisualThumb_Template","dependencies","NgIf","styles","encapsulation","changeDetection","ngDevMode","ɵsetClassMetadata","args","selector","host","OnPush","None","providers","undefined","decorators","_MatSliderMixinBase","MatSlider","_disabled","v","endInput","startInput","_discrete","_updateValueIndicatorUIs","showTickMarks","_showTickMarks","min","_min","_updateMin","prevMin","_updateMinRange","old","new","_updateMinNonRange","_onMinMaxOrStepChange","oldEndValue","value","oldStartValue","max","_updateWidthInactive","_onTranslateXChangeBySideEffect","_onValueChange","oldValue","_updateThumbUIByValue","_updateTrackUI","_max","_updateMax","prevMax","_updateMaxRange","_updateMaxNonRange","step","_step","_updateStep","_updateStepRange","_updateStepNonRange","prevStartValue","_platform","SAFARI","elementRef","_dir","animationMode","displayWith","_rippleRadius","endValueIndicatorText","_isRtl","_hasViewInitialized","_tickMarkTrackWidth","_hasAnimation","_resizeTimer","_knobRadius","_thumbsOverlap","_dirChangeSubscription","change","subscribe","_onDirChange","isBrowser","_updateDimensions","eInput","sInput","detectChanges","_validateInputs","thumb","_inputPadding","_inputOffset","_initUIRange","_initUINonRange","_updateTickMarkUI","_updateTickMarkTrackUI","_observeHostResize","initProps","initUI","_updateValueIndicatorUI","_updateMinMax","_updateStaticStyles","unsubscribe","_resizeObserver","disconnect","_onDirChangeRange","_onDirChangeNonRange","_setIsLeftThumb","translateX","_calcTranslateXByValue","ResizeObserver","clearTimeout","_onResize","observe","_getValue","_skipUpdate","_skipUIUpdate","offsetWidth","_cachedLeft","left","_setTrackActiveStyles","trackStyle","_trackActive","style","animationOriginChanged","right","transformOrigin","onStable","pipe","transform","length","_onTranslateXChange","source","_updateThumbUI","_updateOverlappingThumbUI","input1","input2","markForCheck","_areThumbsOverlapping","_updateOverlappingThumbClassNames","getSibling","sourceThumb","siblingThumb","toggle","valuetext","_valuetext","setAttribute","visualThumb","maxValue","floor","percentage","_updateTrackUIRange","_updateTrackUINonRange","activePercentage","abs","_isLeftThumb","fillPercentage","_updateTickMarkUIRange","_updateTickMarkUINonRange","reverse","numActive","round","numInactive","Array","fill","concat","endValue","startValue","numInactiveBeforeStartThumb","numInactiveAfterEndThumb","_input","_inputs","last","_thumbs","_setTransition","withAnimation","MatSlider_Factory","Platform","Directionality","contentQueries","MatSlider_ContentQueries","dirIndex","ɵɵcontentQuery","MatSlider_Query","hostVars","hostBindings","MatSlider_HostBindings","ɵɵclassProp","color","disableRipple","exportAs","ɵɵInheritDefinitionFeature","ngContentSelectors","MatSlider_Template","ɵɵprojectionDef","ɵɵprojection","NgForOf","descendants","isRange","endInputElement","startInputElement","startValid","hasAttribute","endValid","_throwInvalidInputConfigurationError","Error","MAT_SLIDER_THUMB_VALUE_ACCESSOR","MatSliderThumb","multi","MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR","MatSliderRangeThumb","val","toString","_hasSetInitialValue","_initialValue","_translateX","_setIsFocused","valueChange","dragStart","dragEnd","_destroyed","_onChangeFn","_onTouchedFn","_onPointerDown","bind","_onPointerUp","next","complete","_initValue","_getDefaultValue","_onChange","emit","_onInput","_onNgControlValueChange","_formControl","button","_updateWidthActive","_updateThumbUIByPointerEvent","_handleValueCorrection","parent","setTimeout","_fixValue","xPos","numSteps","fixedPercentage","impreciseValue","prevValue","_clamp","_calcTranslateXByPointerEvent","padding","options","writeValue","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","focus","blur","MatSliderThumb_Factory","ɵdir","ɵɵdefineDirective","MatSliderThumb_HostBindings","ɵɵlistener","MatSliderThumb_change_HostBindingHandler","MatSliderThumb_input_HostBindingHandler","MatSliderThumb_blur_HostBindingHandler","MatSliderThumb_focus_HostBindingHandler","ɵɵattribute","outputs","_sibling","_isEndThumb","getMinPos","getMaxPos","_updateSibling","minWidth","maxWidth","midValue","_percentage","MatSliderRangeThumb_Factory","MatSliderModule","MatSliderModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","exports","declarations"],"sources":["C:/Users/Cem/Desktop/InventryUI-Client/node_modules/@angular/material/fesm2020/slider.mjs"],"sourcesContent":["import * as i2$1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, ViewChild, Optional, ViewChildren, ContentChild, ContentChildren, forwardRef, EventEmitter, Directive, Output, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { MatRipple, mixinColor, mixinDisableRipple, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { take } from 'rxjs/operators';\nimport * as i3 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\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 * Injection token that can be used for a `MatSlider` to provide itself as a\n * parent to the `MatSliderThumb` and `MatSliderRangeThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER = new InjectionToken('_MatSlider');\n/**\n * Injection token that can be used to query for a `MatSliderThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_THUMB = new InjectionToken('_MatSliderThumb');\n/**\n * Injection token that can be used to query for a `MatSliderRangeThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_RANGE_THUMB = new InjectionToken('_MatSliderRangeThumb');\n/**\n * Injection token that can be used to query for a `MatSliderVisualThumb`.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nconst MAT_SLIDER_VISUAL_THUMB = new InjectionToken('_MatSliderVisualThumb');\n/**\n * A simple change event emitted by the MatSlider component.\n * @deprecated Use event bindings directly on the MatSliderThumbs for `change` and `input` events. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatSliderChange {\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 * The visual slider thumb.\n *\n * Handles the slider thumb ripple states (hover, focus, and active),\n * and displaying the value tooltip on discrete sliders.\n * @docs-private\n */\nclass MatSliderVisualThumb {\n    constructor(_cdr, _ngZone, _elementRef, _slider) {\n        this._cdr = _cdr;\n        this._ngZone = _ngZone;\n        this._slider = _slider;\n        /** Whether the slider thumb is currently being hovered. */\n        this._isHovered = false;\n        /** Whether the slider thumb is currently being pressed. */\n        this._isActive = false;\n        /** Whether the value indicator tooltip is visible. */\n        this._isValueIndicatorVisible = false;\n        this._onPointerMove = (event) => {\n            if (this._sliderInput._isFocused) {\n                return;\n            }\n            const rect = this._hostElement.getBoundingClientRect();\n            const isHovered = this._isSliderThumbHovered(event, rect);\n            this._isHovered = isHovered;\n            if (isHovered) {\n                this._showHoverRipple();\n            }\n            else {\n                this._hideRipple(this._hoverRippleRef);\n            }\n        };\n        this._onMouseLeave = () => {\n            this._isHovered = false;\n            this._hideRipple(this._hoverRippleRef);\n        };\n        this._onFocus = () => {\n            // We don't want to show the hover ripple on top of the focus ripple.\n            // Happen when the users cursor is over a thumb and then the user tabs to it.\n            this._hideRipple(this._hoverRippleRef);\n            this._showFocusRipple();\n            this._hostElement.classList.add('mdc-slider__thumb--focused');\n        };\n        this._onBlur = () => {\n            // Happens when the user tabs away while still dragging a thumb.\n            if (!this._isActive) {\n                this._hideRipple(this._focusRippleRef);\n            }\n            // Happens when the user tabs away from a thumb but their cursor is still over it.\n            if (this._isHovered) {\n                this._showHoverRipple();\n            }\n            this._hostElement.classList.remove('mdc-slider__thumb--focused');\n        };\n        this._onDragStart = () => {\n            this._isActive = true;\n            this._showActiveRipple();\n        };\n        this._onDragEnd = () => {\n            this._isActive = false;\n            this._hideRipple(this._activeRippleRef);\n            // Happens when the user starts dragging a thumb, tabs away, and then stops dragging.\n            if (!this._sliderInput._isFocused) {\n                this._hideRipple(this._focusRippleRef);\n            }\n        };\n        this._hostElement = _elementRef.nativeElement;\n    }\n    ngAfterViewInit() {\n        this._ripple.radius = 24;\n        this._sliderInput = this._slider._getInput(this.thumbPosition);\n        this._sliderInputEl = this._sliderInput._hostElement;\n        const input = this._sliderInputEl;\n        // These listeners don't update any data bindings so we bind them outside\n        // of the NgZone to prevent Angular from needlessly running change detection.\n        this._ngZone.runOutsideAngular(() => {\n            input.addEventListener('pointermove', this._onPointerMove);\n            input.addEventListener('pointerdown', this._onDragStart);\n            input.addEventListener('pointerup', this._onDragEnd);\n            input.addEventListener('pointerleave', this._onMouseLeave);\n            input.addEventListener('focus', this._onFocus);\n            input.addEventListener('blur', this._onBlur);\n        });\n    }\n    ngOnDestroy() {\n        const input = this._sliderInputEl;\n        input.removeEventListener('pointermove', this._onPointerMove);\n        input.removeEventListener('pointerdown', this._onDragStart);\n        input.removeEventListener('pointerup', this._onDragEnd);\n        input.removeEventListener('pointerleave', this._onMouseLeave);\n        input.removeEventListener('focus', this._onFocus);\n        input.removeEventListener('blur', this._onBlur);\n    }\n    /** Handles displaying the hover ripple. */\n    _showHoverRipple() {\n        if (!this._isShowingRipple(this._hoverRippleRef)) {\n            this._hoverRippleRef = this._showRipple({ enterDuration: 0, exitDuration: 0 });\n            this._hoverRippleRef?.element.classList.add('mat-mdc-slider-hover-ripple');\n        }\n    }\n    /** Handles displaying the focus ripple. */\n    _showFocusRipple() {\n        // Show the focus ripple event if noop animations are enabled.\n        if (!this._isShowingRipple(this._focusRippleRef)) {\n            this._focusRippleRef = this._showRipple({ enterDuration: 0, exitDuration: 0 }, true);\n            this._focusRippleRef?.element.classList.add('mat-mdc-slider-focus-ripple');\n        }\n    }\n    /** Handles displaying the active ripple. */\n    _showActiveRipple() {\n        if (!this._isShowingRipple(this._activeRippleRef)) {\n            this._activeRippleRef = this._showRipple({ enterDuration: 225, exitDuration: 400 });\n            this._activeRippleRef?.element.classList.add('mat-mdc-slider-active-ripple');\n        }\n    }\n    /** Whether the given rippleRef is currently fading in or visible. */\n    _isShowingRipple(rippleRef) {\n        return rippleRef?.state === 0 /* RippleState.FADING_IN */ || rippleRef?.state === 1 /* RippleState.VISIBLE */;\n    }\n    /** Manually launches the slider thumb ripple using the specified ripple animation config. */\n    _showRipple(animation, ignoreGlobalRippleConfig) {\n        if (this._slider.disabled) {\n            return;\n        }\n        this._showValueIndicator();\n        if (this._slider._isRange) {\n            const sibling = this._slider._getThumb(this.thumbPosition === 1 /* _MatThumb.START */ ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */);\n            sibling._showValueIndicator();\n        }\n        if (this._slider._globalRippleOptions?.disabled && !ignoreGlobalRippleConfig) {\n            return;\n        }\n        return this._ripple.launch({\n            animation: this._slider._noopAnimations ? { enterDuration: 0, exitDuration: 0 } : animation,\n            centered: true,\n            persistent: true,\n        });\n    }\n    /**\n     * Fades out the given ripple.\n     * Also hides the value indicator if no ripple is showing.\n     */\n    _hideRipple(rippleRef) {\n        rippleRef?.fadeOut();\n        if (this._isShowingAnyRipple()) {\n            return;\n        }\n        if (!this._slider._isRange) {\n            this._hideValueIndicator();\n        }\n        const sibling = this._getSibling();\n        if (!sibling._isShowingAnyRipple()) {\n            this._hideValueIndicator();\n            sibling._hideValueIndicator();\n        }\n    }\n    /** Shows the value indicator ui. */\n    _showValueIndicator() {\n        this._hostElement.classList.add('mdc-slider__thumb--with-indicator');\n    }\n    /** Hides the value indicator ui. */\n    _hideValueIndicator() {\n        this._hostElement.classList.remove('mdc-slider__thumb--with-indicator');\n    }\n    _getSibling() {\n        return this._slider._getThumb(this.thumbPosition === 1 /* _MatThumb.START */ ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */);\n    }\n    /** Gets the value indicator container's native HTML element. */\n    _getValueIndicatorContainer() {\n        return this._valueIndicatorContainer?.nativeElement;\n    }\n    /** Gets the native HTML element of the slider thumb knob. */\n    _getKnob() {\n        return this._knob.nativeElement;\n    }\n    _isShowingAnyRipple() {\n        return (this._isShowingRipple(this._hoverRippleRef) ||\n            this._isShowingRipple(this._focusRippleRef) ||\n            this._isShowingRipple(this._activeRippleRef));\n    }\n    _isSliderThumbHovered(event, rect) {\n        const radius = rect.width / 2;\n        const centerX = rect.x + radius;\n        const centerY = rect.y + radius;\n        const dx = event.clientX - centerX;\n        const dy = event.clientY - centerY;\n        return Math.pow(dx, 2) + Math.pow(dy, 2) < Math.pow(radius, 2);\n    }\n}\nMatSliderVisualThumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderVisualThumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: MAT_SLIDER }], target: i0.ɵɵFactoryTarget.Component });\nMatSliderVisualThumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatSliderVisualThumb, selector: \"mat-slider-visual-thumb\", inputs: { discrete: \"discrete\", thumbPosition: \"thumbPosition\", valueIndicatorText: \"valueIndicatorText\" }, host: { classAttribute: \"mdc-slider__thumb mat-mdc-slider-visual-thumb\" }, providers: [{ provide: MAT_SLIDER_VISUAL_THUMB, useExisting: MatSliderVisualThumb }], viewQueries: [{ propertyName: \"_ripple\", first: true, predicate: MatRipple, descendants: true }, { propertyName: \"_knob\", first: true, predicate: [\"knob\"], descendants: true }, { propertyName: \"_valueIndicatorContainer\", first: true, predicate: [\"valueIndicatorContainer\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"mdc-slider__value-indicator-container\\\" *ngIf=\\\"discrete\\\" #valueIndicatorContainer>\\n  <div class=\\\"mdc-slider__value-indicator\\\">\\n    <span class=\\\"mdc-slider__value-indicator-text\\\">{{valueIndicatorText}}</span>\\n  </div>\\n</div>\\n<div class=\\\"mdc-slider__thumb-knob\\\" #knob></div>\\n<div matRipple class=\\\"mat-mdc-focus-indicator\\\" [matRippleDisabled]=\\\"true\\\"></div>\\n\", styles: [\".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}\"], dependencies: [{ kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderVisualThumb, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-slider-visual-thumb', host: {\n                        'class': 'mdc-slider__thumb mat-mdc-slider-visual-thumb',\n                    }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: MAT_SLIDER_VISUAL_THUMB, useExisting: MatSliderVisualThumb }], template: \"<div class=\\\"mdc-slider__value-indicator-container\\\" *ngIf=\\\"discrete\\\" #valueIndicatorContainer>\\n  <div class=\\\"mdc-slider__value-indicator\\\">\\n    <span class=\\\"mdc-slider__value-indicator-text\\\">{{valueIndicatorText}}</span>\\n  </div>\\n</div>\\n<div class=\\\"mdc-slider__thumb-knob\\\" #knob></div>\\n<div matRipple class=\\\"mat-mdc-focus-indicator\\\" [matRippleDisabled]=\\\"true\\\"></div>\\n\", styles: [\".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}\"] }]\n        }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [MAT_SLIDER]\n                }] }]; }, propDecorators: { discrete: [{\n                type: Input\n            }], thumbPosition: [{\n                type: Input\n            }], valueIndicatorText: [{\n                type: Input\n            }], _ripple: [{\n                type: ViewChild,\n                args: [MatRipple]\n            }], _knob: [{\n                type: ViewChild,\n                args: ['knob']\n            }], _valueIndicatorContainer: [{\n                type: ViewChild,\n                args: ['valueIndicatorContainer']\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// TODO(wagnermaciel): maybe handle the following edge case:\n// 1. start dragging discrete slider\n// 2. tab to disable checkbox\n// 3. without ending drag, disable the slider\n// Boilerplate for applying mixins to MatSlider.\nconst _MatSliderMixinBase = mixinColor(mixinDisableRipple(class {\n    constructor(_elementRef) {\n        this._elementRef = _elementRef;\n    }\n}), 'primary');\n/**\n * Allows users to select from a range of values by moving the slider thumb. It is similar in\n * behavior to the native `<input type=\"range\">` element.\n */\nclass MatSlider extends _MatSliderMixinBase {\n    /** Whether the slider is disabled. */\n    get disabled() {\n        return this._disabled;\n    }\n    set disabled(v) {\n        this._disabled = coerceBooleanProperty(v);\n        const endInput = this._getInput(2 /* _MatThumb.END */);\n        const startInput = this._getInput(1 /* _MatThumb.START */);\n        if (endInput) {\n            endInput.disabled = this._disabled;\n        }\n        if (startInput) {\n            startInput.disabled = this._disabled;\n        }\n    }\n    /** Whether the slider displays a numeric value label upon pressing the thumb. */\n    get discrete() {\n        return this._discrete;\n    }\n    set discrete(v) {\n        this._discrete = coerceBooleanProperty(v);\n        this._updateValueIndicatorUIs();\n    }\n    /** Whether the slider displays tick marks along the slider track. */\n    get showTickMarks() {\n        return this._showTickMarks;\n    }\n    set showTickMarks(v) {\n        this._showTickMarks = coerceBooleanProperty(v);\n    }\n    /** The minimum value that the slider can have. */\n    get min() {\n        return this._min;\n    }\n    set min(v) {\n        const min = coerceNumberProperty(v, this._min);\n        if (this._min !== min) {\n            this._updateMin(min);\n        }\n    }\n    _updateMin(min) {\n        const prevMin = this._min;\n        this._min = min;\n        this._isRange ? this._updateMinRange({ old: prevMin, new: min }) : this._updateMinNonRange(min);\n        this._onMinMaxOrStepChange();\n    }\n    _updateMinRange(min) {\n        const endInput = this._getInput(2 /* _MatThumb.END */);\n        const startInput = this._getInput(1 /* _MatThumb.START */);\n        const oldEndValue = endInput.value;\n        const oldStartValue = startInput.value;\n        startInput.min = min.new;\n        endInput.min = Math.max(min.new, startInput.value);\n        startInput.max = Math.min(endInput.max, endInput.value);\n        startInput._updateWidthInactive();\n        endInput._updateWidthInactive();\n        min.new < min.old\n            ? this._onTranslateXChangeBySideEffect(endInput, startInput)\n            : this._onTranslateXChangeBySideEffect(startInput, endInput);\n        if (oldEndValue !== endInput.value) {\n            this._onValueChange(endInput);\n        }\n        if (oldStartValue !== startInput.value) {\n            this._onValueChange(startInput);\n        }\n    }\n    _updateMinNonRange(min) {\n        const input = this._getInput(2 /* _MatThumb.END */);\n        if (input) {\n            const oldValue = input.value;\n            input.min = min;\n            input._updateThumbUIByValue();\n            this._updateTrackUI(input);\n            if (oldValue !== input.value) {\n                this._onValueChange(input);\n            }\n        }\n    }\n    /** The maximum value that the slider can have. */\n    get max() {\n        return this._max;\n    }\n    set max(v) {\n        const max = coerceNumberProperty(v, this._max);\n        if (this._max !== max) {\n            this._updateMax(max);\n        }\n    }\n    _updateMax(max) {\n        const prevMax = this._max;\n        this._max = max;\n        this._isRange ? this._updateMaxRange({ old: prevMax, new: max }) : this._updateMaxNonRange(max);\n        this._onMinMaxOrStepChange();\n    }\n    _updateMaxRange(max) {\n        const endInput = this._getInput(2 /* _MatThumb.END */);\n        const startInput = this._getInput(1 /* _MatThumb.START */);\n        const oldEndValue = endInput.value;\n        const oldStartValue = startInput.value;\n        endInput.max = max.new;\n        startInput.max = Math.min(max.new, endInput.value);\n        endInput.min = startInput.value;\n        endInput._updateWidthInactive();\n        startInput._updateWidthInactive();\n        max.new > max.old\n            ? this._onTranslateXChangeBySideEffect(startInput, endInput)\n            : this._onTranslateXChangeBySideEffect(endInput, startInput);\n        if (oldEndValue !== endInput.value) {\n            this._onValueChange(endInput);\n        }\n        if (oldStartValue !== startInput.value) {\n            this._onValueChange(startInput);\n        }\n    }\n    _updateMaxNonRange(max) {\n        const input = this._getInput(2 /* _MatThumb.END */);\n        if (input) {\n            const oldValue = input.value;\n            input.max = max;\n            input._updateThumbUIByValue();\n            this._updateTrackUI(input);\n            if (oldValue !== input.value) {\n                this._onValueChange(input);\n            }\n        }\n    }\n    /** The values at which the thumb will snap. */\n    get step() {\n        return this._step;\n    }\n    set step(v) {\n        const step = coerceNumberProperty(v, this._step);\n        if (this._step !== step) {\n            this._updateStep(step);\n        }\n    }\n    _updateStep(step) {\n        this._step = step;\n        this._isRange ? this._updateStepRange() : this._updateStepNonRange();\n        this._onMinMaxOrStepChange();\n    }\n    _updateStepRange() {\n        const endInput = this._getInput(2 /* _MatThumb.END */);\n        const startInput = this._getInput(1 /* _MatThumb.START */);\n        const oldEndValue = endInput.value;\n        const oldStartValue = startInput.value;\n        const prevStartValue = startInput.value;\n        endInput.min = this._min;\n        startInput.max = this._max;\n        endInput.step = this._step;\n        startInput.step = this._step;\n        if (this._platform.SAFARI) {\n            endInput.value = endInput.value;\n            startInput.value = startInput.value;\n        }\n        endInput.min = Math.max(this._min, startInput.value);\n        startInput.max = Math.min(this._max, endInput.value);\n        startInput._updateWidthInactive();\n        endInput._updateWidthInactive();\n        endInput.value < prevStartValue\n            ? this._onTranslateXChangeBySideEffect(startInput, endInput)\n            : this._onTranslateXChangeBySideEffect(endInput, startInput);\n        if (oldEndValue !== endInput.value) {\n            this._onValueChange(endInput);\n        }\n        if (oldStartValue !== startInput.value) {\n            this._onValueChange(startInput);\n        }\n    }\n    _updateStepNonRange() {\n        const input = this._getInput(2 /* _MatThumb.END */);\n        if (input) {\n            const oldValue = input.value;\n            input.step = this._step;\n            if (this._platform.SAFARI) {\n                input.value = input.value;\n            }\n            input._updateThumbUIByValue();\n            if (oldValue !== input.value) {\n                this._onValueChange(input);\n            }\n        }\n    }\n    constructor(_ngZone, _cdr, _platform, elementRef, _dir, _globalRippleOptions, animationMode) {\n        super(elementRef);\n        this._ngZone = _ngZone;\n        this._cdr = _cdr;\n        this._platform = _platform;\n        this._dir = _dir;\n        this._globalRippleOptions = _globalRippleOptions;\n        this._disabled = false;\n        this._discrete = false;\n        this._showTickMarks = false;\n        this._min = 0;\n        this._max = 100;\n        this._step = 0;\n        /**\n         * Function that will be used to format the value before it is displayed\n         * in the thumb label. Can be used to format very large number in order\n         * for them to fit into the slider thumb.\n         */\n        this.displayWith = (value) => `${value}`;\n        this._rippleRadius = 24;\n        // The value indicator tooltip text for the visual slider thumb(s).\n        /** @docs-private */\n        this.startValueIndicatorText = '';\n        /** @docs-private */\n        this.endValueIndicatorText = '';\n        this._isRange = false;\n        /** Whether the slider is rtl. */\n        this._isRtl = false;\n        this._hasViewInitialized = false;\n        /**\n         * The width of the tick mark track.\n         * The tick mark track width is different from full track width\n         */\n        this._tickMarkTrackWidth = 0;\n        this._hasAnimation = false;\n        this._resizeTimer = null;\n        /** The radius of the native slider's knob. AFAIK there is no way to avoid hardcoding this. */\n        this._knobRadius = 8;\n        /** Whether or not the slider thumbs overlap. */\n        this._thumbsOverlap = false;\n        this._noopAnimations = animationMode === 'NoopAnimations';\n        this._dirChangeSubscription = this._dir.change.subscribe(() => this._onDirChange());\n        this._isRtl = this._dir.value === 'rtl';\n    }\n    ngAfterViewInit() {\n        if (this._platform.isBrowser) {\n            this._updateDimensions();\n        }\n        const eInput = this._getInput(2 /* _MatThumb.END */);\n        const sInput = this._getInput(1 /* _MatThumb.START */);\n        this._isRange = !!eInput && !!sInput;\n        this._cdr.detectChanges();\n        if (typeof ngDevMode === 'undefined' || ngDevMode) {\n            _validateInputs(this._isRange, this._getInput(2 /* _MatThumb.END */), this._getInput(1 /* _MatThumb.START */));\n        }\n        const thumb = this._getThumb(2 /* _MatThumb.END */);\n        this._rippleRadius = thumb._ripple.radius;\n        this._inputPadding = this._rippleRadius - this._knobRadius;\n        this._inputOffset = this._knobRadius;\n        this._isRange\n            ? this._initUIRange(eInput, sInput)\n            : this._initUINonRange(eInput);\n        this._updateTrackUI(eInput);\n        this._updateTickMarkUI();\n        this._updateTickMarkTrackUI();\n        this._observeHostResize();\n        this._cdr.detectChanges();\n    }\n    _initUINonRange(eInput) {\n        eInput.initProps();\n        eInput.initUI();\n        this._updateValueIndicatorUI(eInput);\n        this._hasViewInitialized = true;\n        eInput._updateThumbUIByValue();\n    }\n    _initUIRange(eInput, sInput) {\n        eInput.initProps();\n        eInput.initUI();\n        sInput.initProps();\n        sInput.initUI();\n        eInput._updateMinMax();\n        sInput._updateMinMax();\n        eInput._updateStaticStyles();\n        sInput._updateStaticStyles();\n        this._updateValueIndicatorUIs();\n        this._hasViewInitialized = true;\n        eInput._updateThumbUIByValue();\n        sInput._updateThumbUIByValue();\n    }\n    ngOnDestroy() {\n        this._dirChangeSubscription.unsubscribe();\n        this._resizeObserver?.disconnect();\n        this._resizeObserver = null;\n    }\n    /** Handles updating the slider ui after a dir change. */\n    _onDirChange() {\n        this._isRtl = this._dir.value === 'rtl';\n        this._isRange ? this._onDirChangeRange() : this._onDirChangeNonRange();\n        this._updateTickMarkUI();\n    }\n    _onDirChangeRange() {\n        const endInput = this._getInput(2 /* _MatThumb.END */);\n        const startInput = this._getInput(1 /* _MatThumb.START */);\n        endInput._setIsLeftThumb();\n        startInput._setIsLeftThumb();\n        endInput.translateX = endInput._calcTranslateXByValue();\n        startInput.translateX = startInput._calcTranslateXByValue();\n        endInput._updateStaticStyles();\n        startInput._updateStaticStyles();\n        endInput._updateWidthInactive();\n        startInput._updateWidthInactive();\n        endInput._updateThumbUIByValue();\n        startInput._updateThumbUIByValue();\n    }\n    _onDirChangeNonRange() {\n        const input = this._getInput(2 /* _MatThumb.END */);\n        input._updateThumbUIByValue();\n    }\n    /** Starts observing and updating the slider if the host changes its size. */\n    _observeHostResize() {\n        if (typeof ResizeObserver === 'undefined' || !ResizeObserver) {\n            return;\n        }\n        this._ngZone.runOutsideAngular(() => {\n            this._resizeObserver = new ResizeObserver(() => {\n                if (this._isActive()) {\n                    return;\n                }\n                if (this._resizeTimer) {\n                    clearTimeout(this._resizeTimer);\n                }\n                this._onResize();\n            });\n            this._resizeObserver.observe(this._elementRef.nativeElement);\n        });\n    }\n    /** Whether any of the thumbs are currently active. */\n    _isActive() {\n        return this._getThumb(1 /* _MatThumb.START */)._isActive || this._getThumb(2 /* _MatThumb.END */)._isActive;\n    }\n    _getValue(thumbPosition = 2 /* _MatThumb.END */) {\n        const input = this._getInput(thumbPosition);\n        if (!input) {\n            return this.min;\n        }\n        return input.value;\n    }\n    _skipUpdate() {\n        return !!(this._getInput(1 /* _MatThumb.START */)?._skipUIUpdate || this._getInput(2 /* _MatThumb.END */)?._skipUIUpdate);\n    }\n    /** Stores the slider dimensions. */\n    _updateDimensions() {\n        this._cachedWidth = this._elementRef.nativeElement.offsetWidth;\n        this._cachedLeft = this._elementRef.nativeElement.getBoundingClientRect().left;\n    }\n    /** Sets the styles for the active portion of the track. */\n    _setTrackActiveStyles(styles) {\n        const trackStyle = this._trackActive.nativeElement.style;\n        const animationOriginChanged = styles.left !== trackStyle.left && styles.right !== trackStyle.right;\n        trackStyle.left = styles.left;\n        trackStyle.right = styles.right;\n        trackStyle.transformOrigin = styles.transformOrigin;\n        if (animationOriginChanged) {\n            this._elementRef.nativeElement.classList.add('mat-mdc-slider-disable-track-animation');\n            this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n                this._elementRef.nativeElement.classList.remove('mat-mdc-slider-disable-track-animation');\n                trackStyle.transform = styles.transform;\n            });\n        }\n        else {\n            trackStyle.transform = styles.transform;\n        }\n    }\n    /** Returns the translateX positioning for a tick mark based on it's index. */\n    _calcTickMarkTransform(index) {\n        // TODO(wagnermaciel): See if we can avoid doing this and just using flex to position these.\n        const translateX = index * (this._tickMarkTrackWidth / (this._tickMarks.length - 1));\n        return `translateX(${translateX}px`;\n    }\n    // Handlers for updating the slider ui.\n    _onTranslateXChange(source) {\n        if (!this._hasViewInitialized) {\n            return;\n        }\n        this._updateThumbUI(source);\n        this._updateTrackUI(source);\n        this._updateOverlappingThumbUI(source);\n    }\n    _onTranslateXChangeBySideEffect(input1, input2) {\n        if (!this._hasViewInitialized) {\n            return;\n        }\n        input1._updateThumbUIByValue();\n        input2._updateThumbUIByValue();\n    }\n    _onValueChange(source) {\n        if (!this._hasViewInitialized) {\n            return;\n        }\n        this._updateValueIndicatorUI(source);\n        this._updateTickMarkUI();\n        this._cdr.detectChanges();\n    }\n    _onMinMaxOrStepChange() {\n        if (!this._hasViewInitialized) {\n            return;\n        }\n        this._updateTickMarkUI();\n        this._updateTickMarkTrackUI();\n        this._cdr.markForCheck();\n    }\n    _onResize() {\n        if (!this._hasViewInitialized) {\n            return;\n        }\n        this._updateDimensions();\n        if (this._isRange) {\n            const eInput = this._getInput(2 /* _MatThumb.END */);\n            const sInput = this._getInput(1 /* _MatThumb.START */);\n            eInput._updateThumbUIByValue();\n            sInput._updateThumbUIByValue();\n            eInput._updateStaticStyles();\n            sInput._updateStaticStyles();\n            eInput._updateMinMax();\n            sInput._updateMinMax();\n            eInput._updateWidthInactive();\n            sInput._updateWidthInactive();\n        }\n        else {\n            const eInput = this._getInput(2 /* _MatThumb.END */);\n            if (eInput) {\n                eInput._updateThumbUIByValue();\n            }\n        }\n        this._updateTickMarkUI();\n        this._updateTickMarkTrackUI();\n        this._cdr.detectChanges();\n    }\n    /** Returns true if the slider knobs are overlapping one another. */\n    _areThumbsOverlapping() {\n        const startInput = this._getInput(1 /* _MatThumb.START */);\n        const endInput = this._getInput(2 /* _MatThumb.END */);\n        if (!startInput || !endInput) {\n            return false;\n        }\n        return endInput.translateX - startInput.translateX < 20;\n    }\n    /**\n     * Updates the class names of overlapping slider thumbs so\n     * that the current active thumb is styled to be on \"top\".\n     */\n    _updateOverlappingThumbClassNames(source) {\n        const sibling = source.getSibling();\n        const sourceThumb = this._getThumb(source.thumbPosition);\n        const siblingThumb = this._getThumb(sibling.thumbPosition);\n        siblingThumb._hostElement.classList.remove('mdc-slider__thumb--top');\n        sourceThumb._hostElement.classList.toggle('mdc-slider__thumb--top', this._thumbsOverlap);\n    }\n    /** Updates the UI of slider thumbs when they begin or stop overlapping. */\n    _updateOverlappingThumbUI(source) {\n        if (!this._isRange || this._skipUpdate()) {\n            return;\n        }\n        if (this._thumbsOverlap !== this._areThumbsOverlapping()) {\n            this._thumbsOverlap = !this._thumbsOverlap;\n            this._updateOverlappingThumbClassNames(source);\n        }\n    }\n    // _MatThumb styles update conditions\n    //\n    // 1. TranslateX, resize, or dir change\n    //    - Reason: The thumb styles need to be updated according to the new translateX.\n    // 2. Min, max, or step\n    //    - Reason: The value may have silently changed.\n    /** Updates the translateX of the given thumb. */\n    _updateThumbUI(source) {\n        if (this._skipUpdate()) {\n            return;\n        }\n        const thumb = this._getThumb(source.thumbPosition === 2 /* _MatThumb.END */ ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */);\n        thumb._hostElement.style.transform = `translateX(${source.translateX}px)`;\n    }\n    // Value indicator text update conditions\n    //\n    // 1. Value\n    //    - Reason: The value displayed needs to be updated.\n    // 2. Min, max, or step\n    //    - Reason: The value may have silently changed.\n    /** Updates the value indicator tooltip ui for the given thumb. */\n    _updateValueIndicatorUI(source) {\n        if (this._skipUpdate()) {\n            return;\n        }\n        const valuetext = this.displayWith(source.value);\n        this._hasViewInitialized\n            ? (source._valuetext = valuetext)\n            : source._hostElement.setAttribute('aria-valuetext', valuetext);\n        if (this.discrete) {\n            source.thumbPosition === 1 /* _MatThumb.START */\n                ? (this.startValueIndicatorText = valuetext)\n                : (this.endValueIndicatorText = valuetext);\n            const visualThumb = this._getThumb(source.thumbPosition);\n            valuetext.length < 3\n                ? visualThumb._hostElement.classList.add('mdc-slider__thumb--short-value')\n                : visualThumb._hostElement.classList.remove('mdc-slider__thumb--short-value');\n        }\n    }\n    /** Updates all value indicator UIs in the slider. */\n    _updateValueIndicatorUIs() {\n        const eInput = this._getInput(2 /* _MatThumb.END */);\n        const sInput = this._getInput(1 /* _MatThumb.START */);\n        if (eInput) {\n            this._updateValueIndicatorUI(eInput);\n        }\n        if (sInput) {\n            this._updateValueIndicatorUI(sInput);\n        }\n    }\n    // Update Tick Mark Track Width\n    //\n    // 1. Min, max, or step\n    //    - Reason: The maximum reachable value may have changed.\n    //    - Side note: The maximum reachable value is different from the maximum value set by the\n    //      user. For example, a slider with [min: 5, max: 100, step: 10] would have a maximum\n    //      reachable value of 95.\n    // 2. Resize\n    //    - Reason: The position for the maximum reachable value needs to be recalculated.\n    /** Updates the width of the tick mark track. */\n    _updateTickMarkTrackUI() {\n        if (!this.showTickMarks || this._skipUpdate()) {\n            return;\n        }\n        const step = this._step && this._step > 0 ? this._step : 1;\n        const maxValue = Math.floor(this.max / step) * step;\n        const percentage = (maxValue - this.min) / (this.max - this.min);\n        this._tickMarkTrackWidth = this._cachedWidth * percentage - 6;\n    }\n    // Track active update conditions\n    //\n    // 1. TranslateX\n    //    - Reason: The track active should line up with the new thumb position.\n    // 2. Min or max\n    //    - Reason #1: The 'active' percentage needs to be recalculated.\n    //    - Reason #2: The value may have silently changed.\n    // 3. Step\n    //    - Reason: The value may have silently changed causing the thumb(s) to shift.\n    // 4. Dir change\n    //    - Reason: The track active will need to be updated according to the new thumb position(s).\n    // 5. Resize\n    //    - Reason: The total width the 'active' tracks translateX is based on has changed.\n    /** Updates the scale on the active portion of the track. */\n    _updateTrackUI(source) {\n        if (this._skipUpdate()) {\n            return;\n        }\n        this._isRange\n            ? this._updateTrackUIRange(source)\n            : this._updateTrackUINonRange(source);\n    }\n    _updateTrackUIRange(source) {\n        const sibling = source.getSibling();\n        if (!sibling || !this._cachedWidth) {\n            return;\n        }\n        const activePercentage = Math.abs(sibling.translateX - source.translateX) / this._cachedWidth;\n        if (source._isLeftThumb && this._cachedWidth) {\n            this._setTrackActiveStyles({\n                left: 'auto',\n                right: `${this._cachedWidth - sibling.translateX}px`,\n                transformOrigin: 'right',\n                transform: `scaleX(${activePercentage})`,\n            });\n        }\n        else {\n            this._setTrackActiveStyles({\n                left: `${sibling.translateX}px`,\n                right: 'auto',\n                transformOrigin: 'left',\n                transform: `scaleX(${activePercentage})`,\n            });\n        }\n    }\n    _updateTrackUINonRange(source) {\n        this._isRtl\n            ? this._setTrackActiveStyles({\n                left: 'auto',\n                right: '0px',\n                transformOrigin: 'right',\n                transform: `scaleX(${1 - source.fillPercentage})`,\n            })\n            : this._setTrackActiveStyles({\n                left: '0px',\n                right: 'auto',\n                transformOrigin: 'left',\n                transform: `scaleX(${source.fillPercentage})`,\n            });\n    }\n    // Tick mark update conditions\n    //\n    // 1. Value\n    //    - Reason: a tick mark which was once active might now be inactive or vice versa.\n    // 2. Min, max, or step\n    //    - Reason #1: the number of tick marks may have changed.\n    //    - Reason #2: The value may have silently changed.\n    /** Updates the dots along the slider track. */\n    _updateTickMarkUI() {\n        if (!this.showTickMarks ||\n            this.step === undefined ||\n            this.min === undefined ||\n            this.max === undefined) {\n            return;\n        }\n        const step = this.step > 0 ? this.step : 1;\n        this._isRange ? this._updateTickMarkUIRange(step) : this._updateTickMarkUINonRange(step);\n        if (this._isRtl) {\n            this._tickMarks.reverse();\n        }\n    }\n    _updateTickMarkUINonRange(step) {\n        const value = this._getValue();\n        let numActive = Math.max(Math.round((value - this.min) / step), 0);\n        let numInactive = Math.max(Math.round((this.max - value) / step), 0);\n        this._isRtl ? numActive++ : numInactive++;\n        this._tickMarks = Array(numActive)\n            .fill(0 /* _MatTickMark.ACTIVE */)\n            .concat(Array(numInactive).fill(1 /* _MatTickMark.INACTIVE */));\n    }\n    _updateTickMarkUIRange(step) {\n        const endValue = this._getValue();\n        const startValue = this._getValue(1 /* _MatThumb.START */);\n        const numInactiveBeforeStartThumb = Math.max(Math.floor((startValue - this.min) / step), 0);\n        const numActive = Math.max(Math.floor((endValue - startValue) / step) + 1, 0);\n        const numInactiveAfterEndThumb = Math.max(Math.floor((this.max - endValue) / step), 0);\n        this._tickMarks = Array(numInactiveBeforeStartThumb)\n            .fill(1 /* _MatTickMark.INACTIVE */)\n            .concat(Array(numActive).fill(0 /* _MatTickMark.ACTIVE */), Array(numInactiveAfterEndThumb).fill(1 /* _MatTickMark.INACTIVE */));\n    }\n    /** Gets the slider thumb input of the given thumb position. */\n    _getInput(thumbPosition) {\n        if (thumbPosition === 2 /* _MatThumb.END */ && this._input) {\n            return this._input;\n        }\n        if (this._inputs?.length) {\n            return thumbPosition === 1 /* _MatThumb.START */ ? this._inputs.first : this._inputs.last;\n        }\n        return;\n    }\n    /** Gets the slider thumb HTML input element of the given thumb position. */\n    _getThumb(thumbPosition) {\n        return thumbPosition === 2 /* _MatThumb.END */ ? this._thumbs?.last : this._thumbs?.first;\n    }\n    _setTransition(withAnimation) {\n        this._hasAnimation = withAnimation && !this._noopAnimations;\n        this._elementRef.nativeElement.classList.toggle('mat-mdc-slider-with-animation', this._hasAnimation);\n    }\n}\nMatSlider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSlider, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.Platform }, { token: i0.ElementRef }, { token: i2$1.Directionality, optional: true }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nMatSlider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatSlider, selector: \"mat-slider\", inputs: { color: \"color\", disableRipple: \"disableRipple\", disabled: \"disabled\", discrete: \"discrete\", showTickMarks: \"showTickMarks\", min: \"min\", max: \"max\", step: \"step\", displayWith: \"displayWith\" }, host: { properties: { \"class.mdc-slider--range\": \"_isRange\", \"class.mdc-slider--disabled\": \"disabled\", \"class.mdc-slider--discrete\": \"discrete\", \"class.mdc-slider--tick-marks\": \"showTickMarks\", \"class._mat-animation-noopable\": \"_noopAnimations\" }, classAttribute: \"mat-mdc-slider mdc-slider\" }, providers: [{ provide: MAT_SLIDER, useExisting: MatSlider }], queries: [{ propertyName: \"_input\", first: true, predicate: MAT_SLIDER_THUMB, descendants: true }, { propertyName: \"_inputs\", predicate: MAT_SLIDER_RANGE_THUMB }], viewQueries: [{ propertyName: \"_trackActive\", first: true, predicate: [\"trackActive\"], descendants: true }, { propertyName: \"_thumbs\", predicate: MAT_SLIDER_VISUAL_THUMB, descendants: true }], exportAs: [\"matSlider\"], usesInheritance: true, ngImport: i0, template: \"<!-- Inputs -->\\n<ng-content></ng-content>\\n\\n<!-- Track -->\\n<div class=\\\"mdc-slider__track\\\">\\n  <div class=\\\"mdc-slider__track--inactive\\\"></div>\\n  <div class=\\\"mdc-slider__track--active\\\">\\n    <div #trackActive class=\\\"mdc-slider__track--active_fill\\\"></div>\\n  </div>\\n  <div *ngIf=\\\"showTickMarks\\\" class=\\\"mdc-slider__tick-marks\\\" #tickMarkContainer>\\n    <ng-container *ngIf=\\\"_cachedWidth\\\">\\n        <div\\n          *ngFor=\\\"let tickMark of _tickMarks; let i = index\\\"\\n          [class]=\\\"tickMark === 0 ? 'mdc-slider__tick-mark--active' : 'mdc-slider__tick-mark--inactive'\\\"\\n          [style.transform]=\\\"_calcTickMarkTransform(i)\\\"></div>\\n    </ng-container>\\n  </div>\\n</div>\\n\\n<!-- Thumbs -->\\n<mat-slider-visual-thumb\\n  *ngIf=\\\"_isRange\\\"\\n  [discrete]=\\\"discrete\\\"\\n  [thumbPosition]=\\\"1\\\"\\n  [valueIndicatorText]=\\\"startValueIndicatorText\\\">\\n</mat-slider-visual-thumb>\\n\\n<mat-slider-visual-thumb\\n  [discrete]=\\\"discrete\\\"\\n  [thumbPosition]=\\\"2\\\"\\n  [valueIndicatorText]=\\\"endValueIndicatorText\\\">\\n</mat-slider-visual-thumb>\\n\", styles: [\".mdc-slider{cursor:pointer;height:48px;margin:0 24px;position:relative;touch-action:pan-y}.mdc-slider .mdc-slider__track{position:absolute;top:50%;transform:translateY(-50%);width:100%}.mdc-slider .mdc-slider__track--active,.mdc-slider .mdc-slider__track--inactive{display:flex;height:100%;position:absolute;width:100%}.mdc-slider .mdc-slider__track--active{overflow:hidden}.mdc-slider .mdc-slider__track--active_fill{border-top-style:solid;box-sizing:border-box;height:100%;width:100%;position:relative;-webkit-transform-origin:left;transform-origin:left}[dir=rtl] .mdc-slider .mdc-slider__track--active_fill,.mdc-slider .mdc-slider__track--active_fill[dir=rtl]{-webkit-transform-origin:right;transform-origin:right}.mdc-slider .mdc-slider__track--inactive{left:0;top:0}.mdc-slider .mdc-slider__track--inactive::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__track--inactive::before{border-color:CanvasText}}.mdc-slider .mdc-slider__value-indicator-container{bottom:44px;left:var(--slider-value-indicator-container-left, 50%);pointer-events:none;position:absolute;right:var(--slider-value-indicator-container-right);transform:var(--slider-value-indicator-container-transform, translateX(-50%))}.mdc-slider .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0.4, 0, 1, 1);align-items:center;border-radius:4px;display:flex;height:32px;padding:0 12px;transform:scale(0);transform-origin:bottom}.mdc-slider .mdc-slider__value-indicator::before{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:6px solid;bottom:-5px;content:\\\"\\\";height:0;left:var(--slider-value-indicator-caret-left, 50%);position:absolute;right:var(--slider-value-indicator-caret-right);transform:var(--slider-value-indicator-caret-transform, translateX(-50%));width:0}.mdc-slider .mdc-slider__value-indicator::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__value-indicator::after{border-color:CanvasText}}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator-container{pointer-events:auto}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(1)}@media(prefers-reduced-motion){.mdc-slider .mdc-slider__value-indicator,.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:none}}.mdc-slider .mdc-slider__thumb{display:flex;left:-24px;outline:none;position:absolute;user-select:none;height:48px;width:48px}.mdc-slider .mdc-slider__thumb--top{z-index:1}.mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-style:solid;border-width:1px;box-sizing:content-box}.mdc-slider .mdc-slider__thumb-knob{box-sizing:border-box;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%)}.mdc-slider .mdc-slider__tick-marks{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:space-between;padding:0 1px;position:absolute;width:100%}.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:transform 80ms ease}@media(prefers-reduced-motion){.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:none}}.mdc-slider--disabled{cursor:auto}.mdc-slider--disabled .mdc-slider__thumb{pointer-events:none}.mdc-slider__input{cursor:pointer;left:0;margin:0;height:100%;opacity:0;pointer-events:none;position:absolute;top:0;width:100%}.mat-mdc-slider{display:inline-block;box-sizing:border-box;outline:none;vertical-align:middle;margin-left:8px;margin-right:8px;width:auto;min-width:112px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb-knob{background-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000));border-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb::before,.mat-mdc-slider .mdc-slider__thumb::after{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover::before,.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-surface--hover::before{opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded--background-focused::before,.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):focus::before{transition-duration:75ms;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--mdc-slider-active-track-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--active_fill{border-color:var(--mdc-slider-disabled-active-track-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--mdc-slider-inactive-track-color, var(--mdc-theme-primary, #6200ee));opacity:.24}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--inactive{background-color:var(--mdc-slider-disabled-inactive-track-color, var(--mdc-theme-on-surface, #000));opacity:.24}.mat-mdc-slider .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-inactive-container-color, var(--mdc-theme-primary, #6200ee));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-disabled-container-color, var(--mdc-theme-on-surface, #000));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__value-indicator{background-color:var(--mdc-slider-label-container-color, #666666);opacity:1}.mat-mdc-slider .mdc-slider__value-indicator::before{border-top-color:var(--mdc-slider-label-container-color, #666666)}.mat-mdc-slider .mdc-slider__value-indicator{color:var(--mdc-slider-label-label-text-color, var(--mdc-theme-on-primary, #fff))}.mat-mdc-slider .mdc-slider__track{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__track--active{height:var(--mdc-slider-active-track-height, 6px);top:calc((var(--mdc-slider-inactive-track-height, 4px) - var(--mdc-slider-active-track-height, 6px)) / 2)}.mat-mdc-slider .mdc-slider__track--active_fill{border-top-width:var(--mdc-slider-active-track-height, 6px)}.mat-mdc-slider .mdc-slider__track--inactive{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{height:var(--mdc-slider-with-tick-marks-container-size, 2px);width:var(--mdc-slider-with-tick-marks-container-size, 2px)}.mat-mdc-slider.mdc-slider--disabled{opacity:0.38}.mat-mdc-slider .mdc-slider__value-indicator-text{letter-spacing:var(--mdc-slider-label-label-text-tracking, 0.0071428571em);font-size:var(--mdc-slider-label-label-text-size, 0.875rem);font-family:var(--mdc-slider-label-label-text-font, Roboto, sans-serif);font-weight:var(--mdc-slider-label-label-text-weight, 500);line-height:var(--mdc-slider-label-label-text-line-height, 1.375rem)}.mat-mdc-slider .mdc-slider__track--active{border-radius:var(--mdc-slider-active-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__track--inactive{border-radius:var(--mdc-slider-inactive-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__thumb-knob{border-radius:var(--mdc-slider-handle-shape, 50%);width:var(--mdc-slider-handle-width, 20px);height:var(--mdc-slider-handle-height, 20px);border-style:solid;border-width:calc(var(--mdc-slider-handle-height, 20px) / 2) calc(var(--mdc-slider-handle-width, 20px) / 2)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{border-radius:var(--mdc-slider-with-tick-marks-container-shape, 50%)}.mat-mdc-slider .mdc-slider__thumb-knob{box-shadow:var(--mdc-slider-handle-elevation, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb-knob{background-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:var(--mdc-slider-with-overlap-handle-outline-color, #fff);border-width:var(--mdc-slider-with-overlap-handle-outline-width, 1px)}.mat-mdc-slider .mdc-slider__input{box-sizing:content-box;pointer-events:auto}.mat-mdc-slider .mdc-slider__input.mat-mdc-slider-input-no-pointer-events{pointer-events:none}.mat-mdc-slider .mdc-slider__input.mat-slider__right-input{left:auto;right:0}.mat-mdc-slider .mdc-slider__thumb,.mat-mdc-slider .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider.mdc-slider--discrete .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider .mdc-slider__track,.mat-mdc-slider .mdc-slider__thumb{pointer-events:none}.mat-mdc-slider .mdc-slider__value-indicator{opacity:var(--mat-mdc-slider-value-indicator-opacity, 1)}.mat-mdc-slider .mat-ripple .mat-ripple-element{background-color:var(--mat-mdc-slider-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-hover-ripple{background-color:var(--mat-mdc-slider-hover-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-focus-ripple,.mat-mdc-slider .mat-ripple .mat-mdc-slider-active-ripple{background-color:var(--mat-mdc-slider-focus-ripple-color, transparent)}.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__track--active_fill,.mat-mdc-slider._mat-animation-noopable .mdc-slider__value-indicator{transition:none}.mat-mdc-slider .mat-mdc-focus-indicator::before{border-radius:50%}.mdc-slider__thumb--focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}\"], dependencies: [{ kind: \"directive\", type: i3.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: MatSliderVisualThumb, selector: \"mat-slider-visual-thumb\", inputs: [\"discrete\", \"thumbPosition\", \"valueIndicatorText\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSlider, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-slider', host: {\n                        'class': 'mat-mdc-slider mdc-slider',\n                        '[class.mdc-slider--range]': '_isRange',\n                        '[class.mdc-slider--disabled]': 'disabled',\n                        '[class.mdc-slider--discrete]': 'discrete',\n                        '[class.mdc-slider--tick-marks]': 'showTickMarks',\n                        '[class._mat-animation-noopable]': '_noopAnimations',\n                    }, exportAs: 'matSlider', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['color', 'disableRipple'], providers: [{ provide: MAT_SLIDER, useExisting: MatSlider }], template: \"<!-- Inputs -->\\n<ng-content></ng-content>\\n\\n<!-- Track -->\\n<div class=\\\"mdc-slider__track\\\">\\n  <div class=\\\"mdc-slider__track--inactive\\\"></div>\\n  <div class=\\\"mdc-slider__track--active\\\">\\n    <div #trackActive class=\\\"mdc-slider__track--active_fill\\\"></div>\\n  </div>\\n  <div *ngIf=\\\"showTickMarks\\\" class=\\\"mdc-slider__tick-marks\\\" #tickMarkContainer>\\n    <ng-container *ngIf=\\\"_cachedWidth\\\">\\n        <div\\n          *ngFor=\\\"let tickMark of _tickMarks; let i = index\\\"\\n          [class]=\\\"tickMark === 0 ? 'mdc-slider__tick-mark--active' : 'mdc-slider__tick-mark--inactive'\\\"\\n          [style.transform]=\\\"_calcTickMarkTransform(i)\\\"></div>\\n    </ng-container>\\n  </div>\\n</div>\\n\\n<!-- Thumbs -->\\n<mat-slider-visual-thumb\\n  *ngIf=\\\"_isRange\\\"\\n  [discrete]=\\\"discrete\\\"\\n  [thumbPosition]=\\\"1\\\"\\n  [valueIndicatorText]=\\\"startValueIndicatorText\\\">\\n</mat-slider-visual-thumb>\\n\\n<mat-slider-visual-thumb\\n  [discrete]=\\\"discrete\\\"\\n  [thumbPosition]=\\\"2\\\"\\n  [valueIndicatorText]=\\\"endValueIndicatorText\\\">\\n</mat-slider-visual-thumb>\\n\", styles: [\".mdc-slider{cursor:pointer;height:48px;margin:0 24px;position:relative;touch-action:pan-y}.mdc-slider .mdc-slider__track{position:absolute;top:50%;transform:translateY(-50%);width:100%}.mdc-slider .mdc-slider__track--active,.mdc-slider .mdc-slider__track--inactive{display:flex;height:100%;position:absolute;width:100%}.mdc-slider .mdc-slider__track--active{overflow:hidden}.mdc-slider .mdc-slider__track--active_fill{border-top-style:solid;box-sizing:border-box;height:100%;width:100%;position:relative;-webkit-transform-origin:left;transform-origin:left}[dir=rtl] .mdc-slider .mdc-slider__track--active_fill,.mdc-slider .mdc-slider__track--active_fill[dir=rtl]{-webkit-transform-origin:right;transform-origin:right}.mdc-slider .mdc-slider__track--inactive{left:0;top:0}.mdc-slider .mdc-slider__track--inactive::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__track--inactive::before{border-color:CanvasText}}.mdc-slider .mdc-slider__value-indicator-container{bottom:44px;left:var(--slider-value-indicator-container-left, 50%);pointer-events:none;position:absolute;right:var(--slider-value-indicator-container-right);transform:var(--slider-value-indicator-container-transform, translateX(-50%))}.mdc-slider .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0.4, 0, 1, 1);align-items:center;border-radius:4px;display:flex;height:32px;padding:0 12px;transform:scale(0);transform-origin:bottom}.mdc-slider .mdc-slider__value-indicator::before{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:6px solid;bottom:-5px;content:\\\"\\\";height:0;left:var(--slider-value-indicator-caret-left, 50%);position:absolute;right:var(--slider-value-indicator-caret-right);transform:var(--slider-value-indicator-caret-transform, translateX(-50%));width:0}.mdc-slider .mdc-slider__value-indicator::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-slider .mdc-slider__value-indicator::after{border-color:CanvasText}}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator-container{pointer-events:auto}.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:transform 100ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(1)}@media(prefers-reduced-motion){.mdc-slider .mdc-slider__value-indicator,.mdc-slider .mdc-slider__thumb--with-indicator .mdc-slider__value-indicator{transition:none}}.mdc-slider .mdc-slider__thumb{display:flex;left:-24px;outline:none;position:absolute;user-select:none;height:48px;width:48px}.mdc-slider .mdc-slider__thumb--top{z-index:1}.mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-style:solid;border-width:1px;box-sizing:content-box}.mdc-slider .mdc-slider__thumb-knob{box-sizing:border-box;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%)}.mdc-slider .mdc-slider__tick-marks{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:space-between;padding:0 1px;position:absolute;width:100%}.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:transform 80ms ease}@media(prefers-reduced-motion){.mdc-slider--discrete .mdc-slider__thumb,.mdc-slider--discrete .mdc-slider__track--active_fill{transition:none}}.mdc-slider--disabled{cursor:auto}.mdc-slider--disabled .mdc-slider__thumb{pointer-events:none}.mdc-slider__input{cursor:pointer;left:0;margin:0;height:100%;opacity:0;pointer-events:none;position:absolute;top:0;width:100%}.mat-mdc-slider{display:inline-block;box-sizing:border-box;outline:none;vertical-align:middle;margin-left:8px;margin-right:8px;width:auto;min-width:112px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb-knob{background-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000));border-color:var(--mdc-slider-disabled-handle-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider.mdc-slider--disabled .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb::before,.mat-mdc-slider .mdc-slider__thumb::after{background-color:var(--mdc-slider-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover::before,.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-surface--hover::before{opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded--background-focused::before,.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):focus::before{transition-duration:75ms;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mat-mdc-slider .mdc-slider__thumb:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__thumb.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--mdc-slider-active-track-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--active_fill{border-color:var(--mdc-slider-disabled-active-track-color, var(--mdc-theme-on-surface, #000))}.mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--mdc-slider-inactive-track-color, var(--mdc-theme-primary, #6200ee));opacity:.24}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__track--inactive{background-color:var(--mdc-slider-disabled-inactive-track-color, var(--mdc-theme-on-surface, #000));opacity:.24}.mat-mdc-slider .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--active{background-color:var(--mdc-slider-with-tick-marks-active-container-color, var(--mdc-theme-on-primary, #fff));opacity:var(--mdc-slider-with-tick-marks-active-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-inactive-container-color, var(--mdc-theme-primary, #6200ee));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider.mdc-slider--disabled .mdc-slider__tick-mark--inactive{background-color:var(--mdc-slider-with-tick-marks-disabled-container-color, var(--mdc-theme-on-surface, #000));opacity:var(--mdc-slider-with-tick-marks-inactive-container-opacity, 0.6)}.mat-mdc-slider .mdc-slider__value-indicator{background-color:var(--mdc-slider-label-container-color, #666666);opacity:1}.mat-mdc-slider .mdc-slider__value-indicator::before{border-top-color:var(--mdc-slider-label-container-color, #666666)}.mat-mdc-slider .mdc-slider__value-indicator{color:var(--mdc-slider-label-label-text-color, var(--mdc-theme-on-primary, #fff))}.mat-mdc-slider .mdc-slider__track{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__track--active{height:var(--mdc-slider-active-track-height, 6px);top:calc((var(--mdc-slider-inactive-track-height, 4px) - var(--mdc-slider-active-track-height, 6px)) / 2)}.mat-mdc-slider .mdc-slider__track--active_fill{border-top-width:var(--mdc-slider-active-track-height, 6px)}.mat-mdc-slider .mdc-slider__track--inactive{height:var(--mdc-slider-inactive-track-height, 4px)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{height:var(--mdc-slider-with-tick-marks-container-size, 2px);width:var(--mdc-slider-with-tick-marks-container-size, 2px)}.mat-mdc-slider.mdc-slider--disabled{opacity:0.38}.mat-mdc-slider .mdc-slider__value-indicator-text{letter-spacing:var(--mdc-slider-label-label-text-tracking, 0.0071428571em);font-size:var(--mdc-slider-label-label-text-size, 0.875rem);font-family:var(--mdc-slider-label-label-text-font, Roboto, sans-serif);font-weight:var(--mdc-slider-label-label-text-weight, 500);line-height:var(--mdc-slider-label-label-text-line-height, 1.375rem)}.mat-mdc-slider .mdc-slider__track--active{border-radius:var(--mdc-slider-active-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__track--inactive{border-radius:var(--mdc-slider-inactive-track-shape, 9999px)}.mat-mdc-slider .mdc-slider__thumb-knob{border-radius:var(--mdc-slider-handle-shape, 50%);width:var(--mdc-slider-handle-width, 20px);height:var(--mdc-slider-handle-height, 20px);border-style:solid;border-width:calc(var(--mdc-slider-handle-height, 20px) / 2) calc(var(--mdc-slider-handle-width, 20px) / 2)}.mat-mdc-slider .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-mark--inactive{border-radius:var(--mdc-slider-with-tick-marks-container-shape, 50%)}.mat-mdc-slider .mdc-slider__thumb-knob{box-shadow:var(--mdc-slider-handle-elevation, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb-knob{background-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-hover-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:hover .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee));border-color:var(--mdc-slider-focus-handle-color, var(--mdc-theme-primary, #6200ee))}.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb:not(:disabled):active .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:#fff}.mat-mdc-slider .mdc-slider__thumb--top .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb:hover .mdc-slider__thumb-knob,.mat-mdc-slider .mdc-slider__thumb--top.mdc-slider__thumb--focused .mdc-slider__thumb-knob{border-color:var(--mdc-slider-with-overlap-handle-outline-color, #fff);border-width:var(--mdc-slider-with-overlap-handle-outline-width, 1px)}.mat-mdc-slider .mdc-slider__input{box-sizing:content-box;pointer-events:auto}.mat-mdc-slider .mdc-slider__input.mat-mdc-slider-input-no-pointer-events{pointer-events:none}.mat-mdc-slider .mdc-slider__input.mat-slider__right-input{left:auto;right:0}.mat-mdc-slider .mdc-slider__thumb,.mat-mdc-slider .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider.mdc-slider--discrete .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__thumb,.mat-mdc-slider.mat-mdc-slider-with-animation .mdc-slider__track--active_fill{transition-duration:80ms}.mat-mdc-slider.mat-mdc-slider-with-animation.mat-mdc-slider-disable-track-animation .mdc-slider__track--active_fill{transition-duration:0ms}.mat-mdc-slider .mdc-slider__track,.mat-mdc-slider .mdc-slider__thumb{pointer-events:none}.mat-mdc-slider .mdc-slider__value-indicator{opacity:var(--mat-mdc-slider-value-indicator-opacity, 1)}.mat-mdc-slider .mat-ripple .mat-ripple-element{background-color:var(--mat-mdc-slider-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-hover-ripple{background-color:var(--mat-mdc-slider-hover-ripple-color, transparent)}.mat-mdc-slider .mat-ripple .mat-mdc-slider-focus-ripple,.mat-mdc-slider .mat-ripple .mat-mdc-slider-active-ripple{background-color:var(--mat-mdc-slider-focus-ripple-color, transparent)}.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__thumb,.mat-mdc-slider._mat-animation-noopable.mdc-slider--discrete .mdc-slider__track--active_fill,.mat-mdc-slider._mat-animation-noopable .mdc-slider__value-indicator{transition:none}.mat-mdc-slider .mat-mdc-focus-indicator::before{border-radius:50%}.mdc-slider__thumb--focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}\"] }]\n        }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.Platform }, { type: i0.ElementRef }, { type: i2$1.Directionality, decorators: [{\n                    type: Optional\n                }] }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n                }] }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [ANIMATION_MODULE_TYPE]\n                }] }]; }, propDecorators: { _trackActive: [{\n                type: ViewChild,\n                args: ['trackActive']\n            }], _thumbs: [{\n                type: ViewChildren,\n                args: [MAT_SLIDER_VISUAL_THUMB]\n            }], _input: [{\n                type: ContentChild,\n                args: [MAT_SLIDER_THUMB]\n            }], _inputs: [{\n                type: ContentChildren,\n                args: [MAT_SLIDER_RANGE_THUMB, { descendants: false }]\n            }], disabled: [{\n                type: Input\n            }], discrete: [{\n                type: Input\n            }], showTickMarks: [{\n                type: Input\n            }], min: [{\n                type: Input\n            }], max: [{\n                type: Input\n            }], step: [{\n                type: Input\n            }], displayWith: [{\n                type: Input\n            }] } });\n/** Ensures that there is not an invalid configuration for the slider thumb inputs. */\nfunction _validateInputs(isRange, endInputElement, startInputElement) {\n    const startValid = !isRange || startInputElement?._hostElement.hasAttribute('matSliderStartThumb');\n    const endValid = endInputElement._hostElement.hasAttribute(isRange ? 'matSliderEndThumb' : 'matSliderThumb');\n    if (!startValid || !endValid) {\n        _throwInvalidInputConfigurationError();\n    }\n}\nfunction _throwInvalidInputConfigurationError() {\n    throw Error(`Invalid slider thumb input configuration!\n\n   Valid configurations are as follows:\n\n     <mat-slider>\n       <input matSliderThumb>\n     </mat-slider>\n\n     or\n\n     <mat-slider>\n       <input matSliderStartThumb>\n       <input matSliderEndThumb>\n     </mat-slider>\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 * Provider that allows the slider thumb to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_SLIDER_THUMB_VALUE_ACCESSOR = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => MatSliderThumb),\n    multi: true,\n};\n/**\n * Provider that allows the range slider thumb to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => MatSliderRangeThumb),\n    multi: true,\n};\n/**\n * Directive that adds slider-specific behaviors to an input element inside `<mat-slider>`.\n * Up to two may be placed inside of a `<mat-slider>`.\n *\n * If one is used, the selector `matSliderThumb` must be used, and the outcome will be a normal\n * slider. If two are used, the selectors `matSliderStartThumb` and `matSliderEndThumb` must be\n * used, and the outcome will be a range slider with two slider thumbs.\n */\nclass MatSliderThumb {\n    get value() {\n        return coerceNumberProperty(this._hostElement.value);\n    }\n    set value(v) {\n        const val = coerceNumberProperty(v).toString();\n        if (!this._hasSetInitialValue) {\n            this._initialValue = val;\n            return;\n        }\n        if (this._isActive) {\n            return;\n        }\n        this._hostElement.value = val;\n        this._updateThumbUIByValue();\n        this._slider._onValueChange(this);\n        this._cdr.detectChanges();\n    }\n    /**\n     * The current translateX in px of the slider visual thumb.\n     * @docs-private\n     */\n    get translateX() {\n        if (this._slider.min >= this._slider.max) {\n            this._translateX = 0;\n            return this._translateX;\n        }\n        if (this._translateX === undefined) {\n            this._translateX = this._calcTranslateXByValue();\n        }\n        return this._translateX;\n    }\n    set translateX(v) {\n        this._translateX = v;\n    }\n    /** @docs-private */\n    get min() {\n        return coerceNumberProperty(this._hostElement.min);\n    }\n    set min(v) {\n        this._hostElement.min = coerceNumberProperty(v).toString();\n        this._cdr.detectChanges();\n    }\n    /** @docs-private */\n    get max() {\n        return coerceNumberProperty(this._hostElement.max);\n    }\n    set max(v) {\n        this._hostElement.max = coerceNumberProperty(v).toString();\n        this._cdr.detectChanges();\n    }\n    get step() {\n        return coerceNumberProperty(this._hostElement.step);\n    }\n    set step(v) {\n        this._hostElement.step = coerceNumberProperty(v).toString();\n        this._cdr.detectChanges();\n    }\n    /** @docs-private */\n    get disabled() {\n        return coerceBooleanProperty(this._hostElement.disabled);\n    }\n    set disabled(v) {\n        this._hostElement.disabled = coerceBooleanProperty(v);\n        this._cdr.detectChanges();\n        if (this._slider.disabled !== this.disabled) {\n            this._slider.disabled = this.disabled;\n        }\n    }\n    /** The percentage of the slider that coincides with the value. */\n    get percentage() {\n        if (this._slider.min >= this._slider.max) {\n            return this._slider._isRtl ? 1 : 0;\n        }\n        return (this.value - this._slider.min) / (this._slider.max - this._slider.min);\n    }\n    /** @docs-private */\n    get fillPercentage() {\n        if (!this._slider._cachedWidth) {\n            return this._slider._isRtl ? 1 : 0;\n        }\n        if (this._translateX === 0) {\n            return 0;\n        }\n        return this.translateX / this._slider._cachedWidth;\n    }\n    /** Used to relay updates to _isFocused to the slider visual thumbs. */\n    _setIsFocused(v) {\n        this._isFocused = v;\n    }\n    constructor(_ngZone, _elementRef, _cdr, _slider) {\n        this._ngZone = _ngZone;\n        this._elementRef = _elementRef;\n        this._cdr = _cdr;\n        this._slider = _slider;\n        /** Event emitted when the `value` is changed. */\n        this.valueChange = new EventEmitter();\n        /** Event emitted when the slider thumb starts being dragged. */\n        this.dragStart = new EventEmitter();\n        /** Event emitted when the slider thumb stops being dragged. */\n        this.dragEnd = new EventEmitter();\n        /**\n         * Indicates whether this thumb is the start or end thumb.\n         * @docs-private\n         */\n        this.thumbPosition = 2 /* _MatThumb.END */;\n        /** The radius of a native html slider's knob. */\n        this._knobRadius = 8;\n        /** Whether user's cursor is currently in a mouse down state on the input. */\n        this._isActive = false;\n        /** Whether the input is currently focused (either by tab or after clicking). */\n        this._isFocused = false;\n        /**\n         * Whether the initial value has been set.\n         * This exists because the initial value cannot be immediately set because the min and max\n         * must first be relayed from the parent MatSlider component, which can only happen later\n         * in the component lifecycle.\n         */\n        this._hasSetInitialValue = false;\n        /** Emits when the component is destroyed. */\n        this._destroyed = new Subject();\n        /**\n         * Indicates whether UI updates should be skipped.\n         *\n         * This flag is used to avoid flickering\n         * when correcting values on pointer up/down.\n         */\n        this._skipUIUpdate = false;\n        /** Callback called when the slider input value changes. */\n        this._onChangeFn = () => { };\n        /** Callback called when the slider input has been touched. */\n        this._onTouchedFn = () => { };\n        this._hostElement = _elementRef.nativeElement;\n        this._ngZone.runOutsideAngular(() => {\n            this._hostElement.addEventListener('pointerdown', this._onPointerDown.bind(this));\n            this._hostElement.addEventListener('pointermove', this._onPointerMove.bind(this));\n            this._hostElement.addEventListener('pointerup', this._onPointerUp.bind(this));\n        });\n    }\n    ngOnDestroy() {\n        this._hostElement.removeEventListener('pointerdown', this._onPointerDown);\n        this._hostElement.removeEventListener('pointermove', this._onPointerMove);\n        this._hostElement.removeEventListener('pointerup', this._onPointerUp);\n        this._destroyed.next();\n        this._destroyed.complete();\n        this.dragStart.complete();\n        this.dragEnd.complete();\n    }\n    /** @docs-private */\n    initProps() {\n        this._updateWidthInactive();\n        // If this or the parent slider is disabled, just make everything disabled.\n        if (this.disabled !== this._slider.disabled) {\n            // The MatSlider setter for disabled will relay this and disable both inputs.\n            this._slider.disabled = true;\n        }\n        this.step = this._slider.step;\n        this.min = this._slider.min;\n        this.max = this._slider.max;\n        this._initValue();\n    }\n    /** @docs-private */\n    initUI() {\n        this._updateThumbUIByValue();\n    }\n    _initValue() {\n        this._hasSetInitialValue = true;\n        if (this._initialValue === undefined) {\n            this.value = this._getDefaultValue();\n        }\n        else {\n            this._hostElement.value = this._initialValue;\n            this._updateThumbUIByValue();\n            this._slider._onValueChange(this);\n            this._cdr.detectChanges();\n        }\n    }\n    _getDefaultValue() {\n        return this.min;\n    }\n    _onBlur() {\n        this._setIsFocused(false);\n        this._onTouchedFn();\n    }\n    _onFocus() {\n        this._setIsFocused(true);\n    }\n    _onChange() {\n        this.valueChange.emit(this.value);\n        // only used to handle the edge case where user\n        // mousedown on the slider then uses arrow keys.\n        if (this._isActive) {\n            this._updateThumbUIByValue({ withAnimation: true });\n        }\n    }\n    _onInput() {\n        this._onChangeFn(this.value);\n        // handles arrowing and updating the value when\n        // a step is defined.\n        if (this._slider.step || !this._isActive) {\n            this._updateThumbUIByValue({ withAnimation: true });\n        }\n        this._slider._onValueChange(this);\n    }\n    _onNgControlValueChange() {\n        // only used to handle when the value change\n        // originates outside of the slider.\n        if (!this._isActive || !this._isFocused) {\n            this._slider._onValueChange(this);\n            this._updateThumbUIByValue();\n        }\n        this._slider.disabled = this._formControl.disabled;\n    }\n    _onPointerDown(event) {\n        if (this.disabled || event.button !== 0) {\n            return;\n        }\n        this._isActive = true;\n        this._setIsFocused(true);\n        this._updateWidthActive();\n        this._slider._updateDimensions();\n        // Does nothing if a step is defined because we\n        // want the value to snap to the values on input.\n        if (!this._slider.step) {\n            this._updateThumbUIByPointerEvent(event, { withAnimation: true });\n        }\n        if (!this.disabled) {\n            this._handleValueCorrection(event);\n            this.dragStart.emit({ source: this, parent: this._slider, value: this.value });\n        }\n    }\n    /**\n     * Corrects the value of the slider on pointer up/down.\n     *\n     * Called on pointer down and up because the value is set based\n     * on the inactive width instead of the active width.\n     */\n    _handleValueCorrection(event) {\n        // Don't update the UI with the current value! The value on pointerdown\n        // and pointerup is calculated in the split second before the input(s)\n        // resize. See _updateWidthInactive() and _updateWidthActive() for more\n        // details.\n        this._skipUIUpdate = true;\n        // Note that this function gets triggered before the actual value of the\n        // slider is updated. This means if we were to set the value here, it\n        // would immediately be overwritten. Using setTimeout ensures the setting\n        // of the value happens after the value has been updated by the\n        // pointerdown event.\n        setTimeout(() => {\n            this._skipUIUpdate = false;\n            this._fixValue(event);\n        }, 0);\n    }\n    /** Corrects the value of the slider based on the pointer event's position. */\n    _fixValue(event) {\n        const xPos = event.clientX - this._slider._cachedLeft;\n        const width = this._slider._cachedWidth;\n        const step = this._slider.step === 0 ? 1 : this._slider.step;\n        const numSteps = Math.floor((this._slider.max - this._slider.min) / step);\n        const percentage = this._slider._isRtl ? 1 - xPos / width : xPos / width;\n        // To ensure the percentage is rounded to the necessary number of decimals.\n        const fixedPercentage = Math.round(percentage * numSteps) / numSteps;\n        const impreciseValue = fixedPercentage * (this._slider.max - this._slider.min) + this._slider.min;\n        const value = Math.round(impreciseValue / step) * step;\n        const prevValue = this.value;\n        if (value === prevValue) {\n            // Because we prevented UI updates, if it turns out that the race\n            // condition didn't happen and the value is already correct, we\n            // have to apply the ui updates now.\n            this._slider._onValueChange(this);\n            this._slider.step > 0\n                ? this._updateThumbUIByValue()\n                : this._updateThumbUIByPointerEvent(event, { withAnimation: this._slider._hasAnimation });\n            return;\n        }\n        this.value = value;\n        this.valueChange.emit(this.value);\n        this._onChangeFn(this.value);\n        this._slider._onValueChange(this);\n        this._slider.step > 0\n            ? this._updateThumbUIByValue()\n            : this._updateThumbUIByPointerEvent(event, { withAnimation: this._slider._hasAnimation });\n    }\n    _onPointerMove(event) {\n        // Again, does nothing if a step is defined because\n        // we want the value to snap to the values on input.\n        if (!this._slider.step && this._isActive) {\n            this._updateThumbUIByPointerEvent(event);\n        }\n    }\n    _onPointerUp() {\n        if (this._isActive) {\n            this._isActive = false;\n            this.dragEnd.emit({ source: this, parent: this._slider, value: this.value });\n            setTimeout(() => this._updateWidthInactive());\n        }\n    }\n    _clamp(v) {\n        return Math.max(Math.min(v, this._slider._cachedWidth), 0);\n    }\n    _calcTranslateXByValue() {\n        if (this._slider._isRtl) {\n            return (1 - this.percentage) * this._slider._cachedWidth;\n        }\n        return this.percentage * this._slider._cachedWidth;\n    }\n    _calcTranslateXByPointerEvent(event) {\n        return event.clientX - this._slider._cachedLeft;\n    }\n    /**\n     * Used to set the slider width to the correct\n     * dimensions while the user is dragging.\n     */\n    _updateWidthActive() {\n        this._hostElement.style.padding = `0 ${this._slider._inputPadding}px`;\n        this._hostElement.style.width = `calc(100% + ${this._slider._inputPadding}px)`;\n    }\n    /**\n     * Sets the slider input to disproportionate dimensions to allow for touch\n     * events to be captured on touch devices.\n     */\n    _updateWidthInactive() {\n        this._hostElement.style.padding = '0px';\n        this._hostElement.style.width = 'calc(100% + 48px)';\n        this._hostElement.style.left = '-24px';\n    }\n    _updateThumbUIByValue(options) {\n        this.translateX = this._clamp(this._calcTranslateXByValue());\n        this._updateThumbUI(options);\n    }\n    _updateThumbUIByPointerEvent(event, options) {\n        this.translateX = this._clamp(this._calcTranslateXByPointerEvent(event));\n        this._updateThumbUI(options);\n    }\n    _updateThumbUI(options) {\n        this._slider._setTransition(!!options?.withAnimation);\n        this._slider._onTranslateXChange(this);\n    }\n    /**\n     * Sets the input's value.\n     * @param value The new value of the input\n     * @docs-private\n     */\n    writeValue(value) {\n        this.value = value;\n    }\n    /**\n     * Registers a callback to be invoked when the input's value changes from user input.\n     * @param fn The callback to register\n     * @docs-private\n     */\n    registerOnChange(fn) {\n        this._onChangeFn = fn;\n    }\n    /**\n     * Registers a callback to be invoked when the input is blurred by the user.\n     * @param fn The callback to register\n     * @docs-private\n     */\n    registerOnTouched(fn) {\n        this._onTouchedFn = fn;\n    }\n    /**\n     * Sets the disabled state of the slider.\n     * @param isDisabled The new disabled state\n     * @docs-private\n     */\n    setDisabledState(isDisabled) {\n        this.disabled = isDisabled;\n    }\n    focus() {\n        this._hostElement.focus();\n    }\n    blur() {\n        this._hostElement.blur();\n    }\n}\nMatSliderThumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderThumb, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_SLIDER }], target: i0.ɵɵFactoryTarget.Directive });\nMatSliderThumb.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatSliderThumb, selector: \"input[matSliderThumb]\", inputs: { value: \"value\" }, outputs: { valueChange: \"valueChange\", dragStart: \"dragStart\", dragEnd: \"dragEnd\" }, host: { attributes: { \"type\": \"range\" }, listeners: { \"change\": \"_onChange()\", \"input\": \"_onInput()\", \"blur\": \"_onBlur()\", \"focus\": \"_onFocus()\" }, properties: { \"attr.aria-valuetext\": \"_valuetext\" }, classAttribute: \"mdc-slider__input\" }, providers: [\n        MAT_SLIDER_THUMB_VALUE_ACCESSOR,\n        { provide: MAT_SLIDER_THUMB, useExisting: MatSliderThumb },\n    ], exportAs: [\"matSliderThumb\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderThumb, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: 'input[matSliderThumb]',\n                    exportAs: 'matSliderThumb',\n                    host: {\n                        'class': 'mdc-slider__input',\n                        'type': 'range',\n                        '[attr.aria-valuetext]': '_valuetext',\n                        '(change)': '_onChange()',\n                        '(input)': '_onInput()',\n                        // TODO(wagnermaciel): Consider using a global event listener instead.\n                        // Reason: I have found a semi-consistent way to mouse up without triggering this event.\n                        '(blur)': '_onBlur()',\n                        '(focus)': '_onFocus()',\n                    },\n                    providers: [\n                        MAT_SLIDER_THUMB_VALUE_ACCESSOR,\n                        { provide: MAT_SLIDER_THUMB, useExisting: MatSliderThumb },\n                    ],\n                }]\n        }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [MAT_SLIDER]\n                }] }]; }, propDecorators: { value: [{\n                type: Input\n            }], valueChange: [{\n                type: Output\n            }], dragStart: [{\n                type: Output\n            }], dragEnd: [{\n                type: Output\n            }] } });\nclass MatSliderRangeThumb extends MatSliderThumb {\n    /** @docs-private */\n    getSibling() {\n        if (!this._sibling) {\n            this._sibling = this._slider._getInput(this._isEndThumb ? 1 /* _MatThumb.START */ : 2 /* _MatThumb.END */);\n        }\n        return this._sibling;\n    }\n    /**\n     * Returns the minimum translateX position allowed for this slider input's visual thumb.\n     * @docs-private\n     */\n    getMinPos() {\n        const sibling = this.getSibling();\n        if (!this._isLeftThumb && sibling) {\n            return sibling.translateX;\n        }\n        return 0;\n    }\n    /**\n     * Returns the maximum translateX position allowed for this slider input's visual thumb.\n     * @docs-private\n     */\n    getMaxPos() {\n        const sibling = this.getSibling();\n        if (this._isLeftThumb && sibling) {\n            return sibling.translateX;\n        }\n        return this._slider._cachedWidth;\n    }\n    _setIsLeftThumb() {\n        this._isLeftThumb =\n            (this._isEndThumb && this._slider._isRtl) || (!this._isEndThumb && !this._slider._isRtl);\n    }\n    constructor(_ngZone, _slider, _elementRef, _cdr) {\n        super(_ngZone, _elementRef, _cdr, _slider);\n        this._cdr = _cdr;\n        this._isEndThumb = this._hostElement.hasAttribute('matSliderEndThumb');\n        this._setIsLeftThumb();\n        this.thumbPosition = this._isEndThumb ? 2 /* _MatThumb.END */ : 1 /* _MatThumb.START */;\n    }\n    _getDefaultValue() {\n        return this._isEndThumb && this._slider._isRange ? this.max : this.min;\n    }\n    _onInput() {\n        super._onInput();\n        this._updateSibling();\n        if (!this._isActive) {\n            this._updateWidthInactive();\n        }\n    }\n    _onNgControlValueChange() {\n        super._onNgControlValueChange();\n        this.getSibling()?._updateMinMax();\n    }\n    _onPointerDown(event) {\n        if (this.disabled) {\n            return;\n        }\n        if (this._sibling) {\n            this._sibling._updateWidthActive();\n            this._sibling._hostElement.classList.add('mat-mdc-slider-input-no-pointer-events');\n        }\n        super._onPointerDown(event);\n    }\n    _onPointerUp() {\n        super._onPointerUp();\n        if (this._sibling) {\n            setTimeout(() => {\n                this._sibling._updateWidthInactive();\n                this._sibling._hostElement.classList.remove('mat-mdc-slider-input-no-pointer-events');\n            });\n        }\n    }\n    _onPointerMove(event) {\n        super._onPointerMove(event);\n        if (!this._slider.step && this._isActive) {\n            this._updateSibling();\n        }\n    }\n    _fixValue(event) {\n        super._fixValue(event);\n        this._sibling?._updateMinMax();\n    }\n    _clamp(v) {\n        return Math.max(Math.min(v, this.getMaxPos()), this.getMinPos());\n    }\n    _updateMinMax() {\n        const sibling = this.getSibling();\n        if (!sibling) {\n            return;\n        }\n        if (this._isEndThumb) {\n            this.min = Math.max(this._slider.min, sibling.value);\n            this.max = this._slider.max;\n        }\n        else {\n            this.min = this._slider.min;\n            this.max = Math.min(this._slider.max, sibling.value);\n        }\n    }\n    _updateWidthActive() {\n        const minWidth = this._slider._rippleRadius * 2 - this._slider._inputPadding * 2;\n        const maxWidth = this._slider._cachedWidth + this._slider._inputPadding - minWidth;\n        const percentage = this._slider.min < this._slider.max\n            ? (this.max - this.min) / (this._slider.max - this._slider.min)\n            : 1;\n        const width = maxWidth * percentage + minWidth;\n        this._hostElement.style.width = `${width}px`;\n        this._hostElement.style.padding = `0 ${this._slider._inputPadding}px`;\n    }\n    _updateWidthInactive() {\n        const sibling = this.getSibling();\n        if (!sibling) {\n            return;\n        }\n        const maxWidth = this._slider._cachedWidth;\n        const midValue = this._isEndThumb\n            ? this.value - (this.value - sibling.value) / 2\n            : this.value + (sibling.value - this.value) / 2;\n        const _percentage = this._isEndThumb\n            ? (this.max - midValue) / (this._slider.max - this._slider.min)\n            : (midValue - this.min) / (this._slider.max - this._slider.min);\n        const percentage = this._slider.min < this._slider.max ? _percentage : 1;\n        const width = maxWidth * percentage + 24;\n        this._hostElement.style.width = `${width}px`;\n        this._hostElement.style.padding = '0px';\n        if (this._isLeftThumb) {\n            this._hostElement.style.left = '-24px';\n            this._hostElement.style.right = 'auto';\n        }\n        else {\n            this._hostElement.style.left = 'auto';\n            this._hostElement.style.right = '-24px';\n        }\n    }\n    _updateStaticStyles() {\n        this._hostElement.classList.toggle('mat-slider__right-input', !this._isLeftThumb);\n    }\n    _updateSibling() {\n        const sibling = this.getSibling();\n        if (!sibling) {\n            return;\n        }\n        sibling._updateMinMax();\n        if (this._isActive) {\n            sibling._updateWidthActive();\n        }\n        else {\n            sibling._updateWidthInactive();\n        }\n    }\n    /**\n     * Sets the input's value.\n     * @param value The new value of the input\n     * @docs-private\n     */\n    writeValue(value) {\n        this.value = value;\n        this._updateWidthInactive();\n        this._updateSibling();\n    }\n}\nMatSliderRangeThumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderRangeThumb, deps: [{ token: i0.NgZone }, { token: MAT_SLIDER }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\nMatSliderRangeThumb.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatSliderRangeThumb, selector: \"input[matSliderStartThumb], input[matSliderEndThumb]\", providers: [\n        MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR,\n        { provide: MAT_SLIDER_RANGE_THUMB, useExisting: MatSliderRangeThumb },\n    ], exportAs: [\"matSliderRangeThumb\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderRangeThumb, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: 'input[matSliderStartThumb], input[matSliderEndThumb]',\n                    exportAs: 'matSliderRangeThumb',\n                    providers: [\n                        MAT_SLIDER_RANGE_THUMB_VALUE_ACCESSOR,\n                        { provide: MAT_SLIDER_RANGE_THUMB, useExisting: MatSliderRangeThumb },\n                    ],\n                }]\n        }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [MAT_SLIDER]\n                }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });\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 MatSliderModule {\n}\nMatSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nMatSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderModule, declarations: [MatSlider, MatSliderThumb, MatSliderRangeThumb, MatSliderVisualThumb], imports: [MatCommonModule, CommonModule, MatRippleModule], exports: [MatSlider, MatSliderThumb, MatSliderRangeThumb] });\nMatSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderModule, imports: [MatCommonModule, CommonModule, MatRippleModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatSliderModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [MatCommonModule, CommonModule, MatRippleModule],\n                    exports: [MatSlider, MatSliderThumb, MatSliderRangeThumb],\n                    declarations: [MatSlider, MatSliderThumb, MatSliderRangeThumb, MatSliderVisualThumb],\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 { MatSlider, MatSliderChange, MatSliderModule, MatSliderRangeThumb, MatSliderThumb, MatSliderVisualThumb };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}