@configuratorware/configurator-frontendgui 1.27.3-beta.8 → 1.27.6

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 (460) hide show
  1. package/README.md +26 -5
  2. package/babel.config.js +46 -0
  3. package/package.json +102 -20
  4. package/public/ConfigurationMessagingDemo.html +55 -0
  5. package/scripts/cpPath.js +135 -0
  6. package/scripts/cpPublic.js +4 -4
  7. package/scripts/getDefaultWebpackConfig.js +10 -11
  8. package/scripts/moveLibToPackageRoot.js +40 -0
  9. package/scripts/rmDir.js +29 -0
  10. package/scripts/updateLocalPackages.js +68 -0
  11. package/scripts/utils/process.js +19 -0
  12. package/src/App/Error/ProductionErrorPage/Style.scss +1 -1
  13. package/src/App/Modules/Creator/Components/Option/index.js +0 -1
  14. package/src/App/Modules/Creator/Components/Option/index.test.js +1 -1
  15. package/src/App/Modules/Creator/Components/OptionAmount/index.test.js +1 -1
  16. package/src/App/Modules/Creator/Components/Optiondetail/index.js +7 -3
  17. package/src/App/Modules/Creator/Components/ProductPart/index.js +0 -1
  18. package/src/App/Modules/Creator/Components/ProductPart/index.test.js +1 -1
  19. package/src/App/Modules/Designer/Components/AddGalleryImage/index.story.js +1 -1
  20. package/src/App/Modules/Designer/Components/ColorPalettes/index.test.jsx +1 -1
  21. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.test.jsx +1 -1
  22. package/src/App/Modules/Designer/Components/TextControlbox/index.test.jsx +1 -1
  23. package/src/App/Reducers/Configurator/Actions.js +3 -13
  24. package/src/App/Reducers/DesignArea/Selectors.js +7 -9
  25. package/src/App/Reducers/DesignView/Actions.js +2 -1
  26. package/src/App/Reducers/DesignView/Reducer.js +10 -2
  27. package/src/App/Reducers/DesignView/__mocks__/designerViewData.js +1 -0
  28. package/src/App/Reducers/DesignView/__tests__/Reducer.test.js +22 -0
  29. package/src/App/Reducers/ImageGallery/Actions.js +1 -1
  30. package/src/App/Reducers/UI/Actions.js +0 -8
  31. package/src/App/Reducers/UI/Reducer.js +1 -3
  32. package/src/App/Screens/Configurator/Components/CalculationWidget/index.test.jsx +1 -1
  33. package/src/App/Screens/Configurator/Components/DesignApproval/index.test.jsx +1 -1
  34. package/src/App/Screens/Configurator/Components/FullScreenView/index.test.jsx +1 -1
  35. package/src/App/Screens/Configurator/Containers/AmountPrice.js +1 -1
  36. package/src/App/Screens/Configurator/Containers/Confirm.js +1 -1
  37. package/src/App/Screens/Configurator/Screen.js +1 -1
  38. package/src/App/Screens/Configurator/ThemeProvider.js +0 -1
  39. package/src/App/Services/__tests__/DesignDataService.selectViewForComponent.test.js +53 -0
  40. package/src/App/Shared/Containers/AlertMessages.js +1 -1
  41. package/src/App/Shared/Containers/AmountPrice/index.test.js +1 -1
  42. package/src/App/Shared/Containers/Error.js +1 -1
  43. package/src/App/Shared/Containers/SaveConfiguration.js +1 -1
  44. package/src/App/Translations.js +1 -1
  45. package/src/Framework/Components/Carousel/index.js +8 -29
  46. package/src/Framework/i18n.js +3 -2
  47. package/src/Shared/Components/CustomDialog.js +11 -5
  48. package/tsconfig.json +22 -0
  49. package/App/Constant.js +0 -73
  50. package/App/Error/DevelopmentErrorPage/index.js +0 -74
  51. package/App/Error/ErrorBoundary.js +0 -98
  52. package/App/Error/ProductionErrorPage/Style.scss +0 -47
  53. package/App/Error/ProductionErrorPage/index.js +0 -43
  54. package/App/Error/ProductionErrorPage/index.story.js +0 -13
  55. package/App/Error/ProductionErrorPage/res/error_gears.png +0 -0
  56. package/App/Frame.js +0 -95
  57. package/App/Modules/Creator/Components/ConfigurationvariantItem/Styles.scss +0 -33
  58. package/App/Modules/Creator/Components/ConfigurationvariantItem/index.js +0 -118
  59. package/App/Modules/Creator/Components/ConfigurationvariantSelection/Styles.scss +0 -47
  60. package/App/Modules/Creator/Components/ConfigurationvariantSelection/index.js +0 -130
  61. package/App/Modules/Creator/Components/CustomTitleEditor/Styles.scss +0 -43
  62. package/App/Modules/Creator/Components/CustomTitleEditor/index.js +0 -144
  63. package/App/Modules/Creator/Components/ExternalVisualization/index.js +0 -140
  64. package/App/Modules/Creator/Components/FastConfiguration/SelectableRow.js +0 -128
  65. package/App/Modules/Creator/Components/FastConfiguration/Styles.scss +0 -53
  66. package/App/Modules/Creator/Components/FastConfiguration/index.js +0 -280
  67. package/App/Modules/Creator/Components/FastConfigurationRow/Styles.scss +0 -45
  68. package/App/Modules/Creator/Components/FastConfigurationRow/index.js +0 -78
  69. package/App/Modules/Creator/Components/FastConfigurationSelect/Styles.scss +0 -35
  70. package/App/Modules/Creator/Components/FastConfigurationSelect/index.js +0 -251
  71. package/App/Modules/Creator/Components/FormattedNumber/index.js +0 -45
  72. package/App/Modules/Creator/Components/FormattedPrice/index.js +0 -57
  73. package/App/Modules/Creator/Components/FullScreenView/FullScreenView.js +0 -104
  74. package/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +0 -182
  75. package/App/Modules/Creator/Components/Incompatibility/RuleComponent.js +0 -88
  76. package/App/Modules/Creator/Components/Incompatibility/index.js +0 -251
  77. package/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +0 -164
  78. package/App/Modules/Creator/Components/LoginForm/Styles.scss +0 -9
  79. package/App/Modules/Creator/Components/LoginForm/index.js +0 -129
  80. package/App/Modules/Creator/Components/Option/index.js +0 -545
  81. package/App/Modules/Creator/Components/Option/index.story.js +0 -154
  82. package/App/Modules/Creator/Components/OptionAmount/index.js +0 -236
  83. package/App/Modules/Creator/Components/OptionGroup/index.js +0 -55
  84. package/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +0 -173
  85. package/App/Modules/Creator/Components/Optiondetail/index.js +0 -497
  86. package/App/Modules/Creator/Components/Optiondetail/index.story.js +0 -117
  87. package/App/Modules/Creator/Components/OptionsList/index.js +0 -193
  88. package/App/Modules/Creator/Components/Price/Styles.scss +0 -3
  89. package/App/Modules/Creator/Components/Price/index.js +0 -79
  90. package/App/Modules/Creator/Components/ProductPart/index.js +0 -185
  91. package/App/Modules/Creator/Components/ProductPart/index.story.js +0 -88
  92. package/App/Modules/Creator/Components/ProductPartsList/index.js +0 -150
  93. package/App/Modules/Creator/Components/ProductPartsList/index.story.js +0 -101
  94. package/App/Modules/Creator/Components/SavedConfiguration/Styles.scss +0 -19
  95. package/App/Modules/Creator/Components/SavedConfiguration/index.js +0 -82
  96. package/App/Modules/Creator/Components/ShareConfiguration/Styles.scss +0 -23
  97. package/App/Modules/Creator/Components/ShareConfiguration/index.js +0 -224
  98. package/App/Modules/Creator/Components/StockInformation/index.js +0 -93
  99. package/App/Modules/Creator/Components/StoreConfigurationForm/Styles.scss +0 -5
  100. package/App/Modules/Creator/Components/StoreConfigurationForm/index.js +0 -123
  101. package/App/Modules/Creator/Components/Tools/Styles.scss +0 -44
  102. package/App/Modules/Creator/Components/Tools/index.js +0 -102
  103. package/App/Modules/Creator/Components/ValidationResult/Styles.scss +0 -45
  104. package/App/Modules/Creator/Components/ValidationResult/index.js +0 -165
  105. package/App/Modules/Creator/Components/index.js +0 -84
  106. package/App/Modules/Creator/Containers/AmountPrice/index.js +0 -26
  107. package/App/Modules/Creator/Containers/ConfigurationvariantSelection/index.js +0 -60
  108. package/App/Modules/Creator/Containers/CustomTitleEditor/index.js +0 -52
  109. package/App/Modules/Creator/Containers/FastConfiguration/index.js +0 -62
  110. package/App/Modules/Creator/Containers/FormattedPrice/index.js +0 -31
  111. package/App/Modules/Creator/Containers/Incompatibility/index.js +0 -40
  112. package/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +0 -89
  113. package/App/Modules/Creator/Containers/LoadingOverlay/index.js +0 -26
  114. package/App/Modules/Creator/Containers/Optiondetail/index.js +0 -48
  115. package/App/Modules/Creator/Containers/OptionsList/index.js +0 -49
  116. package/App/Modules/Creator/Containers/ProductPart/index.js +0 -26
  117. package/App/Modules/Creator/Containers/ProductPartsList/index.js +0 -49
  118. package/App/Modules/Creator/Containers/SavedConfigurationContainer/index.js +0 -25
  119. package/App/Modules/Creator/Containers/ShareConfiguration/index.js +0 -42
  120. package/App/Modules/Creator/Containers/StockInformation/index.js +0 -33
  121. package/App/Modules/Creator/Containers/Tools/index.js +0 -44
  122. package/App/Modules/Creator/Containers/ValidationResult/index.js +0 -34
  123. package/App/Modules/Creator/Containers/index.js +0 -175
  124. package/App/Modules/Creator/CreatorScreen.js +0 -307
  125. package/App/Modules/Creator/Layouts/DefaultLayout.js +0 -260
  126. package/App/Modules/Creator/Styles.scss +0 -216
  127. package/App/Modules/Designer/Components/AddGalleryImage/index.js +0 -234
  128. package/App/Modules/Designer/Components/AddGalleryImage/index.story.js +0 -94
  129. package/App/Modules/Designer/Components/AddGalleryImage/index.test.js +0 -151
  130. package/App/Modules/Designer/Components/AddVisualElement/Styles.scss +0 -0
  131. package/App/Modules/Designer/Components/AddVisualElement/index.js +0 -278
  132. package/App/Modules/Designer/Components/AddVisualElement/index.story.js +0 -24
  133. package/App/Modules/Designer/Components/AddVisualElement/index.test.js +0 -47
  134. package/App/Modules/Designer/Components/CloseDesignEditor/index.js +0 -130
  135. package/App/Modules/Designer/Components/CloseGraphicsEditorButton/index.js +0 -54
  136. package/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +0 -175
  137. package/App/Modules/Designer/Components/ColorPalettes/index.js +0 -814
  138. package/App/Modules/Designer/Components/ColorPalettes/index.story.js +0 -158
  139. package/App/Modules/Designer/Components/ColorPalettes/index.test.js +0 -150
  140. package/App/Modules/Designer/Components/DesignAreaControlbox/Styles.scss +0 -0
  141. package/App/Modules/Designer/Components/DesignAreaControlbox/index.js +0 -460
  142. package/App/Modules/Designer/Components/DesignAreaControlbox/index.story.js +0 -272
  143. package/App/Modules/Designer/Components/DesignAreaControlbox/index.test.js +0 -164
  144. package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +0 -162
  145. package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +0 -425
  146. package/App/Modules/Designer/Components/DesignerSelectionToolbox/fontItemUtils.js +0 -48
  147. package/App/Modules/Designer/Components/Dialog/index.js +0 -125
  148. package/App/Modules/Designer/Components/EditDesignButton/index.js +0 -128
  149. package/App/Modules/Designer/Components/FeedbackNotice/index.js +0 -110
  150. package/App/Modules/Designer/Components/FeedbackNotice/index.test.js +0 -16
  151. package/App/Modules/Designer/Components/FullScreenView/FullScreenView.js +0 -63
  152. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.dev.js +0 -32
  153. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +0 -430
  154. package/App/Modules/Designer/Components/ImageColorize/index.js +0 -636
  155. package/App/Modules/Designer/Components/ImageColorize/index.story.js +0 -73
  156. package/App/Modules/Designer/Components/ImageControlbox/index.js +0 -302
  157. package/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +0 -171
  158. package/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +0 -478
  159. package/App/Modules/Designer/Components/ImageEditDialog/index.js +0 -716
  160. package/App/Modules/Designer/Components/ImageEditDialog/res/baseline_colorize_black_24dp.png +0 -0
  161. package/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
  162. package/App/Modules/Designer/Components/ImageLibraryFilter/index.js +0 -179
  163. package/App/Modules/Designer/Components/ImageLibraryThumbnail/Styles.scss +0 -14
  164. package/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +0 -165
  165. package/App/Modules/Designer/Components/ObjectTools/index.js +0 -146
  166. package/App/Modules/Designer/Components/Select/index.js +0 -171
  167. package/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +0 -48
  168. package/App/Modules/Designer/Components/TextControlbox/index.js +0 -656
  169. package/App/Modules/Designer/Components/TextControlbox/index.story.js +0 -109
  170. package/App/Modules/Designer/Components/TextControlbox/index.test.js +0 -172
  171. package/App/Modules/Designer/Containers/AddGalleryImage.js +0 -90
  172. package/App/Modules/Designer/Containers/AddVisualElement.js +0 -166
  173. package/App/Modules/Designer/Containers/CloseDesignEditor.js +0 -32
  174. package/App/Modules/Designer/Containers/CloseGraphicsEditorButton.js +0 -32
  175. package/App/Modules/Designer/Containers/ColorPalettes.js +0 -145
  176. package/App/Modules/Designer/Containers/DesignAreaControlbox.js +0 -54
  177. package/App/Modules/Designer/Containers/Designer.js +0 -37
  178. package/App/Modules/Designer/Containers/DesignerSelectionToolbox.js +0 -116
  179. package/App/Modules/Designer/Containers/EditDesignButton.js +0 -35
  180. package/App/Modules/Designer/Containers/ImageEditDialog.js +0 -1130
  181. package/App/Modules/Designer/Designer.js +0 -231
  182. package/App/Modules/Designer/DesignerScreen.js +0 -233
  183. package/App/Modules/Designer/Layouts/DefaultLayout.js +0 -196
  184. package/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +0 -50
  185. package/App/Modules/Designer/Layouts/PopupAreaProvider.js +0 -186
  186. package/App/Modules/Designer/Utils/FontFaceRepository.js +0 -82
  187. package/App/Modules/Designer/Utils/ImageEditUtils.js +0 -104
  188. package/App/Modules/Designer/Utils/Transformers.js +0 -164
  189. package/App/Modules/Designer/setupDesigner.js +0 -182
  190. package/App/Modules/Designer/withActiveCanvas.js +0 -136
  191. package/App/Modules/Visualization/AlignTargetContainer.js +0 -55
  192. package/App/Modules/Visualization/CreatorAlignTarget.js +0 -41
  193. package/App/Modules/Visualization/DefaultVisualizationProvider.js +0 -105
  194. package/App/Modules/Visualization/DesignerAlignTarget.js +0 -45
  195. package/App/Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj.js +0 -20
  196. package/App/Reducers/Actions.js +0 -297
  197. package/App/Reducers/ConfigurationMode/Actions.js +0 -21
  198. package/App/Reducers/ConfigurationMode/Reducer.js +0 -80
  199. package/App/Reducers/ConfigurationMode/Selectors.js +0 -84
  200. package/App/Reducers/Configurator/Actions.js +0 -1417
  201. package/App/Reducers/Configurator/AttributeSelectors.js +0 -32
  202. package/App/Reducers/Configurator/Modifiers.js +0 -35
  203. package/App/Reducers/Configurator/Reducer.js +0 -639
  204. package/App/Reducers/Configurator/Selectors.js +0 -242
  205. package/App/Reducers/Confirm/Actions.js +0 -84
  206. package/App/Reducers/Confirm/Reducer.js +0 -30
  207. package/App/Reducers/DesignArea/Actions.js +0 -76
  208. package/App/Reducers/DesignArea/DesignElementSelectors.js +0 -114
  209. package/App/Reducers/DesignArea/MaskSelectors.js +0 -101
  210. package/App/Reducers/DesignArea/Reducer.js +0 -150
  211. package/App/Reducers/DesignArea/Selectors.js +0 -1314
  212. package/App/Reducers/DesignArea/Transformers.js +0 -333
  213. package/App/Reducers/DesignData/Actions.js +0 -232
  214. package/App/Reducers/DesignData/Modifiers.js +0 -328
  215. package/App/Reducers/DesignData/Reducer.js +0 -189
  216. package/App/Reducers/DesignData/Selectors.js +0 -94
  217. package/App/Reducers/DesignData/Transformers.js +0 -27
  218. package/App/Reducers/DesignView/Actions.js +0 -19
  219. package/App/Reducers/DesignView/Reducer.js +0 -165
  220. package/App/Reducers/DesignView/Selectors.js +0 -130
  221. package/App/Reducers/DesignView/Transformers.js +0 -32
  222. package/App/Reducers/Device/Actions.js +0 -16
  223. package/App/Reducers/Device/Reducer.js +0 -51
  224. package/App/Reducers/Fonts/Actions.js +0 -137
  225. package/App/Reducers/Fonts/Reducer.js +0 -39
  226. package/App/Reducers/Fonts/Selectors.js +0 -98
  227. package/App/Reducers/GeneralActions.js +0 -16
  228. package/App/Reducers/ImageGallery/Actions.js +0 -336
  229. package/App/Reducers/ImageGallery/Modifiers.js +0 -67
  230. package/App/Reducers/ImageGallery/Reducer.js +0 -320
  231. package/App/Reducers/ImageGallery/Selectors.js +0 -206
  232. package/App/Reducers/Reducer.js +0 -107
  233. package/App/Reducers/UI/Actions.js +0 -191
  234. package/App/Reducers/UI/Reducer.js +0 -98
  235. package/App/Reducers/UI/Selectors.js +0 -32
  236. package/App/Reducers.js +0 -48
  237. package/App/Routing.js +0 -168
  238. package/App/Screens/Configurator/CalculationWidgetScreen.js +0 -84
  239. package/App/Screens/Configurator/Components/AmountSelection/Styles.scss +0 -17
  240. package/App/Screens/Configurator/Components/AmountSelection/index.js +0 -170
  241. package/App/Screens/Configurator/Components/AmountSelection/index.story.js +0 -36
  242. package/App/Screens/Configurator/Components/CalculationWidget/index.js +0 -652
  243. package/App/Screens/Configurator/Components/CalculationWidget/index.story.js +0 -154
  244. package/App/Screens/Configurator/Components/CalculationWidget/index.test.js +0 -142
  245. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +0 -82
  246. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/index.js +0 -15
  247. package/App/Screens/Configurator/Components/Confirm/Styles.scss +0 -0
  248. package/App/Screens/Configurator/Components/Confirm/index.js +0 -105
  249. package/App/Screens/Configurator/Components/DesignApproval/index.js +0 -76
  250. package/App/Screens/Configurator/Components/DesignApproval/index.story.js +0 -27
  251. package/App/Screens/Configurator/Components/DesignApproval/index.test.js +0 -31
  252. package/App/Screens/Configurator/Components/Error/index.js +0 -106
  253. package/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +0 -96
  254. package/App/Screens/Configurator/Components/FileUpload/FileUploadBase.js +0 -1
  255. package/App/Screens/Configurator/Components/FullScreenView/index.js +0 -303
  256. package/App/Screens/Configurator/Components/FullScreenView/index.test.js +0 -28
  257. package/App/Screens/Configurator/Components/ImageLoader/ImageLoader.js +0 -96
  258. package/App/Screens/Configurator/Components/LandscapeInformation/index.js +0 -75
  259. package/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +0 -35
  260. package/App/Screens/Configurator/Components/PreviewPortal/index.js +0 -246
  261. package/App/Screens/Configurator/Components/Styles.scss +0 -1
  262. package/App/Screens/Configurator/Components/Thumbnail/index.js +0 -394
  263. package/App/Screens/Configurator/Components/Thumbnail/index.test.js +0 -50
  264. package/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +0 -57
  265. package/App/Screens/Configurator/Containers/AmountPrice.js +0 -84
  266. package/App/Screens/Configurator/Containers/CalculationWidget.js +0 -278
  267. package/App/Screens/Configurator/Containers/ConfigurationModeSwitch.js +0 -81
  268. package/App/Screens/Configurator/Containers/Confirm.js +0 -37
  269. package/App/Screens/Configurator/Containers/DesignApproval.js +0 -129
  270. package/App/Screens/Configurator/Containers/FallbackVisualization.js +0 -32
  271. package/App/Screens/Configurator/Containers/FullScreenView.js +0 -46
  272. package/App/Screens/Configurator/Containers/Thumbnail.js +0 -41
  273. package/App/Screens/Configurator/Containers/Visualization.js +0 -13
  274. package/App/Screens/Configurator/DesignerUI.js +0 -215
  275. package/App/Screens/Configurator/DynamicComponents.js +0 -40
  276. package/App/Screens/Configurator/Screen.js +0 -236
  277. package/App/Screens/Configurator/ScreenPropTypes.js +0 -45
  278. package/App/Screens/Configurator/ThemeProvider.js +0 -298
  279. package/App/Screens/DesignerProductPreview/Constants.js +0 -12
  280. package/App/Screens/DesignerProductPreview/DesignerProductPreviewManager.js +0 -554
  281. package/App/Screens/DesignerProductPreview/Screen.js +0 -407
  282. package/App/Screens.js +0 -42
  283. package/App/ServiceLocator.js +0 -309
  284. package/App/Services/AdminareaCommunicationService.js +0 -149
  285. package/App/Services/AnalyticsService.js +0 -403
  286. package/App/Services/ConfiguratorService.js +0 -1122
  287. package/App/Services/DesignDataService.js +0 -3249
  288. package/App/Services/DesignerService.js +0 -496
  289. package/App/Services/InteractionService.js +0 -782
  290. package/App/Services/UIService.js +0 -129
  291. package/App/Services/VisualizationService.js +0 -842
  292. package/App/Shared/Components/AcceptDesign/index.js +0 -166
  293. package/App/Shared/Components/AddToBasket/index.js +0 -194
  294. package/App/Shared/Components/AddToBasket/index.story.js +0 -47
  295. package/App/Shared/Components/AlertDialog/index.js +0 -138
  296. package/App/Shared/Components/AmountInput/Styles.scss +0 -6
  297. package/App/Shared/Components/AmountInput/index.js +0 -296
  298. package/App/Shared/Components/AmountInput/index.story.js +0 -29
  299. package/App/Shared/Components/AmountPrice/index.js +0 -925
  300. package/App/Shared/Components/AmountPrice/index.story.js +0 -112
  301. package/App/Shared/Components/AmountPrice/index.test.js +0 -125
  302. package/App/Shared/Components/Analytics/AnalyticsWrapper.js +0 -49
  303. package/App/Shared/Components/BulkNames/index.js +0 -319
  304. package/App/Shared/Components/CallToAction/index.js +0 -220
  305. package/App/Shared/Components/Header/Header.js +0 -150
  306. package/App/Shared/Components/Header/index.js +0 -15
  307. package/App/Shared/Components/Header/index.story.js +0 -143
  308. package/App/Shared/Components/InformationTag/InformationTag.js +0 -155
  309. package/App/Shared/Components/LicenseNotice/LicenseNotice.js +0 -148
  310. package/App/Shared/Components/LicenseNotice/index.js +0 -15
  311. package/App/Shared/Components/LoadConfiguration/index.js +0 -218
  312. package/App/Shared/Components/MessageBox/index.js +0 -84
  313. package/App/Shared/Components/MessageBox/index.story.js +0 -49
  314. package/App/Shared/Components/Notification/index.js +0 -105
  315. package/App/Shared/Components/Notification/index.story.js +0 -55
  316. package/App/Shared/Components/PdfDownload/index.js +0 -150
  317. package/App/Shared/Components/PlusMinusInput/index.js +0 -118
  318. package/App/Shared/Components/PriceList/index.js +0 -237
  319. package/App/Shared/Components/PriceList/index.story.js +0 -114
  320. package/App/Shared/Components/PriceOverview/index.js +0 -177
  321. package/App/Shared/Components/PriceOverview/index.story.js +0 -215
  322. package/App/Shared/Components/ProductVariant/Image.js +0 -75
  323. package/App/Shared/Components/ProductVariant/Styles.scss +0 -11
  324. package/App/Shared/Components/ProductVariant/index.js +0 -477
  325. package/App/Shared/Components/ProductVariant/index.story.js +0 -283
  326. package/App/Shared/Components/Progress/Progress.js +0 -59
  327. package/App/Shared/Components/ReceiveOfferForm/index.js +0 -432
  328. package/App/Shared/Components/ReceiveOfferForm/index.story.js +0 -32
  329. package/App/Shared/Components/ReceiveOfferForm/index.test.js +0 -36
  330. package/App/Shared/Components/SaveConfiguration/index.js +0 -286
  331. package/App/Shared/Components/SendEmail/index.js +0 -103
  332. package/App/Shared/Components/Stepper/index.js +0 -136
  333. package/App/Shared/Components/Stepper/index.story.js +0 -38
  334. package/App/Shared/Components/ToolbarList/index.js +0 -231
  335. package/App/Shared/Components/ToolbarList/index.story.js +0 -33
  336. package/App/Shared/Components/VariantChooser/index.js +0 -270
  337. package/App/Shared/Components/VariantChooser/index.story.js +0 -100
  338. package/App/Shared/Containers/AlertMessages.js +0 -37
  339. package/App/Shared/Containers/AmountPrice/AmountPriceAdminareaWrapper.js +0 -40
  340. package/App/Shared/Containers/AmountPrice/index.js +0 -284
  341. package/App/Shared/Containers/BulkNames.js +0 -310
  342. package/App/Shared/Containers/Error.js +0 -37
  343. package/App/Shared/Containers/GlobalLoader.js +0 -25
  344. package/App/Shared/Containers/Header/index.js +0 -178
  345. package/App/Shared/Containers/LicenseNotice/LicenseNotice.js +0 -26
  346. package/App/Shared/Containers/LicenseNotice/index.js +0 -15
  347. package/App/Shared/Containers/LoadConfiguration/LoadConfiguration.js +0 -146
  348. package/App/Shared/Containers/LoadConfiguration/index.js +0 -15
  349. package/App/Shared/Containers/PdfDownload/index.js +0 -39
  350. package/App/Shared/Containers/ProductVariant/ProductVariant.js +0 -339
  351. package/App/Shared/Containers/ProductVariant/index.js +0 -15
  352. package/App/Shared/Containers/SaveConfiguration.js +0 -49
  353. package/App/Shared/Containers/SendEmail/SendEmail.js +0 -45
  354. package/App/Shared/Containers/SendEmail/index.js +0 -15
  355. package/App/Shared/Providers/DefaultCanvasProvider.js +0 -86
  356. package/App/Storage.js +0 -17
  357. package/App/Store.js +0 -87
  358. package/App/Styles.scss +0 -0
  359. package/App/Translations.js +0 -88
  360. package/App/Utils/createMessageInterface.js +0 -52
  361. package/App/Utils/customClassName.js +0 -12
  362. package/App/Utils/getContrastText.js +0 -27
  363. package/App/Utils/getImageUrl.js +0 -32
  364. package/App/Variables.scss +0 -84
  365. package/App/configuration.js +0 -421
  366. package/App/index.js +0 -52
  367. package/App/initServices.js +0 -67
  368. package/App/setup.js +0 -22
  369. package/App/versionInfo.js +0 -8
  370. package/Framework/Api.js +0 -178
  371. package/Framework/ComponentContainer.js +0 -165
  372. package/Framework/Components/Carousel/Styles.scss +0 -85
  373. package/Framework/Components/Carousel/index.js +0 -322
  374. package/Framework/Components/Dialog/Style.scss +0 -79
  375. package/Framework/Components/Dialog/index.js +0 -721
  376. package/Framework/Components/DialogSelect/Styles.scss +0 -53
  377. package/Framework/Components/DialogSelect/index.js +0 -331
  378. package/Framework/Components/Input/index.js +0 -147
  379. package/Framework/Components/LoadingOverlay/Styles.scss +0 -37
  380. package/Framework/Components/LoadingOverlay/index.js +0 -33
  381. package/Framework/Components/Markdown/index.js +0 -62
  382. package/Framework/Components/Mobile/index.js +0 -33
  383. package/Framework/CustomError.js +0 -51
  384. package/Framework/Helpers/TransitionDetect.js +0 -116
  385. package/Framework/Helpers/isLandscapeMobile.js +0 -14
  386. package/Framework/Helpers/isMobileDevice.js +0 -17
  387. package/Framework/Helpers/isMobileSize.js +0 -13
  388. package/Framework/Mixins.scss +0 -235
  389. package/Framework/Services/AbstractAdminareaCommunicationService.js +0 -48
  390. package/Framework/Services/AbstractAsyncService.js +0 -44
  391. package/Framework/Services/AbstractConfiguratorService.js +0 -47
  392. package/Framework/Services/AbstractInteractionService.js +0 -50
  393. package/Framework/Services/AbstractStoreService.js +0 -42
  394. package/Framework/Services/AbstractUIService.js +0 -53
  395. package/Framework/Services/AbstractVisualizationService.js +0 -47
  396. package/Framework/Services/AsyncService.js +0 -93
  397. package/Framework/Services/StoreService.js +0 -237
  398. package/Framework/Variables.scss +0 -22
  399. package/Framework/bindDecorator.js +0 -173
  400. package/Framework/i18n.js +0 -383
  401. package/Resources/Icons/MaterialUI/Icons/AddCircle.js +0 -13
  402. package/Resources/Icons/MaterialUI/Icons/RemoveCircle.js +0 -13
  403. package/Resources/Icons/MaterialUI/fontFace.scss +0 -37
  404. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.eot +0 -0
  405. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.svg +0 -2373
  406. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.ttf +0 -0
  407. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff +0 -0
  408. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff2 +0 -0
  409. package/Resources/Icons/fonts/ionicons.eot +0 -0
  410. package/Resources/Icons/fonts/ionicons.svg +0 -2230
  411. package/Resources/Icons/fonts/ionicons.ttf +0 -0
  412. package/Resources/Icons/fonts/ionicons.woff +0 -0
  413. package/Resources/Icons/ionicons.scss +0 -1489
  414. package/Resources/Icons/ioniconsExtend.scss +0 -1469
  415. package/Resources/Icons/v4/fontFace.scss +0 -11
  416. package/Resources/Icons/v4/fonts/ionicons.eot +0 -0
  417. package/Resources/Icons/v4/fonts/ionicons.svg +0 -2090
  418. package/Resources/Icons/v4/fonts/ionicons.ttf +0 -0
  419. package/Resources/Icons/v4/fonts/ionicons.woff +0 -0
  420. package/Resources/Icons/v4/fonts/ionicons.woff2 +0 -0
  421. package/Resources/Icons/v4/icons.scss +0 -15
  422. package/Resources/Icons/v4/iconsExtend.scss +0 -7
  423. package/Resources/Images/designer_placeholder_logo.svg +0 -1
  424. package/Resources/Masks/circle.svg +0 -4
  425. package/Shared/Components/CustomDialog.js +0 -132
  426. package/Shared/Components/CustomDialogSelect.js +0 -161
  427. package/Shared/Components/MainButton.js +0 -81
  428. package/Shared/ErrorTypes/DeferredError.js +0 -51
  429. package/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +0 -60
  430. package/Shared/HOCs/ResizeDetect/ResizeDetect.js +0 -217
  431. package/Shared/HOCs/getDisplayName.js +0 -10
  432. package/Shared/HOCs/withFixedChangeHandler.js +0 -46
  433. package/Shared/PropTypes/ReactComponent.js +0 -13
  434. package/Shared/Styles/absoluteCenter.js +0 -17
  435. package/Utils/Array/isIdentical.js +0 -38
  436. package/Utils/Async/AsyncManager.js +0 -128
  437. package/Utils/Async/Deferred.js +0 -146
  438. package/Utils/Async/ObjectLock.js +0 -38
  439. package/Utils/Decorators/Observable.js +0 -130
  440. package/Utils/Dev/HOCs/withFilePicker.js +0 -101
  441. package/Utils/Dev/isDev.js +0 -21
  442. package/Utils/Events/pointerEvent.js +0 -199
  443. package/Utils/Events/preventEventDoubling.js +0 -23
  444. package/Utils/Function/cached.js +0 -64
  445. package/Utils/Function/createDebounceManager.js +0 -77
  446. package/Utils/Function/createSelector.js +0 -62
  447. package/Utils/Function/memoize.js +0 -46
  448. package/Utils/Function/sendMessage.js +0 -22
  449. package/Utils/Helper/createSelectionRangeMemo.js +0 -45
  450. package/Utils/Immutable/set.js +0 -81
  451. package/Utils/Math/conversions.js +0 -13
  452. package/Utils/Math/isPositiveNumber.js +0 -12
  453. package/Utils/Redux/createActionWithGlobalState.js +0 -23
  454. package/Utils/Styles/combineMediaQueries.js +0 -24
  455. package/Utils/Styles/createCheckerBoardBackground.js +0 -22
  456. package/Utils/Test/CallOrderChecker.js +0 -29
  457. package/Utils/Test/createStoreProvider.js +0 -33
  458. package/Utils/Test/formDataToJSON.js +0 -20
  459. package/Utils/Test/mountWithState.js +0 -40
  460. package/index.js +0 -8
