diff options
| author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-01 12:29:04 +0800 |
|---|---|---|
| committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-01 12:32:04 +0800 |
| commit | 239a39f1e5bb771bb2841c2aee41038b0b577e07 (patch) | |
| tree | 61a2239ca63eb2593a029daa0ffd1faee439d4f2 /src | |
| parent | e35f8d9b4fdc2315b03c813b451261f20d83cc09 (diff) | |
feat: show menu items in cases
If click on map, only show focus/print-results items
If not, show focus-block method and other menu-items
Diffstat (limited to 'src')
| -rw-r--r-- | src/dumbymap.mjs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 72936ec..d77d49c 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
| @@ -474,22 +474,26 @@ export const generateMaps = (container, { delay, mapCallback }) => { | |||
| 474 | const selection = document.getSelection(); | 474 | const selection = document.getSelection(); |
| 475 | if (selection.type === 'Range') { | 475 | if (selection.type === 'Range') { |
| 476 | const range = selection.getRangeAt(0); | 476 | const range = selection.getRangeAt(0); |
| 477 | menu.innerHTML = ''; | 477 | menu.appendChild(menuItem.addGeoLink(dumbymap, range)); |
| 478 | const addGeoLink = new menuItem.GeoLink({ range }); | ||
| 479 | menu.appendChild(addGeoLink.createElement()); | ||
| 480 | } | 478 | } |
| 481 | menu.style.cssText = `overflow: visible; display: block; left: ${e.clientX + 10}px; top: ${e.clientY + 5}px;`; | 479 | menu.style.cssText = `overflow: visible; display: block; left: ${e.clientX + 10}px; top: ${e.clientY + 5}px;`; |
| 482 | 480 | ||
| 483 | // Print Map Results | ||
| 484 | const map = e.target.closest('.mapclay'); | 481 | const map = e.target.closest('.mapclay'); |
| 485 | if (map?.renderer?.results) { | 482 | if (map?.renderer?.results) { |
| 483 | // Focus or Print Map Results | ||
| 486 | menu.appendChild(menuItem.renderResults(dumbymap, map)); | 484 | menu.appendChild(menuItem.renderResults(dumbymap, map)); |
| 485 | menu.appendChild(menuItem.toggleMapFocus(map)); | ||
| 486 | } else { | ||
| 487 | // Toggle block focus | ||
| 488 | const block = e.target.closest('.dumby-block'); | ||
| 489 | if (block) { | ||
| 490 | menu.appendChild(menuItem.toggleBlockFocus(block)); | ||
| 491 | } | ||
| 492 | // Dumby Utils | ||
| 493 | menu.appendChild(menuItem.pickMapItem(dumbymap)); | ||
| 494 | menu.appendChild(menuItem.pickBlockItem(dumbymap)); | ||
| 495 | menu.appendChild(menuItem.pickLayoutItem(dumbymap)); | ||
| 487 | } | 496 | } |
| 488 | |||
| 489 | // Dumby Utils | ||
| 490 | menu.appendChild(menuItem.pickMapItem(dumbymap)); | ||
| 491 | menu.appendChild(menuItem.pickBlockItem(dumbymap)); | ||
| 492 | menu.appendChild(menuItem.pickLayoutItem(dumbymap)); | ||
| 493 | }; | 497 | }; |
| 494 | 498 | ||
| 495 | // Remove menu when click outside | 499 | // Remove menu when click outside |