aboutsummaryrefslogtreecommitdiffstats
path: root/src/sugar.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar.js')
-rw-r--r--src/sugar.js302
1 files changed, 151 insertions, 151 deletions
diff --git a/src/sugar.js b/src/sugar.js
index e3ed6a5..f7b7183 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.FX], extension)
-})
-
-SVG.extend([SVG.Element, SVG.FX], {
- // 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.FX ? 0 : this.x()), true)
- },
-
- // Relative move over y axis
- dy: function (y) {
- return this.y(new SVG.Number(y).plus(this instanceof SVG.FX ? 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.FX], {
- // 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.FX], {
- // 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)
+// }
+// })