x: function (x) {
return this.attr('x', x)
},
+
// Move over y-axis
y: function (y) {
return this.attr('y', y)
},
+
// Move by center over x-axis
cx: function (x) {
return x == null ? this.x() + this.width() / 2 : this.x(x - this.width() / 2)
},
+
// Move by center over y-axis
cy: function (y) {
return y == null ? this.y() + this.height() / 2 : this.y(y - this.height() / 2)
},
+
// Move element to given x and y values
move: function (x, y) {
return this.x(x).y(y)
},
+
// Move element by its center
center: function (x, y) {
return this.cx(x).cy(y)
},
+
// Set width of element
width: function (width) {
return this.attr('width', width)
},
+
// Set height of element
height: function (height) {
return this.attr('height', height)
},
+
// Set element size to given width and height
size: function (width, height) {
var p = proportionalSize(this, width, height)
.width(new SVG.Number(p.width))
.height(new SVG.Number(p.height))
},
+
// Clone element
clone: function (parent) {
// write dom data to the dom so the clone can pickup the data
return clone
},
+
// Remove element
remove: function () {
if (this.parent()) { this.parent().removeElement(this) }
return this
},
+
// Replace element
replace: function (element) {
this.after(element).remove()
return element
},
+
// Add element to given container and return self
addTo: function (parent) {
return createElement(parent).put(this)
},
+
// Add element to given container and return container
putIn: function (parent) {
return createElement(parent).add(this)
},
+
// Get / set id
id: function (id) {
// generate new id if no id set
// dont't set directly width this.node.id to make `null` work correctly
return this.attr('id', id)
},
+
// Checks whether the given point inside the bounding box of the element
inside: function (x, y) {
var box = this.bbox()
x < box.x + box.width &&
y < box.y + box.height
},
+
// Show element
show: function () {
return this.css('display', '')
},
+
// Hide element
hide: function () {
return this.css('display', 'none')
},
+
// Is element visible?
visible: function () {
return this.css('display') !== 'none'
},
+
// Return id on string conversion
toString: function () {
return this.id()
},
+
// Return array of classes on the node
classes: function () {
var attr = this.attr('class')
-
return attr == null ? [] : attr.trim().split(SVG.regex.delimiter)
},
+
// Return true if class exists on the node, false otherwise
hasClass: function (name) {
return this.classes().indexOf(name) !== -1
},
+
// Add class to the node
addClass: function (name) {
if (!this.hasClass(name)) {
return this
},
+
// Remove class from the node
removeClass: function (name) {
if (this.hasClass(name)) {
return this
},
+
// Toggle the presence of a class on the node
toggleClass: function (name) {
return this.hasClass(name) ? this.removeClass(name) : this.addClass(name)
},
+
// Get referenced element form attribute value
reference: function (attr) {
return SVG.get(this.attr(attr))
},
+
// Returns the parent element instance
parent: function (type) {
var parent = this
parent = SVG.adopt(parent.node.parentNode)
}
},
+
// Get parent document
doc: function () {
return this instanceof SVG.Doc ? this : this.parent(SVG.Doc)
- }, // Get defs
+ },
+
+ // Get defs
defs: function () {
return this.doc().defs()
},
+
// return array of all ancestors of given type up to the root svg
parents: function (type) {
var parents = []
return parents
},
+
// matches the element vs a css selector
matches: function (selector) {
return matches(this.node, selector)
},
+
// Returns the svg node to call native svg methods on it
native: function () {
return this.node
},
+
// Import raw svg
svg: function (svg) {
var well, len
return this
},
- // write svgjs data to the dom
+
+ // write svgjs data to the dom
writeDataToDom: function () {
// dump variables recursively
if (this.is(SVG.Parent)) {
this.node.removeAttribute('svgjs:data')
if (Object.keys(this.dom).length) {
- this.node.setAttribute('svgjs:data', JSON.stringify(this.dom))
- } // see #428
-
+ this.node.setAttribute('svgjs:data', JSON.stringify(this.dom)) // see #428
+ }
return this
},
- // set given data to the elements data property
+
+ // set given data to the elements data property
setData: function (o) {
this.dom = o
return this