Add a reusable click-out directive
Что сделано
- Добавлена общая директива
ClickOutDirective. - Клики по документу отслеживаются через RxJS
fromEvent. - Событие
ttClickOutсоздано черезoutputFromObservable. - Для определения внешнего клика проверяется, находится ли
event.targetвнутри элемента директивы. - Директива подключена к
BaseModalComponentчерезhostDirectives. - Output
ttClickOutоткрыт для использования в шаблонах модалок. - Убрано затемнение модального окна для проверки внешних кликов.
- Добавлено закрытие по внешнему клику для:
- модалки «Поделиться»;
- модалки редактирования сообщества;
- модалки подтверждения удаления.
- Добавлена защита вложенной модалки подтверждения от закрытия родительской модалкой.
- Директива подключена к
SelectComponentчерезhostDirectives. - Добавлено закрытие дропдауна селекта по клику снаружи.
Как проверить
- Открыть модалку и кликнуть внутри неё — модалка остаётся открытой.
- Кликнуть вне модалки — модалка закрывается.
- Открыть редактирование сообщества, затем подтверждение удаления:
- «Отмена» закрывает только подтверждение;
- «Удалить» запускает удаление сообщества;
- ошибка
EmptyErrorв консоли не появляется.
- Открыть селект и кликнуть вне него — дропдаун закрывается.