Files
wdi-dashboard/node_modules/@chakra-ui/slider/dist/chunk-45OCWRAV.mjs.map
2024-08-16 15:06:52 +05:30

1 line
23 KiB
Plaintext

{"version":3,"sources":["../src/use-slider.ts"],"sourcesContent":["import { usePanEvent } from \"@chakra-ui/react-use-pan-event\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\nimport { useUpdateEffect } from \"@chakra-ui/react-use-update-effect\"\nimport { useControllableState } from \"@chakra-ui/react-use-controllable-state\"\nimport { useSize } from \"@chakra-ui/react-use-size\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { useLatestRef } from \"@chakra-ui/react-use-latest-ref\"\nimport type { PropGetter, RequiredPropGetter } from \"@chakra-ui/react-types\"\nimport {\n clampValue,\n percentToValue,\n roundValueToStep,\n valueToPercent,\n} from \"@chakra-ui/number-utils\"\nimport { ariaAttr, callAllHandlers, dataAttr } from \"@chakra-ui/utils\"\nimport { useCallback, useMemo, useRef, useId, useState } from \"react\"\nimport { getIsReversed, getStyles } from \"./slider-utils\"\n\nexport interface UseSliderProps {\n /**\n * The minimum allowed value of the slider. Cannot be greater than max.\n * @default 0\n */\n min?: number\n /**\n * The maximum allowed value of the slider. Cannot be less than min.\n * @default 100\n */\n max?: number\n /**\n * The step in which increments/decrements have to be made\n * @default 1\n */\n step?: number\n /**\n * The value of the slider in controlled mode\n */\n value?: number\n /**\n * The initial value of the slider in uncontrolled mode\n */\n defaultValue?: number\n /**\n * Orientation of the slider\n * @default \"horizontal\"\n */\n orientation?: \"horizontal\" | \"vertical\"\n /**\n * If `true`, the value will be incremented or decremented in reverse.\n */\n isReversed?: boolean\n /**\n * Function called when the user starts selecting a new value (by dragging or clicking)\n */\n onChangeStart?(value: number): void\n /**\n * Function called when the user is done selecting a new value (by dragging or clicking)\n */\n onChangeEnd?(value: number): void\n /**\n * Function called whenever the slider value changes (by dragging or clicking)\n */\n onChange?(value: number): void\n /**\n * The base `id` to use for the slider and its components\n */\n id?: string\n /**\n * The name attribute of the hidden `input` field.\n * This is particularly useful in forms\n */\n name?: string\n /**\n * If `true`, the slider will be disabled\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the slider will be in `read-only` state\n * @default false\n */\n isReadOnly?: boolean\n /**\n * Function that returns the `aria-valuetext` for screen readers.\n * It is mostly used to generate a more human-readable\n * representation of the value for assistive technologies\n */\n getAriaValueText?(value: number): string\n /**\n * If `false`, the slider handle will not capture focus when value changes.\n * @default true\n */\n focusThumbOnChange?: boolean\n /**\n * The static string to use used for `aria-valuetext`\n */\n \"aria-valuetext\"?: string\n /**\n * The static string to use used for `aria-label`\n * if no visible label is used.\n */\n \"aria-label\"?: string\n /**\n * The static string `aria-labelledby` that points to the\n * ID of the element that serves as label for the slider\n */\n \"aria-labelledby\"?: string\n /**\n * The writing mode\n * @default \"ltr\"\n */\n direction?: \"ltr\" | \"rtl\"\n}\n\nexport interface SliderState {\n value: number\n isFocused: boolean\n isDragging: boolean\n}\n\nexport interface SliderActions {\n stepUp(step?: number): void\n stepDown(step?: number): void\n reset(): void\n stepTo(value: number): void\n}\n\n/**\n * React hook that implements an accessible range slider.\n *\n * It is an alternative to `<input type=\"range\" />`, and returns\n * prop getters for the component parts\n *\n * @see Docs https://chakra-ui.com/docs/form/slider\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n */\nexport function useSlider(props: UseSliderProps) {\n const {\n min = 0,\n max = 100,\n onChange,\n value: valueProp,\n defaultValue,\n isReversed: isReversedProp,\n direction = \"ltr\",\n orientation = \"horizontal\",\n id: idProp,\n isDisabled,\n isReadOnly,\n onChangeStart: onChangeStartProp,\n onChangeEnd: onChangeEndProp,\n step = 1,\n getAriaValueText: getAriaValueTextProp,\n \"aria-valuetext\": ariaValueText,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n name,\n focusThumbOnChange = true,\n ...htmlProps\n } = props\n\n const onChangeStart = useCallbackRef(onChangeStartProp)\n const onChangeEnd = useCallbackRef(onChangeEndProp)\n const getAriaValueText = useCallbackRef(getAriaValueTextProp)\n\n const isReversed = getIsReversed({\n isReversed: isReversedProp,\n direction,\n orientation,\n })\n\n /**\n * Enable the slider handle controlled and uncontrolled scenarios\n */\n const [computedValue, setValue] = useControllableState({\n value: valueProp,\n defaultValue: defaultValue ?? getDefaultValue(min, max),\n onChange,\n })\n\n const [isDragging, setDragging] = useState(false)\n const [isFocused, setFocused] = useState(false)\n const isInteractive = !(isDisabled || isReadOnly)\n\n const tenSteps = (max - min) / 10\n const oneStep = step || (max - min) / 100\n\n /**\n * Constrain the value because it can't be less than min\n * or greater than max\n */\n const value = clampValue(computedValue, min, max)\n const reversedValue = max - value + min\n const trackValue = isReversed ? reversedValue : value\n const thumbPercent = valueToPercent(trackValue, min, max)\n\n const isVertical = orientation === \"vertical\"\n\n const stateRef = useLatestRef({\n min,\n max,\n step,\n isDisabled,\n value,\n isInteractive,\n isReversed,\n isVertical,\n eventSource: null as \"pointer\" | \"keyboard\" | null,\n focusThumbOnChange,\n orientation,\n })\n\n /**\n * Let's keep a reference to the slider track and thumb\n */\n const trackRef = useRef<HTMLElement>(null)\n const thumbRef = useRef<HTMLElement>(null)\n const rootRef = useRef<HTMLElement>(null)\n\n /**\n * Generate unique ids for component parts\n */\n const reactId = useId()\n const uuid = idProp ?? reactId\n const [thumbId, trackId] = [`slider-thumb-${uuid}`, `slider-track-${uuid}`]\n\n /**\n * Get relative value of slider from the event by tracking\n * how far you clicked within the track to determine the value\n *\n * @todo - Refactor this later on to use info from pan session\n */\n\n const getValueFromPointer = useCallback(\n (event: any) => {\n if (!trackRef.current) return\n\n const state = stateRef.current\n state.eventSource = \"pointer\"\n\n const trackRect = trackRef.current.getBoundingClientRect()\n const { clientX, clientY } = event.touches?.[0] ?? event\n\n const diff = isVertical\n ? trackRect.bottom - clientY\n : clientX - trackRect.left\n\n const length = isVertical ? trackRect.height : trackRect.width\n let percent = diff / length\n\n if (isReversed) {\n percent = 1 - percent\n }\n\n let nextValue = percentToValue(percent, state.min, state.max)\n\n if (state.step) {\n nextValue = parseFloat(\n roundValueToStep(nextValue, state.min, state.step),\n )\n }\n\n nextValue = clampValue(nextValue, state.min, state.max)\n\n return nextValue\n },\n [isVertical, isReversed, stateRef],\n )\n\n const constrain = useCallback(\n (value: number) => {\n const state = stateRef.current\n if (!state.isInteractive) return\n value = parseFloat(roundValueToStep(value, state.min, oneStep))\n value = clampValue(value, state.min, state.max)\n setValue(value)\n },\n [oneStep, setValue, stateRef],\n )\n\n const actions: SliderActions = useMemo(\n () => ({\n stepUp(step = oneStep) {\n const next = isReversed ? value - step : value + step\n constrain(next)\n },\n stepDown(step = oneStep) {\n const next = isReversed ? value + step : value - step\n constrain(next)\n },\n reset() {\n constrain(defaultValue || 0)\n },\n stepTo(value: number) {\n constrain(value)\n },\n }),\n [constrain, isReversed, value, oneStep, defaultValue],\n )\n\n /**\n * Keyboard interaction to ensure users can operate\n * the slider using only their keyboard.\n */\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const state = stateRef.current\n\n const keyMap: Record<string, React.KeyboardEventHandler> = {\n ArrowRight: () => actions.stepUp(),\n ArrowUp: () => actions.stepUp(),\n ArrowLeft: () => actions.stepDown(),\n ArrowDown: () => actions.stepDown(),\n PageUp: () => actions.stepUp(tenSteps),\n PageDown: () => actions.stepDown(tenSteps),\n Home: () => constrain(state.min),\n End: () => constrain(state.max),\n }\n\n const action = keyMap[event.key]\n\n if (action) {\n event.preventDefault()\n event.stopPropagation()\n action(event)\n state.eventSource = \"keyboard\"\n }\n },\n [actions, constrain, tenSteps, stateRef],\n )\n\n /**\n * ARIA (Optional): To define a human-readable representation of the value,\n * we allow users pass aria-valuetext.\n */\n const valueText = getAriaValueText?.(value) ?? ariaValueText\n\n /**\n * Measure the dimensions of the thumb, so\n * we can center it within the track properly\n */\n const thumbSize = useSize(thumbRef)\n\n /**\n * Compute styles for all component parts.\n */\n const { getThumbStyle, rootStyle, trackStyle, innerTrackStyle } =\n useMemo(() => {\n const state = stateRef.current\n\n const thumbRect = thumbSize ?? { width: 0, height: 0 }\n return getStyles({\n isReversed,\n orientation: state.orientation,\n thumbRects: [thumbRect],\n thumbPercents: [thumbPercent],\n })\n }, [isReversed, thumbSize, thumbPercent, stateRef])\n\n const focusThumb = useCallback(() => {\n const state = stateRef.current\n if (state.focusThumbOnChange) {\n setTimeout(() => thumbRef.current?.focus())\n }\n }, [stateRef])\n\n useUpdateEffect(() => {\n const state = stateRef.current\n focusThumb()\n if (state.eventSource === \"keyboard\") {\n onChangeEnd?.(state.value)\n }\n }, [value, onChangeEnd])\n\n function setValueFromPointer(event: MouseEvent | TouchEvent | PointerEvent) {\n const nextValue = getValueFromPointer(event)\n if (nextValue != null && nextValue !== stateRef.current.value) {\n setValue(nextValue)\n }\n }\n\n usePanEvent(rootRef, {\n onPanSessionStart(event) {\n const state = stateRef.current\n if (!state.isInteractive) return\n setDragging(true)\n focusThumb()\n setValueFromPointer(event)\n onChangeStart?.(state.value)\n },\n onPanSessionEnd() {\n const state = stateRef.current\n if (!state.isInteractive) return\n setDragging(false)\n onChangeEnd?.(state.value)\n },\n onPan(event) {\n const state = stateRef.current\n if (!state.isInteractive) return\n setValueFromPointer(event)\n },\n })\n\n const getRootProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ...props,\n ...htmlProps,\n ref: mergeRefs(ref, rootRef),\n tabIndex: -1,\n \"aria-disabled\": ariaAttr(isDisabled),\n \"data-focused\": dataAttr(isFocused),\n style: {\n ...props.style,\n ...rootStyle,\n },\n }\n },\n [htmlProps, isDisabled, isFocused, rootStyle],\n )\n\n const getTrackProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ...props,\n ref: mergeRefs(ref, trackRef),\n id: trackId,\n \"data-disabled\": dataAttr(isDisabled),\n style: {\n ...props.style,\n ...trackStyle,\n },\n }\n },\n [isDisabled, trackId, trackStyle],\n )\n\n const getInnerTrackProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ...props,\n ref,\n style: {\n ...props.style,\n ...innerTrackStyle,\n },\n }\n },\n [innerTrackStyle],\n )\n\n const getThumbProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ...props,\n ref: mergeRefs(ref, thumbRef),\n role: \"slider\",\n tabIndex: isInteractive ? 0 : undefined,\n id: thumbId,\n \"data-active\": dataAttr(isDragging),\n \"aria-valuetext\": valueText,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-orientation\": orientation,\n \"aria-disabled\": ariaAttr(isDisabled),\n \"aria-readonly\": ariaAttr(isReadOnly),\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabel ? undefined : ariaLabelledBy,\n style: {\n ...props.style,\n ...getThumbStyle(0),\n },\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onFocus: callAllHandlers(props.onFocus, () => setFocused(true)),\n onBlur: callAllHandlers(props.onBlur, () => setFocused(false)),\n }\n },\n [\n isInteractive,\n thumbId,\n isDragging,\n valueText,\n min,\n max,\n value,\n orientation,\n isDisabled,\n isReadOnly,\n ariaLabel,\n ariaLabelledBy,\n getThumbStyle,\n onKeyDown,\n ],\n )\n\n const getMarkerProps: RequiredPropGetter<{ value: number }> = useCallback(\n (props, ref = null) => {\n const isInRange = !(props.value < min || props.value > max)\n const isHighlighted = value >= props.value\n const markerPercent = valueToPercent(props.value, min, max)\n\n const markerStyle: React.CSSProperties = {\n position: \"absolute\",\n pointerEvents: \"none\",\n ...orient({\n orientation: orientation,\n vertical: {\n bottom: isReversed\n ? `${100 - markerPercent}%`\n : `${markerPercent}%`,\n },\n horizontal: {\n left: isReversed ? `${100 - markerPercent}%` : `${markerPercent}%`,\n },\n }),\n }\n\n return {\n ...props,\n ref,\n role: \"presentation\",\n \"aria-hidden\": true,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(!isInRange),\n \"data-highlighted\": dataAttr(isHighlighted),\n style: {\n ...props.style,\n ...markerStyle,\n },\n }\n },\n [isDisabled, isReversed, max, min, orientation, value],\n )\n\n const getInputProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ...props,\n ref,\n type: \"hidden\",\n value,\n name,\n }\n },\n [name, value],\n )\n\n const state: SliderState = { value, isFocused, isDragging }\n\n return {\n state,\n actions,\n getRootProps,\n getTrackProps,\n getInnerTrackProps,\n getThumbProps,\n getMarkerProps,\n getInputProps,\n }\n}\n\nexport type UseSliderReturn = ReturnType<typeof useSlider>\n\nfunction orient(options: {\n orientation: UseSliderProps[\"orientation\"]\n vertical: React.CSSProperties\n horizontal: React.CSSProperties\n}) {\n const { orientation, vertical, horizontal } = options\n return orientation === \"vertical\" ? vertical : horizontal\n}\n\n/**\n * The browser <input type=\"range\" /> calculates\n * the default value of a slider by using mid-point\n * between the min and the max.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range\n */\nfunction getDefaultValue(min: number, max: number) {\n return max < min ? min : min + (max - min) / 2\n}\n"],"mappings":"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","names":["_a","state","value","step","props"]}