diff --git a/src/svgcanvas/event.js b/src/svgcanvas/event.js index 78acf72e..2fbd63a6 100644 --- a/src/svgcanvas/event.js +++ b/src/svgcanvas/event.js @@ -141,7 +141,7 @@ export const mouseMoveEvent = function (evt) { // update the dummy transform in our transform list // to be a translate const xform = svgRoot.createSVGTransform(); - tlist = selected.transform.baseVal; + tlist = selected.transform?.baseVal; // Note that if Webkit and there's no ID for this // element, the dummy transform may have gotten lost. // This results in unexpected behaviour @@ -1043,7 +1043,7 @@ export const mouseDownEvent = function (evt) { // a transform to use for its translate for (const selectedElement of selectedElements()) { if (isNullish(selectedElement)) { continue; } - const slist = selectedElement.transform.baseVal; + const slist = selectedElement.transform?.baseVal; if (slist.numberOfItems) { slist.insertItemBefore(svgRoot.createSVGTransform(), 0); } else { diff --git a/src/svgcanvas/history.js b/src/svgcanvas/history.js index fde9e89e..6e0b5310 100644 --- a/src/svgcanvas/history.js +++ b/src/svgcanvas/history.js @@ -242,7 +242,6 @@ export class RemoveElementCommand extends Command { */ apply (handler) { super.apply(handler, () => { - this.removeElementFromListMap(); this.parent = this.elem.parentNode; this.elem.remove(); }); diff --git a/src/svgcanvas/recalculate.js b/src/svgcanvas/recalculate.js index 74562d3a..81e1d6df 100644 --- a/src/svgcanvas/recalculate.js +++ b/src/svgcanvas/recalculate.js @@ -76,7 +76,7 @@ export const recalculateDimensions = function (selected) { if (!selected) return null; const svgroot = context_.getSVGRoot(); const dataStorage = context_.getDataStorage(); - const tlist = selected.transform.baseVal; + const tlist = selected.transform?.baseVal; // remove any unnecessary transforms if (tlist && tlist.numberOfItems > 0) { let k = tlist.numberOfItems; @@ -477,7 +477,7 @@ export const recalculateDimensions = function (selected) { if (child.nodeType === 1) { oldStartTransform = context_.getStartTransform(); context_.setStartTransform(child.getAttribute('transform')); - const childTlist = child.transform.baseVal; + const childTlist = child.transform?.baseVal; if (!childTlist) { continue; } @@ -558,7 +558,7 @@ export const recalculateDimensions = function (selected) { if (child.nodeType === 1) { oldStartTransform = context_.getStartTransform(); context_.setStartTransform(child.getAttribute('transform')); - const childTlist = child.transform.baseVal; + const childTlist = child.transform?.baseVal; const newxlate = svgroot.createSVGTransform(); newxlate.setTranslate(tx, ty); if (childTlist.numberOfItems) { diff --git a/src/svgcanvas/selected-elem.js b/src/svgcanvas/selected-elem.js index a8511864..db0763f3 100644 --- a/src/svgcanvas/selected-elem.js +++ b/src/svgcanvas/selected-elem.js @@ -168,7 +168,7 @@ export const moveSelectedElements = function (dx, dy, undoable = true) { const selected = selectedElements[i]; if (!isNullish(selected)) { const xform = elementContext_.getSVGRoot().createSVGTransform(); - const tlist = selected.transform.baseVal; + const tlist = selected.transform?.baseVal; // dx and dy could be arrays if (Array.isArray(dx)) { diff --git a/src/svgcanvas/selection.js b/src/svgcanvas/selection.js index 8aef35ec..40e71bf6 100644 --- a/src/svgcanvas/selection.js +++ b/src/svgcanvas/selection.js @@ -161,7 +161,7 @@ export const getMouseTargetMethod = function (evt) { return svgCanvas.selectorManager.selectorParentGroup; } - while (!mouseTarget.parentNode?.isSameNode(selectionContext_.getCurrentGroup() || currentLayer)) { + while (!mouseTarget?.parentNode?.isSameNode(selectionContext_.getCurrentGroup() || currentLayer)) { mouseTarget = mouseTarget.parentNode; }