@configuratorware/configurator-frontendgui 1.41.1 → 1.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App/Constant.js +2 -3
- package/App/Error/DevelopmentErrorPage/index.js +4 -19
- package/App/Error/ErrorBoundary.js +13 -43
- package/App/Error/ProductionErrorPage/index.js +2 -11
- package/App/Error/ProductionErrorPage/index.story.js +0 -4
- package/App/Frame.js +10 -43
- package/App/Modules/Creator/Components/ConfigurationvariantItem/index.js +15 -58
- package/App/Modules/Creator/Components/ConfigurationvariantSelection/index.js +20 -60
- package/App/Modules/Creator/Components/CustomTitleEditor/index.js +15 -64
- package/App/Modules/Creator/Components/ExternalVisualization/index.js +19 -47
- package/App/Modules/Creator/Components/FastConfiguration/SelectableRow.js +10 -37
- package/App/Modules/Creator/Components/FastConfiguration/index.js +37 -101
- package/App/Modules/Creator/Components/FastConfigurationRow/index.js +12 -38
- package/App/Modules/Creator/Components/FastConfigurationSelect/index.js +29 -85
- package/App/Modules/Creator/Components/FormattedNumber/index.js +1 -17
- package/App/Modules/Creator/Components/FormattedPrice/index.js +1 -19
- package/App/Modules/Creator/Components/FullScreenView/FullScreenView.js +17 -36
- package/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +24 -61
- package/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +24 -60
- package/App/Modules/Creator/Components/Incompatibility/RuleComponent.js +12 -45
- package/App/Modules/Creator/Components/Incompatibility/index.js +28 -89
- package/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +14 -53
- package/App/Modules/Creator/Components/LoginForm/index.js +14 -52
- package/App/Modules/Creator/Components/Option/index.js +53 -155
- package/App/Modules/Creator/Components/Option/index.story.js +6 -17
- package/App/Modules/Creator/Components/OptionAmount/index.js +33 -74
- package/App/Modules/Creator/Components/OptionGroup/index.js +10 -23
- package/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +26 -68
- package/App/Modules/Creator/Components/Optiondetail/index.js +44 -129
- package/App/Modules/Creator/Components/Optiondetail/index.story.js +11 -72
- package/App/Modules/Creator/Components/Optiondetail/index.test.mocks.js +56 -0
- package/App/Modules/Creator/Components/OptionsList/index.js +31 -81
- package/App/Modules/Creator/Components/Price/index.js +12 -40
- package/App/Modules/Creator/Components/ProductPart/index.js +14 -46
- package/App/Modules/Creator/Components/ProductPart/index.story.js +6 -17
- package/App/Modules/Creator/Components/ProductPartsList/index.js +25 -68
- package/App/Modules/Creator/Components/ProductPartsList/index.story.js +6 -21
- package/App/Modules/Creator/Components/SavedConfiguration/index.js +13 -45
- package/App/Modules/Creator/Components/ShareConfiguration/index.js +31 -90
- package/App/Modules/Creator/Components/StockInformation/index.js +13 -44
- package/App/Modules/Creator/Components/StoreConfigurationForm/index.js +15 -52
- package/App/Modules/Creator/Components/Tools/index.js +11 -45
- package/App/Modules/Creator/Components/ValidationResult/index.js +16 -62
- package/App/Modules/Creator/Components/index.js +2 -29
- package/App/Modules/Creator/Containers/AmountPrice/index.js +3 -12
- package/App/Modules/Creator/Containers/ConfigurationvariantSelection/index.js +5 -19
- package/App/Modules/Creator/Containers/CustomTitleEditor/index.js +4 -19
- package/App/Modules/Creator/Containers/FastConfiguration/index.js +6 -20
- package/App/Modules/Creator/Containers/FormattedPrice/index.js +4 -13
- package/App/Modules/Creator/Containers/Incompatibility/index.js +2 -12
- package/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +8 -31
- package/App/Modules/Creator/Containers/LoadingOverlay/index.js +2 -9
- package/App/Modules/Creator/Containers/Optiondetail/index.js +7 -18
- package/App/Modules/Creator/Containers/OptionsList/index.js +3 -15
- package/App/Modules/Creator/Containers/ProductPart/index.js +1 -9
- package/App/Modules/Creator/Containers/ProductPartsList/index.js +3 -16
- package/App/Modules/Creator/Containers/SavedConfigurationContainer/index.js +1 -8
- package/App/Modules/Creator/Containers/ShareConfiguration/index.js +2 -10
- package/App/Modules/Creator/Containers/StockInformation/index.js +2 -10
- package/App/Modules/Creator/Containers/Tools/index.js +1 -10
- package/App/Modules/Creator/Containers/ValidationResult/index.js +2 -10
- package/App/Modules/Creator/Containers/index.js +42 -64
- package/App/Modules/Creator/CreatorScreen.js +45 -121
- package/App/Modules/Creator/Layouts/DefaultLayout.js +21 -50
- package/App/Modules/Designer/Components/AddGalleryImage/index.js +31 -92
- package/App/Modules/Designer/Components/AddGalleryImage/index.story.js +9 -22
- package/App/Modules/Designer/Components/AddGalleryImage/index.test.js +13 -35
- package/App/Modules/Designer/Components/AddVisualElement/index.js +30 -86
- package/App/Modules/Designer/Components/AddVisualElement/index.story.js +0 -5
- package/App/Modules/Designer/Components/AddVisualElement/index.test.js +12 -15
- package/App/Modules/Designer/Components/CloseDesignEditor/index.js +18 -51
- package/App/Modules/Designer/Components/CloseGraphicsEditorButton/index.js +7 -17
- package/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +20 -57
- package/App/Modules/Designer/Components/ColorPalettes/index.js +62 -178
- package/App/Modules/Designer/Components/ColorPalettes/index.story.js +0 -8
- package/App/Modules/Designer/Components/ColorPalettes/index.test.js +7 -11
- package/App/Modules/Designer/Components/DesignAreaControlbox/index.js +35 -108
- package/App/Modules/Designer/Components/DesignAreaControlbox/index.story.js +0 -8
- package/App/Modules/Designer/Components/DesignAreaControlbox/index.test.js +15 -23
- package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +18 -51
- package/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +53 -150
- package/App/Modules/Designer/Components/DesignerSelectionToolbox/fontItemUtils.js +10 -20
- package/App/Modules/Designer/Components/Dialog/index.js +21 -63
- package/App/Modules/Designer/Components/EditDesignButton/index.js +20 -43
- package/App/Modules/Designer/Components/FeedbackNotice/index.js +17 -53
- package/App/Modules/Designer/Components/FeedbackNotice/index.test.js +0 -4
- package/App/Modules/Designer/Components/FullScreenView/FullScreenView.js +6 -14
- package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.dev.js +5 -14
- package/App/Modules/Designer/Components/ImageColorPicker/ImageColorPicker.js +42 -137
- package/App/Modules/Designer/Components/ImageColorize/index.js +54 -177
- package/App/Modules/Designer/Components/ImageColorize/index.story.js +2 -6
- package/App/Modules/Designer/Components/ImageControlbox/index.js +27 -90
- package/App/Modules/Designer/Components/ImageEditDialog/ImageThumbnail.js +26 -71
- package/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +138 -170
- package/App/Modules/Designer/Components/ImageEditDialog/index.js +55 -168
- package/App/Modules/Designer/Components/ImageLibraryFilter/index.js +20 -61
- package/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +24 -66
- package/App/Modules/Designer/Components/ObjectTools/index.js +18 -56
- package/App/Modules/Designer/Components/Select/index.js +21 -65
- package/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +5 -20
- package/App/Modules/Designer/Components/TextControlbox/index.js +58 -176
- package/App/Modules/Designer/Components/TextControlbox/index.story.js +0 -10
- package/App/Modules/Designer/Components/TextControlbox/index.test.js +34 -41
- package/App/Modules/Designer/Containers/AddGalleryImage.js +8 -24
- package/App/Modules/Designer/Containers/AddVisualElement.js +28 -87
- package/App/Modules/Designer/Containers/CloseDesignEditor.js +1 -10
- package/App/Modules/Designer/Containers/CloseGraphicsEditorButton.js +1 -10
- package/App/Modules/Designer/Containers/ColorPalettes.js +22 -61
- package/App/Modules/Designer/Containers/DesignAreaControlbox.js +5 -17
- package/App/Modules/Designer/Containers/Designer.js +1 -10
- package/App/Modules/Designer/Containers/DesignerSelectionToolbox.js +7 -30
- package/App/Modules/Designer/Containers/EditDesignButton.js +1 -11
- package/App/Modules/Designer/Containers/ImageEditDialog.js +400 -658
- package/App/Modules/Designer/Designer.js +28 -84
- package/App/Modules/Designer/DesignerScreen.js +45 -100
- package/App/Modules/Designer/DesignerUI.js +31 -87
- package/App/Modules/Designer/Layouts/DefaultLayout.js +20 -45
- package/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +4 -16
- package/App/Modules/Designer/Layouts/PopupAreaProvider.js +20 -67
- package/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +5 -23
- package/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +19 -52
- package/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +9 -25
- package/App/Modules/Designer/Utils/FontFaceRepository.js +8 -30
- package/App/Modules/Designer/Utils/ImageEditUtils.js +14 -38
- package/App/Modules/Designer/Utils/SvgFixers.js +8 -26
- package/App/Modules/Designer/Utils/Transformers.js +54 -112
- package/App/Modules/Designer/setupDesigner.js +50 -72
- package/App/Modules/Designer/withActiveCanvas.js +22 -70
- package/App/Modules/Visualization/AlignTargetContainer.js +8 -19
- package/App/Modules/Visualization/CreatorAlignTarget.js +9 -20
- package/App/Modules/Visualization/DefaultVisualizationProvider.js +18 -50
- package/App/Modules/Visualization/DesignerAlignTarget.js +7 -13
- package/App/Modules/Visualization/Utils/getFirstDataURLFromScreenshotsObj.js +0 -3
- package/App/Reducers/Actions.js +81 -145
- package/App/Reducers/ConfigurationMode/Actions.js +4 -9
- package/App/Reducers/ConfigurationMode/Reducer.js +6 -23
- package/App/Reducers/ConfigurationMode/Selectors.js +22 -41
- package/App/Reducers/Configurator/Actions.js +386 -760
- package/App/Reducers/Configurator/AttributeSelectors.js +5 -17
- package/App/Reducers/Configurator/Modifiers.js +8 -15
- package/App/Reducers/Configurator/Reducer.js +107 -202
- package/App/Reducers/Configurator/Selectors.js +46 -119
- package/App/Reducers/Confirm/Actions.js +28 -49
- package/App/Reducers/Confirm/Reducer.js +1 -9
- package/App/Reducers/DesignArea/Actions.js +8 -29
- package/App/Reducers/DesignArea/DesignElementSelectors.js +18 -41
- package/App/Reducers/DesignArea/MaskSelectors.js +12 -35
- package/App/Reducers/DesignArea/Reducer.js +8 -40
- package/App/Reducers/DesignArea/Selectors.js +148 -413
- package/App/Reducers/DesignArea/Transformers.js +22 -87
- package/App/Reducers/DesignData/Actions.js +31 -93
- package/App/Reducers/DesignData/Modifiers.js +34 -114
- package/App/Reducers/DesignData/Reducer.js +9 -38
- package/App/Reducers/DesignData/Selectors.js +17 -50
- package/App/Reducers/DesignData/Transformers.js +2 -6
- package/App/Reducers/DesignView/Actions.js +3 -7
- package/App/Reducers/DesignView/Reducer.js +13 -47
- package/App/Reducers/DesignView/Selectors.js +17 -49
- package/App/Reducers/DesignView/Transformers.js +0 -3
- package/App/Reducers/Device/Actions.js +3 -7
- package/App/Reducers/Device/Reducer.js +9 -16
- package/App/Reducers/Fonts/Actions.js +12 -45
- package/App/Reducers/Fonts/Reducer.js +2 -11
- package/App/Reducers/Fonts/Selectors.js +9 -25
- package/App/Reducers/GeneralActions.js +3 -7
- package/App/Reducers/ImageGallery/Actions.js +97 -189
- package/App/Reducers/ImageGallery/Modifiers.js +13 -24
- package/App/Reducers/ImageGallery/Reducer.js +29 -98
- package/App/Reducers/ImageGallery/Selectors.js +21 -79
- package/App/Reducers/Reducer.js +10 -26
- package/App/Reducers/UI/Actions.js +73 -113
- package/App/Reducers/UI/Reducer.js +17 -26
- package/App/Reducers/UI/Selectors.js +3 -12
- package/App/Reducers.js +7 -21
- package/App/Routing.js +30 -107
- package/App/Screens/Configurator/CalculationWidgetScreen.js +10 -39
- package/App/Screens/Configurator/Components/AmountSelection/index.js +25 -77
- package/App/Screens/Configurator/Components/AmountSelection/index.story.js +0 -8
- package/App/Screens/Configurator/Components/CalculationWidget/index.js +53 -154
- package/App/Screens/Configurator/Components/CalculationWidget/index.story.js +6 -19
- package/App/Screens/Configurator/Components/CalculationWidget/index.test.js +39 -38
- package/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +7 -30
- package/App/Screens/Configurator/Components/ConfigurationModeSwitch/index.js +0 -2
- package/App/Screens/Configurator/Components/Confirm/index.js +13 -50
- package/App/Screens/Configurator/Components/Error/index.js +11 -48
- package/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +13 -25
- package/App/Screens/Configurator/Components/FullScreenView/index.js +37 -116
- package/App/Screens/Configurator/Components/FullScreenView/index.test.js +1 -4
- package/App/Screens/Configurator/Components/ImageLoader/ImageLoader.js +11 -42
- package/App/Screens/Configurator/Components/ItemTile/ItemTile.js +89 -33
- package/App/Screens/Configurator/Components/LandscapeInformation/index.js +3 -19
- package/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +3 -11
- package/App/Screens/Configurator/Components/PreviewPortal/index.js +29 -81
- package/App/Screens/Configurator/Components/Thumbnail/index.js +36 -102
- package/App/Screens/Configurator/Components/Thumbnail/index.test.js +0 -4
- package/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +9 -24
- package/App/Screens/Configurator/Containers/AmountPrice.js +12 -36
- package/App/Screens/Configurator/Containers/CalculationWidget.js +24 -85
- package/App/Screens/Configurator/Containers/ConfigurationModeSwitch.js +22 -43
- package/App/Screens/Configurator/Containers/Confirm.js +1 -10
- package/App/Screens/Configurator/Containers/FallbackVisualization.js +1 -11
- package/App/Screens/Configurator/Containers/FullScreenView.js +1 -14
- package/App/Screens/Configurator/Containers/Thumbnail.js +1 -13
- package/App/Screens/Configurator/Containers/Visualization.js +1 -5
- package/App/Screens/Configurator/DynamicComponents.js +8 -22
- package/App/Screens/Configurator/Screen.js +31 -70
- package/App/Screens/Configurator/ScreenPropTypes.js +2 -6
- package/App/Screens/Configurator/ThemeProvider.js +8 -42
- package/App/Screens/DesignerProductPreview/Constants.js +4 -7
- package/App/Screens/DesignerProductPreview/DesignerProductPreviewManager.js +204 -289
- package/App/Screens/DesignerProductPreview/Screen.js +58 -139
- package/App/Screens/ItemOverview.js +156 -191
- package/App/Screens.js +12 -20
- package/App/ServiceLocator.js +26 -51
- package/App/Services/AdminareaCommunicationService.js +33 -69
- package/App/Services/AnalyticsService.js +13 -40
- package/App/Services/ConfiguratorService.js +381 -567
- package/App/Services/DesignDataService.js +1448 -2001
- package/App/Services/DesignerService.js +290 -350
- package/App/Services/InteractionService.js +349 -502
- package/App/Services/UIService.js +12 -39
- package/App/Services/VisualizationService.js +246 -336
- package/App/Shared/Components/AcceptDesign/index.js +27 -70
- package/App/Shared/Components/AcceptPrivacy/index.js +21 -58
- package/App/Shared/Components/AddToBasket/index.js +31 -81
- package/App/Shared/Components/AddToBasket/index.story.js +0 -9
- package/App/Shared/Components/AlertDialog/index.js +15 -57
- package/App/Shared/Components/AmountInput/index.js +34 -107
- package/App/Shared/Components/AmountInput/index.story.js +0 -6
- package/App/Shared/Components/AmountPrice/index.js +220 -382
- package/App/Shared/Components/AmountPrice/index.story.js +1 -10
- package/App/Shared/Components/AmountPrice/index.test.js +6 -12
- package/App/Shared/Components/Analytics/AnalyticsWrapper.js +9 -21
- package/App/Shared/Components/BulkNames/index.js +28 -92
- package/App/Shared/Components/CallToAction/index.js +18 -42
- package/App/Shared/Components/ConfigurationOverview/index.js +14 -47
- package/App/Shared/Components/Header/Header.js +18 -46
- package/App/Shared/Components/Header/index.js +0 -2
- package/App/Shared/Components/Header/index.story.js +0 -13
- package/App/Shared/Components/InformationTag/InformationTag.js +20 -55
- package/App/Shared/Components/LicenseNotice/LicenseNotice.js +20 -54
- package/App/Shared/Components/LicenseNotice/index.js +0 -2
- package/App/Shared/Components/LoadConfiguration/index.js +47 -82
- package/App/Shared/Components/MessageBox/index.js +2 -19
- package/App/Shared/Components/MessageBox/index.story.js +0 -7
- package/App/Shared/Components/Notification/index.js +18 -53
- package/App/Shared/Components/Notification/index.story.js +0 -4
- package/App/Shared/Components/PdfDownload/index.js +19 -59
- package/App/Shared/Components/PlusMinusInput/index.js +13 -37
- package/App/Shared/Components/PriceList/index.js +27 -78
- package/App/Shared/Components/PriceList/index.story.js +6 -15
- package/App/Shared/Components/PriceOverview/index.js +29 -74
- package/App/Shared/Components/PriceOverview/index.story.js +1 -18
- package/App/Shared/Components/ProductVariant/Image.js +13 -35
- package/App/Shared/Components/ProductVariant/index.js +34 -123
- package/App/Shared/Components/ProductVariant/index.story.js +9 -22
- package/App/Shared/Components/Progress/Progress.js +6 -15
- package/App/Shared/Components/ReceiveOfferForm/index.js +26 -80
- package/App/Shared/Components/ReceiveOfferForm/index.story.js +0 -6
- package/App/Shared/Components/ReceiveOfferForm/index.test.js +1 -6
- package/App/Shared/Components/SaveConfiguration/index.js +26 -83
- package/App/Shared/Components/SendEmail/index.js +8 -30
- package/App/Shared/Components/Stepper/index.js +19 -56
- package/App/Shared/Components/Stepper/index.story.js +0 -5
- package/App/Shared/Components/ToolbarList/index.js +23 -69
- package/App/Shared/Components/ToolbarList/index.story.js +0 -4
- package/App/Shared/Components/VariantChooser/index.js +25 -68
- package/App/Shared/Components/VariantChooser/index.story.js +0 -13
- package/App/Shared/Containers/AlertMessages.js +1 -11
- package/App/Shared/Containers/AmountPrice/AmountPriceAdminareaWrapper.js +4 -17
- package/App/Shared/Containers/AmountPrice/index.js +29 -74
- package/App/Shared/Containers/BulkNames.js +26 -117
- package/App/Shared/Containers/Error.js +1 -11
- package/App/Shared/Containers/GlobalLoader.js +1 -9
- package/App/Shared/Containers/Header/index.js +22 -57
- package/App/Shared/Containers/LicenseNotice/LicenseNotice.js +2 -9
- package/App/Shared/Containers/LicenseNotice/index.js +0 -2
- package/App/Shared/Containers/LoadConfiguration/LoadConfiguration.js +36 -79
- package/App/Shared/Containers/LoadConfiguration/index.js +0 -2
- package/App/Shared/Containers/PdfDownload/index.js +2 -11
- package/App/Shared/Containers/ProductVariant/ProductVariant.js +59 -144
- package/App/Shared/Containers/ProductVariant/index.js +0 -2
- package/App/Shared/Containers/SaveConfiguration.js +3 -14
- package/App/Shared/Containers/SendEmail/SendEmail.js +3 -15
- package/App/Shared/Containers/SendEmail/index.js +0 -2
- package/App/Shared/Providers/DefaultCanvasProvider.js +5 -25
- package/App/Storage.js +3 -7
- package/App/Store.js +17 -38
- package/App/Translations.js +29 -43
- package/App/Utils/Request/lazyFetch.js +29 -45
- package/App/Utils/Request/pathParams.js +2 -7
- package/App/Utils/createMessageInterface.js +10 -21
- package/App/Utils/customClassName.js +0 -2
- package/App/Utils/getContrastText.js +5 -7
- package/App/Utils/getImageUrl.js +0 -8
- package/App/configuration.js +74 -104
- package/App/index.js +7 -29
- package/App/initServices.js +9 -32
- package/App/setup.js +2 -6
- package/Framework/Api.js +19 -41
- package/Framework/ComponentContainer.js +28 -76
- package/Framework/Components/Carousel/index.js +40 -104
- package/Framework/Components/Dialog/index.js +101 -237
- package/Framework/Components/DialogSelect/index.js +38 -132
- package/Framework/Components/Input/index.js +16 -58
- package/Framework/Components/LoadingOverlay/index.js +1 -12
- package/Framework/Components/Markdown/index.js +5 -26
- package/Framework/Components/Mobile/index.js +5 -13
- package/Framework/CustomError.js +13 -29
- package/Framework/Helpers/TransitionDetect.js +10 -29
- package/Framework/Helpers/isLandscapeMobile.js +0 -3
- package/Framework/Helpers/isMobileDevice.js +3 -8
- package/Framework/Helpers/isMobileSize.js +1 -4
- package/Framework/Services/AbstractAdminareaCommunicationService.js +8 -15
- package/Framework/Services/AbstractAsyncService.js +7 -14
- package/Framework/Services/AbstractConfiguratorService.js +9 -15
- package/Framework/Services/AbstractInteractionService.js +7 -14
- package/Framework/Services/AbstractStoreService.js +9 -15
- package/Framework/Services/AbstractUIService.js +7 -14
- package/Framework/Services/AbstractVisualizationService.js +7 -14
- package/Framework/Services/AsyncService.js +11 -33
- package/Framework/Services/StoreService.js +43 -92
- package/Framework/bindDecorator.js +24 -54
- package/Framework/i18n.js +57 -142
- package/Resources/Icons/MaterialUI/Icons/AddCircle.js +1 -5
- package/Resources/Icons/MaterialUI/Icons/RemoveCircle.js +1 -5
- package/Shared/Components/CustomDialog.js +21 -36
- package/Shared/Components/CustomDialogSelect.js +17 -47
- package/Shared/Components/MainButton.js +14 -33
- package/Shared/ErrorTypes/DeferredError.js +13 -31
- package/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +9 -18
- package/Shared/HOCs/ResizeDetect/ResizeDetect.js +28 -87
- package/Shared/HOCs/getDisplayName.js +0 -1
- package/Shared/HOCs/withFixedChangeHandler.js +11 -25
- package/Shared/PropTypes/ReactComponent.js +1 -5
- package/Shared/Styles/absoluteCenter.js +2 -5
- package/Utils/Array/isIdentical.js +3 -12
- package/Utils/Async/AsyncManager.js +51 -75
- package/Utils/Async/Deferred.js +12 -40
- package/Utils/Async/ObjectLock.js +3 -7
- package/Utils/Decorators/Observable.js +17 -34
- package/Utils/Dev/HOCs/withFilePicker.js +13 -41
- package/Utils/Dev/isDev.js +0 -2
- package/Utils/Events/pointerEvent.js +14 -47
- package/Utils/Events/preventEventDoubling.js +2 -7
- package/Utils/Function/cached.js +1 -9
- package/Utils/Function/createDebounceManager.js +3 -18
- package/Utils/Function/createSelector.js +7 -18
- package/Utils/Function/memoize.js +3 -12
- package/Utils/Function/sendMessage.js +3 -8
- package/Utils/Helper/createSelectionRangeMemo.js +4 -12
- package/Utils/Immutable/set.js +12 -35
- package/Utils/Math/conversions.js +2 -5
- package/Utils/Math/isPositiveNumber.js +2 -5
- package/Utils/Redux/createActionWithGlobalState.js +8 -11
- package/Utils/Styles/combineMediaQueries.js +2 -6
- package/Utils/Styles/createCheckerBoardBackground.js +5 -6
- package/Utils/Test/CallOrderChecker.js +0 -3
- package/Utils/Test/createStoreProvider.js +1 -7
- package/Utils/Test/formDataToJSON.js +0 -1
- package/Utils/Test/mountWithState.js +3 -9
- package/index.js +2 -2
- package/package.json +36 -33
- package/public/translations/de_DE.json +3 -27
- package/public/translations/en_GB.json +2 -26
- package/scripts/getDefaultWebpackConfig.js +21 -13
- package/src/App/Error/ProductionErrorPage/index.js +1 -1
- package/src/App/Modules/Creator/Components/ConfigurationvariantItem/index.js +3 -4
- package/src/App/Modules/Creator/Components/ConfigurationvariantSelection/index.js +2 -1
- package/src/App/Modules/Creator/Components/FastConfiguration/SelectableRow.js +1 -1
- package/src/App/Modules/Creator/Components/FastConfiguration/index.js +6 -5
- package/src/App/Modules/Creator/Components/FastConfigurationSelect/index.js +8 -6
- package/src/App/Modules/Creator/Components/FullScreenView/FullScreenView.js +3 -1
- package/src/App/Modules/Creator/Components/Incompatibility/OptionExclusionRule/index.js +2 -2
- package/src/App/Modules/Creator/Components/Incompatibility/OptionRule/index.js +2 -2
- package/src/App/Modules/Creator/Components/Incompatibility/index.js +2 -2
- package/src/App/Modules/Creator/Components/InvalidConfigurationNotice/index.js +1 -1
- package/src/App/Modules/Creator/Components/Option/__snapshots__/index.test.js.snap +0 -13
- package/src/App/Modules/Creator/Components/Option/index.js +9 -6
- package/src/App/Modules/Creator/Components/Option/index.test.js +1 -1
- package/src/App/Modules/Creator/Components/OptionAmount/index.js +2 -1
- package/src/App/Modules/Creator/Components/OptionAmount/index.test.js +1 -1
- package/src/App/Modules/Creator/Components/Optiondetail/ZoomImage/index.js +1 -1
- package/src/App/Modules/Creator/Components/Optiondetail/index.js +9 -7
- package/src/App/Modules/Creator/Components/Optiondetail/index.story.js +1 -48
- package/src/App/Modules/Creator/Components/Optiondetail/index.test.js +1 -1
- package/src/App/Modules/Creator/Components/Optiondetail/index.test.mocks.js +49 -0
- package/src/App/Modules/Creator/Components/OptionsList/index.js +3 -2
- package/src/App/Modules/Creator/Components/ProductPart/index.test.js +1 -1
- package/src/App/Modules/Creator/Components/ProductPartsList/index.js +1 -1
- package/src/App/Modules/Creator/Components/SavedConfiguration/index.js +3 -3
- package/src/App/Modules/Creator/Components/StoreConfigurationForm/index.js +2 -2
- package/src/App/Modules/Creator/Containers/CustomTitleEditor/index.js +1 -1
- package/src/App/Modules/Creator/Containers/FastConfiguration/index.js +1 -1
- package/src/App/Modules/Creator/Containers/FormattedPrice/index.js +1 -1
- package/src/App/Modules/Creator/Containers/InvalidConfigurationNotice/index.js +1 -1
- package/src/App/Modules/Creator/Containers/Optiondetail/index.js +1 -1
- package/src/App/Modules/Designer/Components/AddGalleryImage/__snapshots__/index.test.jsx.snap +0 -8
- package/src/App/Modules/Designer/Components/AddGalleryImage/index.js +4 -4
- package/src/App/Modules/Designer/Components/AddGalleryImage/index.test.jsx +0 -27
- package/src/App/Modules/Designer/Components/AddVisualElement/index.js +6 -6
- package/src/App/Modules/Designer/Components/AddVisualElement/index.test.jsx +3 -2
- package/src/App/Modules/Designer/Components/CloseDesignEditor/index.js +3 -3
- package/src/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +6 -6
- package/src/App/Modules/Designer/Components/ColorPalettes/index.js +14 -14
- package/src/App/Modules/Designer/Components/ColorPalettes/index.test.jsx +1 -1
- package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.js +8 -8
- package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.test.jsx +1 -1
- package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +5 -5
- package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/DesignerSelectionToolbox.js +2 -2
- package/src/App/Modules/Designer/Components/Dialog/index.js +1 -1
- package/src/App/Modules/Designer/Components/EditDesignButton/index.js +3 -2
- package/src/App/Modules/Designer/Components/FeedbackNotice/index.js +3 -3
- package/src/App/Modules/Designer/Components/ImageColorize/index.js +1 -1
- package/src/App/Modules/Designer/Components/ImageControlbox/index.js +6 -6
- package/src/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +32 -6
- package/src/App/Modules/Designer/Components/ImageEditDialog/index.js +16 -12
- package/src/App/Modules/Designer/Components/ImageLibraryFilter/index.js +6 -6
- package/src/App/Modules/Designer/Components/ImageLibraryThumbnail/index.js +11 -7
- package/src/App/Modules/Designer/Components/ObjectTools/index.js +2 -2
- package/src/App/Modules/Designer/Components/Select/index.js +3 -3
- package/src/App/Modules/Designer/Components/TextControlbox/TextFormatIcon.js +1 -1
- package/src/App/Modules/Designer/Components/TextControlbox/index.js +11 -11
- package/src/App/Modules/Designer/Components/TextControlbox/index.test.jsx +3 -2
- package/src/App/Modules/Designer/Containers/AddGalleryImage.js +1 -1
- package/src/App/Modules/Designer/Designer.js +1 -1
- package/src/App/Modules/Designer/DesignerUI.js +7 -2
- package/src/App/Modules/Designer/Layouts/Mobile/TwoSideBottomBar.js +1 -1
- package/src/App/Modules/Designer/Layouts/PopupAreaProvider.js +1 -1
- package/src/App/Modules/Designer/MultilayerComponents/DesignerClickAwayListener.js +1 -1
- package/src/App/Modules/Designer/MultilayerComponents/InlineToolboxPortal.js +1 -1
- package/src/App/Modules/Designer/MultilayerComponents/StandardToolboxPortal.js +1 -1
- package/src/App/Modules/Designer/setupDesigner.js +22 -19
- package/src/App/Modules/Visualization/AlignTargetContainer.js +1 -1
- package/src/App/Modules/Visualization/CreatorAlignTarget.js +1 -1
- package/src/App/Modules/Visualization/DefaultVisualizationProvider.js +7 -2
- package/src/App/Modules/Visualization/DesignerAlignTarget.js +1 -1
- package/src/App/Reducers/Actions.js +5 -5
- package/src/App/Reducers/ConfigurationMode/Selectors.js +6 -0
- package/src/App/Reducers/Configurator/Actions.js +8 -1
- package/src/App/Reducers/Configurator/Reducer.js +27 -21
- package/src/App/Reducers/Configurator/Selectors.js +4 -1
- package/src/App/Reducers/DesignArea/Selectors.js +10 -0
- package/src/App/Reducers/Reducer.js +4 -3
- package/src/App/Reducers/UI/Actions.js +15 -1
- package/src/App/Reducers/UI/Reducer.js +20 -0
- package/src/App/Routing.js +12 -29
- package/src/App/Screens/Configurator/CalculationWidgetScreen.js +1 -4
- package/src/App/Screens/Configurator/Components/AmountSelection/index.js +4 -4
- package/src/App/Screens/Configurator/Components/CalculationWidget/index.js +3 -3
- package/src/App/Screens/Configurator/Components/CalculationWidget/index.test.jsx +5 -2
- package/src/App/Screens/Configurator/Components/ConfigurationModeSwitch/ConfigurationModeSwitch.js +1 -1
- package/src/App/Screens/Configurator/Components/FallbackVisualization/FallbackVisualization.js +1 -1
- package/src/App/Screens/Configurator/Components/FullScreenView/index.js +4 -4
- package/src/App/Screens/Configurator/Components/ItemTile/ItemTile.js +55 -17
- package/src/App/Screens/Configurator/Components/LandscapeInformation/index.js +1 -1
- package/src/App/Screens/Configurator/Components/NoVisualization/NoVisualization.js +1 -1
- package/src/App/Screens/Configurator/Components/PreviewPortal/index.js +7 -5
- package/src/App/Screens/Configurator/Components/Thumbnail/index.js +5 -4
- package/src/App/Screens/Configurator/Components/TotalPrice/TotalPrice.js +3 -3
- package/src/App/Screens/Configurator/Containers/AmountPrice.js +1 -1
- package/src/App/Screens/Configurator/Containers/__tests__/CalculationWidget.test.js +4 -1
- package/src/App/Screens/Configurator/Screen.js +13 -5
- package/src/App/Screens/Configurator/__tests__/Screen.test.js +6 -0
- package/src/App/Screens/DesignerProductPreview/Screen.js +2 -3
- package/src/App/Screens/DesignerProductPreview/__tests__/__snapshots__/Screen.test.js.snap +11 -11
- package/src/App/Screens/ItemOverview.js +74 -57
- package/src/App/Screens.js +1 -1
- package/src/App/Services/AnalyticsService.js +2 -1
- package/src/App/Services/DesignDataService.js +53 -7
- package/src/App/Services/DesignerService.js +22 -13
- package/src/App/Services/UIService.js +1 -1
- package/src/App/Services/VisualizationService.js +41 -2
- package/src/App/Services/__tests__/DesignDataService.test.js +1 -0
- package/src/App/Shared/Components/AcceptDesign/index.js +7 -6
- package/src/App/Shared/Components/AcceptPrivacy/index.js +4 -3
- package/src/App/Shared/Components/AddToBasket/index.js +4 -4
- package/src/App/Shared/Components/AmountInput/index.js +1 -1
- package/src/App/Shared/Components/AmountPrice/__snapshots__/index.test.jsx.snap +0 -125
- package/src/App/Shared/Components/AmountPrice/index.js +40 -17
- package/src/App/Shared/Components/AmountPrice/index.test.jsx +1 -1
- package/src/App/Shared/Components/Analytics/AnalyticsWrapper.test.js +2 -1
- package/src/App/Shared/Components/BulkNames/index.js +3 -3
- package/src/App/Shared/Components/CallToAction/__snapshots__/index.test.js.snap +4 -4
- package/src/App/Shared/Components/CallToAction/index.js +3 -3
- package/src/App/Shared/Components/CallToAction/index.test.js +1 -1
- package/src/App/Shared/Components/ConfigurationOverview/index.js +1 -1
- package/src/App/Shared/Components/Header/Header.js +3 -3
- package/src/App/Shared/Components/InformationTag/InformationTag.js +4 -2
- package/src/App/Shared/Components/LicenseNotice/LicenseNotice.js +3 -1
- package/src/App/Shared/Components/LoadConfiguration/index.js +27 -13
- package/src/App/Shared/Components/Notification/index.js +3 -3
- package/src/App/Shared/Components/PdfDownload/index.js +3 -3
- package/src/App/Shared/Components/PlusMinusInput/index.js +4 -4
- package/src/App/Shared/Components/PriceList/index.js +9 -9
- package/src/App/Shared/Components/PriceList/index.test.js +2 -2
- package/src/App/Shared/Components/PriceOverview/index.js +4 -4
- package/src/App/Shared/Components/PriceOverview/index.story.js +1 -1
- package/src/App/Shared/Components/ProductVariant/Image.js +1 -1
- package/src/App/Shared/Components/ProductVariant/index.js +5 -5
- package/src/App/Shared/Components/Progress/Progress.js +3 -3
- package/src/App/Shared/Components/ReceiveOfferForm/index.js +4 -4
- package/src/App/Shared/Components/SaveConfiguration/index.js +3 -3
- package/src/App/Shared/Components/SendEmail/index.js +3 -3
- package/src/App/Shared/Components/Stepper/index.js +4 -4
- package/src/App/Shared/Components/ToolbarList/index.js +6 -6
- package/src/App/Shared/Components/VariantChooser/index.js +7 -7
- package/src/App/Shared/Containers/AmountPrice/index.js +7 -1
- package/src/App/Shared/Containers/SaveConfiguration.js +1 -1
- package/src/App/Utils/Request/lazyFetch.js +2 -3
- package/src/App/configuration.js +20 -15
- package/src/App/index.js +2 -2
- package/src/Framework/Api.js +3 -3
- package/src/Framework/Components/Carousel/index.js +2 -2
- package/src/Framework/Components/Dialog/index.js +13 -10
- package/src/Framework/Components/DialogSelect/index.js +6 -5
- package/src/Framework/i18n.js +15 -8
- package/src/Shared/Components/CustomDialog.js +2 -1
- package/src/Shared/Components/CustomDialogSelect.js +2 -2
- package/src/Shared/Components/MainButton.js +2 -2
- package/src/Shared/Components/__tests__/index.test.jsx +6 -1
- package/src/Shared/HOCs/ResizeDetect/ResizeDetect.dev.js +1 -1
- package/src/Utils/Decorators/Observable.js +1 -0
- package/src/Utils/Test/mountWithState.js +1 -1
- package/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
- package/src/App/Modules/Designer/Components/ImageEditDialog/res/checkers_tile.png +0 -0
|
@@ -9,7 +9,8 @@ import FastConfigurationRow from '../FastConfigurationRow';
|
|
|
9
9
|
import FastConfigurationSelect from '../FastConfigurationSelect';
|
|
10
10
|
import { T } from 'Framework/i18n';
|
|
11
11
|
import './Styles.scss';
|
|
12
|
-
import
|
|
12
|
+
import isArray from 'lodash/isArray';
|
|
13
|
+
import merge from 'lodash/merge';
|
|
13
14
|
|
|
14
15
|
const FastConfiguration = ({
|
|
15
16
|
optionclassifications,
|
|
@@ -56,14 +57,14 @@ const FastConfiguration = ({
|
|
|
56
57
|
|
|
57
58
|
for (let option of options) {
|
|
58
59
|
let uo = option;
|
|
59
|
-
if (
|
|
60
|
+
if (isArray(optionClassification.selectedoptions)) {
|
|
60
61
|
for (let selectedOption of optionClassification.selectedoptions) {
|
|
61
62
|
if (selectedOption.identifier === option.identifier) {
|
|
62
|
-
uo =
|
|
63
|
-
} else if (option.option_group &&
|
|
63
|
+
uo = merge({}, option, selectedOption);
|
|
64
|
+
} else if (option.option_group && isArray(option.option_group.children)) {
|
|
64
65
|
for (let item of option.option_group.children) {
|
|
65
66
|
if (selectedOption.identifier === item.identifier) {
|
|
66
|
-
uo =
|
|
67
|
+
uo = merge({}, option, selectedOption);
|
|
67
68
|
break;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import
|
|
3
|
+
import get from 'lodash/get';
|
|
4
|
+
import has from 'lodash/has';
|
|
5
|
+
import isArray from 'lodash/isArray';
|
|
4
6
|
import Typography from '@material-ui/core/Typography';
|
|
5
7
|
import OptionlistitemSelect from '../OptionGroup';
|
|
6
8
|
|
|
@@ -25,11 +27,11 @@ class FastConfigurationSelect extends React.Component {
|
|
|
25
27
|
isOptionSelected(option) {
|
|
26
28
|
const { optionclassification } = this.props;
|
|
27
29
|
let selected = false;
|
|
28
|
-
if (
|
|
30
|
+
if (isArray(optionclassification.selectedoptions)) {
|
|
29
31
|
for (let selectedOption of optionclassification.selectedoptions) {
|
|
30
32
|
if (selectedOption.identifier === option.identifier) {
|
|
31
33
|
selected = true;
|
|
32
|
-
} else if (option.option_group &&
|
|
34
|
+
} else if (option.option_group && isArray(option.option_group.children)) {
|
|
33
35
|
for (let item of option.option_group.children) {
|
|
34
36
|
if (selectedOption.identifier === item.identifier) {
|
|
35
37
|
selected = true;
|
|
@@ -57,7 +59,7 @@ class FastConfigurationSelect extends React.Component {
|
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
isOptionEnabled(option) {
|
|
60
|
-
return
|
|
62
|
+
return get(option, 'stock.traffic_light', false) !== 'red';
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
renderOptionGroupSelect(option) {
|
|
@@ -68,8 +70,8 @@ class FastConfigurationSelect extends React.Component {
|
|
|
68
70
|
const { optionClassification } = this.props;
|
|
69
71
|
|
|
70
72
|
if (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
has(option, 'option_group.children') &&
|
|
74
|
+
isArray(option.option_group.children) &&
|
|
73
75
|
option.option_group.children.length > 0
|
|
74
76
|
) {
|
|
75
77
|
return (
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FullScreenView, { PreviewButton } from 'App/Screens/Configurator/Components/FullScreenView';
|
|
3
|
-
import { makeStyles
|
|
3
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
4
|
+
import { useTheme } from '@material-ui/core/styles';
|
|
5
|
+
import useMediaQuery from '@material-ui/core/useMediaQuery';
|
|
4
6
|
import { combineMediaQueriesWithAnd } from '../../../../../Utils/Styles/combineMediaQueries';
|
|
5
7
|
|
|
6
8
|
export const useStyles = makeStyles(
|
|
@@ -2,8 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import isArray from 'lodash/isArray';
|
|
3
3
|
import get from 'lodash/get';
|
|
4
4
|
import { T } from 'Framework/i18n';
|
|
5
|
-
import Typography from '@material-ui/core/Typography
|
|
6
|
-
import withStyles from '@material-ui/core/styles
|
|
5
|
+
import Typography from '@material-ui/core/Typography';
|
|
6
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
7
7
|
import { RuleComponent } from '../RuleComponent';
|
|
8
8
|
import memoize from 'Utils/Function/memoize';
|
|
9
9
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import isArray from 'lodash/isArray';
|
|
3
3
|
import { T } from 'Framework/i18n';
|
|
4
|
-
import Typography from '@material-ui/core/Typography
|
|
5
|
-
import withStyles from '@material-ui/core/styles
|
|
4
|
+
import Typography from '@material-ui/core/Typography';
|
|
5
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
6
6
|
import { RuleComponent } from '../RuleComponent';
|
|
7
7
|
import memoize from 'Utils/Function/memoize';
|
|
8
8
|
|
|
@@ -2,8 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import isArray from 'lodash/isArray';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import DialogContent from '@material-ui/core/DialogContent';
|
|
5
|
-
import Button from '@material-ui/core/Button
|
|
6
|
-
import withStyles from '@material-ui/core/styles
|
|
5
|
+
import Button from '@material-ui/core/Button';
|
|
6
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
7
7
|
|
|
8
8
|
import { T } from 'Framework/i18n';
|
|
9
9
|
import CustomDialog from 'Shared/Components/CustomDialog';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Fragment, useEffect, useRef } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import useMediaQuery from '@material-ui/core/useMediaQuery';
|
|
4
|
-
import useTheme from '@material-ui/core/styles
|
|
4
|
+
import { useTheme } from '@material-ui/core/styles';
|
|
5
5
|
import Dialog from '@material-ui/core/Dialog';
|
|
6
6
|
import DialogTitle from '@material-ui/core/DialogTitle';
|
|
7
7
|
import DialogContent from '@material-ui/core/DialogContent';
|
|
@@ -281,19 +281,6 @@ exports[`Option renders with Option Group button 1`] = `
|
|
|
281
281
|
<p
|
|
282
282
|
class="MuiTypography-root MuiTypography-body1"
|
|
283
283
|
/>
|
|
284
|
-
<p
|
|
285
|
-
class="MuiTypography-root dialogselect-option MuiTypography-body1"
|
|
286
|
-
data-option="1"
|
|
287
|
-
>
|
|
288
|
-
Child 1
|
|
289
|
-
</p>
|
|
290
|
-
<p
|
|
291
|
-
class="MuiTypography-root dialogselect-option MuiTypography-body1"
|
|
292
|
-
data-option="2"
|
|
293
|
-
>
|
|
294
|
-
Child 2
|
|
295
|
-
</p>
|
|
296
|
-
<p />
|
|
297
284
|
</div>
|
|
298
285
|
</div>
|
|
299
286
|
</div>
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import
|
|
3
|
+
import get from 'lodash/get';
|
|
4
|
+
import has from 'lodash/has';
|
|
5
|
+
import isArray from 'lodash/isArray';
|
|
6
|
+
import find from 'lodash/find';
|
|
4
7
|
import clsx from 'clsx';
|
|
5
|
-
import Grid from '@material-ui/core/Grid/Grid';
|
|
6
|
-
import useMediaQuery from '@material-ui/core/useMediaQuery';
|
|
7
|
-
import Typography from '@material-ui/core/Typography';
|
|
8
8
|
import TextField from '@material-ui/core/TextField';
|
|
9
|
+
import Grid from '@material-ui/core/Grid';
|
|
10
|
+
import Typography from '@material-ui/core/Typography';
|
|
11
|
+
import useMediaQuery from '@material-ui/core/useMediaQuery';
|
|
9
12
|
import BlockRoundedIcon from '@material-ui/icons/BlockRounded';
|
|
10
13
|
import InfoRoundedIcon from '@material-ui/icons/InfoRounded';
|
|
11
14
|
import RestoreRoundedIcon from '@material-ui/icons/RestoreRounded';
|
|
12
15
|
import WarningRoundedIcon from '@material-ui/icons/WarningRounded';
|
|
13
|
-
import withStyles from '@material-ui/core/styles
|
|
16
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
14
17
|
import Markdown from 'Framework/Components/Markdown';
|
|
15
18
|
import { t } from 'Framework/i18n';
|
|
16
19
|
import customClassName from 'App/Utils/customClassName';
|
|
@@ -254,7 +257,7 @@ const Option = ({ children, render, ...props }) => {
|
|
|
254
257
|
};
|
|
255
258
|
|
|
256
259
|
const onAbstractClicked = event => {
|
|
257
|
-
event.stopPropagation();
|
|
260
|
+
event.target.tagName.toLowerCase() === 'a' && event.stopPropagation();
|
|
258
261
|
};
|
|
259
262
|
|
|
260
263
|
const onDetailsClicked = event => {
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { createStore } from 'redux';
|
|
3
3
|
import { mount, render } from 'enzyme';
|
|
4
4
|
import { Provider } from 'react-redux';
|
|
5
|
-
import
|
|
5
|
+
import noop from 'lodash/noop';
|
|
6
6
|
import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
|
|
7
7
|
import Option from './index';
|
|
8
8
|
|
|
@@ -2,7 +2,8 @@ import React, { useEffect, useState, useRef } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import debounce from 'lodash/debounce';
|
|
5
|
-
import { makeStyles
|
|
5
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
6
|
+
import TextField from '@material-ui/core/TextField';
|
|
6
7
|
import AddIcon from '@material-ui/icons/Add';
|
|
7
8
|
import RemoveIcon from '@material-ui/icons/Remove';
|
|
8
9
|
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import OptionAmount from './index';
|
|
3
3
|
import { mount, render } from 'enzyme';
|
|
4
4
|
import { act } from 'react-dom/test-utils';
|
|
5
|
-
import
|
|
5
|
+
import TextField from '@material-ui/core/TextField';
|
|
6
6
|
|
|
7
7
|
describe('OptionAmount', () => {
|
|
8
8
|
it('renders correctly', () => {
|
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import CloseIcon from '@material-ui/icons/Close';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';
|
|
5
|
-
import withStyles from '@material-ui/core/styles
|
|
5
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
6
6
|
import Modal from '@material-ui/core/Modal';
|
|
7
7
|
import getImageUrl from '../../../../../Utils/getImageUrl';
|
|
8
8
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import find from 'lodash/find';
|
|
3
|
+
import findIndex from 'lodash/findIndex';
|
|
4
|
+
import isArray from 'lodash/isArray';
|
|
3
5
|
import { Swipeable } from 'react-swipeable';
|
|
4
6
|
import clsx from 'clsx';
|
|
5
7
|
import Button from '@material-ui/core/Button';
|
|
@@ -126,7 +128,7 @@ class Optiondetail extends React.Component {
|
|
|
126
128
|
const { details, options } = props;
|
|
127
129
|
|
|
128
130
|
this.state = {
|
|
129
|
-
currentOption:
|
|
131
|
+
currentOption: find(options, { identifier: details.identifier }),
|
|
130
132
|
loading: false,
|
|
131
133
|
zoomImage: false,
|
|
132
134
|
hasZoomSet: false,
|
|
@@ -143,7 +145,7 @@ class Optiondetail extends React.Component {
|
|
|
143
145
|
const { details, options } = this.props;
|
|
144
146
|
if (details.identifier !== prevProps.details.identifier) {
|
|
145
147
|
this.setState({
|
|
146
|
-
currentOption:
|
|
148
|
+
currentOption: find(options, { identifier: details.identifier }),
|
|
147
149
|
loading: false,
|
|
148
150
|
});
|
|
149
151
|
}
|
|
@@ -156,13 +158,13 @@ class Optiondetail extends React.Component {
|
|
|
156
158
|
const { optionclassification } = this.props;
|
|
157
159
|
const { currentOption } = this.state;
|
|
158
160
|
const { identifier } = currentOption;
|
|
159
|
-
return
|
|
161
|
+
return find(optionclassification.selectedoptions, { identifier }) || currentOption;
|
|
160
162
|
}
|
|
161
163
|
|
|
162
164
|
prev = () => {
|
|
163
165
|
const { details, options, viewDetails } = this.props;
|
|
164
166
|
if (options.length) {
|
|
165
|
-
const optionIndex =
|
|
167
|
+
const optionIndex = findIndex(options, { identifier: details.identifier });
|
|
166
168
|
const prevIndex = optionIndex === 0 ? options.length - 1 : optionIndex - 1;
|
|
167
169
|
const prev = options[prevIndex];
|
|
168
170
|
viewDetails(prev);
|
|
@@ -177,7 +179,7 @@ class Optiondetail extends React.Component {
|
|
|
177
179
|
next = () => {
|
|
178
180
|
const { details, options, viewDetails } = this.props;
|
|
179
181
|
if (options.length) {
|
|
180
|
-
const optionIndex =
|
|
182
|
+
const optionIndex = findIndex(options, { identifier: details.identifier });
|
|
181
183
|
const nextIndex = optionIndex === options.length - 1 ? 0 : optionIndex + 1;
|
|
182
184
|
const next = options[nextIndex];
|
|
183
185
|
viewDetails(next);
|
|
@@ -265,7 +267,7 @@ class Optiondetail extends React.Component {
|
|
|
265
267
|
render() {
|
|
266
268
|
const { LoadingComponent, options, show, onClose, details, classes, width } = this.props;
|
|
267
269
|
const { loading, loadingContainerHeight } = this.state;
|
|
268
|
-
const showNav =
|
|
270
|
+
const showNav = isArray(options) && options.length > 1;
|
|
269
271
|
const detailImage = details.detailImage;
|
|
270
272
|
const query = new URLSearchParams(location.search);
|
|
271
273
|
const hidePrices = query.has('_hide_prices') && query.get('_hide_prices') === '1';
|
|
@@ -4,54 +4,7 @@ import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
|
|
|
4
4
|
import OptionDetail from './index';
|
|
5
5
|
import { createStore } from 'redux';
|
|
6
6
|
import { Provider } from 'react-redux';
|
|
7
|
-
|
|
8
|
-
export const optionData = {
|
|
9
|
-
abstract: 'Das sind schwarze Reissverschlüsse',
|
|
10
|
-
amount: null,
|
|
11
|
-
amount_is_selectable: null,
|
|
12
|
-
attributes: [],
|
|
13
|
-
description:
|
|
14
|
-
'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ',
|
|
15
|
-
detailImageExists: false,
|
|
16
|
-
identifier: 'reissverschluesse_black',
|
|
17
|
-
imageIdentifier: 'reissverschluesse_black',
|
|
18
|
-
netPrice: null,
|
|
19
|
-
price: 0,
|
|
20
|
-
priceFormatted: '0,00 €',
|
|
21
|
-
stock: null,
|
|
22
|
-
title: 'Reissverschlüsse schwarz',
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export const mockedProps = {
|
|
26
|
-
channelSettings: { currencySymbol: '€', channel: '_default' },
|
|
27
|
-
details: optionData,
|
|
28
|
-
isTabletDevice: false,
|
|
29
|
-
languageSettings: {
|
|
30
|
-
currencysymbolposition: 'right',
|
|
31
|
-
dateformat: 'd.m.Y',
|
|
32
|
-
decimalpoint: ',',
|
|
33
|
-
id: '2',
|
|
34
|
-
iso: 'de_DE',
|
|
35
|
-
pricedecimals: 2,
|
|
36
|
-
thousandsseparator: '.',
|
|
37
|
-
user_created_id: '0',
|
|
38
|
-
},
|
|
39
|
-
optionclassification: {
|
|
40
|
-
attributes: [],
|
|
41
|
-
description: '',
|
|
42
|
-
identifier: 'reissverschluss',
|
|
43
|
-
is_mandatory: true,
|
|
44
|
-
is_multiselect: false,
|
|
45
|
-
optionsCount: '2',
|
|
46
|
-
selectedoptions: [optionData],
|
|
47
|
-
title: 'Reissverschluss',
|
|
48
|
-
},
|
|
49
|
-
options: [optionData],
|
|
50
|
-
show: true,
|
|
51
|
-
title: 'Reissverschluss',
|
|
52
|
-
viewDetails: () => {},
|
|
53
|
-
OptionlistitemAmount: React.Fragment,
|
|
54
|
-
};
|
|
7
|
+
import { mockedProps } from './index.test.mocks';
|
|
55
8
|
|
|
56
9
|
storiesOf('OptionDetail', module)
|
|
57
10
|
.add('renders as fullscreen on small screens', () => (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { render, mount } from 'enzyme';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import OptionDetail from './index';
|
|
4
|
-
import { mockedProps, optionData } from './index.
|
|
4
|
+
import { mockedProps, optionData } from './index.test.mocks';
|
|
5
5
|
import Button from '@material-ui/core/Button';
|
|
6
6
|
|
|
7
7
|
jest.mock('Shared/Components/CustomDialog', () => {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
export const optionData = {
|
|
4
|
+
abstract: 'Das sind schwarze Reissverschlüsse',
|
|
5
|
+
amount: null,
|
|
6
|
+
amount_is_selectable: null,
|
|
7
|
+
attributes: [],
|
|
8
|
+
description:
|
|
9
|
+
'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ',
|
|
10
|
+
detailImageExists: false,
|
|
11
|
+
identifier: 'reissverschluesse_black',
|
|
12
|
+
imageIdentifier: 'reissverschluesse_black',
|
|
13
|
+
netPrice: null,
|
|
14
|
+
price: 0,
|
|
15
|
+
priceFormatted: '0,00 €',
|
|
16
|
+
stock: null,
|
|
17
|
+
title: 'Reissverschlüsse schwarz',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const mockedProps = {
|
|
21
|
+
channelSettings: { currencySymbol: '€', channel: '_default' },
|
|
22
|
+
details: optionData,
|
|
23
|
+
isTabletDevice: false,
|
|
24
|
+
languageSettings: {
|
|
25
|
+
currencysymbolposition: 'right',
|
|
26
|
+
dateformat: 'd.m.Y',
|
|
27
|
+
decimalpoint: ',',
|
|
28
|
+
id: '2',
|
|
29
|
+
iso: 'de_DE',
|
|
30
|
+
pricedecimals: 2,
|
|
31
|
+
thousandsseparator: '.',
|
|
32
|
+
user_created_id: '0',
|
|
33
|
+
},
|
|
34
|
+
optionclassification: {
|
|
35
|
+
attributes: [],
|
|
36
|
+
description: '',
|
|
37
|
+
identifier: 'reissverschluss',
|
|
38
|
+
is_mandatory: true,
|
|
39
|
+
is_multiselect: false,
|
|
40
|
+
optionsCount: '2',
|
|
41
|
+
selectedoptions: [optionData],
|
|
42
|
+
title: 'Reissverschluss',
|
|
43
|
+
},
|
|
44
|
+
options: [optionData],
|
|
45
|
+
show: true,
|
|
46
|
+
title: 'Reissverschluss',
|
|
47
|
+
viewDetails: () => {},
|
|
48
|
+
OptionlistitemAmount: React.Fragment,
|
|
49
|
+
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import
|
|
3
|
+
import findIndex from 'lodash/findIndex';
|
|
4
|
+
import get from 'lodash/get';
|
|
4
5
|
import clsx from 'clsx';
|
|
5
|
-
import { makeStyles } from '@material-ui/core';
|
|
6
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
6
7
|
import DialogContent from '@material-ui/core/DialogContent';
|
|
7
8
|
import LoadingOverlay from 'Framework/Components/LoadingOverlay';
|
|
8
9
|
import CustomDialog from 'Shared/Components/CustomDialog';
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { createStore } from 'redux';
|
|
3
3
|
import { Provider } from 'react-redux';
|
|
4
4
|
import { mount, render } from 'enzyme';
|
|
5
|
-
import
|
|
5
|
+
import noop from 'lodash/noop';
|
|
6
6
|
import DefaultThemeProvider from 'App/Screens/Configurator/ThemeProvider';
|
|
7
7
|
import ProductPart from './index';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { makeStyles } from '@material-ui/core/styles';
|
|
5
|
-
import
|
|
5
|
+
import withWidth from '@material-ui/core/withWidth';
|
|
6
6
|
import { T } from 'Framework/i18n';
|
|
7
7
|
import Carousel from 'Framework/Components/Carousel';
|
|
8
8
|
import customClassName from 'App/Utils/customClassName';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import './Styles.scss';
|
|
3
|
-
import
|
|
3
|
+
import get from 'lodash/get';
|
|
4
4
|
|
|
5
5
|
import { T } from 'Framework/i18n';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
@@ -13,8 +13,8 @@ class SavedConfiguration extends React.Component {
|
|
|
13
13
|
render() {
|
|
14
14
|
const { savedconfiguration } = this.props;
|
|
15
15
|
|
|
16
|
-
const code =
|
|
17
|
-
const link =
|
|
16
|
+
const code = get(savedconfiguration, 'code', false);
|
|
17
|
+
const link = get(savedconfiguration, 'shareLink', false);
|
|
18
18
|
|
|
19
19
|
return (
|
|
20
20
|
<div className="savedconfiguration">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { translateComponent } from 'Framework/i18n';
|
|
3
|
-
import
|
|
3
|
+
import get from 'lodash/get';
|
|
4
4
|
|
|
5
5
|
import './Styles.scss';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
@@ -27,7 +27,7 @@ export class StoreConfigurationForm extends React.Component {
|
|
|
27
27
|
onSubmit(e) {
|
|
28
28
|
e.preventDefault();
|
|
29
29
|
this.props.onStore(this.nameInput.value).then(action => {
|
|
30
|
-
this.setState({ isSaved: !
|
|
30
|
+
this.setState({ isSaved: !get(action, 'data.error') });
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import containerConnect from 'Framework/ComponentContainer';
|
|
2
2
|
import { setVisible } from 'App/Reducers/UI/Actions';
|
|
3
3
|
import { setCustomTitle } from 'App/Reducers/Configurator/Actions';
|
|
4
|
-
import
|
|
4
|
+
import get from 'lodash/get';
|
|
5
5
|
import { Services } from 'App/ServiceLocator';
|
|
6
6
|
import CustomTitleEditor from '../../Components/CustomTitleEditor';
|
|
7
7
|
import Dialog from 'Framework/Components/Dialog';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import containerConnect from 'Framework/ComponentContainer';
|
|
2
2
|
import { setVisible } from 'App/Reducers/UI/Actions';
|
|
3
|
-
import
|
|
3
|
+
import get from 'lodash/get';
|
|
4
4
|
import { Services } from 'App/ServiceLocator';
|
|
5
5
|
|
|
6
6
|
import FastConfiguration from '../../Components/FastConfiguration';
|
|
@@ -18,7 +18,7 @@ const getValidationErrors = configuratorState => {
|
|
|
18
18
|
validation,
|
|
19
19
|
optionclassifications && optionclassifications.length
|
|
20
20
|
).use(() => {
|
|
21
|
-
const errors = validation
|
|
21
|
+
const errors = validation?.validationErrors || validation?.errors || {};
|
|
22
22
|
return !optionclassifications
|
|
23
23
|
? []
|
|
24
24
|
: Object.entries(errors).map(([key, error]) => ({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import containerConnect from 'Framework/ComponentContainer';
|
|
2
2
|
import { setVisible } from 'App/Reducers/UI/Actions';
|
|
3
3
|
import { clearOptionDetails } from 'App/Reducers/Configurator/Actions';
|
|
4
|
-
import
|
|
4
|
+
import get from 'lodash/get';
|
|
5
5
|
import OptionDetail from '../../Components/Optiondetail';
|
|
6
6
|
|
|
7
7
|
const mapStateToProps = ({ ui, configurator, device }) => {
|
package/src/App/Modules/Designer/Components/AddGalleryImage/__snapshots__/index.test.jsx.snap
CHANGED
|
@@ -51,7 +51,6 @@ exports[`renders correctly 1`] = `
|
|
|
51
51
|
alt="Symbole"
|
|
52
52
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
53
53
|
src="./res/Kreis.jpg"
|
|
54
|
-
style="background:#c4c4c4"
|
|
55
54
|
/>
|
|
56
55
|
<div
|
|
57
56
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -68,7 +67,6 @@ exports[`renders correctly 1`] = `
|
|
|
68
67
|
alt="Branchen"
|
|
69
68
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
70
69
|
src="./res/Kreis.jpg"
|
|
71
|
-
style="background:transparent"
|
|
72
70
|
/>
|
|
73
71
|
<div
|
|
74
72
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -85,7 +83,6 @@ exports[`renders correctly 1`] = `
|
|
|
85
83
|
alt="Männer"
|
|
86
84
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
87
85
|
src="./res/Rechteck.jpg"
|
|
88
|
-
style="background:transparent"
|
|
89
86
|
/>
|
|
90
87
|
<div
|
|
91
88
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -102,7 +99,6 @@ exports[`renders correctly 1`] = `
|
|
|
102
99
|
alt="Frauen"
|
|
103
100
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
104
101
|
src="./res/Rechteck.jpg"
|
|
105
|
-
style="background:transparent"
|
|
106
102
|
/>
|
|
107
103
|
<div
|
|
108
104
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -119,7 +115,6 @@ exports[`renders correctly 1`] = `
|
|
|
119
115
|
alt="Figuren"
|
|
120
116
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
121
117
|
src="./res/Kreis.jpg"
|
|
122
|
-
style="background:transparent"
|
|
123
118
|
/>
|
|
124
119
|
<div
|
|
125
120
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -136,7 +131,6 @@ exports[`renders correctly 1`] = `
|
|
|
136
131
|
alt="Geometrisch1"
|
|
137
132
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
138
133
|
src="./res/Kreis.jpg"
|
|
139
|
-
style="background:transparent"
|
|
140
134
|
/>
|
|
141
135
|
<div
|
|
142
136
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -153,7 +147,6 @@ exports[`renders correctly 1`] = `
|
|
|
153
147
|
alt="Figuren1"
|
|
154
148
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
155
149
|
src="./res/Stern.jpg"
|
|
156
|
-
style="background:transparent"
|
|
157
150
|
/>
|
|
158
151
|
<div
|
|
159
152
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -170,7 +163,6 @@ exports[`renders correctly 1`] = `
|
|
|
170
163
|
alt="Geometrisch"
|
|
171
164
|
class="ImageThumbnail-imageLibraryThumbnail-12 ImageThumbnail-inactiveGalleryImage-17"
|
|
172
165
|
src="./res/Stern.jpg"
|
|
173
|
-
style="background:transparent"
|
|
174
166
|
/>
|
|
175
167
|
<div
|
|
176
168
|
class="ImageThumbnail-priceLabel-14"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
|
-
import
|
|
5
|
-
import Icon from '@material-ui/core/Icon
|
|
4
|
+
import isEmpty from 'lodash/isEmpty';
|
|
5
|
+
import Icon from '@material-ui/core/Icon';
|
|
6
6
|
import MainButton from 'Shared/Components/MainButton';
|
|
7
7
|
import { t } from 'Framework/i18n';
|
|
8
|
-
import withWidth, { isWidthDown } from '@material-ui/core/withWidth
|
|
9
|
-
import Typography from '@material-ui/core/Typography
|
|
8
|
+
import withWidth, { isWidthDown } from '@material-ui/core/withWidth';
|
|
9
|
+
import Typography from '@material-ui/core/Typography';
|
|
10
10
|
import ImageLibraryFilter from '../ImageLibraryFilter';
|
|
11
11
|
import ImageLibraryThumbnail from '../ImageLibraryThumbnail';
|
|
12
12
|
import Dialog from '@material-ui/core/Dialog';
|
|
@@ -146,30 +146,3 @@ it('calls the onSelectImage callback when the user uploads an own image in the C
|
|
|
146
146
|
button.simulate('click');
|
|
147
147
|
expect(onChangeHandler).toHaveBeenCalled();
|
|
148
148
|
});
|
|
149
|
-
|
|
150
|
-
it('sets the background to grey if the image is too bright', () => {
|
|
151
|
-
const tree = mount(
|
|
152
|
-
<AddGalleryImage
|
|
153
|
-
tags={tags}
|
|
154
|
-
images={images}
|
|
155
|
-
onClose={() => {}}
|
|
156
|
-
onSelectImage={() => {}}
|
|
157
|
-
onSelectTag={() => {}}
|
|
158
|
-
open={true}
|
|
159
|
-
width={'lg'}
|
|
160
|
-
/>
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
const renderedImages = tree
|
|
164
|
-
.find('ImageLibraryThumbnail')
|
|
165
|
-
.at(0)
|
|
166
|
-
.find('img');
|
|
167
|
-
|
|
168
|
-
const firstImageBackground = renderedImages.at(0).props('motive').style.background;
|
|
169
|
-
const secondImageBackground = renderedImages.at(1).props('motive').style.background;
|
|
170
|
-
const thirdImageBackground = renderedImages.at(2).props('motive').style.background;
|
|
171
|
-
|
|
172
|
-
expect(firstImageBackground).toEqual('#c4c4c4');
|
|
173
|
-
expect(secondImageBackground).toEqual('transparent');
|
|
174
|
-
expect(thirdImageBackground).toEqual('transparent');
|
|
175
|
-
});
|