X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/efe36f4f1b5df351eeb4d40a54c3900cf9a7079b..1726f584bb8ff2770506aae2e77fe27fbfd5ab98:/src/editor/modules/documentCanvas/canvas/utils.js?ds=sidebyside diff --git a/src/editor/modules/documentCanvas/canvas/utils.js b/src/editor/modules/documentCanvas/canvas/utils.js index 0eb19d0..327b0b0 100644 --- a/src/editor/modules/documentCanvas/canvas/utils.js +++ b/src/editor/modules/documentCanvas/canvas/utils.js @@ -19,8 +19,34 @@ var nearestInDocumentOrder = function(selector, direction, element) { return null; } +var findCanvasElement = function(node) { + if(node.nodeType === Node.ELEMENT_NODE) { + return node.getData('canvasElement'); + } + if(node.nodeType === Node.TEXT_NODE) { + return findCanvasElementInParent(node, node.parent()) + } +}; + +/** + * We take child and its parent as arguments separatly to + * handle situation where child was removed from WLXMLDocument + * and it lost reference to its parent (but we may still have it on canvas). +*/ +var findCanvasElementInParent = function(wlxmlChildNode, wlxmlParentNode) { + var parentElement = findCanvasElement(wlxmlParentNode), + toret; + parentElement.children().forEach(function(child) { + if(child.data('wlxmlNode').sameNode(wlxmlChildNode)) + toret = child; + }); + return toret; +} + return { nearestInDocumentOrder: nearestInDocumentOrder, + findCanvasElement: findCanvasElement, + findCanvasElementInParent: findCanvasElementInParent, unicode: { ZWS: '\u200B' }