{"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AA0CM,MAAM,0DAAc,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC,SAAS,YACnD,KAA+B,EAC/B,GAAiC;IAEjC,IAAI,YAAC,QAAQ,eAAE,WAAW,SAAE,KAAK,gBAAE,YAAY,iBAAE,aAAa,EAAE,GAAG,YAAW,GAAG;IACjF,IAAI,qBAA2C;IAC/C,IAAI,gBAAgB,MAClB,qBAAqB;QAAC,aAAa,KAAK;QAAE,aAAa,GAAG;KAAC;SACtD,IAAI,SAAS,MAClB,0DAA0D;IAC1D,qBAAqB;QAAC,MAAM,QAAQ,IAAI;QAAG,MAAM,QAAQ,IAAI;KAAI;IAGnE,IAAI,YAAyD;QAC3D,GAAG,UAAU;QACb,OAAO,SAAS,OAAO;YAAC,MAAM,KAAK;YAAE,MAAM,GAAG;SAAC,GAAG;QAClD,cAAc;QACd,UAAS,CAAC;YACR,WAAW;gBAAC,OAAO,CAAC,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,EAAE;YAAA;QACpC;QACA,aAAY,CAAC;YACX,cAAc;gBAAC,OAAO,CAAC,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,EAAE;YAAA;QACvC;QACA,eAAe,gBAAgB,CAAC,CAAC,OAAO,IAAI,GAAK,cAAc;uBAAC;qBAAO;YAAG,KAAK;IACjF;IAEA,IAAI,kBAAkB,CAAA,GAAA,uEAA0B,EAAE,CAAA,GAAA,mDAAW,GAAG;IAChE,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,sCAAQ;IAE1B,qBACE,0DAAC,CAAA,GAAA,oCAAS;QAAG,GAAG,SAAS;QAAE,SAAS;QAA0B,KAAK;OAChE,CAAC,YAAC,QAAQ,YAAE,QAAQ,SAAE,KAAK,EAA2B;QACrD,IAAI,eAAe,cAAc,QAAQ,UAAU;QACnD,qBACE,oIACE,0DAAC;YACC,WAAW,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;YAC9B,OAAO;gBAAC,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC;YAAA;0BAErD,0DAAC,CAAA,GAAA,qCAAU;YACT,OAAO;YACP,cAAY,gBAAgB,MAAM,CAAC;YACnC,YAAY,MAAM,UAAU;YAC5B,UAAU;YACV,UAAU;YACV,OAAO;YACP,MAAM,MAAM,SAAS;YACrB,MAAM,MAAM,IAAI;0BAElB,0DAAC;YACC,WAAW,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;YAC9B,OAAO;gBACL,CAAC,aAAa,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC;gBACpD,OAAO,GAAG,KAAK,GAAG,CAAC,MAAM,eAAe,CAAC,KAAK,MAAM,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC;YAClF;0BAEF,0DAAC,CAAA,GAAA,qCAAU;YACT,OAAO;YACP,cAAY,gBAAgB,MAAM,CAAC;YACnC,YAAY,MAAM,UAAU;YAC5B,UAAU;YACV,OAAO;YACP,MAAM,MAAM,OAAO;YACnB,MAAM,MAAM,IAAI;0BAElB,0DAAC;YACC,WAAW,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;YAC9B,OAAO;gBACL,OAAO,GAAG,AAAC,CAAA,IAAI,MAAM,eAAe,CAAC,EAAC,IAAK,IAAI,CAAC,CAAC;YACnD;;IAIR;AAGN","sources":["packages/@adobe/react-spectrum/src/slider/RangeSlider.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '../utils/classNames';\n\nimport {FocusableRef, RangeValue} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../../intl/slider/*.json';\nimport React from 'react';\nimport {\n  SliderBase,\n  SliderBaseChildArguments,\n  SliderBaseProps,\n  SpectrumBarSliderBase\n} from './SliderBase';\nimport {SliderThumb} from './SliderThumb';\nimport styles from '@adobe/spectrum-css-temp/components/slider/vars.css';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\n\nexport interface SpectrumRangeSliderProps extends SpectrumBarSliderBase<RangeValue<number>> {\n  /**\n   * The name of the start input element, used when submitting an HTML form. See\n   * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n   */\n  startName?: string;\n  /**\n   * The name of the end input element, used when submitting an HTML form. See\n   * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n   */\n  endName?: string;\n  /**\n   * The `<form>` element to associate the slider with.\n   * The value of this attribute must be the id of a `<form>` in the same document.\n   * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#form).\n   */\n  form?: string;\n}\n\n/**\n * RangeSliders allow users to quickly select a subset range. They should be used when the upper and\n * lower bounds to the range are invariable.\n */\nexport const RangeSlider = React.forwardRef(function RangeSlider(\n  props: SpectrumRangeSliderProps,\n  ref: FocusableRef<HTMLDivElement>\n) {\n  let {onChange, onChangeEnd, value, defaultValue, getValueLabel, ...otherProps} = props;\n  let defaultThumbValues: number[] | undefined = undefined;\n  if (defaultValue != null) {\n    defaultThumbValues = [defaultValue.start, defaultValue.end];\n  } else if (value == null) {\n    // make sure that useSliderState knows we have two handles\n    defaultThumbValues = [props.minValue ?? 0, props.maxValue ?? 100];\n  }\n\n  let baseProps: Omit<SliderBaseProps<number[]>, 'children'> = {\n    ...otherProps,\n    value: value != null ? [value.start, value.end] : undefined,\n    defaultValue: defaultThumbValues,\n    onChange(v) {\n      onChange?.({start: v[0], end: v[1]});\n    },\n    onChangeEnd(v) {\n      onChangeEnd?.({start: v[0], end: v[1]});\n    },\n    getValueLabel: getValueLabel ? ([start, end]) => getValueLabel({start, end}) : undefined\n  };\n\n  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/slider');\n  let {direction} = useLocale();\n\n  return (\n    <SliderBase {...baseProps} classes={'spectrum-Slider--range'} ref={ref}>\n      {({trackRef, inputRef, state}: SliderBaseChildArguments) => {\n        let cssDirection = direction === 'rtl' ? 'right' : 'left';\n        return (\n          <>\n            <div\n              className={classNames(styles, 'spectrum-Slider-track')}\n              style={{width: `${state.getThumbPercent(0) * 100}%`}}\n            />\n            <SliderThumb\n              index={0}\n              aria-label={stringFormatter.format('minimum')}\n              isDisabled={props.isDisabled}\n              trackRef={trackRef}\n              inputRef={inputRef}\n              state={state}\n              name={props.startName}\n              form={props.form}\n            />\n            <div\n              className={classNames(styles, 'spectrum-Slider-track')}\n              style={{\n                [cssDirection]: `${state.getThumbPercent(0) * 100}%`,\n                width: `${Math.abs(state.getThumbPercent(0) - state.getThumbPercent(1)) * 100}%`\n              }}\n            />\n            <SliderThumb\n              index={1}\n              aria-label={stringFormatter.format('maximum')}\n              isDisabled={props.isDisabled}\n              trackRef={trackRef}\n              state={state}\n              name={props.endName}\n              form={props.form}\n            />\n            <div\n              className={classNames(styles, 'spectrum-Slider-track')}\n              style={{\n                width: `${(1 - state.getThumbPercent(1)) * 100}%`\n              }}\n            />\n          </>\n        );\n      }}\n    </SliderBase>\n  );\n});\n"],"names":[],"version":3,"file":"RangeSlider.cjs.map"}