Skip to content

CdsNotificationAlert

Deprecated

Всплывающее уведомление поверх страницы — аналог CdsNotificationAlert из CDS 3. Собрано из CdsOverlay и CdsNotification в варианте important; скрывается автоматически по timeout, наведение курсора или фокус внутри приостанавливают таймер.

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

Компонент существует только для плавной миграции с CDS 3 и будет удалён. Для новых сценариев используйте CdsToast.

Вариации ​

Управление показом ​

Видимость контролируется через v-model или слот activator — элемент внутри слота открывает уведомление по клику. Текст задаётся пропом text.

Sandbox Storybook

Статусы ​

Свойство status задаёт цвет контента и иконку: info, success, warning, danger, progress. Иконку можно заменить пропом icon или скрыть значением false.

Sandbox Storybook

Позиции ​

Свойство location задаёт позицию на экране: сторона (top, bottom) и выравнивание (left, center, right).

Sandbox Storybook

Автозакрытие ​

Свойство timeout управляет временем автозакрытия в миллисекундах, по умолчанию — 5000. Значения -1 и 0 отключают автозакрытие — уведомление остаётся до закрытия пользователем (closable). Наведение курсора и фокус внутри приостанавливают отсчёт.

Sandbox Storybook

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

Отмена действия ​

После необратимой операции уведомление даёт короткое окно для отмены: кнопка в слоте actions закрывает его через v-model, а увеличенный timeout оставляет время передумать.

Sandbox Storybook

Стек уведомлений ​

Каждый экземпляр — независимый оверлей: уведомления одной позиции складываются в вертикальный стек. При закрытии (update:model-value → false) удаляйте элемент из списка.

Sandbox Storybook

API ​

Пропсы

