DialogДиалоговое окно
Диалоговое окно используется для отображения важных уведомлений в процессе выполнения действий пользователем.
Помимо прямого использования этого компонента, mdui предоставляет четыре функции: mdui.dialog, mdui.alert, mdui.confirm, mdui.prompt. Эти функции упрощают использование компонента Dialog.
Использование
При необходимости импортируйте компонент:
import 'mdui/components/dialog.js';
При необходимости импортируйте типы TypeScript:
import type { Dialog } from 'mdui/components/dialog.js';
Пример использования:
<mdui-dialog class="example-dialog">
Dialog
<mdui-button>Закрыть</mdui-button>
</mdui-dialog>
<mdui-button>Открыть диалог</mdui-button>
<script>
const dialog = document.querySelector(".example-dialog");
const openButton = dialog.nextElementSibling;
const closeButton = dialog.querySelector("mdui-button");
openButton.addEventListener("click", () => dialog.open = true);
closeButton.addEventListener("click", () => dialog.open = false);
</script>Примеры
Закрытие по клику на фон
Добавьте атрибут close-on-overlay-click, чтобы диалоговое окно закрывалось при клике на фон.
Закрытие по нажатию клавиши ESC
Добавьте атрибут close-on-esc, чтобы диалоговое окно закрывалось при нажатии клавиши ESC.
Полноэкранный режим
Добавьте атрибут fullscreen, чтобы диалоговое окно отображалось полноэкранно.
Иконка
Установите атрибут icon, чтобы добавить иконку Material Icons в верхнюю часть диалогового окна.
Также можно добавить элемент иконки в верхнюю часть через слот icon.
Заголовок и описание
Установите заголовок и описание диалогового окна через атрибуты headline и description.
Также можно установить элемент заголовка и описания через слоты headline и description.
Кнопки действий внизу
Вы можете добавить кнопки действий внизу через слот action.
Добавьте атрибут stacked-actions, чтобы кнопки действий располагались вертикально.
Верхнее содержимое
Вы можете задать верхнее содержимое диалогового окна через слот header.
API
Свойства
| Атрибут | Свойство | Reflect | Тип | По умолчанию |
|---|---|---|---|---|
icon | icon | string | - | |
Имя иконки Material Icons вверху. Можно задать через | ||||
headline | headline | string | - | |
Заголовок. Можно задать через | ||||
description | description | string | - | |
Текст под заголовком. Можно задать через | ||||
open | open | boolean | false | |
Определяет, открыто ли диалоговое окно. | ||||
fullscreen | fullscreen | boolean | false | |
Определяет, отображать ли диалоговое окно на весь экран. | ||||
close-on-esc | closeOnEsc | boolean | false | |
Определяет, нужно ли закрывать при нажатии клавиши ESC. | ||||
close-on-overlay-click | closeOnOverlayClick | boolean | false | |
Определяет, нужно ли закрывать при клике на затемнение. | ||||
stacked-actions | stackedActions | boolean | false | |
Определяет, располагать ли кнопки действий вертикально. | ||||
События
| Название |
|---|
open |
Срабатывает в начале открытия диалогового окна. Можно отменить открытие, вызвав |
opened |
Срабатывает после завершения анимации открытия диалогового окна. |
close |
Срабатывает в начале закрытия диалогового окна. Можно отменить закрытие, вызвав |
closed |
Срабатывает после завершения анимации закрытия диалогового окна. |
overlay-click |
Срабатывает при клике на затемнение. |
Slots
| Название |
|---|
header |
Элемент вверху, по умолчанию содержит слоты |
icon |
Иконка вверху. |
headline |
Заголовок вверху. |
description |
Текст под заголовком. |
| (по умолчанию) |
Основное содержимое диалогового окна. |
action |
Элементы в нижней панели действий. |
CSS Parts
| Название |
|---|
overlay |
Затемнение. |
panel |
Контейнер диалогового окна. |
header |
Часть заголовка диалогового окна, содержит icon и headline. |
icon |
Иконка вверху, находится в header. |
headline |
Заголовок вверху, находится в header. |
body |
Часть body диалогового окна. |
description |
Часть дополнительного текста, находится в body. |
action |
Кнопки действий. |
Пользовательские CSS-свойства
| Название |
|---|
--shape-corner |
Размер скругления углов компонента. Можно указать конкретное значение в пикселях, но рекомендуется использовать дизайн-токены. |
--z-index |
Значение CSS |