@configuratorware/configurator-frontendgui 1.49.9 → 1.50.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 (107) hide show
  1. package/App/Error/ProductionErrorPage/index.js +5 -1
  2. package/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +2 -1
  3. package/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +2 -1
  4. package/App/Modules/Creator/Components/Incompatibility/index.js +1 -2
  5. package/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +8 -31
  6. package/App/Modules/Creator/Components/Option/index.js +18 -14
  7. package/App/Modules/Creator/Components/OptionAmount/index.js +11 -7
  8. package/App/Modules/Creator/Components/ProductPart/index.js +20 -25
  9. package/App/Modules/Creator/Components/ProductPartsList/index.js +0 -2
  10. package/App/Modules/Creator/Layouts/DefaultLayout.js +8 -9
  11. package/App/Modules/Designer/Components/AddGalleryImage/index.js +5 -2
  12. package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +0 -2
  13. package/App/Modules/Designer/Components/Dialog/index.js +1 -3
  14. package/App/Modules/Designer/Components/ImageControlbox/index.js +1 -3
  15. package/App/Reducers/Reducer.js +8 -2
  16. package/App/Screens/Configurator/Components/Confirm/index.js +1 -5
  17. package/App/Screens/Configurator/Components/Error/index.js +0 -3
  18. package/App/Screens/Configurator/Components/FullScreenView/index.js +2 -5
  19. package/App/Screens/Configurator/Components/FullScreenView/index.test.js +1 -1
  20. package/App/Screens/Configurator/Components/PreviewPortal/index.js +23 -28
  21. package/App/Screens/Configurator/Components/Thumbnail/index.js +9 -6
  22. package/App/Screens/Configurator/ThemeProvider.js +7 -4
  23. package/App/Shared/Components/AccessibleButton/AccessibleButton.js +40 -0
  24. package/App/Shared/Components/AlertDialog/index.js +0 -3
  25. package/App/Shared/Components/AmountPrice/index.js +29 -20
  26. package/App/Shared/Components/Analytics/AnalyticsWrapper.js +7 -1
  27. package/App/Shared/Components/AutoFocusDialogContentContainer/AutoFocusDialogContentContainer.js +71 -0
  28. package/App/Shared/Components/BulkNames/index.js +9 -6
  29. package/App/Shared/Components/LoadConfiguration/index.js +0 -2
  30. package/App/Shared/Components/PdfDownload/index.js +0 -2
  31. package/App/Shared/Components/SaveConfiguration/index.js +3 -4
  32. package/App/Shared/Components/SendEmail/index.js +0 -2
  33. package/App/Shared/Components/ToolbarList/index.js +18 -16
  34. package/App/Shared/Hooks/useDialogId.js +19 -0
  35. package/Shared/Components/CustomDialog.js +77 -56
  36. package/package.json +4 -4
  37. package/public/invoke.js +1 -1
  38. package/public/translations/de_DE.json +2 -1
  39. package/public/translations/en_GB.json +2 -1
  40. package/scripts/utils/fileSystem.js +6 -1
  41. package/src/App/Error/ProductionErrorPage/index.js +27 -24
  42. package/src/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +1 -1
  43. package/src/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +1 -1
  44. package/src/App/Modules/Creator/Components/Incompatibility/index.js +1 -2
  45. package/src/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +10 -27
  46. package/src/App/Modules/Creator/Components/Option/__snapshots__/index.test.js.snap +142 -90
  47. package/src/App/Modules/Creator/Components/Option/index.js +30 -14
  48. package/src/App/Modules/Creator/Components/OptionAmount/__snapshots__/index.test.js.snap +31 -18
  49. package/src/App/Modules/Creator/Components/OptionAmount/index.js +7 -2
  50. package/src/App/Modules/Creator/Components/ProductPart/__snapshots__/index.test.js.snap +32 -24
  51. package/src/App/Modules/Creator/Components/ProductPart/index.js +20 -27
  52. package/src/App/Modules/Creator/Components/ProductPartsList/index.js +0 -2
  53. package/src/App/Modules/Creator/Layouts/DefaultLayout.js +12 -13
  54. package/src/App/Modules/Designer/Components/AddGalleryImage/__snapshots__/index.test.jsx.snap +1 -0
  55. package/src/App/Modules/Designer/Components/AddGalleryImage/index.js +4 -1
  56. package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +0 -2
  57. package/src/App/Modules/Designer/Components/Dialog/index.js +1 -1
  58. package/src/App/Modules/Designer/Components/ImageControlbox/index.js +0 -2
  59. package/src/App/Reducers/Reducer.js +7 -0
  60. package/src/App/Screens/Configurator/Components/Confirm/index.js +1 -3
  61. package/src/App/Screens/Configurator/Components/Error/index.js +2 -11
  62. package/src/App/Screens/Configurator/Components/FullScreenView/__snapshots__/index.test.jsx.snap +3 -4
  63. package/src/App/Screens/Configurator/Components/FullScreenView/index.js +17 -17
  64. package/src/App/Screens/Configurator/Components/FullScreenView/index.test.jsx +1 -1
  65. package/src/App/Screens/Configurator/Components/PreviewPortal/index.js +23 -32
  66. package/src/App/Screens/Configurator/Components/Thumbnail/__snapshots__/index.test.jsx.snap +32 -8
  67. package/src/App/Screens/Configurator/Components/Thumbnail/index.js +8 -5
  68. package/src/App/Screens/Configurator/ThemeProvider.js +6 -3
  69. package/src/App/Shared/Components/AccessibleButton/AccessibleButton.js +29 -0
  70. package/src/App/Shared/Components/AlertDialog/index.js +1 -6
  71. package/src/App/Shared/Components/AmountPrice/__snapshots__/index.test.jsx.snap +15 -15
  72. package/src/App/Shared/Components/AmountPrice/index.js +31 -21
  73. package/src/App/Shared/Components/Analytics/AnalyticsWrapper.js +6 -0
  74. package/src/App/Shared/Components/AutoFocusDialogContentContainer/AutoFocusDialogContentContainer.jsx +52 -0
  75. package/src/App/Shared/Components/BulkNames/index.js +11 -6
  76. package/src/App/Shared/Components/LoadConfiguration/index.js +0 -2
  77. package/src/App/Shared/Components/PdfDownload/index.js +0 -2
  78. package/src/App/Shared/Components/SaveConfiguration/index.js +6 -4
  79. package/src/App/Shared/Components/SendEmail/index.js +0 -2
  80. package/src/App/Shared/Components/ToolbarList/__snapshots__/ToolbarList.test.js.snap +44 -20
  81. package/src/App/Shared/Components/ToolbarList/index.js +30 -27
  82. package/src/App/Shared/Hooks/useDialogId.js +11 -0
  83. package/src/Shared/Components/CustomDialog.js +60 -43
  84. package/App/Modules/Creator/Components/LoginForm/Styles.scss +0 -9
  85. package/App/Modules/Creator/Components/LoginForm/index.js +0 -91
  86. package/App/Modules/Creator/Components/SavedConfiguration/Styles.scss +0 -19
  87. package/App/Modules/Creator/Components/SavedConfiguration/index.js +0 -50
  88. package/App/Modules/Creator/Components/ShareConfiguration/Styles.scss +0 -23
  89. package/App/Modules/Creator/Components/ShareConfiguration/index.js +0 -165
  90. package/App/Modules/Creator/Components/StockInformation/index.js +0 -62
  91. package/App/Modules/Creator/Components/StoreConfigurationForm/Styles.scss +0 -5
  92. package/App/Modules/Creator/Components/StoreConfigurationForm/index.js +0 -86
  93. package/App/Modules/Creator/Components/ValidationResult/Styles.scss +0 -45
  94. package/App/Modules/Creator/Components/ValidationResult/index.js +0 -119
  95. package/App/Modules/Creator/Components/index.js +0 -57
  96. package/src/App/Modules/Creator/Components/LoginForm/Styles.scss +0 -9
  97. package/src/App/Modules/Creator/Components/LoginForm/index.js +0 -69
  98. package/src/App/Modules/Creator/Components/SavedConfiguration/Styles.scss +0 -19
  99. package/src/App/Modules/Creator/Components/SavedConfiguration/index.js +0 -37
  100. package/src/App/Modules/Creator/Components/ShareConfiguration/Styles.scss +0 -23
  101. package/src/App/Modules/Creator/Components/ShareConfiguration/index.js +0 -161
  102. package/src/App/Modules/Creator/Components/StockInformation/index.js +0 -39
  103. package/src/App/Modules/Creator/Components/StoreConfigurationForm/Styles.scss +0 -5
  104. package/src/App/Modules/Creator/Components/StoreConfigurationForm/index.js +0 -73
  105. package/src/App/Modules/Creator/Components/ValidationResult/Styles.scss +0 -45
  106. package/src/App/Modules/Creator/Components/ValidationResult/index.js +0 -89
  107. package/src/App/Modules/Creator/Components/index.js +0 -51
