gxg-server/Public/www/javascript/kute/kute-svg.min.js
2021-11-16 08:53:02 -08:00

2 lines
No EOL
7.9 KiB
JavaScript

// KUTE.js v1.6.6 | © dnp_theme | SVG Plugin | MIT-License
!function(t,e){if("function"==typeof define&&define.amd)define(["./kute.js"],e);else if("object"==typeof module&&"function"==typeof require)module.exports=e(require("./kute.js"));else{if(void 0===t.KUTE)throw new Error("SVG Plugin require KUTE.js.");e(t.KUTE)}}(this,function(t){"use strict";var e="undefined"!=typeof global?global:window,r=t,n=r.dom,a=r.parseProperty,i=r.prepareStart,s=r.getCurrentStyle,o=(r.truC,r.truD,r.crossCheck),l=e.Interpolate.number,h=(e.Interpolate.unit,e.Interpolate.color,r.defaultOptions),u=null!==new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(navigator.userAgent)&&parseFloat(RegExp.$1);if(!(u&&u<9)){var p=/(m[^(h|v|l)]*|[vhl][^(v|h|l|z)]*)/gim,g=e.Interpolate.coords=function(t,e,r,n){for(var a=[],i=0;i<r;i++){a[i]=[];for(var s=0;s<2;s++)a[i].push((1e3*(t[i][s]+(e[i][s]-t[i][s])*n)>>0)/1e3)}return a},f=function(t,e,r){for(var n=[],a=[],i=t.getTotalLength(),s=e.getTotalLength(),o=Math.max(i,s),l=o/r,h=0,u=l*r;(h+=r)<u;)n.push([t.getPointAtLength(h).x,t.getPointAtLength(h).y]),a.push([e.getPointAtLength(h).x,e.getPointAtLength(h).y]);return[n,a]},c=function(t,e,r){for(var n,a,i,s,o,l=[],h=r.length,u=0;u<h;u++)n=Math.abs(r[u][0]-e.x),a=Math.abs(r[u][1]-e.y),l.push(Math.sqrt(n*n+a*a));return i=l.indexOf(Math.min.apply(null,l)),o=r[i-1]?i-1:h-1,s=r[i+1]?i+1:0,Math.abs(r[o][0]-e.x)<t&&Math.abs(r[o][1]-e.y)<t?r[o]:Math.abs(r[s][0]-e.x)<t&&Math.abs(r[s][1]-e.y)<t?r[s]:Math.abs(r[i][0]-e.x)<t&&Math.abs(r[i][1]-e.y)<t?r[i]:[e.x,e.y]},v=function(t){for(var e,r,n=t.match(p),a=n.length,i=0,s=0,o=0;o<a;o++)n[o]=n[o],e=n[o][0],r=new RegExp(e+"[^\\d|\\-]*","i"),n[o]=n[o].replace(/(^|[^,])\s*-/g,"$1,-").replace(/(\s+\,|\s|\,)/g,",").replace(r,"").split(","),n[o][0]=parseFloat(n[o][0]),n[o][1]=parseFloat(n[o][1]),0===o?(i+=n[o][0],s+=n[o][1]):(i=n[o-1][0],s=n[o-1][1],/l/i.test(e)?(n[o][0]="l"===e?n[o][0]+i:n[o][0],n[o][1]="l"===e?n[o][1]+s:n[o][1]):/h/i.test(e)?(n[o][0]="h"===e?n[o][0]+i:n[o][0],n[o][1]=s):/v/i.test(e)&&(n[o][0]=i,n[o][1]="v"===e?n[o][0]+s:n[o][0]));return n},m=function(t){return t.split(/z/i).shift()+"z"},d=function(t){var e=document.createElementNS("http://www.w3.org/2000/svg","path"),r="object"==typeof t?t.getAttribute("d"):t;return e.setAttribute("d",r),e},y=function(t){if("glyph"===t.tagName){var e=d(t);return t.parentNode.appendChild(e),e}return t},b=function(t){var e={},r="object"==typeof t?t:/^\.|^\#/.test(t)?document.querySelector(t):null;return r&&/path|glyph/.test(r.tagName)?(e.e=y(r),e.o=r.getAttribute("d")):!r&&/[a-z][^a-z]*/gi.test(t)&&(e.e=d(t.trim()),e.o=t),e},w=function(t,e){var r,n,a,i,s,o,l,h,u,p,g=[],m=this.options.morphIndex;if(this._isPolygon)if(t=v(t),e=v(e),t.length!==e.length){i=Math.max(t.length,e.length),i===e.length?(s=t,o=e):(s=e,o=t),s.length,l=d("M"+s.join("L")+"z"),h=l.getTotalLength()/i;for(var y=0;y<i;y++)u=l.getPointAtLength(h*y),p=c(h,u,s),g.push([p[0],p[1]]);i===e.length?(n=o,r=g):(r=o,n=g)}else r=t,n=e;else t=d(t),e=d(e),a=f(t,e,this.options.morphPrecision),r=a[0],n=a[1],i=n.length;if(this.options.reverseFirstPath&&r.reverse(),this.options.reverseSecondPath&&n.reverse(),m){n=n.splice(m,i-m).concat(n)}return t=e=null,[r,n]};h.morphPrecision=15,a.path=function(t,e){return"path"in n||(n.path=function(t,e,r,n,a){t.setAttribute("d",1===a?n.o:"M"+g(r.d,n.d,n.d.length,a)+"Z")}),b(e)},i.path=function(t){return this.element.getAttribute("d")},o.path=function(){var t,e=m(this.valuesStart.path.o),r=m(this.valuesEnd.path.o);this.options.morphPrecision=this.options&&"morphPrecision"in this.options?parseInt(this.options.morphPrecision):h.morphPrecision,this._isPolygon=!/[CSQTA]/i.test(e)&&!/[CSQTA]/i.test(r),t=w.apply(this,[e,r]),this.valuesStart.path.d=t[0],this.valuesEnd.path.d=t[1]};var A=function(t,e){return parseFloat(t)/100*e},M=function(t){return 2*t.getAttribute("width")+2*t.getAttribute("height")},x=function(t){var e=t.getAttribute("points").split(" "),r=0;if(e.length>1){var n=function(t){var e=t.split(",");if(2==e.length&&!isNaN(e[0])&&!isNaN(e[1]))return[parseFloat(e[0]),parseFloat(e[1])]},a=function(t,e){return void 0!=t&&void 0!=e?Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)):0};if(e.length>2)for(var i=0;i<e.length-1;i++)r+=a(n(e[i]),n(e[i+1]));r+="polygon"===t.tagName?a(n(e[0]),n(e[e.length-1])):0}return r},k=function(t){var e=t.getAttribute("x1"),r=t.getAttribute("x2"),n=t.getAttribute("y1"),a=t.getAttribute("y2");return Math.sqrt(Math.pow(r-e,2)+Math.pow(a-n,2))},P=function(t){var e=t.getAttribute("r");return 2*Math.PI*e},T=function(t){var e=t.getAttribute("rx"),r=t.getAttribute("ry"),n=2*e,a=2*r;return Math.sqrt(.5*(n*n+a*a))*(2*Math.PI)/2},F=function(t){return/rect/.test(t.tagName)?M(t):/circle/.test(t.tagName)?P(t):/ellipse/.test(t.tagName)?T(t):/polygon|polyline/.test(t.tagName)?x(t):/line/.test(t.tagName)?k(t):void 0},N=function(t,e){var r,n,a,i,o=/path|glyph/.test(t.tagName)?t.getTotalLength():F(t);return e instanceof Object?e:("string"==typeof e?(e=e.split(/\,|\s/),r=/%/.test(e[0])?A(e[0].trim(),o):parseFloat(e[0]),n=/%/.test(e[1])?A(e[1].trim(),o):parseFloat(e[1])):void 0===e&&(i=parseFloat(s(t,"stroke-dashoffset")),a=s(t,"stroke-dasharray").split(/\,/),r=0-i,n=parseFloat(a[0])+r||o),{s:r,e:n,l:o})};a.draw=function(t,e){return"draw"in n||(n.draw=function(t,e,r,n,a){var i=(100*r.l>>0)/100,s=(100*l(r.s,n.s,a)>>0)/100,o=(100*l(r.e,n.e,a)>>0)/100,h=0-s,u=o+h;t.style.strokeDashoffset=h+"px",t.style.strokeDasharray=(100*(u<1?0:u)>>0)/100+"px, "+i+"px"}),N(this.element,e)},i.draw=function(){return N(this.element)};var S=function(t,e){return/[a-zA-Z]/.test(t)&&!/px/.test(t)?t.replace(/top|left/,0).replace(/right|bottom/,100).replace(/center|middle/,50):/%/.test(t)?e.x+parseFloat(t)*e.width/100:parseFloat(t)},E=function(t){var e=t&&/\)/.test(t)?t.substring(0,t.length-1).split(/\)\s|\)/):"none",r={};if(e instanceof Array)for(var n=0,a=e.length;n<a;n++){var i=e[n].trim().split("(");r[i[0]]=i[1]}return r},I=function(t){var e,r={},n=this.element.getBBox(),a=n.x+n.width/2,i=n.y+n.height/2,s=this.options.transformOrigin;s=s?s instanceof Array?s:s.split(/\s/):[a,i],s[0]="number"==typeof s[0]?s[0]:S(s[0],n),s[1]="number"==typeof s[1]?s[1]:S(s[1],n),r.origin=s;for(var o in t)"rotate"===o?r[o]="number"==typeof t[o]?t[o]:t[o]instanceof Array?t[o][0]:1*t[o].split(/\s/)[0]:"translate"===o?(e=t[o]instanceof Array?t[o]:/\,|\s/.test(t[o])?t[o].split(","):[t[o],0],r[o]=[1*e[0]||0,1*e[1]||0]):/skew/.test(o)?r[o]=1*t[o]||0:"scale"===o&&(r[o]=parseFloat(t[o])||1);return r};return a.svgTransform=function(t,e){return"svgTransform"in n||(n.svgTransform=function(t,e,r,n,a){var i,s=0,o=0,h=Math.PI/180,u="scale"in n?l(r.scale,n.scale,a):1,p="rotate"in n?l(r.rotate,n.rotate,a):0,g=Math.sin(p*h),f=Math.cos(p*h),c="skewX"in n?l(r.skewX,n.skewX,a):0,v="skewY"in n?l(r.skewY,n.skewY,a):0,m=p||c||v||1!==u||0;s-=m?n.origin[0]:0,o-=m?n.origin[1]:0,s*=u,o*=u,o+=v?s*Math.tan(v*h):0,s+=c?o*Math.tan(c*h):0,i=f*s-g*o,o=p?g*s+f*o:o,s=p?i:s,s+="translate"in n?l(r.translate[0],n.translate[0],a):0,o+="translate"in n?l(r.translate[1],n.translate[1],a):0,s+=m?n.origin[0]:0,o+=m?n.origin[1]:0,t.setAttribute("transform",(s||o?"translate("+(1e3*s>>0)/1e3+(o?","+(1e3*o>>0)/1e3:"")+")":"")+(p?"rotate("+(1e3*p>>0)/1e3+")":"")+(c?"skewX("+(1e3*c>>0)/1e3+")":"")+(v?"skewY("+(1e3*v>>0)/1e3+")":"")+(1!==u?"scale("+(1e3*u>>0)/1e3+")":""))}),I.call(this,e)},i.svgTransform=function(t,e){var r={},n=E(this.element.getAttribute("transform"));for(var a in e)r[a]=a in n?n[a]:"scale"===a?1:0;return r},o.svgTransform=function(){if(this.options.rpr){var t=this.valuesStart.svgTransform,e=this.valuesEnd.svgTransform,r=I.call(this,E(this.element.getAttribute("transform")));for(var n in r)t[n]=r[n];var a=this.element.ownerSVGElement,i=a.createSVGTransformFromMatrix(a.createSVGMatrix().translate(-t.origin[0],-t.origin[1]).translate("translate"in t?t.translate[0]:0,"translate"in t?t.translate[1]:0).rotate(t.rotate||0).skewX(t.skewX||0).skewY(t.skewY||0).scale(t.scale||1).translate(+t.origin[0],+t.origin[1]));t.translate=[i.matrix.e,i.matrix.f];for(var n in t)n in e||(e[n]=t[n])}},this}});