fabric-vectr 6.7.13 → 6.7.14

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.
Files changed (31) hide show
  1. package/dist/index.js +21 -14
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.min.js +1 -1
  4. package/dist/index.min.js.map +1 -1
  5. package/dist/index.min.mjs +1 -1
  6. package/dist/index.min.mjs.map +1 -1
  7. package/dist/index.mjs +21 -14
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/index.node.cjs +21 -14
  10. package/dist/index.node.cjs.map +1 -1
  11. package/dist/index.node.mjs +21 -14
  12. package/dist/index.node.mjs.map +1 -1
  13. package/dist/package.json.min.mjs +1 -1
  14. package/dist/package.json.mjs +1 -1
  15. package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
  16. package/dist/src/canvas/StaticCanvas.min.mjs +1 -1
  17. package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
  18. package/dist/src/canvas/StaticCanvas.mjs +15 -12
  19. package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
  20. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
  21. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +1 -1
  22. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -1
  23. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +5 -1
  24. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -1
  25. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +1 -1
  26. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
  27. package/package.json +33 -33
  28. package/src/canvas/StaticCanvas.spec.ts +23 -0
  29. package/src/canvas/StaticCanvas.ts +19 -12
  30. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +5 -1
  31. package/src/shapes/Text/TextSVGExportMixin.spec.ts +16 -0
