ddubrava / angular-yandex-maps

🗺️ Yandex.Maps Angular components that implement the Yandex.Maps JavaScript API
https://ddubrava.github.io/angular8-yandex-maps/#/
MIT License
57 stars 7 forks source link

❓ - Конфликт между YandexMap и SwiperJS #208

Closed Rouvas closed 1 year ago

Rouvas commented 1 year ago

Description

Приветствую! На текущий момент не могу понять, с чьей стороны ошибка.

На момент, пока скрипт Яндекс карт не подгружен (с помощью данной библиотеки), все ок. Как только он подгружается, Swiper, при взаимодействии с ним начинает ругаться на эвенты (при этом работает корректно, как и Яндекс.Карты (при взаимодействии с ними, так же, ошибок нет)).

Что удивительно, но если обратиться к ошибке, то отправляет к "Я.Картам".

image

Предполагаю, что, возможно проблема не с картами и библиотекой обвязкой, но возможно все. Заранее спасибо за ответ!

🌎 Dependencies "@angular/animations": "^14.2.0", "@angular/cdk": "^14.2.7", "@angular/common": "^14.2.0", "@angular/compiler": "^14.2.0", "@angular/core": "^14.2.0", "@angular/forms": "^14.2.0", "@angular/platform-browser": "^14.2.0", "@angular/platform-browser-dynamic": "^14.2.0", "@angular/router": "^14.2.0", "angular8-yandex-maps": "^14.0.3", "rxjs": "~7.5.0", "swiper": "^9.4.1", "tslib": "^2.3.0", "zone.js": "~0.11.4"

ddubrava commented 1 year ago

Привет, сделай, пожалуйста, минимальный пример на Stackblitz, потому что просто по коду непонятно. Ошибки летят из свайпера, надо смотреть откуда точно и смотреть дебагер. Я накидал маленький пример, где обе библиотеки используются - проблем не было

Rouvas commented 1 year ago

Большое спасибо, что помогаете разобраться. Ссылка на Stackblitz, демо. В силу небольшого опыта почитал что да как, попытался увести вне ангуляра, но, как понимаю, неверное решение (там директива за подключение свайпера отвечает). Но в целом, разницы нет, как бы описывал директиву. Собственно, для того, чтобы увидеть ошибку нажмите на "vehicle"

ddubrava commented 1 year ago

Я попробовал убрать весь ангуляр, библиотеку с картами и использовать API карт напрямую + кастомные элементы - та же проблема. Видимо, карты модицифируют событие, если такое возможно.

Попробуй оставить в свайпере ишью с вопросом возможно ли, что сторонняя библиотека удаляет event.touches, вот воспроизведение - https://stackblitz.com/edit/swiper-yandex-maps-bug. Заодно можно закинуть вопрос в Яндекс.Карты, но они долго будут отвечать, скорее всего.

Я, к сожалению, не могу дебажить долго, за вечер ничего не выяснил. Баг странный, но он не про либу, а про карты. Еще важно отметить, что если использовать свйапер + карты вне ангуляр, то все ок. То есть возможно еще проблема в зонах.

Rouvas commented 1 year ago

Понял, спасибо за разбор! Буду пробовать писать им. Пока не закрываю ветку, если будет решение, опубликую, для кого-нибудь будет полезным

Rouvas commented 5 months ago

upd. На Angular 17 с использованием SwiperJS 11 и angular8-yandex-maps 17.1.0 ошибок не наблюдается