diff options
Diffstat (limited to 'src/marker.js')
-rw-r--r-- | src/marker.js | 62 |
1 files changed, 30 insertions, 32 deletions
diff --git a/src/marker.js b/src/marker.js index fc4bf4e..32f8e4e 100644 --- a/src/marker.js +++ b/src/marker.js @@ -1,44 +1,43 @@ SVG.Marker = SVG.invent({ // Initialize node - create: 'marker' + create: 'marker', // Inherit from -, inherit: SVG.Container + inherit: SVG.Container, // Add class methods -, extend: { + extend: { // Set width of element - width: function(width) { + width: function (width) { return this.attr('markerWidth', width) - } + }, // Set height of element - , height: function(height) { + height: function (height) { return this.attr('markerHeight', height) - } + }, // Set marker refX and refY - , ref: function(x, y) { + ref: function (x, y) { return this.attr('refX', x).attr('refY', y) - } + }, // Update marker - , update: function(block) { - // remove all content + update: function (block) { + // remove all content this.clear() - - // invoke passed block - if (typeof block == 'function') - block.call(this, this) - + + // invoke passed block + if (typeof block === 'function') { block.call(this, this) } + return this - } + }, // Return the fill id - , toString: function() { + toString: function () { return 'url(#' + this.id() + ')' } - } + }, // Add parent method -, construct: { - marker: function(width, height, block) { + construct: { + marker: function (width, height, block) { // Create marker element in defs return this.defs().marker(width, height, block) } @@ -48,33 +47,32 @@ SVG.Marker = SVG.invent({ SVG.extend(SVG.Defs, { // Create marker - marker: function(width, height, block) { + marker: function (width, height, block) { // Set default viewbox to match the width and height, set ref to cx and cy and set orient to auto - return this.put(new SVG.Marker) + return this.put(new SVG.Marker()) .size(width, height) .ref(width / 2, height / 2) .viewbox(0, 0, width, height) .attr('orient', 'auto') .update(block) } - + }) SVG.extend([SVG.Line, SVG.Polyline, SVG.Polygon, SVG.Path], { // Create and attach markers - marker: function(marker, width, height, block) { + marker: function (marker, width, height, block) { var attr = ['marker'] // Build attribute name - if (marker != 'all') attr.push(marker) + if (marker !== 'all') attr.push(marker) attr = attr.join('-') // Set marker attribute - marker = arguments[1] instanceof SVG.Marker ? - arguments[1] : - this.doc().marker(width, height, block) - + marker = arguments[1] instanceof SVG.Marker + ? arguments[1] + : this.doc().marker(width, height, block) + return this.attr(attr, marker) } - -})
\ No newline at end of file +}) |