@snack-uikit/fields 0.40.1 → 0.40.2-preview-dc056d73.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/README.md +12 -12
- package/dist/cjs/components/FieldSelect/FieldSelectSingle.d.ts +2 -2
- package/dist/cjs/components/FieldSelect/FieldSelectSingle.js +3 -1
- package/dist/cjs/components/FieldSelect/types.d.ts +1 -1
- package/dist/esm/components/FieldSelect/FieldSelectSingle.d.ts +2 -2
- package/dist/esm/components/FieldSelect/FieldSelectSingle.js +3 -2
- package/dist/esm/components/FieldSelect/types.d.ts +1 -1
- package/package.json +2 -2
- package/src/components/FieldSelect/FieldSelectSingle.tsx +2 -0
- package/src/components/FieldSelect/types.ts +1 -1
package/README.md
CHANGED
|
@@ -343,17 +343,23 @@ FieldStepper в основном предназначен для работы с
|
|
|
343
343
|
| onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
|
|
344
344
|
| value | `ItemId \| ItemId[]` | - | Controlled состояние |
|
|
345
345
|
| defaultValue | `ItemId \| ItemId[]` | - | Начальное состояние |
|
|
346
|
+
| pinTop | `OptionProps[]` | - | |
|
|
347
|
+
| pinBottom | `OptionProps[]` | - | |
|
|
348
|
+
| searchable | `boolean` | - | |
|
|
346
349
|
| showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
|
|
347
|
-
| showClearButton | `boolean` | true | Отображение кнопки очистки поля |
|
|
348
|
-
| open | `boolean` | - | |
|
|
349
|
-
| onOpenChange | `(open: boolean) => void` | - | |
|
|
350
350
|
| onCopyButtonClick | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
351
|
+
| showClearButton | `boolean` | true | Отображение кнопки очистки поля |
|
|
351
352
|
| prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
|
|
352
|
-
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | - | |
|
|
353
|
-
| pinTop | `OptionProps[]` | - | |
|
|
354
|
-
| pinBottom | `OptionProps[]` | - | |
|
|
355
353
|
| footer | `ReactNode` | - | |
|
|
354
|
+
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | - | |
|
|
356
355
|
| search | `SearchState` | - | |
|
|
356
|
+
| autocomplete | `boolean` | - | |
|
|
357
|
+
| addOptionByEnter | `boolean` | - | |
|
|
358
|
+
| open | `boolean` | - | |
|
|
359
|
+
| enableFuzzySearch | `boolean` | - | Включить нечеткий поиск |
|
|
360
|
+
| resetSearchOnOptionSelection | `boolean` | - | Поведение строки поиска при выборе опции из списка |
|
|
361
|
+
| onOpenChange | `(open: boolean) => void` | - | |
|
|
362
|
+
| selectedOptionFormatter | `SelectedOptionFormatter` | - | |
|
|
357
363
|
| scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
|
|
358
364
|
| virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
|
|
359
365
|
| untouchableScrollbars | `boolean` | - | Отключает возможность взаимодействовать со скролбарами мышью. |
|
|
@@ -362,16 +368,10 @@ FieldStepper в основном предназначен для работы с
|
|
|
362
368
|
| noDataState | `EmptyStateProps` | - | Экран при отстутствии данных |
|
|
363
369
|
| noResultsState | `EmptyStateProps` | - | Экран при отстутствии результатов поиска или фильтров |
|
|
364
370
|
| errorDataState | `EmptyStateProps` | - | Экран при ошибке запроса |
|
|
365
|
-
| searchable | `boolean` | - | |
|
|
366
|
-
| autocomplete | `boolean` | - | |
|
|
367
|
-
| addOptionByEnter | `boolean` | - | |
|
|
368
|
-
| enableFuzzySearch | `boolean` | - | Включить нечеткий поиск |
|
|
369
|
-
| selectedOptionFormatter | `SelectedOptionFormatter` | - | |
|
|
370
371
|
| selection | "single" \| "multiple" | - | |
|
|
371
372
|
| ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
|
|
372
373
|
| key | `Key` | - | |
|
|
373
374
|
| removeByBackspace | `boolean` | - | |
|
|
374
|
-
| resetSearchOnOptionSelection | `boolean` | - | Поведение строки поиска при выборе опции из списка |
|
|
375
375
|
## FieldSlider
|
|
376
376
|
### Props
|
|
377
377
|
| name | type | default value | description |
|
|
@@ -4,7 +4,7 @@ export declare const FieldSelectSingle: import("react").ForwardRefExoticComponen
|
|
|
4
4
|
loading?: boolean;
|
|
5
5
|
prefix?: import("react").ReactNode;
|
|
6
6
|
postfix?: import("react").ReactNode;
|
|
7
|
-
} & Omit<import("@snack-uikit/list").SelectionSingleState, "mode"> &
|
|
7
|
+
} & Omit<import("@snack-uikit/list").SelectionSingleState, "mode"> & {
|
|
8
8
|
'data-test-id'?: string;
|
|
9
9
|
} & import("react").AriaAttributes & {
|
|
10
10
|
options: import("./types").OptionProps[];
|
|
@@ -26,4 +26,4 @@ export declare const FieldSelectSingle: import("react").ForwardRefExoticComponen
|
|
|
26
26
|
resetSearchOnOptionSelection?: boolean;
|
|
27
27
|
onOpenChange?(open: boolean): void;
|
|
28
28
|
selectedOptionFormatter?: SelectedOptionFormatter;
|
|
29
|
-
} & Pick<import("@snack-uikit/list").DroplistProps, "scrollToSelectedItem" | "virtualized" | "untouchableScrollbars" | "dataFiltered" | "dataError" | "noDataState" | "noResultsState" | "errorDataState"
|
|
29
|
+
} & Pick<import("@snack-uikit/list").DroplistProps, "scrollToSelectedItem" | "virtualized" | "untouchableScrollbars" | "dataFiltered" | "dataError" | "noDataState" | "noResultsState" | "errorDataState"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -65,9 +65,10 @@ exports.FieldSelectSingle = (0, react_1.forwardRef)((props, ref) => {
|
|
|
65
65
|
onOpenChange,
|
|
66
66
|
selectedOptionFormatter = defaultSelectedOptionFormatter,
|
|
67
67
|
enableFuzzySearch = true,
|
|
68
|
+
resetSearchOnOptionSelection = true,
|
|
68
69
|
onCopyButtonClick
|
|
69
70
|
} = props,
|
|
70
|
-
rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showCopyButton", "showClearButton", "onKeyDown", "required", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "addOptionByEnter", "untouchableScrollbars", "open", "onOpenChange", "selectedOptionFormatter", "enableFuzzySearch", "onCopyButtonClick"]);
|
|
71
|
+
rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showCopyButton", "showClearButton", "onKeyDown", "required", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "addOptionByEnter", "untouchableScrollbars", "open", "onOpenChange", "selectedOptionFormatter", "enableFuzzySearch", "resetSearchOnOptionSelection", "onCopyButtonClick"]);
|
|
71
72
|
const localRef = (0, react_1.useRef)(null);
|
|
72
73
|
const [open = false, setOpen] = (0, hooks_1.useValueControl)({
|
|
73
74
|
value: openProp,
|
|
@@ -94,6 +95,7 @@ exports.FieldSelectSingle = (0, react_1.forwardRef)((props, ref) => {
|
|
|
94
95
|
updateInputValue
|
|
95
96
|
} = (0, hooks_2.useSearchInput)(Object.assign(Object.assign({}, search), {
|
|
96
97
|
defaultValue: selectedOptionFormatter(selectedItem),
|
|
98
|
+
resetSearchOnOptionSelection,
|
|
97
99
|
selectedOptionFormatter
|
|
98
100
|
}));
|
|
99
101
|
const prevSelectedItem = (0, react_1.useRef)(selectedItem);
|
|
@@ -73,7 +73,7 @@ type FiledSelectCommonProps = WithSupportProps<{
|
|
|
73
73
|
onOpenChange?(open: boolean): void;
|
|
74
74
|
selectedOptionFormatter?: SelectedOptionFormatter;
|
|
75
75
|
}> & Pick<DroplistProps, 'dataError' | 'noDataState' | 'noResultsState' | 'errorDataState' | 'dataFiltered' | 'untouchableScrollbars' | 'scrollToSelectedItem' | 'virtualized'>;
|
|
76
|
-
export type FieldSelectSingleProps = FieldSelectPrivateProps & Omit<SelectionSingleState, 'mode'> & WrapperProps &
|
|
76
|
+
export type FieldSelectSingleProps = FieldSelectPrivateProps & Omit<SelectionSingleState, 'mode'> & WrapperProps & FiledSelectCommonProps;
|
|
77
77
|
export type FieldSelectMultipleProps = FieldSelectPrivateProps & {
|
|
78
78
|
removeByBackspace?: boolean;
|
|
79
79
|
} & Omit<SelectionMultipleState, 'mode'> & Omit<FiledSelectCommonProps, 'showCopyButton' | 'onCopyButtonClick'>;
|
|
@@ -4,7 +4,7 @@ export declare const FieldSelectSingle: import("react").ForwardRefExoticComponen
|
|
|
4
4
|
loading?: boolean;
|
|
5
5
|
prefix?: import("react").ReactNode;
|
|
6
6
|
postfix?: import("react").ReactNode;
|
|
7
|
-
} & Omit<import("@snack-uikit/list").SelectionSingleState, "mode"> &
|
|
7
|
+
} & Omit<import("@snack-uikit/list").SelectionSingleState, "mode"> & {
|
|
8
8
|
'data-test-id'?: string;
|
|
9
9
|
} & import("react").AriaAttributes & {
|
|
10
10
|
options: import("./types").OptionProps[];
|
|
@@ -26,4 +26,4 @@ export declare const FieldSelectSingle: import("react").ForwardRefExoticComponen
|
|
|
26
26
|
resetSearchOnOptionSelection?: boolean;
|
|
27
27
|
onOpenChange?(open: boolean): void;
|
|
28
28
|
selectedOptionFormatter?: SelectedOptionFormatter;
|
|
29
|
-
} & Pick<import("@snack-uikit/list").DroplistProps, "scrollToSelectedItem" | "virtualized" | "untouchableScrollbars" | "dataFiltered" | "dataError" | "noDataState" | "noResultsState" | "errorDataState"
|
|
29
|
+
} & Pick<import("@snack-uikit/list").DroplistProps, "scrollToSelectedItem" | "virtualized" | "untouchableScrollbars" | "dataFiltered" | "dataError" | "noDataState" | "noResultsState" | "errorDataState"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -29,7 +29,7 @@ const defaultSelectedOptionFormatter = item =>
|
|
|
29
29
|
// @ts-expect-error
|
|
30
30
|
(item === null || item === void 0 ? void 0 : item.content.option) || '';
|
|
31
31
|
export const FieldSelectSingle = forwardRef((props, ref) => {
|
|
32
|
-
const { id, name, placeholder, size = 's', options, value: valueProp, defaultValue, onChange: onChangeProp, disabled = false, readonly = false, searchable = true, showCopyButton = true, showClearButton = true, onKeyDown: onInputKeyDownProp, required = false, validationState = 'default', search, autocomplete = false, prefixIcon, prefix, postfix, addOptionByEnter = false, untouchableScrollbars = false, open: openProp, onOpenChange, selectedOptionFormatter = defaultSelectedOptionFormatter, enableFuzzySearch = true, onCopyButtonClick } = props, rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showCopyButton", "showClearButton", "onKeyDown", "required", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "addOptionByEnter", "untouchableScrollbars", "open", "onOpenChange", "selectedOptionFormatter", "enableFuzzySearch", "onCopyButtonClick"]);
|
|
32
|
+
const { id, name, placeholder, size = 's', options, value: valueProp, defaultValue, onChange: onChangeProp, disabled = false, readonly = false, searchable = true, showCopyButton = true, showClearButton = true, onKeyDown: onInputKeyDownProp, required = false, validationState = 'default', search, autocomplete = false, prefixIcon, prefix, postfix, addOptionByEnter = false, untouchableScrollbars = false, open: openProp, onOpenChange, selectedOptionFormatter = defaultSelectedOptionFormatter, enableFuzzySearch = true, resetSearchOnOptionSelection = true, onCopyButtonClick } = props, rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showCopyButton", "showClearButton", "onKeyDown", "required", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "addOptionByEnter", "untouchableScrollbars", "open", "onOpenChange", "selectedOptionFormatter", "enableFuzzySearch", "resetSearchOnOptionSelection", "onCopyButtonClick"]);
|
|
33
33
|
const localRef = useRef(null);
|
|
34
34
|
const [open = false, setOpen] = useValueControl({ value: openProp, onChange: onOpenChange });
|
|
35
35
|
const [value, setValue] = useValueControl({
|
|
@@ -38,7 +38,8 @@ export const FieldSelectSingle = forwardRef((props, ref) => {
|
|
|
38
38
|
onChange: onChangeProp,
|
|
39
39
|
});
|
|
40
40
|
const [{ selectedItem, items = [] }, setItems] = useState(() => updateItems({ options, value, currentItems: [], selectedItem: undefined }));
|
|
41
|
-
const { inputValue, setInputValue, prevInputValue, updateInputValue } = useSearchInput(Object.assign(Object.assign({}, search), { defaultValue: selectedOptionFormatter(selectedItem),
|
|
41
|
+
const { inputValue, setInputValue, prevInputValue, updateInputValue } = useSearchInput(Object.assign(Object.assign({}, search), { defaultValue: selectedOptionFormatter(selectedItem), resetSearchOnOptionSelection,
|
|
42
|
+
selectedOptionFormatter }));
|
|
42
43
|
const prevSelectedItem = useRef(selectedItem);
|
|
43
44
|
const prefixSettings = usePrefix({ prefix, disabled });
|
|
44
45
|
const postfixSettings = usePostfix({ postfix, disabled });
|
|
@@ -73,7 +73,7 @@ type FiledSelectCommonProps = WithSupportProps<{
|
|
|
73
73
|
onOpenChange?(open: boolean): void;
|
|
74
74
|
selectedOptionFormatter?: SelectedOptionFormatter;
|
|
75
75
|
}> & Pick<DroplistProps, 'dataError' | 'noDataState' | 'noResultsState' | 'errorDataState' | 'dataFiltered' | 'untouchableScrollbars' | 'scrollToSelectedItem' | 'virtualized'>;
|
|
76
|
-
export type FieldSelectSingleProps = FieldSelectPrivateProps & Omit<SelectionSingleState, 'mode'> & WrapperProps &
|
|
76
|
+
export type FieldSelectSingleProps = FieldSelectPrivateProps & Omit<SelectionSingleState, 'mode'> & WrapperProps & FiledSelectCommonProps;
|
|
77
77
|
export type FieldSelectMultipleProps = FieldSelectPrivateProps & {
|
|
78
78
|
removeByBackspace?: boolean;
|
|
79
79
|
} & Omit<SelectionMultipleState, 'mode'> & Omit<FiledSelectCommonProps, 'showCopyButton' | 'onCopyButtonClick'>;
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Fields",
|
|
7
|
-
"version": "0.40.
|
|
7
|
+
"version": "0.40.2-preview-dc056d73.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@snack-uikit/locale": "*"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "a123f7420a510cc0e41acd975a0abcaed546598b"
|
|
69
69
|
}
|
|
@@ -59,6 +59,7 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
|
|
|
59
59
|
onOpenChange,
|
|
60
60
|
selectedOptionFormatter = defaultSelectedOptionFormatter,
|
|
61
61
|
enableFuzzySearch = true,
|
|
62
|
+
resetSearchOnOptionSelection = true,
|
|
62
63
|
onCopyButtonClick,
|
|
63
64
|
...rest
|
|
64
65
|
} = props;
|
|
@@ -78,6 +79,7 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
|
|
|
78
79
|
const { inputValue, setInputValue, prevInputValue, updateInputValue } = useSearchInput({
|
|
79
80
|
...search,
|
|
80
81
|
defaultValue: selectedOptionFormatter(selectedItem),
|
|
82
|
+
resetSearchOnOptionSelection,
|
|
81
83
|
selectedOptionFormatter,
|
|
82
84
|
});
|
|
83
85
|
|
|
@@ -151,7 +151,7 @@ type FiledSelectCommonProps = WithSupportProps<{
|
|
|
151
151
|
export type FieldSelectSingleProps = FieldSelectPrivateProps &
|
|
152
152
|
Omit<SelectionSingleState, 'mode'> &
|
|
153
153
|
WrapperProps &
|
|
154
|
-
|
|
154
|
+
FiledSelectCommonProps;
|
|
155
155
|
|
|
156
156
|
export type FieldSelectMultipleProps = FieldSelectPrivateProps & {
|
|
157
157
|
removeByBackspace?: boolean;
|