redhotmagma-visualization 1.28.6 → 1.29.3

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 (88) hide show
  1. package/AlignTargetProvider.js +129 -0
  2. package/CommonUtils/Deferred.js +135 -0
  3. package/CommonUtils/Observable.js +126 -0
  4. package/CommonUtils/PropertyObserver.js +61 -0
  5. package/CommonUtils/SyncCurrentFunction.js +59 -0
  6. package/CommonUtils/SyncObservableEvent.js +19 -0
  7. package/CommonUtils/pointerEvent.js +415 -0
  8. package/Constants.js +23 -0
  9. package/DevApp.js +1049 -0
  10. package/ExposedModules.js +26 -0
  11. package/FallbackVisualization.js +26 -0
  12. package/PrintingEffects/ColorEmbossingEffect.js +58 -0
  13. package/PrintingEffects/DomingEffect.js +150 -0
  14. package/PrintingEffects/EmbossingEffect.js +65 -0
  15. package/PrintingEffects/EmbroideryEffect.js +541 -0
  16. package/PrintingEffects/EngravingEffect.js +65 -0
  17. package/PrintingEffects/PrintingEffects.js +117 -0
  18. package/PrintingEffects/PrintingEffectsUtils.js +53 -0
  19. package/PrintingEffects/resources/embroidery_multiply.jpg +0 -0
  20. package/PrintingEffects/resources/embroidery_screen.jpg +0 -0
  21. package/README.md +11 -4
  22. package/React/ReactBase.js +111 -0
  23. package/Three/Controls/OrbitControls.js +745 -0
  24. package/Three/Exporters/glTFExporter.js +48 -0
  25. package/Three/Loaders/ColladaLoader.js +2916 -0
  26. package/Three/Loaders/MTLLoader.js +449 -0
  27. package/Three/Loaders/OBJLoader.js +548 -0
  28. package/Three/Three2D.js +1790 -0
  29. package/Three/Three2DLayers.js +504 -0
  30. package/Three/Three3D.js +1412 -0
  31. package/Three/Three3DScene.js +1432 -0
  32. package/Three/ThreeBase.js +724 -0
  33. package/Utils/DesignArea/getDesignAreaCanvasSize.js +32 -0
  34. package/Utils/TextureBuilder/createTextureBuilder.js +334 -0
  35. package/Utils/TextureBuilder/textureBuilderFunctions.js +87 -0
  36. package/Utils/alignToElement.js +58 -0
  37. package/Utils/createAlphaMapFromAlphaChannel.js +50 -0
  38. package/Utils/createCache.js +46 -0
  39. package/Utils/createCanvas.js +29 -0
  40. package/Utils/createImageRepository.js +124 -0
  41. package/Utils/disposeMaterial.js +41 -0
  42. package/Utils/getImageSize.js +15 -0
  43. package/Utils/imagePreloader.js +76 -0
  44. package/Utils/initTextureCanvas.js +49 -0
  45. package/Utils/isMobileDevice.js +19 -0
  46. package/Utils/optimizeTextureImage.js +73 -0
  47. package/Utils/rememberCameraViewOffset.js +21 -0
  48. package/Utils/removeObject.js +22 -0
  49. package/Utils/restrictCameraMovement.js +45 -0
  50. package/Utils/setOrthographicCameraSize.js +16 -0
  51. package/Utils/updateFitSizeToElement.js +39 -0
  52. package/VisualizationContainer.js +279 -0
  53. package/VisualizationInterface.js +298 -0
  54. package/VisualizationProvider.js +38 -0
  55. package/__mocks__/exportedSample.svg +45 -0
  56. package/index.js +16 -0
  57. package/package.json +10 -70
  58. package/scripts/cpPublic.js +9 -12
  59. package/scripts/cpPublicLocal.js +30 -0
  60. package/src/CommonUtils/Observable.js +1 -0
  61. package/src/CommonUtils/pointerEvent.js +2 -1
  62. package/src/DevApp.js +2 -1
  63. package/src/FallbackVisualization.js +1 -5
  64. package/src/PrintingEffects/DomingEffect.js +1 -0
  65. package/src/PrintingEffects/EmbroideryEffect.js +3 -2
  66. package/src/React/ReactBase.js +1 -1
  67. package/src/Three/Controls/OrbitControls.js +2 -0
  68. package/src/Three/Loaders/ColladaLoader.js +111 -294
  69. package/src/Three/Loaders/MTLLoader.js +2 -0
  70. package/src/Three/Loaders/OBJLoader.js +2 -0
  71. package/src/Three/Three2D.js +18 -11
  72. package/src/Three/Three3D.js +9 -1
  73. package/src/Three/ThreeBase.js +14 -2
  74. package/src/Utils/DesignArea/getDesignAreaCanvasSize.js +1 -0
  75. package/src/Utils/TextureBuilder/createTextureBuilder.js +2 -0
  76. package/src/Utils/imagePreloader.js +1 -0
  77. package/src/Utils/initTextureCanvas.js +3 -0
  78. package/src/Utils/isMobileDevice.js +2 -0
  79. package/src/Utils/optimizeTextureImage.js +1 -0
  80. package/src/VisualizationContainer.js +3 -1
  81. package/src/VisualizationInterface.js +10 -1
  82. package/visualizationAdapterCreator.js +76 -0
  83. package/babel.config.js +0 -41
  84. package/scripts/cpPath.js +0 -151
  85. package/scripts/moveLibToPackageRoot.js +0 -44
  86. package/scripts/utils/fileSystem.js +0 -69
  87. package/scripts/utils/process.js +0 -19
  88. package/tsconfig.json +0 -22
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "TWEEN", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _tween["default"];
12
+ }
13
+ });
14
+ exports.THREE = void 0;
15
+
16
+ var THREE = _interopRequireWildcard(require("three"));
17
+
18
+ exports.THREE = THREE;
19
+
20
+ var _tween = _interopRequireDefault(require("@tweenjs/tween.js"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.FallbackVisualization = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var FallbackVisualization = function FallbackVisualization(_ref) {
13
+ var imageSrc = _ref.imageSrc,
14
+ className = _ref.className,
15
+ classNameEmpty = _ref.classNameEmpty;
16
+ return imageSrc ? /*#__PURE__*/_react["default"].createElement("img", {
17
+ className: className,
18
+ src: imageSrc
19
+ }) : /*#__PURE__*/_react["default"].createElement("div", {
20
+ className: classNameEmpty || className
21
+ });
22
+ };
23
+
24
+ exports.FallbackVisualization = FallbackVisualization;
25
+ var _default = FallbackVisualization;
26
+ exports["default"] = _default;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.colorEmbossingEffect = colorEmbossingEffect;
7
+
8
+ var _createCanvas = require("../Utils/createCanvas");
9
+
10
+ var _PrintingEffectsUtils = require("./PrintingEffectsUtils");
11
+
12
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
+
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
+
20
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21
+
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
+
28
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+
30
+ function colorEmbossingEffect(srcCanvas, options) {
31
+ var _options$effectOption = _objectSpread({}, options.effectOptions),
32
+ _options$effectOption2 = _options$effectOption.blur,
33
+ blur = _options$effectOption2 === void 0 ? 4 : _options$effectOption2;
34
+
35
+ var shadows = [];
36
+ shadows.push({
37
+ blur: Math.max(2, 1 / options.currentZoom) * blur * 4,
38
+ color: "rgba(0, 0, 0, 0.5)",
39
+ offsetX: 0,
40
+ offsetY: 1
41
+ });
42
+ modifyImage(srcCanvas, shadows);
43
+ }
44
+
45
+ function modifyImage(srcCanvas, shadows) {
46
+ var _createWorkingCanvas = (0, _createCanvas.createWorkingCanvas)(srcCanvas, true),
47
+ _createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 2),
48
+ imageCanvas = _createWorkingCanvas2[0],
49
+ ctx = _createWorkingCanvas2[1];
50
+
51
+ var negativeCanvas = (0, _PrintingEffectsUtils.createNegativeCanvas)(srcCanvas, "#000", imageCanvas.width, imageCanvas.height);
52
+ var shadowCanvas = (0, _PrintingEffectsUtils.createShadowCanvas)(negativeCanvas, shadows, imageCanvas.width, imageCanvas.height); // Draw shadow on background
53
+
54
+ ctx.drawImage(shadowCanvas, 0, 0);
55
+ var srcCtx = srcCanvas.getContext("2d");
56
+ srcCtx.clearRect(0, 0, imageCanvas.width, imageCanvas.height);
57
+ srcCtx.drawImage(imageCanvas, 0, 0);
58
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.domingEffect = domingEffect;
7
+
8
+ var _createCanvas = require("../Utils/createCanvas");
9
+
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
+
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ function domingEffect(srcCanvas) {
29
+ var shadows = [{
30
+ blur: "2px",
31
+ color: "rgba(0, 0, 0, 0.5)",
32
+ offsetX: "0",
33
+ offsetY: "0"
34
+ }, {
35
+ blur: "5px",
36
+ color: "rgba(0, 0, 0, 0.5)",
37
+ offsetX: "0",
38
+ offsetY: "0"
39
+ }, {
40
+ blur: "10px",
41
+ color: "rgba(0, 0, 0, 0.5)",
42
+ offsetX: "0",
43
+ offsetY: "0"
44
+ }, {
45
+ blur: "20px",
46
+ color: "rgba(0, 0, 0, 0.5)",
47
+ offsetX: "0",
48
+ offsetY: "0"
49
+ }, {
50
+ blur: "30px",
51
+ color: "rgba(0, 0, 0, 0.5)",
52
+ offsetX: "0",
53
+ offsetY: "0"
54
+ }];
55
+ modifyImage(srcCanvas, shadows);
56
+ }
57
+
58
+ function invertColor(color) {
59
+ var colorArray = color.replace(/[^\d,.]/g, "").split(",");
60
+ var inverted = [];
61
+
62
+ for (var k = 0; k < colorArray.length; k++) {
63
+ inverted[k] = 255 - colorArray[k];
64
+ }
65
+
66
+ return "rgb(".concat(inverted[0], ",").concat(inverted[1], ",").concat(inverted[2], ",").concat(colorArray[3], ")");
67
+ }
68
+
69
+ var createDropShadow = function createDropShadow(_ref) {
70
+ var offsetX = _ref.offsetX,
71
+ offsetY = _ref.offsetY,
72
+ blur = _ref.blur,
73
+ color = _ref.color;
74
+ return "drop-shadow(".concat([offsetX, offsetY, blur, color].join(" "), ")");
75
+ };
76
+
77
+ function modifyImage(srcCanvas, shadows) {
78
+ if (!shadows || shadows.length === 0) {
79
+ // eslint-disable-next-line no-console
80
+ console.warn("Could not apply effect, shadows has to be provided!");
81
+ return;
82
+ }
83
+
84
+ var _createWorkingCanvas = (0, _createCanvas.createWorkingCanvas)(srcCanvas),
85
+ _createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 2),
86
+ imageCanvas = _createWorkingCanvas2[0],
87
+ ctx = _createWorkingCanvas2[1];
88
+
89
+ ctx.drawImage(srcCanvas, 0, 0);
90
+ var width = imageCanvas.width,
91
+ height = imageCanvas.height;
92
+ var diagonal = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
93
+ var rectHeight = width * height / diagonal / diagonal;
94
+ var gradient = ctx.createLinearGradient(0, 0, height, width);
95
+ gradient.addColorStop(0, "rgba(0,0,0,0)");
96
+ gradient.addColorStop(rectHeight - 0.005, "rgba(0,0,0,0)");
97
+ gradient.addColorStop(1, "rgba(0,0,0,1)");
98
+
99
+ var _createWorkingCanvas3 = (0, _createCanvas.createWorkingCanvas)(imageCanvas),
100
+ _createWorkingCanvas4 = _slicedToArray(_createWorkingCanvas3, 2),
101
+ shadowCanvas = _createWorkingCanvas4[0],
102
+ shadowContext = _createWorkingCanvas4[1];
103
+
104
+ shadowContext.strokeStyle = gradient;
105
+ shadowContext.lineWidth = 8;
106
+ shadowContext.strokeRect(0, 0, width, height);
107
+
108
+ for (var i = 0; i < shadows.length; i++) {
109
+ shadowContext.filter = createDropShadow(shadows[i]);
110
+ shadowContext.drawImage(shadowCanvas, 0, 0);
111
+ ctx.drawImage(shadowCanvas, 0, 0);
112
+ }
113
+
114
+ var gradient2 = ctx.createLinearGradient(0, 0, height, width);
115
+ gradient2.addColorStop(0, "rgba(255,255,255,1)");
116
+ gradient2.addColorStop(rectHeight + 0.005, "rgba(255,255,255,0)");
117
+ gradient2.addColorStop(1, "rgba(255,255,255,0)");
118
+
119
+ var _createWorkingCanvas5 = (0, _createCanvas.createWorkingCanvas)(imageCanvas),
120
+ _createWorkingCanvas6 = _slicedToArray(_createWorkingCanvas5, 2),
121
+ shadowCanvas2 = _createWorkingCanvas6[0],
122
+ shadowContext2 = _createWorkingCanvas6[1];
123
+
124
+ shadowContext2.strokeStyle = gradient2;
125
+ shadowContext2.lineWidth = 8;
126
+ shadowContext2.strokeRect(0, 0, width, height);
127
+
128
+ for (var _i2 = 0; _i2 < shadows.length; _i2++) {
129
+ var invertedColor = invertColor(shadows[_i2].color);
130
+ shadowContext2.filter = createDropShadow(_objectSpread(_objectSpread({}, shadows[_i2]), {}, {
131
+ color: invertedColor
132
+ }));
133
+ shadowContext2.drawImage(shadowCanvas2, 0, 0);
134
+ ctx.drawImage(shadowCanvas2, 0, 0);
135
+ }
136
+
137
+ var _createWorkingCanvas7 = (0, _createCanvas.createWorkingCanvas)(imageCanvas),
138
+ _createWorkingCanvas8 = _slicedToArray(_createWorkingCanvas7, 2),
139
+ lighterCanvas = _createWorkingCanvas8[0],
140
+ lighterContext = _createWorkingCanvas8[1];
141
+
142
+ lighterContext.fillStyle = "rgba(0,0,0,0.1)";
143
+ lighterContext.fillRect(0, 0, width, height);
144
+ ctx.globalCompositeOperation = "destination-out";
145
+ ctx.drawImage(lighterCanvas, 0, 0); // copy the created image over the src canvas
146
+
147
+ var srcCtx = srcCanvas.getContext("2d");
148
+ srcCtx.clearRect(0, 0, width, height);
149
+ srcCtx.drawImage(imageCanvas, 0, 0);
150
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.embossingEffect = embossingEffect;
7
+
8
+ var _createCanvas = require("../Utils/createCanvas");
9
+
10
+ var _PrintingEffectsUtils = require("./PrintingEffectsUtils");
11
+
12
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
+
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
+
20
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21
+
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
+
28
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+
30
+ function embossingEffect(srcCanvas, options) {
31
+ var _options$effectOption = _objectSpread({}, options.effectOptions),
32
+ _options$effectOption2 = _options$effectOption.fillColor,
33
+ fillColor = _options$effectOption2 === void 0 ? "transparent" : _options$effectOption2,
34
+ _options$effectOption3 = _options$effectOption.blur,
35
+ blur = _options$effectOption3 === void 0 ? 4 : _options$effectOption3;
36
+
37
+ var shadows = [];
38
+ shadows.push({
39
+ blur: Math.max(2, 1 / options.currentZoom) * blur * 4,
40
+ color: "rgba(0, 0, 0, 0.5)",
41
+ offsetX: 0,
42
+ offsetY: 1
43
+ });
44
+ modifyImage(srcCanvas, shadows, fillColor);
45
+ }
46
+
47
+ function modifyImage(srcCanvas, shadows, fillColor) {
48
+ var _createWorkingCanvas = (0, _createCanvas.createWorkingCanvas)(srcCanvas),
49
+ _createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 2),
50
+ imageCanvas = _createWorkingCanvas2[0],
51
+ ctx = _createWorkingCanvas2[1];
52
+
53
+ if (fillColor !== undefined) {
54
+ var backgroundCanvas = (0, _PrintingEffectsUtils.createBackgroundCanvas)(srcCanvas, fillColor, imageCanvas.width, imageCanvas.height);
55
+ var negativeCanvas = (0, _PrintingEffectsUtils.createNegativeCanvas)(srcCanvas, "#000", imageCanvas.width, imageCanvas.height);
56
+ var shadowCanvas = (0, _PrintingEffectsUtils.createShadowCanvas)(negativeCanvas, shadows, imageCanvas.width, imageCanvas.height); // Draw shadow on background
57
+
58
+ ctx.drawImage(backgroundCanvas, 0, 0);
59
+ ctx.drawImage(shadowCanvas, 0, 0);
60
+ }
61
+
62
+ var srcCtx = srcCanvas.getContext("2d");
63
+ srcCtx.clearRect(0, 0, imageCanvas.width, imageCanvas.height);
64
+ srcCtx.drawImage(imageCanvas, 0, 0);
65
+ }