@@ -1 +1 @@
1
- {"version":3,"file":"FabricObjectSVGExportMixin.mjs","sources":["../../../../src/shapes/Object/FabricObjectSVGExportMixin.ts"],"sourcesContent":["import type { TSVGReviver } from '../../typedefs';\nimport { uid } from '../../util/internals/uid';\nimport { colorPropToSVG } from '../../util/misc/svgParsing';\nimport { FILL, NONE, STROKE } from '../../constants';\nimport type { FabricObject } from './FabricObject';\nimport { isFiller } from '../../util/typeAssertions';\nimport { Pattern } from '../../Pattern';\nimport { matrixToSVG } from '../../util/misc/svgExport';\n\nexport class FabricObjectSVGExportMixin {\n /**\n * When an object is being exported as SVG as a clippath, a reference inside the SVG is needed.\n * This reference is a UID in the fabric namespace and is temporary stored here.\n * @type {String}\n */\n declare clipPathId?: string;\n\n /**\n * James added, 增加clipPathPattern属性,用于导出svg时 Pattern转Image对象\n */\n declare clipPathPattern?: FabricObject | null;\n\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles(\n this: FabricObjectSVGExportMixin & FabricObject,\n skipShadow?: boolean,\n ) {\n const fillRule = this.fillRule ? this.fillRule : 'nonzero',\n strokeWidth = this.strokeWidth ? this.strokeWidth : '0',\n strokeDashArray = this.strokeDashArray\n ? this.strokeDashArray.join(' ')\n : NONE,\n strokeDashOffset = this.strokeDashOffset ? this.strokeDashOffset : '0',\n strokeLineCap = this.strokeLineCap ? this.strokeLineCap : 'butt',\n strokeLineJoin = this.strokeLineJoin ? this.strokeLineJoin : 'miter',\n strokeMiterLimit = this.strokeMiterLimit ? this.strokeMiterLimit : '4',\n opacity = typeof this.opacity !== 'undefined' ? this.opacity : '1',\n visibility = this.visible ? '' : ' visibility: hidden;',\n filter = skipShadow ? '' : this.getSvgFilter(),\n // James modified, 非skipShadow 时候,fill和stroke都设置为白色\n fill = skipShadow ? colorPropToSVG(FILL, this.fill) : 'fill: white;',\n stroke = skipShadow\n ? colorPropToSVG(STROKE, this.stroke)\n : 'stroke:white;';\n\n return [\n stroke,\n 'stroke-width: ',\n strokeWidth,\n '; ',\n 'stroke-dasharray: ',\n strokeDashArray,\n '; ',\n 'stroke-linecap: ',\n strokeLineCap,\n '; ',\n 'stroke-dashoffset: ',\n strokeDashOffset,\n '; ',\n 'stroke-linejoin: ',\n strokeLineJoin,\n '; ',\n 'stroke-miterlimit: ',\n strokeMiterLimit,\n '; ',\n fill,\n 'fill-rule: ',\n fillRule,\n '; ',\n 'opacity: ',\n opacity,\n ';',\n filter,\n visibility,\n ].join('');\n }\n\n /**\n * Returns filter for svg shadow\n * @return {String}\n */\n getSvgFilter(this: FabricObjectSVGExportMixin & FabricObject) {\n return this.shadow ? `filter: url(#SVGID_${this.shadow.id});` : '';\n }\n\n /**\n * Returns id attribute for svg output\n * @return {String}\n */\n getSvgCommons(\n this: FabricObjectSVGExportMixin & FabricObject & { id?: string },\n ) {\n return [\n this.id ? `id=\"${this.id}\" ` : '',\n this.clipPath\n ? `clip-path=\"url(#${\n (this.clipPath as FabricObjectSVGExportMixin & FabricObject)\n .clipPathId\n })\" `\n : '',\n ].join('');\n }\n\n /**\n * Returns transform-string for svg-export\n * @param {Boolean} use the full transform or the single object one.\n * @return {String}\n */\n getSvgTransform(\n this: FabricObjectSVGExportMixin & FabricObject,\n full?: boolean,\n additionalTransform = '',\n ) {\n const transform = full ? this.calcTransformMatrix() : this.calcOwnMatrix(),\n svgTransform = `transform=\"${matrixToSVG(transform)}`;\n return `${svgTransform}${additionalTransform}\" `;\n }\n\n /**\n * Returns svg representation of an instance\n * This function is implemented in each subclass\n * This is just because typescript otherwise cryies all the time\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(_reviver?: TSVGReviver): string[] {\n return [''];\n }\n\n /**\n * Returns svg representation of an instance\n * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG(\n this: FabricObjectSVGExportMixin & FabricObject,\n reviver?: TSVGReviver,\n ) {\n return this._createBaseSVGMarkup(this._toSVG(reviver), {\n reviver,\n });\n }\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG(\n this: FabricObjectSVGExportMixin & FabricObject,\n reviver?: TSVGReviver,\n ) {\n return (\n '\\t' +\n this._createBaseClipPathSVGMarkup(this._toSVG(reviver), {\n reviver,\n })\n );\n }\n\n /**\n * James added\n * Returns pattern svg attributes string\n * @return {String}\n */\n getPatternSvgCommons(\n this: FabricObjectSVGExportMixin & FabricObject & { id?: string },\n ) {\n return [\n this.id ? 'id=\"' + this.id + '_clip\" ' : '',\n this.clipPathPattern\n ? 'clip-path=\"url(#' + this.clipPathPattern.clipPathId + ')\" '\n : '',\n ].join('');\n }\n\n /**\n * James added\n * Returns id attribute for svg clippath output\n * @return {String}\n */\n getSvgCommonsClipPath(\n this: FabricObjectSVGExportMixin & FabricObject & { id?: string },\n ) {\n if (this.clipPathPattern) {\n return [this.id ? 'id=\"' + this.id + '\" ' : ''].join('');\n } else {\n return this.getSvgCommons();\n }\n }\n\n /**\n * James added\n * 自定义clipPath的svg输出transform\n * @param {*} full\n * @param {*} additionalTransform\n */\n getSvgTransformClipPath(\n this: FabricObjectSVGExportMixin & FabricObject,\n full: boolean,\n additionalTransform = '',\n ) {\n // 如果是pattern,就不需要transform\n if (this.clipPathPattern) {\n return additionalTransform\n ? 'transform=\"' + additionalTransform + '\" '\n : '';\n } else {\n return this.getSvgTransform(full, additionalTransform);\n }\n }\n\n /**\n * @private\n */\n _createBaseClipPathSVGMarkup(\n this: FabricObjectSVGExportMixin & FabricObject,\n objectMarkup: string[],\n {\n reviver,\n additionalTransform = '',\n }: { reviver?: TSVGReviver; additionalTransform?: string } = {},\n ) {\n const commonPieces = [\n this.getSvgTransformClipPath(true, additionalTransform),\n this.getSvgCommonsClipPath(),\n ].join(''),\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n objectMarkup[index] = commonPieces;\n return reviver ? reviver(objectMarkup.join('')) : objectMarkup.join('');\n }\n\n /**\n * @private\n */\n _createBaseSVGMarkup(\n this: FabricObjectSVGExportMixin & FabricObject,\n objectMarkup: string[],\n {\n noStyle,\n reviver,\n withShadow,\n additionalTransform,\n }: {\n noStyle?: boolean;\n reviver?: TSVGReviver;\n withShadow?: boolean;\n additionalTransform?: string;\n } = {},\n ): string {\n var skipShadow = true;\n let clipPath = this.clipPath as FabricObjectSVGExportMixin & FabricObject;\n const styleInfo = noStyle\n ? ''\n : `style=\"${this.getSvgStyles(skipShadow)}\" `,\n shadowInfo = withShadow ? `style=\"${this.getSvgFilter()}\" ` : '',\n vectorEffect = this.strokeUniform\n ? 'vector-effect=\"non-scaling-stroke\" '\n : '',\n absoluteClipPath = clipPath && clipPath.absolutePositioned,\n stroke = this.stroke,\n fill = this.fill,\n shadow = this.shadow,\n markup = [],\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n // James added\n let commonPieces = '',\n clipPathMarkup = '';\n\n // 如果是pattern,就生成clipppath\n // 使用 clipPathPattern区别是否是pattern\n this.clipPathPattern = null;\n if (fill instanceof Pattern) {\n this.clipPathPattern = clipPath = this;\n }\n // James added end\n if (clipPath) {\n clipPath.clipPathId = `CLIPPATH_${uid()}`;\n clipPathMarkup = `<clipPath id=\"${\n clipPath.clipPathId\n }\" >\\n${clipPath.toClipPathSVG(reviver)}</clipPath>\\n`;\n }\n if (absoluteClipPath) {\n markup.push('<g ', shadowInfo, this.getSvgCommons(), ' >\\n');\n }\n markup.push(\n '<g ',\n this.getSvgTransform(false),\n !absoluteClipPath ? shadowInfo + this.getSvgCommons() : '',\n ' >\\n',\n );\n commonPieces = [\n styleInfo,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(),\n ' ',\n additionalTransform ? `transform=\"${additionalTransform}\" ` : '',\n ].join('');\n\n // James added shadow 放在上面\n if (shadow) {\n const styleInfoWithShadow = 'style=\"' + this.getSvgStyles(false) + '\" ';\n const commonPiecesWithShadow = [\n styleInfoWithShadow,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(),\n ' ',\n additionalTransform ? 'transform=\"' + additionalTransform + '\" ' : '',\n ].join('');\n const objectMarkupCopy = JSON.parse(JSON.stringify(objectMarkup));\n objectMarkupCopy[index] = commonPiecesWithShadow;\n\n markup.push(objectMarkupCopy.join(''));\n markup.push(shadow.toSVG(this));\n }\n // objectMarkup中是导出主对象(如path)的svg,index下标是style,放在commonPieces\n objectMarkup[index] = commonPieces;\n if (isFiller(fill)) {\n // James added clipPattern apply pattern clip path just for fill.\n if (this.clipPathPattern) {\n markup.push('<g ', shadowInfo, this.getPatternSvgCommons(), ' >\\n');\n }\n markup.push(fill.toSVG(this));\n // James added clipPattern\n if (this.clipPathPattern) {\n markup.push('</g>\\n');\n }\n }\n if (isFiller(stroke)) {\n markup.push(stroke.toSVG(this));\n }\n if (clipPath) {\n markup.push(clipPathMarkup);\n }\n // if use pattern, ignore objectMarkup, because pattern clipPath has been applied in pattern's svg, and objectMarkup is not needed anymore\n if (!this.clipPathPattern) {\n markup.push(objectMarkup.join(''));\n }\n markup.push('</g>\\n');\n absoluteClipPath && markup.push('</g>\\n');\n return reviver ? reviver(markup.join('')) : markup.join('');\n }\n\n addPaintOrder(this: FabricObjectSVGExportMixin & FabricObject) {\n return this.paintFirst !== FILL ? ` paint-order=\"${this.paintFirst}\" ` : '';\n }\n}\n"],"names":["FabricObjectSVGExportMixin","getSvgStyles","skipShadow","fillRule","strokeWidth","strokeDashArray","join","NONE","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","opacity","visibility","visible","filter","getSvgFilter","fill","colorPropToSVG","FILL","stroke","STROKE","shadow","id","getSvgCommons","clipPath","clipPathId","getSvgTransform","full","additionalTransform","arguments","length","undefined","transform","calcTransformMatrix","calcOwnMatrix","svgTransform","matrixToSVG","_toSVG","_reviver","toSVG","reviver","_createBaseSVGMarkup","toClipPathSVG","_createBaseClipPathSVGMarkup","getPatternSvgCommons","clipPathPattern","getSvgCommonsClipPath","getSvgTransformClipPath","objectMarkup","commonPieces","index","indexOf","noStyle","withShadow","styleInfo","shadowInfo","vectorEffect","strokeUniform","absoluteClipPath","absolutePositioned","markup","clipPathMarkup","Pattern","uid","push","addPaintOrder","styleInfoWithShadow","commonPiecesWithShadow","objectMarkupCopy","JSON","parse","stringify","isFiller","paintFirst"],"mappings":"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"}
1
+ {"version":3,"file":"FabricObjectSVGExportMixin.mjs","sources":["../../../../src/shapes/Object/FabricObjectSVGExportMixin.ts"],"sourcesContent":["import type { TSVGReviver } from '../../typedefs';\nimport { uid } from '../../util/internals/uid';\nimport { colorPropToSVG } from '../../util/misc/svgParsing';\nimport { FILL, NONE, STROKE } from '../../constants';\nimport type { FabricObject } from './FabricObject';\nimport { isFiller } from '../../util/typeAssertions';\nimport { Pattern } from '../../Pattern';\nimport { matrixToSVG } from '../../util/misc/svgExport';\n\nexport class FabricObjectSVGExportMixin {\n /**\n * When an object is being exported as SVG as a clippath, a reference inside the SVG is needed.\n * This reference is a UID in the fabric namespace and is temporary stored here.\n * @type {String}\n */\n declare clipPathId?: string;\n\n /**\n * James added, 增加clipPathPattern属性,用于导出svg时 Pattern转Image对象\n */\n declare clipPathPattern?: FabricObject | null;\n\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles(\n this: FabricObjectSVGExportMixin & FabricObject,\n skipShadow?: boolean,\n ) {\n const fillRule = this.fillRule ? this.fillRule : 'nonzero',\n strokeWidth = this.strokeWidth ? this.strokeWidth : '0',\n strokeDashArray = this.strokeDashArray\n ? this.strokeDashArray.join(' ')\n : NONE,\n strokeDashOffset = this.strokeDashOffset ? this.strokeDashOffset : '0',\n strokeLineCap = this.strokeLineCap ? this.strokeLineCap : 'butt',\n strokeLineJoin = this.strokeLineJoin ? this.strokeLineJoin : 'miter',\n strokeMiterLimit = this.strokeMiterLimit ? this.strokeMiterLimit : '4',\n opacity = typeof this.opacity !== 'undefined' ? this.opacity : '1',\n visibility = this.visible ? '' : ' visibility: hidden;',\n filter = skipShadow ? '' : this.getSvgFilter(),\n // James modified, 非skipShadow 时候,fill和stroke都设置为白色\n fill = skipShadow ? colorPropToSVG(FILL, this.fill) : 'fill: white;',\n stroke = skipShadow\n ? colorPropToSVG(STROKE, this.stroke)\n : 'stroke:white;';\n\n return [\n stroke,\n 'stroke-width: ',\n strokeWidth,\n '; ',\n 'stroke-dasharray: ',\n strokeDashArray,\n '; ',\n 'stroke-linecap: ',\n strokeLineCap,\n '; ',\n 'stroke-dashoffset: ',\n strokeDashOffset,\n '; ',\n 'stroke-linejoin: ',\n strokeLineJoin,\n '; ',\n 'stroke-miterlimit: ',\n strokeMiterLimit,\n '; ',\n fill,\n 'fill-rule: ',\n fillRule,\n '; ',\n 'opacity: ',\n opacity,\n ';',\n filter,\n visibility,\n ].join('');\n }\n\n /**\n * Returns filter for svg shadow\n * @return {String}\n */\n getSvgFilter(this: FabricObjectSVGExportMixin & FabricObject) {\n return this.shadow ? `filter: url(#SVGID_${this.shadow.id});` : '';\n }\n\n /**\n * Returns id attribute for svg output\n * @return {String}\n */\n getSvgCommons(\n this: FabricObjectSVGExportMixin & FabricObject & { id?: string },\n ) {\n return [\n this.id ? `id=\"${this.id}\" ` : '',\n this.clipPath\n ? `clip-path=\"url(#${\n (this.clipPath as FabricObjectSVGExportMixin & FabricObject)\n .clipPathId\n })\" `\n : '',\n ].join('');\n }\n\n /**\n * Returns transform-string for svg-export\n * @param {Boolean} use the full transform or the single object one.\n * @return {String}\n */\n getSvgTransform(\n this: FabricObjectSVGExportMixin & FabricObject,\n full?: boolean,\n additionalTransform = '',\n ) {\n const transform = full ? this.calcTransformMatrix() : this.calcOwnMatrix(),\n svgTransform = `transform=\"${matrixToSVG(transform)}`;\n return `${svgTransform}${additionalTransform}\" `;\n }\n\n /**\n * Returns svg representation of an instance\n * This function is implemented in each subclass\n * This is just because typescript otherwise cryies all the time\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(_reviver?: TSVGReviver): string[] {\n return [''];\n }\n\n /**\n * Returns svg representation of an instance\n * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG(\n this: FabricObjectSVGExportMixin & FabricObject,\n reviver?: TSVGReviver,\n ) {\n return this._createBaseSVGMarkup(this._toSVG(reviver), {\n reviver,\n });\n }\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG(\n this: FabricObjectSVGExportMixin & FabricObject,\n reviver?: TSVGReviver,\n ) {\n return (\n '\\t' +\n this._createBaseClipPathSVGMarkup(this._toSVG(reviver), {\n reviver,\n })\n );\n }\n\n /**\n * James added\n * Returns pattern svg attributes string\n * @return {String}\n */\n getPatternSvgCommons(\n this: FabricObjectSVGExportMixin & FabricObject & { id?: string },\n ) {\n return [\n this.id ? 'id=\"' + this.id + '_clip\" ' : '',\n this.clipPathPattern\n ? 'clip-path=\"url(#' + this.clipPathPattern.clipPathId + ')\" '\n : '',\n ].join('');\n }\n\n /**\n * James added\n * Returns id attribute for svg clippath output\n * @return {String}\n */\n getSvgCommonsClipPath(\n this: FabricObjectSVGExportMixin & FabricObject & { id?: string },\n ) {\n if (this.clipPathPattern) {\n return [this.id ? 'id=\"' + this.id + '\" ' : ''].join('');\n } else {\n return this.getSvgCommons();\n }\n }\n\n /**\n * James added\n * 自定义clipPath的svg输出transform\n * @param {*} full\n * @param {*} additionalTransform\n */\n getSvgTransformClipPath(\n this: FabricObjectSVGExportMixin & FabricObject,\n full: boolean,\n additionalTransform = '',\n ) {\n // 如果是pattern,就不需要transform\n if (this.clipPathPattern) {\n return additionalTransform\n ? 'transform=\"' + additionalTransform + '\" '\n : '';\n } else {\n return this.getSvgTransform(full, additionalTransform);\n }\n }\n\n /**\n * @private\n */\n _createBaseClipPathSVGMarkup(\n this: FabricObjectSVGExportMixin & FabricObject,\n objectMarkup: string[],\n {\n reviver,\n additionalTransform = '',\n }: { reviver?: TSVGReviver; additionalTransform?: string } = {},\n ) {\n const commonPieces = [\n this.getSvgTransformClipPath(true, additionalTransform),\n this.getSvgCommonsClipPath(),\n ].join(''),\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n objectMarkup[index] = commonPieces;\n return reviver ? reviver(objectMarkup.join('')) : objectMarkup.join('');\n }\n\n /**\n * @private\n */\n _createBaseSVGMarkup(\n this: FabricObjectSVGExportMixin & FabricObject,\n objectMarkup: string[],\n {\n noStyle,\n reviver,\n withShadow,\n additionalTransform,\n }: {\n noStyle?: boolean;\n reviver?: TSVGReviver;\n withShadow?: boolean;\n additionalTransform?: string;\n } = {},\n ): string {\n var skipShadow = true;\n let clipPath = this.clipPath as FabricObjectSVGExportMixin & FabricObject;\n const styleInfo = noStyle\n ? ''\n : `style=\"${this.getSvgStyles(skipShadow)}\" `,\n shadowInfo = withShadow ? `style=\"${this.getSvgFilter()}\" ` : '',\n vectorEffect = this.strokeUniform\n ? 'vector-effect=\"non-scaling-stroke\" '\n : '',\n absoluteClipPath = clipPath && clipPath.absolutePositioned,\n stroke = this.stroke,\n fill = this.fill,\n shadow = this.shadow,\n markup = [],\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n // James added\n let commonPieces = '',\n clipPathMarkup = '';\n\n // 如果是pattern,就生成clipppath\n // 使用 clipPathPattern区别是否是pattern\n this.clipPathPattern = null;\n if (fill instanceof Pattern) {\n this.clipPathPattern = clipPath = this;\n }\n // James added end\n if (clipPath) {\n clipPath.clipPathId = `CLIPPATH_${uid()}`;\n clipPathMarkup = `<clipPath id=\"${\n clipPath.clipPathId\n }\" >\\n${clipPath.toClipPathSVG(reviver)}</clipPath>\\n`;\n }\n if (absoluteClipPath) {\n markup.push('<g ', shadowInfo, this.getSvgCommons(), ' >\\n');\n }\n markup.push(\n '<g ',\n this.getSvgTransform(false),\n !absoluteClipPath ? shadowInfo + this.getSvgCommons() : '',\n ' >\\n',\n );\n commonPieces = [\n styleInfo,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(),\n ' ',\n additionalTransform ? `transform=\"${additionalTransform}\" ` : '',\n ].join('');\n\n // James added shadow 放在上面\n // 文本等调用方已经通过 withShadow 挂载 filter 时,避免再额外复制一份可见对象,\n // 但仍然需要输出 filter 定义,否则普通 SVG 会丢失阴影。\n if (shadow) {\n markup.push(shadow.toSVG(this));\n }\n if (shadow && !withShadow) {\n const styleInfoWithShadow = 'style=\"' + this.getSvgStyles(false) + '\" ';\n const commonPiecesWithShadow = [\n styleInfoWithShadow,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(),\n ' ',\n additionalTransform ? 'transform=\"' + additionalTransform + '\" ' : '',\n ].join('');\n const objectMarkupCopy = JSON.parse(JSON.stringify(objectMarkup));\n objectMarkupCopy[index] = commonPiecesWithShadow;\n\n markup.push(objectMarkupCopy.join(''));\n }\n // objectMarkup中是导出主对象(如path)的svg,index下标是style,放在commonPieces\n objectMarkup[index] = commonPieces;\n if (isFiller(fill)) {\n // James added clipPattern apply pattern clip path just for fill.\n if (this.clipPathPattern) {\n markup.push('<g ', shadowInfo, this.getPatternSvgCommons(), ' >\\n');\n }\n markup.push(fill.toSVG(this));\n // James added clipPattern\n if (this.clipPathPattern) {\n markup.push('</g>\\n');\n }\n }\n if (isFiller(stroke)) {\n markup.push(stroke.toSVG(this));\n }\n if (clipPath) {\n markup.push(clipPathMarkup);\n }\n // if use pattern, ignore objectMarkup, because pattern clipPath has been applied in pattern's svg, and objectMarkup is not needed anymore\n if (!this.clipPathPattern) {\n markup.push(objectMarkup.join(''));\n }\n markup.push('</g>\\n');\n absoluteClipPath && markup.push('</g>\\n');\n return reviver ? reviver(markup.join('')) : markup.join('');\n }\n\n addPaintOrder(this: FabricObjectSVGExportMixin & FabricObject) {\n return this.paintFirst !== FILL ? ` paint-order=\"${this.paintFirst}\" ` : '';\n }\n}\n"],"names":["FabricObjectSVGExportMixin","getSvgStyles","skipShadow","fillRule","strokeWidth","strokeDashArray","join","NONE","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","opacity","visibility","visible","filter","getSvgFilter","fill","colorPropToSVG","FILL","stroke","STROKE","shadow","id","getSvgCommons","clipPath","clipPathId","getSvgTransform","full","additionalTransform","arguments","length","undefined","transform","calcTransformMatrix","calcOwnMatrix","svgTransform","matrixToSVG","_toSVG","_reviver","toSVG","reviver","_createBaseSVGMarkup","toClipPathSVG","_createBaseClipPathSVGMarkup","getPatternSvgCommons","clipPathPattern","getSvgCommonsClipPath","getSvgTransformClipPath","objectMarkup","commonPieces","index","indexOf","noStyle","withShadow","styleInfo","shadowInfo","vectorEffect","strokeUniform","absoluteClipPath","absolutePositioned","markup","clipPathMarkup","Pattern","uid","push","addPaintOrder","styleInfoWithShadow","commonPiecesWithShadow","objectMarkupCopy","JSON","parse","stringify","isFiller","paintFirst"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StaticCanvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/StaticCanvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticCanvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/StaticCanvas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FabricObjectSVGExportMixin.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Object/FabricObjectSVGExportMixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,qBAAa,0BAA0B;IACrC;;;;OAIG;IACK,UAAU,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACK,eAAe,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAE9C;;;;OAIG;IACH,YAAY,CACV,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,UAAU,CAAC,EAAE,OAAO;IAoDtB;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,0BAA0B,GAAG,YAAY;IAI5D;;;OAGG;IACH,aAAa,CACX,IAAI,EAAE,0BAA0B,GAAG,YAAY,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IAanE;;;;OAIG;IACH,eAAe,CACb,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,IAAI,CAAC,EAAE,OAAO,EACd,mBAAmB,SAAK;IAO1B;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAIxC;;;;OAIG;IACH,KAAK,CACH,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,OAAO,CAAC,EAAE,WAAW;IAOvB;;;;OAIG;IACH,aAAa,CACX,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,OAAO,CAAC,EAAE,WAAW;IAUvB;;;;OAIG;IACH,oBAAoB,CAClB,IAAI,EAAE,0BAA0B,GAAG,YAAY,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IAUnE;;;;OAIG;IACH,qBAAqB,CACnB,IAAI,EAAE,0BAA0B,GAAG,YAAY,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IASnE;;;;;OAKG;IACH,uBAAuB,CACrB,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,IAAI,EAAE,OAAO,EACb,mBAAmB,SAAK;IAY1B;;OAEG;IACH,4BAA4B,CAC1B,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,YAAY,EAAE,MAAM,EAAE,EACtB,EACE,OAAO,EACP,mBAAwB,GACzB,GAAE;QAAE,OAAO,CAAC,EAAE,WAAW,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAO;IAYjE;;OAEG;IACH,oBAAoB,CAClB,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,YAAY,EAAE,MAAM,EAAE,EACtB,EACE,OAAO,EACP,OAAO,EACP,UAAU,EACV,mBAAmB,GACpB,GAAE;QACD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KACzB,GACL,MAAM;IA+FT,aAAa,CAAC,IAAI,EAAE,0BAA0B,GAAG,YAAY;CAG9D"}
1
+ {"version":3,"file":"FabricObjectSVGExportMixin.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Object/FabricObjectSVGExportMixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,qBAAa,0BAA0B;IACrC;;;;OAIG;IACK,UAAU,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACK,eAAe,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAE9C;;;;OAIG;IACH,YAAY,CACV,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,UAAU,CAAC,EAAE,OAAO;IAoDtB;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,0BAA0B,GAAG,YAAY;IAI5D;;;OAGG;IACH,aAAa,CACX,IAAI,EAAE,0BAA0B,GAAG,YAAY,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IAanE;;;;OAIG;IACH,eAAe,CACb,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,IAAI,CAAC,EAAE,OAAO,EACd,mBAAmB,SAAK;IAO1B;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAIxC;;;;OAIG;IACH,KAAK,CACH,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,OAAO,CAAC,EAAE,WAAW;IAOvB;;;;OAIG;IACH,aAAa,CACX,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,OAAO,CAAC,EAAE,WAAW;IAUvB;;;;OAIG;IACH,oBAAoB,CAClB,IAAI,EAAE,0BAA0B,GAAG,YAAY,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IAUnE;;;;OAIG;IACH,qBAAqB,CACnB,IAAI,EAAE,0BAA0B,GAAG,YAAY,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IASnE;;;;;OAKG;IACH,uBAAuB,CACrB,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,IAAI,EAAE,OAAO,EACb,mBAAmB,SAAK;IAY1B;;OAEG;IACH,4BAA4B,CAC1B,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,YAAY,EAAE,MAAM,EAAE,EACtB,EACE,OAAO,EACP,mBAAwB,GACzB,GAAE;QAAE,OAAO,CAAC,EAAE,WAAW,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAO;IAYjE;;OAEG;IACH,oBAAoB,CAClB,IAAI,EAAE,0BAA0B,GAAG,YAAY,EAC/C,YAAY,EAAE,MAAM,EAAE,EACtB,EACE,OAAO,EACP,OAAO,EACP,UAAU,EACV,mBAAmB,GACpB,GAAE;QACD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KACzB,GACL,MAAM;IAmGT,aAAa,CAAC,IAAI,EAAE,0BAA0B,GAAG,YAAY;CAG9D"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "fabric-vectr",
3
3
  "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.",
4
4
  "homepage": "http://fabricjs.com/",
5
- "version": "6.7.13",
5
+ "version": "6.7.14",
6
6
  "author": "Juriy Zaytsev <kangax@gmail.com>",
7
7
  "contributors": [
8
8
  {
@@ -39,37 +39,6 @@
39
39
  "url": "https://github.com/fabricjs/fabric.js/issues"
40
40
  },
41
41
  "license": "MIT",
42
- "scripts": {
43
- "docs": "typedoc",
44
- "cli": "node ./scripts/index.mjs",
45
- "sandboxscript": "node ./scripts/sandbox.mjs",
46
- "build": "npm run cli -- build",
47
- "build:fast": "npm run build -- -f",
48
- "yalc": "npm run build:fast && yalc push",
49
- "watch": "nodemon --ignore dist/ --ignore node_modules/ --watch src/ -C -e ts,tsx,scss --debug -x 'npm run yalc'",
50
- "dev": "npm run cli -- dev",
51
- "start": "npm run sandboxscript -- start",
52
- "export": "npm run cli -- website export",
53
- "build-tests": "rollup -c ./rollup.test.config.js",
54
- "test:vitest": "vitest --run",
55
- "test": "npm run cli -- test",
56
- "sandbox": "npm run sandboxscript -- sandbox",
57
- "test:unit-browser": "npm run cli -- test --suite unit --launch --context chrome",
58
- "test:visual-browser": "npm run test -- -s visual -p 8081 -l -c chrome firefox",
59
- "test:coverage": "nyc --silent qunit test/node_test_setup.js test/lib test/unit",
60
- "test:visual:coverage": "nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual",
61
- "test:vitest:coverage": "vitest --coverage=true --run",
62
- "test:vitest:coverage:watch": "vitest --coverage=true",
63
- "coverage:merge": "nyc merge coveragefiles .nyc_output/merged-coverage.json",
64
- "local-server": "http-server ./ -d=false",
65
- "test:e2e": "npx playwright test --headed",
66
- "coverage:report": "nyc report --reporter=lcov --reporter=text",
67
- "lint": "eslint src extensions",
68
- "prettier:check": "prettier --check .",
69
- "prettier:write": "prettier --write .",
70
- "babel-constants": "babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value",
71
- "babel-src": "babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt"
72
- },
73
42
  "devDependencies": {
74
43
  "@babel/cli": "^7.22.9",
75
44
  "@babel/core": "^7.22.9",
@@ -174,5 +143,36 @@
174
143
  "optionalDependencies": {
175
144
  "canvas": "^3.1.0",
176
145
  "jsdom": "^26.0.0"
146
+ },
147
+ "scripts": {
148
+ "docs": "typedoc",
149
+ "cli": "node ./scripts/index.mjs",
150
+ "sandboxscript": "node ./scripts/sandbox.mjs",
151
+ "build": "npm run cli -- build",
152
+ "build:fast": "npm run build -- -f",
153
+ "yalc": "npm run build:fast && yalc push",
154
+ "watch": "nodemon --ignore dist/ --ignore node_modules/ --watch src/ -C -e ts,tsx,scss --debug -x 'npm run yalc'",
155
+ "dev": "npm run cli -- dev",
156
+ "start": "npm run sandboxscript -- start",
157
+ "export": "npm run cli -- website export",
158
+ "build-tests": "rollup -c ./rollup.test.config.js",
159
+ "test:vitest": "vitest --run",
160
+ "test": "npm run cli -- test",
161
+ "sandbox": "npm run sandboxscript -- sandbox",
162
+ "test:unit-browser": "npm run cli -- test --suite unit --launch --context chrome",
163
+ "test:visual-browser": "npm run test -- -s visual -p 8081 -l -c chrome firefox",
164
+ "test:coverage": "nyc --silent qunit test/node_test_setup.js test/lib test/unit",
165
+ "test:visual:coverage": "nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual",
166
+ "test:vitest:coverage": "vitest --coverage=true --run",
167
+ "test:vitest:coverage:watch": "vitest --coverage=true",
168
+ "coverage:merge": "nyc merge coveragefiles .nyc_output/merged-coverage.json",
169
+ "local-server": "http-server ./ -d=false",
170
+ "test:e2e": "npx playwright test --headed",
171
+ "coverage:report": "nyc report --reporter=lcov --reporter=text",
172
+ "lint": "eslint src extensions",
173
+ "prettier:check": "prettier --check .",
174
+ "prettier:write": "prettier --write .",
175
+ "babel-constants": "babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value",
176
+ "babel-src": "babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt"
177
177
  }
178
- }
178
+ }
@@ -1,4 +1,7 @@
1
1
  import { StaticCanvas } from './StaticCanvas';
2
+ import { Group } from '../shapes/Group';
3
+ import { Path } from '../shapes/Path';
4
+ import { FabricText } from '../shapes/Text/Text';
2
5
 
3
6
  import { it, expect, describe } from 'vitest';
4
7
 
@@ -24,4 +27,24 @@ describe('StaticCanvas', () => {
24
27
  */
25
28
  expect(dataURL).toMatch(/^data:image\/(webp|png)/);
26
29
  });
30
+
31
+ it('exports text on path inside group to svg defs', () => {
32
+ const canvas = new StaticCanvas(undefined, { width: 300, height: 300 });
33
+ const textPath = new FabricText('Text On Path', {
34
+ id: 'group-text-path',
35
+ path: new Path('M 0 0 L 120 0'),
36
+ fontSize: 20,
37
+ });
38
+ const group = new Group([textPath], {
39
+ left: 40,
40
+ top: 60,
41
+ });
42
+
43
+ canvas.add(group);
44
+
45
+ const svg = canvas.toSVG();
46
+
47
+ expect(svg).toContain('<textPath href="#TEXTPATH_group-text-path" ');
48
+ expect(svg).toContain('id="TEXTPATH_group-text-path"');
49
+ });
27
50
  });
@@ -1083,22 +1083,28 @@ export class StaticCanvas<
1083
1083
  */
1084
1084
  _createPathForText() {
1085
1085
  const pathMarkups: string[] = [];
1086
- let instance,
1087
- i,
1088
- len,
1089
- objects = this._objects;
1090
- for (i = 0, len = objects.length; i < len; i++) {
1091
- instance = objects[i];
1086
+ const objects: FabricObject[] = [];
1087
+
1088
+ this._objects.forEach(function add(object) {
1089
+ objects.push(object);
1090
+ if (isCollection(object)) {
1091
+ object._objects.forEach(add);
1092
+ }
1093
+ });
1094
+
1095
+ objects.forEach((instance) => {
1092
1096
  if (instance.excludeFromExport) {
1093
- continue;
1097
+ return;
1094
1098
  }
1095
1099
 
1096
1100
  if (!isTextObject(instance) || !instance.path) {
1097
- continue;
1101
+ return;
1098
1102
  }
1099
- let pathId = `TEXTPATH_${(instance as any).id}`;
1100
- let pathMarkup = instance.path._toSVG();
1101
- let index = pathMarkup.indexOf('COMMON_PARTS');
1103
+
1104
+ const pathId = `TEXTPATH_${(instance as any).id}`;
1105
+ const pathMarkup = instance.path._toSVG();
1106
+ const index = pathMarkup.indexOf('COMMON_PARTS');
1107
+
1102
1108
  // 加上id, 和路径偏移
1103
1109
  pathMarkup[index] = [
1104
1110
  'id="' + pathId + '" ',
@@ -1109,7 +1115,8 @@ export class StaticCanvas<
1109
1115
  ')" ',
1110
1116
  ].join('');
1111
1117
  pathMarkups.push(pathMarkup.join(''));
1112
- }
1118
+ });
1119
+
1113
1120
  return pathMarkups.join('\n');
1114
1121
  }
1115
1122
 
@@ -304,7 +304,12 @@ export class FabricObjectSVGExportMixin {
304
304
  ].join('');
305
305
 
306
306
  // James added shadow 放在上面
307
+ // 文本等调用方已经通过 withShadow 挂载 filter 时,避免再额外复制一份可见对象,
308
+ // 但仍然需要输出 filter 定义,否则普通 SVG 会丢失阴影。
307
309
  if (shadow) {
310
+ markup.push(shadow.toSVG(this));
311
+ }
312
+ if (shadow && !withShadow) {
308
313
  const styleInfoWithShadow = 'style="' + this.getSvgStyles(false) + '" ';
309
314
  const commonPiecesWithShadow = [
310
315
  styleInfoWithShadow,
@@ -317,7 +322,6 @@ export class FabricObjectSVGExportMixin {
317
322
  objectMarkupCopy[index] = commonPiecesWithShadow;
318
323
 
319
324
  markup.push(objectMarkupCopy.join(''));
320
- markup.push(shadow.toSVG(this));
321
325
  }
322
326
  // objectMarkup中是导出主对象(如path)的svg,index下标是style,放在commonPieces
323
327
  objectMarkup[index] = commonPieces;
@@ -1,4 +1,5 @@
1
1
  import { FabricText } from './Text';
2
+ import { Shadow } from '../../Shadow';
2
3
 
3
4
  import { describe, expect, it } from 'vitest';
4
5
 
@@ -28,4 +29,19 @@ describe('TextSvgExport', () => {
28
29
  );
29
30
  expect(svgStyles.includes('stroke="none"')).toBe(false);
30
31
  });
32
+
33
+ it('exports shadowed text without duplicating text markup', () => {
34
+ const myText = new FabricText('text', {
35
+ shadow: new Shadow({
36
+ color: 'rgba(0, 0, 0, 0.4)',
37
+ blur: 6,
38
+ offsetX: 4,
39
+ offsetY: 4,
40
+ }),
41
+ });
42
+ const svgString = myText.toSVG();
43
+ expect((svgString.match(/<text /g) || []).length).toBe(1);
44
+ expect(svgString.includes('filter: url(#SVGID_')).toBe(true);
45
+ expect(svgString.includes('<filter id="SVGID_')).toBe(true);
46
+ });
31
47
  });