Skip to content

CdsField

New in v4.0

Рамка поля ввода: фон, граница, состояния фокуса и ошибки, внутренние иконки, кнопка очистки и индикатор загрузки. Сам контрол вы кладёте в слот default — на CdsField собраны текстовые поля, селекты и автокомплиты дизайн-системы.

Storybook GitLab
Покрытие тестами: 96% — хорошее покрытие
API в спеках
33 / 33 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
41 юнит · 0 браузерных
Известные баги
4 зафиксированы тестом it.fails
Покрытие кода
96.4% строк · 97.1% ветвей замер v4.0.0-alpha.13
A11y (axe)
6 рекомендаций в 7 историях замер v4.0.0-alpha.11

Для обычного ввода берите готовые поля — CdsTextInput, CdsSelect, CdsTextArea. CdsField нужен, когда своего контрола нет в библиотеке. Метку, описание и сообщения вокруг рамки добавляет CdsInput.

Анатомия ​

Слот default получает объект props — навесьте его на свой контрол, чтобы поле получило id, класс и связь с сообщениями. Вокруг контрола CdsField раскладывает внутренние иконки и кнопку очистки.

Вариации ​

Иконки ​

Свойства prepend-inner-icon и append-inner-icon ставят иконку внутрь рамки — до и после контрола. Те же зоны доступны как слоты prepend-inner и append-inner, если нужна кнопка, а не иконка.

Sandbox Storybook

Очистка ​

Свойство clearable добавляет крестик; он показывается, когда поле помечено dirty, и появляется при наведении или фокусе. Свойство persistent-clearable держит крестик видимым всегда. Значение сбрасывает не компонент, а вы — в обработчике @click:clear.

Sandbox Storybook

Состояния ​

Свойства disabled, readonly и error меняют цвет рамки и текста. Состояние контрола внутри задавайте отдельно: CdsField рисует рамку, но не управляет вашим input.

Sandbox Storybook

Загрузка ​

Свойство loading показывает полосу под полем. Значение circle заменяет её круговым индикатором внутри рамки — так удобнее, когда поле ждёт ответа сервера при вводе.

Sandbox Storybook

Размеры ​

Свойство size меняет высоту рамки и внутренние отступы. Размер по умолчанию — md.

Sandbox Storybook

Сценарии использования ​

Поле с тегами ​

Контрол в слоте default — любая разметка, поэтому в рамку помещается набор тегов и поле для новой записи. Обработчики focus и blur из слота включают подсветку рамки, dirty показывает крестик, а @click:clear очищает список.

Sandbox Storybook

API ​

Пропсы

ИмяТипПо умолчаниюОписание
activeboolean | undefined—Активное состояние поля
activeColorstring | undefined—Цвет компонента, когда он находится в активном состоянии
appendInnerIconIconValue | undefined—Иконка во внутреннем слоте append после содержимого поля
baseColorstring | undefined—Цвет неактивного компонента
bgColorstring | undefined—Цвет фона компонента
centerAffixboolean | undefined—Выровнять по вертикали элементы appendInner, prependInner, clearIcon и label по центру.
clearableboolean | undefined—Отображать кнопку очистки значения
clearIconIconValue | undefined'remove'Иконка кнопки очистки
colorstring | undefined—Цвет компонента
detailsboolean | undefined—Резервирует место под подсказки и сообщения об ошибках под полем
dirtyboolean | undefined—Признак того, что значение поля было изменено пользователем
disabledboolean | null | undefinednullЗаблокированное состояние
errorboolean | undefined—Состояние ошибки
focusedboolean | undefined—Управляет состоянием фокуса компонента. Когда true, компонент считается сфокусированным и может применять соответствующие стили или поведение.
iconColorstring | boolean | undefined—Цвет иконки. Принимает булево значение или строку с цветом
idstring | undefined—Идентификатор поля — значение HTML-атрибута id для вложенного контрола
loadingstring | boolean | undefined—Индикатор загрузки для компонента
persistentClearableboolean | undefined—Всегда отображать кнопку очистки, а не только при наведении или фокусе
prependInnerIconIconValue | undefined—Иконка во внутреннем слоте prepend перед содержимым поля
readonlyboolean | null | undefinednullТолько для чтения
reverseboolean | undefined—Обратный порядок расположения элементов внутри поля
sizenumber | "xs" | "sm" | "md" | "lg" | "xl" | undefined'md'Размер компонента
textColorstring | undefined—Цвет текста компонента
themestring | undefined—Тема компонента

События

ИмяТипОписание
click:clear[e: MouseEvent]Клик по кнопке очистки (проп clearable)
update:focused[focused: boolean]Вызывается при переходе фокуса на элемент или при его потере

Слоты

ИмяТипОписание
append-innerCdsInputDefaultSlotСлот, добавляемый в конце инпута ввода
clearCdsInputDefaultSlot & { props: Record<string, any>; }Слот для пользовательского иконки очистки (отображается, когда свойство clearable имеет значение «true»).
defaultCdsFieldSlotКонтент внутри поля
loaderLoaderSlotPropsСлот для пользовательского загрузчика (отображается, если свойство loading имеет значение true).
prepend-innerCdsInputDefaultSlotСлот, добавляемый в начало инпута ввода

Exposed

ИмяТипОписание
controlRefHTMLElement | undefinedRef-ссылка на контролл поля ввода
fieldIconColorstring | undefinedЦвет иконки