@snack-uikit/fields 0.55.1-preview-ff470bb3.0 → 0.55.1
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 +11 -0
- package/README.md +4 -5
- package/dist/cjs/components/FieldSelect/FieldSelectSingle.js +2 -1
- package/dist/cjs/components/FieldTime/FieldTime.d.ts +2 -22
- package/dist/cjs/components/FieldTime/FieldTime.js +3 -5
- package/dist/esm/components/FieldSelect/FieldSelectSingle.js +2 -1
- package/dist/esm/components/FieldTime/FieldTime.d.ts +2 -22
- package/dist/esm/components/FieldTime/FieldTime.js +2 -2
- package/package.json +3 -3
- package/src/components/FieldSelect/FieldSelectSingle.tsx +2 -1
- package/src/components/FieldTime/FieldTime.tsx +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 0.55.1 (2026-05-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **UIIAAS-1866:** reset FieldSelectSingle search on clear ([027c156](https://github.com/cloud-ru-tech/snack-uikit/commit/027c15609e65a814291662dcfefaf997a09d36ca))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# 0.55.0 (2026-04-21)
|
|
7
18
|
|
|
8
19
|
|
package/README.md
CHANGED
|
@@ -732,8 +732,8 @@ FieldStepper в основном предназначен для работы с
|
|
|
732
732
|
| selectedOptionFormatter | `SelectedOptionFormatter` | - | |
|
|
733
733
|
| scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
|
|
734
734
|
| virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
|
|
735
|
-
| scrollRef | `
|
|
736
|
-
| scrollContainerRef | `
|
|
735
|
+
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
736
|
+
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
737
737
|
| untouchableScrollbars | `boolean` | - | Отключает возможность взаимодействовать со скролбарами мышью. |
|
|
738
738
|
| onScroll | `(event?: Event) => void` | - | Колбек на скролл прокручиваемого списка |
|
|
739
739
|
| dataFiltered | `boolean` | - | |
|
|
@@ -938,7 +938,6 @@ FieldStepper в основном предназначен для работы с
|
|
|
938
938
|
| onCopyButtonClick | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
939
939
|
| showSeconds | `boolean` | true | Показывать ли секунды |
|
|
940
940
|
| showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
|
|
941
|
-
| footerMode | enum TimePickerFooterMode: `"current-and-apply"`, `"apply-only"` | current-and-apply | Режим футера: кнопка «Текущее время» и компактная «Применить», либо одна широкая «Применить» с подписью. |
|
|
942
941
|
| id | `string` | - | Значение html-атрибута id |
|
|
943
942
|
| name | `string` | - | Значение html-атрибута name |
|
|
944
943
|
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
@@ -963,8 +962,8 @@ FieldStepper в основном предназначен для работы с
|
|
|
963
962
|
### Props
|
|
964
963
|
| name | type | default value | description |
|
|
965
964
|
|------|------|---------------|-------------|
|
|
966
|
-
| __@metadata@
|
|
967
|
-
| __@hasInstance@
|
|
965
|
+
| __@metadata@1004* | `DecoratorMetadataObject` | - | |
|
|
966
|
+
| __@hasInstance@1002* | `(value: any) => boolean` | - | Determines whether the given value inherits from this function if this function was used as a constructor function. A constructor function can control which objects are recognized as its instances by 'instanceof' by overriding this method. |
|
|
968
967
|
| name* | `string` | - | Returns the name of the function. Function names are read-only and can not be changed. |
|
|
969
968
|
| caller* | `Function` | - | |
|
|
970
969
|
| arguments* | `any` | - | |
|
|
@@ -135,11 +135,12 @@ exports.FieldSelectSingle = (0, react_1.forwardRef)((props, ref) => {
|
|
|
135
135
|
const onClear = (0, react_1.useCallback)(() => {
|
|
136
136
|
var _a;
|
|
137
137
|
setValue(undefined);
|
|
138
|
+
setInputValue('');
|
|
138
139
|
(_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
139
140
|
if (required) {
|
|
140
141
|
setOpen(true);
|
|
141
142
|
}
|
|
142
|
-
}, [required, setOpen, setValue]);
|
|
143
|
+
}, [required, setInputValue, setOpen, setValue]);
|
|
143
144
|
const {
|
|
144
145
|
ArrowIcon,
|
|
145
146
|
arrowIconSize
|
|
@@ -24,29 +24,9 @@ type FieldTimeOwnProps = {
|
|
|
24
24
|
* @default true
|
|
25
25
|
*/
|
|
26
26
|
showClearButton?: boolean;
|
|
27
|
-
}
|
|
27
|
+
};
|
|
28
28
|
export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
|
|
29
29
|
export declare const FieldTime: import("react").ForwardRefExoticComponent<{
|
|
30
30
|
'data-test-id'?: string;
|
|
31
|
-
} & import("react").AriaAttributes &
|
|
32
|
-
/** Открыт time-picker */
|
|
33
|
-
open?: boolean;
|
|
34
|
-
/** Колбек открытия пикера */
|
|
35
|
-
onOpenChange?(value: boolean): void;
|
|
36
|
-
/** Значение поля */
|
|
37
|
-
value?: TimePickerProps["value"];
|
|
38
|
-
/** Колбек смены значения */
|
|
39
|
-
onChange?: TimePickerProps["onChangeValue"];
|
|
40
|
-
/** Отображение кнопки копирования */
|
|
41
|
-
showCopyButton?: boolean;
|
|
42
|
-
/** Колбек клика по кнопке Копировать для поля */
|
|
43
|
-
onCopyButtonClick?(): void;
|
|
44
|
-
/** Показывать ли секунды */
|
|
45
|
-
showSeconds?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Отображение кнопки Очистки поля
|
|
48
|
-
* @default true
|
|
49
|
-
*/
|
|
50
|
-
showClearButton?: boolean;
|
|
51
|
-
} & Pick<TimePickerProps, "footerMode"> & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
31
|
+
} & import("react").AriaAttributes & FieldTimeOwnProps & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
52
32
|
export {};
|
|
@@ -78,10 +78,9 @@ exports.FieldTime = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
78
78
|
validationState = constants_1.VALIDATION_STATE.Default,
|
|
79
79
|
error,
|
|
80
80
|
onCopyButtonClick,
|
|
81
|
-
autoFocus
|
|
82
|
-
footerMode
|
|
81
|
+
autoFocus
|
|
83
82
|
} = _a,
|
|
84
|
-
rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus"
|
|
83
|
+
rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus"]);
|
|
85
84
|
const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
|
|
86
85
|
const localRef = (0, react_1.useRef)(null);
|
|
87
86
|
const clearButtonRef = (0, react_1.useRef)(null);
|
|
@@ -265,8 +264,7 @@ exports.FieldTime = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
265
264
|
onFocusLeave: handleCalendarFocusLeave,
|
|
266
265
|
"data-test-id": 'field-time__timepicker',
|
|
267
266
|
fitToContainer: false,
|
|
268
|
-
showSeconds: showSeconds
|
|
269
|
-
footerMode: footerMode
|
|
267
|
+
showSeconds: showSeconds
|
|
270
268
|
}),
|
|
271
269
|
children: (0, jsx_runtime_1.jsx)(helperComponents_1.FieldContainerPrivate, {
|
|
272
270
|
className: styles_module_scss_1.default.container,
|
|
@@ -61,11 +61,12 @@ export const FieldSelectSingle = forwardRef((props, ref) => {
|
|
|
61
61
|
const onClear = useCallback(() => {
|
|
62
62
|
var _a;
|
|
63
63
|
setValue(undefined);
|
|
64
|
+
setInputValue('');
|
|
64
65
|
(_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
65
66
|
if (required) {
|
|
66
67
|
setOpen(true);
|
|
67
68
|
}
|
|
68
|
-
}, [required, setOpen, setValue]);
|
|
69
|
+
}, [required, setInputValue, setOpen, setValue]);
|
|
69
70
|
const { ArrowIcon, arrowIconSize } = getArrowIcon({ size, open });
|
|
70
71
|
const { postfixButtons, inputKeyDownNavigationHandler, buttonsRefs } = useButtons({
|
|
71
72
|
readonly,
|
|
@@ -24,29 +24,9 @@ type FieldTimeOwnProps = {
|
|
|
24
24
|
* @default true
|
|
25
25
|
*/
|
|
26
26
|
showClearButton?: boolean;
|
|
27
|
-
}
|
|
27
|
+
};
|
|
28
28
|
export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
|
|
29
29
|
export declare const FieldTime: import("react").ForwardRefExoticComponent<{
|
|
30
30
|
'data-test-id'?: string;
|
|
31
|
-
} & import("react").AriaAttributes &
|
|
32
|
-
/** Открыт time-picker */
|
|
33
|
-
open?: boolean;
|
|
34
|
-
/** Колбек открытия пикера */
|
|
35
|
-
onOpenChange?(value: boolean): void;
|
|
36
|
-
/** Значение поля */
|
|
37
|
-
value?: TimePickerProps["value"];
|
|
38
|
-
/** Колбек смены значения */
|
|
39
|
-
onChange?: TimePickerProps["onChangeValue"];
|
|
40
|
-
/** Отображение кнопки копирования */
|
|
41
|
-
showCopyButton?: boolean;
|
|
42
|
-
/** Колбек клика по кнопке Копировать для поля */
|
|
43
|
-
onCopyButtonClick?(): void;
|
|
44
|
-
/** Показывать ли секунды */
|
|
45
|
-
showSeconds?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Отображение кнопки Очистки поля
|
|
48
|
-
* @default true
|
|
49
|
-
*/
|
|
50
|
-
showClearButton?: boolean;
|
|
51
|
-
} & Pick<TimePickerProps, "footerMode"> & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
31
|
+
} & import("react").AriaAttributes & FieldTimeOwnProps & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
52
32
|
export {};
|
|
@@ -40,7 +40,7 @@ const getStringTimeValue = (time, { showSeconds, locale }) => {
|
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
42
|
export const FieldTime = forwardRef((_a, ref) => {
|
|
43
|
-
var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onOpenChange, onChange, onFocus, onBlur: onBlurProp, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, showSeconds = true, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, onCopyButtonClick, autoFocus
|
|
43
|
+
var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onOpenChange, onChange, onFocus, onBlur: onBlurProp, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, showSeconds = true, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, onCopyButtonClick, autoFocus } = _a, rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus"]);
|
|
44
44
|
const [isOpen, setIsOpen] = useUncontrolledProp(open, false, onOpenChange);
|
|
45
45
|
const localRef = useRef(null);
|
|
46
46
|
const clearButtonRef = useRef(null);
|
|
@@ -157,5 +157,5 @@ export const FieldTime = forwardRef((_a, ref) => {
|
|
|
157
157
|
: {
|
|
158
158
|
open: showDropList,
|
|
159
159
|
onOpenChange: setIsOpen,
|
|
160
|
-
}), { content: _jsx(TimePicker, { size: size, value: valueProp, onChangeValue: handleSelectTime, navigationStartRef: navigationStartRef, onFocusLeave: handleCalendarFocusLeave, "data-test-id": 'field-time__timepicker', fitToContainer: false, showSeconds: showSeconds
|
|
160
|
+
}), { content: _jsx(TimePicker, { size: size, value: valueProp, onChangeValue: handleSelectTime, navigationStartRef: navigationStartRef, onFocusLeave: handleCalendarFocusLeave, "data-test-id": 'field-time__timepicker', fitToContainer: false, showSeconds: showSeconds }), children: _jsx(FieldContainerPrivate, { className: styles.container, size: size, validationState: fieldValidationState, disabled: disabled, readonly: readonly, variant: CONTAINER_VARIANT.SingleLine, focused: showDropList, inputRef: localRef, postfix: postfixButtons, children: _jsx(InputPrivate, { ref: mergeRefs(ref, localRef), "data-size": size, value: value || '', placeholder: mask, onChange: handleChange, onFocus: inputHandlers.onFocus, onMouseDown: inputHandlers.onMouseDown, onBlur: onBlur, onKeyDown: handleInputKeyDown, onClick: onClick, disabled: disabled, readonly: readonly, tabIndex: inputTabIndex, type: 'text', inputMode: 'numeric', id: id, name: name, autoFocus: autoFocus, "data-test-id": 'field-time__input' }) }) })) })));
|
|
161
161
|
});
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Fields",
|
|
7
|
-
"version": "0.55.1
|
|
7
|
+
"version": "0.55.1",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"scripts": {},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@snack-uikit/button": "0.19.17",
|
|
40
|
-
"@snack-uikit/calendar": "0.13.
|
|
40
|
+
"@snack-uikit/calendar": "0.13.19",
|
|
41
41
|
"@snack-uikit/color-picker": "0.3.55",
|
|
42
42
|
"@snack-uikit/divider": "3.2.11",
|
|
43
43
|
"@snack-uikit/dropdown": "0.5.5",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"@snack-uikit/locale": "*"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "c1765c936f2bfa4730155604d8b6de68fbea9f19"
|
|
70
70
|
}
|
|
@@ -119,11 +119,12 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
|
|
|
119
119
|
|
|
120
120
|
const onClear = useCallback(() => {
|
|
121
121
|
setValue(undefined);
|
|
122
|
+
setInputValue('');
|
|
122
123
|
localRef.current?.focus();
|
|
123
124
|
if (required) {
|
|
124
125
|
setOpen(true);
|
|
125
126
|
}
|
|
126
|
-
}, [required, setOpen, setValue]);
|
|
127
|
+
}, [required, setInputValue, setOpen, setValue]);
|
|
127
128
|
|
|
128
129
|
const { ArrowIcon, arrowIconSize } = getArrowIcon({ size, open });
|
|
129
130
|
|
|
@@ -61,7 +61,7 @@ type FieldTimeOwnProps = {
|
|
|
61
61
|
* @default true
|
|
62
62
|
*/
|
|
63
63
|
showClearButton?: boolean;
|
|
64
|
-
}
|
|
64
|
+
};
|
|
65
65
|
|
|
66
66
|
export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
|
|
67
67
|
|
|
@@ -114,7 +114,6 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
|
|
|
114
114
|
error,
|
|
115
115
|
onCopyButtonClick,
|
|
116
116
|
autoFocus,
|
|
117
|
-
footerMode,
|
|
118
117
|
...rest
|
|
119
118
|
},
|
|
120
119
|
ref,
|
|
@@ -314,7 +313,6 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
|
|
|
314
313
|
data-test-id='field-time__timepicker'
|
|
315
314
|
fitToContainer={false}
|
|
316
315
|
showSeconds={showSeconds}
|
|
317
|
-
footerMode={footerMode}
|
|
318
316
|
/>
|
|
319
317
|
}
|
|
320
318
|
>
|