diff --git a/build/node/Types/XmlTypes.js b/build/node/Types/XmlTypes.js index 7ab172a8..df31d77f 100644 --- a/build/node/Types/XmlTypes.js +++ b/build/node/Types/XmlTypes.js @@ -307,7 +307,6 @@ this.xml.appendChild(n.val(enforce)); } else if (n.type === "TextNodeType") { text_node = n.val(); - text_node._yatta = this; this.xml.appendChild(text_node); } else { throw new Error("Internal structure cannot be transformed to dom"); @@ -368,7 +367,7 @@ HB.addOperation(d).execute(); content._yatta = null; } - this._yatta = this; + content._yatta = this; TextNodeType.__super__.constructor.call(this, uid, content); } diff --git a/build/node/Types/XmlTypes.js.map b/build/node/Types/XmlTypes.js.map index e6ac61d8..2252a3f0 100755 --- a/build/node/Types/XmlTypes.js.map +++ b/build/node/Types/XmlTypes.js.map @@ -1 +1 @@ -{"version":3,"sources":["Types/XmlTypes.coffee"],"names":[],"mappings":"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","file":"Types/XmlTypes.js","sourceRoot":"/source/","sourcesContent":["\njson_types_uninitialized = require \"./JsonTypes\"\n\n# some dom implementations may call another dom.method that simulates the behavior of another.\n# For example xml.insertChild(dom) , wich inserts an element at the end, and xml.insertAfter(dom,null) wich does the same\n# But yatta's proxy may be called only once!\nproxy_token = false\ndont_proxy = (f)->\n proxy_token = true\n try\n f()\n catch e\n proxy_token = false\n throw new Error e\n proxy_token = false\n\n_proxy = (f_name, f)->\n old_f = @[f_name]\n if old_f?\n @[f_name] = ()->\n if not proxy_token and not @_yatta?.isDeleted()\n that = this\n args = arguments\n dont_proxy ()->\n f.apply that, args\n old_f.apply that, args\n else\n old_f.apply this, arguments\n #else\n # @[f_name] = f\nElement?.prototype._proxy = _proxy\n\n\nmodule.exports = (HB)->\n json_types = json_types_uninitialized HB\n types = json_types.types\n parser = json_types.parser\n\n #\n # Manages XML types\n # Not supported:\n # * Attribute nodes\n # * Real replace of child elements (to much overhead). Currently, the new element is inserted after the 'replaced' element, and then it is deleted.\n # * Namespaces (*NS)\n # * Browser specific methods (webkit-* operations)\n class XmlType extends types.Insert\n\n constructor: (uid, @tagname, attributes, elements, @xml)->\n ### In case you make this instanceof Insert again\n if prev? and (not next?) and prev.type?\n # adjust what you actually mean. you want to insert after prev, then\n # next is not defined. but we only insert after non-deleted elements.\n # This is also handled in TextInsert.\n while prev.isDeleted()\n prev = prev.prev_cl\n next = prev.next_cl\n ###\n\n super(uid)\n\n\n if @xml?._yatta?\n d = new types.Delete undefined, @xml._yatta\n HB.addOperation(d).execute()\n @xml._yatta = null\n\n if attributes? and elements?\n @saveOperation 'attributes', attributes\n @saveOperation 'elements', elements\n else if (not attributes?) and (not elements?)\n @attributes = new types.JsonType()\n @attributes.setMutableDefault 'immutable'\n HB.addOperation(@attributes).execute()\n @elements = new types.WordType()\n @elements.parent = @\n HB.addOperation(@elements).execute()\n else\n throw new Error \"Either define attribute and elements both, or none of them\"\n\n if @xml?\n @tagname = @xml.tagName\n for i in [0...@xml.attributes.length]\n attr = xml.attributes[i]\n @attributes.val(attr.name, attr.value)\n for n in @xml.childNodes\n if n.nodeType is n.TEXT_NODE\n word = new TextNodeType(undefined, n)\n HB.addOperation(word).execute()\n @elements.push word\n else if n.nodeType is n.ELEMENT_NODE\n element = new XmlType undefined, undefined, undefined, undefined, n\n HB.addOperation(element).execute()\n @elements.push element\n else\n throw new Error \"I don't know Node-type #{n.nodeType}!!\"\n @setXmlProxy()\n undefined\n\n #\n # Identifies this class.\n # Use it in order to check whether this is an xml-type or something else.\n #\n type: \"XmlType\"\n\n applyDelete: (op)->\n if @insert_parent? and not @insert_parent.isDeleted()\n @insert_parent.applyDelete op\n else\n @attributes.applyDelete()\n @elements.applyDelete()\n super\n\n cleanup: ()->\n super()\n\n setXmlProxy: ()->\n @xml._yatta = @\n that = @\n\n @elements.on 'insert', (event, op)->\n if op.creator isnt HB.getUserId() and this is that.elements\n newNode = op.content.val()\n right = op.next_cl\n while right? and right.isDeleted()\n right = right.next_cl\n rightNode = null\n if right.type isnt 'Delimiter'\n rightNode = right.val().val()\n dont_proxy ()->\n that.xml.insertBefore newNode, rightNode\n @elements.on 'delete', (event, op)->\n del_op = op.deleted_by[0]\n if del_op? and del_op.creator isnt HB.getUserId() and this is that.elements\n deleted = op.content.val()\n dont_proxy ()->\n that.xml.removeChild deleted\n\n @attributes.on ['addProperty', 'change'], (event, property_name, op)->\n if op.creator isnt HB.getUserId() and this is that.attributes\n dont_proxy ()->\n newval = op.val().val()\n if newval?\n that.xml.setAttribute(property_name, op.val().val())\n else\n that.xml.removeAttribute(property_name)\n\n\n\n\n\n\n\n\n ## Here are all methods that proxy the behavior of the xml\n\n # you want to find a specific child element. Since they are carried by an Insert-Type, you want to find that Insert-Operation.\n # @param child {DomElement} Dom element.\n # @return {InsertType} This carries the XmlType that represents the DomElement (child). false if i couldn't find it.\n #\n findNode = (child)->\n if not child?\n throw new Error \"you must specify a parameter!\"\n child = child._yatta\n elem = that.elements.beginning.next_cl\n while elem.type isnt 'Delimiter' and elem.content isnt child\n elem = elem.next_cl\n if elem.type is 'Delimiter'\n false\n else\n elem\n\n insertBefore = (insertedNode_s, adjacentNode)->\n next = null\n if adjacentNode?\n next = findNode adjacentNode\n prev = null\n if next\n prev = next.prev_cl\n else\n prev = @_yatta.elements.end.prev_cl\n while prev.isDeleted()\n prev = prev.prev_cl\n inserted_nodes = null\n if insertedNode_s.nodeType is insertedNode_s.DOCUMENT_FRAGMENT_NODE\n child = insertedNode_s.lastChild\n while child?\n element = new XmlType undefined, undefined, undefined, undefined, child\n HB.addOperation(element).execute()\n that.elements.insertAfter prev, element\n child = child.previousSibling\n else\n element = new XmlType undefined, undefined, undefined, undefined, insertedNode_s\n HB.addOperation(element).execute()\n that.elements.insertAfter prev, element\n\n @xml._proxy 'insertBefore', insertBefore\n @xml._proxy 'appendChild', insertBefore\n @xml._proxy 'removeAttribute', (name)->\n that.attributes.val(name, undefined)\n @xml._proxy 'setAttribute', (name, value)->\n that.attributes.val name, value\n\n renewClassList = (newclass)->\n dont_do_it = false\n if newclass?\n for elem in this\n if newclass is elem\n dont_do_it = true\n value = Array.prototype.join.call this, \" \"\n if newclass? and not dont_do_it\n value += \" \"+newclass\n that.attributes.val('class', value )\n _proxy.call @xml.classList, 'add', renewClassList\n _proxy.call @xml.classList, 'remove', renewClassList\n @xml.__defineSetter__ 'className', (val)->\n @setAttribute('class', val)\n @xml.__defineGetter__ 'className', ()->\n that.attributes.val('class')\n @xml.__defineSetter__ 'textContent', (val)->\n # remove all nodes\n elem = that.xml.firstChild\n while elem?\n remove = elem\n elem = elem.nextSibling\n that.xml.removeChild remove\n\n # insert word content\n if val isnt \"\"\n text_node = document.createTextNode val\n that.xml.appendChild text_node\n\n removeChild = (node)->\n elem = findNode node\n if not elem\n throw new Error \"You are only allowed to delete existing (direct) child elements!\"\n d = new types.Delete undefined, elem\n HB.addOperation(d).execute()\n node._yatta = null\n @xml._proxy 'removeChild', removeChild\n @xml._proxy 'replaceChild', (insertedNode, replacedNode)->\n insertBefore.call this, insertedNode, replacedNode\n removeChild.call this, replacedNode\n\n\n\n val: (enforce = false)->\n if document?\n if (not @xml?) or enforce\n @xml = document.createElement @tagname\n\n attr = @attributes.val()\n for attr_name, value of attr\n if value?\n a = document.createAttribute attr_name\n a.value = value\n @xml.setAttributeNode a\n\n e = @elements.beginning.next_cl\n while e.type isnt \"Delimiter\"\n n = e.content\n if not e.isDeleted() and e.content? # TODO: how can this happen? Probably because listeners\n if n.type is \"XmlType\"\n @xml.appendChild n.val(enforce)\n else if n.type is \"TextNodeType\"\n text_node = n.val()\n text_node._yatta = @\n @xml.appendChild text_node\n else\n throw new Error \"Internal structure cannot be transformed to dom\"\n e = e.next_cl\n @setXmlProxy()\n @xml\n\n\n execute: ()->\n super()\n ###\n if not @validateSavedOperations()\n return false\n else\n\n return true\n ###\n\n #\n # Get the parent of this JsonType.\n # @return {XmlType}\n #\n getParent: ()->\n @parent\n\n #\n # @private\n #\n # Convert all relevant information of this operation to the json-format.\n # This result can be send to other clients.\n #\n _encode: ()->\n json =\n {\n 'type' : @type\n 'attributes' : @attributes.getUid()\n 'elements' : @elements.getUid()\n 'tagname' : @tagname\n 'uid' : @getUid()\n }\n json\n\n parser['XmlType'] = (json)->\n {\n 'uid' : uid\n 'attributes' : attributes\n 'elements' : elements\n 'tagname' : tagname\n } = json\n\n new XmlType uid, tagname, attributes, elements, undefined\n\n#\n # @nodoc\n # Defines an object that is cannot be changed. You can use this to set an immutable string, or a number.\n #\n class TextNodeType extends types.ImmutableObject\n\n #\n # @param {Object} uid A unique identifier. If uid is undefined, a new uid will be created.\n # @param {Object} content\n #\n constructor: (uid, content)->\n if content._yatta?\n d = new types.Delete undefined, content._yatta\n HB.addOperation(d).execute()\n content._yatta = null\n @_yatta = @\n super uid, content\n\n applyDelete: (op)->\n if @insert_parent? and not @insert_parent.isDeleted()\n @insert_parent.applyDelete op\n else\n super\n\n\n type: \"TextNodeType\"\n\n #\n # Encode this operation in such a way that it can be parsed by remote peers.\n #\n _encode: ()->\n json = {\n 'type': @type\n 'uid' : @getUid()\n 'content' : @content.textContent\n }\n json\n\n parser['TextNodeType'] = (json)->\n {\n 'uid' : uid\n 'content' : content\n } = json\n textnode = document.createTextNode content\n new TextNodeType uid, textnode\n\n types['XmlType'] = XmlType\n\n json_types\n"]} \ No newline at end of file +{"version":3,"sources":["Types/XmlTypes.coffee"],"names":[],"mappings":"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","file":"Types/XmlTypes.js","sourceRoot":"/source/","sourcesContent":["\njson_types_uninitialized = require \"./JsonTypes\"\n\n# some dom implementations may call another dom.method that simulates the behavior of another.\n# For example xml.insertChild(dom) , wich inserts an element at the end, and xml.insertAfter(dom,null) wich does the same\n# But yatta's proxy may be called only once!\nproxy_token = false\ndont_proxy = (f)->\n proxy_token = true\n try\n f()\n catch e\n proxy_token = false\n throw new Error e\n proxy_token = false\n\n_proxy = (f_name, f)->\n old_f = @[f_name]\n if old_f?\n @[f_name] = ()->\n if not proxy_token and not @_yatta?.isDeleted()\n that = this\n args = arguments\n dont_proxy ()->\n f.apply that, args\n old_f.apply that, args\n else\n old_f.apply this, arguments\n #else\n # @[f_name] = f\nElement?.prototype._proxy = _proxy\n\n\nmodule.exports = (HB)->\n json_types = json_types_uninitialized HB\n types = json_types.types\n parser = json_types.parser\n\n #\n # Manages XML types\n # Not supported:\n # * Attribute nodes\n # * Real replace of child elements (to much overhead). Currently, the new element is inserted after the 'replaced' element, and then it is deleted.\n # * Namespaces (*NS)\n # * Browser specific methods (webkit-* operations)\n class XmlType extends types.Insert\n\n constructor: (uid, @tagname, attributes, elements, @xml)->\n ### In case you make this instanceof Insert again\n if prev? and (not next?) and prev.type?\n # adjust what you actually mean. you want to insert after prev, then\n # next is not defined. but we only insert after non-deleted elements.\n # This is also handled in TextInsert.\n while prev.isDeleted()\n prev = prev.prev_cl\n next = prev.next_cl\n ###\n\n super(uid)\n\n\n if @xml?._yatta?\n d = new types.Delete undefined, @xml._yatta\n HB.addOperation(d).execute()\n @xml._yatta = null\n\n if attributes? and elements?\n @saveOperation 'attributes', attributes\n @saveOperation 'elements', elements\n else if (not attributes?) and (not elements?)\n @attributes = new types.JsonType()\n @attributes.setMutableDefault 'immutable'\n HB.addOperation(@attributes).execute()\n @elements = new types.WordType()\n @elements.parent = @\n HB.addOperation(@elements).execute()\n else\n throw new Error \"Either define attribute and elements both, or none of them\"\n\n if @xml?\n @tagname = @xml.tagName\n for i in [0...@xml.attributes.length]\n attr = xml.attributes[i]\n @attributes.val(attr.name, attr.value)\n for n in @xml.childNodes\n if n.nodeType is n.TEXT_NODE\n word = new TextNodeType(undefined, n)\n HB.addOperation(word).execute()\n @elements.push word\n else if n.nodeType is n.ELEMENT_NODE\n element = new XmlType undefined, undefined, undefined, undefined, n\n HB.addOperation(element).execute()\n @elements.push element\n else\n throw new Error \"I don't know Node-type #{n.nodeType}!!\"\n @setXmlProxy()\n undefined\n\n #\n # Identifies this class.\n # Use it in order to check whether this is an xml-type or something else.\n #\n type: \"XmlType\"\n\n applyDelete: (op)->\n if @insert_parent? and not @insert_parent.isDeleted()\n @insert_parent.applyDelete op\n else\n @attributes.applyDelete()\n @elements.applyDelete()\n super\n\n cleanup: ()->\n super()\n\n setXmlProxy: ()->\n @xml._yatta = @\n that = @\n\n @elements.on 'insert', (event, op)->\n if op.creator isnt HB.getUserId() and this is that.elements\n newNode = op.content.val()\n right = op.next_cl\n while right? and right.isDeleted()\n right = right.next_cl\n rightNode = null\n if right.type isnt 'Delimiter'\n rightNode = right.val().val()\n dont_proxy ()->\n that.xml.insertBefore newNode, rightNode\n @elements.on 'delete', (event, op)->\n del_op = op.deleted_by[0]\n if del_op? and del_op.creator isnt HB.getUserId() and this is that.elements\n deleted = op.content.val()\n dont_proxy ()->\n that.xml.removeChild deleted\n\n @attributes.on ['addProperty', 'change'], (event, property_name, op)->\n if op.creator isnt HB.getUserId() and this is that.attributes\n dont_proxy ()->\n newval = op.val().val()\n if newval?\n that.xml.setAttribute(property_name, op.val().val())\n else\n that.xml.removeAttribute(property_name)\n\n\n\n\n\n\n\n\n ## Here are all methods that proxy the behavior of the xml\n\n # you want to find a specific child element. Since they are carried by an Insert-Type, you want to find that Insert-Operation.\n # @param child {DomElement} Dom element.\n # @return {InsertType} This carries the XmlType that represents the DomElement (child). false if i couldn't find it.\n #\n findNode = (child)->\n if not child?\n throw new Error \"you must specify a parameter!\"\n child = child._yatta\n elem = that.elements.beginning.next_cl\n while elem.type isnt 'Delimiter' and elem.content isnt child\n elem = elem.next_cl\n if elem.type is 'Delimiter'\n false\n else\n elem\n\n insertBefore = (insertedNode_s, adjacentNode)->\n next = null\n if adjacentNode?\n next = findNode adjacentNode\n prev = null\n if next\n prev = next.prev_cl\n else\n prev = @_yatta.elements.end.prev_cl\n while prev.isDeleted()\n prev = prev.prev_cl\n inserted_nodes = null\n if insertedNode_s.nodeType is insertedNode_s.DOCUMENT_FRAGMENT_NODE\n child = insertedNode_s.lastChild\n while child?\n element = new XmlType undefined, undefined, undefined, undefined, child\n HB.addOperation(element).execute()\n that.elements.insertAfter prev, element\n child = child.previousSibling\n else\n element = new XmlType undefined, undefined, undefined, undefined, insertedNode_s\n HB.addOperation(element).execute()\n that.elements.insertAfter prev, element\n\n @xml._proxy 'insertBefore', insertBefore\n @xml._proxy 'appendChild', insertBefore\n @xml._proxy 'removeAttribute', (name)->\n that.attributes.val(name, undefined)\n @xml._proxy 'setAttribute', (name, value)->\n that.attributes.val name, value\n\n renewClassList = (newclass)->\n dont_do_it = false\n if newclass?\n for elem in this\n if newclass is elem\n dont_do_it = true\n value = Array.prototype.join.call this, \" \"\n if newclass? and not dont_do_it\n value += \" \"+newclass\n that.attributes.val('class', value )\n _proxy.call @xml.classList, 'add', renewClassList\n _proxy.call @xml.classList, 'remove', renewClassList\n @xml.__defineSetter__ 'className', (val)->\n @setAttribute('class', val)\n @xml.__defineGetter__ 'className', ()->\n that.attributes.val('class')\n @xml.__defineSetter__ 'textContent', (val)->\n # remove all nodes\n elem = that.xml.firstChild\n while elem?\n remove = elem\n elem = elem.nextSibling\n that.xml.removeChild remove\n\n # insert word content\n if val isnt \"\"\n text_node = document.createTextNode val\n that.xml.appendChild text_node\n\n removeChild = (node)->\n elem = findNode node\n if not elem\n throw new Error \"You are only allowed to delete existing (direct) child elements!\"\n d = new types.Delete undefined, elem\n HB.addOperation(d).execute()\n node._yatta = null\n @xml._proxy 'removeChild', removeChild\n @xml._proxy 'replaceChild', (insertedNode, replacedNode)->\n insertBefore.call this, insertedNode, replacedNode\n removeChild.call this, replacedNode\n\n\n\n val: (enforce = false)->\n if document?\n if (not @xml?) or enforce\n @xml = document.createElement @tagname\n\n attr = @attributes.val()\n for attr_name, value of attr\n if value?\n a = document.createAttribute attr_name\n a.value = value\n @xml.setAttributeNode a\n\n e = @elements.beginning.next_cl\n while e.type isnt \"Delimiter\"\n n = e.content\n if not e.isDeleted() and e.content? # TODO: how can this happen? Probably because listeners\n if n.type is \"XmlType\"\n @xml.appendChild n.val(enforce)\n else if n.type is \"TextNodeType\"\n text_node = n.val()\n @xml.appendChild text_node\n else\n throw new Error \"Internal structure cannot be transformed to dom\"\n e = e.next_cl\n @setXmlProxy()\n @xml\n\n\n execute: ()->\n super()\n ###\n if not @validateSavedOperations()\n return false\n else\n\n return true\n ###\n\n #\n # Get the parent of this JsonType.\n # @return {XmlType}\n #\n getParent: ()->\n @parent\n\n #\n # @private\n #\n # Convert all relevant information of this operation to the json-format.\n # This result can be send to other clients.\n #\n _encode: ()->\n json =\n {\n 'type' : @type\n 'attributes' : @attributes.getUid()\n 'elements' : @elements.getUid()\n 'tagname' : @tagname\n 'uid' : @getUid()\n }\n json\n\n parser['XmlType'] = (json)->\n {\n 'uid' : uid\n 'attributes' : attributes\n 'elements' : elements\n 'tagname' : tagname\n } = json\n\n new XmlType uid, tagname, attributes, elements, undefined\n\n#\n # @nodoc\n # Defines an object that is cannot be changed. You can use this to set an immutable string, or a number.\n #\n class TextNodeType extends types.ImmutableObject\n\n #\n # @param {Object} uid A unique identifier. If uid is undefined, a new uid will be created.\n # @param {Object} content\n #\n constructor: (uid, content)->\n if content._yatta?\n d = new types.Delete undefined, content._yatta\n HB.addOperation(d).execute()\n content._yatta = null\n content._yatta = @\n super uid, content\n\n applyDelete: (op)->\n if @insert_parent? and not @insert_parent.isDeleted()\n @insert_parent.applyDelete op\n else\n super\n\n\n type: \"TextNodeType\"\n\n #\n # Encode this operation in such a way that it can be parsed by remote peers.\n #\n _encode: ()->\n json = {\n 'type': @type\n 'uid' : @getUid()\n 'content' : @content.textContent\n }\n json\n\n parser['TextNodeType'] = (json)->\n {\n 'uid' : uid\n 'content' : content\n } = json\n textnode = document.createTextNode content\n new TextNodeType uid, textnode\n\n types['XmlType'] = XmlType\n\n json_types\n"]} \ No newline at end of file diff --git a/examples/XmlExample/README.md b/examples/XmlExample/README.md index 7b9a842d..2466ae07 100644 --- a/examples/XmlExample/README.md +++ b/examples/XmlExample/README.md @@ -63,5 +63,13 @@ Connect to other peer. yatta.val($("#collaborative")[0]) console.log(yatta.getUserId()); + $("#collaborative").attr("contenteditable","true"); + $("#collaborative")[0].onkeyup = function(){ + console.log("dtrn"); + console.log("rtdn"); + } + $("p")[0].onfocus = function(){ + console.log("nrtduiaenrtduiaer"); + } }); ``` diff --git a/examples/XmlExample/index.js b/examples/XmlExample/index.js index 2da7895b..fb47336a 100644 --- a/examples/XmlExample/index.js +++ b/examples/XmlExample/index.js @@ -54,4 +54,12 @@ Y.createPeerJsConnector({key: 'h7nlefbgavh1tt9'}, function(Connector, user_id){ yatta.val($("#collaborative")[0]) console.log(yatta.getUserId()); + $("#collaborative").attr("contenteditable","true"); + $("#collaborative")[0].onkeyup = function(){ + console.log("dtrn"); + console.log("rtdn"); + } + $("p")[0].onfocus = function(){ + console.log("nrtduiaenrtduiaer"); + } });