@configuratorware/configurator-frontendgui 1.35.8 → 1.36.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.
- package/App/Modules/Creator/Components/Option/index.js +7 -1
- package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +6 -0
- package/App/Reducers/DesignArea/Selectors.js +31 -13
- package/App/Shared/Components/SendEmail/index.js +1 -0
- package/package.json +4 -4
- package/src/App/Modules/Creator/Components/Option/index.js +8 -1
- package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +4 -1
- package/src/App/Reducers/DesignArea/Selectors.js +15 -0
- package/src/App/Reducers/DesignArea/__tests__/Selectors.test.js +5 -0
- package/src/App/Services/__tests__/DesignDataService.test.js +81 -0
- package/src/App/Shared/Components/SendEmail/index.js +1 -0
|
@@ -309,6 +309,10 @@ var Option = function Option(_ref) {
|
|
|
309
309
|
}));
|
|
310
310
|
};
|
|
311
311
|
|
|
312
|
+
var onAbstractClicked = function onAbstractClicked(event) {
|
|
313
|
+
event.stopPropagation();
|
|
314
|
+
};
|
|
315
|
+
|
|
312
316
|
var onDetailsClicked = function onDetailsClicked(event) {
|
|
313
317
|
event.stopPropagation();
|
|
314
318
|
event.preventDefault();
|
|
@@ -450,7 +454,8 @@ var Option = function Option(_ref) {
|
|
|
450
454
|
}, option.title), hasTextinput && renderTextInput(), !hidePrices && /*#__PURE__*/_react["default"].createElement("div", {
|
|
451
455
|
className: classes.price
|
|
452
456
|
}, option.priceFormatted), smallerScreen && renderControls('horizontal'), option["abstract"] && /*#__PURE__*/_react["default"].createElement(_Markdown["default"], {
|
|
453
|
-
className: classes.description
|
|
457
|
+
className: classes.description,
|
|
458
|
+
onClick: onAbstractClicked
|
|
454
459
|
}, option["abstract"]), renderActions()));
|
|
455
460
|
};
|
|
456
461
|
|
|
@@ -508,6 +513,7 @@ var Option = function Option(_ref) {
|
|
|
508
513
|
onOptionSelected: onOptionSelected,
|
|
509
514
|
onOptionClicked: onOptionClicked,
|
|
510
515
|
onAmountChanged: onAmountChanged,
|
|
516
|
+
onAbstractClicked: onAbstractClicked,
|
|
511
517
|
onDetailsClicked: onDetailsClicked,
|
|
512
518
|
onIncompatibilityClicked: onIncompatibilityClicked,
|
|
513
519
|
onOptionGroupClicked: onOptionGroupClicked,
|
package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js
CHANGED
|
@@ -41,6 +41,8 @@ var _i18n = require("../../../../../Framework/i18n");
|
|
|
41
41
|
|
|
42
42
|
var _Transformers = require("../../Utils/Transformers");
|
|
43
43
|
|
|
44
|
+
var _reactRedux = require("react-redux");
|
|
45
|
+
|
|
44
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
47
|
|
|
46
48
|
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); }
|
|
@@ -206,6 +208,9 @@ var DesignerSelectionToolbox = function DesignerSelectionToolbox(props) {
|
|
|
206
208
|
showCustomFontOverlay = _useState2[0],
|
|
207
209
|
toggleCustomFontOverlay = _useState2[1];
|
|
208
210
|
|
|
211
|
+
var disableLinebreaks = (0, _reactRedux.useSelector)(function (state) {
|
|
212
|
+
return (0, _Selectors.isOneLineText)(state);
|
|
213
|
+
});
|
|
209
214
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
210
215
|
className: classes.root
|
|
211
216
|
}, /*#__PURE__*/_react["default"].createElement(_SelectionToolbox["default"], null, function (_ref) {
|
|
@@ -331,6 +336,7 @@ var DesignerSelectionToolbox = function DesignerSelectionToolbox(props) {
|
|
|
331
336
|
}
|
|
332
337
|
|
|
333
338
|
return renderTextEditor(_objectSpread(_objectSpread({}, textToolsRenderObj), {}, {
|
|
339
|
+
disableLinebreaks: disableLinebreaks,
|
|
334
340
|
autoFocusWhenMounted: autoFocusEditor || !((0, _Selectors.isPlaceholderContent)(selectedObject.content) || (0, _isMobileDevice["default"])()),
|
|
335
341
|
textEditorElementProps: textEditorElementProps,
|
|
336
342
|
onChangeHTML: function onChangeHTML() {
|
|
@@ -62,6 +62,7 @@ var _exportNames = {
|
|
|
62
62
|
parseColorData: true,
|
|
63
63
|
getCameraViewListForDesignAreaList: true,
|
|
64
64
|
getDesignViewListForDesignAreas: true,
|
|
65
|
+
getDesignAreaFromSelectedDesignView: true,
|
|
65
66
|
getDefaultDesignAreaIdentifierFromProductionMethod: true,
|
|
66
67
|
getDefaultColorsFromDesignProductionMethod: true,
|
|
67
68
|
getDefaultTextColor: true,
|
|
@@ -76,7 +77,8 @@ var _exportNames = {
|
|
|
76
77
|
getDesignAreaPreSelection: true,
|
|
77
78
|
getDesignAreaColorAmount: true,
|
|
78
79
|
getVectorizeForDesignProductionMethods: true,
|
|
79
|
-
getImagesByDesignArea: true
|
|
80
|
+
getImagesByDesignArea: true,
|
|
81
|
+
isOneLineText: true
|
|
80
82
|
};
|
|
81
83
|
exports.getDesignProductionMethods = getDesignProductionMethods;
|
|
82
84
|
exports.getDesignDataByDesignAreaIdentifier = getDesignDataByDesignAreaIdentifier;
|
|
@@ -122,13 +124,14 @@ exports.getColorsWithPalette = getColorsWithPalette;
|
|
|
122
124
|
exports.getColorsFromCanvasData = getColorsFromCanvasData;
|
|
123
125
|
exports.getColorsFromCanvasDataWithPalette = getColorsFromCanvasDataWithPalette;
|
|
124
126
|
exports.findSmallestFontSizeInCanvasData = findSmallestFontSizeInCanvasData;
|
|
125
|
-
exports.
|
|
127
|
+
exports.isOneLineText = isOneLineText;
|
|
128
|
+
exports.getImagesByDesignArea = exports.getVectorizeForDesignProductionMethods = exports.getDesignAreaColorAmount = exports.getDesignAreaPreSelection = exports.hasLastEditedDesignArea = exports.areAllDesignAreasEmpty = exports.getVectorizedImageColor = exports.areHashesCompatible = exports.getCurrentCompatibilityInfoHash = exports.getDesignAreaImageCompatibilityInfo = exports.contentHasText = exports.isPlaceholderContent = exports.getDefaultTextColor = exports.getDefaultColorsFromDesignProductionMethod = exports.getDefaultDesignAreaIdentifierFromProductionMethod = exports.getDesignAreaFromSelectedDesignView = exports.getDesignViewListForDesignAreas = exports.getCameraViewListForDesignAreaList = exports.parseColorData = exports.createColorData = exports.rgbObjToHex = exports.rgbString2hex = exports.rgbToHex = exports.calculateColorDistance = exports.hexToRgbNumbers = exports.hexToRgb = exports.isValidHex = exports.getColorPalettes = exports.hasPlaceHolderImagesForActiveDesignArea = exports.getDesignAreaIdentifierToOpen = void 0;
|
|
126
129
|
|
|
127
130
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
128
131
|
|
|
129
132
|
var _first = _interopRequireDefault(require("lodash/first"));
|
|
130
133
|
|
|
131
|
-
var
|
|
134
|
+
var _find2 = _interopRequireDefault(require("lodash/find"));
|
|
132
135
|
|
|
133
136
|
var _findKey = _interopRequireDefault(require("lodash/findKey"));
|
|
134
137
|
|
|
@@ -348,8 +351,9 @@ var getDesignAreaIdentifierToOpen = function getDesignAreaIdentifierToOpen(state
|
|
|
348
351
|
var identifier = state.designArea.selectedDesignArea.identifier;
|
|
349
352
|
var previousEditedDesignAreaIdentifier = getPreviousEditedDesignAreaIdentifier(state);
|
|
350
353
|
var firstEditedDesignAreafromDesignData = getFirstEditedDesignAreafromDesignData(state);
|
|
354
|
+
var designAreaFromSelectedDesignView = getDesignAreaFromSelectedDesignView(state);
|
|
351
355
|
var defaultDesignAreaFromProductionMethod = getDefaultDesignAreaIdentifierFromProductionMethod(state);
|
|
352
|
-
return identifier || previousEditedDesignAreaIdentifier || firstEditedDesignAreafromDesignData || defaultDesignAreaFromProductionMethod || null;
|
|
356
|
+
return identifier || previousEditedDesignAreaIdentifier || firstEditedDesignAreafromDesignData || designAreaFromSelectedDesignView || defaultDesignAreaFromProductionMethod || null;
|
|
353
357
|
};
|
|
354
358
|
|
|
355
359
|
exports.getDesignAreaIdentifierToOpen = getDesignAreaIdentifierToOpen;
|
|
@@ -386,7 +390,7 @@ function getSelectedDesignProductionMethod(state) {
|
|
|
386
390
|
var designProductionMethods = getDesignProductionMethods(state);
|
|
387
391
|
var designAreaData = getDesignDataForSelectedDesignArea(state);
|
|
388
392
|
var designProductionMethodIdentifier = designAreaData.designProductionMethodIdentifier;
|
|
389
|
-
return (0,
|
|
393
|
+
return (0, _find2["default"])(designProductionMethods, {
|
|
390
394
|
identifier: designProductionMethodIdentifier
|
|
391
395
|
}) || (0, _first["default"])(designProductionMethods);
|
|
392
396
|
}
|
|
@@ -487,14 +491,14 @@ function getSelectedDesignProductionMethodForDesignArea(state, designArea) {
|
|
|
487
491
|
var _ref8 = designAreaData || {},
|
|
488
492
|
designProductionMethodIdentifier = _ref8.designProductionMethodIdentifier;
|
|
489
493
|
|
|
490
|
-
return (0,
|
|
494
|
+
return (0, _find2["default"])(designProductionMethods, {
|
|
491
495
|
identifier: designProductionMethodIdentifier
|
|
492
496
|
}) || (0, _first["default"])(designProductionMethods);
|
|
493
497
|
}
|
|
494
498
|
|
|
495
499
|
function getDesignProductionMethodByIdentifier(state, identifier) {
|
|
496
500
|
var designProductionMethods = getDesignProductionMethods(state);
|
|
497
|
-
return (0,
|
|
501
|
+
return (0, _find2["default"])(designProductionMethods, {
|
|
498
502
|
identifier: identifier
|
|
499
503
|
});
|
|
500
504
|
}
|
|
@@ -678,7 +682,7 @@ function getEngravingBackgroundColor(state, designProductionMethod) {
|
|
|
678
682
|
var _designProductionMethod = designProductionMethod || getSelectedDesignProductionMethod(state) || {};
|
|
679
683
|
|
|
680
684
|
var engravingBackgroundColors = _designProductionMethod.engravingBackgroundColors;
|
|
681
|
-
return (0, _get["default"])((0,
|
|
685
|
+
return (0, _get["default"])((0, _find2["default"])(engravingBackgroundColors, {
|
|
682
686
|
itemIdentifier: variantIdentifier || (0, _Selectors.getSelectedVariantIdentifier)((0, _Selectors.getConfigurator)(state))
|
|
683
687
|
}), 'colorHex', 'rgba(0, 0, 0, 0.5)');
|
|
684
688
|
}
|
|
@@ -1027,6 +1031,16 @@ var getDesignViewListForDesignAreas = function getDesignViewListForDesignAreas(s
|
|
|
1027
1031
|
|
|
1028
1032
|
exports.getDesignViewListForDesignAreas = getDesignViewListForDesignAreas;
|
|
1029
1033
|
|
|
1034
|
+
var getDesignAreaFromSelectedDesignView = function getDesignAreaFromSelectedDesignView(state) {
|
|
1035
|
+
var _find;
|
|
1036
|
+
|
|
1037
|
+
var filteredDesignAreas = state.designArea.filteredDesignAreas,
|
|
1038
|
+
selectedDesignView = state.designView.selectedDesignView;
|
|
1039
|
+
return (_find = (0, _find2["default"])(filteredDesignAreas, ['designView.identifier', selectedDesignView.identifier])) === null || _find === void 0 ? void 0 : _find.identifier;
|
|
1040
|
+
};
|
|
1041
|
+
|
|
1042
|
+
exports.getDesignAreaFromSelectedDesignView = getDesignAreaFromSelectedDesignView;
|
|
1043
|
+
|
|
1030
1044
|
var getDefaultDesignAreaIdentifierFromProductionMethod = function getDefaultDesignAreaIdentifierFromProductionMethod(state) {
|
|
1031
1045
|
//return the first designArea with isDefault: true due to api call accepts multiple productionmethods to be default
|
|
1032
1046
|
var filteredDesignAreas = state.designArea.filteredDesignAreas;
|
|
@@ -1083,12 +1097,12 @@ var getDefaultTextColor = function getDefaultTextColor(state) {
|
|
|
1083
1097
|
var variantIdentifier = (0, _Selectors.getSelectedVariantIdentifier)((0, _Selectors.getConfigurator)(state));
|
|
1084
1098
|
|
|
1085
1099
|
if (defaultColors && defaultColors[variantIdentifier]) {
|
|
1086
|
-
var colorPalette = (0,
|
|
1100
|
+
var colorPalette = (0, _find2["default"])(colorPalettes, {
|
|
1087
1101
|
identifier: Object.keys(defaultColors[variantIdentifier])[0]
|
|
1088
1102
|
});
|
|
1089
1103
|
|
|
1090
1104
|
if (colorPalette) {
|
|
1091
|
-
var color = (0,
|
|
1105
|
+
var color = (0, _find2["default"])(colorPalette.colors, {
|
|
1092
1106
|
identifier: defaultColors[variantIdentifier][colorPalette.identifier]
|
|
1093
1107
|
});
|
|
1094
1108
|
|
|
@@ -1104,7 +1118,7 @@ var getDefaultTextColor = function getDefaultTextColor(state) {
|
|
|
1104
1118
|
}
|
|
1105
1119
|
|
|
1106
1120
|
var paletteDefaultColorIdentifier = (0, _get["default"])(colorPalettes[0], 'defaultColor.identifier', '');
|
|
1107
|
-
var paletteDefaultColor = (0,
|
|
1121
|
+
var paletteDefaultColor = (0, _find2["default"])(colorPalettes[0].colors, {
|
|
1108
1122
|
identifier: paletteDefaultColorIdentifier
|
|
1109
1123
|
});
|
|
1110
1124
|
|
|
@@ -1254,7 +1268,7 @@ var getDesignAreaPreSelection = function getDesignAreaPreSelection(identifier) {
|
|
|
1254
1268
|
return {};
|
|
1255
1269
|
}
|
|
1256
1270
|
|
|
1257
|
-
var preSelection = (0,
|
|
1271
|
+
var preSelection = (0, _find2["default"])(designerPreSelection.designAreas, {
|
|
1258
1272
|
identifier: identifier
|
|
1259
1273
|
});
|
|
1260
1274
|
return preSelection ? preSelection : {};
|
|
@@ -1301,4 +1315,8 @@ var getImagesByDesignArea = function getImagesByDesignArea(state, designAreaIden
|
|
|
1301
1315
|
});
|
|
1302
1316
|
};
|
|
1303
1317
|
|
|
1304
|
-
exports.getImagesByDesignArea = getImagesByDesignArea;
|
|
1318
|
+
exports.getImagesByDesignArea = getImagesByDesignArea;
|
|
1319
|
+
|
|
1320
|
+
function isOneLineText(state) {
|
|
1321
|
+
return (0, _get["default"])(getSelectedDesignProductionMethod(state), 'oneLineText', false);
|
|
1322
|
+
}
|
|
@@ -83,6 +83,7 @@ var SendEmail = function SendEmail(props) {
|
|
|
83
83
|
},
|
|
84
84
|
id: "alert-dialog-description"
|
|
85
85
|
}, (0, _i18n.t)('sendEmailDialog.info'))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_MainButton["default"], {
|
|
86
|
+
target: "_blank",
|
|
86
87
|
href: emailUrl,
|
|
87
88
|
onClick: onClose,
|
|
88
89
|
variant: "contained",
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@configuratorware/configurator-frontendgui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.36.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./index.js",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@babel/polyfill": "^7.12.1",
|
|
9
|
-
"@configuratorware/scripts": "1.
|
|
9
|
+
"@configuratorware/scripts": "1.36.0",
|
|
10
10
|
"@hot-loader/react-dom": "^17.0.1",
|
|
11
11
|
"@material-ui/core": "^4.12.2",
|
|
12
12
|
"@material-ui/icons": "^4.11.2",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"react-router-dom": "^5.2.0",
|
|
40
40
|
"react-swipeable": "^5.5.1",
|
|
41
41
|
"react-zoom-pan-pinch": "^2.1.3",
|
|
42
|
-
"redhotmagma-graphics-editor": "1.
|
|
43
|
-
"redhotmagma-visualization": "1.
|
|
42
|
+
"redhotmagma-graphics-editor": "1.36.0",
|
|
43
|
+
"redhotmagma-visualization": "1.36.0",
|
|
44
44
|
"redux": "^4.1.0",
|
|
45
45
|
"redux-logger": "^3.0.6",
|
|
46
46
|
"redux-persist": "^5.10.0",
|
|
@@ -253,6 +253,10 @@ const Option = ({ children, render, ...props }) => {
|
|
|
253
253
|
});
|
|
254
254
|
};
|
|
255
255
|
|
|
256
|
+
const onAbstractClicked = event => {
|
|
257
|
+
event.stopPropagation();
|
|
258
|
+
};
|
|
259
|
+
|
|
256
260
|
const onDetailsClicked = event => {
|
|
257
261
|
event.stopPropagation();
|
|
258
262
|
event.preventDefault();
|
|
@@ -409,7 +413,9 @@ const Option = ({ children, render, ...props }) => {
|
|
|
409
413
|
{!hidePrices && <div className={classes.price}>{option.priceFormatted}</div>}
|
|
410
414
|
{smallerScreen && renderControls('horizontal')}
|
|
411
415
|
{option.abstract && (
|
|
412
|
-
<Markdown className={classes.description}
|
|
416
|
+
<Markdown className={classes.description} onClick={onAbstractClicked}>
|
|
417
|
+
{option.abstract}
|
|
418
|
+
</Markdown>
|
|
413
419
|
)}
|
|
414
420
|
|
|
415
421
|
{renderActions()}
|
|
@@ -481,6 +487,7 @@ const Option = ({ children, render, ...props }) => {
|
|
|
481
487
|
onOptionSelected,
|
|
482
488
|
onOptionClicked,
|
|
483
489
|
onAmountChanged,
|
|
490
|
+
onAbstractClicked,
|
|
484
491
|
onDetailsClicked,
|
|
485
492
|
onIncompatibilityClicked,
|
|
486
493
|
onOptionGroupClicked,
|
package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js
CHANGED
|
@@ -10,11 +10,12 @@ import TextControlbox from '../TextControlbox';
|
|
|
10
10
|
import ImageControlbox from '../ImageControlbox';
|
|
11
11
|
import { CustomFontOverlay } from './CustomFontOverlay';
|
|
12
12
|
import { createFontItemProps, findCurrentFontItem } from './fontItemUtils';
|
|
13
|
-
import { isPlaceholderContent } from 'App/Reducers/DesignArea/Selectors';
|
|
13
|
+
import { isPlaceholderContent, isOneLineText } from 'App/Reducers/DesignArea/Selectors';
|
|
14
14
|
import isMobileDevice from 'Framework/Helpers/isMobileDevice';
|
|
15
15
|
import { hasBackgroundColor } from 'App/Reducers/DesignData/Selectors';
|
|
16
16
|
import { t } from 'Framework/i18n';
|
|
17
17
|
import { isOriginalVector } from '../../Utils/Transformers';
|
|
18
|
+
import { useSelector } from 'react-redux';
|
|
18
19
|
|
|
19
20
|
const styles = theme => ({
|
|
20
21
|
root: {
|
|
@@ -138,6 +139,7 @@ const DesignerSelectionToolbox = props => {
|
|
|
138
139
|
const rteRef = useRef(null);
|
|
139
140
|
const editorRef = useRef(null);
|
|
140
141
|
const [showCustomFontOverlay, toggleCustomFontOverlay] = useState(false);
|
|
142
|
+
const disableLinebreaks = useSelector(state => isOneLineText(state));
|
|
141
143
|
|
|
142
144
|
return (
|
|
143
145
|
<div className={classes.root}>
|
|
@@ -292,6 +294,7 @@ const DesignerSelectionToolbox = props => {
|
|
|
292
294
|
|
|
293
295
|
return renderTextEditor({
|
|
294
296
|
...textToolsRenderObj,
|
|
297
|
+
disableLinebreaks,
|
|
295
298
|
autoFocusWhenMounted:
|
|
296
299
|
autoFocusEditor ||
|
|
297
300
|
!(
|
|
@@ -125,11 +125,14 @@ export const getDesignAreaIdentifierToOpen = state => {
|
|
|
125
125
|
} = state;
|
|
126
126
|
const previousEditedDesignAreaIdentifier = getPreviousEditedDesignAreaIdentifier(state);
|
|
127
127
|
const firstEditedDesignAreafromDesignData = getFirstEditedDesignAreafromDesignData(state);
|
|
128
|
+
const designAreaFromSelectedDesignView = getDesignAreaFromSelectedDesignView(state);
|
|
128
129
|
const defaultDesignAreaFromProductionMethod = getDefaultDesignAreaIdentifierFromProductionMethod(state);
|
|
130
|
+
|
|
129
131
|
return (
|
|
130
132
|
identifier ||
|
|
131
133
|
previousEditedDesignAreaIdentifier ||
|
|
132
134
|
firstEditedDesignAreafromDesignData ||
|
|
135
|
+
designAreaFromSelectedDesignView ||
|
|
133
136
|
defaultDesignAreaFromProductionMethod ||
|
|
134
137
|
null
|
|
135
138
|
);
|
|
@@ -672,6 +675,14 @@ export const getDesignViewListForDesignAreas = (state, designAreas) => {
|
|
|
672
675
|
return designViewList;
|
|
673
676
|
};
|
|
674
677
|
|
|
678
|
+
export const getDesignAreaFromSelectedDesignView = state => {
|
|
679
|
+
const {
|
|
680
|
+
designArea: { filteredDesignAreas },
|
|
681
|
+
designView: { selectedDesignView },
|
|
682
|
+
} = state;
|
|
683
|
+
return find(filteredDesignAreas, ['designView.identifier', selectedDesignView.identifier])?.identifier;
|
|
684
|
+
};
|
|
685
|
+
|
|
675
686
|
export const getDefaultDesignAreaIdentifierFromProductionMethod = state => {
|
|
676
687
|
//return the first designArea with isDefault: true due to api call accepts multiple productionmethods to be default
|
|
677
688
|
const {
|
|
@@ -905,3 +916,7 @@ export const getImagesByDesignArea = (state, designAreaIdentifier) => {
|
|
|
905
916
|
const designData = getDesignDataByDesignAreaIdentifier(state, designAreaIdentifier);
|
|
906
917
|
return get(designData, 'canvasData.objects', []).filter(({ type }) => type === 'Image');
|
|
907
918
|
};
|
|
919
|
+
|
|
920
|
+
export function isOneLineText(state) {
|
|
921
|
+
return get(getSelectedDesignProductionMethod(state), 'oneLineText', false);
|
|
922
|
+
}
|
|
@@ -262,6 +262,11 @@ describe('Reducers/DesignArea/Selectors', () => {
|
|
|
262
262
|
selectedDesignArea: { identifier: 'a_2' },
|
|
263
263
|
previousEditedDesignArea: {},
|
|
264
264
|
},
|
|
265
|
+
designView: {
|
|
266
|
+
selectedDesignView: {
|
|
267
|
+
identifier: '01_side',
|
|
268
|
+
},
|
|
269
|
+
},
|
|
265
270
|
configurator: {
|
|
266
271
|
configuration: {
|
|
267
272
|
designdata: {
|
|
@@ -600,6 +600,9 @@ describe('Services/DesignDataService', () => {
|
|
|
600
600
|
selectedDesignArea: {},
|
|
601
601
|
previousEditedDesignArea: {},
|
|
602
602
|
},
|
|
603
|
+
designView: {
|
|
604
|
+
selectedDesignView: {},
|
|
605
|
+
},
|
|
603
606
|
};
|
|
604
607
|
dispatch = jest.fn();
|
|
605
608
|
})();
|
|
@@ -624,6 +627,75 @@ describe('Services/DesignDataService', () => {
|
|
|
624
627
|
expect(srv.selectFirstDesignArea).toHaveBeenCalled();
|
|
625
628
|
}
|
|
626
629
|
);
|
|
630
|
+
test(
|
|
631
|
+
'[INTEGRATION] openDesignAreaEditor calls the ui.show action to show the designer, and calls the ' +
|
|
632
|
+
'designArea from designView because a designView is selected',
|
|
633
|
+
() => {
|
|
634
|
+
const mockStoreSrv = new (class StoreService {
|
|
635
|
+
static serviceName = 'StoreService';
|
|
636
|
+
state = {
|
|
637
|
+
configurator: {
|
|
638
|
+
configuration: {
|
|
639
|
+
designData: {},
|
|
640
|
+
},
|
|
641
|
+
},
|
|
642
|
+
designArea: {
|
|
643
|
+
selectedDesignArea: {},
|
|
644
|
+
previousEditedDesignArea: {},
|
|
645
|
+
filteredDesignAreas: [
|
|
646
|
+
{
|
|
647
|
+
identifier: 'back',
|
|
648
|
+
designView: {
|
|
649
|
+
identifier: '03_back',
|
|
650
|
+
},
|
|
651
|
+
designProductionMethods: [],
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
identifier: 'front',
|
|
655
|
+
designView: {
|
|
656
|
+
identifier: '02_front',
|
|
657
|
+
},
|
|
658
|
+
designProductionMethods: [],
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
identifier: 'side',
|
|
662
|
+
designView: {
|
|
663
|
+
identifier: '01_side',
|
|
664
|
+
},
|
|
665
|
+
designProductionMethods: [],
|
|
666
|
+
},
|
|
667
|
+
],
|
|
668
|
+
},
|
|
669
|
+
designView: {
|
|
670
|
+
selectedDesignView: {
|
|
671
|
+
identifier: '01_side',
|
|
672
|
+
},
|
|
673
|
+
},
|
|
674
|
+
};
|
|
675
|
+
dispatch = jest.fn();
|
|
676
|
+
})();
|
|
677
|
+
ServiceLocator.provide(mockStoreSrv);
|
|
678
|
+
const mockUISrv = new (class UIService {
|
|
679
|
+
static serviceName = 'UIService';
|
|
680
|
+
show = jest.fn();
|
|
681
|
+
})();
|
|
682
|
+
ServiceLocator.provide(mockUISrv);
|
|
683
|
+
const mockVisualizationSrv = new (class VisualizationService {
|
|
684
|
+
static serviceName = 'VisualizationService';
|
|
685
|
+
enableUserMovement = jest.fn();
|
|
686
|
+
disableUserMovement = jest.fn();
|
|
687
|
+
freeUserMovement = jest.fn();
|
|
688
|
+
getActiveDesignArea = jest.fn();
|
|
689
|
+
})();
|
|
690
|
+
ServiceLocator.provide(mockVisualizationSrv);
|
|
691
|
+
|
|
692
|
+
const srv = new DesignDataService();
|
|
693
|
+
srv.selectDesignArea = jest.fn();
|
|
694
|
+
srv.openDesignAreaEditor();
|
|
695
|
+
expect(mockUISrv.show).toHaveBeenCalledWith('designer');
|
|
696
|
+
expect(srv.selectDesignArea).toHaveBeenCalledWith('side');
|
|
697
|
+
}
|
|
698
|
+
);
|
|
627
699
|
test(
|
|
628
700
|
'[INTEGRATION] openDesignAreaEditor calls the ui.show action to show the designer, and calls the ' +
|
|
629
701
|
'designArea from designData with objects to open',
|
|
@@ -659,6 +731,9 @@ describe('Services/DesignDataService', () => {
|
|
|
659
731
|
selectedDesignArea: {},
|
|
660
732
|
previousEditedDesignArea: {},
|
|
661
733
|
},
|
|
734
|
+
designView: {
|
|
735
|
+
selectedDesignView: {},
|
|
736
|
+
},
|
|
662
737
|
};
|
|
663
738
|
dispatch = jest.fn();
|
|
664
739
|
})();
|
|
@@ -701,6 +776,9 @@ describe('Services/DesignDataService', () => {
|
|
|
701
776
|
identifier: 'area-51',
|
|
702
777
|
},
|
|
703
778
|
},
|
|
779
|
+
designView: {
|
|
780
|
+
selectedDesignView: {},
|
|
781
|
+
},
|
|
704
782
|
};
|
|
705
783
|
dispatch = jest.fn();
|
|
706
784
|
})();
|
|
@@ -739,6 +817,9 @@ describe('Services/DesignDataService', () => {
|
|
|
739
817
|
},
|
|
740
818
|
previousEditedDesignArea: {},
|
|
741
819
|
},
|
|
820
|
+
designView: {
|
|
821
|
+
selectedDesignView: {},
|
|
822
|
+
},
|
|
742
823
|
configurator: {
|
|
743
824
|
configuration: {
|
|
744
825
|
designdata: {
|