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 |