@configuratorware/configurator-frontendgui 1.27.3-beta.1 → 1.27.3-beta.5

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 (458) 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 +497 -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 +185 -0
  43. package/App/Modules/Creator/Components/ProductPart/index.story.js +88 -0
  44. package/App/Modules/Creator/Components/ProductPartsList/index.js +150 -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 +49 -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 +460 -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 +233 -0
  135. package/App/Modules/Designer/Layouts/DefaultLayout.js +196 -0
  136. package/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +50 -0
  137. package/App/Modules/Designer/Layouts/PopupAreaProvider.js +186 -0
  138. package/App/Modules/Designer/Utils/FontFaceRepository.js +82 -0
  139. package/App/Modules/Designer/Utils/ImageEditUtils.js +104 -0
  140. package/App/Modules/Designer/Utils/Transformers.js +164 -0
  141. package/App/Modules/Designer/setupDesigner.js +182 -0
  142. package/App/Modules/Designer/withActiveCanvas.js +136 -0
  143. package/App/Modules/Visualization/AlignTargetContainer.js +55 -0
  144. package/App/Modules/Visualization/CreatorAlignTarget.js +41 -0
  145. package/App/Modules/Visualization/DefaultVisualizationProvider.js +105 -0
  146. package/App/Modules/Visualization/DesignerAlignTarget.js +45 -0
  147. package/App/Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj.js +20 -0
  148. package/App/Reducers/Actions.js +297 -0
  149. package/App/Reducers/ConfigurationMode/Actions.js +21 -0
  150. package/App/Reducers/ConfigurationMode/Reducer.js +80 -0
  151. package/App/Reducers/ConfigurationMode/Selectors.js +84 -0
  152. package/App/Reducers/Configurator/Actions.js +1417 -0
  153. package/App/Reducers/Configurator/AttributeSelectors.js +32 -0
  154. package/App/Reducers/Configurator/Modifiers.js +35 -0
  155. package/App/Reducers/Configurator/Reducer.js +639 -0
  156. package/App/Reducers/Configurator/Selectors.js +242 -0
  157. package/App/Reducers/Confirm/Actions.js +84 -0
  158. package/App/Reducers/Confirm/Reducer.js +30 -0
  159. package/App/Reducers/DesignArea/Actions.js +76 -0
  160. package/App/Reducers/DesignArea/DesignElementSelectors.js +114 -0
  161. package/App/Reducers/DesignArea/MaskSelectors.js +101 -0
  162. package/App/Reducers/DesignArea/Reducer.js +150 -0
  163. package/App/Reducers/DesignArea/Selectors.js +1314 -0
  164. package/App/Reducers/DesignArea/Transformers.js +333 -0
  165. package/App/Reducers/DesignData/Actions.js +232 -0
  166. package/App/Reducers/DesignData/Modifiers.js +328 -0
  167. package/App/Reducers/DesignData/Reducer.js +189 -0
  168. package/App/Reducers/DesignData/Selectors.js +94 -0
  169. package/App/Reducers/DesignData/Transformers.js +27 -0
  170. package/App/Reducers/DesignView/Actions.js +19 -0
  171. package/App/Reducers/DesignView/Reducer.js +165 -0
  172. package/App/Reducers/DesignView/Selectors.js +130 -0
  173. package/App/Reducers/DesignView/Transformers.js +32 -0
  174. package/App/Reducers/Device/Actions.js +16 -0
  175. package/App/Reducers/Device/Reducer.js +51 -0
  176. package/App/Reducers/Fonts/Actions.js +137 -0
  177. package/App/Reducers/Fonts/Reducer.js +39 -0
  178. package/App/Reducers/Fonts/Selectors.js +98 -0
  179. package/App/Reducers/GeneralActions.js +16 -0
  180. package/App/Reducers/ImageGallery/Actions.js +336 -0
  181. package/App/Reducers/ImageGallery/Modifiers.js +67 -0
  182. package/App/Reducers/ImageGallery/Reducer.js +320 -0
  183. package/App/Reducers/ImageGallery/Selectors.js +206 -0
  184. package/App/Reducers/Reducer.js +107 -0
  185. package/App/Reducers/UI/Actions.js +191 -0
  186. package/App/Reducers/UI/Reducer.js +98 -0
  187. package/App/Reducers/UI/Selectors.js +32 -0
  188. package/App/Reducers.js +48 -0
  189. package/App/Routing.js +168 -0
  190. package/App/Screens/Configurator/CalculationWidgetScreen.js +84 -0
  191. package/App/Screens/Configurator/Components/AmountSelection/Styles.scss +17 -0
  192. package/App/Screens/Configurator/Components/AmountSelection/index.js +170 -0
  193. package/App/Screens/Configurator/Components/AmountSelection/index.story.js +36 -0
  194. package/App/Screens/Configurator/Components/CalculationWidget/index.js +652 -0
  195. package/App/Screens/Configurator/Components/CalculationWidget/index.story.js +154 -0
  196. package/App/Screens/Configurator/Components/CalculationWidget/index.test.js +142 -0
  197. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +82 -0
  198. package/App/Screens/Configurator/Components/ConfigurationModeSwitch/index.js +15 -0
  199. package/App/Screens/Configurator/Components/Confirm/Styles.scss +0 -0
  200. package/App/Screens/Configurator/Components/Confirm/index.js +105 -0
  201. package/App/Screens/Configurator/Components/DesignApproval/index.js +76 -0
  202. package/App/Screens/Configurator/Components/DesignApproval/index.story.js +27 -0
  203. package/App/Screens/Configurator/Components/DesignApproval/index.test.js +31 -0
  204. package/App/Screens/Configurator/Components/Error/index.js +106 -0
  205. package/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +96 -0
  206. package/App/Screens/Configurator/Components/FileUpload/FileUploadBase.js +1 -0
  207. package/App/Screens/Configurator/Components/FullScreenView/index.js +303 -0
  208. package/App/Screens/Configurator/Components/FullScreenView/index.test.js +28 -0
  209. package/App/Screens/Configurator/Components/ImageLoader/ImageLoader.js +96 -0
  210. package/App/Screens/Configurator/Components/LandscapeInformation/index.js +75 -0
  211. package/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +35 -0
  212. package/App/Screens/Configurator/Components/PreviewPortal/index.js +246 -0
  213. package/App/Screens/Configurator/Components/Styles.scss +1 -0
  214. package/App/Screens/Configurator/Components/Thumbnail/index.js +394 -0
  215. package/App/Screens/Configurator/Components/Thumbnail/index.test.js +50 -0
  216. package/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +57 -0
  217. package/App/Screens/Configurator/Containers/AmountPrice.js +84 -0
  218. package/App/Screens/Configurator/Containers/CalculationWidget.js +278 -0
  219. package/App/Screens/Configurator/Containers/ConfigurationModeSwitch.js +81 -0
  220. package/App/Screens/Configurator/Containers/Confirm.js +37 -0
  221. package/App/Screens/Configurator/Containers/DesignApproval.js +129 -0
  222. package/App/Screens/Configurator/Containers/FallbackVisualization.js +32 -0
  223. package/App/Screens/Configurator/Containers/FullScreenView.js +46 -0
  224. package/App/Screens/Configurator/Containers/Thumbnail.js +41 -0
  225. package/App/Screens/Configurator/Containers/Visualization.js +13 -0
  226. package/App/Screens/Configurator/DesignerUI.js +215 -0
  227. package/App/Screens/Configurator/DynamicComponents.js +40 -0
  228. package/App/Screens/Configurator/Screen.js +236 -0
  229. package/App/Screens/Configurator/ScreenPropTypes.js +45 -0
  230. package/App/Screens/Configurator/ThemeProvider.js +298 -0
  231. package/App/Screens/DesignerProductPreview/Constants.js +12 -0
  232. package/App/Screens/DesignerProductPreview/DesignerProductPreviewManager.js +554 -0
  233. package/App/Screens/DesignerProductPreview/Screen.js +407 -0
  234. package/App/Screens.js +42 -0
  235. package/App/ServiceLocator.js +309 -0
  236. package/App/Services/AdminareaCommunicationService.js +149 -0
  237. package/App/Services/AnalyticsService.js +403 -0
  238. package/App/Services/ConfiguratorService.js +1122 -0
  239. package/App/Services/DesignDataService.js +3249 -0
  240. package/App/Services/DesignerService.js +496 -0
  241. package/App/Services/InteractionService.js +782 -0
  242. package/App/Services/UIService.js +129 -0
  243. package/App/Services/VisualizationService.js +842 -0
  244. package/App/Shared/Components/AcceptDesign/index.js +166 -0
  245. package/App/Shared/Components/AddToBasket/index.js +194 -0
  246. package/App/Shared/Components/AddToBasket/index.story.js +47 -0
  247. package/App/Shared/Components/AlertDialog/index.js +138 -0
  248. package/App/Shared/Components/AmountInput/Styles.scss +6 -0
  249. package/App/Shared/Components/AmountInput/index.js +296 -0
  250. package/App/Shared/Components/AmountInput/index.story.js +29 -0
  251. package/App/Shared/Components/AmountPrice/index.js +925 -0
  252. package/App/Shared/Components/AmountPrice/index.story.js +112 -0
  253. package/App/Shared/Components/AmountPrice/index.test.js +125 -0
  254. package/App/Shared/Components/Analytics/AnalyticsWrapper.js +49 -0
  255. package/App/Shared/Components/BulkNames/index.js +319 -0
  256. package/App/Shared/Components/CallToAction/index.js +220 -0
  257. package/App/Shared/Components/Header/Header.js +150 -0
  258. package/App/Shared/Components/Header/index.js +15 -0
  259. package/App/Shared/Components/Header/index.story.js +143 -0
  260. package/App/Shared/Components/InformationTag/InformationTag.js +155 -0
  261. package/App/Shared/Components/LicenseNotice/LicenseNotice.js +148 -0
  262. package/App/Shared/Components/LicenseNotice/index.js +15 -0
  263. package/App/Shared/Components/LoadConfiguration/index.js +218 -0
  264. package/App/Shared/Components/MessageBox/index.js +84 -0
  265. package/App/Shared/Components/MessageBox/index.story.js +49 -0
  266. package/App/Shared/Components/Notification/index.js +105 -0
  267. package/App/Shared/Components/Notification/index.story.js +55 -0
  268. package/App/Shared/Components/PdfDownload/index.js +150 -0
  269. package/App/Shared/Components/PlusMinusInput/index.js +118 -0
  270. package/App/Shared/Components/PriceList/index.js +237 -0
  271. package/App/Shared/Components/PriceList/index.story.js +114 -0
  272. package/App/Shared/Components/PriceOverview/index.js +177 -0
  273. package/App/Shared/Components/PriceOverview/index.story.js +215 -0
  274. package/App/Shared/Components/ProductVariant/Image.js +75 -0
  275. package/App/Shared/Components/ProductVariant/Styles.scss +11 -0
  276. package/App/Shared/Components/ProductVariant/index.js +477 -0
  277. package/App/Shared/Components/ProductVariant/index.story.js +283 -0
  278. package/App/Shared/Components/Progress/Progress.js +59 -0
  279. package/App/Shared/Components/ReceiveOfferForm/index.js +432 -0
  280. package/App/Shared/Components/ReceiveOfferForm/index.story.js +32 -0
  281. package/App/Shared/Components/ReceiveOfferForm/index.test.js +36 -0
  282. package/App/Shared/Components/SaveConfiguration/index.js +286 -0
  283. package/App/Shared/Components/SendEmail/index.js +103 -0
  284. package/App/Shared/Components/Stepper/index.js +136 -0
  285. package/App/Shared/Components/Stepper/index.story.js +38 -0
  286. package/App/Shared/Components/ToolbarList/index.js +231 -0
  287. package/App/Shared/Components/ToolbarList/index.story.js +33 -0
  288. package/App/Shared/Components/VariantChooser/index.js +270 -0
  289. package/App/Shared/Components/VariantChooser/index.story.js +100 -0
  290. package/App/Shared/Containers/AlertMessages.js +37 -0
  291. package/App/Shared/Containers/AmountPrice/AmountPriceAdminareaWrapper.js +40 -0
  292. package/App/Shared/Containers/AmountPrice/index.js +284 -0
  293. package/App/Shared/Containers/BulkNames.js +310 -0
  294. package/App/Shared/Containers/Error.js +37 -0
  295. package/App/Shared/Containers/GlobalLoader.js +25 -0
  296. package/App/Shared/Containers/Header/index.js +178 -0
  297. package/App/Shared/Containers/LicenseNotice/LicenseNotice.js +26 -0
  298. package/App/Shared/Containers/LicenseNotice/index.js +15 -0
  299. package/App/Shared/Containers/LoadConfiguration/LoadConfiguration.js +146 -0
  300. package/App/Shared/Containers/LoadConfiguration/index.js +15 -0
  301. package/App/Shared/Containers/PdfDownload/index.js +39 -0
  302. package/App/Shared/Containers/ProductVariant/ProductVariant.js +339 -0
  303. package/App/Shared/Containers/ProductVariant/index.js +15 -0
  304. package/App/Shared/Containers/SaveConfiguration.js +49 -0
  305. package/App/Shared/Containers/SendEmail/SendEmail.js +45 -0
  306. package/App/Shared/Containers/SendEmail/index.js +15 -0
  307. package/App/Shared/Providers/DefaultCanvasProvider.js +86 -0
  308. package/App/Storage.js +17 -0
  309. package/App/Store.js +87 -0
  310. package/App/Styles.scss +0 -0
  311. package/App/Translations.js +88 -0
  312. package/App/Utils/createMessageInterface.js +52 -0
  313. package/App/Utils/customClassName.js +12 -0
  314. package/App/Utils/getContrastText.js +27 -0
  315. package/App/Utils/getImageUrl.js +32 -0
  316. package/App/Variables.scss +84 -0
  317. package/App/configuration.js +421 -0
  318. package/App/index.js +52 -0
  319. package/App/initServices.js +67 -0
  320. package/App/setup.js +22 -0
  321. package/App/versionInfo.js +8 -0
  322. package/Framework/Api.js +178 -0
  323. package/Framework/ComponentContainer.js +165 -0
  324. package/Framework/Components/Carousel/Styles.scss +85 -0
  325. package/Framework/Components/Carousel/index.js +322 -0
  326. package/Framework/Components/Dialog/Style.scss +79 -0
  327. package/Framework/Components/Dialog/index.js +721 -0
  328. package/Framework/Components/DialogSelect/Styles.scss +53 -0
  329. package/Framework/Components/DialogSelect/index.js +331 -0
  330. package/Framework/Components/Input/index.js +147 -0
  331. package/Framework/Components/LoadingOverlay/Styles.scss +37 -0
  332. package/Framework/Components/LoadingOverlay/index.js +33 -0
  333. package/Framework/Components/Markdown/index.js +62 -0
  334. package/Framework/Components/Mobile/index.js +33 -0
  335. package/Framework/CustomError.js +51 -0
  336. package/Framework/Helpers/TransitionDetect.js +116 -0
  337. package/Framework/Helpers/isLandscapeMobile.js +14 -0
  338. package/Framework/Helpers/isMobileDevice.js +17 -0
  339. package/Framework/Helpers/isMobileSize.js +13 -0
  340. package/Framework/Mixins.scss +235 -0
  341. package/Framework/Services/AbstractAdminareaCommunicationService.js +48 -0
  342. package/Framework/Services/AbstractAsyncService.js +44 -0
  343. package/Framework/Services/AbstractConfiguratorService.js +47 -0
  344. package/Framework/Services/AbstractInteractionService.js +50 -0
  345. package/Framework/Services/AbstractStoreService.js +42 -0
  346. package/Framework/Services/AbstractUIService.js +53 -0
  347. package/Framework/Services/AbstractVisualizationService.js +47 -0
  348. package/Framework/Services/AsyncService.js +93 -0
  349. package/Framework/Services/StoreService.js +237 -0
  350. package/Framework/Variables.scss +22 -0
  351. package/Framework/bindDecorator.js +173 -0
  352. package/Framework/i18n.js +383 -0
  353. package/README.md +5 -26
  354. package/Resources/Icons/MaterialUI/Icons/AddCircle.js +13 -0
  355. package/Resources/Icons/MaterialUI/Icons/RemoveCircle.js +13 -0
  356. package/Resources/Icons/MaterialUI/fontFace.scss +37 -0
  357. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.eot +0 -0
  358. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.svg +2373 -0
  359. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.ttf +0 -0
  360. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff +0 -0
  361. package/Resources/Icons/MaterialUI/fonts/MaterialIcons-Regular.woff2 +0 -0
  362. package/Resources/Icons/fonts/ionicons.eot +0 -0
  363. package/Resources/Icons/fonts/ionicons.svg +2230 -0
  364. package/Resources/Icons/fonts/ionicons.ttf +0 -0
  365. package/Resources/Icons/fonts/ionicons.woff +0 -0
  366. package/Resources/Icons/ionicons.scss +1489 -0
  367. package/Resources/Icons/ioniconsExtend.scss +1469 -0
  368. package/Resources/Icons/v4/fontFace.scss +11 -0
  369. package/Resources/Icons/v4/fonts/ionicons.eot +0 -0
  370. package/Resources/Icons/v4/fonts/ionicons.svg +2090 -0
  371. package/Resources/Icons/v4/fonts/ionicons.ttf +0 -0
  372. package/Resources/Icons/v4/fonts/ionicons.woff +0 -0
  373. package/Resources/Icons/v4/fonts/ionicons.woff2 +0 -0
  374. package/Resources/Icons/v4/icons.scss +15 -0
  375. package/Resources/Icons/v4/iconsExtend.scss +7 -0
  376. package/Resources/Images/designer_placeholder_logo.svg +1 -0
  377. package/Resources/Masks/circle.svg +4 -0
  378. package/Shared/Components/CustomDialog.js +132 -0
  379. package/Shared/Components/CustomDialogSelect.js +161 -0
  380. package/Shared/Components/MainButton.js +81 -0
  381. package/Shared/ErrorTypes/DeferredError.js +51 -0
  382. package/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +60 -0
  383. package/Shared/HOCs/ResizeDetect/ResizeDetect.js +217 -0
  384. package/Shared/HOCs/getDisplayName.js +10 -0
  385. package/Shared/HOCs/withFixedChangeHandler.js +46 -0
  386. package/Shared/PropTypes/ReactComponent.js +13 -0
  387. package/Shared/Styles/absoluteCenter.js +17 -0
  388. package/Utils/Array/isIdentical.js +38 -0
  389. package/Utils/Async/AsyncManager.js +128 -0
  390. package/Utils/Async/Deferred.js +146 -0
  391. package/Utils/Async/ObjectLock.js +38 -0
  392. package/Utils/Decorators/Observable.js +130 -0
  393. package/Utils/Dev/HOCs/withFilePicker.js +101 -0
  394. package/Utils/Dev/isDev.js +21 -0
  395. package/Utils/Events/pointerEvent.js +199 -0
  396. package/Utils/Events/preventEventDoubling.js +23 -0
  397. package/Utils/Function/cached.js +64 -0
  398. package/Utils/Function/createDebounceManager.js +77 -0
  399. package/Utils/Function/createSelector.js +62 -0
  400. package/Utils/Function/memoize.js +46 -0
  401. package/Utils/Function/sendMessage.js +22 -0
  402. package/Utils/Helper/createSelectionRangeMemo.js +45 -0
  403. package/Utils/Immutable/set.js +81 -0
  404. package/Utils/Math/conversions.js +13 -0
  405. package/Utils/Math/isPositiveNumber.js +12 -0
  406. package/Utils/Redux/createActionWithGlobalState.js +23 -0
  407. package/Utils/Styles/combineMediaQueries.js +24 -0
  408. package/Utils/Styles/createCheckerBoardBackground.js +22 -0
  409. package/Utils/Test/CallOrderChecker.js +29 -0
  410. package/Utils/Test/createStoreProvider.js +33 -0
  411. package/Utils/Test/formDataToJSON.js +20 -0
  412. package/Utils/Test/mountWithState.js +40 -0
  413. package/index.js +8 -0
  414. package/package.json +20 -102
  415. package/scripts/cpPublic.js +3 -3
  416. package/scripts/getDefaultWebpackConfig.js +11 -10
  417. package/src/App/Error/ProductionErrorPage/Style.scss +1 -1
  418. package/src/App/Modules/Creator/Components/Option/index.js +1 -0
  419. package/src/App/Modules/Creator/Components/Option/index.test.js +1 -1
  420. package/src/App/Modules/Creator/Components/OptionAmount/index.test.js +1 -1
  421. package/src/App/Modules/Creator/Components/ProductPart/index.js +1 -0
  422. package/src/App/Modules/Creator/Components/ProductPart/index.test.js +1 -1
  423. package/src/App/Modules/Designer/Components/AddGalleryImage/index.story.js +1 -1
  424. package/src/App/Modules/Designer/Components/ColorPalettes/index.test.jsx +1 -1
  425. package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.test.jsx +1 -1
  426. package/src/App/Modules/Designer/Components/TextControlbox/index.test.jsx +1 -1
  427. package/src/App/Reducers/Configurator/Actions.js +13 -3
  428. package/src/App/Reducers/DesignArea/Selectors.js +9 -7
  429. package/src/App/Reducers/DesignView/Actions.js +1 -2
  430. package/src/App/Reducers/DesignView/Reducer.js +2 -10
  431. package/src/App/Reducers/DesignView/__mocks__/designerViewData.js +0 -1
  432. package/src/App/Reducers/DesignView/__tests__/Reducer.test.js +0 -22
  433. package/src/App/Reducers/ImageGallery/Actions.js +1 -1
  434. package/src/App/Reducers/UI/Actions.js +8 -0
  435. package/src/App/Reducers/UI/Reducer.js +3 -1
  436. package/src/App/Screens/Configurator/Components/CalculationWidget/index.test.jsx +1 -1
  437. package/src/App/Screens/Configurator/Components/DesignApproval/index.test.jsx +1 -1
  438. package/src/App/Screens/Configurator/Components/FullScreenView/index.test.jsx +1 -1
  439. package/src/App/Screens/Configurator/Containers/AmountPrice.js +1 -1
  440. package/src/App/Screens/Configurator/Containers/Confirm.js +1 -1
  441. package/src/App/Screens/Configurator/Screen.js +1 -1
  442. package/src/App/Screens/Configurator/ThemeProvider.js +1 -0
  443. package/src/App/Services/__tests__/DesignDataService.selectViewForComponent.test.js +0 -53
  444. package/src/App/Shared/Containers/AlertMessages.js +1 -1
  445. package/src/App/Shared/Containers/AmountPrice/index.test.js +1 -1
  446. package/src/App/Shared/Containers/Error.js +1 -1
  447. package/src/App/Shared/Containers/SaveConfiguration.js +1 -1
  448. package/src/App/Translations.js +1 -1
  449. package/src/Framework/Components/Carousel/index.js +29 -8
  450. package/src/Framework/i18n.js +2 -3
  451. package/babel.config.js +0 -46
  452. package/public/ConfigurationMessagingDemo.html +0 -55
  453. package/scripts/cpPath.js +0 -135
  454. package/scripts/moveLibToPackageRoot.js +0 -40
  455. package/scripts/rmDir.js +0 -29
  456. package/scripts/updateLocalPackages.js +0 -68
  457. package/scripts/utils/process.js +0 -19
  458. package/tsconfig.json +0 -22
