aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/jvectormap/src/svg-shape-element.js
diff options
context:
space:
mode:
authorMarvin Borner2018-07-13 19:06:45 +0200
committerMarvin Borner2018-07-13 19:06:45 +0200
commit6fcfb7c04d32e1c8b26a312295bf7ac3ec2d2ad7 (patch)
treedbc87ef16fa01d5d99116de283592b8fe5e02944 /public/bower_components/jvectormap/src/svg-shape-element.js
parentdfd839f27146df0ad0494e11734fc7d310c70ebf (diff)
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/jvectormap/src/svg-shape-element.js')
-rw-r--r--public/bower_components/jvectormap/src/svg-shape-element.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/public/bower_components/jvectormap/src/svg-shape-element.js b/public/bower_components/jvectormap/src/svg-shape-element.js
new file mode 100644
index 0000000..74a90d1
--- /dev/null
+++ b/public/bower_components/jvectormap/src/svg-shape-element.js
@@ -0,0 +1,49 @@
+jvm.SVGShapeElement = function(name, config, style){
+ jvm.SVGShapeElement.parentClass.call(this, name, config);
+ jvm.AbstractShapeElement.apply(this, arguments);
+};
+
+jvm.inherits(jvm.SVGShapeElement, jvm.SVGElement);
+jvm.mixin(jvm.SVGShapeElement, jvm.AbstractShapeElement);
+
+jvm.SVGShapeElement.prototype.applyAttr = function(attr, value){
+ var patternEl,
+ imageEl,
+ that = this;
+
+ if (attr === 'fill' && jvm.isImageUrl(value)) {
+ if (!jvm.SVGShapeElement.images[value]) {
+ jvm.whenImageLoaded(value).then(function(img){
+ imageEl = new jvm.SVGElement('image');
+ imageEl.node.setAttributeNS('http://www.w3.org/1999/xlink', 'href', value);
+ imageEl.applyAttr('x', '0');
+ imageEl.applyAttr('y', '0');
+ imageEl.applyAttr('width', img[0].width);
+ imageEl.applyAttr('height', img[0].height);
+
+ patternEl = new jvm.SVGElement('pattern');
+ patternEl.applyAttr('id', 'image'+jvm.SVGShapeElement.imageCounter);
+ patternEl.applyAttr('x', 0);
+ patternEl.applyAttr('y', 0);
+ patternEl.applyAttr('width', img[0].width / 2);
+ patternEl.applyAttr('height', img[0].height / 2);
+ patternEl.applyAttr('viewBox', '0 0 '+img[0].width+' '+img[0].height);
+ patternEl.applyAttr('patternUnits', 'userSpaceOnUse');
+ patternEl.node.appendChild( imageEl.node );
+
+ that.canvas.defsElement.node.appendChild( patternEl.node );
+
+ jvm.SVGShapeElement.images[value] = jvm.SVGShapeElement.imageCounter++;
+
+ that.applyAttr('fill', 'url(#image'+jvm.SVGShapeElement.images[value]+')');
+ });
+ } else {
+ this.applyAttr('fill', 'url(#image'+jvm.SVGShapeElement.images[value]+')');
+ }
+ } else {
+ jvm.SVGShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);
+ }
+};
+
+jvm.SVGShapeElement.imageCounter = 1;
+jvm.SVGShapeElement.images = {}; \ No newline at end of file