diff options
-rw-r--r-- | src/dumbymap.mjs | 80 |
1 files changed, 42 insertions, 38 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 46a532d..6f9aa6f 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -212,6 +212,8 @@ export const generateMaps = (container, { | |||
212 | const originalCallback = container.oncontextmenu | 212 | const originalCallback = container.oncontextmenu |
213 | container.oncontextmenu = (e) => { | 213 | container.oncontextmenu = (e) => { |
214 | const menu = originalCallback(e) | 214 | const menu = originalCallback(e) |
215 | if (!menu) return | ||
216 | |||
215 | menuCallback(e, menu) | 217 | menuCallback(e, menu) |
216 | menu.style.transform = '' | 218 | menu.style.transform = '' |
217 | shiftByWindow(menu) | 219 | shiftByWindow(menu) |
@@ -518,44 +520,46 @@ export const generateMaps = (container, { | |||
518 | } | 520 | } |
519 | container.appendChild(menu) | 521 | container.appendChild(menu) |
520 | 522 | ||
521 | // /** Menu Items for Context Menu */ | 523 | /** Menu Items for Context Menu */ |
522 | // container.oncontextmenu = e => { | 524 | container.oncontextmenu = e => { |
523 | // menu.replaceChildren() | 525 | const map = e.target.closest('.mapclay') |
524 | // menu.style.display = 'block' | 526 | const block = e.target.closest('.dumby-block') |
525 | // menu.style.cssText = `left: ${e.clientX - menu.offsetParent.offsetLeft + 10}px; top: ${e.clientY - menu.offsetParent.offsetTop + 5}px;` | 527 | if (!block && !map) return |
526 | // e.preventDefault() | 528 | e.preventDefault() |
527 | // | 529 | |
528 | // // Menu Items for map | 530 | menu.replaceChildren() |
529 | // const map = e.target.closest('.mapclay') | 531 | menu.style.display = 'block' |
530 | // if (map?.renderer?.results) { | 532 | menu.style.cssText = `left: ${e.clientX - menu.offsetParent.offsetLeft + 10}px; top: ${e.clientY - menu.offsetParent.offsetTop + 5}px;` |
531 | // const rect = map.getBoundingClientRect() | 533 | |
532 | // const [x, y] = [e.x - rect.left, e.y - rect.top] | 534 | // Menu Items for map |
533 | // menu.appendChild(menuItem.toggleMapFocus(map)) | 535 | if (map?.renderer?.results) { |
534 | // menu.appendChild(menuItem.renderResults(dumbymap, map)) | 536 | const rect = map.getBoundingClientRect() |
535 | // menu.appendChild(menuItem.getCoordinatesByPixels(map, [x, y])) | 537 | const [x, y] = [e.x - rect.left, e.y - rect.top] |
536 | // menu.appendChild(menuItem.restoreCamera(map)) | 538 | menu.appendChild(menuItem.toggleMapFocus(map)) |
537 | // } else { | 539 | menu.appendChild(menuItem.renderResults(dumbymap, map)) |
538 | // // Toggle block focus | 540 | menu.appendChild(menuItem.getCoordinatesByPixels(map, [x, y])) |
539 | // const block = e.target.closest('.dumby-block') | 541 | menu.appendChild(menuItem.restoreCamera(map)) |
540 | // if (block) { | 542 | } else { |
541 | // menu.appendChild(menuItem.toggleBlockFocus(block)) | 543 | // Toggle block focus |
542 | // } | 544 | if (block) { |
543 | // } | 545 | menu.appendChild(menuItem.toggleBlockFocus(block)) |
544 | // | 546 | } |
545 | // // Menu Items for map/block/layout | 547 | } |
546 | // if (!map || map.closest('.Showcase')) { | 548 | |
547 | // if (dumbymap.utils.renderedMaps().length > 0) { | 549 | // Menu Items for map/block/layout |
548 | // menu.appendChild(menuItem.pickMapItem(dumbymap)) | 550 | if (!map || map.closest('.Showcase')) { |
549 | // } | 551 | if (dumbymap.utils.renderedMaps().length > 0) { |
550 | // menu.appendChild(menuItem.pickBlockItem(dumbymap)) | 552 | menu.appendChild(menuItem.pickMapItem(dumbymap)) |
551 | // menu.appendChild(menuItem.pickLayoutItem(dumbymap)) | 553 | } |
552 | // } | 554 | menu.appendChild(menuItem.pickBlockItem(dumbymap)) |
553 | // | 555 | menu.appendChild(menuItem.pickLayoutItem(dumbymap)) |
554 | // shiftByWindow(menu) | 556 | } |
555 | // | 557 | |
556 | // return menu | 558 | shiftByWindow(menu) |
557 | // } | 559 | |
558 | // | 560 | return menu |
561 | } | ||
562 | |||
559 | /** Event Handler when clicking outside of Context Manu */ | 563 | /** Event Handler when clicking outside of Context Manu */ |
560 | const actionOutsideMenu = e => { | 564 | const actionOutsideMenu = e => { |
561 | if (menu.style.display === 'none') return | 565 | if (menu.style.display === 'none') return |