diff --git a/src/editor/extensions/ext-markers/ext-markers.js b/src/editor/extensions/ext-markers/ext-markers.js index 8f77803b..21de1cfb 100644 --- a/src/editor/extensions/ext-markers/ext-markers.js +++ b/src/editor/extensions/ext-markers/ext-markers.js @@ -74,7 +74,6 @@ export default { return svgCanvas.getElem(m[1]); }; - let selElems; /** * Toggles context tool panel off/on. * @param {boolean} on @@ -96,14 +95,14 @@ export default { /** * @param {string} id - * @param {""|"\\nomarker"|"nomarker"|"leftarrow"|"rightarrow"|"textmarker"|"forwardslash"|"reverseslash"|"verticalslash"|"box"|"star"|"xmark"|"triangle"|"mcircle"} seType + * @param {""|"nomarker"|"nomarker"|"leftarrow"|"rightarrow"|"textmarker"|"forwardslash"|"reverseslash"|"verticalslash"|"box"|"star"|"xmark"|"triangle"|"mcircle"} seType * @returns {SVGMarkerElement} */ const addMarker = (id, seType) => { + const selElems = svgCanvas.getSelectedElems(); let marker = svgCanvas.getElem(id); if (marker) { return undefined; } - if (seType === '' || seType === '\\nomarker') { return undefined; } - + if (seType === '' || seType === 'nomarker') { return undefined; } const el = selElems[0]; const color = el.getAttribute('stroke'); const strokeWidth = 10; @@ -160,7 +159,6 @@ export default { if (elem.tagName !== 'line') { return elem; } // Convert to polyline to accept mid-arrow - const x1 = Number(elem.getAttribute('x1')); const x2 = Number(elem.getAttribute('x2')); const y1 = Number(elem.getAttribute('y1')); @@ -202,15 +200,16 @@ export default { * @returns {void} */ const setMarker = (pos, markerType) => { - if (!selElems) return; + const selElems = svgCanvas.getSelectedElems(); + if (selElems.length === 0) return; const markerName = 'marker-' + pos; const el = selElems[0]; const marker = getLinked(el, markerName); if (marker) { marker.remove(); } el.removeAttribute(markerName); let val = markerType; - if (val === '') { val = '\\nomarker'; } - if (val === '\\nomarker') { + if (val === '') { val = 'nomarker'; } + if (val === 'nomarker') { svgCanvas.call('changed', selElems); return; } @@ -253,6 +252,7 @@ export default { * @returns {void} */ const updateReferences = (el) => { + const selElems = svgCanvas.getSelectedElems(); mtypes.forEach((pos) => { const id = 'mkr_' + pos + '_' + el.id; const markerName = 'marker-' + pos; @@ -279,6 +279,7 @@ export default { callback() { // Add the context panel and its handler(s) const panelTemplate = document.createElement("template"); + // create the marker panel let innerHTML = '