@snack-uikit/fields 0.53.2-preview-45b61941.0 → 0.53.2-preview-0a70077b.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 +129 -22
- package/dist/cjs/components/FieldAdd/FieldAdd.d.ts +52 -0
- package/dist/cjs/components/FieldAdd/FieldAdd.js +216 -0
- package/dist/cjs/components/FieldAdd/index.d.ts +2 -0
- package/dist/cjs/components/FieldAdd/index.js +13 -0
- package/dist/cjs/components/FieldAdd/styles.module.css +51 -0
- package/dist/cjs/components/FieldSecure/FieldSecure.d.ts +1 -1
- package/dist/cjs/components/FieldSelect/types.d.ts +1 -0
- package/dist/cjs/components/FieldText/FieldText.d.ts +1 -1
- package/dist/cjs/components/FieldTextArea/FieldTextArea.d.ts +1 -1
- package/dist/cjs/components/FieldTime/FieldTime.d.ts +2 -22
- package/dist/cjs/components/FieldTime/FieldTime.js +3 -5
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/helperComponents/ButtonFieldList/ButtonFieldList.d.ts +1 -1
- package/dist/esm/components/FieldAdd/FieldAdd.d.ts +52 -0
- package/dist/esm/components/FieldAdd/FieldAdd.js +31 -0
- package/dist/esm/components/FieldAdd/index.d.ts +2 -0
- package/dist/esm/components/FieldAdd/index.js +1 -0
- package/dist/esm/components/FieldAdd/styles.module.css +51 -0
- package/dist/esm/components/FieldSecure/FieldSecure.d.ts +1 -1
- package/dist/esm/components/FieldSelect/types.d.ts +1 -0
- package/dist/esm/components/FieldText/FieldText.d.ts +1 -1
- package/dist/esm/components/FieldTextArea/FieldTextArea.d.ts +1 -1
- package/dist/esm/components/FieldTime/FieldTime.d.ts +2 -22
- package/dist/esm/components/FieldTime/FieldTime.js +2 -2
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/helperComponents/ButtonFieldList/ButtonFieldList.d.ts +1 -1
- package/package.json +3 -3
- package/src/components/FieldAdd/FieldAdd.tsx +215 -0
- package/src/components/FieldAdd/index.ts +3 -0
- package/src/components/FieldAdd/styles.module.scss +60 -0
- package/src/components/FieldSelect/types.ts +1 -0
- package/src/components/FieldTime/FieldTime.tsx +1 -3
- package/src/components/index.ts +1 -0
package/README.md
CHANGED
|
@@ -128,6 +128,50 @@ export function FieldSelectExample() {
|
|
|
128
128
|
}
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
+
## FieldAdd
|
|
132
|
+
|
|
133
|
+
### Description
|
|
134
|
+
|
|
135
|
+
- `FieldAdd` — составной контрол для сценариев, где нужно выбрать существующее значение и рядом дать быстрое действие на создание нового.
|
|
136
|
+
- Внутри использует одиночный `FieldSelect` и кнопку добавления, поэтому наследует состояния поля (`disabled`, `readonly`, `loading`, `validationState`) и возможности селекта вроде поиска, очистки и кастомных empty-state экранов.
|
|
137
|
+
- Подходит для форм и мастеров создания сущностей, где пользователь может либо выбрать уже существующий объект, либо сразу перейти к созданию нового.
|
|
138
|
+
- Figma: [`FieldAdd`](https://www.figma.com/design/sLD7Z9OcMX5GPsp9LXb6mw/-PD-2059--%D0%9F%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD-FieldAdd?node-id=16177-2&m=dev).
|
|
139
|
+
|
|
140
|
+
### Example
|
|
141
|
+
|
|
142
|
+
```tsx
|
|
143
|
+
import { useState } from 'react';
|
|
144
|
+
import { FieldAdd } from '@snack-uikit/fields';
|
|
145
|
+
|
|
146
|
+
const OPTIONS = [
|
|
147
|
+
{ value: 'op1', option: 'Option 1' },
|
|
148
|
+
{ value: 'op2', option: 'Option 2' },
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
export function FieldAddExample() {
|
|
152
|
+
const [value, setValue] = useState<string | undefined>();
|
|
153
|
+
|
|
154
|
+
return (
|
|
155
|
+
<FieldAdd
|
|
156
|
+
id='field-add'
|
|
157
|
+
label='Select option'
|
|
158
|
+
placeholder='Placeholder'
|
|
159
|
+
options={OPTIONS}
|
|
160
|
+
value={value}
|
|
161
|
+
onChange={setValue}
|
|
162
|
+
searchable
|
|
163
|
+
addButton={{
|
|
164
|
+
label: 'Create',
|
|
165
|
+
onClick: () => {
|
|
166
|
+
// open create flow
|
|
167
|
+
},
|
|
168
|
+
}}
|
|
169
|
+
size='s'
|
|
170
|
+
/>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
131
175
|
## FieldSecure
|
|
132
176
|
|
|
133
177
|
### Description
|
|
@@ -555,6 +599,70 @@ FieldStepper в основном предназначен для работы с
|
|
|
555
599
|
|
|
556
600
|
[//]: DOCUMENTATION_SECTION_START
|
|
557
601
|
[//]: THIS_SECTION_IS_AUTOGENERATED_PLEASE_DONT_EDIT_IT
|
|
602
|
+
## FieldAdd
|
|
603
|
+
### Props
|
|
604
|
+
| name | type | default value | description |
|
|
605
|
+
|------|------|---------------|-------------|
|
|
606
|
+
| options* | `OptionProps[]` | - | |
|
|
607
|
+
| id | `string` | - | Значение html-атрибута id |
|
|
608
|
+
| name | `string` | - | Значение html-атрибута name |
|
|
609
|
+
| placeholder | `string` | - | Значение плейсхолдера |
|
|
610
|
+
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
611
|
+
| readonly | `boolean` | - | Является ли поле доступным только для чтения |
|
|
612
|
+
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
|
|
613
|
+
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
|
|
614
|
+
| onKeyDown | `KeyboardEventHandler<HTMLInputElement>` | - | Колбек обработки начала нажатия клавиши клавиатуры |
|
|
615
|
+
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
616
|
+
| className | `string` | - | CSS-класс |
|
|
617
|
+
| label | `string` | - | Лейбл |
|
|
618
|
+
| labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
|
|
619
|
+
| required | `boolean` | - | Является ли поле обязательным |
|
|
620
|
+
| caption | `string` | - | Подпись справа от лейбла |
|
|
621
|
+
| hint | `string` | - | Подсказка внизу |
|
|
622
|
+
| showHintIcon | `boolean` | - | Отображать иконку подсказки |
|
|
623
|
+
| size | enum Size: `"s"`, `"m"`, `"l"` | s | Размер |
|
|
624
|
+
| validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
|
|
625
|
+
| labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
|
|
626
|
+
| error | `string` | - | |
|
|
627
|
+
| loading | `boolean` | - | Отображать ли состояние загрузки данных в поле и списке |
|
|
628
|
+
| prefix | `ReactNode` | - | Произвольный префикс для поля |
|
|
629
|
+
| postfix | `ReactNode` | - | Произвольный постфикс для поля |
|
|
630
|
+
| defaultValue | `ItemId` | - | Начальное состояние |
|
|
631
|
+
| value | `ItemId` | - | Controlled состояние |
|
|
632
|
+
| onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
|
|
633
|
+
| pinTop | `OptionProps[]` | - | |
|
|
634
|
+
| pinBottom | `OptionProps[]` | - | |
|
|
635
|
+
| searchable | `boolean` | true | |
|
|
636
|
+
| showCopyButton | `boolean` | true | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
|
|
637
|
+
| onCopyButtonClick | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
638
|
+
| showClearButton | `boolean` | true | Отображение кнопки очистки поля |
|
|
639
|
+
| prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
|
|
640
|
+
| footer | `ReactNode` | - | |
|
|
641
|
+
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | - | |
|
|
642
|
+
| search | `SearchState` | - | |
|
|
643
|
+
| autocomplete | `boolean` | - | |
|
|
644
|
+
| addOptionByEnter | `boolean` | - | |
|
|
645
|
+
| open | `boolean` | - | |
|
|
646
|
+
| enableFuzzySearch | `boolean` | true | Включить нечеткий поиск |
|
|
647
|
+
| resetSearchOnOptionSelection | `boolean` | true | Поведение строки поиска при выборе опции из списка, false необходимо при асинхронной подгрузке значений с бэка, в случае если надо поиск оставить как значение при отсутствии данных |
|
|
648
|
+
| onOpenChange | `(open: boolean) => void` | - | |
|
|
649
|
+
| selectedOptionFormatter | `SelectedOptionFormatter` | - | |
|
|
650
|
+
| scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
|
|
651
|
+
| virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
|
|
652
|
+
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
653
|
+
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
654
|
+
| untouchableScrollbars | `boolean` | - | Отключает возможность взаимодействовать со скролбарами мышью. |
|
|
655
|
+
| onScroll | `(event?: Event) => void` | - | Колбек на скролл прокручиваемого списка |
|
|
656
|
+
| dataFiltered | `boolean` | - | |
|
|
657
|
+
| dataError | `boolean` | - | |
|
|
658
|
+
| noDataState | `EmptyStateProps` | - | Экран при отстутствии данных |
|
|
659
|
+
| noResultsState | `EmptyStateProps` | - | Экран при отстутствии результатов поиска или фильтров |
|
|
660
|
+
| errorDataState | `EmptyStateProps` | - | Экран при ошибке запроса |
|
|
661
|
+
| addButton | `FieldAddButtonProps` | - | Настройки кнопки добавления справа от поля |
|
|
662
|
+
| controlTooltip | `Omit<TooltipProps, "children">` | - | Тултип над контролом выбора значения |
|
|
663
|
+
| showAddButton | `boolean` | - | Показывать ли кнопку добавления; в `readonly` режиме кнопка скрывается независимо от значения пропса |
|
|
664
|
+
| 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} |
|
|
665
|
+
| key | `Key` | - | |
|
|
558
666
|
## FieldColor
|
|
559
667
|
### Props
|
|
560
668
|
| name | type | default value | description |
|
|
@@ -566,17 +674,17 @@ FieldStepper в основном предназначен для работы с
|
|
|
566
674
|
| showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
|
|
567
675
|
| value | `string` | - | Значение input |
|
|
568
676
|
| onChange | `(value: string) => void` | - | |
|
|
677
|
+
| className | `string` | - | Класснейм |
|
|
569
678
|
| withAlpha | `boolean` | - | Значение с альфаканалом |
|
|
570
679
|
| autoApply | `boolean` | - | Применять изменения автоматически, если значение false - то изменения происходят по кнопке |
|
|
571
|
-
| className | `string` | - | Класснейм |
|
|
572
680
|
| colorMode | `{ hex?: boolean; rgb?: boolean; hsv?: boolean; }` | - | |
|
|
573
681
|
| id | `string` | - | Значение html-атрибута id |
|
|
574
682
|
| name | `string` | - | Значение html-атрибута name |
|
|
683
|
+
| placeholder | `string` | - | Значение плейсхолдера |
|
|
575
684
|
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
576
685
|
| readonly | `boolean` | - | Является ли поле доступным только для чтения |
|
|
577
686
|
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
|
|
578
687
|
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
|
|
579
|
-
| placeholder | `string` | - | Значение плейсхолдера |
|
|
580
688
|
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
581
689
|
| label | `string` | - | Лейбл |
|
|
582
690
|
| labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
|
|
@@ -657,15 +765,15 @@ FieldStepper в основном предназначен для работы с
|
|
|
657
765
|
| allowMoreThanMaxLength | `boolean` | - | Можно ли вводить больше разрешённого кол-ва символов |
|
|
658
766
|
| prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
|
|
659
767
|
| asyncValueGetter | `() => Promise<string>` | - | Свойство позволяет грузить данные в поле по требованию |
|
|
660
|
-
| onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
|
|
661
768
|
| value | `string` | - | Значение input |
|
|
769
|
+
| onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
|
|
662
770
|
| id | `string` | - | Значение html-атрибута id |
|
|
663
771
|
| name | `string` | - | Значение html-атрибута name |
|
|
772
|
+
| placeholder | `string` | - | Значение плейсхолдера |
|
|
664
773
|
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
665
774
|
| readonly | `boolean` | - | Является ли поле доступным только для чтения |
|
|
666
775
|
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
|
|
667
776
|
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
|
|
668
|
-
| placeholder | `string` | - | Значение плейсхолдера |
|
|
669
777
|
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
670
778
|
| maxLength | `number` | - | Максимальная длина вводимого значения |
|
|
671
779
|
| autoComplete | `string \| boolean` | false | Включен ли автокомплит для поля |
|
|
@@ -689,13 +797,13 @@ FieldStepper в основном предназначен для работы с
|
|
|
689
797
|
| options* | `OptionProps[]` | - | |
|
|
690
798
|
| id | `string` | - | Значение html-атрибута id |
|
|
691
799
|
| name | `string` | - | Значение html-атрибута name |
|
|
800
|
+
| placeholder | `string` | - | Значение плейсхолдера |
|
|
692
801
|
| disabled | `boolean` | false | Является ли поле деактивированным |
|
|
693
802
|
| readonly | `boolean` | false false | Является ли поле доступным только для чтения |
|
|
694
803
|
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
|
|
695
804
|
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
|
|
696
|
-
| placeholder | `string` | - | Значение плейсхолдера |
|
|
697
|
-
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
698
805
|
| onKeyDown | `KeyboardEventHandler<HTMLInputElement>` | - | Колбек обработки начала нажатия клавиши клавиатуры |
|
|
806
|
+
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
699
807
|
| className | `string` | - | CSS-класс |
|
|
700
808
|
| label | `string` | - | Лейбл |
|
|
701
809
|
| labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
|
|
@@ -707,12 +815,12 @@ FieldStepper в основном предназначен для работы с
|
|
|
707
815
|
| validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | - | Состояние валидации |
|
|
708
816
|
| labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
|
|
709
817
|
| error | `string` | - | |
|
|
710
|
-
| loading | `boolean` | - |
|
|
818
|
+
| loading | `boolean` | - | Отображать ли состояние загрузки данных в поле и списке |
|
|
711
819
|
| prefix | `ReactNode` | - | Произвольный префикс для поля |
|
|
712
820
|
| postfix | `ReactNode` | - | Произвольный постфикс для поля |
|
|
713
|
-
| onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
|
|
714
|
-
| value | `ItemId \| ItemId[]` | - | Controlled состояние |
|
|
715
821
|
| defaultValue | `ItemId \| ItemId[]` | - | Начальное состояние |
|
|
822
|
+
| value | `ItemId \| ItemId[]` | - | Controlled состояние |
|
|
823
|
+
| onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
|
|
716
824
|
| pinTop | `OptionProps[]` | - | |
|
|
717
825
|
| pinBottom | `OptionProps[]` | - | |
|
|
718
826
|
| searchable | `boolean` | - | |
|
|
@@ -732,8 +840,8 @@ FieldStepper в основном предназначен для работы с
|
|
|
732
840
|
| selectedOptionFormatter | `SelectedOptionFormatter` | - | |
|
|
733
841
|
| scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
|
|
734
842
|
| virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
|
|
735
|
-
| scrollRef | `
|
|
736
|
-
| scrollContainerRef | `
|
|
843
|
+
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
844
|
+
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
737
845
|
| untouchableScrollbars | `boolean` | - | Отключает возможность взаимодействовать со скролбарами мышью. |
|
|
738
846
|
| onScroll | `(event?: Event) => void` | - | Колбек на скролл прокручиваемого списка |
|
|
739
847
|
| dataFiltered | `boolean` | - | |
|
|
@@ -762,8 +870,8 @@ FieldStepper в основном предназначен для работы с
|
|
|
762
870
|
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
|
|
763
871
|
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
|
|
764
872
|
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
765
|
-
| onChange | `(value: number \| number[]) => void` | - | |
|
|
766
873
|
| value | `number \| number[]` | - | |
|
|
874
|
+
| onChange | `(value: number \| number[]) => void` | - | |
|
|
767
875
|
| range | `boolean` | - | |
|
|
768
876
|
| tipFormatter | `(value: string \| number) => ReactNode` | - | |
|
|
769
877
|
| step | `number` | - | |
|
|
@@ -829,22 +937,22 @@ FieldStepper в основном предназначен для работы с
|
|
|
829
937
|
| postfix | `ReactNode` | - | Произвольный постфикс для поля |
|
|
830
938
|
| button | `Button` | - | Кнопка действия внутри поля |
|
|
831
939
|
| type | "text" \| "tel" \| "email" | text | |
|
|
832
|
-
| onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
|
|
833
940
|
| value | `string` | - | Значение input |
|
|
834
|
-
|
|
|
941
|
+
| onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
|
|
942
|
+
| inputMode | enum InputMode: `"search"`, `"none"`, `"text"`, `"tel"`, `"email"`, `"decimal"`, `"numeric"`, `"url"` | - | Режим работы экранной клавиатуры |
|
|
835
943
|
| id | `string` | - | Значение html-атрибута id |
|
|
836
944
|
| name | `string` | - | Значение html-атрибута name |
|
|
945
|
+
| placeholder | `string` | - | Значение плейсхолдера |
|
|
837
946
|
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
838
947
|
| readonly | `boolean` | - | Является ли поле доступным только для чтения |
|
|
839
948
|
| onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
|
|
840
949
|
| onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
|
|
841
|
-
|
|
|
950
|
+
| onKeyDown | `KeyboardEventHandler<HTMLInputElement>` | - | Колбек обработки начала нажатия клавиши клавиатуры |
|
|
842
951
|
| autoFocus | `boolean` | false | Включен ли авто-фокус для поля |
|
|
843
952
|
| maxLength | `number` | - | Максимальная длина вводимого значения |
|
|
844
953
|
| autoComplete | `string \| boolean` | false | Включен ли автокомплит для поля |
|
|
845
954
|
| spellCheck | `boolean` | true | Значение атрибута spellcheck (проверка орфографии) |
|
|
846
955
|
| pattern | `string` | - | Регулярное выражение валидного инпута |
|
|
847
|
-
| onKeyDown | `KeyboardEventHandler<HTMLInputElement>` | - | Колбек обработки начала нажатия клавиши клавиатуры |
|
|
848
956
|
| onPaste | `ClipboardEventHandler<HTMLInputElement>` | - | Колбек обработки вставки значения |
|
|
849
957
|
| className | `string` | - | CSS-класс |
|
|
850
958
|
| label | `string` | - | Лейбл |
|
|
@@ -875,16 +983,16 @@ FieldStepper в основном предназначен для работы с
|
|
|
875
983
|
| value | `string` | - | HTML-аттрибут value |
|
|
876
984
|
| id | `string` | - | HTML-аттрибут id |
|
|
877
985
|
| name | `string` | - | HTML-аттрибут name |
|
|
986
|
+
| placeholder | `string` | - | Плейсхолдер |
|
|
878
987
|
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
879
988
|
| readonly | `boolean` | - | Является ли поле доступным только на чтение |
|
|
880
989
|
| onFocus | `FocusEventHandler<HTMLTextAreaElement>` | - | Колбек получения фокуса |
|
|
881
990
|
| onBlur | `FocusEventHandler<HTMLTextAreaElement>` | - | Колбек потери фокуса |
|
|
882
|
-
|
|
|
991
|
+
| onKeyDown | `KeyboardEventHandler<HTMLTextAreaElement>` | - | Колбек нажатия клавиши клавиатуры |
|
|
883
992
|
| autoFocus | `boolean` | - | Включен ли авто-фокус |
|
|
884
993
|
| maxLength | `number` | - | Максимальное кол-во символов |
|
|
885
|
-
| inputMode | enum InputMode: `"
|
|
994
|
+
| inputMode | enum InputMode: `"search"`, `"none"`, `"text"`, `"tel"`, `"email"`, `"decimal"`, `"numeric"`, `"url"` | - | Режим работы экранной клавиатуры |
|
|
886
995
|
| spellCheck | `boolean` | true | Включение проверки орфографии |
|
|
887
|
-
| onKeyDown | `KeyboardEventHandler<HTMLTextAreaElement>` | - | Колбек нажатия клавиши клавиатуры |
|
|
888
996
|
| className | `string` | - | CSS-класс |
|
|
889
997
|
| label | `string` | - | Лейбл |
|
|
890
998
|
| labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
|
|
@@ -910,7 +1018,6 @@ FieldStepper в основном предназначен для работы с
|
|
|
910
1018
|
| onCopyButtonClick | `() => void` | - | Колбек клика по кнопке Копировать для поля |
|
|
911
1019
|
| showSeconds | `boolean` | true | Показывать ли секунды |
|
|
912
1020
|
| showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
|
|
913
|
-
| footerMode | enum TimePickerFooterMode: `"current-and-apply"`, `"apply-only"` | current-and-apply | Режим футера: кнопка «Текущее время» и компактная «Применить», либо одна широкая «Применить» с подписью. |
|
|
914
1021
|
| id | `string` | - | Значение html-атрибута id |
|
|
915
1022
|
| name | `string` | - | Значение html-атрибута name |
|
|
916
1023
|
| disabled | `boolean` | - | Является ли поле деактивированным |
|
|
@@ -935,8 +1042,8 @@ FieldStepper в основном предназначен для работы с
|
|
|
935
1042
|
### Props
|
|
936
1043
|
| name | type | default value | description |
|
|
937
1044
|
|------|------|---------------|-------------|
|
|
938
|
-
| __@metadata@
|
|
939
|
-
| __@hasInstance@
|
|
1045
|
+
| __@metadata@1080* | `DecoratorMetadataObject` | - | |
|
|
1046
|
+
| __@hasInstance@1078* | `(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. |
|
|
940
1047
|
| name* | `string` | - | Returns the name of the function. Function names are read-only and can not be changed. |
|
|
941
1048
|
| caller* | `Function` | - | |
|
|
942
1049
|
| arguments* | `any` | - | |
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ButtonOutlineProps } from '@snack-uikit/button';
|
|
2
|
+
import { TooltipProps } from '@snack-uikit/tooltip';
|
|
3
|
+
import { FieldSelectSingleProps } from '../FieldSelect';
|
|
4
|
+
export type FieldAddButtonProps = Omit<ButtonOutlineProps, 'appearance' | 'icon' | 'size' | 'label'> & {
|
|
5
|
+
/** Текст действия для кнопки добавления; используется как fallback для `tooltip.tip` и `aria-label` */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Тултип кнопки добавления */
|
|
8
|
+
tooltip?: Omit<TooltipProps, 'children'>;
|
|
9
|
+
};
|
|
10
|
+
export type FieldAddProps = FieldSelectSingleProps & {
|
|
11
|
+
/** Настройки кнопки добавления справа от поля */
|
|
12
|
+
addButton?: FieldAddButtonProps;
|
|
13
|
+
/** Тултип над контролом выбора значения */
|
|
14
|
+
controlTooltip?: Omit<TooltipProps, 'children'>;
|
|
15
|
+
/** Показывать ли кнопку добавления; в `readonly` режиме кнопка скрывается независимо от значения пропса */
|
|
16
|
+
showAddButton?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const FieldAdd: import("react").ForwardRefExoticComponent<import("../FieldSelect/types").InputProps & import("../FieldSelect/types").WrapperProps & {
|
|
19
|
+
options: import("../FieldSelect").OptionProps[];
|
|
20
|
+
loading?: boolean;
|
|
21
|
+
prefix?: import("react").ReactNode;
|
|
22
|
+
postfix?: import("react").ReactNode;
|
|
23
|
+
} & Omit<import("@snack-uikit/list").SelectionSingleState, "mode"> & {
|
|
24
|
+
'data-test-id'?: string;
|
|
25
|
+
} & import("react").AriaAttributes & {
|
|
26
|
+
options: import("../FieldSelect").OptionProps[];
|
|
27
|
+
pinTop?: import("../FieldSelect").OptionProps[];
|
|
28
|
+
pinBottom?: import("../FieldSelect").OptionProps[];
|
|
29
|
+
searchable?: boolean;
|
|
30
|
+
showCopyButton?: boolean;
|
|
31
|
+
onCopyButtonClick?(): void;
|
|
32
|
+
showClearButton?: boolean;
|
|
33
|
+
readonly?: boolean;
|
|
34
|
+
prefixIcon?: import("react").ReactElement;
|
|
35
|
+
footer?: import("@snack-uikit/list").DroplistProps["footer"];
|
|
36
|
+
widthStrategy?: import("@snack-uikit/list").DroplistProps["widthStrategy"];
|
|
37
|
+
search?: import("../FieldSelect/types").SearchState;
|
|
38
|
+
autocomplete?: boolean;
|
|
39
|
+
addOptionByEnter?: boolean;
|
|
40
|
+
open?: boolean;
|
|
41
|
+
enableFuzzySearch?: boolean;
|
|
42
|
+
resetSearchOnOptionSelection?: boolean;
|
|
43
|
+
onOpenChange?(open: boolean): void;
|
|
44
|
+
selectedOptionFormatter?: import("../FieldSelect").SelectedOptionFormatter;
|
|
45
|
+
} & Pick<import("@snack-uikit/list").DroplistProps, "onScroll" | "scrollRef" | "scrollContainerRef" | "untouchableScrollbars" | "dataError" | "dataFiltered" | "scrollToSelectedItem" | "virtualized" | "noDataState" | "noResultsState" | "errorDataState"> & {
|
|
46
|
+
/** Настройки кнопки добавления справа от поля */
|
|
47
|
+
addButton?: FieldAddButtonProps;
|
|
48
|
+
/** Тултип над контролом выбора значения */
|
|
49
|
+
controlTooltip?: Omit<TooltipProps, "children">;
|
|
50
|
+
/** Показывать ли кнопку добавления; в `readonly` режиме кнопка скрывается независимо от значения пропса */
|
|
51
|
+
showAddButton?: boolean;
|
|
52
|
+
} & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
4
|
+
var t = {};
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
12
|
+
return mod && mod.__esModule ? mod : {
|
|
13
|
+
"default": mod
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", {
|
|
17
|
+
value: true
|
|
18
|
+
});
|
|
19
|
+
exports.FieldAdd = void 0;
|
|
20
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
21
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
22
|
+
const react_1 = require("react");
|
|
23
|
+
const button_1 = require("@snack-uikit/button");
|
|
24
|
+
const icons_1 = require("@snack-uikit/icons");
|
|
25
|
+
const skeleton_1 = require("@snack-uikit/skeleton");
|
|
26
|
+
const tooltip_1 = require("@snack-uikit/tooltip");
|
|
27
|
+
const utils_1 = require("@snack-uikit/utils");
|
|
28
|
+
const FieldDecorator_1 = require("../FieldDecorator");
|
|
29
|
+
const FieldSelect_1 = require("../FieldSelect");
|
|
30
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
31
|
+
const DEFAULT_ADD_BUTTON_LABEL = 'Create';
|
|
32
|
+
exports.FieldAdd = (0, react_1.forwardRef)((_a, ref) => {
|
|
33
|
+
var {
|
|
34
|
+
id,
|
|
35
|
+
name,
|
|
36
|
+
placeholder,
|
|
37
|
+
size = 's',
|
|
38
|
+
options,
|
|
39
|
+
value,
|
|
40
|
+
defaultValue,
|
|
41
|
+
onChange,
|
|
42
|
+
disabled = false,
|
|
43
|
+
readonly = false,
|
|
44
|
+
searchable = true,
|
|
45
|
+
showCopyButton = true,
|
|
46
|
+
showClearButton = true,
|
|
47
|
+
onKeyDown,
|
|
48
|
+
required = false,
|
|
49
|
+
validationState = 'default',
|
|
50
|
+
search,
|
|
51
|
+
autocomplete = false,
|
|
52
|
+
prefixIcon,
|
|
53
|
+
prefix,
|
|
54
|
+
postfix,
|
|
55
|
+
addOptionByEnter = false,
|
|
56
|
+
untouchableScrollbars = false,
|
|
57
|
+
open,
|
|
58
|
+
onOpenChange,
|
|
59
|
+
selectedOptionFormatter,
|
|
60
|
+
enableFuzzySearch = true,
|
|
61
|
+
resetSearchOnOptionSelection = true,
|
|
62
|
+
onCopyButtonClick,
|
|
63
|
+
autoFocus,
|
|
64
|
+
onFocus,
|
|
65
|
+
onBlur,
|
|
66
|
+
pinTop,
|
|
67
|
+
pinBottom,
|
|
68
|
+
footer,
|
|
69
|
+
widthStrategy,
|
|
70
|
+
dataError,
|
|
71
|
+
noDataState,
|
|
72
|
+
noResultsState,
|
|
73
|
+
errorDataState,
|
|
74
|
+
dataFiltered,
|
|
75
|
+
loading = false,
|
|
76
|
+
scrollToSelectedItem,
|
|
77
|
+
virtualized,
|
|
78
|
+
scrollRef,
|
|
79
|
+
scrollContainerRef,
|
|
80
|
+
onScroll,
|
|
81
|
+
className,
|
|
82
|
+
label,
|
|
83
|
+
labelTooltip,
|
|
84
|
+
caption,
|
|
85
|
+
hint,
|
|
86
|
+
showHintIcon,
|
|
87
|
+
labelTooltipPlacement,
|
|
88
|
+
error,
|
|
89
|
+
addButton,
|
|
90
|
+
controlTooltip,
|
|
91
|
+
showAddButton = !readonly
|
|
92
|
+
} = _a,
|
|
93
|
+
rest = __rest(_a, ["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", "autoFocus", "onFocus", "onBlur", "pinTop", "pinBottom", "footer", "widthStrategy", "dataError", "noDataState", "noResultsState", "errorDataState", "dataFiltered", "loading", "scrollToSelectedItem", "virtualized", "scrollRef", "scrollContainerRef", "onScroll", "className", "label", "labelTooltip", "caption", "hint", "showHintIcon", "labelTooltipPlacement", "error", "addButton", "controlTooltip", "showAddButton"]);
|
|
94
|
+
const _b = addButton !== null && addButton !== void 0 ? addButton : {},
|
|
95
|
+
{
|
|
96
|
+
label: addButtonLabel = DEFAULT_ADD_BUTTON_LABEL,
|
|
97
|
+
tooltip: addButtonTooltipProp,
|
|
98
|
+
className: addButtonClassName,
|
|
99
|
+
disabled: addButtonDisabled = false,
|
|
100
|
+
'aria-label': addButtonAriaLabel,
|
|
101
|
+
'data-test-id': addButtonTestId
|
|
102
|
+
} = _b,
|
|
103
|
+
addButtonProps = __rest(_b, ["label", "tooltip", "className", "disabled", 'aria-label', 'data-test-id']);
|
|
104
|
+
const shouldShowAddButton = showAddButton && !readonly;
|
|
105
|
+
const isAddButtonDisabled = disabled || loading || addButtonDisabled;
|
|
106
|
+
const addButtonTooltip = addButtonTooltipProp !== null && addButtonTooltipProp !== void 0 ? addButtonTooltipProp : !isAddButtonDisabled ? {
|
|
107
|
+
tip: addButtonLabel
|
|
108
|
+
} : undefined;
|
|
109
|
+
return (0, jsx_runtime_1.jsx)(FieldDecorator_1.FieldDecorator, Object.assign({
|
|
110
|
+
className: className,
|
|
111
|
+
label: label,
|
|
112
|
+
labelTooltip: labelTooltip,
|
|
113
|
+
labelTooltipPlacement: labelTooltipPlacement,
|
|
114
|
+
labelFor: id,
|
|
115
|
+
required: required,
|
|
116
|
+
caption: caption,
|
|
117
|
+
hint: hint,
|
|
118
|
+
disabled: disabled,
|
|
119
|
+
readonly: readonly,
|
|
120
|
+
showHintIcon: showHintIcon,
|
|
121
|
+
size: size,
|
|
122
|
+
validationState: validationState,
|
|
123
|
+
error: error
|
|
124
|
+
}, (0, utils_1.extractSupportProps)(rest), {
|
|
125
|
+
children: (0, jsx_runtime_1.jsxs)("div", {
|
|
126
|
+
className: styles_module_scss_1.default.layout,
|
|
127
|
+
"data-size": size,
|
|
128
|
+
children: [(0, jsx_runtime_1.jsx)(tooltip_1.WithTooltip, {
|
|
129
|
+
tooltip: controlTooltip,
|
|
130
|
+
children: (0, jsx_runtime_1.jsx)("div", {
|
|
131
|
+
className: styles_module_scss_1.default.selectTooltipTrigger,
|
|
132
|
+
"data-test-id": 'field-add__control',
|
|
133
|
+
children: (0, jsx_runtime_1.jsxs)("div", {
|
|
134
|
+
className: styles_module_scss_1.default.selectWrapper,
|
|
135
|
+
children: [(0, jsx_runtime_1.jsx)(FieldSelect_1.FieldSelect, {
|
|
136
|
+
id: id,
|
|
137
|
+
name: name,
|
|
138
|
+
placeholder: loading ? '' : placeholder,
|
|
139
|
+
size: size,
|
|
140
|
+
options: options,
|
|
141
|
+
value: value,
|
|
142
|
+
defaultValue: defaultValue,
|
|
143
|
+
onChange: onChange,
|
|
144
|
+
disabled: disabled || loading,
|
|
145
|
+
readonly: readonly,
|
|
146
|
+
searchable: loading || readonly ? false : searchable,
|
|
147
|
+
showCopyButton: showCopyButton && !loading,
|
|
148
|
+
showClearButton: showClearButton && !loading,
|
|
149
|
+
onKeyDown: onKeyDown,
|
|
150
|
+
required: required,
|
|
151
|
+
validationState: validationState,
|
|
152
|
+
search: search,
|
|
153
|
+
autocomplete: autocomplete,
|
|
154
|
+
prefixIcon: prefixIcon,
|
|
155
|
+
prefix: prefix,
|
|
156
|
+
postfix: postfix,
|
|
157
|
+
addOptionByEnter: addOptionByEnter,
|
|
158
|
+
untouchableScrollbars: untouchableScrollbars,
|
|
159
|
+
open: loading ? false : open,
|
|
160
|
+
onOpenChange: onOpenChange,
|
|
161
|
+
selectedOptionFormatter: selectedOptionFormatter,
|
|
162
|
+
enableFuzzySearch: enableFuzzySearch,
|
|
163
|
+
resetSearchOnOptionSelection: resetSearchOnOptionSelection,
|
|
164
|
+
onCopyButtonClick: onCopyButtonClick,
|
|
165
|
+
autoFocus: autoFocus,
|
|
166
|
+
onFocus: onFocus,
|
|
167
|
+
onBlur: onBlur,
|
|
168
|
+
pinTop: pinTop,
|
|
169
|
+
pinBottom: pinBottom,
|
|
170
|
+
footer: footer,
|
|
171
|
+
widthStrategy: widthStrategy,
|
|
172
|
+
dataError: dataError,
|
|
173
|
+
noDataState: noDataState,
|
|
174
|
+
noResultsState: noResultsState,
|
|
175
|
+
errorDataState: errorDataState,
|
|
176
|
+
dataFiltered: dataFiltered,
|
|
177
|
+
loading: loading,
|
|
178
|
+
scrollToSelectedItem: scrollToSelectedItem,
|
|
179
|
+
virtualized: virtualized,
|
|
180
|
+
scrollRef: scrollRef,
|
|
181
|
+
scrollContainerRef: scrollContainerRef,
|
|
182
|
+
onScroll: onScroll,
|
|
183
|
+
className: styles_module_scss_1.default.fieldSelect,
|
|
184
|
+
selection: 'single',
|
|
185
|
+
ref: ref
|
|
186
|
+
}), loading && (0, jsx_runtime_1.jsx)("div", {
|
|
187
|
+
className: styles_module_scss_1.default.loadingOverlay,
|
|
188
|
+
"data-test-id": 'field-add__loading',
|
|
189
|
+
children: (0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, {
|
|
190
|
+
className: styles_module_scss_1.default.loadingSkeleton,
|
|
191
|
+
width: '100%',
|
|
192
|
+
height: '100%',
|
|
193
|
+
borderRadius: 2,
|
|
194
|
+
loading: true
|
|
195
|
+
})
|
|
196
|
+
})]
|
|
197
|
+
})
|
|
198
|
+
})
|
|
199
|
+
}), shouldShowAddButton && (0, jsx_runtime_1.jsx)(tooltip_1.WithTooltip, {
|
|
200
|
+
tooltip: addButtonTooltip,
|
|
201
|
+
children: (0, jsx_runtime_1.jsx)("span", {
|
|
202
|
+
className: styles_module_scss_1.default.buttonTooltipTrigger,
|
|
203
|
+
children: (0, jsx_runtime_1.jsx)(button_1.ButtonOutline, Object.assign({}, addButtonProps, {
|
|
204
|
+
appearance: 'neutral',
|
|
205
|
+
size: size,
|
|
206
|
+
icon: (0, jsx_runtime_1.jsx)(icons_1.PlusSVG, {}),
|
|
207
|
+
className: (0, classnames_1.default)(styles_module_scss_1.default.addButton, addButtonClassName),
|
|
208
|
+
disabled: isAddButtonDisabled,
|
|
209
|
+
"aria-label": addButtonAriaLabel || addButtonLabel,
|
|
210
|
+
"data-test-id": addButtonTestId || 'field-add__button'
|
|
211
|
+
}))
|
|
212
|
+
})
|
|
213
|
+
})]
|
|
214
|
+
})
|
|
215
|
+
}));
|
|
216
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FieldAdd = void 0;
|
|
7
|
+
var FieldAdd_1 = require("./FieldAdd");
|
|
8
|
+
Object.defineProperty(exports, "FieldAdd", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () {
|
|
11
|
+
return FieldAdd_1.FieldAdd;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.layout{
|
|
2
|
+
display:flex;
|
|
3
|
+
gap:var(--dimension-050m, 4px);
|
|
4
|
+
align-items:flex-start;
|
|
5
|
+
width:100%;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.selectTooltipTrigger,
|
|
9
|
+
.selectWrapper,
|
|
10
|
+
.fieldSelect{
|
|
11
|
+
width:100%;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.selectTooltipTrigger{
|
|
15
|
+
min-width:0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.selectWrapper{
|
|
19
|
+
position:relative;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.loadingOverlay{
|
|
23
|
+
pointer-events:none;
|
|
24
|
+
position:absolute;
|
|
25
|
+
inset:0;
|
|
26
|
+
display:flex;
|
|
27
|
+
align-items:center;
|
|
28
|
+
width:100%;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.loadingSkeleton{
|
|
32
|
+
margin-right:36px;
|
|
33
|
+
margin-left:16px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.buttonTooltipTrigger{
|
|
37
|
+
display:inline-flex;
|
|
38
|
+
flex-shrink:0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.addButton{
|
|
42
|
+
flex-shrink:0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.layout[data-size=m] .loadingSkeleton{
|
|
46
|
+
margin-right:40px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.layout[data-size=l] .loadingSkeleton{
|
|
50
|
+
margin-right:44px;
|
|
51
|
+
}
|
|
@@ -23,5 +23,5 @@ type FieldSecureOwnProps = {
|
|
|
23
23
|
export type FieldSecureProps = WithSupportProps<FieldSecureOwnProps & InputProps & WrapperProps>;
|
|
24
24
|
export declare const FieldSecure: import("react").ForwardRefExoticComponent<{
|
|
25
25
|
'data-test-id'?: string;
|
|
26
|
-
} & import("react").AriaAttributes & FieldSecureOwnProps & Pick<Partial<InputPrivateProps>, "onChange" | "value"> & Pick<InputPrivateProps, "id" | "name" | "onFocus" | "onBlur" | "disabled" | "
|
|
26
|
+
} & import("react").AriaAttributes & FieldSecureOwnProps & Pick<Partial<InputPrivateProps>, "onChange" | "value"> & Pick<InputPrivateProps, "id" | "name" | "onFocus" | "onBlur" | "disabled" | "placeholder" | "readonly" | "autoFocus" | "autoComplete" | "maxLength"> & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
27
27
|
export {};
|
|
@@ -33,6 +33,7 @@ export type SearchState = {
|
|
|
33
33
|
};
|
|
34
34
|
export type FieldSelectPrivateProps = InputProps & WrapperProps & {
|
|
35
35
|
options: OptionProps[];
|
|
36
|
+
/** Отображать ли состояние загрузки данных в поле и списке */
|
|
36
37
|
loading?: boolean;
|
|
37
38
|
/** Произвольный префикс для поля */
|
|
38
39
|
prefix?: ReactNode;
|
|
@@ -32,5 +32,5 @@ type FieldTextOwnProps = {
|
|
|
32
32
|
export type FieldTextProps = WithSupportProps<FieldTextOwnProps & InputProps & WrapperProps>;
|
|
33
33
|
export declare const FieldText: import("react").ForwardRefExoticComponent<{
|
|
34
34
|
'data-test-id'?: string;
|
|
35
|
-
} & import("react").AriaAttributes & FieldTextOwnProps & Pick<Partial<InputPrivateProps>, "onChange" | "value"> & Pick<Required<InputPrivateProps>, "inputMode"> & Pick<InputPrivateProps, "id" | "name" | "onPaste" | "onFocus" | "onBlur" | "onKeyDown" | "disabled" | "
|
|
35
|
+
} & import("react").AriaAttributes & FieldTextOwnProps & Pick<Partial<InputPrivateProps>, "onChange" | "value"> & Pick<Required<InputPrivateProps>, "inputMode"> & Pick<InputPrivateProps, "id" | "name" | "onPaste" | "onFocus" | "onBlur" | "onKeyDown" | "disabled" | "placeholder" | "readonly" | "autoFocus" | "autoComplete" | "maxLength" | "spellCheck" | "pattern"> & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
36
36
|
export {};
|