diff --git a/README.md b/README.md index 6f85686b..a8ebef99 100644 --- a/README.md +++ b/README.md @@ -739,6 +739,8 @@ type. Doesn't log types that have not been defined (using
Define a shared Y.Map type. Is equivalent to y.get(string, Y.Map).
getText(string):Y.Text
Define a shared Y.Text type. Is equivalent to y.get(string, Y.Text).
+ getXmlElement(string, string):Y.XmlElement +
Define a shared Y.XmlElement type. Is equivalent to y.get(string, Y.XmlElement).
getXmlFragment(string):Y.XmlFragment
Define a shared Y.XmlFragment type. Is equivalent to y.get(string, Y.XmlFragment).
on(string, function) diff --git a/src/utils/Doc.js b/src/utils/Doc.js index ddde1d54..e809e7ec 100644 --- a/src/utils/Doc.js +++ b/src/utils/Doc.js @@ -8,6 +8,7 @@ import { YArray, YText, YMap, + YXmlElement, YXmlFragment, transact, ContentDoc, Item, Transaction, YEvent // eslint-disable-line @@ -262,6 +263,17 @@ export class Doc extends Observable { return this.get(name, YMap) } + /** + * @param {string} [name] + * @return {YXmlElement} + * + * @public + */ + getXmlElement (name = '') { + // @ts-ignore + return this.get(name, YXmlElement) + } + /** * @param {string} [name] * @return {YXmlFragment} diff --git a/tests/y-xml.tests.js b/tests/y-xml.tests.js index 1ae2c813..22f12be9 100644 --- a/tests/y-xml.tests.js +++ b/tests/y-xml.tests.js @@ -210,3 +210,16 @@ export const testFormattingBug = _tc => { yxml.applyDelta(delta) t.compare(yxml.toDelta(), delta) } + +/** + * @param {t.TestCase} _tc + */ +export const testElement = _tc => { + const ydoc = new Y.Doc() + const yxmlel = ydoc.getXmlElement() + + const text1 = new Y.XmlText('text1') + const text2 = new Y.XmlText('text2') + yxmlel.insert(0, [text1, text2]) + t.compareArrays(yxmlel.toArray(), [text1, text2]) +}