diff options
Diffstat (limited to 'src/helpers.js')
-rw-r--r-- | src/helpers.js | 115 |
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] |