@configuratorware/configurator-frontendgui 1.29.4 → 1.30.0

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 (30) hide show
  1. package/App/Modules/Creator/Components/Option/index.js +2 -2
  2. package/App/Modules/Creator/Components/OptionsList/index.js +54 -28
  3. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +5 -6
  4. package/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +1 -1
  5. package/App/Modules/Designer/Components/ImageEditDialog/index.js +3 -1
  6. package/App/Modules/Designer/Containers/ImageEditDialog.js +163 -113
  7. package/App/Modules/Designer/Utils/SvgFixers.js +59 -0
  8. package/App/Modules/Designer/Utils/Transformers.js +17 -10
  9. package/App/Reducers/ImageGallery/Selectors.js +6 -3
  10. package/App/Services/AnalyticsService.js +13 -64
  11. package/App/Services/ConfiguratorService.js +4 -2
  12. package/App/Services/DesignDataService.js +125 -138
  13. package/App/configuration.js +1 -1
  14. package/package.json +4 -4
  15. package/src/App/Modules/Creator/Components/Option/__snapshots__/index.test.js.snap +2 -2
  16. package/src/App/Modules/Creator/Components/Option/index.js +12 -2
  17. package/src/App/Modules/Creator/Components/OptionsList/index.js +46 -32
  18. package/src/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +5 -6
  19. package/src/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +1 -1
  20. package/src/App/Modules/Designer/Components/ImageEditDialog/index.js +3 -1
  21. package/src/App/Modules/Designer/Containers/ImageEditDialog.js +36 -12
  22. package/src/App/Modules/Designer/Utils/SvgFixers.js +36 -0
  23. package/src/App/Modules/Designer/Utils/Transformers.js +6 -3
  24. package/src/App/Modules/Designer/Utils/__tests__/Transformers.test.js +2 -2
  25. package/src/App/Reducers/ImageGallery/Selectors.js +5 -3
  26. package/src/App/Services/AnalyticsService.js +7 -20
  27. package/src/App/Services/ConfiguratorService.js +3 -2
  28. package/src/App/Services/DesignDataService.js +39 -24
  29. package/src/App/Services/__tests__/AnalyticsService.test.js +24 -37
  30. package/src/App/configuration.js +1 -1
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.preparePrintDesignData = exports.prepareDesignDataSnapshots = exports.alterArrayValues = exports.alterObjectValues = exports.embeddedSvgImageToInlineSvgContent = exports.getMatchAt = void 0;
7
+
8
+ var getMatchAt = function getMatchAt(str, regexp) {
9
+ var idx = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
10
+ var defaultValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
11
+ var matches = ('' + str).match(regexp);
12
+ return matches && matches[idx] || defaultValue;
13
+ };
14
+
15
+ exports.getMatchAt = getMatchAt;
16
+
17
+ var embeddedSvgImageToInlineSvgContent = function embeddedSvgImageToInlineSvgContent(svgStr) {
18
+ return svgStr.replace(/<image([^>]+)xlink:href="data:image\/svg\+xml;base64,([^"]+)"[^>]*>/g, function (_, attributesStr, base64Str) {
19
+ var x = getMatchAt(attributesStr, /x="([^"]+)"/, 1, 0);
20
+ var y = getMatchAt(attributesStr, /y="([^"]+)"/, 1, 0);
21
+ var transform = getMatchAt(attributesStr, /transform="([^"]+)"/, 1, '');
22
+ var svgContent = atob(base64Str).replace(/(<\?xml[^>]+>)|(<!--[^>]+-->)/gi, '');
23
+ return "<g transform=\"".concat(transform, " translate(").concat(x, ",").concat(y, ")\">").concat(svgContent, "</g>");
24
+ });
25
+ };
26
+
27
+ exports.embeddedSvgImageToInlineSvgContent = embeddedSvgImageToInlineSvgContent;
28
+
29
+ var alterObjectValues = function alterObjectValues(obj, fn) {
30
+ Object.keys(obj).forEach(function (key) {
31
+ obj[key] = fn(obj[key], key);
32
+ });
33
+ return obj;
34
+ };
35
+
36
+ exports.alterObjectValues = alterObjectValues;
37
+
38
+ var alterArrayValues = function alterArrayValues(arr, fn) {
39
+ arr.forEach(function (value, key) {
40
+ arr[key] = fn(value, key);
41
+ });
42
+ return arr;
43
+ };
44
+
45
+ exports.alterArrayValues = alterArrayValues;
46
+
47
+ var prepareDesignDataSnapshots = function prepareDesignDataSnapshots(svgArrMap) {
48
+ return alterObjectValues(svgArrMap, function (arr) {
49
+ return alterArrayValues(arr, embeddedSvgImageToInlineSvgContent);
50
+ });
51
+ };
52
+
53
+ exports.prepareDesignDataSnapshots = prepareDesignDataSnapshots;
54
+
55
+ var preparePrintDesignData = function preparePrintDesignData(svgMap) {
56
+ return alterObjectValues(svgMap, embeddedSvgImageToInlineSvgContent);
57
+ };
58
+
59
+ exports.preparePrintDesignData = preparePrintDesignData;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.prepareCanvasData = exports.prepareObjectData = exports.prepareImageObjectData = exports.noCache = exports.getRasterURL = exports.fixSrcURL = exports.calculateScaleFactor = void 0;
6
+ exports.prepareCanvasData = exports.prepareObjectData = exports.prepareImageObjectData = exports.noCache = exports.isOriginalVector = exports.getRasterURL = exports.fixSrcURL = exports.calculateScaleFactor = void 0;
7
7
 