@@ -9,8 +9,10 @@ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography")
9
9
  var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
10
10
  var _i18n = require("../../../Framework/i18n");
11
11
  require("./Style.scss");
12
+ var _Store = require("./../../Store");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
14
  var ErrorPage = function ErrorPage() {
15
+ var is404Error = _Store.store.getState().api.has404Error;
14
16
  return /*#__PURE__*/_react["default"].createElement("div", {
15
17
  className: "error-wrapper"
16
18
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -22,7 +24,9 @@ var ErrorPage = function ErrorPage() {
22
24
  className: "text"
23
25
  }, (0, _i18n.T)('errorPage.errorTexts.first')), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
24
26
  className: "text"
25
- }, (0, _i18n.T)('errorPage.errorTexts.second'))), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
27
+ }, (0, _i18n.T)('errorPage.errorTexts.second')), is404Error && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
28
+ className: "text"
29
+ }, (0, _i18n.T)('errorPage.errorTexts.404'))), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
26
30
  variant: "contained",
27
31
  color: "secondary",
28
32
  className: "button",
@@ -45,7 +45,8 @@ var decorateOptionlistitem = exports.decorateOptionlistitem = (0, _memoize["defa
45
45
  return null;
46
46
  }
47
47
  return /*#__PURE__*/_react["default"].createElement(OptionlistitemComponent, _extends({}, props, {
48
- OptionAmountComponent: null
48
+ OptionAmountComponent: null,
49
+ notAccessible: true
49
50
  }));
50
51
  });
