@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
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import withStyles from '@material-ui/core/styles/withStyles';
3
- import ListItemText from '@material-ui/core/ListItemText/ListItemText';
4
- import MenuItem from '@material-ui/core/MenuItem/MenuItem';
5
- import Select from '@material-ui/core/Select/Select';
6
- import FormControl from '@material-ui/core/FormControl/FormControl';
7
- import Input from '@material-ui/core/Input/Input';
8
- import Typography from '@material-ui/core/Typography/Typography';
2
+ import { withStyles } from '@material-ui/core/styles';
3
+ import ListItemText from '@material-ui/core/ListItemText';
4
+ import MenuItem from '@material-ui/core/MenuItem';
5
+ import Select from '@material-ui/core/Select';
6
+ import FormControl from '@material-ui/core/FormControl';
7
+ import Input from '@material-ui/core/Input';
8
+ import Typography from '@material-ui/core/Typography';
9
9
  import AnalyticsWrapper from '../Analytics/AnalyticsWrapper';
10
10
  import PropTypes from 'prop-types';
11
11
 
@@ -25,7 +25,10 @@ import { getConf } from '../../../configuration';
25
25
  import { isBulkNamesSelected } from '../../../Reducers/DesignArea/Selectors';
26
26
  import AmountPrice from '../../Components/AmountPrice';
27
27
  import { AmountPriceAdminareaWrapper } from './AmountPriceAdminareaWrapper';
28
- import { getAvailableConfigurationModes } from '../../../Reducers/ConfigurationMode/Selectors';
28
+ import {
29
+ getAvailableConfigurationModes,
30
+ isCreatorModeSelected,
31
+ } from '../../../Reducers/ConfigurationMode/Selectors';
29
32
 
30
33
  export const showProductVariantsForItem = createSelector(getItem, item => findMaxChildrenCount(item) > 1);
31
34
 
@@ -189,6 +192,7 @@ const mapStateToProps = ({ configurator, configurationMode, ui }) => {
189
192
  showCallToAction: query.has('_cta_element')
190
193
  ? query.get('_cta_element') !== 'none'
191
194
  : showCallToAction(configurator),
195
+ skipPriceOverview: query.has('_skipcartoverlay'),
192
196
  displayAcceptDesign: !designerAvailable ? false : getConf('displayAcceptDesign', true),
193
197
  isBulkNamesSelected: isBulkNamesSelected(configurator),
194
198
  bulkNameErrors: isBulkNamesSelected(configurator) ? createBulkNameErrors(configurator) : null,
@@ -198,6 +202,7 @@ const mapStateToProps = ({ configurator, configurationMode, ui }) => {
198
202
  addToCartPopUpLoader: getVisibilityMapProperty(ui, 'addToCartPopUpLoader'),
199
203
  userComment: get(configurator, 'configuration.customdata.comment', ''),
200
204
  userConfiguration: getConfiguration(configurator),
205
+ isCreator: isCreatorModeSelected({ configurationMode }),
201
206
  };
202
207
  };
203
208
 
@@ -215,6 +220,7 @@ const mapDispatchToProps = () => ({
215
220
  onShowChange: on => Services.configurator.setCalculationAutoResolveEnabled(!on),
216
221
  validateConfiguration: () =>
217
222
  getConf('validateBeforeCTA') && Services.configurator.validateConfiguration(),
223
+ toggleGlobalLoader: on => Services.ui.toggle('globalLoader', on),
218
224
  });
219
225
 
220
226
  export default containerConnect(mapStateToProps, mapDispatchToProps);
@@ -1,4 +1,4 @@
1
- import CircularProgress from '@material-ui/core/CircularProgress/CircularProgress';
1
+ import CircularProgress from '@material-ui/core/CircularProgress';
2
2
  import containerConnect from 'Framework/ComponentContainer';
3
3
  import { Services } from 'App/ServiceLocator';
4
4
  import SaveConfiguration from '../Components/SaveConfiguration';
