aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/dumbymap.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r--src/dumbymap.mjs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs
index f4e3d83..e5dd2cd 100644
--- a/src/dumbymap.mjs
+++ b/src/dumbymap.mjs
@@ -348,16 +348,20 @@ export const generateMaps = (container, {
348 const mapElement = renderer.target 348 const mapElement = renderer.target
349 // FIXME 349 // FIXME
350 mapElement.renderer = renderer 350 mapElement.renderer = renderer
351 // Make map not focusable by tab key
351 mapElement.tabindex = -1 352 mapElement.tabindex = -1
353
354 // Cache if render is fulfilled
352 if (mapElement.dataset.render === 'fulfilled') { 355 if (mapElement.dataset.render === 'fulfilled') {
353 mapCache[mapElement.id] = renderer 356 mapCache[mapElement.id] = renderer
354 } else { 357 } else {
355 return 358 return
356 } 359 }
357 360
361 // Simple callback by caller
358 renderCallback?.(renderer) 362 renderCallback?.(renderer)
359 363
360 // Work with Mutation Observer 364 // Watch change of class
361 const observer = mapClassObserver() 365 const observer = mapClassObserver()
362 observer.observe(mapElement, { 366 observer.observe(mapElement, {
363 attributes: true, 367 attributes: true,
@@ -367,6 +371,14 @@ export const generateMaps = (container, {
367 onRemove(dumbymap.htmlHolder, () => { 371 onRemove(dumbymap.htmlHolder, () => {
368 observer.disconnect() 372 observer.disconnect()
369 }) 373 })
374
375 // Focus current map is no map is focused
376 if (
377 !dumbymap.utils.renderedMaps().find(map => map.classList.contains('focus')) ||
378 container.querySelectorAll('.mapclay.focus').length === 0
379 ) {
380 mapElement.classList.add('focus')
381 }
370 } 382 }
371 383
372 // Set unique ID for map container 384 // Set unique ID for map container