summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-10-18 11:28:05 +0200
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-10-18 11:28:05 +0200
commit8ca3341952c2979520b349ce754bc98d8bb5f1d3 (patch)
tree129e790ba81a1a1cf9c0d6dbaae556a9ea6a3653 /src
parent9e188dced6930319437e2421db92c2c9e54eac44 (diff)
downloadsvg.js-8ca3341952c2979520b349ce754bc98d8bb5f1d3.tar.gz
svg.js-8ca3341952c2979520b349ce754bc98d8bb5f1d3.zip
activate sugar before merge
Diffstat (limited to 'src')
-rw-r--r--src/sugar.js302
1 files changed, 151 insertions, 151 deletions
diff --git a/src/sugar.js b/src/sugar.js
index f7b7183..ad991af 100644
--- a/src/sugar.js
+++ b/src/sugar.js
@@ -1,151 +1,151 @@
-// // Define list of available attributes for stroke and fill
-// var sugar = {
-// stroke: ['color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset'],
-// fill: ['color', 'opacity', 'rule'],
-// prefix: function (t, a) {
-// return a === 'color' ? t : t + '-' + a
-// }
-// }
-//
-// // Add sugar for fill and stroke
-// ;['fill', 'stroke'].forEach(function (m) {
-// var extension = {}
-// var i
-//
-// extension[m] = function (o) {
-// if (typeof o === 'undefined') {
-// return this
-// }
-// if (typeof o === 'string' || SVG.Color.isRgb(o) || (o && typeof o.fill === 'function')) {
-// this.attr(m, o)
-// } else {
-// // set all attributes from sugar.fill and sugar.stroke list
-// for (i = sugar[m].length - 1; i >= 0; i--) {
-// if (o[sugar[m][i]] != null) {
-// this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]])
-// }
-// }
-// }
-//
-// return this
-// }
-//
-// SVG.extend([SVG.Element, SVG.Timeline], extension)
-// })
-//
-// SVG.extend([SVG.Element, SVG.Timeline], {
-// // Let the user set the matrix directly
-// matrix: function (mat, b, c, d, e, f) {
-// // Act as a getter
-// if (mat == null) {
-// return new SVG.Matrix(this)
-// }
-//
-// // Act as a setter, the user can pass a matrix or a set of numbers
-// return this.attr('transform', new SVG.Matrix(mat, b, c, d, e, f))
-// },
-//
-// // Map rotation to transform
-// rotate: function (angle, cx, cy) {
-// return this.transform({rotate: angle, ox: cx, oy: cy}, true)
-// },
-//
-// // Map skew to transform
-// skew: function (x, y, cx, cy) {
-// return arguments.length === 1 || arguments.length === 3
-// ? this.transform({skew: x, ox: y, oy: cx}, true)
-// : this.transform({skew: [x, y], ox: cx, oy: cy}, true)
-// },
-//
-// shear: function (lam, cx, cy) {
-// return this.transform({shear: lam, ox: cx, oy: cy}, true)
-// },
-//
-// // Map scale to transform
-// scale: function (x, y, cx, cy) {
-// return arguments.length === 1 || arguments.length === 3
-// ? this.transform({ scale: x, ox: y, oy: cx }, true)
-// : this.transform({ scale: [x, y], ox: cx, oy: cy }, true)
-// },
-//
-// // Map translate to transform
-// translate: function (x, y) {
-// return this.transform({ translate: [x, y] }, true)
-// },
-//
-// // Map relative translations to transform
-// relative: function (x, y) {
-// return this.transform({ relative: [x, y] }, true)
-// },
-//
-// // Map flip to transform
-// flip: function (direction, around) {
-// var directionString = typeof direction === 'string' ? direction
-// : isFinite(direction) ? 'both'
-// : 'both'
-// var origin = (direction === 'both' && isFinite(around)) ? [around, around]
-// : (direction === 'x') ? [around, 0]
-// : (direction === 'y') ? [0, around]
-// : isFinite(direction) ? [direction, direction]
-// : [0, 0]
-// this.transform({flip: directionString, origin: origin}, true)
-// },
-//
-// // Opacity
-// opacity: function (value) {
-// return this.attr('opacity', value)
-// },
-//
-// // Relative move over x axis
-// dx: function (x) {
-// return this.x(new SVG.Number(x).plus(this instanceof SVG.Timeline ? 0 : this.x()), true)
-// },
-//
-// // Relative move over y axis
-// dy: function (y) {
-// return this.y(new SVG.Number(y).plus(this instanceof SVG.Timeline ? 0 : this.y()), true)
-// },
-//
-// // Relative move over x and y axes
-// dmove: function (x, y) {
-// return this.dx(x).dy(y)
-// }
-// })
-//
-// SVG.extend([SVG.Rect, SVG.Ellipse, SVG.Circle, SVG.Gradient, SVG.Timeline], {
-// // Add x and y radius
-// radius: function (x, y) {
-// var type = (this._target || this).type
-// return type === 'radialGradient' || type === 'radialGradient'
-// ? this.attr('r', new SVG.Number(x))
-// : this.rx(x).ry(y == null ? x : y)
-// }
-// })
-//
-// SVG.extend(SVG.Path, {
-// // Get path length
-// length: function () {
-// return this.node.getTotalLength()
-// },
-// // Get point at length
-// pointAt: function (length) {
-// return new SVG.Point(this.node.getPointAtLength(length))
-// }
-// })
-//
-// SVG.extend([SVG.Parent, SVG.Text, SVG.Tspan, SVG.Timeline], {
-// // Set font
-// font: function (a, v) {
-// if (typeof a === 'object') {
-// for (v in a) this.font(v, a[v])
-// }
-//
-// return a === 'leading'
-// ? this.leading(v)
-// : a === 'anchor'
-// ? this.attr('text-anchor', v)
-// : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style'
-// ? this.attr('font-' + a, v)
-// : this.attr(a, v)
-// }
-// })
+// Define list of available attributes for stroke and fill
+var sugar = {
+ stroke: ['color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset'],
+ fill: ['color', 'opacity', 'rule'],
+ prefix: function (t, a) {
+ return a === 'color' ? t : t + '-' + a
+ }
+}
+
+// Add sugar for fill and stroke
+;['fill', 'stroke'].forEach(function (m) {
+ var extension = {}
+ var i
+
+ extension[m] = function (o) {
+ if (typeof o === 'undefined') {
+ return this
+ }
+ if (typeof o === 'string' || SVG.Color.isRgb(o) || (o && typeof o.fill === 'function')) {
+ this.attr(m, o)
+ } else {
+ // set all attributes from sugar.fill and sugar.stroke list
+ for (i = sugar[m].length - 1; i >= 0; i--) {
+ if (o[sugar[m][i]] != null) {
+ this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]])
+ }
+ }
+ }
+
+ return this
+ }
+
+ SVG.extend([SVG.Element, SVG.Timeline], extension)
+})
+
+SVG.extend([SVG.Element, SVG.Timeline], {
+ // Let the user set the matrix directly
+ matrix: function (mat, b, c, d, e, f) {
+ // Act as a getter
+ if (mat == null) {
+ return new SVG.Matrix(this)
+ }
+
+ // Act as a setter, the user can pass a matrix or a set of numbers
+ return this.attr('transform', new SVG.Matrix(mat, b, c, d, e, f))
+ },
+
+ // Map rotation to transform
+ rotate: function (angle, cx, cy) {
+ return this.transform({rotate: angle, ox: cx, oy: cy}, true)
+ },
+
+ // Map skew to transform
+ skew: function (x, y, cx, cy) {
+ return arguments.length === 1 || arguments.length === 3
+ ? this.transform({skew: x, ox: y, oy: cx}, true)
+ : this.transform({skew: [x, y], ox: cx, oy: cy}, true)
+ },
+
+ shear: function (lam, cx, cy) {
+ return this.transform({shear: lam, ox: cx, oy: cy}, true)
+ },
+
+ // Map scale to transform
+ scale: function (x, y, cx, cy) {
+ return arguments.length === 1 || arguments.length === 3
+ ? this.transform({ scale: x, ox: y, oy: cx }, true)
+ : this.transform({ scale: [x, y], ox: cx, oy: cy }, true)
+ },
+
+ // Map translate to transform
+ translate: function (x, y) {
+ return this.transform({ translate: [x, y] }, true)
+ },
+
+ // Map relative translations to transform
+ relative: function (x, y) {
+ return this.transform({ relative: [x, y] }, true)
+ },
+
+ // Map flip to transform
+ flip: function (direction, around) {
+ var directionString = typeof direction === 'string' ? direction
+ : isFinite(direction) ? 'both'
+ : 'both'
+ var origin = (direction === 'both' && isFinite(around)) ? [around, around]
+ : (direction === 'x') ? [around, 0]
+ : (direction === 'y') ? [0, around]
+ : isFinite(direction) ? [direction, direction]
+ : [0, 0]
+ this.transform({flip: directionString, origin: origin}, true)
+ },
+
+ // Opacity
+ opacity: function (value) {
+ return this.attr('opacity', value)
+ },
+
+ // Relative move over x axis
+ dx: function (x) {
+ return this.x(new SVG.Number(x).plus(this instanceof SVG.Timeline ? 0 : this.x()), true)
+ },
+
+ // Relative move over y axis
+ dy: function (y) {
+ return this.y(new SVG.Number(y).plus(this instanceof SVG.Timeline ? 0 : this.y()), true)
+ },
+
+ // Relative move over x and y axes
+ dmove: function (x, y) {
+ return this.dx(x).dy(y)
+ }
+})
+
+SVG.extend([SVG.Rect, SVG.Ellipse, SVG.Circle, SVG.Gradient, SVG.Timeline], {
+ // Add x and y radius
+ radius: function (x, y) {
+ var type = (this._target || this).type
+ return type === 'radialGradient' || type === 'radialGradient'
+ ? this.attr('r', new SVG.Number(x))
+ : this.rx(x).ry(y == null ? x : y)
+ }
+})
+
+SVG.extend(SVG.Path, {
+ // Get path length
+ length: function () {
+ return this.node.getTotalLength()
+ },
+ // Get point at length
+ pointAt: function (length) {
+ return new SVG.Point(this.node.getPointAtLength(length))
+ }
+})
+
+SVG.extend([SVG.Parent, SVG.Text, SVG.Tspan, SVG.Timeline], {
+ // Set font
+ font: function (a, v) {
+ if (typeof a === 'object') {
+ for (v in a) this.font(v, a[v])
+ }
+
+ return a === 'leading'
+ ? this.leading(v)
+ : a === 'anchor'
+ ? this.attr('text-anchor', v)
+ : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style'
+ ? this.attr('font-' + a, v)
+ : this.attr(a, v)
+ }
+})