@@ -1,9 +1,8 @@
1
- import { pathParams } from './pathParams';
2
1
  import Api from '../../../Framework/Api';
3
2
 
4
- export const lazyFetch = async (url, params, fallbackValue) => {
3
+ export const lazyFetch = async (requestConfig, fallbackValue) => {
5
4
  try {
6
- return await Api.request(pathParams(url, params));
5
+ return await Api.request(requestConfig);
7
6
  } catch (e) {
8
7
  // eslint-disable-next-line no-console
9
8
  console.error(e);
@@ -1,8 +1,11 @@
1
- import _ from 'lodash';
1
+ import get from 'lodash/get';
2
+ import find from 'lodash/find';
3
+ import first from 'lodash/first';
4
+ import merge from 'lodash/merge';
5
+ import set from 'lodash/set';
2
6
  import Api from '../Framework/Api';
3
7
  import { initLanguage } from './Translations';
4
8
  import hyphensDeDE from 'hyphenated-de';
5
- import hyphensEnGB from 'hyphenated-en-gb';
6
9
 
7
10
  import { setStateChangeReducers, setSubReducers } from './Reducers/Configurator/Reducer';
8
11
 
@@ -62,9 +65,11 @@ let applicationConfiguration = {
62
65
  // the available locales
63
66
  locales: [{ code: 'de_DE', preferred: true }, { code: 'en_GB' }],
64
67
 
68
+ // although our locale is en-GB we use American English patterns for hyphenation
69
+ // to reduce bundle size because they are already included in hyphenated/react-hyphen
65
70
  hyphenations: {
66
71
  'de-DE': hyphensDeDE,
67
- 'en-GB': hyphensEnGB,
72
+ 'en-GB': 'en-US',
68
73
  },
69
74
 
70
75
  // array of configuration save types
@@ -272,9 +277,9 @@ function preventLeavingPage() {
272
277
  export function init() {
273
278
  const externalConfig = window.externalConfiguration;
274
279
  if (externalConfig) {
275
- applicationConfiguration = _.merge(applicationConfiguration, externalConfig);
280
+ applicationConfiguration = merge(applicationConfiguration, externalConfig);
276
281
  }
277
- applicationConfiguration = _.merge(applicationConfiguration, getQueryParams());
282
+ applicationConfiguration = merge(applicationConfiguration, getQueryParams());
278
283
 
279
284
  Api.init(applicationConfiguration.network);
280
285
 
@@ -376,7 +381,7 @@ export function getQueryParams() {
376
381
  }
377
382
 
378
383
  export function setConfiguration(customApplicationConfiguration) {
379
- applicationConfiguration = _.merge(
384
+ applicationConfiguration = merge(
380
385
  applicationConfiguration,
381
386
  customApplicationConfiguration,
382
387
  getQueryParams()
@@ -390,7 +395,7 @@ export function setConfiguration(customApplicationConfiguration) {
390
395
  }
391
396
 
392
397
  // set possible sub reducers and state change reducers
393
- if (_.get(applicationConfiguration, 'reducers.configurator')) {
398
+ if (get(applicationConfiguration, 'reducers.configurator')) {
394
399
  const { subReducers, stateChangeReducers } = applicationConfiguration.reducers.configurator;
395
400
  setSubReducers(subReducers);
396
401
  setStateChangeReducers(stateChangeReducers);
@@ -405,9 +410,9 @@ function setLanguage() {
405
410
  }
406
411
  // if there is a locales array in the configuration...
407
412
  else if (applicationConfiguration.locales) {
408
- const browserLanguage = _.get(navigator, 'languages[0]', navigator.language).replace('-', '_');
409
- const matchToBrowserLanguage = _.find(applicationConfiguration.locales, { code: browserLanguage });
410
- const preferred = _.find(applicationConfiguration.locales, { preferred: true });
413
+ const browserLanguage = get(navigator, 'languages[0]', navigator.language).replace('-', '_');
414
+ const matchToBrowserLanguage = find(applicationConfiguration.locales, { code: browserLanguage });
415
+ const preferred = find(applicationConfiguration.locales, { preferred: true });
411
416
 
412
417
  // if there is a match with the browser language use that
413
418
  if (matchToBrowserLanguage) {
@@ -419,14 +424,14 @@ function setLanguage() {
419
424
  }
420
425
  // otherwise use the first from the locales list
421
426
  else {
422
- language = _.first(applicationConfiguration.locales).code;
427
+ language = first(applicationConfiguration.locales).code;
423
428
  }
424
429
  }
425
430
  // we have no info about the language, so try to use the browser language
426
431
  else {
427
- language = _.get(navigator, 'languages[0]', navigator.language).replace('-', '_') || 'de_DE';
432
+ language = get(navigator, 'languages[0]', navigator.language).replace('-', '_') || 'de_DE';
428
433
  }
429
- if (!_.find(applicationConfiguration.locales, { code: language })) {
434
+ if (!find(applicationConfiguration.locales, { code: language })) {
430
435
  // eslint-disable-next-line no-console
431
436
  console.warn(`The selected language (${language}) is not listed in the available languages!`);
432
437
  }
@@ -439,11 +444,11 @@ function setLanguage() {
439
444
  export const setCustomApplicationConfiguration = setConfiguration;
440
445
 
441
446
  export function getConf(path, dflt) {
442
- return path ? _.get(applicationConfiguration, path, dflt) : applicationConfiguration;
447
+ return path ? get(applicationConfiguration, path, dflt) : applicationConfiguration;
443
448
  }
444
449
 
445
450
  export function setConf(path, value) {
446
- _.set(applicationConfiguration, path, value);
451
+ set(applicationConfiguration, path, value);
447
452
  }
448
453
 
449
454
  // backward compatibility alias
package/src/App/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import ReactDOM from 'react-dom';
2
+ import { createRoot } from 'react-dom/client';
3
3
  import { Provider } from 'react-redux';
4
4
 
5
5
  import './setup';
@@ -17,7 +17,7 @@ export const App = () => (
17
17
  );
18
18
 
19
19
  export const render = () => {
20
- ReactDOM.render(<App />, document.getElementById('root'));
20
+ createRoot(document.getElementById('root')).render(<App />);
21
21
  };
22
22
 
23
23
  export const main = () => {
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import qs from 'qs';
3
- import _ from 'lodash';
3
+ import isFunction from 'lodash/isFunction';
4
4
 
5
5
  const CancelToken = axios.CancelToken;
6
6
  let source = CancelToken.source();
@@ -15,10 +15,10 @@ const ax = axios.create({
15
15
  export class Api {
16
16
  static request(config, successCb, failCb) {
17
17
  const promise = ax.request(config);
18
- if (_.isFunction(successCb)) {
18
+ if (isFunction(successCb)) {
19
19
  promise.then(successCb);
20
20
  }
21
- if (_.isFunction(failCb)) {
21
+ if (isFunction(failCb)) {
22
22
  promise.catch(failCb);
23
23
  }
24
24
  return promise;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Swipeable } from 'react-swipeable';
3
- import _ from 'lodash';
3
+ import isEqual from 'lodash/isEqual';
4
4
 
5
5
  import './Styles.scss';
6
6
  import PropTypes from 'prop-types';
@@ -121,7 +121,7 @@ class Carousel extends React.Component {
121
121
  nextActive,
122
122
  showArrows,
123
123
  };
124
- if (!_.isEqual(state, this.state)) {
124
+ if (!isEqual(state, this.state)) {
125
125
  this.setState(state);
126
126
  }
127
127
  };
@@ -1,10 +1,13 @@
1
1
  import React from 'react';
2
- import _ from 'lodash';
2
+ import debounce from 'lodash/debounce';
3
+ import isEqual from 'lodash/isEqual';
4
+ import isFunction from 'lodash/isFunction';
5
+ import isNumber from 'lodash/isNumber';
6
+ import Typography from '@material-ui/core/Typography';
3
7
 
4
8
  import { T } from '../../i18n';
5
9
  import PropTypes from 'prop-types';
6
10
  import './Style.scss';
7
- import { Typography } from '@material-ui/core';
8
11
 
9
12
  const whichTransitionEvent = function() {
10
13
  let t;
@@ -94,7 +97,7 @@ export default class Dialog extends React.Component {
94
97
 
95
98
  const position = this.calculatePosition();
96
99
  // check the position after rendering
97
- if (!_.isEqual(position, this.position)) {
100
+ if (!isEqual(position, this.position)) {
98
101
  // rerender if not correct
99
102
  this.position = position;
100
103
 
@@ -109,12 +112,12 @@ export default class Dialog extends React.Component {
109
112
  componentWillReceiveProps(props) {
110
113
  let shouldRecalculate = this.props.show ^ props.show; // was or will be shown
111
114
 
112
- if (!_.isEqual(props, this.props) && props.show) {
115
+ if (!isEqual(props, this.props) && props.show) {
113
116
  if (!this.props.show) {
114
117
  this.zIndex = Dialog.zIndex += 2;
115
118
  }
116
119
 
117
- const relativeElement = _.isFunction(props.relativeTo) ? props.relativeTo() : props.relativeTo;
120
+ const relativeElement = isFunction(props.relativeTo) ? props.relativeTo() : props.relativeTo;
118
121
 
119
122
  if (relativeElement && relativeElement !== this.lastRelativeElement) {
120
123
  this.lastRelativeElement = relativeElement;
@@ -151,7 +154,7 @@ export default class Dialog extends React.Component {
151
154
 
152
155
  componentDidMount() {
153
156
  const { relativeTo, show } = this.props;
154
- const relativeElement = _.isFunction(relativeTo) ? relativeTo() : relativeTo;
157
+ const relativeElement = isFunction(relativeTo) ? relativeTo() : relativeTo;
155
158
  if (relativeElement && show) {
156
159
  this.lastRelativeElement = relativeElement;
157
160
  }
@@ -164,7 +167,7 @@ export default class Dialog extends React.Component {
164
167
  // check the position after rendering
165
168
  const position = this.calculatePosition();
166
169
  // check the position after rendering
167
- if (!_.isEqual(position, this.position)) {
170
+ if (!isEqual(position, this.position)) {
168
171
  // rerender if not correct
169
172
  this.position = position;
170
173
  this.forceUpdate();
@@ -176,13 +179,13 @@ export default class Dialog extends React.Component {
176
179
  const updateIfPositionChanged = () => {
177
180
  const position = this.calculatePosition();
178
181
  // check the position after rendering
179
- if (!_.isEqual(position, this.position)) {
182
+ if (!isEqual(position, this.position)) {
180
183
  // rerender if not correct
181
184
  this.position = position;
182
185
  this.forceUpdate();
183
186
  }
184
187
  };
185
- const updateDebounced = _.debounce(updateIfPositionChanged, 50);
188
+ const updateDebounced = debounce(updateIfPositionChanged, 50);
186
189
 
187
190
  // create an observer instance
188
191
  this.observer = new MutationObserver(mutations => {
@@ -285,7 +288,7 @@ export default class Dialog extends React.Component {
285
288
  (/%$/.test(dialogStyle.maxHeight)
286
289
  ? (parent.clientHeight * parseInt(dialogStyle.maxHeight)) / 100
287
290
  : parseInt(dialogStyle.maxHeight)) - dialogTitleBar.current.offsetHeight;
288
- if (!_.isNumber(maxContentHeight)) {
291
+ if (!isNumber(maxContentHeight)) {
289
292
  // fallback to parents height
290
293
  maxContentHeight = parent.clientHeight;
291
294
  }
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import clsx from 'clsx';
4
- import _ from 'lodash';
4
+ import isArray from 'lodash/isEqual';
5
+ import isFunction from 'lodash/isFunction';
5
6
  import Typography from '@material-ui/core/Typography';
6
7
  import Dialog from '../Dialog';
7
8
 
@@ -69,7 +70,7 @@ export default class DialogSelect extends React.Component {
69
70
  }
70
71
 
71
72
  isSelected(option) {
72
- if (_.isFunction(this.props.isSelected)) {
73
+ if (isFunction(this.props.isSelected)) {
73
74
  return this.props.isSelected(option);
74
75
  }
75
76
 
@@ -80,7 +81,7 @@ export default class DialogSelect extends React.Component {
80
81
  }
81
82
 
82
83
  // if there are more values in the selection
83
- if (_.isArray(this.props.value)) {
84
+ if (isArray(this.props.value)) {
84
85
  for (let v of this.props.value) {
85
86
  if (valueProperty) {
86
87
  if (v[valueProperty] === option[valueProperty]) {
@@ -187,7 +188,7 @@ export default class DialogSelect extends React.Component {
187
188
 
188
189
  const relativeElement = relativeTo || this.control;
189
190
 
190
- const show = _.isArray(options) && options.length > 0 && this.state.isOpen;
191
+ const show = isArray(options) && options.length > 0 && this.state.isOpen;
191
192
 
192
193
  const disabled = this.props.disabled || false;
193
194
 
@@ -214,7 +215,7 @@ export default class DialogSelect extends React.Component {
214
215
  overlay={overlay}
215
216
  overlayClassName="dialogselect-overlay"
216
217
  >
217
- {_.isArray(options) && options.map((option, key) => this.renderOption(option, key))}
218
+ {isArray(options) && options.map((option, key) => this.renderOption(option, key))}
218
219
  </Dialog>
219
220
  </div>
220
221
  );
@@ -2,7 +2,10 @@ import { loadTranslations, setLocale, Translate, Localize, I18n } from 'react-re
2
2
  import React, { Component } from 'react';
3
3
  import ReactDOMServer from 'react-dom/server';
4
4
  import { connect } from 'react-redux';
5
- import _ from 'lodash';
5
+ import get from 'lodash/get';
6
+ import isObject from 'lodash/isObject';
7
+ import isString from 'lodash/isString';
8
+ import merge from 'lodash/merge';
6
9
  import Hyphen from 'react-hyphen';
7
10
  import { getConf } from '../App/configuration';
8
11
 
@@ -62,7 +65,7 @@ export const mergeTranslations = translationsObject => {
62
65
  if (!store) {
63
66
  throw new Error('Store must be set up first!');
64
67
  }
65
- const translations = _.merge(store.getState().i18n.translations || {}, translationsObject);
68
+ const translations = merge(store.getState().i18n.translations || {}, translationsObject);
66
69
  store.dispatch(loadTranslations(translations));
67
70
  };
68
71
 
@@ -101,10 +104,10 @@ export const T = (value, props = {}) => {
101
104
  const { escapeDot, ...otherProps } = props;
102
105
  if (value === undefined) {
103
106
  return value;
104
- } else if (escapeDot && _.isString(value)) {
107
+ } else if (escapeDot && isString(value)) {
105
108
  value = value.replace(/\./g, '[DOT]');
106
109
  }
107
- if (_.isObject(otherProps)) {
110
+ if (isObject(otherProps)) {
108
111
  for (let p in otherProps) {
109
112
  // if the replacement is a jsx element, just render it in place
110
113
  if (React.isValidElement(otherProps[p])) {
@@ -128,7 +131,7 @@ export const L = (value, props = {}) => {
128
131
  const { escapeDot, ...otherProps } = props;
129
132
  if (value === undefined) {
130
133
  return value;
131
- } else if (escapeDot && _.isString(value)) {
134
+ } else if (escapeDot && isString(value)) {
132
135
  value = value.replace(/\./g, '[DOT]');
133
136
  }
134
137
  return <Localize value={'' + value} {...otherProps} />;
@@ -137,7 +140,11 @@ export const L = (value, props = {}) => {
137
140
  export const Hyphenated = connect(({ i18n: { locale } }) => ({ locale }))(({ children, locale }) => {
138
141
  const hyphenations = getConf('hyphenations');
139
142
  if (hyphenations[locale]) {
140
- return <Hyphen language={hyphenations[locale]}>{children}</Hyphen>;
143
+ return locale === 'en-GB' ? (
144
+ <Hyphen>{children}</Hyphen>
145
+ ) : (
146
+ <Hyphen language={hyphenations[locale]}>{children}</Hyphen>
147
+ );
141
148
  }
142
149
  return children;
143
150
  });
@@ -154,7 +161,7 @@ export function use(translationsObject) {
154
161
  mergeTranslations(translationsObject);
155
162
  } else {
156
163
  // merge with pre-init translations
157
- _.merge(translations, translationsObject);
164
+ merge(translations, translationsObject);
158
165
  }
159
166
  }
160
167
 
@@ -174,7 +181,7 @@ export const translationExists = key => {
174
181
  return false;
175
182
  }
176
183
 
177
- const translation = _.get(translations, key, null);
184
+ const translation = get(translations, key, null);
178
185
 
179
186
  return translation !== null;
180
187
  };
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { withStyles, withWidth } from '@material-ui/core';
2
+ import { withStyles } from '@material-ui/core/styles';
3
+ import withWidth from '@material-ui/core/withWidth';
3
4
  import Dialog from '@material-ui/core/Dialog';
4
5
  import DialogTitle from '@material-ui/core/DialogTitle';
5
6
  import Icon from '@material-ui/core/Icon';
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import Dialog from 'Framework/Components/Dialog';
3
3
 
4
- import { isArray } from 'lodash';
4
+ import isArray from 'lodash/isArray';
5
5
  import PropTypes from 'prop-types';
6
6
  import DialogContent from '@material-ui/core/DialogContent';
7
7
  import LoadingOverlay from 'Framework/Components/LoadingOverlay';
8
- import { makeStyles } from '@material-ui/core';
8
+ import { makeStyles } from '@material-ui/core/styles';
9
9
 
10
10
  const useStyles = makeStyles(
11
11
  theme => {
@@ -1,5 +1,5 @@
1
- import { withStyles } from '@material-ui/core';
2
- import Button from '@material-ui/core/Button/Button';
1
+ import { withStyles } from '@material-ui/core/styles';
2
+ import Button from '@material-ui/core/Button';
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
 
@@ -1,7 +1,12 @@
1
1
  import React from 'react';
2
2
  import CustomDialog from '../CustomDialog';
3
3
  import { render } from 'enzyme';
4
- import { DialogTitle, Icon, Typography, DialogContent, DialogActions, Button } from '@material-ui/core';
4
+ import DialogTitle from '@material-ui/core/DialogTitle';
5
+ import Icon from '@material-ui/core/Icon';
6
+ import Typography from '@material-ui/core/Typography';
7
+ import DialogContent from '@material-ui/core/DialogContent';
8
+ import DialogActions from '@material-ui/core/DialogActions';
9
+ import Button from '@material-ui/core/Button';
5
10
 
6
11
  HTMLCanvasElement.prototype.getContext = () => {
7
12
  // return whatever getContext has to return
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { withResizeDetect, withResizeDetectWrapper } from './ResizeDetect';
3
- import withStyles from '@material-ui/core/styles/withStyles';
3
+ import { withStyles } from '@material-ui/core/styles';
4
4
 
5
5
  const styles = {
6
6
  test: {
@@ -24,6 +24,7 @@ export class Observable {
24
24
  eventName,
25
25
  callback,
26
26
  });
27
+ return () => this.off(eventName, callback);
27
28
  }
28
29
 
29
30
  off(eventName, callback) {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { mount } from 'enzyme';
2
+ import mount from 'enzyme/mount';
3
3
  import { Provider } from 'react-redux';
4
4
  import configureStore from 'redux-mock-store';
5
5
  const mockStore = configureStore();