51
52
  });
@@ -44,7 +44,8 @@ var decorateOptionlistitem = exports.decorateOptionlistitem = (0, _memoize["defa
44
44
  return null;
45
45
  }
46
46
  return /*#__PURE__*/_react["default"].createElement(OptionlistitemComponent, _extends({}, props, {
47
- OptionAmountComponent: null
47
+ OptionAmountComponent: null,
48
+ notAccessible: true
48
49
  }));
49
50
  });
50
51
  });
@@ -175,8 +175,7 @@ var Incompatibility = /*#__PURE__*/function (_React$Component) {
175
175
  dialogTitle: (0, _i18n.T)('incompatibility.dialogTitle'),
176
176
  onClose: onClose,
177
177
  onCancel: onClose,
178
- className: classes.incompatibilityDialog,
179
- refValue: checkResults
178
+ className: classes.incompatibilityDialog
180
179
  }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
181
180
  className: 'incompatibility'
182
181
  }, this.renderRules()), this.renderFooter());
@@ -8,19 +8,16 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _useMediaQuery = _interopRequireDefault(require("@material-ui/core/useMediaQuery"));
10
10
  var _styles = require("@material-ui/core/styles");
11
- var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
12
- var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
13
11
  var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
14
12
  var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
15
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
16
13
  var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
17
- var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
18
14
  var _MainButton = _interopRequireDefault(require("../../../../../Shared/Components/MainButton"));
19
15
  var _List = _interopRequireDefault(require("@material-ui/core/List"));
20
16
  var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
21
17
  var _ListItemText = _interopRequireDefault(require("@material-ui/core/ListItemText"));
22
18
  var _Divider = _interopRequireDefault(require("@material-ui/core/Divider"));
23
19
  var _i18n = require("../../../../../Framework/i18n");
20
+ var _CustomDialog = _interopRequireDefault(require("../../../../../Shared/Components/CustomDialog"));
24
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
22
  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); }
26
23
  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; }
@@ -35,19 +32,6 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
35
32
  root: {
36
33
  borderTop: "7px solid ".concat(theme.palette.primary.main)
37
34
  },
38
- titleRoot: {
39
- margin: 0,
40
- padding: theme.spacing(2)
41
- },
42
- title: {
43
- marginRight: 40
44
- },
45
- closeButton: {
46
- position: 'absolute',
47
- right: theme.spacing(1),
48
- top: theme.spacing(1),
49
- color: theme.palette.grey[500]
50
- },
51
35
  contentRoot: {
52
36
  padding: theme.spacing(2)
53
37
  },
@@ -76,23 +60,16 @@ var InvalidConfigurationNotice = function InvalidConfigurationNotice(_ref) {
76
60
  initialRender.current = false;
77
61
  }
78
62
  }, [open, validationErrors, adminMode, initialRender]);
79
- return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
63
+ return /*#__PURE__*/_react["default"].createElement(_CustomDialog["default"], {
80
64
  fullScreen: fullScreen,
81
- open: show,
82
65
  classes: {
83
66
  paper: classes.root
84
- }
85
- }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
86
- disableTypography: true,
87
- className: classes.titleRoot
88
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
89
- variant: 'h5',
90
- className: classes.title
91
- }, (0, _i18n.T)('invalidConfigurationNotice.title')), /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
92
- "aria-label": "close",
93
- className: classes.closeButton,
94
- onClick: close
95
- }, /*#__PURE__*/_react["default"].createElement(_Close["default"], null))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
67
+ },
68
+ open: show,
69
+ onClose: close,
70
+ onCancel: close,
71
+ dialogTitle: (0, _i18n.T)('invalidConfigurationNotice.title')
72
+ }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
96
73
  className: classes.contentRoot
