@mantine/core 3.6.3 → 3.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/ActionIcon/ActionIcon.js +1 -1
- package/cjs/components/ActionIcon/ActionIcon.js.map +1 -1
- package/cjs/components/Anchor/Anchor.js.map +1 -1
- package/cjs/components/AppShell/Navbar/Navbar.js.map +1 -1
- package/cjs/components/AppShell/Navbar/NavbarSection/NavbarSection.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Avatar/Avatar.js +9 -4
- package/cjs/components/Avatar/Avatar.js.map +1 -1
- package/cjs/components/Badge/Badge.js.map +1 -1
- package/cjs/components/Box/Box.js.map +1 -1
- package/cjs/components/Button/Button.js +1 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Card/Card.js.map +1 -1
- package/cjs/components/Card/CardSection/CardSection.js.map +1 -1
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/ColorInput/ColorInput.js +1 -1
- package/cjs/components/ColorInput/ColorInput.js.map +1 -1
- package/cjs/components/ColorSwatch/ColorSwatch.js.map +1 -1
- package/cjs/components/Divider/Divider.js.map +1 -1
- package/cjs/components/Highlight/Highlight.js.map +1 -1
- package/cjs/components/Image/Image.js +6 -15
- package/cjs/components/Image/Image.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/JsonInput/JsonInput.js +1 -1
- package/cjs/components/JsonInput/JsonInput.js.map +1 -1
- package/cjs/components/List/List.js.map +1 -1
- package/cjs/components/Menu/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Menu/MenuLabel/MenuLabel.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -0
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.js +1 -0
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/MultiSelect/MultiSelect.js +3 -6
- package/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/cjs/components/NumberInput/NumberInput.js +22 -14
- package/cjs/components/NumberInput/NumberInput.js.map +1 -1
- package/cjs/components/Overlay/Overlay.js.map +1 -1
- package/cjs/components/Paper/Paper.js.map +1 -1
- package/cjs/components/Progress/Progress.styles.js +2 -1
- package/cjs/components/Progress/Progress.styles.js.map +1 -1
- package/cjs/components/Select/Select.js +3 -6
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.js +1 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/cjs/components/Text/Text.js +3 -0
- package/cjs/components/Text/Text.js.map +1 -1
- package/cjs/components/Text/Text.styles.js +6 -5
- package/cjs/components/Text/Text.styles.js.map +1 -1
- package/esm/components/ActionIcon/ActionIcon.js +1 -1
- package/esm/components/ActionIcon/ActionIcon.js.map +1 -1
- package/esm/components/Anchor/Anchor.js.map +1 -1
- package/esm/components/AppShell/Navbar/Navbar.js.map +1 -1
- package/esm/components/AppShell/Navbar/NavbarSection/NavbarSection.js.map +1 -1
- package/esm/components/Autocomplete/Autocomplete.js +1 -1
- package/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/esm/components/Avatar/Avatar.js +9 -4
- package/esm/components/Avatar/Avatar.js.map +1 -1
- package/esm/components/Badge/Badge.js.map +1 -1
- package/esm/components/Box/Box.js.map +1 -1
- package/esm/components/Button/Button.js +1 -1
- package/esm/components/Button/Button.js.map +1 -1
- package/esm/components/Card/Card.js.map +1 -1
- package/esm/components/Card/CardSection/CardSection.js.map +1 -1
- package/esm/components/Center/Center.js.map +1 -1
- package/esm/components/ColorInput/ColorInput.js +1 -1
- package/esm/components/ColorInput/ColorInput.js.map +1 -1
- package/esm/components/ColorSwatch/ColorSwatch.js.map +1 -1
- package/esm/components/Divider/Divider.js.map +1 -1
- package/esm/components/Highlight/Highlight.js.map +1 -1
- package/esm/components/Image/Image.js +8 -17
- package/esm/components/Image/Image.js.map +1 -1
- package/esm/components/Input/Input.js +1 -1
- package/esm/components/Input/Input.js.map +1 -1
- package/esm/components/JsonInput/JsonInput.js +1 -1
- package/esm/components/JsonInput/JsonInput.js.map +1 -1
- package/esm/components/List/List.js.map +1 -1
- package/esm/components/Menu/MenuItem/MenuItem.js.map +1 -1
- package/esm/components/Menu/MenuLabel/MenuLabel.js.map +1 -1
- package/esm/components/Modal/Modal.js +1 -0
- package/esm/components/Modal/Modal.js.map +1 -1
- package/esm/components/Modal/Modal.styles.js +1 -0
- package/esm/components/Modal/Modal.styles.js.map +1 -1
- package/esm/components/MultiSelect/MultiSelect.js +3 -6
- package/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/esm/components/NumberInput/NumberInput.js +22 -14
- package/esm/components/NumberInput/NumberInput.js.map +1 -1
- package/esm/components/Overlay/Overlay.js.map +1 -1
- package/esm/components/Paper/Paper.js.map +1 -1
- package/esm/components/Progress/Progress.styles.js +2 -1
- package/esm/components/Progress/Progress.styles.js.map +1 -1
- package/esm/components/Select/Select.js +3 -6
- package/esm/components/Select/Select.js.map +1 -1
- package/esm/components/Slider/RangeSlider/RangeSlider.js +1 -1
- package/esm/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/esm/components/Text/Text.js +3 -0
- package/esm/components/Text/Text.js.map +1 -1
- package/esm/components/Text/Text.styles.js +6 -5
- package/esm/components/Text/Text.styles.js.map +1 -1
- package/lib/components/ActionIcon/ActionIcon.d.ts +2 -2
- package/lib/components/ActionIcon/ActionIcon.d.ts.map +1 -1
- package/lib/components/Anchor/Anchor.d.ts +2 -2
- package/lib/components/Anchor/Anchor.d.ts.map +1 -1
- package/lib/components/AppShell/Navbar/Navbar.d.ts +1 -1
- package/lib/components/AppShell/Navbar/Navbar.d.ts.map +1 -1
- package/lib/components/AppShell/Navbar/NavbarSection/NavbarSection.d.ts +2 -2
- package/lib/components/AppShell/Navbar/NavbarSection/NavbarSection.d.ts.map +1 -1
- package/lib/components/Avatar/Avatar.d.ts +4 -2
- package/lib/components/Avatar/Avatar.d.ts.map +1 -1
- package/lib/components/Badge/Badge.d.ts +2 -2
- package/lib/components/Badge/Badge.d.ts.map +1 -1
- package/lib/components/Box/Box.d.ts +2 -2
- package/lib/components/Box/Box.d.ts.map +1 -1
- package/lib/components/Button/Button.d.ts +2 -2
- package/lib/components/Button/Button.d.ts.map +1 -1
- package/lib/components/Card/Card.d.ts +2 -2
- package/lib/components/Card/Card.d.ts.map +1 -1
- package/lib/components/Card/CardSection/CardSection.d.ts +2 -2
- package/lib/components/Card/CardSection/CardSection.d.ts.map +1 -1
- package/lib/components/Center/Center.d.ts +2 -2
- package/lib/components/Center/Center.d.ts.map +1 -1
- package/lib/components/ColorSwatch/ColorSwatch.d.ts +2 -2
- package/lib/components/ColorSwatch/ColorSwatch.d.ts.map +1 -1
- package/lib/components/Divider/Divider.d.ts +1 -1
- package/lib/components/Divider/Divider.d.ts.map +1 -1
- package/lib/components/Highlight/Highlight.d.ts +2 -2
- package/lib/components/Highlight/Highlight.d.ts.map +1 -1
- package/lib/components/Image/Image.d.ts.map +1 -1
- package/lib/components/Input/Input.d.ts +3 -3
- package/lib/components/Input/Input.d.ts.map +1 -1
- package/lib/components/InputWrapper/InputWrapper.styles.d.ts +2 -2
- package/lib/components/Menu/MenuItem/MenuItem.d.ts +2 -2
- package/lib/components/Menu/MenuItem/MenuItem.d.ts.map +1 -1
- package/lib/components/Menu/MenuLabel/MenuLabel.d.ts +2 -2
- package/lib/components/Menu/MenuLabel/MenuLabel.d.ts.map +1 -1
- package/lib/components/Modal/Modal.d.ts.map +1 -1
- package/lib/components/Modal/Modal.styles.d.ts +2 -2
- package/lib/components/Modal/Modal.styles.d.ts.map +1 -1
- package/lib/components/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/lib/components/NumberInput/NumberInput.d.ts +7 -0
- package/lib/components/NumberInput/NumberInput.d.ts.map +1 -1
- package/lib/components/Overlay/Overlay.d.ts +2 -2
- package/lib/components/Overlay/Overlay.d.ts.map +1 -1
- package/lib/components/Paper/Paper.d.ts +2 -2
- package/lib/components/Paper/Paper.d.ts.map +1 -1
- package/lib/components/PasswordInput/index.d.ts +1 -1
- package/lib/components/PasswordInput/index.d.ts.map +1 -1
- package/lib/components/Progress/Progress.styles.d.ts.map +1 -1
- package/lib/components/Select/Select.d.ts.map +1 -1
- package/lib/components/Tabs/TabControl/TabControl.d.ts +1 -1
- package/lib/components/Text/Text.d.ts +5 -3
- package/lib/components/Text/Text.d.ts.map +1 -1
- package/lib/components/Text/Text.styles.d.ts +2 -1
- package/lib/components/Text/Text.styles.d.ts.map +1 -1
- package/lib/components/TransferList/index.d.ts +1 -1
- package/lib/components/TransferList/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/lib/components/Drawer/stories/_wrapper.d.ts +0 -4
- package/lib/components/Drawer/stories/_wrapper.d.ts.map +0 -1
- package/lib/components/Popover/stories/_wrapper.d.ts +0 -4
- package/lib/components/Popover/stories/_wrapper.d.ts.map +0 -1
|
@@ -34,6 +34,14 @@ var __objRest = (source, exclude) => {
|
|
|
34
34
|
}
|
|
35
35
|
return target;
|
|
36
36
|
};
|
|
37
|
+
const defaultFormatter = (value) => value || "";
|
|
38
|
+
const defaultParser = (num) => {
|
|
39
|
+
const parsedNum = parseFloat(num);
|
|
40
|
+
if (Number.isNaN(parsedNum)) {
|
|
41
|
+
return void 0;
|
|
42
|
+
}
|
|
43
|
+
return num;
|
|
44
|
+
};
|
|
37
45
|
const NumberInput = forwardRef((_a, ref) => {
|
|
38
46
|
var _b = _a, {
|
|
39
47
|
disabled,
|
|
@@ -57,7 +65,9 @@ const NumberInput = forwardRef((_a, ref) => {
|
|
|
57
65
|
classNames,
|
|
58
66
|
styles,
|
|
59
67
|
size,
|
|
60
|
-
rightSection
|
|
68
|
+
rightSection,
|
|
69
|
+
formatter = defaultFormatter,
|
|
70
|
+
parser = defaultParser
|
|
61
71
|
} = _b, others = __objRest(_b, [
|
|
62
72
|
"disabled",
|
|
63
73
|
"value",
|
|
@@ -80,7 +90,9 @@ const NumberInput = forwardRef((_a, ref) => {
|
|
|
80
90
|
"classNames",
|
|
81
91
|
"styles",
|
|
82
92
|
"size",
|
|
83
|
-
"rightSection"
|
|
93
|
+
"rightSection",
|
|
94
|
+
"formatter",
|
|
95
|
+
"parser"
|
|
84
96
|
]);
|
|
85
97
|
const { classes, cx, theme } = useStyles({ radius, size }, { classNames, styles, name: "NumberInput" });
|
|
86
98
|
const [focused, setFocused] = useState(false);
|
|
@@ -92,23 +104,19 @@ const NumberInput = forwardRef((_a, ref) => {
|
|
|
92
104
|
typeof onChange === "function" && onChange(val);
|
|
93
105
|
setValue(val);
|
|
94
106
|
};
|
|
95
|
-
const formatNum = (val) => {
|
|
96
|
-
let parsedStr = String(val);
|
|
107
|
+
const formatNum = (val = "") => {
|
|
108
|
+
let parsedStr = typeof val === "number" ? String(val) : val;
|
|
97
109
|
if (decimalSeparator) {
|
|
98
110
|
parsedStr = parsedStr.replace(/\./g, decimalSeparator);
|
|
99
111
|
}
|
|
100
|
-
return parsedStr;
|
|
112
|
+
return formatter(parsedStr);
|
|
101
113
|
};
|
|
102
114
|
const parseNum = (val) => {
|
|
103
115
|
let num = val;
|
|
104
116
|
if (decimalSeparator) {
|
|
105
117
|
num = num.replace(new RegExp(`\\${decimalSeparator}`, "g"), ".");
|
|
106
118
|
}
|
|
107
|
-
|
|
108
|
-
if (Number.isNaN(parsedNum)) {
|
|
109
|
-
return void 0;
|
|
110
|
-
}
|
|
111
|
-
return parsedNum;
|
|
119
|
+
return parser(num);
|
|
112
120
|
};
|
|
113
121
|
const _min = typeof min === "number" ? min : -Infinity;
|
|
114
122
|
const _max = typeof max === "number" ? max : Infinity;
|
|
@@ -211,12 +219,12 @@ const NumberInput = forwardRef((_a, ref) => {
|
|
|
211
219
|
}));
|
|
212
220
|
const handleChange = (event) => {
|
|
213
221
|
const val = event.target.value;
|
|
214
|
-
|
|
222
|
+
const parsed = parseNum(val);
|
|
223
|
+
setTempValue(parsed);
|
|
215
224
|
if (val === "") {
|
|
216
225
|
handleValueChange(void 0);
|
|
217
226
|
} else {
|
|
218
|
-
|
|
219
|
-
val.trim() !== "" && !Number.isNaN(parsed) && handleValueChange(parsed);
|
|
227
|
+
val.trim() !== "" && !Number.isNaN(parsed) && handleValueChange(parseFloat(parsed));
|
|
220
228
|
}
|
|
221
229
|
};
|
|
222
230
|
const handleBlur = (event) => {
|
|
@@ -226,7 +234,7 @@ const NumberInput = forwardRef((_a, ref) => {
|
|
|
226
234
|
handleValueChange(void 0);
|
|
227
235
|
} else {
|
|
228
236
|
const parsedVal = parseNum(event.target.value);
|
|
229
|
-
const val = clamp({ value: parsedVal, min: _min, max: _max });
|
|
237
|
+
const val = clamp({ value: parseFloat(parsedVal), min: _min, max: _max });
|
|
230
238
|
if (!Number.isNaN(val)) {
|
|
231
239
|
if (!noClampOnBlur) {
|
|
232
240
|
setTempValue(val.toFixed(precision));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport { useMergedRef, assignRef, clamp } from '@mantine/hooks';\nimport { DefaultProps, ClassNames } from '@mantine/styles';\nimport { TextInput } from '../TextInput/TextInput';\nimport { InputStylesNames } from '../Input/Input';\nimport { InputWrapperStylesNames } from '../InputWrapper/InputWrapper';\nimport useStyles, { CONTROL_SIZES } from './NumberInput.styles';\n\nexport type InnerNumberInputStylesNames = ClassNames<typeof useStyles>;\nexport type NumberInputStylesNames =\n | InputStylesNames\n | InputWrapperStylesNames\n | InnerNumberInputStylesNames;\n\nexport interface NumberInputHandlers {\n increment(): void;\n decrement(): void;\n}\n\nexport interface NumberInputProps\n extends DefaultProps<NumberInputStylesNames>,\n Omit<\n React.ComponentPropsWithoutRef<typeof TextInput>,\n 'onChange' | 'value' | 'classNames' | 'styles'\n > {\n /** onChange input handler for controlled variant, note that input event is not exposed. It will return undefined if the input is empty, otherwise it'll return a number */\n onChange?(value: number | undefined): void;\n\n /** Input value for controlled variant */\n value?: number | undefined;\n\n /** The decimal separator */\n decimalSeparator?: string;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal possible value */\n min?: number;\n\n /** Number by which value will be incremented/decremented with controls and up/down arrows */\n step?: number;\n\n /** Delay before stepping the value. Can be a number of milliseconds or a function that receives the current step count and returns the delay in milliseconds. */\n stepHoldInterval?: number | ((stepCount: number) => number);\n\n /** Initial delay in milliseconds before stepping the value. */\n stepHoldDelay?: number;\n\n /** Removes increment/decrement controls */\n hideControls?: boolean;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Default value for uncontrolled variant only */\n defaultValue?: number | undefined;\n\n /** Prevent value clamp on blur */\n noClampOnBlur?: boolean;\n\n /** Get increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n}\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n disabled,\n value,\n onChange,\n decimalSeparator,\n min,\n max,\n step = 1,\n stepHoldInterval,\n stepHoldDelay,\n onBlur,\n onFocus,\n hideControls = false,\n radius = 'sm',\n variant,\n precision = 0,\n defaultValue,\n noClampOnBlur = false,\n handlersRef,\n classNames,\n styles,\n size,\n rightSection,\n ...others\n }: NumberInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { radius, size },\n { classNames, styles, name: 'NumberInput' }\n );\n const [focused, setFocused] = useState(false);\n const [_value, setValue] = useState(\n typeof value === 'number'\n ? value\n : typeof defaultValue === 'number'\n ? defaultValue\n : undefined\n );\n const finalValue = typeof value === 'number' ? value : _value;\n const [tempValue, setTempValue] = useState(\n typeof finalValue === 'number' ? finalValue.toFixed(precision) : ''\n );\n const inputRef = useRef<HTMLInputElement>();\n const handleValueChange = (val: number | undefined) => {\n typeof onChange === 'function' && onChange(val);\n setValue(val);\n };\n\n const formatNum = (val: string | number) => {\n let parsedStr = String(val);\n\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(/\\./g, decimalSeparator);\n }\n\n return parsedStr;\n };\n\n const parseNum = (val: string) => {\n let num = val;\n\n if (decimalSeparator) {\n num = num.replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.');\n }\n\n const parsedNum = parseFloat(num);\n\n if (Number.isNaN(parsedNum)) {\n return undefined;\n }\n\n return parsedNum;\n };\n\n const _min = typeof min === 'number' ? min : -Infinity;\n const _max = typeof max === 'number' ? max : Infinity;\n\n const incrementRef = useRef<() => void>();\n incrementRef.current = () => {\n if (_value === undefined) {\n handleValueChange(min ?? 0);\n setTempValue(min?.toFixed(precision) ?? '0');\n } else {\n const result = clamp({ value: _value + step, min: _min, max: _max }).toFixed(precision);\n handleValueChange(parseFloat(result));\n setTempValue(result);\n }\n };\n\n const decrementRef = useRef<() => void>();\n decrementRef.current = () => {\n if (_value === undefined) {\n handleValueChange(min ?? 0);\n setTempValue(min?.toFixed(precision) ?? '0');\n } else {\n const result = clamp({ value: _value - step, min: _min, max: _max }).toFixed(precision);\n handleValueChange(parseFloat(result));\n setTempValue(result);\n }\n };\n\n assignRef(handlersRef, { increment: incrementRef.current, decrement: decrementRef.current });\n\n useEffect(() => {\n if (typeof value === 'number' && !focused) {\n setValue(value);\n setTempValue(value.toFixed(precision));\n }\n if (defaultValue === undefined && value === undefined && !focused) {\n setValue(value);\n setTempValue('');\n }\n }, [value]);\n\n const shouldUseStepInterval = stepHoldDelay !== undefined && stepHoldInterval !== undefined;\n const onStepTimeoutRef = useRef<number>(null);\n const stepCountRef = useRef<number>(0);\n\n const onStepDone = () => {\n if (onStepTimeoutRef.current) {\n window.clearTimeout(onStepTimeoutRef.current);\n }\n onStepTimeoutRef.current = null;\n stepCountRef.current = 0;\n };\n\n const onStepHandleChange = (isIncrement: boolean) => {\n if (isIncrement) {\n incrementRef.current();\n } else {\n decrementRef.current();\n }\n stepCountRef.current += 1;\n };\n\n const onStepLoop = (isIncrement: boolean) => {\n onStepHandleChange(isIncrement);\n\n if (shouldUseStepInterval) {\n const interval =\n typeof stepHoldInterval === 'number'\n ? stepHoldInterval\n : stepHoldInterval(stepCountRef.current);\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), interval);\n }\n };\n\n const onStep = (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n isIncrement: boolean\n ) => {\n event.preventDefault();\n onStepHandleChange(isIncrement);\n if (shouldUseStepInterval) {\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), stepHoldDelay);\n }\n inputRef.current.focus();\n };\n\n useEffect(() => {\n onStepDone();\n return onStepDone;\n }, []);\n\n const controls = (\n <div className={classes.rightSection}>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={finalValue >= max}\n className={cx(classes.control, classes.controlUp)}\n onMouseDown={(event) => {\n onStep(event, true);\n }}\n onMouseUp={onStepDone}\n onMouseLeave={onStepDone}\n />\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={finalValue <= min}\n className={cx(classes.control, classes.controlDown)}\n onMouseDown={(event) => {\n onStep(event, false);\n }}\n onMouseUp={onStepDone}\n onMouseLeave={onStepDone}\n />\n </div>\n );\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.target.value;\n setTempValue(val);\n if (val === '') {\n handleValueChange(undefined);\n } else {\n const parsed = parseNum(val);\n val.trim() !== '' && !Number.isNaN(parsed) && handleValueChange(parsed);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (event.target.value === '') {\n setTempValue('');\n handleValueChange(undefined);\n } else {\n const parsedVal = parseNum(event.target.value);\n const val = clamp({ value: parsedVal, min: _min, max: _max });\n\n if (!Number.isNaN(val)) {\n if (!noClampOnBlur) {\n setTempValue(val.toFixed(precision));\n handleValueChange(parseFloat(val.toFixed(precision)));\n }\n } else {\n setTempValue(finalValue?.toFixed(precision) ?? '');\n }\n }\n\n setFocused(false);\n typeof onBlur === 'function' && onBlur(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n typeof onFocus === 'function' && onFocus(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.repeat && shouldUseStepInterval) {\n event.preventDefault();\n return;\n }\n\n if (event.key === 'ArrowUp') {\n onStep(event, true);\n } else if (event.key === 'ArrowDown') {\n onStep(event, false);\n }\n };\n\n const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n onStepDone();\n }\n };\n\n return (\n <TextInput\n {...others}\n variant={variant}\n value={formatNum(tempValue)}\n disabled={disabled}\n ref={useMergedRef(inputRef, ref)}\n type=\"text\"\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n rightSection={\n rightSection || (disabled || hideControls || variant === 'unstyled' ? null : controls)\n }\n rightSectionWidth={theme.fn.size({ size, sizes: CONTROL_SIZES }) + 1}\n radius={radius}\n max={max}\n min={min}\n step={step}\n size={size}\n styles={styles}\n classNames={classNames}\n __staticSelector=\"NumberInput\"\n />\n );\n }\n);\n\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport { useMergedRef, assignRef, clamp } from '@mantine/hooks';\nimport { DefaultProps, ClassNames } from '@mantine/styles';\nimport { TextInput } from '../TextInput/TextInput';\nimport { InputStylesNames } from '../Input/Input';\nimport { InputWrapperStylesNames } from '../InputWrapper/InputWrapper';\nimport useStyles, { CONTROL_SIZES } from './NumberInput.styles';\n\nexport type InnerNumberInputStylesNames = ClassNames<typeof useStyles>;\nexport type NumberInputStylesNames =\n | InputStylesNames\n | InputWrapperStylesNames\n | InnerNumberInputStylesNames;\n\nexport interface NumberInputHandlers {\n increment(): void;\n decrement(): void;\n}\n\ntype Formatter = (value: string | undefined) => string;\ntype Parser = (value: string | undefined) => string | undefined;\n\nexport interface NumberInputProps\n extends DefaultProps<NumberInputStylesNames>,\n Omit<\n React.ComponentPropsWithoutRef<typeof TextInput>,\n 'onChange' | 'value' | 'classNames' | 'styles'\n > {\n /** onChange input handler for controlled variant, note that input event is not exposed. It will return undefined if the input is empty, otherwise it'll return a number */\n onChange?(value: number | undefined): void;\n\n /** Input value for controlled variant */\n value?: number | undefined;\n\n /** The decimal separator */\n decimalSeparator?: string;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal possible value */\n min?: number;\n\n /** Number by which value will be incremented/decremented with controls and up/down arrows */\n step?: number;\n\n /** Delay before stepping the value. Can be a number of milliseconds or a function that receives the current step count and returns the delay in milliseconds. */\n stepHoldInterval?: number | ((stepCount: number) => number);\n\n /** Initial delay in milliseconds before stepping the value. */\n stepHoldDelay?: number;\n\n /** Removes increment/decrement controls */\n hideControls?: boolean;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Default value for uncontrolled variant only */\n defaultValue?: number | undefined;\n\n /** Prevent value clamp on blur */\n noClampOnBlur?: boolean;\n\n /** Get increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Formats the number into the input */\n formatter?: Formatter;\n\n /** Parsers the value from formatter, should be used with formatter at the same time */\n parser?: Parser;\n}\n\nconst defaultFormatter: Formatter = (value) => value || '';\nconst defaultParser: Parser = (num) => {\n const parsedNum = parseFloat(num);\n\n if (Number.isNaN(parsedNum)) {\n return undefined;\n }\n\n return num;\n};\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n disabled,\n value,\n onChange,\n decimalSeparator,\n min,\n max,\n step = 1,\n stepHoldInterval,\n stepHoldDelay,\n onBlur,\n onFocus,\n hideControls = false,\n radius = 'sm',\n variant,\n precision = 0,\n defaultValue,\n noClampOnBlur = false,\n handlersRef,\n classNames,\n styles,\n size,\n rightSection,\n formatter = defaultFormatter,\n parser = defaultParser,\n ...others\n }: NumberInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { radius, size },\n { classNames, styles, name: 'NumberInput' }\n );\n const [focused, setFocused] = useState(false);\n const [_value, setValue] = useState(\n typeof value === 'number'\n ? value\n : typeof defaultValue === 'number'\n ? defaultValue\n : undefined\n );\n const finalValue = typeof value === 'number' ? value : _value;\n const [tempValue, setTempValue] = useState(\n typeof finalValue === 'number' ? finalValue.toFixed(precision) : ''\n );\n const inputRef = useRef<HTMLInputElement>();\n const handleValueChange = (val: number | undefined) => {\n typeof onChange === 'function' && onChange(val);\n setValue(val);\n };\n\n const formatNum = (val: string | number = '') => {\n let parsedStr = typeof val === 'number' ? String(val) : val;\n\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(/\\./g, decimalSeparator);\n }\n\n return formatter(parsedStr);\n };\n\n const parseNum = (val: string): string | undefined => {\n let num = val;\n\n if (decimalSeparator) {\n num = num.replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.');\n }\n\n return parser(num);\n };\n\n const _min = typeof min === 'number' ? min : -Infinity;\n const _max = typeof max === 'number' ? max : Infinity;\n\n const incrementRef = useRef<() => void>();\n incrementRef.current = () => {\n if (_value === undefined) {\n handleValueChange(min ?? 0);\n setTempValue(min?.toFixed(precision) ?? '0');\n } else {\n const result = clamp({ value: _value + step, min: _min, max: _max }).toFixed(precision);\n\n handleValueChange(parseFloat(result));\n setTempValue(result);\n }\n };\n\n const decrementRef = useRef<() => void>();\n decrementRef.current = () => {\n if (_value === undefined) {\n handleValueChange(min ?? 0);\n setTempValue(min?.toFixed(precision) ?? '0');\n } else {\n const result = clamp({ value: _value - step, min: _min, max: _max }).toFixed(precision);\n handleValueChange(parseFloat(result));\n setTempValue(result);\n }\n };\n\n assignRef(handlersRef, { increment: incrementRef.current, decrement: decrementRef.current });\n\n useEffect(() => {\n if (typeof value === 'number' && !focused) {\n setValue(value);\n setTempValue(value.toFixed(precision));\n }\n if (defaultValue === undefined && value === undefined && !focused) {\n setValue(value);\n setTempValue('');\n }\n }, [value]);\n\n const shouldUseStepInterval = stepHoldDelay !== undefined && stepHoldInterval !== undefined;\n const onStepTimeoutRef = useRef<number>(null);\n const stepCountRef = useRef<number>(0);\n\n const onStepDone = () => {\n if (onStepTimeoutRef.current) {\n window.clearTimeout(onStepTimeoutRef.current);\n }\n onStepTimeoutRef.current = null;\n stepCountRef.current = 0;\n };\n\n const onStepHandleChange = (isIncrement: boolean) => {\n if (isIncrement) {\n incrementRef.current();\n } else {\n decrementRef.current();\n }\n stepCountRef.current += 1;\n };\n\n const onStepLoop = (isIncrement: boolean) => {\n onStepHandleChange(isIncrement);\n\n if (shouldUseStepInterval) {\n const interval =\n typeof stepHoldInterval === 'number'\n ? stepHoldInterval\n : stepHoldInterval(stepCountRef.current);\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), interval);\n }\n };\n\n const onStep = (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n isIncrement: boolean\n ) => {\n event.preventDefault();\n onStepHandleChange(isIncrement);\n if (shouldUseStepInterval) {\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), stepHoldDelay);\n }\n inputRef.current.focus();\n };\n\n useEffect(() => {\n onStepDone();\n return onStepDone;\n }, []);\n\n const controls = (\n <div className={classes.rightSection}>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={finalValue >= max}\n className={cx(classes.control, classes.controlUp)}\n onMouseDown={(event) => {\n onStep(event, true);\n }}\n onMouseUp={onStepDone}\n onMouseLeave={onStepDone}\n />\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={finalValue <= min}\n className={cx(classes.control, classes.controlDown)}\n onMouseDown={(event) => {\n onStep(event, false);\n }}\n onMouseUp={onStepDone}\n onMouseLeave={onStepDone}\n />\n </div>\n );\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.target.value;\n const parsed = parseNum(val);\n\n setTempValue(parsed);\n\n if (val === '') {\n handleValueChange(undefined);\n } else {\n val.trim() !== '' && !Number.isNaN(parsed) && handleValueChange(parseFloat(parsed));\n }\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (event.target.value === '') {\n setTempValue('');\n handleValueChange(undefined);\n } else {\n const parsedVal = parseNum(event.target.value);\n const val = clamp({ value: parseFloat(parsedVal), min: _min, max: _max });\n\n if (!Number.isNaN(val)) {\n if (!noClampOnBlur) {\n setTempValue(val.toFixed(precision));\n handleValueChange(parseFloat(val.toFixed(precision)));\n }\n } else {\n setTempValue(finalValue?.toFixed(precision) ?? '');\n }\n }\n\n setFocused(false);\n typeof onBlur === 'function' && onBlur(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n typeof onFocus === 'function' && onFocus(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.repeat && shouldUseStepInterval) {\n event.preventDefault();\n return;\n }\n\n if (event.key === 'ArrowUp') {\n onStep(event, true);\n } else if (event.key === 'ArrowDown') {\n onStep(event, false);\n }\n };\n\n const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n onStepDone();\n }\n };\n\n return (\n <TextInput\n {...others}\n variant={variant}\n value={formatNum(tempValue)}\n disabled={disabled}\n ref={useMergedRef(inputRef, ref)}\n type=\"text\"\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n rightSection={\n rightSection || (disabled || hideControls || variant === 'unstyled' ? null : controls)\n }\n rightSectionWidth={theme.fn.size({ size, sizes: CONTROL_SIZES }) + 1}\n radius={radius}\n max={max}\n min={min}\n step={step}\n size={size}\n styles={styles}\n classNames={classNames}\n __staticSelector=\"NumberInput\"\n />\n );\n }\n);\n\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.js","sources":["../../../src/components/Overlay/Overlay.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n PolymorphicComponentProps,\n PolymorphicRef,\n MantineNumberSize,\n DefaultProps,\n getDefaultZIndex,\n} from '@mantine/styles';\nimport { Box } from '../Box';\n\ninterface _OverlayProps extends DefaultProps {\n /** Overlay opacity */\n opacity?: React.CSSProperties['opacity'];\n\n /** Overlay background-color */\n color?: React.CSSProperties['backgroundColor'];\n\n /** Use gradient instead of background-color */\n gradient?: string;\n\n /** Overlay z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Value from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n}\n\nexport type OverlayProps<C extends React.ElementType
|
|
1
|
+
{"version":3,"file":"Overlay.js","sources":["../../../src/components/Overlay/Overlay.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n PolymorphicComponentProps,\n PolymorphicRef,\n MantineNumberSize,\n DefaultProps,\n getDefaultZIndex,\n} from '@mantine/styles';\nimport { Box } from '../Box';\n\ninterface _OverlayProps extends DefaultProps {\n /** Overlay opacity */\n opacity?: React.CSSProperties['opacity'];\n\n /** Overlay background-color */\n color?: React.CSSProperties['backgroundColor'];\n\n /** Use gradient instead of background-color */\n gradient?: string;\n\n /** Overlay z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Value from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n}\n\nexport type OverlayProps<C> = C extends React.ElementType\n ? PolymorphicComponentProps<C, _OverlayProps>\n : never;\n\ntype OverlayComponent = (<C = 'div'>(props: OverlayProps<C>) => React.ReactElement) & {\n displayName?: string;\n};\n\nexport const Overlay: OverlayComponent = forwardRef(\n <C extends React.ElementType = 'div'>(\n {\n opacity = 0.6,\n color = '#fff',\n gradient,\n zIndex = getDefaultZIndex('modal'),\n component,\n radius = 0,\n sx,\n ...others\n }: OverlayProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const background = gradient ? { backgroundImage: gradient } : { backgroundColor: color };\n\n return (\n <Box<any>\n component={component || 'div'}\n ref={ref}\n sx={[\n (theme) => ({\n ...background,\n opacity,\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n borderRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n zIndex,\n }),\n sx,\n ]}\n {...others}\n />\n );\n }\n);\n\nOverlay.displayName = '@mantine/core/Overlay';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paper.js","sources":["../../../src/components/Paper/Paper.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineShadow,\n PolymorphicComponentProps,\n PolymorphicRef,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport useStyles from './Paper.styles';\n\nexport interface SharedPaperProps extends DefaultProps {\n /** Predefined padding value from theme.spacing or number for padding in px */\n padding?: MantineNumberSize;\n\n /** Predefined box-shadow from theme.shadows (xs, sm, md, lg, xl) or any valid css box-shadow property */\n shadow?: MantineShadow;\n\n /** Predefined border-radius value from theme.radius or number for border-radius in px */\n radius?: MantineNumberSize;\n\n /** Adds 1px border with theme.colors.gray[2] color in light color scheme and theme.colors.dark[6] in dark color scheme */\n withBorder?: boolean;\n}\n\nexport type PaperProps<C extends React.ElementType
|
|
1
|
+
{"version":3,"file":"Paper.js","sources":["../../../src/components/Paper/Paper.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineShadow,\n PolymorphicComponentProps,\n PolymorphicRef,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport useStyles from './Paper.styles';\n\nexport interface SharedPaperProps extends DefaultProps {\n /** Predefined padding value from theme.spacing or number for padding in px */\n padding?: MantineNumberSize;\n\n /** Predefined box-shadow from theme.shadows (xs, sm, md, lg, xl) or any valid css box-shadow property */\n shadow?: MantineShadow;\n\n /** Predefined border-radius value from theme.radius or number for border-radius in px */\n radius?: MantineNumberSize;\n\n /** Adds 1px border with theme.colors.gray[2] color in light color scheme and theme.colors.dark[6] in dark color scheme */\n withBorder?: boolean;\n}\n\nexport type PaperProps<C> = C extends React.ElementType\n ? PolymorphicComponentProps<C, SharedPaperProps>\n : never;\n\ntype PaperComponent = (<C = 'div'>(props: PaperProps<C>) => React.ReactElement) & {\n displayName?: string;\n};\n\nexport const Paper: PaperComponent = forwardRef(\n <C extends React.ElementType = 'div'>(\n {\n component,\n className,\n children,\n padding = 0,\n radius = 'sm',\n withBorder = false,\n shadow,\n ...others\n }: PaperProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const { classes, cx } = useStyles({ radius, shadow, padding, withBorder }, { name: 'Paper' });\n\n return (\n <Box<any>\n component={component || 'div'}\n className={cx(classes.root, className)}\n ref={ref}\n {...others}\n >\n {children}\n </Box>\n );\n }\n);\n\nPaper.displayName = '@mantine/core/Paper';\n"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,8 @@ var useStyles = createStyles((theme, { color, radius, size, striped, animate })
|
|
|
50
50
|
fontSize: theme.fn.size({ size, sizes }) * 0.65,
|
|
51
51
|
fontWeight: 700,
|
|
52
52
|
userSelect: "none",
|
|
53
|
-
overflow: "hidden"
|
|
53
|
+
overflow: "hidden",
|
|
54
|
+
whiteSpace: "nowrap"
|
|
54
55
|
}
|
|
55
56
|
}));
|
|
56
57
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.styles.js","sources":["../../../src/components/Progress/Progress.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, MantineColor, keyframes } from '@mantine/styles';\n\nexport const sizes = {\n xs: 3,\n sm: 5,\n md: 8,\n lg: 12,\n xl: 16,\n};\n\ninterface ProgressStyles {\n color: MantineColor;\n radius: MantineNumberSize;\n size: MantineNumberSize;\n striped: boolean;\n animate: boolean;\n}\n\nconst stripesAnimation = keyframes({\n from: { backgroundPosition: '0 0' },\n to: { backgroundPosition: '40px 0' },\n});\n\nexport default createStyles((theme, { color, radius, size, striped, animate }: ProgressStyles) => ({\n root: {\n position: 'relative',\n height: theme.fn.size({ size, sizes }),\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2],\n borderRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n overflow: 'hidden',\n },\n\n bar: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.fn.themeColor(color || theme.primaryColor, 6, false),\n transition: 'width 100ms linear',\n animation: animate ? `${stripesAnimation} 1000ms linear infinite` : 'none',\n backgroundSize: '20px 20px',\n backgroundImage: striped\n ? 'linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)'\n : 'none',\n\n '&:last-of-type': {\n borderTopRightRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n borderBottomRightRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n },\n\n '&:first-of-type': {\n borderTopLeftRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n borderBottomLeftRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n },\n\n '@media (prefers-reduced-motion)': {\n transitionDuration: '0ms',\n },\n },\n\n label: {\n color: theme.white,\n fontSize: theme.fn.size({ size, sizes }) * 0.65,\n fontWeight: 700,\n userSelect: 'none',\n overflow: 'hidden',\n },\n}));\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.styles.js","sources":["../../../src/components/Progress/Progress.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, MantineColor, keyframes } from '@mantine/styles';\n\nexport const sizes = {\n xs: 3,\n sm: 5,\n md: 8,\n lg: 12,\n xl: 16,\n};\n\ninterface ProgressStyles {\n color: MantineColor;\n radius: MantineNumberSize;\n size: MantineNumberSize;\n striped: boolean;\n animate: boolean;\n}\n\nconst stripesAnimation = keyframes({\n from: { backgroundPosition: '0 0' },\n to: { backgroundPosition: '40px 0' },\n});\n\nexport default createStyles((theme, { color, radius, size, striped, animate }: ProgressStyles) => ({\n root: {\n position: 'relative',\n height: theme.fn.size({ size, sizes }),\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2],\n borderRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n overflow: 'hidden',\n },\n\n bar: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.fn.themeColor(color || theme.primaryColor, 6, false),\n transition: 'width 100ms linear',\n animation: animate ? `${stripesAnimation} 1000ms linear infinite` : 'none',\n backgroundSize: '20px 20px',\n backgroundImage: striped\n ? 'linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)'\n : 'none',\n\n '&:last-of-type': {\n borderTopRightRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n borderBottomRightRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n },\n\n '&:first-of-type': {\n borderTopLeftRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n borderBottomLeftRadius: theme.fn.size({ size: radius, sizes: theme.radius }),\n },\n\n '@media (prefers-reduced-motion)': {\n transitionDuration: '0ms',\n },\n },\n\n label: {\n color: theme.white,\n fontSize: theme.fn.size({ size, sizes }) * 0.65,\n fontWeight: 700,\n userSelect: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n}));\n"],"names":[],"mappings":";;AACY,MAAC,KAAK,GAAG;AACrB,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE;AACF,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE;AACrC,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE;AACtC,CAAC,CAAC,CAAC;AACH,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;AACnF,EAAE,IAAI,EAAE;AACR,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC1C,IAAI,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/F,IAAI,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACtE,IAAI,QAAQ,EAAE,QAAQ;AACtB,GAAG;AACH,EAAE,GAAG,EAAE;AACP,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC;AAC/E,IAAI,UAAU,EAAE,oBAAoB;AACpC,IAAI,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,MAAM;AAC9E,IAAI,cAAc,EAAE,WAAW;AAC/B,IAAI,eAAe,EAAE,OAAO,GAAG,qLAAqL,GAAG,MAAM;AAC7N,IAAI,gBAAgB,EAAE;AACtB,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAChF,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACnF,KAAK;AACL,IAAI,iBAAiB,EAAE;AACvB,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC/E,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAClF,KAAK;AACL,IAAI,iCAAiC,EAAE;AACvC,MAAM,kBAAkB,EAAE,KAAK;AAC/B,KAAK;AACL,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,KAAK,EAAE,KAAK,CAAC,KAAK;AACtB,IAAI,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;AACnD,IAAI,UAAU,EAAE,GAAG;AACnB,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,UAAU,EAAE,QAAQ;AACxB,GAAG;AACH,CAAC,CAAC,CAAC;;;;;"}
|
|
@@ -413,7 +413,8 @@ const Select = forwardRef((_a, ref) => {
|
|
|
413
413
|
readOnly: !searchable,
|
|
414
414
|
disabled,
|
|
415
415
|
"data-mantine-stop-propagation": shouldShowDropdown,
|
|
416
|
-
|
|
416
|
+
name,
|
|
417
|
+
autoComplete: "nope",
|
|
417
418
|
classNames: __spreadProps(__spreadValues({}, classNames), {
|
|
418
419
|
input: cx({ [classes.input]: !searchable }, classNames == null ? void 0 : classNames.input)
|
|
419
420
|
})
|
|
@@ -463,11 +464,7 @@ const Select = forwardRef((_a, ref) => {
|
|
|
463
464
|
nothingFound,
|
|
464
465
|
creatable: isCreatable && !!createLabel,
|
|
465
466
|
createLabel
|
|
466
|
-
})))
|
|
467
|
-
type: "hidden",
|
|
468
|
-
name,
|
|
469
|
-
value: _value || ""
|
|
470
|
-
}));
|
|
467
|
+
}))));
|
|
471
468
|
});
|
|
472
469
|
Select.displayName = "@mantine/core/Select";
|
|
473
470
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport {\n useUncontrolled,\n useMergedRef,\n useDidUpdate,\n useScrollIntoView,\n useUuid,\n} from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineSize,\n MantineShadow,\n extractMargins,\n getDefaultZIndex,\n} from '@mantine/styles';\nimport { SelectScrollArea } from './SelectScrollArea/SelectScrollArea';\nimport { InputWrapper } from '../InputWrapper';\nimport { Input } from '../Input';\nimport { MantineTransition } from '../Transition';\nimport { DefaultItem } from './DefaultItem/DefaultItem';\nimport { getSelectRightSectionProps } from './SelectRightSection/get-select-right-section-props';\nimport { SelectItems } from './SelectItems/SelectItems';\nimport { SelectDropdown } from './SelectDropdown/SelectDropdown';\nimport { SelectItem, BaseSelectStylesNames, BaseSelectProps } from './types';\nimport { filterData } from './filter-data/filter-data';\nimport { groupOptions } from '../../utils';\nimport useStyles from './Select.styles';\n\nexport interface SelectSharedProps<Item, Value> {\n /** Select data used to renderer items in dropdown */\n data: (string | Item)[];\n\n /** Controlled input value */\n value?: Value;\n\n /** Uncontrolled input defaultValue */\n defaultValue?: Value;\n\n /** Controlled input onChange handler */\n onChange?(value: Value): void;\n\n /** Function based on which items in dropdown are filtered */\n filter?(value: string, item: Item): boolean;\n\n /** Input size */\n size?: MantineSize;\n\n /** Dropdown body appear/disappear transition */\n transition?: MantineTransition;\n\n /** Dropdown body transition duration */\n transitionDuration?: number;\n\n /** Dropdown body transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Dropdown shadow from theme or any value to set box-shadow */\n shadow?: MantineShadow;\n\n /** Initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Change item renderer */\n itemComponent?: React.FC<any>;\n\n /** Called when dropdown is opened */\n onDropdownOpen?(): void;\n\n /** Called when dropdown is closed */\n onDropdownClose?(): void;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Limit amount of items displayed at a time for searchable select */\n limit?: number;\n\n /** Nothing found label */\n nothingFound?: React.ReactNode;\n\n /** Dropdown z-index */\n zIndex?: number;\n\n /** Dropdown positioning behavior */\n dropdownPosition?: 'bottom' | 'top' | 'flip';\n\n /** Whether to switch item order and keyboard navigation on dropdown position flip */\n switchDirectionOnFlip?: boolean;\n}\n\nexport interface SelectProps\n extends DefaultProps<BaseSelectStylesNames>,\n BaseSelectProps,\n SelectSharedProps<SelectItem, string | null> {\n /** Maximum dropdown height in px */\n maxDropdownHeight?: number;\n\n /** Set to true to enable search */\n searchable?: boolean;\n\n /** Allow to clear item */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** Called each time search value changes */\n onSearchChange?(query: string): void;\n\n /** Allow creatable option */\n creatable?: boolean;\n\n /** Function to get create Label */\n getCreateLabel?: (query: string) => React.ReactNode;\n\n /** Function to determine if create label should be displayed */\n shouldCreate?: (query: string, data: SelectItem[]) => boolean;\n\n /** Called when create option is selected */\n onCreate?: (query: string) => void;\n\n /** Change dropdown component, can be used to add native scrollbars */\n dropdownComponent?: any;\n\n /** Select highlighted item on blur */\n selectOnBlur?: boolean;\n\n /** Allow deselecting items on click */\n allowDeselect?: boolean;\n}\n\nexport function defaultFilter(value: string, item: SelectItem) {\n return item.label.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nexport function defaultShouldCreate(query: string, data: SelectItem[]) {\n return !!query && !data.some((item) => item.label.toLowerCase() === query.toLowerCase());\n}\n\nexport const Select = forwardRef<HTMLInputElement, SelectProps>(\n (\n {\n className,\n style,\n required = false,\n label,\n id,\n error,\n description,\n size = 'sm',\n shadow = 'sm',\n data,\n value,\n defaultValue,\n onChange,\n itemComponent = DefaultItem,\n onKeyDown,\n onBlur,\n onFocus,\n transition = 'fade',\n transitionDuration = 0,\n initiallyOpened = false,\n transitionTimingFunction,\n wrapperProps,\n classNames,\n styles,\n filter = defaultFilter,\n maxDropdownHeight = 220,\n searchable = false,\n clearable = false,\n nothingFound,\n clearButtonLabel,\n limit = Infinity,\n disabled = false,\n onSearchChange,\n rightSection,\n rightSectionWidth,\n creatable = false,\n getCreateLabel,\n shouldCreate = defaultShouldCreate,\n selectOnBlur = false,\n onCreate,\n sx,\n dropdownComponent,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n name,\n dropdownPosition,\n allowDeselect,\n ...others\n }: SelectProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles();\n const { margins, rest } = extractMargins(others);\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const inputRef = useRef<HTMLInputElement>();\n const dropdownRef = useRef<HTMLDivElement>();\n const itemsRefs = useRef<Record<string, HTMLDivElement>>({});\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const isColumn = direction === 'column';\n const uuid = useUuid(id);\n const { scrollIntoView, targetRef, scrollableRef } = useScrollIntoView({\n duration: 0,\n offset: 5,\n cancelable: false,\n isList: true,\n });\n\n const isDeselectable = allowDeselect === undefined ? clearable : allowDeselect;\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n const isCreatable = creatable && typeof getCreateLabel === 'function';\n let createLabel = null;\n\n const formattedData = data.map((item) =>\n typeof item === 'string' ? { label: item, value: item } : item\n );\n\n const sortedData = groupOptions({ data: formattedData });\n\n const [_value, handleChange, inputMode] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => typeof val === 'string' || val === null,\n });\n\n const selectedValue = sortedData.find((item) => item.value === _value);\n const [inputValue, setInputValue] = useState(selectedValue?.label || '');\n\n const handleSearchChange = (val: string) => {\n setInputValue(val);\n if (searchable && typeof onSearchChange === 'function') {\n onSearchChange(val);\n }\n };\n\n const handleClear = () => {\n handleChange(null);\n if (inputMode === 'uncontrolled') {\n handleSearchChange('');\n }\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n const newSelectedValue = sortedData.find((item) => item.value === _value);\n\n if (newSelectedValue) {\n handleSearchChange(newSelectedValue.label);\n } else if (!isCreatable || !_value) {\n handleSearchChange('');\n }\n }, [_value]);\n\n useEffect(() => {\n if (selectedValue && (!searchable || !dropdownOpened)) {\n handleSearchChange(selectedValue.label);\n }\n }, [selectedValue?.label]);\n\n const handleItemSelect = (item: SelectItem) => {\n if (isDeselectable && selectedValue?.value === item.value) {\n handleChange(null);\n setDropdownOpened(false);\n } else {\n handleChange(item.value);\n\n if (item.creatable) {\n typeof onCreate === 'function' && onCreate(item.value);\n }\n\n if (inputMode === 'uncontrolled') {\n handleSearchChange(item.label);\n }\n setHovered(-1);\n setDropdownOpened(false);\n inputRef.current.focus();\n }\n };\n\n const filteredData = filterData({\n data: sortedData,\n searchable,\n limit,\n searchValue: inputValue,\n filter,\n });\n\n if (isCreatable && shouldCreate(inputValue, filteredData)) {\n createLabel = getCreateLabel(inputValue);\n filteredData.push({ label: inputValue, value: inputValue, creatable: true });\n }\n\n const getNextIndex = (\n index: number,\n nextItem: (index: number) => number,\n compareFn: (index: number) => boolean\n ) => {\n let i = index;\n while (compareFn(i)) {\n i = nextItem(i);\n if (!filteredData[i].disabled) return i;\n }\n return index;\n };\n\n useDidUpdate(() => {\n setHovered(\n getNextIndex(\n -1,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n )\n );\n }, [inputValue]);\n\n const selectedItemIndex = _value ? filteredData.findIndex((el) => el.value === _value) : 0;\n\n const handlePrevious = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index - 1,\n (index) => index > 0\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'start' : 'end' });\n return nextIndex;\n });\n };\n\n const handleNext = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n return nextIndex;\n });\n };\n\n const scrollSelectedItemIntoView = () =>\n window.setTimeout(() => {\n targetRef.current = itemsRefs.current[filteredData[selectedItemIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n }, 0);\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handlePrevious() : handleNext();\n }\n\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handleNext() : handlePrevious();\n }\n\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n setDropdownOpened(false);\n setHovered(-1);\n break;\n }\n\n case 'Space': {\n if (!searchable) {\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(!dropdownOpened);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(true);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const selected = sortedData.find((item) => item.value === _value);\n if (selectOnBlur && filteredData[hovered] && dropdownOpened) {\n handleItemSelect(filteredData[hovered]);\n }\n handleSearchChange(selected?.label || '');\n setDropdownOpened(false);\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n if (searchable) {\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(event.currentTarget.value);\n\n if (clearable && event.currentTarget.value === '') {\n handleChange(null);\n }\n\n setHovered(0);\n setDropdownOpened(true);\n };\n\n const handleInputClick = () => {\n let dropdownOpen = true;\n\n if (!searchable) {\n dropdownOpen = !dropdownOpened;\n }\n\n setDropdownOpened(dropdownOpen);\n\n if (_value && dropdownOpen) {\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n };\n\n const shouldShowDropdown =\n dropdownOpened &&\n (searchable && !creatable ? filteredData.length > 0 || !!nothingFound : dropdownOpened);\n\n return (\n <InputWrapper\n required={required}\n id={uuid}\n label={label}\n error={error}\n description={description}\n size={size}\n className={className}\n style={style}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Select\"\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <div\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={`${uuid}-items`}\n aria-controls={uuid}\n aria-expanded={shouldShowDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n {...rest}\n type=\"text\"\n required={required}\n ref={useMergedRef(ref, inputRef)}\n id={uuid}\n invalid={!!error}\n size={size}\n onKeyDown={handleInputKeydown}\n __staticSelector=\"Select\"\n value={inputValue}\n onChange={handleInputChange}\n aria-autocomplete=\"list\"\n aria-controls={shouldShowDropdown ? `${uuid}-items` : null}\n aria-activedescendant={hovered !== -1 ? `${uuid}-${hovered}` : null}\n onClick={handleInputClick}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n readOnly={!searchable}\n disabled={disabled}\n data-mantine-stop-propagation={shouldShowDropdown}\n autoComplete=\"off\"\n classNames={{\n ...classNames,\n input: cx({ [classes.input]: !searchable }, classNames?.input),\n }}\n {...getSelectRightSectionProps({\n theme,\n rightSection,\n rightSectionWidth,\n styles,\n size,\n shouldClear: clearable && !!selectedValue,\n clearButtonLabel,\n onClear: handleClear,\n error,\n })}\n />\n\n <SelectDropdown\n referenceElement={inputRef.current}\n mounted={shouldShowDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n uuid={uuid}\n shadow={shadow}\n maxDropdownHeight={maxDropdownHeight}\n classNames={classNames}\n styles={styles}\n ref={useMergedRef(dropdownRef, scrollableRef)}\n __staticSelector=\"Select\"\n dropdownComponent={dropdownComponent || SelectScrollArea}\n direction={direction}\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n withinPortal={withinPortal}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n isItemSelected={(val) => val === _value}\n uuid={uuid}\n __staticSelector=\"Select\"\n onItemHover={setHovered}\n onItemSelect={handleItemSelect}\n itemsRefs={itemsRefs}\n itemComponent={itemComponent}\n size={size}\n nothingFound={nothingFound}\n creatable={isCreatable && !!createLabel}\n createLabel={createLabel}\n />\n </SelectDropdown>\n </div>\n\n {name && <input type=\"hidden\" name={name} value={_value || ''} />}\n </InputWrapper>\n );\n }\n);\n\nSelect.displayName = '@mantine/core/Select';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport {\n useUncontrolled,\n useMergedRef,\n useDidUpdate,\n useScrollIntoView,\n useUuid,\n} from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineSize,\n MantineShadow,\n extractMargins,\n getDefaultZIndex,\n} from '@mantine/styles';\nimport { SelectScrollArea } from './SelectScrollArea/SelectScrollArea';\nimport { InputWrapper } from '../InputWrapper';\nimport { Input } from '../Input';\nimport { MantineTransition } from '../Transition';\nimport { DefaultItem } from './DefaultItem/DefaultItem';\nimport { getSelectRightSectionProps } from './SelectRightSection/get-select-right-section-props';\nimport { SelectItems } from './SelectItems/SelectItems';\nimport { SelectDropdown } from './SelectDropdown/SelectDropdown';\nimport { SelectItem, BaseSelectStylesNames, BaseSelectProps } from './types';\nimport { filterData } from './filter-data/filter-data';\nimport { groupOptions } from '../../utils';\nimport useStyles from './Select.styles';\n\nexport interface SelectSharedProps<Item, Value> {\n /** Select data used to renderer items in dropdown */\n data: (string | Item)[];\n\n /** Controlled input value */\n value?: Value;\n\n /** Uncontrolled input defaultValue */\n defaultValue?: Value;\n\n /** Controlled input onChange handler */\n onChange?(value: Value): void;\n\n /** Function based on which items in dropdown are filtered */\n filter?(value: string, item: Item): boolean;\n\n /** Input size */\n size?: MantineSize;\n\n /** Dropdown body appear/disappear transition */\n transition?: MantineTransition;\n\n /** Dropdown body transition duration */\n transitionDuration?: number;\n\n /** Dropdown body transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Dropdown shadow from theme or any value to set box-shadow */\n shadow?: MantineShadow;\n\n /** Initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Change item renderer */\n itemComponent?: React.FC<any>;\n\n /** Called when dropdown is opened */\n onDropdownOpen?(): void;\n\n /** Called when dropdown is closed */\n onDropdownClose?(): void;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Limit amount of items displayed at a time for searchable select */\n limit?: number;\n\n /** Nothing found label */\n nothingFound?: React.ReactNode;\n\n /** Dropdown z-index */\n zIndex?: number;\n\n /** Dropdown positioning behavior */\n dropdownPosition?: 'bottom' | 'top' | 'flip';\n\n /** Whether to switch item order and keyboard navigation on dropdown position flip */\n switchDirectionOnFlip?: boolean;\n}\n\nexport interface SelectProps\n extends DefaultProps<BaseSelectStylesNames>,\n BaseSelectProps,\n SelectSharedProps<SelectItem, string | null> {\n /** Maximum dropdown height in px */\n maxDropdownHeight?: number;\n\n /** Set to true to enable search */\n searchable?: boolean;\n\n /** Allow to clear item */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** Called each time search value changes */\n onSearchChange?(query: string): void;\n\n /** Allow creatable option */\n creatable?: boolean;\n\n /** Function to get create Label */\n getCreateLabel?: (query: string) => React.ReactNode;\n\n /** Function to determine if create label should be displayed */\n shouldCreate?: (query: string, data: SelectItem[]) => boolean;\n\n /** Called when create option is selected */\n onCreate?: (query: string) => void;\n\n /** Change dropdown component, can be used to add native scrollbars */\n dropdownComponent?: any;\n\n /** Select highlighted item on blur */\n selectOnBlur?: boolean;\n\n /** Allow deselecting items on click */\n allowDeselect?: boolean;\n}\n\nexport function defaultFilter(value: string, item: SelectItem) {\n return item.label.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nexport function defaultShouldCreate(query: string, data: SelectItem[]) {\n return !!query && !data.some((item) => item.label.toLowerCase() === query.toLowerCase());\n}\n\nexport const Select = forwardRef<HTMLInputElement, SelectProps>(\n (\n {\n className,\n style,\n required = false,\n label,\n id,\n error,\n description,\n size = 'sm',\n shadow = 'sm',\n data,\n value,\n defaultValue,\n onChange,\n itemComponent = DefaultItem,\n onKeyDown,\n onBlur,\n onFocus,\n transition = 'fade',\n transitionDuration = 0,\n initiallyOpened = false,\n transitionTimingFunction,\n wrapperProps,\n classNames,\n styles,\n filter = defaultFilter,\n maxDropdownHeight = 220,\n searchable = false,\n clearable = false,\n nothingFound,\n clearButtonLabel,\n limit = Infinity,\n disabled = false,\n onSearchChange,\n rightSection,\n rightSectionWidth,\n creatable = false,\n getCreateLabel,\n shouldCreate = defaultShouldCreate,\n selectOnBlur = false,\n onCreate,\n sx,\n dropdownComponent,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n name,\n dropdownPosition,\n allowDeselect,\n ...others\n }: SelectProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles();\n const { margins, rest } = extractMargins(others);\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const inputRef = useRef<HTMLInputElement>();\n const dropdownRef = useRef<HTMLDivElement>();\n const itemsRefs = useRef<Record<string, HTMLDivElement>>({});\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const isColumn = direction === 'column';\n const uuid = useUuid(id);\n const { scrollIntoView, targetRef, scrollableRef } = useScrollIntoView({\n duration: 0,\n offset: 5,\n cancelable: false,\n isList: true,\n });\n\n const isDeselectable = allowDeselect === undefined ? clearable : allowDeselect;\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n const isCreatable = creatable && typeof getCreateLabel === 'function';\n let createLabel = null;\n\n const formattedData = data.map((item) =>\n typeof item === 'string' ? { label: item, value: item } : item\n );\n\n const sortedData = groupOptions({ data: formattedData });\n\n const [_value, handleChange, inputMode] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => typeof val === 'string' || val === null,\n });\n\n const selectedValue = sortedData.find((item) => item.value === _value);\n const [inputValue, setInputValue] = useState(selectedValue?.label || '');\n\n const handleSearchChange = (val: string) => {\n setInputValue(val);\n if (searchable && typeof onSearchChange === 'function') {\n onSearchChange(val);\n }\n };\n\n const handleClear = () => {\n handleChange(null);\n if (inputMode === 'uncontrolled') {\n handleSearchChange('');\n }\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n const newSelectedValue = sortedData.find((item) => item.value === _value);\n\n if (newSelectedValue) {\n handleSearchChange(newSelectedValue.label);\n } else if (!isCreatable || !_value) {\n handleSearchChange('');\n }\n }, [_value]);\n\n useEffect(() => {\n if (selectedValue && (!searchable || !dropdownOpened)) {\n handleSearchChange(selectedValue.label);\n }\n }, [selectedValue?.label]);\n\n const handleItemSelect = (item: SelectItem) => {\n if (isDeselectable && selectedValue?.value === item.value) {\n handleChange(null);\n setDropdownOpened(false);\n } else {\n handleChange(item.value);\n\n if (item.creatable) {\n typeof onCreate === 'function' && onCreate(item.value);\n }\n\n if (inputMode === 'uncontrolled') {\n handleSearchChange(item.label);\n }\n setHovered(-1);\n setDropdownOpened(false);\n inputRef.current.focus();\n }\n };\n\n const filteredData = filterData({\n data: sortedData,\n searchable,\n limit,\n searchValue: inputValue,\n filter,\n });\n\n if (isCreatable && shouldCreate(inputValue, filteredData)) {\n createLabel = getCreateLabel(inputValue);\n filteredData.push({ label: inputValue, value: inputValue, creatable: true });\n }\n\n const getNextIndex = (\n index: number,\n nextItem: (index: number) => number,\n compareFn: (index: number) => boolean\n ) => {\n let i = index;\n while (compareFn(i)) {\n i = nextItem(i);\n if (!filteredData[i].disabled) return i;\n }\n return index;\n };\n\n useDidUpdate(() => {\n setHovered(\n getNextIndex(\n -1,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n )\n );\n }, [inputValue]);\n\n const selectedItemIndex = _value ? filteredData.findIndex((el) => el.value === _value) : 0;\n\n const handlePrevious = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index - 1,\n (index) => index > 0\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'start' : 'end' });\n return nextIndex;\n });\n };\n\n const handleNext = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n return nextIndex;\n });\n };\n\n const scrollSelectedItemIntoView = () =>\n window.setTimeout(() => {\n targetRef.current = itemsRefs.current[filteredData[selectedItemIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n }, 0);\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handlePrevious() : handleNext();\n }\n\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handleNext() : handlePrevious();\n }\n\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n setDropdownOpened(false);\n setHovered(-1);\n break;\n }\n\n case 'Space': {\n if (!searchable) {\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(!dropdownOpened);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(true);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const selected = sortedData.find((item) => item.value === _value);\n if (selectOnBlur && filteredData[hovered] && dropdownOpened) {\n handleItemSelect(filteredData[hovered]);\n }\n handleSearchChange(selected?.label || '');\n setDropdownOpened(false);\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n if (searchable) {\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(event.currentTarget.value);\n\n if (clearable && event.currentTarget.value === '') {\n handleChange(null);\n }\n\n setHovered(0);\n setDropdownOpened(true);\n };\n\n const handleInputClick = () => {\n let dropdownOpen = true;\n\n if (!searchable) {\n dropdownOpen = !dropdownOpened;\n }\n\n setDropdownOpened(dropdownOpen);\n\n if (_value && dropdownOpen) {\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n };\n\n const shouldShowDropdown =\n dropdownOpened &&\n (searchable && !creatable ? filteredData.length > 0 || !!nothingFound : dropdownOpened);\n\n return (\n <InputWrapper\n required={required}\n id={uuid}\n label={label}\n error={error}\n description={description}\n size={size}\n className={className}\n style={style}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Select\"\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <div\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={`${uuid}-items`}\n aria-controls={uuid}\n aria-expanded={shouldShowDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n {...rest}\n type=\"text\"\n required={required}\n ref={useMergedRef(ref, inputRef)}\n id={uuid}\n invalid={!!error}\n size={size}\n onKeyDown={handleInputKeydown}\n __staticSelector=\"Select\"\n value={inputValue}\n onChange={handleInputChange}\n aria-autocomplete=\"list\"\n aria-controls={shouldShowDropdown ? `${uuid}-items` : null}\n aria-activedescendant={hovered !== -1 ? `${uuid}-${hovered}` : null}\n onClick={handleInputClick}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n readOnly={!searchable}\n disabled={disabled}\n data-mantine-stop-propagation={shouldShowDropdown}\n name={name}\n autoComplete=\"nope\"\n classNames={{\n ...classNames,\n input: cx({ [classes.input]: !searchable }, classNames?.input),\n }}\n {...getSelectRightSectionProps({\n theme,\n rightSection,\n rightSectionWidth,\n styles,\n size,\n shouldClear: clearable && !!selectedValue,\n clearButtonLabel,\n onClear: handleClear,\n error,\n })}\n />\n\n <SelectDropdown\n referenceElement={inputRef.current}\n mounted={shouldShowDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n uuid={uuid}\n shadow={shadow}\n maxDropdownHeight={maxDropdownHeight}\n classNames={classNames}\n styles={styles}\n ref={useMergedRef(dropdownRef, scrollableRef)}\n __staticSelector=\"Select\"\n dropdownComponent={dropdownComponent || SelectScrollArea}\n direction={direction}\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n withinPortal={withinPortal}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n isItemSelected={(val) => val === _value}\n uuid={uuid}\n __staticSelector=\"Select\"\n onItemHover={setHovered}\n onItemSelect={handleItemSelect}\n itemsRefs={itemsRefs}\n itemComponent={itemComponent}\n size={size}\n nothingFound={nothingFound}\n creatable={isCreatable && !!createLabel}\n createLabel={createLabel}\n />\n </SelectDropdown>\n </div>\n </InputWrapper>\n );\n }\n);\n\nSelect.displayName = '@mantine/core/Select';\n"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ const RangeSlider = forwardRef((_a, ref) => {
|
|
|
57
57
|
marks = [],
|
|
58
58
|
label = (f) => f,
|
|
59
59
|
labelTransition = "skew-down",
|
|
60
|
-
labelTransitionDuration =
|
|
60
|
+
labelTransitionDuration = 0,
|
|
61
61
|
labelTransitionTimingFunction,
|
|
62
62
|
labelAlwaysOn = false,
|
|
63
63
|
thumbFromLabel = "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSlider.js","sources":["../../../../src/components/Slider/RangeSlider/RangeSlider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef, useEffect } from 'react';\nimport { useMove, useUncontrolled, useMergedRef } from '@mantine/hooks';\nimport { DefaultProps, MantineNumberSize, MantineColor, useMantineTheme } from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getClientPosition } from '../utils/get-client-position/get-client-position';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type RangeSliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\ntype Value = [number, number];\n\nexport interface RangeSliderProps\n extends DefaultProps<RangeSliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange' | 'defaultValue'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal range interval */\n minRange?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Current value for controlled slider */\n value?: Value;\n\n /** Default value for uncontrolled slider */\n defaultValue?: Value;\n\n /** Called each time value changes */\n onChange?(value: Value): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** First thumb aria-label */\n thumbFromLabel?: string;\n\n /** Second thumb aria-label */\n thumbToLabel?: string;\n\n /**If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumbs children, can be used to add icons */\n thumbChildren?: React.ReactNode;\n}\n\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (\n {\n classNames,\n styles,\n color,\n value,\n onChange,\n size = 'md',\n radius = 'xl',\n min = 0,\n max = 100,\n minRange = 10,\n step = 1,\n defaultValue,\n name,\n marks = [],\n label = (f) => f,\n labelTransition = 'skew-down',\n labelTransitionDuration = 150,\n labelTransitionTimingFunction,\n labelAlwaysOn = false,\n thumbFromLabel = '',\n thumbToLabel = '',\n showLabelOnHover = true,\n thumbChildren,\n ...others\n }: RangeSliderProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const [focused, setFocused] = useState(-1);\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled<Value>({\n value,\n defaultValue,\n finalValue: [min, max],\n rule: (val) => Array.isArray(val),\n onChange,\n });\n const _valueRef = useRef(_value);\n const thumbs = useRef<HTMLDivElement[]>([]);\n const thumbIndex = useRef<number>(undefined);\n const positions = [\n getPosition({ value: _value[0], min, max }),\n getPosition({ value: _value[1], min, max }),\n ];\n\n const _setValue = (val: Value) => {\n setValue(val);\n _valueRef.current = val;\n };\n\n useEffect(\n () => {\n if (Array.isArray(value)) {\n _valueRef.current = value;\n }\n },\n Array.isArray(value) ? [value[0], value[1]] : [null, null]\n );\n\n const setRangedValue = (val: number, index: number) => {\n const clone: Value = [..._valueRef.current];\n clone[index] = val;\n\n if (index === 0) {\n if (val > clone[1] - minRange) {\n clone[1] = Math.min(val + minRange, max);\n }\n\n if (val > (max - minRange || min)) {\n clone[index] = _valueRef.current[index];\n }\n }\n\n if (index === 1) {\n if (val < clone[0] + minRange) {\n clone[0] = Math.max(val - minRange, min);\n }\n\n if (val < (minRange || min)) {\n clone[index] = _valueRef.current[index];\n }\n }\n _setValue(clone);\n };\n\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step });\n setRangedValue(nextValue, thumbIndex.current);\n };\n\n const { ref: container, active } = useMove(({ x }) => handleChange(x), undefined, theme.dir);\n\n function handleThumbMouseDown(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n index: number\n ) {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n thumbIndex.current = index;\n }\n\n const handleTrackMouseDownCapture = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n container.current.focus();\n const rect = container.current.getBoundingClientRect();\n const changePosition = getClientPosition(event.nativeEvent);\n const changeValue = getChangeValue({\n value: changePosition - rect.left,\n max,\n min,\n step,\n containerWidth: rect.width,\n });\n\n const nearestHandle =\n Math.abs(_value[0] - changeValue) > Math.abs(_value[1] - changeValue) ? 1 : 0;\n const _nearestHandle = theme.dir === 'ltr' ? nearestHandle : nearestHandle === 1 ? 0 : 1;\n\n thumbIndex.current = _nearestHandle;\n };\n\n const getFocusedThumbIndex = () => {\n if (focused !== 1 && focused !== 0) {\n setFocused(0);\n return 0;\n }\n\n return focused;\n };\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(_valueRef.current[focusedIndex] + step, min), max),\n focusedIndex\n );\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? _valueRef.current[focusedIndex] - step\n : _valueRef.current[focusedIndex] + step,\n min\n ),\n max\n ),\n focusedIndex\n );\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(_valueRef.current[focusedIndex] - step, min), max),\n focusedIndex\n );\n break;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? _valueRef.current[focusedIndex] + step\n : _valueRef.current[focusedIndex] - step,\n min\n ),\n max\n ),\n focusedIndex\n );\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n const sharedThumbProps = {\n max,\n min,\n color,\n size,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n onBlur: () => setFocused(-1),\n classNames,\n styles,\n };\n\n const hasArrayThumbChildren = Array.isArray(thumbChildren);\n\n return (\n <SliderRoot\n {...others}\n size={size}\n ref={useMergedRef(container, ref)}\n onTouchStartCapture={handleTrackMouseDownCapture}\n onTouchEndCapture={() => {\n thumbIndex.current = -1;\n }}\n onMouseDownCapture={handleTrackMouseDownCapture}\n onMouseUpCapture={() => {\n thumbIndex.current = -1;\n }}\n onKeyDownCapture={handleTrackKeydownCapture}\n styles={styles}\n classNames={classNames}\n >\n <Track\n offset={positions[0]}\n filled={positions[1] - positions[0]}\n marks={marks}\n size={size}\n radius={radius}\n color={color}\n min={min}\n max={max}\n value={_value[1]}\n styles={styles}\n classNames={classNames}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n onChange={(val) => {\n const nearestValue = Math.abs(_value[0] - val) > Math.abs(_value[1] - val) ? 1 : 0;\n const clone: Value = [..._value];\n clone[nearestValue] = val;\n _setValue(clone);\n }}\n >\n <Thumb\n {...sharedThumbProps}\n value={_value[0]}\n position={positions[0]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[0]) : label}\n ref={(node) => {\n thumbs.current[0] = node;\n }}\n thumbLabel={thumbFromLabel}\n onMouseDown={(event) => handleThumbMouseDown(event, 0)}\n onFocus={() => setFocused(0)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[0] : thumbChildren}\n </Thumb>\n\n <Thumb\n {...sharedThumbProps}\n thumbLabel={thumbToLabel}\n value={_value[1]}\n position={positions[1]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[1]) : label}\n ref={(node) => {\n thumbs.current[1] = node;\n }}\n onMouseDown={(event) => handleThumbMouseDown(event, 1)}\n onFocus={() => setFocused(1)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[1] : thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={`${name}_from`} value={_value[0]} />\n <input type=\"hidden\" name={`${name}_to`} value={_value[1]} />\n </SliderRoot>\n );\n }\n);\n\nRangeSlider.displayName = '@mantine/core/RangeSlider';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RangeSlider.js","sources":["../../../../src/components/Slider/RangeSlider/RangeSlider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef, useEffect } from 'react';\nimport { useMove, useUncontrolled, useMergedRef } from '@mantine/hooks';\nimport { DefaultProps, MantineNumberSize, MantineColor, useMantineTheme } from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getClientPosition } from '../utils/get-client-position/get-client-position';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type RangeSliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\ntype Value = [number, number];\n\nexport interface RangeSliderProps\n extends DefaultProps<RangeSliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange' | 'defaultValue'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal range interval */\n minRange?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Current value for controlled slider */\n value?: Value;\n\n /** Default value for uncontrolled slider */\n defaultValue?: Value;\n\n /** Called each time value changes */\n onChange?(value: Value): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** First thumb aria-label */\n thumbFromLabel?: string;\n\n /** Second thumb aria-label */\n thumbToLabel?: string;\n\n /**If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumbs children, can be used to add icons */\n thumbChildren?: React.ReactNode;\n}\n\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (\n {\n classNames,\n styles,\n color,\n value,\n onChange,\n size = 'md',\n radius = 'xl',\n min = 0,\n max = 100,\n minRange = 10,\n step = 1,\n defaultValue,\n name,\n marks = [],\n label = (f) => f,\n labelTransition = 'skew-down',\n labelTransitionDuration = 0,\n labelTransitionTimingFunction,\n labelAlwaysOn = false,\n thumbFromLabel = '',\n thumbToLabel = '',\n showLabelOnHover = true,\n thumbChildren,\n ...others\n }: RangeSliderProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const [focused, setFocused] = useState(-1);\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled<Value>({\n value,\n defaultValue,\n finalValue: [min, max],\n rule: (val) => Array.isArray(val),\n onChange,\n });\n const _valueRef = useRef(_value);\n const thumbs = useRef<HTMLDivElement[]>([]);\n const thumbIndex = useRef<number>(undefined);\n const positions = [\n getPosition({ value: _value[0], min, max }),\n getPosition({ value: _value[1], min, max }),\n ];\n\n const _setValue = (val: Value) => {\n setValue(val);\n _valueRef.current = val;\n };\n\n useEffect(\n () => {\n if (Array.isArray(value)) {\n _valueRef.current = value;\n }\n },\n Array.isArray(value) ? [value[0], value[1]] : [null, null]\n );\n\n const setRangedValue = (val: number, index: number) => {\n const clone: Value = [..._valueRef.current];\n clone[index] = val;\n\n if (index === 0) {\n if (val > clone[1] - minRange) {\n clone[1] = Math.min(val + minRange, max);\n }\n\n if (val > (max - minRange || min)) {\n clone[index] = _valueRef.current[index];\n }\n }\n\n if (index === 1) {\n if (val < clone[0] + minRange) {\n clone[0] = Math.max(val - minRange, min);\n }\n\n if (val < (minRange || min)) {\n clone[index] = _valueRef.current[index];\n }\n }\n _setValue(clone);\n };\n\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step });\n setRangedValue(nextValue, thumbIndex.current);\n };\n\n const { ref: container, active } = useMove(({ x }) => handleChange(x), undefined, theme.dir);\n\n function handleThumbMouseDown(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n index: number\n ) {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n thumbIndex.current = index;\n }\n\n const handleTrackMouseDownCapture = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n container.current.focus();\n const rect = container.current.getBoundingClientRect();\n const changePosition = getClientPosition(event.nativeEvent);\n const changeValue = getChangeValue({\n value: changePosition - rect.left,\n max,\n min,\n step,\n containerWidth: rect.width,\n });\n\n const nearestHandle =\n Math.abs(_value[0] - changeValue) > Math.abs(_value[1] - changeValue) ? 1 : 0;\n const _nearestHandle = theme.dir === 'ltr' ? nearestHandle : nearestHandle === 1 ? 0 : 1;\n\n thumbIndex.current = _nearestHandle;\n };\n\n const getFocusedThumbIndex = () => {\n if (focused !== 1 && focused !== 0) {\n setFocused(0);\n return 0;\n }\n\n return focused;\n };\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(_valueRef.current[focusedIndex] + step, min), max),\n focusedIndex\n );\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? _valueRef.current[focusedIndex] - step\n : _valueRef.current[focusedIndex] + step,\n min\n ),\n max\n ),\n focusedIndex\n );\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(_valueRef.current[focusedIndex] - step, min), max),\n focusedIndex\n );\n break;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? _valueRef.current[focusedIndex] + step\n : _valueRef.current[focusedIndex] - step,\n min\n ),\n max\n ),\n focusedIndex\n );\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n const sharedThumbProps = {\n max,\n min,\n color,\n size,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n onBlur: () => setFocused(-1),\n classNames,\n styles,\n };\n\n const hasArrayThumbChildren = Array.isArray(thumbChildren);\n\n return (\n <SliderRoot\n {...others}\n size={size}\n ref={useMergedRef(container, ref)}\n onTouchStartCapture={handleTrackMouseDownCapture}\n onTouchEndCapture={() => {\n thumbIndex.current = -1;\n }}\n onMouseDownCapture={handleTrackMouseDownCapture}\n onMouseUpCapture={() => {\n thumbIndex.current = -1;\n }}\n onKeyDownCapture={handleTrackKeydownCapture}\n styles={styles}\n classNames={classNames}\n >\n <Track\n offset={positions[0]}\n filled={positions[1] - positions[0]}\n marks={marks}\n size={size}\n radius={radius}\n color={color}\n min={min}\n max={max}\n value={_value[1]}\n styles={styles}\n classNames={classNames}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n onChange={(val) => {\n const nearestValue = Math.abs(_value[0] - val) > Math.abs(_value[1] - val) ? 1 : 0;\n const clone: Value = [..._value];\n clone[nearestValue] = val;\n _setValue(clone);\n }}\n >\n <Thumb\n {...sharedThumbProps}\n value={_value[0]}\n position={positions[0]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[0]) : label}\n ref={(node) => {\n thumbs.current[0] = node;\n }}\n thumbLabel={thumbFromLabel}\n onMouseDown={(event) => handleThumbMouseDown(event, 0)}\n onFocus={() => setFocused(0)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[0] : thumbChildren}\n </Thumb>\n\n <Thumb\n {...sharedThumbProps}\n thumbLabel={thumbToLabel}\n value={_value[1]}\n position={positions[1]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[1]) : label}\n ref={(node) => {\n thumbs.current[1] = node;\n }}\n onMouseDown={(event) => handleThumbMouseDown(event, 1)}\n onFocus={() => setFocused(1)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[1] : thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={`${name}_from`} value={_value[0]} />\n <input type=\"hidden\" name={`${name}_to`} value={_value[1]} />\n </SliderRoot>\n );\n }\n);\n\nRangeSlider.displayName = '@mantine/core/RangeSlider';\n"],"names":[],"mappings":"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"}
|