@configuratorware/configurator-frontendgui 1.28.3 → 1.29.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 (475) 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/OptionRule/index.js +182 -0
  27. package/App/Modules/Creator/Components/Incompatibility/RuleComponent.js +88 -0
  28. package/App/Modules/Creator/Components/Incompatibility/index.js +251 -0
  29. package/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +164 -0
  30. package/App/Modules/Creator/Components/LoginForm/Styles.scss +9 -0
  31. package/App/Modules/Creator/Components/LoginForm/index.js +129 -0
  32. package/App/Modules/Creator/Components/Option/index.js +545 -0
  33. package/App/Modules/Creator/Components/Option/index.story.js +154 -0
  34. package/App/Modules/Creator/Components/OptionAmount/index.js +236 -0
  35. package/App/Modules/Creator/Components/OptionGroup/index.js +55 -0
  36. package/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +173 -0
  37. package/App/Modules/Creator/Components/Optiondetail/index.js +499 -0
  38. package/App/Modules/Creator/Components/Optiondetail/index.story.js +117 -0
  39. package/App/Modules/Creator/Components/OptionsList/index.js +193 -0
  40. package/App/Modules/Creator/Components/Price/Styles.scss +3 -0
  41. package/App/Modules/Creator/Components/Price/index.js +79 -0
  42. package/App/Modules/Creator/Components/ProductPart/index.js +187 -0
  43. package/App/Modules/Creator/Components/ProductPart/index.story.js +88 -0
  44. package/App/Modules/Creator/Components/ProductPartsList/index.js +153 -0
  45. package/App/Modules/Creator/Components/ProductPartsList/index.story.js +101 -0
  46. package/App/Modules/Creator/Components/SavedConfiguration/Styles.scss +19 -0
  47. package/App/Modules/Creator/Components/SavedConfiguration/index.js +82 -0
  48. package/App/Modules/Creator/Components/ShareConfiguration/Styles.scss +23 -0
  49. package/App/Modules/Creator/Components/ShareConfiguration/index.js +224 -0
  50. package/App/Modules/Creator/Components/StockInformation/index.js +93 -0
  51. package/App/Modules/Creator/Components/StoreConfigurationForm/Styles.scss +5 -0
  52. package/App/Modules/Creator/Components/StoreConfigurationForm/index.js +123 -0
  53. package/App/Modules/Creator/Components/Tools/Styles.scss +44 -0
  54. package/App/Modules/Creator/Components/Tools/index.js +102 -0
  55. package/App/Modules/Creator/Components/ValidationResult/Styles.scss +45 -0
  56. package/App/Modules/Creator/Components/ValidationResult/index.js +165 -0
  57. package/App/Modules/Creator/Components/index.js +84 -0
  58. package/App/Modules/Creator/Containers/AmountPrice/index.js +26 -0
  59. package/App/Modules/Creator/Containers/ConfigurationvariantSelection/index.js +60 -0
  60. package/App/Modules/Creator/Containers/CustomTitleEditor/index.js +52 -0
  61. package/App/Modules/Creator/Containers/FastConfiguration/index.js +62 -0
  62. package/App/Modules/Creator/Containers/FormattedPrice/index.js +31 -0
  63. package/App/Modules/Creator/Containers/Incompatibility/index.js +40 -0
  64. package/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +89 -0
  65. package/App/Modules/Creator/Containers/LoadingOverlay/index.js +26 -0
  66. package/App/Modules/Creator/Containers/Optiondetail/index.js +48 -0
  67. package/App/Modules/Creator/Containers/OptionsList/index.js +49 -0
  68. package/App/Modules/Creator/Containers/ProductPart/index.js +26 -0
  69. package/App/Modules/Creator/Containers/ProductPartsList/index.js +50 -0
  70. package/App/Modules/Creator/Containers/SavedConfigurationContainer/index.js +25 -0
  71. package/App/Modules/Creator/Containers/ShareConfiguration/index.js +42 -0
  72. package/App/Modules/Creator/Containers/StockInformation/index.js +33 -0
  73. package/App/Modules/Creator/Containers/Tools/index.js +44 -0
  74. package/App/Modules/Creator/Containers/ValidationResult/index.js +34 -0
  75. package/App/Modules/Creator/Containers/index.js +175 -0
  76. package/App/Modules/Creator/CreatorScreen.js +307 -0
  77. package/App/Modules/Creator/Layouts/DefaultLayout.js +260 -0
  78. package/App/Modules/Creator/Styles.scss +216 -0
  79. package/App/Modules/Designer/Components/AddGalleryImage/index.js +234 -0
  80. package/App/Modules/Designer/Components/AddGalleryImage/index.story.js +94 -0
  81. package/App/Modules/Designer/Components/AddGalleryImage/index.test.js +151 -0
  82. package/App/Modules/Designer/Components/AddVisualElement/Styles.scss +0 -0
  83. package/App/Modules/Designer/Components/AddVisualElement/index.js +278 -0
  84. package/App/Modules/Designer/Components/AddVisualElement/index.story.js +24 -0
  85. package/App/Modules/Designer/Components/AddVisualElement/index.test.js +47 -0
  86. package/App/Modules/Designer/Components/CloseDesignEditor/index.js +130 -0
  87. package/App/Modules/Designer/Components/CloseGraphicsEditorButton/index.js +54 -0
  88. package/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +175 -0
  89. package/App/Modules/Designer/Components/ColorPalettes/index.js +814 -0
  90. package/App/Modules/Designer/Components/ColorPalettes/index.story.js +158 -0
  91. package/App/Modules/Designer/Components/ColorPalettes/index.test.js +150 -0
  92. package/App/Modules/Designer/Components/DesignAreaControlbox/Styles.scss +0 -0
  93. package/App/Modules/Designer/Components/DesignAreaControlbox/index.js +467 -0
  94. package/App/Modules/Designer/Components/DesignAreaControlbox/index.story.js +272 -0
  95. package/App/Modules/Designer/Components/DesignAreaControlbox/index.test.js +164 -0
  96. package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +162 -0
  97. package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +425 -0
  98. package/App/Modules/Designer/Components/DesignerSelectionToolbox/fontItemUtils.js +48 -0
  99. package/App/Modules/Designer/Components/Dialog/index.js +125 -0
  100. package/App/Modules/Designer/Components/EditDesignButton/index.js +128 -0
  101. package/App/Modules/Designer/Components/FeedbackNotice/index.js +110 -0
  102. package/App/Modules/Designer/Components/FeedbackNotice/index.test.js +16 -0
  103. package/App/Modules/Designer/Components/FullScreenView/FullScreenView.js +63 -0
  104. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.dev.js +32 -0
  105. package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +430 -0
  106. package/App/Modules/Designer/Components/ImageColorize/index.js +636 -0
  107. package/App/Modules/Designer/Components/ImageColorize/index.story.js +73 -0
  108. package/App/Modules/Designer/Components/ImageControlbox/index.js +302 -0
  109. package/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +171 -0
  110. package/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +478 -0
  111. package/App/Modules/Designer/Components/ImageEditDialog/index.js +716 -0
  112. package/App/Modules/Designer/Components/ImageEditDialog/res/baseline_colorize_black_24dp.png +0 -0
  113. package/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
  114. package/App/Modules/Designer/Components/ImageLibraryFilter/index.js +179 -0
  115. package/App/Modules/Designer/Components/ImageLibraryThumbnail/Styles.scss +14 -0
  116. package/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +165 -0
  117. package/App/Modules/Designer/Components/ObjectTools/index.js +146 -0
  118. package/App/Modules/Designer/Components/Select/index.js +171 -0
  119. package/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +48 -0
  120. package/App/Modules/Designer/Components/TextControlbox/index.js +656 -0
  121. package/App/Modules/Designer/Components/TextControlbox/index.story.js +109 -0
  122. package/App/Modules/Designer/Components/TextControlbox/index.test.js +172 -0
  123. package/App/Modules/Designer/Containers/AddGalleryImage.js +90 -0
  124. package/App/Modules/Designer/Containers/AddVisualElement.js +166 -0
  125. package/App/Modules/Designer/Containers/CloseDesignEditor.js +32 -0
  126. package/App/Modules/Designer/Containers/CloseGraphicsEditorButton.js +32 -0
  127. package/App/Modules/Designer/Containers/ColorPalettes.js +145 -0
  128. package/App/Modules/Designer/Containers/DesignAreaControlbox.js +54 -0
  129. package/App/Modules/Designer/Containers/Designer.js +37 -0
  130. package/App/Modules/Designer/Containers/DesignerSelectionToolbox.js +116 -0
  131. package/App/Modules/Designer/Containers/EditDesignButton.js +35 -0
  132. package/App/Modules/Designer/Containers/ImageEditDialog.js +1130 -0
  133. package/App/Modules/Designer/Designer.js +231 -0
  134. package/App/Modules/Designer/DesignerScreen.js +255 -0
  135. package/App/Modules/Designer/DesignerUI.js +241 -0
  136. package/App/Modules/Designer/Layouts/DefaultLayout.js +221 -0
  137. package/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +50 -0
  138. package/App/Modules/Designer/Layouts/PopupAreaProvider.js +186 -0
  139. package/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +53 -0
  140. package/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +106 -0
  141. package/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +64 -0
  142. package/App/Modules/Designer/Utils/FontFaceRepository.js +82 -0
  143. package/App/Modules/Designer/Utils/ImageEditUtils.js +104 -0
  144. package/App/Modules/Designer/Utils/Transformers.js +164 -0
  145. package/App/Modules/Designer/setupDesigner.js +182 -0
  146. package/App/Modules/Designer/withActiveCanvas.js +136 -0
  147. package/App/Modules/Visualization/AlignTargetContainer.js +55 -0
  148. package/App/Modules/Visualization/CreatorAlignTarget.js +41 -0
  149. package/App/Modules/Visualization/DefaultVisualizationProvider.js +105 -0
  150. package/App/Modules/Visualization/DesignerAlignTarget.js +45 -0
  151. package/App/Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj.js +20 -0
  152. package/App/Reducers/Actions.js +297 -0
  153. package/App/Reducers/ConfigurationMode/Actions.js +21 -0
  154. package/App/Reducers/ConfigurationMode/Reducer.js +80 -0
  155. package/App/Reducers/ConfigurationMode/Selectors.js +84 -0
  156. package/App/Reducers/Configurator/Actions.js +1417 -0
  157. package/App/Reducers/Configurator/AttributeSelectors.js +32 -0
  158. package/App/Reducers/Configurator/Modifiers.js +35 -0
  159. package/App/Reducers/Configurator/Reducer.js +639 -0
  160. package/App/Reducers/Configurator/Selectors.js +242 -0
  161. package/App/Reducers/Confirm/Actions.js +84 -0
  162. package/App/Reducers/Confirm/Reducer.js +30 -0
  163. package/App/Reducers/DesignArea/Actions.js +76 -0
  164. package/App/Reducers/DesignArea/DesignElementSelectors.js +114 -0
  165. package/App/Reducers/DesignArea/MaskSelectors.js +101 -0
  166. package/App/Reducers/DesignArea/Reducer.js +150 -0
  167. package/App/Reducers/DesignArea/Selectors.js +1304 -0
  168. package/App/Reducers/DesignArea/Transformers.js +333 -0
  169. package/App/Reducers/DesignData/Actions.js +232 -0
  170. package/App/Reducers/DesignData/Modifiers.js +328 -0
  171. package/App/Reducers/DesignData/Reducer.js +189 -0
  172. package/App/Reducers/DesignData/Selectors.js +94 -0
  173. package/App/Reducers/DesignData/Transformers.js +27 -0
  174. package/App/Reducers/DesignView/Actions.js +19 -0
  175. package/App/Reducers/DesignView/Reducer.js +165 -0
  176. package/App/Reducers/DesignView/Selectors.js +130 -0
  177. package/App/Reducers/DesignView/Transformers.js +32 -0
  178. package/App/Reducers/Device/Actions.js +16 -0
  179. package/App/Reducers/Device/Reducer.js +51 -0
  180. package/App/Reducers/Fonts/Actions.js +137 -0
  181. package/App/Reducers/Fonts/Reducer.js +39 -0
  182. package/App/Reducers/Fonts/Selectors.js +98 -0
  183. package/App/Reducers/GeneralActions.js +16 -0
  184. package/App/Reducers/ImageGallery/Actions.js +336 -0
  185. package/App/Reducers/ImageGallery/Modifiers.js +67 -0
  186. package/App/Reducers/ImageGallery/Reducer.js +320 -0
  187. package/App/Reducers/ImageGallery/Selectors.js +206 -0
  188. package/App/Reducers/Reducer.js +107 -0
  189. package/App/Reducers/UI/Actions.js +191 -0
  190. package/App/Reducers/UI/Reducer.js +98 -0
  191. package/App/Reducers/UI/Selectors.js +32 -0
  192. package/App/Reducers.js +48 -0
  193. package/App/Routing.js +168 -0
  194. package/App/Screens/Configurator/CalculationWidgetScreen.js +84 -0
  195. package/App/Screens/Configurator/Components/AmountSelection/Styles.scss +17 -0
  196. package/App/Screens/Configurator/Components/AmountSelection/index.js +170 -0
  197. package/App/Screens/Configurator/Components/AmountSelection/index.story.js +36 -0
  198. package/App/Screens/Configurator/Components/CalculationWidget/index.js +652 -0
  199. package/App/Screens/Configurator/Components/CalculationWidget/index.story.js +154 -0
  200. package/App/Screens/Configurator/Components/CalculationWidget/index.test.js +142 -0
  201. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +82 -0
  202. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/index.js +15 -0
  203. package/App/Screens/Configurator/Components/Confirm/Styles.scss +0 -0
  204. package/App/Screens/Configurator/Components/Confirm/index.js +105 -0
  205. package/App/Screens/Configurator/Components/DesignApproval/index.js +76 -0
  206. package/App/Screens/Configurator/Components/DesignApproval/index.story.js +27 -0
  207. package/App/Screens/Configurator/Components/DesignApproval/index.test.js +31 -0
  208. package/App/Screens/Configurator/Components/Error/index.js +106 -0
  209. package/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +96 -0
  210. package/App/Screens/Configurator/Components/FileUpload/FileUploadBase.js +1 -0
  211. package/App/Screens/Configurator/Components/FullScreenView/index.js +304 -0
  212. package/App/Screens/Configurator/Components/FullScreenView/index.test.js +28 -0
  213. package/App/Screens/Configurator/Components/ImageLoader/ImageLoader.js +96 -0
  214. package/App/Screens/Configurator/Components/LandscapeInformation/index.js +75 -0
  215. package/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +35 -0
  216. package/App/Screens/Configurator/Components/PreviewPortal/index.js +249 -0
  217. package/App/Screens/Configurator/Components/Styles.scss +1 -0
  218. package/App/Screens/Configurator/Components/Thumbnail/index.js +394 -0
  219. package/App/Screens/Configurator/Components/Thumbnail/index.test.js +50 -0
  220. package/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +57 -0
  221. package/App/Screens/Configurator/Containers/AmountPrice.js +84 -0
  222. package/App/Screens/Configurator/Containers/CalculationWidget.js +278 -0
  223. package/App/Screens/Configurator/Containers/ConfigurationModeSwitch.js +81 -0
  224. package/App/Screens/Configurator/Containers/Confirm.js +37 -0
  225. package/App/Screens/Configurator/Containers/DesignApproval.js +129 -0
  226. package/App/Screens/Configurator/Containers/FallbackVisualization.js +32 -0
  227. package/App/Screens/Configurator/Containers/FullScreenView.js +47 -0
  228. package/App/Screens/Configurator/Containers/Thumbnail.js +41 -0
  229. package/App/Screens/Configurator/Containers/Visualization.js +13 -0
  230. package/App/Screens/Configurator/DynamicComponents.js +40 -0
  231. package/App/Screens/Configurator/Screen.js +238 -0
  232. package/App/Screens/Configurator/ScreenPropTypes.js +45 -0
  233. package/App/Screens/Configurator/ThemeProvider.js +298 -0
  234. package/App/Screens/DesignerProductPreview/Constants.js +12 -0
  235. package/App/Screens/DesignerProductPreview/DesignerProductPreviewManager.js +554 -0
  236. package/App/Screens/DesignerProductPreview/Screen.js +407 -0
  237. package/App/Screens.js +42 -0
  238. package/App/ServiceLocator.js +309 -0
  239. package/App/Services/AdminareaCommunicationService.js +149 -0
  240. package/App/Services/AnalyticsService.js +403 -0
  241. package/App/Services/ConfiguratorService.js +1166 -0
  242. package/App/Services/DesignDataService.js +3249 -0
  243. package/App/Services/DesignerService.js +496 -0
  244. package/App/Services/InteractionService.js +784 -0
  245. package/App/Services/UIService.js +129 -0
  246. package/App/Services/VisualizationService.js +844 -0
  247. package/App/Shared/Components/AcceptDesign/index.js +166 -0
  248. package/App/Shared/Components/AddToBasket/index.js +194 -0
  249. package/App/Shared/Components/AddToBasket/index.story.js +47 -0
  250. package/App/Shared/Components/AlertDialog/index.js +138 -0
  251. package/App/Shared/Components/AmountInput/Styles.scss +6 -0
  252. package/App/Shared/Components/AmountInput/index.js +296 -0
  253. package/App/Shared/Components/AmountInput/index.story.js +29 -0
  254. package/App/Shared/Components/AmountPrice/index.js +925 -0
  255. package/App/Shared/Components/AmountPrice/index.story.js +112 -0
  256. package/App/Shared/Components/AmountPrice/index.test.js +125 -0
  257. package/App/Shared/Components/Analytics/AnalyticsWrapper.js +49 -0
  258. package/App/Shared/Components/BulkNames/index.js +319 -0
  259. package/App/Shared/Components/CallToAction/index.js +220 -0
  260. package/App/Shared/Components/Header/Header.js +150 -0
  261. package/App/Shared/Components/Header/index.js +15 -0
  262. package/App/Shared/Components/Header/index.story.js +143 -0
  263. package/App/Shared/Components/InformationTag/InformationTag.js +155 -0
  264. package/App/Shared/Components/LicenseNotice/LicenseNotice.js +148 -0
  265. package/App/Shared/Components/LicenseNotice/index.js +15 -0
  266. package/App/Shared/Components/LoadConfiguration/index.js +218 -0
  267. package/App/Shared/Components/MessageBox/index.js +84 -0
  268. package/App/Shared/Components/MessageBox/index.story.js +49 -0
  269. package/App/Shared/Components/Notification/index.js +105 -0
  270. package/App/Shared/Components/Notification/index.story.js +55 -0
  271. package/App/Shared/Components/PdfDownload/index.js +150 -0
  272. package/App/Shared/Components/PlusMinusInput/index.js +118 -0
  273. package/App/Shared/Components/PriceList/index.js +237 -0
  274. package/App/Shared/Components/PriceList/index.story.js +114 -0
  275. package/App/Shared/Components/PriceOverview/index.js +177 -0
  276. package/App/Shared/Components/PriceOverview/index.story.js +215 -0
  277. package/App/Shared/Components/ProductVariant/Image.js +75 -0
  278. package/App/Shared/Components/ProductVariant/Styles.scss +11 -0
  279. package/App/Shared/Components/ProductVariant/index.js +477 -0
  280. package/App/Shared/Components/ProductVariant/index.story.js +283 -0
  281. package/App/Shared/Components/Progress/Progress.js +59 -0
  282. package/App/Shared/Components/ReceiveOfferForm/index.js +432 -0
  283. package/App/Shared/Components/ReceiveOfferForm/index.story.js +32 -0
  284. package/App/Shared/Components/ReceiveOfferForm/index.test.js +36 -0
  285. package/App/Shared/Components/SaveConfiguration/index.js +286 -0
  286. package/App/Shared/Components/SendEmail/index.js +103 -0
  287. package/App/Shared/Components/Stepper/index.js +136 -0
  288. package/App/Shared/Components/Stepper/index.story.js +38 -0
  289. package/App/Shared/Components/ToolbarList/index.js +231 -0
  290. package/App/Shared/Components/ToolbarList/index.story.js +33 -0
  291. package/App/Shared/Components/VariantChooser/index.js +270 -0
  292. package/App/Shared/Components/VariantChooser/index.story.js +100 -0
  293. package/App/Shared/Containers/AlertMessages.js +37 -0
  294. package/App/Shared/Containers/AmountPrice/AmountPriceAdminareaWrapper.js +40 -0
  295. package/App/Shared/Containers/AmountPrice/index.js +284 -0
  296. package/App/Shared/Containers/BulkNames.js +310 -0
  297. package/App/Shared/Containers/Error.js +37 -0
  298. package/App/Shared/Containers/GlobalLoader.js +25 -0
  299. package/App/Shared/Containers/Header/index.js +178 -0
  300. package/App/Shared/Containers/LicenseNotice/LicenseNotice.js +26 -0
  301. package/App/Shared/Containers/LicenseNotice/index.js +15 -0
  302. package/App/Shared/Containers/LoadConfiguration/LoadConfiguration.js +146 -0
  303. package/App/Shared/Containers/LoadConfiguration/index.js +15 -0
  304. package/App/Shared/Containers/PdfDownload/index.js +39 -0
  305. package/App/Shared/Containers/ProductVariant/ProductVariant.js +339 -0
  306. package/App/Shared/Containers/ProductVariant/index.js +15 -0
  307. package/App/Shared/Containers/SaveConfiguration.js +49 -0
  308. package/App/Shared/Containers/SendEmail/SendEmail.js +45 -0
  309. package/App/Shared/Containers/SendEmail/index.js +15 -0
  310. package/App/Shared/Providers/DefaultCanvasProvider.js +86 -0
  311. package/App/Storage.js +17 -0
  312. package/App/Store.js +87 -0
  313. package/App/Styles.scss +0 -0
  314. package/App/Translations.js +88 -0
  315. package/App/Utils/createMessageInterface.js +65 -0
  316. package/App/Utils/customClassName.js +12 -0
  317. package/App/Utils/getContrastText.js +27 -0
  318. package/App/Utils/getImageUrl.js +32 -0
  319. package/App/Variables.scss +84 -0
  320. package/App/configuration.js +421 -0
  321. package/App/index.js +52 -0
  322. package/App/initServices.js +67 -0
  323. package/App/setup.js +22 -0
  324. package/App/versionInfo.js +8 -0
  325. package/Framework/Api.js +178 -0
  326. package/Framework/ComponentContainer.js +165 -0
  327. package/Framework/Components/Carousel/Styles.scss +85 -0
  328. package/Framework/Components/Carousel/index.js +322 -0
  329. package/Framework/Components/Dialog/Style.scss +79 -0
  330. package/Framework/Components/Dialog/index.js +721 -0
  331. package/Framework/Components/DialogSelect/Styles.scss +53 -0
  332. package/Framework/Components/DialogSelect/index.js +331 -0
  333. package/Framework/Components/Input/index.js +147 -0
  334. package/Framework/Components/LoadingOverlay/Styles.scss +37 -0
  335. package/Framework/Components/LoadingOverlay/index.js +33 -0
  336. package/Framework/Components/Markdown/index.js +62 -0
  337. package/Framework/Components/Mobile/index.js +33 -0
  338. package/Framework/CustomError.js +51 -0
  339. package/Framework/Helpers/TransitionDetect.js +116 -0
  340. package/Framework/Helpers/isLandscapeMobile.js +14 -0
  341. package/Framework/Helpers/isMobileDevice.js +17 -0
  342. package/Framework/Helpers/isMobileSize.js +13 -0
  343. package/Framework/Mixins.scss +235 -0
  344. package/Framework/Services/AbstractAdminareaCommunicationService.js +48 -0
  345. package/Framework/Services/AbstractAsyncService.js +44 -0
  346. package/Framework/Services/AbstractConfiguratorService.js +47 -0
  347. package/Framework/Services/AbstractInteractionService.js +50 -0
  348. package/Framework/Services/AbstractStoreService.js +42 -0
  349. package/Framework/Services/AbstractUIService.js +53 -0
  350. package/Framework/Services/AbstractVisualizationService.js +47 -0
  351. package/Framework/Services/AsyncService.js +93 -0
  352. package/Framework/Services/StoreService.js +237 -0
  353. package/Framework/Variables.scss +22 -0
  354. package/Framework/bindDecorator.js +173 -0
  355. package/Framework/i18n.js +382 -0
  356. package/README.md +5 -26
  357. package/Resources/Icons/MaterialUI/Icons/AddCircle.js +13 -0
  358. package/Resources/Icons/MaterialUI/Icons/RemoveCircle.js +13 -0
  359. package/Resources/Icons/MaterialUI/fontFace.scss +37 -0
  360. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.eot +0 -0
  361. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.svg +2373 -0
  362. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.ttf +0 -0
  363. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff +0 -0
  364. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff2 +0 -0
  365. package/Resources/Icons/fonts/ionicons.eot +0 -0
  366. package/Resources/Icons/fonts/ionicons.svg +2230 -0
  367. package/Resources/Icons/fonts/ionicons.ttf +0 -0
  368. package/Resources/Icons/fonts/ionicons.woff +0 -0
  369. package/Resources/Icons/ionicons.scss +1489 -0
  370. package/Resources/Icons/ioniconsExtend.scss +1469 -0
  371. package/Resources/Icons/v4/fontFace.scss +11 -0
  372. package/Resources/Icons/v4/fonts/ionicons.eot +0 -0
  373. package/Resources/Icons/v4/fonts/ionicons.svg +2090 -0
  374. package/Resources/Icons/v4/fonts/ionicons.ttf +0 -0
  375. package/Resources/Icons/v4/fonts/ionicons.woff +0 -0
  376. package/Resources/Icons/v4/fonts/ionicons.woff2 +0 -0
  377. package/Resources/Icons/v4/icons.scss +15 -0
  378. package/Resources/Icons/v4/iconsExtend.scss +7 -0
  379. package/Resources/Images/designer_placeholder_logo.svg +1 -0
  380. package/Resources/Masks/circle.svg +4 -0
  381. package/Shared/Components/CustomDialog.js +133 -0
  382. package/Shared/Components/CustomDialogSelect.js +161 -0
  383. package/Shared/Components/MainButton.js +81 -0
  384. package/Shared/ErrorTypes/DeferredError.js +51 -0
  385. package/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +60 -0
  386. package/Shared/HOCs/ResizeDetect/ResizeDetect.js +217 -0
  387. package/Shared/HOCs/getDisplayName.js +10 -0
  388. package/Shared/HOCs/withFixedChangeHandler.js +46 -0
  389. package/Shared/PropTypes/ReactComponent.js +13 -0
  390. package/Shared/Styles/absoluteCenter.js +17 -0
  391. package/Utils/Array/isIdentical.js +38 -0
  392. package/Utils/Async/AsyncManager.js +128 -0
  393. package/Utils/Async/Deferred.js +145 -0
  394. package/Utils/Async/ObjectLock.js +38 -0
  395. package/Utils/Decorators/Observable.js +130 -0
  396. package/Utils/Dev/HOCs/withFilePicker.js +101 -0
  397. package/Utils/Dev/isDev.js +21 -0
  398. package/Utils/Events/pointerEvent.js +199 -0
  399. package/Utils/Events/preventEventDoubling.js +23 -0
  400. package/Utils/Function/cached.js +64 -0
  401. package/Utils/Function/createDebounceManager.js +77 -0
  402. package/Utils/Function/createSelector.js +62 -0
  403. package/Utils/Function/memoize.js +46 -0
  404. package/Utils/Function/sendMessage.js +22 -0
  405. package/Utils/Helper/createSelectionRangeMemo.js +45 -0
  406. package/Utils/Immutable/set.js +81 -0
  407. package/Utils/Math/conversions.js +13 -0
  408. package/Utils/Math/isPositiveNumber.js +12 -0
  409. package/Utils/Redux/createActionWithGlobalState.js +23 -0
  410. package/Utils/Styles/combineMediaQueries.js +24 -0
  411. package/Utils/Styles/createCheckerBoardBackground.js +22 -0
  412. package/Utils/Test/CallOrderChecker.js +29 -0
  413. package/Utils/Test/createStoreProvider.js +33 -0
  414. package/Utils/Test/formDataToJSON.js +20 -0
  415. package/Utils/Test/mountWithState.js +40 -0
  416. package/index.js +8 -0
  417. package/package.json +22 -103
  418. package/scripts/cpPublic.js +3 -3
  419. package/scripts/getDefaultWebpackConfig.js +11 -10
  420. package/src/App/Error/ProductionErrorPage/Style.scss +1 -1
  421. package/src/App/Modules/Creator/Components/Option/index.test.js +1 -1
  422. package/src/App/Modules/Creator/Components/OptionAmount/index.test.js +1 -1
  423. package/src/App/Modules/Creator/Components/ProductPart/__snapshots__/index.test.js.snap +33 -10
  424. package/src/App/Modules/Creator/Components/ProductPart/index.js +5 -1
  425. package/src/App/Modules/Creator/Components/ProductPart/index.test.js +14 -1
  426. package/src/App/Modules/Creator/Components/ProductPartsList/index.js +3 -0
  427. package/src/App/Modules/Creator/Containers/ProductPartsList/index.js +1 -0
  428. package/src/App/Modules/Designer/Components/AddGalleryImage/index.story.js +1 -1
  429. package/src/App/Modules/Designer/Components/ColorPalettes/index.test.jsx +1 -1
  430. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.js +21 -4
  431. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.test.jsx +1 -1
  432. package/src/App/Modules/Designer/Components/TextControlbox/index.test.jsx +1 -1
  433. package/src/App/Modules/Designer/Containers/Designer.js +1 -1
  434. package/src/App/Modules/Designer/DesignerScreen.js +32 -8
  435. package/src/App/{Screens/Configurator → Modules/Designer}/DesignerUI.js +42 -26
  436. package/src/App/Modules/Designer/Layouts/DefaultLayout.js +35 -1
  437. package/src/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +18 -0
  438. package/src/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +54 -0
  439. package/src/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +38 -0
  440. package/src/App/Reducers/DesignView/Actions.js +1 -2
  441. package/src/App/Reducers/DesignView/Reducer.js +2 -10
  442. package/src/App/Reducers/DesignView/__mocks__/designerViewData.js +0 -1
  443. package/src/App/Reducers/DesignView/__tests__/Reducer.test.js +0 -22
  444. package/src/App/Reducers/ImageGallery/Actions.js +1 -1
  445. package/src/App/Screens/Configurator/Components/CalculationWidget/index.test.jsx +1 -1
  446. package/src/App/Screens/Configurator/Components/DesignApproval/index.test.jsx +1 -1
  447. package/src/App/Screens/Configurator/Components/FullScreenView/index.js +3 -2
  448. package/src/App/Screens/Configurator/Components/FullScreenView/index.test.jsx +1 -1
  449. package/src/App/Screens/Configurator/Components/PreviewPortal/index.js +7 -3
  450. package/src/App/Screens/Configurator/Containers/AmountPrice.js +1 -1
  451. package/src/App/Screens/Configurator/Containers/Confirm.js +1 -1
  452. package/src/App/Screens/Configurator/Containers/FullScreenView.js +1 -0
  453. package/src/App/Screens/Configurator/Containers/__tests__/Designer.test.js +1 -1
  454. package/src/App/Screens/Configurator/Screen.js +4 -2
  455. package/src/App/Screens/Configurator/__tests__/Screen.test.js +3 -0
  456. package/src/App/Services/ConfiguratorService.js +25 -4
  457. package/src/App/Services/InteractionService.js +2 -1
  458. package/src/App/Services/VisualizationService.js +3 -0
  459. package/src/App/Services/__tests__/DesignDataService.selectViewForComponent.test.js +0 -53
  460. package/src/App/Shared/Containers/AlertMessages.js +1 -1
  461. package/src/App/Shared/Containers/AmountPrice/index.test.js +1 -1
  462. package/src/App/Shared/Containers/Error.js +1 -1
  463. package/src/App/Shared/Containers/SaveConfiguration.js +1 -1
  464. package/src/App/Translations.js +1 -1
  465. package/src/App/Utils/createMessageInterface.js +10 -0
  466. package/src/App/configuration.js +3 -0
  467. package/src/Framework/i18n.js +2 -3
  468. package/babel.config.js +0 -46
  469. package/public/ConfigurationMessagingDemo.html +0 -55
  470. package/scripts/cpPath.js +0 -135
  471. package/scripts/moveLibToPackageRoot.js +0 -40
  472. package/scripts/rmDir.js +0 -29
  473. package/scripts/updateLocalPackages.js +0 -68
  474. package/scripts/utils/process.js +0 -19
  475. package/tsconfig.json +0 -22