@@ -0,0 +1,554 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createDesignerProductPreviewManager = createDesignerProductPreviewManager;
9
+
10
+ var _get = _interopRequireDefault(require("lodash/get"));
11
+
12
+ var storage = _interopRequireWildcard(require("../../Storage"));
13
+
14
+ var _Constants = require("./Constants");
15
+
16
+ var _ServiceLocator = require("../../ServiceLocator");
17
+
18
+ var _Selectors = require("../../Reducers/DesignArea/Selectors");
19
+
20
+ var _Selectors2 = require("../../Reducers/Configurator/Selectors");
21
+
22
+ var _Actions = require("../../Reducers/ImageGallery/Actions");
23
+
24
+ var _Modifiers = require("../../Reducers/DesignData/Modifiers");
25
+
26
+ var _DesignDataService = require("../../Services/DesignDataService");
27
+
28
+ var _getFirstDataURLFromScreenshotsObj = require("../../Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj");
29
+
30
+ var _createMessageInterface = _interopRequireDefault(require("../../Utils/createMessageInterface"));
31
+
32
+ var _excluded = ["event"];
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
39
+
40
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
41
+
42
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
43
+
44
+ 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; }
45
+
46
+ 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; }
47
+
48
+ 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; }
49
+
50
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
51
+
52
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
53
+
54
+ /**
55
+ * A helper function that prepares the image data to be used on the design area
56
+ * In case of design production methods with embroidery effect it also creates the color map for the image,
57
+ * so it can be shown as it was added from the image edit dialog.
58
+ * It uses memoization in order to minimize the execution time for repeated requests
59
+ */
60
+ var prepareImageData = function createImageDataPreProcessor() {
61
+ var lastHash;
62
+ var imageDataMemo = new Map();
63
+
64
+ function getImageDataHash(imageData) {
65
+ return JSON.stringify(['identifier', 'preview.url', 'operations.clipping', 'operations.clippingColor'].map(function (prop) {
66
+ return (0, _get["default"])(imageData, prop);
67
+ }));
68
+ }
69
+
70
+ return /*#__PURE__*/function () {
71
+ var _prepareImageData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(designArea, imageData) {
72
+ var hash, state, designProductionMethod, patchedImageData, colorPreviewRequired, svgContent, svgColors, vectorizeColorsMap;
73
+ return regeneratorRuntime.wrap(function _callee$(_context) {
74
+ while (1) {
75
+ switch (_context.prev = _context.next) {
76
+ case 0:
77
+ hash = getImageDataHash(imageData);
78
+
79
+ if (hash !== lastHash) {
80
+ lastHash = hash;
81
+ imageDataMemo.clear();
82
+ }
83
+
84
+ state = _ServiceLocator.Services.store.state;
85
+ designProductionMethod = (0, _Selectors.getSelectedDesignProductionMethodForDesignArea)(state, designArea);
86
+
87
+ if (!imageDataMemo.has(designProductionMethod.identifier)) {
88
+ _context.next = 6;
89
+ break;
90
+ }
91
+
92
+ return _context.abrupt("return", imageDataMemo.get(designProductionMethod.identifier));
93
+
94
+ case 6:
95
+ colorPreviewRequired = (0, _Selectors.designProductionMethodHasEmbroideryVisualizationEffect)(designProductionMethod);
96
+
97
+ if (!colorPreviewRequired) {
98
+ _context.next = 16;
99
+ break;
100
+ }
101
+
102
+ _context.next = 10;
103
+ return (0, _DesignDataService.getSvgContent)(imageData.preview.url, false, true);
104
+
105
+ case 10:
106
+ svgContent = _context.sent;
107
+ svgColors = (0, _DesignDataService.getSvgColors)(svgContent, designProductionMethod);
108
+ vectorizeColorsMap = (0, _Modifiers.createVectorizeColorsMap)({}, svgColors);
109
+ patchedImageData = _objectSpread(_objectSpread({}, imageData), {}, {
110
+ colorPreviewRequired: true,
111
+ displayColorPreview: true,
112
+ colorPreviewEnabled: true,
113
+ operations: _objectSpread(_objectSpread({}, imageData.operations), {}, {
114
+ vectorizeColorsMap: vectorizeColorsMap
115
+ })
116
+ });
117
+ _context.next = 17;
118
+ break;
119
+
120
+ case 16:
121
+ // the color replacement call returns the same url for every call, making the browser serve the image
122
+ // from cache, to force reloading a random query string has to be added to the url
123
+ patchedImageData = _objectSpread(_objectSpread({}, imageData), {}, {
124
+ preview: _objectSpread(_objectSpread({}, imageData.preview), {}, {
125
+ url: imageData.preview.url.replace(/svg|png$/, "png?".concat(Math.random()))
126
+ })
127
+ });
128
+
129
+ case 17:
130
+ imageDataMemo.set(designProductionMethod.identifier, patchedImageData);
131
+ return _context.abrupt("return", patchedImageData);
132
+
133
+ case 19:
134
+ case "end":
135
+ return _context.stop();
136
+ }
137
+ }
138
+ }, _callee);
139
+ }));
140
+
141
+ function prepareImageData(_x, _x2) {
142
+ return _prepareImageData.apply(this, arguments);
143
+ }
144
+
145
+ return prepareImageData;
146
+ }();
147
+ }();
148
+ /**
149
+ * Creates a preview item object, which is responsible for
150
+ * - loading the product,
151
+ * - adding the image to the design area,
152
+ * - creating the preview image
153
+ * - additionally it helps to control the flow
154
+ * @param identifier
155
+ * @param event
156
+ */
157
+
158
+
159
+ function createPreviewItem(identifier, event) {
160
+ var PreviewItemStatus = {
161
+ pending: 1,
162
+ loading: 2,
163
+ loaded: 3,
164
+ screenshotting: 4,
165
+ finished: 5
166
+ };
167
+ var status = PreviewItemStatus.pending;
168
+ var image;
169
+ var error;
170
+ /**
171
+ * @return {Promise<void>}
172
+ */
173
+
174
+ function load() {
175
+ return _load.apply(this, arguments);
176
+ }
177
+ /**
178
+ * @param {object} imageData
179
+ * @param {object} size
180
+ * @return {Promise<{identifier: string, image: string, error: string, event: *}|undefined>}
181
+ */
182
+
183
+
184
+ function _load() {
185
+ _load = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
186
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
187
+ while (1) {
188
+ switch (_context2.prev = _context2.next) {
189
+ case 0:
190
+ status = PreviewItemStatus.loading;
191
+ _context2.prev = 1;
192
+
193
+ _ServiceLocator.Services.configurator.setLoadIdentifier(identifier);
194
+
195
+ _context2.next = 5;
196
+ return _ServiceLocator.Services.configurator.loadConfigurationForDesignerProductPreview();
197
+
198
+ case 5:
199
+ status = PreviewItemStatus.loaded;
200
+ _context2.next = 12;
201
+ break;
202
+
203
+ case 8:
204
+ _context2.prev = 8;
205
+ _context2.t0 = _context2["catch"](1);
206
+ error = _context2.t0.toString();
207
+ status = PreviewItemStatus.finished;
208
+
209
+ case 12:
210
+ case "end":
211
+ return _context2.stop();
212
+ }
213
+ }
214
+ }, _callee2, null, [[1, 8]]);
215
+ }));
216
+ return _load.apply(this, arguments);
217
+ }
218
+
219
+ function createImage(_x3, _x4) {
220
+ return _createImage.apply(this, arguments);
221
+ }
222
+
223
+ function _createImage() {
224
+ _createImage = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(imageData, size) {
225
+ var state, filteredDesignAreas, defaultDesignAreaIdentifier, designArea, areaList, viewList, variantList, screenshot;
226
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
227
+ while (1) {
228
+ switch (_context3.prev = _context3.next) {
229
+ case 0:
230
+ if (!(status === PreviewItemStatus.loaded)) {
231
+ _context3.next = 4;
232
+ break;
233
+ }
234
+
235
+ status = PreviewItemStatus.screenshotting;
236
+ _context3.next = 5;
237
+ break;
238
+
239
+ case 4:
240
+ return _context3.abrupt("return");
241
+
242
+ case 5:
243
+ _context3.prev = 5;
244
+ state = _ServiceLocator.Services.store.state;
245
+ filteredDesignAreas = state.designArea.filteredDesignAreas;
246
+ defaultDesignAreaIdentifier = (0, _Selectors.getDefaultDesignAreaIdentifierFromProductionMethod)(state);
247
+ designArea = filteredDesignAreas.find(function (_ref) {
248
+ var identifier = _ref.identifier;
249
+ return identifier === defaultDesignAreaIdentifier;
250
+ }) || filteredDesignAreas[0];
251
+ areaList = designArea ? [designArea.identifier] : [];
252
+ viewList = (0, _Selectors.getCameraViewListForDesignAreaList)(filteredDesignAreas, areaList);
253
+ variantList = [(0, _Selectors2.getSelectedVariantIdentifier)(state.configurator)];
254
+
255
+ _ServiceLocator.Services.designData.toggleHighlight(false, false);
256
+
257
+ if (!designArea) {
258
+ _context3.next = 22;
259
+ break;
260
+ }
261
+
262
+ _context3.t0 = _ServiceLocator.Services.designData;
263
+ _context3.t1 = designArea;
264
+ _context3.next = 19;
265
+ return prepareImageData(designArea, imageData);
266
+
267
+ case 19:
268
+ _context3.t2 = _context3.sent;
269
+ _context3.next = 22;
270
+ return _context3.t0.addImageToDesignArea.call(_context3.t0, _context3.t1, _context3.t2);
271
+
272
+ case 22:
273
+ _context3.next = 24;
274
+ return _ServiceLocator.Services.visualization.getScreenshots({
275
+ areaList: areaList,
276
+ viewList: viewList,
277
+ variantList: variantList,
278
+ size: size
279
+ });
280
+
281
+ case 24:
282
+ screenshot = _context3.sent;
283
+ image = (0, _getFirstDataURLFromScreenshotsObj.getFirstDataURLFromScreenshotsObj)(screenshot);
284
+ status = PreviewItemStatus.finished;
285
+ _context3.next = 33;
286
+ break;
287
+
288
+ case 29:
289
+ _context3.prev = 29;
290
+ _context3.t3 = _context3["catch"](5);
291
+ error = _context3.t3.toString();
292
+ status = PreviewItemStatus.finished;
293
+
294
+ case 33:
295
+ return _context3.abrupt("return", {
296
+ identifier: identifier,
297
+ image: image,
298
+ error: error,
299
+ event: event
300
+ });
301
+
302
+ case 34:
303
+ case "end":
304
+ return _context3.stop();
305
+ }
306
+ }
307
+ }, _callee3, null, [[5, 29]]);
308
+ }));
309
+ return _createImage.apply(this, arguments);
310
+ }
311
+
312
+ return {
313
+ load: load,
314
+ createImage: createImage,
315
+ isFinished: function isFinished() {
316
+ return status === PreviewItemStatus.finished;
317
+ }
318
+ };
319
+ }
320
+ /**
321
+ * Helper interface for localStorage
322
+ * @param {object} options
323
+ */
324
+
325
+
326
+ function createStorage() {
327
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
328
+ var _options$localStorage = options.localStorage,
329
+ localStorage = _options$localStorage === void 0 ? storage : _options$localStorage;
330
+ return {
331
+ /**
332
+ * @param {string} key
333
+ * @param {any} value
334
+ */
335
+ set: function set(key, value) {
336
+ localStorage.local.setItem(key, JSON.stringify(value));
337
+ },
338
+
339
+ /**
340
+ * @param {string} key
341
+ * @return {any}
342
+ */
343
+ get: function get(key) {
344
+ try {
345
+ var serializedValue = localStorage.local.getItem(key);
346
+ return serializedValue && JSON.parse(serializedValue);
347
+ } catch (e) {// ignore errors
348
+ }
349
+ }
350
+ };
351
+ }
352
+ /**
353
+ * Provides interface to both the container window (with postMessage API) and the React component
354
+ * Further responsibilities:
355
+ * - stores the applied image in localStorage or in memory if not available and restores it on page load
356
+ * - hooks into the visualization service to get notified when it is ready to create the preview image
357
+ * @param {object} options
358
+ */
359
+
360
+
361
+ function createDesignerProductPreviewManager() {
362
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
363
+ var _options$localStorage2 = options.localStorage,
364
+ localStorage = _options$localStorage2 === void 0 ? createStorage() : _options$localStorage2,
365
+ _options$messageInter = options.messageInterface,
366
+ messageInterface = _options$messageInter === void 0 ? (0, _createMessageInterface["default"])() : _options$messageInter;
367
+ var currentImageData = localStorage.get(_Constants.imageDataKey);
368
+ var size = {
369
+ width: 200,
370
+ height: 200
371
+ };
372
+ var currentItem;
373
+ var previewRequests = [];
374
+ var previewStack = []; //// actions provided for the container window
375
+
376
+ /**
377
+ * Usage from the container window:
378
+ * configuratorIframe.postMessage({
379
+ * type: 'setItemIdentifiers',
380
+ * identifiers: ['product1', 'product2', ...]
381
+ * })
382
+ * @param event
383
+ */
384
+
385
+ messageInterface.addListener('setItemIdentifiers', function setItemIdentifiers(event) {
386
+ previewRequests.length = 0; // clear all previous element
387
+
388
+ var identifiers = (0, _get["default"])(event, 'data.identifiers') || [];
389
+ identifiers.forEach(function (identifier) {
390
+ previewRequests.push({
391
+ identifier: identifier,
392
+ event: event
393
+ });
394
+ }); // if image is available, update products when new identifiers arrive
395
+
396
+ if ((0, _get["default"])(currentImageData, 'preview.url')) {
397
+ updateImages();
398
+ }
399
+ });
400
+ /**
401
+ * Usage from the container window:
402
+ * configuratorIframe.postMessage({
403
+ * type: 'setSize',
404
+ * size: { width: 800, height: 600 }
405
+ * })
406
+ * @param event
407
+ */
408
+
409
+ messageInterface.addListener('setSize', function setSize(event) {
410
+ var width = +(0, _get["default"])(event, 'data.size.width');
411
+ var height = +(0, _get["default"])(event, 'data.size.height');
412
+
413
+ if (width) {
414
+ size.width = width;
415
+ }
416
+
417
+ if (height) {
418
+ size.height = height;
419
+ }
420
+ }); //// actions dispatched to the container window
421
+ // notifies the origin if a preview image is ready to be shown
422
+
423
+ function dispatchPreviewItem(screenshotItem) {
424
+ var event = screenshotItem.event,
425
+ previewData = _objectWithoutProperties(screenshotItem, _excluded);
426
+
427
+ messageInterface.dispatch(_objectSpread({
428
+ type: 'configuratorware_designer_preview_widget_dataready'
429
+ }, previewData), {
430
+ targetWindow: event.source
431
+ });
432
+ } // tells the container window the preview widget is ready and started listening for actions
433
+
434
+
435
+ function dispatchLoaded() {
436
+ messageInterface.dispatch({
437
+ type: 'configuratorware_designer_preview_widget_loaded'
438
+ });
439
+ } //// flow control helpers
440
+
441
+
442
+ function processNextProduct() {
443
+ setTimeout(function () {
444
+ if (currentItem && !currentItem.isFinished()) {
445
+ return;
446
+ }
447
+
448
+ currentItem = previewStack.pop();
449
+
450
+ if (!currentItem) {
451
+ _ServiceLocator.Services.ui.hide(_Constants.loaderKey);
452
+
453
+ return;
454
+ }
455
+
456
+ currentItem.load();
457
+ });
458
+ }
459
+
460
+ function createPreviewImage() {
461
+ return _createPreviewImage.apply(this, arguments);
462
+ }
463
+
464
+ function _createPreviewImage() {
465
+ _createPreviewImage = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
466
+ var previewItem;
467
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
468
+ while (1) {
469
+ switch (_context4.prev = _context4.next) {
470
+ case 0:
471
+ if (currentItem) {
472
+ _context4.next = 3;
473
+ break;
474
+ }
475
+
476
+ processNextProduct();
477
+ return _context4.abrupt("return");
478
+
479
+ case 3:
480
+ _context4.next = 5;
481
+ return currentItem.createImage(currentImageData, size);
482
+
483
+ case 5:
484
+ previewItem = _context4.sent;
485
+
486
+ if (!(!currentItem.isFinished() || !previewItem)) {
487
+ _context4.next = 8;
488
+ break;
489
+ }
490
+
491
+ return _context4.abrupt("return");
492
+
493
+ case 8:
494
+ dispatchPreviewItem(previewItem);
495
+ processNextProduct();
496
+
497
+ case 10:
498
+ case "end":
499
+ return _context4.stop();
500
+ }
501
+ }
502
+ }, _callee4);
503
+ }));
504
+ return _createPreviewImage.apply(this, arguments);
505
+ }
506
+
507
+ function updateImages() {
508
+ currentItem = null;
509
+
510
+ _ServiceLocator.Services.ui.show(_Constants.loaderKey);
511
+
512
+ previewRequests.forEach(function (_ref2) {
513
+ var identifier = _ref2.identifier,
514
+ event = _ref2.event;
515
+ previewStack.push(createPreviewItem(identifier, event));
516
+ });
517
+ processNextProduct();
518
+ } //// the public interface provided to the React component
519
+
520
+ /**
521
+ * @param {function} [options.onRestoreImage]
522
+ */
523
+
524
+
525
+ function init() {
526
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
527
+ var onRestoreImage = options.onRestoreImage; // first rendering triggers the preview image creation
528
+
529
+ _ServiceLocator.Services.visualization.registerVisualizationUpdateListener(createPreviewImage); // restore the image data directly (if there is any)
530
+
531
+
532
+ currentImageData && _ServiceLocator.Services.store.dispatch((0, _Actions.setSelectedImageData)(currentImageData));
533
+ currentImageData && onRestoreImage && setTimeout(function () {
534
+ return onRestoreImage(currentImageData);
535
+ });
536
+ dispatchLoaded();
537
+ }
538
+ /**
539
+ * @param {object} [imageData]
540
+ */
541
+
542
+
543
+ function useImage() {
544
+ var imageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ServiceLocator.Services.store.state.imageGallery.selectedImage;
545
+ currentImageData = imageData;
546
+ localStorage.set(_Constants.imageDataKey, imageData);
547
+ previewRequests.length && updateImages();
548
+ }
549
+
550
+ return {
551
+ init: init,
552
+ useImage: useImage
553
+ };
554
+ }