@snack-uikit/fields 0.32.2 → 0.32.4-preview-481a0237.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 +10 -0
- package/README.md +7 -0
- package/dist/cjs/components/FieldColor/FieldColor.d.ts +4 -0
- package/dist/cjs/components/FieldColor/FieldColor.js +5 -3
- package/dist/cjs/components/FieldDate/FieldDate.d.ts +2 -0
- package/dist/cjs/components/FieldDate/FieldDate.js +5 -3
- package/dist/cjs/components/FieldSecure/FieldSecure.d.ts +2 -0
- package/dist/cjs/components/FieldSecure/FieldSecure.js +5 -3
- package/dist/cjs/components/FieldSelect/FieldSelectMultiple.d.ts +1 -0
- package/dist/cjs/components/FieldSelect/FieldSelectMultiple.js +5 -3
- package/dist/cjs/components/FieldSelect/FieldSelectSingle.d.ts +1 -0
- package/dist/cjs/components/FieldSelect/FieldSelectSingle.js +4 -2
- package/dist/cjs/components/FieldSelect/hooks.d.ts +2 -1
- package/dist/cjs/components/FieldSelect/hooks.js +3 -1
- package/dist/cjs/components/FieldSelect/types.d.ts +2 -0
- package/dist/cjs/components/FieldText/FieldText.d.ts +2 -0
- package/dist/cjs/components/FieldText/FieldText.js +4 -2
- package/dist/cjs/components/FieldTextArea/FieldTextArea.d.ts +2 -0
- package/dist/cjs/components/FieldTextArea/FieldTextArea.js +5 -3
- package/dist/cjs/components/FieldTime/FieldTime.d.ts +2 -0
- package/dist/cjs/components/FieldTime/FieldTime.js +5 -3
- package/dist/cjs/hooks/useCopyButton.d.ts +2 -1
- package/dist/cjs/hooks/useCopyButton.js +3 -1
- package/dist/esm/components/FieldColor/FieldColor.d.ts +4 -0
- package/dist/esm/components/FieldColor/FieldColor.js +2 -2
- package/dist/esm/components/FieldDate/FieldDate.d.ts +2 -0
- package/dist/esm/components/FieldDate/FieldDate.js +2 -2
- package/dist/esm/components/FieldSecure/FieldSecure.d.ts +2 -0
- package/dist/esm/components/FieldSecure/FieldSecure.js +2 -1
- package/dist/esm/components/FieldSelect/FieldSelectMultiple.d.ts +1 -0
- package/dist/esm/components/FieldSelect/FieldSelectMultiple.js +2 -1
- package/dist/esm/components/FieldSelect/FieldSelectSingle.d.ts +1 -0
- package/dist/esm/components/FieldSelect/FieldSelectSingle.js +2 -1
- package/dist/esm/components/FieldSelect/hooks.d.ts +2 -1
- package/dist/esm/components/FieldSelect/hooks.js +2 -1
- package/dist/esm/components/FieldSelect/types.d.ts +2 -0
- package/dist/esm/components/FieldText/FieldText.d.ts +2 -0
- package/dist/esm/components/FieldText/FieldText.js +2 -1
- package/dist/esm/components/FieldTextArea/FieldTextArea.d.ts +2 -0
- package/dist/esm/components/FieldTextArea/FieldTextArea.js +2 -2
- package/dist/esm/components/FieldTime/FieldTime.d.ts +2 -0
- package/dist/esm/components/FieldTime/FieldTime.js +2 -2
- package/dist/esm/hooks/useCopyButton.d.ts +2 -1
- package/dist/esm/hooks/useCopyButton.js +3 -3
- package/package.json +4 -4
- package/src/components/FieldColor/FieldColor.tsx +4 -1
- package/src/components/FieldDate/FieldDate.tsx +4 -1
- package/src/components/FieldSecure/FieldSecure.tsx +4 -0
- package/src/components/FieldSelect/FieldSelectMultiple.tsx +2 -0
- package/src/components/FieldSelect/FieldSelectSingle.tsx +2 -0
- package/src/components/FieldSelect/hooks.ts +3 -0
- package/src/components/FieldSelect/types.ts +2 -0
- package/src/components/FieldText/FieldText.tsx +4 -0
- package/src/components/FieldTextArea/FieldTextArea.tsx +4 -1
- package/src/components/FieldTime/FieldTime.tsx +4 -1
- package/src/hooks/useCopyButton.tsx +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
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.32.3 (2024-11-08)
|
|
7
|
+
|
|
8
|
+
### Only dependencies have been changed
|
|
9
|
+
* [@snack-uikit/calendar@0.11.3](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/calendar/CHANGELOG.md)
|
|
10
|
+
* [@snack-uikit/list@0.21.3](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/list/CHANGELOG.md)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
6
16
|
## 0.32.2 (2024-11-08)
|
|
7
17
|
|
|
8
18
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -198,6 +198,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
198
198
|
| open | `boolean` | - | Открыт color-picker |
|
|
199
199
|
| onOpenChange | `(value: boolean) => void` | - | Колбек открытия пикера |
|
|
200
200
|
| showCopyButton | `boolean` | - | Отображение кнопки копирования |
|
|
201
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
201
202
|
| showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
|
|
202
203
|
| value | `string` | - | Значение input |
|
|
203
204
|
| onChange | `(value: string) => void` | - | |
|
|
@@ -234,6 +235,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
234
235
|
| value | `Date` | - | Значение поля |
|
|
235
236
|
| onChange | `(value: Date) => void` | - | Колбек смены значения |
|
|
236
237
|
| showCopyButton | `boolean` | - | Отображение кнопки копирования |
|
|
238
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
237
239
|
| showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
|
|
238
240
|
| buildCellProps | `(date: Date, viewMode: ViewMode) => { isDisabled?: boolean; isHoliday?: boolean } ;` | - | Колбек установки свойств ячеек календаря. Вызывается на построение каждой ячейки. Принимает два параметра: <br> `Date` - дата ячейки <br> `ViewMode`: <br> - `month` отображение месяца, каждая ячейка - 1 день <br> - `year` отображение года, каждая ячейка - 1 месяц <br> - `decade` отображение декады, каждая ячейка - 1 год <br><br> Колбек должен возвращать объект с полями, отвечающими за отключение и подкраску ячейки. |
|
|
239
241
|
| id | `string` | - | Значение html-атрибута id |
|
|
@@ -283,6 +285,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
283
285
|
| hidden | `boolean` | - | Замаскированно ли значение поля |
|
|
284
286
|
| onHiddenChange | `(value: boolean) => void` | - | Колбек смены маскирования |
|
|
285
287
|
| showCopyButton | `boolean` | - | Отображение кнопки копирования |
|
|
288
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
286
289
|
| allowMoreThanMaxLength | `boolean` | - | Можно ли вводить больше разрешённого кол-ва символов |
|
|
287
290
|
| prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
|
|
288
291
|
| asyncValueGetter | `() => Promise<string>` | - | Свойство позволяет грузить данные в поле по требованию |
|
|
@@ -344,6 +347,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
344
347
|
| showClearButton | `boolean` | true | Отображение кнопки очистки поля |
|
|
345
348
|
| open | `boolean` | - | |
|
|
346
349
|
| onOpenChange | `(open: boolean) => void` | - | |
|
|
350
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
347
351
|
| prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
|
|
348
352
|
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | - | |
|
|
349
353
|
| pinTop | `OptionProps[]` | - | |
|
|
@@ -437,6 +441,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
437
441
|
| name | type | default value | description |
|
|
438
442
|
|------|------|---------------|-------------|
|
|
439
443
|
| showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
|
|
444
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
440
445
|
| showClearButton | `boolean` | true | Отображение кнопки очистки поля |
|
|
441
446
|
| allowMoreThanMaxLength | `boolean` | - | Можно ли вводить больше разрешённого кол-ва символов |
|
|
442
447
|
| prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
|
|
@@ -476,6 +481,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
476
481
|
| resizable | `boolean` | - | Может ли ли пользователь изменять размеры поля (если св-во не включено, поле автоматически меняет свой размер) |
|
|
477
482
|
| onChange | `(value: string, e?: ChangeEvent<HTMLTextAreaElement>) => void` | - | Колбек смены значения |
|
|
478
483
|
| showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
|
|
484
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
479
485
|
| showClearButton | `boolean` | true | Отображение кнопки очистки поля |
|
|
480
486
|
| allowMoreThanMaxLength | `boolean` | true | Можно ли вводить больше разрешённого кол-ва символов |
|
|
481
487
|
| value | `string` | - | HTML-аттрибут value |
|
|
@@ -509,6 +515,7 @@ FieldStepper в основном предназначен для работы с
|
|
|
509
515
|
| value | `TimeValue` | - | Значение поля |
|
|
510
516
|
| onChange | `(value?: TimeValue) => void` | - | Колбек смены значения |
|
|
511
517
|
| showCopyButton | `boolean` | - | Отображение кнопки копирования |
|
|
518
|
+
| onClickCopy | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
512
519
|
| showSeconds | `boolean` | true | Показывать ли секунды |
|
|
513
520
|
| showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
|
|
514
521
|
| id | `string` | - | Значение html-атрибута id |
|
|
@@ -11,6 +11,8 @@ type FieldDateOwnProps = {
|
|
|
11
11
|
onOpenChange?(value: boolean): void;
|
|
12
12
|
/** Отображение кнопки копирования */
|
|
13
13
|
showCopyButton?: boolean;
|
|
14
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
15
|
+
onClickCopy?(): void;
|
|
14
16
|
/**
|
|
15
17
|
* Отображение кнопки Очистки поля
|
|
16
18
|
* @default true
|
|
@@ -29,6 +31,8 @@ export declare const FieldColor: import("react").ForwardRefExoticComponent<{
|
|
|
29
31
|
onOpenChange?(value: boolean): void;
|
|
30
32
|
/** Отображение кнопки копирования */
|
|
31
33
|
showCopyButton?: boolean;
|
|
34
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
35
|
+
onClickCopy?(): void;
|
|
32
36
|
/**
|
|
33
37
|
* Отображение кнопки Очистки поля
|
|
34
38
|
* @default true
|
|
@@ -58,9 +58,10 @@ exports.FieldColor = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
58
58
|
autoApply,
|
|
59
59
|
placeholder,
|
|
60
60
|
onFocus,
|
|
61
|
-
onBlur
|
|
61
|
+
onBlur,
|
|
62
|
+
onClickCopy
|
|
62
63
|
} = _a,
|
|
63
|
-
rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onChange", "onOpenChange", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "withAlpha", "autoApply", "placeholder", "onFocus", "onBlur"]);
|
|
64
|
+
rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onChange", "onOpenChange", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "withAlpha", "autoApply", "placeholder", "onFocus", "onBlur", "onClickCopy"]);
|
|
64
65
|
const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
|
|
65
66
|
const localRef = (0, react_1.useRef)(null);
|
|
66
67
|
const showDropList = isOpen && !readonly && !disabled;
|
|
@@ -94,7 +95,8 @@ exports.FieldColor = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
94
95
|
copyButtonRef,
|
|
95
96
|
showCopyButton,
|
|
96
97
|
size,
|
|
97
|
-
valueToCopy: value
|
|
98
|
+
valueToCopy: value,
|
|
99
|
+
onClickCopy
|
|
98
100
|
});
|
|
99
101
|
const {
|
|
100
102
|
postfixButtons,
|
|
@@ -21,6 +21,8 @@ type FieldDateOwnProps = {
|
|
|
21
21
|
onChange?(value: Date | undefined): void;
|
|
22
22
|
/** Отображение кнопки копирования */
|
|
23
23
|
showCopyButton?: boolean;
|
|
24
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
25
|
+
onClickCopy?(): void;
|
|
24
26
|
/**
|
|
25
27
|
* Отображение кнопки Очистки поля
|
|
26
28
|
* @default true
|
|
@@ -59,9 +59,10 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
59
59
|
validationState = constants_1.VALIDATION_STATE.Default,
|
|
60
60
|
buildCellProps,
|
|
61
61
|
error,
|
|
62
|
-
mode
|
|
62
|
+
mode,
|
|
63
|
+
onClickCopy
|
|
63
64
|
} = _a,
|
|
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"]);
|
|
65
|
+
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", "onClickCopy"]);
|
|
65
66
|
const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
|
|
66
67
|
const localRef = (0, react_1.useRef)(null);
|
|
67
68
|
const clearButtonRef = (0, react_1.useRef)(null);
|
|
@@ -125,7 +126,8 @@ exports.FieldDate = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
125
126
|
copyButtonRef,
|
|
126
127
|
showCopyButton,
|
|
127
128
|
size,
|
|
128
|
-
valueToCopy
|
|
129
|
+
valueToCopy,
|
|
130
|
+
onClickCopy
|
|
129
131
|
});
|
|
130
132
|
const calendarIcon = (0, react_1.useMemo)(() => ({
|
|
131
133
|
active: false,
|
|
@@ -11,6 +11,8 @@ type FieldSecureOwnProps = {
|
|
|
11
11
|
onHiddenChange?(value: boolean): void;
|
|
12
12
|
/** Отображение кнопки копирования */
|
|
13
13
|
showCopyButton?: boolean;
|
|
14
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
15
|
+
onClickCopy?(): void;
|
|
14
16
|
/** Можно ли вводить больше разрешённого кол-ва символов */
|
|
15
17
|
allowMoreThanMaxLength?: boolean;
|
|
16
18
|
/** Иконка-префикс для поля */
|
|
@@ -84,9 +84,10 @@ exports.FieldSecure = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
84
84
|
prefixIcon,
|
|
85
85
|
error,
|
|
86
86
|
asyncValueGetter,
|
|
87
|
-
autoComplete
|
|
87
|
+
autoComplete,
|
|
88
|
+
onClickCopy
|
|
88
89
|
} = _a,
|
|
89
|
-
rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "allowMoreThanMaxLength", "hidden", "onHiddenChange", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "size", "validationState", "prefixIcon", "error", "asyncValueGetter", "autoComplete"]);
|
|
90
|
+
rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "allowMoreThanMaxLength", "hidden", "onHiddenChange", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "size", "validationState", "prefixIcon", "error", "asyncValueGetter", "autoComplete", "onClickCopy"]);
|
|
90
91
|
const localRef = (0, react_1.useRef)(null);
|
|
91
92
|
const copyButtonRef = (0, react_1.useRef)(null);
|
|
92
93
|
const hideButtonRef = (0, react_1.useRef)(null);
|
|
@@ -154,7 +155,8 @@ exports.FieldSecure = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
154
155
|
size,
|
|
155
156
|
valueToCopy: value,
|
|
156
157
|
onValueRequest: getAsyncValue,
|
|
157
|
-
disabled: isLoading
|
|
158
|
+
disabled: isLoading,
|
|
159
|
+
onClickCopy
|
|
158
160
|
});
|
|
159
161
|
const hideButtonSettings = (0, hooks_1.useHideButton)({
|
|
160
162
|
hideButtonRef,
|
|
@@ -14,6 +14,7 @@ export declare const FieldSelectMultiple: import("react").ForwardRefExoticCompon
|
|
|
14
14
|
pinBottom?: import("./types").OptionProps[];
|
|
15
15
|
searchable?: boolean;
|
|
16
16
|
showCopyButton?: boolean;
|
|
17
|
+
onClickCopy?(): void;
|
|
17
18
|
showClearButton?: boolean;
|
|
18
19
|
readonly?: boolean;
|
|
19
20
|
prefixIcon?: import("react").ReactElement;
|
|
@@ -67,9 +67,10 @@ exports.FieldSelectMultiple = (0, react_1.forwardRef)((props, ref) => {
|
|
|
67
67
|
enableFuzzySearch = true,
|
|
68
68
|
resetSearchOnOptionSelection = true,
|
|
69
69
|
onOpenChange,
|
|
70
|
-
selectedOptionFormatter = defaultSelectedOptionFormatter
|
|
70
|
+
selectedOptionFormatter = defaultSelectedOptionFormatter,
|
|
71
|
+
onClickCopy
|
|
71
72
|
} = props,
|
|
72
|
-
rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showClearButton", "onKeyDown", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "removeByBackspace", "addOptionByEnter", "untouchableScrollbars", "open", "enableFuzzySearch", "resetSearchOnOptionSelection", "onOpenChange", "selectedOptionFormatter"]);
|
|
73
|
+
rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showClearButton", "onKeyDown", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "removeByBackspace", "addOptionByEnter", "untouchableScrollbars", "open", "enableFuzzySearch", "resetSearchOnOptionSelection", "onOpenChange", "selectedOptionFormatter", "onClickCopy"]);
|
|
73
74
|
const localRef = (0, react_1.useRef)(null);
|
|
74
75
|
const inputPlugRef = (0, react_1.useRef)(null);
|
|
75
76
|
const contentRef = (0, react_1.useRef)(null);
|
|
@@ -146,7 +147,8 @@ exports.FieldSelectMultiple = (0, react_1.forwardRef)((props, ref) => {
|
|
|
146
147
|
showClearButton: showClearButton && !disabled && !readonly && Boolean(selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.find(item => !item.disabled)),
|
|
147
148
|
showCopyButton: false,
|
|
148
149
|
inputRef: localRef,
|
|
149
|
-
onClear
|
|
150
|
+
onClear,
|
|
151
|
+
onClickCopy
|
|
150
152
|
});
|
|
151
153
|
const commonHandleOnKeyDown = (0, hooks_2.useHandleOnKeyDown)({
|
|
152
154
|
inputKeyDownNavigationHandler,
|
|
@@ -12,6 +12,7 @@ export declare const FieldSelectSingle: import("react").ForwardRefExoticComponen
|
|
|
12
12
|
pinBottom?: import("./types").OptionProps[];
|
|
13
13
|
searchable?: boolean;
|
|
14
14
|
showCopyButton?: boolean;
|
|
15
|
+
onClickCopy?(): void;
|
|
15
16
|
showClearButton?: boolean;
|
|
16
17
|
readonly?: boolean;
|
|
17
18
|
prefixIcon?: import("react").ReactElement;
|
|
@@ -64,9 +64,10 @@ exports.FieldSelectSingle = (0, react_1.forwardRef)((props, ref) => {
|
|
|
64
64
|
open: openProp,
|
|
65
65
|
onOpenChange,
|
|
66
66
|
selectedOptionFormatter = defaultSelectedOptionFormatter,
|
|
67
|
-
enableFuzzySearch = true
|
|
67
|
+
enableFuzzySearch = true,
|
|
68
|
+
onClickCopy
|
|
68
69
|
} = props,
|
|
69
|
-
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"]);
|
|
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", "onClickCopy"]);
|
|
70
71
|
const localRef = (0, react_1.useRef)(null);
|
|
71
72
|
const [open = false, setOpen] = (0, hooks_1.useValueControl)({
|
|
72
73
|
value: openProp,
|
|
@@ -153,6 +154,7 @@ exports.FieldSelectSingle = (0, react_1.forwardRef)((props, ref) => {
|
|
|
153
154
|
showCopyButton,
|
|
154
155
|
inputRef: localRef,
|
|
155
156
|
onClear,
|
|
157
|
+
onClickCopy,
|
|
156
158
|
valueToCopy: selectedOptionFormatter(selectedItem)
|
|
157
159
|
});
|
|
158
160
|
const handleBlur = e => {
|
|
@@ -14,10 +14,11 @@ type UseButtonsProps = {
|
|
|
14
14
|
showCopyButton: boolean;
|
|
15
15
|
size: 's' | 'm' | 'l';
|
|
16
16
|
onClear(): void;
|
|
17
|
+
onClickCopy?(): void;
|
|
17
18
|
inputRef: RefObject<HTMLInputElement>;
|
|
18
19
|
valueToCopy?: string;
|
|
19
20
|
};
|
|
20
|
-
export declare function useButtons({ readonly, showClearButton, showCopyButton, size, onClear, inputRef, valueToCopy, }: UseButtonsProps): {
|
|
21
|
+
export declare function useButtons({ readonly, showClearButton, showCopyButton, size, onClear, onClickCopy, inputRef, valueToCopy, }: UseButtonsProps): {
|
|
21
22
|
postfixButtons: import("react/jsx-runtime").JSX.Element | undefined;
|
|
22
23
|
inputKeyDownNavigationHandler: KeyboardEventHandler<HTMLInputElement>;
|
|
23
24
|
buttonsRefs: (Element | null)[];
|
|
@@ -52,6 +52,7 @@ function useButtons(_ref2) {
|
|
|
52
52
|
showCopyButton,
|
|
53
53
|
size,
|
|
54
54
|
onClear,
|
|
55
|
+
onClickCopy,
|
|
55
56
|
inputRef,
|
|
56
57
|
valueToCopy = ''
|
|
57
58
|
} = _ref2;
|
|
@@ -68,7 +69,8 @@ function useButtons(_ref2) {
|
|
|
68
69
|
copyButtonRef,
|
|
69
70
|
showCopyButton: readonly && showCopyButton,
|
|
70
71
|
size,
|
|
71
|
-
valueToCopy
|
|
72
|
+
valueToCopy,
|
|
73
|
+
onClickCopy
|
|
72
74
|
});
|
|
73
75
|
const {
|
|
74
76
|
onInputKeyDown: inputKeyDownNavigationHandler,
|
|
@@ -46,6 +46,8 @@ type FiledSelectCommonProps = WithSupportProps<{
|
|
|
46
46
|
searchable?: boolean;
|
|
47
47
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
48
48
|
showCopyButton?: boolean;
|
|
49
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
50
|
+
onClickCopy?(): void;
|
|
49
51
|
/**
|
|
50
52
|
* Отображение кнопки очистки поля
|
|
51
53
|
* @default true
|
|
@@ -8,6 +8,8 @@ type WrapperProps = Pick<FieldDecoratorProps, 'className' | 'label' | 'labelTool
|
|
|
8
8
|
type FieldTextOwnProps = {
|
|
9
9
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
10
10
|
showCopyButton?: boolean;
|
|
11
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
12
|
+
onClickCopy?(): void;
|
|
11
13
|
/**
|
|
12
14
|
* Отображение кнопки очистки поля
|
|
13
15
|
* @default true
|
|
@@ -43,6 +43,7 @@ exports.FieldText = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
43
43
|
onChange: onChangeProp,
|
|
44
44
|
onFocus,
|
|
45
45
|
onBlur,
|
|
46
|
+
onClickCopy,
|
|
46
47
|
className,
|
|
47
48
|
label,
|
|
48
49
|
labelTooltip,
|
|
@@ -60,7 +61,7 @@ exports.FieldText = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
60
61
|
postfix,
|
|
61
62
|
button: buttonProp
|
|
62
63
|
} = _a,
|
|
63
|
-
rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "autoComplete", "prefixIcon", "prefix", "postfix", "button"]);
|
|
64
|
+
rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "onChange", "onFocus", "onBlur", "onClickCopy", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "autoComplete", "prefixIcon", "prefix", "postfix", "button"]);
|
|
64
65
|
const [value = '', onChange] = (0, hooks_1.useValueControl)({
|
|
65
66
|
value: valueProp,
|
|
66
67
|
defaultValue: '',
|
|
@@ -110,7 +111,8 @@ exports.FieldText = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
110
111
|
size,
|
|
111
112
|
valueToCopy: value,
|
|
112
113
|
prefix: typeof prefix === 'string' ? prefix : undefined,
|
|
113
|
-
postfix: typeof postfix === 'string' ? postfix : undefined
|
|
114
|
+
postfix: typeof postfix === 'string' ? postfix : undefined,
|
|
115
|
+
onClickCopy
|
|
114
116
|
});
|
|
115
117
|
const [isButtonFocused, setIsButtonFocused] = (0, react_1.useState)(false);
|
|
116
118
|
const onButtonFocus = (0, react_1.useCallback)(() => setIsButtonFocused(true), []);
|
|
@@ -15,6 +15,8 @@ type FieldTextAreaOwnProps = {
|
|
|
15
15
|
onChange?(value: string, e?: ChangeEvent<HTMLTextAreaElement>): void;
|
|
16
16
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
17
17
|
showCopyButton?: boolean;
|
|
18
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
19
|
+
onClickCopy?(): void;
|
|
18
20
|
/**
|
|
19
21
|
* Отображение кнопки очистки поля
|
|
20
22
|
* @default true
|
|
@@ -57,9 +57,10 @@ exports.FieldTextArea = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
57
57
|
hint,
|
|
58
58
|
error,
|
|
59
59
|
size = input_private_1.SIZE.S,
|
|
60
|
-
validationState = constants_1.VALIDATION_STATE.Default
|
|
60
|
+
validationState = constants_1.VALIDATION_STATE.Default,
|
|
61
|
+
onClickCopy
|
|
61
62
|
} = _a,
|
|
62
|
-
rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "minRows", "maxRows", "disabled", "resizable", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "error", "size", "validationState"]);
|
|
63
|
+
rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "minRows", "maxRows", "disabled", "resizable", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "error", "size", "validationState", "onClickCopy"]);
|
|
63
64
|
const localRef = (0, react_1.useRef)(null);
|
|
64
65
|
const clearButtonRef = (0, react_1.useRef)(null);
|
|
65
66
|
const copyButtonRef = (0, react_1.useRef)(null);
|
|
@@ -92,7 +93,8 @@ exports.FieldTextArea = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
92
93
|
copyButtonRef,
|
|
93
94
|
showCopyButton,
|
|
94
95
|
size,
|
|
95
|
-
valueToCopy: value
|
|
96
|
+
valueToCopy: value,
|
|
97
|
+
onClickCopy
|
|
96
98
|
});
|
|
97
99
|
const {
|
|
98
100
|
postfixButtons,
|
|
@@ -15,6 +15,8 @@ type FieldTimeOwnProps = {
|
|
|
15
15
|
onChange?: TimePickerProps['onChangeValue'];
|
|
16
16
|
/** Отображение кнопки копирования */
|
|
17
17
|
showCopyButton?: boolean;
|
|
18
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
19
|
+
onClickCopy?(): void;
|
|
18
20
|
/** Показывать ли секунды */
|
|
19
21
|
showSeconds?: boolean;
|
|
20
22
|
/**
|
|
@@ -76,9 +76,10 @@ exports.FieldTime = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
76
76
|
showSeconds = true,
|
|
77
77
|
size = input_private_1.SIZE.S,
|
|
78
78
|
validationState = constants_1.VALIDATION_STATE.Default,
|
|
79
|
-
error
|
|
79
|
+
error,
|
|
80
|
+
onClickCopy
|
|
80
81
|
} = _a,
|
|
81
|
-
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"]);
|
|
82
|
+
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", "onClickCopy"]);
|
|
82
83
|
const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
|
|
83
84
|
const localRef = (0, react_1.useRef)(null);
|
|
84
85
|
const clearButtonRef = (0, react_1.useRef)(null);
|
|
@@ -130,7 +131,8 @@ exports.FieldTime = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
130
131
|
copyButtonRef,
|
|
131
132
|
showCopyButton,
|
|
132
133
|
size,
|
|
133
|
-
valueToCopy
|
|
134
|
+
valueToCopy,
|
|
135
|
+
onClickCopy
|
|
134
136
|
});
|
|
135
137
|
const calendarIcon = (0, react_1.useMemo)(() => ({
|
|
136
138
|
active: false,
|
|
@@ -7,9 +7,10 @@ type UseCopyButtonProps = {
|
|
|
7
7
|
valueToCopy: string;
|
|
8
8
|
size: Size;
|
|
9
9
|
onValueRequest?(): AsyncValueRequest;
|
|
10
|
+
onClickCopy?(): void;
|
|
10
11
|
disabled?: boolean;
|
|
11
12
|
prefix?: string;
|
|
12
13
|
postfix?: string;
|
|
13
14
|
};
|
|
14
|
-
export declare function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, disabled, prefix, postfix, }: UseCopyButtonProps): ButtonProps;
|
|
15
|
+
export declare function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, onClickCopy, disabled, prefix, postfix, }: UseCopyButtonProps): ButtonProps;
|
|
15
16
|
export {};
|
|
@@ -15,6 +15,7 @@ function useCopyButton(_ref) {
|
|
|
15
15
|
size,
|
|
16
16
|
valueToCopy,
|
|
17
17
|
onValueRequest,
|
|
18
|
+
onClickCopy,
|
|
18
19
|
disabled,
|
|
19
20
|
prefix = '',
|
|
20
21
|
postfix = ''
|
|
@@ -28,7 +29,8 @@ function useCopyButton(_ref) {
|
|
|
28
29
|
size: input_private_1.BUTTON_SIZE_MAP[size],
|
|
29
30
|
valueToCopy: (prefix !== null && prefix !== void 0 ? prefix : '') + valueToCopy + (postfix !== null && postfix !== void 0 ? postfix : ''),
|
|
30
31
|
onValueRequest: onValueRequest,
|
|
32
|
+
onClick: onClickCopy,
|
|
31
33
|
disabled: disabled
|
|
32
34
|
}))
|
|
33
|
-
}), [copyButtonRef,
|
|
35
|
+
}), [copyButtonRef, showCopyButton, size, prefix, valueToCopy, postfix, onValueRequest, onClickCopy, disabled]);
|
|
34
36
|
}
|
|
@@ -11,6 +11,8 @@ type FieldDateOwnProps = {
|
|
|
11
11
|
onOpenChange?(value: boolean): void;
|
|
12
12
|
/** Отображение кнопки копирования */
|
|
13
13
|
showCopyButton?: boolean;
|
|
14
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
15
|
+
onClickCopy?(): void;
|
|
14
16
|
/**
|
|
15
17
|
* Отображение кнопки Очистки поля
|
|
16
18
|
* @default true
|
|
@@ -29,6 +31,8 @@ export declare const FieldColor: import("react").ForwardRefExoticComponent<{
|
|
|
29
31
|
onOpenChange?(value: boolean): void;
|
|
30
32
|
/** Отображение кнопки копирования */
|
|
31
33
|
showCopyButton?: boolean;
|
|
34
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
35
|
+
onClickCopy?(): void;
|
|
32
36
|
/**
|
|
33
37
|
* Отображение кнопки Очистки поля
|
|
34
38
|
* @default true
|
|
@@ -24,7 +24,7 @@ import { getValidationState } from '../../utils/getValidationState';
|
|
|
24
24
|
import { FieldDecorator } from '../FieldDecorator';
|
|
25
25
|
import styles from './styles.module.css';
|
|
26
26
|
export const FieldColor = forwardRef((_a, ref) => {
|
|
27
|
-
var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onChange, onOpenChange, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, withAlpha, autoApply, placeholder, onFocus, onBlur } = _a, rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onChange", "onOpenChange", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "withAlpha", "autoApply", "placeholder", "onFocus", "onBlur"]);
|
|
27
|
+
var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onChange, onOpenChange, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, withAlpha, autoApply, placeholder, onFocus, onBlur, onClickCopy } = _a, rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onChange", "onOpenChange", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "withAlpha", "autoApply", "placeholder", "onFocus", "onBlur", "onClickCopy"]);
|
|
28
28
|
const [isOpen, setIsOpen] = useUncontrolledProp(open, false, onOpenChange);
|
|
29
29
|
const localRef = useRef(null);
|
|
30
30
|
const showDropList = isOpen && !readonly && !disabled;
|
|
@@ -43,7 +43,7 @@ export const FieldColor = forwardRef((_a, ref) => {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear });
|
|
46
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value });
|
|
46
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value, onClickCopy });
|
|
47
47
|
const { postfixButtons, inputTabIndex, onInputKeyDown } = useButtonNavigation({
|
|
48
48
|
inputRef: localRef,
|
|
49
49
|
postfixButtons: useMemo(() => [clearButtonSettings, copyButtonSettings], [clearButtonSettings, copyButtonSettings]),
|
|
@@ -21,6 +21,8 @@ type FieldDateOwnProps = {
|
|
|
21
21
|
onChange?(value: Date | undefined): void;
|
|
22
22
|
/** Отображение кнопки копирования */
|
|
23
23
|
showCopyButton?: boolean;
|
|
24
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
25
|
+
onClickCopy?(): void;
|
|
24
26
|
/**
|
|
25
27
|
* Отображение кнопки Очистки поля
|
|
26
28
|
* @default true
|
|
@@ -26,7 +26,7 @@ import { FieldDecorator } from '../FieldDecorator';
|
|
|
26
26
|
import styles from './styles.module.css';
|
|
27
27
|
export const FieldDate = forwardRef((_a, ref) => {
|
|
28
28
|
var _b;
|
|
29
|
-
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, size = SIZE.S, validationState = VALIDATION_STATE.Default, buildCellProps, error, mode } = _a, 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"]);
|
|
29
|
+
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, size = SIZE.S, validationState = VALIDATION_STATE.Default, buildCellProps, error, mode, onClickCopy } = _a, 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", "onClickCopy"]);
|
|
30
30
|
const [isOpen, setIsOpen] = useUncontrolledProp(open, false, onOpenChange);
|
|
31
31
|
const localRef = useRef(null);
|
|
32
32
|
const clearButtonRef = useRef(null);
|
|
@@ -77,7 +77,7 @@ export const FieldDate = forwardRef((_a, ref) => {
|
|
|
77
77
|
}, [mode, showSeconds]);
|
|
78
78
|
const valueToCopy = getStringDateValue(valueProp);
|
|
79
79
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear: handleClear });
|
|
80
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy });
|
|
80
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onClickCopy });
|
|
81
81
|
const calendarIcon = useMemo(() => ({
|
|
82
82
|
active: false,
|
|
83
83
|
show: true,
|
|
@@ -11,6 +11,8 @@ type FieldSecureOwnProps = {
|
|
|
11
11
|
onHiddenChange?(value: boolean): void;
|
|
12
12
|
/** Отображение кнопки копирования */
|
|
13
13
|
showCopyButton?: boolean;
|
|
14
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
15
|
+
onClickCopy?(): void;
|
|
14
16
|
/** Можно ли вводить больше разрешённого кол-ва символов */
|
|
15
17
|
allowMoreThanMaxLength?: boolean;
|
|
16
18
|
/** Иконка-префикс для поля */
|
|
@@ -30,7 +30,7 @@ import { useCopyButton, useHideButton, useValueControl } from '../../hooks';
|
|
|
30
30
|
import { getValidationState } from '../../utils/getValidationState';
|
|
31
31
|
import { FieldDecorator } from '../FieldDecorator';
|
|
32
32
|
export const FieldSecure = forwardRef((_a, ref) => {
|
|
33
|
-
var { id, name, value: valueProp, placeholder, maxLength, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, allowMoreThanMaxLength = false, hidden: hiddenProp, onHiddenChange, showHintIcon, onChange: onChangeProp, onFocus, onBlur, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, size = SIZE.S, validationState = VALIDATION_STATE.Default, prefixIcon, error, asyncValueGetter, autoComplete } = _a, rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "allowMoreThanMaxLength", "hidden", "onHiddenChange", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "size", "validationState", "prefixIcon", "error", "asyncValueGetter", "autoComplete"]);
|
|
33
|
+
var { id, name, value: valueProp, placeholder, maxLength, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, allowMoreThanMaxLength = false, hidden: hiddenProp, onHiddenChange, showHintIcon, onChange: onChangeProp, onFocus, onBlur, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, size = SIZE.S, validationState = VALIDATION_STATE.Default, prefixIcon, error, asyncValueGetter, autoComplete, onClickCopy } = _a, rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "allowMoreThanMaxLength", "hidden", "onHiddenChange", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "size", "validationState", "prefixIcon", "error", "asyncValueGetter", "autoComplete", "onClickCopy"]);
|
|
34
34
|
const localRef = useRef(null);
|
|
35
35
|
const copyButtonRef = useRef(null);
|
|
36
36
|
const hideButtonRef = useRef(null);
|
|
@@ -95,6 +95,7 @@ export const FieldSecure = forwardRef((_a, ref) => {
|
|
|
95
95
|
valueToCopy: value,
|
|
96
96
|
onValueRequest: getAsyncValue,
|
|
97
97
|
disabled: isLoading,
|
|
98
|
+
onClickCopy,
|
|
98
99
|
});
|
|
99
100
|
const hideButtonSettings = useHideButton({
|
|
100
101
|
hideButtonRef,
|
|
@@ -14,6 +14,7 @@ export declare const FieldSelectMultiple: import("react").ForwardRefExoticCompon
|
|
|
14
14
|
pinBottom?: import("./types").OptionProps[];
|
|
15
15
|
searchable?: boolean;
|
|
16
16
|
showCopyButton?: boolean;
|
|
17
|
+
onClickCopy?(): void;
|
|
17
18
|
showClearButton?: boolean;
|
|
18
19
|
readonly?: boolean;
|
|
19
20
|
prefixIcon?: import("react").ReactElement;
|
|
@@ -32,7 +32,7 @@ const defaultSelectedOptionFormatter = item =>
|
|
|
32
32
|
(item === null || item === void 0 ? void 0 : item.content.option) || '';
|
|
33
33
|
export const FieldSelectMultiple = forwardRef((props, ref) => {
|
|
34
34
|
var _a;
|
|
35
|
-
const { id, name, placeholder, size = 's', options, value: valueProp, defaultValue, onChange: onChangeProp, disabled = false, readonly = false, searchable = true, showClearButton = true, onKeyDown: onInputKeyDownProp, validationState = 'default', search, autocomplete = false, prefixIcon, prefix, postfix, removeByBackspace = false, addOptionByEnter = false, untouchableScrollbars = false, open: openProp, enableFuzzySearch = true, resetSearchOnOptionSelection = true, onOpenChange, selectedOptionFormatter = defaultSelectedOptionFormatter } = props, rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showClearButton", "onKeyDown", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "removeByBackspace", "addOptionByEnter", "untouchableScrollbars", "open", "enableFuzzySearch", "resetSearchOnOptionSelection", "onOpenChange", "selectedOptionFormatter"]);
|
|
35
|
+
const { id, name, placeholder, size = 's', options, value: valueProp, defaultValue, onChange: onChangeProp, disabled = false, readonly = false, searchable = true, showClearButton = true, onKeyDown: onInputKeyDownProp, validationState = 'default', search, autocomplete = false, prefixIcon, prefix, postfix, removeByBackspace = false, addOptionByEnter = false, untouchableScrollbars = false, open: openProp, enableFuzzySearch = true, resetSearchOnOptionSelection = true, onOpenChange, selectedOptionFormatter = defaultSelectedOptionFormatter, onClickCopy } = props, rest = __rest(props, ["id", "name", "placeholder", "size", "options", "value", "defaultValue", "onChange", "disabled", "readonly", "searchable", "showClearButton", "onKeyDown", "validationState", "search", "autocomplete", "prefixIcon", "prefix", "postfix", "removeByBackspace", "addOptionByEnter", "untouchableScrollbars", "open", "enableFuzzySearch", "resetSearchOnOptionSelection", "onOpenChange", "selectedOptionFormatter", "onClickCopy"]);
|
|
36
36
|
const localRef = useRef(null);
|
|
37
37
|
const inputPlugRef = useRef(null);
|
|
38
38
|
const contentRef = useRef(null);
|
|
@@ -66,6 +66,7 @@ export const FieldSelectMultiple = forwardRef((props, ref) => {
|
|
|
66
66
|
showCopyButton: false,
|
|
67
67
|
inputRef: localRef,
|
|
68
68
|
onClear,
|
|
69
|
+
onClickCopy,
|
|
69
70
|
});
|
|
70
71
|
const commonHandleOnKeyDown = useHandleOnKeyDown({
|
|
71
72
|
inputKeyDownNavigationHandler,
|
|
@@ -12,6 +12,7 @@ export declare const FieldSelectSingle: import("react").ForwardRefExoticComponen
|
|
|
12
12
|
pinBottom?: import("./types").OptionProps[];
|
|
13
13
|
searchable?: boolean;
|
|
14
14
|
showCopyButton?: boolean;
|
|
15
|
+
onClickCopy?(): void;
|
|
15
16
|
showClearButton?: boolean;
|
|
16
17
|
readonly?: boolean;
|
|
17
18
|
prefixIcon?: import("react").ReactElement;
|
|
@@ -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 } = 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"]);
|
|
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, onClickCopy } = 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", "onClickCopy"]);
|
|
33
33
|
const localRef = useRef(null);
|
|
34
34
|
const [open = false, setOpen] = useValueControl({ value: openProp, onChange: onOpenChange });
|
|
35
35
|
const [value, setValue] = useValueControl({
|
|
@@ -73,6 +73,7 @@ export const FieldSelectSingle = forwardRef((props, ref) => {
|
|
|
73
73
|
showCopyButton,
|
|
74
74
|
inputRef: localRef,
|
|
75
75
|
onClear,
|
|
76
|
+
onClickCopy,
|
|
76
77
|
valueToCopy: selectedOptionFormatter(selectedItem),
|
|
77
78
|
});
|
|
78
79
|
const handleBlur = (e) => {
|
|
@@ -14,10 +14,11 @@ type UseButtonsProps = {
|
|
|
14
14
|
showCopyButton: boolean;
|
|
15
15
|
size: 's' | 'm' | 'l';
|
|
16
16
|
onClear(): void;
|
|
17
|
+
onClickCopy?(): void;
|
|
17
18
|
inputRef: RefObject<HTMLInputElement>;
|
|
18
19
|
valueToCopy?: string;
|
|
19
20
|
};
|
|
20
|
-
export declare function useButtons({ readonly, showClearButton, showCopyButton, size, onClear, inputRef, valueToCopy, }: UseButtonsProps): {
|
|
21
|
+
export declare function useButtons({ readonly, showClearButton, showCopyButton, size, onClear, onClickCopy, inputRef, valueToCopy, }: UseButtonsProps): {
|
|
21
22
|
postfixButtons: import("react/jsx-runtime").JSX.Element | undefined;
|
|
22
23
|
inputKeyDownNavigationHandler: KeyboardEventHandler<HTMLInputElement>;
|
|
23
24
|
buttonsRefs: (Element | null)[];
|
|
@@ -26,7 +26,7 @@ export function useHandleOnKeyDown({ setOpen, inputKeyDownNavigationHandler, onI
|
|
|
26
26
|
onInputKeyDownProp === null || onInputKeyDownProp === void 0 ? void 0 : onInputKeyDownProp(e);
|
|
27
27
|
}, [inputKeyDownNavigationHandler, onInputKeyDownProp, setOpen]);
|
|
28
28
|
}
|
|
29
|
-
export function useButtons({ readonly, showClearButton, showCopyButton, size, onClear, inputRef, valueToCopy = '', }) {
|
|
29
|
+
export function useButtons({ readonly, showClearButton, showCopyButton, size, onClear, onClickCopy, inputRef, valueToCopy = '', }) {
|
|
30
30
|
const clearButtonRef = useRef(null);
|
|
31
31
|
const copyButtonRef = useRef(null);
|
|
32
32
|
const buttonsRefs = [copyButtonRef.current, clearButtonRef.current];
|
|
@@ -41,6 +41,7 @@ export function useButtons({ readonly, showClearButton, showCopyButton, size, on
|
|
|
41
41
|
showCopyButton: readonly && showCopyButton,
|
|
42
42
|
size,
|
|
43
43
|
valueToCopy,
|
|
44
|
+
onClickCopy,
|
|
44
45
|
});
|
|
45
46
|
const { onInputKeyDown: inputKeyDownNavigationHandler, postfixButtons } = useButtonNavigation({
|
|
46
47
|
inputRef,
|
|
@@ -46,6 +46,8 @@ type FiledSelectCommonProps = WithSupportProps<{
|
|
|
46
46
|
searchable?: boolean;
|
|
47
47
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
48
48
|
showCopyButton?: boolean;
|
|
49
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
50
|
+
onClickCopy?(): void;
|
|
49
51
|
/**
|
|
50
52
|
* Отображение кнопки очистки поля
|
|
51
53
|
* @default true
|
|
@@ -8,6 +8,8 @@ type WrapperProps = Pick<FieldDecoratorProps, 'className' | 'label' | 'labelTool
|
|
|
8
8
|
type FieldTextOwnProps = {
|
|
9
9
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
10
10
|
showCopyButton?: boolean;
|
|
11
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
12
|
+
onClickCopy?(): void;
|
|
11
13
|
/**
|
|
12
14
|
* Отображение кнопки очистки поля
|
|
13
15
|
* @default true
|
|
@@ -21,7 +21,7 @@ import { getValidationState } from '../../utils/getValidationState';
|
|
|
21
21
|
import { FieldDecorator } from '../FieldDecorator';
|
|
22
22
|
import { getContainerVariant } from './helpers';
|
|
23
23
|
export const FieldText = forwardRef((_a, ref) => {
|
|
24
|
-
var { id, name, value: valueProp, placeholder, maxLength, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, allowMoreThanMaxLength = false, onChange: onChangeProp, onFocus, onBlur, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, autoComplete, prefixIcon, prefix, postfix, button: buttonProp } = _a, rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "autoComplete", "prefixIcon", "prefix", "postfix", "button"]);
|
|
24
|
+
var { id, name, value: valueProp, placeholder, maxLength, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, allowMoreThanMaxLength = false, onChange: onChangeProp, onFocus, onBlur, onClickCopy, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, autoComplete, prefixIcon, prefix, postfix, button: buttonProp } = _a, rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "disabled", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "onChange", "onFocus", "onBlur", "onClickCopy", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "size", "validationState", "error", "autoComplete", "prefixIcon", "prefix", "postfix", "button"]);
|
|
25
25
|
const [value = '', onChange] = useValueControl({
|
|
26
26
|
value: valueProp,
|
|
27
27
|
defaultValue: '',
|
|
@@ -56,6 +56,7 @@ export const FieldText = forwardRef((_a, ref) => {
|
|
|
56
56
|
valueToCopy: value,
|
|
57
57
|
prefix: typeof prefix === 'string' ? prefix : undefined,
|
|
58
58
|
postfix: typeof postfix === 'string' ? postfix : undefined,
|
|
59
|
+
onClickCopy,
|
|
59
60
|
});
|
|
60
61
|
const [isButtonFocused, setIsButtonFocused] = useState(false);
|
|
61
62
|
const onButtonFocus = useCallback(() => setIsButtonFocused(true), []);
|
|
@@ -15,6 +15,8 @@ type FieldTextAreaOwnProps = {
|
|
|
15
15
|
onChange?(value: string, e?: ChangeEvent<HTMLTextAreaElement>): void;
|
|
16
16
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
17
17
|
showCopyButton?: boolean;
|
|
18
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
19
|
+
onClickCopy?(): void;
|
|
18
20
|
/**
|
|
19
21
|
* Отображение кнопки очистки поля
|
|
20
22
|
* @default true
|
|
@@ -22,7 +22,7 @@ import { getValidationState } from '../../utils/getValidationState';
|
|
|
22
22
|
import { FieldDecorator } from '../FieldDecorator';
|
|
23
23
|
import styles from './styles.module.css';
|
|
24
24
|
export const FieldTextArea = forwardRef((_a, ref) => {
|
|
25
|
-
var { id, name, value: valueProp, placeholder, maxLength, minRows = 3, maxRows = 1000, disabled = false, resizable = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, allowMoreThanMaxLength = true, showHintIcon, onChange: onChangeProp, onFocus, onBlur, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, error, size = SIZE.S, validationState = VALIDATION_STATE.Default } = _a, rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "minRows", "maxRows", "disabled", "resizable", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "error", "size", "validationState"]);
|
|
25
|
+
var { id, name, value: valueProp, placeholder, maxLength, minRows = 3, maxRows = 1000, disabled = false, resizable = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, allowMoreThanMaxLength = true, showHintIcon, onChange: onChangeProp, onFocus, onBlur, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, error, size = SIZE.S, validationState = VALIDATION_STATE.Default, onClickCopy } = _a, rest = __rest(_a, ["id", "name", "value", "placeholder", "maxLength", "minRows", "maxRows", "disabled", "resizable", "readonly", "showCopyButton", "showClearButton", "allowMoreThanMaxLength", "showHintIcon", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "error", "size", "validationState", "onClickCopy"]);
|
|
26
26
|
const localRef = useRef(null);
|
|
27
27
|
const clearButtonRef = useRef(null);
|
|
28
28
|
const copyButtonRef = useRef(null);
|
|
@@ -43,7 +43,7 @@ export const FieldTextArea = forwardRef((_a, ref) => {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear });
|
|
46
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value });
|
|
46
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value, onClickCopy });
|
|
47
47
|
const { postfixButtons, inputTabIndex, onInputKeyDown } = useButtonNavigation({
|
|
48
48
|
inputRef: localRef,
|
|
49
49
|
postfixButtons: useMemo(() => [clearButtonSettings, copyButtonSettings], [clearButtonSettings, copyButtonSettings]),
|
|
@@ -15,6 +15,8 @@ type FieldTimeOwnProps = {
|
|
|
15
15
|
onChange?: TimePickerProps['onChangeValue'];
|
|
16
16
|
/** Отображение кнопки копирования */
|
|
17
17
|
showCopyButton?: boolean;
|
|
18
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
19
|
+
onClickCopy?(): void;
|
|
18
20
|
/** Показывать ли секунды */
|
|
19
21
|
showSeconds?: boolean;
|
|
20
22
|
/**
|
|
@@ -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 } = _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"]);
|
|
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, onClickCopy } = _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", "onClickCopy"]);
|
|
44
44
|
const [isOpen, setIsOpen] = useUncontrolledProp(open, false, onOpenChange);
|
|
45
45
|
const localRef = useRef(null);
|
|
46
46
|
const clearButtonRef = useRef(null);
|
|
@@ -75,7 +75,7 @@ export const FieldTime = forwardRef((_a, ref) => {
|
|
|
75
75
|
}, [onChange, required, setIsOpen]);
|
|
76
76
|
const valueToCopy = getStringTimeValue(valueProp, { showSeconds, locale: DEFAULT_LOCALE });
|
|
77
77
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear: handleClear });
|
|
78
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy });
|
|
78
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onClickCopy });
|
|
79
79
|
const calendarIcon = useMemo(() => ({
|
|
80
80
|
active: false,
|
|
81
81
|
show: true,
|
|
@@ -7,9 +7,10 @@ type UseCopyButtonProps = {
|
|
|
7
7
|
valueToCopy: string;
|
|
8
8
|
size: Size;
|
|
9
9
|
onValueRequest?(): AsyncValueRequest;
|
|
10
|
+
onClickCopy?(): void;
|
|
10
11
|
disabled?: boolean;
|
|
11
12
|
prefix?: string;
|
|
12
13
|
postfix?: string;
|
|
13
14
|
};
|
|
14
|
-
export declare function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, disabled, prefix, postfix, }: UseCopyButtonProps): ButtonProps;
|
|
15
|
+
export declare function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, onClickCopy, disabled, prefix, postfix, }: UseCopyButtonProps): ButtonProps;
|
|
15
16
|
export {};
|
|
@@ -2,12 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { BUTTON_SIZE_MAP } from '@snack-uikit/input-private';
|
|
4
4
|
import { ButtonCopyValue } from '../helperComponents';
|
|
5
|
-
export function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, disabled, prefix = '', postfix = '', }) {
|
|
5
|
+
export function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onValueRequest, onClickCopy, disabled, prefix = '', postfix = '', }) {
|
|
6
6
|
return useMemo(() => ({
|
|
7
7
|
id: 'copy',
|
|
8
8
|
active: true,
|
|
9
9
|
ref: copyButtonRef,
|
|
10
10
|
show: showCopyButton,
|
|
11
|
-
render: props => (_jsx(ButtonCopyValue, Object.assign({}, props, { size: BUTTON_SIZE_MAP[size], valueToCopy: (prefix !== null && prefix !== void 0 ? prefix : '') + valueToCopy + (postfix !== null && postfix !== void 0 ? postfix : ''), onValueRequest: onValueRequest, disabled: disabled }))),
|
|
12
|
-
}), [copyButtonRef,
|
|
11
|
+
render: props => (_jsx(ButtonCopyValue, Object.assign({}, props, { size: BUTTON_SIZE_MAP[size], valueToCopy: (prefix !== null && prefix !== void 0 ? prefix : '') + valueToCopy + (postfix !== null && postfix !== void 0 ? postfix : ''), onValueRequest: onValueRequest, onClick: onClickCopy, disabled: disabled }))),
|
|
12
|
+
}), [copyButtonRef, showCopyButton, size, prefix, valueToCopy, postfix, onValueRequest, onClickCopy, disabled]);
|
|
13
13
|
}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Fields",
|
|
7
|
-
"version": "0.32.
|
|
7
|
+
"version": "0.32.4-preview-481a0237.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"scripts": {},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@snack-uikit/button": "0.19.1",
|
|
40
|
-
"@snack-uikit/calendar": "0.11.
|
|
40
|
+
"@snack-uikit/calendar": "0.11.3",
|
|
41
41
|
"@snack-uikit/color-picker": "0.3.1",
|
|
42
42
|
"@snack-uikit/divider": "3.2.0",
|
|
43
43
|
"@snack-uikit/dropdown": "0.4.0",
|
|
44
44
|
"@snack-uikit/icons": "0.24.0",
|
|
45
45
|
"@snack-uikit/input-private": "4.2.1",
|
|
46
|
-
"@snack-uikit/list": "0.21.
|
|
46
|
+
"@snack-uikit/list": "0.21.3",
|
|
47
47
|
"@snack-uikit/scroll": "0.9.0",
|
|
48
48
|
"@snack-uikit/skeleton": "0.5.0",
|
|
49
49
|
"@snack-uikit/slider": "0.3.1",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@snack-uikit/locale": "*"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "d3588d229ca3a76ee95cd5d6176302c51d5012fc"
|
|
69
69
|
}
|
|
@@ -41,6 +41,8 @@ type FieldDateOwnProps = {
|
|
|
41
41
|
onOpenChange?(value: boolean): void;
|
|
42
42
|
/** Отображение кнопки копирования */
|
|
43
43
|
showCopyButton?: boolean;
|
|
44
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
45
|
+
onClickCopy?(): void;
|
|
44
46
|
/**
|
|
45
47
|
* Отображение кнопки Очистки поля
|
|
46
48
|
* @default true
|
|
@@ -82,6 +84,7 @@ export const FieldColor = forwardRef<HTMLInputElement, FieldColorProps>(
|
|
|
82
84
|
placeholder,
|
|
83
85
|
onFocus,
|
|
84
86
|
onBlur,
|
|
87
|
+
onClickCopy,
|
|
85
88
|
...rest
|
|
86
89
|
},
|
|
87
90
|
ref,
|
|
@@ -110,7 +113,7 @@ export const FieldColor = forwardRef<HTMLInputElement, FieldColorProps>(
|
|
|
110
113
|
};
|
|
111
114
|
|
|
112
115
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear });
|
|
113
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value });
|
|
116
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value, onClickCopy });
|
|
114
117
|
const { postfixButtons, inputTabIndex, onInputKeyDown } = useButtonNavigation({
|
|
115
118
|
inputRef: localRef,
|
|
116
119
|
postfixButtons: useMemo(
|
|
@@ -58,6 +58,8 @@ type FieldDateOwnProps = {
|
|
|
58
58
|
onChange?(value: Date | undefined): void;
|
|
59
59
|
/** Отображение кнопки копирования */
|
|
60
60
|
showCopyButton?: boolean;
|
|
61
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
62
|
+
onClickCopy?(): void;
|
|
61
63
|
/**
|
|
62
64
|
* Отображение кнопки Очистки поля
|
|
63
65
|
* @default true
|
|
@@ -102,6 +104,7 @@ export const FieldDate = forwardRef<HTMLInputElement, FieldDateProps>(
|
|
|
102
104
|
buildCellProps,
|
|
103
105
|
error,
|
|
104
106
|
mode,
|
|
107
|
+
onClickCopy,
|
|
105
108
|
...rest
|
|
106
109
|
},
|
|
107
110
|
ref,
|
|
@@ -168,7 +171,7 @@ export const FieldDate = forwardRef<HTMLInputElement, FieldDateProps>(
|
|
|
168
171
|
|
|
169
172
|
const valueToCopy = getStringDateValue(valueProp);
|
|
170
173
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear: handleClear });
|
|
171
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy });
|
|
174
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onClickCopy });
|
|
172
175
|
const calendarIcon: ButtonProps = useMemo(
|
|
173
176
|
() => ({
|
|
174
177
|
active: false,
|
|
@@ -47,6 +47,8 @@ type FieldSecureOwnProps = {
|
|
|
47
47
|
onHiddenChange?(value: boolean): void;
|
|
48
48
|
/** Отображение кнопки копирования */
|
|
49
49
|
showCopyButton?: boolean;
|
|
50
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
51
|
+
onClickCopy?(): void;
|
|
50
52
|
/** Можно ли вводить больше разрешённого кол-ва символов */
|
|
51
53
|
allowMoreThanMaxLength?: boolean;
|
|
52
54
|
/** Иконка-префикс для поля */
|
|
@@ -88,6 +90,7 @@ export const FieldSecure = forwardRef<HTMLInputElement, FieldSecureProps>(
|
|
|
88
90
|
error,
|
|
89
91
|
asyncValueGetter,
|
|
90
92
|
autoComplete,
|
|
93
|
+
onClickCopy,
|
|
91
94
|
...rest
|
|
92
95
|
},
|
|
93
96
|
ref,
|
|
@@ -166,6 +169,7 @@ export const FieldSecure = forwardRef<HTMLInputElement, FieldSecureProps>(
|
|
|
166
169
|
valueToCopy: value,
|
|
167
170
|
onValueRequest: getAsyncValue,
|
|
168
171
|
disabled: isLoading,
|
|
172
|
+
onClickCopy,
|
|
169
173
|
});
|
|
170
174
|
|
|
171
175
|
const hideButtonSettings = useHideButton({
|
|
@@ -53,6 +53,7 @@ export const FieldSelectMultiple = forwardRef<HTMLInputElement, FieldSelectMulti
|
|
|
53
53
|
resetSearchOnOptionSelection = true,
|
|
54
54
|
onOpenChange,
|
|
55
55
|
selectedOptionFormatter = defaultSelectedOptionFormatter,
|
|
56
|
+
onClickCopy,
|
|
56
57
|
...rest
|
|
57
58
|
} = props;
|
|
58
59
|
const localRef = useRef<HTMLInputElement>(null);
|
|
@@ -104,6 +105,7 @@ export const FieldSelectMultiple = forwardRef<HTMLInputElement, FieldSelectMulti
|
|
|
104
105
|
showCopyButton: false,
|
|
105
106
|
inputRef: localRef,
|
|
106
107
|
onClear,
|
|
108
|
+
onClickCopy,
|
|
107
109
|
});
|
|
108
110
|
|
|
109
111
|
const commonHandleOnKeyDown = useHandleOnKeyDown({
|
|
@@ -59,6 +59,7 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
|
|
|
59
59
|
onOpenChange,
|
|
60
60
|
selectedOptionFormatter = defaultSelectedOptionFormatter,
|
|
61
61
|
enableFuzzySearch = true,
|
|
62
|
+
onClickCopy,
|
|
62
63
|
...rest
|
|
63
64
|
} = props;
|
|
64
65
|
const localRef = useRef<HTMLInputElement>(null);
|
|
@@ -123,6 +124,7 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
|
|
|
123
124
|
showCopyButton,
|
|
124
125
|
inputRef: localRef,
|
|
125
126
|
onClear,
|
|
127
|
+
onClickCopy,
|
|
126
128
|
valueToCopy: selectedOptionFormatter(selectedItem),
|
|
127
129
|
});
|
|
128
130
|
|
|
@@ -60,6 +60,7 @@ type UseButtonsProps = {
|
|
|
60
60
|
showCopyButton: boolean;
|
|
61
61
|
size: 's' | 'm' | 'l';
|
|
62
62
|
onClear(): void;
|
|
63
|
+
onClickCopy?(): void;
|
|
63
64
|
inputRef: RefObject<HTMLInputElement>;
|
|
64
65
|
valueToCopy?: string;
|
|
65
66
|
};
|
|
@@ -70,6 +71,7 @@ export function useButtons({
|
|
|
70
71
|
showCopyButton,
|
|
71
72
|
size,
|
|
72
73
|
onClear,
|
|
74
|
+
onClickCopy,
|
|
73
75
|
inputRef,
|
|
74
76
|
valueToCopy = '',
|
|
75
77
|
}: UseButtonsProps) {
|
|
@@ -89,6 +91,7 @@ export function useButtons({
|
|
|
89
91
|
showCopyButton: readonly && showCopyButton,
|
|
90
92
|
size,
|
|
91
93
|
valueToCopy,
|
|
94
|
+
onClickCopy,
|
|
92
95
|
});
|
|
93
96
|
const { onInputKeyDown: inputKeyDownNavigationHandler, postfixButtons } = useButtonNavigation({
|
|
94
97
|
inputRef,
|
|
@@ -98,6 +98,8 @@ type FiledSelectCommonProps = WithSupportProps<{
|
|
|
98
98
|
searchable?: boolean;
|
|
99
99
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
100
100
|
showCopyButton?: boolean;
|
|
101
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
102
|
+
onClickCopy?(): void;
|
|
101
103
|
/**
|
|
102
104
|
* Отображение кнопки очистки поля
|
|
103
105
|
* @default true
|
|
@@ -36,6 +36,8 @@ type WrapperProps = Pick<
|
|
|
36
36
|
type FieldTextOwnProps = {
|
|
37
37
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
38
38
|
showCopyButton?: boolean;
|
|
39
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
40
|
+
onClickCopy?(): void;
|
|
39
41
|
/**
|
|
40
42
|
* Отображение кнопки очистки поля
|
|
41
43
|
* @default true
|
|
@@ -71,6 +73,7 @@ export const FieldText = forwardRef<HTMLInputElement, FieldTextProps>(
|
|
|
71
73
|
onChange: onChangeProp,
|
|
72
74
|
onFocus,
|
|
73
75
|
onBlur,
|
|
76
|
+
onClickCopy,
|
|
74
77
|
className,
|
|
75
78
|
label,
|
|
76
79
|
labelTooltip,
|
|
@@ -139,6 +142,7 @@ export const FieldText = forwardRef<HTMLInputElement, FieldTextProps>(
|
|
|
139
142
|
valueToCopy: value,
|
|
140
143
|
prefix: typeof prefix === 'string' ? prefix : undefined,
|
|
141
144
|
postfix: typeof postfix === 'string' ? postfix : undefined,
|
|
145
|
+
onClickCopy,
|
|
142
146
|
});
|
|
143
147
|
|
|
144
148
|
const [isButtonFocused, setIsButtonFocused] = useState(false);
|
|
@@ -41,6 +41,8 @@ type FieldTextAreaOwnProps = {
|
|
|
41
41
|
onChange?(value: string, e?: ChangeEvent<HTMLTextAreaElement>): void;
|
|
42
42
|
/** Отображение кнопки Копировать для поля (актуально только для `readonly = true`) */
|
|
43
43
|
showCopyButton?: boolean;
|
|
44
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
45
|
+
onClickCopy?(): void;
|
|
44
46
|
/**
|
|
45
47
|
* Отображение кнопки очистки поля
|
|
46
48
|
* @default true
|
|
@@ -82,6 +84,7 @@ export const FieldTextArea = forwardRef<HTMLTextAreaElement, FieldTextAreaProps>
|
|
|
82
84
|
error,
|
|
83
85
|
size = SIZE.S,
|
|
84
86
|
validationState = VALIDATION_STATE.Default,
|
|
87
|
+
onClickCopy,
|
|
85
88
|
...rest
|
|
86
89
|
},
|
|
87
90
|
ref,
|
|
@@ -110,7 +113,7 @@ export const FieldTextArea = forwardRef<HTMLTextAreaElement, FieldTextAreaProps>
|
|
|
110
113
|
};
|
|
111
114
|
|
|
112
115
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear });
|
|
113
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value });
|
|
116
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy: value, onClickCopy });
|
|
114
117
|
const { postfixButtons, inputTabIndex, onInputKeyDown } = useButtonNavigation({
|
|
115
118
|
inputRef: localRef,
|
|
116
119
|
postfixButtons: useMemo(
|
|
@@ -52,6 +52,8 @@ type FieldTimeOwnProps = {
|
|
|
52
52
|
onChange?: TimePickerProps['onChangeValue'];
|
|
53
53
|
/** Отображение кнопки копирования */
|
|
54
54
|
showCopyButton?: boolean;
|
|
55
|
+
/** Колбек клика по кнопке Копировать для поля */
|
|
56
|
+
onClickCopy?(): void;
|
|
55
57
|
/** Показывать ли секунды */
|
|
56
58
|
showSeconds?: boolean;
|
|
57
59
|
/**
|
|
@@ -110,6 +112,7 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
|
|
|
110
112
|
size = SIZE.S,
|
|
111
113
|
validationState = VALIDATION_STATE.Default,
|
|
112
114
|
error,
|
|
115
|
+
onClickCopy,
|
|
113
116
|
...rest
|
|
114
117
|
},
|
|
115
118
|
ref,
|
|
@@ -154,7 +157,7 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
|
|
|
154
157
|
|
|
155
158
|
const valueToCopy = getStringTimeValue(valueProp, { showSeconds, locale: DEFAULT_LOCALE });
|
|
156
159
|
const clearButtonSettings = useClearButton({ clearButtonRef, showClearButton, size, onClear: handleClear });
|
|
157
|
-
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy });
|
|
160
|
+
const copyButtonSettings = useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy, onClickCopy });
|
|
158
161
|
const calendarIcon: ButtonProps = useMemo(
|
|
159
162
|
() => ({
|
|
160
163
|
active: false,
|
|
@@ -11,6 +11,7 @@ type UseCopyButtonProps = {
|
|
|
11
11
|
valueToCopy: string;
|
|
12
12
|
size: Size;
|
|
13
13
|
onValueRequest?(): AsyncValueRequest;
|
|
14
|
+
onClickCopy?(): void;
|
|
14
15
|
disabled?: boolean;
|
|
15
16
|
prefix?: string;
|
|
16
17
|
postfix?: string;
|
|
@@ -22,6 +23,7 @@ export function useCopyButton({
|
|
|
22
23
|
size,
|
|
23
24
|
valueToCopy,
|
|
24
25
|
onValueRequest,
|
|
26
|
+
onClickCopy,
|
|
25
27
|
disabled,
|
|
26
28
|
prefix = '',
|
|
27
29
|
postfix = '',
|
|
@@ -38,10 +40,11 @@ export function useCopyButton({
|
|
|
38
40
|
size={BUTTON_SIZE_MAP[size]}
|
|
39
41
|
valueToCopy={(prefix ?? '') + valueToCopy + (postfix ?? '')}
|
|
40
42
|
onValueRequest={onValueRequest}
|
|
43
|
+
onClick={onClickCopy}
|
|
41
44
|
disabled={disabled}
|
|
42
45
|
/>
|
|
43
46
|
),
|
|
44
47
|
}),
|
|
45
|
-
[copyButtonRef,
|
|
48
|
+
[copyButtonRef, showCopyButton, size, prefix, valueToCopy, postfix, onValueRequest, onClickCopy, disabled],
|
|
46
49
|
);
|
|
47
50
|
}
|