97
74
  }, /*#__PURE__*/_react["default"].createElement(_List["default"], null, validationErrors.map(function (_ref2, index) {
98
75
  var title = _ref2.title,
@@ -27,6 +27,7 @@ var _customClassName = _interopRequireDefault(require("../../../../Utils/customC
27
27
  var _OptionAmount = _interopRequireDefault(require("../OptionAmount"));
28
28
  var _OptionGroup = _interopRequireDefault(require("../OptionGroup"));
29
29
  var _getImageUrl = _interopRequireDefault(require("../../../../Utils/getImageUrl"));
30
+ var _AccessibleButton = _interopRequireDefault(require("../../../../Shared/Components/AccessibleButton/AccessibleButton"));
30
31
  var _excluded = ["children", "render"];
31
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
32
33
  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); }
@@ -66,12 +67,10 @@ var styles = function styles(theme) {
66
67
  description: {},
67
68
  materialIcon: {},
68
69
  price: {},
69
- details: {
70
- display: 'inline-block'
71
- },
70
+ details: {},
72
71
  iconWithText: {
73
72
  lineHeight: customValues.icon.lineHeight,
74
- display: 'flex',
73
+ display: 'inline-flex',
75
74
  verticalAlign: 'middle',
76
75
  '& $materialIcon': {
77
76
  "float": 'left',
@@ -116,13 +115,13 @@ var styles = function styles(theme) {
116
115
  padding: 10,
117
116
  cursor: 'pointer',
118
117
  fontSize: customValues.textArea.fontSize,
119
- display: 'table',
120
- width: '94%',
118
+ display: 'flex',
121
119
  '& .content': {
122
120
  position: 'relative',
123
- display: 'table-cell',
121
+ display: 'flex',
124
122
  verticalAlign: 'middle',
125
- margin: 0
123
+ margin: 0,
124
+ flex: 1
126
125
  },
127
126
  '& .disabled': {
128
127
  cursor: 'not-allowed',
@@ -311,7 +310,8 @@ var Option = function Option(_ref) {
311
310
  variant: 'body2'
312
311
  }, translations.notAvailable));
313
312
  case 'yellow':
314
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
313
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_AccessibleButton["default"], {
314
+ component: "a",
315
315
  className: classes.iconWithText,
316
316
  onClick: onLateDeliveryClicked
317
317
  }, /*#__PURE__*/_react["default"].createElement(_RestoreRounded["default"], {
@@ -348,7 +348,8 @@ var Option = function Option(_ref) {
348
348
  var displayDetails = shouldDisplayDetails();
349
349
  return /*#__PURE__*/_react["default"].createElement("div", {
350
350
  className: classes.details
351
- }, displayDetails && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
351
+ }, displayDetails && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_AccessibleButton["default"], {
352
+ component: "a",
352
353
  className: classes.iconWithText,
353
354
  onClick: onDetailsClicked
354
355
  }, /*#__PURE__*/_react["default"].createElement(_InfoRounded["default"], {
@@ -383,7 +384,7 @@ var Option = function Option(_ref) {
383
384
  }, option["abstract"]), renderActions()));
384
385
  };
385
386
  var renderControls = function renderControls(view) {
386
- if (isEnabled() && amountIsSelectable) {
387
+ if (isEnabled() && amountIsSelectable && OptionAmountComponent) {
387
388
  return /*#__PURE__*/_react["default"].createElement(OptionAmountComponent, {
388
389
  view: view,
389
390
  option: option,
@@ -443,10 +444,12 @@ var Option = function Option(_ref) {
443
444
  });
444
445
  };
445
446
  var renderItem = function renderItem() {
446
- return /*#__PURE__*/_react["default"].createElement("div", {
447
+ return /*#__PURE__*/_react["default"].createElement(_AccessibleButton["default"], {
448
+ component: "div",
447
449
  className: getRootClassName(),
448
450
  "data-option": option.identifier,
449
- onClick: onOptionClicked
451
+ onClick: onOptionClicked,
452
+ notAccessible: props.notAccessible
450
453
  }, /*#__PURE__*/_react["default"].createElement("div", {
451
454
  className: getContentClassName()
452
455
  }, typeof children === 'function' ? children(getRenderProps()) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
@@ -470,7 +473,8 @@ Option.defaultProps = {
470
473
  viewDetails: function viewDetails() {},
471
474
  viewStockInformation: function viewStockInformation() {},
472
475
  OptionAmountComponent: _OptionAmount["default"],
473
- OptionGroupComponent: _OptionGroup["default"]
476
+ OptionGroupComponent: _OptionGroup["default"],
477
+ notAccessible: false
474
478
  };
475
479
  var _default = exports["default"] = (0, _styles.withStyles)(styles, {
476
480
  name: 'Option'
@@ -13,6 +13,7 @@ var _styles = require("@material-ui/core/styles");
13
13
  var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
14
14
  var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
15
15
  var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
16
+ var _AccessibleButton = _interopRequireDefault(require("../../../../Shared/Components/AccessibleButton/AccessibleButton"));
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
18
  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); }
18
19
  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; }
@@ -167,10 +168,11 @@ var OptionAmount = function OptionAmount(_ref) {
167
168
  return /*#__PURE__*/_react["default"].createElement("div", {
168
169
  className: (0, _clsx["default"])(classes.root, view),
169
170
  onClick: onAmountClicked
170
- }, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
171
- className: classes.plus,
171
+ }, /*#__PURE__*/_react["default"].createElement(_AccessibleButton["default"], {
172
172
  onClick: plus
173
- }), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
173
+ }, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
174
+ className: classes.plus
175
+ })), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
174
176
  value: optionAmount,
175
177
  inputRef: textRef,
176
178
  onChange: updateAmount,
@@ -182,10 +184,12 @@ var OptionAmount = function OptionAmount(_ref) {
182
184
  return target.select();
183
185
  }, 0);
184
186
  }
185
- }), /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
186
- className: (0, _clsx["default"])(classes.minus, !optionAmount && 'disable'),
187
- onClick: minus
188
- }));
187
+ }), /*#__PURE__*/_react["default"].createElement(_AccessibleButton["default"], {
188
+ onClick: minus,
189
+ disabled: !optionAmount
190
+ }, /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
191
+ className: (0, _clsx["default"])(classes.minus, !optionAmount && 'disable')
192
+ })));
189
193
  };