@@ -0,0 +1,68 @@
1
+ /* eslint no-console: 0 */
2
+
3
+ /**
4
+ * A tool to copy local modifications of local packages (graphics editor and visualization component)
5
+ * over to the node_modules of this project in order to test them in the integrated environment.
6
+ * This script is made only for development purposes, does not replace the package version update in package.json.
7
+ *
8
+ * It uses the configuration file localPackages.json (should be placed in the project root)
9
+ * Example for localPackages.json:
10
+ * {
11
+ * "visualization": { // alias of the package
12
+ * "path": "../visualization_component", // location in the local file system, relative to the project path
13
+ * "name": "redhotmagma-visualization" // name of the package in package.json
14
+ * },
15
+ * ...
16
+ * }
17
+ * Usage of the script:
18
+ * node .\scripts\updateLocalPackages.js // update all local dependencies listed in localPackages.json
19
+ * node .\scripts\updateLocalPackages.js visualization // update only a single package identified by its alias
20
+ *
21
+ * @author boda@redhotmagma.de (2019.09.24)
22
+ */
23
+
24
+ const { resolve } = require('path');
25
+ const { cpDirDeep } = require('./utils/fileSystem');
26
+
27
+ const _alias = process.argv[2];
28
+
29
+ try {
30
+ let items = require('../localPackages.json');
31
+ if (_alias && _alias.length) {
32
+ const selectedItem = items[_alias];
33
+ if (!selectedItem) {
34
+ console.log('Package not found:', _alias);
35
+ console.log('Available packages:');
36
+ console.table(items);
37
+ process.exit(0);
38
+ } else {
39
+ items = { [_alias]: selectedItem };
40
+ }
41
+ }
42
+ // eslint-disable-next-line no-unused-vars
43
+ for (let [alias, { path, name }] of Object.entries(items)) {
44
+ console.log(`Updating package: ${name} -> ${path}`);
45
+ updatePackage({ name, path });
46
+ }
47
+ } catch (e) {
48
+ console.error(e);
49
+ }
50
+
51
+ function updatePackage(options = {}) {
52
+ const { name, path, buildScript = 'npm run package', libDir = 'lib' } = options;
53
+ const cwd = process.cwd();
54
+ const projectPath = resolve(cwd, path);
55
+ const packagePath = resolve(cwd, 'node_modules', name);
56
+ try {
57
+ const { exec } = require('child_process');
58
+ const childProcess = exec(buildScript, { cwd: projectPath });
59
+ childProcess.stdout.pipe(process.stdout);
60
+ childProcess.stderr.pipe(process.stderr);
61
+ childProcess.on('close', code => {
62
+ console.log(`child process exited with code ${code}`);
63
+ cpDirDeep(resolve(projectPath, libDir), packagePath);
64
+ });
65
+ } catch (e) {
66
+ console.error(e);
67
+ }
68
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * These utils are made to simplify querying process information for the node scripts.
3
+ *
4
+ * @author boda@redhotmagma.de
5
+ */
6
+
7
+ /**
8
+ * Checks if the current installation process is a dependency installation
9
+ * @return {boolean}
10
+ */
11
+ function isDependency() {
12
+ // if the path of the initial directory contains 'node_modules', it's probably installed as a dependency
13
+ const { INIT_CWD } = process.env;
14
+ return INIT_CWD.indexOf('node_modules') !== -1;
15
+ }
16
+
17
+ module.exports = {
18
+ isDependency,
19
+ };
@@ -37,7 +37,7 @@ $font-color: #282828;
37
37
  }
