diff options
Diffstat (limited to 'src/MenuItem.mjs')
-rw-r--r-- | src/MenuItem.mjs | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs index 1d864fd..11ce4be 100644 --- a/src/MenuItem.mjs +++ b/src/MenuItem.mjs | |||
@@ -1,7 +1,7 @@ | |||
1 | import { shiftByWindow } from './utils.mjs' | 1 | import { shiftByWindow } from './utils.mjs' |
2 | /* eslint-disable no-unused-vars */ | 2 | import { addMarkerByPoint } from './dumbyUtils.mjs' |
3 | /* eslint-disable-next-line no-unused-vars */ | ||
3 | import { GeoLink, getMarkersFromMaps, removeLeaderLines } from './Link.mjs' | 4 | import { GeoLink, getMarkersFromMaps, removeLeaderLines } from './Link.mjs' |
4 | /* eslint-enable */ | ||
5 | import * as markers from './marker.mjs' | 5 | import * as markers from './marker.mjs' |
6 | 6 | ||
7 | /** | 7 | /** |
@@ -495,3 +495,31 @@ export const setLeaderLineType = (link) => new Folder({ | |||
495 | }, | 495 | }, |
496 | })), | 496 | })), |
497 | }) | 497 | }) |
498 | |||
499 | /** | ||
500 | * addMarker. | ||
501 | * | ||
502 | * @param {Object} options | ||
503 | * @param {HTMLElement} options.map - map element | ||
504 | * @param {Number[]} options.point - xy values in pixel | ||
505 | * @param {Function} options.isNameValid - check marker name is valid | ||
506 | * @param {Function} options.callback | ||
507 | */ | ||
508 | export const addMarker = ({ | ||
509 | map, | ||
510 | point, | ||
511 | isNameValid = () => true, | ||
512 | callback = null, | ||
513 | }) => new Item({ | ||
514 | text: 'Add Marker', | ||
515 | onclick: () => { | ||
516 | let markerName | ||
517 | do { | ||
518 | markerName = window.prompt(markerName ? 'Name exists' : 'Marker Name') | ||
519 | } while (markerName && !isNameValid(markerName)) | ||
520 | if (markerName === null) return | ||
521 | |||
522 | const marker = addMarkerByPoint({ point, map }) | ||
523 | callback?.(marker) | ||
524 | }, | ||
525 | }) | ||