diff options
-rw-r--r-- | src/dumbyUtils.mjs | 9 | ||||
-rw-r--r-- | src/dumbymap.mjs | 14 |
2 files changed, 20 insertions, 3 deletions
diff --git a/src/dumbyUtils.mjs b/src/dumbyUtils.mjs index 214e44f..42a51bc 100644 --- a/src/dumbyUtils.mjs +++ b/src/dumbyUtils.mjs | |||
@@ -385,7 +385,7 @@ export const dragForAnchor = (container, range, endOfLeaderLine) => { | |||
385 | container.classList.add('dragging-geolink') | 385 | container.classList.add('dragging-geolink') |
386 | const geoLink = document.createElement('a') | 386 | const geoLink = document.createElement('a') |
387 | geoLink.textContent = range.toString() | 387 | geoLink.textContent = range.toString() |
388 | geoLink.classList.add('with-leader-line', 'geolink', 'drag') | 388 | geoLink.classList.add('with-leader-line', 'geolink', 'drag', 'from-text') |
389 | 389 | ||
390 | // Replace current content with link | 390 | // Replace current content with link |
391 | const originContent = range.cloneContents() | 391 | const originContent = range.cloneContents() |
@@ -439,6 +439,11 @@ export const dragForAnchor = (container, range, endOfLeaderLine) => { | |||
439 | } | 439 | } |
440 | } | 440 | } |
441 | 441 | ||
442 | /** | ||
443 | * addGeoSchemeByText. | ||
444 | * | ||
445 | * @param {Node} node | ||
446 | */ | ||
442 | export const addGeoSchemeByText = async (node) => { | 447 | export const addGeoSchemeByText = async (node) => { |
443 | const digit = '[\\d\\uFF10-\\uFF19]' | 448 | const digit = '[\\d\\uFF10-\\uFF19]' |
444 | const decimal = '[.\\uFF0E]' | 449 | const decimal = '[.\\uFF0E]' |
@@ -451,7 +456,7 @@ export const addGeoSchemeByText = async (node) => { | |||
451 | if (Date.parse(match.at(0) + ' 1990')) return null | 456 | if (Date.parse(match.at(0) + ' 1990')) return null |
452 | 457 | ||
453 | const a = document.createElement('a') | 458 | const a = document.createElement('a') |
454 | a.className = 'not-geolink' | 459 | a.className = 'not-geolink from-text' |
455 | a.href = `geo:0,0?xy=${x},${y}` | 460 | a.href = `geo:0,0?xy=${x},${y}` |
456 | a.textContent = match.at(0) | 461 | a.textContent = match.at(0) |
457 | return a | 462 | return a |
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 2f2b67f..6e5bc38 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -530,7 +530,8 @@ export const generateMaps = (container, { | |||
530 | container.querySelectorAll('.dumby-menu').forEach(m => m.remove()) | 530 | container.querySelectorAll('.dumby-menu').forEach(m => m.remove()) |
531 | const map = e.target.closest('.mapclay') | 531 | const map = e.target.closest('.mapclay') |
532 | const block = e.target.closest('.dumby-block') | 532 | const block = e.target.closest('.dumby-block') |
533 | if (!block && !map) return | 533 | const geoLink = e.target.closest('.geolink') |
534 | if (!block && !map && !geoLink) return | ||
534 | e.preventDefault() | 535 | e.preventDefault() |
535 | 536 | ||
536 | // Add menu element | 537 | // Add menu element |
@@ -549,6 +550,17 @@ export const generateMaps = (container, { | |||
549 | }).observe(menu, { childList: true }) | 550 | }).observe(menu, { childList: true }) |
550 | menu.timer = setTimeout(() => menu.remove(), 100) | 551 | menu.timer = setTimeout(() => menu.remove(), 100) |
551 | 552 | ||
553 | // Menu Items for GeoLink | ||
554 | if (geoLink) { | ||
555 | if (geoLink.classList.contains('from-text')) { | ||
556 | menu.appendChild(new menuItem.Item({ | ||
557 | text: 'Delete', | ||
558 | onclick: () => geoLink.replaceWith(document.createTextNode(geoLink.textContent)), | ||
559 | })) | ||
560 | } | ||
561 | return | ||
562 | } | ||
563 | |||
552 | // Menu Items for map | 564 | // Menu Items for map |
553 | if (map?.renderer?.results) { | 565 | if (map?.renderer?.results) { |
554 | const rect = map.getBoundingClientRect() | 566 | const rect = map.getBoundingClientRect() |