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