@tsparticles/plugin-polygon-mask 3.9.0 → 4.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/409.min.js +2 -0
- package/409.min.js.LICENSE.txt +1 -0
- package/browser/PolygonMaskInstance.js +40 -24
- package/browser/index.js +6 -5
- package/browser/pathseg.js +1 -1
- package/browser/utils.js +8 -5
- package/cjs/Enums/PolygonMaskInlineArrangement.js +2 -5
- package/cjs/Enums/PolygonMaskMoveType.js +2 -5
- package/cjs/Enums/PolygonMaskType.js +2 -5
- package/cjs/Interfaces/ISvgPath.js +1 -2
- package/cjs/Options/Classes/PolygonMask.js +16 -20
- package/cjs/Options/Classes/PolygonMaskDraw.js +5 -9
- package/cjs/Options/Classes/PolygonMaskDrawStroke.js +7 -11
- package/cjs/Options/Classes/PolygonMaskInline.js +5 -9
- package/cjs/Options/Classes/PolygonMaskLocalSvg.js +3 -7
- package/cjs/Options/Classes/PolygonMaskMove.js +5 -9
- package/cjs/Options/Interfaces/IPolygonMask.js +1 -2
- package/cjs/Options/Interfaces/IPolygonMaskDraw.js +1 -2
- package/cjs/Options/Interfaces/IPolygonMaskDrawStroke.js +1 -2
- package/cjs/Options/Interfaces/IPolygonMaskInline.js +1 -2
- package/cjs/Options/Interfaces/IPolygonMaskLocalSvg.js +1 -2
- package/cjs/Options/Interfaces/IPolygonMaskMove.js +1 -2
- package/cjs/PolygonMaskInstance.js +73 -61
- package/cjs/PolygonMaskPlugin.js +7 -11
- package/cjs/index.js +9 -25
- package/cjs/pathseg.js +2 -3
- package/cjs/types.js +1 -2
- package/cjs/utils.js +16 -20
- package/dist_browser_PolygonMaskPlugin_js.js +120 -0
- package/esm/PolygonMaskInstance.js +40 -24
- package/esm/index.js +6 -5
- package/esm/pathseg.js +1 -1
- package/esm/utils.js +8 -5
- package/package.json +4 -3
- package/report.html +5 -4
- package/tsparticles.plugin.polygon-mask.js +218 -129
- package/tsparticles.plugin.polygon-mask.min.js +1 -1
- package/tsparticles.plugin.polygon-mask.min.js.LICENSE.txt +1 -1
- package/types/PolygonMaskInstance.d.ts +1 -0
- package/types/index.d.ts +1 -2
- package/types/utils.d.ts +2 -2
- package/umd/PolygonMaskInstance.js +40 -24
- package/umd/index.js +30 -6
- package/umd/pathseg.js +1 -1
- package/umd/utils.js +8 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see tsparticles.plugin.polygon-mask.min.js.LICENSE.txt */
|
|
2
|
-
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],e);else{var n="object"==typeof exports?e(require("@tsparticles/engine")):e(t.window);for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(this,(t=>(()=>{var e={303:e=>{e.exports=t},551:()=>{!function(){try{if("undefined"==typeof window)return;"SVGPathSeg"in window||(window.SVGPathSeg=function(t,e,n){this.pathSegType=t,this.pathSegTypeAsLetter=e,this._owningPathSegList=n},window.SVGPathSeg.prototype.classname="SVGPathSeg",window.SVGPathSeg.PATHSEG_UNKNOWN=0,window.SVGPathSeg.PATHSEG_CLOSEPATH=1,window.SVGPathSeg.PATHSEG_MOVETO_ABS=2,window.SVGPathSeg.PATHSEG_MOVETO_REL=3,window.SVGPathSeg.PATHSEG_LINETO_ABS=4,window.SVGPathSeg.PATHSEG_LINETO_REL=5,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS=6,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL=7,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS=8,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL=9,window.SVGPathSeg.PATHSEG_ARC_ABS=10,window.SVGPathSeg.PATHSEG_ARC_REL=11,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS=12,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL=13,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS=14,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL=15,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS=16,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL=17,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS=18,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL=19,window.SVGPathSeg.prototype._segmentChanged=function(){this._owningPathSegList&&this._owningPathSegList.segmentChanged(this)},window.SVGPathSegClosePath=function(t){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CLOSEPATH,"z",t)},window.SVGPathSegClosePath.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegClosePath.prototype.toString=function(){return"[object SVGPathSegClosePath]"},window.SVGPathSegClosePath.prototype._asPathString=function(){return this.pathSegTypeAsLetter},window.SVGPathSegClosePath.prototype.clone=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathSegMovetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_ABS,"M",t),this._x=e,this._y=n},window.SVGPathSegMovetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoAbs.prototype.toString=function(){return"[object SVGPathSegMovetoAbs]"},window.SVGPathSegMovetoAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegMovetoAbs.prototype.clone=function(){return new window.SVGPathSegMovetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegMovetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_REL,"m",t),this._x=e,this._y=n},window.SVGPathSegMovetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoRel.prototype.toString=function(){return"[object SVGPathSegMovetoRel]"},window.SVGPathSegMovetoRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegMovetoRel.prototype.clone=function(){return new window.SVGPathSegMovetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_ABS,"L",t),this._x=e,this._y=n},window.SVGPathSegLinetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoAbs.prototype.toString=function(){return"[object SVGPathSegLinetoAbs]"},window.SVGPathSegLinetoAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegLinetoAbs.prototype.clone=function(){return new window.SVGPathSegLinetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_REL,"l",t),this._x=e,this._y=n},window.SVGPathSegLinetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoRel.prototype.toString=function(){return"[object SVGPathSegLinetoRel]"},window.SVGPathSegLinetoRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegLinetoRel.prototype.clone=function(){return new window.SVGPathSegLinetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS,"C",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=s},window.SVGPathSegCurvetoCubicAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicAbs]"},window.SVGPathSegCurvetoCubicAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicAbs(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL,"c",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=s},window.SVGPathSegCurvetoCubicRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicRel]"},window.SVGPathSegCurvetoCubicRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicRel(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS,"Q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticAbs]"},window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL,"q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticRel]"},window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticRel(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcAbs=function(t,e,n,i,o,r,s,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_ABS,"A",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=s,this._sweepFlag=h},window.SVGPathSegArcAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcAbs.prototype.toString=function(){return"[object SVGPathSegArcAbs]"},window.SVGPathSegArcAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag?"1":"0"} ${this._sweepFlag?"1":"0"} ${this._x} ${this._y}`},window.SVGPathSegArcAbs.prototype.clone=function(){return new window.SVGPathSegArcAbs(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcRel=function(t,e,n,i,o,r,s,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_REL,"a",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=s,this._sweepFlag=h},window.SVGPathSegArcRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcRel.prototype.toString=function(){return"[object SVGPathSegArcRel]"},window.SVGPathSegArcRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag?"1":"0"} ${this._sweepFlag?"1":"0"} ${this._x} ${this._y}`},window.SVGPathSegArcRel.prototype.clone=function(){return new window.SVGPathSegArcRel(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS,"H",t),this._x=e},window.SVGPathSegLinetoHorizontalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalAbs]"},window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x}`},window.SVGPathSegLinetoHorizontalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalAbs(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL,"h",t),this._x=e},window.SVGPathSegLinetoHorizontalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalRel.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalRel]"},window.SVGPathSegLinetoHorizontalRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x}`},window.SVGPathSegLinetoHorizontalRel.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalRel(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS,"V",t),this._y=e},window.SVGPathSegLinetoVerticalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalAbs]"},window.SVGPathSegLinetoVerticalAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._y}`},window.SVGPathSegLinetoVerticalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalAbs(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL,"v",t),this._y=e},window.SVGPathSegLinetoVerticalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalRel.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalRel]"},window.SVGPathSegLinetoVerticalRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._y}`},window.SVGPathSegLinetoVerticalRel.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalRel(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS,"S",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothAbs]"},window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL,"s",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothRel]"},window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS,"T",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothAbs]"},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,"t",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothRel]"},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathElement.prototype.createSVGPathSegClosePath=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathElement.prototype.createSVGPathSegMovetoAbs=function(t,e){return new window.SVGPathSegMovetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegMovetoRel=function(t,e){return new window.SVGPathSegMovetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoAbs=function(t,e){return new window.SVGPathSegLinetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoRel=function(t,e){return new window.SVGPathSegLinetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicAbs(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicRel(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegArcAbs=function(t,e,n,i,o,r,s){return new window.SVGPathSegArcAbs(void 0,t,e,n,i,o,r,s)},window.SVGPathElement.prototype.createSVGPathSegArcRel=function(t,e,n,i,o,r,s){return new window.SVGPathSegArcRel(void 0,t,e,n,i,o,r,s)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs=function(t){return new window.SVGPathSegLinetoHorizontalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel=function(t){return new window.SVGPathSegLinetoHorizontalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs=function(t){return new window.SVGPathSegLinetoVerticalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel=function(t){return new window.SVGPathSegLinetoVerticalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,t,e)},"getPathSegAtLength"in window.SVGPathElement.prototype||(window.SVGPathElement.prototype.getPathSegAtLength=function(t){if(void 0===t||!isFinite(t))throw"Invalid arguments.";const e=document.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",this.getAttribute("d"));let n=e.pathSegList.numberOfItems-1;if(n<=0)return 0;do{if(e.pathSegList.removeItem(n),t>e.getTotalLength())break;n--}while(n>0);return n})),"SVGPathSegList"in window&&"appendItem"in window.SVGPathSegList.prototype||(window.SVGPathSegList=function(t){this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.classname="SVGPathSegList",Object.defineProperty(window.SVGPathSegList.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathSegList.prototype,"length",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"pathSegList",{get:function(){return this._pathSegList||(this._pathSegList=new window.SVGPathSegList(this)),this._pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"normalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedNormalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),window.SVGPathSegList.prototype._checkPathSynchronizedToList=function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())},window.SVGPathSegList.prototype._updateListFromPathMutations=function(t){if(!this._pathElement)return;let e=!1;t.forEach((function(t){"d"==t.attributeName&&(e=!0)})),e&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))},window.SVGPathSegList.prototype._writeListToPath=function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",window.SVGPathSegList._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.segmentChanged=function(){this._writeListToPath()},window.SVGPathSegList.prototype.clear=function(){this._checkPathSynchronizedToList(),this._list.forEach((function(t){t._owningPathSegList=null})),this._list=[],this._writeListToPath()},window.SVGPathSegList.prototype.initialize=function(t){return this._checkPathSynchronizedToList(),this._list=[t],t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype._checkValidIndex=function(t){if(isNaN(t)||t<0||t>=this.numberOfItems)throw"INDEX_SIZE_ERR"},window.SVGPathSegList.prototype.getItem=function(t){return this._checkPathSynchronizedToList(),this._checkValidIndex(t),this._list[t]},window.SVGPathSegList.prototype.insertItemBefore=function(t,e){return this._checkPathSynchronizedToList(),e>this.numberOfItems&&(e=this.numberOfItems),t._owningPathSegList&&(t=t.clone()),this._list.splice(e,0,t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.replaceItem=function(t,e){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._checkValidIndex(e),this._list[e]=t,t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.removeItem=function(t){this._checkPathSynchronizedToList(),this._checkValidIndex(t);const e=this._list[t];return this._list.splice(t,1),this._writeListToPath(),e},window.SVGPathSegList.prototype.appendItem=function(t){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._list.push(t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList._pathSegArrayAsString=function(t){let e="",n=!0;return t.forEach((function(t){n?(n=!1,e+=t._asPathString()):e+=` ${t._asPathString()}`})),e},window.SVGPathSegList.prototype._parsePath=function(t){if(!t||!t.length)return[];const e=this,n=function(){this.pathSegList=[]};n.prototype.appendSegment=function(t){this.pathSegList.push(t)};const i=function(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=window.SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()};i.prototype._isCurrentSpace=function(){const t=this._string[this._currentIndex];return t<=" "&&(" "==t||"\n"==t||"\t"==t||"\r"==t||"\f"==t)},i.prototype._skipOptionalSpaces=function(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex++;return this._currentIndex<this._endIndex},i.prototype._skipOptionalSpacesOrDelimiter=function(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!=this._string.charAt(this._currentIndex))&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","==this._string.charAt(this._currentIndex)&&(this._currentIndex++,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)},i.prototype.hasMoreData=function(){return this._currentIndex<this._endIndex},i.prototype.peekSegmentType=function(){const t=this._string[this._currentIndex];return this._pathSegTypeFromChar(t)},i.prototype._pathSegTypeFromChar=function(t){switch(t){case"Z":case"z":return window.SVGPathSeg.PATHSEG_CLOSEPATH;case"M":return window.SVGPathSeg.PATHSEG_MOVETO_ABS;case"m":return window.SVGPathSeg.PATHSEG_MOVETO_REL;case"L":return window.SVGPathSeg.PATHSEG_LINETO_ABS;case"l":return window.SVGPathSeg.PATHSEG_LINETO_REL;case"C":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;case"c":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;case"Q":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;case"q":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;case"A":return window.SVGPathSeg.PATHSEG_ARC_ABS;case"a":return window.SVGPathSeg.PATHSEG_ARC_REL;case"H":return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;case"h":return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;case"V":return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;case"v":return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;case"S":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;case"s":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;case"T":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;case"t":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;default:return window.SVGPathSeg.PATHSEG_UNKNOWN}},i.prototype._nextCommandHelper=function(t,e){return("+"==t||"-"==t||"."==t||t>="0"&&t<="9")&&e!=window.SVGPathSeg.PATHSEG_CLOSEPATH?e==window.SVGPathSeg.PATHSEG_MOVETO_ABS?window.SVGPathSeg.PATHSEG_LINETO_ABS:e==window.SVGPathSeg.PATHSEG_MOVETO_REL?window.SVGPathSeg.PATHSEG_LINETO_REL:e:window.SVGPathSeg.PATHSEG_UNKNOWN},i.prototype.initialCommandIsMoveTo=function(){if(!this.hasMoreData())return!0;const t=this.peekSegmentType();return t==window.SVGPathSeg.PATHSEG_MOVETO_ABS||t==window.SVGPathSeg.PATHSEG_MOVETO_REL},i.prototype._parseNumber=function(){let t=0,e=0,n=1,i=0,o=1,r=1;const s=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex<this._endIndex&&"+"==this._string.charAt(this._currentIndex)?this._currentIndex++:this._currentIndex<this._endIndex&&"-"==this._string.charAt(this._currentIndex)&&(this._currentIndex++,o=-1),this._currentIndex==this._endIndex||(this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")&&"."!=this._string.charAt(this._currentIndex))return;const h=this._currentIndex;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)this._currentIndex++;if(this._currentIndex!=h){let t=this._currentIndex-1,n=1;for(;t>=h;)e+=n*(this._string.charAt(t--)-"0"),n*=10}if(this._currentIndex<this._endIndex&&"."==this._string.charAt(this._currentIndex)){if(this._currentIndex++,this._currentIndex>=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)n*=10,i+=(this._string.charAt(this._currentIndex)-"0")/n,this._currentIndex+=1}if(this._currentIndex!=s&&this._currentIndex+1<this._endIndex&&("e"==this._string.charAt(this._currentIndex)||"E"==this._string.charAt(this._currentIndex))&&"x"!=this._string.charAt(this._currentIndex+1)&&"m"!=this._string.charAt(this._currentIndex+1)){if(this._currentIndex++,"+"==this._string.charAt(this._currentIndex)?this._currentIndex++:"-"==this._string.charAt(this._currentIndex)&&(this._currentIndex++,r=-1),this._currentIndex>=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)t*=10,t+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}let a=e+i;return a*=o,t&&(a*=Math.pow(10,r*t)),s!=this._currentIndex?(this._skipOptionalSpacesOrDelimiter(),a):void 0},i.prototype._parseArcFlag=function(){if(this._currentIndex>=this._endIndex)return;let t=!1;const e=this._string.charAt(this._currentIndex++);if("0"==e)t=!1;else{if("1"!=e)return;t=!0}return this._skipOptionalSpacesOrDelimiter(),t},i.prototype.parseSegment=function(){const t=this._string[this._currentIndex];let n,i=this._pathSegTypeFromChar(t);if(i==window.SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand==window.SVGPathSeg.PATHSEG_UNKNOWN)return null;if(i=this._nextCommandHelper(t,this._previousCommand),i==window.SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=i,i){case window.SVGPathSeg.PATHSEG_MOVETO_REL:return new window.SVGPathSegMovetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_MOVETO_ABS:return new window.SVGPathSegMovetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_REL:return new window.SVGPathSegLinetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_ABS:return new window.SVGPathSegLinetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new window.SVGPathSegLinetoHorizontalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new window.SVGPathSegLinetoHorizontalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new window.SVGPathSegLinetoVerticalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new window.SVGPathSegLinetoVerticalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new window.SVGPathSegClosePath(e);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicRel(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicAbs(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothRel(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothAbs(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticRel(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticAbs(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new window.SVGPathSegCurvetoQuadraticSmoothRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new window.SVGPathSegCurvetoQuadraticSmoothAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_ARC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcRel(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);case window.SVGPathSeg.PATHSEG_ARC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcAbs(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);default:throw"Unknown path seg type."}};const o=new n,r=new i(t);if(!r.initialCommandIsMoveTo())return[];for(;r.hasMoreData();){const t=r.parseSegment();if(!t)return[];o.appendSegment(t)}return o.pathSegList})}catch(t){console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles",t)}}()}},n={};function i(t){var o=n[t];if(void 0!==o)return o.exports;var r=n[t]={exports:{}};return e[t](r,r.exports,i),r.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};i.r(o),i.d(o,{PolygonMaskInlineArrangement:()=>r,PolygonMaskMoveType:()=>s,PolygonMaskType:()=>h,loadPolygonMaskPlugin:()=>T});i(551);var r,s,h,a=i(303);class S{constructor(t){this._engine=t,this.color=new a.OptionsColor,this.width=.5,this.opacity=1}load(t){(0,a.isNull)(t)||(this.color=a.OptionsColor.create(this.color,t.color),(0,a.isString)(this.color.value)&&(this.opacity=(0,a.stringToAlpha)(this._engine,this.color.value)??this.opacity),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.width&&(this.width=t.width))}}class c{constructor(t){this.enable=!1,this.stroke=new S(t)}load(t){if((0,a.isNull)(t))return;void 0!==t.enable&&(this.enable=t.enable);const e=t.stroke;this.stroke.load(e)}}!function(t){t.equidistant="equidistant",t.onePerPoint="one-per-point",t.perPoint="per-point",t.randomLength="random-length",t.randomPoint="random-point"}(r||(r={}));class u{constructor(){this.arrangement=r.onePerPoint}load(t){(0,a.isNull)(t)||void 0!==t.arrangement&&(this.arrangement=t.arrangement)}}class w{constructor(){this.path=[],this.size={height:0,width:0}}load(t){(0,a.isNull)(t)||(void 0!==t.path&&(this.path=t.path),void 0!==t.size&&(void 0!==t.size.width&&(this.size.width=t.size.width),void 0!==t.size.height&&(this.size.height=t.size.height)))}}!function(t){t.path="path",t.radius="radius"}(s||(s={}));class g{constructor(){this.radius=10,this.type=s.path}load(t){(0,a.isNull)(t)||(void 0!==t.radius&&(this.radius=t.radius),void 0!==t.type&&(this.type=t.type))}}!function(t){t.inline="inline",t.inside="inside",t.outside="outside",t.none="none"}(h||(h={}));class _{constructor(t){this.draw=new c(t),this.enable=!1,this.inline=new u,this.move=new g,this.scale=1,this.type=h.none}load(t){(0,a.isNull)(t)||(this.draw.load(t.draw),this.inline.load(t.inline),this.move.load(t.move),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.type&&(this.type=t.type),void 0!==t.enable?this.enable=t.enable:this.enable=this.type!==h.none,void 0!==t.url&&(this.url=t.url),void 0!==t.data&&((0,a.isString)(t.data)?this.data=t.data:(this.data=new w,this.data.load(t.data))),void 0!==t.position&&(this.position=(0,a.deepExtend)({},t.position)))}}const d=0,p=1;function P(t,e,n,i){const o=(0,a.rangeColorToRgb)(t,i.color);if(!o)return;const r=n[0];e.beginPath(),e.moveTo(r.x,r.y);for(const t of n)e.lineTo(t.x,t.y);e.closePath(),e.strokeStyle=(0,a.getStyleFromRgb)(o),e.lineWidth=i.width,e.stroke()}function l(t,e,n,i,o){const r=1,s=0,h=0,S=1;e.setTransform(r,s,h,S,o.x,o.y);const c=(0,a.rangeColorToRgb)(t,i.color);c&&(e.strokeStyle=(0,a.getStyleFromRgb)(c,i.opacity),e.lineWidth=i.width,e.stroke(n),e.resetTransform())}function y(t,e,n){const{dx:i,dy:o}=(0,a.getDistances)(n,t),{dx:r,dy:s}=(0,a.getDistances)(e,t),h=(i*r+o*s)/(r**2+s**2),S={x:t.x+r*h,y:t.y+s*h,isOnSegment:h>=d&&h<=p};return h<d?(S.x=t.x,S.y=t.y):h>p&&(S.x=e.x,S.y=e.y),S}function G(t,e,n){const{dx:i,dy:o}=(0,a.getDistances)(t,e),r=Math.atan2(o,i),s=a.Vector.create(Math.sin(r),-Math.cos(r)),h=2*(n.x*s.x+n.y*s.y);s.multTo(h),n.subFrom(s)}const V=`${a.errorPrefix} No polygon data loaded.`,A=`${a.errorPrefix} No polygon found, you need to specify SVG url in config.`,b=0,f=0,m=.5;class C{constructor(t,e){this._checkInsidePolygon=t=>{const e=this._container,n=e.actualOptions.polygon;if(!n?.enable||n.type===h.none||n.type===h.inline)return!0;if(!this.raw)throw new Error(A);const i=e.canvas.size,o=t?.x??(0,a.getRandom)()*i.width,r=t?.y??(0,a.getRandom)()*i.height;let s=!1;for(let t=0,e=this.raw.length-1;t<this.raw.length;e=t++){const n=this.raw[t],i=this.raw[e];n.y>r!=i.y>r&&o<(i.x-n.x)*(r-n.y)/(i.y-n.y)+n.x&&(s=!s)}return n.type===h.inside?s:n.type===h.outside&&!s},this._createPath2D=()=>{if(this._container.actualOptions.polygon&&this.paths?.length)for(const t of this.paths){const e=t.element?.getAttribute("d");if(e){const n=new Path2D(e),i=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix(),o=new Path2D,r=i.scale(this._scale);o.addPath?(o.addPath(n,r),t.path2d=o):delete t.path2d}else delete t.path2d;if(t.path2d??!this.raw)continue;t.path2d=new Path2D;const n=0,i=this.raw[n];t.path2d.moveTo(i.x,i.y),this.raw.forEach(((e,i)=>{i>n&&t.path2d?.lineTo(e.x,e.y)})),t.path2d.closePath()}},this._downloadSvgPath=async(t,e)=>{const n=this._container.actualOptions.polygon;if(!n)return;const i=t??n.url,o=e??!1;if(!i||void 0!==this.paths&&!o)return this.raw;const r=await fetch(i);if(!r.ok)throw new Error(`${a.errorPrefix} occurred during polygon mask download`);return this._parseSvgPath(await r.text(),e)},this._drawPoints=()=>{if(this.raw)for(const t of this.raw)this._container.particles.addParticle({x:t.x,y:t.y})},this._getEquidistantPointByIndex=t=>{const e=this._container.actualOptions;if(!e.polygon)return;if(!this.raw?.length||!this.paths?.length)throw new Error(V);let n,i=0;const o=this.paths.reduce(((t,e)=>t+e.length),0)/e.particles.number.value;for(const e of this.paths){const r=o*t-i;if(r<=e.length){n=e.element.getPointAtLength(r);break}i+=e.length}const r=this._scale;return{x:(n?.x??b)*r+(this.offset?.x??b),y:(n?.y??f)*r+(this.offset?.y??f)}},this._getPointByIndex=t=>{if(!this.raw?.length)throw new Error(V);const e=this.raw[t%this.raw.length];return{x:e.x,y:e.y}},this._getRandomPoint=()=>{if(!this.raw?.length)throw new Error(V);const t=(0,a.itemFromArray)(this.raw);return{x:t.x,y:t.y}},this._getRandomPointByLength=()=>{if(!this._container.actualOptions.polygon)return;if(!this.raw?.length||!this.paths?.length)throw new Error(V);const t=(0,a.itemFromArray)(this.paths),e=Math.floor((0,a.getRandom)()*t.length)+1,n=t.element.getPointAtLength(e),i=this._scale;return{x:n.x*i+(this.offset?.x??b),y:n.y*i+(this.offset?.y??f)}},this._initRawData=async t=>{const e=this._container.actualOptions.polygon;if(e){if(e.url)this.raw=await this._downloadSvgPath(e.url,t);else if(e.data){const n=e.data;let i;if((0,a.isString)(n))i=n;else{const t=t=>`<path d="${t}" />`,e=(0,a.isArray)(n.path)?n.path.map(t).join(""):t(n.path);i=`<svg ${'xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"'} width="${n.size.width}" height="${n.size.height}">${e}</svg>`}this.raw=this._parseSvgPath(i,t)}this._createPath2D(),this._engine.dispatchEvent("polygonMaskLoaded",{container:this._container})}},this._parseSvgPath=(t,e)=>{const n=e??!1;if(void 0!==this.paths&&!n)return this.raw;const i=this._container,o=i.actualOptions.polygon;if(!o)return;const r=(new DOMParser).parseFromString(t,"image/svg+xml"),s=r.getElementsByTagName("svg")[0];let h=s.getElementsByTagName("path");h.length||(h=r.getElementsByTagName("path")),this.paths=[];for(let t=0;t<h.length;t++){const e=h.item(t);e&&this.paths.push({element:e,length:e.getTotalLength()})}const S=this._scale;this.dimension.width=parseFloat(s.getAttribute("width")??"0")*S,this.dimension.height=parseFloat(s.getAttribute("height")??"0")*S;const c=o.position??{x:50,y:50},u=i.canvas.size;return this.offset={x:u.width*c.x/a.percentDenominator-this.dimension.width*m,y:u.height*c.y/a.percentDenominator-this.dimension.height*m},function(t,e,n){const i=[];for(const o of t){const t=o.element.pathSegList,r=t?.numberOfItems??0,s={x:0,y:0};for(let o=0;o<r;o++){const r=t?.getItem(o),h=window.SVGPathSeg;switch(r?.pathSegType){case h.PATHSEG_MOVETO_ABS:case h.PATHSEG_LINETO_ABS:case h.PATHSEG_CURVETO_CUBIC_ABS:case h.PATHSEG_CURVETO_QUADRATIC_ABS:case h.PATHSEG_ARC_ABS:case h.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:case h.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:{const t=r;s.x=t.x,s.y=t.y;break}case h.PATHSEG_LINETO_HORIZONTAL_ABS:s.x=r.x;break;case h.PATHSEG_LINETO_VERTICAL_ABS:s.y=r.y;break;case h.PATHSEG_LINETO_REL:case h.PATHSEG_MOVETO_REL:case h.PATHSEG_CURVETO_CUBIC_REL:case h.PATHSEG_CURVETO_QUADRATIC_REL:case h.PATHSEG_ARC_REL:case h.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:case h.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:{const t=r;s.x+=t.x,s.y+=t.y;break}case h.PATHSEG_LINETO_HORIZONTAL_REL:s.x+=r.x;break;case h.PATHSEG_LINETO_VERTICAL_REL:s.y+=r.y;break;case h.PATHSEG_UNKNOWN:case h.PATHSEG_CLOSEPATH:continue}i.push({x:s.x*e+n.x,y:s.y*e+n.y})}}return i}(this.paths,S,this.offset)},this._polygonBounce=(t,e,n)=>{const i=this._container.actualOptions.polygon;if(!this.raw||!i?.enable||n!==a.OutModeDirection.top)return!1;if(i.type===h.inside||i.type===h.outside){let e,n,i;const o=t.getPosition(),r=t.getRadius(),s=1;for(let h=0,S=this.raw.length-s;h<this.raw.length;S=h++){const s=this.raw[h],c=this.raw[S];e=y(s,c,o);const u=(0,a.getDistances)(o,e);if([n,i]=[u.dx,u.dy],u.distance<r)return G(s,c,t.velocity),!0}if(e&&void 0!==n&&void 0!==i&&!this._checkInsidePolygon(o)){const n={x:1,y:1},i=2*r,s=-1;return o.x>=e.x&&(n.x=-1),o.y>=e.y&&(n.y=-1),t.position.x=e.x+i*n.x,t.position.y=e.y+i*n.y,t.velocity.mult(s),!0}}else if(i.type===h.inline&&t.initialPosition){const e=(0,a.getDistance)(t.initialPosition,t.getPosition()),{velocity:n}=t;if(e>this._moveRadius)return n.x=n.y*m-n.x,n.y=n.x*m-n.y,!0}return!1},this._randomPoint=()=>{const t=this._container,e=t.actualOptions.polygon;if(!e)return;let n;if(e.type===h.inline)switch(e.inline.arrangement){case r.randomPoint:n=this._getRandomPoint();break;case r.randomLength:n=this._getRandomPointByLength();break;case r.equidistant:n=this._getEquidistantPointByIndex(t.particles.count);break;case r.onePerPoint:case r.perPoint:default:n=this._getPointByIndex(t.particles.count)}else{const e=t.canvas.size;n={x:(0,a.getRandom)()*e.width,y:(0,a.getRandom)()*e.height}}return this._checkInsidePolygon(n)?n:this._randomPoint()},this._container=t,this._engine=e,this.dimension={height:0,width:0},this._moveRadius=0,this._scale=1}clickPositionValid(t){const e=this._container.actualOptions.polygon;return!!e?.enable&&e.type!==h.none&&e.type!==h.inline&&this._checkInsidePolygon(t)}draw(t){if(!this.paths?.length)return;const e=this._container.actualOptions.polygon;if(!e?.enable)return;const n=e.draw;if(!n.enable)return;const i=this.raw;for(const e of this.paths){const o=e.path2d;t&&(o&&this.offset?l(this._engine,t,o,n.stroke,this.offset):i&&P(this._engine,t,i,n.stroke))}}async init(){const t=this._container,e=t.actualOptions.polygon,n=t.retina.pixelRatio;e&&(this._moveRadius=e.move.radius*n,this._scale=e.scale*n,e.enable&&await this._initRawData())}particleBounce(t,e,n){return this._polygonBounce(t,e,n)}particlePosition(t){const e=this._container.actualOptions.polygon;if(e?.enable&&(this.raw?.length??0)>0)return(0,a.deepExtend)({},t||this._randomPoint())}particlesInitialization(){const t=this._container.actualOptions.polygon;return!(!t?.enable||t.type!==h.inline||t.inline.arrangement!==r.onePerPoint&&t.inline.arrangement!==r.perPoint)&&(this._drawPoints(),!0)}resize(){const t=this._container,e=t.actualOptions.polygon;if(!e?.enable||e.type===h.none)return;this.redrawTimeout&&clearTimeout(this.redrawTimeout);this.redrawTimeout=setTimeout((()=>{(async()=>{await this._initRawData(!0),await t.particles.redraw()})()}),250)}stop(){delete this.raw,delete this.paths}}class x{constructor(t){this.id="polygonMask",this._engine=t}getPlugin(t){return Promise.resolve(new C(t,this._engine))}loadOptions(t,e){if(!this.needsPlugin(t)&&!this.needsPlugin(e))return;let n=t.polygon;void 0===n?.load&&(t.polygon=n=new _(this._engine)),n.load(e?.polygon)}needsPlugin(t){return t?.polygon?.enable??(void 0!==t?.polygon?.type&&t.polygon.type!==h.none)}}async function T(t,e=!0){t.checkVersion("3.9.0"),await t.addPlugin(new x(t),e)}return o})()));
|
|
2
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(e=>(()=>{var t,r,n={155(e,t,r){var n;r.d(t,{O:()=>n}),function(e){e.path="path",e.radius="radius"}(n||(n={}))},303(t){t.exports=e},990(e,t,r){var n;r.d(t,{T:()=>n}),function(e){e.inline="inline",e.inside="inside",e.outside="outside",e.none="none"}(n||(n={}))},999(e,t,r){var n;r.d(t,{G:()=>n}),function(e){e.equidistant="equidistant",e.onePerPoint="one-per-point",e.perPoint="per-point",e.randomLength="random-length",e.randomPoint="random-point"}(n||(n={}))}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e](r,r.exports,i),r.exports}i.m=n,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>e+".min.js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="@tsparticles/plugin-polygon-mask:",i.l=(e,n,o,a)=>{if(t[e])t[e].push(n);else{var s,l;if(void 0!==o)for(var p=document.getElementsByTagName("script"),u=0;u<p.length;u++){var c=p[u];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==r+o){s=c;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",r+o),s.src=e),t[e]=[n];var d=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var o=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),r)return r(n)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),l&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{var e={131:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,o)=>n=e[t]=[r,o]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,l]=r,p=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(l)l(i)}for(t&&t(r);p<a.length;p++)o=a[p],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=this.webpackChunk_tsparticles_plugin_polygon_mask=this.webpackChunk_tsparticles_plugin_polygon_mask||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var a={};i.r(a),i.d(a,{PolygonMaskInlineArrangement:()=>s.G,PolygonMaskMoveType:()=>l.O,PolygonMaskType:()=>p.T,loadPolygonMaskPlugin:()=>u});var s=i(999),l=i(155),p=i(990);function u(e){e.checkVersion("4.0.0-alpha.0"),e.register((async t=>{const{PolygonMaskPlugin:r}=await i.e(409).then(i.bind(i,790));t.addPlugin(new r(e))}))}return a})()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tsParticles Polygon Mask Plugin
|
|
1
|
+
/*! tsParticles Polygon Mask Plugin v4.0.0-alpha.0 by Matteo Bruni */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "./pathseg.js";
|
|
1
2
|
import { type Engine, type IContainerPlugin, type ICoordinates, type IDelta, type IDimension, OutModeDirection, type Particle } from "@tsparticles/engine";
|
|
2
3
|
import type { ISvgPath } from "./Interfaces/ISvgPath.js";
|
|
3
4
|
import type { PolygonMaskContainer } from "./types.js";
|
package/types/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import "./pathseg.js";
|
|
2
1
|
import { type Engine } from "@tsparticles/engine";
|
|
3
|
-
export declare function loadPolygonMaskPlugin(engine: Engine
|
|
2
|
+
export declare function loadPolygonMaskPlugin(engine: Engine): void;
|
|
4
3
|
export * from "./Enums/PolygonMaskInlineArrangement.js";
|
|
5
4
|
export * from "./Enums/PolygonMaskMoveType.js";
|
|
6
5
|
export * from "./Enums/PolygonMaskType.js";
|
package/types/utils.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Engine, type ICoordinates, Vector } from "@tsparticles/engine";
|
|
2
2
|
import type { IPolygonMaskDrawStroke } from "./Options/Interfaces/IPolygonMaskDrawStroke.js";
|
|
3
3
|
import type { ISvgPath } from "./Interfaces/ISvgPath.js";
|
|
4
|
-
export declare function drawPolygonMask(engine: Engine, context: CanvasRenderingContext2D, rawData: ICoordinates[], stroke: IPolygonMaskDrawStroke): void;
|
|
5
|
-
export declare function drawPolygonMaskPath(engine: Engine, context: CanvasRenderingContext2D, path: Path2D, stroke: IPolygonMaskDrawStroke, position: ICoordinates): void;
|
|
4
|
+
export declare function drawPolygonMask(engine: Engine, context: CanvasRenderingContext2D, rawData: ICoordinates[], stroke: IPolygonMaskDrawStroke, hdr?: boolean): void;
|
|
5
|
+
export declare function drawPolygonMaskPath(engine: Engine, context: CanvasRenderingContext2D, path: Path2D, stroke: IPolygonMaskDrawStroke, position: ICoordinates, hdr?: boolean): void;
|
|
6
6
|
export declare function parsePaths(paths: ISvgPath[], scale: number, offset: ICoordinates): ICoordinates[];
|
|
7
7
|
export declare function calcClosestPointOnSegment(s1: ICoordinates, s2: ICoordinates, pos: ICoordinates): ICoordinates & {
|
|
8
8
|
isOnSegment: boolean;
|
|
@@ -4,17 +4,18 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@tsparticles/engine", "./utils.js", "./Enums/PolygonMaskInlineArrangement.js", "./Enums/PolygonMaskType.js"], factory);
|
|
7
|
+
define(["require", "exports", "./pathseg.js", "@tsparticles/engine", "./utils.js", "./Enums/PolygonMaskInlineArrangement.js", "./Enums/PolygonMaskType.js"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.PolygonMaskInstance = void 0;
|
|
13
|
+
require("./pathseg.js");
|
|
13
14
|
const engine_1 = require("@tsparticles/engine");
|
|
14
15
|
const utils_js_1 = require("./utils.js");
|
|
15
16
|
const PolygonMaskInlineArrangement_js_1 = require("./Enums/PolygonMaskInlineArrangement.js");
|
|
16
17
|
const PolygonMaskType_js_1 = require("./Enums/PolygonMaskType.js");
|
|
17
|
-
const noPolygonDataLoaded =
|
|
18
|
+
const noPolygonDataLoaded = `No polygon data loaded.`, noPolygonFound = `No polygon found, you need to specify SVG url in config.`, origin = {
|
|
18
19
|
x: 0,
|
|
19
20
|
y: 0,
|
|
20
21
|
}, half = 0.5, double = 2;
|
|
@@ -31,7 +32,11 @@
|
|
|
31
32
|
const canvasSize = container.canvas.size, x = position?.x ?? (0, engine_1.getRandom)() * canvasSize.width, y = position?.y ?? (0, engine_1.getRandom)() * canvasSize.height, indexOffset = 1;
|
|
32
33
|
let inside = false;
|
|
33
34
|
for (let i = 0, j = this.raw.length - indexOffset; i < this.raw.length; j = i++) {
|
|
34
|
-
const pi = this.raw[i], pj = this.raw[j]
|
|
35
|
+
const pi = this.raw[i], pj = this.raw[j];
|
|
36
|
+
if (!pi || !pj) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const intersect = pi.y > y !== pj.y > y && x < ((pj.x - pi.x) * (y - pi.y)) / (pj.y - pi.y) + pi.x;
|
|
35
40
|
if (intersect) {
|
|
36
41
|
inside = !inside;
|
|
37
42
|
}
|
|
@@ -40,7 +45,7 @@
|
|
|
40
45
|
return inside;
|
|
41
46
|
}
|
|
42
47
|
else {
|
|
43
|
-
return
|
|
48
|
+
return !inside;
|
|
44
49
|
}
|
|
45
50
|
};
|
|
46
51
|
this._createPath2D = () => {
|
|
@@ -49,16 +54,11 @@
|
|
|
49
54
|
return;
|
|
50
55
|
}
|
|
51
56
|
for (const path of this.paths) {
|
|
52
|
-
const pathData = path.element
|
|
57
|
+
const pathData = path.element.getAttribute("d");
|
|
53
58
|
if (pathData) {
|
|
54
|
-
const path2d = new Path2D(pathData), matrix =
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
path.path2d = finalPath;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
delete path.path2d;
|
|
61
|
-
}
|
|
59
|
+
const path2d = new Path2D(pathData), matrix = (0, engine_1.safeDocument)().createElementNS("http://www.w3.org/2000/svg", "svg").createSVGMatrix(), finalPath = new Path2D(), transform = matrix.scale(this._scale);
|
|
60
|
+
finalPath.addPath(path2d, transform);
|
|
61
|
+
path.path2d = finalPath;
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
64
64
|
delete path.path2d;
|
|
@@ -68,6 +68,9 @@
|
|
|
68
68
|
}
|
|
69
69
|
path.path2d = new Path2D();
|
|
70
70
|
const firstIndex = 0, firstPoint = this.raw[firstIndex];
|
|
71
|
+
if (!firstPoint) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
71
74
|
path.path2d.moveTo(firstPoint.x, firstPoint.y);
|
|
72
75
|
this.raw.forEach((pos, i) => {
|
|
73
76
|
if (i > firstIndex) {
|
|
@@ -88,7 +91,7 @@
|
|
|
88
91
|
}
|
|
89
92
|
const req = await fetch(url);
|
|
90
93
|
if (!req.ok) {
|
|
91
|
-
throw new Error(
|
|
94
|
+
throw new Error(`Error occurred during polygon mask download`);
|
|
92
95
|
}
|
|
93
96
|
return this._parseSvgPath(await req.text(), force);
|
|
94
97
|
};
|
|
@@ -134,6 +137,9 @@
|
|
|
134
137
|
throw new Error(noPolygonDataLoaded);
|
|
135
138
|
}
|
|
136
139
|
const coords = this.raw[index % this.raw.length];
|
|
140
|
+
if (!coords) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
137
143
|
return {
|
|
138
144
|
x: coords.x,
|
|
139
145
|
y: coords.y,
|
|
@@ -144,6 +150,9 @@
|
|
|
144
150
|
throw new Error(noPolygonDataLoaded);
|
|
145
151
|
}
|
|
146
152
|
const coords = (0, engine_1.itemFromArray)(this.raw);
|
|
153
|
+
if (!coords) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
147
156
|
return {
|
|
148
157
|
x: coords.x,
|
|
149
158
|
y: coords.y,
|
|
@@ -157,7 +166,11 @@
|
|
|
157
166
|
if (!this.raw?.length || !this.paths?.length) {
|
|
158
167
|
throw new Error(noPolygonDataLoaded);
|
|
159
168
|
}
|
|
160
|
-
const path = (0, engine_1.itemFromArray)(this.paths)
|
|
169
|
+
const path = (0, engine_1.itemFromArray)(this.paths);
|
|
170
|
+
if (!path) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const offset = 1, distance = Math.floor((0, engine_1.getRandom)() * path.length) + offset, point = path.element.getPointAtLength(distance), scale = this._scale;
|
|
161
174
|
return {
|
|
162
175
|
x: point.x * scale + (this.offset?.x ?? origin.x),
|
|
163
176
|
y: point.y * scale + (this.offset?.y ?? origin.y),
|
|
@@ -180,7 +193,7 @@
|
|
|
180
193
|
else {
|
|
181
194
|
const getPath = (p) => `<path d="${p}" />`, path = (0, engine_1.isArray)(data.path) ? data.path.map(getPath).join("") : getPath(data.path);
|
|
182
195
|
const namespaces = 'xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"';
|
|
183
|
-
svg = `<svg ${namespaces} width="${data.size.width}" height="${data.size.height}">${path}</svg>`;
|
|
196
|
+
svg = `<svg ${namespaces} width="${data.size.width.toString()}" height="${data.size.height.toString()}">${path}</svg>`;
|
|
184
197
|
}
|
|
185
198
|
this.raw = this._parseSvgPath(svg, force);
|
|
186
199
|
}
|
|
@@ -199,6 +212,9 @@
|
|
|
199
212
|
return;
|
|
200
213
|
}
|
|
201
214
|
const parser = new DOMParser(), doc = parser.parseFromString(xml, "image/svg+xml"), firstIndex = 0, svg = doc.getElementsByTagName("svg")[firstIndex];
|
|
215
|
+
if (!svg) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
202
218
|
let svgPaths = svg.getElementsByTagName("path");
|
|
203
219
|
if (!svgPaths.length) {
|
|
204
220
|
svgPaths = doc.getElementsByTagName("path");
|
|
@@ -226,7 +242,7 @@
|
|
|
226
242
|
};
|
|
227
243
|
return (0, utils_js_1.parsePaths)(this.paths, scale, this.offset);
|
|
228
244
|
};
|
|
229
|
-
this._polygonBounce = (particle,
|
|
245
|
+
this._polygonBounce = (particle, _delta, direction) => {
|
|
230
246
|
const options = this._container.actualOptions.polygon;
|
|
231
247
|
if (!this.raw || !options?.enable || direction !== engine_1.OutModeDirection.top) {
|
|
232
248
|
return false;
|
|
@@ -236,6 +252,9 @@
|
|
|
236
252
|
const pos = particle.getPosition(), radius = particle.getRadius(), offset = 1;
|
|
237
253
|
for (let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++) {
|
|
238
254
|
const pi = this.raw[i], pj = this.raw[j];
|
|
255
|
+
if (!pi || !pj) {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
239
258
|
closest = (0, utils_js_1.calcClosestPointOnSegment)(pi, pj, pos);
|
|
240
259
|
const dist = (0, engine_1.getDistances)(pos, closest);
|
|
241
260
|
[dx, dy] = [dist.dx, dist.dy];
|
|
@@ -258,7 +277,7 @@
|
|
|
258
277
|
return true;
|
|
259
278
|
}
|
|
260
279
|
}
|
|
261
|
-
else if (options.type === PolygonMaskType_js_1.PolygonMaskType.inline
|
|
280
|
+
else if (options.type === PolygonMaskType_js_1.PolygonMaskType.inline) {
|
|
262
281
|
const dist = (0, engine_1.getDistance)(particle.initialPosition, particle.getPosition()), { velocity } = particle;
|
|
263
282
|
if (dist > this._moveRadius) {
|
|
264
283
|
velocity.x = velocity.y * half - velocity.x;
|
|
@@ -336,14 +355,11 @@
|
|
|
336
355
|
const rawData = this.raw;
|
|
337
356
|
for (const path of this.paths) {
|
|
338
357
|
const path2d = path.path2d;
|
|
339
|
-
if (!context) {
|
|
340
|
-
continue;
|
|
341
|
-
}
|
|
342
358
|
if (path2d && this.offset) {
|
|
343
|
-
(0, utils_js_1.drawPolygonMaskPath)(this._engine, context, path2d, polygonDraw.stroke, this.offset);
|
|
359
|
+
(0, utils_js_1.drawPolygonMaskPath)(this._engine, context, path2d, polygonDraw.stroke, this.offset, this._container.hdr);
|
|
344
360
|
}
|
|
345
361
|
else if (rawData) {
|
|
346
|
-
(0, utils_js_1.drawPolygonMask)(this._engine, context, rawData, polygonDraw.stroke);
|
|
362
|
+
(0, utils_js_1.drawPolygonMask)(this._engine, context, rawData, polygonDraw.stroke, this._container.hdr);
|
|
347
363
|
}
|
|
348
364
|
}
|
|
349
365
|
}
|
|
@@ -366,7 +382,7 @@
|
|
|
366
382
|
if (!(options?.enable && (this.raw?.length ?? defaultLength) > defaultLength)) {
|
|
367
383
|
return;
|
|
368
384
|
}
|
|
369
|
-
return (0, engine_1.deepExtend)({}, position
|
|
385
|
+
return (0, engine_1.deepExtend)({}, position ?? this._randomPoint());
|
|
370
386
|
}
|
|
371
387
|
particlesInitialization() {
|
|
372
388
|
const options = this._container.actualOptions.polygon;
|
package/umd/index.js
CHANGED
|
@@ -9,6 +9,28 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
9
9
|
if (k2 === undefined) k2 = k;
|
|
10
10
|
o[k2] = m[k];
|
|
11
11
|
}));
|
|
12
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
13
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
14
|
+
}) : function(o, v) {
|
|
15
|
+
o["default"] = v;
|
|
16
|
+
});
|
|
17
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
18
|
+
var ownKeys = function(o) {
|
|
19
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
20
|
+
var ar = [];
|
|
21
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
22
|
+
return ar;
|
|
23
|
+
};
|
|
24
|
+
return ownKeys(o);
|
|
25
|
+
};
|
|
26
|
+
return function (mod) {
|
|
27
|
+
if (mod && mod.__esModule) return mod;
|
|
28
|
+
var result = {};
|
|
29
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
30
|
+
__setModuleDefault(result, mod);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
12
34
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
13
35
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
14
36
|
};
|
|
@@ -18,17 +40,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
40
|
if (v !== undefined) module.exports = v;
|
|
19
41
|
}
|
|
20
42
|
else if (typeof define === "function" && define.amd) {
|
|
21
|
-
define(["require", "exports", "./
|
|
43
|
+
define(["require", "exports", "./Enums/PolygonMaskInlineArrangement.js", "./Enums/PolygonMaskMoveType.js", "./Enums/PolygonMaskType.js"], factory);
|
|
22
44
|
}
|
|
23
45
|
})(function (require, exports) {
|
|
24
46
|
"use strict";
|
|
47
|
+
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
|
25
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
49
|
exports.loadPolygonMaskPlugin = loadPolygonMaskPlugin;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
50
|
+
function loadPolygonMaskPlugin(engine) {
|
|
51
|
+
engine.checkVersion("4.0.0-alpha.0");
|
|
52
|
+
engine.register(async (e) => {
|
|
53
|
+
const { PolygonMaskPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./PolygonMaskPlugin.js"))) : new Promise((resolve_1, reject_1) => { require(["./PolygonMaskPlugin.js"], resolve_1, reject_1); }).then(__importStar));
|
|
54
|
+
e.addPlugin(new PolygonMaskPlugin(engine));
|
|
55
|
+
});
|
|
32
56
|
}
|
|
33
57
|
__exportStar(require("./Enums/PolygonMaskInlineArrangement.js"), exports);
|
|
34
58
|
__exportStar(require("./Enums/PolygonMaskMoveType.js"), exports);
|
package/umd/pathseg.js
CHANGED
|
@@ -1147,7 +1147,7 @@
|
|
|
1147
1147
|
return string;
|
|
1148
1148
|
};
|
|
1149
1149
|
window.SVGPathSegList.prototype._parsePath = function (string) {
|
|
1150
|
-
if (!string
|
|
1150
|
+
if (!string?.length)
|
|
1151
1151
|
return [];
|
|
1152
1152
|
const owningPathSegList = this;
|
|
1153
1153
|
const Builder = function () {
|
package/umd/utils.js
CHANGED
|
@@ -19,23 +19,26 @@
|
|
|
19
19
|
min: 0,
|
|
20
20
|
max: 1,
|
|
21
21
|
}, double = 2;
|
|
22
|
-
function drawPolygonMask(engine, context, rawData, stroke) {
|
|
22
|
+
function drawPolygonMask(engine, context, rawData, stroke, hdr = false) {
|
|
23
23
|
const color = (0, engine_1.rangeColorToRgb)(engine, stroke.color);
|
|
24
24
|
if (!color) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
const firstIndex = 0, firstItem = rawData[firstIndex];
|
|
28
|
+
if (!firstItem) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
28
31
|
context.beginPath();
|
|
29
32
|
context.moveTo(firstItem.x, firstItem.y);
|
|
30
33
|
for (const item of rawData) {
|
|
31
34
|
context.lineTo(item.x, item.y);
|
|
32
35
|
}
|
|
33
36
|
context.closePath();
|
|
34
|
-
context.strokeStyle = (0, engine_1.getStyleFromRgb)(color);
|
|
37
|
+
context.strokeStyle = (0, engine_1.getStyleFromRgb)(color, hdr);
|
|
35
38
|
context.lineWidth = stroke.width;
|
|
36
39
|
context.stroke();
|
|
37
40
|
}
|
|
38
|
-
function drawPolygonMaskPath(engine, context, path, stroke, position) {
|
|
41
|
+
function drawPolygonMaskPath(engine, context, path, stroke, position, hdr = false) {
|
|
39
42
|
const defaultTransform = {
|
|
40
43
|
a: 1,
|
|
41
44
|
b: 0,
|
|
@@ -47,7 +50,7 @@
|
|
|
47
50
|
if (!color) {
|
|
48
51
|
return;
|
|
49
52
|
}
|
|
50
|
-
context.strokeStyle = (0, engine_1.getStyleFromRgb)(color, stroke.opacity);
|
|
53
|
+
context.strokeStyle = (0, engine_1.getStyleFromRgb)(color, hdr, stroke.opacity);
|
|
51
54
|
context.lineWidth = stroke.width;
|
|
52
55
|
context.stroke(path);
|
|
53
56
|
context.resetTransform();
|
|
@@ -60,7 +63,7 @@
|
|
|
60
63
|
y: 0,
|
|
61
64
|
};
|
|
62
65
|
for (let i = 0; i < len; i++) {
|
|
63
|
-
const segment = segments?.getItem(i), svgPathSeg =
|
|
66
|
+
const segment = segments?.getItem(i), svgPathSeg = globalThis.SVGPathSeg;
|
|
64
67
|
switch (segment?.pathSegType) {
|
|
65
68
|
case svgPathSeg.PATHSEG_MOVETO_ABS:
|
|
66
69
|
case svgPathSeg.PATHSEG_LINETO_ABS:
|