190
194
  OptionAmount.defaultProps = {
191
195
  option: {},
@@ -13,6 +13,7 @@ var _getImageUrl = _interopRequireDefault(require("../../../../Utils/getImageUrl
13
13
  var _customClassName = _interopRequireDefault(require("../../../../Utils/customClassName"));
14
14
  var _i18n = require("../../../../../Framework/i18n");
15
15
  var _styles = require("@material-ui/core/styles");
16
+ var _AccessibleButton = _interopRequireDefault(require("../../../../Shared/Components/AccessibleButton/AccessibleButton"));
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
18
  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); }
18
19
  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; }
@@ -63,16 +64,11 @@ var ProductPart = function ProductPart(_ref) {
63
64
  ref: setAnchorRef
64
65
  }, /*#__PURE__*/_react["default"].createElement("div", {
65
66
  className: "".concat(classes.marker, " ").concat(direction, " ").concat(selectedAndVisible ? 'selected' : '')
66
- }), /*#__PURE__*/_react["default"].createElement("div", {
67
+ }), /*#__PURE__*/_react["default"].createElement(_AccessibleButton["default"], {
67
68
  className: "".concat(classes.content, " ").concat(direction),
68
69
  onClick: onClick
69
70
  }, displayImage(), displayText()));
70
71
  };
