@snack-uikit/fields 0.30.0 → 0.32.0
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/CHANGELOG.md +33 -0
- package/README.md +184 -152
- package/dist/cjs/components/FieldDate/FieldDate.d.ts +15 -24
- package/dist/cjs/components/FieldDate/FieldDate.js +53 -41
- package/dist/cjs/components/FieldDate/index.d.ts +0 -1
- package/dist/cjs/components/FieldDate/index.js +1 -9
- package/dist/cjs/components/FieldSecure/FieldSecure.d.ts +1 -1
- package/dist/cjs/components/FieldSelect/hooks.d.ts +2 -2
- package/dist/cjs/components/FieldSelect/hooks.js +7 -3
- package/dist/cjs/components/FieldSelect/styles.module.css +6 -18
- package/dist/cjs/components/FieldSlider/FieldSlider.d.ts +1 -1
- package/dist/cjs/components/FieldText/FieldText.d.ts +1 -1
- package/dist/cjs/components/FieldTextArea/FieldTextArea.d.ts +1 -1
- package/dist/cjs/components/FieldTime/FieldTime.d.ts +30 -0
- package/dist/cjs/components/FieldTime/FieldTime.js +298 -0
- package/dist/cjs/components/FieldTime/index.d.ts +1 -0
- package/dist/cjs/components/{FieldDate/hooks → FieldTime}/index.js +1 -1
- package/dist/cjs/components/FieldTime/styles.module.css +27 -0
- package/dist/cjs/components/index.d.ts +6 -5
- package/dist/cjs/components/index.js +6 -5
- package/dist/cjs/constants/dateFields.d.ts +24 -0
- package/dist/cjs/constants/dateFields.js +152 -0
- package/dist/cjs/constants/index.d.ts +2 -0
- package/dist/cjs/constants/index.js +26 -0
- package/dist/cjs/hooks/dateHandlers/index.d.ts +3 -0
- package/dist/cjs/hooks/dateHandlers/index.js +27 -0
- package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.d.ts +13 -5
- package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.js +49 -34
- package/dist/cjs/hooks/dateHandlers/useDateFieldHelpersForMode.d.ts +18 -0
- package/dist/cjs/hooks/dateHandlers/useDateFieldHelpersForMode.js +113 -0
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.js +1 -0
- package/dist/cjs/hooks/useCopyButton.js +1 -1
- package/dist/cjs/{types.d.ts → types/allFields.d.ts} +1 -1
- package/dist/cjs/types/dateFields.d.ts +11 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +26 -0
- package/dist/cjs/utils/dateFields.d.ts +10 -0
- package/dist/cjs/utils/dateFields.js +71 -0
- package/dist/esm/components/FieldDate/FieldDate.d.ts +15 -24
- package/dist/esm/components/FieldDate/FieldDate.js +39 -31
- package/dist/esm/components/FieldDate/index.d.ts +0 -1
- package/dist/esm/components/FieldDate/index.js +0 -1
- package/dist/esm/components/FieldSecure/FieldSecure.d.ts +1 -1
- package/dist/esm/components/FieldSelect/hooks.d.ts +2 -2
- package/dist/esm/components/FieldSelect/hooks.js +9 -3
- package/dist/esm/components/FieldSelect/styles.module.css +6 -18
- package/dist/esm/components/FieldSlider/FieldSlider.d.ts +1 -1
- package/dist/esm/components/FieldText/FieldText.d.ts +1 -1
- package/dist/esm/components/FieldTextArea/FieldTextArea.d.ts +1 -1
- package/dist/esm/components/FieldTime/FieldTime.d.ts +30 -0
- package/dist/esm/components/FieldTime/FieldTime.js +161 -0
- package/dist/esm/components/FieldTime/index.d.ts +1 -0
- package/dist/esm/components/FieldTime/index.js +1 -0
- package/dist/esm/components/FieldTime/styles.module.css +27 -0
- package/dist/esm/components/index.d.ts +6 -5
- package/dist/esm/components/index.js +6 -5
- package/dist/esm/constants/dateFields.d.ts +24 -0
- package/dist/esm/constants/dateFields.js +103 -0
- package/dist/esm/constants/index.d.ts +2 -0
- package/dist/esm/constants/index.js +2 -0
- package/dist/esm/hooks/dateHandlers/index.d.ts +3 -0
- package/dist/esm/hooks/dateHandlers/index.js +3 -0
- package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.d.ts +13 -5
- package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.js +48 -35
- package/dist/esm/hooks/dateHandlers/useDateFieldHelpersForMode.d.ts +18 -0
- package/dist/esm/hooks/dateHandlers/useDateFieldHelpersForMode.js +95 -0
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useCopyButton.js +1 -1
- package/dist/esm/{types.d.ts → types/allFields.d.ts} +1 -1
- package/dist/esm/types/dateFields.d.ts +11 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/utils/dateFields.d.ts +10 -0
- package/dist/esm/utils/dateFields.js +59 -0
- package/package.json +16 -16
- package/src/components/FieldColor/styles.module.scss +9 -10
- package/src/components/FieldDate/FieldDate.tsx +72 -52
- package/src/components/FieldDate/index.ts +0 -1
- package/src/components/FieldDate/styles.module.scss +10 -11
- package/src/components/FieldDecorator/styles.module.scss +44 -45
- package/src/components/FieldSelect/hooks.ts +15 -3
- package/src/components/FieldSelect/styles.module.scss +20 -20
- package/src/components/FieldSlider/styles.module.scss +4 -4
- package/src/components/FieldTextArea/styles.module.scss +18 -18
- package/src/components/FieldTime/FieldTime.tsx +350 -0
- package/src/components/FieldTime/index.ts +1 -0
- package/src/components/FieldTime/styles.module.scss +41 -0
- package/src/components/index.ts +6 -5
- package/src/constants/dateFields.ts +127 -0
- package/src/constants/index.ts +2 -0
- package/src/helperComponents/ButtonCopyValue/styles.module.scss +2 -2
- package/src/helperComponents/ButtonField/styles.module.scss +9 -9
- package/src/helperComponents/ButtonFieldList/styles.module.scss +2 -2
- package/src/helperComponents/ButtonHideValue/styles.module.scss +2 -2
- package/src/helperComponents/FieldContainerPrivate/styles.module.scss +24 -26
- package/src/helperComponents/TextArea/styles.module.scss +5 -5
- package/src/hooks/dateHandlers/index.ts +3 -0
- package/src/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.ts +93 -47
- package/src/hooks/dateHandlers/useDateFieldHelpersForMode.ts +145 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/styles.module.scss +5 -5
- package/src/hooks/useCopyButton.tsx +1 -1
- package/src/styles.module.scss +15 -15
- package/src/{types.ts → types/allFields.ts} +1 -1
- package/src/types/dateFields.ts +14 -0
- package/src/types/index.ts +2 -0
- package/src/utils/dateFields.ts +75 -0
- package/dist/cjs/components/FieldDate/constants.d.ts +0 -10
- package/dist/cjs/components/FieldDate/constants.js +0 -49
- package/dist/cjs/components/FieldDate/hooks/index.d.ts +0 -1
- package/dist/cjs/components/FieldDate/hooks/useDateFieldHelpers.d.ts +0 -10
- package/dist/cjs/components/FieldDate/hooks/useDateFieldHelpers.js +0 -82
- package/dist/cjs/components/FieldDate/types.d.ts +0 -6
- package/dist/cjs/components/FieldDate/utils.d.ts +0 -9
- package/dist/cjs/components/FieldDate/utils.js +0 -56
- package/dist/esm/components/FieldDate/constants.d.ts +0 -10
- package/dist/esm/components/FieldDate/constants.js +0 -28
- package/dist/esm/components/FieldDate/hooks/index.d.ts +0 -1
- package/dist/esm/components/FieldDate/hooks/index.js +0 -1
- package/dist/esm/components/FieldDate/hooks/useDateFieldHelpers.d.ts +0 -10
- package/dist/esm/components/FieldDate/hooks/useDateFieldHelpers.js +0 -66
- package/dist/esm/components/FieldDate/types.d.ts +0 -6
- package/dist/esm/components/FieldDate/utils.d.ts +0 -9
- package/dist/esm/components/FieldDate/utils.js +0 -43
- package/src/components/FieldDate/constants.ts +0 -33
- package/src/components/FieldDate/hooks/index.ts +0 -1
- package/src/components/FieldDate/hooks/useDateFieldHelpers.ts +0 -96
- package/src/components/FieldDate/types.ts +0 -6
- package/src/components/FieldDate/utils.ts +0 -49
- /package/dist/cjs/{constants.d.ts → constants/allFields.d.ts} +0 -0
- /package/dist/cjs/{constants.js → constants/allFields.js} +0 -0
- /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.d.ts +0 -0
- /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.js +0 -0
- /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.d.ts +0 -0
- /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.js +0 -0
- /package/dist/cjs/{components/FieldDate/types.js → types/allFields.js} +0 -0
- /package/dist/cjs/{types.js → types/dateFields.js} +0 -0
- /package/dist/esm/{constants.d.ts → constants/allFields.d.ts} +0 -0
- /package/dist/esm/{constants.js → constants/allFields.js} +0 -0
- /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.d.ts +0 -0
- /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.js +0 -0
- /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.d.ts +0 -0
- /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.js +0 -0
- /package/dist/esm/{components/FieldDate/types.js → types/allFields.js} +0 -0
- /package/dist/esm/{types.js → types/dateFields.js} +0 -0
- /package/src/{constants.ts → constants/allFields.ts} +0 -0
- /package/src/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.ts +0 -0
- /package/src/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.ts +0 -0
|
@@ -31,18 +31,9 @@ const helperComponents_1 = require("../../helperComponents");
|
|
|
31
31
|
const hooks_1 = require("../../hooks");
|
|
32
32
|
const getValidationState_1 = require("../../utils/getValidationState");
|
|
33
33
|
const FieldDecorator_1 = require("../FieldDecorator");
|
|
34
|
-
const constants_2 = require("./constants");
|
|
35
|
-
const hooks_2 = require("./hooks");
|
|
36
|
-
const useFocusHandlers_1 = require("./hooks/useFocusHandlers");
|
|
37
|
-
const useHandlers_1 = require("./hooks/useHandlers");
|
|
38
34
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
39
|
-
const utils_2 = require("./utils");
|
|
40
|
-
const CALENDAR_SIZE_MAP = {
|
|
41
|
-
[input_private_1.SIZE.S]: 's',
|
|
42
|
-
[input_private_1.SIZE.M]: 'm',
|
|
43
|
-
[input_private_1.SIZE.L]: 'm'
|
|
44
|
-
};
|
|
45
35
|
exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
36
|
+
var _b;
|
|
46
37
|
var {
|
|
47
38
|
id,
|
|
48
39
|
name,
|
|
@@ -66,13 +57,12 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
66
57
|
showHintIcon,
|
|
67
58
|
size = input_private_1.SIZE.S,
|
|
68
59
|
validationState = constants_1.VALIDATION_STATE.Default,
|
|
69
|
-
locale = constants_2.DEFAULT_LOCALE,
|
|
70
60
|
buildCellProps,
|
|
71
|
-
error
|
|
61
|
+
error,
|
|
62
|
+
mode
|
|
72
63
|
} = _a,
|
|
73
|
-
rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "
|
|
64
|
+
rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "buildCellProps", "error", "mode"]);
|
|
74
65
|
const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
|
|
75
|
-
const [pickerAutofocus, setPickerAutofocus] = (0, react_1.useState)(false);
|
|
76
66
|
const localRef = (0, react_1.useRef)(null);
|
|
77
67
|
const clearButtonRef = (0, react_1.useRef)(null);
|
|
78
68
|
const copyButtonRef = (0, react_1.useRef)(null);
|
|
@@ -81,19 +71,24 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
81
71
|
const showAdditionalButton = Boolean(valueProp && !disabled);
|
|
82
72
|
const showClearButton = showClearButtonProp && showAdditionalButton && !readonly;
|
|
83
73
|
const showCopyButton = showCopyButtonProp && showAdditionalButton && readonly;
|
|
74
|
+
const showSeconds = mode === 'date-time' ? (_b = rest.showSeconds) !== null && _b !== void 0 ? _b : true : undefined;
|
|
84
75
|
const fieldValidationState = (0, getValidationState_1.getValidationState)({
|
|
85
76
|
validationState,
|
|
86
77
|
error
|
|
87
78
|
});
|
|
79
|
+
const navigationStartRef = (0, react_1.useRef)(null);
|
|
88
80
|
const checkForLeavingFocus = (0, react_1.useCallback)(event => {
|
|
89
81
|
if (event.key === 'ArrowDown') {
|
|
90
|
-
setPickerAutofocus(true);
|
|
91
82
|
setIsOpen(true);
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
var _a;
|
|
85
|
+
return (_a = navigationStartRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
86
|
+
}, 0);
|
|
92
87
|
}
|
|
93
88
|
}, [setIsOpen]);
|
|
94
89
|
const handleClear = (0, react_1.useCallback)(() => {
|
|
95
90
|
var _a, _b, _c;
|
|
96
|
-
onChange && onChange(
|
|
91
|
+
onChange && onChange(undefined);
|
|
97
92
|
if ((_a = localRef.current) === null || _a === void 0 ? void 0 : _a.value) {
|
|
98
93
|
localRef.current.value = '';
|
|
99
94
|
}
|
|
@@ -105,6 +100,21 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
105
100
|
setIsOpen(false);
|
|
106
101
|
}
|
|
107
102
|
}, [onChange, required, setIsOpen]);
|
|
103
|
+
const getStringDateValue = (0, react_1.useCallback)(date => {
|
|
104
|
+
if (!date) return '';
|
|
105
|
+
if (mode === 'date') {
|
|
106
|
+
return date.toLocaleDateString(constants_1.DEFAULT_LOCALE);
|
|
107
|
+
}
|
|
108
|
+
return date.toLocaleString(constants_1.DEFAULT_LOCALE, {
|
|
109
|
+
year: 'numeric',
|
|
110
|
+
month: 'numeric',
|
|
111
|
+
day: 'numeric',
|
|
112
|
+
hour: '2-digit',
|
|
113
|
+
minute: '2-digit',
|
|
114
|
+
second: showSeconds ? '2-digit' : undefined
|
|
115
|
+
});
|
|
116
|
+
}, [mode, showSeconds]);
|
|
117
|
+
const valueToCopy = getStringDateValue(valueProp);
|
|
108
118
|
const clearButtonSettings = (0, input_private_1.useClearButton)({
|
|
109
119
|
clearButtonRef,
|
|
110
120
|
showClearButton,
|
|
@@ -115,7 +125,7 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
115
125
|
copyButtonRef,
|
|
116
126
|
showCopyButton,
|
|
117
127
|
size,
|
|
118
|
-
valueToCopy
|
|
128
|
+
valueToCopy
|
|
119
129
|
});
|
|
120
130
|
const calendarIcon = (0, react_1.useMemo)(() => ({
|
|
121
131
|
active: false,
|
|
@@ -136,14 +146,16 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
136
146
|
handleBlur: dateInputBlurHandler,
|
|
137
147
|
mask,
|
|
138
148
|
setInputFocus
|
|
139
|
-
} = (0,
|
|
149
|
+
} = (0, hooks_1.useDateField)({
|
|
140
150
|
inputRef: localRef,
|
|
141
151
|
onChange,
|
|
142
152
|
readonly,
|
|
143
|
-
locale,
|
|
144
|
-
setIsOpen
|
|
153
|
+
locale: constants_1.DEFAULT_LOCALE,
|
|
154
|
+
setIsOpen,
|
|
155
|
+
mode,
|
|
156
|
+
showSeconds
|
|
145
157
|
});
|
|
146
|
-
const setInputFocusFromButtons = (0, react_1.useCallback)(() => setInputFocus(
|
|
158
|
+
const setInputFocusFromButtons = (0, react_1.useCallback)(() => setInputFocus(mode === 'date' ? constants_1.SlotKey.Year : constants_1.SlotKey.Seconds), [mode, setInputFocus]);
|
|
147
159
|
const {
|
|
148
160
|
postfixButtons,
|
|
149
161
|
inputTabIndex,
|
|
@@ -157,43 +169,46 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
157
169
|
readonly,
|
|
158
170
|
submitKeys: ['Enter', 'Space', 'Tab']
|
|
159
171
|
});
|
|
160
|
-
// TODO: do not hardcode locale here
|
|
161
172
|
const handleSelectDate = date => {
|
|
162
173
|
var _a;
|
|
163
|
-
onChange && onChange(date
|
|
174
|
+
onChange && onChange(date);
|
|
164
175
|
(_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
165
176
|
setIsOpen(false);
|
|
177
|
+
if (localRef.current) {
|
|
178
|
+
localRef.current.value = getStringDateValue(date);
|
|
179
|
+
}
|
|
166
180
|
};
|
|
167
181
|
const handleCalendarFocusLeave = () => {
|
|
168
182
|
setInitialTabIndices();
|
|
169
183
|
// TODO: find out why it works not as expected (focus is moved to the next element instead of the focused one)
|
|
170
184
|
// maybe floating-ui causes the problem
|
|
171
185
|
(0, input_private_1.runAfterRerender)(() => {
|
|
172
|
-
setInputFocus(
|
|
186
|
+
setInputFocus(constants_1.SlotKey.Day);
|
|
173
187
|
setIsOpen(false);
|
|
174
188
|
});
|
|
175
189
|
};
|
|
176
|
-
const handleInputKeyDown = (0,
|
|
190
|
+
const handleInputKeyDown = (0, hooks_1.useHandlers)([checkForLeavingFocus, dateInputKeyDownHandler, navigationInputKeyDownHandler]);
|
|
177
191
|
(0, react_1.useEffect)(() => {
|
|
178
192
|
var _a;
|
|
179
193
|
if (open) {
|
|
180
194
|
(_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
181
195
|
}
|
|
182
196
|
}, [open]);
|
|
197
|
+
// TODO input ref - determine whether to update ref based on input/non-input state
|
|
183
198
|
(0, react_1.useEffect)(() => {
|
|
184
|
-
if (localRef.current) {
|
|
185
|
-
localRef.current.value = valueProp;
|
|
199
|
+
if (localRef.current && document.activeElement !== localRef.current) {
|
|
200
|
+
localRef.current.value = getStringDateValue(valueProp);
|
|
186
201
|
}
|
|
187
|
-
}, [valueProp]);
|
|
202
|
+
}, [getStringDateValue, valueProp]);
|
|
188
203
|
const onFocusByKeyboard = (0, react_1.useCallback)(e => {
|
|
189
204
|
setInputFocus();
|
|
190
205
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
|
|
191
206
|
}, [onFocus, setInputFocus]);
|
|
192
|
-
const inputHandlers = (0,
|
|
207
|
+
const inputHandlers = (0, hooks_1.useFocusHandlers)({
|
|
193
208
|
onFocusByClick: onFocus,
|
|
194
209
|
onFocusByKeyboard
|
|
195
210
|
});
|
|
196
|
-
const onBlur = (0,
|
|
211
|
+
const onBlur = (0, hooks_1.useHandlers)([dateInputBlurHandler, inputHandlers.onBlur, onBlurProp]);
|
|
197
212
|
const onClick = (0, react_1.useCallback)(e => {
|
|
198
213
|
dateInputClickHandler();
|
|
199
214
|
if (isOpen) {
|
|
@@ -231,20 +246,17 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
231
246
|
className: styles_module_scss_1.default.calendarWrapper,
|
|
232
247
|
"data-size": size,
|
|
233
248
|
children: (0, jsx_runtime_1.jsx)(calendar_1.Calendar, {
|
|
234
|
-
mode:
|
|
235
|
-
size:
|
|
236
|
-
value: valueProp
|
|
249
|
+
mode: mode,
|
|
250
|
+
size: size,
|
|
251
|
+
value: valueProp,
|
|
252
|
+
showSeconds: showSeconds,
|
|
237
253
|
onChangeValue: handleSelectDate,
|
|
238
254
|
buildCellProps: buildCellProps,
|
|
239
|
-
navigationStartRef:
|
|
240
|
-
if (pickerAutofocus) {
|
|
241
|
-
element === null || element === void 0 ? void 0 : element.focus();
|
|
242
|
-
setPickerAutofocus(false);
|
|
243
|
-
}
|
|
244
|
-
},
|
|
255
|
+
navigationStartRef: navigationStartRef,
|
|
245
256
|
onFocusLeave: handleCalendarFocusLeave,
|
|
246
|
-
locale:
|
|
247
|
-
"data-test-id": 'field-date__calendar'
|
|
257
|
+
locale: constants_1.DEFAULT_LOCALE,
|
|
258
|
+
"data-test-id": 'field-date__calendar',
|
|
259
|
+
fitToContainer: false
|
|
248
260
|
})
|
|
249
261
|
}),
|
|
250
262
|
children: (0, jsx_runtime_1.jsx)(helperComponents_1.FieldContainerPrivate, {
|
|
@@ -22,12 +22,4 @@ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
|
|
|
22
22
|
Object.defineProperty(exports, "__esModule", {
|
|
23
23
|
value: true
|
|
24
24
|
});
|
|
25
|
-
exports
|
|
26
|
-
__exportStar(require("./FieldDate"), exports);
|
|
27
|
-
var utils_1 = require("./utils");
|
|
28
|
-
Object.defineProperty(exports, "parseDate", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
get: function () {
|
|
31
|
-
return utils_1.parseDate;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
25
|
+
__exportStar(require("./FieldDate"), exports);
|
|
@@ -21,5 +21,5 @@ type FieldSecureOwnProps = {
|
|
|
21
21
|
export type FieldSecureProps = WithSupportProps<FieldSecureOwnProps & InputProps & WrapperProps>;
|
|
22
22
|
export declare const FieldSecure: import("react").ForwardRefExoticComponent<{
|
|
23
23
|
'data-test-id'?: string;
|
|
24
|
-
} & import("react").AriaAttributes & FieldSecureOwnProps & Pick<Partial<InputPrivateProps>, "value" | "onChange"> & Pick<InputPrivateProps, "onFocus" | "onBlur" | "id" | "disabled" | "
|
|
24
|
+
} & import("react").AriaAttributes & FieldSecureOwnProps & Pick<Partial<InputPrivateProps>, "value" | "onChange"> & Pick<InputPrivateProps, "onFocus" | "onBlur" | "id" | "disabled" | "name" | "readonly" | "placeholder" | "autoComplete" | "maxLength"> & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
25
25
|
export {};
|
|
@@ -27,9 +27,9 @@ export declare function useSearchInput({ value, onChange, defaultValue, selected
|
|
|
27
27
|
resetSearchOnOptionSelection?: boolean;
|
|
28
28
|
}): {
|
|
29
29
|
inputValue: string;
|
|
30
|
-
setInputValue: (value:
|
|
30
|
+
setInputValue: (value: string) => void;
|
|
31
31
|
prevInputValue: import("react").MutableRefObject<string>;
|
|
32
|
-
onInputValueChange: (value:
|
|
32
|
+
onInputValueChange: (value: string) => void;
|
|
33
33
|
updateInputValue: (selectedItem?: ItemWithId) => void;
|
|
34
34
|
};
|
|
35
35
|
export declare function useHandleDeleteItem(setValue: Handler): (item?: ItemWithId) => (e?: MouseEvent<HTMLButtonElement>) => void;
|
|
@@ -94,7 +94,7 @@ function useSearchInput(_ref3) {
|
|
|
94
94
|
selectedOptionFormatter,
|
|
95
95
|
resetSearchOnOptionSelection = true
|
|
96
96
|
} = _ref3;
|
|
97
|
-
const [inputValue = '',
|
|
97
|
+
const [inputValue = '', setInputValueState] = (0, hooks_1.useValueControl)({
|
|
98
98
|
value,
|
|
99
99
|
onChange,
|
|
100
100
|
defaultValue
|
|
@@ -103,10 +103,14 @@ function useSearchInput(_ref3) {
|
|
|
103
103
|
const updateInputValue = (0, react_1.useCallback)(selectedItem => {
|
|
104
104
|
const newInputValue = selectedOptionFormatter(selectedItem);
|
|
105
105
|
if (resetSearchOnOptionSelection && (inputValue !== newInputValue || prevInputValue.current !== newInputValue)) {
|
|
106
|
-
|
|
106
|
+
setInputValueState(newInputValue);
|
|
107
107
|
prevInputValue.current = newInputValue;
|
|
108
108
|
}
|
|
109
|
-
}, [inputValue, resetSearchOnOptionSelection, selectedOptionFormatter,
|
|
109
|
+
}, [inputValue, resetSearchOnOptionSelection, selectedOptionFormatter, setInputValueState]);
|
|
110
|
+
const setInputValue = (0, react_1.useCallback)(value => {
|
|
111
|
+
const updatedValue = prevInputValue.current && value.includes(prevInputValue.current) ? value.replace(prevInputValue.current, '') : value;
|
|
112
|
+
setInputValueState(updatedValue);
|
|
113
|
+
}, [setInputValueState]);
|
|
110
114
|
return {
|
|
111
115
|
inputValue,
|
|
112
116
|
setInputValue,
|
|
@@ -72,12 +72,8 @@
|
|
|
72
72
|
color:var(--sys-neutral-text-light, #8b8e9b);
|
|
73
73
|
}
|
|
74
74
|
.container[data-size=s][data-variant=single-line-container] .displayValue{
|
|
75
|
-
width:calc(100% - (
|
|
76
|
-
|
|
77
|
-
));
|
|
78
|
-
margin-right:calc(
|
|
79
|
-
var(--space-fields-single-line-container-s-right, 6px) + var(--space-fields-single-line-container-s-gap, 4px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-xs, 16px) * 2)
|
|
80
|
-
);
|
|
75
|
+
width:calc(100% - (var(--space-fields-single-line-container-s-right, 6px) + var(--space-fields-single-line-container-s-gap, 4px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-xs, 16px) * 2)));
|
|
76
|
+
margin-right:calc(var(--space-fields-single-line-container-s-right, 6px) + var(--space-fields-single-line-container-s-gap, 4px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-xs, 16px) * 2));
|
|
81
77
|
padding-left:var(--space-fields-single-line-container-s-left, 6px);
|
|
82
78
|
border-radius:var(--radius-fields-s, 12px);
|
|
83
79
|
}
|
|
@@ -95,12 +91,8 @@
|
|
|
95
91
|
color:var(--sys-neutral-text-light, #8b8e9b);
|
|
96
92
|
}
|
|
97
93
|
.container[data-size=m][data-variant=single-line-container] .displayValue{
|
|
98
|
-
width:calc(100% - (
|
|
99
|
-
|
|
100
|
-
));
|
|
101
|
-
margin-right:calc(
|
|
102
|
-
var(--space-fields-single-line-container-m-right, 8px) + var(--space-fields-single-line-container-m-gap, 4px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-s, 24px) * 2)
|
|
103
|
-
);
|
|
94
|
+
width:calc(100% - (var(--space-fields-single-line-container-m-right, 8px) + var(--space-fields-single-line-container-m-gap, 4px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-s, 24px) * 2)));
|
|
95
|
+
margin-right:calc(var(--space-fields-single-line-container-m-right, 8px) + var(--space-fields-single-line-container-m-gap, 4px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-s, 24px) * 2));
|
|
104
96
|
padding-left:var(--space-fields-single-line-container-m-left, 8px);
|
|
105
97
|
border-radius:var(--radius-fields-m, 14px);
|
|
106
98
|
}
|
|
@@ -118,12 +110,8 @@
|
|
|
118
110
|
color:var(--sys-neutral-text-light, #8b8e9b);
|
|
119
111
|
}
|
|
120
112
|
.container[data-size=l][data-variant=single-line-container] .displayValue{
|
|
121
|
-
width:calc(100% - (
|
|
122
|
-
|
|
123
|
-
));
|
|
124
|
-
margin-right:calc(
|
|
125
|
-
var(--space-fields-single-line-container-l-right, 10px) + var(--space-fields-single-line-container-l-gap, 8px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-s, 24px) * 2)
|
|
126
|
-
);
|
|
113
|
+
width:calc(100% - (var(--space-fields-single-line-container-l-right, 10px) + var(--space-fields-single-line-container-l-gap, 8px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-s, 24px) * 2)));
|
|
114
|
+
margin-right:calc(var(--space-fields-single-line-container-l-right, 10px) + var(--space-fields-single-line-container-l-gap, 8px) + calc(var(var(--space-fields-postfix-gap, 4px)) + var(--size-icon-container-s, 24px) * 2));
|
|
127
115
|
padding-left:var(--space-fields-single-line-container-l-left, 10px);
|
|
128
116
|
border-radius:var(--radius-fields-l, 16px);
|
|
129
117
|
}
|
|
@@ -23,5 +23,5 @@ type FieldSliderOwnProps = {
|
|
|
23
23
|
export type FieldSliderProps = WithSupportProps<FieldSliderOwnProps & SliderProps & WrapperProps>;
|
|
24
24
|
export declare const FieldSlider: import("react").ForwardRefExoticComponent<{
|
|
25
25
|
'data-test-id'?: string;
|
|
26
|
-
} & import("react").AriaAttributes & FieldSliderOwnProps & Pick<InputPrivateProps, "onFocus" | "onBlur" | "id" | "disabled" | "
|
|
26
|
+
} & import("react").AriaAttributes & FieldSliderOwnProps & Pick<InputPrivateProps, "onFocus" | "onBlur" | "id" | "disabled" | "name" | "readonly"> & Pick<SliderComponentProps, "value" | "onChange" | "range" | "tipFormatter"> & Required<Pick<SliderComponentProps, "max" | "min" | "step" | "marks">> & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
27
27
|
export {};
|
|
@@ -27,5 +27,5 @@ type FieldTextOwnProps = {
|
|
|
27
27
|
export type FieldTextProps = WithSupportProps<FieldTextOwnProps & InputProps & WrapperProps>;
|
|
28
28
|
export declare const FieldText: import("react").ForwardRefExoticComponent<{
|
|
29
29
|
'data-test-id'?: string;
|
|
30
|
-
} & import("react").AriaAttributes & FieldTextOwnProps & Pick<Partial<InputPrivateProps>, "value" | "onChange"> & Pick<InputPrivateProps, "onFocus" | "onBlur" | "id" | "disabled" | "
|
|
30
|
+
} & import("react").AriaAttributes & FieldTextOwnProps & Pick<Partial<InputPrivateProps>, "value" | "onChange"> & Pick<InputPrivateProps, "onFocus" | "onBlur" | "id" | "disabled" | "name" | "readonly" | "placeholder" | "autoComplete" | "maxLength"> & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
31
31
|
export {};
|
|
@@ -26,5 +26,5 @@ type FieldTextAreaOwnProps = {
|
|
|
26
26
|
export type FieldTextAreaProps = WithSupportProps<FieldTextAreaOwnProps & InputProps & WrapperProps>;
|
|
27
27
|
export declare const FieldTextArea: import("react").ForwardRefExoticComponent<{
|
|
28
28
|
'data-test-id'?: string;
|
|
29
|
-
} & import("react").AriaAttributes & FieldTextAreaOwnProps & Pick<Partial<TextAreaProps>, "value"> & Pick<TextAreaProps, "onFocus" | "onBlur" | "id" | "disabled" | "
|
|
29
|
+
} & import("react").AriaAttributes & FieldTextAreaOwnProps & Pick<Partial<TextAreaProps>, "value"> & Pick<TextAreaProps, "onFocus" | "onBlur" | "id" | "disabled" | "name" | "readonly" | "placeholder" | "maxLength"> & WrapperProps & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
30
30
|
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TimePickerProps } from '@snack-uikit/calendar';
|
|
2
|
+
import { InputPrivateProps } from '@snack-uikit/input-private';
|
|
3
|
+
import { WithSupportProps } from '@snack-uikit/utils';
|
|
4
|
+
import { FieldDecoratorProps } from '../FieldDecorator';
|
|
5
|
+
type InputProps = Pick<InputPrivateProps, 'id' | 'name' | 'disabled' | 'readonly' | 'onFocus' | 'onBlur'>;
|
|
6
|
+
type WrapperProps = Pick<FieldDecoratorProps, 'className' | 'label' | 'labelTooltip' | 'required' | 'caption' | 'hint' | 'showHintIcon' | 'size' | 'validationState' | 'labelTooltipPlacement' | 'error'>;
|
|
7
|
+
type FieldTimeOwnProps = {
|
|
8
|
+
/** Открыт time-picker */
|
|
9
|
+
open?: boolean;
|
|
10
|
+
/** Колбек открытия пикера */
|
|
11
|
+
onOpenChange?(value: boolean): void;
|
|
12
|
+
/** Значение поля */
|
|
13
|
+
value?: TimePickerProps['value'];
|
|
14
|
+
/** Колбек смены значения */
|
|
15
|
+
onChange?: TimePickerProps['onChangeValue'];
|
|
16
|
+
/** Отображение кнопки копирования */
|
|
17
|
+
showCopyButton?: boolean;
|
|
18
|
+
/** Показывать ли секунды */
|
|
19
|
+
showSeconds?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Отображение кнопки Очистки поля
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
showClearButton?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
|
|
27
|
+
export declare const FieldTime: import("react").ForwardRefExoticComponent<{
|
|
28
|
+
'data-test-id'?: string;
|
|
29
|
+
} & import("react").AriaAttributes & FieldTimeOwnProps & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
30
|
+
export {};
|