@configuratorware/configurator-frontendgui 1.28.5 → 1.29.2

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 (482) hide show
  1. package/App/Constant.js +73 -0
  2. package/App/Error/DevelopmentErrorPage/index.js +74 -0
  3. package/App/Error/ErrorBoundary.js +98 -0
  4. package/App/Error/ProductionErrorPage/Style.scss +47 -0
  5. package/App/Error/ProductionErrorPage/index.js +43 -0
  6. package/App/Error/ProductionErrorPage/index.story.js +13 -0
  7. package/App/Error/ProductionErrorPage/res/error_gears.png +0 -0
  8. package/App/Frame.js +95 -0
  9. package/App/Modules/Creator/Components/ConfigurationvariantItem/Styles.scss +33 -0
  10. package/App/Modules/Creator/Components/ConfigurationvariantItem/index.js +118 -0
  11. package/App/Modules/Creator/Components/ConfigurationvariantSelection/Styles.scss +47 -0
  12. package/App/Modules/Creator/Components/ConfigurationvariantSelection/index.js +130 -0
  13. package/App/Modules/Creator/Components/CustomTitleEditor/Styles.scss +43 -0
  14. package/App/Modules/Creator/Components/CustomTitleEditor/index.js +144 -0
  15. package/App/Modules/Creator/Components/ExternalVisualization/index.js +140 -0
  16. package/App/Modules/Creator/Components/FastConfiguration/SelectableRow.js +128 -0
  17. package/App/Modules/Creator/Components/FastConfiguration/Styles.scss +53 -0
  18. package/App/Modules/Creator/Components/FastConfiguration/index.js +280 -0
  19. package/App/Modules/Creator/Components/FastConfigurationRow/Styles.scss +45 -0
  20. package/App/Modules/Creator/Components/FastConfigurationRow/index.js +78 -0
  21. package/App/Modules/Creator/Components/FastConfigurationSelect/Styles.scss +35 -0
  22. package/App/Modules/Creator/Components/FastConfigurationSelect/index.js +251 -0
  23. package/App/Modules/Creator/Components/FormattedNumber/index.js +45 -0
  24. package/App/Modules/Creator/Components/FormattedPrice/index.js +57 -0
  25. package/App/Modules/Creator/Components/FullScreenView/FullScreenView.js +104 -0
  26. package/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +186 -0
  27. package/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +182 -0
  28. package/App/Modules/Creator/Components/Incompatibility/RuleComponent.js +88 -0
  29. package/App/Modules/Creator/Components/Incompatibility/index.js +253 -0
  30. package/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +164 -0
  31. package/App/Modules/Creator/Components/LoginForm/Styles.scss +9 -0
  32. package/App/Modules/Creator/Components/LoginForm/index.js +129 -0
  33. package/App/Modules/Creator/Components/Option/index.js +545 -0
  34. package/App/Modules/Creator/Components/Option/index.story.js +154 -0
  35. package/App/Modules/Creator/Components/OptionAmount/index.js +236 -0
  36. package/App/Modules/Creator/Components/OptionGroup/index.js +55 -0
  37. package/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +173 -0
  38. package/App/Modules/Creator/Components/Optiondetail/index.js +499 -0
  39. package/App/Modules/Creator/Components/Optiondetail/index.story.js +117 -0
  40. package/App/Modules/Creator/Components/OptionsList/index.js +193 -0
  41. package/App/Modules/Creator/Components/Price/Styles.scss +3 -0
  42. package/App/Modules/Creator/Components/Price/index.js +79 -0
  43. package/App/Modules/Creator/Components/ProductPart/index.js +187 -0
  44. package/App/Modules/Creator/Components/ProductPart/index.story.js +88 -0
  45. package/App/Modules/Creator/Components/ProductPartsList/index.js +153 -0
  46. package/App/Modules/Creator/Components/ProductPartsList/index.story.js +101 -0
  47. package/App/Modules/Creator/Components/SavedConfiguration/Styles.scss +19 -0
  48. package/App/Modules/Creator/Components/SavedConfiguration/index.js +82 -0
  49. package/App/Modules/Creator/Components/ShareConfiguration/Styles.scss +23 -0
  50. package/App/Modules/Creator/Components/ShareConfiguration/index.js +224 -0
  51. package/App/Modules/Creator/Components/StockInformation/index.js +93 -0
  52. package/App/Modules/Creator/Components/StoreConfigurationForm/Styles.scss +5 -0
  53. package/App/Modules/Creator/Components/StoreConfigurationForm/index.js +123 -0
  54. package/App/Modules/Creator/Components/Tools/Styles.scss +44 -0
  55. package/App/Modules/Creator/Components/Tools/index.js +102 -0
  56. package/App/Modules/Creator/Components/ValidationResult/Styles.scss +45 -0
  57. package/App/Modules/Creator/Components/ValidationResult/index.js +165 -0
  58. package/App/Modules/Creator/Components/index.js +84 -0
  59. package/App/Modules/Creator/Containers/AmountPrice/index.js +26 -0
  60. package/App/Modules/Creator/Containers/ConfigurationvariantSelection/index.js +60 -0
  61. package/App/Modules/Creator/Containers/CustomTitleEditor/index.js +52 -0
  62. package/App/Modules/Creator/Containers/FastConfiguration/index.js +62 -0
  63. package/App/Modules/Creator/Containers/FormattedPrice/index.js +31 -0
  64. package/App/Modules/Creator/Containers/Incompatibility/index.js +40 -0
  65. package/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +89 -0
  66. package/App/Modules/Creator/Containers/LoadingOverlay/index.js +26 -0
  67. package/App/Modules/Creator/Containers/Optiondetail/index.js +48 -0
  68. package/App/Modules/Creator/Containers/OptionsList/index.js +49 -0
  69. package/App/Modules/Creator/Containers/ProductPart/index.js +26 -0
  70. package/App/Modules/Creator/Containers/ProductPartsList/index.js +50 -0
  71. package/App/Modules/Creator/Containers/SavedConfigurationContainer/index.js +25 -0
  72. package/App/Modules/Creator/Containers/ShareConfiguration/index.js +42 -0
  73. package/App/Modules/Creator/Containers/StockInformation/index.js +33 -0
  74. package/App/Modules/Creator/Containers/Tools/index.js +44 -0
  75. package/App/Modules/Creator/Containers/ValidationResult/index.js +34 -0
  76. package/App/Modules/Creator/Containers/index.js +175 -0
  77. package/App/Modules/Creator/CreatorScreen.js +307 -0
  78. package/App/Modules/Creator/Layouts/DefaultLayout.js +260 -0
  79. package/App/Modules/Creator/Styles.scss +216 -0
  80. package/App/Modules/Designer/Components/AddGalleryImage/index.js +234 -0
  81. package/App/Modules/Designer/Components/AddGalleryImage/index.story.js +94 -0
  82. package/App/Modules/Designer/Components/AddGalleryImage/index.test.js +151 -0
  83. package/App/Modules/Designer/Components/AddVisualElement/Styles.scss +0 -0
  84. package/App/Modules/Designer/Components/AddVisualElement/index.js +278 -0
  85. package/App/Modules/Designer/Components/AddVisualElement/index.story.js +24 -0
  86. package/App/Modules/Designer/Components/AddVisualElement/index.test.js +47 -0
  87. package/App/Modules/Designer/Components/CloseDesignEditor/index.js +130 -0
  88. package/App/Modules/Designer/Components/CloseGraphicsEditorButton/index.js +54 -0
  89. package/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +175 -0
  90. package/App/Modules/Designer/Components/ColorPalettes/index.js +814 -0
  91. package/App/Modules/Designer/Components/ColorPalettes/index.story.js +158 -0
  92. package/App/Modules/Designer/Components/ColorPalettes/index.test.js +150 -0
  93. package/App/Modules/Designer/Components/DesignAreaControlbox/Styles.scss +0 -0
  94. package/App/Modules/Designer/Components/DesignAreaControlbox/index.js +467 -0
  95. package/App/Modules/Designer/Components/DesignAreaControlbox/index.story.js +272 -0
  96. package/App/Modules/Designer/Components/DesignAreaControlbox/index.test.js +164 -0
  97. package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +162 -0
  98. package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +425 -0
  99. package/App/Modules/Designer/Components/DesignerSelectionToolbox/fontItemUtils.js +48 -0
  100. package/App/Modules/Designer/Components/Dialog/index.js +125 -0
  101. package/App/Modules/Designer/Components/EditDesignButton/index.js +128 -0
  102. package/App/Modules/Designer/Components/FeedbackNotice/index.js +110 -0
  103. package/App/Modules/Designer/Components/FeedbackNotice/index.test.js +16 -0
  104. package/App/Modules/Designer/Components/FullScreenView/FullScreenView.js +63 -0
  105. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.dev.js +32 -0
  106. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +430 -0
  107. package/App/Modules/Designer/Components/ImageColorize/index.js +636 -0
  108. package/App/Modules/Designer/Components/ImageColorize/index.story.js +73 -0
  109. package/App/Modules/Designer/Components/ImageControlbox/index.js +302 -0
  110. package/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +171 -0
  111. package/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +478 -0
  112. package/App/Modules/Designer/Components/ImageEditDialog/index.js +716 -0
  113. package/App/Modules/Designer/Components/ImageEditDialog/res/baseline_colorize_black_24dp.png +0 -0
  114. package/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
  115. package/App/Modules/Designer/Components/ImageLibraryFilter/index.js +179 -0
  116. package/App/Modules/Designer/Components/ImageLibraryThumbnail/Styles.scss +14 -0
  117. package/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +165 -0
  118. package/App/Modules/Designer/Components/ObjectTools/index.js +146 -0
  119. package/App/Modules/Designer/Components/Select/index.js +171 -0
  120. package/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +48 -0
  121. package/App/Modules/Designer/Components/TextControlbox/index.js +656 -0
  122. package/App/Modules/Designer/Components/TextControlbox/index.story.js +109 -0
  123. package/App/Modules/Designer/Components/TextControlbox/index.test.js +172 -0
  124. package/App/Modules/Designer/Containers/AddGalleryImage.js +90 -0
  125. package/App/Modules/Designer/Containers/AddVisualElement.js +166 -0
  126. package/App/Modules/Designer/Containers/CloseDesignEditor.js +32 -0
  127. package/App/Modules/Designer/Containers/CloseGraphicsEditorButton.js +32 -0
  128. package/App/Modules/Designer/Containers/ColorPalettes.js +145 -0
  129. package/App/Modules/Designer/Containers/DesignAreaControlbox.js +54 -0
  130. package/App/Modules/Designer/Containers/Designer.js +37 -0
  131. package/App/Modules/Designer/Containers/DesignerSelectionToolbox.js +116 -0
  132. package/App/Modules/Designer/Containers/EditDesignButton.js +35 -0
  133. package/App/Modules/Designer/Containers/ImageEditDialog.js +1130 -0
  134. package/App/Modules/Designer/Designer.js +231 -0
  135. package/App/Modules/Designer/DesignerScreen.js +255 -0
  136. package/App/Modules/Designer/DesignerUI.js +241 -0
  137. package/App/Modules/Designer/Layouts/DefaultLayout.js +221 -0
  138. package/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +50 -0
  139. package/App/Modules/Designer/Layouts/PopupAreaProvider.js +186 -0
  140. package/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +53 -0
  141. package/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +106 -0
  142. package/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +64 -0
  143. package/App/Modules/Designer/Utils/FontFaceRepository.js +82 -0
  144. package/App/Modules/Designer/Utils/ImageEditUtils.js +104 -0
  145. package/App/Modules/Designer/Utils/Transformers.js +164 -0
  146. package/App/Modules/Designer/setupDesigner.js +182 -0
  147. package/App/Modules/Designer/withActiveCanvas.js +136 -0
  148. package/App/Modules/Visualization/AlignTargetContainer.js +55 -0
  149. package/App/Modules/Visualization/CreatorAlignTarget.js +41 -0
  150. package/App/Modules/Visualization/DefaultVisualizationProvider.js +105 -0
  151. package/App/Modules/Visualization/DesignerAlignTarget.js +45 -0
  152. package/App/Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj.js +20 -0
  153. package/App/Reducers/Actions.js +297 -0
  154. package/App/Reducers/ConfigurationMode/Actions.js +21 -0
  155. package/App/Reducers/ConfigurationMode/Reducer.js +80 -0
  156. package/App/Reducers/ConfigurationMode/Selectors.js +84 -0
  157. package/App/Reducers/Configurator/Actions.js +1417 -0
  158. package/App/Reducers/Configurator/AttributeSelectors.js +32 -0
  159. package/App/Reducers/Configurator/Modifiers.js +35 -0
  160. package/App/Reducers/Configurator/Reducer.js +639 -0
  161. package/App/Reducers/Configurator/Selectors.js +242 -0
  162. package/App/Reducers/Confirm/Actions.js +84 -0
  163. package/App/Reducers/Confirm/Reducer.js +30 -0
  164. package/App/Reducers/DesignArea/Actions.js +76 -0
  165. package/App/Reducers/DesignArea/DesignElementSelectors.js +114 -0
  166. package/App/Reducers/DesignArea/MaskSelectors.js +101 -0
  167. package/App/Reducers/DesignArea/Reducer.js +150 -0
  168. package/App/Reducers/DesignArea/Selectors.js +1304 -0
  169. package/App/Reducers/DesignArea/Transformers.js +333 -0
  170. package/App/Reducers/DesignData/Actions.js +232 -0
  171. package/App/Reducers/DesignData/Modifiers.js +328 -0
  172. package/App/Reducers/DesignData/Reducer.js +189 -0
  173. package/App/Reducers/DesignData/Selectors.js +94 -0
  174. package/App/Reducers/DesignData/Transformers.js +27 -0
  175. package/App/Reducers/DesignView/Actions.js +19 -0
  176. package/App/Reducers/DesignView/Reducer.js +165 -0
  177. package/App/Reducers/DesignView/Selectors.js +130 -0
  178. package/App/Reducers/DesignView/Transformers.js +32 -0
  179. package/App/Reducers/Device/Actions.js +16 -0
  180. package/App/Reducers/Device/Reducer.js +51 -0
  181. package/App/Reducers/Fonts/Actions.js +137 -0
  182. package/App/Reducers/Fonts/Reducer.js +39 -0
  183. package/App/Reducers/Fonts/Selectors.js +98 -0
  184. package/App/Reducers/GeneralActions.js +16 -0
  185. package/App/Reducers/ImageGallery/Actions.js +336 -0
  186. package/App/Reducers/ImageGallery/Modifiers.js +67 -0
  187. package/App/Reducers/ImageGallery/Reducer.js +320 -0
  188. package/App/Reducers/ImageGallery/Selectors.js +206 -0
  189. package/App/Reducers/Reducer.js +107 -0
  190. package/App/Reducers/UI/Actions.js +191 -0
  191. package/App/Reducers/UI/Reducer.js +98 -0
  192. package/App/Reducers/UI/Selectors.js +32 -0
  193. package/App/Reducers.js +48 -0
  194. package/App/Routing.js +168 -0
  195. package/App/Screens/Configurator/CalculationWidgetScreen.js +84 -0
  196. package/App/Screens/Configurator/Components/AmountSelection/Styles.scss +17 -0
  197. package/App/Screens/Configurator/Components/AmountSelection/index.js +170 -0
  198. package/App/Screens/Configurator/Components/AmountSelection/index.story.js +36 -0
  199. package/App/Screens/Configurator/Components/CalculationWidget/index.js +652 -0
  200. package/App/Screens/Configurator/Components/CalculationWidget/index.story.js +154 -0
  201. package/App/Screens/Configurator/Components/CalculationWidget/index.test.js +142 -0
  202. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +82 -0
  203. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/index.js +15 -0
  204. package/App/Screens/Configurator/Components/Confirm/Styles.scss +0 -0
  205. package/App/Screens/Configurator/Components/Confirm/index.js +105 -0
  206. package/App/Screens/Configurator/Components/DesignApproval/index.js +76 -0
  207. package/App/Screens/Configurator/Components/DesignApproval/index.story.js +27 -0
  208. package/App/Screens/Configurator/Components/DesignApproval/index.test.js +31 -0
  209. package/App/Screens/Configurator/Components/Error/index.js +106 -0
  210. package/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +96 -0
  211. package/App/Screens/Configurator/Components/FileUpload/FileUploadBase.js +1 -0
  212. package/App/Screens/Configurator/Components/FullScreenView/index.js +304 -0
  213. package/App/Screens/Configurator/Components/FullScreenView/index.test.js +28 -0
  214. package/App/Screens/Configurator/Components/ImageLoader/ImageLoader.js +96 -0
  215. package/App/Screens/Configurator/Components/LandscapeInformation/index.js +75 -0
  216. package/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +35 -0
  217. package/App/Screens/Configurator/Components/PreviewPortal/index.js +249 -0
  218. package/App/Screens/Configurator/Components/Styles.scss +1 -0
  219. package/App/Screens/Configurator/Components/Thumbnail/index.js +394 -0
  220. package/App/Screens/Configurator/Components/Thumbnail/index.test.js +50 -0
  221. package/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +57 -0
  222. package/App/Screens/Configurator/Containers/AmountPrice.js +84 -0
  223. package/App/Screens/Configurator/Containers/CalculationWidget.js +278 -0
  224. package/App/Screens/Configurator/Containers/ConfigurationModeSwitch.js +81 -0
  225. package/App/Screens/Configurator/Containers/Confirm.js +37 -0
  226. package/App/Screens/Configurator/Containers/DesignApproval.js +129 -0
  227. package/App/Screens/Configurator/Containers/FallbackVisualization.js +32 -0
  228. package/App/Screens/Configurator/Containers/FullScreenView.js +47 -0
  229. package/App/Screens/Configurator/Containers/Thumbnail.js +41 -0
  230. package/App/Screens/Configurator/Containers/Visualization.js +13 -0
  231. package/App/Screens/Configurator/DynamicComponents.js +40 -0
  232. package/App/Screens/Configurator/Screen.js +238 -0
  233. package/App/Screens/Configurator/ScreenPropTypes.js +45 -0
  234. package/App/Screens/Configurator/ThemeProvider.js +298 -0
  235. package/App/Screens/DesignerProductPreview/Constants.js +12 -0
  236. package/App/Screens/DesignerProductPreview/DesignerProductPreviewManager.js +554 -0
  237. package/App/Screens/DesignerProductPreview/Screen.js +407 -0
  238. package/App/Screens.js +42 -0
  239. package/App/ServiceLocator.js +309 -0
  240. package/App/Services/AdminareaCommunicationService.js +149 -0
  241. package/App/Services/AnalyticsService.js +403 -0
  242. package/App/Services/ConfiguratorService.js +1166 -0
  243. package/App/Services/DesignDataService.js +3249 -0
  244. package/App/Services/DesignerService.js +496 -0
  245. package/App/Services/InteractionService.js +784 -0
  246. package/App/Services/UIService.js +129 -0
  247. package/App/Services/VisualizationService.js +844 -0
  248. package/App/Shared/Components/AcceptDesign/index.js +166 -0
  249. package/App/Shared/Components/AddToBasket/index.js +194 -0
  250. package/App/Shared/Components/AddToBasket/index.story.js +47 -0
  251. package/App/Shared/Components/AlertDialog/index.js +138 -0
  252. package/App/Shared/Components/AmountInput/Styles.scss +6 -0
  253. package/App/Shared/Components/AmountInput/index.js +296 -0
  254. package/App/Shared/Components/AmountInput/index.story.js +29 -0
  255. package/App/Shared/Components/AmountPrice/index.js +925 -0
  256. package/App/Shared/Components/AmountPrice/index.story.js +112 -0
  257. package/App/Shared/Components/AmountPrice/index.test.js +125 -0
  258. package/App/Shared/Components/Analytics/AnalyticsWrapper.js +49 -0
  259. package/App/Shared/Components/BulkNames/index.js +319 -0
  260. package/App/Shared/Components/CallToAction/index.js +220 -0
  261. package/App/Shared/Components/Header/Header.js +150 -0
  262. package/App/Shared/Components/Header/index.js +15 -0
  263. package/App/Shared/Components/Header/index.story.js +143 -0
  264. package/App/Shared/Components/InformationTag/InformationTag.js +155 -0
  265. package/App/Shared/Components/LicenseNotice/LicenseNotice.js +148 -0
  266. package/App/Shared/Components/LicenseNotice/index.js +15 -0
  267. package/App/Shared/Components/LoadConfiguration/index.js +218 -0
  268. package/App/Shared/Components/MessageBox/index.js +84 -0
  269. package/App/Shared/Components/MessageBox/index.story.js +49 -0
  270. package/App/Shared/Components/Notification/index.js +105 -0
  271. package/App/Shared/Components/Notification/index.story.js +55 -0
  272. package/App/Shared/Components/PdfDownload/index.js +150 -0
  273. package/App/Shared/Components/PlusMinusInput/index.js +118 -0
  274. package/App/Shared/Components/PriceList/index.js +237 -0
  275. package/App/Shared/Components/PriceList/index.story.js +114 -0
  276. package/App/Shared/Components/PriceOverview/index.js +177 -0
  277. package/App/Shared/Components/PriceOverview/index.story.js +215 -0
  278. package/App/Shared/Components/ProductVariant/Image.js +75 -0
  279. package/App/Shared/Components/ProductVariant/Styles.scss +11 -0
  280. package/App/Shared/Components/ProductVariant/index.js +477 -0
  281. package/App/Shared/Components/ProductVariant/index.story.js +283 -0
  282. package/App/Shared/Components/Progress/Progress.js +59 -0
  283. package/App/Shared/Components/ReceiveOfferForm/index.js +432 -0
  284. package/App/Shared/Components/ReceiveOfferForm/index.story.js +32 -0
  285. package/App/Shared/Components/ReceiveOfferForm/index.test.js +36 -0
  286. package/App/Shared/Components/SaveConfiguration/index.js +286 -0
  287. package/App/Shared/Components/SendEmail/index.js +103 -0
  288. package/App/Shared/Components/Stepper/index.js +136 -0
  289. package/App/Shared/Components/Stepper/index.story.js +38 -0
  290. package/App/Shared/Components/ToolbarList/index.js +231 -0
  291. package/App/Shared/Components/ToolbarList/index.story.js +33 -0
  292. package/App/Shared/Components/VariantChooser/index.js +270 -0
  293. package/App/Shared/Components/VariantChooser/index.story.js +100 -0
  294. package/App/Shared/Containers/AlertMessages.js +37 -0
  295. package/App/Shared/Containers/AmountPrice/AmountPriceAdminareaWrapper.js +40 -0
  296. package/App/Shared/Containers/AmountPrice/index.js +284 -0
  297. package/App/Shared/Containers/BulkNames.js +310 -0
  298. package/App/Shared/Containers/Error.js +37 -0
  299. package/App/Shared/Containers/GlobalLoader.js +25 -0
  300. package/App/Shared/Containers/Header/index.js +178 -0
  301. package/App/Shared/Containers/LicenseNotice/LicenseNotice.js +26 -0
  302. package/App/Shared/Containers/LicenseNotice/index.js +15 -0
  303. package/App/Shared/Containers/LoadConfiguration/LoadConfiguration.js +146 -0
  304. package/App/Shared/Containers/LoadConfiguration/index.js +15 -0
  305. package/App/Shared/Containers/PdfDownload/index.js +39 -0
  306. package/App/Shared/Containers/ProductVariant/ProductVariant.js +339 -0
  307. package/App/Shared/Containers/ProductVariant/index.js +15 -0
  308. package/App/Shared/Containers/SaveConfiguration.js +49 -0
  309. package/App/Shared/Containers/SendEmail/SendEmail.js +45 -0
  310. package/App/Shared/Containers/SendEmail/index.js +15 -0
  311. package/App/Shared/Providers/DefaultCanvasProvider.js +86 -0
  312. package/App/Storage.js +17 -0
  313. package/App/Store.js +87 -0
  314. package/App/Styles.scss +0 -0
  315. package/App/Translations.js +88 -0
  316. package/App/Utils/createMessageInterface.js +65 -0
  317. package/App/Utils/customClassName.js +12 -0
  318. package/App/Utils/getContrastText.js +27 -0
  319. package/App/Utils/getImageUrl.js +32 -0
  320. package/App/Variables.scss +84 -0
  321. package/App/configuration.js +421 -0
  322. package/App/index.js +52 -0
  323. package/App/initServices.js +67 -0
  324. package/App/setup.js +22 -0
  325. package/App/versionInfo.js +8 -0
  326. package/Framework/Api.js +178 -0
  327. package/Framework/ComponentContainer.js +165 -0
  328. package/Framework/Components/Carousel/Styles.scss +85 -0
  329. package/Framework/Components/Carousel/index.js +322 -0
  330. package/Framework/Components/Dialog/Style.scss +79 -0
  331. package/Framework/Components/Dialog/index.js +721 -0
  332. package/Framework/Components/DialogSelect/Styles.scss +53 -0
  333. package/Framework/Components/DialogSelect/index.js +331 -0
  334. package/Framework/Components/Input/index.js +147 -0
  335. package/Framework/Components/LoadingOverlay/Styles.scss +37 -0
  336. package/Framework/Components/LoadingOverlay/index.js +33 -0
  337. package/Framework/Components/Markdown/index.js +62 -0
  338. package/Framework/Components/Mobile/index.js +33 -0
  339. package/Framework/CustomError.js +51 -0
  340. package/Framework/Helpers/TransitionDetect.js +116 -0
  341. package/Framework/Helpers/isLandscapeMobile.js +14 -0
  342. package/Framework/Helpers/isMobileDevice.js +17 -0
  343. package/Framework/Helpers/isMobileSize.js +13 -0
  344. package/Framework/Mixins.scss +235 -0
  345. package/Framework/Services/AbstractAdminareaCommunicationService.js +48 -0
  346. package/Framework/Services/AbstractAsyncService.js +44 -0
  347. package/Framework/Services/AbstractConfiguratorService.js +47 -0
  348. package/Framework/Services/AbstractInteractionService.js +50 -0
  349. package/Framework/Services/AbstractStoreService.js +42 -0
  350. package/Framework/Services/AbstractUIService.js +53 -0
  351. package/Framework/Services/AbstractVisualizationService.js +47 -0
  352. package/Framework/Services/AsyncService.js +93 -0
  353. package/Framework/Services/StoreService.js +237 -0
  354. package/Framework/Variables.scss +22 -0
  355. package/Framework/bindDecorator.js +173 -0
  356. package/Framework/i18n.js +382 -0
  357. package/README.md +5 -26
  358. package/Resources/Icons/MaterialUI/Icons/AddCircle.js +13 -0
  359. package/Resources/Icons/MaterialUI/Icons/RemoveCircle.js +13 -0
  360. package/Resources/Icons/MaterialUI/fontFace.scss +37 -0
  361. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.eot +0 -0
  362. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.svg +2373 -0
  363. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.ttf +0 -0
  364. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff +0 -0
  365. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff2 +0 -0
  366. package/Resources/Icons/fonts/ionicons.eot +0 -0
  367. package/Resources/Icons/fonts/ionicons.svg +2230 -0
  368. package/Resources/Icons/fonts/ionicons.ttf +0 -0
  369. package/Resources/Icons/fonts/ionicons.woff +0 -0
  370. package/Resources/Icons/ionicons.scss +1489 -0
  371. package/Resources/Icons/ioniconsExtend.scss +1469 -0
  372. package/Resources/Icons/v4/fontFace.scss +11 -0
  373. package/Resources/Icons/v4/fonts/ionicons.eot +0 -0
  374. package/Resources/Icons/v4/fonts/ionicons.svg +2090 -0
  375. package/Resources/Icons/v4/fonts/ionicons.ttf +0 -0
  376. package/Resources/Icons/v4/fonts/ionicons.woff +0 -0
  377. package/Resources/Icons/v4/fonts/ionicons.woff2 +0 -0
  378. package/Resources/Icons/v4/icons.scss +15 -0
  379. package/Resources/Icons/v4/iconsExtend.scss +7 -0
  380. package/Resources/Images/designer_placeholder_logo.svg +1 -0
  381. package/Resources/Masks/circle.svg +4 -0
  382. package/Shared/Components/CustomDialog.js +133 -0
  383. package/Shared/Components/CustomDialogSelect.js +161 -0
  384. package/Shared/Components/MainButton.js +81 -0
  385. package/Shared/ErrorTypes/DeferredError.js +51 -0
  386. package/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +60 -0
  387. package/Shared/HOCs/ResizeDetect/ResizeDetect.js +217 -0
  388. package/Shared/HOCs/getDisplayName.js +10 -0
  389. package/Shared/HOCs/withFixedChangeHandler.js +46 -0
  390. package/Shared/PropTypes/ReactComponent.js +13 -0
  391. package/Shared/Styles/absoluteCenter.js +17 -0
  392. package/Utils/Array/isIdentical.js +38 -0
  393. package/Utils/Async/AsyncManager.js +128 -0
  394. package/Utils/Async/Deferred.js +145 -0
  395. package/Utils/Async/ObjectLock.js +38 -0
  396. package/Utils/Decorators/Observable.js +130 -0
  397. package/Utils/Dev/HOCs/withFilePicker.js +101 -0
  398. package/Utils/Dev/isDev.js +21 -0
  399. package/Utils/Events/pointerEvent.js +199 -0
  400. package/Utils/Events/preventEventDoubling.js +23 -0
  401. package/Utils/Function/cached.js +64 -0
  402. package/Utils/Function/createDebounceManager.js +77 -0
  403. package/Utils/Function/createSelector.js +62 -0
  404. package/Utils/Function/memoize.js +46 -0
  405. package/Utils/Function/sendMessage.js +22 -0
  406. package/Utils/Helper/createSelectionRangeMemo.js +45 -0
  407. package/Utils/Immutable/set.js +81 -0
  408. package/Utils/Math/conversions.js +13 -0
  409. package/Utils/Math/isPositiveNumber.js +12 -0
  410. package/Utils/Redux/createActionWithGlobalState.js +23 -0
  411. package/Utils/Styles/combineMediaQueries.js +24 -0
  412. package/Utils/Styles/createCheckerBoardBackground.js +22 -0
  413. package/Utils/Test/CallOrderChecker.js +29 -0
  414. package/Utils/Test/createStoreProvider.js +33 -0
  415. package/Utils/Test/formDataToJSON.js +20 -0
  416. package/Utils/Test/mountWithState.js +40 -0
  417. package/index.js +8 -0
  418. package/package.json +22 -103
  419. package/public/translations/de_DE.json +3 -0
  420. package/public/translations/en_GB.json +3 -0
  421. package/scripts/cpPublic.js +3 -3
  422. package/scripts/getDefaultWebpackConfig.js +11 -10
  423. package/src/App/Error/ProductionErrorPage/Style.scss +1 -1
  424. package/src/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +116 -0
  425. package/src/App/Modules/Creator/Components/Incompatibility/index.js +2 -1
  426. package/src/App/Modules/Creator/Components/Option/index.test.js +1 -1
  427. package/src/App/Modules/Creator/Components/OptionAmount/index.test.js +1 -1
  428. package/src/App/Modules/Creator/Components/ProductPart/__snapshots__/index.test.js.snap +33 -10
  429. package/src/App/Modules/Creator/Components/ProductPart/index.js +5 -1
  430. package/src/App/Modules/Creator/Components/ProductPart/index.test.js +14 -1
  431. package/src/App/Modules/Creator/Components/ProductPartsList/index.js +3 -0
  432. package/src/App/Modules/Creator/Containers/ProductPartsList/index.js +1 -0
  433. package/src/App/Modules/Designer/Components/AddGalleryImage/index.story.js +1 -1
  434. package/src/App/Modules/Designer/Components/ColorPalettes/index.test.jsx +1 -1
  435. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.js +21 -4
  436. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.test.jsx +1 -1
  437. package/src/App/Modules/Designer/Components/TextControlbox/index.test.jsx +1 -1
  438. package/src/App/Modules/Designer/Containers/Designer.js +1 -1
  439. package/src/App/Modules/Designer/DesignerScreen.js +32 -8
  440. package/src/App/{Screens/Configurator → Modules/Designer}/DesignerUI.js +42 -26
  441. package/src/App/Modules/Designer/Layouts/DefaultLayout.js +35 -1
  442. package/src/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +18 -0
  443. package/src/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +54 -0
  444. package/src/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +38 -0
  445. package/src/App/Reducers/DesignView/Actions.js +1 -2
  446. package/src/App/Reducers/DesignView/Reducer.js +2 -10
  447. package/src/App/Reducers/DesignView/__mocks__/designerViewData.js +0 -1
  448. package/src/App/Reducers/DesignView/__tests__/Reducer.test.js +0 -22
  449. package/src/App/Reducers/ImageGallery/Actions.js +1 -1
  450. package/src/App/Screens/Configurator/Components/CalculationWidget/__snapshots__/index.test.jsx.snap +4 -4
  451. package/src/App/Screens/Configurator/Components/CalculationWidget/index.test.jsx +1 -1
  452. package/src/App/Screens/Configurator/Components/DesignApproval/index.test.jsx +1 -1
  453. package/src/App/Screens/Configurator/Components/FullScreenView/__snapshots__/index.test.jsx.snap +1 -1
  454. package/src/App/Screens/Configurator/Components/FullScreenView/index.js +3 -2
  455. package/src/App/Screens/Configurator/Components/FullScreenView/index.test.jsx +1 -1
  456. package/src/App/Screens/Configurator/Components/PreviewPortal/index.js +7 -3
  457. package/src/App/Screens/Configurator/Containers/AmountPrice.js +1 -1
  458. package/src/App/Screens/Configurator/Containers/Confirm.js +1 -1
  459. package/src/App/Screens/Configurator/Containers/FullScreenView.js +1 -0
  460. package/src/App/Screens/Configurator/Containers/__tests__/Designer.test.js +1 -1
  461. package/src/App/Screens/Configurator/Screen.js +3 -1
  462. package/src/App/Screens/DesignerProductPreview/__tests__/__snapshots__/Screen.test.js.snap +1 -1
  463. package/src/App/Services/ConfiguratorService.js +25 -4
  464. package/src/App/Services/InteractionService.js +2 -1
  465. package/src/App/Services/VisualizationService.js +3 -0
  466. package/src/App/Services/__tests__/DesignDataService.selectViewForComponent.test.js +0 -53
  467. package/src/App/Shared/Containers/AlertMessages.js +1 -1
  468. package/src/App/Shared/Containers/AmountPrice/index.test.js +1 -1
  469. package/src/App/Shared/Containers/Error.js +1 -1
  470. package/src/App/Shared/Containers/SaveConfiguration.js +1 -1
  471. package/src/App/Translations.js +1 -1
  472. package/src/App/Utils/createMessageInterface.js +10 -0
  473. package/src/App/configuration.js +3 -0
  474. package/src/Framework/i18n.js +2 -3
  475. package/babel.config.js +0 -46
  476. package/public/ConfigurationMessagingDemo.html +0 -55
  477. package/scripts/cpPath.js +0 -135
  478. package/scripts/moveLibToPackageRoot.js +0 -40
  479. package/scripts/rmDir.js +0 -29
  480. package/scripts/updateLocalPackages.js +0 -68
  481. package/scripts/utils/process.js +0 -19
  482. package/tsconfig.json +0 -22