71
- var MARKER_POSITION = {
72
- left: 'left',
73
- right: 'right',
74
- top: 'top'
75
- };
76
72
  ProductPart.defaultProps = {
77
73
  optionclassification: {},
78
74
  onSelect: function onSelect() {},
@@ -81,12 +77,8 @@ ProductPart.defaultProps = {
81
77
  var StyledProductPart = exports.StyledProductPart = (0, _styles.withStyles)(function (theme) {
82
78
  var _root, _selected;
83
79
  var captionMaxHeight = "calc(".concat(theme.creator.productPart.captionPaddingTop, " + ").concat(theme.creator.productPart.lineHeight, " * 2)");
84
- var iconMaxHeigth = "calc(".concat(theme.creator.productPart.itemSize, " - ").concat(captionMaxHeight, " - ").concat(theme.creator.productPart.captionPaddingTop, ")");
85
- var iconSizeWithoutMarker = "calc(".concat(theme.creator.productPart.itemSize, " - ").concat(theme.creator.productPart.spaceBetweenItemAndMarker, ")");
86
- var contentMargin = {
87
- right: '0 0 0 ' + theme.creator.productPart.spaceBetweenItemAndMarker,
88
- left: '0 ' + theme.creator.productPart.spaceBetweenItemAndMarker + ' 0 0'
89
- };
80
+ var iconMaxHeigth = "calc(".concat(theme.creator.productPart.itemSize, " - ").concat(captionMaxHeight, ")");
81
+ var iconSizeWithoutMarker = "calc(".concat(theme.creator.productPart.itemSize, ")");
90
82
  return {
91
83
  root: (_root = {}, _defineProperty(_root, theme.breakpoints.up('sm'), {
92
84
  width: theme.creator.productPart.selectedItemSize
@@ -104,20 +96,21 @@ var StyledProductPart = exports.StyledProductPart = (0, _styles.withStyles)(func
104
96
  cursor: 'pointer',
105
97
  textAlign: 'center',
106
98
  position: 'relative',
107
- '&.horizontal': {
99
+ '&.horizontal': _defineProperty({
100
+ padding: theme.spacing(1, 0, 0, 0),
108
101
  width: theme.creator.productPart.itemSize,
109
102
  height: 'auto',
110
- "float": MARKER_POSITION.top,
111
103
  whiteSpace: 'normal',
112
104
  '& span': {
113
105
  marginBottom: 0
114
106
  }
115
- },
107
+ }, theme.breakpoints.down('xs'), {
108
+ padding: theme.spacing(0.5, 0, 0, 0)
109
+ }),
116
110
  '&.vertical': {
111
+ padding: theme.spacing(0, 0, 1, 0),
117
112
  width: iconSizeWithoutMarker,
118
- maxHeight: 120,
119
- "float": theme.creator.productPartsList.markerVerticalPosition,
120
- margin: theme.creator.productPartsList.markerVerticalPosition === MARKER_POSITION.right ? contentMargin.left : contentMargin.right
113
+ margin: 0
121
114
  }
122
115
  },
123
116
  icon: {
@@ -126,10 +119,12 @@ var StyledProductPart = exports.StyledProductPart = (0, _styles.withStyles)(func
126
119
  backgroundRepeat: 'no-repeat',
127
120
  backgroundSize: 'contain',
128
121
  display: 'block',
129
- '&.horizontal': {
122
+ '&.horizontal': _defineProperty({
130
123
  width: theme.creator.productPart.itemSize,
131
124
  height: 'calc(0.75*' + theme.creator.productPart.itemSize + ')'
132
- },
125
+ }, theme.breakpoints.down('xs'), {
126
+ maxHeight: "calc(0.75 * ".concat(iconMaxHeigth, ")")
127
+ }),
133
128
  '&.vertical': {
134
129
  width: iconSizeWithoutMarker,
135
130
  height: 'calc(0.75*' + iconSizeWithoutMarker + ')'
@@ -143,21 +138,21 @@ var StyledProductPart = exports.StyledProductPart = (0, _styles.withStyles)(func
143
138
  },
144
139
  '&.vertical': {
145
140
  width: theme.creator.productPart.markerThickness,
146
- height: "calc(".concat(theme.creator.productPart.itemSize, " - 24px)"),
147
- "float": theme.creator.productPartsList.markerVerticalPosition
141
+ margin: theme.spacing(0, 0, 1, 0)
148
142
  },
149
143
  '&.selected': (_selected = {}, _defineProperty(_selected, theme.breakpoints.down('sm'), {
150
144
  marginBottom: 4
145
+ }), _defineProperty(_selected, theme.breakpoints.down('xs'), {
146
+ marginBottom: 0
151
147
  }), _defineProperty(_selected, "backgroundColor", theme.palette.primary.main), _selected)
152
148
  },
153
149
  rootTypography: {
154
- padding: '3px 0 2px 7px',
155
- marginBottom: 5,
150
+ paddingTop: theme.creator.productPart.captionPaddingTop,
156
151
  display: '-webkit-box',
157
152
  overflow: 'hidden',
158
153
  wordWrap: 'break-word',
159
154
  maxWidth: theme.creator.productPart.itemSize,
160
- lineHeight: 1,
155
+ lineHeight: theme.creator.productPart.lineHeight,
161
156
  boxOrient: 'vertical',
162
157
  lineClamp: 3,
163
158
  minHeight: 20
@@ -34,8 +34,6 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
34
34
  root: {
35
35
  zIndex: 1,
36
36
  '&.horizontal': _defineProperty({
37
- position: 'absolute',
38
- bottom: 8,
39
37
  height: 'auto',
40
38
  // the available width (see container) is reduced by the width of the two arrows
41
39
  width: 'calc(100% - 72px)'
@@ -85,8 +85,7 @@ var styles = function styles(theme) {
85
85
  productsList: {
86
86
  position: 'absolute',
87
87
  '&.horizontal': (_horizontal = {
88
- bottom: 2,
89
- height: 130
88
+ bottom: 2
90
89
  }, _defineProperty(_horizontal, theme.breakpoints.down('xs'), {
91
90
  width: '100%',
92
91
  left: 0,
@@ -184,6 +183,13 @@ var DefaultLayout = function DefaultLayout(_ref) {
184
183
  })), /*#__PURE__*/_react["default"].createElement("div", {
185
184
  className: (0, _clsx["default"])(classes.outerContainer, !displayVerticalList && 'withBottomList')
186
185
  }, /*#__PURE__*/_react["default"].createElement("div", {
186
+ className: "".concat(classes.productsList, " ").concat(displayVerticalList ? 'vertical' : 'horizontal')
187
+ }, renderProductsList({
188
+ area: 'products',
189
+ width: width,
190
+ classes: classes,
191
+ displayVerticalList: displayVerticalList
192
+ })), /*#__PURE__*/_react["default"].createElement("div", {
187
193
  className: "".concat(classes.container, " ").concat(isPortraitMode ? classes.containerTabletPortrait : '', " ").concat(displayVerticalList ? 'reducedSize' : 'fullSize')
188
194
  }, !fallbackMode && /*#__PURE__*/_react["default"].createElement("div", {
189
195
  className: "".concat(classes.visualization, " ").concat(displayVerticalList ? '' : 'withBottomList')
@@ -199,13 +205,6 @@ var DefaultLayout = function DefaultLayout(_ref) {
199
205
  area: 'cart',
200
206
  width: width,
201
207
  classes: classes
202
- })), /*#__PURE__*/_react["default"].createElement("div", {
203
- className: "".concat(classes.productsList, " ").concat(displayVerticalList ? 'vertical' : 'horizontal')
204
- }, renderProductsList({
205
- area: 'products',
206
- width: width,
207
- classes: classes,
208
- displayVerticalList: displayVerticalList
209
208
  }))));
210
209
  return /*#__PURE__*/_react["default"].createElement("div", {
211
210
  className: "".concat(classes.root, " ").concat(fallbackMode ? classes.fallbackMode : '')
@@ -128,6 +128,7 @@ var AddImagePanel = /*#__PURE__*/function (_React$Component) {
128
128
  var showImageLibrary = images.length > 0;
129
129
  var showFilters = tags.length > 0;
130
130
  var applyButtonDisabled = (0, _isEmpty["default"])(selectedImage);
131
+ var dialogTitleId = 'gallery-image-dialog-title';
131
132
  return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
132
133
  open: open,
133
134
  maxWidth: "md",
@@ -136,12 +137,14 @@ var AddImagePanel = /*#__PURE__*/function (_React$Component) {
136
137
  fullScreen: width === 'sm' || width === 'xs',
137
138
  classes: {
138
139
  paper: classes.root
139
- }
140
+ },
141
+ "aria-labelledby": dialogTitleId
140
142
  }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
141
143
  disableTypography: true
142
144
  }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
143
145
  variant: "h5",
144
- className: classes.title
146
+ className: classes.title,
147
+ id: dialogTitleId
145
148
  }, (0, _i18n.t)('imageLibrary.gallery')), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
146
149
  "aria-label": "close",
147
150
  className: classes.closeButton,
@@ -82,8 +82,6 @@ var CustomFontOverlay = exports.CustomFontOverlay = function CustomFontOverlay(p
82
82
  return open && /*#__PURE__*/_react["default"].createElement(_CustomDialog["default"], {
83
83
  open: open,
84
84
  onClose: closeOverlay,
85
- "aria-labelledby": "alert-dialog-title",
86
- "aria-describedby": "alert-dialog-description",
87
85
  onCancel: closeOverlay,
88
86
  dialogTitle: (0, _i18n.t)('textControlbox.addCustomFont')
89
87
  }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
@@ -68,9 +68,7 @@ var UIDialog = /*#__PURE__*/function (_React$Component) {
68
68
  paper: paperClassName
69
69
  },
70
70
  onClose: onClose
71
- }, other), /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
72
- onClose: onClose
73
- }, /*#__PURE__*/_react["default"].createElement("b", null, dialogTitle), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
71
+ }, other), /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], null, /*#__PURE__*/_react["default"].createElement("b", null, dialogTitle), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
74
72
  className: classes.DialogIcon,
75
73
  onClick: onClose
76
74
  }, "close")), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children));
@@ -227,9 +227,7 @@ var ImageControlbox = /*#__PURE__*/function (_React$Component) {
227
227
  title: (0, _i18n.t)('imageControlbox.editButtonTooltip')
228
228
  }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], null, "edit")))))))), /*#__PURE__*/_react["default"].createElement(_CustomDialog["default"], {
229
229
  open: printQualityInfoDialogOpen,
230
- onClose: this.handlePrintQualityInfoDialogClose,
231
- "aria-labelledby": "alert-dialog-title",
232
- "aria-describedby": "alert-dialog-description"
230
+ onClose: this.handlePrintQualityInfoDialogClose
233
231
  }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], {
234
232
  id: "alert-dialog-description"
235
233
  }, (0, _i18n.t)('imageControlbox.printQuality.' + printQuality))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = apiReducer;