8
8
  var _get = _interopRequireDefault(require("lodash/get"));
9
9
 
@@ -60,6 +60,12 @@ var getRasterURL = function getRasterURL(imageURL) {
60
60
 
61
61
  exports.getRasterURL = getRasterURL;
62
62
 
63
+ var isOriginalVector = function isOriginalVector(imageData) {
64
+ return /svg|pdf|eps|ai/i.test((0, _get["default"])(imageData, 'original.format', ''));
65
+ };
66
+
67
+ exports.isOriginalVector = isOriginalVector;
68
+
63
69
  var noCache = function noCache(src) {
64
70
  return "".concat(src, "?").concat(Math.random());
65
71
  };
@@ -77,11 +83,11 @@ var prepareImageObjectData = function prepareImageObjectData(rawObject) {
77
83
  data.transformImageSrc = /*#__PURE__*/function () {
78
84
  var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url) {
79
85
  var _ref2,
80
- preview,
81
86
  operations,
82
87
  displayColorPreview,
83
88
  gallery,
84
89
  isPlaceHolderImage,
90
+ originalVector,
85
91
  svgContent,
86
92
  _args = arguments;
87
93
 
@@ -89,7 +95,7 @@ var prepareImageObjectData = function prepareImageObjectData(rawObject) {
89
95
  while (1) {
90
96
  switch (_context.prev = _context.next) {
91
97
  case 0:
92
- _ref2 = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, preview = _ref2.preview, operations = _ref2.operations;
98
+ _ref2 = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, operations = _ref2.operations;
93
99
 
94
100
  if ((0, _Selectors.isEditableVectorImage)({
95
101
  url: url
@@ -102,23 +108,24 @@ var prepareImageObjectData = function prepareImageObjectData(rawObject) {
102
108
 
103
109
  case 3:
104
110
  displayColorPreview = image.displayColorPreview, gallery = image.gallery, isPlaceHolderImage = image.isPlaceHolderImage;
111
+ originalVector = isOriginalVector(image);
105
112
 
106
- if (!(!displayColorPreview && !gallery && !isPlaceHolderImage)) {
107
- _context.next = 6;
113
+ if (!(!originalVector && !displayColorPreview && !gallery && !isPlaceHolderImage)) {
114
+ _context.next = 7;
108
115
  break;
109
116
  }
110
117
 
111
118
  return _context.abrupt("return", noCache(fixSrcURL(getRasterURL((0, _get["default"])(image, 'preview.url', '')))));
112
119
 
113
- case 6:
114
- _context.next = 8;
120
+ case 7:
121
+ _context.next = 9;
115
122
  return (0, _DesignDataService.getSvgContent)(url, true);
116
123
 
117
- case 8:
124
+ case 9:
118
125
  svgContent = _context.sent;
119
- return _context.abrupt("return", (0, _DesignDataService.applySvgContentOperations)(preview ? preview : image.preview, displayColorPreview || gallery ? operations ? operations : image.operations : null, svgContent));
126
+ return _context.abrupt("return", (0, _DesignDataService.applySvgContentOperations)(image.preview, displayColorPreview || gallery ? operations ? operations : image.operations : null, svgContent));
120
127
 
121
- case 10:
128
+ case 11:
122
129
  case "end":
123
130
  return _context.stop();
124
131
  }
@@ -9,6 +9,8 @@ var _get = _interopRequireDefault(require("lodash/get"));
9
9
 
10
10
  var _find = _interopRequireDefault(require("lodash/find"));
11
11
 
12
+ var _isString = _interopRequireDefault(require("lodash/isString"));
13
+
12
14
  var _flatten = _interopRequireDefault(require("lodash/flatten"));
13
15
 
14
16
  var _configuration = require("../../configuration");
@@ -27,14 +29,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
27
29
 
28
30
  var getPreviewUrlFromImageData = function getPreviewUrlFromImageData(preview) {
29
31
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
32
+ var previewUrl = (0, _isString["default"])(preview) ? preview : preview.url;
30
33
 
31
- if (/^data:image/.test(preview.url)) {
32
- return preview.url;
34
+ if (/^data:image/.test(previewUrl)) {
35
+ return previewUrl;
33
36
  }
34
37
 
35
38
  var _options$host = options.host,
36
39
  host = _options$host === void 0 ? (0, _configuration.getConf)('network.host', '') : _options$host;
37
- return "".concat(host).concat(preview.url);
40
+ return "".concat(host).concat(previewUrl);
38
41
  };
39
42
 
40
43
  exports.getPreviewUrlFromImageData = getPreviewUrlFromImageData;
@@ -17,10 +17,6 @@ var _lodash = require("lodash");
17
17
 
18
18
  var _actionsToTrack;
19
19
 
20
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
21
-
22
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
23
-
24
20
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
21
 
26
22
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -322,61 +318,10 @@ var AnalyticsService = /*#__PURE__*/function () {
322
318
 
323
319
  _createClass(AnalyticsService, [{
324
320
  key: "setDataLayer",
325
- value: function () {
326
- var _setDataLayer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(dataLayer) {
327
- var loadIdentifier;
328
- return regeneratorRuntime.wrap(function _callee$(_context) {
329
- while (1) {
330
- switch (_context.prev = _context.next) {
331
- case 0:
332
- _context.next = 2;
333
- return _ServiceLocator.Services.store.addMiddleware(this.createMiddleware(dataLayer));
334
-
335
- case 2:
336
- loadIdentifier = _ServiceLocator.Services.configurator.state.loadIdentifier;
337
- loadIdentifier && this.triggerEvent(_Constant.EventTypes.load_item, _ServiceLocator.Services.configurator.state.loadIdentifier);
338
-
339
- case 4:
340
- case "end":
341
- return _context.stop();
342
- }
343
- }
344
- }, _callee, this);
345
- }));
346
-
347
- function setDataLayer(_x) {
348
- return _setDataLayer.apply(this, arguments);
349
- }
350
-
351
- return setDataLayer;
352
- }()
353
- }, {
354
- key: "createMiddleware",
355
- value: function createMiddleware(dataLayer) {
356
- var _this = this;
357
-
358
- return function (store) {
359
- return function (next) {
360
- return function (action) {
361
- var result = next(action);
362
-
363
- var actionsToTrack = _this.getActionsToTrack();
364
-
365
- if (!actionsToTrack[action.type]) {
366
- return result;
367
- }
368
-
369
- var nextState = store.getState();
370
-
371
- if (action.type) {
372
- var data = actionsToTrack[action.type](action, nextState);
373
- dataLayer.push(data);
374
- }
375
-
376
- return result;
377
- };
378
- };
379
- };
321
+ value: function setDataLayer(dataLayer) {
322
+ this.dataLayer = dataLayer;
323
+ var loadIdentifier = _ServiceLocator.Services.configurator.state.loadIdentifier;
324
+ loadIdentifier && this.triggerEvent(_Constant.EventTypes.load_item, _ServiceLocator.Services.configurator.state.loadIdentifier);
380
325
  }
381
326
  }, {
382
327
  key: "getActionsToTrack",
@@ -387,11 +332,15 @@ var AnalyticsService = /*#__PURE__*/function () {
387
332
  key: "triggerEvent",
388
333
  value: function triggerEvent(type) {
389
334
  var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
390
-
391
- _ServiceLocator.Services.store.dispatch({
392
- type: type,
393
- data: data
394
- });
335
+ var actionsToTrack = this.getActionsToTrack();
336
+
337
+ if (type && actionsToTrack[type]) {
338
+ var gaData = actionsToTrack[type]({
339
+ type: type,
340
+ data: data
341
+ }, _ServiceLocator.Services.store.state);
342
+ this.dataLayer && this.dataLayer.push(gaData);
343
+ }
395
344
  }
396
345
  }]);
397
346
 
@@ -49,6 +49,8 @@ var _Selectors4 = require("../Reducers/DesignData/Selectors");
49
49
 
50
50
  var _createMessageInterface = _interopRequireWildcard(require("../Utils/createMessageInterface"));
51
51
 
52
+ var _SvgFixers = require("../Modules/Designer/Utils/SvgFixers");
53
+
52
54
  var _excluded = ["code"];
53
55
 
54
56
  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); }
@@ -655,13 +657,13 @@ var ConfiguratorService = /*#__PURE__*/function (_AbstractConfigurator) {
655
657
 
656
658
  case 6:
657
659
  svgs = _context6.sent;
658
- mediaData.designDataSnapshots = svgs;
660
+ mediaData.designDataSnapshots = (0, _SvgFixers.prepareDesignDataSnapshots)(svgs);
659
661
  _context6.next = 10;
660
662
  return _ServiceLocator.Services.designData.getScreenshots(fontMapping);
661
663
 
662
664
  case 10:
663
665
  fullSvgs = _context6.sent;
664
- mediaData.printDesignData = fullSvgs;
666
+ mediaData.printDesignData = (0, _SvgFixers.preparePrintDesignData)(fullSvgs);
665
667
  usedAreas = Object.keys(fullSvgs);
666
668
  designArea = _ServiceLocator.Services.store.state.designArea;
667
669
  filteredDesignAreas = designArea.filteredDesignAreas;