@@ -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 '../FullScreenView';
4
+ import FullScreenView from './index';
5
5
 
6
6
  describe('Screens/Configurator/Components/FullScreenView', () => {
7
7
  it('renders correctly', () => {
@@ -51,6 +51,9 @@ const styles = theme => ({
51
51
  },
52
52
  visualizationWrapperCanvas: {
53
53
  height: '100% ',
54
+ [theme.breakpoints.up('sm')]: {
55
+ height: 'calc(100% - 100px)',
56
+ },
54
57
  },
55
58
  closePreview: {
56
59
  color: theme.palette.primary.darkText,
@@ -95,6 +98,7 @@ class PreviewPortal extends React.Component {
95
98
  width: PropTypes.string,
96
99
  dialogStyle: PropTypes.string,
97
100
  hasItems: PropTypes.bool,
101
+ hasMoreItems: PropTypes.bool,
98
102
  alignTarget: PropTypes.shape({ add: PropTypes.func.isRequired, remove: PropTypes.func.isRequired })
99
103
  .isRequired,
100
104
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
@@ -117,7 +121,7 @@ class PreviewPortal extends React.Component {
117
121
  };
118
122
 
119
123
  renderPreview() {
120
- const { hasItems, closePreviewMode, classes, children, width, dialogStyle } = this.props;
124
+ const { hasMoreItems, closePreviewMode, classes, children, width, dialogStyle } = this.props;
121
125
  const portalStyle = dialogStyle
122
126
  ? classes.fullscreenPortal + ' ' + dialogStyle
123
127
  : classes.fullscreenPortal;
@@ -141,12 +145,12 @@ class PreviewPortal extends React.Component {
141
145
  <div
142
146
  ref={this.wrapperRef}
143
147
  className={
144
- hasItems ? classes.visualizationWrapperThumbs : classes.visualizationWrapperCanvas
148
+ hasMoreItems ? classes.visualizationWrapperThumbs : classes.visualizationWrapperCanvas
145
149
  }
146
150
  >
147
151
  {children}
148
152
  </div>
149
- {hasItems && <Thumbnails previewOpen={true} />}
153
+ {hasMoreItems && <Thumbnails previewOpen={true} />}
150
154
  {width !== 'xs' && (
151
155
  <AnalyticsWrapper targetId="preview_close">
152
156
  <Grid
@@ -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 '../Containers/ConfigurationModeSwitch';
5
+ import ConfigurationModeSwitch from './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/index';
2
+ import Confirm from '../Components/Confirm';
3
3
  import { hideConfirm } from '../../../Reducers/Confirm/Actions';
4
4
 
5
5
  const mapStateToProps = ({ confirm }) => {
@@ -21,6 +21,7 @@ const mapStateToProps = state => {
21
21
  },
22
22
  showDesignViewList: getDesignViewLength(state) > 1 && !isAnyDesignAreaSelected(state),
23
23
  hasItems: getDesignViewLength(state) > 0,
24
+ hasMoreItems: getDesignViewLength(state) > 1,
24
25
  areAllDesignAreasEmpty: areAllDesignAreasEmpty(state.configurator),
25
26
  };
26
27
  };
@@ -3,7 +3,7 @@ import mountWithState from 'Utils/Test/mountWithState';
3
3
  import Designer from 'App/Modules/Designer/Containers/Designer';
4
4
  import ServiceLocator from 'App/ServiceLocator';
5
5
 
6
- jest.mock('../../DesignerUI', () => {
6
+ jest.mock('App/Modules/Designer/DesignerUI', () => {
7
7
  const DefaultDesigner = () => <div />;
8
8
 
9
9
  return {
@@ -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 '../Configurator/Components/LandscapeInformation';
14
+ import LandscapeInformation from './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';
@@ -141,6 +141,7 @@ const mapStateToProps = state => {
141
141
  const vertical = dock ? dock === 'left' : state.device.screen.orientation === 'landscape';
142
142
  const showAddToCartButton = state.ui.visibilityMap.addToCartButton;
143
143
  const showConfigurationVariantSelection = state.ui.visibilityMap.configurationvariantSelection;
144
+ const visualizationOverlayMode = getConf('visualizationOverlayMode');
144
145
 
145
146
  const configuration = {
146
147
  showAddToCartButton: getConf('showAddToCartButton'),
@@ -164,6 +165,7 @@ const mapStateToProps = state => {
164
165
  showAddToCartButton,
165
166
  showConfigurationVariantSelection,
166
167
  configuration,
168
+ visualizationOverlayMode,
167
169
  };
168
170
  };
169
171
 
@@ -85,7 +85,7 @@ exports[`Screens/DesignerProductPreview/Screen renders the initial image upload
85
85
  </div>
86
86
  </div>
87
87
  <div
88
- class="MuiGrid-root MuiGrid-container MuiGrid-justify-xs-space-between"
88
+ class="MuiGrid-root MuiGrid-container MuiGrid-justify-content-xs-space-between"
89
89
  >
90
90
  <div
91
91
  class="MuiGrid-root MuiGrid-item"
@@ -30,7 +30,7 @@ import {
30
30
  import { withGlobalLoader } from '../Reducers/UI/Actions';
31
31
  import { getFontMapping } from '../Reducers/Fonts/Selectors';
32
32
  import { Services } from '../ServiceLocator';
33
- import { getConf } from '../configuration';
33
+ import { getConf, SaveTypes } from '../configuration';
34
34
  import { selectMultipleOptions, setCalculationEnabled } from '../Reducers/Configurator/Actions';
35
35
  import { setCalculationAutoResolveEnabled } from '../Reducers/Configurator/Actions';
36
36
  import { skipNextAutoResolve } from '../Reducers/Configurator/Actions';
@@ -38,7 +38,12 @@ import { getDesignData } from '../Reducers/DesignData/Reducer';
38
38
  import { getCached } from '../../Utils/Function/cached';
39
39
  import { getFirstDataURLFromScreenshotsObj } from '../Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj';
40
40
  import { isPlaceholderObject } from '../Reducers/DesignData/Selectors';
41
- import createMessageInterface from '../Utils/createMessageInterface';
41
+ import createMessageInterface, {
42
+ LISTENER_SAVE_CONFIGURATION,
43
+ LISTENER_SWITCH_OPTIONS,
44
+ METHOD_ADD_TO_CART,
45
+ METHOD_CONFIGURATION_SAVED_REMOTELY,
46
+ } from '../Utils/createMessageInterface';
42
47
 
43
48
  const getSelectedAmountsBySizes = (item, selectedAmounts) => {
44
49
  const itemGroupMap = (rootItem, fn) => {
@@ -83,7 +88,7 @@ export default class ConfiguratorService extends AbstractConfiguratorService {
83
88
  const adminMode = getConf('adminMode');
84
89
  if (!adminMode) {
85
90
  const messageInterface = createMessageInterface();
86
- messageInterface.addListener('switch_options', async event => {
91
+ messageInterface.addListener(LISTENER_SWITCH_OPTIONS, async event => {
87
92
  const optionsJSON = get(event, 'data.options');
88
93
  try {
89
94
  const optionsToSelect = JSON.parse(optionsJSON);
@@ -93,6 +98,19 @@ export default class ConfiguratorService extends AbstractConfiguratorService {
93
98
  console.error('Wrong JSON provided for switch_options:', optionsJSON);
94
99
  }
95
100
  });
101
+ messageInterface.addListener(LISTENER_SAVE_CONFIGURATION, async event => {
102
+ const save_id = get(event, 'data.save_id');
103
+ const saveType =
104
+ get(event, 'data.save_type') === SaveTypes.CART ? SaveTypes.CART : SaveTypes.USER;
105
+ try {
106
+ const configuration = await this.captureAndSaveConfiguration(saveType);
107
+ const code = get(configuration, 'data.code');
108
+ messageInterface.dispatch({ method: METHOD_CONFIGURATION_SAVED_REMOTELY, save_id, code });
109
+ } catch (e) {
110
+ // eslint-disable-next-line no-console
111
+ console.error('Saving configuration failed, save_id was ', save_id);
112
+ }
113
+ });
96
114
  }
97
115
  }
98
116
 
@@ -725,7 +743,10 @@ export default class ConfiguratorService extends AbstractConfiguratorService {
725
743
  const appConf = getConf();
726
744
  const targetOrigin = get(appConf, 'addToCartPostMessageTargetOrigin', '*');
727
745
 
728
- window.parent.postMessage({ method: 'addtocart', code: configuration.code }, targetOrigin);
746
+ window.parent.postMessage(
747
+ { method: METHOD_ADD_TO_CART, code: configuration.code },
748
+ targetOrigin
749
+ );
729
750
  } else if (addToCartMethod === 'functionCall' && window.parent.addToCart !== undefined) {
730
751
  window.parent.addToCart(configuration.code);
731
752
  }
@@ -5,6 +5,7 @@ import Api from '../../Framework/Api';
5
5
  import { t } from 'Framework/i18n';
6
6
  import { getConfiguration } from '../Reducers/Configurator/Selectors';
7
7
  import { EventTypes } from '../Constant';
8
+ import { METHOD_CONFIGURATION_SAVED } from '../Utils/createMessageInterface';
8
9
 
9
10
  export default class InteractionService extends AbstractInteractionService {
10
11
  constructor() {
@@ -44,7 +45,7 @@ export default class InteractionService extends AbstractInteractionService {
44
45
  await configurator.captureAndSaveConfiguration(SaveTypes.USER);
45
46
  const { code } = configurator.state.configuration;
46
47
  this.postMessageToContainer({
47
- method: 'configurationsaved',
48
+ method: METHOD_CONFIGURATION_SAVED,
48
49
  code,
49
50
  });
50
51
  } catch (e) {
@@ -264,6 +264,9 @@ export default class VisualizationService extends AbstractVisualizationService {
264
264
  const isAdminMode = getConf('adminMode');
265
265
  sendMessage(component, 'clearViewIfEmpty', !!isAdminMode);
266
266
 
267
+ const visualizationOverlayMode = getConf('visualizationOverlayMode');
268
+ sendMessage(component, 'setOverlayMode', !!visualizationOverlayMode);
269
+
267
270
  this.observable.dispatch(EventTypes.ComponentChange, { component });
268
271
 
269
272
  return this;
@@ -178,57 +178,4 @@ 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
- });
234
181
  });
@@ -1,5 +1,5 @@
1
1
  import { containerConnect } from 'Framework/ComponentContainer';
2
- import AlertDialog from '../Components/AlertDialog/index';
2
+ import AlertDialog from '../Components/AlertDialog';
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 '../AmountPrice';
5
+ } from './index';
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/index';
2
+ import AlertDialog from '../Components/AlertDialog';
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/index';
4
+ import SaveConfiguration from '../Components/SaveConfiguration';
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 '../App/configuration';
2
+ import { isProduction } from './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('-', '_');
@@ -1,5 +1,15 @@
1
1
  import get from 'lodash/get';
2
2
 
3
+ export const METHOD_ADD_TO_CART = 'addtocart';
4
+
5
+ export const METHOD_CONFIGURATION_SAVED = 'configurationsaved';
6
+
7
+ export const METHOD_CONFIGURATION_SAVED_REMOTELY = 'configurationsaved_remotely';
8
+
9
+ export const LISTENER_SWITCH_OPTIONS = 'switch_options';
10
+
11
+ export const LISTENER_SAVE_CONFIGURATION = 'save_configuration';
12
+
3
13
  /**
4
14
  * Helper interface for bi-directional postMessage API
5
15
  */
@@ -197,6 +197,9 @@ let applicationConfiguration = {
197
197
 
198
198
  // switch to the previously selected view when selecting a component that has no view specified
199
199
  switchViewOnComponentSelection: true,
200
+
201
+ // the visualization behaves like it was a mask over the designer canvas
202
+ visualizationOverlayMode: false,
200
203
  };
201
204
 
202
205
  /**
@@ -3,7 +3,6 @@ import React, { Component } from 'react';
3
3
  import ReactDOMServer from 'react-dom/server';
4
4
  import { connect } from 'react-redux';
5
5
  import _ from 'lodash';
6
- import * as reactI18nify from 'react-i18nify';
7
6
  import Hyphen from 'react-hyphen';
8
7
  import { getConf } from '../App/configuration';
9
8
 
@@ -231,10 +230,10 @@ export function translateComponent(ComponentToTranslate, mapStateToProps, mapDis
231
230
  export const t = I18n.t.bind(I18n);
232
231
 
233
232
  export function useTranslationWithoutStore() {
234
- reactI18nify.I18n.setTranslationsGetter(function() {
233
+ I18n.setTranslationsGetter(function() {
235
234
  return translations;
236
235
  });
237
- reactI18nify.I18n.setLocaleGetter(function() {
236
+ I18n.setLocaleGetter(function() {
238
237
  return 'en-GB';
239
238
  });
240
239
  }
package/babel.config.js DELETED
@@ -1,46 +0,0 @@
1
- module.exports = function(api) {
2
- const presets = [
3
- '@babel/preset-env',
4
- '@babel/preset-typescript',
5
- '@babel/preset-react', // Transpile React components to JavaScript
6
- ];
7
-
8
- const plugins = [
9
- ['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }],
10
- '@babel/plugin-proposal-class-properties',
11
- '@babel/plugin-syntax-dynamic-import',
12
-
13
- [
14
- require.resolve('babel-plugin-module-resolver'),
15
- {
16
- root: ['./src'],
17
- },
18
- ],
19
- ];
20
-
21
- const ignore = [];
22
-
23
- if (api.env('development')) {
24
- plugins.push('react-hot-loader/babel'); // Enables React code to work with HMR.
25
- api.cache(true);
26
- } else if (api.env('production')) {
27
- ignore.push(
28
- '**/__tests__', // ignore the whole test directory
29
- '**/*.test.js', // ignore test files only
30
- '**/__mocks__'
31
- );
32
- api.cache(false);
33
- } else if (api.env('test')) {
34
- // makes possible to import ES modules (by transforming them to CommonJS)
35
- // in node's current LTS version (12.x) ES modules are only experimental,
36
- // for the current status check https://nodejs.org/docs/latest/api/esm.html#esm_modules_ecmascript_modules
37
- plugins.push(['@babel/plugin-transform-modules-commonjs', { allowTopLevelThis: true }]);
38
- api.cache(true);
39
- }
40
-
41
- return {
42
- presets,
43
- plugins,
44
- ignore,
45
- };
46
- };
@@ -1,55 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <style>
5
- html, body {
6
- margin: 0;
7
- display: flex;
8
- }
9
- </style>
10
- <meta charset="UTF-8">
11
- <title>Test for configurator messaging</title>
12
- </head>
13
- <body>
14
- <script>
15
- window.addEventListener('message', (event) => {
16
- const data = event.data;
17
- console.log('message posted from the embedded page', data);
18
-
19
- const method = data.method;
20
- const code = data.code;
21
-
22
- switch (method) {
23
- case 'configurationsaved': {
24
- console.log('the user clicked the save button in the top right corner, and received the following code: ' + code);
25
- // do other actions here
26
- break;
27
- }
28
- case 'addtocart': {
29
- console.log('the user clicked the "add to cart" button in the bottom right corner, and received the following code: ' + code);
30
- // do other actions here
31
- break;
32
- }
33
- default: {
34
- console.log('unhandled or unknown method: ' + method);
35
- }
36
- }
37
- });
38
-
39
- function onButtonClicked() {
40
- const options = document.getElementById('input_switch_options').value;
41
- if (options) {
42
- document.getElementById('configurator_page').contentWindow.postMessage({type: 'switch_options', options });
43
- }
44
- }
45
- </script>
46
- <iframe src="/identifier:softshell_creatordesigner_2d" id="configurator_page" style="width: 80vw; height: 100vh; border: 0;"></iframe>
47
- <div style="width: 20vw; height: 100vh;">
48
-
49
- <textarea type="text" style="width: 17vw; height: 40vw; margin: 1vw" id="input_switch_options">
50
- [{"identifier":"softshell_body","selectedoptions":[{"identifier":"softshell_navy","amount":1}]},{"identifier":"softshell_hood","selectedoptions":[{"identifier":"softshell_lime"}]}]
51
- </textarea>
52
- <button style="margin-left: 6vw" onclick="onButtonClicked()">Switch Options</button>
53
- </div>
54
- </body>
55
- </html>
package/scripts/cpPath.js DELETED
@@ -1,135 +0,0 @@
1
- /* eslint no-console: 0 */
2
-
3
- /**
4
- * This script is made to copy specific files with their folder structure
5
- *
6
- * usage: node ./scripts/cpPath.js src dst [filterRegExp]
7
- *
8
- * @author boda@redhotmagma.de
9
- */
10
-
11
- const fs = require('fs');
12
- const path = require('path');
13
-
14
- const { mkDirDeep, walkDir } = require('./utils/fileSystem');
15
-
16
- let src = null;
17
- let dst = null;
18
- let reg = null;
19
-
20
- process.argv.forEach(function(val, index) {
21
- switch (index) {
22
- case 2:
23
- src = val;
24
- break;
25
- case 3:
26
- dst = val;
27
- break;
28
- case 4:
29
- reg = new RegExp(val);
30
- }
31
- });
32
-
33
- if (!src || !fs.existsSync(src)) {
34
- throw new Error('src must be an existing directory');
35
- }
36
- if (!dst || !fs.existsSync(dst)) {
37
- throw new Error('dst must be an existing directory');
38
- }
39
-
40
- function copyWithParent(src, dst) {
41
- if (typeof dst === 'function') {
42
- dst = dst(src);
43
- }
44
- mkDirDeep(dst.replace(/[/\\][^/\\]+$/, ''));
45
- console.log(src + ' -> ' + dst);
46
- const fileExt = src.replace(/.+\.([\w]+)$/, '$1');
47
- switch (fileExt) {
48
- case 'scss':
49
- fs.readFile(src, 'utf8', function read(err, data) {
50
- if (err) {
51
- throw err;
52
- }
53
- const modifiedContent = prepareSassFile(src, data);
54
- fs.writeFile(dst, modifiedContent, 'utf8', function write(err) {
55
- if (err) {
56
- throw err;
57
- }
58
- });
59
- });
60
- break;
61
- default:
62
- fs.createReadStream(src).pipe(fs.createWriteStream(dst));
63
- }
64
- }
65
-
66
- function prepareSassFile(relativeSrc, content) {
67
- const src = path.resolve(relativeSrc).replace(/\\/g, '/');
68
- if (!content || !content.match) {
69
- console.log('Strange file: ' + src);
70
- return content;
71
- }
72
- const replaceImports = content.match(/@import ['"][^.~].+/g);
73
- let output = content;
74
- if (replaceImports) {
75
- console.log('Resolving imports in sass file: ' + src);
76
- const pathUp =
77
- '..' +
78
- src
79
- .match(/src\/.+/)[0]
80
- .match(/\//g)
81
- .splice(1)
82
- .join('..');
83
- for (let i in replaceImports) {
84
- const pathToImport = replaceImports[i].replace(/@import ['"][/]?([^'"]+).*/, '$1');
85
- const resolverPath = pathUp + pathToImport;
86
-
87
- const srcPathDir = src.replace(/\/[^/]+$/, '/');
88
- const relativeImportPath = srcPathDir + pathToImport;
89
- const rootImportPath = srcPathDir + resolverPath;
90
-
91
- let resolveRootImport = false;
92
- try {
93
- fs.accessSync(relativeImportPath);
94
- } catch (err) {
95
- try {
96
- fs.accessSync(relativeImportPath + '.scss');
97
- } catch (err) {
98
- try {
99
- fs.accessSync(rootImportPath);
100
- resolveRootImport = true;
101
- } catch (err) {
102
- try {
103
- fs.accessSync(rootImportPath + '.scss');
104
- resolveRootImport = true;
105
- } catch (err) {
106
- throw 'Cannot resolve import path: ' + replaceImports[i] + ' in ' + src;
107
- }
108
- }
109
- }
110
- }
111
- if (resolveRootImport) {
112
- console.log(' ' + pathToImport + ' -> ' + resolverPath);
113
- const resolvedImport = replaceImports[i].replace(
114
- /(@import ['"])[^'"]+(.*)/,
115
- '$1' + resolverPath + '$2'
116
- );
117
- output = output.replace(replaceImports[i], resolvedImport);
118
- }
119
- }
120
- }
121
- return output;
122
- }
123
-
124
- console.log(
125
- '\x1b[37m\x1b[42m%s\x1b[0m',
126
- 'Copying files from ' + src + ' to ' + dst + (reg ? ' with filter: ' + reg : ' without filter')
127
- );
128
-
129
- walkDir(src, function(f) {
130
- if (reg === null || (reg && reg.test(f))) {
131
- copyWithParent(f, function(path) {
132
- return dst + path.replace(src, '');
133
- });
134
- }
135
- });
@@ -1,40 +0,0 @@
1
- /* eslint no-console: 0 */
2
-
3
- /**
4
- * This script is made to copy the compiled source from lib to the root folder
5
- *
6
- * Runs only when installing this package as a dependency in client projects
7
- *
8
- * usage: node ./scripts/moveLibToPackageRoot.js
9
- *
10
- * @author boda@redhotmagma.de
11
- */
12
-
13
- const fs = require('fs');
14
- const path = require('path');
15
- const rimraf = require('rimraf');
16
-
17
- const { isDependency } = require('./utils/process');
18
- const { walkDir } = require('./utils/fileSystem');
19
-
20
- if (isDependency()) {
21
- console.log('\x1b[37m\x1b[42m%s\x1b[0m', 'Moving content of lib into the root package directory');
22
-
23
- const src = path.resolve('./lib');
24
- const dst = path.resolve('./');
25
- walkDir(src, function(file) {
26
- const relativePath = file.replace(src, '');
27
- const tp = path.resolve(dst + relativePath);
28
- if (fs.statSync(file).isFile()) {
29
- fs.createReadStream(file).pipe(fs.createWriteStream(tp));
30
- } else {
31
- fs.mkdirSync(tp);
32
- }
33
- });
34
-
35
- rimraf(src, function(err) {
36
- if (err) {
37
- console.log('Error occured while clearing the directory: ' + src, err);
38
- }
39
- });
40
- }