diff --git a/src/editor/EditorStartup.js b/src/editor/EditorStartup.js index d923ef51..f40d68d1 100644 --- a/src/editor/EditorStartup.js +++ b/src/editor/EditorStartup.js @@ -655,7 +655,7 @@ class EditorStartup { editorObj.svgCanvas.selectOnly([ newImage ]); editorObj.svgCanvas.alignSelectedElements('m', 'page'); editorObj.svgCanvas.alignSelectedElements('c', 'page'); - editorObj.topPanelHandlers.updateContextPanel(); + editorObj.topPanel.updateContextPanel(); document.getElementById('se-prompt-dialog').setAttribute('close', true); }; // create dummy img so we know the default dimensions diff --git a/src/editor/panels/LayersPanel.js b/src/editor/panels/LayersPanel.js index 34eac5be..6e162ff7 100644 --- a/src/editor/panels/LayersPanel.js +++ b/src/editor/panels/LayersPanel.js @@ -325,7 +325,8 @@ class LayersPanel { * @returns {void} */ layerRename() { - const oldName = document.querySelector("#layerlist tr.layersel td.layername").textContent; + const ele = document.querySelector("#layerlist tr.layersel td.layername"); + const oldName = (ele) ? ele.textContent : ''; const newName = prompt(this.editor.i18next.t('notification.enterNewLayerName'), ""); if (!newName) { return; @@ -425,7 +426,8 @@ class LayersPanel { const elements = $id('layerlist').querySelectorAll("td.layervis"); Array.from(elements).forEach(function(element) { element.addEventListener('click', function(evt) { - const name = evt.currentTarget.parentNode.querySelector("td.layername").textContent; + const ele = evt.currentTarget.parentNode.querySelector("td.layername"); + const name = (ele)? ele.textContent : ''; const vis = evt.currentTarget.classList.contains("layerinvis"); self.editor.svgCanvas.setLayerVisibility(name, vis); evt.currentTarget.classList.toggle("layerinvis"); diff --git a/src/svgcanvas/elem-get-set.js b/src/svgcanvas/elem-get-set.js index f2696069..f47ad098 100644 --- a/src/svgcanvas/elem-get-set.js +++ b/src/svgcanvas/elem-get-set.js @@ -3,12 +3,8 @@ * @license MIT * @copyright 2011 Jeff Schiller */ - -/* globals jQuery */ import { jGraduate } from '../editor/components/jgraduate/jQuery.jGraduate.js'; - import * as hstry from './history.js'; -import jQueryPluginSVG from './jQuery.attr.js'; import { NS } from '../common/namespaces.js'; import { getVisibleElements, getStrokedBBoxDefaultVisible, findDefs, @@ -19,8 +15,6 @@ import { } from '../common/units.js'; import { getParents } from '../editor/components/jgraduate/Util.js'; -const $ = jQueryPluginSVG(jQuery); - const { InsertElementCommand, RemoveElementCommand, ChangeElementCommand, BatchCommand @@ -272,7 +266,7 @@ export const setBBoxZoomMethod = function (val, editorW, editorH) { switch (val) { case 'selection': { if (!selectedElements[0]) { return undefined; } - const selectedElems = $.map(selectedElements, function (n) { + const selectedElems = selectedElements.map(function (n, _) { if (n) { return n; } @@ -722,7 +716,7 @@ export const getTextMethod = function () { const selectedElements = elemContext_.getSelectedElements(); const selected = selectedElements[0]; if (isNullish(selected)) { return ''; } - return selected.textContent; + return (selected) ? selected.textContent : ''; }; /** diff --git a/src/svgcanvas/history.js b/src/svgcanvas/history.js index e8ab6a3a..73d03c01 100644 --- a/src/svgcanvas/history.js +++ b/src/svgcanvas/history.js @@ -294,7 +294,7 @@ export class ChangeElementCommand extends Command { this.oldValues = attrs; for (const attr in attrs) { if (attr === '#text') { - this.newValues[attr] = elem.textContent; + this.newValues[attr] = (elem) ? elem.textContent : ''; } else if (attr === '#href') { this.newValues[attr] = getHref(elem); } else { diff --git a/src/svgcanvas/selected-elem.js b/src/svgcanvas/selected-elem.js index 93dd9742..39b3f472 100644 --- a/src/svgcanvas/selected-elem.js +++ b/src/svgcanvas/selected-elem.js @@ -735,8 +735,11 @@ export const convertToGroup = function (elem) { } else if (dataStorage.has($elem, 'symbol')) { elem = dataStorage.get($elem, 'symbol'); - ts = $elem.attr('transform'); - const pos = $elem.attr([ 'x', 'y' ]); + ts = $elem.getAttribute('transform'); + const pos = { + x: $elem.getAttribute('x'), + y: $elem.getAttribute('y') + }; const vb = elem.getAttribute('viewBox'); diff --git a/src/svgcanvas/svg-exec.js b/src/svgcanvas/svg-exec.js index cf825ccb..766d0bd4 100644 --- a/src/svgcanvas/svg-exec.js +++ b/src/svgcanvas/svg-exec.js @@ -351,7 +351,7 @@ export const setSvgString = function (xmlString, preventUndo) { const elements = content.querySelectorAll('image'); Array.prototype.forEach.call(elements, function (image) { preventClickDefault(image); - const val = svgContext_.getCanvas().getHref(this); + const val = svgContext_.getCanvas().getHref(image); if (val) { if (val.startsWith('data:')) { // Check if an SVG-edit data URI diff --git a/src/svgcanvas/utilities.js b/src/svgcanvas/utilities.js index 1a7c54e5..38ff9f7e 100644 --- a/src/svgcanvas/utilities.js +++ b/src/svgcanvas/utilities.js @@ -1324,11 +1324,8 @@ export const snapToGrid = function (value) { * @returns {void} */ export const preventClickDefault = function (img) { - const elements = document.querySelectorAll(img); - Array.from(elements).forEach(function (element) { - element.addEventListener('click', function (e) { - e.preventDefault(); - }); + img.addEventListener('click', function (e) { + e.preventDefault(); }); };