aboutsummaryrefslogtreecommitdiffstats
path: root/src/helpers.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers.js')
-rw-r--r--src/helpers.js115
1 files changed, 61 insertions, 54 deletions
diff --git a/src/helpers.js b/src/helpers.js
index 9f52431..9a7f47e 100644
--- a/src/helpers.js
+++ b/src/helpers.js
@@ -1,15 +1,17 @@
-function createElement(element, makeNested) {
- if(element instanceof SVG.Element) return element
+/* eslint no-unused-vars: 0 */
- if(typeof element == 'object') {
+function createElement (element, makeNested) {
+ if (element instanceof SVG.Element) return element
+
+ if (typeof element === 'object') {
return SVG.adopt(element)
}
- if(element == null) {
+ if (element == null) {
return new SVG.Doc()
}
- if(typeof element == 'string' && element.charAt(0) != '<') {
+ if (typeof element === 'string' && element.charAt(0) !== '<') {
return SVG.adopt(document.querySelector(element))
}
@@ -21,119 +23,122 @@ function createElement(element, makeNested) {
return element
}
-function isNulledBox(box) {
+function isNulledBox (box) {
return !box.w && !box.h && !box.x && !box.y
}
-function domContains(node) {
- return (document.documentElement.contains || function(node) {
+function domContains (node) {
+ return (document.documentElement.contains || function (node) {
// This is IE - it does not support contains() for top-level SVGs
- while (node.parentNode){
- node = node.parentNode;
+ while (node.parentNode) {
+ node = node.parentNode
}
- return node == document
+ return node === document
}).call(document.documentElement, node)
}
-function pathRegReplace(a, b, c, d) {
+function pathRegReplace (a, b, c, d) {
return c + d.replace(SVG.regex.dots, ' .')
}
// creates deep clone of array
-function array_clone(arr){
+function arrayClone (arr) {
var clone = arr.slice(0)
- for(var i = clone.length; i--;){
- if(Array.isArray(clone[i])){
- clone[i] = array_clone(clone[i])
+ for (var i = clone.length; i--;) {
+ if (Array.isArray(clone[i])) {
+ clone[i] = arrayClone(clone[i])
}
}
return clone
}
// tests if a given element is instance of an object
-function is(el, obj){
+function is (el, obj) {
return el instanceof obj
}
// tests if a given selector matches an element
-function matches(el, selector) {
- return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);
+function matches (el, selector) {
+ return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector)
}
// Convert dash-separated-string to camelCase
-function camelCase(s) {
- return s.toLowerCase().replace(/-(.)/g, function(m, g) {
+function camelCase (s) {
+ return s.toLowerCase().replace(/-(.)/g, function (m, g) {
return g.toUpperCase()
})
}
// Capitalize first letter of a string
-function capitalize(s) {
+function capitalize (s) {
return s.charAt(0).toUpperCase() + s.slice(1)
}
// Ensure to six-based hex
-function fullHex(hex) {
- return hex.length == 4 ?
- [ '#',
- hex.substring(1, 2), hex.substring(1, 2)
- , hex.substring(2, 3), hex.substring(2, 3)
- , hex.substring(3, 4), hex.substring(3, 4)
- ].join('') : hex
+function fullHex (hex) {
+ return hex.length === 4
+ ? [ '#',
+ hex.substring(1, 2), hex.substring(1, 2),
+ hex.substring(2, 3), hex.substring(2, 3),
+ hex.substring(3, 4), hex.substring(3, 4)
+ ].join('')
+ : hex
}
// Component to hex value
-function compToHex(comp) {
+function compToHex (comp) {
var hex = comp.toString(16)
- return hex.length == 1 ? '0' + hex : hex
+ return hex.length === 1 ? '0' + hex : hex
}
// Calculate proportional width and height values when necessary
-function proportionalSize(element, width, height) {
+function proportionalSize (element, width, height) {
if (width == null || height == null) {
var box = element.bbox()
- if (width == null)
+ if (width == null) {
width = box.width / box.height * height
- else if (height == null)
+ } else if (height == null) {
height = box.height / box.width * width
+ }
}
return {
- width: width
- , height: height
+ width: width,
+ height: height
}
}
// Delta transform point
-function deltaTransformPoint(matrix, x, y) {
+function deltaTransformPoint (matrix, x, y) {
return {
- x: x * matrix.a + y * matrix.c + 0
- , y: x * matrix.b + y * matrix.d + 0
+ x: x * matrix.a + y * matrix.c + 0,
+ y: x * matrix.b + y * matrix.d + 0
}
}
// Map matrix array to object
-function arrayToMatrix(a) {
+function arrayToMatrix (a) {
return { a: a[0], b: a[1], c: a[2], d: a[3], e: a[4], f: a[5] }
}
// Parse matrix if required
-function parseMatrix(matrix) {
- if (!(matrix instanceof SVG.Matrix))
+function parseMatrix (matrix) {
+ if (!(matrix instanceof SVG.Matrix)) {
matrix = new SVG.Matrix(matrix)
+ }
return matrix
}
// Add centre point to transform object
-function ensureCentre(o, target) {
+function ensureCentre (o, target) {
o.cx = o.cx == null ? target.bbox().cx : o.cx
o.cy = o.cy == null ? target.bbox().cy : o.cy
}
// PathArray Helpers
-function arrayToString(a) {
+function arrayToString (a) {
for (var i = 0, il = a.length, s = ''; i < il; i++) {
s += a[i][0]
@@ -170,28 +175,30 @@ function arrayToString(a) {
}
// Deep new id assignment
-function assignNewId(node) {
+function assignNewId (node) {
// do the same for SVG child nodes as well
- for (var i = node.children.length - 1; i >= 0; i--)
+ for (var i = node.children.length - 1; i >= 0; i--) {
assignNewId(node.children[i])
+ }
- if(node.id)
+ if (node.id) {
return SVG.adopt(node).id(SVG.eid(node.nodeName))
+ }
return SVG.adopt(node)
}
// Add more bounding box properties
-function fullBox(b) {
+function fullBox (b) {
if (b.x == null) {
- b.x = 0
- b.y = 0
- b.width = 0
+ b.x = 0
+ b.y = 0
+ b.width = 0
b.height = 0
}
- b.w = b.width
- b.h = b.height
+ b.w = b.width
+ b.h = b.height
b.x2 = b.x + b.width
b.y2 = b.y + b.height
b.cx = b.x + b.width / 2
@@ -201,7 +208,7 @@ function fullBox(b) {
}
// Get id from reference string
-function idFromReference(url) {
+function idFromReference (url) {
var m = (url || '').toString().match(SVG.regex.reference)
if (m) return m[1]