fix(gps): подписи Старт/Финиш не обрезаются; data-gps-marker-id на маркерах — надёжная доставка кликов (панель точки, плейхед)

This commit is contained in:
2026-08-29 20:58:08 +03:00
parent 60bd52b75a
commit 9eaff65500

View File

@@ -59,8 +59,10 @@ export function gpsMarkerHtml(marker: GpsMapMarker): string {
const opacity = marker.offline ? 'opacity:0.5;' : marker.approximate ? 'opacity:0.55;' : '';
const layout = gpsMarkerLayout(marker);
const title = escapeHtml(marker.label || '');
// Подпись выходит за ширину маркера (для dot 24px) — overflow виден по умолчанию,
// max-width не ставим, иначе «Старт»/«Финиш» обрезались до «С…»/«Ф…»
const label = marker.label
? `<div style="margin-top:2px;padding:0 4px;border-radius:4px;font-size:10px;line-height:16px;font-weight:500;background:rgba(255,255,255,0.9);border:1px solid #d4d4d8;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#18181b;">${title}</div>`
? `<div style="margin-top:2px;padding:0 4px;border-radius:4px;font-size:10px;line-height:16px;font-weight:500;background:rgba(255,255,255,0.92);border:1px solid #d4d4d8;white-space:nowrap;color:#18181b;">${title}</div>`
: '';
let body: string;
@@ -82,7 +84,9 @@ export function gpsMarkerHtml(marker: GpsMapMarker): string {
}
}
return `<div style="display:flex;flex-direction:column;align-items:center;width:${layout.width}px;user-select:none;cursor:pointer;${opacity}">${body}${label}</div>`;
// data-gps-marker-id: делегированный обработчик контейнера карты ловит клики
// по любому маркеру (надёжнее нативных событий placemark/divIcon)
return `<div data-gps-marker-id="${escapeHtml(String(marker.id))}" style="display:flex;flex-direction:column;align-items:center;width:${layout.width}px;user-select:none;cursor:pointer;${opacity}">${body}${label}</div>`;
}
/**