@configuratorware/configurator-frontendgui 1.41.1 → 1.42.1

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 (526) hide show
  1. package/App/Constant.js +2 -3
  2. package/App/Error/DevelopmentErrorPage/index.js +4 -19
  3. package/App/Error/ErrorBoundary.js +13 -43
  4. package/App/Error/ProductionErrorPage/index.js +2 -11
  5. package/App/Error/ProductionErrorPage/index.story.js +0 -4
  6. package/App/Frame.js +10 -43
  7. package/App/Modules/Creator/Components/ConfigurationvariantItem/index.js +15 -58
  8. package/App/Modules/Creator/Components/ConfigurationvariantSelection/index.js +20 -60
  9. package/App/Modules/Creator/Components/CustomTitleEditor/index.js +15 -64
  10. package/App/Modules/Creator/Components/ExternalVisualization/index.js +19 -47
  11. package/App/Modules/Creator/Components/FastConfiguration/SelectableRow.js +10 -37
  12. package/App/Modules/Creator/Components/FastConfiguration/index.js +37 -101
  13. package/App/Modules/Creator/Components/FastConfigurationRow/index.js +12 -38
  14. package/App/Modules/Creator/Components/FastConfigurationSelect/index.js +29 -85
  15. package/App/Modules/Creator/Components/FormattedNumber/index.js +1 -17
  16. package/App/Modules/Creator/Components/FormattedPrice/index.js +1 -19
  17. package/App/Modules/Creator/Components/FullScreenView/FullScreenView.js +17 -36
  18. package/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +24 -61
  19. package/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +24 -60
  20. package/App/Modules/Creator/Components/Incompatibility/RuleComponent.js +12 -45
  21. package/App/Modules/Creator/Components/Incompatibility/index.js +28 -89
  22. package/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +14 -53
  23. package/App/Modules/Creator/Components/LoginForm/index.js +14 -52
  24. package/App/Modules/Creator/Components/Option/index.js +53 -155
  25. package/App/Modules/Creator/Components/Option/index.story.js +6 -17
  26. package/App/Modules/Creator/Components/OptionAmount/index.js +33 -74
  27. package/App/Modules/Creator/Components/OptionGroup/index.js +10 -23
  28. package/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +26 -68
  29. package/App/Modules/Creator/Components/Optiondetail/index.js +44 -129
  30. package/App/Modules/Creator/Components/Optiondetail/index.story.js +11 -72
  31. package/App/Modules/Creator/Components/Optiondetail/index.test.mocks.js +56 -0
  32. package/App/Modules/Creator/Components/OptionsList/index.js +31 -81
  33. package/App/Modules/Creator/Components/Price/index.js +12 -40
  34. package/App/Modules/Creator/Components/ProductPart/index.js +14 -46
  35. package/App/Modules/Creator/Components/ProductPart/index.story.js +6 -17
  36. package/App/Modules/Creator/Components/ProductPartsList/index.js +25 -68
  37. package/App/Modules/Creator/Components/ProductPartsList/index.story.js +6 -21
  38. package/App/Modules/Creator/Components/SavedConfiguration/index.js +13 -45
  39. package/App/Modules/Creator/Components/ShareConfiguration/index.js +31 -90
  40. package/App/Modules/Creator/Components/StockInformation/index.js +13 -44
  41. package/App/Modules/Creator/Components/StoreConfigurationForm/index.js +15 -52
  42. package/App/Modules/Creator/Components/Tools/index.js +11 -45
  43. package/App/Modules/Creator/Components/ValidationResult/index.js +16 -62
  44. package/App/Modules/Creator/Components/index.js +2 -29
  45. package/App/Modules/Creator/Containers/AmountPrice/index.js +3 -12
  46. package/App/Modules/Creator/Containers/ConfigurationvariantSelection/index.js +5 -19
  47. package/App/Modules/Creator/Containers/CustomTitleEditor/index.js +4 -19
  48. package/App/Modules/Creator/Containers/FastConfiguration/index.js +6 -20
  49. package/App/Modules/Creator/Containers/FormattedPrice/index.js +4 -13
  50. package/App/Modules/Creator/Containers/Incompatibility/index.js +2 -12
  51. package/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +8 -31
  52. package/App/Modules/Creator/Containers/LoadingOverlay/index.js +2 -9
  53. package/App/Modules/Creator/Containers/Optiondetail/index.js +7 -18
  54. package/App/Modules/Creator/Containers/OptionsList/index.js +3 -15
  55. package/App/Modules/Creator/Containers/ProductPart/index.js +1 -9
  56. package/App/Modules/Creator/Containers/ProductPartsList/index.js +3 -16
  57. package/App/Modules/Creator/Containers/SavedConfigurationContainer/index.js +1 -8
  58. package/App/Modules/Creator/Containers/ShareConfiguration/index.js +2 -10
  59. package/App/Modules/Creator/Containers/StockInformation/index.js +2 -10
  60. package/App/Modules/Creator/Containers/Tools/index.js +1 -10
  61. package/App/Modules/Creator/Containers/ValidationResult/index.js +2 -10
  62. package/App/Modules/Creator/Containers/index.js +42 -64
  63. package/App/Modules/Creator/CreatorScreen.js +45 -121
  64. package/App/Modules/Creator/Layouts/DefaultLayout.js +21 -50
  65. package/App/Modules/Designer/Components/AddGalleryImage/index.js +31 -92
  66. package/App/Modules/Designer/Components/AddGalleryImage/index.story.js +9 -22
  67. package/App/Modules/Designer/Components/AddGalleryImage/index.test.js +13 -35
  68. package/App/Modules/Designer/Components/AddVisualElement/index.js +30 -86
  69. package/App/Modules/Designer/Components/AddVisualElement/index.story.js +0 -5
  70. package/App/Modules/Designer/Components/AddVisualElement/index.test.js +12 -15
  71. package/App/Modules/Designer/Components/CloseDesignEditor/index.js +18 -51
  72. package/App/Modules/Designer/Components/CloseGraphicsEditorButton/index.js +7 -17
  73. package/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +20 -57
  74. package/App/Modules/Designer/Components/ColorPalettes/index.js +62 -178
  75. package/App/Modules/Designer/Components/ColorPalettes/index.story.js +0 -8
  76. package/App/Modules/Designer/Components/ColorPalettes/index.test.js +7 -11
  77. package/App/Modules/Designer/Components/DesignAreaControlbox/index.js +35 -108
  78. package/App/Modules/Designer/Components/DesignAreaControlbox/index.story.js +0 -8
  79. package/App/Modules/Designer/Components/DesignAreaControlbox/index.test.js +15 -23
  80. package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +18 -51
  81. package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +53 -150
  82. package/App/Modules/Designer/Components/DesignerSelectionToolbox/fontItemUtils.js +10 -20
  83. package/App/Modules/Designer/Components/Dialog/index.js +21 -63
  84. package/App/Modules/Designer/Components/EditDesignButton/index.js +20 -43
  85. package/App/Modules/Designer/Components/FeedbackNotice/index.js +17 -53
  86. package/App/Modules/Designer/Components/FeedbackNotice/index.test.js +0 -4
  87. package/App/Modules/Designer/Components/FullScreenView/FullScreenView.js +6 -14
  88. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.dev.js +5 -14
  89. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +42 -137
  90. package/App/Modules/Designer/Components/ImageColorize/index.js +54 -177
  91. package/App/Modules/Designer/Components/ImageColorize/index.story.js +2 -6
  92. package/App/Modules/Designer/Components/ImageControlbox/index.js +27 -90
  93. package/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +26 -71
  94. package/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +138 -170
  95. package/App/Modules/Designer/Components/ImageEditDialog/index.js +55 -168
  96. package/App/Modules/Designer/Components/ImageLibraryFilter/index.js +20 -61
  97. package/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +24 -66
  98. package/App/Modules/Designer/Components/ObjectTools/index.js +18 -56
  99. package/App/Modules/Designer/Components/Select/index.js +21 -65
  100. package/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +5 -20
  101. package/App/Modules/Designer/Components/TextControlbox/index.js +58 -176
  102. package/App/Modules/Designer/Components/TextControlbox/index.story.js +0 -10
  103. package/App/Modules/Designer/Components/TextControlbox/index.test.js +34 -41
  104. package/App/Modules/Designer/Containers/AddGalleryImage.js +8 -24
  105. package/App/Modules/Designer/Containers/AddVisualElement.js +28 -87
  106. package/App/Modules/Designer/Containers/CloseDesignEditor.js +1 -10
  107. package/App/Modules/Designer/Containers/CloseGraphicsEditorButton.js +1 -10
  108. package/App/Modules/Designer/Containers/ColorPalettes.js +22 -61
  109. package/App/Modules/Designer/Containers/DesignAreaControlbox.js +5 -17
  110. package/App/Modules/Designer/Containers/Designer.js +1 -10
  111. package/App/Modules/Designer/Containers/DesignerSelectionToolbox.js +7 -30
  112. package/App/Modules/Designer/Containers/EditDesignButton.js +1 -11
  113. package/App/Modules/Designer/Containers/ImageEditDialog.js +400 -658
  114. package/App/Modules/Designer/Designer.js +28 -84
  115. package/App/Modules/Designer/DesignerScreen.js +45 -100
  116. package/App/Modules/Designer/DesignerUI.js +31 -87
  117. package/App/Modules/Designer/Layouts/DefaultLayout.js +20 -45
  118. package/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +4 -16
  119. package/App/Modules/Designer/Layouts/PopupAreaProvider.js +20 -67
  120. package/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +5 -23
  121. package/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +19 -52
  122. package/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +9 -25
  123. package/App/Modules/Designer/Utils/FontFaceRepository.js +8 -30
  124. package/App/Modules/Designer/Utils/ImageEditUtils.js +14 -38
  125. package/App/Modules/Designer/Utils/SvgFixers.js +8 -26
  126. package/App/Modules/Designer/Utils/Transformers.js +54 -112
  127. package/App/Modules/Designer/setupDesigner.js +50 -72
  128. package/App/Modules/Designer/withActiveCanvas.js +22 -70
  129. package/App/Modules/Visualization/AlignTargetContainer.js +8 -19
  130. package/App/Modules/Visualization/CreatorAlignTarget.js +9 -20
  131. package/App/Modules/Visualization/DefaultVisualizationProvider.js +18 -50
  132. package/App/Modules/Visualization/DesignerAlignTarget.js +7 -13
  133. package/App/Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj.js +0 -3
  134. package/App/Reducers/Actions.js +81 -145
  135. package/App/Reducers/ConfigurationMode/Actions.js +4 -9
  136. package/App/Reducers/ConfigurationMode/Reducer.js +6 -23
  137. package/App/Reducers/ConfigurationMode/Selectors.js +22 -41
  138. package/App/Reducers/Configurator/Actions.js +386 -760
  139. package/App/Reducers/Configurator/AttributeSelectors.js +5 -17
  140. package/App/Reducers/Configurator/Modifiers.js +8 -15
  141. package/App/Reducers/Configurator/Reducer.js +107 -202
  142. package/App/Reducers/Configurator/Selectors.js +46 -119
  143. package/App/Reducers/Confirm/Actions.js +28 -49
  144. package/App/Reducers/Confirm/Reducer.js +1 -9
  145. package/App/Reducers/DesignArea/Actions.js +8 -29
  146. package/App/Reducers/DesignArea/DesignElementSelectors.js +18 -41
  147. package/App/Reducers/DesignArea/MaskSelectors.js +12 -35
  148. package/App/Reducers/DesignArea/Reducer.js +8 -40
  149. package/App/Reducers/DesignArea/Selectors.js +148 -413
  150. package/App/Reducers/DesignArea/Transformers.js +22 -87
  151. package/App/Reducers/DesignData/Actions.js +31 -93
  152. package/App/Reducers/DesignData/Modifiers.js +34 -114
  153. package/App/Reducers/DesignData/Reducer.js +9 -38
  154. package/App/Reducers/DesignData/Selectors.js +17 -50
  155. package/App/Reducers/DesignData/Transformers.js +2 -6
  156. package/App/Reducers/DesignView/Actions.js +3 -7
  157. package/App/Reducers/DesignView/Reducer.js +13 -47
  158. package/App/Reducers/DesignView/Selectors.js +17 -49
  159. package/App/Reducers/DesignView/Transformers.js +0 -3
  160. package/App/Reducers/Device/Actions.js +3 -7
  161. package/App/Reducers/Device/Reducer.js +9 -16
  162. package/App/Reducers/Fonts/Actions.js +12 -45
  163. package/App/Reducers/Fonts/Reducer.js +2 -11
  164. package/App/Reducers/Fonts/Selectors.js +9 -25
  165. package/App/Reducers/GeneralActions.js +3 -7
  166. package/App/Reducers/ImageGallery/Actions.js +97 -189
  167. package/App/Reducers/ImageGallery/Modifiers.js +13 -24
  168. package/App/Reducers/ImageGallery/Reducer.js +29 -98
  169. package/App/Reducers/ImageGallery/Selectors.js +21 -79
  170. package/App/Reducers/Reducer.js +10 -26
  171. package/App/Reducers/UI/Actions.js +73 -113
  172. package/App/Reducers/UI/Reducer.js +17 -26
  173. package/App/Reducers/UI/Selectors.js +3 -12
  174. package/App/Reducers.js +7 -21
  175. package/App/Routing.js +30 -107
  176. package/App/Screens/Configurator/CalculationWidgetScreen.js +10 -39
  177. package/App/Screens/Configurator/Components/AmountSelection/index.js +25 -77
  178. package/App/Screens/Configurator/Components/AmountSelection/index.story.js +0 -8
  179. package/App/Screens/Configurator/Components/CalculationWidget/index.js +53 -154
  180. package/App/Screens/Configurator/Components/CalculationWidget/index.story.js +6 -19
  181. package/App/Screens/Configurator/Components/CalculationWidget/index.test.js +39 -38
  182. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +7 -30
  183. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/index.js +0 -2
  184. package/App/Screens/Configurator/Components/Confirm/index.js +13 -50
  185. package/App/Screens/Configurator/Components/Error/index.js +11 -48
  186. package/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +13 -25
  187. package/App/Screens/Configurator/Components/FullScreenView/index.js +37 -116
  188. package/App/Screens/Configurator/Components/FullScreenView/index.test.js +1 -4
  189. package/App/Screens/Configurator/Components/ImageLoader/ImageLoader.js +11 -42
  190. package/App/Screens/Configurator/Components/ItemTile/ItemTile.js +89 -33
  191. package/App/Screens/Configurator/Components/LandscapeInformation/index.js +3 -19
  192. package/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +3 -11
  193. package/App/Screens/Configurator/Components/PreviewPortal/index.js +29 -81
  194. package/App/Screens/Configurator/Components/Thumbnail/index.js +36 -102
  195. package/App/Screens/Configurator/Components/Thumbnail/index.test.js +0 -4
  196. package/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +9 -24
  197. package/App/Screens/Configurator/Containers/AmountPrice.js +12 -36
  198. package/App/Screens/Configurator/Containers/CalculationWidget.js +24 -85
  199. package/App/Screens/Configurator/Containers/ConfigurationModeSwitch.js +22 -43
  200. package/App/Screens/Configurator/Containers/Confirm.js +1 -10
  201. package/App/Screens/Configurator/Containers/FallbackVisualization.js +1 -11
  202. package/App/Screens/Configurator/Containers/FullScreenView.js +1 -14
  203. package/App/Screens/Configurator/Containers/Thumbnail.js +1 -13
  204. package/App/Screens/Configurator/Containers/Visualization.js +1 -5
  205. package/App/Screens/Configurator/DynamicComponents.js +8 -22
  206. package/App/Screens/Configurator/Screen.js +31 -70
  207. package/App/Screens/Configurator/ScreenPropTypes.js +2 -6
  208. package/App/Screens/Configurator/ThemeProvider.js +8 -42
  209. package/App/Screens/DesignerProductPreview/Constants.js +4 -7
  210. package/App/Screens/DesignerProductPreview/DesignerProductPreviewManager.js +204 -289
  211. package/App/Screens/DesignerProductPreview/Screen.js +58 -139
  212. package/App/Screens/ItemOverview.js +156 -191
  213. package/App/Screens.js +12 -20
  214. package/App/ServiceLocator.js +26 -51
  215. package/App/Services/AdminareaCommunicationService.js +33 -69
  216. package/App/Services/AnalyticsService.js +13 -40
  217. package/App/Services/ConfiguratorService.js +381 -567
  218. package/App/Services/DesignDataService.js +1448 -2001
  219. package/App/Services/DesignerService.js +290 -350
  220. package/App/Services/InteractionService.js +349 -502
  221. package/App/Services/UIService.js +12 -39
  222. package/App/Services/VisualizationService.js +246 -336
  223. package/App/Shared/Components/AcceptDesign/index.js +27 -70
  224. package/App/Shared/Components/AcceptPrivacy/index.js +21 -58
  225. package/App/Shared/Components/AddToBasket/index.js +31 -81
  226. package/App/Shared/Components/AddToBasket/index.story.js +0 -9
  227. package/App/Shared/Components/AlertDialog/index.js +15 -57
  228. package/App/Shared/Components/AmountInput/index.js +34 -107
  229. package/App/Shared/Components/AmountInput/index.story.js +0 -6
  230. package/App/Shared/Components/AmountPrice/index.js +220 -382
  231. package/App/Shared/Components/AmountPrice/index.story.js +1 -10
  232. package/App/Shared/Components/AmountPrice/index.test.js +6 -12
  233. package/App/Shared/Components/Analytics/AnalyticsWrapper.js +9 -21
  234. package/App/Shared/Components/BulkNames/index.js +28 -92
  235. package/App/Shared/Components/CallToAction/index.js +18 -42
  236. package/App/Shared/Components/ConfigurationOverview/index.js +14 -47
  237. package/App/Shared/Components/Header/Header.js +18 -46
  238. package/App/Shared/Components/Header/index.js +0 -2
  239. package/App/Shared/Components/Header/index.story.js +0 -13
  240. package/App/Shared/Components/InformationTag/InformationTag.js +20 -55
  241. package/App/Shared/Components/LicenseNotice/LicenseNotice.js +20 -54
  242. package/App/Shared/Components/LicenseNotice/index.js +0 -2
  243. package/App/Shared/Components/LoadConfiguration/index.js +47 -82
  244. package/App/Shared/Components/MessageBox/index.js +2 -19
  245. package/App/Shared/Components/MessageBox/index.story.js +0 -7
  246. package/App/Shared/Components/Notification/index.js +18 -53
  247. package/App/Shared/Components/Notification/index.story.js +0 -4
  248. package/App/Shared/Components/PdfDownload/index.js +19 -59
  249. package/App/Shared/Components/PlusMinusInput/index.js +13 -37
  250. package/App/Shared/Components/PriceList/index.js +27 -78
  251. package/App/Shared/Components/PriceList/index.story.js +6 -15
  252. package/App/Shared/Components/PriceOverview/index.js +29 -74
  253. package/App/Shared/Components/PriceOverview/index.story.js +1 -18
  254. package/App/Shared/Components/ProductVariant/Image.js +13 -35
  255. package/App/Shared/Components/ProductVariant/index.js +34 -123
  256. package/App/Shared/Components/ProductVariant/index.story.js +9 -22
  257. package/App/Shared/Components/Progress/Progress.js +6 -15
  258. package/App/Shared/Components/ReceiveOfferForm/index.js +26 -80
  259. package/App/Shared/Components/ReceiveOfferForm/index.story.js +0 -6
  260. package/App/Shared/Components/ReceiveOfferForm/index.test.js +1 -6
  261. package/App/Shared/Components/SaveConfiguration/index.js +26 -83
  262. package/App/Shared/Components/SendEmail/index.js +8 -30
  263. package/App/Shared/Components/Stepper/index.js +19 -56
  264. package/App/Shared/Components/Stepper/index.story.js +0 -5
  265. package/App/Shared/Components/ToolbarList/index.js +23 -69
  266. package/App/Shared/Components/ToolbarList/index.story.js +0 -4
  267. package/App/Shared/Components/VariantChooser/index.js +25 -68
  268. package/App/Shared/Components/VariantChooser/index.story.js +0 -13
  269. package/App/Shared/Containers/AlertMessages.js +1 -11
  270. package/App/Shared/Containers/AmountPrice/AmountPriceAdminareaWrapper.js +4 -17
  271. package/App/Shared/Containers/AmountPrice/index.js +29 -74
  272. package/App/Shared/Containers/BulkNames.js +26 -117
  273. package/App/Shared/Containers/Error.js +1 -11
  274. package/App/Shared/Containers/GlobalLoader.js +1 -9
  275. package/App/Shared/Containers/Header/index.js +22 -57
  276. package/App/Shared/Containers/LicenseNotice/LicenseNotice.js +2 -9
  277. package/App/Shared/Containers/LicenseNotice/index.js +0 -2
  278. package/App/Shared/Containers/LoadConfiguration/LoadConfiguration.js +36 -79
  279. package/App/Shared/Containers/LoadConfiguration/index.js +0 -2
  280. package/App/Shared/Containers/PdfDownload/index.js +2 -11
  281. package/App/Shared/Containers/ProductVariant/ProductVariant.js +59 -144
  282. package/App/Shared/Containers/ProductVariant/index.js +0 -2
  283. package/App/Shared/Containers/SaveConfiguration.js +3 -14
  284. package/App/Shared/Containers/SendEmail/SendEmail.js +3 -15
  285. package/App/Shared/Containers/SendEmail/index.js +0 -2
  286. package/App/Shared/Providers/DefaultCanvasProvider.js +5 -25
  287. package/App/Storage.js +3 -7
  288. package/App/Store.js +17 -38
  289. package/App/Translations.js +29 -43
  290. package/App/Utils/Request/lazyFetch.js +29 -45
  291. package/App/Utils/Request/pathParams.js +2 -7
  292. package/App/Utils/createMessageInterface.js +10 -21
  293. package/App/Utils/customClassName.js +0 -2
  294. package/App/Utils/getContrastText.js +5 -7
  295. package/App/Utils/getImageUrl.js +0 -8
  296. package/App/configuration.js +74 -104
  297. package/App/index.js +7 -29
  298. package/App/initServices.js +9 -32
  299. package/App/setup.js +2 -6
  300. package/Framework/Api.js +19 -41
  301. package/Framework/ComponentContainer.js +28 -76
  302. package/Framework/Components/Carousel/index.js +40 -104
  303. package/Framework/Components/Dialog/index.js +101 -237
  304. package/Framework/Components/DialogSelect/index.js +38 -132
  305. package/Framework/Components/Input/index.js +16 -58
  306. package/Framework/Components/LoadingOverlay/index.js +1 -12
  307. package/Framework/Components/Markdown/index.js +5 -26
  308. package/Framework/Components/Mobile/index.js +5 -13
  309. package/Framework/CustomError.js +13 -29
  310. package/Framework/Helpers/TransitionDetect.js +10 -29
  311. package/Framework/Helpers/isLandscapeMobile.js +0 -3
  312. package/Framework/Helpers/isMobileDevice.js +3 -8
  313. package/Framework/Helpers/isMobileSize.js +1 -4
  314. package/Framework/Services/AbstractAdminareaCommunicationService.js +8 -15
  315. package/Framework/Services/AbstractAsyncService.js +7 -14
  316. package/Framework/Services/AbstractConfiguratorService.js +9 -15
  317. package/Framework/Services/AbstractInteractionService.js +7 -14
  318. package/Framework/Services/AbstractStoreService.js +9 -15
  319. package/Framework/Services/AbstractUIService.js +7 -14
  320. package/Framework/Services/AbstractVisualizationService.js +7 -14
  321. package/Framework/Services/AsyncService.js +11 -33
  322. package/Framework/Services/StoreService.js +43 -92
  323. package/Framework/bindDecorator.js +24 -54
  324. package/Framework/i18n.js +57 -142
  325. package/Resources/Icons/MaterialUI/Icons/AddCircle.js +1 -5
  326. package/Resources/Icons/MaterialUI/Icons/RemoveCircle.js +1 -5
  327. package/Shared/Components/CustomDialog.js +21 -36
  328. package/Shared/Components/CustomDialogSelect.js +17 -47
  329. package/Shared/Components/MainButton.js +14 -33
  330. package/Shared/ErrorTypes/DeferredError.js +13 -31
  331. package/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +9 -18
  332. package/Shared/HOCs/ResizeDetect/ResizeDetect.js +28 -87
  333. package/Shared/HOCs/getDisplayName.js +0 -1
  334. package/Shared/HOCs/withFixedChangeHandler.js +11 -25
  335. package/Shared/PropTypes/ReactComponent.js +1 -5
  336. package/Shared/Styles/absoluteCenter.js +2 -5
  337. package/Utils/Array/isIdentical.js +3 -12
  338. package/Utils/Async/AsyncManager.js +51 -75
  339. package/Utils/Async/Deferred.js +12 -40
  340. package/Utils/Async/ObjectLock.js +3 -7
  341. package/Utils/Decorators/Observable.js +17 -34
  342. package/Utils/Dev/HOCs/withFilePicker.js +13 -41
  343. package/Utils/Dev/isDev.js +0 -2
  344. package/Utils/Events/pointerEvent.js +14 -47
  345. package/Utils/Events/preventEventDoubling.js +2 -7
  346. package/Utils/Function/cached.js +1 -9
  347. package/Utils/Function/createDebounceManager.js +3 -18
  348. package/Utils/Function/createSelector.js +7 -18
  349. package/Utils/Function/memoize.js +3 -12
  350. package/Utils/Function/sendMessage.js +3 -8
  351. package/Utils/Helper/createSelectionRangeMemo.js +4 -12
  352. package/Utils/Immutable/set.js +12 -35
  353. package/Utils/Math/conversions.js +2 -5
  354. package/Utils/Math/isPositiveNumber.js +2 -5
  355. package/Utils/Redux/createActionWithGlobalState.js +8 -11
  356. package/Utils/Styles/combineMediaQueries.js +2 -6
  357. package/Utils/Styles/createCheckerBoardBackground.js +5 -6
  358. package/Utils/Test/CallOrderChecker.js +0 -3
  359. package/Utils/Test/createStoreProvider.js +1 -7
  360. package/Utils/Test/formDataToJSON.js +0 -1
  361. package/Utils/Test/mountWithState.js +3 -9
  362. package/index.js +2 -2
  363. package/package.json +36 -33
  364. package/public/translations/de_DE.json +3 -27
  365. package/public/translations/en_GB.json +2 -26
  366. package/scripts/getDefaultWebpackConfig.js +21 -13
  367. package/src/App/Error/ProductionErrorPage/index.js +1 -1
  368. package/src/App/Modules/Creator/Components/ConfigurationvariantItem/index.js +3 -4
  369. package/src/App/Modules/Creator/Components/ConfigurationvariantSelection/index.js +2 -1
  370. package/src/App/Modules/Creator/Components/FastConfiguration/SelectableRow.js +1 -1
  371. package/src/App/Modules/Creator/Components/FastConfiguration/index.js +6 -5
  372. package/src/App/Modules/Creator/Components/FastConfigurationSelect/index.js +8 -6
  373. package/src/App/Modules/Creator/Components/FullScreenView/FullScreenView.js +3 -1
  374. package/src/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +2 -2
  375. package/src/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +2 -2
  376. package/src/App/Modules/Creator/Components/Incompatibility/index.js +2 -2
  377. package/src/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +1 -1
  378. package/src/App/Modules/Creator/Components/Option/__snapshots__/index.test.js.snap +0 -13
  379. package/src/App/Modules/Creator/Components/Option/index.js +9 -6
  380. package/src/App/Modules/Creator/Components/Option/index.test.js +1 -1
  381. package/src/App/Modules/Creator/Components/OptionAmount/index.js +2 -1
  382. package/src/App/Modules/Creator/Components/OptionAmount/index.test.js +1 -1
  383. package/src/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +1 -1
  384. package/src/App/Modules/Creator/Components/Optiondetail/index.js +9 -7
  385. package/src/App/Modules/Creator/Components/Optiondetail/index.story.js +1 -48
  386. package/src/App/Modules/Creator/Components/Optiondetail/index.test.js +1 -1
  387. package/src/App/Modules/Creator/Components/Optiondetail/index.test.mocks.js +49 -0
  388. package/src/App/Modules/Creator/Components/OptionsList/index.js +3 -2
  389. package/src/App/Modules/Creator/Components/ProductPart/index.test.js +1 -1
  390. package/src/App/Modules/Creator/Components/ProductPartsList/index.js +1 -1
  391. package/src/App/Modules/Creator/Components/SavedConfiguration/index.js +3 -3
  392. package/src/App/Modules/Creator/Components/StoreConfigurationForm/index.js +2 -2
  393. package/src/App/Modules/Creator/Containers/CustomTitleEditor/index.js +1 -1
  394. package/src/App/Modules/Creator/Containers/FastConfiguration/index.js +1 -1
  395. package/src/App/Modules/Creator/Containers/FormattedPrice/index.js +1 -1
  396. package/src/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +1 -1
  397. package/src/App/Modules/Creator/Containers/Optiondetail/index.js +1 -1
  398. package/src/App/Modules/Designer/Components/AddGalleryImage/__snapshots__/index.test.jsx.snap +0 -8
  399. package/src/App/Modules/Designer/Components/AddGalleryImage/index.js +4 -4
  400. package/src/App/Modules/Designer/Components/AddGalleryImage/index.test.jsx +0 -27
  401. package/src/App/Modules/Designer/Components/AddVisualElement/index.js +6 -6
  402. package/src/App/Modules/Designer/Components/AddVisualElement/index.test.jsx +3 -2
  403. package/src/App/Modules/Designer/Components/CloseDesignEditor/index.js +3 -3
  404. package/src/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +6 -6
  405. package/src/App/Modules/Designer/Components/ColorPalettes/index.js +14 -14
  406. package/src/App/Modules/Designer/Components/ColorPalettes/index.test.jsx +1 -1
  407. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.js +8 -8
  408. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.test.jsx +1 -1
  409. package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +5 -5
  410. package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +2 -2
  411. package/src/App/Modules/Designer/Components/Dialog/index.js +1 -1
  412. package/src/App/Modules/Designer/Components/EditDesignButton/index.js +3 -2
  413. package/src/App/Modules/Designer/Components/FeedbackNotice/index.js +3 -3
  414. package/src/App/Modules/Designer/Components/ImageColorize/index.js +1 -1
  415. package/src/App/Modules/Designer/Components/ImageControlbox/index.js +6 -6
  416. package/src/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +32 -6
  417. package/src/App/Modules/Designer/Components/ImageEditDialog/index.js +16 -12
  418. package/src/App/Modules/Designer/Components/ImageLibraryFilter/index.js +6 -6
  419. package/src/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +11 -7
  420. package/src/App/Modules/Designer/Components/ObjectTools/index.js +2 -2
  421. package/src/App/Modules/Designer/Components/Select/index.js +3 -3
  422. package/src/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +1 -1
  423. package/src/App/Modules/Designer/Components/TextControlbox/index.js +11 -11
  424. package/src/App/Modules/Designer/Components/TextControlbox/index.test.jsx +3 -2
  425. package/src/App/Modules/Designer/Containers/AddGalleryImage.js +1 -1
  426. package/src/App/Modules/Designer/Designer.js +1 -1
  427. package/src/App/Modules/Designer/DesignerUI.js +7 -2
  428. package/src/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +1 -1
  429. package/src/App/Modules/Designer/Layouts/PopupAreaProvider.js +1 -1
  430. package/src/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +1 -1
  431. package/src/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +1 -1
  432. package/src/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +1 -1
  433. package/src/App/Modules/Designer/setupDesigner.js +22 -19
  434. package/src/App/Modules/Visualization/AlignTargetContainer.js +1 -1
  435. package/src/App/Modules/Visualization/CreatorAlignTarget.js +1 -1
  436. package/src/App/Modules/Visualization/DefaultVisualizationProvider.js +7 -2
  437. package/src/App/Modules/Visualization/DesignerAlignTarget.js +1 -1
  438. package/src/App/Reducers/Actions.js +5 -5
  439. package/src/App/Reducers/ConfigurationMode/Selectors.js +6 -0
  440. package/src/App/Reducers/Configurator/Actions.js +8 -1
  441. package/src/App/Reducers/Configurator/Reducer.js +27 -21
  442. package/src/App/Reducers/Configurator/Selectors.js +4 -1
  443. package/src/App/Reducers/DesignArea/Selectors.js +10 -0
  444. package/src/App/Reducers/Reducer.js +4 -3
  445. package/src/App/Reducers/UI/Actions.js +15 -1
  446. package/src/App/Reducers/UI/Reducer.js +20 -0
  447. package/src/App/Routing.js +12 -29
  448. package/src/App/Screens/Configurator/CalculationWidgetScreen.js +1 -4
  449. package/src/App/Screens/Configurator/Components/AmountSelection/index.js +4 -4
  450. package/src/App/Screens/Configurator/Components/CalculationWidget/index.js +3 -3
  451. package/src/App/Screens/Configurator/Components/CalculationWidget/index.test.jsx +5 -2
  452. package/src/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +1 -1
  453. package/src/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +1 -1
  454. package/src/App/Screens/Configurator/Components/FullScreenView/index.js +4 -4
  455. package/src/App/Screens/Configurator/Components/ItemTile/ItemTile.js +55 -17
  456. package/src/App/Screens/Configurator/Components/LandscapeInformation/index.js +1 -1
  457. package/src/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +1 -1
  458. package/src/App/Screens/Configurator/Components/PreviewPortal/index.js +7 -5
  459. package/src/App/Screens/Configurator/Components/Thumbnail/index.js +5 -4
  460. package/src/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +3 -3
  461. package/src/App/Screens/Configurator/Containers/AmountPrice.js +1 -1
  462. package/src/App/Screens/Configurator/Containers/__tests__/CalculationWidget.test.js +4 -1
  463. package/src/App/Screens/Configurator/Screen.js +13 -5
  464. package/src/App/Screens/Configurator/__tests__/Screen.test.js +6 -0
  465. package/src/App/Screens/DesignerProductPreview/Screen.js +2 -3
  466. package/src/App/Screens/DesignerProductPreview/__tests__/__snapshots__/Screen.test.js.snap +11 -11
  467. package/src/App/Screens/ItemOverview.js +74 -57
  468. package/src/App/Screens.js +1 -1
  469. package/src/App/Services/AnalyticsService.js +2 -1
  470. package/src/App/Services/DesignDataService.js +53 -7
  471. package/src/App/Services/DesignerService.js +22 -13
  472. package/src/App/Services/UIService.js +1 -1
  473. package/src/App/Services/VisualizationService.js +41 -2
  474. package/src/App/Services/__tests__/DesignDataService.test.js +1 -0
  475. package/src/App/Shared/Components/AcceptDesign/index.js +7 -6
  476. package/src/App/Shared/Components/AcceptPrivacy/index.js +4 -3
  477. package/src/App/Shared/Components/AddToBasket/index.js +4 -4
  478. package/src/App/Shared/Components/AmountInput/index.js +1 -1
  479. package/src/App/Shared/Components/AmountPrice/__snapshots__/index.test.jsx.snap +0 -125
  480. package/src/App/Shared/Components/AmountPrice/index.js +40 -17
  481. package/src/App/Shared/Components/AmountPrice/index.test.jsx +1 -1
  482. package/src/App/Shared/Components/Analytics/AnalyticsWrapper.test.js +2 -1
  483. package/src/App/Shared/Components/BulkNames/index.js +3 -3
  484. package/src/App/Shared/Components/CallToAction/__snapshots__/index.test.js.snap +4 -4
  485. package/src/App/Shared/Components/CallToAction/index.js +3 -3
  486. package/src/App/Shared/Components/CallToAction/index.test.js +1 -1
  487. package/src/App/Shared/Components/ConfigurationOverview/index.js +1 -1
  488. package/src/App/Shared/Components/Header/Header.js +3 -3
  489. package/src/App/Shared/Components/InformationTag/InformationTag.js +4 -2
  490. package/src/App/Shared/Components/LicenseNotice/LicenseNotice.js +3 -1
  491. package/src/App/Shared/Components/LoadConfiguration/index.js +27 -13
  492. package/src/App/Shared/Components/Notification/index.js +3 -3
  493. package/src/App/Shared/Components/PdfDownload/index.js +3 -3
  494. package/src/App/Shared/Components/PlusMinusInput/index.js +4 -4
  495. package/src/App/Shared/Components/PriceList/index.js +9 -9
  496. package/src/App/Shared/Components/PriceList/index.test.js +2 -2
  497. package/src/App/Shared/Components/PriceOverview/index.js +4 -4
  498. package/src/App/Shared/Components/PriceOverview/index.story.js +1 -1
  499. package/src/App/Shared/Components/ProductVariant/Image.js +1 -1
  500. package/src/App/Shared/Components/ProductVariant/index.js +5 -5
  501. package/src/App/Shared/Components/Progress/Progress.js +3 -3
  502. package/src/App/Shared/Components/ReceiveOfferForm/index.js +4 -4
  503. package/src/App/Shared/Components/SaveConfiguration/index.js +3 -3
  504. package/src/App/Shared/Components/SendEmail/index.js +3 -3
  505. package/src/App/Shared/Components/Stepper/index.js +4 -4
  506. package/src/App/Shared/Components/ToolbarList/index.js +6 -6
  507. package/src/App/Shared/Components/VariantChooser/index.js +7 -7
  508. package/src/App/Shared/Containers/AmountPrice/index.js +7 -1
  509. package/src/App/Shared/Containers/SaveConfiguration.js +1 -1
  510. package/src/App/Utils/Request/lazyFetch.js +2 -3
  511. package/src/App/configuration.js +20 -15
  512. package/src/App/index.js +2 -2
  513. package/src/Framework/Api.js +3 -3
  514. package/src/Framework/Components/Carousel/index.js +2 -2
  515. package/src/Framework/Components/Dialog/index.js +13 -10
  516. package/src/Framework/Components/DialogSelect/index.js +6 -5
  517. package/src/Framework/i18n.js +15 -8
  518. package/src/Shared/Components/CustomDialog.js +2 -1
  519. package/src/Shared/Components/CustomDialogSelect.js +2 -2
  520. package/src/Shared/Components/MainButton.js +2 -2
  521. package/src/Shared/Components/__tests__/index.test.jsx +6 -1
  522. package/src/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +1 -1
  523. package/src/Utils/Decorators/Observable.js +1 -0
  524. package/src/Utils/Test/mountWithState.js +1 -1
  525. package/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
  526. package/src/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
