{"version":3,"file":"RangeSlider.cjs","sources":["../../../../src/components/Slider/RangeSlider.tsx"],"sourcesContent":["import { cx } from '@emotion/css';\nimport { Global } from '@emotion/react';\nimport Slider, { SliderProps } from '@rc-component/slider';\nimport { useCallback } from 'react';\n\nimport { t } from '@grafana/i18n';\n\nimport { useStyles2 } from '../../themes/ThemeContext';\n\nimport HandleTooltip from './HandleTooltip';\nimport { getStyles } from './styles';\nimport { RangeSliderProps } from './types';\n\n/**\n * @public\n *\n * RichHistoryQueriesTab uses this Range Component\n *\n * https://developers.grafana.com/ui/latest/index.html?path=/docs/inputs-rangeslider--docs\n */\nexport const RangeSlider = ({\n  min,\n  max,\n  onChange,\n  onAfterChange,\n  orientation = 'horizontal',\n  reverse,\n  step,\n  formatTooltipResult,\n  value,\n  tooltipAlwaysVisible = true,\n}: RangeSliderProps) => {\n  const handleChange = useCallback(\n    (v: number | number[]) => {\n      const value = typeof v === 'number' ? [v, v] : v;\n      onChange?.(value);\n    },\n    [onChange]\n  );\n\n  const handleChangeComplete = useCallback(\n    (v: number | number[]) => {\n      const value = typeof v === 'number' ? [v, v] : v;\n      onAfterChange?.(value);\n    },\n    [onAfterChange]\n  );\n\n  const isHorizontal = orientation === 'horizontal';\n  const styles = useStyles2(getStyles, isHorizontal);\n  const dragHandleAriaLabel = t('grafana-ui.range-slider.drag-handle-aria-label', 'Use arrow keys to change the value');\n\n  const tipHandleRender: SliderProps['handleRender'] = (node, handleProps) => {\n    return (\n      <HandleTooltip\n        value={handleProps.value}\n        visible={tooltipAlwaysVisible || handleProps.dragging}\n        tipFormatter={formatTooltipResult ? () => formatTooltipResult(handleProps.value) : undefined}\n        placement={isHorizontal ? 'top' : 'right'}\n      >\n        {node}\n      </HandleTooltip>\n    );\n  };\n\n  return (\n    <div className={cx(styles.container, styles.slider)}>\n      {/** Slider tooltip's parent component is body and therefore we need Global component to do css overrides for it. */}\n      <Global styles={styles.tooltip} />\n      <Slider\n        min={min}\n        max={max}\n        step={step}\n        defaultValue={value}\n        range={true}\n        onChange={handleChange}\n        onChangeComplete={handleChangeComplete}\n        vertical={!isHorizontal}\n        reverse={reverse}\n        handleRender={tipHandleRender}\n        ariaLabelForHandle={dragHandleAriaLabel}\n      />\n    </div>\n  );\n};\n\nRangeSlider.displayName = 'RangeSlider';\n"],"names":["useCallback","value","styles","useStyles2","getStyles","t","jsx","jsxs","cx","Global","Slider"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBO,MAAM,cAAc,CAAC;AAAA,EAC1B,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,OAAA;AAAA,EACA,IAAA;AAAA,EACA,mBAAA;AAAA,EACA,KAAA;AAAA,EACA,oBAAA,GAAuB;AACzB,CAAA,KAAwB;AACtB,EAAA,MAAM,YAAA,GAAeA,iBAAA;AAAA,IACnB,CAAC,CAAA,KAAyB;AACxB,MAAA,MAAMC,SAAQ,OAAO,CAAA,KAAM,WAAW,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,CAAA;AAC/C,MAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAWA,MAAAA,CAAAA;AAAA,IACb,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,oBAAA,GAAuBD,iBAAA;AAAA,IAC3B,CAAC,CAAA,KAAyB;AACxB,MAAA,MAAMC,SAAQ,OAAO,CAAA,KAAM,WAAW,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,CAAA;AAC/C,MAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgBA,MAAAA,CAAAA;AAAA,IAClB,CAAA;AAAA,IACA,CAAC,aAAa;AAAA,GAChB;AAEA,EAAA,MAAM,eAAe,WAAA,KAAgB,YAAA;AACrC,EAAA,MAAMC,QAAA,GAASC,uBAAA,CAAWC,gBAAA,EAAW,YAAY,CAAA;AACjD,EAAA,MAAM,mBAAA,GAAsBC,MAAA,CAAE,gDAAA,EAAkD,oCAAoC,CAAA;AAEpH,EAAA,MAAM,eAAA,GAA+C,CAAC,IAAA,EAAM,WAAA,KAAgB;AAC1E,IAAA,uBACEC,cAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,OAAO,WAAA,CAAY,KAAA;AAAA,QACnB,OAAA,EAAS,wBAAwB,WAAA,CAAY,QAAA;AAAA,QAC7C,cAAc,mBAAA,GAAsB,MAAM,mBAAA,CAAoB,WAAA,CAAY,KAAK,CAAA,GAAI,KAAA,CAAA;AAAA,QACnF,SAAA,EAAW,eAAe,KAAA,GAAQ,OAAA;AAAA,QAEjC,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACEC,eAAA,CAAC,SAAI,SAAA,EAAWC,MAAA,CAAGN,SAAO,SAAA,EAAWA,QAAA,CAAO,MAAM,CAAA,EAEhD,QAAA,EAAA;AAAA,oBAAAI,cAAA,CAACG,YAAA,EAAA,EAAO,MAAA,EAAQP,QAAA,CAAO,OAAA,EAAS,CAAA;AAAA,oBAChCI,cAAA;AAAA,MAACI,gCAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA;AAAA,QACA,YAAA,EAAc,KAAA;AAAA,QACd,KAAA,EAAO,IAAA;AAAA,QACP,QAAA,EAAU,YAAA;AAAA,QACV,gBAAA,EAAkB,oBAAA;AAAA,QAClB,UAAU,CAAC,YAAA;AAAA,QACX,OAAA;AAAA,QACA,YAAA,EAAc,eAAA;AAAA,QACd,kBAAA,EAAoB;AAAA;AAAA;AACtB,GAAA,EACF,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;;;"}