@@ -0,0 +1,639 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configurationHandler = configurationHandler;
7
+ exports.optionAndOptionclassificationHandler = optionAndOptionclassificationHandler;
8
+ exports.calculationHandler = calculationHandler;
9
+ exports.dataHandler = dataHandler;
10
+ exports.uiHandler = uiHandler;
11
+ exports.baseHandler = baseHandler;
12
+ exports.configurationModifierHandler = configurationModifierHandler;
13
+ exports.filterOptionclassifications = filterOptionclassifications;
14
+ exports["default"] = configuratorReducer;
15
+ exports.setStateChangeReducers = exports.setSubReducers = void 0;
16
+
17
+ var actionTypes = _interopRequireWildcard(require("./Actions"));
18
+
19
+ var _lodash = _interopRequireDefault(require("lodash"));
20
+
21
+ var _get = _interopRequireDefault(require("lodash/get"));
22
+
23
+ var _omit = _interopRequireDefault(require("lodash/omit"));
24
+
25
+ var _forEach = _interopRequireDefault(require("lodash/forEach"));
26
+
27
+ var _reduce = _interopRequireDefault(require("lodash/reduce"));
28
+
29
+ var _set = _interopRequireDefault(require("../../../Utils/Immutable/set"));
30
+
31
+ var _Reducer = require("../DesignData/Reducer");
32
+
33
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
34
+
35
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
36
+
37
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
38
+
39
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
40
+
41
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
42
+
43
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
44
+
45
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
46
+
47
+ var initialState = {
48
+ configuration: {
49
+ item: {},
50
+ optionclassifications: []
51
+ },
52
+ options: [],
53
+ optionsWithDetails: [],
54
+ selectedoptionclassification: {},
55
+ calculation: null,
56
+ calculationAutoResolve: true,
57
+ optiondetails: {},
58
+ validation: null,
59
+ configurationvariants: [],
60
+ codesnippets: [],
61
+ client: null,
62
+ inspirations: {},
63
+ profile: {},
64
+ loadCode: null,
65
+ loadIdentifier: null,
66
+ resetCode: null,
67
+ // this code is only set at initial loading and load by code - we reset to those configurations
68
+ stockInformationOption: null,
69
+ inspirationsIdentifier: null,
70
+ calculationIsEnabled: true,
71
+ checkedOptionclassifications: {},
72
+ filteredOptionclassifications: [],
73
+ selectedVariantIdentifier: null,
74
+ selectedAmountsUpdated: false
75
+ };
76
+
77
+ function configurationHandler(state, action) {
78
+ switch (action.type) {
79
+ case actionTypes.RECEIVE_CONFIGURATION:
80
+ {
81
+ var configuration = action.data;
82
+
83
+ if (!_lodash["default"].isObject(configuration)) {
84
+ throw new Error("Server side error! The configuration must be a JSON structure! Data: ".concat(configuration));
85
+ } // update the selected option classification
86
+
87
+
88
+ var selectedoptionclassification = state.selectedoptionclassification;
89
+
90
+ if (selectedoptionclassification.identifier) {
91
+ selectedoptionclassification = _lodash["default"].find(configuration.optionclassifications, {
92
+ identifier: selectedoptionclassification.identifier
93
+ }) || selectedoptionclassification;
94
+ } // set validation from the received configuration
95
+
96
+
97
+ var validation = _lodash["default"].get(configuration, 'information.validation_result');
98
+
99
+ return _objectSpread(_objectSpread({}, state), {}, {
100
+ selectedoptionclassification: selectedoptionclassification,
101
+ configuration: configuration,
102
+ validation: validation,
103
+ resetCode: configuration.code,
104
+ inspirationsIdentifier: configuration.item.identifier,
105
+ checkedOptionclassifications: {}
106
+ });
107
+ }
108
+
109
+ case actionTypes.RECEIVE_SWITCHOPTIONSRESULT:
110
+ {
111
+ var _configuration = action.data; // the selectedoptionclassification should be updated with the optionclassification data from the response
112
+ // eg. to keep the selectedoptions updated
113
+
114
+ var _selectedoptionclassification = state.selectedoptionclassification,
115
+ options = state.options;
116
+ var optionclassifications = _configuration.optionclassifications;
117
+
118
+ if (_selectedoptionclassification.identifier) {
119
+ var optionclassificationData = _lodash["default"].find(optionclassifications, {
120
+ identifier: _selectedoptionclassification.identifier
121
+ });
122
+
123
+ if (optionclassificationData) {
124
+ _selectedoptionclassification = optionclassificationData; // the options should be updated with the data from the selectedoptions
125
+
126
+ var _selectedoptionclassi = _selectedoptionclassification,
127
+ selectedoptions = _selectedoptionclassi.selectedoptions;
128
+
129
+ for (var soi in selectedoptions) {
130
+ for (var oi in options) {
131
+ if (selectedoptions[soi].identifier === options[oi].identifier) {
132
+ options[oi] = _lodash["default"].mergeWith(options[oi], // dst
133
+ selectedoptions[soi], // src
134
+ function (dstValue, srcValue) {
135
+ // if the value present in the src, then copy it from there
136
+ // selectedoption always rules
137
+ if (srcValue !== null && srcValue !== undefined) {
138
+ return srcValue;
139
+ }
140
+
141
+ return dstValue;
142
+ });
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ var optionsWithDetails = filterOptionsWithDetails(options);
150
+ return _objectSpread(_objectSpread({}, state), {}, {
151
+ configuration: _configuration,
152
+ options: options,
153
+ optionsWithDetails: optionsWithDetails,
154
+ selectedoptionclassification: _selectedoptionclassification
155
+ });
156
+ }
157
+
158
+ case actionTypes.RECEIVE_SAVEDCONFIGURATION:
159
+ {
160
+ var _configuration2 = action.data; // update the selected option classification
161
+
162
+ var _selectedoptionclassification2 = state.selectedoptionclassification;
163
+
164
+ if (_selectedoptionclassification2.identifier) {
165
+ _selectedoptionclassification2 = _lodash["default"].find(_configuration2.optionclassifications, {
166
+ identifier: _selectedoptionclassification2.identifier
167
+ }) || _selectedoptionclassification2;
168
+ }
169
+
170
+ return _objectSpread(_objectSpread({}, state), {}, {
171
+ configuration: _configuration2,
172
+ selectedoptionclassification: _selectedoptionclassification2
173
+ });
174
+ }
175
+
176
+ default:
177
+ return state;
178
+ }
179
+ }
180
+
181
+ function optionAndOptionclassificationHandler(state, action) {
182
+ switch (action.type) {
183
+ case actionTypes.SELECT_OPTIONCLASSIFICATION:
184
+ {
185
+ return _objectSpread(_objectSpread({}, state), {}, {
186
+ selectedoptionclassification: action.optionclassification || {},
187
+ options: [],
188
+ // clear options
189
+ optionsWithDetails: []
190
+ });
191
+ }
192
+
193
+ case actionTypes.RECEIVE_OPTIONS:
194
+ {
195
+ var _ret = function () {
196
+ var options = _lodash["default"].cloneDeep(action.data); // the selected options of the selected optionclassification should be updated
197
+ // eg. after the switchoption call added a partial object (it contains only the identifier and amount)
198
+ // but only missing values are updated
199
+
200
+
201
+ var keepDstProps = ['amount'];
202
+
203
+ var selectedoptionclassification = _lodash["default"].cloneDeep(state.selectedoptionclassification);
204
+
205
+ for (var oi in options) {
206
+ var option = options[oi];
207
+ var _selectedoptions = selectedoptionclassification.selectedoptions;
208
+
209
+ for (var os in _selectedoptions) {
210
+ var selectedoption = _selectedoptions[os];
211
+
212
+ if (selectedoption.identifier === option.identifier) {
213
+ options[oi] = _selectedoptions[os] = _lodash["default"].mergeWith(_selectedoptions[os], // dst
214
+ option, // src
215
+ function (dstValue, srcValue, key) {
216
+ // update only when there is a real value in the source, otherwise use the original
217
+ if (keepDstProps.indexOf(key) === -1 && srcValue !== null && srcValue !== undefined) {
218
+ return srcValue;
219
+ }
220
+
221
+ return dstValue;
222
+ });
223
+ }
224
+ }
225
+ }
226
+
227
+ var selectedoptions = selectedoptionclassification.selectedoptions; // update the option data with the selected group item
228
+
229
+ for (var _os in selectedoptions) {
230
+ var _selectedoption = selectedoptions[_os];
231
+
232
+ for (var _oi in options) {
233
+ var itemGroupChildren = _lodash["default"].get(options[_oi], 'option_group.children');
234
+
235
+ if (itemGroupChildren instanceof Array) {
236
+ for (var ci in itemGroupChildren) {
237
+ if (itemGroupChildren[ci].identifier === _selectedoption.identifier) {
238
+ options[_oi] = _lodash["default"].mergeWith(_lodash["default"].cloneDeep(options[_oi]), // dst
239
+ itemGroupChildren[ci], // src
240
+ function (dstValue, srcValue) {
241
+ return (// if the value is present in the src then use it, otherwise leave the original
242
+ srcValue !== null && srcValue !== undefined ? srcValue : dstValue
243
+ );
244
+ });
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+
251
+ var optionsWithDetails = filterOptionsWithDetails(options);
252
+ return {
253
+ v: _objectSpread(_objectSpread({}, state), {}, {
254
+ selectedoptionclassification: selectedoptionclassification,
255
+ options: options,
256
+ optionsWithDetails: optionsWithDetails
257
+ })
258
+ };
259
+ }();
260
+
261
+ if (_typeof(_ret) === "object") return _ret.v;
262
+ }
263
+
264
+ case actionTypes.SET_OPTIONCLASSIFICATION_CHECKED:
265
+ {
266
+ if (_typeof(action.optionclassification) === 'object') {
267
+ return _objectSpread(_objectSpread({}, state), {}, {
268
+ checkedOptionclassifications: _objectSpread(_objectSpread({}, state.checkedOptionclassifications), {}, _defineProperty({}, action.optionclassification.identifier, true))
269
+ });
270
+ }
271
+
272
+ return state;
273
+ }
274
+
275
+ case actionTypes.SET_CONFLICTING_SWITCHOPTION_DATA:
276
+ {
277
+ return _objectSpread(_objectSpread({}, state), {}, {
278
+ conflictingSwitchOptionData: action.switchOptionData
279
+ });
280
+ }
281
+
282
+ default:
283
+ return state;
284
+ }
285
+ }
286
+
287
+ function calculationHandler(state, action) {
288
+ switch (action.type) {
289
+ case actionTypes.RECEIVE_CALCULATION:
290
+ {
291
+ var calculation = action.data;
292
+ return _objectSpread(_objectSpread({}, state), {}, {
293
+ calculation: calculation,
294
+ calculationAutoResolve: state.calculationAutoResolve === 'skipNext' && !calculation.errors || state.calculationAutoResolve
295
+ });
296
+ }
297
+
298
+ case actionTypes.INVALIDATE_CALCULATION:
299
+ {
300
+ return _objectSpread(_objectSpread({}, state), {}, {
301
+ calculation: _objectSpread(_objectSpread({}, state.calculation), {}, {
302
+ invalidated: true
303
+ })
304
+ });
305
+ }
306
+
307
+ case actionTypes.SET_CALCULATION_ENABLED:
308
+ {
309
+ return _objectSpread(_objectSpread({}, state), {}, {
310
+ calculationIsEnabled: action.enabled
311
+ });
312
+ }
313
+
314
+ case actionTypes.SET_CALCULATION_ERRORS_RESOLVED:
315
+ {
316
+ return _objectSpread(_objectSpread({}, state), {}, {
317
+ calculation: state.calculation.errors ? null : state.calculation
318
+ });
319
+ }
320
+
321
+ case actionTypes.SET_CALCULATION_AUTO_RESOLVE_ENABLED:
322
+ {
323
+ return _objectSpread(_objectSpread({}, state), {}, {
324
+ calculationAutoResolve: action.enabled
325
+ });
326
+ }
327
+
328
+ default:
329
+ return state;
330
+ }
331
+ }
332
+
333
+ function dataHandler(state, action) {
334
+ switch (action.type) {
335
+ case actionTypes.RECEIVE_OPTIONDETAILS:
336
+ {
337
+ return _objectSpread(_objectSpread({}, state), {}, {
338
+ optiondetails: action.data
339
+ });
340
+ }
341
+
342
+ case actionTypes.RECEIVE_VALIDATION:
343
+ {
344
+ return _objectSpread(_objectSpread({}, state), {}, {
345
+ validation: action.data
346
+ });
347
+ }
348
+
349
+ case actionTypes.RECEIVE_CONFIGURATIONVARIANTS:
350
+ {
351
+ return _objectSpread(_objectSpread({}, state), {}, {
352
+ configurationvariants: action.data
353
+ });
354
+ }
355
+
356
+ case actionTypes.RECEIVE_CODESNIPPETS:
357
+ {
358
+ if (!_lodash["default"].isArray(action.data)) {
359
+ throw new Error("Server side error! The code snippets must be a JSON array! Data: ".concat(action.data));
360
+ }
361
+
362
+ return _objectSpread(_objectSpread({}, state), {}, {
363
+ codesnippets: action.data || []
364
+ });
365
+ }
366
+
367
+ case actionTypes.RECEIVE_CLIENT_DATA:
368
+ {
369
+ if (action.data.success === false) {
370
+ return state;
371
+ }
372
+
373
+ var clientData = action.data;
374
+ var color = (0, _get["default"])(clientData, 'theme.highlightColor');
375
+
376
+ if (/^[0-9a-fA-F]{6}$/i.test(color)) {
377
+ // if color is hex with missing '#'
378
+ color = '#' + color;
379
+ } else if (color.charAt(0) !== '#') {
380
+ // if color string to get rgb color code
381
+ var element = document.createElement('div');
382
+ document.body.appendChild(element);
383
+ element.style.color = color;
384
+ var styles = window.getComputedStyle(element);
385
+ color = styles.color;
386
+ document.body.removeChild(element);
387
+ }
388
+
389
+ return _objectSpread(_objectSpread({}, state), {}, {
390
+ client: _objectSpread(_objectSpread({}, clientData), {}, {
391
+ theme: _objectSpread(_objectSpread({}, clientData.theme), {}, {
392
+ highlightColor: color
393
+ })
394
+ })
395
+ });
396
+ }
397
+
398
+ case actionTypes.RECEIVE_INSPIRATIONS:
399
+ {
400
+ return _objectSpread(_objectSpread({}, state), {}, {
401
+ inspirations: action.data
402
+ });
403
+ }
404
+
405
+ default:
406
+ return state;
407
+ }
408
+ }
409
+
410
+ function uiHandler(state, action) {
411
+ switch (action.type) {
412
+ case actionTypes.SET_STOCK_INFORMATION_OPTION:
413
+ {
414
+ return _objectSpread(_objectSpread({}, state), {}, {
415
+ stockInformationOption: action.stockInformationOption
416
+ });
417
+ }
418
+
419
+ case actionTypes.SET_SELECTED_VARIANT_IDENTIFIER:
420
+ {
421
+ return _objectSpread(_objectSpread({}, state), {}, {
422
+ selectedVariantIdentifier: action.selectedVariantIdentifier
423
+ });
424
+ }
425
+
426
+ default:
427
+ return state;
428
+ }
429
+ }
430
+
431
+ function baseHandler(state, action) {
432
+ switch (action.type) {
433
+ case actionTypes.SET_LOAD_CODE:
434
+ {
435
+ return _objectSpread(_objectSpread({}, state), {}, {
436
+ loadCode: action.loadCode,
437
+ loadIdentifier: null
438
+ });
439
+ }
440
+
441
+ case actionTypes.SET_LOAD_IDENTIFIER:
442
+ {
443
+ return _objectSpread(_objectSpread({}, state), {}, {
444
+ loadIdentifier: action.loadIdentifier,
445
+ loadCode: null
446
+ });
447
+ }
448
+
449
+ case actionTypes.SET_SELECTED_AMOUNT:
450
+ {
451
+ var selectedAmountsPath = 'customdata.selectedAmounts';
452
+ var selectedAmounts = (0, _get["default"])(state.configuration, selectedAmountsPath, {});
453
+ var configuration = (0, _set["default"])(state.configuration, selectedAmountsPath, action.amount === 0 ? (0, _omit["default"])(selectedAmounts, action.identifier) : _objectSpread(_objectSpread({}, selectedAmounts), {}, _defineProperty({}, action.identifier, action.amount)));
454
+ return _objectSpread(_objectSpread({}, state), {}, {
455
+ selectedAmountsUpdated: !!action.isUpdatedByUser,
456
+ configuration: configuration
457
+ });
458
+ }
459
+
460
+ case actionTypes.SWITCH_SELECTED_AMOUNT:
461
+ {
462
+ var srcIdentifier = action.srcIdentifier,
463
+ dstIdentifier = action.dstIdentifier;
464
+ var _selectedAmountsPath = 'customdata.selectedAmounts';
465
+
466
+ var _selectedAmounts = (0, _get["default"])(state.configuration, _selectedAmountsPath, {});
467
+
468
+ if (!(srcIdentifier in _selectedAmounts)) {
469
+ return state;
470
+ }
471
+
472
+ var _configuration3 = (0, _set["default"])(state.configuration, _selectedAmountsPath, (0, _omit["default"])(_objectSpread(_objectSpread({}, _selectedAmounts), {}, _defineProperty({}, dstIdentifier, _selectedAmounts[srcIdentifier])), srcIdentifier));
473
+
474
+ return _objectSpread(_objectSpread({}, state), {}, {
475
+ configuration: _configuration3
476
+ });
477
+ }
478
+
479
+ case actionTypes.SET_SELECTED_AMOUNTS:
480
+ {
481
+ var _selectedAmountsPath2 = 'configuration.customdata.selectedAmounts';
482
+
483
+ var _selectedAmounts2 = (0, _get["default"])(state, _selectedAmountsPath2, {});
484
+
485
+ var nextAmounts = _objectSpread(_objectSpread({}, _selectedAmounts2), action.sizes);
486
+
487
+ var newState = _objectSpread(_objectSpread({}, state), {}, {
488
+ selectedAmountsUpdated: !!action.isUpdatedByUser
489
+ });
490
+
491
+ return (0, _set["default"])(newState, _selectedAmountsPath2, _objectSpread({}, (0, _reduce["default"])(nextAmounts, function (selectedAmounts, amount, identifier) {
492
+ if (amount !== 0) {
493
+ return _objectSpread(_objectSpread({}, selectedAmounts), {}, _defineProperty({}, identifier, amount));
494
+ } else {
495
+ return selectedAmounts;
496
+ }
497
+ }, {})));
498
+ }
499
+
500
+ case actionTypes.DELETE_SELECTED_AMOUNTS:
501
+ {
502
+ var _selectedAmountsPath3 = 'configuration.customdata.selectedAmounts';
503
+
504
+ var _selectedAmounts3 = _lodash["default"].cloneDeep((0, _get["default"])(state, _selectedAmountsPath3, {}));
505
+
506
+ (0, _forEach["default"])(_selectedAmounts3, function (selectedAmount, identifier) {
507
+ var variantIdentifier = _lodash["default"].find(action.variant.sizes, {
508
+ identifier: identifier
509
+ });
510
+
511
+ if (variantIdentifier) {
512
+ delete _selectedAmounts3[variantIdentifier.identifier];
513
+ }
514
+ });
515
+ return (0, _set["default"])(state, _selectedAmountsPath3, _selectedAmounts3);
516
+ }
517
+
518
+ default:
519
+ return state;
520
+ }
521
+ }
522
+
523
+ function configurationModifierHandler(state, action) {
524
+ switch (action.type) {
525
+ case actionTypes.SET_CUSTOM_TITLE:
526
+ {
527
+ return _objectSpread(_objectSpread({}, state), {}, {
528
+ configuration: _objectSpread(_objectSpread({}, state.configuration), {}, {
529
+ customdata: _objectSpread(_objectSpread({}, state.configuration.customdata), {}, {
530
+ title: action.title
531
+ })
532
+ })
533
+ });
534
+ }
535
+
536
+ case actionTypes.SET_COMMENT:
537
+ {
538
+ return _objectSpread(_objectSpread({}, state), {}, {
539
+ configuration: _objectSpread(_objectSpread({}, state.configuration), {}, {
540
+ customdata: _objectSpread(_objectSpread({}, state.configuration.customdata), {}, {
541
+ comment: action.comment
542
+ })
543
+ })
544
+ });
545
+ }
546
+
547
+ case actionTypes.CLEAR_BULKNAMES:
548
+ {
549
+ return (0, _set["default"])(state, 'configuration.customdata.bulkNames', {});
550
+ }
551
+
552
+ case actionTypes.SAVE_BULKNAMES:
553
+ {
554
+ var bulkNamesPath = 'configuration.customdata.bulkNames';
555
+ var bulkNames = (0, _get["default"])(state, bulkNamesPath, {});
556
+ return (0, _set["default"])(state, bulkNamesPath, _objectSpread(_objectSpread({}, bulkNames), {}, _defineProperty({}, action.identifier, action.bulkNamesData)));
557
+ }
558
+
559
+ case actionTypes.DELETE_SELECTED_AMOUNT:
560
+ {
561
+ var selectedAmountsPath = 'configuration.customdata.selectedAmounts';
562
+
563
+ var selectedAmounts = _lodash["default"].cloneDeep((0, _get["default"])(state, selectedAmountsPath, {}));
564
+
565
+ delete selectedAmounts[action.identifier];
566
+ return (0, _set["default"])(state, selectedAmountsPath, selectedAmounts);
567
+ }
568
+
569
+ case actionTypes.SET_SELECTED_CALCULATION:
570
+ {
571
+ return (0, _set["default"])(state, "configuration.customdata.userSelectedCalculation.".concat(action.identifier), action.value);
572
+ }
573
+
574
+ default:
575
+ return state;
576
+ }
577
+ }
578
+
579
+ function filterOptionclassifications(state, prevState) {
580
+ // if the optionclassifications has changed it should be re-filtered
581
+ if (prevState.configuration.optionclassifications !== state.configuration.optionclassifications) {
582
+ return _objectSpread(_objectSpread({}, state), {}, {
583
+ filteredOptionclassifications: state.configuration.optionclassifications
584
+ });
585
+ }
586
+ }
587
+
588
+ var subReducers = {
589
+ baseHandler: baseHandler,
590
+ configurationHandler: configurationHandler,
591
+ optionAndOptionclassificationHandler: optionAndOptionclassificationHandler,
592
+ calculationHandler: calculationHandler,
593
+ dataHandler: dataHandler,
594
+ uiHandler: uiHandler,
595
+ configurationModifierHandler: configurationModifierHandler,
596
+ designDataHandler: _Reducer.designDataHandler
597
+ };
598
+ var stateChangeReducers = {
599
+ filterOptionclassifications: filterOptionclassifications
600
+ };
601
+ var reducerArray = Object.values(subReducers);
602
+ var stateReducerArray = Object.values(stateChangeReducers);
603
+
604
+ var setSubReducers = function setSubReducers(customSubReducers) {
605
+ _lodash["default"].merge(subReducers, customSubReducers);
606
+
607
+ reducerArray = Object.values(subReducers);
608
+ };
609
+
610
+ exports.setSubReducers = setSubReducers;
611
+
612
+ var setStateChangeReducers = function setStateChangeReducers(customStateChangeReducers) {
613
+ _lodash["default"].merge(stateChangeReducers, customStateChangeReducers);
614
+
615
+ stateReducerArray = Object.values(stateChangeReducers);
616
+ };
617
+
618
+ exports.setStateChangeReducers = setStateChangeReducers;
619
+
620
+ function configuratorReducer() {
621
+ var prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
622
+ var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
623
+ // apply the reducers after each other (from left to right)
624
+ // the idea comes from reduce-reducers package (https://github.com/redux-utilities/reduce-reducers)
625
+ var nextState = reducerArray.reduce(function (newState, reducer) {
626
+ return reducer(newState, action) || newState;
627
+ }, prevState); // apply the state change reducers after each other (from left to right)
628
+
629
+ var state = stateReducerArray.reduce(function (newState, reducer) {
630
+ return reducer(newState, prevState, action) || newState;
631
+ }, nextState);
632
+ return state;
633
+ }
634
+
635
+ function filterOptionsWithDetails(options) {
636
+ return _lodash["default"].filter(options, function (option) {
637
+ return !!(option["abstract"] || option.description || option.detailImageExists === true);
638
+ });
639
+ }