ИмяТипПо умолчаниюОписание
absoluteboolean | undefined—Указывает, что элемент должен быть позиционирован абсолютно, а не фиксированно. Это может быть полезно для оверлеев, которые должны быть ограничены определенной областью, например, внутри контейнера с position: relative.
activator(string & {}) | Element | "parent" | ComponentPublicInstance | undefined—Элемент, который будет активировать компонент
activatorPropsRecord<string, any> | undefined{}Свойства для элемента активатора
attachstring | boolean | Element | undefined—Указывает, в какой элемент DOM следует переместить содержимое overlay. Может быть прямой ссылкой на элемент, строкой querySelector или значением true для отключения перемещения. По умолчанию используется элемент body. Как правило, не рекомендуется изменять это свойство, за исключением крайних случаев: алгоритм позиционирования по умолчанию должен справляться с большинством сценариев лучше, чем это возможно без перемещения, и может возникнуть непредвиденное поведение, если меню окажется дочерним элементом своего активатора.
bgColorstring | undefined—Цвет фона компонента
closableboolean | undefined—Добавляет кнопку закрытия, скрывающую уведомление.
closeDelaystring | number | undefined—Время ожидания в миллисекундах перед закрытием компонента. Работает только с параметром open-on-hover.
closeIconIconValue | undefined'close'Иконка кнопки закрытия.
closeLabelstring | undefined'$cds.close'Доступная подпись (aria-label) для кнопки закрытия.
closeOnBackboolean | undefinedfalseЗакрывает содержимое оверлея при нажатии кнопки «Назад» в браузере или вызове $router.back(), отменяя исходную навигацию. persistent оверлеи отменяют навигацию и анимируются так, как будто по ним щелкнули за пределами оверлея, вместо того чтобы закрываться.
closeOnContentClickboolean | undefined—Скрыть компонент по клику на контент
containedboolean | undefined—Ограничивает размер компонента и сетки в соответствии с его смещенным родительским элементом. Подразумевает использование свойств absolute и attach. (Примечание: родительский элемент должен иметь свойство position: relative.)
contentstring | number | undefined—Контент, отображаемый в компоненте.
contentClassany—Применяет пользовательский класс к отдельному элементу. Это удобно, поскольку содержимое перемещается в начало компонента cds-app (если не указан параметр attach) и не может быть выделено с помощью классов, переданных непосредственно в компонент.
contentPropsany—Применяет кастомные свойства (props) к перемещаемому контенту
disabledboolean | null | undefinednullЗаблокированное состояние
eagerboolean | undefined—Принудительно рендерит содержимое компонента при его использовании. Это полезно, если у вас есть контент, который не отображается в DOM, но который необходимо проиндексировать для SEO.
heightstring | number | undefined—Высота компонента
iconfalse | IconValue | undefinednullИконка перед контентом. По умолчанию берётся из status; false скрывает иконку.
locationAnchor | null | undefined'top center'Позиционирование элемента относительно его контейнера. Например, "top left", "center", "bottom right" и т.д.
locationStrategy"static" | "connected" | LocationStrategyFunction | undefined'static'Определяет способ позиционирования содержимого оверлея. По умолчанию используется значение static, при котором содержимое центрируется в контейнере. Используйте connected для привязки к элементу-активатору.
maxHeightstring | number | undefined—Максимальная высота компонента
maxWidthstring | number | undefined—Максимальная ширина компонента
minHeightstring | number | undefined—Минимальная высота компонента
minWidthstring | number | undefined—Минимальная ширина компонента
modelValueboolean | undefined—Значение компонента v-model. Если компонент поддерживает свойство multiple, по умолчанию используется пустой массив.
opacitystring | number | undefined—Прозрачность элемента «scrim». Применяется только в том случае, если св-во scrim=true.
openDelaystring | number | undefined—Время ожидания в миллисекундах перед открытием компонента. Работает только с параметром open-on-hover.
openOnClickboolean | undefined—Показать компонент по клику на активатор
openOnFocusboolean | undefined—Показать компонент по фокусу на активатор
openOnHoverboolean | undefined—Показать компонент по наведению на активатор
originAnchor | "auto" | "overlap" | undefined'auto'Устанавливает точку привязки для содержимого наложения, которая выравнивается по точке привязки «location» на объекте-цели. При значении «auto» используется противоположная сторона точки «location». При значении «overlap» используется та же точка привязки, в результате чего наложение перекрывает объект-цель. Также задает значение CSS-свойства transform-origin для transitions enter/leave.
position"absolute" | "static" | "fixed" | "relative" | "sticky" | undefined—CSS-позиционирование компонента — значение свойства position
status"progress" | "danger" | "success" | "warning" | "info" | undefined'info'Семантический статус — определяет цвет и дефолтную иконку.
tagstring | JSXComponent<any> | undefined'div'Пользовательский HTML-тег для отображения
target(string & {}) | Element | "parent" | ComponentPublicInstance | "cursor" | [x: number, y: number] | undefined—Если для параметра locationStrategy задано значение «connected», необходимо указать элемент или массив координат x, y, относительно которых должен располагаться оверлей. По умолчанию в качестве такого элемента используется элемент-активатор.
textstring | number | undefined—Текст, отображаемый в компоненте.
textColorstring | undefined—Цвет текста компонента
themestring | undefined—Тема компонента
timeoutstring | number | undefined5000Время в миллисекундах до автоматического скрытия уведомления. Значения -1 и 0 отключают автозакрытие.
titlestring | undefined—Заголовок уведомления.
transitionstring | boolean | (TransitionProps & { component?: Component | undefined; }) | null | undefined'notification-transition'Анимация перехода
variant"default" | "flat" | "compact" | "important" | undefined'important'Внешний вид уведомления. По умолчанию important — приподнятая поверхность с тенью (внешний вид CdsNotificationAlert).
widthstring | number | undefined—Ширина компонента
zIndexstring | number | undefined2000Значение z-index для компонента.

События

ИмяТипОписание
click:close[event: MouseEvent]Клик по кнопке закрытия.
update:modelValue[value: boolean]Событие изменения состояния видимости уведомления.

Слоты

ИмяТипОписание
actionsanyСлот действий (кнопки, ссылки) под текстом.
activator{ isActive: boolean; props: Record<string, any>; }Слот-активатор для управления показом уведомления.
appendanyСлот после контента.
close{ props: Record<string, any>; }Слот кнопки закрытия; получает props для привязки к своему элементу.
defaultanyОсновной контент уведомления (дополняет text).
prependanyСлот перед контентом (по умолчанию — иконка статуса).
textanyСлот текста (вместо пропа text).
titleanyСлот заголовка (вместо пропа title).

Exposed

ИмяТипОписание
activatorElHTMLElement | undefinedDOM-элемент активатора.
activatorRefTemplateRefTemplate ref для назначения активатора вручную.
animateClick() => voidЗапускает bounce-анимацию контента — как при клике мимо persistent-оверлея.
contentElHTMLElement | undefinedDOM-элемент контента оверлея.
globalTopbooleanЯвляется ли оверлей верхним в глобальном стеке открытых оверлеев.
rootElHTMLElement | undefinedКорневой DOM-элемент оверлея.
scrimElHTMLElement | undefinedDOM-элемент подложки (scrim), затемняющей страницу.
targetElHTMLElement | undefinedDOM-элемент цели позиционирования.
targetRefTemplateRefTemplate ref для назначения цели позиционирования вручную.
updateLocation((e: Event) => void) | undefinedПересчитывает позицию контента относительно цели.