svgedit/dist/editor/extensions/ext-closepath.js.map

1 line
106 KiB
Plaintext

{"version":3,"file":"ext-closepath.js","sources":["../../../src/common/svgpathseg.js","../../../src/editor/extensions/ext-closepath.js"],"sourcesContent":["/* eslint-disable import/unambiguous, max-len */\n/* globals SVGPathSeg, SVGPathSegMovetoRel, SVGPathSegMovetoAbs,\n SVGPathSegMovetoRel, SVGPathSegLinetoRel, SVGPathSegLinetoAbs,\n SVGPathSegLinetoHorizontalRel, SVGPathSegLinetoHorizontalAbs,\n SVGPathSegLinetoVerticalRel, SVGPathSegLinetoVerticalAbs,\n SVGPathSegClosePath, SVGPathSegCurvetoCubicRel,\n SVGPathSegCurvetoCubicAbs, SVGPathSegCurvetoCubicSmoothRel,\n SVGPathSegCurvetoCubicSmoothAbs, SVGPathSegCurvetoQuadraticRel,\n SVGPathSegCurvetoQuadraticAbs, SVGPathSegCurvetoQuadraticSmoothRel,\n SVGPathSegCurvetoQuadraticSmoothAbs, SVGPathSegArcRel, SVGPathSegArcAbs */\n/**\n* SVGPathSeg API polyfill\n* https://github.com/progers/pathseg\n*\n* This is a drop-in replacement for the `SVGPathSeg` and `SVGPathSegList` APIs\n* that were removed from SVG2 ({@link https://lists.w3.org/Archives/Public/www-svg/2015Jun/0044.html}),\n* including the latest spec changes which were implemented in Firefox 43 and\n* Chrome 46.\n*/\n/* eslint-disable no-shadow, class-methods-use-this, jsdoc/require-jsdoc */\n// Linting: We avoid `no-shadow` as ESLint thinks these are still available globals\n// Linting: We avoid `class-methods-use-this` as this is a polyfill that must\n// follow the conventions\n(() => {\nif (!('SVGPathSeg' in window)) {\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSeg\n class SVGPathSeg {\n constructor (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n }\n // Notify owning PathSegList on any changes so they can be synchronized back to the path element.\n _segmentChanged () {\n if (this._owningPathSegList) {\n this._owningPathSegList.segmentChanged(this);\n }\n }\n }\n SVGPathSeg.prototype.classname = 'SVGPathSeg';\n\n SVGPathSeg.PATHSEG_UNKNOWN = 0;\n SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n SVGPathSeg.PATHSEG_LINETO_REL = 5;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n SVGPathSeg.PATHSEG_ARC_ABS = 10;\n SVGPathSeg.PATHSEG_ARC_REL = 11;\n SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n\n class SVGPathSegClosePath extends SVGPathSeg {\n constructor (owningPathSegList) {\n super(SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList);\n }\n toString () { return '[object SVGPathSegClosePath]'; }\n _asPathString () { return this.pathSegTypeAsLetter; }\n clone () { return new SVGPathSegClosePath(undefined); }\n }\n\n class SVGPathSegMovetoAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegMovetoAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegMovetoAbs(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegMovetoAbs.prototype, {\n x: {\n get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true\n },\n y: {\n get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true\n }\n });\n\n class SVGPathSegMovetoRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegMovetoRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegMovetoRel(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegMovetoRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegLinetoAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoAbs(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegLinetoAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegLinetoRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoRel(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegLinetoRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoCubicAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoCubicRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegArcAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n super(SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n }\n toString () { return '[object SVGPathSegArcAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._r1 + ' ' + this._r2 + ' ' + this._angle + ' ' + (this._largeArcFlag ? '1' : '0') + ' ' + (this._sweepFlag ? '1' : '0') + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag); }\n }\n Object.defineProperties(SVGPathSegArcAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n r1: {get () { return this._r1; }, set (r1) { this._r1 = r1; this._segmentChanged(); }, enumerable: true},\n r2: {get () { return this._r2; }, set (r2) { this._r2 = r2; this._segmentChanged(); }, enumerable: true},\n angle: {get () { return this._angle; }, set (angle) { this._angle = angle; this._segmentChanged(); }, enumerable: true},\n largeArcFlag: {get () { return this._largeArcFlag; }, set (largeArcFlag) { this._largeArcFlag = largeArcFlag; this._segmentChanged(); }, enumerable: true},\n sweepFlag: {get () { return this._sweepFlag; }, set (sweepFlag) { this._sweepFlag = sweepFlag; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegArcRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n super(SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n }\n toString () { return '[object SVGPathSegArcRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._r1 + ' ' + this._r2 + ' ' + this._angle + ' ' + (this._largeArcFlag ? '1' : '0') + ' ' + (this._sweepFlag ? '1' : '0') + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag); }\n }\n Object.defineProperties(SVGPathSegArcRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n r1: {get () { return this._r1; }, set (r1) { this._r1 = r1; this._segmentChanged(); }, enumerable: true},\n r2: {get () { return this._r2; }, set (r2) { this._r2 = r2; this._segmentChanged(); }, enumerable: true},\n angle: {get () { return this._angle; }, set (angle) { this._angle = angle; this._segmentChanged(); }, enumerable: true},\n largeArcFlag: {get () { return this._largeArcFlag; }, set (largeArcFlag) { this._largeArcFlag = largeArcFlag; this._segmentChanged(); }, enumerable: true},\n sweepFlag: {get () { return this._sweepFlag; }, set (sweepFlag) { this._sweepFlag = sweepFlag; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {\n constructor (owningPathSegList, x) {\n super(SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList);\n this._x = x;\n }\n toString () { return '[object SVGPathSegLinetoHorizontalAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x; }\n clone () { return new SVGPathSegLinetoHorizontalAbs(undefined, this._x); }\n }\n Object.defineProperty(SVGPathSegLinetoHorizontalAbs.prototype, 'x', {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegLinetoHorizontalRel extends SVGPathSeg {\n constructor (owningPathSegList, x) {\n super(SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList);\n this._x = x;\n }\n toString () { return '[object SVGPathSegLinetoHorizontalRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x; }\n clone () { return new SVGPathSegLinetoHorizontalRel(undefined, this._x); }\n }\n Object.defineProperty(SVGPathSegLinetoHorizontalRel.prototype, 'x', {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegLinetoVerticalAbs extends SVGPathSeg {\n constructor (owningPathSegList, y) {\n super(SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList);\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoVerticalAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoVerticalAbs(undefined, this._y); }\n }\n Object.defineProperty(SVGPathSegLinetoVerticalAbs.prototype, 'y', {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegLinetoVerticalRel extends SVGPathSeg {\n constructor (owningPathSegList, y) {\n super(SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList);\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoVerticalRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoVerticalRel(undefined, this._y); }\n }\n Object.defineProperty(SVGPathSegLinetoVerticalRel.prototype, 'y', {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicSmoothAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicSmoothAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicSmoothRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicSmoothRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticSmoothAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticSmoothAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticSmoothRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticSmoothRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n // Add createSVGPathSeg* functions to SVGPathElement.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathElement.\n SVGPathElement.prototype.createSVGPathSegClosePath = function () { return new SVGPathSegClosePath(undefined); };\n SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) { return new SVGPathSegMovetoAbs(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) { return new SVGPathSegMovetoRel(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) { return new SVGPathSegLinetoAbs(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) { return new SVGPathSegLinetoRel(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) { return new SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) { return new SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) { return new SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) { return new SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1); };\n SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) { return new SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag); };\n SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) { return new SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag); };\n SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) { return new SVGPathSegLinetoHorizontalAbs(undefined, x); };\n SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) { return new SVGPathSegLinetoHorizontalRel(undefined, x); };\n SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) { return new SVGPathSegLinetoVerticalAbs(undefined, y); };\n SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) { return new SVGPathSegLinetoVerticalRel(undefined, y); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) { return new SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) { return new SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) { return new SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) { return new SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y); };\n\n if (!('getPathSegAtLength' in SVGPathElement.prototype)) {\n // Add getPathSegAtLength to SVGPathElement.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-__svg__SVGPathElement__getPathSegAtLength\n // This polyfill requires SVGPathElement.getTotalLength to implement the distance-along-a-path algorithm.\n SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance)) {\n throw new Error('Invalid arguments.');\n }\n\n const measurementElement = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n measurementElement.setAttribute('d', this.getAttribute('d'));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n\n // If the path is empty, return 0.\n if (lastPathSegment <= 0) {\n return 0;\n }\n\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength()) {\n break;\n }\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n\n window.SVGPathSeg = SVGPathSeg;\n window.SVGPathSegClosePath = SVGPathSegClosePath;\n window.SVGPathSegMovetoAbs = SVGPathSegMovetoAbs;\n window.SVGPathSegMovetoRel = SVGPathSegMovetoRel;\n window.SVGPathSegLinetoAbs = SVGPathSegLinetoAbs;\n window.SVGPathSegLinetoRel = SVGPathSegLinetoRel;\n window.SVGPathSegCurvetoCubicAbs = SVGPathSegCurvetoCubicAbs;\n window.SVGPathSegCurvetoCubicRel = SVGPathSegCurvetoCubicRel;\n window.SVGPathSegCurvetoQuadraticAbs = SVGPathSegCurvetoQuadraticAbs;\n window.SVGPathSegCurvetoQuadraticRel = SVGPathSegCurvetoQuadraticRel;\n window.SVGPathSegArcAbs = SVGPathSegArcAbs;\n window.SVGPathSegArcRel = SVGPathSegArcRel;\n window.SVGPathSegLinetoHorizontalAbs = SVGPathSegLinetoHorizontalAbs;\n window.SVGPathSegLinetoHorizontalRel = SVGPathSegLinetoHorizontalRel;\n window.SVGPathSegLinetoVerticalAbs = SVGPathSegLinetoVerticalAbs;\n window.SVGPathSegLinetoVerticalRel = SVGPathSegLinetoVerticalRel;\n window.SVGPathSegCurvetoCubicSmoothAbs = SVGPathSegCurvetoCubicSmoothAbs;\n window.SVGPathSegCurvetoCubicSmoothRel = SVGPathSegCurvetoCubicSmoothRel;\n window.SVGPathSegCurvetoQuadraticSmoothAbs = SVGPathSegCurvetoQuadraticSmoothAbs;\n window.SVGPathSegCurvetoQuadraticSmoothRel = SVGPathSegCurvetoQuadraticSmoothRel;\n}\n\n// Checking for SVGPathSegList in window checks for the case of an implementation without the\n// SVGPathSegList API.\n// The second check for appendItem is specific to Firefox 59+ which removed only parts of the\n// SVGPathSegList API (e.g., appendItem). In this case we need to re-implement the entire API\n// so the polyfill data (i.e., _list) is used throughout.\nif (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.prototype)) {\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSegList\n class SVGPathSegList {\n constructor (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute('d'));\n\n // Use a MutationObserver to catch changes to the path's \"d\" attribute.\n this._mutationObserverConfig = {attributes: true, attributeFilter: ['d']};\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n }\n // Process any pending mutations to the path element and update the list as needed.\n // This should be the first call of all public functions and is needed because\n // MutationObservers are not synchronous so we can have pending asynchronous mutations.\n _checkPathSynchronizedToList () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n }\n\n _updateListFromPathMutations (mutationRecords) {\n if (!this._pathElement) {\n return;\n }\n let hasPathMutations = false;\n mutationRecords.forEach((record) => {\n if (record.attributeName === 'd') {\n hasPathMutations = true;\n }\n });\n if (hasPathMutations) {\n this._list = this._parsePath(this._pathElement.getAttribute('d'));\n }\n }\n\n // Serialize the list and update the path's 'd' attribute.\n _writeListToPath () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute('d', SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n }\n\n // When a path segment changes the list needs to be synchronized back to the path element.\n segmentChanged (pathSeg) {\n this._writeListToPath();\n }\n\n clear () {\n this._checkPathSynchronizedToList();\n\n this._list.forEach((pathSeg) => {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n }\n\n initialize (newItem) {\n this._checkPathSynchronizedToList();\n\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n }\n\n _checkValidIndex (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems) {\n throw new Error('INDEX_SIZE_ERR');\n }\n }\n\n getItem (index) {\n this._checkPathSynchronizedToList();\n\n this._checkValidIndex(index);\n return this._list[index];\n }\n\n insertItemBefore (newItem, index) {\n this._checkPathSynchronizedToList();\n\n // Spec: If the index is greater than or equal to numberOfItems, then the new item is appended to the end of the list.\n if (index > this.numberOfItems) {\n index = this.numberOfItems;\n }\n if (newItem._owningPathSegList) {\n // SVG2 spec says to make a copy.\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n }\n\n replaceItem (newItem, index) {\n this._checkPathSynchronizedToList();\n\n if (newItem._owningPathSegList) {\n // SVG2 spec says to make a copy.\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n }\n\n removeItem (index) {\n this._checkPathSynchronizedToList();\n\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n }\n\n appendItem (newItem) {\n this._checkPathSynchronizedToList();\n\n if (newItem._owningPathSegList) {\n // SVG2 spec says to make a copy.\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n // TODO: Optimize this to just append to the existing attribute.\n this._writeListToPath();\n return newItem;\n }\n\n // This closely follows SVGPathParser::parsePath from Source/core/svg/SVGPathParser.cpp.\n _parsePath (string) {\n if (!string || !string.length) {\n return [];\n }\n\n const owningPathSegList = this;\n\n class Builder {\n constructor () {\n this.pathSegList = [];\n }\n appendSegment (pathSeg) {\n this.pathSegList.push(pathSeg);\n }\n }\n\n class Source {\n constructor (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = SVGPathSeg.PATHSEG_UNKNOWN;\n\n this._skipOptionalSpaces();\n }\n _isCurrentSpace () {\n const character = this._string[this._currentIndex];\n return character <= ' ' && (character === ' ' || character === '\\n' || character === '\\t' || character === '\\r' || character === '\\f');\n }\n\n _skipOptionalSpaces () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace()) {\n this._currentIndex++;\n }\n return this._currentIndex < this._endIndex;\n }\n\n _skipOptionalSpacesOrDelimiter () {\n if (this._currentIndex < this._endIndex && !this._isCurrentSpace() && this._string.charAt(this._currentIndex) !== ',') {\n return false;\n }\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === ',') {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n }\n\n hasMoreData () {\n return this._currentIndex < this._endIndex;\n }\n\n peekSegmentType () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n }\n\n _pathSegTypeFromChar (lookahead) {\n switch (lookahead) {\n case 'Z':\n case 'z':\n return SVGPathSeg.PATHSEG_CLOSEPATH;\n case 'M':\n return SVGPathSeg.PATHSEG_MOVETO_ABS;\n case 'm':\n return SVGPathSeg.PATHSEG_MOVETO_REL;\n case 'L':\n return SVGPathSeg.PATHSEG_LINETO_ABS;\n case 'l':\n return SVGPathSeg.PATHSEG_LINETO_REL;\n case 'C':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case 'c':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case 'Q':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case 'q':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case 'A':\n return SVGPathSeg.PATHSEG_ARC_ABS;\n case 'a':\n return SVGPathSeg.PATHSEG_ARC_REL;\n case 'H':\n return SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case 'h':\n return SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case 'V':\n return SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case 'v':\n return SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case 'S':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case 's':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case 'T':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case 't':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return SVGPathSeg.PATHSEG_UNKNOWN;\n }\n }\n\n _nextCommandHelper (lookahead, previousCommand) {\n // Check for remaining coordinates in the current command.\n if ((lookahead === '+' || lookahead === '-' || lookahead === '.' || (lookahead >= '0' && lookahead <= '9')) && previousCommand !== SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand === SVGPathSeg.PATHSEG_MOVETO_ABS) {\n return SVGPathSeg.PATHSEG_LINETO_ABS;\n }\n if (previousCommand === SVGPathSeg.PATHSEG_MOVETO_REL) {\n return SVGPathSeg.PATHSEG_LINETO_REL;\n }\n return previousCommand;\n }\n return SVGPathSeg.PATHSEG_UNKNOWN;\n }\n\n initialCommandIsMoveTo () {\n // If the path is empty it is still valid, so return true.\n if (!this.hasMoreData()) {\n return true;\n }\n const command = this.peekSegmentType();\n // Path must start with moveTo.\n return command === SVGPathSeg.PATHSEG_MOVETO_ABS || command === SVGPathSeg.PATHSEG_MOVETO_REL;\n }\n\n // Parse a number from an SVG path. This very closely follows genericParseNumber(...) from Source/core/svg/SVGParserUtilities.cpp.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-PathDataBNF\n _parseNumber () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n\n const startIndex = this._currentIndex;\n\n this._skipOptionalSpaces();\n\n // Read the sign.\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === '+') {\n this._currentIndex++;\n } else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === '-') {\n this._currentIndex++;\n sign = -1;\n }\n\n if (this._currentIndex === this._endIndex || ((this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') && this._string.charAt(this._currentIndex) !== '.')) {\n // The first character of a number must be one of [0-9+-.].\n return undefined;\n }\n\n // Read the integer part, build right-to-left.\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= '0' && this._string.charAt(this._currentIndex) <= '9') {\n this._currentIndex++; // Advance to first non-digit.\n }\n\n if (this._currentIndex !== startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - '0');\n multiplier *= 10;\n }\n }\n\n // Read the decimals.\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === '.') {\n this._currentIndex++;\n\n // There must be a least one digit following the .\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') {\n return undefined;\n }\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= '0' && this._string.charAt(this._currentIndex) <= '9') {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - '0') / frac;\n this._currentIndex += 1;\n }\n }\n\n // Read the exponent part.\n if (this._currentIndex !== startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) === 'e' || this._string.charAt(this._currentIndex) === 'E') && (this._string.charAt(this._currentIndex + 1) !== 'x' && this._string.charAt(this._currentIndex + 1) !== 'm')) {\n this._currentIndex++;\n\n // Read the sign of the exponent.\n if (this._string.charAt(this._currentIndex) === '+') {\n this._currentIndex++;\n } else if (this._string.charAt(this._currentIndex) === '-') {\n this._currentIndex++;\n expsign = -1;\n }\n\n // There must be an exponent.\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') {\n return undefined;\n }\n\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= '0' && this._string.charAt(this._currentIndex) <= '9') {\n exponent *= 10;\n exponent += (this._string.charAt(this._currentIndex) - '0');\n this._currentIndex++;\n }\n }\n\n let number = integer + decimal;\n number *= sign;\n\n if (exponent) {\n number *= 10 ** (expsign * exponent);\n }\n\n if (startIndex === this._currentIndex) {\n return undefined;\n }\n\n this._skipOptionalSpacesOrDelimiter();\n\n return number;\n }\n\n _parseArcFlag () {\n if (this._currentIndex >= this._endIndex) {\n return undefined;\n }\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar === '0') {\n flag = false;\n } else if (flagChar === '1') {\n flag = true;\n } else {\n return undefined;\n }\n\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n }\n\n parseSegment () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command === SVGPathSeg.PATHSEG_UNKNOWN) {\n // Possibly an implicit command. Not allowed if this is the first command.\n if (this._previousCommand === SVGPathSeg.PATHSEG_UNKNOWN) {\n return null;\n }\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command === SVGPathSeg.PATHSEG_UNKNOWN) {\n return null;\n }\n } else {\n this._currentIndex++;\n }\n\n this._previousCommand = command;\n\n switch (command) {\n case SVGPathSeg.PATHSEG_MOVETO_REL:\n return new SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_REL:\n return new SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_ABS:\n return new SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new SVGPathSegClosePath(owningPathSegList);\n case SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL: {\n const points = {x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: {\n const points = {x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n } case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n } case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_ARC_REL: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), arcAngle: this._parseNumber(), arcLarge: this._parseArcFlag(), arcSweep: this._parseArcFlag(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n } case SVGPathSeg.PATHSEG_ARC_ABS: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), arcAngle: this._parseNumber(), arcLarge: this._parseArcFlag(), arcSweep: this._parseArcFlag(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n } default:\n throw new Error('Unknown path seg type.');\n }\n }\n }\n\n const builder = new Builder();\n const source = new Source(string);\n\n if (!source.initialCommandIsMoveTo()) {\n return [];\n }\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg) {\n return [];\n }\n builder.appendSegment(pathSeg);\n }\n\n return builder.pathSegList;\n }\n\n // STATIC\n static _pathSegArrayAsString (pathSegArray) {\n let string = '';\n let first = true;\n pathSegArray.forEach((pathSeg) => {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n } else {\n string += ' ' + pathSeg._asPathString();\n }\n });\n return string;\n }\n }\n\n SVGPathSegList.prototype.classname = 'SVGPathSegList';\n\n Object.defineProperty(SVGPathSegList.prototype, 'numberOfItems', {\n get () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n\n // Add the pathSegList accessors to SVGPathElement.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGAnimatedPathData\n Object.defineProperties(SVGPathElement.prototype, {\n pathSegList: {\n get () {\n if (!this._pathSegList) {\n this._pathSegList = new SVGPathSegList(this);\n }\n return this._pathSegList;\n },\n enumerable: true\n },\n // TODO: The following are not implemented and simply return SVGPathElement.pathSegList.\n normalizedPathSegList: {get () { return this.pathSegList; }, enumerable: true},\n animatedPathSegList: {get () { return this.pathSegList; }, enumerable: true},\n animatedNormalizedPathSegList: {get () { return this.pathSegList; }, enumerable: true}\n });\n window.SVGPathSegList = SVGPathSegList;\n}\n})();\n","/**\n * @file ext-closepath.js\n *\n * @license MIT\n *\n * @copyright 2010 Jeff Schiller\n *\n */\nimport '../../common/svgpathseg.js';\n\n// This extension adds a simple button to the contextual panel for paths\n// The button toggles whether the path is open or closed\nexport default {\n name: 'closepath',\n async init ({importLocale, $}) {\n const strings = await importLocale();\n let selElems;\n const updateButton = function (path) {\n const seglist = path.pathSegList,\n closed = seglist.getItem(seglist.numberOfItems - 1).pathSegType === 1,\n showbutton = closed ? '#tool_openpath' : '#tool_closepath',\n hidebutton = closed ? '#tool_closepath' : '#tool_openpath';\n $(hidebutton).hide();\n $(showbutton).show();\n };\n const showPanel = function (on) {\n $('#closepath_panel').toggle(on);\n if (on) {\n const path = selElems[0];\n if (path) { updateButton(path); }\n }\n };\n const toggleClosed = function () {\n const path = selElems[0];\n if (path) {\n const seglist = path.pathSegList,\n last = seglist.numberOfItems - 1;\n // is closed\n if (seglist.getItem(last).pathSegType === 1) {\n seglist.removeItem(last);\n } else {\n seglist.appendItem(path.createSVGPathSegClosePath());\n }\n updateButton(path);\n }\n };\n\n const buttons = [\n {\n id: 'tool_openpath',\n icon: 'openpath.png',\n type: 'context',\n panel: 'closepath_panel',\n events: {\n click () {\n toggleClosed();\n }\n }\n },\n {\n id: 'tool_closepath',\n icon: 'closepath.png',\n type: 'context',\n panel: 'closepath_panel',\n events: {\n click () {\n toggleClosed();\n }\n }\n }\n ];\n\n return {\n name: strings.name,\n svgicons: 'closepath_icons.svg',\n buttons: strings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n }),\n callback () {\n $('#closepath_panel').hide();\n },\n selectedChanged (opts) {\n selElems = opts.elems;\n let i = selElems.length;\n while (i--) {\n const elem = selElems[i];\n if (elem && elem.tagName === 'path') {\n if (opts.selectedElement && !opts.multiselected) {\n showPanel(true);\n } else {\n showPanel(false);\n }\n } else {\n showPanel(false);\n }\n }\n }\n };\n }\n};\n"],"names":["window","SVGPathSeg","type","typeAsLetter","owningPathSegList","pathSegType","pathSegTypeAsLetter","_owningPathSegList","segmentChanged","prototype","classname","PATHSEG_UNKNOWN","PATHSEG_CLOSEPATH","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_REL","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","SVGPathSegClosePath","undefined","SVGPathSegMovetoAbs","x","y","_x","_y","Object","defineProperties","get","set","_segmentChanged","enumerable","SVGPathSegMovetoRel","SVGPathSegLinetoAbs","SVGPathSegLinetoRel","SVGPathSegCurvetoCubicAbs","x1","y1","x2","y2","_x1","_y1","_x2","_y2","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegArcAbs","r1","r2","angle","largeArcFlag","sweepFlag","_r1","_r2","_angle","_largeArcFlag","_sweepFlag","SVGPathSegArcRel","SVGPathSegLinetoHorizontalAbs","defineProperty","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathElement","createSVGPathSegClosePath","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoRel","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","getPathSegAtLength","distance","isFinite","Error","measurementElement","document","createElementNS","setAttribute","getAttribute","lastPathSegment","pathSegList","numberOfItems","removeItem","getTotalLength","SVGPathSegList","pathElement","_pathElement","_list","_parsePath","_mutationObserverConfig","attributes","attributeFilter","_pathElementMutationObserver","MutationObserver","_updateListFromPathMutations","bind","observe","takeRecords","mutationRecords","hasPathMutations","forEach","record","attributeName","disconnect","_pathSegArrayAsString","pathSeg","_writeListToPath","_checkPathSynchronizedToList","newItem","index","isNaN","_checkValidIndex","clone","splice","item","push","string","length","Builder","Source","_string","_currentIndex","_endIndex","_previousCommand","_skipOptionalSpaces","character","_isCurrentSpace","charAt","lookahead","_pathSegTypeFromChar","previousCommand","hasMoreData","command","peekSegmentType","exponent","integer","frac","decimal","sign","expsign","startIndex","startIntPartIndex","scanIntPartIndex","multiplier","number","_skipOptionalSpacesOrDelimiter","flag","flagChar","_nextCommandHelper","_parseNumber","points","arcAngle","arcLarge","_parseArcFlag","arcSweep","builder","source","initialCommandIsMoveTo","parseSegment","appendSegment","pathSegArray","first","_asPathString","_pathSegList","normalizedPathSegList","animatedPathSegList","animatedNormalizedPathSegList","name","init","importLocale","$","strings","updateButton","path","seglist","closed","getItem","showbutton","hidebutton","hide","show","showPanel","on","toggle","selElems","toggleClosed","last","appendItem","buttons","id","icon","panel","events","click","svgicons","map","button","i","assign","callback","selectedChanged","opts","elems","elem","tagName","selectedElement","multiselected"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}