diff options
Diffstat (limited to 'src/MenuItem.mjs')
-rw-r--r-- | src/MenuItem.mjs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs index 74b01d5..874c829 100644 --- a/src/MenuItem.mjs +++ b/src/MenuItem.mjs | |||
@@ -1,4 +1,5 @@ | |||
1 | import { shiftByWindow } from './utils.mjs' | 1 | import { shiftByWindow } from './utils.mjs' |
2 | import * as utils from './dumbyUtils.mjs' | ||
2 | 3 | ||
3 | /** | 4 | /** |
4 | * @typedef {Object} RefLink | 5 | * @typedef {Object} RefLink |
@@ -426,3 +427,38 @@ export const addRefLink = (cm, refLinks) => | |||
426 | }) | 427 | }) |
427 | }), | 428 | }), |
428 | }) | 429 | }) |
430 | |||
431 | /** | ||
432 | * setGeoLinkTypeItem. | ||
433 | * | ||
434 | * @param {HTMLAnchorElement} link | ||
435 | * @param {String} text | ||
436 | * @param {String} type | ||
437 | */ | ||
438 | export const setGeoLinkTypeItem = ({ link, text, type }) => { | ||
439 | const params = new URLSearchParams(link.search) | ||
440 | return new Item({ | ||
441 | text, | ||
442 | onclick: () => { | ||
443 | params.set('type', type) | ||
444 | link.search = params | ||
445 | utils.removeLeaderLines(link) | ||
446 | utils.getMarkersFromMaps(link) | ||
447 | .forEach(marker => marker.remove()) | ||
448 | utils.getMarkersFromMaps(link) | ||
449 | }, | ||
450 | }) | ||
451 | } | ||
452 | |||
453 | /** | ||
454 | * setGeoLinkType. | ||
455 | * | ||
456 | * @param {HTMLAnchorElement} link | ||
457 | */ | ||
458 | export const setGeoLinkType = (link) => new Folder({ | ||
459 | text: 'Marker Type', | ||
460 | items: [ | ||
461 | setGeoLinkTypeItem({ link, text: 'Pin', type: 'pin' }), | ||
462 | setGeoLinkTypeItem({ link, text: 'Circle', type: 'circle' }), | ||
463 | ], | ||
464 | }) | ||