-
Notifications
You must be signed in to change notification settings - Fork 6
/
jquery.inlinesvg.min.js
33 lines (33 loc) · 2.26 KB
/
jquery.inlinesvg.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*!
* InlineSVG
*
* This is a jQuery plugin that takes an image selector as an argument having a
* SVG as source. Then it inlines the SVG so that the SVG stroke and path can
* be manipulated using plain CSS.
*
* @license MIT
* @version 2.0.0
* @see {@link https://github.com/createlogic/InlineSVG|GitHub}
*
* The MIT License (MIT)
*
* Copyright (c) 2010-2015 Bilal Niaz Awan
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
!function(e){"use strict";e.fn.inlineSVG=function(t){t=e.extend({eachAfter:null,allAfter:null,beforeReplace:null,replacedClass:"replaced-svg",keepSize:!0,keepStyle:!0},t||{});var l=this,a=0;return l.each(function(){var r=e(this),n=r.attr("id"),c=r.attr("class"),i=r.attr("src");e.get(i,function(i){function s(n){n="boolean"===e.type(n)?n:!0,n?(r.replaceWith(f),t.eachAfter&&t.eachAfter.call(f.get(0))):f.remove(),++a===l.length&&t.allAfter&&t.allAfter.call(null)}var f=e(i).find("svg"),h=[];if(n&&f.attr("id",n),c&&h.push(c),t.replacedClass&&h.push(t.replacedClass),f.attr("class",h.join(" ")),f.removeAttr("xmlns:a"),t.keepSize){var p=r.attr("width"),u=r.attr("height");p&&f.attr("width",p),u&&f.attr("height",u)}if(t.keepStyle){var o=r.attr("style");o&&f.attr("style",o)}t.beforeReplace?t.beforeReplace.call(null,r,f,s):s()},"xml")})}}(jQuery);