@@ -9,7 +9,8 @@ import FastConfigurationRow from '../FastConfigurationRow';
9
9
  import FastConfigurationSelect from '../FastConfigurationSelect';
10
10
  import { T } from 'Framework/i18n';
11
11
  import './Styles.scss';
12
- import _ from 'lodash';
12
+ import isArray from 'lodash/isArray';
13
+ import merge from 'lodash/merge';
13
14
 
14
15
  const FastConfiguration = ({
15
16
  optionclassifications,
@@ -56,14 +57,14 @@ const FastConfiguration = ({
56
57
 
57
58
  for (let option of options) {
58
59
  let uo = option;
59
- if (_.isArray(optionClassification.selectedoptions)) {
60
+ if (isArray(optionClassification.selectedoptions)) {
60
61
  for (let selectedOption of optionClassification.selectedoptions) {
61
62
  if (selectedOption.identifier === option.identifier) {
62
- uo = _.merge({}, option, selectedOption);
63
- } else if (option.option_group && _.isArray(option.option_group.children)) {
63
+ uo = merge({}, option, selectedOption);
64
+ } else if (option.option_group && isArray(option.option_group.children)) {
64
65
  for (let item of option.option_group.children) {
65
66
  if (selectedOption.identifier === item.identifier) {
66
- uo = _.merge({}, option, selectedOption);
67
+ uo = merge({}, option, selectedOption);
67
68
  break;
68
69
  }
69
70
  }
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import _ from 'lodash';
3
+ import get from 'lodash/get';
4
+ import has from 'lodash/has';
5
+ import isArray from 'lodash/isArray';
4
6
  import Typography from '@material-ui/core/Typography';
5
7
  import OptionlistitemSelect from '../OptionGroup';
6
8
 
@@ -25,11 +27,11 @@ class FastConfigurationSelect extends React.Component {
25
27
  isOptionSelected(option) {
26
28
  const { optionclassification } = this.props;
27
29
  let selected = false;
28
- if (_.isArray(optionclassification.selectedoptions)) {
30
+ if (isArray(optionclassification.selectedoptions)) {
29
31
  for (let selectedOption of optionclassification.selectedoptions) {
30
32
  if (selectedOption.identifier === option.identifier) {
31
33
  selected = true;
32
- } else if (option.option_group && _.isArray(option.option_group.children)) {
34
+ } else if (option.option_group && isArray(option.option_group.children)) {
33
35
  for (let item of option.option_group.children) {
34
36
  if (selectedOption.identifier === item.identifier) {
35
37
  selected = true;
@@ -57,7 +59,7 @@ class FastConfigurationSelect extends React.Component {
57
59
  }
58
60
 
59
61
  isOptionEnabled(option) {
60
- return _.get(option, 'stock.traffic_light', false) !== 'red';
62
+ return get(option, 'stock.traffic_light', false) !== 'red';
61
63
  }
62
64
 
63
65
  renderOptionGroupSelect(option) {
@@ -68,8 +70,8 @@ class FastConfigurationSelect extends React.Component {
68
70
  const { optionClassification } = this.props;
69
71
 
70
72
  if (
71
- _.has(option, 'option_group.children') &&
72
- _.isArray(option.option_group.children) &&
73
+ has(option, 'option_group.children') &&
74
+ isArray(option.option_group.children) &&
73
75
  option.option_group.children.length > 0
74
76
  ) {
75
77
  return (
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import FullScreenView, { PreviewButton } from 'App/Screens/Configurator/Components/FullScreenView';
3
- import { makeStyles, useTheme, useMediaQuery } from '@material-ui/core';
3
+ import { makeStyles } from '@material-ui/core/styles';
4
+ import { useTheme } from '@material-ui/core/styles';
5
+ import useMediaQuery from '@material-ui/core/useMediaQuery';
4
6
  import { combineMediaQueriesWithAnd } from '../../../../../Utils/Styles/combineMediaQueries';
5
7
 
6
8
  export const useStyles = makeStyles(
@@ -2,8 +2,8 @@ import React from 'react';
2
2
  import isArray from 'lodash/isArray';
3
3
  import get from 'lodash/get';
4
4
  import { T } from 'Framework/i18n';
5
- import Typography from '@material-ui/core/Typography/Typography';
6
- import withStyles from '@material-ui/core/styles/withStyles';
5
+ import Typography from '@material-ui/core/Typography';
6
+ import { withStyles } from '@material-ui/core/styles';
7
7
  import { RuleComponent } from '../RuleComponent';
8
8
  import memoize from 'Utils/Function/memoize';
9
9
 
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import isArray from 'lodash/isArray';
3
3
  import { T } from 'Framework/i18n';
4
- import Typography from '@material-ui/core/Typography/Typography';
5
- import withStyles from '@material-ui/core/styles/withStyles';
4
+ import Typography from '@material-ui/core/Typography';
5
+ import { withStyles } from '@material-ui/core/styles';
6
6
  import { RuleComponent } from '../RuleComponent';
7
7
  import memoize from 'Utils/Function/memoize';
8
8
 
@@ -2,8 +2,8 @@ import React from 'react';
2
2
  import isArray from 'lodash/isArray';
3
3
  import PropTypes from 'prop-types';
4
4
  import DialogContent from '@material-ui/core/DialogContent';
5
- import Button from '@material-ui/core/Button/Button';
6
- import withStyles from '@material-ui/core/styles/withStyles';
5
+ import Button from '@material-ui/core/Button';
6
+ import { withStyles } from '@material-ui/core/styles';
7
7
 
8
8
  import { T } from 'Framework/i18n';
9
9
  import CustomDialog from 'Shared/Components/CustomDialog';
@@ -1,7 +1,7 @@
1
1
  import React, { Fragment, useEffect, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import useMediaQuery from '@material-ui/core/useMediaQuery';
4
- import useTheme from '@material-ui/core/styles/useTheme';
4
+ import { useTheme } from '@material-ui/core/styles';
5
5
  import Dialog from '@material-ui/core/Dialog';
6
6
  import DialogTitle from '@material-ui/core/DialogTitle';
7
7
  import DialogContent from '@material-ui/core/DialogContent';
@@ -281,19 +281,6 @@ exports[`Option renders with Option Group button 1`] = `
281
281
  <p
282
282
  class="MuiTypography-root MuiTypography-body1"
283
283
  />
284
- <p
285
- class="MuiTypography-root dialogselect-option MuiTypography-body1"
286
- data-option="1"
287
- >
288
- Child 1
289
- </p>
290
- <p
291
- class="MuiTypography-root dialogselect-option MuiTypography-body1"
292
- data-option="2"
293
- >
294
- Child 2
295
- </p>
296
- <p />
297
284
  </div>
298
285
  </div>
299
286
  </div>
@@ -1,16 +1,19 @@
1
1
  import React, { useState } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { get, has, isArray, find } from 'lodash';
3
+ import get from 'lodash/get';
4
+ import has from 'lodash/has';
5
+ import isArray from 'lodash/isArray';
6
+ import find from 'lodash/find';
4
7
  import clsx from 'clsx';
5
- import Grid from '@material-ui/core/Grid/Grid';
6
- import useMediaQuery from '@material-ui/core/useMediaQuery';
7
- import Typography from '@material-ui/core/Typography';
8
8
  import TextField from '@material-ui/core/TextField';
9
+ import Grid from '@material-ui/core/Grid';
10
+ import Typography from '@material-ui/core/Typography';
11
+ import useMediaQuery from '@material-ui/core/useMediaQuery';
9
12
  import BlockRoundedIcon from '@material-ui/icons/BlockRounded';
10
13
  import InfoRoundedIcon from '@material-ui/icons/InfoRounded';
11
14
  import RestoreRoundedIcon from '@material-ui/icons/RestoreRounded';
12
15
  import WarningRoundedIcon from '@material-ui/icons/WarningRounded';
13
- import withStyles from '@material-ui/core/styles/withStyles';
16
+ import { withStyles } from '@material-ui/core/styles';
14
17
  import Markdown from 'Framework/Components/Markdown';
15
18
  import { t } from 'Framework/i18n';
16
19
  import customClassName from 'App/Utils/customClassName';
@@ -254,7 +257,7 @@ const Option = ({ children, render, ...props }) => {
254
257
  };
255
258
 
256
259
  const onAbstractClicked = event => {
257
- event.stopPropagation();
260
+ event.target.tagName.toLowerCase() === 'a' && event.stopPropagation();
258
261
  };
259
262
 
260
263
  const onDetailsClicked = event => {
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { createStore } from 'redux';
3
3
  import { mount, render } from 'enzyme';
4
4
  import { Provider } from 'react-redux';
5
- import { noop } from 'lodash';
5
+ import noop from 'lodash/noop';
6
6
  import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
7
7
  import Option from './index';
8
8
 
@@ -2,7 +2,8 @@ import React, { useEffect, useState, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import clsx from 'clsx';
4
4
  import debounce from 'lodash/debounce';
5
- import { makeStyles, TextField } from '@material-ui/core';
5
+ import { makeStyles } from '@material-ui/core/styles';
6
+ import TextField from '@material-ui/core/TextField';
6
7
  import AddIcon from '@material-ui/icons/Add';
7
8
  import RemoveIcon from '@material-ui/icons/Remove';
8
9
 
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import OptionAmount from './index';
3
3
  import { mount, render } from 'enzyme';
4
4
  import { act } from 'react-dom/test-utils';
5
- import { TextField } from '@material-ui/core';
5
+ import TextField from '@material-ui/core/TextField';
6
6
 
7
7
  describe('OptionAmount', () => {
8
8
  it('renders correctly', () => {
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
2
2
  import CloseIcon from '@material-ui/icons/Close';
3
3
  import PropTypes from 'prop-types';
4
4
  import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';
5
- import withStyles from '@material-ui/core/styles/withStyles';
5
+ import { withStyles } from '@material-ui/core/styles';
6
6
  import Modal from '@material-ui/core/Modal';
7
7
  import getImageUrl from '../../../../../Utils/getImageUrl';
8
8
 
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
- import _ from 'lodash';
2
+ import find from 'lodash/find';
3
+ import findIndex from 'lodash/findIndex';
4
+ import isArray from 'lodash/isArray';
3
5
  import { Swipeable } from 'react-swipeable';
4
6
  import clsx from 'clsx';
5
7
  import Button from '@material-ui/core/Button';
@@ -126,7 +128,7 @@ class Optiondetail extends React.Component {
126
128
  const { details, options } = props;
127
129
 
128
130
  this.state = {
129
- currentOption: _.find(options, { identifier: details.identifier }),
131
+ currentOption: find(options, { identifier: details.identifier }),
130
132
  loading: false,
131
133
  zoomImage: false,
132
134
  hasZoomSet: false,
@@ -143,7 +145,7 @@ class Optiondetail extends React.Component {
143
145
  const { details, options } = this.props;
144
146
  if (details.identifier !== prevProps.details.identifier) {
145
147
  this.setState({
146
- currentOption: _.find(options, { identifier: details.identifier }),
148
+ currentOption: find(options, { identifier: details.identifier }),
147
149
  loading: false,
148
150
  });
149
151
  }
@@ -156,13 +158,13 @@ class Optiondetail extends React.Component {
156
158
  const { optionclassification } = this.props;
157
159
  const { currentOption } = this.state;
158
160
  const { identifier } = currentOption;
159
- return _.find(optionclassification.selectedoptions, { identifier }) || currentOption;
161
+ return find(optionclassification.selectedoptions, { identifier }) || currentOption;
160
162
  }
161
163
 
162
164
  prev = () => {
163
165
  const { details, options, viewDetails } = this.props;
164
166
  if (options.length) {
165
- const optionIndex = _.findIndex(options, { identifier: details.identifier });
167
+ const optionIndex = findIndex(options, { identifier: details.identifier });
166
168
  const prevIndex = optionIndex === 0 ? options.length - 1 : optionIndex - 1;
167
169
  const prev = options[prevIndex];
168
170
  viewDetails(prev);
@@ -177,7 +179,7 @@ class Optiondetail extends React.Component {
177
179
  next = () => {
178
180
  const { details, options, viewDetails } = this.props;
179
181
  if (options.length) {
180
- const optionIndex = _.findIndex(options, { identifier: details.identifier });
182
+ const optionIndex = findIndex(options, { identifier: details.identifier });
181
183
  const nextIndex = optionIndex === options.length - 1 ? 0 : optionIndex + 1;
182
184
  const next = options[nextIndex];
183
185
  viewDetails(next);
@@ -265,7 +267,7 @@ class Optiondetail extends React.Component {
265
267
  render() {
266
268
  const { LoadingComponent, options, show, onClose, details, classes, width } = this.props;
267
269
  const { loading, loadingContainerHeight } = this.state;
268
- const showNav = _.isArray(options) && options.length > 1;
270
+ const showNav = isArray(options) && options.length > 1;
269
271
  const detailImage = details.detailImage;
270
272
  const query = new URLSearchParams(location.search);
271
273
  const hidePrices = query.has('_hide_prices') && query.get('_hide_prices') === '1';
@@ -4,54 +4,7 @@ import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
4
4
  import OptionDetail from './index';
5
5
  import { createStore } from 'redux';
6
6
  import { Provider } from 'react-redux';
7
-
8
- export const optionData = {
9
- abstract: 'Das sind schwarze Reissverschlüsse',
10
- amount: null,
11
- amount_is_selectable: null,
12
- attributes: [],
13
- description:
14
- 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ',
15
- detailImageExists: false,
16
- identifier: 'reissverschluesse_black',
17
- imageIdentifier: 'reissverschluesse_black',
18
- netPrice: null,
19
- price: 0,
20
- priceFormatted: '0,00 €',
21
- stock: null,
22
- title: 'Reissverschlüsse schwarz',
23
- };
24
-
25
- export const mockedProps = {
26
- channelSettings: { currencySymbol: '€', channel: '_default' },
27
- details: optionData,
28
- isTabletDevice: false,
29
- languageSettings: {
30
- currencysymbolposition: 'right',
31
- dateformat: 'd.m.Y',
32
- decimalpoint: ',',
33
- id: '2',
34
- iso: 'de_DE',
35
- pricedecimals: 2,
36
- thousandsseparator: '.',
37
- user_created_id: '0',
38
- },
39
- optionclassification: {
40
- attributes: [],
41
- description: '',
42
- identifier: 'reissverschluss',
43
- is_mandatory: true,
44
- is_multiselect: false,
45
- optionsCount: '2',
46
- selectedoptions: [optionData],
47
- title: 'Reissverschluss',
48
- },
49
- options: [optionData],
50
- show: true,
51
- title: 'Reissverschluss',
52
- viewDetails: () => {},
53
- OptionlistitemAmount: React.Fragment,
54
- };
7
+ import { mockedProps } from './index.test.mocks';
55
8
 
56
9
  storiesOf('OptionDetail', module)
57
10
  .add('renders as fullscreen on small screens', () => (
@@ -1,7 +1,7 @@
1
1
  import { render, mount } from 'enzyme';
2
2
  import React from 'react';
3
3
  import OptionDetail from './index';
4
- import { mockedProps, optionData } from './index.story';
4
+ import { mockedProps, optionData } from './index.test.mocks';
5
5
  import Button from '@material-ui/core/Button';
6
6
 
7
7
  jest.mock('Shared/Components/CustomDialog', () => {
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+
3
+ export const optionData = {
4
+ abstract: 'Das sind schwarze Reissverschlüsse',
5
+ amount: null,
6
+ amount_is_selectable: null,
7
+ attributes: [],
8
+ description:
9
+ 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ',
10
+ detailImageExists: false,
11
+ identifier: 'reissverschluesse_black',
12
+ imageIdentifier: 'reissverschluesse_black',
13
+ netPrice: null,
14
+ price: 0,
15
+ priceFormatted: '0,00 €',
16
+ stock: null,
17
+ title: 'Reissverschlüsse schwarz',
18
+ };
19
+
20
+ export const mockedProps = {
21
+ channelSettings: { currencySymbol: '€', channel: '_default' },
22
+ details: optionData,
23
+ isTabletDevice: false,
24
+ languageSettings: {
25
+ currencysymbolposition: 'right',
26
+ dateformat: 'd.m.Y',
27
+ decimalpoint: ',',
28
+ id: '2',
29
+ iso: 'de_DE',
30
+ pricedecimals: 2,
31
+ thousandsseparator: '.',
32
+ user_created_id: '0',
33
+ },
34
+ optionclassification: {
35
+ attributes: [],
36
+ description: '',
37
+ identifier: 'reissverschluss',
38
+ is_mandatory: true,
39
+ is_multiselect: false,
40
+ optionsCount: '2',
41
+ selectedoptions: [optionData],
42
+ title: 'Reissverschluss',
43
+ },
44
+ options: [optionData],
45
+ show: true,
46
+ title: 'Reissverschluss',
47
+ viewDetails: () => {},
48
+ OptionlistitemAmount: React.Fragment,
49
+ };
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { findIndex, get } from 'lodash';
3
+ import findIndex from 'lodash/findIndex';
4
+ import get from 'lodash/get';
4
5
  import clsx from 'clsx';
5
- import { makeStyles } from '@material-ui/core';
6
+ import { makeStyles } from '@material-ui/core/styles';
6
7
  import DialogContent from '@material-ui/core/DialogContent';
7
8
  import LoadingOverlay from 'Framework/Components/LoadingOverlay';
8
9
  import CustomDialog from 'Shared/Components/CustomDialog';
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { createStore } from 'redux';
3
3
  import { Provider } from 'react-redux';
4
4
  import { mount, render } from 'enzyme';
5
- import { noop } from 'lodash';
5
+ import noop from 'lodash/noop';
6
6
  import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
7
7
  import ProductPart from './index';
8
8
 
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import clsx from 'clsx';
4
4
  import { makeStyles } from '@material-ui/core/styles';
5
- import { withWidth } from '@material-ui/core';
5
+ import withWidth from '@material-ui/core/withWidth';
6
6
  import { T } from 'Framework/i18n';
7
7
  import Carousel from 'Framework/Components/Carousel';
8
8
  import customClassName from 'App/Utils/customClassName';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import './Styles.scss';
3
- import _ from 'lodash';
3
+ import get from 'lodash/get';
4
4
 
5
5
  import { T } from 'Framework/i18n';
6
6
  import PropTypes from 'prop-types';
@@ -13,8 +13,8 @@ class SavedConfiguration extends React.Component {
13
13
  render() {
14
14
  const { savedconfiguration } = this.props;
15
15
 
16
- const code = _.get(savedconfiguration, 'code', false);
17
- const link = _.get(savedconfiguration, 'shareLink', false);
16
+ const code = get(savedconfiguration, 'code', false);
17
+ const link = get(savedconfiguration, 'shareLink', false);
18
18
 
19
19
  return (
20
20
  <div className="savedconfiguration">
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { translateComponent } from 'Framework/i18n';
3
- import _ from 'lodash';
3
+ import get from 'lodash/get';
4
4
 
5
5
  import './Styles.scss';
6
6
  import PropTypes from 'prop-types';
@@ -27,7 +27,7 @@ export class StoreConfigurationForm extends React.Component {
27
27
  onSubmit(e) {
28
28
  e.preventDefault();
29
29
  this.props.onStore(this.nameInput.value).then(action => {
30
- this.setState({ isSaved: !_.get(action, 'data.error') });
30
+ this.setState({ isSaved: !get(action, 'data.error') });
31
31
  });
32
32
  }
33
33
 
@@ -1,7 +1,7 @@
1
1
  import containerConnect from 'Framework/ComponentContainer';
2
2
  import { setVisible } from 'App/Reducers/UI/Actions';
3
3
  import { setCustomTitle } from 'App/Reducers/Configurator/Actions';
4
- import { get } from 'lodash';
4
+ import get from 'lodash/get';
5
5
  import { Services } from 'App/ServiceLocator';
6
6
  import CustomTitleEditor from '../../Components/CustomTitleEditor';
7
7
  import Dialog from 'Framework/Components/Dialog';
@@ -1,6 +1,6 @@
1
1
  import containerConnect from 'Framework/ComponentContainer';
2
2
  import { setVisible } from 'App/Reducers/UI/Actions';
3
- import { get } from 'lodash';
3
+ import get from 'lodash/get';
4
4
  import { Services } from 'App/ServiceLocator';
5
5
 
6
6
  import FastConfiguration from '../../Components/FastConfiguration';
@@ -1,4 +1,4 @@
1
- import { get } from 'lodash';
1
+ import get from 'lodash/get';
2
2
  import containerConnect from 'Framework/ComponentContainer';
3
3
  import { getComponent } from 'App/configuration';
4
4
 
@@ -18,7 +18,7 @@ const getValidationErrors = configuratorState => {
18
18
  validation,
19
19
  optionclassifications && optionclassifications.length
20
20
  ).use(() => {
21
- const errors = validation.validationErrors || validation.errors || {};
21
+ const errors = validation?.validationErrors || validation?.errors || {};
22
22
  return !optionclassifications
23
23
  ? []
24
24
  : Object.entries(errors).map(([key, error]) => ({
@@ -1,7 +1,7 @@
1
1
  import containerConnect from 'Framework/ComponentContainer';
2
2
  import { setVisible } from 'App/Reducers/UI/Actions';
3
3
  import { clearOptionDetails } from 'App/Reducers/Configurator/Actions';
4
- import { get } from 'lodash';
4
+ import get from 'lodash/get';
5
5
  import OptionDetail from '../../Components/Optiondetail';
6
6
 
7
7
  const mapStateToProps = ({ ui, configurator, device }) => {
@@ -51,7 +51,6 @@ exports[`renders correctly 1`] = `
51
51
  alt="Symbole"
52
52
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
53
53
  src="./res/Kreis.jpg"
54
- style="background:#c4c4c4"
55
54
  />
56
55
  <div
57
56
  class="ImageThumbnail-priceLabel-14"
@@ -68,7 +67,6 @@ exports[`renders correctly 1`] = `
68
67
  alt="Branchen"
69
68
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
70
69
  src="./res/Kreis.jpg"
71
- style="background:transparent"
72
70
  />
73
71
  <div
74
72
  class="ImageThumbnail-priceLabel-14"
@@ -85,7 +83,6 @@ exports[`renders correctly 1`] = `
85
83
  alt="Männer"
86
84
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
87
85
  src="./res/Rechteck.jpg"
88
- style="background:transparent"
89
86
  />
90
87
  <div
91
88
  class="ImageThumbnail-priceLabel-14"
@@ -102,7 +99,6 @@ exports[`renders correctly 1`] = `
102
99
  alt="Frauen"
103
100
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
104
101
  src="./res/Rechteck.jpg"
105
- style="background:transparent"
106
102
  />
107
103
  <div
108
104
  class="ImageThumbnail-priceLabel-14"
@@ -119,7 +115,6 @@ exports[`renders correctly 1`] = `
119
115
  alt="Figuren"
120
116
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
121
117
  src="./res/Kreis.jpg"
122
- style="background:transparent"
123
118
  />
124
119
  <div
125
120
  class="ImageThumbnail-priceLabel-14"
@@ -136,7 +131,6 @@ exports[`renders correctly 1`] = `
136
131
  alt="Geometrisch1"
137
132
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
138
133
  src="./res/Kreis.jpg"
139
- style="background:transparent"
140
134
  />
141
135
  <div
142
136
  class="ImageThumbnail-priceLabel-14"
@@ -153,7 +147,6 @@ exports[`renders correctly 1`] = `
153
147
  alt="Figuren1"
154
148
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
155
149
  src="./res/Stern.jpg"
156
- style="background:transparent"
157
150
  />
158
151
  <div
159
152
  class="ImageThumbnail-priceLabel-14"
@@ -170,7 +163,6 @@ exports[`renders correctly 1`] = `
170
163
  alt="Geometrisch"
171
164
  class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
172
165
  src="./res/Stern.jpg"
173
- style="background:transparent"
174
166
  />
175
167
  <div
176
168
  class="ImageThumbnail-priceLabel-14"
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { withStyles } from '@material-ui/core/styles';
4
- import { isEmpty } from 'lodash';
5
- import Icon from '@material-ui/core/Icon/Icon';
4
+ import isEmpty from 'lodash/isEmpty';
5
+ import Icon from '@material-ui/core/Icon';
6
6
  import MainButton from 'Shared/Components/MainButton';
7
7
  import { t } from 'Framework/i18n';
8
- import withWidth, { isWidthDown } from '@material-ui/core/withWidth/withWidth';
9
- import Typography from '@material-ui/core/Typography/Typography';
8
+ import withWidth, { isWidthDown } from '@material-ui/core/withWidth';
9
+ import Typography from '@material-ui/core/Typography';
10
10
  import ImageLibraryFilter from '../ImageLibraryFilter';
11
11
  import ImageLibraryThumbnail from '../ImageLibraryThumbnail';
12
12
  import Dialog from '@material-ui/core/Dialog';
@@ -146,30 +146,3 @@ it('calls the onSelectImage callback when the user uploads an own image in the C
146
146
  button.simulate('click');
147
147
  expect(onChangeHandler).toHaveBeenCalled();
148
148
  });
149
-
150
- it('sets the background to grey if the image is too bright', () => {
151
- const tree = mount(
152
- <AddGalleryImage
153
- tags={tags}
154
- images={images}
155
- onClose={() => {}}
156
- onSelectImage={() => {}}
157
- onSelectTag={() => {}}
158
- open={true}
159
- width={'lg'}
160
- />
161
- );
162
-
163
- const renderedImages = tree
164
- .find('ImageLibraryThumbnail')
165
- .at(0)
166
- .find('img');
167
-
168
- const firstImageBackground = renderedImages.at(0).props('motive').style.background;
169
- const secondImageBackground = renderedImages.at(1).props('motive').style.background;
170
- const thirdImageBackground = renderedImages.at(2).props('motive').style.background;
171
-
172
- expect(firstImageBackground).toEqual('#c4c4c4');
173
- expect(secondImageBackground).toEqual('transparent');
174
- expect(thirdImageBackground).toEqual('transparent');
175
- });