UNPKG

@grafana/ui

Version:
1 lines 4.04 kB
{"version":3,"file":"RangeSlider.mjs","sources":["../../../../src/components/Slider/RangeSlider.tsx"],"sourcesContent":["import { cx } from '@emotion/css';\nimport { Global } from '@emotion/react';\nimport Slider, { SliderProps } from 'rc-slider';\nimport { useCallback } from 'react';\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 */\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\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 />\n </div>\n );\n};\n\nRangeSlider.displayName = 'RangeSlider';\n"],"names":["value","Slider"],"mappings":";;;;;;;;;AAgBO,MAAM,cAAc,CAAC;AAAA,EAC1B,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACd,OAAA;AAAA,EACA,IAAA;AAAA,EACA,mBAAA;AAAA,EACA,KAAA;AAAA,EACA,oBAAuB,GAAA;AACzB,CAAwB,KAAA;AACtB,EAAA,MAAM,YAAe,GAAA,WAAA;AAAA,IACnB,CAAC,CAAyB,KAAA;AACxB,MAAA,MAAMA,SAAQ,OAAO,CAAA,KAAM,WAAW,CAAC,CAAA,EAAG,CAAC,CAAI,GAAA,CAAA;AAC/C,MAAWA,QAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAAA,CAAAA,MAAAA,CAAAA;AAAA,KACb;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,oBAAuB,GAAA,WAAA;AAAA,IAC3B,CAAC,CAAyB,KAAA;AACxB,MAAA,MAAMA,SAAQ,OAAO,CAAA,KAAM,WAAW,CAAC,CAAA,EAAG,CAAC,CAAI,GAAA,CAAA;AAC/C,MAAgBA,aAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAAA,CAAAA,MAAAA,CAAAA;AAAA,KAClB;AAAA,IACA,CAAC,aAAa;AAAA,GAChB;AAEA,EAAA,MAAM,eAAe,WAAgB,KAAA,YAAA;AACrC,EAAM,MAAA,MAAA,GAAS,UAAW,CAAA,SAAA,EAAW,YAAY,CAAA;AAEjD,EAAM,MAAA,eAAA,GAA+C,CAAC,IAAA,EAAM,WAAgB,KAAA;AAC1E,IACE,uBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,OAAO,WAAY,CAAA,KAAA;AAAA,QACnB,OAAA,EAAS,wBAAwB,WAAY,CAAA,QAAA;AAAA,QAC7C,cAAc,mBAAsB,GAAA,MAAM,mBAAoB,CAAA,WAAA,CAAY,KAAK,CAAI,GAAA,KAAA,CAAA;AAAA,QACnF,SAAA,EAAW,eAAe,KAAQ,GAAA,OAAA;AAAA,QAEjC,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,GAEJ;AAEA,EACE,uBAAA,IAAA,CAAC,SAAI,SAAW,EAAA,EAAA,CAAG,OAAO,SAAW,EAAA,MAAA,CAAO,MAAM,CAEhD,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,MAAA,EAAA,EAAO,MAAQ,EAAA,MAAA,CAAO,OAAS,EAAA,CAAA;AAAA,oBAChC,GAAA;AAAA,MAACC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA;AAAA,QACA,YAAc,EAAA,KAAA;AAAA,QACd,KAAO,EAAA,IAAA;AAAA,QACP,QAAU,EAAA,YAAA;AAAA,QACV,gBAAkB,EAAA,oBAAA;AAAA,QAClB,UAAU,CAAC,YAAA;AAAA,QACX,OAAA;AAAA,QACA,YAAc,EAAA;AAAA;AAAA;AAChB,GACF,EAAA,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAc,GAAA,aAAA;;;;"}