38
38
 
39
39
  .error-icon {
40
- background: url('res/error_gears.png');
40
+ background: url('./res/error_gears.png');
41
41
  background-size: 100% 100%;
42
42
  height: 20vh;
43
43
  width: 20vh;
@@ -109,7 +109,6 @@ const styles = theme => {
109
109
  '&.selected': {
110
110
  backgroundColor: '#d8d8d8',
111
111
  },
112
- tapHighlightColor: theme.tapHighlightColor,
113
112
  },
114
113
  text: {
115
114
  float: 'left',
@@ -4,7 +4,7 @@ import { mount, render } from 'enzyme';
4
4
  import { Provider } from 'react-redux';
5
5
  import { noop } from 'lodash';
6
6
  import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
7
- import Option from './index';
7
+ import Option from '../Option';
8
8
 
9
9
  const reducer = (state = {}, action) => {
10
10
  return { ...action, ...state };
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import OptionAmount from './index';
2
+ import OptionAmount from '../OptionAmount';
3
3
  import { mount, render } from 'enzyme';
4
4
  import { act } from 'react-dom/test-utils';
5
5
  import { TextField } from '@material-ui/core';
@@ -274,6 +274,8 @@ class Optiondetail extends React.Component {
274
274
  const { loading, loadingContainerHeight } = this.state;
275
275
  const showNav = _.isArray(options) && options.length > 1;
276
276
  const detailImage = details.detailImage;
277
+ const query = new URLSearchParams(location.search);
278
+ const hidePrices = query.has('_hide_prices') && query.get('_hide_prices') === '1';
277
279
 
278
280
  const detailsContent = (
279
281
  <div>
@@ -287,9 +289,11 @@ class Optiondetail extends React.Component {
287
289
  {details.abstract}
288
290
  </Markdown>
289
291
  )}
290
- <Typography component="div" variant="body2" className={classes.priceFormatted}>
291
- {details.priceFormatted}
292
- </Typography>
292
+ {!hidePrices && (
293
+ <Typography component="div" variant="body2" className={classes.priceFormatted}>
294
+ {details.priceFormatted}
295
+ </Typography>
296
+ )}
293
297
  {details.description && (
294
298
  <Markdown
295
299
  MdComponent={Typography}
@@ -108,7 +108,6 @@ export const StyledProductPart = withStyles(
108
108
  display: 'flex',
109
109
  flexDirection: 'row-reverse',
110
110
  },
111
- tapHighlightColor: theme.tapHighlightColor,
112
111
  },
113
112
  content: {
114
113
  alignItems: 'center',
@@ -4,7 +4,7 @@ import { Provider } from 'react-redux';
4
4
  import { mount, render } from 'enzyme';
5
5
  import { noop } from 'lodash';
6
6
  import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
7
- import ProductPart from './index';
7
+ import ProductPart from '../ProductPart';
8
8
 
9
9
  const initialState = {
10
10
  displaySwitchedOptions: false,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import ServiceLocator from 'App/ServiceLocator';
4
- import AddGalleryImage from './index';
4
+ import AddGalleryImage from './';
5
5
  import blueImg from './res/blau.jpg';
6
6
  import greyIMG from './res/grau.jpg';
7
7
  import redIMG from './res/rot.jpg';
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import { noop } from 'lodash';
4
4
  import { mount, render } from 'enzyme';
5
- import ColorPalettes from './index';
5
+ import ColorPalettes from '../ColorPalettes';
6
6
 
7
7
  const colorPalettes = {
8
8
  colorPalettes: [
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import { noop } from 'lodash';
4
4
  import { mount, render } from 'enzyme';
5
- import DesignAreaControlbox from './index';
5
+ import DesignAreaControlbox from '../DesignAreaControlbox';
6
6
  import MenuItem from '@material-ui/core/MenuItem';
7
7
  import ServiceLocator from 'App/ServiceLocator';
8
8
 
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { noop } from 'lodash';
4
4
  import { mount, render } from 'enzyme';
5
5
  import MenuItem from '@material-ui/core/MenuItem';
6
- import TextControlbox from './index';
6
+ import TextControlbox from '../TextControlbox';
7
7
  import ServiceLocator from 'App/ServiceLocator';
8
8
 
9
9
  const mockedFontsList = [
@@ -6,13 +6,7 @@ import Api from 'Framework/Api';
6
6
  import { createActionWithGlobalState } from 'Utils/Redux/createActionWithGlobalState';
7
7
  import { getConf } from '../../configuration';
8
8
  import { Services } from '../../ServiceLocator';
9
- import {
10
- dismissError,
11
- reportConfigurationNotFoundError,
12
- reportError,
13
- setVisible,
14
- setWorkInProgress,
15
- } from '../UI/Actions';
9
+ import { dismissError, reportError, setVisible, setWorkInProgress } from '../UI/Actions';
16
10
  import { fetchFonts } from '../../Reducers/Fonts/Actions';
17
11
  import { addImagesFromDesignArea } from '../../Reducers/ImageGallery/Actions';
18
12
  import {
@@ -633,13 +627,9 @@ export const fetchInitialConfiguration = () => (dispatch, getState) => {
633
627
  const defaultLoadIdentifier = getConf('defaultLoadIdentifier');
634
628
 
635
629
  if (loadCode) {
636
- // Load the configuration by code
630
+ // Load the options by code
637
631
  return dispatch(fetchConfigurationByCode(loadCode)).then(configuration => {
638
- if (configuration.error) {
639
- dispatch(reportConfigurationNotFoundError(t('loadConfiguration.error.loadingFailed')));
640
- } else {
641
- Services.analytics.triggerEvent(EventTypes.load_item, configuration.data.item.identifier);
642
- }
632
+ Services.analytics.triggerEvent(EventTypes.load_item, configuration.data.item.identifier);
643
633
  });
644
634
  } else if (getConf('loadVariantsFirst')) {
645
635
  // Load variants by identifier
@@ -19,7 +19,6 @@ import { getConfigurator, getSelectedVariantIdentifier } from '../Configurator/S
19
19
  import { compareDesignAreasBySize } from '../DesignView/Transformers';
20
20
  import { isImageCompatible } from '../ImageGallery/Selectors';
21
21
  import { recalculateSingleDesignArea } from './Transformers';
22
- import { CONFIGURATION_NOT_FOUND_ERROR } from '../UI/Actions';
23
22
  export * from './MaskSelectors';
24
23
 
25
24
  export function getDesignProductionMethods(state) {
@@ -300,14 +299,13 @@ function isIt500Error({ ui: { error } }) {
300
299
 
301
300
  function isConfigurationNotFound({ ui: { error } }) {
302
301
  return (
303
- (error &&
304
- error.source &&
305
- error.response &&
306
- error.response.status === 404 &&
307
- ['loadbyitemidentifier', 'getconfigurationvariants'].indexOf(
308
- (error.source.url || error.source).split('/')[1]
309
- ) !== -1) ||
310
- (error && error.type === CONFIGURATION_NOT_FOUND_ERROR)
302
+ error &&
303
+ error.source &&
304
+ error.response &&
305
+ error.response.status === 404 &&
306
+ ['loadbyitemidentifier', 'getconfigurationvariants'].indexOf(
307
+ (error.source.url || error.source).split('/')[1]
308
+ ) !== -1
311
309
  );
312
310
  }
313
311
 
@@ -2,7 +2,8 @@ export const actionTypes = {
2
2
  SELECT_DESIGN_VIEW: 'DesignView/SELECT_DESIGN_VIEW',
3
3
  };
4
4
 
5
- export const selectDesignView = designViewIdentifier => ({
5
+ export const selectDesignView = (designViewIdentifier, options) => ({
6
6
  type: actionTypes.SELECT_DESIGN_VIEW,
7
7
  designViewIdentifier,
8
+ options,
8
9
  });
@@ -1,4 +1,4 @@
1
- import { actionTypes as designViewActionTypes } from './Actions';
1
+ import { actionTypes as designViewActionTypes } from '../DesignView/Actions';
2
2
  import find from 'lodash/find';
3
3
  import get from 'lodash/get';
4
4
  import * as configuratorActionTypes from '../Configurator/Actions';
@@ -16,6 +16,7 @@ const prepareDesignViews = designViews =>
16
16
  const initialState = {
17
17
  designViews: [],
18
18
  selectedDesignView: {},
19
+ lastSelectedDesignView: {},
19
20
  autogeneratedDesignViews: [],
20
21
  viewThumbnailImages: [],
21
22
  };
@@ -23,11 +24,13 @@ const initialState = {
23
24
  export default function designViewReducer(state = initialState, action = {}) {
24
25
  switch (action.type) {
25
26
  case designViewActionTypes.SELECT_DESIGN_VIEW: {
26
- const { designViewIdentifier } = action;
27
+ const { designViewIdentifier, options = {} } = action;
27
28
  const designView = find(state.designViews, { identifier: designViewIdentifier });
29
+ const { saveLast = true } = options;
28
30
  return {
29
31
  ...state,
30
32
  selectedDesignView: designView,
33
+ ...(saveLast ? { lastSelectedDesignView: designView } : null),
31
34
  };
32
35
  }
33
36
  case configuratorActionTypes.RECEIVE_DESIGNER_DATA: {
@@ -59,12 +62,14 @@ export default function designViewReducer(state = initialState, action = {}) {
59
62
  ...state,
60
63
  designViews: prepareDesignViews(updatedDesignViews),
61
64
  selectedDesignView: {},
65
+ lastSelectedDesignView: {},
62
66
  };
63
67
  }
64
68
  return {
65
69
  ...state,
66
70
  designViews: prepareDesignViews(designViews),
67
71
  selectedDesignView: {},
72
+ lastSelectedDesignView: {},
68
73
  };
69
74
  }
70
75
  case configuratorActionTypes.RECEIVE_CONFIGURATION: {
@@ -82,6 +87,7 @@ export default function designViewReducer(state = initialState, action = {}) {
82
87
  ...state,
83
88
  designViews: [],
84
89
  selectedDesignView: {},
90
+ lastSelectedDesignView: {},
85
91
  autogeneratedDesignViews,
86
92
  viewThumbnailImages,
87
93
  };
@@ -93,6 +99,7 @@ export default function designViewReducer(state = initialState, action = {}) {
93
99
  ...state,
94
100
  designViews: autogeneratedDesignViews,
95
101
  selectedDesignView,
102
+ lastSelectedDesignView: selectedDesignView,
96
103
  autogeneratedDesignViews,
97
104
  viewThumbnailImages,
98
105
  };
@@ -102,6 +109,7 @@ export default function designViewReducer(state = initialState, action = {}) {
102
109
  ...state,
103
110
  designViews: [],
104
111
  selectedDesignView: {},
112
+ lastSelectedDesignView: {},
105
113
  autogeneratedDesignViews: [],
106
114
  viewThumbnailImages: [],
107
115
  };
@@ -91,4 +91,5 @@ export const simpleState = {
91
91
  selectedDesignView: {
92
92
  identifier: 'front_view',
93
93
  },
94
+ lastSelectedDesignView: {},
94
95
  };
@@ -13,6 +13,7 @@ describe('Reducers/DesignView.designViewReducer', () => {
13
13
  expect(initialState).toEqual({
14
14
  designViews: [],
15
15
  selectedDesignView: {},
16
+ lastSelectedDesignView: {},
16
17
  autogeneratedDesignViews: [],
17
18
  viewThumbnailImages: [],
18
19
  });
@@ -41,6 +42,23 @@ describe('Reducers/DesignView.designViewReducer', () => {
41
42
  const action = selectDesignView(identifier);
42
43
  const state = designViewReducer(initialState, action);
43
44
  expect(state.selectedDesignView.identifier).toBe(identifier);
45
+ expect(state.lastSelectedDesignView.identifier).toBe(identifier);
46
+ });
47
+ test('returns the correct state for SELECT_DESIGN_VIEW action, if the { saveLast: false } option is provided', () => {
48
+ // select a view directly (eg. user clicks the view buttons)
49
+ const initialState = designViewReducer(simpleState);
50
+ const selectedDesignViewIdentifier = simpleState.designViews[1].identifier;
51
+ const selectDesignViewAction = selectDesignView(selectedDesignViewIdentifier);
52
+ const state1 = designViewReducer(initialState, selectDesignViewAction);
53
+ expect(state1.selectedDesignView.identifier).toBe(selectedDesignViewIdentifier);
54
+ expect(state1.lastSelectedDesignView.identifier).toBe(selectedDesignViewIdentifier);
55
+
56
+ // select a view automatically (eg. user switches to a component which has a linked view)
57
+ const autoDesignViewIdentifier = simpleState.designViews[0].identifier;
58
+ const action = selectDesignView(autoDesignViewIdentifier, { saveLast: false });
59
+ const state2 = designViewReducer(state1, action);
60
+ expect(state2.selectedDesignView.identifier).toBe(autoDesignViewIdentifier);
61
+ expect(state2.lastSelectedDesignView.identifier).toBe(selectedDesignViewIdentifier);
44
62
  });
45
63
  test('clears the selectedDesignView for RECEIVE_CONFIGURATION action', () => {
46
64
  const initialState = designViewReducer(simpleState);
@@ -52,6 +70,7 @@ describe('Reducers/DesignView.designViewReducer', () => {
52
70
  const action = { type: RECEIVE_CONFIGURATION };
53
71
  const state = designViewReducer(stateWithSelectedDesignView, action);
54
72
  expect(state.selectedDesignView).toEqual({});
73
+ expect(state.lastSelectedDesignView).toEqual({});
55
74
  });
56
75
  test(
57
76
  'creates the designViews list and sets the selectedDesignView if visualizationData is available ' +
@@ -81,6 +100,9 @@ describe('Reducers/DesignView.designViewReducer', () => {
81
100
  expect(state.selectedDesignView).toEqual({
82
101
  identifier: 'front',
83
102
  });
103
+ expect(state.lastSelectedDesignView).toEqual({
104
+ identifier: 'front',
105
+ });
84
106
  }
85
107
  );
86
108
 
@@ -1,6 +1,6 @@
1
1
  import { createDefaultReceiver, fetchDataAsync, postDataAsync } from '../Actions';
2
2
  import { createAsyncTask } from '../UI/Actions';
3
- import { getUserImagesByDesignArea } from './Selectors';
3
+ import { getUserImagesByDesignArea } from '../ImageGallery/Selectors';
4
4
  import { calculateImageBrightness } from '../../Services/DesignDataService';
5
5
  import { getImageUsageInfo } from './Selectors';
6
6
  import { getCurrentCompatibilityInfoHash } from '../DesignArea/Selectors';
@@ -6,7 +6,6 @@ export const CUSTOM_ERROR = 'ui/CUSTOM_ERROR';
6
6
  export const DISMISS_ERROR = 'ui/DISMISS_ERROR';
7
7
  export const SHOW_ALERT = 'ui/SHOW_ALERT';
8
8
  export const DISMISS_ALERT = 'ui/DISMISS_ALERT';
9
- export const CONFIGURATION_NOT_FOUND_ERROR = 'ui/CONFIGURATION_NOT_FOUND';
10
9
 
11
10
  export const setVisible = (name, show) => (dispatch, getState) => {
12
11
  if (getState().ui.visibilityMap[name] !== show) {
@@ -35,13 +34,6 @@ export const reportError = errorMessage => ({
35
34
  },
36
35
  });
37
36
 
38
- export const reportConfigurationNotFoundError = errorMessage => ({
39
- type: CONFIGURATION_NOT_FOUND_ERROR,
40
- error: {
41
- message: errorMessage,
42
- },
43
- });
44
-
45
37
  export const dismissError = () => ({
46
38
  type: DISMISS_ERROR,
47
39
  });
@@ -5,7 +5,6 @@ import {
5
5
  DISMISS_ERROR,
6
6
  SHOW_ALERT,
7
7
  DISMISS_ALERT,
8
- CONFIGURATION_NOT_FOUND_ERROR,
9
8
  } from './Actions';
10
9
 
11
10
  import * as apiActions from '../Actions';
@@ -21,8 +20,7 @@ export function errorHandler(state, action) {
21
20
  switch (action.type) {
22
21
  case apiActions.NETWORK_ERROR:
23
22
  case apiActions.REQUEST_ERROR:
24
- case CUSTOM_ERROR:
25
- case CONFIGURATION_NOT_FOUND_ERROR: {
23
+ case CUSTOM_ERROR: {
26
24
  return {
27
25
  ...state,
28
26
  error: {
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import { noop } from 'lodash';
4
4
  import { mount, render } from 'enzyme';
5
- import CalculationWidget from './index';
5
+ import CalculationWidget from '../CalculationWidget';
6
6
  import MenuItem from '@material-ui/core/MenuItem';
7
7
  import { Select, ExpansionPanel, ExpansionPanelDetails } from '@material-ui/core';
8
8
  import ServiceLocator from 'App/ServiceLocator';
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import noop from 'lodash/noop';
4
4
  import { render } from 'enzyme';
5
- import DesignApproval from './index';
5
+ import DesignApproval from '../DesignApproval';
6
6
 
7
7
  it('renders correctly without error', () => {
8
8
  const tree = render(<DesignApproval checked={true} error={false} link={'fakeLink'} onChange={noop} />);
@@ -1,7 +1,7 @@
1
1
  /* eslint-env jest */
2
2
  import React from 'react';
3
3
  import { mount, render } from 'enzyme';
4
- import FullScreenView from './index';
4
+ import FullScreenView from '../FullScreenView';
5
5
 
6
6
  describe('Screens/Configurator/Components/FullScreenView', () => {
7
7
  it('renders correctly', () => {
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import AmountPrice from 'App/Shared/Containers/AmountPrice';
4
4
  import ProductVariant from 'App/Shared/Containers/ProductVariant';
5
- import ConfigurationModeSwitch from './ConfigurationModeSwitch';
5
+ import ConfigurationModeSwitch from '../Containers/ConfigurationModeSwitch';
6
6
  import { makeStyles } from '@material-ui/core';
7
7
 
8
8
  export const useStyles = makeStyles(
@@ -1,5 +1,5 @@
1
1
  import containerConnect from 'Framework/ComponentContainer';
2
- import Confirm from '../Components/Confirm';
2
+ import Confirm from '../Components/Confirm/index';
3
3
  import { hideConfirm } from '../../../Reducers/Confirm/Actions';
4
4
 
5
5
  const mapStateToProps = ({ confirm }) => {
@@ -11,7 +11,7 @@ import * as uiActions from 'App/Reducers/UI/Actions';
11
11
  import Error from '../../Shared/Containers/Error';
12
12
  import ErrorPage from '../../Error/ProductionErrorPage';
13
13
  import AlertMessages from 'App/Shared/Containers/AlertMessages';
14
- import LandscapeInformation from './Components/LandscapeInformation';
14
+ import LandscapeInformation from '../Configurator/Components/LandscapeInformation';
15
15
  import Confirm from './Containers/Confirm';
16
16
  import SaveConfiguration from 'App/Shared/Containers/SaveConfiguration';
17
17
  import SendEmail from 'App/Shared/Containers/SendEmail';
@@ -84,7 +84,6 @@ const defaultTheme = {
84
84
  lighter: '#C4C4C4',
85
85
  },
86
86
  },
87
- tapHighlightColor: 'transparent',
88
87
  overrides: {
89
88
  MuiFormLabel: {
90
89
  root: {
@@ -178,4 +178,57 @@ describe('DesignDataService.selectViewForComponent', () => {
178
178
 
179
179
  expect(srv.selectDesignView).toHaveBeenCalledWith('front_view', { saveLast: false });
180
180
  });
181
+
182
+ it('calls selectDesignView with the identifier of lastSelectedDesignView if no creatorView is referenced by the selected component', () => {
183
+ const componentWithNoCreatorView = {
184
+ identifier: 'id1',
185
+ title: 'title1',
186
+ creatorView: null,
187
+ };
188
+
189
+ ServiceLocator.provide(
190
+ new (class StoreService {
191
+ static serviceName = 'StoreService';
192
+ state = {
193
+ designArea: {
194
+ filteredDesignAreas: mockDesignAreas,
195
+ selectedDesignArea: {},
196
+ },
197
+ designView: {
198
+ designViews: [
199
+ { identifier: 'front_view' },
200
+ { identifier: 'side_view' },
201
+ { identifier: 'top_view' },
202
+ ],
203
+ selectedDesignView: {
204
+ identifier: 'side_view',
205
+ },
206
+ lastSelectedDesignView: {
207
+ identifier: 'top_view',
208
+ },
209
+ },
210
+ configurator: {
211
+ configuration: {
212
+ optionclassifications: [
213
+ componentWithNoCreatorView,
214
+ {
215
+ identifier: 'id2',
216
+ title: 'title2',
217
+ creatorView: { identifier: 'side_view' },
218
+ },
219
+ ],
220
+ },
221
+ },
222
+ };
223
+ dispatch = v => v;
224
+ })()
225
+ );
226
+ const srv = new DesignDataService();
227
+
228
+ srv.selectDesignView = jest.fn();
229
+
230
+ srv.selectViewForComponent(componentWithNoCreatorView);
231
+
232
+ expect(srv.selectDesignView).toHaveBeenCalledWith('top_view', { saveLast: false });
233
+ });
181
234
  });
@@ -1,5 +1,5 @@
1
1
  import { containerConnect } from 'Framework/ComponentContainer';
2
- import AlertDialog from '../Components/AlertDialog';
2
+ import AlertDialog from '../Components/AlertDialog/index';
3
3
  import { Services } from 'App/ServiceLocator';
4
4
  import { t } from 'Framework/i18n';
5
5
 
@@ -2,7 +2,7 @@ import AmountPrice, {
2
2
  createAmountPropsFromState,
3
3
  createPricePropsFromState,
4
4
  showProductVariantsForItem,
5
- } from './index';
5
+ } from '../AmountPrice';
6
6
  import mountWithState from 'Utils/Test/mountWithState';
7
7
  import ServiceLocator from 'App/ServiceLocator';
8
8
 
@@ -1,5 +1,5 @@
1
1
  import { containerConnect } from 'Framework/ComponentContainer';
2
- import AlertDialog from '../Components/AlertDialog';
2
+ import AlertDialog from '../Components/AlertDialog/index';
3
3
  import { Services } from 'App/ServiceLocator';
4
4
  import { t } from 'Framework/i18n';
5
5
 
@@ -1,7 +1,7 @@
1
1
  import CircularProgress from '@material-ui/core/CircularProgress/CircularProgress';
2
2
  import containerConnect from 'Framework/ComponentContainer';
3
3
  import { Services } from 'App/ServiceLocator';
4
- import SaveConfiguration from '../Components/SaveConfiguration';
4
+ import SaveConfiguration from '../Components/SaveConfiguration/index';
5
5
  import { getShareUrl } from '../../Reducers/Configurator/Selectors';
6
6
 
7
7
  const mapStateToProps = ({ ui, configurator }) => ({
@@ -1,5 +1,5 @@
1
1
  import { use } from 'Framework/i18n';
2
- import { isProduction } from './configuration';
2
+ import { isProduction } from '../App/configuration';
3
3
  export async function initLanguage(lang) {
4
4
  // ensure that the filename always has an underscore and no dash
5
5
  const fileKey = lang.replace('-', '_');