7
7
  var _isObject = _interopRequireDefault(require("lodash/isObject"));
8
8
  var _reduce = _interopRequireDefault(require("lodash/reduce"));
9
+ var _get = _interopRequireDefault(require("lodash/get"));
9
10
  var _Actions = require("./Actions");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
12
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
@@ -16,7 +17,8 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
16
17
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
18
  var initialState = {
18
19
  sources: {},
19
- isFetching: false
20
+ isFetching: false,
21
+ has404Error: false
20
22
  };
21
23
  function getSourceState(action) {
22
24
  switch (action.type) {
@@ -58,6 +60,9 @@ function getSourceState(action) {
58
60
  };
59
61
  }
60
62
  }
63
+ function has404Error(sourceState) {
64
+ return (0, _get["default"])(sourceState, 'error.response.status', null) === 404;
65
+ }
61
66
  function apiReducer() {
62
67
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
63
68
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -82,7 +87,8 @@ function apiReducer() {
82
87
  sources: sources,
83
88
  isFetching: (0, _reduce["default"])(sources, function (result, value) {
84
89
  return result || value.isFetching;
85
- }, false)
90
+ }, false),
91
+ has404Error: has404Error(sourceState)
86
92
  });
87
93
  }
88
94
  default:
@@ -48,13 +48,9 @@ var Confirm = /*#__PURE__*/function (_React$Component) {
48
48
  return /*#__PURE__*/_react["default"].createElement(_CustomDialog["default"], {
49
49
  open: confirm !== null,
50
50
  onClose: onCancel,
51
- "aria-labelledby": "alert-dialog-title",
52
- "aria-describedby": "alert-dialog-description",
53
51
  dialogTitle: (0, _i18n.t)('errorDialogTitle'),
54
52
  onCancel: onCancel
55
- }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], {
56
- id: "alert-dialog-description"
57
- }, message)), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
53
+ }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], null, message)), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
58
54
  onClick: onCancel,
