fabric-vectr 6.7.8 → 6.7.10

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 (35) hide show
  1. package/dist/index.js +9 -4
  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 +9 -4
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/index.node.cjs +9 -4
  10. package/dist/index.node.cjs.map +1 -1
  11. package/dist/index.node.mjs +9 -4
  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/SelectableCanvas.d.ts.map +1 -1
  16. package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
  17. package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
  18. package/dist/src/canvas/SelectableCanvas.mjs +3 -1
  19. package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
  20. package/dist/src/canvas/StaticCanvas.min.mjs +1 -1
  21. package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
  22. package/dist/src/canvas/StaticCanvas.mjs +1 -1
  23. package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
  24. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
  25. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +1 -1
  26. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -1
  27. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +4 -1
  28. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -1
  29. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +1 -1
  30. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/canvas/SelectableCanvas.ts +7 -1
  33. package/src/canvas/StaticCanvas.ts +1 -1
  34. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +4 -1
  35. package/package-lock.json +0 -12236
@@ -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 markup.push(objectMarkup.join(''));\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 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 +1 @@
1
- {"version":3,"file":"SelectableCanvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/SelectableCanvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectableCanvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/SelectableCanvas.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;IA4FT,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;IA+FT,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.8",
5
+ "version": "6.7.10",
6
6
  "author": "Juriy Zaytsev <kangax@gmail.com>",
7
7
  "contributors": [
8
8
  {
@@ -799,7 +799,13 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
799
799
 
800
800
  this.targets = [];
801
801
 
802
- if (activeObject && aObjects.length >= 1 && !this._fixedSearchTargets) {
802
+ // valid _fixedSearchTargets is null or _fixedSearchTargets includes activeObject
803
+ if (
804
+ activeObject &&
805
+ aObjects.length >= 1 &&
806
+ (!this._fixedSearchTargets ||
807
+ this._fixedSearchTargets.includes(activeObject))
808
+ ) {
803
809
  if (activeObject.findControl(pointer, isTouchEvent(e))) {
804
810
  // if we hit the corner of the active object, let's return that.
805
811
  return activeObject;
@@ -1096,7 +1096,7 @@ export class StaticCanvas<
1096
1096
  if (!isTextObject(instance) || !instance.path) {
1097
1097
  continue;
1098
1098
  }
1099
- let pathId = `TEXTPATH_${uid()}`;
1099
+ let pathId = `TEXTPATH_${(instance as any).id}`;
1100
1100
  let pathMarkup = instance.path._toSVG();
1101
1101
  let index = pathMarkup.indexOf('COMMON_PARTS');
1102
1102
  // 加上id, 和路径偏移
@@ -338,7 +338,10 @@ export class FabricObjectSVGExportMixin {
338
338
  if (clipPath) {
339
339
  markup.push(clipPathMarkup);
340
340
  }
341
- markup.push(objectMarkup.join(''));
341
+ // if use pattern, ignore objectMarkup, because pattern clipPath has been applied in pattern's svg, and objectMarkup is not needed anymore
342
+ if (!this.clipPathPattern) {
343
+ markup.push(objectMarkup.join(''));
344
+ }
342
345
  markup.push('</g>\n');
343
346
  absoluteClipPath && markup.push('</g>\n');
344
347
  return reviver ? reviver(markup.join('')) : markup.join('');