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
@@ -418,7 +418,7 @@ class Cache {
418
418
  }
419
419
  const cache = new Cache();
420
420
 
421
- var version = "6.7.13";
421
+ var version = "6.7.14";
422
422
 
423
423
  // use this syntax so babel plugin see this import here
424
424
  const VERSION = version;
@@ -3132,25 +3132,28 @@ let StaticCanvas$1 = class StaticCanvas extends createCollectionMixin(CommonMeth
3132
3132
  */
3133
3133
  _createPathForText() {
3134
3134
  const pathMarkups = [];
3135
- let instance,
3136
- i,
3137
- len,
3138
- objects = this._objects;
3139
- for (i = 0, len = objects.length; i < len; i++) {
3140
- instance = objects[i];
3135
+ const objects = [];
3136
+ this._objects.forEach(function add(object) {
3137
+ objects.push(object);
3138
+ if (isCollection(object)) {
3139
+ object._objects.forEach(add);
3140
+ }
3141
+ });
3142
+ objects.forEach(instance => {
3141
3143
  if (instance.excludeFromExport) {
3142
- continue;
3144
+ return;
3143
3145
  }
3144
3146
  if (!isTextObject(instance) || !instance.path) {
3145
- continue;
3147
+ return;
3146
3148
  }
3147
- let pathId = `TEXTPATH_${instance.id}`;
3148
- let pathMarkup = instance.path._toSVG();
3149
- let index = pathMarkup.indexOf('COMMON_PARTS');
3149
+ const pathId = `TEXTPATH_${instance.id}`;
3150
+ const pathMarkup = instance.path._toSVG();
3151
+ const index = pathMarkup.indexOf('COMMON_PARTS');
3152
+
3150
3153
  // 加上id, 和路径偏移
3151
3154
  pathMarkup[index] = ['id="' + pathId + '" ', 'transform="translate(' + -instance.path.pathOffset.x + ',' + -instance.path.pathOffset.y + ')" '].join('');
3152
3155
  pathMarkups.push(pathMarkup.join(''));
3153
- }
3156
+ });
3154
3157
  return pathMarkups.join('\n');
3155
3158
  }
3156
3159
  createSVGClipPathMarkup(options) {
@@ -5103,13 +5106,17 @@ class FabricObjectSVGExportMixin {
5103
5106
  commonPieces = [styleInfo, vectorEffect, noStyle ? '' : this.addPaintOrder(), ' ', additionalTransform ? `transform="${additionalTransform}" ` : ''].join('');
5104
5107
 
5105
5108
  // James added shadow 放在上面
5109
+ // 文本等调用方已经通过 withShadow 挂载 filter 时,避免再额外复制一份可见对象,
5110
+ // 但仍然需要输出 filter 定义,否则普通 SVG 会丢失阴影。
5106
5111
  if (shadow) {
5112
+ markup.push(shadow.toSVG(this));
5113
+ }
5114
+ if (shadow && !withShadow) {
5107
5115
  const styleInfoWithShadow = 'style="' + this.getSvgStyles(false) + '" ';
5108
5116
  const commonPiecesWithShadow = [styleInfoWithShadow, vectorEffect, noStyle ? '' : this.addPaintOrder(), ' ', additionalTransform ? 'transform="' + additionalTransform + '" ' : ''].join('');
5109
5117
  const objectMarkupCopy = JSON.parse(JSON.stringify(objectMarkup));
5110
5118
  objectMarkupCopy[index] = commonPiecesWithShadow;
5111
5119
  markup.push(objectMarkupCopy.join(''));
5112
- markup.push(shadow.toSVG(this));
5113
5120
  }
5114
5121
  // objectMarkup中是导出主对象(如path)的svg,index下标是style,放在commonPieces
5115
5122
  objectMarkup[index] = commonPieces;