59
55
  variant: "contained"
60
56
  }, cancelLabel), /*#__PURE__*/_react["default"].createElement(_MainButton["default"], {
@@ -50,11 +50,8 @@ var Error = /*#__PURE__*/function (_React$Component) {
50
50
  return message && /*#__PURE__*/_react["default"].createElement(_CustomDialog["default"], {
51
51
  open: true,
52
52
  onClose: this.handleClose,
53
- "aria-labelledby": "alert-dialog-title",
54
- "aria-describedby": "alert-dialog-description",
55
53
  dialogTitle: (0, _i18n.t)('errorDialogTitle')
56
54
  }, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], {
57
- id: "alert-dialog-description",
58
55
  dangerouslySetInnerHTML: {
59
56
  __html: message
60
57
  }
@@ -109,7 +109,6 @@ var PreviewButton = exports.PreviewButton = function PreviewButton(_ref) {
109
109
  return /*#__PURE__*/_react["default"].createElement(_AnalyticsWrapper["default"], {
110
110
  targetId: "preview_open"
111
111
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
112
- component: "div",
113
112
  className: (0, _clsx["default"])(classes.button, bottom && classes.buttonBottom, top && classes.buttonTop, (0, _customClassName["default"])('preview-button')),
114
113
  onClick: onClick
115
114
  }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
@@ -167,15 +166,13 @@ var FullScreenView = /*#__PURE__*/function (_React$Component) {
167
166
  var topPreviewButton = renderTopPreviewButton(_objectSpread(_objectSpread({}, this.props), {}, {
168
167
  onClick: this.openPreview
169
168
  }));
170
- return previewOpen ? /*#__PURE__*/_react["default"].createElement("div", {
171
- className: classes.fullScreenWrapper
172
- }, /*#__PURE__*/_react["default"].createElement(_PreviewPortal["default"], {
169
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, previewOpen && /*#__PURE__*/_react["default"].createElement(_PreviewPortal["default"], {
173
170
  closePreviewMode: this.closePreview,
174
171
  thumbnailClick: this.handleViewChange,
175
172
  previewOpen: previewOpen,
176
173
  hasItems: hasItems,
177
174
  dialogStyle: dialogStyle
178
- }, children)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, topPreviewButton, children, showDesignViewList ? /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
175
+ }, children), topPreviewButton, !previewOpen && children, showDesignViewList ? /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
179
176
  container: true,
180
177
  direction: "column",
181
178
  justifyContent: "space-between",
@@ -20,6 +20,6 @@ describe('Screens/Configurator/Components/FullScreenView', function () {
20
20
  }
21
21
  }));
22
22
  expect(wrapper.find('div.custom-css-views')).toHaveLength(1);
23
- expect(wrapper.find('div.custom-css-preview-button')).toHaveLength(1);
23
+ expect(wrapper.find('button.custom-css-preview-button')).toHaveLength(1);
24
24
  });
25
25
  });