aboutsummaryrefslogtreecommitdiffstats
path: root/src/elements
diff options
context:
space:
mode:
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/Bare.js31
-rw-r--r--src/elements/Dom.js15
-rw-r--r--src/elements/HtmlNode.js6
-rw-r--r--src/elements/Style.js6
4 files changed, 17 insertions, 41 deletions
diff --git a/src/elements/Bare.js b/src/elements/Bare.js
deleted file mode 100644
index a057634..0000000
--- a/src/elements/Bare.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'
-import { registerMethods } from '../utils/methods.js'
-import Container from './Container.js'
-import { globals } from '../utils/window.js'
-
-export default class Bare extends Container {
- constructor (node, attrs) {
- super(nodeOrNew(node, typeof node === 'string' ? null : node), attrs)
- }
-
- words (text) {
- // remove contents
- while (this.node.hasChildNodes()) {
- this.node.removeChild(this.node.lastChild)
- }
-
- // create text node
- this.node.appendChild(globals.document.createTextNode(text))
-
- return this
- }
-}
-
-register(Bare)
-
-registerMethods('Container', {
- // Create an element that is not described by SVG.js
- element: wrapWithAttrCheck(function (node) {
- return this.put(new Bare(node))
- })
-})
diff --git a/src/elements/Dom.js b/src/elements/Dom.js
index 2fcedce..5d7dbac 100644
--- a/src/elements/Dom.js
+++ b/src/elements/Dom.js
@@ -4,6 +4,7 @@ import {
eid,
extend,
makeInstance,
+ makeNode,
register
} from '../utils/adopter.js'
import { find } from '../modules/core/selector'
@@ -88,6 +89,10 @@ export default class Dom extends EventTarget {
return this
}
+ element (nodeName) {
+ return this.put(new Dom(makeNode(nodeName)))
+ }
+
// Get first child
first () {
return adopt(this.node.firstChild)
@@ -285,12 +290,20 @@ export default class Dom extends EventTarget {
fragment.appendChild(well.firstElementChild)
}
+ let parent = this.parent()
+
// Add the whole fragment at once
return outerHTML
- ? this.replace(fragment)
+ ? this.replace(fragment) && parent
: this.add(fragment)
}
+ words (text) {
+ // This is faster than removing all children and adding a new one
+ this.node.textContent = text
+ return this
+ }
+
// write svgjs data to the dom
writeDataToDom () {
// dump variables recursively
diff --git a/src/elements/HtmlNode.js b/src/elements/HtmlNode.js
deleted file mode 100644
index 009b122..0000000
--- a/src/elements/HtmlNode.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { register } from '../utils/adopter.js'
-import Dom from './Dom.js'
-
-export default class HtmlNode extends Dom {}
-
-register(HtmlNode)
diff --git a/src/elements/Style.js b/src/elements/Style.js
index 50ec50e..0b1cdb7 100644
--- a/src/elements/Style.js
+++ b/src/elements/Style.js
@@ -23,8 +23,8 @@ export default class Style extends Element {
super(nodeOrNew('style', node), node)
}
- words (w) {
- this.node.textContent += (w || '')
+ addText (w = '') {
+ this.node.textContent += w
return this
}
@@ -37,7 +37,7 @@ export default class Style extends Element {
}
rule (selector, obj) {
- return this.words(cssRule(selector, obj))
+ return this.addText(cssRule(selector, obj))
}
}