fabric-vectr 6.7.12 → 6.7.13

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 (43) hide show
  1. package/dist/index.js +25 -8
  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 +25 -8
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/index.node.cjs +25 -8
  10. package/dist/index.node.cjs.map +1 -1
  11. package/dist/index.node.mjs +25 -8
  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/Pattern/Pattern.d.ts.map +1 -1
  16. package/dist/src/Pattern/Pattern.min.mjs +1 -1
  17. package/dist/src/Pattern/Pattern.min.mjs.map +1 -1
  18. package/dist/src/Pattern/Pattern.mjs +5 -1
  19. package/dist/src/Pattern/Pattern.mjs.map +1 -1
  20. package/dist/src/shapes/Image.d.ts +2 -2
  21. package/dist/src/shapes/Image.d.ts.map +1 -1
  22. package/dist/src/shapes/Image.min.mjs +1 -1
  23. package/dist/src/shapes/Image.min.mjs.map +1 -1
  24. package/dist/src/shapes/Image.mjs +4 -2
  25. package/dist/src/shapes/Image.mjs.map +1 -1
  26. package/dist/src/util/misc/objectEnlive.d.ts +6 -1
  27. package/dist/src/util/misc/objectEnlive.d.ts.map +1 -1
  28. package/dist/src/util/misc/objectEnlive.min.mjs +1 -1
  29. package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
  30. package/dist/src/util/misc/objectEnlive.mjs +16 -5
  31. package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
  32. package/dist-extensions/src/Pattern/Pattern.d.ts.map +1 -1
  33. package/dist-extensions/src/shapes/Image.d.ts +2 -2
  34. package/dist-extensions/src/shapes/Image.d.ts.map +1 -1
  35. package/dist-extensions/src/util/misc/objectEnlive.d.ts +6 -1
  36. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/Pattern/Pattern.spec.ts +63 -0
  39. package/src/Pattern/Pattern.ts +3 -1
  40. package/src/shapes/Image.spec.ts +21 -2
  41. package/src/shapes/Image.ts +24 -12
  42. package/src/util/misc/objectEnlive.spec.ts +49 -2
  43. package/src/util/misc/objectEnlive.ts +29 -5
package/dist/index.js CHANGED
@@ -366,7 +366,7 @@
366
366
  }
367
367
  const cache = new Cache();
368
368
 
369
- var version = "6.7.12";
369
+ var version = "6.7.13";
370
370
 
371
371
  // use this syntax so babel plugin see this import here
372
372
  const VERSION = version;
@@ -1814,7 +1814,8 @@
1814
1814
  const loadImage = function (url) {
1815
1815
  let {
1816
1816
  signal,
1817
- crossOrigin = null
1817
+ crossOrigin = null,
1818
+ fallbackToEmptyImage = false
1818
1819
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1819
1820
  return new Promise(function (resolve, reject) {
1820
1821
  if (signal && signal.aborted) {
@@ -1831,9 +1832,12 @@
1831
1832
  once: true
1832
1833
  });
1833
1834
  }
1834
- const done = function () {
1835
+ const cleanup = function () {
1835
1836
  img.onload = img.onerror = null;
1836
1837
  abort && (signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', abort));
1838
+ };
1839
+ const done = function () {
1840
+ cleanup();
1837
1841
  resolve(img);
1838
1842
  };
1839
1843
  if (!url) {
@@ -1842,8 +1846,15 @@
1842
1846
  }
1843
1847
  img.onload = done;
1844
1848
  img.onerror = function () {
1845
- abort && (signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', abort));
1846
- reject(new FabricError(`Error loading ${img.src}`));
1849
+ const failedSrc = img.src;
1850
+ cleanup();
1851
+ if (fallbackToEmptyImage) {
1852
+ log('warn', 'Image failed to load, continuing with an empty image source', failedSrc);
1853
+ img.src = '';
1854
+ resolve(img);
1855
+ return;
1856
+ }
1857
+ reject(new FabricError(`Error loading ${failedSrc}`));
1847
1858
  };
1848
1859
  crossOrigin && (img.crossOrigin = crossOrigin);
1849
1860
  img.src = url;
@@ -4046,9 +4057,13 @@
4046
4057
  patternTransform,
4047
4058
  ...otherOptions
4048
4059
  } = _ref2;
4060
+ const {
4061
+ crossOrigin
4062
+ } = otherOptions;
4049
4063
  const img = await loadImage(source, {
4050
4064
  ...options,
4051
- crossOrigin: otherOptions.crossOrigin
4065
+ crossOrigin,
4066
+ fallbackToEmptyImage: true
4052
4067
  });
4053
4068
  return new this({
4054
4069
  ...otherOptions,
@@ -25950,11 +25965,13 @@
25950
25965
  } = _ref;
25951
25966
  return Promise.all([loadImage(src, {
25952
25967
  ...options,
25953
- crossOrigin
25968
+ crossOrigin,
25969
+ fallbackToEmptyImage: true
25954
25970
  }), f && enlivenObjects(f, options),
25955
25971
  // TODO: redundant - handled by enlivenObjectEnlivables
25956
25972
  rf && enlivenObjects([rf], options), enlivenObjectEnlivables(object, options)]).then(_ref2 => {
25957
- let [el, filters = [], [resizeFilter] = [], hydratedProps = {}] = _ref2;
25973
+ let [el, filters = [], resizeFilters = [], hydratedProps = {}] = _ref2;
25974
+ const [resizeFilter] = resizeFilters;
25958
25975
  return new this(el, {
25959
25976
  ...object,
25960
25977
  // TODO: this creates a difference between image creation and restoring from JSON