From 1dd8064531f6fffd54b541a58aa624ad2e27dac3 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Thu, 24 Oct 2024 17:39:34 +0800 Subject: refactor: add module 'Link' for GeoLink and DocLink --- src/dumbymap.mjs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/dumbymap.mjs') diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 92fe785..bb3737b 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs @@ -6,6 +6,7 @@ import MarkdownItInjectLinenumbers from 'markdown-it-inject-linenumbers' import * as mapclay from 'mapclay' import { onRemove, animateRectTransition, throttle, debounce, shiftByWindow } from './utils' import { Layout, SideBySide, Overlay, Sticky } from './Layout' +import { GeoLink, DocLink } from './Link.mjs' import * as utils from './dumbyUtils' import * as menuItem from './MenuItem' import PlainModal from 'plain-modal' @@ -209,7 +210,7 @@ export const generateMaps = (container, { if (node.matches?.('.mapclay') || node.closest?.('.mapclay')) return // Add GeoLinks from plain texts - addGeoLinksByText(node) + utils.addGeoSchemeByText(node) // Render Map const mapTarget = node.parentElement?.closest(mapBlockSelector) @@ -245,9 +246,9 @@ export const generateMaps = (container, { // Add GeoLinks/DocLinks by pattern target.querySelectorAll(geoLinkSelector) - .forEach(utils.createGeoLink) + .forEach(GeoLink.replaceWith) target.querySelectorAll(docLinkSelector) - .forEach(utils.createDocLink) + .forEach(DocLink.replaceWith) // Add GeoLinks from text nodes // const addedNodes = Array.from(mutation.addedNodes) @@ -318,7 +319,7 @@ export const generateMaps = (container, { values.at(-1) .map(utils.setGeoSchemeByCRS(crsString)) .filter(link => link) - .forEach(utils.createGeoLink) + .forEach(GeoLink.replaceWith) }) } @@ -556,7 +557,7 @@ export const generateMaps = (container, { menu.appendChild(new menuItem.Item({ text: 'Delete', onclick: () => { - utils.getMarkersFromMaps(geoLink) + geoLink.getMarkersFromMaps() .forEach(m => m.remove()) geoLink.replaceWith( document.createTextNode(geoLink.textContent), @@ -637,7 +638,7 @@ export const generateMaps = (container, { container.appendChild(pointByArrow) const timer = setTimeout(() => { - utils.dragForAnchor(container, range, pointByArrow) + utils.addGeoLinkByDrag(container, range, pointByArrow) }, 300) // Update leader-line with mouse move -- cgit v1.2.3-70-g09d2