{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport useTheme from '../styles/useTheme';\nimport { fade, lighten, darken } from '../styles/colorManipulator';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport ownerDocument from '../utils/ownerDocument';\nimport useEventCallback from '../utils/useEventCallback';\nimport useForkRef from '../utils/useForkRef';\nimport capitalize from '../utils/capitalize';\nimport useControlled from '../utils/useControlled';\nimport ValueLabel from './ValueLabel';\n\nfunction asc(a, b) {\n  return a - b;\n}\n\nfunction clamp(value, min, max) {\n  return Math.min(Math.max(min, value), max);\n}\n\nfunction findClosest(values, currentValue) {\n  var _values$reduce = values.reduce(function (acc, value, index) {\n    var distance = Math.abs(currentValue - value);\n\n    if (acc === null || distance < acc.distance || distance === acc.distance) {\n      return {\n        distance: distance,\n        index: index\n      };\n    }\n\n    return acc;\n  }, null),\n      closestIndex = _values$reduce.index;\n\n  return closestIndex;\n}\n\nfunction trackFinger(event, touchId) {\n  if (touchId.current !== undefined && event.changedTouches) {\n    for (var i = 0; i < event.changedTouches.length; i += 1) {\n      var touch = event.changedTouches[i];\n\n      if (touch.identifier === touchId.current) {\n        return {\n          x: touch.clientX,\n          y: touch.clientY\n        };\n      }\n    }\n\n    return false;\n  }\n\n  return {\n    x: event.clientX,\n    y: event.clientY\n  };\n}\n\nfunction valueToPercent(value, min, max) {\n  return (value - min) * 100 / (max - min);\n}\n\nfunction percentToValue(percent, min, max) {\n  return (max - min) * percent + min;\n}\n\nfunction getDecimalPrecision(num) {\n  // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n  // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n  if (Math.abs(num) < 1) {\n    var parts = num.toExponential().split('e-');\n    var matissaDecimalPart = parts[0].split('.')[1];\n    return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n  }\n\n  var decimalPart = num.toString().split('.')[1];\n  return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value, step, min) {\n  var nearest = Math.round((value - min) / step) * step + min;\n  return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction setValueIndex(_ref) {\n  var values = _ref.values,\n      source = _ref.source,\n      newValue = _ref.newValue,\n      index = _ref.index; // Performance shortcut\n\n  if (values[index] === newValue) {\n    return source;\n  }\n\n  var output = values.slice();\n  output[index] = newValue;\n  return output;\n}\n\nfunction focusThumb(_ref2) {\n  var sliderRef = _ref2.sliderRef,\n      activeIndex = _ref2.activeIndex,\n      setActive = _ref2.setActive;\n\n  if (!sliderRef.current.contains(document.activeElement) || Number(document.activeElement.getAttribute('data-index')) !== activeIndex) {\n    sliderRef.current.querySelector(\"[role=\\\"slider\\\"][data-index=\\\"\".concat(activeIndex, \"\\\"]\")).focus();\n  }\n\n  if (setActive) {\n    setActive(activeIndex);\n  }\n}\n\nvar axisProps = {\n  horizontal: {\n    offset: function offset(percent) {\n      return {\n        left: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        width: \"\".concat(percent, \"%\")\n      };\n    }\n  },\n  'horizontal-reverse': {\n    offset: function offset(percent) {\n      return {\n        right: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        width: \"\".concat(percent, \"%\")\n      };\n    }\n  },\n  vertical: {\n    offset: function offset(percent) {\n      return {\n        bottom: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        height: \"\".concat(percent, \"%\")\n      };\n    }\n  }\n};\n\nvar Identity = function Identity(x) {\n  return x;\n};\n\nexport var styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      height: 2,\n      width: '100%',\n      boxSizing: 'content-box',\n      padding: '13px 0',\n      display: 'inline-block',\n      position: 'relative',\n      cursor: 'pointer',\n      touchAction: 'none',\n      color: theme.palette.primary.main,\n      WebkitTapHighlightColor: 'transparent',\n      '&$disabled': {\n        pointerEvents: 'none',\n        cursor: 'default',\n        color: theme.palette.grey[400]\n      },\n      '&$vertical': {\n        width: 2,\n        height: '100%',\n        padding: '0 13px'\n      },\n      // The primary input mechanism of the device includes a pointing device of limited accuracy.\n      '@media (pointer: coarse)': {\n        // Reach 42px touch target, about ~8mm on screen.\n        padding: '20px 0',\n        '&$vertical': {\n          padding: '0 20px'\n        }\n      },\n      '@media print': {\n        colorAdjust: 'exact'\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {// TODO v5: move the style here\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `marks` is provided with at least one label. */\n    marked: {\n      marginBottom: 20,\n      '&$vertical': {\n        marginBottom: 'auto',\n        marginRight: 20\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {},\n\n    /* Pseudo-class applied to the root and thumb element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the rail element. */\n    rail: {\n      display: 'block',\n      position: 'absolute',\n      width: '100%',\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor',\n      opacity: 0.38,\n      '$vertical &': {\n        height: '100%',\n        width: 2\n      }\n    },\n\n    /* Styles applied to the track element. */\n    track: {\n      display: 'block',\n      position: 'absolute',\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor',\n      '$vertical &': {\n        width: 2\n      }\n    },\n\n    /* Styles applied to the track element if `track={false}`. */\n    trackFalse: {\n      '& $track': {\n        display: 'none'\n      }\n    },\n\n    /* Styles applied to the track element if `track=\"inverted\"`. */\n    trackInverted: {\n      '& $track': {\n        backgroundColor: // Same logic as the LinearProgress track color\n        theme.palette.type === 'light' ? lighten(theme.palette.primary.main, 0.62) : darken(theme.palette.primary.main, 0.5)\n      },\n      '& $rail': {\n        opacity: 1\n      }\n    },\n\n    /* Styles applied to the thumb element. */\n    thumb: {\n      position: 'absolute',\n      width: 12,\n      height: 12,\n      marginLeft: -6,\n      marginTop: -5,\n      boxSizing: 'border-box',\n      borderRadius: '50%',\n      outline: 0,\n      backgroundColor: 'currentColor',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      transition: theme.transitions.create(['box-shadow'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&::after': {\n        position: 'absolute',\n        content: '\"\"',\n        borderRadius: '50%',\n        // reach 42px hit target (2 * 15 + thumb diameter)\n        left: -15,\n        top: -15,\n        right: -15,\n        bottom: -15\n      },\n      '&$focusVisible,&:hover': {\n        boxShadow: \"0px 0px 0px 8px \".concat(fade(theme.palette.primary.main, 0.16)),\n        '@media (hover: none)': {\n          boxShadow: 'none'\n        }\n      },\n      '&$active': {\n        boxShadow: \"0px 0px 0px 14px \".concat(fade(theme.palette.primary.main, 0.16))\n      },\n      '&$disabled': {\n        width: 8,\n        height: 8,\n        marginLeft: -4,\n        marginTop: -3,\n        '&:hover': {\n          boxShadow: 'none'\n        }\n      },\n      '$vertical &': {\n        marginLeft: -5,\n        marginBottom: -6\n      },\n      '$vertical &$disabled': {\n        marginLeft: -3,\n        marginBottom: -4\n      }\n    },\n\n    /* Styles applied to the thumb element if `color=\"primary\"`. */\n    thumbColorPrimary: {// TODO v5: move the style here\n    },\n\n    /* Styles applied to the thumb element if `color=\"secondary\"`. */\n    thumbColorSecondary: {\n      '&$focusVisible,&:hover': {\n        boxShadow: \"0px 0px 0px 8px \".concat(fade(theme.palette.secondary.main, 0.16))\n      },\n      '&$active': {\n        boxShadow: \"0px 0px 0px 14px \".concat(fade(theme.palette.secondary.main, 0.16))\n      }\n    },\n\n    /* Pseudo-class applied to the thumb element if it's active. */\n    active: {},\n\n    /* Pseudo-class applied to the thumb element if keyboard focused. */\n    focusVisible: {},\n\n    /* Styles applied to the thumb label element. */\n    valueLabel: {\n      // IE 11 centering bug, to remove from the customization demos once no longer supported\n      left: 'calc(-50% - 4px)'\n    },\n\n    /* Styles applied to the mark element. */\n    mark: {\n      position: 'absolute',\n      width: 2,\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor'\n    },\n\n    /* Styles applied to the mark element if active (depending on the value). */\n    markActive: {\n      backgroundColor: theme.palette.background.paper,\n      opacity: 0.8\n    },\n\n    /* Styles applied to the mark label element. */\n    markLabel: _extends({}, theme.typography.body2, {\n      color: theme.palette.text.secondary,\n      position: 'absolute',\n      top: 26,\n      transform: 'translateX(-50%)',\n      whiteSpace: 'nowrap',\n      '$vertical &': {\n        top: 'auto',\n        left: 26,\n        transform: 'translateY(50%)'\n      },\n      '@media (pointer: coarse)': {\n        top: 40,\n        '$vertical &': {\n          left: 31\n        }\n      }\n    }),\n\n    /* Styles applied to the mark label element if active (depending on the value). */\n    markLabelActive: {\n      color: theme.palette.text.primary\n    }\n  };\n};\nvar Slider = /*#__PURE__*/React.forwardRef(function Slider(props, ref) {\n  var ariaLabel = props['aria-label'],\n      ariaLabelledby = props['aria-labelledby'],\n      ariaValuetext = props['aria-valuetext'],\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'span' : _props$component,\n      defaultValue = props.defaultValue,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      getAriaLabel = props.getAriaLabel,\n      getAriaValueText = props.getAriaValueText,\n      _props$marks = props.marks,\n      marksProp = _props$marks === void 0 ? false : _props$marks,\n      _props$max = props.max,\n      max = _props$max === void 0 ? 100 : _props$max,\n      _props$min = props.min,\n      min = _props$min === void 0 ? 0 : _props$min,\n      name = props.name,\n      onChange = props.onChange,\n      onChangeCommitted = props.onChangeCommitted,\n      onMouseDown = props.onMouseDown,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      _props$scale = props.scale,\n      scale = _props$scale === void 0 ? Identity : _props$scale,\n      _props$step = props.step,\n      step = _props$step === void 0 ? 1 : _props$step,\n      _props$ThumbComponent = props.ThumbComponent,\n      ThumbComponent = _props$ThumbComponent === void 0 ? 'span' : _props$ThumbComponent,\n      _props$track = props.track,\n      track = _props$track === void 0 ? 'normal' : _props$track,\n      valueProp = props.value,\n      _props$ValueLabelComp = props.ValueLabelComponent,\n      ValueLabelComponent = _props$ValueLabelComp === void 0 ? ValueLabel : _props$ValueLabelComp,\n      _props$valueLabelDisp = props.valueLabelDisplay,\n      valueLabelDisplay = _props$valueLabelDisp === void 0 ? 'off' : _props$valueLabelDisp,\n      _props$valueLabelForm = props.valueLabelFormat,\n      valueLabelFormat = _props$valueLabelForm === void 0 ? Identity : _props$valueLabelForm,\n      other = _objectWithoutProperties(props, [\"aria-label\", \"aria-labelledby\", \"aria-valuetext\", \"classes\", \"className\", \"color\", \"component\", \"defaultValue\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"onMouseDown\", \"orientation\", \"scale\", \"step\", \"ThumbComponent\", \"track\", \"value\", \"ValueLabelComponent\", \"valueLabelDisplay\", \"valueLabelFormat\"]);\n\n  var theme = useTheme();\n  var touchId = React.useRef(); // We can't use the :active browser pseudo-classes.\n  // - The active state isn't triggered when clicking on the rail.\n  // - The active state isn't transfered when inversing a range slider.\n\n  var _React$useState = React.useState(-1),\n      active = _React$useState[0],\n      setActive = _React$useState[1];\n\n  var _React$useState2 = React.useState(-1),\n      open = _React$useState2[0],\n      setOpen = _React$useState2[1];\n\n  var _useControlled = useControlled({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Slider'\n  }),\n      _useControlled2 = _slicedToArray(_useControlled, 2),\n      valueDerived = _useControlled2[0],\n      setValueState = _useControlled2[1];\n\n  var range = Array.isArray(valueDerived);\n  var values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n  values = values.map(function (value) {\n    return clamp(value, min, max);\n  });\n  var marks = marksProp === true && step !== null ? _toConsumableArray(Array(Math.floor((max - min) / step) + 1)).map(function (_, index) {\n    return {\n      value: min + step * index\n    };\n  }) : marksProp || [];\n\n  var _useIsFocusVisible = useIsFocusVisible(),\n      isFocusVisible = _useIsFocusVisible.isFocusVisible,\n      onBlurVisible = _useIsFocusVisible.onBlurVisible,\n      focusVisibleRef = _useIsFocusVisible.ref;\n\n  var _React$useState3 = React.useState(-1),\n      focusVisible = _React$useState3[0],\n      setFocusVisible = _React$useState3[1];\n\n  var sliderRef = React.useRef();\n  var handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n  var handleRef = useForkRef(ref, handleFocusRef);\n  var handleFocus = useEventCallback(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n\n    if (isFocusVisible(event)) {\n      setFocusVisible(index);\n    }\n\n    setOpen(index);\n  });\n  var handleBlur = useEventCallback(function () {\n    if (focusVisible !== -1) {\n      setFocusVisible(-1);\n      onBlurVisible();\n    }\n\n    setOpen(-1);\n  });\n  var handleMouseOver = useEventCallback(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n    setOpen(index);\n  });\n  var handleMouseLeave = useEventCallback(function () {\n    setOpen(-1);\n  });\n  var isRtl = theme.direction === 'rtl';\n  var handleKeyDown = useEventCallback(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n    var value = values[index];\n    var tenPercents = (max - min) / 10;\n    var marksValues = marks.map(function (mark) {\n      return mark.value;\n    });\n    var marksIndex = marksValues.indexOf(value);\n    var newValue;\n    var increaseKey = isRtl ? 'ArrowLeft' : 'ArrowRight';\n    var decreaseKey = isRtl ? 'ArrowRight' : 'ArrowLeft';\n\n    switch (event.key) {\n      case 'Home':\n        newValue = min;\n        break;\n\n      case 'End':\n        newValue = max;\n        break;\n\n      case 'PageUp':\n        if (step) {\n          newValue = value + tenPercents;\n        }\n\n        break;\n\n      case 'PageDown':\n        if (step) {\n          newValue = value - tenPercents;\n        }\n\n        break;\n\n      case increaseKey:\n      case 'ArrowUp':\n        if (step) {\n          newValue = value + step;\n        } else {\n          newValue = marksValues[marksIndex + 1] || marksValues[marksValues.length - 1];\n        }\n\n        break;\n\n      case decreaseKey:\n      case 'ArrowDown':\n        if (step) {\n          newValue = value - step;\n        } else {\n          newValue = marksValues[marksIndex - 1] || marksValues[0];\n        }\n\n        break;\n\n      default:\n        return;\n    } // Prevent scroll of the page\n\n\n    event.preventDefault();\n\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    }\n\n    newValue = clamp(newValue, min, max);\n\n    if (range) {\n      var previousValue = newValue;\n      newValue = setValueIndex({\n        values: values,\n        source: valueDerived,\n        newValue: newValue,\n        index: index\n      }).sort(asc);\n      focusThumb({\n        sliderRef: sliderRef,\n        activeIndex: newValue.indexOf(previousValue)\n      });\n    }\n\n    setValueState(newValue);\n    setFocusVisible(index);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n  });\n  var previousIndex = React.useRef();\n  var axis = orientation;\n\n  if (isRtl && orientation !== \"vertical\") {\n    axis += '-reverse';\n  }\n\n  var getFingerNewValue = function getFingerNewValue(_ref3) {\n    var finger = _ref3.finger,\n        _ref3$move = _ref3.move,\n        move = _ref3$move === void 0 ? false : _ref3$move,\n        values2 = _ref3.values,\n        source = _ref3.source;\n    var slider = sliderRef.current;\n\n    var _slider$getBoundingCl = slider.getBoundingClientRect(),\n        width = _slider$getBoundingCl.width,\n        height = _slider$getBoundingCl.height,\n        bottom = _slider$getBoundingCl.bottom,\n        left = _slider$getBoundingCl.left;\n\n    var percent;\n\n    if (axis.indexOf('vertical') === 0) {\n      percent = (bottom - finger.y) / height;\n    } else {\n      percent = (finger.x - left) / width;\n    }\n\n    if (axis.indexOf('-reverse') !== -1) {\n      percent = 1 - percent;\n    }\n\n    var newValue;\n    newValue = percentToValue(percent, min, max);\n\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    } else {\n      var marksValues = marks.map(function (mark) {\n        return mark.value;\n      });\n      var closestIndex = findClosest(marksValues, newValue);\n      newValue = marksValues[closestIndex];\n    }\n\n    newValue = clamp(newValue, min, max);\n    var activeIndex = 0;\n\n    if (range) {\n      if (!move) {\n        activeIndex = findClosest(values2, newValue);\n      } else {\n        activeIndex = previousIndex.current;\n      }\n\n      var previousValue = newValue;\n      newValue = setValueIndex({\n        values: values2,\n        source: source,\n        newValue: newValue,\n        index: activeIndex\n      }).sort(asc);\n      activeIndex = newValue.indexOf(previousValue);\n      previousIndex.current = activeIndex;\n    }\n\n    return {\n      newValue: newValue,\n      activeIndex: activeIndex\n    };\n  };\n\n  var handleTouchMove = useEventCallback(function (event) {\n    var finger = trackFinger(event, touchId);\n\n    if (!finger) {\n      return;\n    }\n\n    var _getFingerNewValue = getFingerNewValue({\n      finger: finger,\n      move: true,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue.newValue,\n        activeIndex = _getFingerNewValue.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n  });\n  var handleTouchEnd = useEventCallback(function (event) {\n    var finger = trackFinger(event, touchId);\n\n    if (!finger) {\n      return;\n    }\n\n    var _getFingerNewValue2 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue2.newValue;\n\n    setActive(-1);\n\n    if (event.type === 'touchend') {\n      setOpen(-1);\n    }\n\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n\n    touchId.current = undefined;\n    var doc = ownerDocument(sliderRef.current);\n    doc.removeEventListener('mousemove', handleTouchMove);\n    doc.removeEventListener('mouseup', handleTouchEnd);\n    doc.removeEventListener('touchmove', handleTouchMove);\n    doc.removeEventListener('touchend', handleTouchEnd);\n  });\n  var handleTouchStart = useEventCallback(function (event) {\n    // Workaround as Safari has partial support for touchAction: 'none'.\n    event.preventDefault();\n    var touch = event.changedTouches[0];\n\n    if (touch != null) {\n      // A number that uniquely identifies the current finger in the touch session.\n      touchId.current = touch.identifier;\n    }\n\n    var finger = trackFinger(event, touchId);\n\n    var _getFingerNewValue3 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue3.newValue,\n        activeIndex = _getFingerNewValue3.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    var doc = ownerDocument(sliderRef.current);\n    doc.addEventListener('touchmove', handleTouchMove);\n    doc.addEventListener('touchend', handleTouchEnd);\n  });\n  React.useEffect(function () {\n    var slider = sliderRef.current;\n    slider.addEventListener('touchstart', handleTouchStart);\n    var doc = ownerDocument(slider);\n    return function () {\n      slider.removeEventListener('touchstart', handleTouchStart);\n      doc.removeEventListener('mousemove', handleTouchMove);\n      doc.removeEventListener('mouseup', handleTouchEnd);\n      doc.removeEventListener('touchmove', handleTouchMove);\n      doc.removeEventListener('touchend', handleTouchEnd);\n    };\n  }, [handleTouchEnd, handleTouchMove, handleTouchStart]);\n  var handleMouseDown = useEventCallback(function (event) {\n    if (onMouseDown) {\n      onMouseDown(event);\n    }\n\n    event.preventDefault();\n    var finger = trackFinger(event, touchId);\n\n    var _getFingerNewValue4 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue4.newValue,\n        activeIndex = _getFingerNewValue4.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    var doc = ownerDocument(sliderRef.current);\n    doc.addEventListener('mousemove', handleTouchMove);\n    doc.addEventListener('mouseup', handleTouchEnd);\n  });\n  var trackOffset = valueToPercent(range ? values[0] : min, min, max);\n  var trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n\n  var trackStyle = _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap));\n\n  return /*#__PURE__*/React.createElement(Component, _extends({\n    ref: handleRef,\n    className: clsx(classes.root, classes[\"color\".concat(capitalize(color))], className, disabled && classes.disabled, marks.length > 0 && marks.some(function (mark) {\n      return mark.label;\n    }) && classes.marked, track === false && classes.trackFalse, orientation === 'vertical' && classes.vertical, track === 'inverted' && classes.trackInverted),\n    onMouseDown: handleMouseDown\n  }, other), /*#__PURE__*/React.createElement(\"span\", {\n    className: classes.rail\n  }), /*#__PURE__*/React.createElement(\"span\", {\n    className: classes.track,\n    style: trackStyle\n  }), /*#__PURE__*/React.createElement(\"input\", {\n    value: values.join(','),\n    name: name,\n    type: \"hidden\"\n  }), marks.map(function (mark, index) {\n    var percent = valueToPercent(mark.value, min, max);\n    var style = axisProps[axis].offset(percent);\n    var markActive;\n\n    if (track === false) {\n      markActive = values.indexOf(mark.value) !== -1;\n    } else {\n      markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n    }\n\n    return /*#__PURE__*/React.createElement(React.Fragment, {\n      key: mark.value\n    }, /*#__PURE__*/React.createElement(\"span\", {\n      style: style,\n      \"data-index\": index,\n      className: clsx(classes.mark, markActive && classes.markActive)\n    }), mark.label != null ? /*#__PURE__*/React.createElement(\"span\", {\n      \"aria-hidden\": true,\n      \"data-index\": index,\n      style: style,\n      className: clsx(classes.markLabel, markActive && classes.markLabelActive)\n    }, mark.label) : null);\n  }), values.map(function (value, index) {\n    var percent = valueToPercent(value, min, max);\n    var style = axisProps[axis].offset(percent);\n    return /*#__PURE__*/React.createElement(ValueLabelComponent, {\n      key: index,\n      valueLabelFormat: valueLabelFormat,\n      valueLabelDisplay: valueLabelDisplay,\n      className: classes.valueLabel,\n      value: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat,\n      index: index,\n      open: open === index || active === index || valueLabelDisplay === 'on',\n      disabled: disabled\n    }, /*#__PURE__*/React.createElement(ThumbComponent, {\n      className: clsx(classes.thumb, classes[\"thumbColor\".concat(capitalize(color))], active === index && classes.active, disabled && classes.disabled, focusVisible === index && classes.focusVisible),\n      tabIndex: disabled ? null : 0,\n      role: \"slider\",\n      style: style,\n      \"data-index\": index,\n      \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n      \"aria-labelledby\": ariaLabelledby,\n      \"aria-orientation\": orientation,\n      \"aria-valuemax\": scale(max),\n      \"aria-valuemin\": scale(min),\n      \"aria-valuenow\": scale(value),\n      \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n      onKeyDown: handleKeyDown,\n      onFocus: handleFocus,\n      onBlur: handleBlur,\n      onMouseOver: handleMouseOver,\n      onMouseLeave: handleMouseLeave\n    }));\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.propTypes = {\n  /**\n   * The label of the slider.\n   */\n  'aria-label': chainPropTypes(PropTypes.string, function (props) {\n    var range = Array.isArray(props.value || props.defaultValue);\n\n    if (range && props['aria-label'] != null) {\n      return new Error('Material-UI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * The id of the element containing a label for the slider.\n   */\n  'aria-labelledby': PropTypes.string,\n\n  /**\n   * A string value that provides a user-friendly name for the current value of the slider.\n   */\n  'aria-valuetext': chainPropTypes(PropTypes.string, function (props) {\n    var range = Array.isArray(props.value || props.defaultValue);\n\n    if (range && props['aria-valuetext'] != null) {\n      return new Error('Material-UI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: PropTypes.oneOf(['primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The default element value. Use when the component is not controlled.\n   */\n  defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n  /**\n   * If `true`, the slider will be disabled.\n   */\n  disabled: PropTypes.bool,\n\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n   *\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaLabel: PropTypes.func,\n\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n   *\n   * @param {number} value The thumb label's value to format.\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaValueText: PropTypes.func,\n\n  /**\n   * Marks indicate predetermined values to which the user can move the slider.\n   * If `true` the marks will be spaced according the value of the `step` prop.\n   * If an array, it should contain objects with `value` and an optional `label` keys.\n   */\n  marks: PropTypes.oneOfType([PropTypes.bool, PropTypes.array]),\n\n  /**\n   * The maximum allowed value of the slider.\n   * Should not be equal to min.\n   */\n  max: PropTypes.number,\n\n  /**\n   * The minimum allowed value of the slider.\n   * Should not be equal to max.\n   */\n  min: PropTypes.number,\n\n  /**\n   * Name attribute of the hidden `input` element.\n   */\n  name: PropTypes.string,\n\n  /**\n   * Callback function that is fired when the slider's value changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number | number[]} value The new value.\n   */\n  onChange: PropTypes.func,\n\n  /**\n   * Callback function that is fired when the `mouseup` is triggered.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number | number[]} value The new value.\n   */\n  onChangeCommitted: PropTypes.func,\n\n  /**\n   * @ignore\n   */\n  onMouseDown: PropTypes.func,\n\n  /**\n   * The slider orientation.\n   */\n  orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * A transformation function, to change the scale of the slider.\n   */\n  scale: PropTypes.func,\n\n  /**\n   * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n   * The `min` prop serves as the origin for the valid values.\n   * We recommend (max - min) to be evenly divisible by the step.\n   *\n   * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n   */\n  step: PropTypes.number,\n\n  /**\n   * The component used to display the value label.\n   */\n  ThumbComponent: PropTypes.elementType,\n\n  /**\n   * The track presentation:\n   *\n   * - `normal` the track will render a bar representing the slider value.\n   * - `inverted` the track will render a bar representing the remaining slider value.\n   * - `false` the track will render without a bar.\n   */\n  track: PropTypes.oneOf(['normal', false, 'inverted']),\n\n  /**\n   * The value of the slider.\n   * For ranged sliders, provide an array with two values.\n   */\n  value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n  /**\n   * The value label component.\n   */\n  ValueLabelComponent: PropTypes.elementType,\n\n  /**\n   * Controls when the value label is displayed:\n   *\n   * - `auto` the value label will display when the thumb is hovered or focused.\n   * - `on` will display persistently.\n   * - `off` will never display.\n   */\n  valueLabelDisplay: PropTypes.oneOf(['on', 'auto', 'off']),\n\n  /**\n   * The format function the value label's value.\n   *\n   * When a function is provided, it should have the following signature:\n   *\n   * - {number} value The value label's value to format\n   * - {number} index The value label's index to format\n   */\n  valueLabelFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n} : void 0;\nexport default withStyles(styles, {\n  name: 'MuiSlider'\n})(Slider);","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/node_modules/@material-ui/core/esm/Slider/Slider.js"],"names":["_toConsumableArray","_slicedToArray","_objectWithoutProperties","_extends","React","PropTypes","clsx","chainPropTypes","withStyles","useTheme","fade","lighten","darken","useIsFocusVisible","ownerDocument","useEventCallback","useForkRef","capitalize","useControlled","ValueLabel","asc","a","b","clamp","value","min","max","Math","findClosest","values","currentValue","_values$reduce","reduce","acc","index","distance","abs","closestIndex","trackFinger","event","touchId","current","undefined","changedTouches","i","length","touch","identifier","x","clientX","y","clientY","valueToPercent","percentToValue","percent","getDecimalPrecision","num","parts","toExponential","split","matissaDecimalPart","parseInt","decimalPart","toString","roundValueToStep","step","nearest","round","Number","toFixed","setValueIndex","_ref","source","newValue","output","slice","focusThumb","_ref2","sliderRef","activeIndex","setActive","contains","document","activeElement","getAttribute","querySelector","concat","focus","axisProps","horizontal","offset","left","leap","width","right","vertical","bottom","height","Identity","styles","theme","root","boxSizing","padding","display","position","cursor","touchAction","color","palette","primary","main","WebkitTapHighlightColor","pointerEvents","grey","colorAdjust","colorPrimary","colorSecondary","secondary","marked","marginBottom","marginRight","disabled","rail","borderRadius","backgroundColor","opacity","track","trackFalse","trackInverted","type","thumb","marginLeft","marginTop","outline","alignItems","justifyContent","transition","transitions","create","duration","shortest","content","top","boxShadow","thumbColorPrimary","thumbColorSecondary","active","focusVisible","valueLabel","mark","markActive","background","paper","markLabel","typography","body2","text","transform","whiteSpace","markLabelActive","Slider","forwardRef","props","ref","ariaLabel","ariaLabelledby","ariaValuetext","classes","className","_props$color","_props$component","component","Component","defaultValue","_props$disabled","getAriaLabel","getAriaValueText","_props$marks","marks","marksProp","_props$max","_props$min","name","onChange","onChangeCommitted","onMouseDown","_props$orientation","orientation","_props$scale","scale","_props$step","_props$ThumbComponent","ThumbComponent","_props$track","valueProp","_props$ValueLabelComp","ValueLabelComponent","_props$valueLabelDisp","valueLabelDisplay","_props$valueLabelForm","valueLabelFormat","other","useRef","_React$useState","useState","_React$useState2","open","setOpen","_useControlled","controlled","default","_useControlled2","valueDerived","setValueState","range","Array","isArray","sort","map","floor","_","_useIsFocusVisible","isFocusVisible","onBlurVisible","focusVisibleRef","_React$useState3","setFocusVisible","handleFocusRef","handleRef","handleFocus","currentTarget","handleBlur","handleMouseOver","handleMouseLeave","isRtl","direction","handleKeyDown","tenPercents","marksValues","marksIndex","indexOf","increaseKey","decreaseKey","key","preventDefault","previousValue","previousIndex","axis","getFingerNewValue","_ref3","finger","_ref3$move","move","values2","slider","_slider$getBoundingCl","getBoundingClientRect","handleTouchMove","_getFingerNewValue","handleTouchEnd","_getFingerNewValue2","doc","removeEventListener","handleTouchStart","_getFingerNewValue3","addEventListener","useEffect","handleMouseDown","_getFingerNewValue4","trackOffset","trackLeap","trackStyle","createElement","some","label","style","join","Fragment","tabIndex","role","onKeyDown","onFocus","onBlur","onMouseOver","onMouseLeave","process","env","NODE_ENV","propTypes","string","Error","object","isRequired","oneOf","elementType","oneOfType","number","arrayOf","bool","func","array"],"mappings":"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","sourcesContent":["import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport useTheme from '../styles/useTheme';\nimport { fade, lighten, darken } from '../styles/colorManipulator';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport ownerDocument from '../utils/ownerDocument';\nimport useEventCallback from '../utils/useEventCallback';\nimport useForkRef from '../utils/useForkRef';\nimport capitalize from '../utils/capitalize';\nimport useControlled from '../utils/useControlled';\nimport ValueLabel from './ValueLabel';\n\nfunction asc(a, b) {\n  return a - b;\n}\n\nfunction clamp(value, min, max) {\n  return Math.min(Math.max(min, value), max);\n}\n\nfunction findClosest(values, currentValue) {\n  var _values$reduce = values.reduce(function (acc, value, index) {\n    var distance = Math.abs(currentValue - value);\n\n    if (acc === null || distance < acc.distance || distance === acc.distance) {\n      return {\n        distance: distance,\n        index: index\n      };\n    }\n\n    return acc;\n  }, null),\n      closestIndex = _values$reduce.index;\n\n  return closestIndex;\n}\n\nfunction trackFinger(event, touchId) {\n  if (touchId.current !== undefined && event.changedTouches) {\n    for (var i = 0; i < event.changedTouches.length; i += 1) {\n      var touch = event.changedTouches[i];\n\n      if (touch.identifier === touchId.current) {\n        return {\n          x: touch.clientX,\n          y: touch.clientY\n        };\n      }\n    }\n\n    return false;\n  }\n\n  return {\n    x: event.clientX,\n    y: event.clientY\n  };\n}\n\nfunction valueToPercent(value, min, max) {\n  return (value - min) * 100 / (max - min);\n}\n\nfunction percentToValue(percent, min, max) {\n  return (max - min) * percent + min;\n}\n\nfunction getDecimalPrecision(num) {\n  // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n  // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n  if (Math.abs(num) < 1) {\n    var parts = num.toExponential().split('e-');\n    var matissaDecimalPart = parts[0].split('.')[1];\n    return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n  }\n\n  var decimalPart = num.toString().split('.')[1];\n  return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value, step, min) {\n  var nearest = Math.round((value - min) / step) * step + min;\n  return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction setValueIndex(_ref) {\n  var values = _ref.values,\n      source = _ref.source,\n      newValue = _ref.newValue,\n      index = _ref.index;\n\n  // Performance shortcut\n  if (values[index] === newValue) {\n    return source;\n  }\n\n  var output = values.slice();\n  output[index] = newValue;\n  return output;\n}\n\nfunction focusThumb(_ref2) {\n  var sliderRef = _ref2.sliderRef,\n      activeIndex = _ref2.activeIndex,\n      setActive = _ref2.setActive;\n\n  if (!sliderRef.current.contains(document.activeElement) || Number(document.activeElement.getAttribute('data-index')) !== activeIndex) {\n    sliderRef.current.querySelector(\"[role=\\\"slider\\\"][data-index=\\\"\".concat(activeIndex, \"\\\"]\")).focus();\n  }\n\n  if (setActive) {\n    setActive(activeIndex);\n  }\n}\n\nvar axisProps = {\n  horizontal: {\n    offset: function offset(percent) {\n      return {\n        left: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        width: \"\".concat(percent, \"%\")\n      };\n    }\n  },\n  'horizontal-reverse': {\n    offset: function offset(percent) {\n      return {\n        right: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        width: \"\".concat(percent, \"%\")\n      };\n    }\n  },\n  vertical: {\n    offset: function offset(percent) {\n      return {\n        bottom: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        height: \"\".concat(percent, \"%\")\n      };\n    }\n  }\n};\n\nvar Identity = function Identity(x) {\n  return x;\n};\n\nexport var styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      height: 2,\n      width: '100%',\n      boxSizing: 'content-box',\n      padding: '13px 0',\n      display: 'inline-block',\n      position: 'relative',\n      cursor: 'pointer',\n      touchAction: 'none',\n      color: theme.palette.primary.main,\n      WebkitTapHighlightColor: 'transparent',\n      '&$disabled': {\n        pointerEvents: 'none',\n        cursor: 'default',\n        color: theme.palette.grey[400]\n      },\n      '&$vertical': {\n        width: 2,\n        height: '100%',\n        padding: '0 13px'\n      },\n      // The primary input mechanism of the device includes a pointing device of limited accuracy.\n      '@media (pointer: coarse)': {\n        // Reach 42px touch target, about ~8mm on screen.\n        padding: '20px 0',\n        '&$vertical': {\n          padding: '0 20px'\n        }\n      },\n      '@media print': {\n        colorAdjust: 'exact'\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {// TODO v5: move the style here\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `marks` is provided with at least one label. */\n    marked: {\n      marginBottom: 20,\n      '&$vertical': {\n        marginBottom: 'auto',\n        marginRight: 20\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {},\n\n    /* Pseudo-class applied to the root and thumb element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the rail element. */\n    rail: {\n      display: 'block',\n      position: 'absolute',\n      width: '100%',\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor',\n      opacity: 0.38,\n      '$vertical &': {\n        height: '100%',\n        width: 2\n      }\n    },\n\n    /* Styles applied to the track element. */\n    track: {\n      display: 'block',\n      position: 'absolute',\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor',\n      '$vertical &': {\n        width: 2\n      }\n    },\n\n    /* Styles applied to the track element if `track={false}`. */\n    trackFalse: {\n      '& $track': {\n        display: 'none'\n      }\n    },\n\n    /* Styles applied to the track element if `track=\"inverted\"`. */\n    trackInverted: {\n      '& $track': {\n        backgroundColor: // Same logic as the LinearProgress track color\n        theme.palette.type === 'light' ? lighten(theme.palette.primary.main, 0.62) : darken(theme.palette.primary.main, 0.5)\n      },\n      '& $rail': {\n        opacity: 1\n      }\n    },\n\n    /* Styles applied to the thumb element. */\n    thumb: {\n      position: 'absolute',\n      width: 12,\n      height: 12,\n      marginLeft: -6,\n      marginTop: -5,\n      boxSizing: 'border-box',\n      borderRadius: '50%',\n      outline: 0,\n      backgroundColor: 'currentColor',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      transition: theme.transitions.create(['box-shadow'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&::after': {\n        position: 'absolute',\n        content: '\"\"',\n        borderRadius: '50%',\n        // reach 42px hit target (2 * 15 + thumb diameter)\n        left: -15,\n        top: -15,\n        right: -15,\n        bottom: -15\n      },\n      '&$focusVisible,&:hover': {\n        boxShadow: \"0px 0px 0px 8px \".concat(fade(theme.palette.primary.main, 0.16)),\n        '@media (hover: none)': {\n          boxShadow: 'none'\n        }\n      },\n      '&$active': {\n        boxShadow: \"0px 0px 0px 14px \".concat(fade(theme.palette.primary.main, 0.16))\n      },\n      '&$disabled': {\n        width: 8,\n        height: 8,\n        marginLeft: -4,\n        marginTop: -3,\n        '&:hover': {\n          boxShadow: 'none'\n        }\n      },\n      '$vertical &': {\n        marginLeft: -5,\n        marginBottom: -6\n      },\n      '$vertical &$disabled': {\n        marginLeft: -3,\n        marginBottom: -4\n      }\n    },\n\n    /* Styles applied to the thumb element if `color=\"primary\"`. */\n    thumbColorPrimary: {// TODO v5: move the style here\n    },\n\n    /* Styles applied to the thumb element if `color=\"secondary\"`. */\n    thumbColorSecondary: {\n      '&$focusVisible,&:hover': {\n        boxShadow: \"0px 0px 0px 8px \".concat(fade(theme.palette.secondary.main, 0.16))\n      },\n      '&$active': {\n        boxShadow: \"0px 0px 0px 14px \".concat(fade(theme.palette.secondary.main, 0.16))\n      }\n    },\n\n    /* Pseudo-class applied to the thumb element if it's active. */\n    active: {},\n\n    /* Pseudo-class applied to the thumb element if keyboard focused. */\n    focusVisible: {},\n\n    /* Styles applied to the thumb label element. */\n    valueLabel: {\n      // IE 11 centering bug, to remove from the customization demos once no longer supported\n      left: 'calc(-50% - 4px)'\n    },\n\n    /* Styles applied to the mark element. */\n    mark: {\n      position: 'absolute',\n      width: 2,\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor'\n    },\n\n    /* Styles applied to the mark element if active (depending on the value). */\n    markActive: {\n      backgroundColor: theme.palette.background.paper,\n      opacity: 0.8\n    },\n\n    /* Styles applied to the mark label element. */\n    markLabel: _extends({}, theme.typography.body2, {\n      color: theme.palette.text.secondary,\n      position: 'absolute',\n      top: 26,\n      transform: 'translateX(-50%)',\n      whiteSpace: 'nowrap',\n      '$vertical &': {\n        top: 'auto',\n        left: 26,\n        transform: 'translateY(50%)'\n      },\n      '@media (pointer: coarse)': {\n        top: 40,\n        '$vertical &': {\n          left: 31\n        }\n      }\n    }),\n\n    /* Styles applied to the mark label element if active (depending on the value). */\n    markLabelActive: {\n      color: theme.palette.text.primary\n    }\n  };\n};\nvar Slider = /*#__PURE__*/React.forwardRef(function Slider(props, ref) {\n  var ariaLabel = props['aria-label'],\n      ariaLabelledby = props['aria-labelledby'],\n      ariaValuetext = props['aria-valuetext'],\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'span' : _props$component,\n      defaultValue = props.defaultValue,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      getAriaLabel = props.getAriaLabel,\n      getAriaValueText = props.getAriaValueText,\n      _props$marks = props.marks,\n      marksProp = _props$marks === void 0 ? false : _props$marks,\n      _props$max = props.max,\n      max = _props$max === void 0 ? 100 : _props$max,\n      _props$min = props.min,\n      min = _props$min === void 0 ? 0 : _props$min,\n      name = props.name,\n      onChange = props.onChange,\n      onChangeCommitted = props.onChangeCommitted,\n      onMouseDown = props.onMouseDown,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      _props$scale = props.scale,\n      scale = _props$scale === void 0 ? Identity : _props$scale,\n      _props$step = props.step,\n      step = _props$step === void 0 ? 1 : _props$step,\n      _props$ThumbComponent = props.ThumbComponent,\n      ThumbComponent = _props$ThumbComponent === void 0 ? 'span' : _props$ThumbComponent,\n      _props$track = props.track,\n      track = _props$track === void 0 ? 'normal' : _props$track,\n      valueProp = props.value,\n      _props$ValueLabelComp = props.ValueLabelComponent,\n      ValueLabelComponent = _props$ValueLabelComp === void 0 ? ValueLabel : _props$ValueLabelComp,\n      _props$valueLabelDisp = props.valueLabelDisplay,\n      valueLabelDisplay = _props$valueLabelDisp === void 0 ? 'off' : _props$valueLabelDisp,\n      _props$valueLabelForm = props.valueLabelFormat,\n      valueLabelFormat = _props$valueLabelForm === void 0 ? Identity : _props$valueLabelForm,\n      other = _objectWithoutProperties(props, [\"aria-label\", \"aria-labelledby\", \"aria-valuetext\", \"classes\", \"className\", \"color\", \"component\", \"defaultValue\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"onMouseDown\", \"orientation\", \"scale\", \"step\", \"ThumbComponent\", \"track\", \"value\", \"ValueLabelComponent\", \"valueLabelDisplay\", \"valueLabelFormat\"]);\n\n  var theme = useTheme();\n  var touchId = React.useRef(); // We can't use the :active browser pseudo-classes.\n  // - The active state isn't triggered when clicking on the rail.\n  // - The active state isn't transfered when inversing a range slider.\n\n  var _React$useState = React.useState(-1),\n      active = _React$useState[0],\n      setActive = _React$useState[1];\n\n  var _React$useState2 = React.useState(-1),\n      open = _React$useState2[0],\n      setOpen = _React$useState2[1];\n\n  var _useControlled = useControlled({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Slider'\n  }),\n      _useControlled2 = _slicedToArray(_useControlled, 2),\n      valueDerived = _useControlled2[0],\n      setValueState = _useControlled2[1];\n\n  var range = Array.isArray(valueDerived);\n  var values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n  values = values.map(function (value) {\n    return clamp(value, min, max);\n  });\n  var marks = marksProp === true && step !== null ? _toConsumableArray(Array(Math.floor((max - min) / step) + 1)).map(function (_, index) {\n    return {\n      value: min + step * index\n    };\n  }) : marksProp || [];\n\n  var _useIsFocusVisible = useIsFocusVisible(),\n      isFocusVisible = _useIsFocusVisible.isFocusVisible,\n      onBlurVisible = _useIsFocusVisible.onBlurVisible,\n      focusVisibleRef = _useIsFocusVisible.ref;\n\n  var _React$useState3 = React.useState(-1),\n      focusVisible = _React$useState3[0],\n      setFocusVisible = _React$useState3[1];\n\n  var sliderRef = React.useRef();\n  var handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n  var handleRef = useForkRef(ref, handleFocusRef);\n  var handleFocus = useEventCallback(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n\n    if (isFocusVisible(event)) {\n      setFocusVisible(index);\n    }\n\n    setOpen(index);\n  });\n  var handleBlur = useEventCallback(function () {\n    if (focusVisible !== -1) {\n      setFocusVisible(-1);\n      onBlurVisible();\n    }\n\n    setOpen(-1);\n  });\n  var handleMouseOver = useEventCallback(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n    setOpen(index);\n  });\n  var handleMouseLeave = useEventCallback(function () {\n    setOpen(-1);\n  });\n  var isRtl = theme.direction === 'rtl';\n  var handleKeyDown = useEventCallback(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n    var value = values[index];\n    var tenPercents = (max - min) / 10;\n    var marksValues = marks.map(function (mark) {\n      return mark.value;\n    });\n    var marksIndex = marksValues.indexOf(value);\n    var newValue;\n    var increaseKey = isRtl ? 'ArrowLeft' : 'ArrowRight';\n    var decreaseKey = isRtl ? 'ArrowRight' : 'ArrowLeft';\n\n    switch (event.key) {\n      case 'Home':\n        newValue = min;\n        break;\n\n      case 'End':\n        newValue = max;\n        break;\n\n      case 'PageUp':\n        if (step) {\n          newValue = value + tenPercents;\n        }\n\n        break;\n\n      case 'PageDown':\n        if (step) {\n          newValue = value - tenPercents;\n        }\n\n        break;\n\n      case increaseKey:\n      case 'ArrowUp':\n        if (step) {\n          newValue = value + step;\n        } else {\n          newValue = marksValues[marksIndex + 1] || marksValues[marksValues.length - 1];\n        }\n\n        break;\n\n      case decreaseKey:\n      case 'ArrowDown':\n        if (step) {\n          newValue = value - step;\n        } else {\n          newValue = marksValues[marksIndex - 1] || marksValues[0];\n        }\n\n        break;\n\n      default:\n        return;\n    } // Prevent scroll of the page\n\n\n    event.preventDefault();\n\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    }\n\n    newValue = clamp(newValue, min, max);\n\n    if (range) {\n      var previousValue = newValue;\n      newValue = setValueIndex({\n        values: values,\n        source: valueDerived,\n        newValue: newValue,\n        index: index\n      }).sort(asc);\n      focusThumb({\n        sliderRef: sliderRef,\n        activeIndex: newValue.indexOf(previousValue)\n      });\n    }\n\n    setValueState(newValue);\n    setFocusVisible(index);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n  });\n  var previousIndex = React.useRef();\n  var axis = orientation;\n\n  if (isRtl && orientation !== \"vertical\") {\n    axis += '-reverse';\n  }\n\n  var getFingerNewValue = function getFingerNewValue(_ref3) {\n    var finger = _ref3.finger,\n        _ref3$move = _ref3.move,\n        move = _ref3$move === void 0 ? false : _ref3$move,\n        values2 = _ref3.values,\n        source = _ref3.source;\n    var slider = sliderRef.current;\n\n    var _slider$getBoundingCl = slider.getBoundingClientRect(),\n        width = _slider$getBoundingCl.width,\n        height = _slider$getBoundingCl.height,\n        bottom = _slider$getBoundingCl.bottom,\n        left = _slider$getBoundingCl.left;\n\n    var percent;\n\n    if (axis.indexOf('vertical') === 0) {\n      percent = (bottom - finger.y) / height;\n    } else {\n      percent = (finger.x - left) / width;\n    }\n\n    if (axis.indexOf('-reverse') !== -1) {\n      percent = 1 - percent;\n    }\n\n    var newValue;\n    newValue = percentToValue(percent, min, max);\n\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    } else {\n      var marksValues = marks.map(function (mark) {\n        return mark.value;\n      });\n      var closestIndex = findClosest(marksValues, newValue);\n      newValue = marksValues[closestIndex];\n    }\n\n    newValue = clamp(newValue, min, max);\n    var activeIndex = 0;\n\n    if (range) {\n      if (!move) {\n        activeIndex = findClosest(values2, newValue);\n      } else {\n        activeIndex = previousIndex.current;\n      }\n\n      var previousValue = newValue;\n      newValue = setValueIndex({\n        values: values2,\n        source: source,\n        newValue: newValue,\n        index: activeIndex\n      }).sort(asc);\n      activeIndex = newValue.indexOf(previousValue);\n      previousIndex.current = activeIndex;\n    }\n\n    return {\n      newValue: newValue,\n      activeIndex: activeIndex\n    };\n  };\n\n  var handleTouchMove = useEventCallback(function (event) {\n    var finger = trackFinger(event, touchId);\n\n    if (!finger) {\n      return;\n    }\n\n    var _getFingerNewValue = getFingerNewValue({\n      finger: finger,\n      move: true,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue.newValue,\n        activeIndex = _getFingerNewValue.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n  });\n  var handleTouchEnd = useEventCallback(function (event) {\n    var finger = trackFinger(event, touchId);\n\n    if (!finger) {\n      return;\n    }\n\n    var _getFingerNewValue2 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue2.newValue;\n\n    setActive(-1);\n\n    if (event.type === 'touchend') {\n      setOpen(-1);\n    }\n\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n\n    touchId.current = undefined;\n    var doc = ownerDocument(sliderRef.current);\n    doc.removeEventListener('mousemove', handleTouchMove);\n    doc.removeEventListener('mouseup', handleTouchEnd);\n    doc.removeEventListener('touchmove', handleTouchMove);\n    doc.removeEventListener('touchend', handleTouchEnd);\n  });\n  var handleTouchStart = useEventCallback(function (event) {\n    // Workaround as Safari has partial support for touchAction: 'none'.\n    event.preventDefault();\n    var touch = event.changedTouches[0];\n\n    if (touch != null) {\n      // A number that uniquely identifies the current finger in the touch session.\n      touchId.current = touch.identifier;\n    }\n\n    var finger = trackFinger(event, touchId);\n\n    var _getFingerNewValue3 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue3.newValue,\n        activeIndex = _getFingerNewValue3.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    var doc = ownerDocument(sliderRef.current);\n    doc.addEventListener('touchmove', handleTouchMove);\n    doc.addEventListener('touchend', handleTouchEnd);\n  });\n  React.useEffect(function () {\n    var slider = sliderRef.current;\n    slider.addEventListener('touchstart', handleTouchStart);\n    var doc = ownerDocument(slider);\n    return function () {\n      slider.removeEventListener('touchstart', handleTouchStart);\n      doc.removeEventListener('mousemove', handleTouchMove);\n      doc.removeEventListener('mouseup', handleTouchEnd);\n      doc.removeEventListener('touchmove', handleTouchMove);\n      doc.removeEventListener('touchend', handleTouchEnd);\n    };\n  }, [handleTouchEnd, handleTouchMove, handleTouchStart]);\n  var handleMouseDown = useEventCallback(function (event) {\n    if (onMouseDown) {\n      onMouseDown(event);\n    }\n\n    event.preventDefault();\n    var finger = trackFinger(event, touchId);\n\n    var _getFingerNewValue4 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue4.newValue,\n        activeIndex = _getFingerNewValue4.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    var doc = ownerDocument(sliderRef.current);\n    doc.addEventListener('mousemove', handleTouchMove);\n    doc.addEventListener('mouseup', handleTouchEnd);\n  });\n  var trackOffset = valueToPercent(range ? values[0] : min, min, max);\n  var trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n\n  var trackStyle = _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap));\n\n  return /*#__PURE__*/React.createElement(Component, _extends({\n    ref: handleRef,\n    className: clsx(classes.root, classes[\"color\".concat(capitalize(color))], className, disabled && classes.disabled, marks.length > 0 && marks.some(function (mark) {\n      return mark.label;\n    }) && classes.marked, track === false && classes.trackFalse, orientation === 'vertical' && classes.vertical, track === 'inverted' && classes.trackInverted),\n    onMouseDown: handleMouseDown\n  }, other), /*#__PURE__*/React.createElement(\"span\", {\n    className: classes.rail\n  }), /*#__PURE__*/React.createElement(\"span\", {\n    className: classes.track,\n    style: trackStyle\n  }), /*#__PURE__*/React.createElement(\"input\", {\n    value: values.join(','),\n    name: name,\n    type: \"hidden\"\n  }), marks.map(function (mark, index) {\n    var percent = valueToPercent(mark.value, min, max);\n    var style = axisProps[axis].offset(percent);\n    var markActive;\n\n    if (track === false) {\n      markActive = values.indexOf(mark.value) !== -1;\n    } else {\n      markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n    }\n\n    return /*#__PURE__*/React.createElement(React.Fragment, {\n      key: mark.value\n    }, /*#__PURE__*/React.createElement(\"span\", {\n      style: style,\n      \"data-index\": index,\n      className: clsx(classes.mark, markActive && classes.markActive)\n    }), mark.label != null ? /*#__PURE__*/React.createElement(\"span\", {\n      \"aria-hidden\": true,\n      \"data-index\": index,\n      style: style,\n      className: clsx(classes.markLabel, markActive && classes.markLabelActive)\n    }, mark.label) : null);\n  }), values.map(function (value, index) {\n    var percent = valueToPercent(value, min, max);\n    var style = axisProps[axis].offset(percent);\n    return /*#__PURE__*/React.createElement(ValueLabelComponent, {\n      key: index,\n      valueLabelFormat: valueLabelFormat,\n      valueLabelDisplay: valueLabelDisplay,\n      className: classes.valueLabel,\n      value: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat,\n      index: index,\n      open: open === index || active === index || valueLabelDisplay === 'on',\n      disabled: disabled\n    }, /*#__PURE__*/React.createElement(ThumbComponent, {\n      className: clsx(classes.thumb, classes[\"thumbColor\".concat(capitalize(color))], active === index && classes.active, disabled && classes.disabled, focusVisible === index && classes.focusVisible),\n      tabIndex: disabled ? null : 0,\n      role: \"slider\",\n      style: style,\n      \"data-index\": index,\n      \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n      \"aria-labelledby\": ariaLabelledby,\n      \"aria-orientation\": orientation,\n      \"aria-valuemax\": scale(max),\n      \"aria-valuemin\": scale(min),\n      \"aria-valuenow\": scale(value),\n      \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n      onKeyDown: handleKeyDown,\n      onFocus: handleFocus,\n      onBlur: handleBlur,\n      onMouseOver: handleMouseOver,\n      onMouseLeave: handleMouseLeave\n    }));\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.propTypes = {\n  /**\n   * The label of the slider.\n   */\n  'aria-label': chainPropTypes(PropTypes.string, function (props) {\n    var range = Array.isArray(props.value || props.defaultValue);\n\n    if (range && props['aria-label'] != null) {\n      return new Error('Material-UI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * The id of the element containing a label for the slider.\n   */\n  'aria-labelledby': PropTypes.string,\n\n  /**\n   * A string value that provides a user-friendly name for the current value of the slider.\n   */\n  'aria-valuetext': chainPropTypes(PropTypes.string, function (props) {\n    var range = Array.isArray(props.value || props.defaultValue);\n\n    if (range && props['aria-valuetext'] != null) {\n      return new Error('Material-UI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: PropTypes.oneOf(['primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The default element value. Use when the component is not controlled.\n   */\n  defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n  /**\n   * If `true`, the slider will be disabled.\n   */\n  disabled: PropTypes.bool,\n\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n   *\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaLabel: PropTypes.func,\n\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n   *\n   * @param {number} value The thumb label's value to format.\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaValueText: PropTypes.func,\n\n  /**\n   * Marks indicate predetermined values to which the user can move the slider.\n   * If `true` the marks will be spaced according the value of the `step` prop.\n   * If an array, it should contain objects with `value` and an optional `label` keys.\n   */\n  marks: PropTypes.oneOfType([PropTypes.bool, PropTypes.array]),\n\n  /**\n   * The maximum allowed value of the slider.\n   * Should not be equal to min.\n   */\n  max: PropTypes.number,\n\n  /**\n   * The minimum allowed value of the slider.\n   * Should not be equal to max.\n   */\n  min: PropTypes.number,\n\n  /**\n   * Name attribute of the hidden `input` element.\n   */\n  name: PropTypes.string,\n\n  /**\n   * Callback function that is fired when the slider's value changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number | number[]} value The new value.\n   */\n  onChange: PropTypes.func,\n\n  /**\n   * Callback function that is fired when the `mouseup` is triggered.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number | number[]} value The new value.\n   */\n  onChangeCommitted: PropTypes.func,\n\n  /**\n   * @ignore\n   */\n  onMouseDown: PropTypes.func,\n\n  /**\n   * The slider orientation.\n   */\n  orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * A transformation function, to change the scale of the slider.\n   */\n  scale: PropTypes.func,\n\n  /**\n   * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n   * The `min` prop serves as the origin for the valid values.\n   * We recommend (max - min) to be evenly divisible by the step.\n   *\n   * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n   */\n  step: PropTypes.number,\n\n  /**\n   * The component used to display the value label.\n   */\n  ThumbComponent: PropTypes.elementType,\n\n  /**\n   * The track presentation:\n   *\n   * - `normal` the track will render a bar representing the slider value.\n   * - `inverted` the track will render a bar representing the remaining slider value.\n   * - `false` the track will render without a bar.\n   */\n  track: PropTypes.oneOf(['normal', false, 'inverted']),\n\n  /**\n   * The value of the slider.\n   * For ranged sliders, provide an array with two values.\n   */\n  value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n  /**\n   * The value label component.\n   */\n  ValueLabelComponent: PropTypes.elementType,\n\n  /**\n   * Controls when the value label is displayed:\n   *\n   * - `auto` the value label will display when the thumb is hovered or focused.\n   * - `on` will display persistently.\n   * - `off` will never display.\n   */\n  valueLabelDisplay: PropTypes.oneOf(['on', 'auto', 'off']),\n\n  /**\n   * The format function the value label's value.\n   *\n   * When a function is provided, it should have the following signature:\n   *\n   * - {number} value The value label's value to format\n   * - {number} index The value label's index to format\n   */\n  valueLabelFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n} : void 0;\nexport default withStyles(styles, {\n  name: 'MuiSlider'\n})(Slider);"]},"metadata":{},"sourceType":"module"}