From a9840d89aac57890efb519779cc4a0990665d8c2 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 28 Mar 2015 01:47:58 +0100 Subject: [PATCH 001/212] add support for fragment-ids specifying views or symbols --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 63 ++++++++++++++++++++++++++++++---------- 3 files changed, 49 insertions(+), 18 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 8135d73..cad718f 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","forEach","Array","prototype","fn","scope","this","TypeError","len","call","svgCache","injectCount","injectedElements","requestQueue","ranScripts","cloneSvg","sourceSvg","cloneNode","queueRequest","url","callback","push","processRequestQueue","index","setTimeout","loadSvg","undefined","SVGSVGElement","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","el","evalScripts","pngFallback","imgUrl","getAttribute","test","perElementFallback","setAttribute","pop","replace","indexOf","svg","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","attributes","at","name","dataAttr","value","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","removeAttribute","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","textContent","removeChild","l","scriptsToEvalLen","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","options","done","eachCallback","each","elementsLoaded","element","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","forEach","Array","prototype","fn","scope","this","TypeError","len","call","svgCache","injectCount","injectedElements","requestQueue","ranScripts","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","undefined","getElementById","SVGSymbolElement","createElementNS","childNodes","child","appendChild","cloneNode","SVGViewElement","getAttribute","setAttribute","queueRequest","callback","fileName","push","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","SVGSVGElement","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","el","evalScripts","pngFallback","imgUrl","test","perElementFallback","pop","replace","indexOf","svg","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","attributes","at","name","dataAttr","value","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","removeAttribute","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","textContent","removeChild","l","scriptsToEvalLen","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","options","done","eachCallback","each","elementsLoaded","element","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index eb9a687..ff60304 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(t,e){"use strict";function r(t){t=t.split(" ");for(var e={},r=t.length,n=[];r--;)e.hasOwnProperty(t[r])||(e[t[r]]=1,n.unshift(t[r]));return n.join(" ")}var n="file:"===t.location.protocol,i=e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),o=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&t.call(e,this[r],r,this)},a={},l=0,s=[],u=[],c={},f=function(t){return t.cloneNode(!0)},p=function(t,e){u[t]=u[t]||[],u[t].push(e)},d=function(t){for(var e=0,r=u[t].length;r>e;e++)!function(e){setTimeout(function(){u[t][e](f(a[t]))},0)}(e)},v=function(e,r){if(void 0!==a[e])a[e]instanceof SVGSVGElement?r(f(a[e])):p(e,r);else{if(!t.XMLHttpRequest)return r("Browser does not support XMLHttpRequest"),!1;a[e]={},p(e,r);var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(404===i.status||null===i.responseXML)return r("Unable to load SVG file: "+e),n&&r("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),r(),!1;if(!(200===i.status||n&&0===i.status))return r("There was a problem injecting the SVG: "+i.status+" "+i.statusText),!1;if(i.responseXML instanceof Document)a[e]=i.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var t;try{var o=new DOMParser;t=o.parseFromString(i.responseText,"text/xml")}catch(l){t=void 0}if(!t||t.getElementsByTagName("parsererror").length)return r("Unable to parse SVG file: "+e),!1;a[e]=t.documentElement}d(e)}},i.open("GET",e),i.overrideMimeType&&i.overrideMimeType("text/xml"),i.send()}},h=function(e,n,a,u){var f=e.getAttribute("data-src")||e.getAttribute("src");if(!/\.svg/i.test(f))return void u("Attempted to inject a file with a non-svg extension: "+f);if(!i){var p=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(p?(e.setAttribute("src",p),u(null)):a?(e.setAttribute("src",a+"/"+f.split("/").pop().replace(".svg",".png")),u(null)):u("This browser does not support SVG and no PNG fallback was defined."))}-1===s.indexOf(e)&&(s.push(e),e.setAttribute("src",""),v(f,function(i){if("undefined"==typeof i||"string"==typeof i)return u(i),!1;var a=e.getAttribute("id");a&&i.setAttribute("id",a);var p=e.getAttribute("title");p&&i.setAttribute("title",p);var d=[].concat(i.getAttribute("class")||[],"injected-svg",e.getAttribute("class")||[]).join(" ");i.setAttribute("class",r(d));var v=e.getAttribute("style");v&&i.setAttribute("style",v);var h=[].filter.call(e.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});o.call(h,function(t){t.name&&t.value&&i.setAttribute(t.name,t.value)});for(var g,b=i.querySelectorAll("defs clipPath[id]"),y=0,m=b.length;m>y;y++){g=b[y].id+"-"+l;for(var A=i.querySelectorAll('[clip-path*="'+b[y].id+'"]'),w=0,S=A.length;S>w;w++)A[w].setAttribute("clip-path","url(#"+g+")");b[y].id=g}for(var x,j=i.querySelectorAll("defs mask[id]"),T=0,G=j.length;G>T;T++){x=j[T].id+"-"+l;for(var M=i.querySelectorAll('[mask*="'+j[T].id+'"]'),q=0,V=M.length;V>q;q++)M[q].setAttribute("mask","url(#"+x+")");j[T].id=x}i.removeAttribute("xmlns:a");for(var k,E,O=i.querySelectorAll("script"),L=[],P=0,X=O.length;X>P;P++)E=O[P].getAttribute("type"),E&&"application/ecmascript"!==E&&"application/javascript"!==E||(k=O[P].innerText||O[P].textContent,L.push(k),i.removeChild(O[P]));if(L.length>0&&("always"===n||"once"===n&&!c[f])){for(var F=0,N=L.length;N>F;F++)new Function(L[F])(t);c[f]=!0}var C=i.querySelectorAll("style");o.call(C,function(t){t.textContent+=""}),e.parentNode.replaceChild(i,e),delete s[s.indexOf(e)],e=null,l++,u(i)}))},g=function(t,e,r){e=e||{};var n=e.evalScripts||"always",i=e.pngFallback||!1,a=e.each;if(void 0!==t.length){var l=0;o.call(t,function(e){h(e,n,i,function(e){a&&"function"==typeof a&&a(e),r&&t.length===++l&&r(l)})})}else t?h(t,n,i,function(e){a&&"function"==typeof a&&a(e),r&&r(1),t=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=g:"function"==typeof define&&define.amd?define(function(){return g}):"object"==typeof t&&(t.SVGInjector=g)}(window,document); +!function(t,e){"use strict";function n(t){t=t.split(" ");for(var e={},n=t.length,r=[];n--;)e.hasOwnProperty(t[n])||(e[t[n]]=1,r.unshift(t[n]));return r.join(" ")}var r="file:"===t.location.protocol,i=e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),o=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)},l={},a=0,s=[],u=[],c={},f=function(t,n){var r,i,l,a;return void 0!==n?(r=t.getElementById(n),r instanceof SVGSymbolElement?(i=e.createElementNS("http://www.w3.org/2000/svg","svg"),o.call(r.childNodes,function(t){i.appendChild(t.cloneNode(!0))})):r instanceof SVGViewElement&&(i=t.cloneNode(!0)),a=r.getAttribute("viewBox"),a&&(l=a.split(" "),i.setAttribute("viewBox",l.join(" ")),i.setAttribute("width",l[2]+"px"),i.setAttribute("height",l[3]+"px")),i.setAttribute("class",n),i):t.cloneNode(!0)},p=function(t,e,n){u[e]=u[e]||[],u[e].push({callback:t,fragmentId:n})},d=function(t){for(var e=0,n=u[t].length;n>e;e++)!function(e){setTimeout(function(){u[t][e].callback(f(l[t],u[t][e].fragmentId))},0)}(e)},v=function(e,n){var i,o,a;if(i=e.split("#"),o=i[0],a=2===i.length?i[1]:void 0,void 0!==l[o])l[o]instanceof SVGSVGElement?n(f(l[o],a)):p(n,o,a);else{if(!t.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;l[o]={},p(n,o,a);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+o),r&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||r&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)l[o]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var t;try{var i=new DOMParser;t=i.parseFromString(s.responseText,"text/xml")}catch(a){t=void 0}if(!t||t.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+e),!1;l[o]=t.documentElement}d(o)}},s.open("GET",o),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},g=function(e,r,l,u){var f=e.getAttribute("data-src")||e.getAttribute("src");if(!/\.svg/i.test(f))return void u("Attempted to inject a file with a non-svg extension: "+f);if(!i){var p=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(p?(e.setAttribute("src",p),u(null)):l?(e.setAttribute("src",l+"/"+f.split("/").pop().replace(".svg",".png")),u(null)):u("This browser does not support SVG and no PNG fallback was defined."))}-1===s.indexOf(e)&&(s.push(e),e.setAttribute("src",""),v(f,function(i){if("undefined"==typeof i||"string"==typeof i)return u(i),!1;var l=e.getAttribute("id");l&&i.setAttribute("id",l);var p=e.getAttribute("title");p&&i.setAttribute("title",p);var d=[].concat(i.getAttribute("class")||[],"injected-svg",e.getAttribute("class")||[]).join(" ");i.setAttribute("class",n(d));var v=e.getAttribute("style");v&&i.setAttribute("style",v);var g=[].filter.call(e.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});o.call(g,function(t){t.name&&t.value&&i.setAttribute(t.name,t.value)});for(var h,b=i.querySelectorAll("defs clipPath[id]"),m=0,y=b.length;y>m;m++){h=b[m].id+"-"+a;for(var A=i.querySelectorAll('[clip-path*="'+b[m].id+'"]'),w=0,S=A.length;S>w;w++)A[w].setAttribute("clip-path","url(#"+h+")");b[m].id=h}for(var x,j=i.querySelectorAll("defs mask[id]"),G=0,T=j.length;T>G;G++){x=j[G].id+"-"+a;for(var V=i.querySelectorAll('[mask*="'+j[G].id+'"]'),E=0,M=V.length;M>E;E++)V[E].setAttribute("mask","url(#"+x+")");j[G].id=x}i.removeAttribute("xmlns:a");for(var k,q,N=i.querySelectorAll("script"),O=[],B=0,L=N.length;L>B;B++)q=N[B].getAttribute("type"),q&&"application/ecmascript"!==q&&"application/javascript"!==q||(k=N[B].innerText||N[B].textContent,O.push(k),i.removeChild(N[B]));if(O.length>0&&("always"===r||"once"===r&&!c[f])){for(var P=0,X=O.length;X>P;P++)new Function(O[P])(t);c[f]=!0}var C=i.querySelectorAll("style");o.call(C,function(t){t.textContent+=""}),e.parentNode.replaceChild(i,e),delete s[s.indexOf(e)],e=null,a++,u(i)}))},h=function(t,e,n){e=e||{};var r=e.evalScripts||"always",i=e.pngFallback||!1,l=e.each;if(void 0!==t.length){var a=0;o.call(t,function(e){g(e,r,i,function(e){l&&"function"==typeof l&&l(e),n&&t.length===++a&&n(a)})})}else t?g(t,r,i,function(e){l&&"function"==typeof l&&l(e),n&&n(1),t=null}):n&&n(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=h:"function"==typeof define&&define.amd?define(function(){return h}):"object"==typeof t&&(t.SVGInjector=h)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 0ed50a8..e133353 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -63,13 +63,39 @@ // Script running status var ranScripts = {}; - var cloneSvg = function (sourceSvg) { + var cloneSvg = function (sourceSvg, fragId) { + var svgElem, newSVG, viewBox, viewBoxAttr; + + if(fragId !== undefined) { + svgElem = sourceSvg.getElementById(fragId); + + if(svgElem instanceof SVGSymbolElement){ + newSVG = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + forEach.call(svgElem.childNodes, function(child){ + newSVG.appendChild(child.cloneNode(true)); + }); + } + else if(svgElem instanceof SVGViewElement){ + newSVG = sourceSvg.cloneNode(true); + } + + viewBoxAttr = svgElem.getAttribute('viewBox'); + if(viewBoxAttr){ + viewBox = viewBoxAttr.split(' '); + newSVG.setAttribute('viewBox', viewBox.join(' ')); + newSVG.setAttribute('width', viewBox[2]+'px'); + newSVG.setAttribute('height', viewBox[3]+'px'); + } + + newSVG.setAttribute('class', fragId); + return newSVG; + } return sourceSvg.cloneNode(true); }; - var queueRequest = function (url, callback) { - requestQueue[url] = requestQueue[url] || []; - requestQueue[url].push(callback); + var queueRequest = function (callback, fileName, fragId) { + requestQueue[fileName] = requestQueue[fileName] || []; + requestQueue[fileName].push({'callback':callback, 'fragmentId':fragId}); }; var processRequestQueue = function (url) { @@ -78,7 +104,7 @@ /* jshint loopfunc: true */ (function (index) { setTimeout(function () { - requestQueue[url][index](cloneSvg(svgCache[url])); + requestQueue[url][index].callback(cloneSvg(svgCache[url], requestQueue[url][index].fragmentId)); }, 0); })(i); /* jshint loopfunc: false */ @@ -86,14 +112,19 @@ }; var loadSvg = function (url, callback) { - if (svgCache[url] !== undefined) { - if (svgCache[url] instanceof SVGSVGElement) { + var urlArr, fileName, fragId; + urlArr = url.split('#'); + fileName = urlArr[0]; + fragId = (urlArr.length === 2) ? urlArr[1] : undefined; + + if (svgCache[fileName] !== undefined) { + if (svgCache[fileName] instanceof SVGSVGElement) { // We already have it in cache, so use it - callback(cloneSvg(svgCache[url])); + callback(cloneSvg(svgCache[fileName], fragId)); } else { // We don't have it in cache yet, but we are loading it, so queue this request - queueRequest(url, callback); + queueRequest(callback, fileName, fragId); } } else { @@ -104,8 +135,8 @@ } // Seed the cache to indicate we are loading this URL already - svgCache[url] = {}; - queueRequest(url, callback); + svgCache[fileName] = {}; + queueRequest(callback, fileName, fragId); var httpRequest = new XMLHttpRequest(); @@ -115,7 +146,7 @@ // Handle status if (httpRequest.status === 404 || httpRequest.responseXML === null) { - callback('Unable to load SVG file: ' + url); + callback('Unable to load SVG file: ' + fileName); if (isLocal) callback('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.'); @@ -129,7 +160,7 @@ /* globals Document */ if (httpRequest.responseXML instanceof Document) { // Cache it - svgCache[url] = httpRequest.responseXML.documentElement; + svgCache[fileName] = httpRequest.responseXML.documentElement; } /* globals -Document */ @@ -156,12 +187,12 @@ } else { // Cache it - svgCache[url] = xmlDoc.documentElement; + svgCache[fileName] = xmlDoc.documentElement; } } // We've loaded a new asset, so process any requests waiting for it - processRequestQueue(url); + processRequestQueue(fileName); } else { callback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText); @@ -170,7 +201,7 @@ } }; - httpRequest.open('GET', url); + httpRequest.open('GET', fileName); // Treat and parse the response as XML, even if the // server sends us a different mimetype From d7284140d1fbaa7604dba622dd4005b653c6cf92 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 28 Mar 2015 01:52:02 +0100 Subject: [PATCH 002/212] add example for symbol and view referencing via fragment-ids --- examples/fragment-ids/img/circle.svg | 18 +++++++ examples/fragment-ids/img/symbols-n-views.svg | 49 +++++++++++++++++++ examples/fragment-ids/index.html | 48 ++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 examples/fragment-ids/img/circle.svg create mode 100644 examples/fragment-ids/img/symbols-n-views.svg create mode 100644 examples/fragment-ids/index.html diff --git a/examples/fragment-ids/img/circle.svg b/examples/fragment-ids/img/circle.svg new file mode 100644 index 0000000..670b3a2 --- /dev/null +++ b/examples/fragment-ids/img/circle.svg @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/examples/fragment-ids/img/symbols-n-views.svg b/examples/fragment-ids/img/symbols-n-views.svg new file mode 100644 index 0000000..2b9d3ca --- /dev/null +++ b/examples/fragment-ids/img/symbols-n-views.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/fragment-ids/index.html b/examples/fragment-ids/index.html new file mode 100644 index 0000000..4afb15d --- /dev/null +++ b/examples/fragment-ids/index.html @@ -0,0 +1,48 @@ + + + + + SVGInjector Example: SVG Sprites + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 541df26a9bf1c7ac4081824d405a3d60ef9dd7de Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 28 Mar 2015 02:58:44 +0100 Subject: [PATCH 003/212] update version number for bower --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 862217a..7168622 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "svg-injector", - "version": "1.1.2", + "version": "1.1.3-RC", "homepage": "https://github.com/iconic/SVGInjector", "authors": [ "Iconic " From 925c8120991ba94aeca0718e64221dc55b98afeb Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 28 Mar 2015 03:21:56 +0100 Subject: [PATCH 004/212] changed indentation --- examples/fragment-ids/index.html | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/fragment-ids/index.html b/examples/fragment-ids/index.html index 4afb15d..fec5d7d 100644 --- a/examples/fragment-ids/index.html +++ b/examples/fragment-ids/index.html @@ -28,21 +28,21 @@ \ No newline at end of file From 5966d86d7159c87a954abbcff6b039db7dce1432 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Fri, 1 May 2015 23:58:45 +0200 Subject: [PATCH 005/212] add option, to only insert visible part specified via fragment-id of a view-elem --- svg-injector.js | 107 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 98 insertions(+), 9 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index e133353..84332c4 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -10,9 +10,14 @@ 'use strict'; + // Constants + var svgNS = 'http://www.w3.org/2000/svg'; + // Environment var isLocal = window.location.protocol === 'file:'; var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); + var onlyInjectVisiblePart; + function uniqueClasses(list) { list = list.split(' '); @@ -63,31 +68,108 @@ // Script running status var ranScripts = {}; + var copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) { + var curAttr; + if (typeof attributesToIgnore === 'undefined') { attributesToIgnore = ['id', 'viewBox']; } + + for(var i=0; i 0) { + symbolAttributesToFind.x = viewBox[0]; + } + if (Math.abs(viewBox[1]) > 0) { + symbolAttributesToFind.y = viewBox[1]; + } + symbolElems = sourceSvg.getElementsByTagNameNS(svgNS, 'svg'); + forEach.call( + symbolElems, + function (symbolElem, idx) { + allAttribsMatch = true; + for (var prop in symbolAttributesToFind) { + if (symbolElem.getAttribute(prop) !== symbolAttributesToFind[prop]) { + allAttribsMatch = false; + break; + } + } + if (allAttribsMatch) { + symbolToFindIdx = idx; + } + } + ); + } + if (symbolToFindIdx === -1) { + // onlyInjectVisiblePart option was disabled or no symbol was found + setViewboxOnNewSVG = true; + newSVG = sourceSvg.cloneNode(true); + } + else { + newSVG = symbolElems[symbolToFindIdx].cloneNode(true); + for (var prop in symbolAttributesToFind) { + if (prop !== 'width' && prop !== 'height') { + newSVG.removeAttribute(prop); + } + } + } } - viewBoxAttr = svgElem.getAttribute('viewBox'); - if(viewBoxAttr){ - viewBox = viewBoxAttr.split(' '); + if (setViewboxOnNewSVG) { newSVG.setAttribute('viewBox', viewBox.join(' ')); newSVG.setAttribute('width', viewBox[2]+'px'); newSVG.setAttribute('height', viewBox[3]+'px'); } - newSVG.setAttribute('class', fragId); + curClassList = newSVG.getAttribute('class').split(' '); + if (curClassList.indexOf(fragId)<0) { + curClassList.push(fragId); + newSVG.setAttribute('class', curClassList.join(' ')); + } + return newSVG; } return sourceSvg.cloneNode(true); @@ -434,9 +516,16 @@ // Location of fallback pngs, if desired var pngFallback = options.pngFallback || false; + // Only inject the part of the svg, that is specified + // as visible through the id of an SVGViewElement + // is default mode + onlyInjectVisiblePart = options.onlyInjectVisiblePart || true; + // Callback to run during each SVG injection, returning the SVG injected var eachCallback = options.each; + + // Do the injection... if (elements.length !== undefined) { var elementsLoaded = 0; From fd16ef578304b398f4ec6f8d18a198a05e644ac9 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 2 May 2015 00:35:55 +0200 Subject: [PATCH 006/212] enable default fallback for sprites referenced via fragment-id --- svg-injector.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/svg-injector.js b/svg-injector.js index 84332c4..3a4fb2c 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -298,6 +298,8 @@ // Grab the src or data-src attribute var imgUrl = el.getAttribute('data-src') || el.getAttribute('src'); + var imgUrlSplitByFId = imgUrl.split('#'); + var fallbackUrl; // We can only inject SVG if (!(/\.svg/i).test(imgUrl)) { @@ -318,7 +320,14 @@ } // Global PNG fallback directoriy defined, use the same-named PNG else if (pngFallback) { - el.setAttribute('src', pngFallback + '/' + imgUrl.split('/').pop().replace('.svg', '.png')); + + if (imgUrlSplitByFId.length>1) { + fallbackUrl = imgUrlSplitByFId[1] + '.png'; + } + else{ + fallbackUrl = imgUrl.split('/').pop().replace('.svg', '.png'); + } + el.setAttribute('src', pngFallback + '/' + fallbackUrl); callback(null); } // um... From 2f35d0efbe45c9e67fe1b5ff1a4e6678b1d4f2db Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 2 May 2015 00:37:08 +0200 Subject: [PATCH 007/212] extend fragment-id example by a spritesheet generated with grunt-svg-sprite --- examples/fragment-ids/img/views.svg | 34 +++++++++++++++++++++++++++++ examples/fragment-ids/index.html | 6 ++++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 examples/fragment-ids/img/views.svg diff --git a/examples/fragment-ids/img/views.svg b/examples/fragment-ids/img/views.svg new file mode 100644 index 0000000..aa42dcf --- /dev/null +++ b/examples/fragment-ids/img/views.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/fragment-ids/index.html b/examples/fragment-ids/index.html index fec5d7d..9253b12 100644 --- a/examples/fragment-ids/index.html +++ b/examples/fragment-ids/index.html @@ -24,6 +24,10 @@ + + + + @@ -32,7 +36,7 @@ // Options var injectorOptions = { evalScripts: 'once', - pngFallback: false, + pngFallback: '.', each: function(svg){ if (svg){ //console.log('injected: ', svg); From b37313ecf87f6bff62ba4581c934e9fadf34e78c Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 2 May 2015 01:44:02 +0200 Subject: [PATCH 008/212] if view displays a use tag, the referenced symbol is injected --- svg-injector.js | 81 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 28 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index 3a4fb2c..75fae37 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -12,6 +12,7 @@ // Constants var svgNS = 'http://www.w3.org/2000/svg'; + var xlinkNS = 'http://www.w3.org/1999/xlink'; // Environment var isLocal = window.location.protocol === 'file:'; @@ -74,12 +75,21 @@ for(var i=0; i 0) { symbolAttributesToFind.x = viewBox[0]; } if (Math.abs(viewBox[1]) > 0) { symbolAttributesToFind.y = viewBox[1]; } - symbolElems = sourceSvg.getElementsByTagNameNS(svgNS, 'svg'); + + symbolElems = sourceSvg.querySelectorAll('*[width="' + viewBox[2] + '"][height="'+viewBox[3]+'"]'); forEach.call( - symbolElems, - function (symbolElem, idx) { - allAttribsMatch = true; - for (var prop in symbolAttributesToFind) { - if (symbolElem.getAttribute(prop) !== symbolAttributesToFind[prop]) { - allAttribsMatch = false; - break; - } - } - if (allAttribsMatch) { - symbolToFindIdx = idx; + symbolElems, + function (symbolElem, idx) { + allAttribsMatch = true; + for (var prop in symbolAttributesToFind) { + if (symbolElem.getAttribute(prop) !== symbolAttributesToFind[prop]) { + allAttribsMatch = false; + break; } } + if (allAttribsMatch) { + symbolToFindIdx = idx; + } + } ); + } - if (symbolToFindIdx === -1) { - // onlyInjectVisiblePart option was disabled or no symbol was found - setViewboxOnNewSVG = true; - newSVG = sourceSvg.cloneNode(true); - } - else { + if (symbolToFindIdx !== -1 && (symbolElems[symbolToFindIdx] instanceof SVGSVGElement)) { newSVG = symbolElems[symbolToFindIdx].cloneNode(true); for (var prop in symbolAttributesToFind) { if (prop !== 'width' && prop !== 'height') { @@ -156,6 +162,24 @@ } } } + else if(symbolToFindIdx !== -1 && (symbolElems[symbolToFindIdx] instanceof SVGUseElement)) { + //console.log('referenced view shows a SVGUseElement'); + var referencedSymbol = sourceSvg.getElementById( + symbolElems[symbolToFindIdx].getAttributeNS(xlinkNS, 'href').substr(1) + ); + newSVG = cloneSymbolAsSVG(referencedSymbol); + viewBoxAttr = referencedSymbol.getAttribute('viewBox'); + viewBox = viewBoxAttr.split(' '); + setViewboxOnNewSVG = true; + } + else { + + // onlyInjectVisiblePart option was disabled or no symbol was found + //console.log('symbol referenced via view ' + fragId + ' not found -> clone complete svg!'); + setViewboxOnNewSVG = true; + newSVG = sourceSvg.cloneNode(true); + + } } if (setViewboxOnNewSVG) { @@ -164,7 +188,8 @@ newSVG.setAttribute('height', viewBox[3]+'px'); } - curClassList = newSVG.getAttribute('class').split(' '); + curClassAttr = newSVG.getAttribute('class'); + curClassList = (curClassAttr) ? curClassAttr.split(' '): []; if (curClassList.indexOf(fragId)<0) { curClassList.push(fragId); newSVG.setAttribute('class', curClassList.join(' ')); From fecb5a7ec1cdd6001cc637eb55048ab7cb7b1a7d Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Sat, 2 May 2015 01:44:32 +0200 Subject: [PATCH 009/212] update fragment-id example --- examples/fragment-ids/img/views.svg | 2 +- examples/fragment-ids/index.html | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/fragment-ids/img/views.svg b/examples/fragment-ids/img/views.svg index aa42dcf..a6ce78c 100644 --- a/examples/fragment-ids/img/views.svg +++ b/examples/fragment-ids/img/views.svg @@ -28,7 +28,7 @@ fill: #A6042D; } - + diff --git a/examples/fragment-ids/index.html b/examples/fragment-ids/index.html index 9253b12..d3468f5 100644 --- a/examples/fragment-ids/index.html +++ b/examples/fragment-ids/index.html @@ -24,13 +24,13 @@ - + - - + + - \ No newline at end of file + diff --git a/svg-injector.js b/svg-injector.js index a01e124..bd1d5f6 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -677,7 +677,7 @@ if(hasSvgSupport) { htmlElement.className.replace('no-svg', ''); - if( removeStylesClass === defaultRemoveStylesClassName ){ // user does not want to use his own custom class -> write this style tag + if( typeof options.removeStylesClass === 'undefined' ){ // user does not want to use his own custom class -> write this style tag var css = 'svg.' + removeStylesClass + ' {fill: currentColor;}', head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); From 1a3a7b0798dd74203c1af8f5679080c851ef3c3b Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Thu, 28 May 2015 02:22:08 +0200 Subject: [PATCH 030/212] edit fallback classnames list --- svg-injector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/svg-injector.js b/svg-injector.js index bd1d5f6..9fa9aa4 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -13,7 +13,7 @@ // Constants var svgNS = 'http://www.w3.org/2000/svg'; var xlinkNS = 'http://www.w3.org/1999/xlink'; - var defaultFallbackClassNames = ['%s', '%s-dims', 'svg-sprite']; + var defaultFallbackClassNames = ['%s', 'svg-sprite']; var defaultRemoveStylesClassName = 'icon'; From d7893d49ec7e4db901d1aff2ccd1c7611df2b8f6 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Thu, 28 May 2015 02:51:07 +0200 Subject: [PATCH 031/212] add option to remove all style-tags upon injection --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 5201d00..7efba01 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","fallbackClassName","prefixStyleTags","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 5c6a13f..1f1279c 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(t,e){"use strict";function n(t){t=t.split(" ");for(var e={},n=t.length,r=[];n--;)e.hasOwnProperty(t[n])||(e[t[n]]=1,r.unshift(t[n]));return r.join(" ")}function r(t){return!!(t&&t.constructor&&t.call&&t.apply)}function i(t){return"[object Array]"===Object.prototype.toString.call(t)}function l(t,e){var r=t.getAttribute("class");r=r?r:"",i(e)&&(e=e.join(" ")),e=r+" "+e,t.setAttribute("class",n(e))}function s(t,e,n){var r="undefined"==typeof n?v:n.slice(0);y.call(r,function(t,n){r[n]=t.replace("%s",e)}),l(t,r)}function a(t,e,r){r="undefined"==typeof r?v.slice(0):r.slice(0);var i=t.getAttribute("class");i&&(y.call(r,function(t,n){t=t.replace("%s",e),i.indexOf(t)>=0&&(i=i.replace(t,""))}),t.setAttribute("class",n(i)))}var o,c,u,f,p="http://www.w3.org/2000/svg",d="http://www.w3.org/1999/xlink",v=["%s","%s-dims","svg-sprite"],g="icon",h="file:"===t.location.protocol,b=e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),y=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)},m={},A=0,w=[],x=[],S={},j=function(t,e,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+e;t.textContent=t.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},T=function(t){var e=t.getAttribute("class");return e?e.split(" "):[]},C=function(t,e){var n,r,i,l,s,a,c=!1,u=null;if(void 0===e)return t.cloneNode(!0);if(n=t.getElementById(e)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=N(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),u=t.querySelector(f)}if(u&&u instanceof SVGSVGElement){r=u.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(u&&u instanceof SVGUseElement){var v=t.getElementById(u.getAttributeNS(d,"href").substr(1));r=N(v),l=v.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,r=t.cloneNode(!0)}return c&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=T(r),a.indexOf(e)<0&&(a.push(e),r.setAttribute("class",a.join(" "))),r}},G=function(t,e,n){x[e]=x[e]||[],x[e].push({callback:t,fragmentId:n})},V=function(t){for(var e=0,n=x[t].length;n>e;e++)!function(e){setTimeout(function(){x[t][e].callback(C(m[t],x[t][e].fragmentId))},0)}(e)},k=function(e,n){var r,i,l;if(r=e.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==m[i])m[i]instanceof SVGSVGElement?n(C(m[i],l)):G(n,i,l);else{if(!t.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;m[i]={},G(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),h&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||h&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)m[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var t;try{var r=new DOMParser;t=r.parseFromString(s.responseText,"text/xml")}catch(l){t=void 0}if(!t||t.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+e),!1;m[i]=t.documentElement}V(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},M=function(e,o,p,d){var v,g=e.getAttribute("data-src")||e.getAttribute("src"),h=g.split("#");if(!/\.svg/i.test(g))return void d("Attempted to inject a file with a non-svg extension: "+g);if(!b){var m=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(m?(e.setAttribute("src",m),d(null)):p?(v=h.length>1?h[1]+".png":g.split("/").pop().replace(".svg",".png"),i(u)?s(e,h[1],u):r(u)?u(e,h[1]):"string"==typeof u?l(e,u):e.setAttribute("src",p+"/"+v),d(null)):d("This browser does not support SVG and no PNG fallback was defined."))}i(u)&&a(e,h[1],u),-1===w.indexOf(e)&&(w.push(e),e.setAttribute("src",""),k(g,function(r){if("undefined"==typeof r||"string"==typeof r)return d(r),!1;var i=e.getAttribute("id");i&&r.setAttribute("id",i);var l=e.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",e.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=e.getAttribute("style");a&&r.setAttribute("style",a);var u=[].filter.call(e.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});y.call(u,function(t){t.name&&t.value&&r.setAttribute(t.name,t.value)});for(var p,v=r.querySelectorAll("defs clipPath[id]"),h=0,b=v.length;b>h;h++){p=v[h].id+"-"+A;for(var m=r.querySelectorAll('[clip-path*="'+v[h].id+'"]'),x=0,j=m.length;j>x;x++)m[x].setAttribute("clip-path","url(#"+p+")");v[h].id=p}for(var N,C=r.querySelectorAll("defs mask[id]"),G=0,V=C.length;V>G;G++){N=C[G].id+"-"+A;for(var k=r.querySelectorAll('[mask*="'+C[G].id+'"]'),M=0,O=k.length;O>M;M++)k[M].setAttribute("mask","url(#"+N+")");C[G].id=N}r.removeAttribute("xmlns:a");for(var q,B,P=r.querySelectorAll("script"),F=[],I=0,L=P.length;L>I;I++)B=P[I].getAttribute("type"),B&&"application/ecmascript"!==B&&"application/javascript"!==B||(q=P[I].innerText||P[I].textContent,F.push(q),r.removeChild(P[I]));if(F.length>0&&("always"===o||"once"===o&&!S[g])){for(var X=0,R=F.length;R>X;X++)new Function(F[X])(t);S[g]=!0}var D=r.querySelectorAll("style");y.call(D,function(t){var e=T(r);e.indexOf(c)>=0?t.parentNode.removeChild(t):f?E(t,A,r):t.textContent+=""}),e.parentNode.replaceChild(r,e),delete w[w.indexOf(e)],e=null,A++,d(r)}))},O=function(t,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.removeStylesClass?g:n.removeStylesClass,u="undefined"==typeof n.fallbackClassName?v:n.fallbackClassName,f="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(b=!1);var s=n.each,a=e.querySelector("html");if(b){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var p="svg."+c+" {fill: currentColor;}",d=e.head||e.getElementsByTagName("head")[0],h=e.createElement("style");h.type="text/css",h.styleSheet?h.styleSheet.cssText=p:h.appendChild(e.createTextNode(p)),d.appendChild(h)}}else a.className+=" no-svg";if(void 0!==t.length){var m=0;y.call(t,function(e){M(e,i,l,function(e){s&&"function"==typeof s&&s(e),r&&t.length===++m&&r(m)})})}else t?M(t,i,l,function(e){s&&"function"==typeof s&&s(e),r&&r(1),t=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=O:"function"==typeof define&&define.amd?define(function(){return O}):"object"==typeof t&&(t.SVGInjector=O)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function l(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?g:n.slice(0);m.call(r,function(e,n){r[n]=e.replace("%s",t)}),l(e,r)}function a(e,t,r){r="undefined"==typeof r?g.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(m.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d="http://www.w3.org/2000/svg",v="http://www.w3.org/1999/xlink",g=["%s","svg-sprite"],h="icon",y="file:"===e.location.protocol,b=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),m=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},A={},w=0,S=[],x=[],j={},N=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},C=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},G=function(e,t){var n,r,i,l,s,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=E(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(v,"href").substr(1));r=E(d),l=d.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=C(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},V=function(e,t,n){x[t]=x[t]||[],x[t].push({callback:e,fragmentId:n})},k=function(e){for(var t=0,n=x[e].length;n>t;t++)!function(t){setTimeout(function(){x[e][t].callback(G(A[e],x[e][t].fragmentId))},0)}(t)},M=function(t,n){var r,i,l;if(r=t.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==A[i])A[i]instanceof SVGSVGElement?n(G(A[i],l)):V(n,i,l);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;A[i]={},V(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),y&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||y&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)A[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;A[i]=e.documentElement}k(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},O=function(t,o,d,v){var g,h=t.getAttribute("data-src")||t.getAttribute("src"),y=h.split("#");if(!/\.svg/i.test(h))return void v("Attempted to inject a file with a non-svg extension: "+h);if(!b){var A=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(A?(t.setAttribute("src",A),v(null)):d?(g=y.length>1?y[1]+".png":h.split("/").pop().replace(".svg",".png"),i(c)?s(t,y[1],c):r(c)?c(t,y[1]):"string"==typeof c?l(t,c):t.setAttribute("src",d+"/"+g),v(null)):v("This browser does not support SVG and no PNG fallback was defined."))}i(c)&&a(t,y[1],c),-1===S.indexOf(t)&&(S.push(t),t.setAttribute("src",""),M(h,function(r){if("undefined"==typeof r||"string"==typeof r)return v(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var l=t.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var c=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});m.call(c,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});for(var d,g=r.querySelectorAll("defs clipPath[id]"),y=0,b=g.length;b>y;y++){d=g[y].id+"-"+w;for(var A=r.querySelectorAll('[clip-path*="'+g[y].id+'"]'),x=0,N=A.length;N>x;x++)A[x].setAttribute("clip-path","url(#"+d+")");g[y].id=d}for(var E,G=r.querySelectorAll("defs mask[id]"),V=0,k=G.length;k>V;V++){E=G[V].id+"-"+w;for(var M=r.querySelectorAll('[mask*="'+G[V].id+'"]'),O=0,q=M.length;q>O;O++)M[O].setAttribute("mask","url(#"+E+")");G[V].id=E}r.removeAttribute("xmlns:a");for(var B,P,F=r.querySelectorAll("script"),I=[],L=0,X=F.length;X>L;L++)P=F[L].getAttribute("type"),P&&"application/ecmascript"!==P&&"application/javascript"!==P||(B=F[L].innerText||F[L].textContent,I.push(B),r.removeChild(F[L]));if(I.length>0&&("always"===o||"once"===o&&!j[h])){for(var R=0,D=I.length;D>R;R++)new Function(I[R])(e);j[h]=!0}var H=r.querySelectorAll("style");m.call(H,function(e){var t=C(r);t.indexOf(u)>=0||p?e.parentNode.removeChild(e):f?T(e,w,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete S[S.indexOf(t)],t=null,w++,v(r)}))},q=function(e,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,u="undefined"==typeof n.removeStylesClass?h:n.removeStylesClass,p="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,c="undefined"==typeof n.fallbackClassName?g:n.fallbackClassName,f="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(b=!1);var s=n.each,a=t.querySelector("html");if(b){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var d="svg."+u+" {fill: currentColor;}",v=t.head||t.getElementsByTagName("head")[0],y=t.createElement("style");y.type="text/css",y.styleSheet?y.styleSheet.cssText=d:y.appendChild(t.createTextNode(d)),v.appendChild(y)}}else a.className+=" no-svg";if(void 0!==e.length){var A=0;m.call(e,function(t){O(t,i,l,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++A&&r(A)})})}else e?O(e,i,l,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=q:"function"==typeof define&&define.amd?define(function(){return q}):"object"==typeof e&&(e.SVGInjector=q)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 9fa9aa4..c39c429 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -20,7 +20,7 @@ // Environment var isLocal = window.location.protocol === 'file:'; var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); - var onlyInjectVisiblePart, removeStylesClass, fallbackClassName, prefixStyleTags; + var onlyInjectVisiblePart, removeStylesClass, fallbackClassName, prefixStyleTags, removeAllStyles; @@ -586,7 +586,7 @@ forEach.call(styleTags, function (styleTag) { var svgClassList = getClassList(svg); - if (svgClassList.indexOf(removeStylesClass)>=0) { + if (svgClassList.indexOf(removeStylesClass)>=0 || removeAllStyles) { // remove the styletag if the removeStylesClass is applied to the SVG console.log('remove styleTag', styleTag); @@ -661,6 +661,9 @@ removeStylesClass = (typeof options.removeStylesClass === 'undefined') ? defaultRemoveStylesClassName : options.removeStylesClass; + removeAllStyles = (typeof options.removeAllStyles === 'undefined') ? + false : options.removeAllStyles; + fallbackClassName = (typeof options.fallbackClassName === 'undefined') ? defaultFallbackClassNames : options.fallbackClassName; From 919895086d512c7ba239e25c6957099efb492519 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Thu, 28 May 2015 03:19:22 +0200 Subject: [PATCH 032/212] add option to keep inline-styles for some elems (specify via class) even if remove all style-tags = true --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 7efba01..3aa575b 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 1f1279c..10a4f1c 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function l(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?g:n.slice(0);m.call(r,function(e,n){r[n]=e.replace("%s",t)}),l(e,r)}function a(e,t,r){r="undefined"==typeof r?g.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(m.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d="http://www.w3.org/2000/svg",v="http://www.w3.org/1999/xlink",g=["%s","svg-sprite"],h="icon",y="file:"===e.location.protocol,b=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),m=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},A={},w=0,S=[],x=[],j={},N=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},C=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},G=function(e,t){var n,r,i,l,s,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=E(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(v,"href").substr(1));r=E(d),l=d.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=C(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},V=function(e,t,n){x[t]=x[t]||[],x[t].push({callback:e,fragmentId:n})},k=function(e){for(var t=0,n=x[e].length;n>t;t++)!function(t){setTimeout(function(){x[e][t].callback(G(A[e],x[e][t].fragmentId))},0)}(t)},M=function(t,n){var r,i,l;if(r=t.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==A[i])A[i]instanceof SVGSVGElement?n(G(A[i],l)):V(n,i,l);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;A[i]={},V(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),y&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||y&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)A[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;A[i]=e.documentElement}k(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},O=function(t,o,d,v){var g,h=t.getAttribute("data-src")||t.getAttribute("src"),y=h.split("#");if(!/\.svg/i.test(h))return void v("Attempted to inject a file with a non-svg extension: "+h);if(!b){var A=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(A?(t.setAttribute("src",A),v(null)):d?(g=y.length>1?y[1]+".png":h.split("/").pop().replace(".svg",".png"),i(c)?s(t,y[1],c):r(c)?c(t,y[1]):"string"==typeof c?l(t,c):t.setAttribute("src",d+"/"+g),v(null)):v("This browser does not support SVG and no PNG fallback was defined."))}i(c)&&a(t,y[1],c),-1===S.indexOf(t)&&(S.push(t),t.setAttribute("src",""),M(h,function(r){if("undefined"==typeof r||"string"==typeof r)return v(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var l=t.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var c=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});m.call(c,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});for(var d,g=r.querySelectorAll("defs clipPath[id]"),y=0,b=g.length;b>y;y++){d=g[y].id+"-"+w;for(var A=r.querySelectorAll('[clip-path*="'+g[y].id+'"]'),x=0,N=A.length;N>x;x++)A[x].setAttribute("clip-path","url(#"+d+")");g[y].id=d}for(var E,G=r.querySelectorAll("defs mask[id]"),V=0,k=G.length;k>V;V++){E=G[V].id+"-"+w;for(var M=r.querySelectorAll('[mask*="'+G[V].id+'"]'),O=0,q=M.length;q>O;O++)M[O].setAttribute("mask","url(#"+E+")");G[V].id=E}r.removeAttribute("xmlns:a");for(var B,P,F=r.querySelectorAll("script"),I=[],L=0,X=F.length;X>L;L++)P=F[L].getAttribute("type"),P&&"application/ecmascript"!==P&&"application/javascript"!==P||(B=F[L].innerText||F[L].textContent,I.push(B),r.removeChild(F[L]));if(I.length>0&&("always"===o||"once"===o&&!j[h])){for(var R=0,D=I.length;D>R;R++)new Function(I[R])(e);j[h]=!0}var H=r.querySelectorAll("style");m.call(H,function(e){var t=C(r);t.indexOf(u)>=0||p?e.parentNode.removeChild(e):f?T(e,w,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete S[S.indexOf(t)],t=null,w++,v(r)}))},q=function(e,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,u="undefined"==typeof n.removeStylesClass?h:n.removeStylesClass,p="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,c="undefined"==typeof n.fallbackClassName?g:n.fallbackClassName,f="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(b=!1);var s=n.each,a=t.querySelector("html");if(b){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var d="svg."+u+" {fill: currentColor;}",v=t.head||t.getElementsByTagName("head")[0],y=t.createElement("style");y.type="text/css",y.styleSheet?y.styleSheet.cssText=d:y.appendChild(t.createTextNode(d)),v.appendChild(y)}}else a.className+=" no-svg";if(void 0!==e.length){var A=0;m.call(e,function(t){O(t,i,l,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++A&&r(A)})})}else e?O(e,i,l,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=q:"function"==typeof define&&define.amd?define(function(){return q}):"object"==typeof e&&(e.SVGInjector=q)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function l(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?h:n.slice(0);A.call(r,function(e,n){r[n]=e.replace("%s",t)}),l(e,r)}function a(e,t,r){r="undefined"==typeof r?h.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(A.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v="http://www.w3.org/2000/svg",g="http://www.w3.org/1999/xlink",h=["%s","svg-sprite"],y="icon",b="file:"===e.location.protocol,m=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),A=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},w={},S=0,x=[],j=[],C={},N=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},G=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},V=function(e,t){var n,r,i,l,s,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=E(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(g,"href").substr(1));r=E(d),l=d.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=G(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},k=function(e,t,n){j[t]=j[t]||[],j[t].push({callback:e,fragmentId:n})},M=function(e){for(var t=0,n=j[e].length;n>t;t++)!function(t){setTimeout(function(){j[e][t].callback(V(w[e],j[e][t].fragmentId))},0)}(t)},O=function(t,n){var r,i,l;if(r=t.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==w[i])w[i]instanceof SVGSVGElement?n(V(w[i],l)):k(n,i,l);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;w[i]={},k(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),b&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||b&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)w[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;w[i]=e.documentElement}M(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},q=function(t,o,v,g){var h,y=t.getAttribute("data-src")||t.getAttribute("src"),b=y.split("#");if(!/\.svg/i.test(y))return void g("Attempted to inject a file with a non-svg extension: "+y);if(!m){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),g(null)):v?(h=b.length>1?b[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?s(t,b[1],f):r(f)?f(t,b[1]):"string"==typeof f?l(t,f):t.setAttribute("src",v+"/"+h),g(null)):g("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,b[1],f),-1===x.indexOf(t)&&(x.push(t),t.setAttribute("src",""),O(y,function(r){if("undefined"==typeof r||"string"==typeof r)return g(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var l=t.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});A.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});for(var v,h=r.querySelectorAll("defs clipPath[id]"),b=0,m=h.length;m>b;b++){v=h[b].id+"-"+S;for(var w=r.querySelectorAll('[clip-path*="'+h[b].id+'"]'),j=0,N=w.length;N>j;j++)w[j].setAttribute("clip-path","url(#"+v+")");h[b].id=v}for(var E,V=r.querySelectorAll("defs mask[id]"),k=0,M=V.length;M>k;k++){E=V[k].id+"-"+S;for(var O=r.querySelectorAll('[mask*="'+V[k].id+'"]'),q=0,B=O.length;B>q;q++)O[q].setAttribute("mask","url(#"+E+")");V[k].id=E}r.removeAttribute("xmlns:a");for(var P,F,I=r.querySelectorAll("script"),L=[],X=0,R=I.length;R>X;X++)F=I[X].getAttribute("type"),F&&"application/ecmascript"!==F&&"application/javascript"!==F||(P=I[X].innerText||I[X].textContent,L.push(P),r.removeChild(I[X]));if(L.length>0&&("always"===o||"once"===o&&!C[y])){for(var D=0,H=L.length;H>D;D++)new Function(L[D])(e);C[y]=!0}var U=r.querySelectorAll("style");A.call(U,function(e){var t=G(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?T(e,S,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete x[x.indexOf(t)],t=null,S++,g(r)}))},B=function(e,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,u="undefined"==typeof n.removeStylesClass?y:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?h:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(m=!1);var s=n.each,a=t.querySelector("html");if(m){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var v="svg."+u+" {fill: currentColor;}",g=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=v:b.appendChild(t.createTextNode(v)),g.appendChild(b)}}else a.className+=" no-svg";if(void 0!==e.length){var w=0;A.call(e,function(t){q(t,i,l,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++w&&r(w)})})}else e?q(e,i,l,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=B:"function"==typeof define&&define.amd?define(function(){return B}):"object"==typeof e&&(e.SVGInjector=B)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index c39c429..74be83c 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -20,7 +20,7 @@ // Environment var isLocal = window.location.protocol === 'file:'; var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); - var onlyInjectVisiblePart, removeStylesClass, fallbackClassName, prefixStyleTags, removeAllStyles; + var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, prefixStyleTags, removeAllStyles; @@ -586,7 +586,7 @@ forEach.call(styleTags, function (styleTag) { var svgClassList = getClassList(svg); - if (svgClassList.indexOf(removeStylesClass)>=0 || removeAllStyles) { + if ((svgClassList.indexOf(removeStylesClass)>=0 || removeAllStyles) && (svgClassList.indexOf(keepStylesClass)<0) ) { // remove the styletag if the removeStylesClass is applied to the SVG console.log('remove styleTag', styleTag); @@ -658,6 +658,9 @@ // is default mode onlyInjectVisiblePart = options.onlyInjectVisiblePart || true; + keepStylesClass = (typeof options.keepStylesClass === 'undefined') ? + '' : options.keepStylesClass; + removeStylesClass = (typeof options.removeStylesClass === 'undefined') ? defaultRemoveStylesClassName : options.removeStylesClass; From b6693a4c3b1dc4c9f44601629f6471420c9f67df Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Thu, 28 May 2015 19:33:31 +0200 Subject: [PATCH 033/212] Copy preserveAspectRatio of elem if exists --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 3aa575b..063a5f7 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 10a4f1c..5b97933 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function l(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?h:n.slice(0);A.call(r,function(e,n){r[n]=e.replace("%s",t)}),l(e,r)}function a(e,t,r){r="undefined"==typeof r?h.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(A.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v="http://www.w3.org/2000/svg",g="http://www.w3.org/1999/xlink",h=["%s","svg-sprite"],y="icon",b="file:"===e.location.protocol,m=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),A=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},w={},S=0,x=[],j=[],C={},N=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},G=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},V=function(e,t){var n,r,i,l,s,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=E(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(g,"href").substr(1));r=E(d),l=d.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=G(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},k=function(e,t,n){j[t]=j[t]||[],j[t].push({callback:e,fragmentId:n})},M=function(e){for(var t=0,n=j[e].length;n>t;t++)!function(t){setTimeout(function(){j[e][t].callback(V(w[e],j[e][t].fragmentId))},0)}(t)},O=function(t,n){var r,i,l;if(r=t.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==w[i])w[i]instanceof SVGSVGElement?n(V(w[i],l)):k(n,i,l);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;w[i]={},k(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),b&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||b&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)w[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;w[i]=e.documentElement}M(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},q=function(t,o,v,g){var h,y=t.getAttribute("data-src")||t.getAttribute("src"),b=y.split("#");if(!/\.svg/i.test(y))return void g("Attempted to inject a file with a non-svg extension: "+y);if(!m){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),g(null)):v?(h=b.length>1?b[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?s(t,b[1],f):r(f)?f(t,b[1]):"string"==typeof f?l(t,f):t.setAttribute("src",v+"/"+h),g(null)):g("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,b[1],f),-1===x.indexOf(t)&&(x.push(t),t.setAttribute("src",""),O(y,function(r){if("undefined"==typeof r||"string"==typeof r)return g(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var l=t.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});A.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});for(var v,h=r.querySelectorAll("defs clipPath[id]"),b=0,m=h.length;m>b;b++){v=h[b].id+"-"+S;for(var w=r.querySelectorAll('[clip-path*="'+h[b].id+'"]'),j=0,N=w.length;N>j;j++)w[j].setAttribute("clip-path","url(#"+v+")");h[b].id=v}for(var E,V=r.querySelectorAll("defs mask[id]"),k=0,M=V.length;M>k;k++){E=V[k].id+"-"+S;for(var O=r.querySelectorAll('[mask*="'+V[k].id+'"]'),q=0,B=O.length;B>q;q++)O[q].setAttribute("mask","url(#"+E+")");V[k].id=E}r.removeAttribute("xmlns:a");for(var P,F,I=r.querySelectorAll("script"),L=[],X=0,R=I.length;R>X;X++)F=I[X].getAttribute("type"),F&&"application/ecmascript"!==F&&"application/javascript"!==F||(P=I[X].innerText||I[X].textContent,L.push(P),r.removeChild(I[X]));if(L.length>0&&("always"===o||"once"===o&&!C[y])){for(var D=0,H=L.length;H>D;D++)new Function(L[D])(e);C[y]=!0}var U=r.querySelectorAll("style");A.call(U,function(e){var t=G(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?T(e,S,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete x[x.indexOf(t)],t=null,S++,g(r)}))},B=function(e,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,u="undefined"==typeof n.removeStylesClass?y:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?h:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(m=!1);var s=n.each,a=t.querySelector("html");if(m){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var v="svg."+u+" {fill: currentColor;}",g=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=v:b.appendChild(t.createTextNode(v)),g.appendChild(b)}}else a.className+=" no-svg";if(void 0!==e.length){var w=0;A.call(e,function(t){q(t,i,l,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++w&&r(w)})})}else e?q(e,i,l,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=B:"function"==typeof define&&define.amd?define(function(){return B}):"object"==typeof e&&(e.SVGInjector=B)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function l(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?h:n.slice(0);A.call(r,function(e,n){r[n]=e.replace("%s",t)}),l(e,r)}function a(e,t,r){r="undefined"==typeof r?h.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(A.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v="http://www.w3.org/2000/svg",g="http://www.w3.org/1999/xlink",h=["%s","svg-sprite"],y="icon",b="file:"===e.location.protocol,m=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),A=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},w={},S=0,x=[],j=[],C={},N=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},G=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},V=function(e,t){var n,r,i,l,s,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=E(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(g,"href").substr(1));r=E(d),l=d.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=G(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},k=function(e,t,n){j[t]=j[t]||[],j[t].push({callback:e,fragmentId:n})},M=function(e){for(var t=0,n=j[e].length;n>t;t++)!function(t){setTimeout(function(){j[e][t].callback(V(w[e],j[e][t].fragmentId))},0)}(t)},O=function(t,n){var r,i,l;if(r=t.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==w[i])w[i]instanceof SVGSVGElement?n(V(w[i],l)):k(n,i,l);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;w[i]={},k(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),b&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||b&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)w[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;w[i]=e.documentElement}M(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},q=function(t,o,v,g){var h,y=t.getAttribute("data-src")||t.getAttribute("src"),b=y.split("#");if(!/\.svg/i.test(y))return void g("Attempted to inject a file with a non-svg extension: "+y);if(!m){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),g(null)):v?(h=b.length>1?b[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?s(t,b[1],f):r(f)?f(t,b[1]):"string"==typeof f?l(t,f):t.setAttribute("src",v+"/"+h),g(null)):g("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,b[1],f),-1===x.indexOf(t)&&(x.push(t),t.setAttribute("src",""),O(y,function(r){if("undefined"==typeof r||"string"==typeof r)return g(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var l=t.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});A.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var v=t.getAttribute("preserveAspectRatio");v&&r.setAttribute("preserveAspectRatio",v);for(var h,b=r.querySelectorAll("defs clipPath[id]"),m=0,w=b.length;w>m;m++){h=b[m].id+"-"+S;for(var j=r.querySelectorAll('[clip-path*="'+b[m].id+'"]'),N=0,E=j.length;E>N;N++)j[N].setAttribute("clip-path","url(#"+h+")");b[m].id=h}for(var V,k=r.querySelectorAll("defs mask[id]"),M=0,O=k.length;O>M;M++){V=k[M].id+"-"+S;for(var q=r.querySelectorAll('[mask*="'+k[M].id+'"]'),B=0,P=q.length;P>B;B++)q[B].setAttribute("mask","url(#"+V+")");k[M].id=V}r.removeAttribute("xmlns:a");for(var R,F,I=r.querySelectorAll("script"),L=[],X=0,D=I.length;D>X;X++)F=I[X].getAttribute("type"),F&&"application/ecmascript"!==F&&"application/javascript"!==F||(R=I[X].innerText||I[X].textContent,L.push(R),r.removeChild(I[X]));if(L.length>0&&("always"===o||"once"===o&&!C[y])){for(var H=0,U=L.length;U>H;H++)new Function(L[H])(e);C[y]=!0}var $=r.querySelectorAll("style");A.call($,function(e){var t=G(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?T(e,S,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete x[x.indexOf(t)],t=null,S++,g(r)}))},B=function(e,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,u="undefined"==typeof n.removeStylesClass?y:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?h:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(m=!1);var s=n.each,a=t.querySelector("html");if(m){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var v="svg."+u+" {fill: currentColor;}",g=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=v:b.appendChild(t.createTextNode(v)),g.appendChild(b)}}else a.className+=" no-svg";if(void 0!==e.length){var w=0;A.call(e,function(t){q(t,i,l,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++w&&r(w)})})}else e?q(e,i,l,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=B:"function"==typeof define&&define.amd?define(function(){return B}):"object"==typeof e&&(e.SVGInjector=B)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 74be83c..8d2cd80 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -20,7 +20,7 @@ // Environment var isLocal = window.location.protocol === 'file:'; var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); - var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, prefixStyleTags, removeAllStyles; + var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, prefixStyleTags, removeAllStyles, nonUniformARClassName; @@ -499,6 +499,12 @@ } }); + // Copy preserveAspectRatio of elem if exists + var presARAttr = el.getAttribute('preserveAspectRatio'); + if(presARAttr){ + svg.setAttribute('preserveAspectRatio', presARAttr); + } + // Make sure any internally referenced clipPath ids and their // clip-path references are unique. // From 6f4863a8f203c619886f1cc07addb6a2f05a8445 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 1 Jun 2015 13:07:04 +0200 Subject: [PATCH 034/212] add possibility to add a common spritesheetURL for all svg instances --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 49 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 47 insertions(+), 6 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 063a5f7..7cd2965 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","svgNS","xlinkNS","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","fallbackUrl","imgUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 5b97933..1d2c3e3 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function l(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?h:n.slice(0);A.call(r,function(e,n){r[n]=e.replace("%s",t)}),l(e,r)}function a(e,t,r){r="undefined"==typeof r?h.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(A.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v="http://www.w3.org/2000/svg",g="http://www.w3.org/1999/xlink",h=["%s","svg-sprite"],y="icon",b="file:"===e.location.protocol,m=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),A=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},w={},S=0,x=[],j=[],C={},N=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},G=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},V=function(e,t){var n,r,i,l,s,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)r=E(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(g,"href").substr(1));r=E(d),l=d.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=G(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},k=function(e,t,n){j[t]=j[t]||[],j[t].push({callback:e,fragmentId:n})},M=function(e){for(var t=0,n=j[e].length;n>t;t++)!function(t){setTimeout(function(){j[e][t].callback(V(w[e],j[e][t].fragmentId))},0)}(t)},O=function(t,n){var r,i,l;if(r=t.split("#"),i=r[0],l=2===r.length?r[1]:void 0,void 0!==w[i])w[i]instanceof SVGSVGElement?n(V(w[i],l)):k(n,i,l);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;w[i]={},k(n,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),b&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||b&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)w[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;w[i]=e.documentElement}M(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},q=function(t,o,v,g){var h,y=t.getAttribute("data-src")||t.getAttribute("src"),b=y.split("#");if(!/\.svg/i.test(y))return void g("Attempted to inject a file with a non-svg extension: "+y);if(!m){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),g(null)):v?(h=b.length>1?b[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?s(t,b[1],f):r(f)?f(t,b[1]):"string"==typeof f?l(t,f):t.setAttribute("src",v+"/"+h),g(null)):g("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,b[1],f),-1===x.indexOf(t)&&(x.push(t),t.setAttribute("src",""),O(y,function(r){if("undefined"==typeof r||"string"==typeof r)return g(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var l=t.getAttribute("title");l&&r.setAttribute("title",l);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});A.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var v=t.getAttribute("preserveAspectRatio");v&&r.setAttribute("preserveAspectRatio",v);for(var h,b=r.querySelectorAll("defs clipPath[id]"),m=0,w=b.length;w>m;m++){h=b[m].id+"-"+S;for(var j=r.querySelectorAll('[clip-path*="'+b[m].id+'"]'),N=0,E=j.length;E>N;N++)j[N].setAttribute("clip-path","url(#"+h+")");b[m].id=h}for(var V,k=r.querySelectorAll("defs mask[id]"),M=0,O=k.length;O>M;M++){V=k[M].id+"-"+S;for(var q=r.querySelectorAll('[mask*="'+k[M].id+'"]'),B=0,P=q.length;P>B;B++)q[B].setAttribute("mask","url(#"+V+")");k[M].id=V}r.removeAttribute("xmlns:a");for(var R,F,I=r.querySelectorAll("script"),L=[],X=0,D=I.length;D>X;X++)F=I[X].getAttribute("type"),F&&"application/ecmascript"!==F&&"application/javascript"!==F||(R=I[X].innerText||I[X].textContent,L.push(R),r.removeChild(I[X]));if(L.length>0&&("always"===o||"once"===o&&!C[y])){for(var H=0,U=L.length;U>H;H++)new Function(L[H])(e);C[y]=!0}var $=r.querySelectorAll("style");A.call($,function(e){var t=G(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?T(e,S,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete x[x.indexOf(t)],t=null,S++,g(r)}))},B=function(e,n,r){n=n||{};var i=n.evalScripts||"always",l=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,u="undefined"==typeof n.removeStylesClass?y:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?h:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,n.forceFallbacks&&(m=!1);var s=n.each,a=t.querySelector("html");if(m){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var v="svg."+u+" {fill: currentColor;}",g=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=v:b.appendChild(t.createTextNode(v)),g.appendChild(b)}}else a.className+=" no-svg";if(void 0!==e.length){var w=0;A.call(e,function(t){q(t,i,l,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++w&&r(w)})})}else e?q(e,i,l,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=B:"function"==typeof define&&define.amd?define(function(){return B}):"object"==typeof e&&(e.SVGInjector=B)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function l(e,t,n){var r="undefined"==typeof n?w:n.slice(0);N.call(r,function(e,n){r[n]=e.replace("%s",t)}),s(e,r)}function a(e,t,r){r="undefined"==typeof r?w.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(N.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v,g="http://www.w3.org/2000/svg",h="http://www.w3.org/1999/xlink",y="sprite",b=y+"--",m=y,A=b,w=[A+"%s",m],S="icon",x="file:"===e.location.protocol,C=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),N=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},j={},E=0,T=[],G=[],V={},k=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],s=new RegExp("\\."+i+" ","g"),l=i+"-"+t;e.textContent=e.textContent.replace(s,"."+l+" "),n.setAttribute("class",n.getAttribute("class")+" "+l)}},q=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},B=function(e){var t=q(e);N.call(t,function(e){return e.indexOf(A)>=0?e.replace(A,""):void 0})},R=function(e,t){var n,r,i,s,l,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(s=n.getAttribute("viewBox"),i=s.split(" "),n instanceof SVGSymbolElement)r=O(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';l={},Math.abs(i[0])>0&&(l.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(l.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in l)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(h,"href").substr(1));r=O(d),s=d.getAttribute("viewBox"),i=s.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=q(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},L=function(e,t,n){G[t]=G[t]||[],G[t].push({callback:e,fragmentId:n})},I=function(e){for(var t=0,n=G[e].length;n>t;t++)!function(t){setTimeout(function(){G[e][t].callback(R(j[e],G[e][t].fragmentId))},0)}(t)},P=function(t,n){var r,i,s;if(r=t.split("#"),i=r[0],s=2===r.length?r[1]:void 0,void 0!==j[i])j[i]instanceof SVGSVGElement?n(R(j[i],s)):L(n,i,s);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;j[i]={},L(n,i,s);var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState){if(404===l.status||null===l.responseXML)return n("Unable to load SVG file: "+i),x&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===l.status||x&&0===l.status))return n("There was a problem injecting the SVG: "+l.status+" "+l.statusText),!1;if(l.responseXML instanceof Document)j[i]=l.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(l.responseText,"text/xml")}catch(s){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;j[i]=e.documentElement}I(i)}},l.open("GET",i),l.overrideMimeType&&l.overrideMimeType("text/xml"),l.send()}},F=function(t,o,g,h){var y;y=v===!1?t.getAttribute("data-src")||t.getAttribute("src"):v+"#"+B(t);var b,m=y.split("#");if(!/\.svg/i.test(y))return void h("Attempted to inject a file with a non-svg extension: "+y);if(!C){var A=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(A?(t.setAttribute("src",A),h(null)):g?(b=m.length>1?m[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?l(t,m[1],f):r(f)?f(t,m[1]):"string"==typeof f?s(t,f):t.setAttribute("src",g+"/"+b),h(null)):h("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,m[1],f),-1===T.indexOf(t)&&(T.push(t),t.setAttribute("src",""),P(y,function(r){if("undefined"==typeof r||"string"==typeof r)return h(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var s=t.getAttribute("title");s&&r.setAttribute("title",s);var l=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(l));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});N.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var v=t.getAttribute("preserveAspectRatio");v&&r.setAttribute("preserveAspectRatio",v);for(var g,b=r.querySelectorAll("defs clipPath[id]"),m=0,A=b.length;A>m;m++){g=b[m].id+"-"+E;for(var w=r.querySelectorAll('[clip-path*="'+b[m].id+'"]'),S=0,x=w.length;x>S;S++)w[S].setAttribute("clip-path","url(#"+g+")");b[m].id=g}for(var C,j=r.querySelectorAll("defs mask[id]"),G=0,k=j.length;k>G;G++){C=j[G].id+"-"+E;for(var O=r.querySelectorAll('[mask*="'+j[G].id+'"]'),B=0,R=O.length;R>B;B++)O[B].setAttribute("mask","url(#"+C+")");j[G].id=C}r.removeAttribute("xmlns:a");for(var L,I,P=r.querySelectorAll("script"),F=[],U=0,X=P.length;X>U;U++)I=P[U].getAttribute("type"),I&&"application/ecmascript"!==I&&"application/javascript"!==I||(L=P[U].innerText||P[U].textContent,F.push(L),r.removeChild(P[U]));if(F.length>0&&("always"===o||"once"===o&&!V[y])){for(var D=0,H=F.length;H>D;D++)new Function(F[D])(e);V[y]=!0}var $=r.querySelectorAll("style");N.call($,function(e){var t=q(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?M(e,E,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete T[T.indexOf(t)],t=null,E++,h(r)}))},U=function(e,n,r){n=n||{};var i=n.evalScripts||"always",s=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,m="undefined"==typeof n.spriteClassName?y:n.spriteClassName,A="undefined"==typeof n.spriteClassIdName?b:n.spriteClassIdName,u="undefined"==typeof n.removeStylesClass?S:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?w:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,v="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,n.forceFallbacks&&(C=!1);var l=n.each,a=t.querySelector("html");if(C){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var g="svg."+u+" {fill: currentColor;}",h=t.head||t.getElementsByTagName("head")[0],x=t.createElement("style");x.type="text/css",x.styleSheet?x.styleSheet.cssText=g:x.appendChild(t.createTextNode(g)),h.appendChild(x)}}else a.className+=" no-svg";if(void 0!==e.length){var j=0;N.call(e,function(t){F(t,i,s,function(t){l&&"function"==typeof l&&l(t),r&&e.length===++j&&r(j)})})}else e?F(e,i,s,function(t){l&&"function"==typeof l&&l(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=U:"function"==typeof define&&define.amd?define(function(){return U}):"object"==typeof e&&(e.SVGInjector=U)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 8d2cd80..1d3d5e6 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -13,14 +13,22 @@ // Constants var svgNS = 'http://www.w3.org/2000/svg'; var xlinkNS = 'http://www.w3.org/1999/xlink'; - var defaultFallbackClassNames = ['%s', 'svg-sprite']; + var defaultSpriteClassName = 'sprite'; + var defaultSpriteClassIdName = defaultSpriteClassName + '--'; + + var spriteClassName = defaultSpriteClassName; + var spriteClassIdName = defaultSpriteClassIdName; + + var defaultFallbackClassNames = [spriteClassIdName + '%s', spriteClassName]; var defaultRemoveStylesClassName = 'icon'; // Environment var isLocal = window.location.protocol === 'file:'; var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); - var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, prefixStyleTags, removeAllStyles, nonUniformARClassName; + var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, + prefixStyleTags, removeAllStyles, spritesheetURL; + @@ -172,6 +180,21 @@ return (curClassAttr) ? curClassAttr.split(' '): []; }; + var getSpriteIdFromClass = function(element) { + var classes = getClassList(element); + console.log(classes); + var id = ''; + forEach.call(classes, function (curClass) { + console.log(curClass); + if(curClass.indexOf(spriteClassIdName) >= 0) { + id = curClass.replace(spriteClassIdName, ''); + console.log('class with prefix ' + spriteClassIdName + ' found. id: ' + id); + } + }); + //console.error('no class with prefix ' + spriteClassIdName + ' found'); + return id; + }; + var cloneSvg = function (sourceSvg, fragId) { var svgElem, @@ -384,9 +407,17 @@ // Inject a single element var injectElement = function (el, evalScripts, pngFallback, callback) { + var imgUrl; + + if(spritesheetURL === false){ + // Grab the src or data-src attribute + imgUrl = el.getAttribute('data-src') || el.getAttribute('src'); + } + else{ + imgUrl = spritesheetURL + '#' + getSpriteIdFromClass(el); + console.log('imgURL: ' + imgUrl); + } - // Grab the src or data-src attribute - var imgUrl = el.getAttribute('data-src') || el.getAttribute('src'); var imgUrlSplitByFId = imgUrl.split('#'); var fallbackUrl; @@ -667,6 +698,12 @@ keepStylesClass = (typeof options.keepStylesClass === 'undefined') ? '' : options.keepStylesClass; + spriteClassName = (typeof options.spriteClassName === 'undefined') ? + defaultSpriteClassName : options.spriteClassName; + + spriteClassIdName = (typeof options.spriteClassIdName === 'undefined') ? + defaultSpriteClassIdName : options.spriteClassIdName; + removeStylesClass = (typeof options.removeStylesClass === 'undefined') ? defaultRemoveStylesClassName : options.removeStylesClass; @@ -679,6 +716,10 @@ prefixStyleTags = (typeof options.prefixStyleTags === 'undefined') ? true : options.prefixStyleTags; + spritesheetURL = (typeof options.spritesheetURL === 'undefined' || options.spritesheetURL === '') ? + false : options.spritesheetURL; + + if(options.forceFallbacks){ hasSvgSupport = false; } From 7c23f6edbc7c93bc0a7a78bd1e0bd524e07f803b Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 2 Jun 2015 09:11:44 +0200 Subject: [PATCH 035/212] optional prefix for fragIdClass assigned upon injection --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 7cd2965..33b1754 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","id","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","id","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 1d2c3e3..e37ea89 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function l(e,t,n){var r="undefined"==typeof n?w:n.slice(0);N.call(r,function(e,n){r[n]=e.replace("%s",t)}),s(e,r)}function a(e,t,r){r="undefined"==typeof r?w.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(N.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v,g="http://www.w3.org/2000/svg",h="http://www.w3.org/1999/xlink",y="sprite",b=y+"--",m=y,A=b,w=[A+"%s",m],S="icon",x="file:"===e.location.protocol,C=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),N=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},j={},E=0,T=[],G=[],V={},k=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],s=new RegExp("\\."+i+" ","g"),l=i+"-"+t;e.textContent=e.textContent.replace(s,"."+l+" "),n.setAttribute("class",n.getAttribute("class")+" "+l)}},q=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},B=function(e){var t=q(e);N.call(t,function(e){return e.indexOf(A)>=0?e.replace(A,""):void 0})},R=function(e,t){var n,r,i,s,l,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(s=n.getAttribute("viewBox"),i=s.split(" "),n instanceof SVGSymbolElement)r=O(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';l={},Math.abs(i[0])>0&&(l.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(l.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in l)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(h,"href").substr(1));r=O(d),s=d.getAttribute("viewBox"),i=s.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}return u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=q(r),a.indexOf(t)<0&&(a.push(t),r.setAttribute("class",a.join(" "))),r}},L=function(e,t,n){G[t]=G[t]||[],G[t].push({callback:e,fragmentId:n})},I=function(e){for(var t=0,n=G[e].length;n>t;t++)!function(t){setTimeout(function(){G[e][t].callback(R(j[e],G[e][t].fragmentId))},0)}(t)},P=function(t,n){var r,i,s;if(r=t.split("#"),i=r[0],s=2===r.length?r[1]:void 0,void 0!==j[i])j[i]instanceof SVGSVGElement?n(R(j[i],s)):L(n,i,s);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;j[i]={},L(n,i,s);var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState){if(404===l.status||null===l.responseXML)return n("Unable to load SVG file: "+i),x&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===l.status||x&&0===l.status))return n("There was a problem injecting the SVG: "+l.status+" "+l.statusText),!1;if(l.responseXML instanceof Document)j[i]=l.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(l.responseText,"text/xml")}catch(s){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;j[i]=e.documentElement}I(i)}},l.open("GET",i),l.overrideMimeType&&l.overrideMimeType("text/xml"),l.send()}},F=function(t,o,g,h){var y;y=v===!1?t.getAttribute("data-src")||t.getAttribute("src"):v+"#"+B(t);var b,m=y.split("#");if(!/\.svg/i.test(y))return void h("Attempted to inject a file with a non-svg extension: "+y);if(!C){var A=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(A?(t.setAttribute("src",A),h(null)):g?(b=m.length>1?m[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?l(t,m[1],f):r(f)?f(t,m[1]):"string"==typeof f?s(t,f):t.setAttribute("src",g+"/"+b),h(null)):h("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,m[1],f),-1===T.indexOf(t)&&(T.push(t),t.setAttribute("src",""),P(y,function(r){if("undefined"==typeof r||"string"==typeof r)return h(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var s=t.getAttribute("title");s&&r.setAttribute("title",s);var l=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(l));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});N.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var v=t.getAttribute("preserveAspectRatio");v&&r.setAttribute("preserveAspectRatio",v);for(var g,b=r.querySelectorAll("defs clipPath[id]"),m=0,A=b.length;A>m;m++){g=b[m].id+"-"+E;for(var w=r.querySelectorAll('[clip-path*="'+b[m].id+'"]'),S=0,x=w.length;x>S;S++)w[S].setAttribute("clip-path","url(#"+g+")");b[m].id=g}for(var C,j=r.querySelectorAll("defs mask[id]"),G=0,k=j.length;k>G;G++){C=j[G].id+"-"+E;for(var O=r.querySelectorAll('[mask*="'+j[G].id+'"]'),B=0,R=O.length;R>B;B++)O[B].setAttribute("mask","url(#"+C+")");j[G].id=C}r.removeAttribute("xmlns:a");for(var L,I,P=r.querySelectorAll("script"),F=[],U=0,X=P.length;X>U;U++)I=P[U].getAttribute("type"),I&&"application/ecmascript"!==I&&"application/javascript"!==I||(L=P[U].innerText||P[U].textContent,F.push(L),r.removeChild(P[U]));if(F.length>0&&("always"===o||"once"===o&&!V[y])){for(var D=0,H=F.length;H>D;D++)new Function(F[D])(e);V[y]=!0}var $=r.querySelectorAll("style");N.call($,function(e){var t=q(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?M(e,E,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete T[T.indexOf(t)],t=null,E++,h(r)}))},U=function(e,n,r){n=n||{};var i=n.evalScripts||"always",s=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,m="undefined"==typeof n.spriteClassName?y:n.spriteClassName,A="undefined"==typeof n.spriteClassIdName?b:n.spriteClassIdName,u="undefined"==typeof n.removeStylesClass?S:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?w:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,v="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,n.forceFallbacks&&(C=!1);var l=n.each,a=t.querySelector("html");if(C){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var g="svg."+u+" {fill: currentColor;}",h=t.head||t.getElementsByTagName("head")[0],x=t.createElement("style");x.type="text/css",x.styleSheet?x.styleSheet.cssText=g:x.appendChild(t.createTextNode(g)),h.appendChild(x)}}else a.className+=" no-svg";if(void 0!==e.length){var j=0;N.call(e,function(t){F(t,i,s,function(t){l&&"function"==typeof l&&l(t),r&&e.length===++j&&r(j)})})}else e?F(e,i,s,function(t){l&&"function"==typeof l&&l(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=U:"function"==typeof define&&define.amd?define(function(){return U}):"object"==typeof e&&(e.SVGInjector=U)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function l(e,t,n){var r="undefined"==typeof n?S:n.slice(0);j.call(r,function(e,n){r[n]=e.replace("%s",t)}),s(e,r)}function a(e,t,r){r="undefined"==typeof r?S.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(j.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v,g,h="http://www.w3.org/2000/svg",y="http://www.w3.org/1999/xlink",b="sprite",m=b+"--",A=b,w=m,S=[w+"%s",A],x="icon",C="file:"===e.location.protocol,N=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),j=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},E={},T=0,G=[],V=[],k={},O=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],s=new RegExp("\\."+i+" ","g"),l=i+"-"+t;e.textContent=e.textContent.replace(s,"."+l+" "),n.setAttribute("class",n.getAttribute("class")+" "+l)}},B=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},R=function(e){var t=B(e),n="";return j.call(t,function(e){e.indexOf(w)>=0&&(n=e.replace(w,""))}),n},L=function(e,t){var n,r,i,s,l,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(s=n.getAttribute("viewBox"),i=s.split(" "),n instanceof SVGSymbolElement)r=M(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';l={},Math.abs(i[0])>0&&(l.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(l.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in l)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(y,"href").substr(1));r=M(d),s=d.getAttribute("viewBox"),i=s.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=B(r);var v=g+t;return a.indexOf(v)<0&&(a.push(v),r.setAttribute("class",a.join(" "))),r}},I=function(e,t,n){V[t]=V[t]||[],V[t].push({callback:e,fragmentId:n})},P=function(e){for(var t=0,n=V[e].length;n>t;t++)!function(t){setTimeout(function(){V[e][t].callback(L(E[e],V[e][t].fragmentId))},0)}(t)},F=function(t,n){var r,i,s;if(r=t.split("#"),i=r[0],s=2===r.length?r[1]:void 0,void 0!==E[i])E[i]instanceof SVGSVGElement?n(L(E[i],s)):I(n,i,s);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;E[i]={},I(n,i,s);var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState){if(404===l.status||null===l.responseXML)return n("Unable to load SVG file: "+i),C&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===l.status||C&&0===l.status))return n("There was a problem injecting the SVG: "+l.status+" "+l.statusText),!1;if(l.responseXML instanceof Document)E[i]=l.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(l.responseText,"text/xml")}catch(s){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;E[i]=e.documentElement}P(i)}},l.open("GET",i),l.overrideMimeType&&l.overrideMimeType("text/xml"),l.send()}},U=function(t,o,g,h){var y;v===!1?y=t.getAttribute("data-src")||t.getAttribute("src"):(y=v+"#"+R(t),t.setAttribute("data-src",y));var b,m=y.split("#");if(!/\.svg/i.test(y))return void h("Attempted to inject a file with a non-svg extension: "+y);if(!N){var A=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(A?(t.setAttribute("src",A),h(null)):g?(b=m.length>1?m[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?l(t,m[1],f):r(f)?f(t,m[1]):"string"==typeof f?s(t,f):t.setAttribute("src",g+"/"+b),h(null)):h("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,m[1],f),-1===G.indexOf(t)&&(G.push(t),t.setAttribute("src",""),F(y,function(r){if("undefined"==typeof r||"string"==typeof r)return h(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var s=t.getAttribute("title");s&&r.setAttribute("title",s);var l=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(l));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});j.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var v=t.getAttribute("preserveAspectRatio");v&&r.setAttribute("preserveAspectRatio",v);for(var g,b=r.querySelectorAll("defs clipPath[id]"),m=0,A=b.length;A>m;m++){g=b[m].id+"-"+T;for(var w=r.querySelectorAll('[clip-path*="'+b[m].id+'"]'),S=0,x=w.length;x>S;S++)w[S].setAttribute("clip-path","url(#"+g+")");b[m].id=g}for(var C,N=r.querySelectorAll("defs mask[id]"),E=0,V=N.length;V>E;E++){C=N[E].id+"-"+T;for(var O=r.querySelectorAll('[mask*="'+N[E].id+'"]'),M=0,R=O.length;R>M;M++)O[M].setAttribute("mask","url(#"+C+")");N[E].id=C}r.removeAttribute("xmlns:a");for(var L,I,P=r.querySelectorAll("script"),F=[],U=0,X=P.length;X>U;U++)I=P[U].getAttribute("type"),I&&"application/ecmascript"!==I&&"application/javascript"!==I||(L=P[U].innerText||P[U].textContent,F.push(L),r.removeChild(P[U]));if(F.length>0&&("always"===o||"once"===o&&!k[y])){for(var D=0,H=F.length;H>D;D++)new Function(F[D])(e);k[y]=!0}var $=r.querySelectorAll("style");j.call($,function(e){var t=B(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?q(e,T,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete G[G.indexOf(t)],t=null,T++,h(r)}))},X=function(e,n,r){n=n||{};var i=n.evalScripts||"always",s=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,A="undefined"==typeof n.spriteClassName?b:n.spriteClassName,w="undefined"==typeof n.spriteClassIdName?m:n.spriteClassIdName,u="undefined"==typeof n.removeStylesClass?x:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?S:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,v="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,g=w,n.forceFallbacks&&(N=!1);var l=n.each,a=t.querySelector("html");if(N){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var h="svg."+u+" {fill: currentColor;}",y=t.head||t.getElementsByTagName("head")[0],C=t.createElement("style");C.type="text/css",C.styleSheet?C.styleSheet.cssText=h:C.appendChild(t.createTextNode(h)),y.appendChild(C)}}else a.className+=" no-svg";if(void 0!==e.length){var E=0;j.call(e,function(t){U(t,i,s,function(t){l&&"function"==typeof l&&l(t),r&&e.length===++E&&r(E)})})}else e?U(e,i,s,function(t){l&&"function"==typeof l&&l(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=X:"function"==typeof define&&define.amd?define(function(){return X}):"object"==typeof e&&(e.SVGInjector=X)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 1d3d5e6..a753274 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -27,7 +27,7 @@ var isLocal = window.location.protocol === 'file:'; var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, - prefixStyleTags, removeAllStyles, spritesheetURL; + prefixStyleTags, removeAllStyles, spritesheetURL, prefixFragIdClass; @@ -195,7 +195,7 @@ return id; }; - var cloneSvg = function (sourceSvg, fragId) { + var cloneSvg = function(sourceSvg, fragId) { var svgElem, newSVG, @@ -278,8 +278,9 @@ //curClassAttr = newSVG.getAttribute('class'); curClassList = getClassList(newSVG); - if (curClassList.indexOf(fragId)<0) { - curClassList.push(fragId); + var fragIdClassName = prefixFragIdClass + fragId; + if (curClassList.indexOf(fragIdClassName)<0) { + curClassList.push(fragIdClassName); newSVG.setAttribute('class', curClassList.join(' ')); } return newSVG; @@ -416,6 +417,7 @@ else{ imgUrl = spritesheetURL + '#' + getSpriteIdFromClass(el); console.log('imgURL: ' + imgUrl); + el.setAttribute('data-src', imgUrl); } var imgUrlSplitByFId = imgUrl.split('#'); @@ -719,6 +721,8 @@ spritesheetURL = (typeof options.spritesheetURL === 'undefined' || options.spritesheetURL === '') ? false : options.spritesheetURL; + prefixFragIdClass = spriteClassIdName; + if(options.forceFallbacks){ hasSvgSupport = false; From d68f27f82854092da2ee0291e8c77383e098a9be Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 2 Jun 2015 09:26:09 +0200 Subject: [PATCH 036/212] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 83be98a..dc6c60e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector", "description": "Fast, caching, dynamic inline SVG DOM injection library", - "version": "1.1.3-RC", + "version": "1.2.0", "author": { "name": "Iconic", "email": "yourfriends@useiconic.com", From 15e175418b29f4f6aa15b2bdb1119558309baa25 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 8 Jun 2015 19:53:19 +0200 Subject: [PATCH 037/212] prefix all attributes that reference an id from defs --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 4 ++-- svg-injector.js | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 33b1754..0cff41f 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","svg","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","id","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","querySelectorAll","g","clipPathsLen","usingClipPath","h","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","toCamelCase","str","replace","match","p1","p2","offset","toUpperCase","toLowerCase","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","attributes","attribute","attrs","newName","curAttrCamel","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","clipPathsLen","usingClipPath","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index e37ea89..0583ce1 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -1,9 +1,9 @@ /** - * SVGInjector v1.1.3-RC - Fast, caching, dynamic inline SVG DOM injection library + * SVGInjector v1.2.1 - Fast, caching, dynamic inline SVG DOM injection library * https://github.com/iconic/SVGInjector * * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function l(e,t,n){var r="undefined"==typeof n?S:n.slice(0);j.call(r,function(e,n){r[n]=e.replace("%s",t)}),s(e,r)}function a(e,t,r){r="undefined"==typeof r?S.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(j.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}var o,u,c,f,p,d,v,g,h="http://www.w3.org/2000/svg",y="http://www.w3.org/1999/xlink",b="sprite",m=b+"--",A=b,w=m,S=[w+"%s",A],x="icon",C="file:"===e.location.protocol,N=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),j=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},E={},T=0,G=[],V=[],k={},O=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],s=new RegExp("\\."+i+" ","g"),l=i+"-"+t;e.textContent=e.textContent.replace(s,"."+l+" "),n.setAttribute("class",n.getAttribute("class")+" "+l)}},B=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},R=function(e){var t=B(e),n="";return j.call(t,function(e){e.indexOf(w)>=0&&(n=e.replace(w,""))}),n},L=function(e,t){var n,r,i,s,l,a,u=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(s=n.getAttribute("viewBox"),i=s.split(" "),n instanceof SVGSymbolElement)r=M(n),u=!0;else if(n instanceof SVGViewElement){if(c=null,o){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';l={},Math.abs(i[0])>0&&(l.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(l.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in l)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(y,"href").substr(1));r=M(d),s=d.getAttribute("viewBox"),i=s.split(" "),u=!0}else u=!0,r=e.cloneNode(!0)}u&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),a=B(r);var v=g+t;return a.indexOf(v)<0&&(a.push(v),r.setAttribute("class",a.join(" "))),r}},I=function(e,t,n){V[t]=V[t]||[],V[t].push({callback:e,fragmentId:n})},P=function(e){for(var t=0,n=V[e].length;n>t;t++)!function(t){setTimeout(function(){V[e][t].callback(L(E[e],V[e][t].fragmentId))},0)}(t)},F=function(t,n){var r,i,s;if(r=t.split("#"),i=r[0],s=2===r.length?r[1]:void 0,void 0!==E[i])E[i]instanceof SVGSVGElement?n(L(E[i],s)):I(n,i,s);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;E[i]={},I(n,i,s);var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState){if(404===l.status||null===l.responseXML)return n("Unable to load SVG file: "+i),C&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===l.status||C&&0===l.status))return n("There was a problem injecting the SVG: "+l.status+" "+l.statusText),!1;if(l.responseXML instanceof Document)E[i]=l.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(l.responseText,"text/xml")}catch(s){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;E[i]=e.documentElement}P(i)}},l.open("GET",i),l.overrideMimeType&&l.overrideMimeType("text/xml"),l.send()}},U=function(t,o,g,h){var y;v===!1?y=t.getAttribute("data-src")||t.getAttribute("src"):(y=v+"#"+R(t),t.setAttribute("data-src",y));var b,m=y.split("#");if(!/\.svg/i.test(y))return void h("Attempted to inject a file with a non-svg extension: "+y);if(!N){var A=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(A?(t.setAttribute("src",A),h(null)):g?(b=m.length>1?m[1]+".png":y.split("/").pop().replace(".svg",".png"),i(f)?l(t,m[1],f):r(f)?f(t,m[1]):"string"==typeof f?s(t,f):t.setAttribute("src",g+"/"+b),h(null)):h("This browser does not support SVG and no PNG fallback was defined."))}i(f)&&a(t,m[1],f),-1===G.indexOf(t)&&(G.push(t),t.setAttribute("src",""),F(y,function(r){if("undefined"==typeof r||"string"==typeof r)return h(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var s=t.getAttribute("title");s&&r.setAttribute("title",s);var l=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(l));var a=t.getAttribute("style");a&&r.setAttribute("style",a);var f=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});j.call(f,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var v=t.getAttribute("preserveAspectRatio");v&&r.setAttribute("preserveAspectRatio",v);for(var g,b=r.querySelectorAll("defs clipPath[id]"),m=0,A=b.length;A>m;m++){g=b[m].id+"-"+T;for(var w=r.querySelectorAll('[clip-path*="'+b[m].id+'"]'),S=0,x=w.length;x>S;S++)w[S].setAttribute("clip-path","url(#"+g+")");b[m].id=g}for(var C,N=r.querySelectorAll("defs mask[id]"),E=0,V=N.length;V>E;E++){C=N[E].id+"-"+T;for(var O=r.querySelectorAll('[mask*="'+N[E].id+'"]'),M=0,R=O.length;R>M;M++)O[M].setAttribute("mask","url(#"+C+")");N[E].id=C}r.removeAttribute("xmlns:a");for(var L,I,P=r.querySelectorAll("script"),F=[],U=0,X=P.length;X>U;U++)I=P[U].getAttribute("type"),I&&"application/ecmascript"!==I&&"application/javascript"!==I||(L=P[U].innerText||P[U].textContent,F.push(L),r.removeChild(P[U]));if(F.length>0&&("always"===o||"once"===o&&!k[y])){for(var D=0,H=F.length;H>D;D++)new Function(F[D])(e);k[y]=!0}var $=r.querySelectorAll("style");j.call($,function(e){var t=B(r);(t.indexOf(u)>=0||d)&&t.indexOf(c)<0?e.parentNode.removeChild(e):p?q(e,T,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete G[G.indexOf(t)],t=null,T++,h(r)}))},X=function(e,n,r){n=n||{};var i=n.evalScripts||"always",s=n.pngFallback||!1;o=n.onlyInjectVisiblePart||!0,c="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,A="undefined"==typeof n.spriteClassName?b:n.spriteClassName,w="undefined"==typeof n.spriteClassIdName?m:n.spriteClassIdName,u="undefined"==typeof n.removeStylesClass?x:n.removeStylesClass,d="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,f="undefined"==typeof n.fallbackClassName?S:n.fallbackClassName,p="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,v="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,g=w,n.forceFallbacks&&(N=!1);var l=n.each,a=t.querySelector("html");if(N){if(a.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var h="svg."+u+" {fill: currentColor;}",y=t.head||t.getElementsByTagName("head")[0],C=t.createElement("style");C.type="text/css",C.styleSheet?C.styleSheet.cssText=h:C.appendChild(t.createTextNode(h)),y.appendChild(C)}}else a.className+=" no-svg";if(void 0!==e.length){var E=0;j.call(e,function(t){U(t,i,s,function(t){l&&"function"==typeof l&&l(t),r&&e.length===++E&&r(E)})})}else e?U(e,i,s,function(t){l&&"function"==typeof l&&l(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=X:"function"==typeof define&&define.amd?define(function(){return X}):"object"==typeof e&&(e.SVGInjector=X)}(window,document); +!function(e,t){"use strict";function r(e){return e.replace(/^([A-Z])|[-_](\w)/g,function(e,t,r,n){return r?r.toUpperCase():t.toLowerCase()})}function n(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")}function i(e){return!!(e&&e.constructor&&e.call&&e.apply)}function l(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e,t){var r=e.getAttribute("class");r=r?r:"",l(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function a(e,t,r){var n="undefined"==typeof r?C:r.slice(0);T.call(n,function(e,r){n[r]=e.replace("%s",t)}),s(e,n)}function o(e,t,r){r="undefined"==typeof r?C.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(T.call(r,function(e,r){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}function u(e,t){var n=["fill","clip-path","mask","filter"];T.call(n,function(n,i,l){for(var s,a=r(n),o=e.querySelectorAll(a+"[id]"),u=0,c=o.length;c>u;u++){s=o[u].id+"-"+t;for(var f=e.querySelectorAll("["+n+'*="'+o[u].id+'"]'),p=0,d=f.length;d>p;p++)f[p].setAttribute(n,"url(#"+s+")");o[u].id=s}})}var c,f,p,d,v,g,h,y,b="http://www.w3.org/2000/svg",m="http://www.w3.org/1999/xlink",A="sprite",w=A+"--",S=A,x=w,C=[x+"%s",S],N="icon",j="file:"===e.location.protocol,E=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),T=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},k={},G=0,V=[],O=[],q={},M=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var i=0;i1){var i=n[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),r.setAttribute("class",r.getAttribute("class")+" "+s)}},R=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},I=function(e){var t=R(e),r="";return T.call(t,function(e){e.indexOf(x)>=0&&(r=e.replace(x,""))}),r},P=function(e,t){var r,n,i,l,s,a,o=!1,u=null;if(void 0===t)return e.cloneNode(!0);if(r=e.getElementById(t)){if(l=r.getAttribute("viewBox"),i=l.split(" "),r instanceof SVGSymbolElement)n=B(r),o=!0;else if(r instanceof SVGViewElement){if(u=null,c){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),u=e.querySelector(f)}if(u&&u instanceof SVGSVGElement){n=u.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&n.removeAttribute(p)}else if(u&&u instanceof SVGUseElement){var d=e.getElementById(u.getAttributeNS(m,"href").substr(1));n=B(d),l=d.getAttribute("viewBox"),i=l.split(" "),o=!0}else o=!0,n=e.cloneNode(!0)}o&&(n.setAttribute("viewBox",i.join(" ")),n.setAttribute("width",i[2]+"px"),n.setAttribute("height",i[3]+"px")),a=R(n);var v=y+t;return a.indexOf(v)<0&&(a.push(v),n.setAttribute("class",a.join(" "))),n}},U=function(e,t,r){O[t]=O[t]||[],O[t].push({callback:e,fragmentId:r})},F=function(e){for(var t=0,r=O[e].length;r>t;t++)!function(t){setTimeout(function(){O[e][t].callback(P(k[e],O[e][t].fragmentId))},0)}(t)},X=function(t,r){var n,i,l;if(n=t.split("#"),i=n[0],l=2===n.length?n[1]:void 0,void 0!==k[i])k[i]instanceof SVGSVGElement?r(P(k[i],l)):U(r,i,l);else{if(!e.XMLHttpRequest)return r("Browser does not support XMLHttpRequest"),!1;k[i]={},U(r,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return r("Unable to load SVG file: "+i),j&&r("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),r(),!1;if(!(200===s.status||j&&0===s.status))return r("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)k[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var n=new DOMParser;e=n.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return r("Unable to parse SVG file: "+t),!1;k[i]=e.documentElement}F(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},D=function(t,r,c,y){var b;h===!1?b=t.getAttribute("data-src")||t.getAttribute("src"):(b=h+"#"+I(t),t.setAttribute("data-src",b));var m,A=b.split("#");if(!/\.svg/i.test(b))return void y("Attempted to inject a file with a non-svg extension: "+b);if(!E){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),y(null)):c?(m=A.length>1?A[1]+".png":b.split("/").pop().replace(".svg",".png"),l(d)?a(t,A[1],d):i(d)?d(t,A[1]):"string"==typeof d?s(t,d):t.setAttribute("src",c+"/"+m),y(null)):y("This browser does not support SVG and no PNG fallback was defined."))}l(d)&&o(t,A[1],d),-1===V.indexOf(t)&&(V.push(t),t.setAttribute("src",""),X(b,function(i){if("undefined"==typeof i||"string"==typeof i)return y(i),!1;var l=t.getAttribute("id");l&&i.setAttribute("id",l);var s=t.getAttribute("title");s&&i.setAttribute("title",s);var a=[].concat(i.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");i.setAttribute("class",n(a));var o=t.getAttribute("style");o&&i.setAttribute("style",o);var c=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});T.call(c,function(e){e.name&&e.value&&i.setAttribute(e.name,e.value)});var d=t.getAttribute("preserveAspectRatio");d&&i.setAttribute("preserveAspectRatio",d);for(var h,m=i.querySelectorAll("defs clipPath[id]"),A=0,w=m.length;w>A;A++){h=m[A].id+"-"+G;for(var S=i.querySelectorAll('[clip-path*="'+m[A].id+'"]'),x=0,C=S.length;C>x;x++)S[x].setAttribute("clip-path","url(#"+h+")");m[A].id=h}for(var N,j=i.querySelectorAll("defs mask[id]"),E=0,k=j.length;k>E;E++){N=j[E].id+"-"+G;for(var O=i.querySelectorAll('[mask*="'+j[E].id+'"]'),M=0,B=O.length;B>M;M++)O[M].setAttribute("mask","url(#"+N+")");j[E].id=N}u(i,G),i.removeAttribute("xmlns:a");for(var I,P,U=i.querySelectorAll("script"),F=[],X=0,D=U.length;D>X;X++)P=U[X].getAttribute("type"),P&&"application/ecmascript"!==P&&"application/javascript"!==P||(I=U[X].innerText||U[X].textContent,F.push(I),i.removeChild(U[X]));if(F.length>0&&("always"===r||"once"===r&&!q[b])){for(var H=0,Z=F.length;Z>H;H++)new Function(F[H])(e);q[b]=!0}var $=i.querySelectorAll("style");T.call($,function(e){var t=R(i);(t.indexOf(f)>=0||g)&&t.indexOf(p)<0?e.parentNode.removeChild(e):v?L(e,G,i):e.textContent+=""}),t.parentNode.replaceChild(i,t),delete V[V.indexOf(t)],t=null,G++,y(i)}))},H=function(e,r,n){r=r||{};var i=r.evalScripts||"always",l=r.pngFallback||!1;c=r.onlyInjectVisiblePart||!0,p="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,S="undefined"==typeof r.spriteClassName?A:r.spriteClassName,x="undefined"==typeof r.spriteClassIdName?w:r.spriteClassIdName,f="undefined"==typeof r.removeStylesClass?N:r.removeStylesClass,g="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,d="undefined"==typeof r.fallbackClassName?C:r.fallbackClassName,v="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,h="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,y=x,r.forceFallbacks&&(E=!1);var s=r.each,a=t.querySelector("html");if(E){if(a.className.replace("no-svg",""),"undefined"==typeof r.removeStylesClass){var o="svg."+f+" {fill: currentColor;}",u=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=o:b.appendChild(t.createTextNode(o)),u.appendChild(b)}}else a.className+=" no-svg";if(void 0!==e.length){var m=0;T.call(e,function(t){D(t,i,l,function(t){s&&"function"==typeof s&&s(t),n&&e.length===++m&&n(m)})})}else e?D(e,i,l,function(t){s&&"function"==typeof s&&s(t),n&&n(1),e=null}):n&&n(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=H:"function"==typeof define&&define.amd?define(function(){return H}):"object"==typeof e&&(e.SVGInjector=H)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index a753274..2d9b473 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -1,5 +1,5 @@ /** - * SVGInjector v1.1.3-RC - Fast, caching, dynamic inline SVG DOM injection library + * SVGInjector v1.2.1 - Fast, caching, dynamic inline SVG DOM injection library * https://github.com/iconic/SVGInjector * * Copyright (c) 2014 Waybury @@ -30,6 +30,12 @@ prefixStyleTags, removeAllStyles, spritesheetURL, prefixFragIdClass; + function toCamelCase(str) { + return str.replace(/^([A-Z])|[-_](\w)/g, function(match, p1, p2, offset) { + if (p2) return p2.toUpperCase(); + return p1.toLowerCase(); + }); + } function uniqueClasses(list) { @@ -126,6 +132,29 @@ } + function prefixIdReferences(svg, suffix) { + var attributes = ['fill', 'clip-path', 'mask', 'filter']; + // toCamelCase + + forEach.call(attributes, function(attribute, idx, attrs) { + var curAttrCamel = toCamelCase(attribute); + console.log(curAttrCamel); + var definitions = svg.querySelectorAll(curAttrCamel + '[id]'); + var newName; + for (var g = 0, defLen = definitions.length; g < defLen; g++) { + newName = definitions[g].id + '-' + suffix; + // :NOTE: using a substring match attr selector here to deal with IE "adding extra quotes in url() attrs" + var usingElements = svg.querySelectorAll('['+attribute+'*="' + definitions[g].id + '"]'); + for (var h = 0, usingElementsLen = usingElements.length; h < usingElementsLen; h++) { + usingElements[h].setAttribute(attribute, 'url(#' + newName + ')'); + } + definitions[g].id = newName; + } + }); + + } + + // SVG Cache var svgCache = {}; @@ -573,6 +602,9 @@ masks[i].id = newMaskName; } + prefixIdReferences(svg, injectCount); + + // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools svg.removeAttribute('xmlns:a'); From 2b31cb75295982b4ae6864db25adabc86e7063e8 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 9 Jun 2015 08:47:45 +0200 Subject: [PATCH 038/212] unify id-prefixing --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 28 +++++++++++++++++++--------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 0cff41f..7572bd7 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","toCamelCase","str","replace","match","p1","p2","offset","toUpperCase","toLowerCase","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","attributes","attribute","attrs","newName","curAttrCamel","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","newClipPathName","clipPaths","clipPathsLen","usingClipPath","usingClipPathLen","newMaskName","masks","masksLen","usingMask","j","usingMaskLen","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":";;;;;;;CAQC,SAAUA,EAAQC,GAEjB,YAsBA,SAASC,GAAYC,GACnB,MAAOA,GAAIC,QAAQ,qBAAsB,SAASC,EAAOC,EAAIC,EAAIC,GAC/D,MAAID,GAAWA,EAAGE,cACXH,EAAGI,gBAKd,QAASC,GAAcC,GACrBA,EAAOA,EAAKC,MAAM,IAMlB,KAJA,GAAIC,MACAC,EAAIH,EAAKI,OACTC,KAEGF,KACAD,EAAKI,eAAeN,EAAKG,MAC5BD,EAAKF,EAAKG,IAAM,EAChBE,EAAIE,QAAQP,EAAKG,IAGrB,OAAOE,GAAIG,KAAK,KAGlB,QAASC,GAAWC,GAClB,SAAUA,GAAOA,EAAIC,aAAeD,EAAIE,MAAQF,EAAIG,OAGtD,QAASC,GAAQJ,GACf,MAA+C,mBAAxCK,OAAOC,UAAUC,SAASL,KAAKF,GAGxC,QAASQ,GAAoBC,EAAIC,GAC/B,GAAIC,GAAaF,EAAGG,aAAa,QACjCD,GAAaA,EAAaA,EAAa,GAEpCP,EAAQM,KACTA,EAAgBA,EAAcZ,KAAK,MAGrCY,EAAgBC,EAAa,IAAMD,EAEnCD,EAAGI,aAAa,QAASxB,EAAcqB,IAuBzC,QAASI,GAAsBC,EAASC,EAAUC,GAChD,GAAIC,GAAoC,mBAAfD,GAA8BE,EAA4BF,EAAWG,MAAM,EAGpGC,GAAQnB,KACNgB,EACA,SAASI,EAAcC,GACrBL,EAAUK,GAAOD,EAAaxC,QAAQ,KAAMkC,KAIhDR,EAAoBO,EAASG,GAG/B,QAASM,GAAyBT,EAASC,EAAUS,GACnDA,EAAqD,mBAAvBA,GAAsCN,EAA0BC,MAAM,GAAKK,EAAmBL,MAAM,EAElI,IAAIM,GAAgBX,EAAQH,aAAa,QACtCc,KAEDL,EAAQnB,KACNuB,EACA,SAASH,EAAcC,GACrBD,EAAeA,EAAaxC,QAAQ,KAAMkC,GACtCU,EAAcC,QAAQL,IAAiB,IAEzCI,EAAgBA,EAAc5C,QAAQwC,EAAc,OAM1DP,EAAQF,aAAa,QAASxB,EAAcqC,KAKhD,QAASE,GAAmBC,EAAKC,GAC/B,GAAIC,IAAc,OAAQ,YAAa,OAAQ,SAG/CV,GAAQnB,KAAK6B,EAAY,SAASC,EAAWT,EAAKU,GAKhD,IAAK,GADDC,GAHAC,EAAevD,EAAYoD,GAE3BI,EAAcP,EAAIQ,iBAAiBF,EAAe,QAE7CG,EAAI,EAAGC,EAASH,EAAY1C,OAAY6C,EAAJD,EAAYA,IAAK,CAC5DJ,EAAUE,EAAYE,GAAGE,GAAK,IAAMV,CAGpC,KAAK,GADDW,GAAgBZ,EAAIQ,iBAAiB,IAAIL,EAAU,MAAQI,EAAYE,GAAGE,GAAK,MAC1EE,EAAI,EAAGC,EAAmBF,EAAc/C,OAAYiD,EAAJD,EAAsBA,IAC7ED,EAAcC,GAAG7B,aAAamB,EAAW,QAAUE,EAAU,IAE/DE,GAAYE,GAAGE,GAAKN,KAzI1B,GAeIU,GAAuBC,EAAmBC,EAAiBC,EAC3DC,EAAiBC,EAAiBC,EAAgBC,EAhBlDC,EAAQ,6BACRC,EAAU,+BACVC,EAAyB,SACzBC,EAA2BD,EAAyB,KAEpDE,EAAkBF,EAClBG,EAAoBF,EAEpBpC,GAA6BsC,EAAoB,KAAMD,GACvDE,EAA+B,OAI/BC,EAAuC,UAA7BjF,EAAOkF,SAASC,SAC1BC,EAAgBnF,EAASoF,eAAeC,WAAW,oDAAqD,OAsDxG3C,EAAU4C,MAAM3D,UAAUe,SAAW,SAAU6C,EAAIC,GACrD,GAAa,SAATC,MAA4B,OAATA,MAA+B,kBAAPF,GAC7C,KAAM,IAAIG,UAIZ,IAAI5E,GAAG6E,EAAMF,KAAK1E,SAAW,CAG7B,KAAKD,EAAI,EAAO6E,EAAJ7E,IAAWA,EACjBA,IAAK2E,OACPF,EAAGhE,KAAKiE,EAAOC,KAAK3E,GAAIA,EAAG2E,OAmE7BG,KAEAC,EAAc,EACdC,KAGAC,KAGAC,KAEAC,EAAiB,SAAUC,EAAeC,EAAeC,GAC3D,GAAIC,EAC8B,oBAAvBD,KAAsCA,GAAsB,KAAM,WAE7E,KAAI,GAAItF,GAAE,EAAGA,EAAEoF,EAAc9C,WAAWrC,OAAQD,IAC9CuF,EAAUH,EAAc9C,WAAWkD,KAAKxF,GACpCsF,EAAmBpD,QAAQqD,EAAQE,MAAQ,GAC7CJ,EAAcjE,aAAamE,EAAQE,KAAMF,EAAQG,QAKnDC,EAAmB,SAASC,GAC9B,GAAIxD,GAAMlD,EAAS2G,gBAAgBlC,EAAO,MAO1C,OANA/B,GAAQnB,KAAKmF,EAAUE,WAAY,SAASC,GAE1C3D,EAAI4D,YAAYD,EAAME,WAAU,MAGlCd,EAAeS,EAAWxD,GACnBA,GAGL8D,EAAoB,SAASC,EAAUpB,EAAa3C,GACtD,GAAIgE,GAAShE,EAAIjB,aAAa,YAAYrB,MAAM,IAChD,IAAGsG,EAAOnG,OAAS,EAAG,CAEpB,GAAIoG,GAAsBD,EAAO,GAC7BE,EAAQ,GAAIC,QAAO,MAAQF,EAAsB,IAAK,KACtDG,EAAqBH,EAAsB,IAAMtB,CAErDoB,GAASM,YAAcN,EAASM,YAAYpH,QAAQiH,EAAO,IAAME,EAAqB,KACtFpE,EAAIhB,aAAa,QAAUgB,EAAIjB,aAAa,SAAW,IAAMqF,KAI7DE,EAAe,SAASC,GAC1B,GAAIC,GAAeD,EAAWxF,aAAa,QAC3C,OAAO,GAAiByF,EAAa9G,MAAM,SAGzC+G,EAAuB,SAASvF,GAClC,GAAIwF,GAAUJ,EAAapF,GAEvByB,EAAK,EAST,OARAnB,GAAQnB,KAAKqG,EAAS,SAAUC,GAE3BA,EAAS7E,QAAQ8B,IAAsB,IACxCjB,EAAKgE,EAAS1H,QAAQ2E,EAAmB,OAKtCjB,GAGLiE,EAAW,SAASC,EAAWC,GAEjC,GAAIC,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAqB,EACrBC,EAAa,IAEjB,IAAcC,SAAXT,EACD,MAAOD,GAAUhB,WAAU,EAI3B,IADAkB,EAAUF,EAAUW,eAAeV,GACnC,CAQA,GAHAI,EAAcH,EAAQhG,aAAa,WACnCkG,EAAUC,EAAYxH,MAAM,KAExBqH,YAAmBU,kBAErBT,EAASzB,EAAiBwB,GAC1BM,GAAqB,MAGlB,IAAIN,YAAmBW,gBAAgB,CAE1C,GADAJ,EAAa,KACTvE,EAAuB,CACzB,GAAI4E,GAAW,YAAcV,EAAQ,GAAK,cAAcA,EAAQ,GAAG,IAEnEE,MACIS,KAAKC,IAAIZ,EAAQ,IAAM,IACzBE,EAAuBW,EAAIb,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEhCW,KAAKC,IAAIZ,EAAQ,IAAM,IACzBE,EAAuBY,EAAId,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEpCK,EAAaT,EAAUmB,cAAcL,GAEvC,GAAIL,GAAeA,YAAsBW,eAAgB,CACvDjB,EAASM,EAAWzB,WAAU,EAE9B,KAAK,GAAIqC,KAAQf,GACF,UAATe,GAA6B,WAATA,GACtBlB,EAAOmB,gBAAgBD,OAIxB,IAAGZ,GAAeA,YAAsBc,eAAgB,CAE3D,GAAIC,GAAmBxB,EAAUW,eAC7BF,EAAWgB,eAAe9E,EAAS,QAAQ+E,OAAO,GAEtDvB,GAASzB,EAAiB8C,GAC1BnB,EAAcmB,EAAiBtH,aAAa,WAC5CkG,EAAUC,EAAYxH,MAAM,KAC5B2H,GAAqB,MAMrBA,IAAqB,EACrBL,EAASH,EAAUhB,WAAU,GAK7BwB,IACFL,EAAOhG,aAAa,UAAWiG,EAAQhH,KAAK,MAC5C+G,EAAOhG,aAAa,QAASiG,EAAQ,GAAG,MACxCD,EAAOhG,aAAa,SAAUiG,EAAQ,GAAG,OAI3CG,EAAed,EAAaU,EAC5B,IAAIwB,GAAkBlF,EAAoBwD,CAK1C,OAJIM,GAAatF,QAAQ0G,GAAiB,IACxCpB,EAAaqB,KAAKD,GAClBxB,EAAOhG,aAAa,QAASoG,EAAanH,KAAK,OAE1C+G,IAKP0B,EAAe,SAAUC,EAAUC,EAAU9B,GAC/CjC,EAAa+D,GAAY/D,EAAa+D,OACtC/D,EAAa+D,GAAUH,MAAME,SAAWA,EAAUE,WAAa/B,KAG7DgC,EAAsB,SAAUC,GAClC,IAAK,GAAInJ,GAAI,EAAG6E,EAAMI,EAAakE,GAAKlJ,OAAY4E,EAAJ7E,EAASA,KAGvD,SAAWoJ,GACTC,WAAW,WACTpE,EAAakE,GAAKC,GAAOL,SAAS/B,EAASlC,EAASqE,GAAMlE,EAAakE,GAAKC,GAAOH,cAClF,IACFjJ,IAKHsJ,EAAU,SAAUH,EAAKJ,GAC3B,GAAIQ,GAAQP,EAAU9B,CAKtB,IAJAqC,EAASJ,EAAIrJ,MAAM,KACnBkJ,EAAWO,EAAO,GAClBrC,EAA4B,IAAlBqC,EAAOtJ,OAAgBsJ,EAAO,GAAK5B,OAElBA,SAAvB7C,EAASkE,GACPlE,EAASkE,YAAqBX,eAEhCU,EAAS/B,EAASlC,EAASkE,GAAW9B,IAItC4B,EAAaC,EAAUC,EAAU9B,OAGhC,CAEH,IAAKjI,EAAOuK,eAEV,MADAT,GAAS,4CACF,CAITjE,GAASkE,MACTF,EAAaC,EAAUC,EAAU9B,EAEjC,IAAIuC,GAAc,GAAID,eAEtBC,GAAYC,mBAAqB,WAE/B,GAA+B,IAA3BD,EAAYE,WAAkB,CAGhC,GAA2B,MAAvBF,EAAYG,QAA8C,OAA5BH,EAAYI,YAM5C,MALAd,GAAS,4BAA8BC,GAEnC9E,GAAS6E,EAAS,+IAEtBA,KACO,CAIT,MAA2B,MAAvBU,EAAYG,QAAmB1F,GAAkC,IAAvBuF,EAAYG,QAyCxD,MADAb,GAAS,0CAA4CU,EAAYG,OAAS,IAAMH,EAAYK,aACrF,CAtCP,IAAIL,EAAYI,sBAAuBE,UAErCjF,EAASkE,GAAYS,EAAYI,YAAYG,oBAW1C,IAAIC,WAAcA,oBAAqBC,UAAW,CACrD,GAAIC,EACJ,KACE,GAAIC,GAAS,GAAIH,UACjBE,GAASC,EAAOC,gBAAgBZ,EAAYa,aAAc,YAE5D,MAAOC,GACLJ,EAASxC,OAGX,IAAKwC,GAAUA,EAAOK,qBAAqB,eAAevK,OAExD,MADA8I,GAAS,6BAA+BI,IACjC,CAIPrE,GAASkE,GAAYmB,EAAOH,gBAKhCd,EAAoBF,KAS1BS,EAAYgB,KAAK,MAAOzB,GAIpBS,EAAYiB,kBAAkBjB,EAAYiB,iBAAiB,YAE/DjB,EAAYkB,SAKZC,EAAgB,SAAU5J,EAAI6J,EAAaC,EAAa/B,GAC1D,GAAIgC,EAEDtH,MAAmB,EAEpBsH,EAAS/J,EAAGG,aAAa,aAAeH,EAAGG,aAAa,QAGxD4J,EAAStH,EAAiB,IAAMoD,EAAqB7F,GAErDA,EAAGI,aAAa,WAAY2J,GAG9B,IACIC,GADAC,EAAmBF,EAAOjL,MAAM,IAIpC,KAAK,SAAWoL,KAAKH,GAEnB,WADAhC,GAAS,wDAA0DgC,EAKrE,KAAI1G,EAKA,CAKF,GAAI8G,GAAqBnK,EAAGG,aAAa,kBAAoBH,EAAGG,aAAa,WAqC7E,aAlCIgK,GACFnK,EAAGI,aAAa,MAAO+J,GACvBpC,EAAS,OAGF+B,GAGLE,EADEC,EAAiBhL,OAAO,EACZgL,EAAiB,GAAK,OAGtBF,EAAOjL,MAAM,KAAKsL,MAAM/L,QAAQ,OAAQ,QAGrDsB,EAAQ2C,GACTjC,EAAsBL,EAAIiK,EAAiB,GAAI3H,GAEzChD,EAAWgD,GAEjBA,EAAkBtC,EAAIiK,EAAiB,IAEJ,gBAAtB3H,GACbvC,EAAoBC,EAAIsC,GAGxBtC,EAAGI,aAAa,MAAO0J,EAAc,IAAME,GAE7CjC,EAAS,OAITA,EAAS,uEA3CRpI,EAAQ2C,IACTvB,EAAyBf,EAAIiK,EAAiB,GAAI3H,GAoDjB,KAAjC0B,EAAiB9C,QAAQlB,KAM7BgE,EAAiB6D,KAAK7H,GAGtBA,EAAGI,aAAa,MAAO,IAGvBkI,EAAQyB,EAAQ,SAAU3I,GAExB,GAAmB,mBAARA,IAAsC,gBAARA,GAEvC,MADA2G,GAAS3G,IACF,CAGT,IAAIiJ,GAAQrK,EAAGG,aAAa,KACxBkK,IACFjJ,EAAIhB,aAAa,KAAMiK,EAGzB,IAAIC,GAAWtK,EAAGG,aAAa,QAC3BmK,IACFlJ,EAAIhB,aAAa,QAASkK,EAI5B,IAAIC,MAAgBC,OAAOpJ,EAAIjB,aAAa,aAAgB,eAAgBH,EAAGG,aAAa,cAAgBd,KAAK,IACjH+B,GAAIhB,aAAa,QAASxB,EAAc2L,GAExC,IAAIE,GAAWzK,EAAGG,aAAa,QAC3BsK,IACFrJ,EAAIhB,aAAa,QAASqK,EAI5B,IAAIC,MAAaC,OAAOlL,KAAKO,EAAGsB,WAAY,SAAUsJ,GACpD,MAAO,mBAAqBV,KAAKU,EAAGnG,OAEtC7D,GAAQnB,KAAKiL,EAAS,SAAUG,GAC1BA,EAASpG,MAAQoG,EAASnG,OAC5BtD,EAAIhB,aAAayK,EAASpG,KAAMoG,EAASnG,QAK7C,IAAIoG,GAAa9K,EAAGG,aAAa,sBAC9B2K,IACD1J,EAAIhB,aAAa,sBAAuB0K,EAe1C,KAAK,GADDC,GADAC,EAAY5J,EAAIQ,iBAAiB,qBAE5BC,EAAI,EAAGoJ,EAAeD,EAAU/L,OAAYgM,EAAJpJ,EAAkBA,IAAK,CACtEkJ,EAAkBC,EAAUnJ,GAAGE,GAAK,IAAMgC,CAG1C,KAAK,GADDmH,GAAgB9J,EAAIQ,iBAAiB,gBAAkBoJ,EAAUnJ,GAAGE,GAAK,MACpEE,EAAI,EAAGkJ,EAAmBD,EAAcjM,OAAYkM,EAAJlJ,EAAsBA,IAC7EiJ,EAAcjJ,GAAG7B,aAAa,YAAa,QAAU2K,EAAkB,IAEzEC,GAAUnJ,GAAGE,GAAKgJ,EAMpB,IAAK,GADDK,GADAC,EAAQjK,EAAIQ,iBAAiB,iBAExB5C,EAAI,EAAGsM,EAAWD,EAAMpM,OAAYqM,EAAJtM,EAAcA,IAAK,CAC1DoM,EAAcC,EAAMrM,GAAG+C,GAAK,IAAMgC,CAGlC,KAAK,GADDwH,GAAYnK,EAAIQ,iBAAiB,WAAayJ,EAAMrM,GAAG+C,GAAK,MACvDyJ,EAAI,EAAGC,EAAeF,EAAUtM,OAAYwM,EAAJD,EAAkBA,IACjED,EAAUC,GAAGpL,aAAa,OAAQ,QAAUgL,EAAc,IAE5DC,GAAMrM,GAAG+C,GAAKqJ,EAGhBjK,EAAmBC,EAAK2C,GAIxB3C,EAAImG,gBAAgB,UAUpB,KAAK,GAFDmE,GAAQC,EAFRC,EAAUxK,EAAIQ,iBAAiB,UAC/BiK,KAGKC,EAAI,EAAGC,EAAaH,EAAQ3M,OAAY8M,EAAJD,EAAgBA,IAC3DH,EAAaC,EAAQE,GAAG3L,aAAa,QAIhCwL,GAA6B,2BAAfA,GAA0D,2BAAfA,IAG5DD,EAASE,EAAQE,GAAGE,WAAaJ,EAAQE,GAAGrG,YAG5CoG,EAAchE,KAAK6D,GAGnBtK,EAAI6K,YAAYL,EAAQE,IAK5B,IAAID,EAAc5M,OAAS,IAAsB,WAAhB4K,GAA6C,SAAhBA,IAA2B3F,EAAW6F,IAAW,CAC7G,IAAK,GAAImC,GAAI,EAAGC,EAAmBN,EAAc5M,OAAYkN,EAAJD,EAAsBA,IAQ7E,GAAIhD,UAAS2C,EAAcK,IAAIjO,EAIjCiG,GAAW6F,IAAU,EAIvB,GAAIqC,GAAYhL,EAAIQ,iBAAiB,QAGrChB,GAAQnB,KAAK2M,EAAW,SAAUjH,GAChC,GAAIkH,GAAe3G,EAAatE,IAC3BiL,EAAanL,QAAQkB,IAAoB,GAAKI,IAAqB6J,EAAanL,QAAQmB,GAAiB,EAI5G8C,EAASmH,WAAWL,YAAY9G,GAG7B5C,EACD2C,EAAkBC,EAAUpB,EAAa3C,GAQzC+D,EAASM,aAAe,KAQ9BzF,EAAGsM,WAAWC,aAAanL,EAAKpB,SAIzBgE,GAAiBA,EAAiB9C,QAAQlB,IACjDA,EAAK,KAGL+D,IAEAgE,EAAS3G,OAmBToL,EAAc,SAAUC,EAAUC,EAASC,GAG7CD,EAAUA,KAMV,IAAI7C,GAAc6C,EAAQ7C,aAAe,SAGrCC,EAAc4C,EAAQ5C,cAAe,CAKzC3H,GAAwBuK,EAAQvK,wBAAyB,EAEzDE,EAAuD,mBAA5BqK,GAAQrK,gBACjC,GAAKqK,EAAQrK,gBAEfU,EAAuD,mBAA5B2J,GAAQ3J,gBACjCF,EAAyB6J,EAAQ3J,gBAEnCC,EAA2D,mBAA9B0J,GAAQ1J,kBACnCF,EAA2B4J,EAAQ1J,kBAErCZ,EAA0D,mBAA9BsK,GAAQtK,kBAClCa,EAA+ByJ,EAAQtK,kBAEzCI,EAAsD,mBAA5BkK,GAAQlK,iBAChC,EAAQkK,EAAQlK,gBAElBF,EAA0D,mBAA9BoK,GAAQpK,kBAClC5B,EAA4BgM,EAAQpK,kBAEtCC,EAAuD,mBAA5BmK,GAAQnK,iBACjC,EAAOmK,EAAQnK,gBAEjBE,EAAoD,mBAA3BiK,GAAQjK,gBAA6D,KAA3BiK,EAAQjK,gBACzE,EAAQiK,EAAQjK,eAElBC,EAAoBM,EAGjB0J,EAAQE,iBACTvJ,GAAgB,EAIlB,IAAIwJ,GAAeH,EAAQI,KACvBC,EAAc7O,EAASkJ,cAAc,OAEzC,IAAG/D,GAED,GADA0J,EAAYtM,UAAUpC,QAAQ,SAAU,IACC,mBAA9BqO,GAAQtK,kBAAmC,CACpD,GAAI4K,GAAM,OAAS5K,EAAoB,yBACrC6K,EAAO/O,EAAS+O,MAAQ/O,EAASsL,qBAAqB,QAAQ,GAC9D0D,EAAQhP,EAASiP,cAAc,QAEjCD,GAAME,KAAO,WACTF,EAAMG,WACRH,EAAMG,WAAWC,QAAUN,EAG3BE,EAAMlI,YAAY9G,EAASqP,eAAeP,IAE5CC,EAAKjI,YAAYkI,QAMnBH,GAAYtM,WAAa,SAI3B,IAAwBkG,SAApB8F,EAASxN,OAAsB,CACjC,GAAIuO,GAAiB,CACrB5M,GAAQnB,KAAKgN,EAAU,SAAUnM,GAC/BsJ,EAActJ,EAASuJ,EAAaC,EAAa,SAAU1I,GACrDyL,GAAwC,kBAAjBA,IAA6BA,EAAazL,GACjEuL,GAAQF,EAASxN,WAAauO,GAAgBb,EAAKa,WAKvDf,GACF7C,EAAc6C,EAAU5C,EAAaC,EAAa,SAAU1I,GACtDyL,GAAwC,kBAAjBA,IAA6BA,EAAazL,GACjEuL,GAAMA,EAAK,GACfF,EAAW,OAITE,GAAMA,EAAK,GAOC,iBAAXc,SAAiD,gBAAnBA,QAAOC,QAC9CD,OAAOC,QAAUA,QAAUlB,EAGF,kBAAXmB,SAAyBA,OAAOC,IAC9CD,OAAO,WACL,MAAOnB,KAIgB,gBAAXvO,KACdA,EAAOuO,YAAcA,IAIvBvO,OAAQC"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":";;;;;;;CAQC,SAAUA,EAAQC,GAEjB,YA8BA,SAASC,GAAcC,GACrBA,EAAOA,EAAKC,MAAM,IAMlB,KAJA,GAAIC,MACAC,EAAIH,EAAKI,OACTC,KAEGF,KACAD,EAAKI,eAAeN,EAAKG,MAC5BD,EAAKF,EAAKG,IAAM,EAChBE,EAAIE,QAAQP,EAAKG,IAGrB,OAAOE,GAAIG,KAAK,KAGlB,QAASC,GAAWC,GAClB,SAAUA,GAAOA,EAAIC,aAAeD,EAAIE,MAAQF,EAAIG,OAGtD,QAASC,GAAQJ,GACf,MAA+C,mBAAxCK,OAAOC,UAAUC,SAASL,KAAKF,GAGxC,QAASQ,GAAoBC,EAAIC,GAC/B,GAAIC,GAAaF,EAAGG,aAAa,QACjCD,GAAaA,EAAaA,EAAa,GAEpCP,EAAQM,KACTA,EAAgBA,EAAcZ,KAAK,MAGrCY,EAAgBC,EAAa,IAAMD,EAEnCD,EAAGI,aAAa,QAASxB,EAAcqB,IAuBzC,QAASI,GAAsBC,EAASC,EAAUC,GAChD,GAAIC,GAAoC,mBAAfD,GAA8BE,EAA4BF,EAAWG,MAAM,EAGpGC,GAAQnB,KACNgB,EACA,SAASI,EAAcC,GACrBL,EAAUK,GAAOD,EAAaE,QAAQ,KAAMR,KAIhDR,EAAoBO,EAASG,GAG/B,QAASO,GAAyBV,EAASC,EAAUU,GACnDA,EAAqD,mBAAvBA,GAAsCP,EAA0BC,MAAM,GAAKM,EAAmBN,MAAM,EAElI,IAAIO,GAAgBZ,EAAQH,aAAa,QACtCe,KAEDN,EAAQnB,KACNwB,EACA,SAASJ,EAAcC,GACrBD,EAAeA,EAAaE,QAAQ,KAAMR,GACtCW,EAAcC,QAAQN,IAAiB,IAEzCK,EAAgBA,EAAcH,QAAQF,EAAc,OAM1DP,EAAQF,aAAa,QAASxB,EAAcsC,KAKhD,QAASE,GAAmBC,EAAKC,GAE/B,GAOIC,GAAKC,EAAWC,EAPhBC,IACDH,IAAI,iBAAkBI,KAAK,SAC3BJ,IAAI,iBAAkBI,KAAK,SAC3BJ,IAAI,WAAYI,KAAK,cACrBJ,IAAI,OAAQI,KAAK,SACjBJ,IAAI,SAAUI,KAAK,UAGtBf,GAAQnB,KAAKiC,EAAM,SAASE,GAC1BL,EAAMK,EAAKL,IACXC,EAAYI,EAAKD,IAGjB,KAAK,GADDE,GAAcR,EAAIS,iBAAiBP,EAAM,QACpCQ,EAAI,EAAGC,EAASH,EAAY5C,OAAY+C,EAAJD,EAAYA,IAAK,CAC5DN,EAAUI,EAAYE,GAAGE,GAAK,IAAMX,CAKpC,KAAK,GAFDY,GAAgBb,EAAIS,iBAAiB,IAAIN,EAAU,MAAQK,EAAYE,GAAGE,GAAK,MAE1EE,EAAI,EAAGC,EAAmBF,EAAcjD,OAAYmD,EAAJD,EAAsBA,IAC7ED,EAAcC,GAAG/B,aAAaoB,EAAW,QAAUC,EAAU,IAE/DI,GAAYE,GAAGE,GAAKR,KAjJ1B,GAeIY,GAAuBC,EAAmBC,EAAiBC,EAC3DC,EAAiBC,EAAiBC,EAAgBC,EAhBlDC,EAAQ,6BACRC,EAAU,+BACVC,EAAyB,SACzBC,EAA2BD,EAAyB,KAEpDE,EAAkBF,EAClBG,EAAoBF,EAEpBtC,GAA6BwC,EAAoB,KAAMD,GACvDE,EAA+B,OAI/BC,EAAuC,UAA7B1E,EAAO2E,SAASC,SAC1BC,EAAgB5E,EAAS6E,eAAeC,WAAW,oDAAqD,OAsDxG7C,EAAU8C,MAAM7D,UAAUe,SAAW,SAAU+C,EAAIC,GACrD,GAAa,SAATC,MAA4B,OAATA,MAA+B,kBAAPF,GAC7C,KAAM,IAAIG,UAIZ,IAAI9E,GAAG+E,EAAMF,KAAK5E,SAAW,CAG7B,KAAKD,EAAI,EAAO+E,EAAJ/E,IAAWA,EACjBA,IAAK6E,OACPF,EAAGlE,KAAKmE,EAAOC,KAAK7E,GAAIA,EAAG6E,OA2E7BG,KAEAC,EAAc,EACdC,KAGAC,KAGAC,KAEAC,EAAiB,SAAUC,EAAeC,EAAeC,GAC3D,GAAIC,EAC8B,oBAAvBD,KAAsCA,GAAsB,KAAM,WAE7E,KAAI,GAAIxF,GAAE,EAAGA,EAAEsF,EAAcI,WAAWzF,OAAQD,IAC9CyF,EAAUH,EAAcI,WAAWC,KAAK3F,GACpCwF,EAAmBrD,QAAQsD,EAAQG,MAAQ,GAC7CL,EAAcnE,aAAaqE,EAAQG,KAAMH,EAAQI,QAKnDC,EAAmB,SAASC,GAC9B,GAAI1D,GAAM1C,EAASqG,gBAAgBnC,EAAO,MAO1C,OANAjC,GAAQnB,KAAKsF,EAAUE,WAAY,SAASC,GAE1C7D,EAAI8D,YAAYD,EAAME,WAAU,MAGlCf,EAAeU,EAAW1D,GACnBA,GAGLgE,EAAoB,SAASC,EAAUrB,EAAa5C,GACtD,GAAIkE,GAASlE,EAAIlB,aAAa,YAAYrB,MAAM,IAChD,IAAGyG,EAAOtG,OAAS,EAAG,CAEpB,GAAIuG,GAAsBD,EAAO,GAC7BE,EAAQ,GAAIC,QAAO,MAAQF,EAAsB,IAAK,KACtDG,EAAqBH,EAAsB,IAAMvB,CAErDqB,GAASM,YAAcN,EAASM,YAAY7E,QAAQ0E,EAAO,IAAME,EAAqB,KACtFtE,EAAIjB,aAAa,QAAUiB,EAAIlB,aAAa,SAAW,IAAMwF,KAI7DE,EAAe,SAASC,GAC1B,GAAIC,GAAeD,EAAW3F,aAAa,QAC3C,OAAO,GAAiB4F,EAAajH,MAAM,SAGzCkH,EAAuB,SAAS1F,GAClC,GAAI2F,GAAUJ,EAAavF,GAEvB2B,EAAK,EAST,OARArB,GAAQnB,KAAKwG,EAAS,SAAUC,GAE3BA,EAAS/E,QAAQ+B,IAAsB,IACxCjB,EAAKiE,EAASnF,QAAQmC,EAAmB,OAKtCjB,GAGLkE,EAAW,SAASC,EAAWC,GAEjC,GAAIC,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAqB,EACrBC,EAAa,IAEjB,IAAcC,SAAXT,EACD,MAAOD,GAAUhB,WAAU,EAI3B,IADAkB,EAAUF,EAAUW,eAAeV,GACnC,CAQA,GAHAI,EAAcH,EAAQnG,aAAa,WACnCqG,EAAUC,EAAY3H,MAAM,KAExBwH,YAAmBU,kBAErBT,EAASzB,EAAiBwB,GAC1BM,GAAqB,MAGlB,IAAIN,YAAmBW,gBAAgB,CAE1C,GADAJ,EAAa,KACTxE,EAAuB,CACzB,GAAI6E,GAAW,YAAcV,EAAQ,GAAK,cAAcA,EAAQ,GAAG,IAEnEE,MACIS,KAAKC,IAAIZ,EAAQ,IAAM,IACzBE,EAAuBW,EAAIb,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEhCW,KAAKC,IAAIZ,EAAQ,IAAM,IACzBE,EAAuBY,EAAId,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEpCK,EAAaT,EAAUmB,cAAcL,GAEvC,GAAIL,GAAeA,YAAsBW,eAAgB,CACvDjB,EAASM,EAAWzB,WAAU,EAE9B,KAAK,GAAIqC,KAAQf,GACF,UAATe,GAA6B,WAATA,GACtBlB,EAAOmB,gBAAgBD,OAIxB,IAAGZ,GAAeA,YAAsBc,eAAgB,CAE3D,GAAIC,GAAmBxB,EAAUW,eAC7BF,EAAWgB,eAAe/E,EAAS,QAAQgF,OAAO,GAEtDvB,GAASzB,EAAiB8C,GAC1BnB,EAAcmB,EAAiBzH,aAAa,WAC5CqG,EAAUC,EAAY3H,MAAM,KAC5B8H,GAAqB,MAMrBA,IAAqB,EACrBL,EAASH,EAAUhB,WAAU,GAK7BwB,IACFL,EAAOnG,aAAa,UAAWoG,EAAQnH,KAAK,MAC5CkH,EAAOnG,aAAa,QAASoG,EAAQ,GAAG,MACxCD,EAAOnG,aAAa,SAAUoG,EAAQ,GAAG,OAI3CG,EAAed,EAAaU,EAC5B,IAAIwB,GAAkBnF,EAAoByD,CAK1C,OAJIM,GAAaxF,QAAQ4G,GAAiB,IACxCpB,EAAaqB,KAAKD,GAClBxB,EAAOnG,aAAa,QAASuG,EAAatH,KAAK,OAE1CkH,IAKP0B,EAAe,SAAUC,EAAUC,EAAU9B,GAC/ClC,EAAagE,GAAYhE,EAAagE,OACtChE,EAAagE,GAAUH,MAAME,SAAWA,EAAUE,WAAa/B,KAG7DgC,EAAsB,SAAUC,GAClC,IAAK,GAAItJ,GAAI,EAAG+E,EAAMI,EAAamE,GAAKrJ,OAAY8E,EAAJ/E,EAASA,KAGvD,SAAWuJ,GACTC,WAAW,WACTrE,EAAamE,GAAKC,GAAOL,SAAS/B,EAASnC,EAASsE,GAAMnE,EAAamE,GAAKC,GAAOH,cAClF,IACFpJ,IAKHyJ,EAAU,SAAUH,EAAKJ,GAC3B,GAAIQ,GAAQP,EAAU9B,CAKtB,IAJAqC,EAASJ,EAAIxJ,MAAM,KACnBqJ,EAAWO,EAAO,GAClBrC,EAA4B,IAAlBqC,EAAOzJ,OAAgByJ,EAAO,GAAK5B,OAElBA,SAAvB9C,EAASmE,GACPnE,EAASmE,YAAqBX,eAEhCU,EAAS/B,EAASnC,EAASmE,GAAW9B,IAItC4B,EAAaC,EAAUC,EAAU9B,OAGhC,CAEH,IAAK3H,EAAOiK,eAEV,MADAT,GAAS,4CACF,CAITlE,GAASmE,MACTF,EAAaC,EAAUC,EAAU9B,EAEjC,IAAIuC,GAAc,GAAID,eAEtBC,GAAYC,mBAAqB,WAE/B,GAA+B,IAA3BD,EAAYE,WAAkB,CAGhC,GAA2B,MAAvBF,EAAYG,QAA8C,OAA5BH,EAAYI,YAM5C,MALAd,GAAS,4BAA8BC,GAEnC/E,GAAS8E,EAAS,+IAEtBA,KACO,CAIT,MAA2B,MAAvBU,EAAYG,QAAmB3F,GAAkC,IAAvBwF,EAAYG,QAyCxD,MADAb,GAAS,0CAA4CU,EAAYG,OAAS,IAAMH,EAAYK,aACrF,CAtCP,IAAIL,EAAYI,sBAAuBE,UAErClF,EAASmE,GAAYS,EAAYI,YAAYG,oBAW1C,IAAIC,WAAcA,oBAAqBC,UAAW,CACrD,GAAIC,EACJ,KACE,GAAIC,GAAS,GAAIH,UACjBE,GAASC,EAAOC,gBAAgBZ,EAAYa,aAAc,YAE5D,MAAOC,GACLJ,EAASxC,OAGX,IAAKwC,GAAUA,EAAOK,qBAAqB,eAAe1K,OAExD,MADAiJ,GAAS,6BAA+BI,IACjC,CAIPtE,GAASmE,GAAYmB,EAAOH,gBAKhCd,EAAoBF,KAS1BS,EAAYgB,KAAK,MAAOzB,GAIpBS,EAAYiB,kBAAkBjB,EAAYiB,iBAAiB,YAE/DjB,EAAYkB,SAKZC,EAAgB,SAAU/J,EAAIgK,EAAaC,EAAa/B,GAC1D,GAAIgC,EAEDvH,MAAmB,EAEpBuH,EAASlK,EAAGG,aAAa,aAAeH,EAAGG,aAAa,QAGxD+J,EAASvH,EAAiB,IAAMqD,EAAqBhG,GAErDA,EAAGI,aAAa,WAAY8J,GAG9B,IACIC,GADAC,EAAmBF,EAAOpL,MAAM,IAIpC,KAAK,SAAWuL,KAAKH,GAEnB,WADAhC,GAAS,wDAA0DgC,EAKrE,KAAI3G,EAKA,CAKF,GAAI+G,GAAqBtK,EAAGG,aAAa,kBAAoBH,EAAGG,aAAa,WAqC7E,aAlCImK,GACFtK,EAAGI,aAAa,MAAOkK,GACvBpC,EAAS,OAGF+B,GAGLE,EADEC,EAAiBnL,OAAO,EACZmL,EAAiB,GAAK,OAGtBF,EAAOpL,MAAM,KAAKyL,MAAMxJ,QAAQ,OAAQ,QAGrDpB,EAAQ6C,GACTnC,EAAsBL,EAAIoK,EAAiB,GAAI5H,GAEzClD,EAAWkD,GAEjBA,EAAkBxC,EAAIoK,EAAiB,IAEJ,gBAAtB5H,GACbzC,EAAoBC,EAAIwC,GAGxBxC,EAAGI,aAAa,MAAO6J,EAAc,IAAME,GAE7CjC,EAAS,OAITA,EAAS,uEA3CRvI,EAAQ6C,IACTxB,EAAyBhB,EAAIoK,EAAiB,GAAI5H,GAoDjB,KAAjC0B,EAAiB/C,QAAQnB,KAM7BkE,EAAiB8D,KAAKhI,GAGtBA,EAAGI,aAAa,MAAO,IAGvBqI,EAAQyB,EAAQ,SAAU7I,GAExB,GAAmB,mBAARA,IAAsC,gBAARA,GAEvC,MADA6G,GAAS7G,IACF,CAGT,IAAImJ,GAAQxK,EAAGG,aAAa,KACxBqK,IACFnJ,EAAIjB,aAAa,KAAMoK,EAGzB,IAAIC,GAAWzK,EAAGG,aAAa,QAC3BsK,IACFpJ,EAAIjB,aAAa,QAASqK,EAI5B,IAAIC,MAAgBC,OAAOtJ,EAAIlB,aAAa,aAAgB,eAAgBH,EAAGG,aAAa,cAAgBd,KAAK,IACjHgC,GAAIjB,aAAa,QAASxB,EAAc8L,GAExC,IAAIE,GAAW5K,EAAGG,aAAa,QAC3ByK,IACFvJ,EAAIjB,aAAa,QAASwK,EAI5B,IAAIC,MAAaC,OAAOrL,KAAKO,EAAG0E,WAAY,SAAUqG,GACpD,MAAO,mBAAqBV,KAAKU,EAAGnG,OAEtChE,GAAQnB,KAAKoL,EAAS,SAAUG,GAC1BA,EAASpG,MAAQoG,EAASnG,OAC5BxD,EAAIjB,aAAa4K,EAASpG,KAAMoG,EAASnG,QAK7C,IAAIoG,GAAajL,EAAGG,aAAa,sBAC9B8K,IACD5J,EAAIjB,aAAa,sBAAuB6K,GAwC1C7J,EAAmBC,EAAK4C,GAIxB5C,EAAIqG,gBAAgB,UAUpB,KAAK,GAFDwD,GAAQC,EAFRC,EAAU/J,EAAIS,iBAAiB,UAC/BuJ,KAGKC,EAAI,EAAGC,EAAaH,EAAQnM,OAAYsM,EAAJD,EAAgBA,IAC3DH,EAAaC,EAAQE,GAAGnL,aAAa,QAIhCgL,GAA6B,2BAAfA,GAA0D,2BAAfA,IAG5DD,EAASE,EAAQE,GAAGE,WAAaJ,EAAQE,GAAG1F,YAG5CyF,EAAcrD,KAAKkD,GAGnB7J,EAAIoK,YAAYL,EAAQE,IAK5B,IAAID,EAAcpM,OAAS,IAAsB,WAAhB+K,GAA6C,SAAhBA,IAA2B5F,EAAW8F,IAAW,CAC7G,IAAK,GAAIwB,GAAI,EAAGC,EAAmBN,EAAcpM,OAAY0M,EAAJD,EAAsBA,IAQ7E,GAAIrC,UAASgC,EAAcK,IAAIhN,EAIjC0F,GAAW8F,IAAU,EAIvB,GAAI0B,GAAYvK,EAAIS,iBAAiB,QAGrClB,GAAQnB,KAAKmM,EAAW,SAAUtG,GAChC,GAAIuG,GAAehG,EAAaxE,IAC3BwK,EAAa1K,QAAQmB,IAAoB,GAAKI,IAAqBmJ,EAAa1K,QAAQoB,GAAiB,EAI5G+C,EAASwG,WAAWL,YAAYnG,GAG7B7C,EACD4C,EAAkBC,EAAUrB,EAAa5C,GAQzCiE,EAASM,aAAe,KAQ9B5F,EAAG8L,WAAWC,aAAa1K,EAAKrB,SAIzBkE,GAAiBA,EAAiB/C,QAAQnB,IACjDA,EAAK,KAGLiE,IAEAiE,EAAS7G,OAmBT2K,EAAc,SAAUC,EAAUC,EAASC,GAG7CD,EAAUA,KAMV,IAAIlC,GAAckC,EAAQlC,aAAe,SAGrCC,EAAciC,EAAQjC,cAAe,CAKzC5H,GAAwB6J,EAAQ7J,wBAAyB,EAEzDE,EAAuD,mBAA5B2J,GAAQ3J,gBACjC,GAAK2J,EAAQ3J,gBAEfU,EAAuD,mBAA5BiJ,GAAQjJ,gBACjCF,EAAyBmJ,EAAQjJ,gBAEnCC,EAA2D,mBAA9BgJ,GAAQhJ,kBACnCF,EAA2BkJ,EAAQhJ,kBAErCZ,EAA0D,mBAA9B4J,GAAQ5J,kBAClCa,EAA+B+I,EAAQ5J,kBAEzCI,EAAsD,mBAA5BwJ,GAAQxJ,iBAChC,EAAQwJ,EAAQxJ,gBAElBF,EAA0D,mBAA9B0J,GAAQ1J,kBAClC9B,EAA4BwL,EAAQ1J,kBAEtCC,EAAuD,mBAA5ByJ,GAAQzJ,iBACjC,EAAOyJ,EAAQzJ,gBAEjBE,EAAoD,mBAA3BuJ,GAAQvJ,gBAA6D,KAA3BuJ,EAAQvJ,gBACzE,EAAQuJ,EAAQvJ,eAElBC,EAAoBM,EAGjBgJ,EAAQE,iBACT7I,GAAgB,EAIlB,IAAI8I,GAAeH,EAAQI,KACvBC,EAAc5N,EAAS4I,cAAc,OAEzC,IAAGhE,GAED,GADAgJ,EAAY9L,UAAUM,QAAQ,SAAU,IACC,mBAA9BmL,GAAQ5J,kBAAmC,CACpD,GAAIkK,GAAM,OAASlK,EAAoB,yBACrCmK,EAAO9N,EAAS8N,MAAQ9N,EAASgL,qBAAqB,QAAQ,GAC9D+C,EAAQ/N,EAASgO,cAAc,QAEjCD,GAAME,KAAO,WACTF,EAAMG,WACRH,EAAMG,WAAWC,QAAUN,EAG3BE,EAAMvH,YAAYxG,EAASoO,eAAeP,IAE5CC,EAAKtH,YAAYuH,QAMnBH,GAAY9L,WAAa,SAI3B,IAAwBqG,SAApBmF,EAAShN,OAAsB,CACjC,GAAI+N,GAAiB,CACrBpM,GAAQnB,KAAKwM,EAAU,SAAU3L,GAC/ByJ,EAAczJ,EAAS0J,EAAaC,EAAa,SAAU5I,GACrDgL,GAAwC,kBAAjBA,IAA6BA,EAAahL,GACjE8K,GAAQF,EAAShN,WAAa+N,GAAgBb,EAAKa,WAKvDf,GACFlC,EAAckC,EAAUjC,EAAaC,EAAa,SAAU5I,GACtDgL,GAAwC,kBAAjBA,IAA6BA,EAAahL,GACjE8K,GAAMA,EAAK,GACfF,EAAW,OAITE,GAAMA,EAAK,GAOC,iBAAXc,SAAiD,gBAAnBA,QAAOC,QAC9CD,OAAOC,QAAUA,QAAUlB,EAGF,kBAAXmB,SAAyBA,OAAOC,IAC9CD,OAAO,WACL,MAAOnB,KAIgB,gBAAXtN,KACdA,EAAOsN,YAAcA,IAIvBtN,OAAQC"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 0583ce1..e9f843d 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function r(e){return e.replace(/^([A-Z])|[-_](\w)/g,function(e,t,r,n){return r?r.toUpperCase():t.toLowerCase()})}function n(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")}function i(e){return!!(e&&e.constructor&&e.call&&e.apply)}function l(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e,t){var r=e.getAttribute("class");r=r?r:"",l(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function a(e,t,r){var n="undefined"==typeof r?C:r.slice(0);T.call(n,function(e,r){n[r]=e.replace("%s",t)}),s(e,n)}function o(e,t,r){r="undefined"==typeof r?C.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(T.call(r,function(e,r){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}function u(e,t){var n=["fill","clip-path","mask","filter"];T.call(n,function(n,i,l){for(var s,a=r(n),o=e.querySelectorAll(a+"[id]"),u=0,c=o.length;c>u;u++){s=o[u].id+"-"+t;for(var f=e.querySelectorAll("["+n+'*="'+o[u].id+'"]'),p=0,d=f.length;d>p;p++)f[p].setAttribute(n,"url(#"+s+")");o[u].id=s}})}var c,f,p,d,v,g,h,y,b="http://www.w3.org/2000/svg",m="http://www.w3.org/1999/xlink",A="sprite",w=A+"--",S=A,x=w,C=[x+"%s",S],N="icon",j="file:"===e.location.protocol,E=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),T=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},k={},G=0,V=[],O=[],q={},M=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var i=0;i1){var i=n[1],l=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(l,"."+s+" "),r.setAttribute("class",r.getAttribute("class")+" "+s)}},R=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},I=function(e){var t=R(e),r="";return T.call(t,function(e){e.indexOf(x)>=0&&(r=e.replace(x,""))}),r},P=function(e,t){var r,n,i,l,s,a,o=!1,u=null;if(void 0===t)return e.cloneNode(!0);if(r=e.getElementById(t)){if(l=r.getAttribute("viewBox"),i=l.split(" "),r instanceof SVGSymbolElement)n=B(r),o=!0;else if(r instanceof SVGViewElement){if(u=null,c){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),u=e.querySelector(f)}if(u&&u instanceof SVGSVGElement){n=u.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&n.removeAttribute(p)}else if(u&&u instanceof SVGUseElement){var d=e.getElementById(u.getAttributeNS(m,"href").substr(1));n=B(d),l=d.getAttribute("viewBox"),i=l.split(" "),o=!0}else o=!0,n=e.cloneNode(!0)}o&&(n.setAttribute("viewBox",i.join(" ")),n.setAttribute("width",i[2]+"px"),n.setAttribute("height",i[3]+"px")),a=R(n);var v=y+t;return a.indexOf(v)<0&&(a.push(v),n.setAttribute("class",a.join(" "))),n}},U=function(e,t,r){O[t]=O[t]||[],O[t].push({callback:e,fragmentId:r})},F=function(e){for(var t=0,r=O[e].length;r>t;t++)!function(t){setTimeout(function(){O[e][t].callback(P(k[e],O[e][t].fragmentId))},0)}(t)},X=function(t,r){var n,i,l;if(n=t.split("#"),i=n[0],l=2===n.length?n[1]:void 0,void 0!==k[i])k[i]instanceof SVGSVGElement?r(P(k[i],l)):U(r,i,l);else{if(!e.XMLHttpRequest)return r("Browser does not support XMLHttpRequest"),!1;k[i]={},U(r,i,l);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return r("Unable to load SVG file: "+i),j&&r("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),r(),!1;if(!(200===s.status||j&&0===s.status))return r("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)k[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var n=new DOMParser;e=n.parseFromString(s.responseText,"text/xml")}catch(l){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return r("Unable to parse SVG file: "+t),!1;k[i]=e.documentElement}F(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},D=function(t,r,c,y){var b;h===!1?b=t.getAttribute("data-src")||t.getAttribute("src"):(b=h+"#"+I(t),t.setAttribute("data-src",b));var m,A=b.split("#");if(!/\.svg/i.test(b))return void y("Attempted to inject a file with a non-svg extension: "+b);if(!E){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),y(null)):c?(m=A.length>1?A[1]+".png":b.split("/").pop().replace(".svg",".png"),l(d)?a(t,A[1],d):i(d)?d(t,A[1]):"string"==typeof d?s(t,d):t.setAttribute("src",c+"/"+m),y(null)):y("This browser does not support SVG and no PNG fallback was defined."))}l(d)&&o(t,A[1],d),-1===V.indexOf(t)&&(V.push(t),t.setAttribute("src",""),X(b,function(i){if("undefined"==typeof i||"string"==typeof i)return y(i),!1;var l=t.getAttribute("id");l&&i.setAttribute("id",l);var s=t.getAttribute("title");s&&i.setAttribute("title",s);var a=[].concat(i.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");i.setAttribute("class",n(a));var o=t.getAttribute("style");o&&i.setAttribute("style",o);var c=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});T.call(c,function(e){e.name&&e.value&&i.setAttribute(e.name,e.value)});var d=t.getAttribute("preserveAspectRatio");d&&i.setAttribute("preserveAspectRatio",d);for(var h,m=i.querySelectorAll("defs clipPath[id]"),A=0,w=m.length;w>A;A++){h=m[A].id+"-"+G;for(var S=i.querySelectorAll('[clip-path*="'+m[A].id+'"]'),x=0,C=S.length;C>x;x++)S[x].setAttribute("clip-path","url(#"+h+")");m[A].id=h}for(var N,j=i.querySelectorAll("defs mask[id]"),E=0,k=j.length;k>E;E++){N=j[E].id+"-"+G;for(var O=i.querySelectorAll('[mask*="'+j[E].id+'"]'),M=0,B=O.length;B>M;M++)O[M].setAttribute("mask","url(#"+N+")");j[E].id=N}u(i,G),i.removeAttribute("xmlns:a");for(var I,P,U=i.querySelectorAll("script"),F=[],X=0,D=U.length;D>X;X++)P=U[X].getAttribute("type"),P&&"application/ecmascript"!==P&&"application/javascript"!==P||(I=U[X].innerText||U[X].textContent,F.push(I),i.removeChild(U[X]));if(F.length>0&&("always"===r||"once"===r&&!q[b])){for(var H=0,Z=F.length;Z>H;H++)new Function(F[H])(e);q[b]=!0}var $=i.querySelectorAll("style");T.call($,function(e){var t=R(i);(t.indexOf(f)>=0||g)&&t.indexOf(p)<0?e.parentNode.removeChild(e):v?L(e,G,i):e.textContent+=""}),t.parentNode.replaceChild(i,t),delete V[V.indexOf(t)],t=null,G++,y(i)}))},H=function(e,r,n){r=r||{};var i=r.evalScripts||"always",l=r.pngFallback||!1;c=r.onlyInjectVisiblePart||!0,p="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,S="undefined"==typeof r.spriteClassName?A:r.spriteClassName,x="undefined"==typeof r.spriteClassIdName?w:r.spriteClassIdName,f="undefined"==typeof r.removeStylesClass?N:r.removeStylesClass,g="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,d="undefined"==typeof r.fallbackClassName?C:r.fallbackClassName,v="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,h="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,y=x,r.forceFallbacks&&(E=!1);var s=r.each,a=t.querySelector("html");if(E){if(a.className.replace("no-svg",""),"undefined"==typeof r.removeStylesClass){var o="svg."+f+" {fill: currentColor;}",u=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=o:b.appendChild(t.createTextNode(o)),u.appendChild(b)}}else a.className+=" no-svg";if(void 0!==e.length){var m=0;T.call(e,function(t){D(t,i,l,function(t){s&&"function"==typeof s&&s(t),n&&e.length===++m&&n(m)})})}else e?D(e,i,l,function(t){s&&"function"==typeof s&&s(t),n&&n(1),e=null}):n&&n(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=H:"function"==typeof define&&define.amd?define(function(){return H}):"object"==typeof e&&(e.SVGInjector=H)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function a(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?S:n.slice(0);G.call(r,function(e,n){r[n]=e.replace("%s",t)}),a(e,r)}function l(e,t,r){r="undefined"==typeof r?S.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(G.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}function o(e,t){var n,r,i,a=[{def:"linearGradient",attr:"fill"},{def:"radialGradient",attr:"fill"},{def:"clipPath",attr:"clip-path"},{def:"mask",attr:"mask"},{def:"filter",attr:"filter"}];G.call(a,function(a){n=a.def,r=a.attr;for(var s=e.querySelectorAll(n+"[id]"),l=0,o=s.length;o>l;l++){i=s[l].id+"-"+t;for(var u=e.querySelectorAll("["+r+'*="'+s[l].id+'"]'),c=0,f=u.length;f>c;c++)u[c].setAttribute(r,"url(#"+i+")");s[l].id=i}})}var u,c,f,p,d,v,g,h,y="http://www.w3.org/2000/svg",b="http://www.w3.org/1999/xlink",m="sprite",A=m+"--",w=m,x=A,S=[x+"%s",w],C="icon",N="file:"===e.location.protocol,j=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),G=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},E={},T=0,V=[],k=[],O={},M=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],a=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(a,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},q=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},L=function(e){var t=q(e),n="";return G.call(t,function(e){e.indexOf(x)>=0&&(n=e.replace(x,""))}),n},I=function(e,t){var n,r,i,a,s,l,o=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(a=n.getAttribute("viewBox"),i=a.split(" "),n instanceof SVGSymbolElement)r=B(n),o=!0;else if(n instanceof SVGViewElement){if(c=null,u){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(b,"href").substr(1));r=B(d),a=d.getAttribute("viewBox"),i=a.split(" "),o=!0}else o=!0,r=e.cloneNode(!0)}o&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),l=q(r);var v=h+t;return l.indexOf(v)<0&&(l.push(v),r.setAttribute("class",l.join(" "))),r}},P=function(e,t,n){k[t]=k[t]||[],k[t].push({callback:e,fragmentId:n})},F=function(e){for(var t=0,n=k[e].length;n>t;t++)!function(t){setTimeout(function(){k[e][t].callback(I(E[e],k[e][t].fragmentId))},0)}(t)},U=function(t,n){var r,i,a;if(r=t.split("#"),i=r[0],a=2===r.length?r[1]:void 0,void 0!==E[i])E[i]instanceof SVGSVGElement?n(I(E[i],a)):P(n,i,a);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;E[i]={},P(n,i,a);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),N&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||N&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)E[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(a){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;E[i]=e.documentElement}F(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},X=function(t,u,h,y){var b;g===!1?b=t.getAttribute("data-src")||t.getAttribute("src"):(b=g+"#"+L(t),t.setAttribute("data-src",b));var m,A=b.split("#");if(!/\.svg/i.test(b))return void y("Attempted to inject a file with a non-svg extension: "+b);if(!j){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),y(null)):h?(m=A.length>1?A[1]+".png":b.split("/").pop().replace(".svg",".png"),i(p)?s(t,A[1],p):r(p)?p(t,A[1]):"string"==typeof p?a(t,p):t.setAttribute("src",h+"/"+m),y(null)):y("This browser does not support SVG and no PNG fallback was defined."))}i(p)&&l(t,A[1],p),-1===V.indexOf(t)&&(V.push(t),t.setAttribute("src",""),U(b,function(r){if("undefined"==typeof r||"string"==typeof r)return y(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var a=t.getAttribute("title");a&&r.setAttribute("title",a);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var l=t.getAttribute("style");l&&r.setAttribute("style",l);var p=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});G.call(p,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var g=t.getAttribute("preserveAspectRatio");g&&r.setAttribute("preserveAspectRatio",g),o(r,T),r.removeAttribute("xmlns:a");for(var h,m,A=r.querySelectorAll("script"),w=[],x=0,S=A.length;S>x;x++)m=A[x].getAttribute("type"),m&&"application/ecmascript"!==m&&"application/javascript"!==m||(h=A[x].innerText||A[x].textContent,w.push(h),r.removeChild(A[x]));if(w.length>0&&("always"===u||"once"===u&&!O[b])){for(var C=0,N=w.length;N>C;C++)new Function(w[C])(e);O[b]=!0}var j=r.querySelectorAll("style");G.call(j,function(e){var t=q(r);(t.indexOf(c)>=0||v)&&t.indexOf(f)<0?e.parentNode.removeChild(e):d?R(e,T,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete V[V.indexOf(t)],t=null,T++,y(r)}))},D=function(e,n,r){n=n||{};var i=n.evalScripts||"always",a=n.pngFallback||!1;u=n.onlyInjectVisiblePart||!0,f="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,w="undefined"==typeof n.spriteClassName?m:n.spriteClassName,x="undefined"==typeof n.spriteClassIdName?A:n.spriteClassIdName,c="undefined"==typeof n.removeStylesClass?C:n.removeStylesClass,v="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,p="undefined"==typeof n.fallbackClassName?S:n.fallbackClassName,d="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,g="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,h=x,n.forceFallbacks&&(j=!1);var s=n.each,l=t.querySelector("html");if(j){if(l.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var o="svg."+c+" {fill: currentColor;}",y=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=o:b.appendChild(t.createTextNode(o)),y.appendChild(b)}}else l.className+=" no-svg";if(void 0!==e.length){var N=0;G.call(e,function(t){X(t,i,a,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++N&&r(N)})})}else e?X(e,i,a,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=D:"function"==typeof define&&define.amd?define(function(){return D}):"object"==typeof e&&(e.SVGInjector=D)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 2d9b473..5ed8f1c 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -133,18 +133,26 @@ } function prefixIdReferences(svg, suffix) { - var attributes = ['fill', 'clip-path', 'mask', 'filter']; - // toCamelCase - - forEach.call(attributes, function(attribute, idx, attrs) { - var curAttrCamel = toCamelCase(attribute); - console.log(curAttrCamel); - var definitions = svg.querySelectorAll(curAttrCamel + '[id]'); - var newName; + //var attributes = [{attr:'fill', defs:}, 'clip-path', 'mask', 'filter']; + var defs = [ + {def:'linearGradient', attr:'fill'}, + {def:'radialGradient', attr:'fill'}, + {def:'clipPath', attr:'clip-path'}, + {def:'mask', attr:'mask'}, + {def:'filter', attr:'filter'} + ]; + var def, attribute, newName; + forEach.call(defs, function(elem) { + def = elem.def; + attribute = elem.attr; + console.log(attribute + ':' + def); + var definitions = svg.querySelectorAll(def + '[id]'); for (var g = 0, defLen = definitions.length; g < defLen; g++) { newName = definitions[g].id + '-' + suffix; + console.log('new name: ' + newName); // :NOTE: using a substring match attr selector here to deal with IE "adding extra quotes in url() attrs" var usingElements = svg.querySelectorAll('['+attribute+'*="' + definitions[g].id + '"]'); + console.log(usingElements); for (var h = 0, usingElementsLen = usingElements.length; h < usingElementsLen; h++) { usingElements[h].setAttribute(attribute, 'url(#' + newName + ')'); } @@ -567,6 +575,7 @@ svg.setAttribute('preserveAspectRatio', presARAttr); } + /* // Make sure any internally referenced clipPath ids and their // clip-path references are unique. // @@ -601,7 +610,8 @@ } masks[i].id = newMaskName; } - + */ + // suffix the masks, gradients, clipPaths and prefixIdReferences(svg, injectCount); From 0b67cffb236d8874b58c8ea44505f7ccd4dfb2fe Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 9 Jun 2015 08:51:54 +0200 Subject: [PATCH 039/212] cleanup logs --- dist/svg-injector.map.js | 2 +- svg-injector.js | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 7572bd7..e2b8a02 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 5ed8f1c..806395e 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -133,7 +133,6 @@ } function prefixIdReferences(svg, suffix) { - //var attributes = [{attr:'fill', defs:}, 'clip-path', 'mask', 'filter']; var defs = [ {def:'linearGradient', attr:'fill'}, {def:'radialGradient', attr:'fill'}, @@ -141,18 +140,18 @@ {def:'mask', attr:'mask'}, {def:'filter', attr:'filter'} ]; + var def, attribute, newName; + forEach.call(defs, function(elem) { def = elem.def; attribute = elem.attr; - console.log(attribute + ':' + def); var definitions = svg.querySelectorAll(def + '[id]'); for (var g = 0, defLen = definitions.length; g < defLen; g++) { newName = definitions[g].id + '-' + suffix; - console.log('new name: ' + newName); + console.log('suffixxed ' + attribute + ': ' + newName); // :NOTE: using a substring match attr selector here to deal with IE "adding extra quotes in url() attrs" var usingElements = svg.querySelectorAll('['+attribute+'*="' + definitions[g].id + '"]'); - console.log(usingElements); for (var h = 0, usingElementsLen = usingElements.length; h < usingElementsLen; h++) { usingElements[h].setAttribute(attribute, 'url(#' + newName + ')'); } From b9c39448cecb26a7eebcc611f8d1a7f59e86eacc Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 9 Jun 2015 10:54:22 +0200 Subject: [PATCH 040/212] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dc6c60e..f2bbab3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector", "description": "Fast, caching, dynamic inline SVG DOM injection library", - "version": "1.2.0", + "version": "1.2.1", "author": { "name": "Iconic", "email": "yourfriends@useiconic.com", From 99ed486792c2b5755c1e22f707057ae83673a880 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Wed, 10 Jun 2015 11:30:46 +0200 Subject: [PATCH 041/212] 1.2.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f2bbab3..9a4da33 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector", "description": "Fast, caching, dynamic inline SVG DOM injection library", - "version": "1.2.1", + "version": "1.2.2", "author": { "name": "Iconic", "email": "yourfriends@useiconic.com", From 70b802e16b980dd54f2b32b2a402a7d33f27df26 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Wed, 10 Jun 2015 11:32:21 +0200 Subject: [PATCH 042/212] change the default classnames that should be removed upon injection, disable debug.logs --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- svg-injector.js | 61 +++++++++------------------------------- 3 files changed, 16 insertions(+), 49 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index e2b8a02..825aafd 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index e9f843d..2b90c03 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function a(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?S:n.slice(0);G.call(r,function(e,n){r[n]=e.replace("%s",t)}),a(e,r)}function l(e,t,r){r="undefined"==typeof r?S.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(G.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}function o(e,t){var n,r,i,a=[{def:"linearGradient",attr:"fill"},{def:"radialGradient",attr:"fill"},{def:"clipPath",attr:"clip-path"},{def:"mask",attr:"mask"},{def:"filter",attr:"filter"}];G.call(a,function(a){n=a.def,r=a.attr;for(var s=e.querySelectorAll(n+"[id]"),l=0,o=s.length;o>l;l++){i=s[l].id+"-"+t;for(var u=e.querySelectorAll("["+r+'*="'+s[l].id+'"]'),c=0,f=u.length;f>c;c++)u[c].setAttribute(r,"url(#"+i+")");s[l].id=i}})}var u,c,f,p,d,v,g,h,y="http://www.w3.org/2000/svg",b="http://www.w3.org/1999/xlink",m="sprite",A=m+"--",w=m,x=A,S=[x+"%s",w],C="icon",N="file:"===e.location.protocol,j=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),G=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},E={},T=0,V=[],k=[],O={},M=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],a=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(a,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},q=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},L=function(e){var t=q(e),n="";return G.call(t,function(e){e.indexOf(x)>=0&&(n=e.replace(x,""))}),n},I=function(e,t){var n,r,i,a,s,l,o=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(a=n.getAttribute("viewBox"),i=a.split(" "),n instanceof SVGSymbolElement)r=B(n),o=!0;else if(n instanceof SVGViewElement){if(c=null,u){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(b,"href").substr(1));r=B(d),a=d.getAttribute("viewBox"),i=a.split(" "),o=!0}else o=!0,r=e.cloneNode(!0)}o&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),l=q(r);var v=h+t;return l.indexOf(v)<0&&(l.push(v),r.setAttribute("class",l.join(" "))),r}},P=function(e,t,n){k[t]=k[t]||[],k[t].push({callback:e,fragmentId:n})},F=function(e){for(var t=0,n=k[e].length;n>t;t++)!function(t){setTimeout(function(){k[e][t].callback(I(E[e],k[e][t].fragmentId))},0)}(t)},U=function(t,n){var r,i,a;if(r=t.split("#"),i=r[0],a=2===r.length?r[1]:void 0,void 0!==E[i])E[i]instanceof SVGSVGElement?n(I(E[i],a)):P(n,i,a);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;E[i]={},P(n,i,a);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),N&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||N&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)E[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(a){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;E[i]=e.documentElement}F(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},X=function(t,u,h,y){var b;g===!1?b=t.getAttribute("data-src")||t.getAttribute("src"):(b=g+"#"+L(t),t.setAttribute("data-src",b));var m,A=b.split("#");if(!/\.svg/i.test(b))return void y("Attempted to inject a file with a non-svg extension: "+b);if(!j){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),y(null)):h?(m=A.length>1?A[1]+".png":b.split("/").pop().replace(".svg",".png"),i(p)?s(t,A[1],p):r(p)?p(t,A[1]):"string"==typeof p?a(t,p):t.setAttribute("src",h+"/"+m),y(null)):y("This browser does not support SVG and no PNG fallback was defined."))}i(p)&&l(t,A[1],p),-1===V.indexOf(t)&&(V.push(t),t.setAttribute("src",""),U(b,function(r){if("undefined"==typeof r||"string"==typeof r)return y(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var a=t.getAttribute("title");a&&r.setAttribute("title",a);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var l=t.getAttribute("style");l&&r.setAttribute("style",l);var p=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});G.call(p,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var g=t.getAttribute("preserveAspectRatio");g&&r.setAttribute("preserveAspectRatio",g),o(r,T),r.removeAttribute("xmlns:a");for(var h,m,A=r.querySelectorAll("script"),w=[],x=0,S=A.length;S>x;x++)m=A[x].getAttribute("type"),m&&"application/ecmascript"!==m&&"application/javascript"!==m||(h=A[x].innerText||A[x].textContent,w.push(h),r.removeChild(A[x]));if(w.length>0&&("always"===u||"once"===u&&!O[b])){for(var C=0,N=w.length;N>C;C++)new Function(w[C])(e);O[b]=!0}var j=r.querySelectorAll("style");G.call(j,function(e){var t=q(r);(t.indexOf(c)>=0||v)&&t.indexOf(f)<0?e.parentNode.removeChild(e):d?R(e,T,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete V[V.indexOf(t)],t=null,T++,y(r)}))},D=function(e,n,r){n=n||{};var i=n.evalScripts||"always",a=n.pngFallback||!1;u=n.onlyInjectVisiblePart||!0,f="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,w="undefined"==typeof n.spriteClassName?m:n.spriteClassName,x="undefined"==typeof n.spriteClassIdName?A:n.spriteClassIdName,c="undefined"==typeof n.removeStylesClass?C:n.removeStylesClass,v="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,p="undefined"==typeof n.fallbackClassName?S:n.fallbackClassName,d="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,g="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,h=x,n.forceFallbacks&&(j=!1);var s=n.each,l=t.querySelector("html");if(j){if(l.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var o="svg."+c+" {fill: currentColor;}",y=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=o:b.appendChild(t.createTextNode(o)),y.appendChild(b)}}else l.className+=" no-svg";if(void 0!==e.length){var N=0;G.call(e,function(t){X(t,i,a,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++N&&r(N)})})}else e?X(e,i,a,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=D:"function"==typeof define&&define.amd?define(function(){return D}):"object"==typeof e&&(e.SVGInjector=D)}(window,document); +!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function a(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?S:n.slice(0);G.call(r,function(e,n){r[n]=e.replace("%s",t)}),a(e,r)}function l(e,t,r){r="undefined"==typeof r?S.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(G.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}function o(e,t){var n,r,i,a=[{def:"linearGradient",attr:"fill"},{def:"radialGradient",attr:"fill"},{def:"clipPath",attr:"clip-path"},{def:"mask",attr:"mask"},{def:"filter",attr:"filter"}];G.call(a,function(a){n=a.def,r=a.attr;for(var s=e.querySelectorAll(n+"[id]"),l=0,o=s.length;o>l;l++){i=s[l].id+"-"+t;for(var u=e.querySelectorAll("["+r+'*="'+s[l].id+'"]'),c=0,f=u.length;f>c;c++)u[c].setAttribute(r,"url(#"+i+")");s[l].id=i}})}var u,c,f,p,d,v,g,h,y="http://www.w3.org/2000/svg",b="http://www.w3.org/1999/xlink",m="sprite",A=m+"--",w=m,x=A,S=[w],C="icon",N="file:"===e.location.protocol,j=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),G=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},E={},T=0,V=[],k=[],O={},M=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],a=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(a,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},q=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},L=function(e){var t=q(e),n="";return G.call(t,function(e){e.indexOf(x)>=0&&(n=e.replace(x,""))}),n},I=function(e,t){var n,r,i,a,s,l,o=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(a=n.getAttribute("viewBox"),i=a.split(" "),n instanceof SVGSymbolElement)r=B(n),o=!0;else if(n instanceof SVGViewElement){if(c=null,u){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(b,"href").substr(1));r=B(d),a=d.getAttribute("viewBox"),i=a.split(" "),o=!0}else o=!0,r=e.cloneNode(!0)}o&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),l=q(r);var v=h+t;return l.indexOf(v)<0&&(l.push(v),r.setAttribute("class",l.join(" "))),r}},P=function(e,t,n){k[t]=k[t]||[],k[t].push({callback:e,fragmentId:n})},F=function(e){for(var t=0,n=k[e].length;n>t;t++)!function(t){setTimeout(function(){k[e][t].callback(I(E[e],k[e][t].fragmentId))},0)}(t)},U=function(t,n){var r,i,a;if(r=t.split("#"),i=r[0],a=2===r.length?r[1]:void 0,void 0!==E[i])E[i]instanceof SVGSVGElement?n(I(E[i],a)):P(n,i,a);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;E[i]={},P(n,i,a);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),N&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||N&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)E[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(a){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;E[i]=e.documentElement}F(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},X=function(t,u,h,y){var b;g===!1?b=t.getAttribute("data-src")||t.getAttribute("src"):(b=g+"#"+L(t),t.setAttribute("data-src",b));var m,A=b.split("#");if(!/\.svg/i.test(b))return void y("Attempted to inject a file with a non-svg extension: "+b);if(!j){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),y(null)):h?(m=A.length>1?A[1]+".png":b.split("/").pop().replace(".svg",".png"),i(p)?s(t,A[1],p):r(p)?p(t,A[1]):"string"==typeof p?a(t,p):t.setAttribute("src",h+"/"+m),y(null)):y("This browser does not support SVG and no PNG fallback was defined."))}i(p)&&l(t,A[1],p),-1===V.indexOf(t)&&(V.push(t),t.setAttribute("src",""),U(b,function(r){if("undefined"==typeof r||"string"==typeof r)return y(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var a=t.getAttribute("title");a&&r.setAttribute("title",a);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var l=t.getAttribute("style");l&&r.setAttribute("style",l);var p=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});G.call(p,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var g=t.getAttribute("preserveAspectRatio");g&&r.setAttribute("preserveAspectRatio",g),o(r,T),r.removeAttribute("xmlns:a");for(var h,m,A=r.querySelectorAll("script"),w=[],x=0,S=A.length;S>x;x++)m=A[x].getAttribute("type"),m&&"application/ecmascript"!==m&&"application/javascript"!==m||(h=A[x].innerText||A[x].textContent,w.push(h),r.removeChild(A[x]));if(w.length>0&&("always"===u||"once"===u&&!O[b])){for(var C=0,N=w.length;N>C;C++)new Function(w[C])(e);O[b]=!0}var j=r.querySelectorAll("style");G.call(j,function(e){var t=q(r);(t.indexOf(c)>=0||v)&&t.indexOf(f)<0?e.parentNode.removeChild(e):d?R(e,T,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete V[V.indexOf(t)],t=null,T++,y(r)}))},D=function(e,n,r){n=n||{};var i=n.evalScripts||"always",a=n.pngFallback||!1;u=n.onlyInjectVisiblePart||!0,f="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,w="undefined"==typeof n.spriteClassName?m:n.spriteClassName,x="undefined"==typeof n.spriteClassIdName?A:n.spriteClassIdName,c="undefined"==typeof n.removeStylesClass?C:n.removeStylesClass,v="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,p="undefined"==typeof n.fallbackClassName?S:n.fallbackClassName,d="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,g="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,h=x,n.forceFallbacks&&(j=!1);var s=n.each,l=t.querySelector("html");if(j){if(l.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var o="svg."+c+" {fill: currentColor;}",y=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=o:b.appendChild(t.createTextNode(o)),y.appendChild(b)}}else l.className+=" no-svg";if(void 0!==e.length){var N=0;G.call(e,function(t){X(t,i,a,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++N&&r(N)})})}else e?X(e,i,a,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=D:"function"==typeof define&&define.amd?define(function(){return D}):"object"==typeof e&&(e.SVGInjector=D)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/svg-injector.js b/svg-injector.js index 806395e..c511e3a 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -19,7 +19,7 @@ var spriteClassName = defaultSpriteClassName; var spriteClassIdName = defaultSpriteClassIdName; - var defaultFallbackClassNames = [spriteClassIdName + '%s', spriteClassName]; + var defaultFallbackClassNames = [spriteClassName]; var defaultRemoveStylesClassName = 'icon'; @@ -120,7 +120,7 @@ function(curClassName, idx) { curClassName = curClassName.replace('%s', symbolId); if( curClassNames.indexOf(curClassName) >= 0 ){ - console.log('remove class ' + curClassName); + //console.log('remove class ' + curClassName); curClassNames = curClassNames.replace(curClassName, ''); } @@ -149,7 +149,7 @@ var definitions = svg.querySelectorAll(def + '[id]'); for (var g = 0, defLen = definitions.length; g < defLen; g++) { newName = definitions[g].id + '-' + suffix; - console.log('suffixxed ' + attribute + ': ' + newName); + //console.log('suffixxed ' + attribute + ': ' + newName); // :NOTE: using a substring match attr selector here to deal with IE "adding extra quotes in url() attrs" var usingElements = svg.querySelectorAll('['+attribute+'*="' + definitions[g].id + '"]'); for (var h = 0, usingElementsLen = usingElements.length; h < usingElementsLen; h++) { @@ -218,16 +218,14 @@ var getSpriteIdFromClass = function(element) { var classes = getClassList(element); - console.log(classes); var id = ''; forEach.call(classes, function (curClass) { - console.log(curClass); + if(curClass.indexOf(spriteClassIdName) >= 0) { id = curClass.replace(spriteClassIdName, ''); - console.log('class with prefix ' + spriteClassIdName + ' found. id: ' + id); + //console.log('class with prefix ' + spriteClassIdName + ' found. id: ' + id); } }); - //console.error('no class with prefix ' + spriteClassIdName + ' found'); return id; }; @@ -287,7 +285,7 @@ } } else if(symbolElem && (symbolElem instanceof SVGUseElement)) { - console.log('referenced view shows a SVGUseElement'); + //console.log('referenced view shows a SVGUseElement'); var referencedSymbol = sourceSvg.getElementById( symbolElem.getAttributeNS(xlinkNS, 'href').substr(1) ); @@ -452,7 +450,7 @@ } else{ imgUrl = spritesheetURL + '#' + getSpriteIdFromClass(el); - console.log('imgURL: ' + imgUrl); + //console.log('imgURL: ' + imgUrl); el.setAttribute('data-src', imgUrl); } @@ -497,7 +495,7 @@ setFallbackClassNames(el, imgUrlSplitByFId[1], fallbackClassName); } else if(isFunction(fallbackClassName)) { - console.log('custom function to create fallbackClassName'); + console.info('custom function to create fallbackClassName'); fallbackClassName(el, imgUrlSplitByFId[1]); } else if(typeof fallbackClassName === 'string') { @@ -574,43 +572,12 @@ svg.setAttribute('preserveAspectRatio', presARAttr); } - /* - // Make sure any internally referenced clipPath ids and their - // clip-path references are unique. + + // Make sure any internally referenced ids and their + // references are unique. // // This addresses the issue of having multiple instances of the - // same SVG on a page and only the first clipPath id is referenced. - // - // Browsers often shortcut the SVG Spec and don't use clipPaths - // contained in parent elements that are hidden, so if you hide the first - // SVG instance on the page, then all other instances lose their clipping. - // Reference: https://bugzilla.mozilla.org/show_bug.cgi?id=376027 - var clipPaths = svg.querySelectorAll('defs clipPath[id]'); - var newClipPathName; - for (var g = 0, clipPathsLen = clipPaths.length; g < clipPathsLen; g++) { - newClipPathName = clipPaths[g].id + '-' + injectCount; - // :NOTE: using a substring match attr selector here to deal with IE "adding extra quotes in url() attrs" - var usingClipPath = svg.querySelectorAll('[clip-path*="' + clipPaths[g].id + '"]'); - for (var h = 0, usingClipPathLen = usingClipPath.length; h < usingClipPathLen; h++) { - usingClipPath[h].setAttribute('clip-path', 'url(#' + newClipPathName + ')'); - } - clipPaths[g].id = newClipPathName; - } - - // Do the same for masks - var masks = svg.querySelectorAll('defs mask[id]'); - var newMaskName; - for (var i = 0, masksLen = masks.length; i < masksLen; i++) { - newMaskName = masks[i].id + '-' + injectCount; - // :NOTE: using a substring match attr selector here to deal with IE "adding extra quotes in url() attrs" - var usingMask = svg.querySelectorAll('[mask*="' + masks[i].id + '"]'); - for (var j = 0, usingMaskLen = usingMask.length; j < usingMaskLen; j++) { - usingMask[j].setAttribute('mask', 'url(#' + newMaskName + ')'); - } - masks[i].id = newMaskName; - } - */ - // suffix the masks, gradients, clipPaths and + // same SVG on a page and only the first clipPath, gradient, mask or filter id is referenced. prefixIdReferences(svg, injectCount); @@ -669,7 +636,7 @@ if ((svgClassList.indexOf(removeStylesClass)>=0 || removeAllStyles) && (svgClassList.indexOf(keepStylesClass)<0) ) { // remove the styletag if the removeStylesClass is applied to the SVG - console.log('remove styleTag', styleTag); + //console.log('remove styleTag', styleTag); styleTag.parentNode.removeChild(styleTag); } else { @@ -788,7 +755,7 @@ style.appendChild(document.createTextNode(css)); } head.appendChild(style); - console.log( 'default class written: ', css ); + console.info( 'default class written: ', css ); } } From 06e6dfdbd355286255a293510382672dc62d2ec5 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Wed, 10 Jun 2015 22:25:02 +0200 Subject: [PATCH 043/212] refactor to use an oop approach --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- package.json | 2 +- svg-injector.js | 614 ++++++++++++++++++++------------------- 4 files changed, 317 insertions(+), 303 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 825aafd..e5379e9 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","setFallbackClassNames","element","symbolId","classNames","className","defaultFallbackClassNames","slice","forEach","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","onlyInjectVisiblePart","removeStylesClass","keepStylesClass","fallbackClassName","prefixStyleTags","removeAllStyles","spritesheetURL","prefixFragIdClass","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultRemoveStylesClassName","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","Array","fn","scope","this","TypeError","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","push","queueRequest","callback","fileName","fragmentId","processRequestQueue","url","index","setTimeout","loadSvg","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","injectElement","evalScripts","pngFallback","imgUrl","fallbackUrl","imgUrlSplitByFId","test","perElementFallback","pop","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","SVGInjector","elements","options","done","forceFallbacks","eachCallback","each","htmlElement","css","head","style","createElement","type","styleSheet","cssText","createTextNode","elementsLoaded","module","exports","define","amd"],"mappings":";;;;;;;CAQC,SAAUA,EAAQC,GAEjB,YA8BA,SAASC,GAAcC,GACrBA,EAAOA,EAAKC,MAAM,IAMlB,KAJA,GAAIC,MACAC,EAAIH,EAAKI,OACTC,KAEGF,KACAD,EAAKI,eAAeN,EAAKG,MAC5BD,EAAKF,EAAKG,IAAM,EAChBE,EAAIE,QAAQP,EAAKG,IAGrB,OAAOE,GAAIG,KAAK,KAGlB,QAASC,GAAWC,GAClB,SAAUA,GAAOA,EAAIC,aAAeD,EAAIE,MAAQF,EAAIG,OAGtD,QAASC,GAAQJ,GACf,MAA+C,mBAAxCK,OAAOC,UAAUC,SAASL,KAAKF,GAGxC,QAASQ,GAAoBC,EAAIC,GAC/B,GAAIC,GAAaF,EAAGG,aAAa,QACjCD,GAAaA,EAAaA,EAAa,GAEpCP,EAAQM,KACTA,EAAgBA,EAAcZ,KAAK,MAGrCY,EAAgBC,EAAa,IAAMD,EAEnCD,EAAGI,aAAa,QAASxB,EAAcqB,IAuBzC,QAASI,GAAsBC,EAASC,EAAUC,GAChD,GAAIC,GAAoC,mBAAfD,GAA8BE,EAA4BF,EAAWG,MAAM,EAGpGC,GAAQnB,KACNgB,EACA,SAASI,EAAcC,GACrBL,EAAUK,GAAOD,EAAaE,QAAQ,KAAMR,KAIhDR,EAAoBO,EAASG,GAG/B,QAASO,GAAyBV,EAASC,EAAUU,GACnDA,EAAqD,mBAAvBA,GAAsCP,EAA0BC,MAAM,GAAKM,EAAmBN,MAAM,EAElI,IAAIO,GAAgBZ,EAAQH,aAAa,QACtCe,KAEDN,EAAQnB,KACNwB,EACA,SAASJ,EAAcC,GACrBD,EAAeA,EAAaE,QAAQ,KAAMR,GACtCW,EAAcC,QAAQN,IAAiB,IAEzCK,EAAgBA,EAAcH,QAAQF,EAAc,OAM1DP,EAAQF,aAAa,QAASxB,EAAcsC,KAKhD,QAASE,GAAmBC,EAAKC,GAC/B,GAQIC,GAAKC,EAAWC,EARhBC,IACDH,IAAI,iBAAkBI,KAAK,SAC3BJ,IAAI,iBAAkBI,KAAK,SAC3BJ,IAAI,WAAYI,KAAK,cACrBJ,IAAI,OAAQI,KAAK,SACjBJ,IAAI,SAAUI,KAAK,UAKtBf,GAAQnB,KAAKiC,EAAM,SAASE,GAC1BL,EAAMK,EAAKL,IACXC,EAAYI,EAAKD,IAEjB,KAAK,GADDE,GAAcR,EAAIS,iBAAiBP,EAAM,QACpCQ,EAAI,EAAGC,EAASH,EAAY5C,OAAY+C,EAAJD,EAAYA,IAAK,CAC5DN,EAAUI,EAAYE,GAAGE,GAAK,IAAMX,CAIpC,KAAK,GADDY,GAAgBb,EAAIS,iBAAiB,IAAIN,EAAU,MAAQK,EAAYE,GAAGE,GAAK,MAC1EE,EAAI,EAAGC,EAAmBF,EAAcjD,OAAYmD,EAAJD,EAAsBA,IAC7ED,EAAcC,GAAG/B,aAAaoB,EAAW,QAAUC,EAAU,IAE/DI,GAAYE,GAAGE,GAAKR,KAhJ1B,GAeIY,GAAuBC,EAAmBC,EAAiBC,EAC3DC,EAAiBC,EAAiBC,EAAgBC,EAhBlDC,EAAQ,6BACRC,EAAU,+BACVC,EAAyB,SACzBC,EAA2BD,EAAyB,KAEpDE,EAAkBF,EAClBG,EAAoBF,EAEpBtC,GAA6BuC,GAC7BE,EAA+B,OAI/BC,EAAuC,UAA7B1E,EAAO2E,SAASC,SAC1BC,EAAgB5E,EAAS6E,eAAeC,WAAW,oDAAqD,OAsDxG7C,EAAU8C,MAAM7D,UAAUe,SAAW,SAAU+C,EAAIC,GACrD,GAAa,SAATC,MAA4B,OAATA,MAA+B,kBAAPF,GAC7C,KAAM,IAAIG,UAIZ,IAAI9E,GAAG+E,EAAMF,KAAK5E,SAAW,CAG7B,KAAKD,EAAI,EAAO+E,EAAJ/E,IAAWA,EACjBA,IAAK6E,OACPF,EAAGlE,KAAKmE,EAAOC,KAAK7E,GAAIA,EAAG6E,OA0E7BG,KAEAC,EAAc,EACdC,KAGAC,KAGAC,KAEAC,EAAiB,SAAUC,EAAeC,EAAeC,GAC3D,GAAIC,EAC8B,oBAAvBD,KAAsCA,GAAsB,KAAM,WAE7E,KAAI,GAAIxF,GAAE,EAAGA,EAAEsF,EAAcI,WAAWzF,OAAQD,IAC9CyF,EAAUH,EAAcI,WAAWC,KAAK3F,GACpCwF,EAAmBrD,QAAQsD,EAAQG,MAAQ,GAC7CL,EAAcnE,aAAaqE,EAAQG,KAAMH,EAAQI,QAKnDC,EAAmB,SAASC,GAC9B,GAAI1D,GAAM1C,EAASqG,gBAAgBnC,EAAO,MAO1C,OANAjC,GAAQnB,KAAKsF,EAAUE,WAAY,SAASC,GAE1C7D,EAAI8D,YAAYD,EAAME,WAAU,MAGlCf,EAAeU,EAAW1D,GACnBA,GAGLgE,EAAoB,SAASC,EAAUrB,EAAa5C,GACtD,GAAIkE,GAASlE,EAAIlB,aAAa,YAAYrB,MAAM,IAChD,IAAGyG,EAAOtG,OAAS,EAAG,CAEpB,GAAIuG,GAAsBD,EAAO,GAC7BE,EAAQ,GAAIC,QAAO,MAAQF,EAAsB,IAAK,KACtDG,EAAqBH,EAAsB,IAAMvB,CAErDqB,GAASM,YAAcN,EAASM,YAAY7E,QAAQ0E,EAAO,IAAME,EAAqB,KACtFtE,EAAIjB,aAAa,QAAUiB,EAAIlB,aAAa,SAAW,IAAMwF,KAI7DE,EAAe,SAASC,GAC1B,GAAIC,GAAeD,EAAW3F,aAAa,QAC3C,OAAO,GAAiB4F,EAAajH,MAAM,SAGzCkH,EAAuB,SAAS1F,GAClC,GAAI2F,GAAUJ,EAAavF,GACvB2B,EAAK,EAQT,OAPArB,GAAQnB,KAAKwG,EAAS,SAAUC,GAE3BA,EAAS/E,QAAQ+B,IAAsB,IACxCjB,EAAKiE,EAASnF,QAAQmC,EAAmB,OAItCjB,GAGLkE,EAAW,SAASC,EAAWC,GAEjC,GAAIC,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAqB,EACrBC,EAAa,IAEjB,IAAcC,SAAXT,EACD,MAAOD,GAAUhB,WAAU,EAI3B,IADAkB,EAAUF,EAAUW,eAAeV,GACnC,CAQA,GAHAI,EAAcH,EAAQnG,aAAa,WACnCqG,EAAUC,EAAY3H,MAAM,KAExBwH,YAAmBU,kBAErBT,EAASzB,EAAiBwB,GAC1BM,GAAqB,MAGlB,IAAIN,YAAmBW,gBAAgB,CAE1C,GADAJ,EAAa,KACTxE,EAAuB,CACzB,GAAI6E,GAAW,YAAcV,EAAQ,GAAK,cAAcA,EAAQ,GAAG,IAEnEE,MACIS,KAAKC,IAAIZ,EAAQ,IAAM,IACzBE,EAAuBW,EAAIb,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEhCW,KAAKC,IAAIZ,EAAQ,IAAM,IACzBE,EAAuBY,EAAId,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEpCK,EAAaT,EAAUmB,cAAcL,GAEvC,GAAIL,GAAeA,YAAsBW,eAAgB,CACvDjB,EAASM,EAAWzB,WAAU,EAE9B,KAAK,GAAIqC,KAAQf,GACF,UAATe,GAA6B,WAATA,GACtBlB,EAAOmB,gBAAgBD,OAIxB,IAAGZ,GAAeA,YAAsBc,eAAgB,CAE3D,GAAIC,GAAmBxB,EAAUW,eAC7BF,EAAWgB,eAAe/E,EAAS,QAAQgF,OAAO,GAEtDvB,GAASzB,EAAiB8C,GAC1BnB,EAAcmB,EAAiBzH,aAAa,WAC5CqG,EAAUC,EAAY3H,MAAM,KAC5B8H,GAAqB,MAMrBA,IAAqB,EACrBL,EAASH,EAAUhB,WAAU,GAK7BwB,IACFL,EAAOnG,aAAa,UAAWoG,EAAQnH,KAAK,MAC5CkH,EAAOnG,aAAa,QAASoG,EAAQ,GAAG,MACxCD,EAAOnG,aAAa,SAAUoG,EAAQ,GAAG,OAI3CG,EAAed,EAAaU,EAC5B,IAAIwB,GAAkBnF,EAAoByD,CAK1C,OAJIM,GAAaxF,QAAQ4G,GAAiB,IACxCpB,EAAaqB,KAAKD,GAClBxB,EAAOnG,aAAa,QAASuG,EAAatH,KAAK,OAE1CkH,IAKP0B,EAAe,SAAUC,EAAUC,EAAU9B,GAC/ClC,EAAagE,GAAYhE,EAAagE,OACtChE,EAAagE,GAAUH,MAAME,SAAWA,EAAUE,WAAa/B,KAG7DgC,EAAsB,SAAUC,GAClC,IAAK,GAAItJ,GAAI,EAAG+E,EAAMI,EAAamE,GAAKrJ,OAAY8E,EAAJ/E,EAASA,KAGvD,SAAWuJ,GACTC,WAAW,WACTrE,EAAamE,GAAKC,GAAOL,SAAS/B,EAASnC,EAASsE,GAAMnE,EAAamE,GAAKC,GAAOH,cAClF,IACFpJ,IAKHyJ,EAAU,SAAUH,EAAKJ,GAC3B,GAAIQ,GAAQP,EAAU9B,CAKtB,IAJAqC,EAASJ,EAAIxJ,MAAM,KACnBqJ,EAAWO,EAAO,GAClBrC,EAA4B,IAAlBqC,EAAOzJ,OAAgByJ,EAAO,GAAK5B,OAElBA,SAAvB9C,EAASmE,GACPnE,EAASmE,YAAqBX,eAEhCU,EAAS/B,EAASnC,EAASmE,GAAW9B,IAItC4B,EAAaC,EAAUC,EAAU9B,OAGhC,CAEH,IAAK3H,EAAOiK,eAEV,MADAT,GAAS,4CACF,CAITlE,GAASmE,MACTF,EAAaC,EAAUC,EAAU9B,EAEjC,IAAIuC,GAAc,GAAID,eAEtBC,GAAYC,mBAAqB,WAE/B,GAA+B,IAA3BD,EAAYE,WAAkB,CAGhC,GAA2B,MAAvBF,EAAYG,QAA8C,OAA5BH,EAAYI,YAM5C,MALAd,GAAS,4BAA8BC,GAEnC/E,GAAS8E,EAAS,+IAEtBA,KACO,CAIT,MAA2B,MAAvBU,EAAYG,QAAmB3F,GAAkC,IAAvBwF,EAAYG,QAyCxD,MADAb,GAAS,0CAA4CU,EAAYG,OAAS,IAAMH,EAAYK,aACrF,CAtCP,IAAIL,EAAYI,sBAAuBE,UAErClF,EAASmE,GAAYS,EAAYI,YAAYG,oBAW1C,IAAIC,WAAcA,oBAAqBC,UAAW,CACrD,GAAIC,EACJ,KACE,GAAIC,GAAS,GAAIH,UACjBE,GAASC,EAAOC,gBAAgBZ,EAAYa,aAAc,YAE5D,MAAOC,GACLJ,EAASxC,OAGX,IAAKwC,GAAUA,EAAOK,qBAAqB,eAAe1K,OAExD,MADAiJ,GAAS,6BAA+BI,IACjC,CAIPtE,GAASmE,GAAYmB,EAAOH,gBAKhCd,EAAoBF,KAS1BS,EAAYgB,KAAK,MAAOzB,GAIpBS,EAAYiB,kBAAkBjB,EAAYiB,iBAAiB,YAE/DjB,EAAYkB,SAKZC,EAAgB,SAAU/J,EAAIgK,EAAaC,EAAa/B,GAC1D,GAAIgC,EAEDvH,MAAmB,EAEpBuH,EAASlK,EAAGG,aAAa,aAAeH,EAAGG,aAAa,QAGxD+J,EAASvH,EAAiB,IAAMqD,EAAqBhG,GAErDA,EAAGI,aAAa,WAAY8J,GAG9B,IACIC,GADAC,EAAmBF,EAAOpL,MAAM,IAIpC,KAAK,SAAWuL,KAAKH,GAEnB,WADAhC,GAAS,wDAA0DgC,EAKrE,KAAI3G,EAKA,CAKF,GAAI+G,GAAqBtK,EAAGG,aAAa,kBAAoBH,EAAGG,aAAa,WAqC7E,aAlCImK,GACFtK,EAAGI,aAAa,MAAOkK,GACvBpC,EAAS,OAGF+B,GAGLE,EADEC,EAAiBnL,OAAO,EACZmL,EAAiB,GAAK,OAGtBF,EAAOpL,MAAM,KAAKyL,MAAMxJ,QAAQ,OAAQ,QAGrDpB,EAAQ6C,GACTnC,EAAsBL,EAAIoK,EAAiB,GAAI5H,GAEzClD,EAAWkD,GAEjBA,EAAkBxC,EAAIoK,EAAiB,IAEJ,gBAAtB5H,GACbzC,EAAoBC,EAAIwC,GAGxBxC,EAAGI,aAAa,MAAO6J,EAAc,IAAME,GAE7CjC,EAAS,OAITA,EAAS,uEA3CRvI,EAAQ6C,IACTxB,EAAyBhB,EAAIoK,EAAiB,GAAI5H,GAoDjB,KAAjC0B,EAAiB/C,QAAQnB,KAM7BkE,EAAiB8D,KAAKhI,GAGtBA,EAAGI,aAAa,MAAO,IAGvBqI,EAAQyB,EAAQ,SAAU7I,GAExB,GAAmB,mBAARA,IAAsC,gBAARA,GAEvC,MADA6G,GAAS7G,IACF,CAGT,IAAImJ,GAAQxK,EAAGG,aAAa,KACxBqK,IACFnJ,EAAIjB,aAAa,KAAMoK,EAGzB,IAAIC,GAAWzK,EAAGG,aAAa,QAC3BsK,IACFpJ,EAAIjB,aAAa,QAASqK,EAI5B,IAAIC,MAAgBC,OAAOtJ,EAAIlB,aAAa,aAAgB,eAAgBH,EAAGG,aAAa,cAAgBd,KAAK,IACjHgC,GAAIjB,aAAa,QAASxB,EAAc8L,GAExC,IAAIE,GAAW5K,EAAGG,aAAa,QAC3ByK,IACFvJ,EAAIjB,aAAa,QAASwK,EAI5B,IAAIC,MAAaC,OAAOrL,KAAKO,EAAG0E,WAAY,SAAUqG,GACpD,MAAO,mBAAqBV,KAAKU,EAAGnG,OAEtChE,GAAQnB,KAAKoL,EAAS,SAAUG,GAC1BA,EAASpG,MAAQoG,EAASnG,OAC5BxD,EAAIjB,aAAa4K,EAASpG,KAAMoG,EAASnG,QAK7C,IAAIoG,GAAajL,EAAGG,aAAa,sBAC9B8K,IACD5J,EAAIjB,aAAa,sBAAuB6K,GAS1C7J,EAAmBC,EAAK4C,GAIxB5C,EAAIqG,gBAAgB,UAUpB,KAAK,GAFDwD,GAAQC,EAFRC,EAAU/J,EAAIS,iBAAiB,UAC/BuJ,KAGKC,EAAI,EAAGC,EAAaH,EAAQnM,OAAYsM,EAAJD,EAAgBA,IAC3DH,EAAaC,EAAQE,GAAGnL,aAAa,QAIhCgL,GAA6B,2BAAfA,GAA0D,2BAAfA,IAG5DD,EAASE,EAAQE,GAAGE,WAAaJ,EAAQE,GAAG1F,YAG5CyF,EAAcrD,KAAKkD,GAGnB7J,EAAIoK,YAAYL,EAAQE,IAK5B,IAAID,EAAcpM,OAAS,IAAsB,WAAhB+K,GAA6C,SAAhBA,IAA2B5F,EAAW8F,IAAW,CAC7G,IAAK,GAAIwB,GAAI,EAAGC,EAAmBN,EAAcpM,OAAY0M,EAAJD,EAAsBA,IAQ7E,GAAIrC,UAASgC,EAAcK,IAAIhN,EAIjC0F,GAAW8F,IAAU,EAIvB,GAAI0B,GAAYvK,EAAIS,iBAAiB,QAGrClB,GAAQnB,KAAKmM,EAAW,SAAUtG,GAChC,GAAIuG,GAAehG,EAAaxE,IAC3BwK,EAAa1K,QAAQmB,IAAoB,GAAKI,IAAqBmJ,EAAa1K,QAAQoB,GAAiB,EAI5G+C,EAASwG,WAAWL,YAAYnG,GAG7B7C,EACD4C,EAAkBC,EAAUrB,EAAa5C,GAQzCiE,EAASM,aAAe,KAQ9B5F,EAAG8L,WAAWC,aAAa1K,EAAKrB,SAIzBkE,GAAiBA,EAAiB/C,QAAQnB,IACjDA,EAAK,KAGLiE,IAEAiE,EAAS7G,OAmBT2K,EAAc,SAAUC,EAAUC,EAASC,GAG7CD,EAAUA,KAMV,IAAIlC,GAAckC,EAAQlC,aAAe,SAGrCC,EAAciC,EAAQjC,cAAe,CAKzC5H,GAAwB6J,EAAQ7J,wBAAyB,EAEzDE,EAAuD,mBAA5B2J,GAAQ3J,gBACjC,GAAK2J,EAAQ3J,gBAEfU,EAAuD,mBAA5BiJ,GAAQjJ,gBACjCF,EAAyBmJ,EAAQjJ,gBAEnCC,EAA2D,mBAA9BgJ,GAAQhJ,kBACnCF,EAA2BkJ,EAAQhJ,kBAErCZ,EAA0D,mBAA9B4J,GAAQ5J,kBAClCa,EAA+B+I,EAAQ5J,kBAEzCI,EAAsD,mBAA5BwJ,GAAQxJ,iBAChC,EAAQwJ,EAAQxJ,gBAElBF,EAA0D,mBAA9B0J,GAAQ1J,kBAClC9B,EAA4BwL,EAAQ1J,kBAEtCC,EAAuD,mBAA5ByJ,GAAQzJ,iBACjC,EAAOyJ,EAAQzJ,gBAEjBE,EAAoD,mBAA3BuJ,GAAQvJ,gBAA6D,KAA3BuJ,EAAQvJ,gBACzE,EAAQuJ,EAAQvJ,eAElBC,EAAoBM,EAGjBgJ,EAAQE,iBACT7I,GAAgB,EAIlB,IAAI8I,GAAeH,EAAQI,KACvBC,EAAc5N,EAAS4I,cAAc,OAEzC,IAAGhE,GAED,GADAgJ,EAAY9L,UAAUM,QAAQ,SAAU,IACC,mBAA9BmL,GAAQ5J,kBAAmC,CACpD,GAAIkK,GAAM,OAASlK,EAAoB,yBACrCmK,EAAO9N,EAAS8N,MAAQ9N,EAASgL,qBAAqB,QAAQ,GAC9D+C,EAAQ/N,EAASgO,cAAc,QAEjCD,GAAME,KAAO,WACTF,EAAMG,WACRH,EAAMG,WAAWC,QAAUN,EAG3BE,EAAMvH,YAAYxG,EAASoO,eAAeP,IAE5CC,EAAKtH,YAAYuH,QAMnBH,GAAY9L,WAAa,SAI3B,IAAwBqG,SAApBmF,EAAShN,OAAsB,CACjC,GAAI+N,GAAiB,CACrBpM,GAAQnB,KAAKwM,EAAU,SAAU3L,GAC/ByJ,EAAczJ,EAAS0J,EAAaC,EAAa,SAAU5I,GACrDgL,GAAwC,kBAAjBA,IAA6BA,EAAahL,GACjE8K,GAAQF,EAAShN,WAAa+N,GAAgBb,EAAKa,WAKvDf,GACFlC,EAAckC,EAAUjC,EAAaC,EAAa,SAAU5I,GACtDgL,GAAwC,kBAAjBA,IAA6BA,EAAahL,GACjE8K,GAAMA,EAAK,GACfF,EAAW,OAITE,GAAMA,EAAK,GAOC,iBAAXc,SAAiD,gBAAnBA,QAAOC,QAC9CD,OAAOC,QAAUA,QAAUlB,EAGF,kBAAXmB,SAAyBA,OAAOC,IAC9CD,OAAO,WACL,MAAOnB,KAIgB,gBAAXtN,KACdA,EAAOsN,YAAcA,IAIvBtN,OAAQC"} \ No newline at end of file +{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","svgNS","xlinkNS","defaultSpriteClassName","defaultSpriteClassIdName","spriteClassName","spriteClassIdName","defaultFallbackClassNames","defaultRemoveStylesClassName","uniqueClasses","list","split","hash","i","length","out","hasOwnProperty","unshift","join","isFunction","obj","constructor","call","apply","isArray","Object","prototype","toString","svgElemSetClassName","el","newClassNames","curClasses","getAttribute","setAttribute","forEach","Array","fn","scope","this","TypeError","len","setFallbackClassNames","element","symbolId","classNames","className","slice","curClassName","idx","replace","removeFallbackClassNames","fallbackClassNames","curClassNames","indexOf","prefixIdReferences","svg","suffix","def","attribute","newName","defs","attr","elem","definitions","querySelectorAll","g","defLen","id","usingElements","h","usingElementsLen","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","injectCount","srcArr","origPrefixClassName","regex","RegExp","newPrefixClassName","textContent","getClassList","svgToCheck","curClassAttr","getSpriteIdFromClass","classes","curClass","cloneSvg","config","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","undefined","getElementById","SVGSymbolElement","SVGViewElement","onlyInjectVisiblePart","selector","Math","abs","parseInt","x","y","querySelector","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","getAttributeNS","substr","fragIdClassName","prefixFragIdClass","push","queueRequest","requestQueue","callback","fileName","state","fragmentId","processRequestQueue","svgCache","url","onElementInjectedCallback","injections","ranScripts","index","setTimeout","loadSvg","env","onLoadCompleteCb","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","isLocal","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","writeDefaultClass","removeStylesClass","css","head","style","createElement","type","styleSheet","cssText","createTextNode","replaceNoSVGClass","noSVGClassName","hasSvgSupport","onLoadSVG","imgId","imgTitle","classMerge","concat","imgStyle","imgData","filter","at","test","dataAttr","presARAttr","count","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","evalScripts","l","scriptsToEvalLen","styleTags","svgClassList","removeAllStyles","keepStylesClass","parentNode","prefixStyleTags","replaceChild","elements","SVGInjector","options","location","protocol","implementation","hasFeature","pngFallback","fallbackClassName","spritesheetURL","forceFallbacks","inject","onDoneCallback","eachCallback","elementsLoaded","ctx","injectElement","imgUrl","fallbackUrl","imgUrlSplitByFId","perElementFallback","pop","module","exports","define","amd"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GAEjB,YAGA,IAAIC,GAAQ,6BACRC,EAAU,+BACVC,EAAyB,SACzBC,EAA2BD,EAAyB,KAEpDE,EAAkBF,EAClBG,EAAoBF,EAEpBG,GAA6BF,GAC7BG,EAA+B,OAW/BC,EAAgB,SAASC,GAC3BA,EAAOA,EAAKC,MAAM,IAMlB,KAJA,GAAIC,MACAC,EAAIH,EAAKI,OACTC,KAEGF,KACAD,EAAKI,eAAeN,EAAKG,MAC5BD,EAAKF,EAAKG,IAAM,EAChBE,EAAIE,QAAQP,EAAKG,IAGrB,OAAOE,GAAIG,KAAK,MAGdC,EAAa,SAASC,GACxB,SAAUA,GAAOA,EAAIC,aAAeD,EAAIE,MAAQF,EAAIG,QAGlDC,EAAU,SAASJ,GACrB,MAA+C,mBAAxCK,OAAOC,UAAUC,SAASL,KAAKF,IAGpCQ,EAAsB,SAASC,EAAIC,GACrC,GAAIC,GAAaF,EAAGG,aAAa,QACjCD,GAAaA,EAAaA,EAAa,GAEpCP,EAAQM,KACTA,EAAgBA,EAAcZ,KAAK,MAGrCY,EAAgBC,EAAa,IAAMD,EAEnCD,EAAGI,aAAa,QAASxB,EAAcqB,KAOrCI,EAAUC,MAAMT,UAAUQ,SAAW,SAAUE,EAAIC,GACrD,GAAa,SAATC,MAA4B,OAATA,MAA+B,kBAAPF,GAC7C,KAAM,IAAIG,UAIZ,IAAI1B,GAAG2B,EAAMF,KAAKxB,SAAW,CAG7B,KAAKD,EAAI,EAAO2B,EAAJ3B,IAAWA,EACjBA,IAAKyB,OACPF,EAAGd,KAAKe,EAAOC,KAAKzB,GAAIA,EAAGyB,OAK7BG,EAAwB,SAASC,EAASC,EAAUC,GACtD,GAAIC,GAAoC,mBAAfD,GAA8BrC,EAA4BqC,EAAWE,MAAM,EAGpGZ,GAAQZ,KACNuB,EACA,SAASE,EAAcC,GACrBH,EAAUG,GAAOD,EAAaE,QAAQ,KAAMN,KAIhDf,EAAoBc,EAASG,IAG3BK,EAA2B,SAASR,EAASC,EAAUQ,GACzDA,EAAqD,mBAAvBA,GAAsC5C,EAA0BuC,MAAM,GAAKK,EAAmBL,MAAM,EAElI,IAAIM,GAAgBV,EAAQV,aAAa,QACtCoB,KAEDlB,EAAQZ,KACN6B,EACA,SAASJ,GACPA,EAAeA,EAAaE,QAAQ,KAAMN,GACtCS,EAAcC,QAAQN,IAAiB,IAEzCK,EAAgBA,EAAcH,QAAQF,EAAc,OAM1DL,EAAQT,aAAa,QAASxB,EAAc2C,MAK5CE,EAAqB,SAASC,EAAKC,GACrC,GAQIC,GAAKC,EAAWC,EARhBC,IACDH,IAAI,iBAAkBI,KAAK,SAC3BJ,IAAI,iBAAkBI,KAAK,SAC3BJ,IAAI,WAAYI,KAAK,cACrBJ,IAAI,OAAQI,KAAK,SACjBJ,IAAI,SAAUI,KAAK,UAKtB3B,GAAQZ,KAAKsC,EAAM,SAASE,GAC1BL,EAAMK,EAAKL,IACXC,EAAYI,EAAKD,IAEjB,KAAK,GADDE,GAAcR,EAAIS,iBAAiBP,EAAM,QACpCQ,EAAI,EAAGC,EAASH,EAAYjD,OAAYoD,EAAJD,EAAYA,IAAK,CAC5DN,EAAUI,EAAYE,GAAGE,GAAK,IAAMX,CAIpC,KAAK,GADDY,GAAgBb,EAAIS,iBAAiB,IAAIN,EAAU,MAAQK,EAAYE,GAAGE,GAAK,MAC1EE,EAAI,EAAGC,EAAmBF,EAActD,OAAYwD,EAAJD,EAAsBA,IAC7ED,EAAcC,GAAGpC,aAAayB,EAAW,QAAUC,EAAU,IAE/DI,GAAYE,GAAGE,GAAKR,MAMtBY,EAAiB,SAAUC,EAAeC,EAAeC,GAC3D,GAAIC,EAC8B,oBAAvBD,KAAsCA,GAAsB,KAAM,WAE7E,KAAI,GAAI7D,GAAE,EAAGA,EAAE2D,EAAcI,WAAW9D,OAAQD,IAC9C8D,EAAUH,EAAcI,WAAWC,KAAKhE,GACpC6D,EAAmBrB,QAAQsB,EAAQG,MAAQ,GAC7CL,EAAcxC,aAAa0C,EAAQG,KAAMH,EAAQI,QAKnDC,EAAmB,SAASC,GAC9B,GAAI1B,GAAMvD,EAASkF,gBAAgBjF,EAAO,MAO1C,OANAiC,GAAQZ,KAAK2D,EAAUE,WAAY,SAASC,GAE1C7B,EAAI8B,YAAYD,EAAME,WAAU,MAGlCf,EAAeU,EAAW1B,GACnBA,GAGLgC,EAAoB,SAASC,EAAUC,EAAalC,GACtD,GAAImC,GAASnC,EAAIvB,aAAa,YAAYrB,MAAM,IAChD,IAAG+E,EAAO5E,OAAS,EAAG,CAEpB,GAAI6E,GAAsBD,EAAO,GAC7BE,EAAQ,GAAIC,QAAO,MAAQF,EAAsB,IAAK,KACtDG,EAAqBH,EAAsB,IAAMF,CAErDD,GAASO,YAAcP,EAASO,YAAY9C,QAAQ2C,EAAO,IAAME,EAAqB,KACtFvC,EAAItB,aAAa,QAAUsB,EAAIvB,aAAa,SAAW,IAAM8D,KAI7DE,EAAe,SAASC,GAC1B,GAAIC,GAAeD,EAAWjE,aAAa,QAC3C,OAAO,GAAiBkE,EAAavF,MAAM,SAGzCwF,EAAuB,SAASzD,GAClC,GAAI0D,GAAUJ,EAAatD,GACvByB,EAAK,EAQT,OAPAjC,GAAQZ,KAAK8E,EAAS,SAAUC,GAE3BA,EAAShD,QAAQ/C,IAAsB,IACxC6D,EAAKkC,EAASpD,QAAQ3C,EAAmB,OAItC6D,GAGLmC,EAAW,SAASC,EAAQC,EAAWC,GAEzC,GAAIC,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAqB,EACrBC,EAAa,IAEjB,IAAcC,SAAXT,EACD,MAAOD,GAAUlB,WAAU,EAI3B,IADAoB,EAAUF,EAAUW,eAAeV,GACnC,CAQA,GAHAI,EAAcH,EAAQ1E,aAAa,WACnC4E,EAAUC,EAAYlG,MAAM,KAExB+F,YAAmBU,kBAErBT,EAAS3B,EAAiB0B,GAC1BM,GAAqB,MAGlB,IAAIN,YAAmBW,gBAAgB,CAE1C,GADAJ,EAAa,KACTV,EAAOe,sBAAuB,CAChC,GAAIC,GAAW,YAAcX,EAAQ,GAAK,cAAcA,EAAQ,GAAG,IAEnEE,MACIU,KAAKC,IAAIC,SAASd,EAAQ,KAAO,IACnCE,EAAuBa,EAAIf,EAAQ,GACnCW,GAAY,OAASX,EAAQ,GAAK,MAEhCY,KAAKC,IAAIC,SAASd,EAAQ,KAAO,IACnCE,EAAuBc,EAAIhB,EAAQ,GACnCW,GAAY,OAASX,EAAQ,GAAK,MAEpCK,EAAaT,EAAUqB,cAAcN,GAEvC,GAAIN,GAAeA,YAAsBa,eAAgB,CACvDnB,EAASM,EAAW3B,WAAU,EAE9B,KAAK,GAAIyC,KAAQjB,GACF,UAATiB,GAA6B,WAATA,GACtBpB,EAAOqB,gBAAgBD,OAIxB,IAAGd,GAAeA,YAAsBgB,eAAgB,CAE3D,GAAIC,GAAmB1B,EAAUW,eAC7BF,EAAWkB,eAAejI,EAAS,QAAQkI,OAAO,GAEtDzB,GAAS3B,EAAiBkD,GAC1BrB,EAAcqB,EAAiBlG,aAAa,WAC5C4E,EAAUC,EAAYlG,MAAM,KAC5BqG,GAAqB,MAMrBA,IAAqB,EACrBL,EAASH,EAAUlB,WAAU,GAK7B0B,IACFL,EAAO1E,aAAa,UAAW2E,EAAQ1F,KAAK,MAC5CyF,EAAO1E,aAAa,QAAS2E,EAAQ,GAAG,MACxCD,EAAO1E,aAAa,SAAU2E,EAAQ,GAAG,OAI3CG,EAAef,EAAaW,EAC5B,IAAI0B,GAAkB9B,EAAO+B,kBAAoB7B,CAKjD,OAJIM,GAAa1D,QAAQgF,GAAiB,IACxCtB,EAAawB,KAAKF,GAClB1B,EAAO1E,aAAa,QAAS8E,EAAa7F,KAAK,OAE1CyF,IAKP6B,EAAe,SAASC,EAAcC,EAAUC,EAAUlC,EAAQmC,GACpEH,EAAaE,GAAYF,EAAaE,OACtCF,EAAaE,GAAUJ,MAAMG,SAASA,EAAUG,WAAWpC,EAAQmC,MAAMA,KAGvEE,EAAsB,SAASC,EAAUxC,EAAQkC,EAAcO,EAAKC,EAA2BC,EAAYrH,EAAIsH,GACjH,IAAK,GAAItI,GAAI,EAAG2B,EAAMiG,EAAaO,GAAKlI,OAAY0B,EAAJ3B,EAASA,KAGvD,SAAWuI,GACTC,WAAW,WACTZ,EAAaO,GAAKI,GAAOV,SAASpC,EAASC,EAAQwC,EAASC,GAAMP,EAAaO,GAAKI,GAAOP,YAAaJ,EAAaO,GAAKI,GAAOR,QAChI,IACF/H,IAKHyI,EAAU,SAASL,EAA2BC,EAAYK,EAAKR,EAAUN,EAAclC,EAAQyC,EAAKnH,EAAIsH,EAAYK,GACtH,GAAIC,GAAQd,EAAUlC,EAClBmC,GAASK,0BAA0BA,EAA2BC,WAAWA,EAAY3C,OAAOA,EAAQyC,IAAIA,EAAKnH,GAAGA,EAAIsH,WAAWA,EAKnI,IAJAM,EAAST,EAAIrI,MAAM,KACnBgI,EAAWc,EAAO,GAClBhD,EAA4B,IAAlBgD,EAAO3I,OAAgB2I,EAAO,GAAKvC,OAElBA,SAAvB6B,EAASJ,GACPI,EAASJ,YAAqBb,eAEhC0B,EAAiBlD,EAASC,EAAQwC,EAASJ,GAAWlC,GAASmC,GAI/DJ,EAAaC,EAAce,EAAkBb,EAAUlC,EAAQmC,OAG9D,CAEH,IAAK7I,EAAO2J,eAEV,MADAT,GAA0B,4CACnB,CAITF,GAASJ,MACTH,EAAaC,EAAce,EAAkBb,EAAUlC,EAAQmC,EAE/D,IAAIe,GAAc,GAAID,eAEtBC,GAAYC,mBAAqB,WAE/B,GAA+B,IAA3BD,EAAYE,WAAkB,CAGhC,GAA2B,MAAvBF,EAAYG,QAA8C,OAA5BH,EAAYI,YAM5C,MALAP,GAAiB,4BAA8Bb,GAE3CY,EAAIS,SAASR,EAAiB,+IAElCA,KACO,CAIT,MAA2B,MAAvBG,EAAYG,QAAmBP,EAAIS,SAAkC,IAAvBL,EAAYG,QA0C5D,MADAb,GAA0B,0CAA4CU,EAAYG,OAAS,IAAMH,EAAYM,aACtG,CAvCP,IAAIN,EAAYI,sBAAuBG,UAErCnB,EAASJ,GAAYgB,EAAYI,YAAYI,oBAW1C,IAAIC,WAAcA,oBAAqBC,UAAW,CACrD,GAAIC,EACJ,KACE,GAAIC,GAAS,GAAIH,UACjBE,GAASC,EAAOC,gBAAgBb,EAAYc,aAAc,YAE5D,MAAOC,GACLJ,EAASpD,OAGX,IAAKoD,GAAUA,EAAOK,qBAAqB,eAAe7J,OAExD,MADA0I,GAAiB,6BAA+BR,IACzC,CAIPD,GAASJ,GAAY2B,EAAOH,gBAMhCrB,EAAoBC,EAAUxC,EAAQkC,EAAcE,EAAUM,EAA2BC,EAAYrH,EAAIsH,KAS/GQ,EAAYiB,KAAK,MAAOjC,GAIpBgB,EAAYkB,kBAAkBlB,EAAYkB,iBAAiB,YAE/DlB,EAAYmB,SAIZC,EAAoB,SAASC,GAC/B,GAAIC,GAAM,OAASD,EAAoB,yBACrCE,EAAOlL,EAASkL,MAAQlL,EAAS2K,qBAAqB,QAAQ,GAC9DQ,EAAQnL,EAASoL,cAAc,QAEjCD,GAAME,KAAO,WACTF,EAAMG,WACRH,EAAMG,WAAWC,QAAUN,EAG3BE,EAAM9F,YAAYrF,EAASwL,eAAeP,IAE5CC,EAAK7F,YAAY8F,IAIfM,EAAoB,SAAS/I,EAASgJ,EAAgBC,GACrDA,EACDjJ,EAAQG,UAAUI,QAAQyI,EAAgB,IAG1ChJ,EAAQG,WAAa,IAAM6I,GAK3BE,EAAY,SAASrI,EAAKqF,GAC5B,GAAmB,mBAARrF,IAAsC,gBAARA,GAEvC,MADAqF,GAAMF,SAASnF,IACR,CAGT,IAAIsI,GAAQjD,EAAM/G,GAAGG,aAAa,KAC9B6J,IACFtI,EAAItB,aAAa,KAAM4J,EAGzB,IAAIC,GAAWlD,EAAM/G,GAAGG,aAAa,QACjC8J,IACFvI,EAAItB,aAAa,QAAS6J,EAI5B,IAAIC,MAAgBC,OAAOzI,EAAIvB,aAAa,aAAgB,eAAgB4G,EAAM/G,GAAGG,aAAa,cAAgBd,KAAK,IACvHqC,GAAItB,aAAa,QAASxB,EAAcsL,GAExC,IAAIE,GAAWrD,EAAM/G,GAAGG,aAAa,QACjCiK,IACF1I,EAAItB,aAAa,QAASgK,EAI5B,IAAIC,MAAaC,OAAO7K,KAAKsH,EAAM/G,GAAG+C,WAAY,SAAUwH,GAC1D,MAAO,mBAAqBC,KAAKD,EAAGtH,OAEtC5C,GAAQZ,KAAK4K,EAAS,SAAUI,GAC1BA,EAASxH,MAAQwH,EAASvH,OAC5BxB,EAAItB,aAAaqK,EAASxH,KAAMwH,EAASvH,QAK7C,IAAIwH,GAAa3D,EAAM/G,GAAGG,aAAa,sBACpCuK,IACDhJ,EAAItB,aAAa,sBAAuBsK,GAS1CjJ,EAAmBC,EAAKqF,EAAMM,WAAWsD,OAIzCjJ,EAAIyE,gBAAgB,UAUpB,KAAK,GAFDyE,GAAQC,EAFRC,EAAUpJ,EAAIS,iBAAiB,UAC/B4I,KAGKC,EAAI,EAAGC,EAAaH,EAAQ7L,OAAYgM,EAAJD,EAAgBA,IAC3DH,EAAaC,EAAQE,GAAG7K,aAAa,QAIhC0K,GAA6B,2BAAfA,GAA0D,2BAAfA,IAG5DD,EAASE,EAAQE,GAAGE,WAAaJ,EAAQE,GAAG9G,YAG5C6G,EAAcrE,KAAKkE,GAGnBlJ,EAAIyJ,YAAYL,EAAQE,IAK5B,IAAID,EAAc9L,OAAS,IAA6B,WAAvByF,OAAO0G,aAAoD,SAAvB1G,OAAO0G,cAA4BrE,EAAMO,WAAWP,EAAMI,MAAQ,CACrI,IAAK,GAAIkE,GAAI,EAAGC,EAAmBP,EAAc9L,OAAYqM,EAAJD,EAAsBA,IAQ7E,GAAI7C,UAASuC,EAAcM,IAAInN,EAIjC6I,GAAMO,WAAWP,EAAMI,MAAO,EAIhC,GAAIoE,GAAY7J,EAAIS,iBAAiB,QAGrC9B,GAAQZ,KAAK8L,EAAW,SAAU5H,GAChC,GAAI6H,GAAerH,EAAazC,IAC3B8J,EAAahK,QAAQkD,OAAOyE,oBAAoB,GAAKzE,OAAO+G,kBAAqBD,EAAahK,QAAQkD,OAAOgH,iBAAiB,EAIjI/H,EAASgI,WAAWR,YAAYxH,GAG7Be,OAAOkH,gBACRlI,EAAkBC,EAAUoD,EAAMM,WAAWsD,MAAOjJ,GAQpDiC,EAASO,aAAe,KAQ9B6C,EAAM/G,GAAG2L,WAAWE,aAAanK,EAAKqF,EAAM/G,UAIrC+G,GAAMM,WAAWyE,SAAS/E,EAAMM,WAAWyE,SAAStK,QAAQuF,EAAM/G,KAIzE+G,EAAMM,WAAWsD,QAEjB5D,EAAMK,0BAA0B1F,IAkB9BqK,EAAc,SAAUC,GAG1BA,EAAUA,MAGVvL,KAAKiH,OACLjH,KAAKiH,IAAIS,QAAuC,UAA7BjK,EAAO+N,SAASC,SACnCzL,KAAKiH,IAAIoC,cAAgB3L,EAASgO,eAAeC,WAAW,oDAAqD,OAEjH3L,KAAKyG,YACLzG,KAAK4G,YACHsD,MAAO,EACPmB,aAGFrL,KAAKmG,gBACLnG,KAAK6G,cACL7G,KAAKiE,UAMLjE,KAAKiE,OAAO0G,YAAcY,EAAQZ,aAAe,SAGjD3K,KAAKiE,OAAO2H,YAAcL,EAAQK,cAAe,EAKjD5L,KAAKiE,OAAOe,sBAAwBuG,EAAQvG,wBAAyB,EAErEhF,KAAKiE,OAAOgH,gBAAuD,mBAA5BM,GAAQN,gBAC7C,GAAKM,EAAQN,gBAEfjL,KAAKiE,OAAOlG,gBAAuD,mBAA5BwN,GAAQxN,gBAC7CF,EAAyB0N,EAAQxN,gBAEnCiC,KAAKiE,OAAOjG,kBAA2D,mBAA9BuN,GAAQvN,kBAC/CF,EAA2ByN,EAAQvN,kBAErCgC,KAAKiE,OAAOyE,kBAA0D,mBAA9B6C,GAAQ7C,kBAC9CxK,EAA+BqN,EAAQ7C,kBAEzC1I,KAAKiE,OAAO+G,gBAAsD,mBAA5BO,GAAQP,iBAC5C,EAAQO,EAAQP,gBAElBhL,KAAKiE,OAAO4H,kBAA0D,mBAA9BN,GAAQM,kBAC9C5N,EAA4BsN,EAAQM,kBAEtC7L,KAAKiE,OAAOkH,gBAAuD,mBAA5BI,GAAQJ,iBAC7C,EAAOI,EAAQJ,gBAEjBnL,KAAKiE,OAAO6H,eAAoD,mBAA3BP,GAAQO,gBAA6D,KAA3BP,EAAQO,gBACrF,EAAQP,EAAQO,eAElB9L,KAAKiE,OAAO+B,kBAAoBhI,EAEhCgC,KAAKiE,OAAO8H,eAAoD,mBAA3BR,GAAQQ,gBAC3C,EAAQR,EAAQQ,eAEf/L,KAAKiE,OAAO8H,iBACb/L,KAAKiH,IAAIoC,eAAgB,GAG3BF,EAAkBzL,EAAS6H,cAAc,QAAS,SAAUvF,KAAKiH,IAAIoC,eAElErJ,KAAKiH,IAAIoC,eAAsD,mBAA9BkC,GAAQ7C,mBAC1CD,EAAkBzI,KAAKiE,OAAOyE,mBAQlC4C,GAAYlM,UAAU4M,OAAS,SAASX,EAAUY,EAAgBC,GAChE,GAAwBtH,SAApByG,EAAS7M,OAAsB,CACjC,GAAI2N,GAAiB,EACjBC,EAAMpM,IACVJ,GAAQZ,KAAKqM,EAAU,SAAUjL,GAC/BgM,EAAIC,cAAcjM,EAAS,SAAUa,GAC/BiL,GAAwC,kBAAjBA,IAA6BA,EAAajL,GACjEgL,GAAkBZ,EAAS7M,WAAa2N,GAAgBF,EAAeE,WAK3Ed,GACFrL,KAAKqM,cAAchB,EAAU,SAAUpK,GACjCiL,GAAwC,kBAAjBA,IAA6BA,EAAajL,GACjEgL,GAAgBA,EAAe,GACnCZ,EAAW,OAITY,GAAgBA,EAAe,IAQzCX,EAAYlM,UAAUiN,cAAgB,SAAU9M,EAAIoH,GAClD,GAAI2F,EAEDtM,MAAKiE,OAAO6H,kBAAmB,EAEhCQ,EAAS/M,EAAGG,aAAa,aAAeH,EAAGG,aAAa,QAGxD4M,EAAStM,KAAKiE,OAAO6H,eAAiB,IAAMjI,EAAqBtE,GAEjEA,EAAGI,aAAa,WAAY2M,GAG9B,IACIC,GADAC,EAAmBF,EAAOjO,MAAM,IAIpC,KAAK,SAAW0L,KAAKuC,GAEnB,WADA3F,GAA0B,wDAA0D2F,EAKtF,KAAItM,KAAKiH,IAAIoC,cAKT,CAKF,GAAIoD,GAAqBlN,EAAGG,aAAa,kBAAoBH,EAAGG,aAAa,WAqC7E,aAlCI+M,GACFlN,EAAGI,aAAa,MAAO8M,GACvB9F,EAA0B,OAGnB3G,KAAKiE,OAAO2H,aAGjBW,EADEC,EAAiBhO,OAAO,EACZgO,EAAiB,GAAK,OAGtBF,EAAOjO,MAAM,KAAKqO,MAAM/L,QAAQ,OAAQ,QAGrDzB,EAAQc,KAAKiE,OAAO4H,mBACrB1L,EAAsBZ,EAAIiN,EAAiB,GAAIxM,KAAKiE,OAAO4H,mBAErDhN,EAAWmB,KAAKiE,OAAO4H,mBAE7B7L,KAAKiE,OAAO4H,kBAAkBtM,EAAIiN,EAAiB,IAEJ,gBAAlCxM,MAAKiE,OAAO4H,kBACzBvM,EAAoBC,EAAIS,KAAKiE,OAAO4H,mBAGpCtM,EAAGI,aAAa,MAAOiM,YAAc,IAAMW,GAE7C5F,EAA0B,OAI1BA,EAA0B,uEA3CzBzH,EAAQc,KAAKiE,OAAO4H,oBACrBjL,EAAyBrB,EAAIiN,EAAiB,GAAIxM,KAAKiE,OAAO4H,mBAoDrB,KAAzC7L,KAAK4G,WAAWyE,SAAStK,QAAQxB,KAOrCS,KAAK4G,WAAWyE,SAASpF,KAAK1G,GAG9BA,EAAGI,aAAa,MAAO,IAGvBqH,EAAQL,EAA2B3G,KAAK4G,WAAY5G,KAAKiH,IAAKjH,KAAKyG,SAAUzG,KAAKmG,aAAcnG,KAAKiE,OAAQqI,EAAQ/M,EAAIS,KAAK6G,WAAYyC,KAOtH,gBAAXqD,SAAiD,gBAAnBA,QAAOC,QAC9CD,OAAOC,QAAUA,QAAUtB,EAGF,kBAAXuB,SAAyBA,OAAOC,IAC9CD,OAAO,WACL,MAAOvB,KAIgB,gBAAX7N,KACdA,EAAO6N,YAAcA,IAIvB7N,OAAQC"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 2b90c03..f173c96 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -5,5 +5,5 @@ * Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";function n(e){e=e.split(" ");for(var t={},n=e.length,r=[];n--;)t.hasOwnProperty(e[n])||(t[e[n]]=1,r.unshift(e[n]));return r.join(" ")}function r(e){return!!(e&&e.constructor&&e.call&&e.apply)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function a(e,t){var r=e.getAttribute("class");r=r?r:"",i(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",n(t))}function s(e,t,n){var r="undefined"==typeof n?S:n.slice(0);G.call(r,function(e,n){r[n]=e.replace("%s",t)}),a(e,r)}function l(e,t,r){r="undefined"==typeof r?S.slice(0):r.slice(0);var i=e.getAttribute("class");i&&(G.call(r,function(e,n){e=e.replace("%s",t),i.indexOf(e)>=0&&(i=i.replace(e,""))}),e.setAttribute("class",n(i)))}function o(e,t){var n,r,i,a=[{def:"linearGradient",attr:"fill"},{def:"radialGradient",attr:"fill"},{def:"clipPath",attr:"clip-path"},{def:"mask",attr:"mask"},{def:"filter",attr:"filter"}];G.call(a,function(a){n=a.def,r=a.attr;for(var s=e.querySelectorAll(n+"[id]"),l=0,o=s.length;o>l;l++){i=s[l].id+"-"+t;for(var u=e.querySelectorAll("["+r+'*="'+s[l].id+'"]'),c=0,f=u.length;f>c;c++)u[c].setAttribute(r,"url(#"+i+")");s[l].id=i}})}var u,c,f,p,d,v,g,h,y="http://www.w3.org/2000/svg",b="http://www.w3.org/1999/xlink",m="sprite",A=m+"--",w=m,x=A,S=[w],C="icon",N="file:"===e.location.protocol,j=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),G=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&e.call(t,this[n],n,this)},E={},T=0,V=[],k=[],O={},M=function(e,t,n){var r;"undefined"==typeof n&&(n=["id","viewBox"]);for(var i=0;i1){var i=r[1],a=new RegExp("\\."+i+" ","g"),s=i+"-"+t;e.textContent=e.textContent.replace(a,"."+s+" "),n.setAttribute("class",n.getAttribute("class")+" "+s)}},q=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},L=function(e){var t=q(e),n="";return G.call(t,function(e){e.indexOf(x)>=0&&(n=e.replace(x,""))}),n},I=function(e,t){var n,r,i,a,s,l,o=!1,c=null;if(void 0===t)return e.cloneNode(!0);if(n=e.getElementById(t)){if(a=n.getAttribute("viewBox"),i=a.split(" "),n instanceof SVGSymbolElement)r=B(n),o=!0;else if(n instanceof SVGViewElement){if(c=null,u){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';s={},Math.abs(i[0])>0&&(s.x=i[0],f+='[x="'+i[0]+'"]'),Math.abs(i[1])>0&&(s.y=i[1],f+='[y="'+i[1]+'"]'),c=e.querySelector(f)}if(c&&c instanceof SVGSVGElement){r=c.cloneNode(!0);for(var p in s)"width"!==p&&"height"!==p&&r.removeAttribute(p)}else if(c&&c instanceof SVGUseElement){var d=e.getElementById(c.getAttributeNS(b,"href").substr(1));r=B(d),a=d.getAttribute("viewBox"),i=a.split(" "),o=!0}else o=!0,r=e.cloneNode(!0)}o&&(r.setAttribute("viewBox",i.join(" ")),r.setAttribute("width",i[2]+"px"),r.setAttribute("height",i[3]+"px")),l=q(r);var v=h+t;return l.indexOf(v)<0&&(l.push(v),r.setAttribute("class",l.join(" "))),r}},P=function(e,t,n){k[t]=k[t]||[],k[t].push({callback:e,fragmentId:n})},F=function(e){for(var t=0,n=k[e].length;n>t;t++)!function(t){setTimeout(function(){k[e][t].callback(I(E[e],k[e][t].fragmentId))},0)}(t)},U=function(t,n){var r,i,a;if(r=t.split("#"),i=r[0],a=2===r.length?r[1]:void 0,void 0!==E[i])E[i]instanceof SVGSVGElement?n(I(E[i],a)):P(n,i,a);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;E[i]={},P(n,i,a);var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(404===s.status||null===s.responseXML)return n("Unable to load SVG file: "+i),N&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===s.status||N&&0===s.status))return n("There was a problem injecting the SVG: "+s.status+" "+s.statusText),!1;if(s.responseXML instanceof Document)E[i]=s.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var r=new DOMParser;e=r.parseFromString(s.responseText,"text/xml")}catch(a){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;E[i]=e.documentElement}F(i)}},s.open("GET",i),s.overrideMimeType&&s.overrideMimeType("text/xml"),s.send()}},X=function(t,u,h,y){var b;g===!1?b=t.getAttribute("data-src")||t.getAttribute("src"):(b=g+"#"+L(t),t.setAttribute("data-src",b));var m,A=b.split("#");if(!/\.svg/i.test(b))return void y("Attempted to inject a file with a non-svg extension: "+b);if(!j){var w=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(w?(t.setAttribute("src",w),y(null)):h?(m=A.length>1?A[1]+".png":b.split("/").pop().replace(".svg",".png"),i(p)?s(t,A[1],p):r(p)?p(t,A[1]):"string"==typeof p?a(t,p):t.setAttribute("src",h+"/"+m),y(null)):y("This browser does not support SVG and no PNG fallback was defined."))}i(p)&&l(t,A[1],p),-1===V.indexOf(t)&&(V.push(t),t.setAttribute("src",""),U(b,function(r){if("undefined"==typeof r||"string"==typeof r)return y(r),!1;var i=t.getAttribute("id");i&&r.setAttribute("id",i);var a=t.getAttribute("title");a&&r.setAttribute("title",a);var s=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",n(s));var l=t.getAttribute("style");l&&r.setAttribute("style",l);var p=[].filter.call(t.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});G.call(p,function(e){e.name&&e.value&&r.setAttribute(e.name,e.value)});var g=t.getAttribute("preserveAspectRatio");g&&r.setAttribute("preserveAspectRatio",g),o(r,T),r.removeAttribute("xmlns:a");for(var h,m,A=r.querySelectorAll("script"),w=[],x=0,S=A.length;S>x;x++)m=A[x].getAttribute("type"),m&&"application/ecmascript"!==m&&"application/javascript"!==m||(h=A[x].innerText||A[x].textContent,w.push(h),r.removeChild(A[x]));if(w.length>0&&("always"===u||"once"===u&&!O[b])){for(var C=0,N=w.length;N>C;C++)new Function(w[C])(e);O[b]=!0}var j=r.querySelectorAll("style");G.call(j,function(e){var t=q(r);(t.indexOf(c)>=0||v)&&t.indexOf(f)<0?e.parentNode.removeChild(e):d?R(e,T,r):e.textContent+=""}),t.parentNode.replaceChild(r,t),delete V[V.indexOf(t)],t=null,T++,y(r)}))},D=function(e,n,r){n=n||{};var i=n.evalScripts||"always",a=n.pngFallback||!1;u=n.onlyInjectVisiblePart||!0,f="undefined"==typeof n.keepStylesClass?"":n.keepStylesClass,w="undefined"==typeof n.spriteClassName?m:n.spriteClassName,x="undefined"==typeof n.spriteClassIdName?A:n.spriteClassIdName,c="undefined"==typeof n.removeStylesClass?C:n.removeStylesClass,v="undefined"==typeof n.removeAllStyles?!1:n.removeAllStyles,p="undefined"==typeof n.fallbackClassName?S:n.fallbackClassName,d="undefined"==typeof n.prefixStyleTags?!0:n.prefixStyleTags,g="undefined"==typeof n.spritesheetURL||""===n.spritesheetURL?!1:n.spritesheetURL,h=x,n.forceFallbacks&&(j=!1);var s=n.each,l=t.querySelector("html");if(j){if(l.className.replace("no-svg",""),"undefined"==typeof n.removeStylesClass){var o="svg."+c+" {fill: currentColor;}",y=t.head||t.getElementsByTagName("head")[0],b=t.createElement("style");b.type="text/css",b.styleSheet?b.styleSheet.cssText=o:b.appendChild(t.createTextNode(o)),y.appendChild(b)}}else l.className+=" no-svg";if(void 0!==e.length){var N=0;G.call(e,function(t){X(t,i,a,function(t){s&&"function"==typeof s&&s(t),r&&e.length===++N&&r(N)})})}else e?X(e,i,a,function(t){s&&"function"==typeof s&&s(t),r&&r(1),e=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=D:"function"==typeof define&&define.amd?define(function(){return D}):"object"==typeof e&&(e.SVGInjector=D)}(window,document); +!function(e,t){"use strict";var i="http://www.w3.org/2000/svg",n="http://www.w3.org/1999/xlink",s="sprite",r=s+"--",a=s,l=r,o=[a],c="icon",f=function(e){e=e.split(" ");for(var t={},i=e.length,n=[];i--;)t.hasOwnProperty(e[i])||(t[e[i]]=1,n.unshift(e[i]));return n.join(" ")},u=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},p=function(e){return"[object Array]"===Object.prototype.toString.call(e)},d=function(e,t){var i=e.getAttribute("class");i=i?i:"",p(t)&&(t=t.join(" ")),t=i+" "+t,e.setAttribute("class",f(t))},h=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var i,n=this.length>>>0;for(i=0;n>i;++i)i in this&&e.call(t,this[i],i,this)},g=function(e,t,i){var n="undefined"==typeof i?o:i.slice(0);h.call(n,function(e,i){n[i]=e.replace("%s",t)}),d(e,n)},v=function(e,t,i){i="undefined"==typeof i?o.slice(0):i.slice(0);var n=e.getAttribute("class");n&&(h.call(i,function(e){e=e.replace("%s",t),n.indexOf(e)>=0&&(n=n.replace(e,""))}),e.setAttribute("class",f(n)))},m=function(e,t){var i,n,s,r=[{def:"linearGradient",attr:"fill"},{def:"radialGradient",attr:"fill"},{def:"clipPath",attr:"clip-path"},{def:"mask",attr:"mask"},{def:"filter",attr:"filter"}];h.call(r,function(r){i=r.def,n=r.attr;for(var a=e.querySelectorAll(i+"[id]"),l=0,o=a.length;o>l;l++){s=a[l].id+"-"+t;for(var c=e.querySelectorAll("["+n+'*="'+a[l].id+'"]'),f=0,u=c.length;u>f;f++)c[f].setAttribute(n,"url(#"+s+")");a[l].id=s}})},b=function(e,t,i){var n;"undefined"==typeof i&&(i=["id","viewBox"]);for(var s=0;s1){var s=n[1],r=new RegExp("\\."+s+" ","g"),a=s+"-"+t;e.textContent=e.textContent.replace(r,"."+a+" "),i.setAttribute("class",i.getAttribute("class")+" "+a)}},A=function(e){var t=e.getAttribute("class");return t?t.split(" "):[]},x=function(e){var t=A(e),i="";return h.call(t,function(e){e.indexOf(l)>=0&&(i=e.replace(l,""))}),i},C=function(e,t,i){var s,r,a,l,o,c,f=!1,u=null;if(void 0===i)return t.cloneNode(!0);if(s=t.getElementById(i)){if(l=s.getAttribute("viewBox"),a=l.split(" "),s instanceof SVGSymbolElement)r=y(s),f=!0;else if(s instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var p='*[width="'+a[2]+'"][height="'+a[3]+'"]';o={},Math.abs(parseInt(a[0]))>0&&(o.x=a[0],p+='[x="'+a[0]+'"]'),Math.abs(parseInt(a[1]))>0&&(o.y=a[1],p+='[y="'+a[1]+'"]'),u=t.querySelector(p)}if(u&&u instanceof SVGSVGElement){r=u.cloneNode(!0);for(var d in o)"width"!==d&&"height"!==d&&r.removeAttribute(d)}else if(u&&u instanceof SVGUseElement){var h=t.getElementById(u.getAttributeNS(n,"href").substr(1));r=y(h),l=h.getAttribute("viewBox"),a=l.split(" "),f=!0}else f=!0,r=t.cloneNode(!0)}f&&(r.setAttribute("viewBox",a.join(" ")),r.setAttribute("width",a[2]+"px"),r.setAttribute("height",a[3]+"px")),c=A(r);var g=e.prefixFragIdClass+i;return c.indexOf(g)<0&&(c.push(g),r.setAttribute("class",c.join(" "))),r}},w=function(e,t,i,n,s){e[i]=e[i]||[],e[i].push({callback:t,fragmentId:n,state:s})},j=function(e,t,i,n,s,r,a,l){for(var o=0,c=i[n].length;c>o;o++)!function(s){setTimeout(function(){i[n][s].callback(C(t,e[n],i[n][s].fragmentId),i[n][s].state)},0)}(o)},k=function(t,i,n,s,r,a,l,o,c,f){var u,p,d,h={onElementInjectedCallback:t,injections:i,config:a,url:l,el:o,ranScripts:c};if(u=l.split("#"),p=u[0],d=2===u.length?u[1]:void 0,void 0!==s[p])s[p]instanceof SVGSVGElement?f(C(a,s[p],d),h):w(r,f,p,d,h);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;s[p]={},w(r,f,p,d,h);var g=new XMLHttpRequest;g.onreadystatechange=function(){if(4===g.readyState){if(404===g.status||null===g.responseXML)return f("Unable to load SVG file: "+p),n.isLocal&&f("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),f(),!1;if(!(200===g.status||n.isLocal&&0===g.status))return t("There was a problem injecting the SVG: "+g.status+" "+g.statusText),!1;if(g.responseXML instanceof Document)s[p]=g.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var u=new DOMParser;e=u.parseFromString(g.responseText,"text/xml")}catch(d){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return f("Unable to parse SVG file: "+l),!1;s[p]=e.documentElement}j(s,a,r,p,t,i,o,c)}},g.open("GET",p),g.overrideMimeType&&g.overrideMimeType("text/xml"),g.send()}},N=function(e){var i="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=i:s.appendChild(t.createTextNode(i)),n.appendChild(s)},E=function(e,t,i){i?e.className.replace(t,""):e.className+=" "+t},T=function(t,i){if("undefined"==typeof t||"string"==typeof t)return i.callback(t),!1;var n=i.el.getAttribute("id");n&&t.setAttribute("id",n);var s=i.el.getAttribute("title");s&&t.setAttribute("title",s);var r=[].concat(t.getAttribute("class")||[],"injected-svg",i.el.getAttribute("class")||[]).join(" ");t.setAttribute("class",f(r));var a=i.el.getAttribute("style");a&&t.setAttribute("style",a);var l=[].filter.call(i.el.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});h.call(l,function(e){e.name&&e.value&&t.setAttribute(e.name,e.value)});var o=i.el.getAttribute("preserveAspectRatio");o&&t.setAttribute("preserveAspectRatio",o),m(t,i.injections.count),t.removeAttribute("xmlns:a");for(var c,u,p=t.querySelectorAll("script"),d=[],g=0,v=p.length;v>g;g++)u=p[g].getAttribute("type"),u&&"application/ecmascript"!==u&&"application/javascript"!==u||(c=p[g].innerText||p[g].textContent,d.push(c),t.removeChild(p[g]));if(d.length>0&&("always"===config.evalScripts||"once"===config.evalScripts&&!i.ranScripts[i.url])){for(var b=0,y=d.length;y>b;b++)new Function(d[b])(e);i.ranScripts[i.url]=!0}var x=t.querySelectorAll("style");h.call(x,function(e){var n=A(t);(n.indexOf(config.removeStylesClass)>=0||config.removeAllStyles)&&n.indexOf(config.keepStylesClass)<0?e.parentNode.removeChild(e):config.prefixStyleTags?S(e,i.injections.count,t):e.textContent+=""}),i.el.parentNode.replaceChild(t,i.el),delete i.injections.elements[i.injections.elements.indexOf(i.el)],i.injections.count++,i.onElementInjectedCallback(t)},G=function(i){i=i||{},this.env={},this.env.isLocal="file:"===e.location.protocol,this.env.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),this.svgCache={},this.injections={count:0,elements:[]},this.requestQueue=[],this.ranScripts={},this.config={},this.config.evalScripts=i.evalScripts||"always",this.config.pngFallback=i.pngFallback||!1,this.config.onlyInjectVisiblePart=i.onlyInjectVisiblePart||!0,this.config.keepStylesClass="undefined"==typeof i.keepStylesClass?"":i.keepStylesClass,this.config.spriteClassName="undefined"==typeof i.spriteClassName?s:i.spriteClassName,this.config.spriteClassIdName="undefined"==typeof i.spriteClassIdName?r:i.spriteClassIdName,this.config.removeStylesClass="undefined"==typeof i.removeStylesClass?c:i.removeStylesClass,this.config.removeAllStyles="undefined"==typeof i.removeAllStyles?!1:i.removeAllStyles,this.config.fallbackClassName="undefined"==typeof i.fallbackClassName?o:i.fallbackClassName,this.config.prefixStyleTags="undefined"==typeof i.prefixStyleTags?!0:i.prefixStyleTags,this.config.spritesheetURL="undefined"==typeof i.spritesheetURL||""===i.spritesheetURL?!1:i.spritesheetURL,this.config.prefixFragIdClass=l,this.config.forceFallbacks="undefined"==typeof i.forceFallbacks?!1:i.forceFallbacks,this.config.forceFallbacks&&(this.env.hasSvgSupport=!1),E(t.querySelector("html"),"no-svg",this.env.hasSvgSupport),this.env.hasSvgSupport&&"undefined"==typeof i.removeStylesClass&&N(this.config.removeStylesClass)};G.prototype.inject=function(e,t,i){if(void 0!==e.length){var n=0,s=this;h.call(e,function(r){s.injectElement(r,function(s){i&&"function"==typeof i&&i(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){i&&"function"==typeof i&&i(n),t&&t(1),e=null}):t&&t(0)},G.prototype.injectElement=function(e,t){var i;this.config.spritesheetURL===!1?i=e.getAttribute("data-src")||e.getAttribute("src"):(i=this.config.spritesheetURL+"#"+x(e),e.setAttribute("data-src",i));var n,s=i.split("#");if(!/\.svg/i.test(i))return void t("Attempted to inject a file with a non-svg extension: "+i);if(!this.env.hasSvgSupport){var r=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(r?(e.setAttribute("src",r),t(null)):this.config.pngFallback?(n=s.length>1?s[1]+".png":i.split("/").pop().replace(".svg",".png"),p(this.config.fallbackClassName)?g(e,s[1],this.config.fallbackClassName):u(this.config.fallbackClassName)?this.config.fallbackClassName(e,s[1]):"string"==typeof this.config.fallbackClassName?d(e,this.config.fallbackClassName):e.setAttribute("src",pngFallback+"/"+n),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}p(this.config.fallbackClassName)&&v(e,s[1],this.config.fallbackClassName),-1===this.injections.elements.indexOf(e)&&(this.injections.elements.push(e),e.setAttribute("src",""),k(t,this.injections,this.env,this.svgCache,this.requestQueue,this.config,i,e,this.ranScripts,T))},"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=G:"function"==typeof define&&define.amd?define(function(){return G}):"object"==typeof e&&(e.SVGInjector=G)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/package.json b/package.json index 9a4da33..52ba53f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector", "description": "Fast, caching, dynamic inline SVG DOM injection library", - "version": "1.2.2", + "version": "2.0.0", "author": { "name": "Iconic", "email": "yourfriends@useiconic.com", diff --git a/svg-injector.js b/svg-injector.js index c511e3a..89d47b3 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -5,7 +5,6 @@ * Copyright (c) 2014 Waybury * @license MIT */ - (function (window, document) { 'use strict'; @@ -23,22 +22,15 @@ var defaultRemoveStylesClassName = 'icon'; - // Environment - var isLocal = window.location.protocol === 'file:'; - var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); - var onlyInjectVisiblePart, removeStylesClass, keepStylesClass, fallbackClassName, - prefixStyleTags, removeAllStyles, spritesheetURL, prefixFragIdClass; - + //var toCamelCase = function(str) { + // return str.replace(/^([A-Z])|[-_](\w)/g, function(match, p1, p2, offset) { + // if (p2) return p2.toUpperCase(); + // return p1.toLowerCase(); + // }); + //} - function toCamelCase(str) { - return str.replace(/^([A-Z])|[-_](\w)/g, function(match, p1, p2, offset) { - if (p2) return p2.toUpperCase(); - return p1.toLowerCase(); - }); - } - - function uniqueClasses(list) { + var uniqueClasses = function(list) { list = list.split(' '); var hash = {}; @@ -52,17 +44,17 @@ } } return out.join(' '); - } + }; - function isFunction(obj) { + var isFunction = function(obj) { return !!(obj && obj.constructor && obj.call && obj.apply); - } + }; - function isArray(obj){ + var isArray = function(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; - } + }; - function svgElemSetClassName(el, newClassNames){ + var svgElemSetClassName = function(el, newClassNames){ var curClasses = el.getAttribute('class'); curClasses = curClasses ? curClasses : ''; @@ -73,7 +65,7 @@ newClassNames = curClasses + ' ' + newClassNames; el.setAttribute('class', uniqueClasses(newClassNames)); - } + }; /** * cache (or polyfill for <= IE8) Array.forEach() @@ -95,7 +87,7 @@ } }; - function setFallbackClassNames(element, symbolId, classNames) { + var setFallbackClassNames = function(element, symbolId, classNames) { var className = (typeof classNames === 'undefined') ? defaultFallbackClassNames : classNames.slice(0); // replace %s by symbolId @@ -107,9 +99,9 @@ ); svgElemSetClassName(element, className); - } + }; - function removeFallbackClassNames(element, symbolId, fallbackClassNames) { + var removeFallbackClassNames = function(element, symbolId, fallbackClassNames) { fallbackClassNames = (typeof fallbackClassNames === 'undefined') ? defaultFallbackClassNames.slice(0) : fallbackClassNames.slice(0); var curClassNames = element.getAttribute('class'); @@ -117,7 +109,7 @@ // replace %s by symbolId forEach.call( fallbackClassNames, - function(curClassName, idx) { + function(curClassName) { curClassName = curClassName.replace('%s', symbolId); if( curClassNames.indexOf(curClassName) >= 0 ){ //console.log('remove class ' + curClassName); @@ -130,9 +122,9 @@ element.setAttribute('class', uniqueClasses(curClassNames)); } - } + }; - function prefixIdReferences(svg, suffix) { + var prefixIdReferences = function(svg, suffix) { var defs = [ {def:'linearGradient', attr:'fill'}, {def:'radialGradient', attr:'fill'}, @@ -159,21 +151,7 @@ } }); - } - - - - // SVG Cache - var svgCache = {}; - - var injectCount = 0; - var injectedElements = []; - - // Request Queue - var requestQueue = []; - - // Script running status - var ranScripts = {}; + }; var copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) { var curAttr; @@ -229,7 +207,7 @@ return id; }; - var cloneSvg = function(sourceSvg, fragId) { + var cloneSvg = function(config, sourceSvg, fragId) { var svgElem, newSVG, @@ -261,15 +239,15 @@ } else if (svgElem instanceof SVGViewElement) { symbolElem = null; - if (onlyInjectVisiblePart) { + if (config.onlyInjectVisiblePart) { var selector = '*[width="' + viewBox[2] + '"][height="'+viewBox[3]+'"]'; symbolAttributesToFind = {}; - if (Math.abs(viewBox[0]) > 0) { + if (Math.abs(parseInt(viewBox[0])) > 0) { symbolAttributesToFind.x = viewBox[0]; selector += '[x="' + viewBox[0] + '"]'; } - if (Math.abs(viewBox[1]) > 0) { + if (Math.abs(parseInt(viewBox[1])) > 0) { symbolAttributesToFind.y = viewBox[1]; selector += '[y="' + viewBox[1] + '"]'; } @@ -296,7 +274,7 @@ } else { console.info( - ((onlyInjectVisiblePart) ? 'symbol referenced via view' + fragId + ' not found' : 'option.onlyInjectVisiblePart: false') + ' -> clone complete svg!' + ((config.onlyInjectVisiblePart) ? 'symbol referenced via view' + fragId + ' not found' : 'option.onlyInjectVisiblePart: false') + ' -> clone complete svg!' ); setViewboxOnNewSVG = true; newSVG = sourceSvg.cloneNode(true); @@ -312,7 +290,7 @@ //curClassAttr = newSVG.getAttribute('class'); curClassList = getClassList(newSVG); - var fragIdClassName = prefixFragIdClass + fragId; + var fragIdClassName = config.prefixFragIdClass + fragId; if (curClassList.indexOf(fragIdClassName)<0) { curClassList.push(fragIdClassName); newSVG.setAttribute('class', curClassList.join(' ')); @@ -322,26 +300,27 @@ }; - var queueRequest = function (callback, fileName, fragId) { + var queueRequest = function(requestQueue, callback, fileName, fragId, state) { requestQueue[fileName] = requestQueue[fileName] || []; - requestQueue[fileName].push({'callback':callback, 'fragmentId':fragId}); + requestQueue[fileName].push({callback:callback, fragmentId:fragId, state:state}); }; - var processRequestQueue = function (url) { + var processRequestQueue = function(svgCache, config, requestQueue, url, onElementInjectedCallback, injections, el, ranScripts) { for (var i = 0, len = requestQueue[url].length; i < len; i++) { // Make these calls async so we avoid blocking the page/renderer /* jshint loopfunc: true */ (function (index) { setTimeout(function () { - requestQueue[url][index].callback(cloneSvg(svgCache[url], requestQueue[url][index].fragmentId)); + requestQueue[url][index].callback(cloneSvg(config, svgCache[url], requestQueue[url][index].fragmentId), requestQueue[url][index].state); }, 0); })(i); /* jshint loopfunc: false */ } }; - var loadSvg = function (url, callback) { + var loadSvg = function(onElementInjectedCallback, injections, env, svgCache, requestQueue, config, url, el, ranScripts, onLoadCompleteCb) { var urlArr, fileName, fragId; + var state = {onElementInjectedCallback:onElementInjectedCallback, injections:injections, config:config, url:url, el:el, ranScripts:ranScripts}; urlArr = url.split('#'); fileName = urlArr[0]; fragId = (urlArr.length === 2) ? urlArr[1] : undefined; @@ -349,23 +328,23 @@ if (svgCache[fileName] !== undefined) { if (svgCache[fileName] instanceof SVGSVGElement) { // We already have it in cache, so use it - callback(cloneSvg(svgCache[fileName], fragId)); + onLoadCompleteCb(cloneSvg(config, svgCache[fileName], fragId), state); } else { // We don't have it in cache yet, but we are loading it, so queue this request - queueRequest(callback, fileName, fragId); + queueRequest(requestQueue, onLoadCompleteCb, fileName, fragId, state); } } else { if (!window.XMLHttpRequest) { - callback('Browser does not support XMLHttpRequest'); + onElementInjectedCallback('Browser does not support XMLHttpRequest'); return false; } // Seed the cache to indicate we are loading this URL already svgCache[fileName] = {}; - queueRequest(callback, fileName, fragId); + queueRequest(requestQueue, onLoadCompleteCb, fileName, fragId, state); var httpRequest = new XMLHttpRequest(); @@ -375,16 +354,16 @@ // Handle status if (httpRequest.status === 404 || httpRequest.responseXML === null) { - callback('Unable to load SVG file: ' + fileName); + onLoadCompleteCb('Unable to load SVG file: ' + fileName); - if (isLocal) callback('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.'); + if (env.isLocal) onLoadCompleteCb('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.'); - callback(); + onLoadCompleteCb(); return false; } // 200 success from server, or 0 when using file:// protocol locally - if (httpRequest.status === 200 || (isLocal && httpRequest.status === 0)) { + if (httpRequest.status === 200 || (env.isLocal && httpRequest.status === 0)) { /* globals Document */ if (httpRequest.responseXML instanceof Document) { @@ -411,7 +390,7 @@ } if (!xmlDoc || xmlDoc.getElementsByTagName('parsererror').length) { - callback('Unable to parse SVG file: ' + url); + onLoadCompleteCb('Unable to parse SVG file: ' + url); return false; } else { @@ -421,10 +400,11 @@ } // We've loaded a new asset, so process any requests waiting for it - processRequestQueue(fileName); + //svgCache, config, requestQueue, url, onElementInjectedCallback, injections, el + processRequestQueue(svgCache, config, requestQueue, fileName, onElementInjectedCallback, injections, el, ranScripts); } else { - callback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText); + onElementInjectedCallback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText); return false; } } @@ -433,242 +413,176 @@ httpRequest.open('GET', fileName); // Treat and parse the response as XML, even if the - // server sends us a different mimetype + // server sends us a different mimetype> if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml'); httpRequest.send(); } }; - // Inject a single element - var injectElement = function (el, evalScripts, pngFallback, callback) { - var imgUrl; + var writeDefaultClass = function(removeStylesClass) { + var css = 'svg.' + removeStylesClass + ' {fill: currentColor;}', + head = document.head || document.getElementsByTagName('head')[0], + style = document.createElement('style'); - if(spritesheetURL === false){ - // Grab the src or data-src attribute - imgUrl = el.getAttribute('data-src') || el.getAttribute('src'); + style.type = 'text/css'; + if (style.styleSheet){ + style.styleSheet.cssText = css; } - else{ - imgUrl = spritesheetURL + '#' + getSpriteIdFromClass(el); - //console.log('imgURL: ' + imgUrl); - el.setAttribute('data-src', imgUrl); - } - - var imgUrlSplitByFId = imgUrl.split('#'); - var fallbackUrl; - - // We can only inject SVG - if (!(/\.svg/i).test(imgUrl)) { - callback('Attempted to inject a file with a non-svg extension: ' + imgUrl); - return; + else { + style.appendChild(document.createTextNode(css)); } + head.appendChild(style); + console.info( 'default class written: ', css ); + }; - - if (hasSvgSupport) { - if(isArray(fallbackClassName)) { - removeFallbackClassNames(el, imgUrlSplitByFId[1], fallbackClassName); - } + var replaceNoSVGClass = function(element, noSVGClassName, hasSvgSupport) { + if(hasSvgSupport) { + element.className.replace(noSVGClassName, ''); } else{ - // If we don't have SVG support try to fall back to a png, - // either defined per-element via data-fallback or data-png, - // or globally via the pngFallback directory setting - - var perElementFallback = el.getAttribute('data-fallback') || el.getAttribute('data-png'); - - // Per-element specific PNG fallback defined, so use that - if (perElementFallback) { - el.setAttribute('src', perElementFallback); - callback(null); - } - // Global PNG fallback directoriy defined, use the same-named PNG - else if (pngFallback) { + element.className += ' ' + noSVGClassName; + } + }; - if (imgUrlSplitByFId.length>1) { - fallbackUrl = imgUrlSplitByFId[1] + '.png'; - } - else{ - fallbackUrl = imgUrl.split('/').pop().replace('.svg', '.png'); - } - if(isArray(fallbackClassName)) { - setFallbackClassNames(el, imgUrlSplitByFId[1], fallbackClassName); - } - else if(isFunction(fallbackClassName)) { - console.info('custom function to create fallbackClassName'); - fallbackClassName(el, imgUrlSplitByFId[1]); - } - else if(typeof fallbackClassName === 'string') { - svgElemSetClassName(el, fallbackClassName); - } - else{ - el.setAttribute('src', pngFallback + '/' + fallbackUrl); - } - callback(null); - } - // um... - else { - callback('This browser does not support SVG and no PNG fallback was defined.'); - } - - return; + var onLoadSVG = function(svg, state){ + if (typeof svg === 'undefined' || typeof svg === 'string') { + state.callback(svg); + return false; } - // Make sure we aren't already in the process of injecting this element to - // avoid a race condition if multiple injections for the same element are run. - // :NOTE: Using indexOf() only _after_ we check for SVG support and bail, - // so no need for IE8 indexOf() polyfill - if (injectedElements.indexOf(el) !== -1) { - return; + var imgId = state.el.getAttribute('id'); + if (imgId) { + svg.setAttribute('id', imgId); } - // Remember the request to inject this element, in case other injection - // calls are also trying to replace this element before we finish - injectedElements.push(el); + var imgTitle = state.el.getAttribute('title'); + if (imgTitle) { + svg.setAttribute('title', imgTitle); + } - // Try to avoid loading the orginal image src if possible. - el.setAttribute('src', ''); + // Concat the SVG classes + 'injected-svg' + the img classes + var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', state.el.getAttribute('class') || []).join(' '); + svg.setAttribute('class', uniqueClasses(classMerge)); - // Load it up - loadSvg(imgUrl, function (svg) { + var imgStyle = state.el.getAttribute('style'); + if (imgStyle) { + svg.setAttribute('style', imgStyle); + } - if (typeof svg === 'undefined' || typeof svg === 'string') { - callback(svg); - return false; + // Copy all the data elements to the svg + var imgData = [].filter.call(state.el.attributes, function (at) { + return (/^data-\w[\w\-]*$/).test(at.name); + }); + forEach.call(imgData, function (dataAttr) { + if (dataAttr.name && dataAttr.value) { + svg.setAttribute(dataAttr.name, dataAttr.value); } + }); - var imgId = el.getAttribute('id'); - if (imgId) { - svg.setAttribute('id', imgId); - } + // Copy preserveAspectRatio of elem if exists + var presARAttr = state.el.getAttribute('preserveAspectRatio'); + if(presARAttr){ + svg.setAttribute('preserveAspectRatio', presARAttr); + } - var imgTitle = el.getAttribute('title'); - if (imgTitle) { - svg.setAttribute('title', imgTitle); - } - // Concat the SVG classes + 'injected-svg' + the img classes - var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' '); - svg.setAttribute('class', uniqueClasses(classMerge)); + // Make sure any internally referenced ids and their + // references are unique. + // + // This addresses the issue of having multiple instances of the + // same SVG on a page and only the first clipPath, gradient, mask or filter id is referenced. + prefixIdReferences(svg, state.injections.count); - var imgStyle = el.getAttribute('style'); - if (imgStyle) { - svg.setAttribute('style', imgStyle); - } - // Copy all the data elements to the svg - var imgData = [].filter.call(el.attributes, function (at) { - return (/^data-\w[\w\-]*$/).test(at.name); - }); - forEach.call(imgData, function (dataAttr) { - if (dataAttr.name && dataAttr.value) { - svg.setAttribute(dataAttr.name, dataAttr.value); - } - }); + // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools + svg.removeAttribute('xmlns:a'); - // Copy preserveAspectRatio of elem if exists - var presARAttr = el.getAttribute('preserveAspectRatio'); - if(presARAttr){ - svg.setAttribute('preserveAspectRatio', presARAttr); - } + // Post page load injected SVGs don't automatically have their script + // elements run, so we'll need to make that happen, if requested + // Find then prune the scripts + var scripts = svg.querySelectorAll('script'); + var scriptsToEval = []; + var script, scriptType; - // Make sure any internally referenced ids and their - // references are unique. - // - // This addresses the issue of having multiple instances of the - // same SVG on a page and only the first clipPath, gradient, mask or filter id is referenced. - prefixIdReferences(svg, injectCount); + for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) { + scriptType = scripts[k].getAttribute('type'); + // Only process javascript types. + // SVG defaults to 'application/ecmascript' for unset types + if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') { - // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools - svg.removeAttribute('xmlns:a'); + // innerText for IE, textContent for other browsers + script = scripts[k].innerText || scripts[k].textContent; - // Post page load injected SVGs don't automatically have their script - // elements run, so we'll need to make that happen, if requested + // Stash + scriptsToEval.push(script); - // Find then prune the scripts - var scripts = svg.querySelectorAll('script'); - var scriptsToEval = []; - var script, scriptType; + // Tidy up and remove the script element since we don't need it anymore + svg.removeChild(scripts[k]); + } + } - for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) { - scriptType = scripts[k].getAttribute('type'); + // Run/Eval the scripts if needed + if (scriptsToEval.length > 0 && (config.evalScripts === 'always' || (config.evalScripts === 'once' && ! state.ranScripts[state.url]))) { + for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) { + + // :NOTE: Yup, this is a form of eval, but it is being used to eval code + // the caller has explictely asked to be loaded, and the code is in a caller + // defined SVG file... not raw user input. + // + // Also, the code is evaluated in a closure and not in the global scope. + // If you need to put something in global scope, use 'window' + new Function(scriptsToEval[l])(window); // jshint ignore:line + } - // Only process javascript types. - // SVG defaults to 'application/ecmascript' for unset types - if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') { + // Remember we already ran scripts for this svg + state.ranScripts[state.url] = true; + } - // innerText for IE, textContent for other browsers - script = scripts[k].innerText || scripts[k].textContent; + // :NOTE: handle styles in style-tags + var styleTags = svg.querySelectorAll('style'), + prefixClassName = ''; - // Stash - scriptsToEval.push(script); + forEach.call(styleTags, function (styleTag) { + var svgClassList = getClassList(svg); + if ((svgClassList.indexOf(config.removeStylesClass)>=0 || config.removeAllStyles) && (svgClassList.indexOf(config.keepStylesClass)<0) ) { - // Tidy up and remove the script element since we don't need it anymore - svg.removeChild(scripts[k]); - } + // remove the styletag if the removeStylesClass is applied to the SVG + //console.log('remove styleTag', styleTag); + styleTag.parentNode.removeChild(styleTag); } - - // Run/Eval the scripts if needed - if (scriptsToEval.length > 0 && (evalScripts === 'always' || (evalScripts === 'once' && !ranScripts[imgUrl]))) { - for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) { - - // :NOTE: Yup, this is a form of eval, but it is being used to eval code - // the caller has explictely asked to be loaded, and the code is in a caller - // defined SVG file... not raw user input. + else { + if(config.prefixStyleTags){ + doPrefixStyleTags(styleTag, state.injections.count, svg); + } + else{ + // :WORKAROUND: + // IE doesn't evaluate - + ``` +### Performance tip +add +```html + +``` +to let the browser download the file, even before it was requested via xhr + + # Licence The MIT License (MIT) From 33afd04de4a5d745d6faaa6efa3a23c69e27cb3e Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 11:11:35 +0100 Subject: [PATCH 110/212] 2.0.21 --- CHANGELOG.md | 22 +++++++++++++++++++++- package.json | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df103f1..5d026c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,26 @@ ## Change Log -### upcoming (2016/03/22 09:14 +00:00) +### upcoming (2016/03/22 10:11 +00:00) +- [4f2317e](https://github.com/flobacher/SVGInjector2/commit/4f2317e21d8d02b59bd8cfd94636071144062514) update readme (@flobacher) + +### 2.0.20 (2016/03/22 09:47 +00:00) +- [c508c18](https://github.com/flobacher/SVGInjector2/commit/c508c1852a94e3f9d11e5613cce086e69c1da17b) 2.0.20 (@flobacher) +- [cfa5475](https://github.com/flobacher/SVGInjector2/commit/cfa5475d847d20603e20253a354210b7841e94c8) update scripts (@flobacher) + +### 2.0.19 (2016/03/22 09:30 +00:00) +- [045205b](https://github.com/flobacher/SVGInjector2/commit/045205b03426ce7dd904cda3a96734bcb4898f26) 2.0.19 (@flobacher) +- [da5f9e4](https://github.com/flobacher/SVGInjector2/commit/da5f9e4a7a98d59a361f9bf260039417a2b2a18d) cleanup (@flobacher) + +### 2.0.18 (2016/03/22 09:23 +00:00) +- [52f5fe4](https://github.com/flobacher/SVGInjector2/commit/52f5fe4fd4cf79c1cde6903a3011664e69807cb4) 2.0.18 (@flobacher) + +### 2.0.17 (2016/03/22 09:19 +00:00) +- [c39a16f](https://github.com/flobacher/SVGInjector2/commit/c39a16faac8b1fdb4eab78d68aae3caf7151dc3c) 2.0.17 (@flobacher) +- [41f86cc](https://github.com/flobacher/SVGInjector2/commit/41f86cc92455d76f075de681ee2a433c6084a58e) update scripts (@flobacher) +- [49cceae](https://github.com/flobacher/SVGInjector2/commit/49cceaea132570c55414a884cdb099c26d28a78a) update repo url and scripts (@flobacher) + +### 2.0.16 (2016/03/22 09:14 +00:00) +- [5e7774e](https://github.com/flobacher/SVGInjector2/commit/5e7774ecb413d477b35868c1ce7d00225702f122) 2.0.16 (@flobacher) - [6292886](https://github.com/flobacher/SVGInjector2/commit/629288681977a04c9b85277ec833766801c56fdd) update repo url and scripts (@flobacher) ### 2.0.15 (2016/03/22 09:07 +00:00) diff --git a/package.json b/package.json index 44bf633..8e3fa92 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.20", + "version": "2.0.21", "author": "", "contributors": [ { From 84fd93cd5a406d1f119f207a67c72e4a19cf5c82 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 11:22:02 +0100 Subject: [PATCH 111/212] update ignore rules --- .gitignore | 10 +++++++--- .npmignore | 12 ++++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index ca6df59..166281f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ -node_modules -.tmp -.DS_Store +#dires .idea +.DS_Store + +node_modules + + +#files npm-debug.log diff --git a/.npmignore b/.npmignore index 7edd48b..56d73d5 100644 --- a/.npmignore +++ b/.npmignore @@ -1,5 +1,13 @@ -/tests -/examples +#dirs +.idea +.DS_Store + +tests +examples + + +#files .jshintrc .editorconfig bower.json +npm-debug.log From 8453317d09226d4295f72775d1c6fe4117194f62 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 11:22:22 +0100 Subject: [PATCH 112/212] 2.0.22 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8e3fa92..0c3591f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.21", + "version": "2.0.22", "author": "", "contributors": [ { From 66f4ede7820ab4b5b6a5bfab7022912e7b5871a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Hoch=C3=B6rtler?= Date: Tue, 22 Mar 2016 11:42:02 +0100 Subject: [PATCH 113/212] use .trim() only if element has a class attribute --- svg-injector.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index bb73c35..4bf3f7b 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -461,8 +461,8 @@ }; var getClassList = function (svgToCheck) { - var curClassAttr = svgToCheck.getAttribute('class').trim(); - return (curClassAttr) ? curClassAttr.split(' ') : []; + var curClassAttr = svgToCheck.getAttribute('class'); + return (curClassAttr) ? curClassAttr.trim().split(' ') : []; }; var getSpriteIdFromClass = function (element) { From ec44146b4b52dc7156fd296411e108cd848edc26 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 11:45:26 +0100 Subject: [PATCH 114/212] IE does not support Children on SVGElement! --- svg-injector.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index bb73c35..bf5678d 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -755,7 +755,7 @@ // take care of accessibility svg.setAttribute('role', 'img'); - forEach.call(svg.children, function (curChildElem) { + forEach.call(svg.children || [], function (curChildElem) { // IE does not support Children on SVGElement! if (!(curChildElem instanceof SVGDefsElement)) { curChildElem.setAttribute('role', 'presentation'); } @@ -766,7 +766,7 @@ titleId = setRootLevelElem('title', svg, el, fragmentId); svg.setAttribute('aria-labelledby', titleId + ' ' + descId); - + // Concat the SVG classes + 'injected-svg' + the img classes var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' '); svg.setAttribute('class', uniqueClasses(classMerge)); From ff5578d442010529db2d133deb7837611f9f4616 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 12:14:56 +0100 Subject: [PATCH 115/212] ${npm_package_version} --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- package.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 0f41659..a7bf82b 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"file":"./svg-injector.min.js","sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","replaceNoSVGClass","querySelector","writeDefaultClass","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","forEach","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","getSpriteIdFromClass","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","isArray","setFallbackClassNames","isFunction","svgElemSetClassName","removeFallbackClassNames","indexOf","loadSvg","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","uniqueClasses","join","suffixIdReferences","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","copyAttributes","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","cloneSymbolAsSVG","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","doPrefixStyleTags","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","getClassList","svgToCheck","curClassAttr","classes","curClass","cloneSvg","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","queueRequest","fileName","callback","fragmentId","processRequestQueue","url","requestQueueElem","len","index","setTimeout","onLoadSVG","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","setRootLevelElem","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","addRootLevelElem","firstChild","text","insertBefore","existingElem","newElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","existingElem","newElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./svg-injector.min.js"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 5722d14..def1bc2 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -10,5 +10,5 @@ * original Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c="http://www.w3.org/2000/svg",u="http://www.w3.org/1999/xlink",f="sprite",p=f+"--",d=[f],v="icon";i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?f:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?p:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?v:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?d:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),E(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&j(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;O.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=x(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var c=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(c?(e.setAttribute("src",c),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),V(a.fallbackClassName)?m(e,i[1],a.fallbackClassName):G(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?F(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}V(a.fallbackClassName)&&g(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),k(t,r,e))},r.prototype.getEnv=function(){return o};var m=function(e,t,r){var n="undefined"==typeof r?d:r.slice(0);O.call(n,function(e,r){n[r]=e.replace("%s",t)}),F(e,n)},g=function(e,t,r){r="undefined"==typeof r?d.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(O.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",T(s.join(" ")))))},h=function(e,t){var r,n,s,i,l,a,o,c,f,p,d,v,m,g,h,y,b=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];O.call(b,function(b){for(n=e.querySelectorAll(b.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=b.attrs,p=0,f=c.length;f>p;p++)for(l=e.querySelectorAll("["+c[p]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[p],"url(#"+r+")");for(d=e.querySelectorAll("[*|href]"),g=[],m=0,v=d.length;v>m;m++)d[m].getAttributeNS(u,"href").toString()==="#"+n[i].id&&g.push(d[m]);for(y=0,h=g.length;h>y;y++)g[y].setAttributeNS(u,"href","#"+r);n[i].id=r}})},y=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},A=function(e){var t=e.getAttribute("class").trim();return t?t.split(" "):[]},x=function(e){var t=A(e),r="";return O.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},C=function(e,t,r){var n,s,i,l,a,o,f=!1,p=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=b(n),f=!0;else if(n instanceof SVGViewElement){if(p=null,e.onlyInjectVisiblePart){var d='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?d+=":not([x])":(a.x=i[0],d+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?d+=":not([y])":(a.y=i[1],d+='[y="'+i[1]+'"]');var v=t.querySelectorAll(d);v.length>1,p=v[0]}if(p&&p instanceof SVGSVGElement){s=p.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(p&&p instanceof SVGUseElement){var g=t.getElementById(p.getAttributeNS(u,"href").substr(1));s=b(g),l=g.getAttribute("viewBox"),i=l.split(" "),f=!0}else f=!0,s=t.cloneNode(!0)}f&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",c),s.setAttribute("xmlns:xlink",u),o=A(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},w=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},N=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],I(e,t.fragmentId,t.callback,t.element)},0)}(r)},k=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?I(l,a,t,s):w(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},w(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}N(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},j=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},E=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},I=function(t,r,i,o){var c,u,f,p;if(c=C(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),O.call(c.children,function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),p=L("desc",c,o,r),f=L("title",c,o,r),c.setAttribute("aria-labelledby",f+" "+p);var d=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",T(d));var v=o.getAttribute("style");v&&c.setAttribute("style",v);var m=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});O.call(m,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var g=o.getAttribute("preserveAspectRatio");g&&c.setAttribute("preserveAspectRatio",g),h(c,s.count),c.removeAttribute("xmlns:a");for(var y,b,x=c.querySelectorAll("script"),w=[],N=0,k=x.length;k>N;N++)b=x[N].getAttribute("type"),b&&"application/ecmascript"!==b&&"application/javascript"!==b||(y=x[N].innerText||x[N].textContent,w.push(y),c.removeChild(x[N]));if(w.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var j=0,E=w.length;E>j;j++)new Function(w[j])(e);l[t]=!0}var I=c.querySelectorAll("style");O.call(I,function(e){var t=A(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?S(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},T=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},G=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},V=function(e){return"[object Array]"===Object.prototype.toString.call(e)},F=function(e,t){var r=e.getAttribute("class");r=r?r:"",V(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",T(t))},O=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},L=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?R(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):R(e,t,n,l,t.firstChild)),l},R=function(e,r,n,s,i){var l=r.querySelector(e);l&&l.parentNode.removeChild(l);var a=t.createElementNS(c,e);return a.appendChild(t.createTextNode(n)),a.setAttributeNS(c,"id",s),r.insertBefore(a,i),a};return r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); +!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class").trim();return t?t.split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c=!1,u=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?f+=":not([x])":(a.x=i[0],f+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?f+=":not([y])":(a.y=i[1],f+='[y="'+i[1]+'"]');var p=t.querySelectorAll(f);p.length>1,u=p[0]}if(u&&u instanceof SVGSVGElement){s=u.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(u&&u instanceof SVGUseElement){var g=t.getElementById(u.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,s=t.cloneNode(!0)}c&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l=r.querySelector(e);l&&l.parentNode.removeChild(l);var a=t.createElementNS(G,e);return a.appendChild(t.createTextNode(n)),a.setAttributeNS(G,"id",s),r.insertBefore(a,i),a},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/package.json b/package.json index 0c3591f..77bccab 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.22", + "version": "2.0.23", "author": "", "contributors": [ { @@ -42,7 +42,7 @@ "versionpatch": "npm version patch --no-git-tag-version", "commit": "git add ./dist/ && git add CHANGELOG.md && git add package.json && git commit -m ${npm_package_version}", "tag": "git tag ${npm_package_version}", - "release": "for TASK in test build changelog versionpatch commit tag; do npm run $TASK; done", + "release": "npm run changelog & npm run test && npm run build && npm run versionpatch && npm run commit && npm run tag", "prepublish": "git push && git push --tags" } } From e425f4e5366c85548fcd75a77091a81216259edd Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:05:52 +0100 Subject: [PATCH 116/212] avoid latedef warnings --- svg-injector.js | 74 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index bf5678d..ab701b3 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -53,9 +53,37 @@ var config; var env; + // - private member funcs -------------------------------------- + var + setFallbackClassNames, + removeFallbackClassNames, + suffixIdReferences, + copyAttributes, + cloneSymbolAsSVG, + doPrefixStyleTags, + getClassList, + getSpriteIdFromClass, + cloneSvg, + queueRequest, + processRequestQueue, + loadSvg, + writeDefaultClass, + replaceNoSVGClass, + onLoadSVG, + uniqueClasses, + isFunction, + isArray, + svgElemSetClassName, + forEach, + setRootLevelElem, + addRootLevelElem + ; + + + requestQueue = []; - // - static vars --------------------------------------------------- + // - static vars ----------------------------------------------- SVGInjector.instanceCounter = 0; // - public member vars ---------------------------------------- @@ -281,7 +309,7 @@ }; // - private member functions ----------------------------------------------- - var setFallbackClassNames = function (element, symbolId, classNames) { + setFallbackClassNames = function (element, symbolId, classNames) { var className = (typeof classNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES : classNames.slice(0); // replace %s by symbolId @@ -295,7 +323,7 @@ svgElemSetClassName(element, className); }; - var removeFallbackClassNames = function (element, symbolId, fallbackClassNames) { + removeFallbackClassNames = function (element, symbolId, fallbackClassNames) { fallbackClassNames = (typeof fallbackClassNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES.slice(0) : fallbackClassNames.slice(0); var idxOfCurClass, @@ -327,7 +355,7 @@ }; - var suffixIdReferences = function (svg, suffix) { + suffixIdReferences = function (svg, suffix) { var defs = [ {def:'linearGradient', attrs: ['fill', 'stroke']}, {def:'radialGradient', attrs: ['fill', 'stroke']}, @@ -395,7 +423,7 @@ }; - var copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) { + copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) { var curAttr; if (typeof attributesToIgnore === 'undefined') { attributesToIgnore = ['id', 'viewBox']; } @@ -407,7 +435,7 @@ } }; - var cloneSymbolAsSVG = function (svgSymbol) { + cloneSymbolAsSVG = function (svgSymbol) { var svg = document.createElementNS(SVG_NS, 'svg'); forEach.call(svgSymbol.childNodes, function(child){ @@ -420,7 +448,7 @@ - var doPrefixStyleTags = function (styleTag, injectCount, svg){ + doPrefixStyleTags = function (styleTag, injectCount, svg){ var srcArr = svg.getAttribute('data-src').split('#'); var regex, origPrefixClassName, @@ -460,12 +488,12 @@ svg.setAttribute('class', (svg.getAttribute('class') + ' ' + newPrefixClassName)); }; - var getClassList = function (svgToCheck) { + getClassList = function (svgToCheck) { var curClassAttr = svgToCheck.getAttribute('class').trim(); return (curClassAttr) ? curClassAttr.split(' ') : []; }; - var getSpriteIdFromClass = function (element) { + getSpriteIdFromClass = function (element) { var classes = getClassList(element); var id = ''; forEach.call(classes, function (curClass) { @@ -477,7 +505,7 @@ return id; }; - var cloneSvg = function (config, sourceSvg, fragId) { + cloneSvg = function (config, sourceSvg, fragId) { var svgElem, newSVG, @@ -583,12 +611,12 @@ }; //queueRequest(requestQueue, fileName, fragId, onElementInjectedCallback, el); - var queueRequest = function (fileName, fragId, callback, el) { + queueRequest = function (fileName, fragId, callback, el) { requestQueue[fileName] = requestQueue[fileName] || []; requestQueue[fileName].push({callback:callback, fragmentId:fragId, element:el}); }; - var processRequestQueue = function (url) { + processRequestQueue = function (url) { var requestQueueElem; for (var i = 0, len = requestQueue[url].length; i < len; i++) { // Make these calls async so we avoid blocking the page/renderer @@ -603,7 +631,7 @@ } }; - var loadSvg = function (onElementInjectedCallback, url, el) { + loadSvg = function (onElementInjectedCallback, url, el) { var urlArr, fileName, fragId; //var state = {onElementInjectedCallback:onElementInjectedCallback, injections:injections, config:config, url:url, el:el, ranScripts:ranScripts}; // console.log('loadSvg', url); @@ -708,7 +736,7 @@ } }; - var writeDefaultClass = function(removeStylesClass) { + writeDefaultClass = function(removeStylesClass) { var css = 'svg.' + removeStylesClass + ' {fill: currentColor;}', head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); @@ -724,7 +752,7 @@ console.info( 'default class written: ', css ); }; - var replaceNoSVGClass = function(element, noSVGClassName, hasSvgSupport) { + replaceNoSVGClass = function(element, noSVGClassName, hasSvgSupport) { if(hasSvgSupport) { element.className.replace(noSVGClassName, ''); } @@ -734,7 +762,7 @@ }; - var onLoadSVG = function(url, fragmentId, onElementInjectedCallback, el){ + onLoadSVG = function(url, fragmentId, onElementInjectedCallback, el){ // console.log('onLoadSVG', url, fragmentId, onElementInjectedCallback, el); var svg, imgId, @@ -898,7 +926,7 @@ // }); //} - var uniqueClasses = function(list) { + uniqueClasses = function(list) { list = list.split(' '); var hash = {}; @@ -914,15 +942,15 @@ return out.join(' '); }; - var isFunction = function(obj) { + isFunction = function(obj) { return !!(obj && obj.constructor && obj.call && obj.apply); }; - var isArray = function(obj) { + isArray = function(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; }; - var svgElemSetClassName = function(el, newClassNames){ + svgElemSetClassName = function(el, newClassNames){ var curClasses = el.getAttribute('class'); curClasses = curClasses ? curClasses : ''; @@ -939,7 +967,7 @@ * cache (or polyfill for <= IE8) Array.forEach() * source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach */ - var forEach = Array.prototype.forEach || function (fn, scope) { + forEach = Array.prototype.forEach || function (fn, scope) { if (this === void 0 || this === null || typeof fn !== 'function') { throw new TypeError(); } @@ -955,7 +983,7 @@ } }; - var setRootLevelElem = function (type, svg, el, fragmentId) { + setRootLevelElem = function (type, svg, el, fragmentId) { var titleId = fragmentId + '-' + type + '-' + injections.count, titleCandidate @@ -975,7 +1003,7 @@ return titleId; }; - var addRootLevelElem = function (type, svg, text, id, insertBefore) { + addRootLevelElem = function (type, svg, text, id, insertBefore) { var existingElem = svg.querySelector(type); if (existingElem) { existingElem.parentNode.removeChild(existingElem); From 216993c903adcc3d51519d18e531fe1e2516e33c Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:06:55 +0100 Subject: [PATCH 117/212] 2.0.23 --- CHANGELOG.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d026c1..ce53860 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ ## Change Log -### upcoming (2016/03/22 10:11 +00:00) +### ${npm_package_version} (2016/03/22 11:14 +00:00) +- [ff5578d](https://github.com/flobacher/SVGInjector2/commit/ff5578d442010529db2d133deb7837611f9f4616) ${npm_package_version} +- [ec44146](https://github.com/flobacher/SVGInjector2/commit/ec44146b4b52dc7156fd296411e108cd848edc26) IE does not support Children on SVGElement! + +### 2.0.22 (2016/03/22 10:22 +00:00) +- [8453317](https://github.com/flobacher/SVGInjector2/commit/8453317d09226d4295f72775d1c6fe4117194f62) 2.0.22 (@flobacher) +- [84fd93c](https://github.com/flobacher/SVGInjector2/commit/84fd93cd5a406d1f119f207a67c72e4a19cf5c82) update ignore rules (@flobacher) + +### 2.0.21 (2016/03/22 10:11 +00:00) +- [33afd04](https://github.com/flobacher/SVGInjector2/commit/33afd04de4a5d745d6faaa6efa3a23c69e27cb3e) 2.0.21 (@flobacher) - [4f2317e](https://github.com/flobacher/SVGInjector2/commit/4f2317e21d8d02b59bd8cfd94636071144062514) update readme (@flobacher) ### 2.0.20 (2016/03/22 09:47 +00:00) From d9454742b29e0ea5f040f7eec544adef1dd074f4 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:07:26 +0100 Subject: [PATCH 118/212] make npm scripts work on windows as well --- package.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 77bccab..03e5881 100644 --- a/package.json +++ b/package.json @@ -39,10 +39,9 @@ "test": "jshint svg-injector.js", "build": "uglifyjs ./svg-injector.js --stats --compress drop_console=true --mangle --comments --output ./svg-injector.min.js --source-map svg-injector.map.js && mv -f svg-injector.{map,min}.js ./dist", "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", - "versionpatch": "npm version patch --no-git-tag-version", - "commit": "git add ./dist/ && git add CHANGELOG.md && git add package.json && git commit -m ${npm_package_version}", - "tag": "git tag ${npm_package_version}", - "release": "npm run changelog & npm run test && npm run build && npm run versionpatch && npm run commit && npm run tag", - "prepublish": "git push && git push --tags" + "versionpatch": "npm version patch", + "commit": "git add ./dist/ && git add CHANGELOG.md && git add package.json && git commit --amend", + "release": "npm run changelog & npm run test && npm run build && npm run versionpatch && npm run commit", + "prepublish": "git push --follow-tags" } } From 9480d167c1b9310edf307311d356cc1a106b03e2 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:11:53 +0100 Subject: [PATCH 119/212] codestyle --- svg-injector.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index ab701b3..3c017d7 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -1004,12 +1004,14 @@ }; addRootLevelElem = function (type, svg, text, id, insertBefore) { - var existingElem = svg.querySelector(type); + var newElem, + existingElem = svg.querySelector(type); + if (existingElem) { existingElem.parentNode.removeChild(existingElem); } - var newElem = document.createElementNS(SVG_NS, type); + newElem = document.createElementNS(SVG_NS, type); newElem.appendChild(document.createTextNode(text)); newElem.setAttributeNS(SVG_NS,'id', id); From a721de4e732e5551a4afea529148c4e5c5256c0d Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:33:18 +0100 Subject: [PATCH 120/212] make npm scripts work on windows as well --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 03e5881..ce9fdf0 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,9 @@ "test": "jshint svg-injector.js", "build": "uglifyjs ./svg-injector.js --stats --compress drop_console=true --mangle --comments --output ./svg-injector.min.js --source-map svg-injector.map.js && mv -f svg-injector.{map,min}.js ./dist", "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", - "versionpatch": "npm version patch", - "commit": "git add ./dist/ && git add CHANGELOG.md && git add package.json && git commit --amend", - "release": "npm run changelog & npm run test && npm run build && npm run versionpatch && npm run commit", + "versionpatch": "npm version patch --force", + "commit": "git add ./dist/ && git add CHANGELOG.md && git add package.json && git commit --amend --no-edit", + "release": "npm run changelog & npm run test && npm run build && npm version patch --force && npm run commit", "prepublish": "git push --follow-tags" } } From 5b5b00aae15bca85c5367b4d2c0475a7f4fcb4ce Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:48:55 +0100 Subject: [PATCH 121/212] make npm scripts work on windows as well --- package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index ce9fdf0..37d875c 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,8 @@ "test": "jshint svg-injector.js", "build": "uglifyjs ./svg-injector.js --stats --compress drop_console=true --mangle --comments --output ./svg-injector.min.js --source-map svg-injector.map.js && mv -f svg-injector.{map,min}.js ./dist", "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", - "versionpatch": "npm version patch --force", - "commit": "git add ./dist/ && git add CHANGELOG.md && git add package.json && git commit --amend --no-edit", - "release": "npm run changelog & npm run test && npm run build && npm version patch --force && npm run commit", - "prepublish": "git push --follow-tags" + "add": "git add ./dist/ && git add CHANGELOG.md", + "version": "npm run changelog & npm run test && npm run build && npm run add", + "prepublish": "git push && git push --tags" } } From 7ae93d321ec228339c1ac7c2871a222f9fb0ad06 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:54:43 +0100 Subject: [PATCH 122/212] add shortcut script --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 37d875c..c27f376 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,9 @@ "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", "add": "git add ./dist/ && git add CHANGELOG.md", "version": "npm run changelog & npm run test && npm run build && npm run add", + + "release": "npm version patch", + "prepublish": "git push && git push --tags" } } From dec40de1191c38fea293eb639082b51cbcc3876f Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 13:55:23 +0100 Subject: [PATCH 123/212] 2.0.24 --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- package.json | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index a7bf82b..3c86cd3 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","existingElem","newElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./svg-injector.min.js"} \ No newline at end of file +{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","newElem","existingElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./svg-injector.min.js"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index def1bc2..459d714 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -10,5 +10,5 @@ * original Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class").trim();return t?t.split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c=!1,u=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?f+=":not([x])":(a.x=i[0],f+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?f+=":not([y])":(a.y=i[1],f+='[y="'+i[1]+'"]');var p=t.querySelectorAll(f);p.length>1,u=p[0]}if(u&&u instanceof SVGSVGElement){s=u.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(u&&u instanceof SVGUseElement){var g=t.getElementById(u.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,s=t.cloneNode(!0)}c&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l=r.querySelector(e);l&&l.parentNode.removeChild(l);var a=t.createElementNS(G,e);return a.appendChild(t.createTextNode(n)),a.setAttributeNS(G,"id",s),r.insertBefore(a,i),a},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); +!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class").trim();return t?t.split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c=!1,u=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?f+=":not([x])":(a.x=i[0],f+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?f+=":not([y])":(a.y=i[1],f+='[y="'+i[1]+'"]');var p=t.querySelectorAll(f);p.length>1,u=p[0]}if(u&&u instanceof SVGSVGElement){s=u.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(u&&u instanceof SVGUseElement){var g=t.getElementById(u.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,s=t.cloneNode(!0)}c&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l,a=r.querySelector(e);return a&&a.parentNode.removeChild(a),l=t.createElementNS(G,e),l.appendChild(t.createTextNode(n)),l.setAttributeNS(G,"id",s),r.insertBefore(l,i),l},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/package.json b/package.json index c27f376..2b594ef 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.23", + "version": "2.0.24", "author": "", "contributors": [ { @@ -41,9 +41,7 @@ "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", "add": "git add ./dist/ && git add CHANGELOG.md", "version": "npm run changelog & npm run test && npm run build && npm run add", - "release": "npm version patch", - "prepublish": "git push && git push --tags" } } From 94916ed7ceebebf4802bff9a6081f13e718ac674 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 14:07:23 +0100 Subject: [PATCH 124/212] 2.0.25 --- CHANGELOG.md | 10 +++++++++- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- package.json | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce53860..06ddce6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ ## Change Log -### ${npm_package_version} (2016/03/22 11:14 +00:00) +### v2.0.24 (2016/03/22 12:55 +00:00) +- [dec40de](https://github.com/flobacher/SVGInjector2/commit/dec40de1191c38fea293eb639082b51cbcc3876f) 2.0.24 +- [7ae93d3](https://github.com/flobacher/SVGInjector2/commit/7ae93d321ec228339c1ac7c2871a222f9fb0ad06) add shortcut script +- [5b5b00a](https://github.com/flobacher/SVGInjector2/commit/5b5b00aae15bca85c5367b4d2c0475a7f4fcb4ce) make npm scripts work on windows as well +- [a721de4](https://github.com/flobacher/SVGInjector2/commit/a721de4e732e5551a4afea529148c4e5c5256c0d) make npm scripts work on windows as well +- [9480d16](https://github.com/flobacher/SVGInjector2/commit/9480d167c1b9310edf307311d356cc1a106b03e2) codestyle +- [d945474](https://github.com/flobacher/SVGInjector2/commit/d9454742b29e0ea5f040f7eec544adef1dd074f4) make npm scripts work on windows as well +- [216993c](https://github.com/flobacher/SVGInjector2/commit/216993c903adcc3d51519d18e531fe1e2516e33c) 2.0.23 +- [e425f4e](https://github.com/flobacher/SVGInjector2/commit/e425f4e5366c85548fcd75a77091a81216259edd) avoid latedef warnings - [ff5578d](https://github.com/flobacher/SVGInjector2/commit/ff5578d442010529db2d133deb7837611f9f4616) ${npm_package_version} - [ec44146](https://github.com/flobacher/SVGInjector2/commit/ec44146b4b52dc7156fd296411e108cd848edc26) IE does not support Children on SVGElement! diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 3c86cd3..a74a4f2 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","newElem","existingElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./svg-injector.min.js"} \ No newline at end of file +{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","newElem","existingElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./svg-injector.min.js"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 459d714..88a58b1 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -10,5 +10,5 @@ * original Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class").trim();return t?t.split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c=!1,u=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?f+=":not([x])":(a.x=i[0],f+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?f+=":not([y])":(a.y=i[1],f+='[y="'+i[1]+'"]');var p=t.querySelectorAll(f);p.length>1,u=p[0]}if(u&&u instanceof SVGSVGElement){s=u.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(u&&u instanceof SVGUseElement){var g=t.getElementById(u.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,s=t.cloneNode(!0)}c&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l,a=r.querySelector(e);return a&&a.parentNode.removeChild(a),l=t.createElementNS(G,e),l.appendChild(t.createTextNode(n)),l.setAttributeNS(G,"id",s),r.insertBefore(l,i),l},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); +!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class");return t?t.trim().split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c=!1,u=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?f+=":not([x])":(a.x=i[0],f+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?f+=":not([y])":(a.y=i[1],f+='[y="'+i[1]+'"]');var p=t.querySelectorAll(f);p.length>1,u=p[0]}if(u&&u instanceof SVGSVGElement){s=u.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(u&&u instanceof SVGUseElement){var g=t.getElementById(u.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,s=t.cloneNode(!0)}c&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l,a=r.querySelector(e);return a&&a.parentNode.removeChild(a),l=t.createElementNS(G,e),l.appendChild(t.createTextNode(n)),l.setAttributeNS(G,"id",s),r.insertBefore(l,i),l},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/package.json b/package.json index 2b594ef..88f11a4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.24", + "version": "2.0.25", "author": "", "contributors": [ { From 8310c9672b423acd866ea469aa454576452613b3 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 14:39:36 +0100 Subject: [PATCH 125/212] add accessibility section --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 130c59e..244bf96 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,12 @@ add ``` to let the browser download the file, even before it was requested via xhr +### Accessibility +`role="img"` and `aria-labelledby` gets added to the root svg element. `aria-labelledby` points to the id of the `desc` and `title` tags inside the injected svg. +The contents of those tags comes from corresponding tags inside the element which is the injection target, if not found there, they are taken from the svg-instance that gets +injected, and if missing there as well defaults to the fragmentid or filename of the injectable. `role="presentation"` gets added to all elements +in all proper browsers (so no IE). + # Licence From 07217d88739a7144c7f8c68846d8873a579457fb Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 14:43:15 +0100 Subject: [PATCH 126/212] codestyle --- svg-injector.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index 1d08cc0..76cc0c7 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -1,5 +1,5 @@ /** - * SVGInjector v2.0.0 - Fast, caching, dynamic inline SVG DOM injection library + * SVGInjector v2.0.26 - Fast, caching, dynamic inline SVG DOM injection library * https://github.com/flobacher/SVGInjector2 * forked from: * https://github.com/iconic/SVGInjector @@ -514,7 +514,8 @@ symbolAttributesToFind, curClassList, setViewboxOnNewSVG = false, - symbolElem = null; + symbolElem = null, + symobolList; if(fragId === undefined){ return sourceSvg.cloneNode(true); @@ -556,7 +557,7 @@ symbolAttributesToFind.y = viewBox[1]; selector += '[y="' + viewBox[1] + '"]'; } - var symobolList = sourceSvg.querySelectorAll(selector); + symobolList = sourceSvg.querySelectorAll(selector); if (symobolList.length > 1) { console.warn('more than one item, with the matching viewbox found!', symobolList); } From 94873198cca125917abf3a85baa7b803772e12ce Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 22 Mar 2016 14:47:13 +0100 Subject: [PATCH 127/212] 2.0.26 --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index a74a4f2..6ea806a 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","symobolList","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","newElem","existingElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./svg-injector.min.js"} \ No newline at end of file +{"version":3,"sources":["./svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","suffix","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","name","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","styleTag","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","textContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","symobolList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","imgId","titleId","descId","children","curChildElem","SVGDefsElement","classMerge","concat","imgStyle","imgData","filter","at","dataAttr","presARAttr","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","titleCandidate","firstChild","text","insertBefore","newElem","existingElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":";;;;;;;;;;;;CAaC,SAASA,EAAQC,GAChB,YAWA,IAAIC,GAAc,WAMhB,QAASA,GAAaC,GACpBD,EAAYE,kBACU,mBAAZD,IACRE,KAAKC,KAAKH,GAMd,GAQII,GACAC,EACAC,EACAC,EACAC,EACAC,EAIFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAtCEC,EAAS,6BACTC,EAAW,+BACXC,EAA4B,SAC5BC,EAA+BD,EAA4B,KAC3DE,GAAgCF,GAChCG,EAAkC,MAk9BtC,OA56BA/B,MAGAP,EAAYE,gBAAkB,EAW9BF,EAAYuC,UAAUnC,KAAO,SAASH,GACpCA,EAAUA,MACVI,KACAK,KACAA,EAAI8B,QAAuC,UAA7B1C,EAAO2C,SAASC,SAC9BhC,EAAIiC,cAAgB5C,EAAS6C,eAAeC,WAAW,oDAAqD,OAE5GvC,GACEwC,MAAO,EACPC,aAGFvC,KACAC,KAMAA,EAAOuC,YAAc/C,EAAQ+C,aAAe,SAG5CvC,EAAOwC,YAAchD,EAAQgD,cAAe,EAK5CxC,EAAOyC,sBAAwBjD,EAAQiD,wBAAyB,EAEhEzC,EAAO0C,gBAAuD,mBAA5BlD,GAAQkD,gBACxC,GAAKlD,EAAQkD,gBAEf1C,EAAO2C,gBAAuD,mBAA5BnD,GAAQmD,gBACxCjB,EAA4BlC,EAAQmD,gBAEtC3C,EAAO4C,kBAA2D,mBAA9BpD,GAAQoD,kBAC1CjB,EAA+BnC,EAAQoD,kBAEzC5C,EAAO6C,kBAA0D,mBAA9BrD,GAAQqD,kBACzChB,EAAkCrC,EAAQqD,kBAE5C7C,EAAO8C,gBAAsD,mBAA5BtD,GAAQsD,iBACvC,EAAQtD,EAAQsD,gBAElB9C,EAAO+C,kBAA0D,mBAA9BvD,GAAQuD,kBACzCnB,EAA+BpC,EAAQuD,kBAEzC/C,EAAOgD,gBAAuD,mBAA5BxD,GAAQwD,iBACxC,EAAOxD,EAAQwD,gBAEjBhD,EAAOiD,eAAoD,mBAA3BzD,GAAQyD,gBAA6D,KAA3BzD,EAAQyD,gBAChF,EAAQzD,EAAQyD,eAElBjD,EAAOkD,kBAAoBlD,EAAO4C,kBAElC5C,EAAOmD,eAAoD,mBAA3B3D,GAAQ2D,gBACtC,EAAQ3D,EAAQ2D,eAEfnD,EAAOmD,iBACRlD,EAAIiC,eAAgB,GAGtBnB,EAAkBzB,EAAS8D,cAAc,QAAS,SAAUnD,EAAIiC,eAE7DjC,EAAIiC,eAAsD,mBAA9B1C,GAAQqD,mBACrC/B,EAAkBd,EAAO6C,oBAU7BtD,EAAYuC,UAAUuB,OAAS,SAASf,EAAUgB,EAAgBC,GAChE,GAAwBC,SAApBlB,EAASmB,OAAsB,CACjC,GAAIC,GAAiB,EACjBC,EAAMjE,IACV2B,GAAQuC,KAAKtB,EAAU,SAAUuB,GAC/BF,EAAIG,cAAcD,EAAS,SAAUE,GAC/BR,GAAwC,kBAAjBA,IAA6BA,EAAaQ,GACjET,GAAkBhB,EAASmB,WAAaC,GAAgBJ,EAAeI,WAK3EpB,GACF5C,KAAKoE,cAAcxB,EAAU,SAAUyB,GACjCR,GAAwC,kBAAjBA,IAA6BA,EAAaQ,GACjET,GAAgBA,EAAe,GACnChB,EAAW,OAITgB,GAAgBA,EAAe,IAYzC/D,EAAYuC,UAAUgC,cAAgB,SAAUE,EAAIC,GAClD,GAAIC,GAAQC,CAEZ,IAAInE,EAAOiD,kBAAmB,GAASe,EAAGI,aAAa,aAAeJ,EAAGI,aAAa,OAEpFF,EAASF,EAAGI,aAAa,aAAeJ,EAAGI,aAAa,WAErD,CAEH,GADAD,EAAW1D,EAAqBuD,GACf,KAAbG,EAEF,MAEFD,GAASlE,EAAOiD,eAAiB,IAAMkB,EAEvCH,EAAGK,aAAa,WAAYH,GAG9B,GAAII,GAAmBJ,EAAOK,MAAM,IACJ,KAA5BD,EAAiBb,QACnBa,EAAiBE,KAAK,GAExB,IAAIC,EAGJ,KAAK,SAAWC,KAAKR,GAEnB,WADAD,GAA0B,wDAA0DC,EAKtF,KAAIjE,EAAIiC,cAKH,CAKH,GAAIyC,GAAqBX,EAAGI,aAAa,kBAAoBJ,EAAGI,aAAa,WAqC7E,aAlCIO,GACFX,EAAGK,aAAa,MAAOM,GACvBV,EAA0B,OAGnBjE,EAAOwC,aAGZiC,EADEH,EAAiBb,OAAS,EACda,EAAiB,GAAK,OAGtBJ,EAAOK,MAAM,KAAKK,MAAMC,QAAQ,OAAQ,QAGpD1D,EAAQnB,EAAO+C,mBACjB7C,EAAsB8D,EAAIM,EAAiB,GAAItE,EAAO+C,mBAE/C7B,EAAWlB,EAAO+C,mBAEzB/C,EAAO+C,kBAAkBiB,EAAIM,EAAiB,IAEH,gBAA7BtE,GAAO+C,kBACrB3B,EAAoB4C,EAAIhE,EAAO+C,mBAG/BiB,EAAGK,aAAa,MAAOrE,EAAOwC,YAAc,IAAMiC,GAEpDR,EAA0B,OAI1BA,EAA0B,uEA3CxB9C,EAAQnB,EAAO+C,oBACjB5C,EAAyB6D,EAAIM,EAAiB,GAAItE,EAAO+C,mBAoDrB,KAApClD,EAAWyC,SAASwC,QAAQd,KAOhCnE,EAAWyC,SAASkC,KAAKR,GAGzBA,EAAGK,aAAa,MAAO,IAGvBxD,EAAQoD,EAA2BC,EAAQF,KAI7CzE,EAAYuC,UAAUiD,OAAS,WAC7B,MAAO9E,IAITC,EAAwB,SAAU2D,EAASmB,EAAUC,GACnD,GAAIC,GAAoC,mBAAfD,GAA8BrD,EAA+BqD,EAAWE,MAAM,EAGvG9D,GAAQuC,KACNsB,EACA,SAASE,EAAcC,GACrBH,EAAUG,GAAOD,EAAaP,QAAQ,KAAMG,KAIhD5D,EAAoByC,EAASqB,IAG/B/E,EAA2B,SAAU0D,EAASmB,EAAUM,GACtDA,EAAqD,mBAAvBA,GAAsC1D,EAA6BuD,MAAM,GAAKG,EAAmBH,MAAM,EAErI,IAAII,GACAC,EACAC,EAAiB5B,EAAQO,aAAa,QAEZ,oBAAnBqB,IAAqD,OAAnBA,IAI7CD,EAAgBC,EAAelB,MAAM,KACjCiB,IAEFnE,EAAQuC,KACN0B,EACA,SAASI,GACPA,EAAuBA,EAAqBb,QAAQ,KAAMG,GAC1DO,EAAgBC,EAAcV,QAAQY,GAClCH,GAAiB,IAEnBC,EAAcD,GAAiB,MAMrC1B,EAAQQ,aAAa,QAASpD,EAAcuE,EAAcG,KAAK,UAKnEvF,EAAqB,SAAU2D,EAAK6B,GAClC,GAWIC,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA1BAC,IACDC,IAAI,iBAAmBV,OAAQ,OAAQ,YACvCU,IAAI,iBAAmBV,OAAQ,OAAQ,YACvCU,IAAI,WAAmBV,OAAQ,eAC/BU,IAAI,OAAmBV,OAAQ,UAC/BU,IAAI,SAAmBV,OAAQ,YAC/BU,IAAI,gBAAmBV,OAAQ,mBAC/BU,IAAI,SAAmBV,OAAQ,YAC/BU,IAAI,SAAmBV,OAAQ,SAAU,eAAgB,aAAc,eAqB1E/E,GAAQuC,KAAKiD,EAAM,SAASE,GAG1B,IADAjB,EAAc/B,EAAIiD,iBAAiBD,EAAKD,IAAM,QACzCd,EAAS,EAAGD,EAASD,EAAYrC,OAAiBsC,EAATC,EAAiBA,IAAU,CAIvE,IAHAH,EAAUC,EAAYE,GAAQiB,GAAK,IAAMrB,EAEzCQ,EAAQW,EAAKX,MACRE,EAAU,EAAGD,EAAUD,EAAM3C,OAAkB4C,EAAVC,EAAmBA,IAK3D,IADAL,EAAYlC,EAAIiD,iBAAiB,IAAMZ,EAAME,GAAW,UAAYR,EAAYE,GAAQiB,GAAK,OACxFd,EAAS,EAAGD,EAASD,EAAUxC,OAAiByC,EAATC,EAAiBA,IAE3DF,EAAUE,GAAQ9B,aAAa+B,EAAME,GAAU,QAAUT,EAAU,IAQvE,KAFAU,EAAWxC,EAAIiD,iBAAiB,YAChCN,KACKD,EAAc,EAAGD,EAAcD,EAAS9C,OAAsB+C,EAAdC,EAA2BA,IAC1EF,EAASE,GAAaS,eAAezF,EAAU,QAAQ0F,aAAe,IAAMrB,EAAYE,GAAQiB,IAClGP,EAAMlC,KAAK+B,EAASE,GAIxB,KAAKG,EAAU,EAAGD,EAAUD,EAAMjD,OAAkBkD,EAAVC,EAAmBA,IAC3DF,EAAME,GAASQ,eAAe3F,EAAU,OAAQ,IAAMoE,EAGxDC,GAAYE,GAAQiB,GAAKpB,MAM/BxF,EAAiB,SAAUgH,EAAeC,EAAeC,GACvD,GAAIC,EAC8B,oBAAvBD,KAAsCA,GAAsB,KAAM,WAE7E,KAAI,GAAIE,GAAE,EAAGA,EAAEJ,EAAcK,WAAWjE,OAAQgE,IAC9CD,EAAUH,EAAcK,WAAWC,KAAKF,GACpCF,EAAmBzC,QAAQ0C,EAAQI,MAAQ,GAC7CN,EAAcjD,aAAamD,EAAQI,KAAMJ,EAAQK,QAKvDvH,EAAmB,SAAUwH,GAC3B,GAAI/D,GAAMzE,EAASyI,gBAAgBvG,EAAQ,MAO3C,OANAH,GAAQuC,KAAKkE,EAAUE,WAAY,SAASC,GAE1ClE,EAAImE,YAAYD,EAAME,WAAU,MAGlC9H,EAAeyH,EAAW/D,GACnBA,GAKTxD,EAAoB,SAAU6H,EAAUC,EAAatE,GACnD,GACIuE,GACAC,EACAC,EACAC,EACAC,EAGAC,EARAC,EAAS7E,EAAIK,aAAa,YAAYG,MAAM,KAM5CsE,EAAkBT,EAASU,YAC3BC,EAAa,GAEbC,EAAiB,SAASjC,EAAM1B,EAAK4D,GACnCA,EAAI5D,GAAO,IAAMmD,EAAqB,IAAMzB,EAGlD,IAAG6B,EAAOnF,OAAS,EACjB8E,EAAsBK,EAAO,GAC7BJ,EAAqBD,EAAsB,IAAMF,EACjDC,EAAQ,GAAIY,QAAO,MAAQX,EAAsB,IAAK,KACtDH,EAASU,YAAcD,EAAgBhE,QAAQyD,EAAO,IAAME,EAAqB,SAE9E,CAOH,IANAC,EAAiBG,EAAO,GAAGrE,MAAM,KACjCiE,EAAqBC,EAAeA,EAAehF,OAAO,GAAGoB,QAAQ,OAAQ,IAAM,IAAMwD,EAGzFC,EAAQ,GAAIY,QAAO,6BAA8B,KAEY,QAArDR,EAAoBJ,EAAMa,KAAKN,KAA4B,CACjEF,EAAcD,EAAkB,GAAGU,OAAO7E,MAAM,MAChDoE,EAAYtH,QAAQ2H,EACpB,IAAIK,GAAOV,EAAYhD,KAAK,MAAQ,IAAM+C,EAAkB,GAAK,GAEjEK,IAAcM,EAEhBjB,EAASU,YAAcC,EAGzBhF,EAAIM,aAAa,QAAUN,EAAIK,aAAa,SAAW,IAAMoE,IAG/DhI,EAAe,SAAU8I,GACvB,GAAIC,GAAeD,EAAWlF,aAAa,QAC3C,OAAO,GAAiBmF,EAAaH,OAAO7E,MAAM,SAGpD9D,EAAuB,SAAUoD,GAC/B,GAAI2F,GAAUhJ,EAAaqD,GACvBoD,EAAK,EAOT,OANA5F,GAAQuC,KAAK4F,EAAS,SAAUC,GAC3BA,EAAS3E,QAAQ9E,EAAO4C,oBAAsB,IAC/CqE,EAAKwC,EAAS5E,QAAQ7E,EAAO4C,kBAAmB,OAI7CqE,GAGTvG,EAAW,SAAUV,EAAQ0J,EAAWC,GAEtC,GAAIC,GACFC,EACAC,EACAC,EACAC,EACAC,EAGAC,EAFAC,GAAqB,EACrBC,EAAa,IAGf,IAAc5G,SAAXmG,EACD,MAAOD,GAAUvB,WAAU,EAI3B,IADAyB,EAAUF,EAAUW,eAAeV,GACnC,CAQA,GAHAI,EAAcH,EAAQxF,aAAa,WACnC0F,EAAUC,EAAYxF,MAAM,KAExBqF,YAAmBU,kBAErBT,EAASvJ,EAAiBsJ,GAC1BO,GAAqB,MAGlB,IAAIP,YAAmBW,gBAAgB,CAE1C,GADAH,EAAa,KACTpK,EAAOyC,sBAAuB,CAChC,GAAI+H,GAAW,YAAcV,EAAQ,GAAK,cAAcA,EAAQ,GAAG,IAEnEE,MACuC,IAAnCS,KAAKC,IAAIC,SAASb,EAAQ,KAC5BU,GAAY,aAGZR,EAAuBY,EAAId,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAGG,IAAnCW,KAAKC,IAAIC,SAASb,EAAQ,KAC5BU,GAAY,aAGZR,EAAuBa,EAAIf,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEpCI,EAAcR,EAAU1C,iBAAiBwD,GACrCN,EAAYzG,OAAS,EAGzB2G,EAAaF,EAAY,GAE3B,GAAIE,GAAeA,YAAsBU,eAAgB,CACvDjB,EAASO,EAAWjC,WAAU,EAE9B,KAAK,GAAI4C,KAAQf,GACF,UAATe,GAA6B,WAATA,GACtBlB,EAAOmB,gBAAgBD,OAIxB,IAAGX,GAAeA,YAAsBa,eAAgB,CAE3D,GAAIC,GAAmBxB,EAAUW,eAC/BD,EAAWlD,eAAezF,EAAU,QAAQ0J,OAAO,GAErDtB,GAASvJ,EAAiB4K,GAC1BnB,EAAcmB,EAAiB9G,aAAa,WAC5C0F,EAAUC,EAAYxF,MAAM,KAC5B4F,GAAqB,MAMrBA,IAAqB,EACrBN,EAASH,EAAUvB,WAAU,GAK7BgC,IACFN,EAAOxF,aAAa,UAAWyF,EAAQnE,KAAK,MAC5CkE,EAAOxF,aAAa,QAASyF,EAAQ,GAAG,MACxCD,EAAOxF,aAAa,SAAUyF,EAAQ,GAAG,OAE3CD,EAAOxF,aAAa,QAAS7C,GAC7BqI,EAAOxF,aAAa,cAAe5C,GAEnCwI,EAAezJ,EAAaqJ,EAC5B,IAAIuB,GAAkBpL,EAAOkD,kBAAoByG,CAKjD,OAJIM,GAAanF,QAAQsG,GAAiB,IACxCnB,EAAazF,KAAK4G,GAClBvB,EAAOxF,aAAa,QAAS4F,EAAatE,KAAK,OAE1CkE,IAMXlJ,EAAe,SAAU0K,EAAU1B,EAAQ2B,EAAUtH,GACnDlE,EAAauL,GAAYvL,EAAauL,OACtCvL,EAAauL,GAAU7G,MAAM8G,SAASA,EAAUC,WAAW5B,EAAQ9F,QAAQG,KAG7EpD,EAAsB,SAAU4K,GAE9B,IAAK,GADDC,GACKhE,EAAI,EAAGiE,EAAM5L,EAAa0L,GAAK/H,OAAYiI,EAAJjE,EAASA,KAGvD,SAAWkE,GACTC,WAAW,WACTH,EAAmB3L,EAAa0L,GAAKG,GACrC3K,EAAUwK,EAAKC,EAAiBF,WAAYE,EAAiBH,SAAUG,EAAiB5H,UACvF,IACF4D,IAKP5G,EAAU,SAAUoD,EAA2BuH,EAAKxH,GAClD,GAAI6H,GAAQR,EAAU1B,CAOtB,IAJAkC,EAASL,EAAIjH,MAAM,KACnB8G,EAAWQ,EAAO,GAClBlC,EAA4B,IAAlBkC,EAAOpI,OAAgBoI,EAAO,GAAKrI,OAElBA,SAAvB5D,EAASyL,GACPzL,EAASyL,YAAqBP,eAGhC9J,EAAUqK,EAAU1B,EAAQ1F,EAA2BD,GAKvDrD,EAAa0K,EAAU1B,EAAQ1F,EAA2BD,OAGzD,CAEH,IAAK3E,EAAOyM,eAEV,MADA7H,GAA0B,4CACnB,CAITrE,GAASyL,MACT1K,EAAa0K,EAAU1B,EAAQ1F,EAA2BD,EAE1D,IAAI+H,GAAc,GAAID,eAEtBC,GAAYC,mBAAqB,WAE/B,GAA+B,IAA3BD,EAAYE,WAAkB,CAGhC,GAA2B,MAAvBF,EAAYG,QAA8C,OAA5BH,EAAYI,YAS5C,MARAlI,GAA0B,4BAA8BoH,IAQjD,CAIT,MAA2B,MAAvBU,EAAYG,QAAmBjM,EAAI8B,SAAkC,IAAvBgK,EAAYG,QAuC5D,MADAjI,GAA0B,0CAA4C8H,EAAYG,OAAS,IAAMH,EAAYK,aACtG,CArCP,IAAIL,EAAYI,sBAAuBE,UAErCzM,EAASyL,GAAYU,EAAYI,YAAYG,oBAU1C,IAAIC,WAAcA,oBAAqBC,UAAW,CACrD,GAAIC,EACJ,KACE,GAAIC,GAAS,GAAIH,UACjBE,GAASC,EAAOC,gBAAgBZ,EAAYa,aAAc,YAE5D,MAAOC,GACLJ,EAASjJ,OAGX,IAAKiJ,GAAUA,EAAOK,qBAAqB,eAAerJ,OAExD,MADAQ,GAA0B,6BAA+BuH,IAClD,CAIP5L,GAASyL,GAAYoB,EAAOH,gBAKhC1L,EAAoByK,KAS1BU,EAAYgB,KAAK,MAAO1B,GAIpBU,EAAYiB,kBAAkBjB,EAAYiB,iBAAiB,YAE/DjB,EAAYkB,SAIhBnM,EAAoB,SAAS+B,GAC3B,GAAIqK,GAAM,OAASrK,EAAoB,yBACrCsK,EAAO7N,EAAS6N,MAAQ7N,EAASwN,qBAAqB,QAAQ,GAC9DM,EAAQ9N,EAAS+N,cAAc,QAEjCD,GAAME,KAAO,WACTF,EAAMG,WACRH,EAAMG,WAAWC,QAAUN,EAG3BE,EAAMlF,YAAY5I,EAASmO,eAAeP,IAE5CC,EAAKjF,YAAYkF,IAInBrM,EAAoB,SAAS8C,EAAS6J,EAAgBxL,GACjDA,EACD2B,EAAQqB,UAAUL,QAAQ6I,EAAgB,IAG1C7J,EAAQqB,WAAa,IAAMwI,GAK/B1M,EAAY,SAASwK,EAAKD,EAAYtH,EAA2BD,GAE/D,GAAID,GACA4J,EACAC,EACAC,CAIJ,IADA9J,EAAMrD,EAASV,EAAQJ,EAAS4L,GAAMD,GACnB,mBAARxH,IAAsC,gBAARA,GAEvC,MADAE,GAA0BF,IACnB,CAGT4J,GAAQ3J,EAAGI,aAAa,MACpBuJ,GACF5J,EAAIM,aAAa,KAAMsJ,GAIzB5J,EAAIM,aAAa,OAAQ,OACzBhD,EAAQuC,KAAKG,EAAI+J,aAAgB,SAAUC,GACnCA,YAAwBC,iBAC5BD,EAAa1J,aAAa,OAAQ,kBAKtCwJ,EAASvM,EAAiB,OAAQyC,EAAKC,EAAIuH,GAC3CqC,EAAUtM,EAAiB,QAASyC,EAAKC,EAAIuH,GAC7CxH,EAAIM,aAAa,kBAAmBuJ,EAAU,IAAMC,EAIpD,IAAII,MAAgBC,OAAOnK,EAAIK,aAAa,aAAgB,eAAgBJ,EAAGI,aAAa,cAAgBuB,KAAK,IACjH5B,GAAIM,aAAa,QAASpD,EAAcgN,GAExC,IAAIE,GAAWnK,EAAGI,aAAa,QAC3B+J,IACFpK,EAAIM,aAAa,QAAS8J,EAI5B,IAAIC,MAAaC,OAAOzK,KAAKI,EAAG0D,WAAY,SAAU4G,GACpD,MAAO,mBAAqB5J,KAAK4J,EAAG1G,OAEtCvG,GAAQuC,KAAKwK,EAAS,SAAUG,GAC1BA,EAAS3G,MAAQ2G,EAAS1G,OAC5B9D,EAAIM,aAAakK,EAAS3G,KAAM2G,EAAS1G,QAK7C,IAAI2G,GAAaxK,EAAGI,aAAa,sBAC9BoK,IACDzK,EAAIM,aAAa,sBAAuBmK,GAS1CpO,EAAmB2D,EAAKlE,EAAWwC,OAInC0B,EAAIiH,gBAAgB,UAUpB,KAAK,GAFDyD,GAAQC,EAFRC,EAAU5K,EAAIiD,iBAAiB,UAC/B4H,KAGKC,EAAI,EAAGC,EAAaH,EAAQlL,OAAYqL,EAAJD,EAAgBA,IAC3DH,EAAaC,EAAQE,GAAGzK,aAAa,QAIhCsK,GAA6B,2BAAfA,GAA0D,2BAAfA,IAG5DD,EAASE,EAAQE,GAAGE,WAAaJ,EAAQE,GAAG/F,YAG5C8F,EAAcpK,KAAKiK,GAGnB1K,EAAIiL,YAAYL,EAAQE,IAK5B,IAAID,EAAcnL,OAAS,IAA6B,WAAvBzD,EAAOuC,aAAoD,SAAvBvC,EAAOuC,cAA4BxC,EAAWyL,IAAQ,CACzH,IAAK,GAAIyD,GAAI,EAAGC,EAAmBN,EAAcnL,OAAYyL,EAAJD,EAAsBA,IAQ7E,GAAIzC,UAASoC,EAAcK,IAAI5P,EAIjCU,GAAWyL,IAAO,EAIpB,GAAI2D,GAAYpL,EAAIiD,iBAAiB,QAErC3F,GAAQuC,KAAKuL,EAAW,SAAU/G,GAChC,GAAIgH,GAAe5O,EAAauD,IAC3BqL,EAAatK,QAAQ9E,EAAO6C,oBAAoB,GAAK7C,EAAO8C,kBAAqBsM,EAAatK,QAAQ9E,EAAO0C,iBAAiB,EAIjI0F,EAASiH,WAAWL,YAAY5G,GAG7BpI,EAAOgD,gBACRzC,EAAkB6H,EAAUvI,EAAWwC,MAAO0B,GAQ9CqE,EAASU,aAAe,KAQ9B9E,EAAGqL,WAAWC,aAAavL,EAAKC,SAIzBnE,GAAWyC,SAASzC,EAAWyC,SAASwC,QAAQd,IAIvDnE,EAAWwC,QAEX4B,EAA0BF,IAY5B9C,EAAgB,SAASsO,GACvBA,EAAOA,EAAKhL,MAAM,IAMlB,KAJA,GAAIiL,MACA/H,EAAI8H,EAAK9L,OACTgM,KAEGhI,KACA+H,EAAKE,eAAeH,EAAK9H,MAC5B+H,EAAKD,EAAK9H,IAAM,EAChBgI,EAAIE,QAAQJ,EAAK9H,IAGrB,OAAOgI,GAAI9J,KAAK,MAGlBzE,EAAa,SAAS0O,GACpB,SAAUA,GAAOA,EAAIC,aAAeD,EAAIhM,MAAQgM,EAAIE,QAGtD3O,EAAU,SAASyO,GACjB,MAA+C,mBAAxCG,OAAOjO,UAAUqF,SAASvD,KAAKgM,IAGxCxO,EAAsB,SAAS4C,EAAIgM,GACjC,GAAIC,GAAajM,EAAGI,aAAa,QACjC6L,GAAaA,EAAaA,EAAa,GAEpC9O,EAAQ6O,KACTA,EAAgBA,EAAcrK,KAAK,MAGrCqK,EAAgBC,EAAa,IAAMD,EAEnChM,EAAGK,aAAa,QAASpD,EAAc+O,KAOzC3O,EAAU6O,MAAMpO,UAAUT,SAAW,SAAU8O,EAAIC,GACjD,GAAa,SAAT1Q,MAA4B,OAATA,MAA+B,kBAAPyQ,GAC7C,KAAM,IAAIE,UAIZ,IAAI5I,GAAGiE,EAAMhM,KAAK+D,SAAW,CAG7B,KAAKgE,EAAI,EAAOiE,EAAJjE,IAAWA,EACjBA,IAAK/H,OACPyQ,EAAGvM,KAAKwM,EAAO1Q,KAAK+H,GAAIA,EAAG/H,OAKjC4B,EAAmB,SAAUgM,EAAMvJ,EAAKC,EAAIuH,GAC1C,GAEE+E,GADA1C,EAAUrC,EAAa,IAAM+B,EAAO,IAAMzN,EAAWwC,KAevD,OAXAiO,GAAiBtM,EAAGZ,cAAckK,GAC9BgD,EACF/O,EAAiB+L,EAAMvJ,EAAKuM,EAAexH,YAAa8E,EAAS7J,EAAIwM,aAErED,EAAiBvM,EAAIX,cAAckK,GAC/BgD,EACFA,EAAejM,aAAa,KAAMuJ,GAElCrM,EAAiB+L,EAAMvJ,EAAKwH,EAAYqC,EAAS7J,EAAIwM,aAGlD3C,GAGTrM,EAAmB,SAAU+L,EAAMvJ,EAAKyM,EAAMvJ,EAAIwJ,GAChD,GAAIC,GACAC,EAAe5M,EAAIX,cAAckK,EAYrC,OAVIqD,IACFA,EAAatB,WAAWL,YAAY2B,GAGtCD,EAAUpR,EAASyI,gBAAgBvG,EAAQ8L,GAC3CoD,EAAQxI,YAAY5I,EAASmO,eAAe+C,IAC5CE,EAAQtJ,eAAe5F,EAAO,KAAMyF,GAEpClD,EAAI0M,aAAaC,EAASD,GAEnBC,GAGFnR,IAGc,iBAAZqR,SAETA,QACGC,OAAO,kBACPC,SAAS,qBAAsB,WAC9B,GAAIC,KACJ,QACEC,IAAK,SAAUC,GACbF,EAAeE,GAEjBC,KAAM,WACJ,MAAOH,OAIZI,QAAQ,sBAAuB,qBAAsB,SAAUC,GAE9D,MAAO,IAAI7R,GAAY6R,MAExBC,UAAU,OAAQ,qBAAsB,SAASC,GAChD,OACEC,SAAU,IACVC,KAAM,SAAUpB,EAAOvM,EAASuC,GAC1BA,EAAMsJ,eAAe,SACvBtJ,EAAMqL,SAAS,QAAS,WACtBH,EAAmBjO,OAAOQ,EAAQ,MAGpCyN,EAAmBjO,OAAOQ,EAAQ,SAYtB,gBAAXgN,SAAiD,gBAAnBA,QAAOa,QAC9Cb,OAAOa,QAAUnS,EAGQ,kBAAXoS,SAAyBA,OAAOC,IAC9CD,OAAO,WACL,MAAOpS,KAIgB,gBAAXF,KACdA,EAAOE,YAAcA,IAGzBF,OAAQC","file":"./svg-injector.min.js"} \ No newline at end of file diff --git a/dist/svg-injector.min.js b/dist/svg-injector.min.js index 88a58b1..1400fb4 100644 --- a/dist/svg-injector.min.js +++ b/dist/svg-injector.min.js @@ -1,5 +1,5 @@ /** - * SVGInjector v2.0.0 - Fast, caching, dynamic inline SVG DOM injection library + * SVGInjector v2.0.26 - Fast, caching, dynamic inline SVG DOM injection library * https://github.com/flobacher/SVGInjector2 * forked from: * https://github.com/iconic/SVGInjector @@ -10,5 +10,5 @@ * original Copyright (c) 2014 Waybury * @license MIT */ -!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class");return t?t.trim().split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c=!1,u=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),c=!0;else if(n instanceof SVGViewElement){if(u=null,e.onlyInjectVisiblePart){var f='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?f+=":not([x])":(a.x=i[0],f+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?f+=":not([y])":(a.y=i[1],f+='[y="'+i[1]+'"]');var p=t.querySelectorAll(f);p.length>1,u=p[0]}if(u&&u instanceof SVGSVGElement){s=u.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(u&&u instanceof SVGUseElement){var g=t.getElementById(u.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),c=!0}else c=!0,s=t.cloneNode(!0)}c&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l,a=r.querySelector(e);return a&&a.parentNode.removeChild(a),l=t.createElementNS(G,e),l.appendChild(t.createTextNode(n)),l.setAttributeNS(G,"id",s),r.insertBefore(l,i),l},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); +!function(e,t){"use strict";var r=function(){function r(e){r.instanceCounter++,"undefined"!=typeof e&&this.init(e)}var n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y,b,S,A,x,C,w,N,k,j,E,I,T,G="http://www.w3.org/2000/svg",V="http://www.w3.org/1999/xlink",F="sprite",O=F+"--",L=[F],R="icon";return i=[],r.instanceCounter=0,r.prototype.init=function(r){r=r||{},n={},o={},o.isLocal="file:"===e.location.protocol,o.hasSvgSupport=t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),s={count:0,elements:[]},l={},a={},a.evalScripts=r.evalScripts||"always",a.pngFallback=r.pngFallback||!1,a.onlyInjectVisiblePart=r.onlyInjectVisiblePart||!0,a.keepStylesClass="undefined"==typeof r.keepStylesClass?"":r.keepStylesClass,a.spriteClassName="undefined"==typeof r.spriteClassName?F:r.spriteClassName,a.spriteClassIdName="undefined"==typeof r.spriteClassIdName?O:r.spriteClassIdName,a.removeStylesClass="undefined"==typeof r.removeStylesClass?R:r.removeStylesClass,a.removeAllStyles="undefined"==typeof r.removeAllStyles?!1:r.removeAllStyles,a.fallbackClassName="undefined"==typeof r.fallbackClassName?L:r.fallbackClassName,a.prefixStyleTags="undefined"==typeof r.prefixStyleTags?!0:r.prefixStyleTags,a.spritesheetURL="undefined"==typeof r.spritesheetURL||""===r.spritesheetURL?!1:r.spritesheetURL,a.prefixFragIdClass=a.spriteClassIdName,a.forceFallbacks="undefined"==typeof r.forceFallbacks?!1:r.forceFallbacks,a.forceFallbacks&&(o.hasSvgSupport=!1),x(t.querySelector("html"),"no-svg",o.hasSvgSupport),o.hasSvgSupport&&"undefined"==typeof r.removeStylesClass&&A(a.removeStylesClass)},r.prototype.inject=function(e,t,r){if(void 0!==e.length){var n=0,s=this;E.call(e,function(i){s.injectElement(i,function(s){r&&"function"==typeof r&&r(s),t&&e.length===++n&&t(n)})})}else e?this.injectElement(e,function(n){r&&"function"==typeof r&&r(n),t&&t(1),e=null}):t&&t(0)},r.prototype.injectElement=function(e,t){var r,n;if(a.spritesheetURL===!1||e.getAttribute("data-src")||e.getAttribute("src"))r=e.getAttribute("data-src")||e.getAttribute("src");else{if(n=g(e),""===n)return;r=a.spritesheetURL+"#"+n,e.setAttribute("data-src",r)}var i=r.split("#");1===i.length&&i.push("");var l;if(!/\.svg/i.test(r))return void t("Attempted to inject a file with a non-svg extension: "+r);if(!o.hasSvgSupport){var f=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(f?(e.setAttribute("src",f),t(null)):a.pngFallback?(l=i.length>1?i[1]+".png":r.split("/").pop().replace(".svg",".png"),k(a.fallbackClassName)?c(e,i[1],a.fallbackClassName):N(a.fallbackClassName)?a.fallbackClassName(e,i[1]):"string"==typeof a.fallbackClassName?j(e,a.fallbackClassName):e.setAttribute("src",a.pngFallback+"/"+l),t(null)):t("This browser does not support SVG and no PNG fallback was defined."))}k(a.fallbackClassName)&&u(e,i[1],a.fallbackClassName),-1===s.elements.indexOf(e)&&(s.elements.push(e),e.setAttribute("src",""),S(t,r,e))},r.prototype.getEnv=function(){return o},c=function(e,t,r){var n="undefined"==typeof r?L:r.slice(0);E.call(n,function(e,r){n[r]=e.replace("%s",t)}),j(e,n)},u=function(e,t,r){r="undefined"==typeof r?L.slice(0):r.slice(0);var n,s,i=e.getAttribute("class");"undefined"!=typeof i&&null!==i&&(s=i.split(" "),s&&(E.call(r,function(e){e=e.replace("%s",t),n=s.indexOf(e),n>=0&&(s[n]="")}),e.setAttribute("class",w(s.join(" ")))))},f=function(e,t){var r,n,s,i,l,a,o,c,u,f,p,d,m,v,g,h,y=[{def:"linearGradient",attrs:["fill","stroke"]},{def:"radialGradient",attrs:["fill","stroke"]},{def:"clipPath",attrs:["clip-path"]},{def:"mask",attrs:["mask"]},{def:"filter",attrs:["filter"]},{def:"color-profile",attrs:["color-profile"]},{def:"cursor",attrs:["cursor"]},{def:"marker",attrs:["marker","marker-start","marker-mid","marker-end"]}];E.call(y,function(y){for(n=e.querySelectorAll(y.def+"[id]"),i=0,s=n.length;s>i;i++){for(r=n[i].id+"-"+t,c=y.attrs,f=0,u=c.length;u>f;f++)for(l=e.querySelectorAll("["+c[f]+'="url(#'+n[i].id+')"]'),o=0,a=l.length;a>o;o++)l[o].setAttribute(c[f],"url(#"+r+")");for(p=e.querySelectorAll("[*|href]"),v=[],m=0,d=p.length;d>m;m++)p[m].getAttributeNS(V,"href").toString()==="#"+n[i].id&&v.push(p[m]);for(h=0,g=v.length;g>h;h++)v[h].setAttributeNS(V,"href","#"+r);n[i].id=r}})},p=function(e,t,r){var n;"undefined"==typeof r&&(r=["id","viewBox"]);for(var s=0;s1)s=c[1],i=s+"-"+t,n=new RegExp("\\."+s+" ","g"),e.textContent=u.replace(n,"."+i+" ");else{for(l=c[0].split("/"),i=l[l.length-1].replace(".svg","")+"-"+t,n=new RegExp("([\\s\\S]*?){([\\s\\S]*?)}","g");null!==(a=n.exec(u));){o=a[1].trim().split(", "),o.forEach(p);var d=o.join(", ")+"{"+a[2]+"}";f+=d}e.textContent=f}r.setAttribute("class",r.getAttribute("class")+" "+i)},v=function(e){var t=e.getAttribute("class");return t?t.trim().split(" "):[]},g=function(e){var t=v(e),r="";return E.call(t,function(e){e.indexOf(a.spriteClassIdName)>=0&&(r=e.replace(a.spriteClassIdName,""))}),r},h=function(e,t,r){var n,s,i,l,a,o,c,u=!1,f=null;if(void 0===r)return t.cloneNode(!0);if(n=t.getElementById(r)){if(l=n.getAttribute("viewBox"),i=l.split(" "),n instanceof SVGSymbolElement)s=d(n),u=!0;else if(n instanceof SVGViewElement){if(f=null,e.onlyInjectVisiblePart){var p='*[width="'+i[2]+'"][height="'+i[3]+'"]';a={},0===Math.abs(parseInt(i[0]))?p+=":not([x])":(a.x=i[0],p+='[x="'+i[0]+'"]'),0===Math.abs(parseInt(i[1]))?p+=":not([y])":(a.y=i[1],p+='[y="'+i[1]+'"]'),c=t.querySelectorAll(p),c.length>1,f=c[0]}if(f&&f instanceof SVGSVGElement){s=f.cloneNode(!0);for(var m in a)"width"!==m&&"height"!==m&&s.removeAttribute(m)}else if(f&&f instanceof SVGUseElement){var g=t.getElementById(f.getAttributeNS(V,"href").substr(1));s=d(g),l=g.getAttribute("viewBox"),i=l.split(" "),u=!0}else u=!0,s=t.cloneNode(!0)}u&&(s.setAttribute("viewBox",i.join(" ")),s.setAttribute("width",i[2]+"px"),s.setAttribute("height",i[3]+"px")),s.setAttribute("xmlns",G),s.setAttribute("xmlns:xlink",V),o=v(s);var h=e.prefixFragIdClass+r;return o.indexOf(h)<0&&(o.push(h),s.setAttribute("class",o.join(" "))),s}},y=function(e,t,r,n){i[e]=i[e]||[],i[e].push({callback:r,fragmentId:t,element:n})},b=function(e){for(var t,r=0,n=i[e].length;n>r;r++)!function(r){setTimeout(function(){t=i[e][r],C(e,t.fragmentId,t.callback,t.element)},0)}(r)},S=function(t,r,s){var i,l,a;if(i=r.split("#"),l=i[0],a=2===i.length?i[1]:void 0,void 0!==n[l])n[l]instanceof SVGSVGElement?C(l,a,t,s):y(l,a,t,s);else{if(!e.XMLHttpRequest)return t("Browser does not support XMLHttpRequest"),!1;n[l]={},y(l,a,t,s);var c=new XMLHttpRequest;c.onreadystatechange=function(){if(4===c.readyState){if(404===c.status||null===c.responseXML)return t("Unable to load SVG file: "+l),!1;if(!(200===c.status||o.isLocal&&0===c.status))return t("There was a problem injecting the SVG: "+c.status+" "+c.statusText),!1;if(c.responseXML instanceof Document)n[l]=c.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var s=new DOMParser;e=s.parseFromString(c.responseText,"text/xml")}catch(i){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return t("Unable to parse SVG file: "+r),!1;n[l]=e.documentElement}b(l)}},c.open("GET",l),c.overrideMimeType&&c.overrideMimeType("text/xml"),c.send()}},A=function(e){var r="svg."+e+" {fill: currentColor;}",n=t.head||t.getElementsByTagName("head")[0],s=t.createElement("style");s.type="text/css",s.styleSheet?s.styleSheet.cssText=r:s.appendChild(t.createTextNode(r)),n.appendChild(s)},x=function(e,t,r){r?e.className.replace(t,""):e.className+=" "+t},C=function(t,r,i,o){var c,u,p,d;if(c=h(a,n[t],r),"undefined"==typeof c||"string"==typeof c)return i(c),!1;u=o.getAttribute("id"),u&&c.setAttribute("id",u),c.setAttribute("role","img"),E.call(c.children||[],function(e){e instanceof SVGDefsElement||e.setAttribute("role","presentation")}),d=I("desc",c,o,r),p=I("title",c,o,r),c.setAttribute("aria-labelledby",p+" "+d);var g=[].concat(c.getAttribute("class")||[],"injected-svg",o.getAttribute("class")||[]).join(" ");c.setAttribute("class",w(g));var y=o.getAttribute("style");y&&c.setAttribute("style",y);var b=[].filter.call(o.attributes,function(e){return/^data-\w[\w\-]*$/.test(e.name)});E.call(b,function(e){e.name&&e.value&&c.setAttribute(e.name,e.value)});var S=o.getAttribute("preserveAspectRatio");S&&c.setAttribute("preserveAspectRatio",S),f(c,s.count),c.removeAttribute("xmlns:a");for(var A,x,C=c.querySelectorAll("script"),N=[],k=0,j=C.length;j>k;k++)x=C[k].getAttribute("type"),x&&"application/ecmascript"!==x&&"application/javascript"!==x||(A=C[k].innerText||C[k].textContent,N.push(A),c.removeChild(C[k]));if(N.length>0&&("always"===a.evalScripts||"once"===a.evalScripts&&!l[t])){for(var T=0,G=N.length;G>T;T++)new Function(N[T])(e);l[t]=!0}var V=c.querySelectorAll("style");E.call(V,function(e){var t=v(c);(t.indexOf(a.removeStylesClass)>=0||a.removeAllStyles)&&t.indexOf(a.keepStylesClass)<0?e.parentNode.removeChild(e):a.prefixStyleTags?m(e,s.count,c):e.textContent+=""}),o.parentNode.replaceChild(c,o),delete s.elements[s.elements.indexOf(o)],s.count++,i(c)},w=function(e){e=e.split(" ");for(var t={},r=e.length,n=[];r--;)t.hasOwnProperty(e[r])||(t[e[r]]=1,n.unshift(e[r]));return n.join(" ")},N=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},k=function(e){return"[object Array]"===Object.prototype.toString.call(e)},j=function(e,t){var r=e.getAttribute("class");r=r?r:"",k(t)&&(t=t.join(" ")),t=r+" "+t,e.setAttribute("class",w(t))},E=Array.prototype.forEach||function(e,t){if(void 0===this||null===this||"function"!=typeof e)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&e.call(t,this[r],r,this)},I=function(e,t,r,n){var i,l=n+"-"+e+"-"+s.count;return i=r.querySelector(e),i?T(e,t,i.textContent,l,t.firstChild):(i=t.querySelector(e),i?i.setAttribute("id",l):T(e,t,n,l,t.firstChild)),l},T=function(e,r,n,s,i){var l,a=r.querySelector(e);return a&&a.parentNode.removeChild(a),l=t.createElementNS(G,e),l.appendChild(t.createTextNode(n)),l.setAttributeNS(G,"id",s),r.insertBefore(l,i),l},r}();"object"==typeof angular?angular.module("svginjector",[]).provider("svgInjectorOptions",function(){var e={};return{set:function(t){e=t},$get:function(){return e}}}).factory("svgInjectorFactory",["svgInjectorOptions",function(e){return new r(e)}]).directive("svg",["svgInjectorFactory",function(e){return{restrict:"E",link:function(t,r,n){n.hasOwnProperty("class")?n.$observe("class",function(){e.inject(r[0])}):e.inject(r[0])}}}]):"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof e&&(e.SVGInjector=r)}(window,document); //# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/package.json b/package.json index 88f11a4..038b411 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.25", + "version": "2.0.26", "author": "", "contributors": [ { From f8cf0fe3706f6008eb39549363742dccc4c7ce0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Go=CC=88rdes?= Date: Thu, 31 Mar 2016 14:25:46 +0200 Subject: [PATCH 128/212] added support for aria-hidden attribute on svg element --- svg-injector.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/svg-injector.js b/svg-injector.js index 76cc0c7..06f8af3 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -768,8 +768,8 @@ var svg, imgId, titleId, - descId - ; + descId, + ariaHidden; svg = cloneSvg(config, svgCache[url], fragmentId); if (typeof svg === 'undefined' || typeof svg === 'string') { @@ -795,6 +795,11 @@ titleId = setRootLevelElem('title', svg, el, fragmentId); svg.setAttribute('aria-labelledby', titleId + ' ' + descId); + // set aria-hidden attribute + ariaHidden = el.getAttribute('aria-hidden'); + if (ariaHidden) { + svg.setAttribute('aria-hidden', 'true'); + } // Concat the SVG classes + 'injected-svg' + the img classes var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' '); From bd6213b62931d61563579e0641d7b03c95aadfc1 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 4 Apr 2016 01:00:24 +0200 Subject: [PATCH 129/212] update/move examples --- .../all-the-things/js/svg-injector.min.js | 9 - examples/angular-spritesheet-classbased.html | 64 +++ examples/angular-spritesheet.html | 69 +++ .../assets/png/thumb-up-default.png | Bin .../assets/png/thumb-up-green.png | Bin .../assets/png/thumb-up.png | Bin .../img => assets/svg}/circle.svg | 0 examples/assets/svg/logo-gradients.svg | 75 +++ .../assets/svg}/style-tag-test.svg | 0 .../img => assets/svg}/symbols-n-views.svg | 0 .../assets/svg/thumb-up.svg | 0 examples/assets/svg/tmp.svg | 317 +++++++++++++ examples/assets/svg/views.svg | 112 +++++ tests/cors/index.html => examples/cors.html | 6 +- .../index.html => everything.html} | 4 +- .../{fallbacks/index.html => fallbacks.html} | 2 +- examples/fallbacks/assets/png/thumb-up.png | Bin 693 -> 0 bytes examples/fallbacks/assets/svg/thumb-up.svg | 4 - examples/fallbacks/js/svg-injector.min.js | 9 - examples/fragment-ids/img/views.svg | 34 -- .../ie-style-tag-eval.html | 0 .../race-condition.html | 0 examples/{simple/index.html => simple.html} | 2 +- examples/simple/svg-injector.min.js | 9 - examples/simple/thumb-up.svg | 4 - .../index.html => spritesheet.html} | 0 tests/cors/assets/svg/thumb-up.svg | 4 - tests/cors/js/svg-injector.js | 440 ------------------ tests/cors/js/svg-injector.min.js | 9 - .../ie-style-tag-eval/js/svg-injector.min.js | 9 - tests/race-condition/assets/svg/thumb-up.svg | 4 - tests/race-condition/js/svg-injector.min.js | 9 - 32 files changed, 644 insertions(+), 551 deletions(-) delete mode 100755 examples/all-the-things/js/svg-injector.min.js create mode 100644 examples/angular-spritesheet-classbased.html create mode 100644 examples/angular-spritesheet.html rename examples/{fallbacks => }/assets/png/thumb-up-default.png (100%) rename examples/{fallbacks => }/assets/png/thumb-up-green.png (100%) rename examples/{all-the-things => }/assets/png/thumb-up.png (100%) rename examples/{fragment-ids/img => assets/svg}/circle.svg (100%) create mode 100644 examples/assets/svg/logo-gradients.svg rename {tests/ie-style-tag-eval => examples/assets/svg}/style-tag-test.svg (100%) rename examples/{fragment-ids/img => assets/svg}/symbols-n-views.svg (100%) rename examples/{all-the-things => }/assets/svg/thumb-up.svg (100%) create mode 100644 examples/assets/svg/tmp.svg create mode 100644 examples/assets/svg/views.svg rename tests/cors/index.html => examples/cors.html (81%) rename examples/{all-the-things/index.html => everything.html} (86%) rename examples/{fallbacks/index.html => fallbacks.html} (96%) delete mode 100755 examples/fallbacks/assets/png/thumb-up.png delete mode 100755 examples/fallbacks/assets/svg/thumb-up.svg delete mode 100755 examples/fallbacks/js/svg-injector.min.js delete mode 100644 examples/fragment-ids/img/views.svg rename tests/ie-style-tag-eval/index.html => examples/ie-style-tag-eval.html (100%) rename tests/race-condition/index.html => examples/race-condition.html (100%) rename examples/{simple/index.html => simple.html} (90%) delete mode 100755 examples/simple/svg-injector.min.js delete mode 100755 examples/simple/thumb-up.svg rename examples/{fragment-ids/index.html => spritesheet.html} (100%) delete mode 100755 tests/cors/assets/svg/thumb-up.svg delete mode 100755 tests/cors/js/svg-injector.js delete mode 100755 tests/cors/js/svg-injector.min.js delete mode 100755 tests/ie-style-tag-eval/js/svg-injector.min.js delete mode 100755 tests/race-condition/assets/svg/thumb-up.svg delete mode 100755 tests/race-condition/js/svg-injector.min.js diff --git a/examples/all-the-things/js/svg-injector.min.js b/examples/all-the-things/js/svg-injector.min.js deleted file mode 100755 index dcdb71e..0000000 --- a/examples/all-the-things/js/svg-injector.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * SVGInjector v1.1.2 - Fast, caching, dynamic inline SVG DOM injection library - * https://github.com/iconic/SVGInjector - * - * Copyright (c) 2014 Waybury - * @license MIT - */ -!function(t,e){"use strict";function r(t){t=t.split(" ");for(var e={},r=t.length,n=[];r--;)e.hasOwnProperty(t[r])||(e[t[r]]=1,n.unshift(t[r]));return n.join(" ")}var n="file:"===t.location.protocol,i=e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),o=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&t.call(e,this[r],r,this)},a={},s=0,l=[],u=[],c={},f=function(t){return t.cloneNode(!0)},p=function(t,e){u[t]=u[t]||[],u[t].push(e)},d=function(t){for(var e=0,r=u[t].length;r>e;e++)!function(e){setTimeout(function(){u[t][e](f(a[t]))},0)}(e)},h=function(e,r){if(void 0!==a[e])a[e]instanceof SVGSVGElement?r(f(a[e])):p(e,r);else{if(!t.XMLHttpRequest)return r("Browser does not support XMLHttpRequest"),!1;a[e]={},p(e,r);var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(404===i.status||null===i.responseXML)return r("Unable to load SVG file: "+e),n&&r("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),r(),!1;if(!(200===i.status||n&&0===i.status))return r("There was a problem injecting the SVG: "+i.status+" "+i.statusText),!1;if(i.responseXML instanceof Document)a[e]=i.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var t;try{var o=new DOMParser;t=o.parseFromString(i.responseText,"text/xml")}catch(s){t=void 0}if(!t||t.getElementsByTagName("parsererror").length)return r("Unable to parse SVG file: "+e),!1;a[e]=t.documentElement}d(e)}},i.open("GET",e),i.overrideMimeType&&i.overrideMimeType("text/xml"),i.send()}},v=function(e,n,a,u){var f=e.getAttribute("data-src")||e.getAttribute("src");if(!/\.svg/i.test(f))return void u("Attempted to inject a file with a non-svg extension: "+f);if(!i){var p=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(p?(e.setAttribute("src",p),u(null)):a?(e.setAttribute("src",a+"/"+f.split("/").pop().replace(".svg",".png")),u(null)):u("This browser does not support SVG and no PNG fallback was defined."))}-1===l.indexOf(e)&&(l.push(e),e.setAttribute("src",""),h(f,function(i){if("undefined"==typeof i||"string"==typeof i)return u(i),!1;var a=e.getAttribute("id");a&&i.setAttribute("id",a);var p=e.getAttribute("title");p&&i.setAttribute("title",p);var d=[].concat(i.getAttribute("class")||[],"injected-svg",e.getAttribute("class")||[]).join(" ");i.setAttribute("class",r(d));var h=e.getAttribute("style");h&&i.setAttribute("style",h);var v=[].filter.call(e.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});o.call(v,function(t){t.name&&t.value&&i.setAttribute(t.name,t.value)});for(var g,b=i.querySelectorAll("defs clipPath[id]"),m=0,y=b.length;y>m;m++){g=b[m].id+"-"+s;for(var A=i.querySelectorAll('[clip-path*="'+b[m].id+'"]'),w=0,S=A.length;S>w;w++)A[w].setAttribute("clip-path","url(#"+g+")");b[m].id=g}for(var x,j=i.querySelectorAll("defs mask[id]"),T=0,G=j.length;G>T;T++){x=j[T].id+"-"+s;for(var M=i.querySelectorAll('[mask*="'+j[T].id+'"]'),V=0,q=M.length;q>V;V++)M[V].setAttribute("mask","url(#"+x+")");j[T].id=x}i.removeAttribute("xmlns:a");for(var k,E,O=i.querySelectorAll("script"),L=[],P=0,X=O.length;X>P;P++)E=O[P].getAttribute("type"),E&&"application/ecmascript"!==E&&"application/javascript"!==E||(k=O[P].innerText||O[P].textContent,L.push(k),i.removeChild(O[P]));if(L.length>0&&("always"===n||"once"===n&&!c[f])){for(var F=0,N=L.length;N>F;F++)new Function(L[F])(t);c[f]=!0}e.parentNode.replaceChild(i,e),delete l[l.indexOf(e)],e=null,s++,u(i)}))},g=function(t,e,r){e=e||{};var n=e.evalScripts||"always",i=e.pngFallback||!1,a=e.each;if(void 0!==t.length){var s=0;o.call(t,function(e){v(e,n,i,function(e){a&&"function"==typeof a&&a(e),r&&t.length===++s&&r(s)})})}else t?v(t,n,i,function(e){a&&"function"==typeof a&&a(e),r&&r(1),t=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=g:"function"==typeof define&&define.amd?define(function(){return g}):"object"==typeof t&&(t.SVGInjector=g)}(window,document); -//# sourceMappingURL=svg-injector.map.js \ No newline at end of file diff --git a/examples/angular-spritesheet-classbased.html b/examples/angular-spritesheet-classbased.html new file mode 100644 index 0000000..b536a8d --- /dev/null +++ b/examples/angular-spritesheet-classbased.html @@ -0,0 +1,64 @@ + + + + + SVGInjector Example: SVG Sprites + + + + + + + + + + Default Tilte replace + Same thing for description + + + + + + + + + + + + + + + diff --git a/examples/angular-spritesheet.html b/examples/angular-spritesheet.html new file mode 100644 index 0000000..2da9c35 --- /dev/null +++ b/examples/angular-spritesheet.html @@ -0,0 +1,69 @@ + + + + + SVGInjector Example: SVG Sprites + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/fallbacks/assets/png/thumb-up-default.png b/examples/assets/png/thumb-up-default.png similarity index 100% rename from examples/fallbacks/assets/png/thumb-up-default.png rename to examples/assets/png/thumb-up-default.png diff --git a/examples/fallbacks/assets/png/thumb-up-green.png b/examples/assets/png/thumb-up-green.png similarity index 100% rename from examples/fallbacks/assets/png/thumb-up-green.png rename to examples/assets/png/thumb-up-green.png diff --git a/examples/all-the-things/assets/png/thumb-up.png b/examples/assets/png/thumb-up.png similarity index 100% rename from examples/all-the-things/assets/png/thumb-up.png rename to examples/assets/png/thumb-up.png diff --git a/examples/fragment-ids/img/circle.svg b/examples/assets/svg/circle.svg similarity index 100% rename from examples/fragment-ids/img/circle.svg rename to examples/assets/svg/circle.svg diff --git a/examples/assets/svg/logo-gradients.svg b/examples/assets/svg/logo-gradients.svg new file mode 100644 index 0000000..aad422e --- /dev/null +++ b/examples/assets/svg/logo-gradients.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + Generic Logo + Generic Logo that contains gradients + + + + + + + + + + + + + + + + + + + + diff --git a/tests/ie-style-tag-eval/style-tag-test.svg b/examples/assets/svg/style-tag-test.svg similarity index 100% rename from tests/ie-style-tag-eval/style-tag-test.svg rename to examples/assets/svg/style-tag-test.svg diff --git a/examples/fragment-ids/img/symbols-n-views.svg b/examples/assets/svg/symbols-n-views.svg similarity index 100% rename from examples/fragment-ids/img/symbols-n-views.svg rename to examples/assets/svg/symbols-n-views.svg diff --git a/examples/all-the-things/assets/svg/thumb-up.svg b/examples/assets/svg/thumb-up.svg similarity index 100% rename from examples/all-the-things/assets/svg/thumb-up.svg rename to examples/assets/svg/thumb-up.svg diff --git a/examples/assets/svg/tmp.svg b/examples/assets/svg/tmp.svg new file mode 100644 index 0000000..7292d37 --- /dev/null +++ b/examples/assets/svg/tmp.svg @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eye + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/assets/svg/views.svg b/examples/assets/svg/views.svg new file mode 100644 index 0000000..60ce4ab --- /dev/null +++ b/examples/assets/svg/views.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic Logo + Generic Logo that contains gradients + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/cors/index.html b/examples/cors.html similarity index 81% rename from tests/cors/index.html rename to examples/cors.html index 1131a97..78d9826 100755 --- a/tests/cors/index.html +++ b/examples/cors.html @@ -16,15 +16,15 @@ - thumb up + - thumb up + - + + + + - - + diff --git a/examples/index.html b/examples/index.html new file mode 100755 index 0000000..55d3b83 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,17 @@ + + + + + SVGInjector Examples and tests: SVG Sprites + + + + + + + + diff --git a/examples/simple.html b/examples/simple.html index 7552eaa..89bfe52 100755 --- a/examples/simple.html +++ b/examples/simple.html @@ -3,25 +3,24 @@ SVGInjector Example: Simple - thumb + diff --git a/examples/spritesheet-classbased.html b/examples/spritesheet-classbased.html new file mode 100755 index 0000000..a7b9cbc --- /dev/null +++ b/examples/spritesheet-classbased.html @@ -0,0 +1,62 @@ + + + + + SVGInjector Example: SVG Sprites + + + + +
+ + +
+
+ + + + +
+ +
+

+ +

+ +
+ + + + + diff --git a/examples/spritesheet.html b/examples/spritesheet.html index 828a8fb..7172860 100644 --- a/examples/spritesheet.html +++ b/examples/spritesheet.html @@ -10,44 +10,39 @@ - - - - + + + + - - - - + + + + - + - - - + + + - - + + diff --git a/package.json b/package.json old mode 100644 new mode 100755 index edbb34c..23eb988 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "email": "flo@digital-fuse.net" } ], - "main": "svg-injector.js", + "main": "src/svg-injector.js", "homepage": "https://github.com/flobacher/SVGInjector2", "repository": { "type": "git", @@ -31,18 +31,24 @@ ], "license": "MIT", "devDependencies": { + "browser-sync": "^2.18.6", + "github-changes": "^1.0.2", "jshint": "^2.5.0", + "parallelshell": "^2.0.0", "uglify-js": "^2.4.13", - "github-changes": "^1.0.2" + "watch": "^1.0.1" }, "scripts": { "test": "jshint svg-injector.js", - "build": "uglifyjs ./svg-injector.js --stats --compress drop_console=true --mangle --comments --output ./svg-injector.min.js --source-map svg-injector.map.js && mv -f svg-injector.{map,min}.js ./dist", + "build": "uglifyjs ./src/svg-injector.js --stats --compress drop_console=true --mangle --comments --output ./dist/svg-injector.min.js --source-map ./dist/svg-injector.map.js --source-map-include-sources", + "build:watch": "watch 'npm run build' ./src", "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", "add": "git add ./dist/ && git add CHANGELOG.md", "version": "npm run changelog & npm run test && npm run build && npm run add", "release": "npm version patch", - "prepublish": "git push && git push --tags", - "start": "static-server" + "prepush": "git push && git push --tags", + "push": "npm run publish", + "start": "parallelshell 'npm run browser-sync' 'npm run build:watch'", + "browser-sync": "browser-sync start -s . -f ./dist/*.js --index --directory --startPath ./examples/index.html" } } diff --git a/svg-injector.js b/src/svg-injector.js old mode 100644 new mode 100755 similarity index 97% rename from svg-injector.js rename to src/svg-injector.js index 128d555..5463f74 --- a/svg-injector.js +++ b/src/svg-injector.js @@ -25,16 +25,14 @@ */ var SVGInjector = (function () { + /** * Constructor Function * @param {object} options */ function SVGInjector (options) { SVGInjector.instanceCounter++; - if(typeof options !== 'undefined') { - this.init(options); - } - + this.init(options); } // - private constants ----------------------------------------- @@ -800,11 +798,6 @@ return false; } - imgId = el.getAttribute('id'); - if (imgId) { - svg.setAttribute('id', imgId); - } - // take care of accessibility svg.setAttribute('role', 'img'); forEach.call(svg.children || [], function (curChildElem) { // IE does not support Children on SVGElement! @@ -830,33 +823,14 @@ svg.setAttribute('aria-labelledby', titleId + ' ' + descId); } + // copy attributes of original element to new svg excluding class + copyAttributes(el, svg, ['class']); + // Concat the SVG classes + 'injected-svg' + the img classes var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' '); svg.setAttribute('class', uniqueClasses(classMerge)); - var imgStyle = el.getAttribute('style'); - if (imgStyle) { - svg.setAttribute('style', imgStyle); - } - - // Copy all the data elements to the svg - var imgData = [].filter.call(el.attributes, function (at) { - return (/^data-\w[\w\-]*$/).test(at.name); - }); - forEach.call(imgData, function (dataAttr) { - if (dataAttr.name && dataAttr.value) { - svg.setAttribute(dataAttr.name, dataAttr.value); - } - }); - - // Copy preserveAspectRatio of elem if exists - var presARAttr = el.getAttribute('preserveAspectRatio'); - if(presARAttr){ - svg.setAttribute('preserveAspectRatio', presARAttr); - } - - // Make sure any internally referenced ids and their // references are unique. // diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..1ba4fb4 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2360 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +accepts@1.3.3, accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +acorn-jsx@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn-object-spread@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz#48ead0f4a8eb16995a17a0db9ffc6acaada4ba68" + dependencies: + acorn "^3.1.0" + +acorn@^3.0.4, acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +after@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +application-config-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f" + +application-config@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/application-config/-/application-config-0.1.2.tgz#3272533b5f9f83b323a9e5d640a3558b50a5b385" + dependencies: + application-config-path "^0.1.0" + mkdirp "^0.5.1" + +aproba@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +async-each-series@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@~0.2.6, async@~0.2.7, async@~0.2.9: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/aws-sign/-/aws-sign-0.3.0.tgz#3d81ca69b474b1e16518728b51c24ff0bbedc6e9" + +aws4@^1.2.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64id@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + +batch@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +bcrypt-pbkdf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +bl@~0.9.4: + version "0.9.5" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" + dependencies: + readable-stream "~1.0.26" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-1.0.3.tgz#c4b441184802e3b64a61eeed4578271b4c8bf6ac" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-sync-client@2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.4.4.tgz#e2a6c27f770e0ad0ffed76964dfb6a971fcf55eb" + dependencies: + etag "^1.7.0" + fresh "^0.3.0" + +browser-sync-ui@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-0.6.2.tgz#9e7994004d463e55a024bdd149583b11ad8f87f3" + dependencies: + async-each-series "0.1.1" + connect-history-api-fallback "^1.1.0" + immutable "^3.7.6" + server-destroy "1.0.1" + stream-throttle "^0.1.3" + weinre "^2.0.0-pre-I0Z7U9OV" + +browser-sync@^2.18.6: + version "2.18.6" + resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.18.6.tgz#7b303ea8905eaa20629e6c5d3e820c32ad96bb24" + dependencies: + browser-sync-client "2.4.4" + browser-sync-ui "0.6.2" + bs-recipes "1.3.4" + chokidar "1.6.1" + connect "3.5.0" + dev-ip "^1.0.1" + easy-extender "2.3.2" + eazy-logger "3.0.2" + emitter-steward "^1.0.0" + fs-extra "1.0.0" + http-proxy "1.15.2" + immutable "3.8.1" + localtunnel "1.8.2" + micromatch "2.3.11" + opn "4.0.2" + portscanner "2.1.1" + qs "6.2.1" + resp-modifier "6.0.2" + rx "4.1.0" + serve-index "1.8.0" + serve-static "1.11.1" + server-destroy "1.0.1" + socket.io "1.6.0" + socket.io-client "1.6.0" + ua-parser-js "0.7.12" + yargs "6.4.0" + +bs-recipes@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" + +buble@^0.12.0: + version "0.12.5" + resolved "https://registry.yarnpkg.com/buble/-/buble-0.12.5.tgz#c66ffe92f9f4a3c65d3256079b711e2bd0bc5013" + dependencies: + acorn "^3.1.0" + acorn-jsx "^3.0.1" + acorn-object-spread "^1.0.0" + chalk "^1.1.3" + magic-string "^0.14.0" + minimist "^1.2.0" + os-homedir "^1.0.1" + +bubleify@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/bubleify/-/bubleify-0.5.1.tgz#f65c47cee31b80cad8b9e747bbe187d7fe51e927" + dependencies: + buble "^0.12.0" + object-assign "^4.0.1" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +camelcase@^1.0.2, camelcase@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chokidar@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cli@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" + dependencies: + exit "0.1.2" + glob "^7.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.0.3, cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +commander@^2.2.0, commander@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +connect-history-api-fallback@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +connect@1.x: + version "1.9.2" + resolved "https://registry.yarnpkg.com/connect/-/connect-1.9.2.tgz#42880a22e9438ae59a8add74e437f58ae8e52807" + dependencies: + formidable "1.0.x" + mime ">= 0.0.1" + qs ">= 0.4.0" + +connect@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" + dependencies: + debug "~2.2.0" + finalhandler "0.5.0" + parseurl "~1.3.1" + utils-merge "1.0.0" + +console-browserify@1.1.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +cookie-jar@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.3.0.tgz#bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@2.2.0, debug@^2.2.0, debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +dev-ip@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" + +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + dependencies: + domelementtype "1" + +domutils@1.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +duplexer2@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +easy-extender@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.2.tgz#3d3248febe2b159607316d8f9cf491c16648221d" + dependencies: + lodash "^3.10.1" + +eazy-logger@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc" + dependencies: + tfunk "^3.0.1" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +emitter-steward@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/emitter-steward/-/emitter-steward-1.0.0.tgz#f3411ade9758a7565df848b2da0cbbd1b46cbd64" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +engine.io-client@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.0.tgz#7b730e4127414087596d9be3c88d2bc5fdb6cf5c" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.1" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.1" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.1.tgz#9554f1ae33107d6fbd170ca5466d2f833f6a07cf" + dependencies: + after "0.8.1" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.6" + wtf-8 "1.0.0" + +engine.io@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.0.tgz#3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa" + dependencies: + accepts "1.3.3" + base64id "0.1.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.1" + ws "1.1.1" + +entities@1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + +entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +error-ex@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + dependencies: + is-arrayish "^0.2.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +etag@^1.7.0, etag@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +exec-sh@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" + dependencies: + merge "^1.1.3" + +exit@0.1.2, exit@0.1.x: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@2.5.x: + version "2.5.11" + resolved "https://registry.yarnpkg.com/express/-/express-2.5.11.tgz#4ce8ea1f3635e69e49f0ebb497b6a4b0a51ce6f0" + dependencies: + connect "1.x" + mime "1.2.4" + mkdirp "0.3.0" + qs "0.4.x" + +extend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.0" + unpipe "~1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +for-in@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-own@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + +foreach@~2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.0.8.tgz#0890cd1005c5ccecc0b9d24a88052c92442d0db5" + dependencies: + async "~0.2.7" + combined-stream "~0.0.4" + mime "~1.2.2" + +form-data@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +formidable@1.0.x: + version "1.0.17" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559" + +fresh@0.3.0, fresh@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +fs-extra@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.0.17" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + supports-color "^0.2.0" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +ghauth@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ghauth/-/ghauth-3.0.0.tgz#8292a24ef47899f180a39c780c4809561294bdbc" + dependencies: + application-config "~0.1.1" + bl "~0.9.4" + hyperquest "~1.2.0" + mkdirp "~0.5.0" + read "~1.0.5" + xtend "~4.0.0" + +github-changes@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/github-changes/-/github-changes-1.0.4.tgz#b9bbad261f2ec43e39c0a2fc36f3c7bcc1fd05bb" + dependencies: + bluebird "1.0.3" + ghauth "3.0.0" + github "0.1.16" + github-commit-stream "0.1.0" + lodash "2.4.1" + moment-timezone "0.5.5" + nomnom "1.6.2" + parse-link-header "0.1.0" + semver "2.2.1" + +github-commit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/github-commit-stream/-/github-commit-stream-0.1.0.tgz#dbcdb7b267967186b70cc736391830da6368d7a1" + dependencies: + async "~0.2.9" + parse-link-header "~0.1.0" + request "~2.22.0" + through "~2.3.4" + +github@0.1.16: + version "0.1.16" + resolved "https://registry.yarnpkg.com/github/-/github-0.1.16.tgz#895d2a85b0feb7980d89ac0ce4f44dcaa03f17b5" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.5, glob@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" + dependencies: + isarray "0.0.1" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +hawk@~0.13.0: + version "0.13.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-0.13.1.tgz#3617958821f58311e4d7f6de291fca662b412ef4" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.8.x" + sntp "0.2.x" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@0.8.x: + version "0.8.5" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.8.5.tgz#1e9fd770ef7ebe0274adfcb5b0806a025a5e4e9f" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hosted-git-info@^2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" + +htmlparser2@3.8.x: + version "3.8.3" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + +http-errors@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" + dependencies: + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" + +http-proxy@1.15.2: + version "1.15.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +hyperquest@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperquest/-/hyperquest-1.2.0.tgz#39e1fef66888dc7ce0dec6c0dd814f6fc8944ad5" + dependencies: + duplexer2 "~0.0.2" + through2 "~0.6.3" + +immutable@3.8.1, immutable@^3.7.6: + version "3.8.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" + +indexof@0.0.1, indexof@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-my-json-valid@^2.12.4: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number-like@^1.0.3: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.7.tgz#a38d6b0fd2cd4282449128859eed86c03fd23552" + dependencies: + bubleify "^0.5.1" + lodash.isfinite "^3.3.2" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-object@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-0.1.2.tgz#00efbc08816c33cfc4ac8251d132e10dc65098d7" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is@~0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +jsbn@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + +jshint@^2.5.0: + version "2.9.4" + resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.4.tgz#5e3ba97848d5290273db514aee47fe24cf592934" + dependencies: + cli "~1.0.0" + console-browserify "1.1.x" + exit "0.1.x" + htmlparser2 "3.8.x" + lodash "3.7.x" + minimatch "~3.0.2" + shelljs "0.3.x" + strip-json-comments "1.0.x" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stringify-safe@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-4.0.0.tgz#77c271aaea54302e68efeaccb56abbf06a9b1a54" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + dependencies: + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +kind-of@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" + dependencies: + is-buffer "^1.0.2" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +limiter@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.0.tgz#6e2bd12ca3fcdaa11f224e2e53c896df3f08d913" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +localtunnel@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.8.2.tgz#913051e8328b51f75ad8a22ad1f5c5b8c599a359" + dependencies: + debug "2.2.0" + openurl "1.1.0" + request "2.78.0" + yargs "3.29.0" + +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" + +lodash@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.1.tgz#5b7723034dda4d262e5a46fb2c58d7cc22f71420" + +lodash@3.7.x: + version "3.7.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" + +lodash@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +magic-string@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.14.0.tgz#57224aef1701caeed273b17a39a956e72b172462" + dependencies: + vlq "^0.2.1" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +micromatch@2.3.11, micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.26.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: + version "2.1.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" + dependencies: + mime-db "~1.26.0" + +mime@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.4.tgz#11b5fdaf29c2509255176b80ad520294f5de92b7" + +mime@1.3.4, "mime@>= 0.0.1": + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@~1.2.2, mime@~1.2.9: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +moment-timezone@0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.5.tgz#a1d5410a72c18a5f293f2a2e62870a80ad432dae" + dependencies: + moment ">= 2.6.0" + +"moment@>= 2.6.0": + version "2.17.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +mute-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.3.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-pre-gyp@^0.6.29: + version "0.6.32" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.1" + rc "~1.1.6" + request "^2.79.0" + rimraf "~2.5.4" + semver "~5.3.0" + tar "~2.2.1" + tar-pack "~3.3.0" + +node-uuid@~1.4.0, node-uuid@~1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +nomnom@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" + dependencies: + colors "0.5.x" + underscore "~1.4.4" + +nopt@3.0.x, nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2: + version "2.3.5" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +npmlog@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.1" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-keys@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.2.0.tgz#cddec02998b091be42bf1035ae32e49f1cb6ea67" + dependencies: + foreach "~2.0.1" + indexof "~0.0.1" + is "~0.2.6" + +object-path@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +openurl@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.0.tgz#e2f2189d999c04823201f083f0f1a7cd8903187a" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +parallelshell@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parallelshell/-/parallelshell-2.0.0.tgz#c94af5d6348526a26da9020faeb5fc724a80600c" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-link-header@0.1.0, parse-link-header@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-0.1.0.tgz#5503fa7fb2f354bb234255c1c421da3eb05b9185" + dependencies: + xtend "~2.0.5" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +portscanner@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.1.1.tgz#eabb409e4de24950f5a2a516d35ae769343fbb96" + dependencies: + async "1.5.2" + is-number-like "^1.0.3" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.4.2.tgz#3cac4c861e371a8c9c4770ac23cda8de639b8e5f" + +qs@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" + +"qs@>= 0.4.0", qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + +qs@~0.6.0: + version "0.6.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +rc@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~1.0.4" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +readable-stream@1.1, readable-stream@~1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.26: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +request@2.78.0: + version "2.78.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + node-uuid "~1.4.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + +request@^2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + +request@~2.22.0: + version "2.22.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.22.0.tgz#b883a769cc4a909571eb5004b344c43cf7e51592" + dependencies: + aws-sign "~0.3.0" + cookie-jar "~0.3.0" + forever-agent "~0.5.0" + form-data "0.0.8" + hawk "~0.13.0" + http-signature "~0.10.0" + json-stringify-safe "~4.0.0" + mime "~1.2.9" + node-uuid "~1.4.0" + oauth-sign "~0.3.0" + qs "~0.6.0" + tunnel-agent "~0.3.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resp-modifier@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" + dependencies: + debug "^2.2.0" + minimatch "^3.0.2" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@~2.5.1, rimraf@~2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +rx@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + +"semver@2 || 3 || 4 || 5", semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +semver@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-2.2.1.tgz#7941182b3ffcc580bff1c17942acdf7951c0d213" + +send@0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.5.0" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.0" + +serve-index@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + dependencies: + accepts "~1.3.3" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.5.0" + mime-types "~2.1.11" + parseurl "~1.3.1" + +serve-static@1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.14.1" + +server-destroy@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" + +shelljs@0.3.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.6.0.tgz#5b668f4f771304dfeed179064708386fa6717853" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.0" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.6.0.tgz#3e40d932637e6bd923981b25caf7c53e83b6e2e1" + dependencies: + debug "2.3.3" + engine.io "1.8.0" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.6.0" + socket.io-parser "2.3.1" + +source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sshpk@^1.7.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stream-throttle@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3" + dependencies: + commander "^2.2.0" + limiter "^1.0.5" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-json-comments@1.0.x, strip-json-comments@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + dependencies: + debug "~2.2.0" + fstream "~1.0.10" + fstream-ignore "~1.0.5" + once "~1.3.3" + readable-stream "~2.1.4" + rimraf "~2.5.1" + tar "~2.2.1" + uid-number "~0.0.6" + +tar@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +tfunk@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b" + dependencies: + chalk "^1.1.1" + object-path "^0.9.0" + +through2@~0.6.3: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tunnel-agent@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +ua-parser-js@0.7.12: + version "0.7.12" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" + +uglify-js@^2.4.13: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@~0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +underscore@1.7.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + +underscore@~1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +vlq@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c" + +watch@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.1.tgz#37b7fc4b7bccafa9f6398dca56a2a45455db4aa2" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +weinre@^2.0.0-pre-I0Z7U9OV: + version "2.0.0-pre-I0Z7U9OV" + resolved "https://registry.yarnpkg.com/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz#fef8aa223921f7b40bbbbd4c3ed4302f6fd0a813" + dependencies: + express "2.5.x" + nopt "3.0.x" + underscore "1.7.x" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +ws@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +xtend@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.0.6.tgz#5ea657a6dba447069c2e59c58a1138cb0c5e6cee" + dependencies: + is-object "~0.1.2" + object-keys "~0.2.0" + +y18n@^3.2.0, y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yargs-parser@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs@3.29.0: + version "3.29.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.29.0.tgz#1aab9660eae79d8b8f675bcaeeab6ee34c2cf69c" + dependencies: + camelcase "^1.2.1" + cliui "^3.0.3" + decamelize "^1.0.0" + os-locale "^1.4.0" + window-size "^0.1.2" + y18n "^3.2.0" + +yargs@6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.4.0.tgz#816e1a866d5598ccf34e5596ddce22d92da490d4" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^4.1.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From cadac666ddfb4fec52a8bd6b63aba0e776cdf195 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 13 Feb 2017 11:57:53 +0100 Subject: [PATCH 138/212] fix package-scripts --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 23eb988..a824c95 100755 --- a/package.json +++ b/package.json @@ -41,14 +41,14 @@ "scripts": { "test": "jshint svg-injector.js", "build": "uglifyjs ./src/svg-injector.js --stats --compress drop_console=true --mangle --comments --output ./dist/svg-injector.min.js --source-map ./dist/svg-injector.map.js --source-map-include-sources", - "build:watch": "watch 'npm run build' ./src", + "watch": "watch \"npm run build\" ./src", "changelog": "github-changes -o flobacher -r SVGInjector2 --use-commit-body", "add": "git add ./dist/ && git add CHANGELOG.md", "version": "npm run changelog & npm run test && npm run build && npm run add", "release": "npm version patch", "prepush": "git push && git push --tags", "push": "npm run publish", - "start": "parallelshell 'npm run browser-sync' 'npm run build:watch'", + "start": "parallelshell \"npm run browser-sync\" \"npm run watch\"", "browser-sync": "browser-sync start -s . -f ./dist/*.js --index --directory --startPath ./examples/index.html" } } From e6c040f450caa311cdd804fbe14e82d2c3396d7a Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 13 Feb 2017 12:51:57 +0100 Subject: [PATCH 139/212] update examples --- examples/angular-spritesheet-classbased.html | 2 +- examples/angular-spritesheet.html | 4 +- examples/cors.html | 15 +-- examples/fallbacks.html | 6 +- examples/ie-style-tag-eval.html | 14 +-- examples/index.html | 1 + examples/race-condition.html | 111 +++++++++++-------- examples/simple.html | 2 +- examples/spritesheet.html | 2 +- 9 files changed, 75 insertions(+), 82 deletions(-) diff --git a/examples/angular-spritesheet-classbased.html b/examples/angular-spritesheet-classbased.html index fbba83a..07359a8 100644 --- a/examples/angular-spritesheet-classbased.html +++ b/examples/angular-spritesheet-classbased.html @@ -34,7 +34,7 @@ var injectorOptions = { //forceFallbacks: true, // -> enable to test png-fallbacks in svg-capable browsers fallbackClassName: ['sprite'], // optional function -> function(element, symbolId) {}, - removeStylesClass: 'icon', + //removeStylesClass: 'icon', removeAllStyles: false, spritesheetURL: 'assets/svg/views.svg' }; diff --git a/examples/angular-spritesheet.html b/examples/angular-spritesheet.html index 2da9c35..f106e3d 100644 --- a/examples/angular-spritesheet.html +++ b/examples/angular-spritesheet.html @@ -32,7 +32,7 @@ - + + diff --git a/examples/fallbacks.html b/examples/fallbacks.html index 20612aa..02168e8 100755 --- a/examples/fallbacks.html +++ b/examples/fallbacks.html @@ -30,15 +30,13 @@

Per-element Fallback Setting

thumb thumb - + diff --git a/examples/ie-style-tag-eval.html b/examples/ie-style-tag-eval.html index 87a01f2..efc426e 100755 --- a/examples/ie-style-tag-eval.html +++ b/examples/ie-style-tag-eval.html @@ -18,20 +18,10 @@ - + diff --git a/examples/index.html b/examples/index.html index 55d3b83..b5826e2 100755 --- a/examples/index.html +++ b/examples/index.html @@ -13,5 +13,6 @@ + diff --git a/examples/race-condition.html b/examples/race-condition.html index 620524f..964acaf 100755 --- a/examples/race-condition.html +++ b/examples/race-condition.html @@ -31,19 +31,55 @@ // Call the same injection call lots of time to try and trigger a race condition var x = 0; + var injector = new SVGInjector(); + var doneCallback = function (totalSVGsInjected) { + console.log('[Stress Test] We injected ' + totalSVGsInjected + ' SVG(s)!'); + }; + + var eachCallback = function (svg) { + if (svg) { + console.log('[Stress Test] SVG injected: ' + svg.getAttribute('id')); + svg.setAttribute('style', 'fill:plum'); + } + }; + + var eachCallbackOne = function (svg) { + if (svg) { + console.log('[One] SVG injected: ' + svg.getAttribute('id')); + svg.setAttribute('style', 'fill:plum'); + } + }; + + var doneCallbackOne = function (totalSVGsInjected) { + console.log('[One] We injected ' + totalSVGsInjected + ' SVG(s)!'); + }; + + var eachCallbackTwo = function (svg) { + if (svg) { + console.log('[Two] SVG injected: ' + svg.getAttribute('id')); + svg.setAttribute('style', 'fill:wheat'); + } + }; + + var doneCallbackTwo = function (totalSVGsInjected) { + console.log('[Two] We injected ' + totalSVGsInjected + ' SVG(s)!'); + }; + + var eachCallbackThree = function (svg) { + if (svg) { + console.log('[Three] SVG injected: ' + svg.getAttribute('id')); + svg.setAttribute('style', 'fill:maroon'); + } + }; + + var doneCallbackThree = function (totalSVGsInjected) { + console.log('[Three] We injected ' + totalSVGsInjected + ' SVG(s)!'); + }; + while (x < 1000) { - SVGInjector(document.querySelectorAll('img.inject-me'), { - each: function (svg) { - // Callback after each SVG is injected - if (svg) { - console.log('[Stress Test] SVG injected: ' + svg.getAttribute('id')); - svg.setAttribute('style', 'fill:plum'); - } - } - }, function (totalSVGsInjected) { - // Callback after all SVGs are injected - console.log('[Stress Test] We injected ' + totalSVGsInjected + ' SVG(s)!'); - }); + injector.inject( + document.querySelectorAll('img.inject-me'), doneCallback, eachCallback + ); x++; } @@ -51,48 +87,27 @@ // Trigger an injection. // Inject all the SVGs a first time... should make them Plum colored - SVGInjector(document.querySelectorAll('img.inject-me-once, img.inject-me-twice, img.inject-me-three-times'), { - each: function (svg) { - // Callback after each SVG is injected - if (svg) { - console.log('[One] SVG injected: ' + svg.getAttribute('id')); - svg.setAttribute('style', 'fill:plum'); - } - } - }, function (totalSVGsInjected) { - // Callback after all SVGs are injected - console.log('[One] We injected ' + totalSVGsInjected + ' SVG(s)!'); - }); + injector.inject( + document.querySelectorAll('img.inject-me-once, img.inject-me-twice, img.inject-me-three-times'), + doneCallbackOne, + eachCallbackOne + ); // Trigger another injection of the second and third SVG in attempt to cause a race condition // These should not trigger since ideally the previous injection already did it (or is doing it) - SVGInjector(document.querySelectorAll('img.inject-me-twice, img.inject-me-three-times'), { - each: function (svg) { - // Callback after each SVG is injected - if (svg) { - console.log('[Two] SVG injected: ' + svg.getAttribute('id')); - svg.setAttribute('style', 'fill:wheat'); - } - } - }, function (totalSVGsInjected) { - // Callback after all SVGs are injected - console.log('[Two] We injected ' + totalSVGsInjected + ' SVG(s)!'); - }); + injector.inject( + document.querySelectorAll('img.inject-me-twice, img.inject-me-three-times'), + doneCallbackTwo, + eachCallbackTwo + ); // Trigger yet another injection of the third SVG in attempt to cause a race condition. // ...this too should be skipped - SVGInjector(document.querySelectorAll('img.inject-me-three-times'), { - each: function (svg) { - // Callback after each SVG is injected - if (svg) { - console.log('[Three] SVG injected: ' + svg.getAttribute('id')); - svg.setAttribute('style', 'fill:maroon'); - } - } - }, function (totalSVGsInjected) { - // Callback after all SVGs are injected - console.log('[Three] We injected ' + totalSVGsInjected + ' SVG(s)!'); - }); + injector.inject( + document.querySelectorAll('img.inject-me-three-times'), + doneCallbackThree, + eachCallbackThree + ); diff --git a/examples/simple.html b/examples/simple.html index 89bfe52..a0eb020 100755 --- a/examples/simple.html +++ b/examples/simple.html @@ -16,7 +16,7 @@ - + ``` -Add some SVG `img` tags. +Add some SVG `svg` tags. ```html @@ -65,11 +65,11 @@ Inject 'em. var mySVGsToInject = document.querySelectorAll('img.inject-me'); // Do the injection - SVGInjector(mySVGsToInject); + new SVGInjector().inject(mySVGsToInject); ``` -The `img` tags have now been replaced with the full SVG markup. +The `svg` tags have now been replaced with the full SVG markup. ### Configuration @@ -77,7 +77,7 @@ The `img` tags have now been replaced with the full SVG markup. In addition to passing elements to inject, an options object and callback function can optionally be defined. ```js -SVGInjector(elements, options, callback); +new SVGInjector(options).inject(elements, afterAllInjectionsFinishedCallback, perInjectionCallback); ``` #### `elements` @@ -89,8 +89,7 @@ A single DOM element or array of elements, with `src` or `data-src` attributes d ```js { evalScripts: [always|once|never], - pngFallback: [PNG directory], - each: [function] + pngFallback: [PNG directory] } ``` @@ -130,18 +129,21 @@ var mySVGsToInject = document.querySelectorAll('svg.inject-me'); // Options var injectorOptions = { evalScripts: 'once', - pngFallback: 'assets/png', - each: function (svg) { - // Callback after each SVG is injected - console.log('SVG injected: ' + svg.getAttribute('id')); - } + pngFallback: 'assets/png' }; // Trigger the injection -SVGInjector(mySVGsToInject, injectorOptions, function (totalSVGsInjected) { - // Callback after all SVGs are injected - console.log('We injected ' + totalSVGsInjected + ' SVG(s)!'); -}); +new SVGInjector(injectorOptions).inject( + mySVGsToInject, + function (totalSVGsInjected) { + // Callback after all SVGs are injected + console.log('We injected ' + totalSVGsInjected + ' SVG(s)!'); + }, + function (svg) { + // Callback after each SVG is injected + console.log('SVG injected: ' + svg.getAttribute('id')); + } +); ``` ### Per-element PNG fallback @@ -168,12 +170,12 @@ ids (it is possible to create a fallback-png spritesheet for those). The injecto via comparing its viewbox to that of the view. If no png fallback is needed, the first approach is the most prefereable. If using nodejs build-tools like gulp or grunt, take a look at [svg-sprite](https://github.com/jkphl/svg-sprite). See [examples/spritesheet](https://github.com/iconic/SVGInjector/tree/master/examples/spritesheet) for more details. - + #### Classbased fragment ids -When using spritesheets, having to type the same data-src=urltospritesheet.svg#fragmentid can become cumbersome. -Thats why there is a config options that allows to set a default url to a spritesheet. The fragment id can then be provided via -a simple class. +When using spritesheets, having to type the same data-src=urltospritesheet.svg#fragmentid can become cumbersome. +Thats why there is a config options that allows to set a default url to a spritesheet. The fragment id can then be provided via +a simple class. See [examples/fallbacks](https://github.com/iconic/SVGInjector/tree/master/examples/spritesheet-classbased) for more details. @@ -183,7 +185,7 @@ SVGInjector is also available as configurable Service / Directive combination. See [examples/angular-spritesheet](https://github.com/iconic/SVGInjector/tree/master/examples/angular-spritesheet) for more details. #### Performance tip -add +add ```html ``` @@ -192,7 +194,7 @@ to let the browser download the file, even before it was requested via xhr ### Accessibility `role="img"` and `aria-labelledby` gets added to the root svg element. `aria-labelledby` points to the id of the `desc` and `title` tags inside the injected svg. The contents of those tags comes from corresponding tags inside the element which is the injection target, if not found there, they are taken from the svg-instance that gets -injected, and if missing there as well defaults to the fragmentid or filename of the injectable. `role="presentation"` gets added to all elements +injected, and if missing there as well defaults to the fragmentid or filename of the injectable. `role="presentation"` gets added to all elements in all proper browsers (so no IE). From 7a39a24db30947640bacad3a4838d207865305ed Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 16 Feb 2017 10:58:09 +0000 Subject: [PATCH 141/212] Update broken examples/spritesheet link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 23c8c95..cb26864 100755 --- a/README.md +++ b/README.md @@ -169,7 +169,7 @@ Besides spritesheets consisting of symbols, you can also use Spritesheets that s ids (it is possible to create a fallback-png spritesheet for those). The injector will try to find the symbol/svg element via comparing its viewbox to that of the view. If no png fallback is needed, the first approach is the most prefereable. If using nodejs build-tools like gulp or grunt, take a look at [svg-sprite](https://github.com/jkphl/svg-sprite). -See [examples/spritesheet](https://github.com/iconic/SVGInjector/tree/master/examples/spritesheet) for more details. +See [examples/spritesheet](https://github.com/flobacher/SVGInjector2/blob/master/examples/angular-spritesheet.html) for more details. #### Classbased fragment ids From 1aac6854dca1c0fdace7b2f394028e62ab48f62e Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 20 Feb 2017 10:22:30 +0100 Subject: [PATCH 142/212] fix fallbacks --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- src/svg-injector.js | 33 +++++++++++++++++---------------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index b922d04..7b97f68 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"sources":["./src/svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","suffixIdReferencesInStyles","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","imgUrl","spriteId","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","styleTag","suffix","name","numRefs","textContent","match","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","symobolList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","fileUrl","pathArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","titleId","descId","ariaHidden","children","curChildElem","SVGDefsElement","SVGTitleElement","SVGDescElement","classMerge","concat","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","stylesUntouched","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","addDefault","existingElem","elemId","firstChild","text","insertBefore","newElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./dist/svg-injector.min.js","sourcesContent":["/**\n * SVGInjector v2.0.26 - Fast, caching, dynamic inline SVG DOM injection library\n * https://github.com/flobacher/SVGInjector2\n * forked from:\n * https://github.com/iconic/SVGInjector\n *\n * Copyright (c) 2015 flobacher \n * @license MIT\n *\n * original Copyright (c) 2014 Waybury \n * @license MIT\n */\n\n(function(window, document) {\n 'use strict';\n /**\n * SVGInjector\n *\n * Replace the given elements with their full inline SVG DOM elements.\n *\n * :NOTE: We are using get/setAttribute with SVG because the SVG DOM spec differs from HTML DOM and\n * can return other unexpected object types when trying to directly access svg properties.\n * ex: \"className\" returns a SVGAnimatedString with the class value found in the \"baseVal\" property,\n * instead of simple string like with HTML Elements.\n */\n var SVGInjector = (function () {\n\n\n /**\n * Constructor Function\n * @param {object} options\n */\n function SVGInjector (options) {\n SVGInjector.instanceCounter++;\n this.init(options);\n }\n\n // - private constants -----------------------------------------\n var SVG_NS = 'http://www.w3.org/2000/svg';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var DEFAULT_SPRITE_CLASS_NAME = 'sprite';\n var DEFAULT_SPRITE_CLASS_ID_NAME = DEFAULT_SPRITE_CLASS_NAME + '--';\n var DEFAULT_FALLBACK_CLASS_NAMES = [DEFAULT_SPRITE_CLASS_NAME];\n var DEFAULT_REMOVESTYLES_CLASS_NAME = 'icon';\n\n // - private member vars ---------------------------------------\n var svgCache;\n var injections;\n var requestQueue;\n var ranScripts;\n var config;\n var env;\n\n // - private member funcs --------------------------------------\n var\n setFallbackClassNames,\n removeFallbackClassNames,\n suffixIdReferences,\n suffixIdReferencesInStyles,\n copyAttributes,\n cloneSymbolAsSVG,\n doPrefixStyleTags,\n getClassList,\n getSpriteIdFromClass,\n cloneSvg,\n queueRequest,\n processRequestQueue,\n loadSvg,\n writeDefaultClass,\n replaceNoSVGClass,\n onLoadSVG,\n uniqueClasses,\n isFunction,\n isArray,\n svgElemSetClassName,\n forEach,\n setRootLevelElem,\n addRootLevelElem\n ;\n\n\n\n requestQueue = [];\n\n // - static vars -----------------------------------------------\n SVGInjector.instanceCounter = 0;\n\n // - public member vars ----------------------------------------\n //SVGInjector.prototype.varName = {};\n\n\n\n // - public member functions ---------------------------------------\n /**\n * @param {object} options\n */\n SVGInjector.prototype.init = function(options) {\n options = options || {};\n svgCache = {};\n env = {};\n env.isLocal = window.location.protocol === 'file:';\n env.hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n\n injections = {\n count: 0,\n elements: []\n };\n\n ranScripts = {};\n config = {};\n\n // Should we run the scripts blocks found in the SVG\n // 'always' - Run them every time\n // 'once' - Only run scripts once for each SVG\n // [false|'never'] - Ignore scripts\n config.evalScripts = options.evalScripts || 'always';\n\n // Location of fallback pngs, if desired\n config.pngFallback = options.pngFallback || false;\n\n // Only inject the part of the svg, that is specified\n // as visible through the id of an SVGViewElement\n // is default mode\n config.onlyInjectVisiblePart = options.onlyInjectVisiblePart || true;\n\n config.keepStylesClass = (typeof options.keepStylesClass === 'undefined') ?\n '' : options.keepStylesClass;\n\n config.spriteClassName = (typeof options.spriteClassName === 'undefined') ?\n DEFAULT_SPRITE_CLASS_NAME : options.spriteClassName;\n\n config.spriteClassIdName = (typeof options.spriteClassIdName === 'undefined') ?\n DEFAULT_SPRITE_CLASS_ID_NAME : options.spriteClassIdName;\n\n config.removeStylesClass = (typeof options.removeStylesClass === 'undefined') ?\n DEFAULT_REMOVESTYLES_CLASS_NAME : options.removeStylesClass;\n\n config.removeAllStyles = (typeof options.removeAllStyles === 'undefined') ?\n false : options.removeAllStyles;\n\n config.fallbackClassName = (typeof options.fallbackClassName === 'undefined') ?\n DEFAULT_FALLBACK_CLASS_NAMES : options.fallbackClassName;\n\n config.prefixStyleTags = (typeof options.prefixStyleTags === 'undefined') ?\n true : options.prefixStyleTags;\n\n config.spritesheetURL = (typeof options.spritesheetURL === 'undefined' || options.spritesheetURL === '') ?\n false : options.spritesheetURL;\n\n config.prefixFragIdClass = config.spriteClassIdName;\n\n config.forceFallbacks = (typeof options.forceFallbacks === 'undefined') ?\n false : options.forceFallbacks;\n\n if(config.forceFallbacks){\n env.hasSvgSupport = false;\n }\n\n replaceNoSVGClass(document.querySelector('html'), 'no-svg', env.hasSvgSupport);\n\n if(env.hasSvgSupport && typeof options.removeStylesClass === 'undefined' ){ // user does not want to use his own custom class -> write this style tag\n writeDefaultClass(config.removeStylesClass);\n }\n };\n\n /**\n * Inject 1+ elements\n * @param {elements} Array of or single DOM element\n * @param {function} onDoneCallback\n * @param {function} eachCallback\n */\n SVGInjector.prototype.inject = function(elements, onDoneCallback, eachCallback) {\n if (elements.length !== undefined) {\n var elementsLoaded = 0;\n var ctx = this;\n forEach.call(elements, function (element) {\n ctx.injectElement(element, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (onDoneCallback && elements.length === ++elementsLoaded) onDoneCallback(elementsLoaded);\n });\n });\n }\n else {\n if (elements) {\n this.injectElement(elements, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (onDoneCallback) onDoneCallback(1);\n elements = null;\n });\n }\n else {\n if (onDoneCallback) onDoneCallback(0);\n }\n }\n };\n\n\n /**\n * Inject a single element\n * @param {elements} Array of or single DOM element\n * @param {function} onDoneCallback\n * @param {function} eachCallback\n */\n SVGInjector.prototype.injectElement = function (el, onElementInjectedCallback) {\n var imgUrl, spriteId;\n // console.log('inject element', el);\n if (config.spritesheetURL === false || el.getAttribute('data-src') || el.getAttribute('src') ) {\n // Grab the src or data-src attribute\n imgUrl = el.getAttribute('data-src') || el.getAttribute('src');\n }\n else {\n spriteId = getSpriteIdFromClass(el);\n if (spriteId === '') {\n console.warn('neither data-src nor spriteId class found! Nothing to inject here!');\n return;\n }\n imgUrl = config.spritesheetURL + '#' + spriteId;\n // console.log('imgURL: ' + imgUrl);\n el.setAttribute('data-src', imgUrl);\n }\n\n var imgUrlSplitByFId = imgUrl.split('#');\n if (imgUrlSplitByFId.length === 1) {\n imgUrlSplitByFId.push('');\n }\n var fallbackUrl;\n\n // We can only inject SVG\n if (!(/\\.svg/i).test(imgUrl)) {\n onElementInjectedCallback('Attempted to inject a file with a non-svg extension: ' + imgUrl);\n return;\n }\n\n\n if (env.hasSvgSupport) {\n if (isArray(config.fallbackClassName)) {\n removeFallbackClassNames(el, imgUrlSplitByFId[1], config.fallbackClassName);\n }\n }\n else {\n // If we don't have SVG support try to fall back to a png,\n // either defined per-element via data-fallback or data-png,\n // or globally via the pngFallback directory setting\n\n var perElementFallback = el.getAttribute('data-fallback') || el.getAttribute('data-png');\n\n // Per-element specific PNG fallback defined, so use that\n if (perElementFallback) {\n el.setAttribute('src', perElementFallback);\n onElementInjectedCallback(null);\n }\n // Global PNG fallback directory defined, use the same-named PNG\n else if (config.pngFallback) {\n\n if (imgUrlSplitByFId.length > 1) {\n fallbackUrl = imgUrlSplitByFId[1] + '.png';\n }\n else {\n fallbackUrl = imgUrl.split('/').pop().replace('.svg', '.png');\n }\n\n if (isArray(config.fallbackClassName)) {\n setFallbackClassNames(el, imgUrlSplitByFId[1], config.fallbackClassName);\n }\n else if (isFunction(config.fallbackClassName)) {\n console.info('custom function to create fallbackClassName');\n config.fallbackClassName(el, imgUrlSplitByFId[1]);\n }\n else if (typeof config.fallbackClassName === 'string') {\n svgElemSetClassName(el, config.fallbackClassName);\n }\n else {\n el.setAttribute('src', config.pngFallback + '/' + fallbackUrl);\n }\n onElementInjectedCallback(null);\n }\n // um...\n else {\n onElementInjectedCallback('This browser does not support SVG and no PNG fallback was defined.');\n }\n\n return;\n }\n\n // Make sure we aren't already in the process of injecting this element to\n // avoid a race condition if multiple injections for the same element are run.\n // :NOTE: Using indexOf() only _after_ we check for SVG support and bail,\n // so no need for IE8 indexOf() polyfill\n if (injections.elements.indexOf(el) !== -1) {\n console.warn('race', el);\n return;\n }\n\n // Remember the request to inject this element, in case other injection\n // calls are also trying to replace this element before we finish\n injections.elements.push(el);\n\n // Try to avoid loading the orginal image src if possible.\n el.setAttribute('src', '');\n\n // Load it up\n loadSvg(onElementInjectedCallback, imgUrl, el);\n\n };\n\n SVGInjector.prototype.getEnv = function() {\n return env;\n };\n\n // - private member functions -----------------------------------------------\n setFallbackClassNames = function (element, symbolId, classNames) {\n var className = (typeof classNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES : classNames.slice(0);\n\n // replace %s by symbolId\n forEach.call(\n className,\n function(curClassName, idx) {\n className[idx] = curClassName.replace('%s', symbolId);\n }\n );\n\n svgElemSetClassName(element, className);\n };\n\n removeFallbackClassNames = function (element, symbolId, fallbackClassNames) {\n fallbackClassNames = (typeof fallbackClassNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES.slice(0) : fallbackClassNames.slice(0);\n\n var idxOfCurClass,\n curClassNames,\n classAttribute = element.getAttribute('class');\n\n if (typeof classAttribute === 'undefined' || classAttribute === null) {\n return;\n }\n\n curClassNames = classAttribute.split(' ');\n if (curClassNames) {\n // replace %s by symbolId\n forEach.call(\n fallbackClassNames,\n function(curFallbackClassName) {\n curFallbackClassName = curFallbackClassName.replace('%s', symbolId);\n idxOfCurClass = curClassNames.indexOf(curFallbackClassName);\n if( idxOfCurClass >= 0 ){\n // console.log('remove class ' + curClassName);\n curClassNames[idxOfCurClass] = '';\n }\n\n }\n );\n\n element.setAttribute('class', uniqueClasses(curClassNames.join(' ')));\n }\n\n };\n\n suffixIdReferencesInStyles = function (styleTag, suffix, svg, name) {\n //var referencedIds = styleTag.textContent.match(/url\\(('|\")*#.+('|\")*\\)/g) || [];\n /*referencedIds.forEach(function (elem, idx, arr) {\n //elem = elem.replace(/url\\(('|\")*#/g, '');\n arr[idx] = elem.replace(/\\)/g, '-' + suffix + ')');\n console.log('style', arr[idx]);\n });\n */\n var numRefs = 0;\n styleTag.textContent = styleTag.textContent.replace(/url\\(('|\")*#.+('|\")*(?=\\))/g, function (match) {\n //console.log('match', match + '-' + suffix);\n numRefs++;\n return match + '-' + suffix;\n });\n return numRefs;\n };\n\n suffixIdReferences = function (svg, suffix) {\n var defs = [\n {def:'linearGradient', attrs: ['fill', 'stroke']},\n {def:'radialGradient', attrs: ['fill', 'stroke']},\n {def:'clipPath', attrs: ['clip-path']},\n {def:'mask', attrs: ['mask']},\n {def:'filter', attrs: ['filter']},\n {def:'color-profile', attrs: ['color-profile']},\n {def:'cursor', attrs: ['cursor']},\n {def:'marker', attrs: ['marker', 'marker-start', 'marker-mid', 'marker-end']}\n ];\n\n var newName,\n definitions,\n defLen,\n defIdx,\n refrences,\n refLen,\n refIdx,\n attrs,\n attrLen,\n attrIdx,\n allLinks,\n allLinksLen,\n allLinksIdx,\n links,\n linkLen,\n linkIdx\n ;\n\n forEach.call(defs, function(elem) {\n\n definitions = svg.querySelectorAll(elem.def + '[id]');\n for (defIdx = 0, defLen = definitions.length; defIdx < defLen; defIdx++) {\n newName = definitions[defIdx].id + '-' + suffix;\n\n attrs = elem.attrs;\n for (attrIdx = 0, attrLen = attrs.length; attrIdx < attrLen; attrIdx++) {\n\n // console.log('suffixxed ' + attribute + ': ' + newName);\n // :NOTE: using a substring match attr selector here to deal with IE \"adding extra quotes in url() attrs\"\n refrences = svg.querySelectorAll('[' + attrs[attrIdx] + '=\"url(#' + definitions[defIdx].id + ')\"]');\n for (refIdx = 0, refLen = refrences.length; refIdx < refLen; refIdx++) {\n // console.log('set url', newName);\n refrences[refIdx].setAttribute(attrs[attrIdx], 'url(#' + newName + ')');\n }\n }\n\n // handle xlink:refrences\n // :NOTE: IE does not like the easy way: links = svg.querySelectorAll('[*|href=\"#' + definitions[defIdx].id + '\"]');\n allLinks = svg.querySelectorAll('[*|href]');\n links = [];\n for (allLinksIdx = 0, allLinksLen = allLinks.length; allLinksIdx < allLinksLen; allLinksIdx++) {\n if (allLinks[allLinksIdx].getAttributeNS(XLINK_NS, 'href').toString() === '#' + definitions[defIdx].id ) {\n links.push(allLinks[allLinksIdx]);\n }\n }\n\n for (linkIdx = 0, linkLen = links.length; linkIdx < linkLen; linkIdx++) {\n links[linkIdx].setAttributeNS(XLINK_NS, 'href', '#' + newName);\n // console.log('set link', newName, links[linkIdx]);\n }\n definitions[defIdx].id = newName;\n }\n });\n };\n\n copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) {\n var curAttr;\n if (typeof attributesToIgnore === 'undefined') { attributesToIgnore = ['id', 'viewBox']; }\n\n for(var i=0; i 1) {\n origPrefixClassName = srcArr[1];\n newPrefixClassName = origPrefixClassName + '-' + injectCount;\n regex = new RegExp('\\\\.' + origPrefixClassName + ' ', 'g');\n styleTag.textContent = styleTagContent.replace(regex, '.' + newPrefixClassName + ' ');\n }\n else { //inject a single element.. this has most probaly not gone through preprocessing\n srcFileNameArr = srcArr[0].split('/');\n newPrefixClassName = srcFileNameArr[srcFileNameArr.length-1].replace('.svg', '') + '-' + injectCount;\n console.info('inject complete file: ' + srcArr[0]);\n //https://medium.com/jotform-form-builder/writing-a-css-parser-in-javascript-3ecaa1719a43\n regex = new RegExp('([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}', 'g');\n\n while ((regexSearchResult = regex.exec(styleTagContent)) !== null) {\n selectorArr = regexSearchResult[1].trim().split(', ');\n selectorArr.forEach(prefixSelector);\n\n var tmp = selectorArr.join(', ') + '{' + regexSearchResult[2] + '}\\n';\n newContent += tmp;\n }\n styleTag.textContent = newContent;\n }\n\n svg.setAttribute('class', (svg.getAttribute('class') + ' ' + newPrefixClassName));\n };\n\n getClassList = function (svgToCheck) {\n var curClassAttr = svgToCheck.getAttribute('class');\n return (curClassAttr) ? curClassAttr.trim().split(' ') : [];\n };\n\n getSpriteIdFromClass = function (element) {\n var classes = getClassList(element);\n var id = '';\n forEach.call(classes, function (curClass) {\n if(curClass.indexOf(config.spriteClassIdName) >= 0) {\n id = curClass.replace(config.spriteClassIdName, '');\n // console.log('class with prefix ' + config.spriteClassIdName + ' found. id: ' + id);\n }\n });\n return id;\n };\n\n cloneSvg = function (config, sourceSvg, fragId) {\n\n var svgElem,\n newSVG,\n viewBox,\n viewBoxAttr,\n symbolAttributesToFind,\n curClassList,\n setViewboxOnNewSVG = false,\n symbolElem = null,\n symobolList;\n\n if(fragId === undefined){\n return sourceSvg.cloneNode(true);\n }\n else {\n svgElem = sourceSvg.getElementById(fragId);\n if(!svgElem){\n console.warn(fragId + ' not found in svg', sourceSvg);\n return;\n }\n\n viewBoxAttr = svgElem.getAttribute('viewBox');\n viewBox = viewBoxAttr.split(' ');\n\n if (svgElem instanceof SVGSymbolElement) {\n\n newSVG = cloneSymbolAsSVG(svgElem);\n setViewboxOnNewSVG = true;\n\n }\n else if (svgElem instanceof SVGViewElement) {\n symbolElem = null;\n if (config.onlyInjectVisiblePart) {\n var selector = '*[width=\"' + viewBox[2] + '\"][height=\"'+viewBox[3]+'\"]';\n\n symbolAttributesToFind = {};\n if (Math.abs(parseInt(viewBox[0])) === 0) {\n selector += ':not([x])';\n }\n else {\n symbolAttributesToFind.x = viewBox[0];\n selector += '[x=\"' + viewBox[0] + '\"]';\n }\n\n if (Math.abs(parseInt(viewBox[1])) === 0) {\n selector += ':not([y])';\n }\n else {\n symbolAttributesToFind.y = viewBox[1];\n selector += '[y=\"' + viewBox[1] + '\"]';\n }\n symobolList = sourceSvg.querySelectorAll(selector);\n if (symobolList.length > 1) {\n console.warn('more than one item, with the matching viewbox found!', symobolList);\n }\n symbolElem = symobolList[0];\n }\n if (symbolElem && (symbolElem instanceof SVGSVGElement)) {\n newSVG = symbolElem.cloneNode(true);\n\n for (var prop in symbolAttributesToFind) {\n if (prop !== 'width' && prop !== 'height') {\n newSVG.removeAttribute(prop);\n }\n }\n }\n else if(symbolElem && (symbolElem instanceof SVGUseElement)) {\n // console.log('referenced view shows a SVGUseElement');\n var referencedSymbol = sourceSvg.getElementById(\n symbolElem.getAttributeNS(XLINK_NS, 'href').substr(1)\n );\n newSVG = cloneSymbolAsSVG(referencedSymbol);\n viewBoxAttr = referencedSymbol.getAttribute('viewBox');\n viewBox = viewBoxAttr.split(' ');\n setViewboxOnNewSVG = true;\n }\n else {\n console.info(\n ((config.onlyInjectVisiblePart) ? 'symbol referenced via view' + fragId + ' not found' : 'option.onlyInjectVisiblePart: false') + ' -> clone complete svg!'\n );\n setViewboxOnNewSVG = true;\n newSVG = sourceSvg.cloneNode(true);\n\n }\n }\n\n if (setViewboxOnNewSVG) {\n newSVG.setAttribute('viewBox', viewBox.join(' '));\n newSVG.setAttribute('width', viewBox[2]+'px');\n newSVG.setAttribute('height', viewBox[3]+'px');\n }\n newSVG.setAttribute('xmlns', SVG_NS);\n newSVG.setAttribute('xmlns:xlink', XLINK_NS);\n //curClassAttr = newSVG.getAttribute('class');\n curClassList = getClassList(newSVG);\n var fragIdClassName = config.prefixFragIdClass + fragId;\n if (curClassList.indexOf(fragIdClassName)<0) {\n curClassList.push(fragIdClassName);\n newSVG.setAttribute('class', curClassList.join(' '));\n }\n return newSVG;\n }\n\n };\n\n //queueRequest(requestQueue, fileName, fragId, onElementInjectedCallback, el);\n queueRequest = function (fileName, fragId, callback, el) {\n requestQueue[fileName] = requestQueue[fileName] || [];\n requestQueue[fileName].push({callback:callback, fragmentId:fragId, element:el, name: name});\n };\n\n processRequestQueue = function (url) {\n var requestQueueElem;\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n // Make these calls async so we avoid blocking the page/renderer\n /* jshint loopfunc: true */\n (function (index) {\n setTimeout(function () {\n requestQueueElem = requestQueue[url][index];\n onLoadSVG(url, requestQueueElem.fragmentId, requestQueueElem.callback, requestQueueElem.element, requestQueueElem.name);\n }, 0);\n })(i);\n /* jshint loopfunc: false */\n }\n };\n\n loadSvg = function (onElementInjectedCallback, url, el) {\n var urlArr, fileUrl, fragId, name, pathArr;\n //var state = {onElementInjectedCallback:onElementInjectedCallback, injections:injections, config:config, url:url, el:el, ranScripts:ranScripts};\n // console.log('loadSvg', url);\n urlArr = url.split('#');\n fileUrl = urlArr[0];\n fragId = (urlArr.length === 2) ? urlArr[1] : undefined;\n //name = fragId ? undefined : ;\n if (typeof fragId !== 'undefined') {\n pathArr = fileUrl.split('/');\n name = pathArr[pathArr.length-1].replace('.svg', '');\n }\n\n if (svgCache[fileUrl] !== undefined) {\n if (svgCache[fileUrl] instanceof SVGSVGElement) {\n // We already have it in cache, so use it\n // console.log('We already have it in cache, so use it', fileName, fragId);\n onLoadSVG(fileUrl, fragId, onElementInjectedCallback, el, name);\n }\n else {\n // console.log('We don\\'t have it in cache yet, but we are loading it, so queue this request', fileName, fragId);\n // We don't have it in cache yet, but we are loading it, so queue this request\n queueRequest(fileUrl, fragId, onElementInjectedCallback, el, name);\n }\n }\n else {\n\n if (!window.XMLHttpRequest) {\n onElementInjectedCallback('Browser does not support XMLHttpRequest');\n return false;\n }\n\n // Seed the cache to indicate we are loading this URL already\n svgCache[fileUrl] = {};\n queueRequest(fileUrl, fragId, onElementInjectedCallback, el, name);\n\n var httpRequest = new XMLHttpRequest();\n\n httpRequest.onreadystatechange = function () {\n // readyState 4 = complete\n if (httpRequest.readyState === 4) {\n\n // Handle status\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n onElementInjectedCallback('Unable to load SVG file: ' + fileUrl);\n\n // @check this!\n //if (env.isLocal) {\n // onLoadCompleteCb('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.');\n //}\n //\n //onLoadCompleteCb();\n return false;\n }\n\n // 200 success from server, or 0 when using file:// protocol locally\n if (httpRequest.status === 200 || (env.isLocal && httpRequest.status === 0)) {\n\n if (httpRequest.responseXML instanceof Document) {\n // Cache it\n svgCache[fileUrl] = httpRequest.responseXML.documentElement;\n }\n\n // IE9 doesn't create a responseXML Document object from loaded SVG,\n // and throws a \"DOM Exception: HIERARCHY_REQUEST_ERR (3)\" error when injected.\n //\n // So, we'll just create our own manually via the DOMParser using\n // the the raw XML responseText.\n //\n // :NOTE: IE8 and older doesn't have DOMParser, but they can't do SVG either, so...\n else if (DOMParser && (DOMParser instanceof Function)) {\n var xmlDoc;\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(httpRequest.responseText, 'text/xml');\n }\n catch (e) {\n xmlDoc = undefined;\n }\n\n if (!xmlDoc || xmlDoc.getElementsByTagName('parsererror').length) {\n onElementInjectedCallback('Unable to parse SVG file: ' + url);\n return false;\n }\n else {\n // Cache it\n svgCache[fileUrl] = xmlDoc.documentElement;\n }\n }\n\n // We've loaded a new asset, so process any requests waiting for it\n processRequestQueue(fileUrl);\n }\n else {\n onElementInjectedCallback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n return false;\n }\n }\n };\n\n httpRequest.open('GET', fileUrl);\n\n // Treat and parse the response as XML, even if the\n // server sends us a different mimetype>\n if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');\n\n httpRequest.send();\n }\n };\n\n writeDefaultClass = function(removeStylesClass) {\n var css = 'svg.' + removeStylesClass + ' {fill: currentColor;}',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet){\n style.styleSheet.cssText = css;\n }\n else {\n style.appendChild(document.createTextNode(css));\n }\n head.appendChild(style);\n console.info( 'default class written: ', css );\n };\n\n replaceNoSVGClass = function(element, noSVGClassName, hasSvgSupport) {\n if(hasSvgSupport) {\n element.className.replace(noSVGClassName, '');\n }\n else{\n element.className += ' ' + noSVGClassName;\n }\n };\n\n\n onLoadSVG = function(url, fragmentId, onElementInjectedCallback, el, name){\n // console.log('onLoadSVG', url, fragmentId, onElementInjectedCallback, el, name);\n var svg,\n imgId,\n titleId,\n descId,\n ariaHidden;\n\n svg = cloneSvg(config, svgCache[url], fragmentId);\n if (typeof svg === 'undefined' || typeof svg === 'string') {\n onElementInjectedCallback(svg);\n return false;\n }\n\n // take care of accessibility\n svg.setAttribute('role', 'img');\n forEach.call(svg.children || [], function (curChildElem) { // IE does not support Children on SVGElement!\n if (\n !(curChildElem instanceof SVGDefsElement) &&\n !(curChildElem instanceof SVGTitleElement) &&\n !(curChildElem instanceof SVGDescElement)\n ) {\n curChildElem.setAttribute('role', 'presentation');\n }\n });\n\n\n // set aria-hidden attribute\n ariaHidden = el.getAttribute('aria-hidden') || svg.getAttribute('aria-hidden');\n\n // set desc + title\n descId = setRootLevelElem('desc', svg, el, fragmentId, name, !ariaHidden);\n titleId = setRootLevelElem('title', svg, el, fragmentId, name, !ariaHidden);\n if (ariaHidden) {\n svg.setAttribute('aria-hidden', 'true');\n } else {\n svg.setAttribute('aria-labelledby', titleId + ' ' + descId);\n }\n\n // copy attributes of original element to new svg excluding class\n copyAttributes(el, svg, ['class']);\n\n\n // Concat the SVG classes + 'injected-svg' + the img classes\n var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' ');\n svg.setAttribute('class', uniqueClasses(classMerge));\n\n // Make sure any internally referenced ids and their\n // references are unique.\n //\n // This addresses the issue of having multiple instances of the\n // same SVG on a page and only the first clipPath, gradient, mask or filter id is referenced.\n suffixIdReferences(svg, injections.count, name);\n\n\n // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools\n svg.removeAttribute('xmlns:a');\n\n // Post page load injected SVGs don't automatically have their script\n // elements run, so we'll need to make that happen, if requested\n\n // Find then prune the scripts\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script, scriptType;\n\n for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) {\n scriptType = scripts[k].getAttribute('type');\n\n // Only process javascript types.\n // SVG defaults to 'application/ecmascript' for unset types\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') {\n\n // innerText for IE, textContent for other browsers\n script = scripts[k].innerText || scripts[k].textContent;\n\n // Stash\n scriptsToEval.push(script);\n\n // Tidy up and remove the script element since we don't need it anymore\n svg.removeChild(scripts[k]);\n }\n }\n\n // Run/Eval the scripts if needed\n if (scriptsToEval.length > 0 && (config.evalScripts === 'always' || (config.evalScripts === 'once' && ! ranScripts[url]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n\n // :NOTE: Yup, this is a form of eval, but it is being used to eval code\n // the caller has explictely asked to be loaded, and the code is in a caller\n // defined SVG file... not raw user input.\n //\n // Also, the code is evaluated in a closure and not in the global scope.\n // If you need to put something in global scope, use 'window'\n new Function(scriptsToEval[l])(window); // jshint ignore:line\n }\n\n // Remember we already ran scripts for this svg\n ranScripts[url] = true;\n }\n\n // :NOTE: handle styles in style-tags\n var styleTags = svg.querySelectorAll('style');\n\n forEach.call(styleTags, function (styleTag) {\n var svgClassList = getClassList(svg),\n stylesUntouched = true;\n if ((svgClassList.indexOf(config.removeStylesClass)>=0 || config.removeAllStyles) && (svgClassList.indexOf(config.keepStylesClass)<0) ) {\n\n // remove the styletag if the removeStylesClass is applied to the SVG\n // console.log('remove styleTag', styleTag);\n styleTag.parentNode.removeChild(styleTag);\n }\n else {\n\n if (suffixIdReferencesInStyles(styleTag, injections.count, svg, name) > 0) {\n stylesUntouched = false;\n }\n\n if (config.prefixStyleTags){\n doPrefixStyleTags(styleTag, injections.count, svg, name);\n stylesUntouched = false;\n }\n\n if (stylesUntouched) {\n // :WORKAROUND:\n // IE doesn't evaluate - + - + - - - - + diff --git a/examples/everything.html b/examples/everything.html index 332fa39..c529d4c 100755 --- a/examples/everything.html +++ b/examples/everything.html @@ -42,7 +42,7 @@ }, function (svg) { // Callback after each SVG is injected - if (svg) console.log('SVG injected: ' + svg.getAttribute('id')); + if (svg) console.log('SVG injected: ' + svg.getAttribute('alt')); } ); diff --git a/examples/fallbacks.html b/examples/fallbacks.html index 02168e8..66b6a8b 100755 --- a/examples/fallbacks.html +++ b/examples/fallbacks.html @@ -36,7 +36,7 @@

Per-element Fallback Setting

var mySVGsToInject = document.querySelectorAll('img.inject-me'); // Trigger the injection - new SVGInjector().inject(mySVGsToInject); + new SVGInjector({forceFallbacks: true, pngFallback: 'assets/png'}).inject(mySVGsToInject); diff --git a/examples/spritesheet-classbased.html b/examples/spritesheet-classbased.html index a7b9cbc..3ecd702 100755 --- a/examples/spritesheet-classbased.html +++ b/examples/spritesheet-classbased.html @@ -23,9 +23,9 @@ -
- +
+
@@ -43,11 +43,11 @@ // Options var injectorOptions = { evalScripts: 'once', - pngFallback: '.', + // reference fragments via views - generated with grunt-svg-sprite spritesheetURL: './assets/svg/views.svg' }; - // Do the injection + // Setup the injector var injector = new SVGInjector(injectorOptions); // inject single svg diff --git a/examples/spritesheet.html b/examples/spritesheet.html index 3c1ffa3..ba7fd96 100644 --- a/examples/spritesheet.html +++ b/examples/spritesheet.html @@ -28,7 +28,7 @@ - + + + + + From d534db0a68c66162165b190c5bb7249ec9bcc937 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Wed, 22 Feb 2017 23:58:43 +0100 Subject: [PATCH 159/212] 2.0.32 --- CHANGELOG.md | 14 ++++++++++++-- package.json | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 787577d..67def37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ ## Change Log -### upcoming (2017/02/22 21:09 +00:00) +### upcoming (2017/02/22 22:58 +00:00) +- [794d4f5](https://github.com/flobacher/SVGInjector2/commit/794d4f5997fbbb4557e13c81bcfb2e9f47854c21) add a basic, non-spritesheet example (@flobacher) +- [50eaafb](https://github.com/flobacher/SVGInjector2/commit/50eaafb874c37b4dadc917c36a24f748206b3f29) always set data-src even if only src was specified (@flobacher) + +### v2.0.31 (2017/02/22 21:13 +00:00) +- [0c64792](https://github.com/flobacher/SVGInjector2/commit/0c647921b47e34714cbfe630295fa6c56125130f) v2.0.31 (@flobacher) +- [f19994c](https://github.com/flobacher/SVGInjector2/commit/f19994c8db700e4157581dc90103e48bbac4c651) fix main entry in bower.json (@flobacher) +- [dd3f7d0](https://github.com/flobacher/SVGInjector2/commit/dd3f7d0b97f119208a450ef7e9bcc3d774a7ce2b) add copy of file to stay compatible with file structure of version < v2.0.28 (@flobacher) +- [eb84ea3](https://github.com/flobacher/SVGInjector2/commit/eb84ea3a63962657606e454956ca38da1bb07e76) make sure script works on all platforms (@flobacher) +- [fd897d7](https://github.com/flobacher/SVGInjector2/commit/fd897d7de5b53dc71d9f3e272c4ca4655a0ac6b5) codestyle: streamline folder-pathes (@flobacher) +- [5803a9a](https://github.com/flobacher/SVGInjector2/commit/5803a9a9eb257b4dbb31d72d0cac2ba941c1f7f2) add copy command to stay compatible with file structure of version < v2.0.28 (@flobacher) - [#10](https://github.com/flobacher/SVGInjector2/pull/10) Update README links (@TheCopartnery) - [febe4b2](https://github.com/flobacher/SVGInjector2/commit/febe4b22d331baeafaabefb00171ca767f8942af) update links (@TheCopartnery) @@ -30,9 +40,9 @@ - [2cb030f](https://github.com/flobacher/SVGInjector2/commit/2cb030f52aacd9d4afebe00e70b9caabe3ed04d9) 2.0.27 (@flobacher) - [aadf829](https://github.com/flobacher/SVGInjector2/commit/aadf8299ecae7b5cd1213802f84d4fc2617c3d8d) correct those id-refs in sample sprite sheet.. this needs fixing in injector though (@flobacher) - [24e397d](https://github.com/flobacher/SVGInjector2/commit/24e397dae2b936829ecac1a4a42524faa4b11520) do not add role=presentation to title and desc (@flobacher) -- [bd6213b](https://github.com/flobacher/SVGInjector2/commit/bd6213b62931d61563579e0641d7b03c95aadfc1) update/move examples (@flobacher) - [d01d011](https://github.com/flobacher/SVGInjector2/commit/d01d01169e69ce36647f5561b45f736a281b7a0a) suffix id-references in style-tags and refactor (@flobacher) - [bc9aab5](https://github.com/flobacher/SVGInjector2/commit/bc9aab5a20292ce23657c01f229245b8613e227c) update scripts (@flobacher) +- [bd6213b](https://github.com/flobacher/SVGInjector2/commit/bd6213b62931d61563579e0641d7b03c95aadfc1) update/move examples (@flobacher) - [#3](https://github.com/flobacher/SVGInjector2/pull/3) added support for aria-hidden attribute on svg element (@dgoerdes) - [f8cf0fe](https://github.com/flobacher/SVGInjector2/commit/f8cf0fe3706f6008eb39549363742dccc4c7ce0c) added support for aria-hidden attribute on svg element (@dgoerdes) diff --git a/package.json b/package.json index 4ded2a2..2173d50 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.31", + "version": "2.0.32", "author": "", "contributors": [ { From 69ecf67708ce5a60a2c32d5326f2a1761d40842b Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Fri, 24 Feb 2017 00:08:00 +0100 Subject: [PATCH 160/212] update/streamline examples and read --- README.md | 41 +++++++++++++++++++++------------ examples/angular-simple.html | 16 +++++-------- examples/cors.html | 6 ++--- examples/everything.html | 6 ++--- examples/ie-style-tag-eval.html | 8 +++---- src/svg-injector.js | 2 +- 6 files changed, 43 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 9a0c464..c844416 100755 --- a/README.md +++ b/README.md @@ -53,8 +53,8 @@ Include the **SVGInjector** script on your page. Add some SVG `svg` tags. ```html - - + + ``` Inject 'em. @@ -62,7 +62,7 @@ Inject 'em. ```html ``` @@ -182,7 +184,16 @@ See [examples/fallbacks](https://github.com/flobacher/SVGInjector2/blob/master/e ### AngularJS SVGInjector is also available as configurable Service / Directive combination. - See [examples/angular-spritesheet](https://github.com/flobacher/SVGInjector2/blob/master/examples/angular-spritesheet.html) for more details. +The svg-element-directive will automatically inject the svg. Just define the `svginjector` module as a dependency of your module. +See [examples/angular-simple](https://github.com/flobacher/SVGInjector2/blob/master/examples/angular-simple.html) for more details. + +To configure the SVGInjector Service use the svgInjectorOptionsProvider available during the config-phase and use it to set +the options-object. For details +see [examples/angular-spritesheet](https://github.com/flobacher/SVGInjector2/blob/master/examples/angular-spritesheet.html). +This example also demonstrates, that of course the angular wrapper can also be used in combination with a spritesheet. + +Last but not least check [examples/angular-spritesheet-classbased](https://github.com/flobacher/SVGInjector2/blob/master/examples/angular-spritesheet-classbased.html) to see the convenience the use of classbased injection offers. + #### Performance tip add diff --git a/examples/angular-simple.html b/examples/angular-simple.html index de3d704..cd746c7 100644 --- a/examples/angular-simple.html +++ b/examples/angular-simple.html @@ -19,25 +19,21 @@ - - - + + + Default Tilte replace Same thing for description - + diff --git a/examples/cors.html b/examples/cors.html index abad4b7..7d08339 100755 --- a/examples/cors.html +++ b/examples/cors.html @@ -19,15 +19,15 @@ - + - + diff --git a/examples/everything.html b/examples/everything.html index c529d4c..a472a83 100755 --- a/examples/everything.html +++ b/examples/everything.html @@ -16,7 +16,7 @@ - + diff --git a/src/svg-injector.js b/src/svg-injector.js index 2a3ab9e..74547f0 100755 --- a/src/svg-injector.js +++ b/src/svg-injector.js @@ -294,7 +294,7 @@ injections.elements.push(el); // Try to avoid loading the orginal image src if possible. - el.setAttribute('src', ''); + // el.setAttribute('src', ''); // Load it up loadSvg(onElementInjectedCallback, imgUrl, el); From caedbebe345c666812600e2ec60b9468a16faff5 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 24 Feb 2017 13:15:43 +0000 Subject: [PATCH 161/212] Add simple with img tag example --- examples/simple-with-img-tag.html | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 examples/simple-with-img-tag.html diff --git a/examples/simple-with-img-tag.html b/examples/simple-with-img-tag.html new file mode 100644 index 0000000..128ed3f --- /dev/null +++ b/examples/simple-with-img-tag.html @@ -0,0 +1,27 @@ + + + + SVGInjector Example: Simple + + + + + thumb + + + + + + From 00838d84dcd7ebc746b21eef37c57426c7a85c89 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 24 Feb 2017 13:17:23 +0000 Subject: [PATCH 162/212] Update README.md clarify behaviour, add an example showing alternative uses. --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c844416..e911cf5 100755 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ A fast, caching, dynamic inline SVG DOM injection library. Originally developed Extended by Flobacher to be able to use with spritesheets and in AngularJS Applications ## Why? -There are a number of ways to use SVG on a page (`object`, `embed`, `iframe`, `img`, CSS `background-image`) but to unlock the full potential of SVG, including full element-level CSS styling and evaluation of embedded JavaScript, the full SVG markup must be included directly in the DOM. +Linking to an external SVG on a page usually only allows you to display the SVG 'as is'. To unlock the full potential of SVG, including full element-level CSS styling and evaluation of embedded JavaScript, the markup of the SVG must be included directly in the DOM. -Wrangling and maintaining a bunch of inline SVG on your pages isn't anyone's idea of good time, so **SVGInjector** lets you work with simple `img` tag elements (or other tag of your choosing) and does the heavy lifting of swapping in the SVG markup inline for you. +Maintaining a bunch of inline SVG on your pages isn't anyone's idea of good time, so **SVGInjector** lets you specifiy external SVGs and embeds the contents directly into the DOM alongside your HTML. ## How? -* Any DOM element, or array of elements, passed to **SVGInjector** with an SVG file `src` or `data-src` attribute will be replaced with the full SVG markup inline. The async loaded SVG is also cached so multiple uses of an SVG only requires a single server request. +* Any DOM element (`img`, `object`, `embed`, `iframe`,`svg`, etc) or array of elements, passed to **SVGInjector** will be replaced with the full SVG markup inline. The async loaded SVG is also cached so multiple uses of an SVG only requires a single server request. * Any embedded JavaScript in the SVG will optionally be extracted, cached and evaluated. @@ -50,7 +50,7 @@ Include the **SVGInjector** script on your page. ``` -Add some SVG `svg` tags. +Add some `svg` tags. ```html @@ -70,7 +70,8 @@ Inject 'em. ``` The `svg` tags have now been replaced with the full SVG markup. -Also see [examples/simple](https://github.com/flobacher/SVGInjector2/blob/master/examples/simple.html) for more details. + +Also see [examples/simple-with-img-tag](https://github.com/flobacher/SVGInjector2/blob/master/examples/simple-with-img-tag.html) for another example that illustrates how to inject `img` elements using `src` with a specific classname such as `inject-me`. ### Configuration From 35a3f6ab8efab2863c702738b546e717c7fb1eb5 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 27 Feb 2017 22:26:20 +0100 Subject: [PATCH 163/212] update README.md --- README.md | 107 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index c844416..67b34f6 100755 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Include the **SVGInjector** script on your page. ``` -Add some SVG `svg` tags. +Add some `svg` tags. ```html @@ -61,35 +61,77 @@ Inject 'em. ```html ``` The `svg` tags have now been replaced with the full SVG markup. Also see [examples/simple](https://github.com/flobacher/SVGInjector2/blob/master/examples/simple.html) for more details. -### Configuration -In addition to passing elements to inject, an options object and callback function can optionally be defined. +### Full Example incl. Configuration -```js -new SVGInjector(options).inject(elements, afterAllInjectionsFinishedCallback, perInjectionCallback); +In addition to passing elements to inject, an options object to configure the injector instance and callback functions for the injections can optionally be defined. + + +```html + + ``` -#### `elements` +```js +// Elements to inject +var elementsToInject = document.querySelectorAll('svg[data-src]'); -A single DOM element or array of elements, with `data-src` attributes defined, to inject. +// Options +var injectorOptions = { + evalScripts: 'once', + pngFallback: 'assets/png' +}; + +var afterAllInjectionsFinishedCallback = function (totalSVGsInjected) { + // Callback after all SVGs are injected + console.log('We injected ' + totalSVGsInjected + ' SVG(s)!'); +}; + +var perInjectionCallback = function (svg) { + // Callback after each SVG is injected + console.log('SVG injected: ' + svg); +}; + +// create injector configured by optiosn +var injector = new SVGInjector(injectorOptions); + +// Trigger the injection +injector.inject( + elementsToInject, + afterAllInjectionsFinishedCallback, + perInjectionCallback +); +``` +Also see [examples/everything](https://github.com/flobacher/SVGInjector2/blob/master/examples/everything.html) for more details. #### `options` ```js +// default values as comment after the line { - evalScripts: [always|once|never], - pngFallback: [PNG directory] + evalScripts: ['always'|'once'|'never'], // 'always' + pngFallback: ['url to directory with fallbackpngs'], + keepStylesClass + spriteClassName +spriteClassIdName +removeStylesClass +removeAllStyles +fallbackClassName +prefixStyleTags + // spritesheet relevant options + spritesheetURL // only needed for classbased injeciton + onlyInjectVisiblePart + + // testing + forceFallbacks } ``` @@ -107,45 +149,20 @@ A single DOM element or array of elements, with `data-src` attributes defined, t For additional flexibility, per-element fallbacks are also [available](#per-element-png-fallback). -* `perInjectionCallback(svg)` - function - A function to call after each SVG is injected. Receives the newly injected SVG DOM element as a parameter. +#### `elements` -#### `afterAllInjectionsFinishedCallback(count)` - function +A single DOM element or array of elements, with `data-src` attributes defined, to inject. -A function to call once all the requested SVG elements have been injected. Receives a count of the total SVGs injected as a parameter. -### Full Example +#### `perInjectionCallback(svg)` - function -```html - - -``` + A function to call after each SVG is injected. Receives the newly injected SVG DOM element as a parameter. -```js -// Elements to inject -var mySVGsToInject = document.querySelectorAll('svg[data-src]'); +#### `afterAllInjectionsFinishedCallback(count)` - function -// Options -var injectorOptions = { - evalScripts: 'once', - pngFallback: 'assets/png' -}; +A function to call once all the requested SVG elements have been injected. Receives a count of the total SVGs injected as a parameter. -// Trigger the injection -new SVGInjector(injectorOptions).inject( - mySVGsToInject, - function (totalSVGsInjected) { - // Callback after all SVGs are injected - console.log('We injected ' + totalSVGsInjected + ' SVG(s)!'); - }, - function (svg) { - // Callback after each SVG is injected - console.log('SVG injected: ' + svg); - } -); -``` -Also see [examples/everything](https://github.com/flobacher/SVGInjector2/blob/master/examples/everything.html) for more details. ### Per-element PNG fallback From 2658876a641c1384b5afe6877b3f5185612a5525 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 27 Feb 2017 22:54:44 +0100 Subject: [PATCH 164/212] add options --- README.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 91141df..4b5bd2b 100755 --- a/README.md +++ b/README.md @@ -118,21 +118,22 @@ Also see [examples/everything](https://github.com/flobacher/SVGInjector2/blob/ma ```js // default values as comment after the line { - evalScripts: ['always'|'once'|'never'], // 'always' - pngFallback: ['url to directory with fallbackpngs'], - keepStylesClass - spriteClassName -spriteClassIdName -removeStylesClass -removeAllStyles -fallbackClassName -prefixStyleTags + evalScripts: 'always'|'once'|'never', // 'always' + pngFallback: 'url to directory with fallbackpngs', // false + keepStylesClass: 'className', // '' + spriteClassName: 'className', // 'sprite' + spriteClassIdName: 'classNameInclSeperator', // 'sprite--' + removeStylesClass: 'className', // 'icon' -> this will remove all styles from the svg so it is easy to style with external css. works best with monochrome icons + removeAllStyles: true|false, // false + fallbackClassName: 'className', // 'sprite' + prefixStyleTags: true|false, // true + // spritesheet relevant options - spritesheetURL // only needed for classbased injeciton - onlyInjectVisiblePart + spritesheetURL: 'urltospritesheet', false // only needed for classbased injeciton + onlyInjectVisiblePart: true|false, // true // testing - forceFallbacks + forceFallbacks: true|false, // false } ``` From 147b9533c47e2874a8da757cc05e9023ca655e86 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 27 Feb 2017 23:26:20 +0100 Subject: [PATCH 165/212] add options --- README.md | 12 ++++++------ examples/simple-with-img-tag.html | 27 --------------------------- examples/simple.html | 4 ++-- 3 files changed, 8 insertions(+), 35 deletions(-) delete mode 100644 examples/simple-with-img-tag.html diff --git a/README.md b/README.md index 4b5bd2b..ed271ce 100755 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ A fast, caching, dynamic inline SVG DOM injection library. Originally developed Extended by Flobacher to be able to use with spritesheets and in AngularJS Applications ## Why? -Linking to an external SVG on a page usually only allows you to display the SVG 'as is'. To unlock the full potential of SVG, including full element-level CSS styling and evaluation of embedded JavaScript, the markup of the SVG must be included directly in the DOM. +Linking to an external SVG on a page (via `object`, `embed`, `iframe`, `img`, CSS `background-image`) usually only allows you to display the SVG 'as is'. To unlock the full potential of SVG, including full element-level CSS styling and evaluation of embedded JavaScript, the markup of the SVG must be included directly in the DOM. Maintaining a bunch of inline SVG on your pages isn't anyone's idea of good time, so **SVGInjector** lets you specifiy external SVGs and embeds the contents directly into the DOM alongside your HTML. ## How? -* Any DOM element (`img`, `object`, `embed`, `iframe`,`svg`, etc) or array of elements, passed to **SVGInjector** will be replaced with the full SVG markup inline. The async loaded SVG is also cached so multiple uses of an SVG only requires a single server request. +* Any DOM element or array of elements (recommended are `svg`-tags for clarity or `img`-tags if you need support for fallback pngs, but there are no technical limitations), passed to **SVGInjector** that contains a `data-src` attribute will be replaced with the full SVG markup available via this URL inline. The async loaded SVG is also cached so multiple uses of an SVG only requires a single server request. * Any embedded JavaScript in the SVG will optionally be extracted, cached and evaluated. @@ -68,7 +68,7 @@ Inject 'em. The `svg` tags have now been replaced with the full SVG markup. -Also see [examples/simple-with-img-tag](https://github.com/flobacher/SVGInjector2/blob/master/examples/simple-with-img-tag.html) for another example that illustrates how to inject `img` elements using `src` with a specific classname such as `inject-me`. +Also see [examples/simple](https://github.com/flobacher/SVGInjector2/blob/master/examples/simple.html) for another example that illustrates how to inject `svg` elements using `data-src` with a specific classname such as `inject-me`. ### Full Example incl. Configuration @@ -101,7 +101,7 @@ var perInjectionCallback = function (svg) { console.log('SVG injected: ' + svg); }; -// create injector configured by optiosn +// create injector configured by options var injector = new SVGInjector(injectorOptions); // Trigger the injection @@ -129,8 +129,8 @@ Also see [examples/everything](https://github.com/flobacher/SVGInjector2/blob/ma prefixStyleTags: true|false, // true // spritesheet relevant options - spritesheetURL: 'urltospritesheet', false // only needed for classbased injeciton - onlyInjectVisiblePart: true|false, // true + spritesheetURL: 'urlToSpritesheet', false // only needed for classbased injection + onlyInjectVisiblePart: true|false, // true -> if the fragmentId specifies an svg-view element, only inject the part that is visible due to the specified view // testing forceFallbacks: true|false, // false diff --git a/examples/simple-with-img-tag.html b/examples/simple-with-img-tag.html deleted file mode 100644 index 128ed3f..0000000 --- a/examples/simple-with-img-tag.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - SVGInjector Example: Simple - - - - - thumb - - - - - - diff --git a/examples/simple.html b/examples/simple.html index a0eb020..edb4de7 100755 --- a/examples/simple.html +++ b/examples/simple.html @@ -14,13 +14,13 @@ - + From 85086e0d80344dd139ba32e0a6daa8377e2e61e9 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 28 Feb 2017 00:19:51 +0100 Subject: [PATCH 166/212] do not change src --- svg-injector.js | 1 - 1 file changed, 1 deletion(-) diff --git a/svg-injector.js b/svg-injector.js index b2eb05e..c7a0a1f 100644 --- a/svg-injector.js +++ b/svg-injector.js @@ -131,7 +131,6 @@ return; } injections.elements.push(el); - el.setAttribute("src", ""); loadSvg(onElementInjectedCallback, imgUrl, el); }; SVGInjector.prototype.getEnv = function() { From 73c3432a5ea5d88bf0230cf2f7a90a47e138655f Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 28 Feb 2017 00:25:15 +0100 Subject: [PATCH 167/212] 2.0.33 --- CHANGELOG.md | 14 ++++++++++++-- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 2 +- package.json | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67def37..6b945de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ ## Change Log -### upcoming (2017/02/22 22:58 +00:00) +### upcoming (2017/02/27 23:15 +00:00) +- [2658876](https://github.com/flobacher/SVGInjector2/commit/2658876a641c1384b5afe6877b3f5185612a5525) add options (@flobacher) +- [#14](https://github.com/flobacher/SVGInjector2/pull/14) Update README.md (@TheCopartnery) +- [#13](https://github.com/flobacher/SVGInjector2/pull/13) Add simple with img tag example (@TheCopartnery) +- [35a3f6a](https://github.com/flobacher/SVGInjector2/commit/35a3f6ab8efab2863c702738b546e717c7fb1eb5) update README.md (@flobacher) +- [00838d8](https://github.com/flobacher/SVGInjector2/commit/00838d84dcd7ebc746b21eef37c57426c7a85c89) Update README.md (@TheCopartnery) +- [caedbeb](https://github.com/flobacher/SVGInjector2/commit/caedbebe345c666812600e2ec60b9468a16faff5) Add simple with img tag example (@TheCopartnery) +- [69ecf67](https://github.com/flobacher/SVGInjector2/commit/69ecf67708ce5a60a2c32d5326f2a1761d40842b) update/streamline examples and read (@flobacher) + +### v2.0.32 (2017/02/22 22:58 +00:00) +- [d534db0](https://github.com/flobacher/SVGInjector2/commit/d534db0a68c66162165b190c5bb7249ec9bcc937) 2.0.32 (@flobacher) - [794d4f5](https://github.com/flobacher/SVGInjector2/commit/794d4f5997fbbb4557e13c81bcfb2e9f47854c21) add a basic, non-spritesheet example (@flobacher) - [50eaafb](https://github.com/flobacher/SVGInjector2/commit/50eaafb874c37b4dadc917c36a24f748206b3f29) always set data-src even if only src was specified (@flobacher) @@ -307,4 +317,4 @@ - [495f468](https://github.com/flobacher/SVGInjector2/commit/495f4681485831140d417003eac7b734430ab388) spelling fix (@protodave) - [ff3b341](https://github.com/flobacher/SVGInjector2/commit/ff3b34194cab2a4655463c7d2f3cabbd242fcb28) copy formatting update (@protodave) - [49adbde](https://github.com/flobacher/SVGInjector2/commit/49adbde371b3d9d7fcdaab411d01a976a46ef41c) first code commit (@protodave) -- [0280954](https://github.com/flobacher/SVGInjector2/commit/02809541241ab8ebf88135124bac2be27d9e2538) Initial commit (@protodave) \ No newline at end of file +- [0280954](https://github.com/flobacher/SVGInjector2/commit/02809541241ab8ebf88135124bac2be27d9e2538) Initial commit (@protodave) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 6a62830..fcddcbb 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"sources":["./src/svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","suffixIdReferencesInStyles","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","spriteId","imgUrl","getAttribute","console","warn","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","styleTag","suffix","name","numRefs","textContent","match","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","symobolList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","info","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","fileUrl","pathArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","titleId","descId","ariaHidden","children","curChildElem","SVGDefsElement","SVGTitleElement","SVGDescElement","classMerge","concat","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","stylesUntouched","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","addDefault","existingElem","elemId","firstChild","text","insertBefore","newElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","restrict","link","$observe","exports","define","amd"],"mappings":"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","file":"./dist/svg-injector.min.js","sourcesContent":["/**\n * SVGInjector v2.0.26 - Fast, caching, dynamic inline SVG DOM injection library\n * https://github.com/flobacher/SVGInjector2\n * forked from:\n * https://github.com/iconic/SVGInjector\n *\n * Copyright (c) 2015 flobacher \n * @license MIT\n *\n * original Copyright (c) 2014 Waybury \n * @license MIT\n */\n\n(function(window, document) {\n 'use strict';\n /**\n * SVGInjector\n *\n * Replace the given elements with their full inline SVG DOM elements.\n *\n * :NOTE: We are using get/setAttribute with SVG because the SVG DOM spec differs from HTML DOM and\n * can return other unexpected object types when trying to directly access svg properties.\n * ex: \"className\" returns a SVGAnimatedString with the class value found in the \"baseVal\" property,\n * instead of simple string like with HTML Elements.\n */\n var SVGInjector = (function () {\n\n\n /**\n * Constructor Function\n * @param {object} options\n */\n function SVGInjector (options) {\n SVGInjector.instanceCounter++;\n this.init(options);\n }\n\n // - private constants -----------------------------------------\n var SVG_NS = 'http://www.w3.org/2000/svg';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var DEFAULT_SPRITE_CLASS_NAME = 'sprite';\n var DEFAULT_SPRITE_CLASS_ID_NAME = DEFAULT_SPRITE_CLASS_NAME + '--';\n var DEFAULT_FALLBACK_CLASS_NAMES = [DEFAULT_SPRITE_CLASS_NAME];\n var DEFAULT_REMOVESTYLES_CLASS_NAME = 'icon';\n\n // - private member vars ---------------------------------------\n var svgCache;\n var injections;\n var requestQueue;\n var ranScripts;\n var config;\n var env;\n\n // - private member funcs --------------------------------------\n var\n setFallbackClassNames,\n removeFallbackClassNames,\n suffixIdReferences,\n suffixIdReferencesInStyles,\n copyAttributes,\n cloneSymbolAsSVG,\n doPrefixStyleTags,\n getClassList,\n getSpriteIdFromClass,\n cloneSvg,\n queueRequest,\n processRequestQueue,\n loadSvg,\n writeDefaultClass,\n replaceNoSVGClass,\n onLoadSVG,\n uniqueClasses,\n isFunction,\n isArray,\n svgElemSetClassName,\n forEach,\n setRootLevelElem,\n addRootLevelElem\n ;\n\n\n\n requestQueue = [];\n\n // - static vars -----------------------------------------------\n SVGInjector.instanceCounter = 0;\n\n // - public member vars ----------------------------------------\n //SVGInjector.prototype.varName = {};\n\n\n\n // - public member functions ---------------------------------------\n /**\n * @param {object} options\n */\n SVGInjector.prototype.init = function(options) {\n options = options || {};\n svgCache = {};\n env = {};\n env.isLocal = window.location.protocol === 'file:';\n env.hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n\n injections = {\n count: 0,\n elements: []\n };\n\n ranScripts = {};\n config = {};\n\n // Should we run the scripts blocks found in the SVG\n // 'always' - Run them every time\n // 'once' - Only run scripts once for each SVG\n // [false|'never'] - Ignore scripts\n config.evalScripts = options.evalScripts || 'always';\n\n // Location of fallback pngs, if desired\n config.pngFallback = options.pngFallback || false;\n\n // Only inject the part of the svg, that is specified\n // as visible through the id of an SVGViewElement\n // is default mode\n config.onlyInjectVisiblePart = options.onlyInjectVisiblePart || true;\n\n config.keepStylesClass = (typeof options.keepStylesClass === 'undefined') ?\n '' : options.keepStylesClass;\n\n config.spriteClassName = (typeof options.spriteClassName === 'undefined') ?\n DEFAULT_SPRITE_CLASS_NAME : options.spriteClassName;\n\n config.spriteClassIdName = (typeof options.spriteClassIdName === 'undefined') ?\n DEFAULT_SPRITE_CLASS_ID_NAME : options.spriteClassIdName;\n\n config.removeStylesClass = (typeof options.removeStylesClass === 'undefined') ?\n DEFAULT_REMOVESTYLES_CLASS_NAME : options.removeStylesClass;\n\n config.removeAllStyles = (typeof options.removeAllStyles === 'undefined') ?\n false : options.removeAllStyles;\n\n config.fallbackClassName = (typeof options.fallbackClassName === 'undefined') ?\n DEFAULT_FALLBACK_CLASS_NAMES : options.fallbackClassName;\n\n config.prefixStyleTags = (typeof options.prefixStyleTags === 'undefined') ?\n true : options.prefixStyleTags;\n\n config.spritesheetURL = (typeof options.spritesheetURL === 'undefined' || options.spritesheetURL === '') ?\n false : options.spritesheetURL;\n\n config.prefixFragIdClass = config.spriteClassIdName;\n\n config.forceFallbacks = (typeof options.forceFallbacks === 'undefined') ?\n false : options.forceFallbacks;\n\n if(config.forceFallbacks){\n env.hasSvgSupport = false;\n }\n\n replaceNoSVGClass(document.querySelector('html'), 'no-svg', env.hasSvgSupport);\n\n if(env.hasSvgSupport && typeof options.removeStylesClass === 'undefined' ){ // user does not want to use his own custom class -> write this style tag\n writeDefaultClass(config.removeStylesClass);\n }\n };\n\n /**\n * Inject 1+ elements\n * @param {elements} Array of or single DOM element\n * @param {function} onDoneCallback\n * @param {function} eachCallback\n */\n SVGInjector.prototype.inject = function(elements, onDoneCallback, eachCallback) {\n if (elements.length !== undefined) {\n var elementsLoaded = 0;\n var ctx = this;\n forEach.call(elements, function (element) {\n ctx.injectElement(element, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (onDoneCallback && elements.length === ++elementsLoaded) onDoneCallback(elementsLoaded);\n });\n });\n }\n else {\n if (elements) {\n this.injectElement(elements, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (onDoneCallback) onDoneCallback(1);\n elements = null;\n });\n }\n else {\n if (onDoneCallback) onDoneCallback(0);\n }\n }\n };\n\n\n /**\n * Inject a single element\n * @param {elements} Array of or single DOM element\n * @param {function} onDoneCallback\n * @param {function} eachCallback\n */\n SVGInjector.prototype.injectElement = function (el, onElementInjectedCallback) {\n var imgUrl = el.getAttribute('data-src') || el.getAttribute('src'),\n spriteId;\n\n if (config.spritesheetURL && !imgUrl ) {\n spriteId = getSpriteIdFromClass(el);\n if (spriteId === '') {\n console.warn('neither data-src nor spriteId class found! Nothing to inject here!');\n return;\n }\n imgUrl = config.spritesheetURL + '#' + spriteId;\n // console.log('imgURL: ' + imgUrl);\n }\n el.setAttribute('data-src', imgUrl);\n\n var imgUrlSplitByFId = imgUrl.split('#');\n if (imgUrlSplitByFId.length === 1) {\n imgUrlSplitByFId.push('');\n }\n var fallbackUrl;\n\n // We can only inject SVG\n if (!(/\\.svg/i).test(imgUrl)) {\n onElementInjectedCallback('Attempted to inject a file with a non-svg extension: ' + imgUrl);\n return;\n }\n\n\n if (env.hasSvgSupport) {\n if (isArray(config.fallbackClassName)) {\n removeFallbackClassNames(el, imgUrlSplitByFId[1], config.fallbackClassName);\n }\n }\n else {\n // If we don't have SVG support try to fall back to a png,\n // either defined per-element via data-fallback or data-png,\n // or globally via the pngFallback directory setting\n\n var perElementFallback = el.getAttribute('data-fallback') || el.getAttribute('data-png');\n\n // Per-element specific PNG fallback defined, so use that\n if (perElementFallback) {\n el.setAttribute('src', perElementFallback);\n onElementInjectedCallback(null);\n }\n // Global PNG fallback directory defined, use the same-named PNG\n else if (config.pngFallback) {\n\n if (imgUrlSplitByFId.length > 1 && imgUrlSplitByFId[1]) {\n fallbackUrl = imgUrlSplitByFId[1] + '.png';\n if (isArray(config.fallbackClassName)) {\n setFallbackClassNames(el, imgUrlSplitByFId[1], config.fallbackClassName);\n }\n else if (isFunction(config.fallbackClassName)) {\n // console.info('custom function to create fallbackClassName');\n config.fallbackClassName(el, imgUrlSplitByFId[1]);\n }\n else if (typeof config.fallbackClassName === 'string') {\n svgElemSetClassName(el, config.fallbackClassName);\n }\n else {\n el.setAttribute('src', config.pngFallback + '/' + fallbackUrl);\n }\n }\n else {\n fallbackUrl = imgUrl.split('/').pop().replace('.svg', '.png');\n el.setAttribute('src', config.pngFallback + '/' + fallbackUrl);\n }\n\n onElementInjectedCallback(null);\n }\n // um...\n else {\n onElementInjectedCallback('This browser does not support SVG and no PNG fallback was defined.');\n }\n\n return;\n }\n\n // Make sure we aren't already in the process of injecting this element to\n // avoid a race condition if multiple injections for the same element are run.\n // :NOTE: Using indexOf() only _after_ we check for SVG support and bail,\n // so no need for IE8 indexOf() polyfill\n if (injections.elements.indexOf(el) !== -1) {\n console.warn('race', el);\n return;\n }\n\n // Remember the request to inject this element, in case other injection\n // calls are also trying to replace this element before we finish\n injections.elements.push(el);\n\n // Try to avoid loading the orginal image src if possible.\n el.setAttribute('src', '');\n\n // Load it up\n loadSvg(onElementInjectedCallback, imgUrl, el);\n\n };\n\n SVGInjector.prototype.getEnv = function() {\n return env;\n };\n\n // - private member functions -----------------------------------------------\n setFallbackClassNames = function (element, symbolId, classNames) {\n var className = (typeof classNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES : classNames.slice(0);\n\n // replace %s by symbolId\n forEach.call(\n className,\n function(curClassName, idx) {\n className[idx] = curClassName.replace('%s', symbolId);\n }\n );\n\n svgElemSetClassName(element, className);\n };\n\n removeFallbackClassNames = function (element, symbolId, fallbackClassNames) {\n fallbackClassNames = (typeof fallbackClassNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES.slice(0) : fallbackClassNames.slice(0);\n\n var idxOfCurClass,\n curClassNames,\n classAttribute = element.getAttribute('class');\n\n if (typeof classAttribute === 'undefined' || classAttribute === null) {\n return;\n }\n\n curClassNames = classAttribute.split(' ');\n if (curClassNames) {\n // replace %s by symbolId\n forEach.call(\n fallbackClassNames,\n function(curFallbackClassName) {\n curFallbackClassName = curFallbackClassName.replace('%s', symbolId);\n idxOfCurClass = curClassNames.indexOf(curFallbackClassName);\n if( idxOfCurClass >= 0 ){\n // console.log('remove class ' + curClassName);\n curClassNames[idxOfCurClass] = '';\n }\n\n }\n );\n\n element.setAttribute('class', uniqueClasses(curClassNames.join(' ')));\n }\n\n };\n\n suffixIdReferencesInStyles = function (styleTag, suffix, svg, name) {\n //var referencedIds = styleTag.textContent.match(/url\\(('|\")*#.+('|\")*\\)/g) || [];\n /*referencedIds.forEach(function (elem, idx, arr) {\n //elem = elem.replace(/url\\(('|\")*#/g, '');\n arr[idx] = elem.replace(/\\)/g, '-' + suffix + ')');\n console.log('style', arr[idx]);\n });\n */\n var numRefs = 0;\n styleTag.textContent = styleTag.textContent.replace(/url\\(('|\")*#.+('|\")*(?=\\))/g, function (match) {\n //console.log('match', match + '-' + suffix);\n numRefs++;\n return match + '-' + suffix;\n });\n return numRefs;\n };\n\n suffixIdReferences = function (svg, suffix) {\n var defs = [\n {def:'linearGradient', attrs: ['fill', 'stroke']},\n {def:'radialGradient', attrs: ['fill', 'stroke']},\n {def:'clipPath', attrs: ['clip-path']},\n {def:'mask', attrs: ['mask']},\n {def:'filter', attrs: ['filter']},\n {def:'color-profile', attrs: ['color-profile']},\n {def:'cursor', attrs: ['cursor']},\n {def:'marker', attrs: ['marker', 'marker-start', 'marker-mid', 'marker-end']}\n ];\n\n var newName,\n definitions,\n defLen,\n defIdx,\n refrences,\n refLen,\n refIdx,\n attrs,\n attrLen,\n attrIdx,\n allLinks,\n allLinksLen,\n allLinksIdx,\n links,\n linkLen,\n linkIdx\n ;\n\n forEach.call(defs, function(elem) {\n\n definitions = svg.querySelectorAll(elem.def + '[id]');\n for (defIdx = 0, defLen = definitions.length; defIdx < defLen; defIdx++) {\n newName = definitions[defIdx].id + '-' + suffix;\n\n attrs = elem.attrs;\n for (attrIdx = 0, attrLen = attrs.length; attrIdx < attrLen; attrIdx++) {\n\n // console.log('suffixxed ' + attribute + ': ' + newName);\n // :NOTE: using a substring match attr selector here to deal with IE \"adding extra quotes in url() attrs\"\n refrences = svg.querySelectorAll('[' + attrs[attrIdx] + '=\"url(#' + definitions[defIdx].id + ')\"]');\n for (refIdx = 0, refLen = refrences.length; refIdx < refLen; refIdx++) {\n // console.log('set url', newName);\n refrences[refIdx].setAttribute(attrs[attrIdx], 'url(#' + newName + ')');\n }\n }\n\n // handle xlink:refrences\n // :NOTE: IE does not like the easy way: links = svg.querySelectorAll('[*|href=\"#' + definitions[defIdx].id + '\"]');\n allLinks = svg.querySelectorAll('[*|href]');\n links = [];\n for (allLinksIdx = 0, allLinksLen = allLinks.length; allLinksIdx < allLinksLen; allLinksIdx++) {\n if (allLinks[allLinksIdx].getAttributeNS(XLINK_NS, 'href').toString() === '#' + definitions[defIdx].id ) {\n links.push(allLinks[allLinksIdx]);\n }\n }\n\n for (linkIdx = 0, linkLen = links.length; linkIdx < linkLen; linkIdx++) {\n links[linkIdx].setAttributeNS(XLINK_NS, 'href', '#' + newName);\n // console.log('set link', newName, links[linkIdx]);\n }\n definitions[defIdx].id = newName;\n }\n });\n };\n\n copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) {\n var curAttr;\n if (typeof attributesToIgnore === 'undefined') { attributesToIgnore = ['id', 'viewBox']; }\n\n for(var i=0; i 1) {\n origPrefixClassName = srcArr[1];\n newPrefixClassName = origPrefixClassName + '-' + injectCount;\n regex = new RegExp('\\\\.' + origPrefixClassName + ' ', 'g');\n styleTag.textContent = styleTagContent.replace(regex, '.' + newPrefixClassName + ' ');\n }\n else { //inject a single element.. this has most probaly not gone through preprocessing\n srcFileNameArr = srcArr[0].split('/');\n newPrefixClassName = srcFileNameArr[srcFileNameArr.length-1].replace('.svg', '') + '-' + injectCount;\n // console.info('inject complete file: ' + srcArr[0]);\n //https://medium.com/jotform-form-builder/writing-a-css-parser-in-javascript-3ecaa1719a43\n regex = new RegExp('([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}', 'g');\n\n while ((regexSearchResult = regex.exec(styleTagContent)) !== null) {\n selectorArr = regexSearchResult[1].trim().split(', ');\n selectorArr.forEach(prefixSelector);\n\n var tmp = selectorArr.join(', ') + '{' + regexSearchResult[2] + '}\\n';\n newContent += tmp;\n }\n styleTag.textContent = newContent;\n }\n\n svg.setAttribute('class', (svg.getAttribute('class') + ' ' + newPrefixClassName));\n };\n\n getClassList = function (svgToCheck) {\n var curClassAttr = svgToCheck.getAttribute('class');\n return (curClassAttr) ? curClassAttr.trim().split(' ') : [];\n };\n\n getSpriteIdFromClass = function (element) {\n var classes = getClassList(element);\n var id = '';\n forEach.call(classes, function (curClass) {\n if(curClass.indexOf(config.spriteClassIdName) >= 0) {\n id = curClass.replace(config.spriteClassIdName, '');\n // console.log('class with prefix ' + config.spriteClassIdName + ' found. id: ' + id);\n }\n });\n return id;\n };\n\n cloneSvg = function (config, sourceSvg, fragId) {\n\n var svgElem,\n newSVG,\n viewBox,\n viewBoxAttr,\n symbolAttributesToFind,\n curClassList,\n setViewboxOnNewSVG = false,\n symbolElem = null,\n symobolList;\n\n if(fragId === undefined){\n return sourceSvg.cloneNode(true);\n }\n else {\n svgElem = sourceSvg.getElementById(fragId);\n if(!svgElem){\n console.warn(fragId + ' not found in svg', sourceSvg);\n return;\n }\n\n viewBoxAttr = svgElem.getAttribute('viewBox');\n viewBox = viewBoxAttr.split(' ');\n\n if (svgElem instanceof SVGSymbolElement) {\n\n newSVG = cloneSymbolAsSVG(svgElem);\n setViewboxOnNewSVG = true;\n\n }\n else if (svgElem instanceof SVGViewElement) {\n symbolElem = null;\n if (config.onlyInjectVisiblePart) {\n var selector = '*[width=\"' + viewBox[2] + '\"][height=\"'+viewBox[3]+'\"]';\n\n symbolAttributesToFind = {};\n if (Math.abs(parseInt(viewBox[0])) === 0) {\n selector += ':not([x])';\n }\n else {\n symbolAttributesToFind.x = viewBox[0];\n selector += '[x=\"' + viewBox[0] + '\"]';\n }\n\n if (Math.abs(parseInt(viewBox[1])) === 0) {\n selector += ':not([y])';\n }\n else {\n symbolAttributesToFind.y = viewBox[1];\n selector += '[y=\"' + viewBox[1] + '\"]';\n }\n symobolList = sourceSvg.querySelectorAll(selector);\n if (symobolList.length > 1) {\n console.warn('more than one item, with the matching viewbox found!', symobolList);\n }\n symbolElem = symobolList[0];\n }\n if (symbolElem && (symbolElem instanceof SVGSVGElement)) {\n newSVG = symbolElem.cloneNode(true);\n\n for (var prop in symbolAttributesToFind) {\n if (prop !== 'width' && prop !== 'height') {\n newSVG.removeAttribute(prop);\n }\n }\n }\n else if(symbolElem && (symbolElem instanceof SVGUseElement)) {\n // console.log('referenced view shows a SVGUseElement');\n var referencedSymbol = sourceSvg.getElementById(\n symbolElem.getAttributeNS(XLINK_NS, 'href').substr(1)\n );\n newSVG = cloneSymbolAsSVG(referencedSymbol);\n viewBoxAttr = referencedSymbol.getAttribute('viewBox');\n viewBox = viewBoxAttr.split(' ');\n setViewboxOnNewSVG = true;\n }\n else {\n console.info(\n ((config.onlyInjectVisiblePart) ? 'symbol referenced via view' + fragId + ' not found' : 'option.onlyInjectVisiblePart: false') + ' -> clone complete svg!'\n );\n setViewboxOnNewSVG = true;\n newSVG = sourceSvg.cloneNode(true);\n\n }\n }\n\n if (setViewboxOnNewSVG) {\n newSVG.setAttribute('viewBox', viewBox.join(' '));\n newSVG.setAttribute('width', viewBox[2]+'px');\n newSVG.setAttribute('height', viewBox[3]+'px');\n }\n newSVG.setAttribute('xmlns', SVG_NS);\n newSVG.setAttribute('xmlns:xlink', XLINK_NS);\n //curClassAttr = newSVG.getAttribute('class');\n curClassList = getClassList(newSVG);\n var fragIdClassName = config.prefixFragIdClass + fragId;\n if (curClassList.indexOf(fragIdClassName)<0) {\n curClassList.push(fragIdClassName);\n newSVG.setAttribute('class', curClassList.join(' '));\n }\n return newSVG;\n }\n\n };\n\n //queueRequest(requestQueue, fileName, fragId, onElementInjectedCallback, el);\n queueRequest = function (fileName, fragId, callback, el) {\n requestQueue[fileName] = requestQueue[fileName] || [];\n requestQueue[fileName].push({callback:callback, fragmentId:fragId, element:el, name: name});\n };\n\n processRequestQueue = function (url) {\n var requestQueueElem;\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n // Make these calls async so we avoid blocking the page/renderer\n /* jshint loopfunc: true */\n (function (index) {\n setTimeout(function () {\n requestQueueElem = requestQueue[url][index];\n onLoadSVG(url, requestQueueElem.fragmentId, requestQueueElem.callback, requestQueueElem.element, requestQueueElem.name);\n }, 0);\n })(i);\n /* jshint loopfunc: false */\n }\n };\n\n loadSvg = function (onElementInjectedCallback, url, el) {\n var urlArr, fileUrl, fragId, name, pathArr;\n //var state = {onElementInjectedCallback:onElementInjectedCallback, injections:injections, config:config, url:url, el:el, ranScripts:ranScripts};\n // console.log('loadSvg', url);\n urlArr = url.split('#');\n fileUrl = urlArr[0];\n fragId = (urlArr.length === 2) ? urlArr[1] : undefined;\n //name = fragId ? undefined : ;\n if (typeof fragId !== 'undefined') {\n pathArr = fileUrl.split('/');\n name = pathArr[pathArr.length-1].replace('.svg', '');\n }\n\n if (svgCache[fileUrl] !== undefined) {\n if (svgCache[fileUrl] instanceof SVGSVGElement) {\n // We already have it in cache, so use it\n // console.log('We already have it in cache, so use it', fileName, fragId);\n onLoadSVG(fileUrl, fragId, onElementInjectedCallback, el, name);\n }\n else {\n // console.log('We don\\'t have it in cache yet, but we are loading it, so queue this request', fileName, fragId);\n // We don't have it in cache yet, but we are loading it, so queue this request\n queueRequest(fileUrl, fragId, onElementInjectedCallback, el, name);\n }\n }\n else {\n\n if (!window.XMLHttpRequest) {\n onElementInjectedCallback('Browser does not support XMLHttpRequest');\n return false;\n }\n\n // Seed the cache to indicate we are loading this URL already\n svgCache[fileUrl] = {};\n queueRequest(fileUrl, fragId, onElementInjectedCallback, el, name);\n\n var httpRequest = new XMLHttpRequest();\n\n httpRequest.onreadystatechange = function () {\n // readyState 4 = complete\n if (httpRequest.readyState === 4) {\n\n // Handle status\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n onElementInjectedCallback('Unable to load SVG file: ' + fileUrl);\n\n // @check this!\n //if (env.isLocal) {\n // onLoadCompleteCb('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.');\n //}\n //\n //onLoadCompleteCb();\n return false;\n }\n\n // 200 success from server, or 0 when using file:// protocol locally\n if (httpRequest.status === 200 || (env.isLocal && httpRequest.status === 0)) {\n\n if (httpRequest.responseXML instanceof Document) {\n // Cache it\n svgCache[fileUrl] = httpRequest.responseXML.documentElement;\n }\n\n // IE9 doesn't create a responseXML Document object from loaded SVG,\n // and throws a \"DOM Exception: HIERARCHY_REQUEST_ERR (3)\" error when injected.\n //\n // So, we'll just create our own manually via the DOMParser using\n // the the raw XML responseText.\n //\n // :NOTE: IE8 and older doesn't have DOMParser, but they can't do SVG either, so...\n else if (DOMParser && (DOMParser instanceof Function)) {\n var xmlDoc;\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(httpRequest.responseText, 'text/xml');\n }\n catch (e) {\n xmlDoc = undefined;\n }\n\n if (!xmlDoc || xmlDoc.getElementsByTagName('parsererror').length) {\n onElementInjectedCallback('Unable to parse SVG file: ' + url);\n return false;\n }\n else {\n // Cache it\n svgCache[fileUrl] = xmlDoc.documentElement;\n }\n }\n\n // We've loaded a new asset, so process any requests waiting for it\n processRequestQueue(fileUrl);\n }\n else {\n onElementInjectedCallback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n return false;\n }\n }\n };\n\n httpRequest.open('GET', fileUrl);\n\n // Treat and parse the response as XML, even if the\n // server sends us a different mimetype>\n if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');\n\n httpRequest.send();\n }\n };\n\n writeDefaultClass = function(removeStylesClass) {\n var css = 'svg.' + removeStylesClass + ' {fill: currentColor;}',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet){\n style.styleSheet.cssText = css;\n }\n else {\n style.appendChild(document.createTextNode(css));\n }\n head.appendChild(style);\n // console.info( 'default class written: ', css );\n };\n\n replaceNoSVGClass = function(element, noSVGClassName, hasSvgSupport) {\n if(hasSvgSupport) {\n element.className.replace(noSVGClassName, '');\n }\n else{\n element.className += ' ' + noSVGClassName;\n }\n };\n\n\n onLoadSVG = function(url, fragmentId, onElementInjectedCallback, el, name){\n // console.log('onLoadSVG', url, fragmentId, onElementInjectedCallback, el, name);\n var svg,\n imgId,\n titleId,\n descId,\n ariaHidden;\n\n svg = cloneSvg(config, svgCache[url], fragmentId);\n if (typeof svg === 'undefined' || typeof svg === 'string') {\n onElementInjectedCallback(svg);\n return false;\n }\n\n // take care of accessibility\n svg.setAttribute('role', 'img');\n forEach.call(svg.children || [], function (curChildElem) { // IE does not support Children on SVGElement!\n if (\n !(curChildElem instanceof SVGDefsElement) &&\n !(curChildElem instanceof SVGTitleElement) &&\n !(curChildElem instanceof SVGDescElement)\n ) {\n curChildElem.setAttribute('role', 'presentation');\n }\n });\n\n\n // set aria-hidden attribute\n ariaHidden = el.getAttribute('aria-hidden') || svg.getAttribute('aria-hidden');\n\n // set desc + title\n descId = setRootLevelElem('desc', svg, el, fragmentId, name, !ariaHidden);\n titleId = setRootLevelElem('title', svg, el, fragmentId, name, !ariaHidden);\n if (ariaHidden) {\n svg.setAttribute('aria-hidden', 'true');\n } else {\n svg.setAttribute('aria-labelledby', titleId + ' ' + descId);\n }\n\n // copy attributes of original element to new svg excluding class\n copyAttributes(el, svg, ['class']);\n\n\n // Concat the SVG classes + 'injected-svg' + the img classes\n var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' ');\n svg.setAttribute('class', uniqueClasses(classMerge));\n\n // Make sure any internally referenced ids and their\n // references are unique.\n //\n // This addresses the issue of having multiple instances of the\n // same SVG on a page and only the first clipPath, gradient, mask or filter id is referenced.\n suffixIdReferences(svg, injections.count, name);\n\n\n // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools\n svg.removeAttribute('xmlns:a');\n\n // Post page load injected SVGs don't automatically have their script\n // elements run, so we'll need to make that happen, if requested\n\n // Find then prune the scripts\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script, scriptType;\n\n for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) {\n scriptType = scripts[k].getAttribute('type');\n\n // Only process javascript types.\n // SVG defaults to 'application/ecmascript' for unset types\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') {\n\n // innerText for IE, textContent for other browsers\n script = scripts[k].innerText || scripts[k].textContent;\n\n // Stash\n scriptsToEval.push(script);\n\n // Tidy up and remove the script element since we don't need it anymore\n svg.removeChild(scripts[k]);\n }\n }\n\n // Run/Eval the scripts if needed\n if (scriptsToEval.length > 0 && (config.evalScripts === 'always' || (config.evalScripts === 'once' && ! ranScripts[url]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n\n // :NOTE: Yup, this is a form of eval, but it is being used to eval code\n // the caller has explictely asked to be loaded, and the code is in a caller\n // defined SVG file... not raw user input.\n //\n // Also, the code is evaluated in a closure and not in the global scope.\n // If you need to put something in global scope, use 'window'\n new Function(scriptsToEval[l])(window); // jshint ignore:line\n }\n\n // Remember we already ran scripts for this svg\n ranScripts[url] = true;\n }\n\n // :NOTE: handle styles in style-tags\n var styleTags = svg.querySelectorAll('style');\n\n forEach.call(styleTags, function (styleTag) {\n var svgClassList = getClassList(svg),\n stylesUntouched = true;\n if ((svgClassList.indexOf(config.removeStylesClass)>=0 || config.removeAllStyles) && (svgClassList.indexOf(config.keepStylesClass)<0) ) {\n\n // remove the styletag if the removeStylesClass is applied to the SVG\n // console.log('remove styleTag', styleTag);\n styleTag.parentNode.removeChild(styleTag);\n }\n else {\n\n if (suffixIdReferencesInStyles(styleTag, injections.count, svg, name) > 0) {\n stylesUntouched = false;\n }\n\n if (config.prefixStyleTags){\n doPrefixStyleTags(styleTag, injections.count, svg, name);\n stylesUntouched = false;\n }\n\n if (stylesUntouched) {\n // :WORKAROUND:\n // IE doesn't evaluate @@ -27,6 +29,7 @@ + From 9b0617fdab9f178bb24922d1c610c66ccd85b873 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 13 Mar 2017 13:40:08 +0100 Subject: [PATCH 184/212] 2.0.35 --- CHANGELOG.md | 20 ++++++++++++++++++-- package.json | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8be892..c68778e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,22 @@ ## Change Log -### upcoming (2017/03/05 10:40 +00:00) +### upcoming (2017/03/13 12:40 +00:00) +- [7897ca7](https://github.com/flobacher/SVGInjector2/commit/7897ca7c284d4162b4f9ceb9446b829f5bb6f2c3) update example (@flobacher) +- [6e7f25f](https://github.com/flobacher/SVGInjector2/commit/6e7f25f0f39ae0ec56ccbd24e58da9ee448e3c88) angular-directive: allow sprite-id class to be not the first in the classList (@flobacher) +- [9c09103](https://github.com/flobacher/SVGInjector2/commit/9c09103d35c60c2762d389fb556ce83715ace092) fix package-script (@flobacher) + +### v2.0.34 (2017/03/05 10:43 +00:00) +- [80f8b04](https://github.com/flobacher/SVGInjector2/commit/80f8b04c42104948937663a59f46fd751b1e5338) 2.0.34 (@flobacher) +- [699af49](https://github.com/flobacher/SVGInjector2/commit/699af496e1627e6b0a42a908671f39977d83e5b5) codestyle (@flobacher) +- [dedbd9b](https://github.com/flobacher/SVGInjector2/commit/dedbd9b181ffdf7450945c7642c2c658b58c173c) start adding support for interpolated data-src (@flobacher) +- [b1a17fc](https://github.com/flobacher/SVGInjector2/commit/b1a17fc1c7d2f05364a8e81d17872d734e6812da) add example for interpolation support of classnames (@flobacher) +- [1de9aa8](https://github.com/flobacher/SVGInjector2/commit/1de9aa8737a6e3d249c7c381c00f04f0d385cd2b) adapt example (@flobacher) +- [215638d](https://github.com/flobacher/SVGInjector2/commit/215638d7d4bad66921c11bc7b9c08ca3099f4998) only execute angular-directive code if src, data-src or sprite-class are present (@flobacher) +- [7eab253](https://github.com/flobacher/SVGInjector2/commit/7eab25323b2541640b3c5d143a525d3cd7f6ac69) codestyle (@flobacher) +- [a0459c8](https://github.com/flobacher/SVGInjector2/commit/a0459c855fdf258204dd77d783847fe17acd7dfb) getter for config (@flobacher) +- [3c4ba0e](https://github.com/flobacher/SVGInjector2/commit/3c4ba0e1bd1f48139d2673de3fc3732e2ba113c9) exit, when neither src, data-src, nor sprite sheet url are specified (@flobacher) +- [3aef12b](https://github.com/flobacher/SVGInjector2/commit/3aef12bf51f3fe0992618c3d2a50d921ba319c38) add inline svgs to examples (@flobacher) +- [ba2226f](https://github.com/flobacher/SVGInjector2/commit/ba2226fb08ca66d6f884d5ec3ef59a9911c307af) remove console.logs in minified version (@flobacher) - [#16](https://github.com/flobacher/SVGInjector2/pull/16) Check for imgUrl (@TheCopartnery) - [a188971](https://github.com/flobacher/SVGInjector2/commit/a188971bd5dbecea928eccc7e9d202ac0f46cecd) spelling correction (@TheCopartnery) - [3e72195](https://github.com/flobacher/SVGInjector2/commit/3e72195bb3c26348e12f8ae2ebf5e2cd4ec9af09) Check for imgUrl - inline svg’s will not have an imgUrl (src/data-src) causing imgUrl.split to error (@TheCopartnery) @@ -59,8 +75,8 @@ - [aadf829](https://github.com/flobacher/SVGInjector2/commit/aadf8299ecae7b5cd1213802f84d4fc2617c3d8d) correct those id-refs in sample sprite sheet.. this needs fixing in injector though (@flobacher) - [24e397d](https://github.com/flobacher/SVGInjector2/commit/24e397dae2b936829ecac1a4a42524faa4b11520) do not add role=presentation to title and desc (@flobacher) - [bc9aab5](https://github.com/flobacher/SVGInjector2/commit/bc9aab5a20292ce23657c01f229245b8613e227c) update scripts (@flobacher) -- [d01d011](https://github.com/flobacher/SVGInjector2/commit/d01d01169e69ce36647f5561b45f736a281b7a0a) suffix id-references in style-tags and refactor (@flobacher) - [bd6213b](https://github.com/flobacher/SVGInjector2/commit/bd6213b62931d61563579e0641d7b03c95aadfc1) update/move examples (@flobacher) +- [d01d011](https://github.com/flobacher/SVGInjector2/commit/d01d01169e69ce36647f5561b45f736a281b7a0a) suffix id-references in style-tags and refactor (@flobacher) - [#3](https://github.com/flobacher/SVGInjector2/pull/3) added support for aria-hidden attribute on svg element (@dgoerdes) - [f8cf0fe](https://github.com/flobacher/SVGInjector2/commit/f8cf0fe3706f6008eb39549363742dccc4c7ce0c) added support for aria-hidden attribute on svg element (@dgoerdes) diff --git a/package.json b/package.json index 38740ae..24de347 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "svg-injector-2", "description": "forked version of iconic/SVGInjector, extended by the ability to use spritesheets and support for angularjs", - "version": "2.0.34", + "version": "2.0.35", "author": "", "contributors": [ { From 9517d9941b17d5dc1dece733fcf2bb1281e2852f Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Tue, 28 Mar 2017 10:34:21 +0200 Subject: [PATCH 185/212] update version nr. on build --- dist/svg-injector.map.js | 2 +- dist/svg-injector.min.js | 4 ++-- package.json | 7 +++++-- src/svg-injector.js | 5 ++--- svg-injector.js | 12 ++++++++++++ yarn.lock | 25 ++++++++++++++++++++++++- 6 files changed, 46 insertions(+), 9 deletions(-) diff --git a/dist/svg-injector.map.js b/dist/svg-injector.map.js index 20d666c..a47722e 100644 --- a/dist/svg-injector.map.js +++ b/dist/svg-injector.map.js @@ -1 +1 @@ -{"version":3,"sources":["./src/svg-injector.js"],"names":["window","document","SVGInjector","options","instanceCounter","this","init","svgCache","injections","requestQueue","ranScripts","config","env","setFallbackClassNames","removeFallbackClassNames","suffixIdReferences","suffixIdReferencesInStyles","copyAttributes","cloneSymbolAsSVG","doPrefixStyleTags","getClassList","getSpriteIdFromClass","cloneSvg","queueRequest","processRequestQueue","loadSvg","writeDefaultClass","replaceNoSVGClass","onLoadSVG","uniqueClasses","isFunction","isArray","svgElemSetClassName","forEach","setRootLevelElem","addRootLevelElem","SVG_NS","XLINK_NS","DEFAULT_SPRITE_CLASS_NAME","DEFAULT_SPRITE_CLASS_ID_NAME","DEFAULT_FALLBACK_CLASS_NAMES","DEFAULT_REMOVESTYLES_CLASS_NAME","prototype","isLocal","location","protocol","hasSvgSupport","implementation","hasFeature","count","elements","evalScripts","pngFallback","onlyInjectVisiblePart","keepStylesClass","spriteClassName","spriteClassIdName","removeStylesClass","removeAllStyles","fallbackClassName","prefixStyleTags","spritesheetURL","prefixFragIdClass","forceFallbacks","querySelector","inject","onDoneCallback","eachCallback","undefined","length","elementsLoaded","ctx","call","element","injectElement","svg","el","onElementInjectedCallback","spriteId","imgUrl","getAttribute","setAttribute","imgUrlSplitByFId","split","push","fallbackUrl","test","perElementFallback","pop","replace","indexOf","getEnv","getConfig","symbolId","classNames","className","slice","curClassName","idx","fallbackClassNames","idxOfCurClass","curClassNames","classAttribute","curFallbackClassName","join","styleTag","suffix","name","numRefs","textContent","match","newName","definitions","defLen","defIdx","refrences","refLen","refIdx","attrs","attrLen","attrIdx","allLinks","allLinksLen","allLinksIdx","links","linkLen","linkIdx","defs","def","elem","querySelectorAll","id","getAttributeNS","toString","setAttributeNS","svgElemSource","svgElemTarget","attributesToIgnore","curAttr","i","attributes","item","value","svgSymbol","createElementNS","childNodes","child","appendChild","cloneNode","injectCount","regex","origPrefixClassName","newPrefixClassName","srcFileNameArr","regexSearchResult","selectorArr","srcArr","styleTagContent","newContent","prefixSelector","arr","RegExp","exec","trim","tmp","svgToCheck","curClassAttr","classes","curClass","sourceSvg","fragId","svgElem","newSVG","viewBox","viewBoxAttr","symbolAttributesToFind","curClassList","symobolList","setViewboxOnNewSVG","symbolElem","getElementById","SVGSymbolElement","SVGViewElement","selector","Math","abs","parseInt","x","y","SVGSVGElement","prop","removeAttribute","SVGUseElement","referencedSymbol","substr","fragIdClassName","fileName","callback","fragmentId","url","requestQueueElem","len","index","setTimeout","urlArr","fileUrl","pathArr","XMLHttpRequest","httpRequest","onreadystatechange","readyState","status","responseXML","statusText","Document","documentElement","DOMParser","Function","xmlDoc","parser","parseFromString","responseText","e","getElementsByTagName","open","overrideMimeType","send","css","head","style","createElement","type","styleSheet","cssText","createTextNode","noSVGClassName","titleId","descId","ariaHidden","children","curChildElem","SVGDefsElement","SVGTitleElement","SVGDescElement","classMerge","concat","script","scriptType","scripts","scriptsToEval","k","scriptsLen","innerText","removeChild","l","scriptsToEvalLen","styleTags","svgClassList","stylesUntouched","parentNode","replaceChild","list","hash","out","hasOwnProperty","unshift","obj","constructor","apply","Object","newClassNames","curClasses","Array","fn","scope","TypeError","addDefault","existingElem","elemId","firstChild","text","insertBefore","newElem","angular","module","provider","injectorOpts","set","opts","$get","factory","svgInjectorOptions","directive","svgInjectorFactory","cfg","restrict","link","$observe","dataSrc","src","exports","define","amd"],"mappings":";;;;;;;;;;;;CAaC,SAASA,EAAQC,GAChB,YAWA,IAAIC,GAAc,WAOhB,QAASA,GAAaC,GACpBD,EAAYE,kBACZC,KAAKC,KAAKH,GAIZ,GAQII,GACAC,EACAC,EACAC,EACAC,EACAC,EAIFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAvCEC,EAAS,6BACTC,EAAW,+BACXC,EAA4B,SAC5BC,EAA+BD,EAA4B,KAC3DE,GAAgCF,GAChCG,EAAkC,MAq/BtC,OA98BAhC,MAGAP,EAAYE,gBAAkB,EAW9BF,EAAYwC,UAAUpC,KAAO,SAASH,GACpCA,EAAUA,MACVI,KACAK,KACAA,EAAI+B,QAAuC,UAA7B3C,EAAO4C,SAASC,SAC9BjC,EAAIkC,cAAgB7C,EAAS8C,eAAeC,WAAW,oDAAqD,OAE5GxC,GACEyC,MAAO,EACPC,aAGFxC,KACAC,KAMAA,EAAOwC,YAAchD,EAAQgD,aAAe,SAG5CxC,EAAOyC,YAAcjD,EAAQiD,cAAe,EAK5CzC,EAAO0C,sBAAwBlD,EAAQkD,wBAAyB,EAEhE1C,EAAO2C,gBAAuD,mBAA5BnD,GAAQmD,gBACxC,GAAKnD,EAAQmD,gBAEf3C,EAAO4C,gBAAuD,mBAA5BpD,GAAQoD,gBACxCjB,EAA4BnC,EAAQoD,gBAEtC5C,EAAO6C,kBAA2D,mBAA9BrD,GAAQqD,kBAC1CjB,EAA+BpC,EAAQqD,kBAEzC7C,EAAO8C,kBAA0D,mBAA9BtD,GAAQsD,kBACzChB,EAAkCtC,EAAQsD,kBAE5C9C,EAAO+C,gBAAsD,mBAA5BvD,GAAQuD,iBAC/BvD,EAAQuD,gBAElB/C,EAAOgD,kBAA0D,mBAA9BxD,GAAQwD,kBACzCnB,EAA+BrC,EAAQwD,kBAEzChD,EAAOiD,gBAAuD,mBAA5BzD,GAAQyD,iBACjCzD,EAAQyD,gBAEjBjD,EAAOkD,eAAoD,mBAA3B1D,GAAQ0D,gBAA6D,KAA3B1D,EAAQ0D,gBACxE1D,EAAQ0D,eAElBlD,EAAOmD,kBAAoBnD,EAAO6C,kBAElC7C,EAAOoD,eAAoD,mBAA3B5D,GAAQ4D,gBAC9B5D,EAAQ4D,eAEfpD,EAAOoD,iBACRnD,EAAIkC,eAAgB,GAGtBnB,EAAkB1B,EAAS+D,cAAc,QAAS,SAAUpD,EAAIkC,eAE7DlC,EAAIkC,eAAsD,mBAA9B3C,GAAQsD,mBACrC/B,EAAkBf,EAAO8C,oBAU7BvD,EAAYwC,UAAUuB,OAAS,SAASf,EAAUgB,EAAgBC,GAChE,GAAwBC,SAApBlB,EAASmB,OAAsB,CACjC,GAAIC,GAAiB,EACjBC,EAAMlE,IACV4B,GAAQuC,KAAKtB,EAAU,SAAUuB,GAC/BF,EAAIG,cAAcD,EAAS,SAAUE,GAC/BR,GAAwC,kBAAjBA,IAA6BA,EAAaQ,GACjET,GAAkBhB,EAASmB,WAAaC,GAAgBJ,EAAeI,WAK3EpB,GACF7C,KAAKqE,cAAcxB,EAAU,SAAUyB,GACjCR,GAAwC,kBAAjBA,IAA6BA,EAAaQ,GACjET,GAAgBA,EAAe,GACnChB,EAAW,OAITgB,GAAgBA,EAAe,IAYzChE,EAAYwC,UAAUgC,cAAgB,SAAUE,EAAIC,GAClD,GACIC,GADAC,EAASH,EAAGI,aAAa,aAAeJ,EAAGI,aAAa,MAG5D,KAAKD,EAAQ,CACX,IAAIpE,EAAOkD,eAUT,MARA,IADAiB,EAAWzD,EAAqBuD,GACf,KAAbE,EAEF,MAEFC,GAASpE,EAAOkD,eAAiB,IAAMiB,EAQ3CF,EAAGK,aAAa,WAAYF,EAE5B,IAAIG,GAAmBH,EAAOI,MAAM,IACJ,KAA5BD,EAAiBb,QACnBa,EAAiBE,KAAK,GAGxB,IAAIC,EAGJ,KAAK,SAAWC,KAAKP,GAEnB,WADAF,GAA0B,wDAA0DE,EAKtF,KAAInE,EAAIkC,cAKH,CAKH,GAAIyC,GAAqBX,EAAGI,aAAa,kBAAoBJ,EAAGI,aAAa,WAsC7E,aAnCIO,GACFX,EAAGK,aAAa,MAAOM,GACvBV,EAA0B,OAGnBlE,EAAOyC,aAEV8B,EAAiBb,OAAS,GAAKa,EAAiB,IAClDG,EAAcH,EAAiB,GAAK,OAChCnD,EAAQpB,EAAOgD,mBACjB9C,EAAsB+D,EAAIM,EAAiB,GAAIvE,EAAOgD,mBAE/C7B,EAAWnB,EAAOgD,mBAEzBhD,EAAOgD,kBAAkBiB,EAAIM,EAAiB,IAEH,gBAA7BvE,GAAOgD,kBACrB3B,EAAoB4C,EAAIjE,EAAOgD,mBAG/BiB,EAAGK,aAAa,MAAOtE,EAAOyC,YAAc,IAAMiC,KAIpDA,EAAcN,EAAOI,MAAM,KAAKK,MAAMC,QAAQ,OAAQ,QACtDb,EAAGK,aAAa,MAAOtE,EAAOyC,YAAc,IAAMiC,IAGpDR,EAA0B,OAI1BA,EAA0B,uEA5CxB9C,EAAQpB,EAAOgD,oBACjB7C,EAAyB8D,EAAIM,EAAiB,GAAIvE,EAAOgD,mBAqDzDnD,EAAW0C,SAASwC,QAAQd,MAAQ,IAOxCpE,EAAW0C,SAASkC,KAAKR,GAMzBnD,EAAQoD,EAA2BE,EAAQH,KAI7C1E,EAAYwC,UAAUiD,OAAS,WAC7B,MAAO/E,IAGTV,EAAYwC,UAAUkD,UAAY,WAChC,MAAOjF,IAITE,EAAwB,SAAU4D,EAASoB,EAAUC,GACnD,GAAIC,GAAoC,mBAAfD,GAA8BtD,EAA+BsD,EAAWE,MAAM,EAGvG/D,GAAQuC,KACNuB,EACA,SAASE,EAAcC,GACrBH,EAAUG,GAAOD,EAAaR,QAAQ,KAAMI,KAIhD7D,EAAoByC,EAASsB,IAG/BjF,EAA2B,SAAU2D,EAASoB,EAAUM,GACtDA,EAAqD,mBAAvBA,GAAsC3D,EAA6BwD,MAAM,GAAKG,EAAmBH,MAAM,EAErI,IAAII,GACAC,EACAC,EAAiB7B,EAAQO,aAAa,QAEZ,oBAAnBsB,IAAqD,OAAnBA,IAI7CD,EAAgBC,EAAenB,MAAM,KACjCkB,IAEFpE,EAAQuC,KACN2B,EACA,SAASI,GACPA,EAAuBA,EAAqBd,QAAQ,KAAMI,GAC1DO,EAAgBC,EAAcX,QAAQa,GAClCH,GAAiB,IAEnBC,EAAcD,GAAiB,MAMrC3B,EAAQQ,aAAa,QAASpD,EAAcwE,EAAcG,KAAK,UAKnExF,EAA6B,SAAUyF,EAAUC,EAAQ/B,EAAKgC,GAQ5D,GAAIC,GAAU,CAMd,OALAH,GAASI,YAAcJ,EAASI,YAAYpB,QAAQ,8BAA+B,SAAUqB,GAG3F,MADAF,KACOE,EAAQ,IAAMJ,IAEhBE,GAGT7F,EAAqB,SAAU4D,EAAK+B,GAClC,GAWIK,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA1BAC,IACDC,IAAI,iBAAmBV,OAAQ,OAAQ,YACvCU,IAAI,iBAAmBV,OAAQ,OAAQ,YACvCU,IAAI,WAAmBV,OAAQ,eAC/BU,IAAI,OAAmBV,OAAQ,UAC/BU,IAAI,SAAmBV,OAAQ,YAC/BU,IAAI,gBAAmBV,OAAQ,mBAC/BU,IAAI,SAAmBV,OAAQ,YAC/BU,IAAI,SAAmBV,OAAQ,SAAU,eAAgB,aAAc,eAqB1ErF,GAAQuC,KAAKuD,EAAM,SAASE,GAG1B,IADAjB,EAAcrC,EAAIuD,iBAAiBD,EAAKD,IAAM,QACzCd,EAAS,EAAGD,EAASD,EAAY3C,OAAQ6C,EAASD,EAAQC,IAAU,CAIvE,IAHAH,EAAUC,EAAYE,GAAQiB,GAAK,IAAMzB,EAEzCY,EAAQW,EAAKX,MACRE,EAAU,EAAGD,EAAUD,EAAMjD,OAAQmD,EAAUD,EAASC,IAK3D,IADAL,EAAYxC,EAAIuD,iBAAiB,IAAMZ,EAAME,GAAW,UAAYR,EAAYE,GAAQiB,GAAK,OACxFd,EAAS,EAAGD,EAASD,EAAU9C,OAAQgD,EAASD,EAAQC,IAE3DF,EAAUE,GAAQpC,aAAaqC,EAAME,GAAU,QAAUT,EAAU,IAQvE,KAFAU,EAAW9C,EAAIuD,iBAAiB,YAChCN,KACKD,EAAc,EAAGD,EAAcD,EAASpD,OAAQsD,EAAcD,EAAaC,IAC1EF,EAASE,GAAaS,eAAe/F,EAAU,QAAQgG,aAAe,IAAMrB,EAAYE,GAAQiB,IAClGP,EAAMxC,KAAKqC,EAASE,GAIxB,KAAKG,EAAU,EAAGD,EAAUD,EAAMvD,OAAQyD,EAAUD,EAASC,IAC3DF,EAAME,GAASQ,eAAejG,EAAU,OAAQ,IAAM0E,EAGxDC,GAAYE,GAAQiB,GAAKpB,MAK/B9F,EAAiB,SAAUsH,EAAeC,EAAeC,GACvD,GAAIC,EAC8B,oBAAvBD,KAAsCA,GAAsB,KAAM,WAE7E,KAAI,GAAIE,GAAE,EAAGA,EAAEJ,EAAcK,WAAWvE,OAAQsE,IAC9CD,EAAUH,EAAcK,WAAWC,KAAKF,GACpCF,EAAmB/C,QAAQgD,EAAQ/B,MAAQ,GAC7C6B,EAAcvD,aAAayD,EAAQ/B,KAAM+B,EAAQI,QAKvD5H,EAAmB,SAAU6H,GAC3B,GAAIpE,GAAM1E,EAAS+I,gBAAgB5G,EAAQ,MAO3C,OANAH,GAAQuC,KAAKuE,EAAUE,WAAY,SAASC,GAE1CvE,EAAIwE,YAAYD,EAAME,WAAU,MAGlCnI,EAAe8H,EAAWpE,GACnBA,GAKTxD,EAAoB,SAAUsF,EAAU4C,EAAa1E,GACnD,GACI2E,GACAC,EACAC,EACAC,EACAC,EAGAC,EARAC,EAASjF,EAAIK,aAAa,YAAYG,MAAM,KAM5C0E,EAAkBpD,EAASI,YAC3BiD,EAAa,GAEbC,EAAiB,SAAS9B,EAAM/B,EAAK8D,GACnCA,EAAI9D,GAAO,IAAMsD,EAAqB,IAAMvB,EAIlD,IAAG2B,EAAOvF,OAAS,EACjBkF,EAAsBK,EAAO,GAC7BJ,EAAqBD,EAAsB,IAAMF,EACjDC,EAAQ,GAAIW,QAAO,MAAQV,EAAsB,IAAK,KACtD9C,EAASI,YAAcgD,EAAgBpE,QAAQ6D,EAAO,IAAME,EAAqB,SAE9E,CAOH,IANAC,EAAiBG,EAAO,GAAGzE,MAAM,KACjCqE,EAAqBC,EAAeA,EAAepF,OAAO,GAAGoB,QAAQ,OAAQ,IAAM,IAAM4D,EAGzFC,EAAQ,GAAIW,QAAO,6BAA8B,KAEY,QAArDP,EAAoBJ,EAAMY,KAAKL,KAA4B,CACjEF,EAAcD,EAAkB,GAAGS,OAAOhF,MAAM,MAChDwE,EAAY1H,QAAQ8H,EAEpB,IAAIK,GAAOT,EAAYnD,KAAK,MAAQ,IAAMkD,EAAkB,GAAK,KACjEI,IAAcM,EAEhB3D,EAASI,YAAciD,EAGzBnF,EAAIM,aAAa,QAAUN,EAAIK,aAAa,SAAW,IAAMwE,IAG/DpI,EAAe,SAAUiJ,GACvB,GAAIC,GAAeD,EAAWrF,aAAa,QAC3C,OAAO,GAAiBsF,EAAaH,OAAOhF,MAAM,SAGpD9D,EAAuB,SAAUoD,GAC/B,GAAI8F,GAAUnJ,EAAaqD,GACvB0D,EAAK,EAOT,OANAlG,GAAQuC,KAAK+F,EAAS,SAAUC,GAC3BA,EAAS9E,QAAQ/E,EAAO6C,oBAAsB,IAC/C2E,EAAKqC,EAAS/E,QAAQ9E,EAAO6C,kBAAmB,OAI7C2E,GAGT7G,EAAW,SAAUX,EAAQ8J,EAAWC,GAEtC,GAAIC,GACFC,EACAC,EACAC,EACAC,EACAC,EAGAC,EAFAC,GAAqB,EACrBC,EAAa,IAGf,IAAc/G,SAAXsG,EACD,MAAOD,GAAUrB,WAAU,EAI3B,IADAuB,EAAUF,EAAUW,eAAeV,GACnC,CAQA,GAHAI,EAAcH,EAAQ3F,aAAa,WACnC6F,EAAUC,EAAY3F,MAAM,KAExBwF,YAAmBU,kBAErBT,EAAS1J,EAAiByJ,GAC1BO,GAAqB,MAGlB,IAAIP,YAAmBW,gBAAgB,CAE1C,GADAH,EAAa,KACTxK,EAAO0C,sBAAuB,CAChC,GAAIkI,GAAW,YAAcV,EAAQ,GAAK,cAAgBA,EAAQ,GAAK,IAEvEE,MACuC,IAAnCS,KAAKC,IAAIC,SAASb,EAAQ,KAC5BU,GAAY,aAGZR,EAAuBY,EAAId,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAGG,IAAnCW,KAAKC,IAAIC,SAASb,EAAQ,KAC5BU,GAAY,aAGZR,EAAuBa,EAAIf,EAAQ,GACnCU,GAAY,OAASV,EAAQ,GAAK,MAEpCI,EAAcR,EAAUvC,iBAAiBqD,GACrCN,EAAY5G,OAAS,EAGzB8G,EAAaF,EAAY,GAE3B,GAAIE,GAAeA,YAAsBU,eAAgB,CACvDjB,EAASO,EAAW/B,WAAU,EAE9B,KAAK,GAAI0C,KAAQf,GACF,UAATe,GAA6B,WAATA,GACtBlB,EAAOmB,gBAAgBD,OAIxB,IAAGX,GAAeA,YAAsBa,eAAgB,CAE3D,GAAIC,GAAmBxB,EAAUW,eAC/BD,EAAW/C,eAAe/F,EAAU,QAAQ6J,OAAO,GAErDtB,GAAS1J,EAAiB+K,GAC1BnB,EAAcmB,EAAiBjH,aAAa,WAC5C6F,EAAUC,EAAY3F,MAAM,KAC5B+F,GAAqB,MAMrBA,IAAqB,EACrBN,EAASH,EAAUrB,WAAU,GAK7B8B,IACFN,EAAO3F,aAAa,UAAW4F,EAAQrE,KAAK,MAC5CoE,EAAO3F,aAAa,QAAS4F,EAAQ,GAAG,MACxCD,EAAO3F,aAAa,SAAU4F,EAAQ,GAAG,OAE3CD,EAAO3F,aAAa,QAAS7C,GAC7BwI,EAAO3F,aAAa,cAAe5C,GAEnC2I,EAAe5J,EAAawJ,EAC5B,IAAIuB,GAAkBxL,EAAOmD,kBAAoB4G,CAKjD,OAJIM,GAAatF,QAAQyG,GAAiB,IACxCnB,EAAa5F,KAAK+G,GAClBvB,EAAO3F,aAAa,QAAS+F,EAAaxE,KAAK,OAE1CoE,IAMXrJ,EAAe,SAAU6K,EAAU1B,EAAQ2B,EAAUzH,GACnDnE,EAAa2L,GAAY3L,EAAa2L,OACtC3L,EAAa2L,GAAUhH,MAAMiH,SAASA,EAAUC,WAAW5B,EAAQjG,QAAQG,EAAI+B,KAAMA,QAGvFnF,EAAsB,SAAU+K,GAE9B,IAAK,GADDC,GACK7D,EAAI,EAAG8D,EAAMhM,EAAa8L,GAAKlI,OAAQsE,EAAI8D,EAAK9D,KAGvD,SAAW+D,GACTC,WAAW,WACTH,EAAmB/L,EAAa8L,GAAKG,GACrC9K,EAAU2K,EAAKC,EAAiBF,WAAYE,EAAiBH,SAAUG,EAAiB/H,QAAS+H,EAAiB7F,OACjH,IACFgC,IAKPlH,EAAU,SAAUoD,EAA2B0H,EAAK3H,GAClD,GAAIgI,GAAQC,EAASnC,EAAQ/D,EAAMmG,CAYnC,IATAF,EAASL,EAAIpH,MAAM,KACnB0H,EAAUD,EAAO,GACjBlC,EAA4B,IAAlBkC,EAAOvI,OAAgBuI,EAAO,GAAKxI,OAEvB,mBAAXsG,KACToC,EAAUD,EAAQ1H,MAAM,KACxBwB,EAAOmG,EAAQA,EAAQzI,OAAO,GAAGoB,QAAQ,OAAQ,KAGzBrB,SAAtB7D,EAASsM,GACPtM,EAASsM,YAAoBhB,eAG/BjK,EAAUiL,EAASnC,EAAQ7F,EAA2BD,EAAI+B,GAK1DpF,EAAasL,EAASnC,EAAQ7F,EAA2BD,EAAI+B,OAG5D,CAEH,IAAK3G,EAAO+M,eAEV,MADAlI,GAA0B,4CACnB,CAITtE,GAASsM,MACTtL,EAAasL,EAASnC,EAAQ7F,EAA2BD,EAAI+B,EAE7D,IAAIqG,GAAc,GAAID,eAEtBC,GAAYC,mBAAqB,WAE/B,GAA+B,IAA3BD,EAAYE,WAAkB,CAGhC,GAA2B,MAAvBF,EAAYG,QAA8C,OAA5BH,EAAYI,YAS5C,MARAvI,GAA0B,4BAA8BgI,IAQjD,CAIT,MAA2B,MAAvBG,EAAYG,QAAmBvM,EAAI+B,SAAkC,IAAvBqK,EAAYG,QAuC5D,MADAtI,GAA0B,0CAA4CmI,EAAYG,OAAS,IAAMH,EAAYK,aACtG,CArCP,IAAIL,EAAYI,sBAAuBE,UAErC/M,EAASsM,GAAWG,EAAYI,YAAYG,oBAUzC,IAAIC,WAAcA,oBAAqBC,UAAW,CACrD,GAAIC,EACJ,KACE,GAAIC,GAAS,GAAIH,UACjBE,GAASC,EAAOC,gBAAgBZ,EAAYa,aAAc,YAE5D,MAAOC,GACLJ,EAAStJ,OAGX,IAAKsJ,GAAUA,EAAOK,qBAAqB,eAAe1J,OAExD,MADAQ,GAA0B,6BAA+B0H,IAClD,CAIPhM,GAASsM,GAAWa,EAAOH,gBAK/B/L,EAAoBqL,KAS1BG,EAAYgB,KAAK,MAAOnB,GAIpBG,EAAYiB,kBAAkBjB,EAAYiB,iBAAiB,YAE/DjB,EAAYkB,SAIhBxM,EAAoB,SAAS+B,GAC3B,GAAI0K,GAAM,OAAS1K,EAAoB,yBACrC2K,EAAOnO,EAASmO,MAAQnO,EAAS8N,qBAAqB,QAAQ,GAC9DM,EAAQpO,EAASqO,cAAc,QAEjCD,GAAME,KAAO,WACTF,EAAMG,WACRH,EAAMG,WAAWC,QAAUN,EAG3BE,EAAMlF,YAAYlJ,EAASyO,eAAeP,IAE5CC,EAAKjF,YAAYkF,IAInB1M,EAAoB,SAAS8C,EAASkK,EAAgB7L,GACjDA,EACD2B,EAAQsB,UAAUN,QAAQkJ,EAAgB,IAG1ClK,EAAQsB,WAAa,IAAM4I,GAK/B/M,EAAY,SAAS2K,EAAKD,EAAYzH,EAA2BD,EAAI+B,GAEnE,GAAIhC,GAEAiK,EACAC,EACAC,CAGJ,IADAnK,EAAMrD,EAASX,EAAQJ,EAASgM,GAAMD,GACnB,mBAAR3H,IAAsC,gBAARA,GAEvC,MADAE,GAA0BF,IACnB,CAITA,GAAIM,aAAa,OAAQ,OACzBhD,EAAQuC,KAAKG,EAAIoK,aAAgB,SAAUC,GAErCA,YAAwBC,iBACxBD,YAAwBE,kBACxBF,YAAwBG,iBAE1BH,EAAa/J,aAAa,OAAQ,kBAMtC6J,EAAalK,EAAGI,aAAa,gBAAkBL,EAAIK,aAAa,eAGhE6J,EAAS3M,EAAiB,OAAQyC,EAAKC,EAAI0H,EAAY3F,GAAOmI,GAC9DF,EAAU1M,EAAiB,QAASyC,EAAKC,EAAI0H,EAAY3F,GAAOmI,GAC5DA,EACFnK,EAAIM,aAAa,cAAe,QAEhCN,EAAIM,aAAa,kBAAmB2J,EAAU,IAAMC,GAItD5N,EAAe2D,EAAID,GAAM,SAIzB,IAAIyK,MAAgBC,OAAO1K,EAAIK,aAAa,aAAgB,eAAgBJ,EAAGI,aAAa,cAAgBwB,KAAK,IACjH7B,GAAIM,aAAa,QAASpD,EAAcuN,IAOxCrO,EAAmB4D,EAAKnE,EAAWyC,MAAO0D,GAI1ChC,EAAIoH,gBAAgB,UAUpB,KAAK,GAFDuD,GAAQC,EAFRC,EAAU7K,EAAIuD,iBAAiB,UAC/BuH,KAGKC,EAAI,EAAGC,EAAaH,EAAQnL,OAAQqL,EAAIC,EAAYD,IAC3DH,EAAaC,EAAQE,GAAG1K,aAAa,QAIhCuK,GAA6B,2BAAfA,GAA0D,2BAAfA,IAG5DD,EAASE,EAAQE,GAAGE,WAAaJ,EAAQE,GAAG7I,YAG5C4I,EAAcrK,KAAKkK,GAGnB3K,EAAIkL,YAAYL,EAAQE,IAK5B,IAAID,EAAcpL,OAAS,IAA6B,WAAvB1D,EAAOwC,aAAoD,SAAvBxC,EAAOwC,cAA4BzC,EAAW6L,IAAQ,CACzH,IAAK,GAAIuD,GAAI,EAAGC,EAAmBN,EAAcpL,OAAQyL,EAAIC,EAAkBD,IAQ7E,GAAIrC,UAASgC,EAAcK,IAAI9P,EAIjCU,GAAW6L,IAAO,EAIpB,GAAIyD,GAAYrL,EAAIuD,iBAAiB,QAErCjG,GAAQuC,KAAKwL,EAAW,SAAUvJ,GAChC,GAAIwJ,GAAe7O,EAAauD,GAC9BuL,GAAkB,GACfD,EAAavK,QAAQ/E,EAAO8C,oBAAoB,GAAK9C,EAAO+C,kBAAqBuM,EAAavK,QAAQ/E,EAAO2C,iBAAiB,EAIjImD,EAAS0J,WAAWN,YAAYpJ,IAI5BzF,EAA2ByF,EAAUjG,EAAWyC,MAAO0B,EAAKgC,GAAQ,IACtEuJ,GAAkB,GAGhBvP,EAAOiD,kBACTzC,EAAkBsF,EAAUjG,EAAWyC,MAAO0B,EAAKgC,GACnDuJ,GAAkB,GAGhBA,IAMFzJ,EAASI,aAAe,OAQ9BjC,EAAGuL,WAAWC,aAAazL,EAAKC,SAIzBpE,GAAW0C,SAAS1C,EAAW0C,SAASwC,QAAQd,IAIvDpE,EAAWyC,QAEX4B,EAA0BF,IAY5B9C,EAAgB,SAASwO,GACvBA,EAAOA,EAAKlL,MAAM,IAMlB,KAJA,GAAImL,MACA3H,EAAI0H,EAAKhM,OACTkM,KAEG5H,KACA2H,EAAKE,eAAeH,EAAK1H,MAC5B2H,EAAKD,EAAK1H,IAAM,EAChB4H,EAAIE,QAAQJ,EAAK1H,IAGrB,OAAO4H,GAAI/J,KAAK,MAGlB1E,EAAa,SAAS4O,GACpB,SAAUA,GAAOA,EAAIC,aAAeD,EAAIlM,MAAQkM,EAAIE,QAGtD7O,EAAU,SAAS2O,GACjB,MAA+C,mBAAxCG,OAAOnO,UAAU2F,SAAS7D,KAAKkM,IAGxC1O,EAAsB,SAAS4C,EAAIkM,GACjC,GAAIC,GAAanM,EAAGI,aAAa,QACjC+L,GAAaA,EAAaA,EAAa,GAEpChP,EAAQ+O,KACTA,EAAgBA,EAActK,KAAK,MAGrCsK,EAAgBC,EAAa,IAAMD,EAEnClM,EAAGK,aAAa,QAASpD,EAAciP,KAOzC7O,EAAU+O,MAAMtO,UAAUT,SAAW,SAAUgP,EAAIC,GACjD,GAAa,SAAT7Q,MAA4B,OAATA,MAA+B,kBAAP4Q,GAC7C,KAAM,IAAIE,UAIZ,IAAIxI,GAAG8D,EAAMpM,KAAKgE,SAAW,CAG7B,KAAKsE,EAAI,EAAGA,EAAI8D,IAAO9D,EACjBA,IAAKtI,OACP4Q,EAAGzM,KAAK0M,EAAO7Q,KAAKsI,GAAIA,EAAGtI,OAKjC6B,EAAmB,SAAUqM,EAAM5J,EAAKC,EAAI0H,EAAY8E,GACtD,GAEEC,GADAC,EAAShF,EAAaA,EAAa,IAAM,EAsB3C,OAnBAgF,IAAU/C,EAAO,IAAM/N,EAAWyC,MAElCoO,EAAezM,EAAGZ,cAAcuK,GAC5B8C,EACFlP,EAAiBoM,EAAM5J,EAAK0M,EAAaxK,YAAayK,EAAQ3M,EAAI4M,aAElEF,EAAe1M,EAAIX,cAAcuK,GAC7B8C,EACFA,EAAapM,aAAa,KAAMqM,GAG5BF,EAEFjP,EAAiBoM,EAAM5J,EAAK2H,EAAYgF,EAAQ3M,EAAI4M,YAEpDD,EAAS,IAIRA,GAGTnP,EAAmB,SAAUoM,EAAM5J,EAAK6M,EAAMrJ,EAAIsJ,GAChD,GAAIC,GACAL,EAAe1M,EAAIX,cAAcuK,EAYrC,OAVI8C,IACFA,EAAalB,WAAWN,YAAYwB,GAGtCK,EAAUzR,EAAS+I,gBAAgB5G,EAAQmM,GAC3CmD,EAAQvI,YAAYlJ,EAASyO,eAAe8C,IAC5CE,EAAQzM,aAAa,KAAMkD,GAE3BxD,EAAI8M,aAAaC,EAASD,GAEnBC,GAGFxR,IAGc,iBAAZyR,SAETA,QACGC,OAAO,kBACPC,SAAS,qBAAsB,WAC9B,GAAIC,KACJ,QACEC,IAAK,SAAUC,GACbF,EAAeE,GAEjBC,KAAM,WACJ,MAAOH,OAIZI,QAAQ,sBAAuB,qBAAsB,SAAUC,GAC9D,MAAO,IAAIjS,GAAYiS,MAExBC,UAAU,OAAQ,qBAAsB,SAASC,GAChD,GAAIC,GAAMD,EAAmBzM,WAC7B,QACE2M,SAAU,IACVC,KAAM,SAAUtB,EAAOzM,EAAS6C,GAE1BA,EAAa,OAAKA,EAAa,MAAE5B,QAAQ4M,EAAI9O,oBAAsB,EACrE8D,EAAMmL,SAAS,QAAS,WACtBJ,EAAmBpO,OAAOQ,EAAQ,OAE3B6C,EAAMoL,SAAWpL,EAAMqL,MAGhCN,EAAmBpO,OAAOQ,EAAQ,SAatB,gBAAXmN,SAAiD,gBAAnBA,QAAOgB,QAC9ChB,OAAOgB,QAAU1S,EAGQ,kBAAX2S,SAAyBA,OAAOC,IAC9CD,OAAO,WACL,MAAO3S,KAIgB,gBAAXF,KACdA,EAAOE,YAAcA,IAGzBF,OAAQC","file":"./dist/svg-injector.min.js","sourcesContent":["/**\n * SVGInjector v2.0.26 - Fast, caching, dynamic inline SVG DOM injection library\n * https://github.com/flobacher/SVGInjector2\n * forked from:\n * https://github.com/iconic/SVGInjector\n *\n * Copyright (c) 2015 flobacher \n * @license MIT\n *\n * original Copyright (c) 2014 Waybury \n * @license MIT\n */\n\n(function(window, document) {\n 'use strict';\n /**\n * SVGInjector\n *\n * Replace the given elements with their full inline SVG DOM elements.\n *\n * :NOTE: We are using get/setAttribute with SVG because the SVG DOM spec differs from HTML DOM and\n * can return other unexpected object types when trying to directly access svg properties.\n * ex: \"className\" returns a SVGAnimatedString with the class value found in the \"baseVal\" property,\n * instead of simple string like with HTML Elements.\n */\n var SVGInjector = (function () {\n\n\n /**\n * Constructor Function\n * @param {object} options\n */\n function SVGInjector (options) {\n SVGInjector.instanceCounter++;\n this.init(options);\n }\n\n // - private constants -----------------------------------------\n var SVG_NS = 'http://www.w3.org/2000/svg';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var DEFAULT_SPRITE_CLASS_NAME = 'sprite';\n var DEFAULT_SPRITE_CLASS_ID_NAME = DEFAULT_SPRITE_CLASS_NAME + '--';\n var DEFAULT_FALLBACK_CLASS_NAMES = [DEFAULT_SPRITE_CLASS_NAME];\n var DEFAULT_REMOVESTYLES_CLASS_NAME = 'icon';\n\n // - private member vars ---------------------------------------\n var svgCache;\n var injections;\n var requestQueue;\n var ranScripts;\n var config;\n var env;\n\n // - private member funcs --------------------------------------\n var\n setFallbackClassNames,\n removeFallbackClassNames,\n suffixIdReferences,\n suffixIdReferencesInStyles,\n copyAttributes,\n cloneSymbolAsSVG,\n doPrefixStyleTags,\n getClassList,\n getSpriteIdFromClass,\n cloneSvg,\n queueRequest,\n processRequestQueue,\n loadSvg,\n writeDefaultClass,\n replaceNoSVGClass,\n onLoadSVG,\n uniqueClasses,\n isFunction,\n isArray,\n svgElemSetClassName,\n forEach,\n setRootLevelElem,\n addRootLevelElem\n ;\n\n\n\n requestQueue = [];\n\n // - static vars -----------------------------------------------\n SVGInjector.instanceCounter = 0;\n\n // - public member vars ----------------------------------------\n //SVGInjector.prototype.varName = {};\n\n\n\n // - public member functions ---------------------------------------\n /**\n * @param {object} options\n */\n SVGInjector.prototype.init = function(options) {\n options = options || {};\n svgCache = {};\n env = {};\n env.isLocal = window.location.protocol === 'file:';\n env.hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n\n injections = {\n count: 0,\n elements: []\n };\n\n ranScripts = {};\n config = {};\n\n // Should we run the scripts blocks found in the SVG\n // 'always' - Run them every time\n // 'once' - Only run scripts once for each SVG\n // [false|'never'] - Ignore scripts\n config.evalScripts = options.evalScripts || 'always';\n\n // Location of fallback pngs, if desired\n config.pngFallback = options.pngFallback || false;\n\n // Only inject the part of the svg, that is specified\n // as visible through the id of an SVGViewElement\n // is default mode\n config.onlyInjectVisiblePart = options.onlyInjectVisiblePart || true;\n\n config.keepStylesClass = (typeof options.keepStylesClass === 'undefined') ?\n '' : options.keepStylesClass;\n\n config.spriteClassName = (typeof options.spriteClassName === 'undefined') ?\n DEFAULT_SPRITE_CLASS_NAME : options.spriteClassName;\n\n config.spriteClassIdName = (typeof options.spriteClassIdName === 'undefined') ?\n DEFAULT_SPRITE_CLASS_ID_NAME : options.spriteClassIdName;\n\n config.removeStylesClass = (typeof options.removeStylesClass === 'undefined') ?\n DEFAULT_REMOVESTYLES_CLASS_NAME : options.removeStylesClass;\n\n config.removeAllStyles = (typeof options.removeAllStyles === 'undefined') ?\n false : options.removeAllStyles;\n\n config.fallbackClassName = (typeof options.fallbackClassName === 'undefined') ?\n DEFAULT_FALLBACK_CLASS_NAMES : options.fallbackClassName;\n\n config.prefixStyleTags = (typeof options.prefixStyleTags === 'undefined') ?\n true : options.prefixStyleTags;\n\n config.spritesheetURL = (typeof options.spritesheetURL === 'undefined' || options.spritesheetURL === '') ?\n false : options.spritesheetURL;\n\n config.prefixFragIdClass = config.spriteClassIdName;\n\n config.forceFallbacks = (typeof options.forceFallbacks === 'undefined') ?\n false : options.forceFallbacks;\n\n if(config.forceFallbacks){\n env.hasSvgSupport = false;\n }\n\n replaceNoSVGClass(document.querySelector('html'), 'no-svg', env.hasSvgSupport);\n\n if(env.hasSvgSupport && typeof options.removeStylesClass === 'undefined' ){ // user does not want to use his own custom class -> write this style tag\n writeDefaultClass(config.removeStylesClass);\n }\n };\n\n /**\n * Inject 1+ elements\n * @param {elements} Array of or single DOM element\n * @param {function} onDoneCallback\n * @param {function} eachCallback\n */\n SVGInjector.prototype.inject = function(elements, onDoneCallback, eachCallback) {\n if (elements.length !== undefined) {\n var elementsLoaded = 0;\n var ctx = this;\n forEach.call(elements, function (element) {\n ctx.injectElement(element, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (onDoneCallback && elements.length === ++elementsLoaded) onDoneCallback(elementsLoaded);\n });\n });\n }\n else {\n if (elements) {\n this.injectElement(elements, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (onDoneCallback) onDoneCallback(1);\n elements = null;\n });\n }\n else {\n if (onDoneCallback) onDoneCallback(0);\n }\n }\n };\n\n\n /**\n * Inject a single element\n * @param {elements} Array of or single DOM element\n * @param {function} onDoneCallback\n * @param {function} eachCallback\n */\n SVGInjector.prototype.injectElement = function (el, onElementInjectedCallback) {\n var imgUrl = el.getAttribute('data-src') || el.getAttribute('src'),\n spriteId;\n\n if (!imgUrl) {\n if (config.spritesheetURL) {\n spriteId = getSpriteIdFromClass(el);\n if (spriteId === '') {\n // console.warn('neither data-src nor spriteId class found! Nothing to inject here!');\n return;\n }\n imgUrl = config.spritesheetURL + '#' + spriteId;\n // console.log('imgURL: ' + imgUrl);\n } else {\n // console.warn('neither data-src nor spritesheetURL specified! Nothing to inject here!');\n return;\n }\n }\n\n el.setAttribute('data-src', imgUrl);\n\n var imgUrlSplitByFId = imgUrl.split('#');\n if (imgUrlSplitByFId.length === 1) {\n imgUrlSplitByFId.push('');\n }\n\n var fallbackUrl;\n\n // We can only inject SVG\n if (!(/\\.svg/i).test(imgUrl)) {\n onElementInjectedCallback('Attempted to inject a file with a non-svg extension: ' + imgUrl);\n return;\n }\n\n\n if (env.hasSvgSupport) {\n if (isArray(config.fallbackClassName)) {\n removeFallbackClassNames(el, imgUrlSplitByFId[1], config.fallbackClassName);\n }\n }\n else {\n // If we don't have SVG support try to fall back to a png,\n // either defined per-element via data-fallback or data-png,\n // or globally via the pngFallback directory setting\n\n var perElementFallback = el.getAttribute('data-fallback') || el.getAttribute('data-png');\n\n // Per-element specific PNG fallback defined, so use that\n if (perElementFallback) {\n el.setAttribute('src', perElementFallback);\n onElementInjectedCallback(null);\n }\n // Global PNG fallback directory defined, use the same-named PNG\n else if (config.pngFallback) {\n\n if (imgUrlSplitByFId.length > 1 && imgUrlSplitByFId[1]) {\n fallbackUrl = imgUrlSplitByFId[1] + '.png';\n if (isArray(config.fallbackClassName)) {\n setFallbackClassNames(el, imgUrlSplitByFId[1], config.fallbackClassName);\n }\n else if (isFunction(config.fallbackClassName)) {\n // console.info('custom function to create fallbackClassName');\n config.fallbackClassName(el, imgUrlSplitByFId[1]);\n }\n else if (typeof config.fallbackClassName === 'string') {\n svgElemSetClassName(el, config.fallbackClassName);\n }\n else {\n el.setAttribute('src', config.pngFallback + '/' + fallbackUrl);\n }\n }\n else {\n fallbackUrl = imgUrl.split('/').pop().replace('.svg', '.png');\n el.setAttribute('src', config.pngFallback + '/' + fallbackUrl);\n }\n\n onElementInjectedCallback(null);\n }\n // um...\n else {\n onElementInjectedCallback('This browser does not support SVG and no PNG fallback was defined.');\n }\n\n return;\n }\n\n // Make sure we aren't already in the process of injecting this element to\n // avoid a race condition if multiple injections for the same element are run.\n // :NOTE: Using indexOf() only _after_ we check for SVG support and bail,\n // so no need for IE8 indexOf() polyfill\n if (injections.elements.indexOf(el) !== -1) {\n console.warn('race', el);\n return;\n }\n\n // Remember the request to inject this element, in case other injection\n // calls are also trying to replace this element before we finish\n injections.elements.push(el);\n\n // Try to avoid loading the orginal image src if possible.\n // el.setAttribute('src', '');\n\n // Load it up\n loadSvg(onElementInjectedCallback, imgUrl, el);\n\n };\n\n SVGInjector.prototype.getEnv = function() {\n return env;\n };\n\n SVGInjector.prototype.getConfig = function() {\n return config;\n };\n\n // - private member functions -----------------------------------------------\n setFallbackClassNames = function (element, symbolId, classNames) {\n var className = (typeof classNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES : classNames.slice(0);\n\n // replace %s by symbolId\n forEach.call(\n className,\n function(curClassName, idx) {\n className[idx] = curClassName.replace('%s', symbolId);\n }\n );\n\n svgElemSetClassName(element, className);\n };\n\n removeFallbackClassNames = function (element, symbolId, fallbackClassNames) {\n fallbackClassNames = (typeof fallbackClassNames === 'undefined') ? DEFAULT_FALLBACK_CLASS_NAMES.slice(0) : fallbackClassNames.slice(0);\n\n var idxOfCurClass,\n curClassNames,\n classAttribute = element.getAttribute('class');\n\n if (typeof classAttribute === 'undefined' || classAttribute === null) {\n return;\n }\n\n curClassNames = classAttribute.split(' ');\n if (curClassNames) {\n // replace %s by symbolId\n forEach.call(\n fallbackClassNames,\n function(curFallbackClassName) {\n curFallbackClassName = curFallbackClassName.replace('%s', symbolId);\n idxOfCurClass = curClassNames.indexOf(curFallbackClassName);\n if( idxOfCurClass >= 0 ){\n // console.log('remove class ' + curClassName);\n curClassNames[idxOfCurClass] = '';\n }\n\n }\n );\n\n element.setAttribute('class', uniqueClasses(curClassNames.join(' ')));\n }\n\n };\n\n suffixIdReferencesInStyles = function (styleTag, suffix, svg, name) {\n //var referencedIds = styleTag.textContent.match(/url\\(('|\")*#.+('|\")*\\)/g) || [];\n /*referencedIds.forEach(function (elem, idx, arr) {\n //elem = elem.replace(/url\\(('|\")*#/g, '');\n arr[idx] = elem.replace(/\\)/g, '-' + suffix + ')');\n console.log('style', arr[idx]);\n });\n */\n var numRefs = 0;\n styleTag.textContent = styleTag.textContent.replace(/url\\(('|\")*#.+('|\")*(?=\\))/g, function (match) {\n //console.log('match', match + '-' + suffix);\n numRefs++;\n return match + '-' + suffix;\n });\n return numRefs;\n };\n\n suffixIdReferences = function (svg, suffix) {\n var defs = [\n {def:'linearGradient', attrs: ['fill', 'stroke']},\n {def:'radialGradient', attrs: ['fill', 'stroke']},\n {def:'clipPath', attrs: ['clip-path']},\n {def:'mask', attrs: ['mask']},\n {def:'filter', attrs: ['filter']},\n {def:'color-profile', attrs: ['color-profile']},\n {def:'cursor', attrs: ['cursor']},\n {def:'marker', attrs: ['marker', 'marker-start', 'marker-mid', 'marker-end']}\n ];\n\n var newName,\n definitions,\n defLen,\n defIdx,\n refrences,\n refLen,\n refIdx,\n attrs,\n attrLen,\n attrIdx,\n allLinks,\n allLinksLen,\n allLinksIdx,\n links,\n linkLen,\n linkIdx\n ;\n\n forEach.call(defs, function(elem) {\n\n definitions = svg.querySelectorAll(elem.def + '[id]');\n for (defIdx = 0, defLen = definitions.length; defIdx < defLen; defIdx++) {\n newName = definitions[defIdx].id + '-' + suffix;\n\n attrs = elem.attrs;\n for (attrIdx = 0, attrLen = attrs.length; attrIdx < attrLen; attrIdx++) {\n\n // console.log('suffixxed ' + attribute + ': ' + newName);\n // :NOTE: using a substring match attr selector here to deal with IE \"adding extra quotes in url() attrs\"\n refrences = svg.querySelectorAll('[' + attrs[attrIdx] + '=\"url(#' + definitions[defIdx].id + ')\"]');\n for (refIdx = 0, refLen = refrences.length; refIdx < refLen; refIdx++) {\n // console.log('set url', newName);\n refrences[refIdx].setAttribute(attrs[attrIdx], 'url(#' + newName + ')');\n }\n }\n\n // handle xlink:refrences\n // :NOTE: IE does not like the easy way: links = svg.querySelectorAll('[*|href=\"#' + definitions[defIdx].id + '\"]');\n allLinks = svg.querySelectorAll('[*|href]');\n links = [];\n for (allLinksIdx = 0, allLinksLen = allLinks.length; allLinksIdx < allLinksLen; allLinksIdx++) {\n if (allLinks[allLinksIdx].getAttributeNS(XLINK_NS, 'href').toString() === '#' + definitions[defIdx].id ) {\n links.push(allLinks[allLinksIdx]);\n }\n }\n\n for (linkIdx = 0, linkLen = links.length; linkIdx < linkLen; linkIdx++) {\n links[linkIdx].setAttributeNS(XLINK_NS, 'href', '#' + newName);\n // console.log('set link', newName, links[linkIdx]);\n }\n definitions[defIdx].id = newName;\n }\n });\n };\n\n copyAttributes = function (svgElemSource, svgElemTarget, attributesToIgnore) {\n var curAttr;\n if (typeof attributesToIgnore === 'undefined') { attributesToIgnore = ['id', 'viewBox']; }\n\n for(var i=0; i 1) {\n origPrefixClassName = srcArr[1];\n newPrefixClassName = origPrefixClassName + '-' + injectCount;\n regex = new RegExp('\\\\.' + origPrefixClassName + ' ', 'g');\n styleTag.textContent = styleTagContent.replace(regex, '.' + newPrefixClassName + ' ');\n }\n else { //inject a single element.. this has most probaly not gone through preprocessing\n srcFileNameArr = srcArr[0].split('/');\n newPrefixClassName = srcFileNameArr[srcFileNameArr.length-1].replace('.svg', '') + '-' + injectCount;\n // console.info('inject complete file: ' + srcArr[0]);\n //https://medium.com/jotform-form-builder/writing-a-css-parser-in-javascript-3ecaa1719a43\n regex = new RegExp('([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}', 'g');\n\n while ((regexSearchResult = regex.exec(styleTagContent)) !== null) {\n selectorArr = regexSearchResult[1].trim().split(', ');\n selectorArr.forEach(prefixSelector);\n\n var tmp = selectorArr.join(', ') + '{' + regexSearchResult[2] + '}\\n';\n newContent += tmp;\n }\n styleTag.textContent = newContent;\n }\n\n svg.setAttribute('class', (svg.getAttribute('class') + ' ' + newPrefixClassName));\n };\n\n getClassList = function (svgToCheck) {\n var curClassAttr = svgToCheck.getAttribute('class');\n return (curClassAttr) ? curClassAttr.trim().split(' ') : [];\n };\n\n getSpriteIdFromClass = function (element) {\n var classes = getClassList(element);\n var id = '';\n forEach.call(classes, function (curClass) {\n if(curClass.indexOf(config.spriteClassIdName) >= 0) {\n id = curClass.replace(config.spriteClassIdName, '');\n // console.log('class with prefix ' + config.spriteClassIdName + ' found. id: ' + id);\n }\n });\n return id;\n };\n\n cloneSvg = function (config, sourceSvg, fragId) {\n\n var svgElem,\n newSVG,\n viewBox,\n viewBoxAttr,\n symbolAttributesToFind,\n curClassList,\n setViewboxOnNewSVG = false,\n symbolElem = null,\n symobolList;\n\n if(fragId === undefined){\n return sourceSvg.cloneNode(true);\n }\n else {\n svgElem = sourceSvg.getElementById(fragId);\n if(!svgElem){\n console.warn(fragId + ' not found in svg', sourceSvg);\n return;\n }\n\n viewBoxAttr = svgElem.getAttribute('viewBox');\n viewBox = viewBoxAttr.split(' ');\n\n if (svgElem instanceof SVGSymbolElement) {\n\n newSVG = cloneSymbolAsSVG(svgElem);\n setViewboxOnNewSVG = true;\n\n }\n else if (svgElem instanceof SVGViewElement) {\n symbolElem = null;\n if (config.onlyInjectVisiblePart) {\n var selector = '*[width=\"' + viewBox[2] + '\"][height=\"' + viewBox[3] + '\"]';\n\n symbolAttributesToFind = {};\n if (Math.abs(parseInt(viewBox[0])) === 0) {\n selector += ':not([x])';\n }\n else {\n symbolAttributesToFind.x = viewBox[0];\n selector += '[x=\"' + viewBox[0] + '\"]';\n }\n\n if (Math.abs(parseInt(viewBox[1])) === 0) {\n selector += ':not([y])';\n }\n else {\n symbolAttributesToFind.y = viewBox[1];\n selector += '[y=\"' + viewBox[1] + '\"]';\n }\n symobolList = sourceSvg.querySelectorAll(selector);\n if (symobolList.length > 1) {\n console.warn('more than one item, with the matching viewbox found!', symobolList);\n }\n symbolElem = symobolList[0];\n }\n if (symbolElem && (symbolElem instanceof SVGSVGElement)) {\n newSVG = symbolElem.cloneNode(true);\n\n for (var prop in symbolAttributesToFind) {\n if (prop !== 'width' && prop !== 'height') {\n newSVG.removeAttribute(prop);\n }\n }\n }\n else if(symbolElem && (symbolElem instanceof SVGUseElement)) {\n // console.log('referenced view shows a SVGUseElement');\n var referencedSymbol = sourceSvg.getElementById(\n symbolElem.getAttributeNS(XLINK_NS, 'href').substr(1)\n );\n newSVG = cloneSymbolAsSVG(referencedSymbol);\n viewBoxAttr = referencedSymbol.getAttribute('viewBox');\n viewBox = viewBoxAttr.split(' ');\n setViewboxOnNewSVG = true;\n }\n else {\n console.info(\n ((config.onlyInjectVisiblePart) ? 'symbol referenced via view' + fragId + ' not found' : 'option.onlyInjectVisiblePart: false') + ' -> clone complete svg!'\n );\n setViewboxOnNewSVG = true;\n newSVG = sourceSvg.cloneNode(true);\n\n }\n }\n\n if (setViewboxOnNewSVG) {\n newSVG.setAttribute('viewBox', viewBox.join(' '));\n newSVG.setAttribute('width', viewBox[2]+'px');\n newSVG.setAttribute('height', viewBox[3]+'px');\n }\n newSVG.setAttribute('xmlns', SVG_NS);\n newSVG.setAttribute('xmlns:xlink', XLINK_NS);\n //curClassAttr = newSVG.getAttribute('class');\n curClassList = getClassList(newSVG);\n var fragIdClassName = config.prefixFragIdClass + fragId;\n if (curClassList.indexOf(fragIdClassName)<0) {\n curClassList.push(fragIdClassName);\n newSVG.setAttribute('class', curClassList.join(' '));\n }\n return newSVG;\n }\n\n };\n\n //queueRequest(requestQueue, fileName, fragId, onElementInjectedCallback, el);\n queueRequest = function (fileName, fragId, callback, el) {\n requestQueue[fileName] = requestQueue[fileName] || [];\n requestQueue[fileName].push({callback:callback, fragmentId:fragId, element:el, name: name});\n };\n\n processRequestQueue = function (url) {\n var requestQueueElem;\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n // Make these calls async so we avoid blocking the page/renderer\n /* jshint loopfunc: true */\n (function (index) {\n setTimeout(function () {\n requestQueueElem = requestQueue[url][index];\n onLoadSVG(url, requestQueueElem.fragmentId, requestQueueElem.callback, requestQueueElem.element, requestQueueElem.name);\n }, 0);\n })(i);\n /* jshint loopfunc: false */\n }\n };\n\n loadSvg = function (onElementInjectedCallback, url, el) {\n var urlArr, fileUrl, fragId, name, pathArr;\n //var state = {onElementInjectedCallback:onElementInjectedCallback, injections:injections, config:config, url:url, el:el, ranScripts:ranScripts};\n // console.log('loadSvg', url);\n urlArr = url.split('#');\n fileUrl = urlArr[0];\n fragId = (urlArr.length === 2) ? urlArr[1] : undefined;\n //name = fragId ? undefined : ;\n if (typeof fragId !== 'undefined') {\n pathArr = fileUrl.split('/');\n name = pathArr[pathArr.length-1].replace('.svg', '');\n }\n\n if (svgCache[fileUrl] !== undefined) {\n if (svgCache[fileUrl] instanceof SVGSVGElement) {\n // We already have it in cache, so use it\n // console.log('We already have it in cache, so use it', fileName, fragId);\n onLoadSVG(fileUrl, fragId, onElementInjectedCallback, el, name);\n }\n else {\n // console.log('We don\\'t have it in cache yet, but we are loading it, so queue this request', fileName, fragId);\n // We don't have it in cache yet, but we are loading it, so queue this request\n queueRequest(fileUrl, fragId, onElementInjectedCallback, el, name);\n }\n }\n else {\n\n if (!window.XMLHttpRequest) {\n onElementInjectedCallback('Browser does not support XMLHttpRequest');\n return false;\n }\n\n // Seed the cache to indicate we are loading this URL already\n svgCache[fileUrl] = {};\n queueRequest(fileUrl, fragId, onElementInjectedCallback, el, name);\n\n var httpRequest = new XMLHttpRequest();\n\n httpRequest.onreadystatechange = function () {\n // readyState 4 = complete\n if (httpRequest.readyState === 4) {\n\n // Handle status\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n onElementInjectedCallback('Unable to load SVG file: ' + fileUrl);\n\n // @check this!\n //if (env.isLocal) {\n // onLoadCompleteCb('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.');\n //}\n //\n //onLoadCompleteCb();\n return false;\n }\n\n // 200 success from server, or 0 when using file:// protocol locally\n if (httpRequest.status === 200 || (env.isLocal && httpRequest.status === 0)) {\n\n if (httpRequest.responseXML instanceof Document) {\n // Cache it\n svgCache[fileUrl] = httpRequest.responseXML.documentElement;\n }\n\n // IE9 doesn't create a responseXML Document object from loaded SVG,\n // and throws a \"DOM Exception: HIERARCHY_REQUEST_ERR (3)\" error when injected.\n //\n // So, we'll just create our own manually via the DOMParser using\n // the the raw XML responseText.\n //\n // :NOTE: IE8 and older doesn't have DOMParser, but they can't do SVG either, so...\n else if (DOMParser && (DOMParser instanceof Function)) {\n var xmlDoc;\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(httpRequest.responseText, 'text/xml');\n }\n catch (e) {\n xmlDoc = undefined;\n }\n\n if (!xmlDoc || xmlDoc.getElementsByTagName('parsererror').length) {\n onElementInjectedCallback('Unable to parse SVG file: ' + url);\n return false;\n }\n else {\n // Cache it\n svgCache[fileUrl] = xmlDoc.documentElement;\n }\n }\n\n // We've loaded a new asset, so process any requests waiting for it\n processRequestQueue(fileUrl);\n }\n else {\n onElementInjectedCallback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n return false;\n }\n }\n };\n\n httpRequest.open('GET', fileUrl);\n\n // Treat and parse the response as XML, even if the\n // server sends us a different mimetype>\n if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');\n\n httpRequest.send();\n }\n };\n\n writeDefaultClass = function(removeStylesClass) {\n var css = 'svg.' + removeStylesClass + ' {fill: currentColor;}',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet){\n style.styleSheet.cssText = css;\n }\n else {\n style.appendChild(document.createTextNode(css));\n }\n head.appendChild(style);\n // console.info( 'default class written: ', css );\n };\n\n replaceNoSVGClass = function(element, noSVGClassName, hasSvgSupport) {\n if(hasSvgSupport) {\n element.className.replace(noSVGClassName, '');\n }\n else{\n element.className += ' ' + noSVGClassName;\n }\n };\n\n\n onLoadSVG = function(url, fragmentId, onElementInjectedCallback, el, name){\n // console.log('onLoadSVG', url, fragmentId, onElementInjectedCallback, el, name);\n var svg,\n imgId,\n titleId,\n descId,\n ariaHidden;\n\n svg = cloneSvg(config, svgCache[url], fragmentId);\n if (typeof svg === 'undefined' || typeof svg === 'string') {\n onElementInjectedCallback(svg);\n return false;\n }\n\n // take care of accessibility\n svg.setAttribute('role', 'img');\n forEach.call(svg.children || [], function (curChildElem) { // IE does not support Children on SVGElement!\n if (\n !(curChildElem instanceof SVGDefsElement) &&\n !(curChildElem instanceof SVGTitleElement) &&\n !(curChildElem instanceof SVGDescElement)\n ) {\n curChildElem.setAttribute('role', 'presentation');\n }\n });\n\n\n // set aria-hidden attribute\n ariaHidden = el.getAttribute('aria-hidden') || svg.getAttribute('aria-hidden');\n\n // set desc + title\n descId = setRootLevelElem('desc', svg, el, fragmentId, name, !ariaHidden);\n titleId = setRootLevelElem('title', svg, el, fragmentId, name, !ariaHidden);\n if (ariaHidden) {\n svg.setAttribute('aria-hidden', 'true');\n } else {\n svg.setAttribute('aria-labelledby', titleId + ' ' + descId);\n }\n\n // copy attributes of original element to new svg excluding class\n copyAttributes(el, svg, ['class']);\n\n\n // Concat the SVG classes + 'injected-svg' + the img classes\n var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' ');\n svg.setAttribute('class', uniqueClasses(classMerge));\n\n // Make sure any internally referenced ids and their\n // references are unique.\n //\n // This addresses the issue of having multiple instances of the\n // same SVG on a page and only the first clipPath, gradient, mask or filter id is referenced.\n suffixIdReferences(svg, injections.count, name);\n\n\n // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools\n svg.removeAttribute('xmlns:a');\n\n // Post page load injected SVGs don't automatically have their script\n // elements run, so we'll need to make that happen, if requested\n\n // Find then prune the scripts\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script, scriptType;\n\n for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) {\n scriptType = scripts[k].getAttribute('type');\n\n // Only process javascript types.\n // SVG defaults to 'application/ecmascript' for unset types\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') {\n\n // innerText for IE, textContent for other browsers\n script = scripts[k].innerText || scripts[k].textContent;\n\n // Stash\n scriptsToEval.push(script);\n\n // Tidy up and remove the script element since we don't need it anymore\n svg.removeChild(scripts[k]);\n }\n }\n\n // Run/Eval the scripts if needed\n if (scriptsToEval.length > 0 && (config.evalScripts === 'always' || (config.evalScripts === 'once' && ! ranScripts[url]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n\n // :NOTE: Yup, this is a form of eval, but it is being used to eval code\n // the caller has explictely asked to be loaded, and the code is in a caller\n // defined SVG file... not raw user input.\n //\n // Also, the code is evaluated in a closure and not in the global scope.\n // If you need to put something in global scope, use 'window'\n new Function(scriptsToEval[l])(window); // jshint ignore:line\n }\n\n // Remember we already ran scripts for this svg\n ranScripts[url] = true;\n }\n\n // :NOTE: handle styles in style-tags\n var styleTags = svg.querySelectorAll('style');\n\n forEach.call(styleTags, function (styleTag) {\n var svgClassList = getClassList(svg),\n stylesUntouched = true;\n if ((svgClassList.indexOf(config.removeStylesClass)>=0 || config.removeAllStyles) && (svgClassList.indexOf(config.keepStylesClass)<0) ) {\n\n // remove the styletag if the removeStylesClass is applied to the SVG\n // console.log('remove styleTag', styleTag);\n styleTag.parentNode.removeChild(styleTag);\n }\n else {\n\n if (suffixIdReferencesInStyles(styleTag, injections.count, svg, name) > 0) {\n stylesUntouched = false;\n }\n\n if (config.prefixStyleTags){\n doPrefixStyleTags(styleTag, injections.count, svg, name);\n stylesUntouched = false;\n }\n\n if (stylesUntouched) {\n // :WORKAROUND:\n // IE doesn't evaluate +

Spritesheet Classbased with AngularJS

diff --git a/examples/everything.html b/examples/everything.html index a472a83..f2405b1 100755 --- a/examples/everything.html +++ b/examples/everything.html @@ -15,7 +15,7 @@ - +

Everything

diff --git a/examples/index.html b/examples/index.html index b5826e2..c442df1 100755 --- a/examples/index.html +++ b/examples/index.html @@ -13,6 +13,6 @@ - + diff --git a/examples/simple.html b/examples/simple.html index edb4de7..8a52e9f 100755 --- a/examples/simple.html +++ b/examples/simple.html @@ -13,7 +13,7 @@ - +

Simple

diff --git a/examples/spritesheet-classbased.html b/examples/spritesheet-classbased.html index 3ecd702..c0f5ae5 100755 --- a/examples/spritesheet-classbased.html +++ b/examples/spritesheet-classbased.html @@ -18,7 +18,7 @@ - +

Spritesheet Classbased

diff --git a/examples/spritesheet.html b/examples/spritesheet.html index ba7fd96..298db1f 100644 --- a/examples/spritesheet.html +++ b/examples/spritesheet.html @@ -8,6 +8,7 @@ +

Spritesheet

From fc49c49df789a580a611d121c09842d3cde7e166 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 9 Oct 2017 05:36:49 +0200 Subject: [PATCH 197/212] add angular example --- examples/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/index.html b/examples/index.html index c442df1..49d5fd3 100755 --- a/examples/index.html +++ b/examples/index.html @@ -14,5 +14,6 @@ + From 6eab4d96a84d1cfd3b1317de5db52418d256064f Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 9 Oct 2017 05:40:36 +0200 Subject: [PATCH 198/212] update logic for title and desc creation/adaption if neiter in src svg or sprite nor in the injection-target element, do not create meaningless default `desc` and `title`. Only add `aria-labelled-by` if meaningfull `desc` and/or `title` exist --- src/svg-injector.js | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/svg-injector.js b/src/svg-injector.js index 277a8eb..4296930 100755 --- a/src/svg-injector.js +++ b/src/svg-injector.js @@ -809,7 +809,10 @@ titleId, descId, ariaHidden, - fallbackSvg + fallbackSvg, + labeledBy, + titleTagExisting, + descTagExisting ; svg = cloneSvg(config, svgCache[url], fragmentId); @@ -843,13 +846,26 @@ // set aria-hidden attribute ariaHidden = el.getAttribute('aria-hidden') || svg.getAttribute('aria-hidden'); - // set desc + title - descId = setRootLevelElem('desc', svg, el, fragmentId, name, !ariaHidden); - titleId = setRootLevelElem('title', svg, el, fragmentId, name, !ariaHidden); if (ariaHidden) { svg.setAttribute('aria-hidden', 'true'); + titleTagExisting = svg.querySelector('title'); + descTagExisting = svg.querySelector('desc'); + if (titleTagExisting) { + svg.removeChild(titleTagExisting); + } + if (descTagExisting) { + svg.removeChild(descTagExisting); + } + } else { - svg.setAttribute('aria-labelledby', titleId + ' ' + descId); + // set desc + title + descId = setRootLevelElem('desc', svg, el, fragmentId, false); + titleId = setRootLevelElem('title', svg, el, fragmentId, false); + if (descId.length > 0 || titleId.length > 0) { + labeledBy = titleId + ' ' + descId; + svg.setAttribute('aria-labelledby', labeledBy.trim()); + } + } // copy attributes of original element to new svg excluding class @@ -1047,6 +1063,7 @@ } else { if (addDefault) { + console.log('add default'); // neither injection target nor the svg to inject contain this element -> create with default content addRootLevelElem(type, svg, fragmentId, elemId, svg.firstChild); } else { From bd18b7472f7f3ce11676f060bbe725830886a692 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 9 Oct 2017 05:41:53 +0200 Subject: [PATCH 199/212] update examples to test new `title`, `desc`, `aria-labelledby` and `aria-hidden` implementation --- examples/angular-spritesheet-classbased.html | 19 ++++++++++++++----- examples/assets/svg/views.svg | 2 ++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/examples/angular-spritesheet-classbased.html b/examples/angular-spritesheet-classbased.html index 0d4b0b9..e867dd7 100644 --- a/examples/angular-spritesheet-classbased.html +++ b/examples/angular-spritesheet-classbased.html @@ -27,17 +27,26 @@

Spritesheet Classbased with AngularJS

- - + + Circle Title Generated (not there in orig) + Circle Desc Generated (not there in orig) + + + Square Title Generated (not there in orig, only title generated, desc not set) + + - - + + + Only Title Overridden + - + +