{"version":3,"sources":["lib/helper/userHelper.js","components/CompareProducts/helperFunctions.js","components/AutocompleteSearch/MultiSearchbar/styles.js","components/AutocompleteSearch/MultiSearchbar/assets/car.svg","components/AutocompleteSearch/MultiSearchbar/assets/phone.svg","components/AutocompleteSearch/MultiSearchbar/MultiSearchbar.jsx","redux/pageReducer.js","lib/helper/modelVersionsHelper.js","components/Products/ProductCard/ProductCard.jsx","lib/helper/newsHelper.js","redux/adapter/newsArticleAdapter.js","components/Products/Banner/styles.js","components/Products/Banner/Banner.jsx","components/Products/styles.js","components/Products/ProductCard/MissingFavoriteProductCard.jsx","components/Products/ReplacementProducts/ReplacementProducts.jsx","components/Products/ProductCard/Components/ModTekSelector.jsx","components/Products/Products.jsx","redux/hook/gdprHooks.js","redux/hook/pageHook.js","redux/services/productInfoApi.js","redux/hook/priceHooks.js","lib/hooks/languageHooks.js","components/Products/ProductInfo/components/CompatibleModels/styles.js","components/Products/ProductInfo/components/CompatibleModels/CompatibleModels.jsx","components/PageHandler/styles.js","components/Pagination/styles.js","components/Pagination/DropdownPagination.jsx","components/Pagination/PagePagination.jsx","components/PageHandler/PageHandler.jsx","lib/helper/modelHelper.js","redux/gdprSlice.js","lib/helper/googleAnalyticsHelper.jsx","redux/hook/compareHooks.js","redux/monitorSlice.js","components/MetaData/NoIndexMetadata.jsx","components/CustomerOrders/functions.js","components/Products/ProductViewToggleButton/ProductViewToggleButton.jsx","components/RegisterRetailer/RegisterRetailerStepIcon.jsx","components/RegisterRetailer/styles.js","components/RegisterRetailer/RegisterRetailer.jsx","components/DynamicContentPage/DynamicContent/DynamicContent.jsx","redux/services/favoriteApi.js","components/SwipableView/styles.js","components/SwipableView/components/NavButtonIcon.jsx","components/SwipableView/components/Navbutton.jsx","components/ImageDialog/index.jsx","components/SwipableView/index.jsx","redux/thunk/customerOrderThunk.js","redux/adapter/materialAdapter.js","redux/services/priceApi.js","lib/hooks/urlQueryHooks.js","redux/api.js","redux/search2Reducer.js","components/Menu2/AppMenuItem/styles.js","components/Menu2/AppMenuItem/assets/arrow-next.svg","components/Menu2/AppMenuItemComponent/AppMenuItemComponent.jsx","components/Menu2/AppMenuItem/AppMenuItem.jsx","components/Menu2/assets/arrow-back.svg","assets/CustomizedSolutions2.jpg","components/Menu2/Menu2.jsx","components/StyledMarkdown/StyledMarkdown.jsx","theme.js","redux/priceSlice.js","components/SpeedOrder/styles.js","components/SpeedOrder/SpeedOrder.jsx","assets/customizedSolutions.png","lib/Localization.js","redux/hook/customerOrderHooks.js","components/Order/ProductCardOrder/styles.js","components/Order/ProductCardOrder/ProductCardOrder.jsx","redux/adapter/priceAdapter.js","redux/hook/userHooks.js","components/YoutubeVideo/styles.js","components/YoutubeVideo/YoutubeVideo.jsx","components/SpeedOrder/SpeedOrderNavbar.jsx","components/Products/ProductCard/ReportButton/ReportButton.jsx","components/AsyncSearch/assets/magnifying-glass.svg","components/AsyncSearch/styles.js","components/AsyncSearch/AsyncSearch.jsx","components/AutocompleteSearch/VehicleSearchbar/styles.js","components/AutocompleteSearch/VehicleSearchbar/LeftRightSteeringFilter.jsx","components/UserInfo/styles.js","components/UserInfo/UserInfo.jsx","components/CompareToggleButton/styles.js","components/CompareToggleButton/CompareToggleButton.jsx","redux/productReducer.js","redux/thunk/materialThunk.js","assets/carMount.png","components/Menu2/styles.js","assets/largelogo.png","redux/hook/windowHooks.js","assets/holder.png","lib/helper/gdprHelper.jsx","components/Products/ProductInfo/components/Text/index.jsx","components/Products/ProductInfo/view/Specification.jsx","components/CustomerOrders/OrderInfo/styles.js","components/CustomerOrders/OrderInfo/OrderInfo.jsx","components/News/NewsItem.jsx","components/News/VehicleNewsListPage/styles.js","components/Products/ProductCard/Components/styles.js","components/Products/ProductCard/Components/ProductTitle.jsx","components/Products/ProductCard/Components/ProductPrice.jsx","components/Products/ProductCard/Components/ProductNumber.jsx","components/Products/ProductCard/Components/ProductImage.jsx","components/Products/ProductCard/Components/ProductButtons.jsx","components/Products/ProductCard/Components/ProductDescription.jsx","components/SearchDealer/SearchDealerLink.jsx","components/Products/ProductCard/Components/ProductCardTemplate.jsx","components/Thumbnail/styles.js","components/Thumbnail/Thumbnail.jsx","components/Thumbnail/components/NavigationButton.jsx","components/Thumbnail/ThumbnailStepper.jsx","components/Products/ProductInfo/components/Instruction/styles.js","components/Products/ProductInfo/components/Instruction/index.js","components/Products/ProductInfo/view/Instructions.jsx","lib/icons/ExternalLink/icons8-external-link.svg","lib/icons/ExternalLink/ExternalLinkIcon.jsx","components/Order/ProductCardOrder/HeadingRow/styles.js","components/Order/ProductCardOrder/HeadingRow/HeadingRow.jsx","components/Order/OrderSummary/ConfirmationDialog/styles.js","components/Order/OrderSummary/ConfirmationDialog/ConfirmationDialog.jsx","components/Products/ProductInfo/components/Text/styles.js","components/Products/ProductInfo/components/Text/NewlineText.js","redux/userMessageSlice.js","redux/services/broditWebApi.js","lib/helper/viewportHelper.js","components/CustomerOrders/CustomerOrderInfo/CustomerOrderInfo.jsx","components/ErrorMessage/ErrorMessage.jsx","components/News/VehicleNewsListPage/VehicleNewsListPage.jsx","components/MessageNotification/MessageNotification.js","components/DynamicContentPage/DynamicContentPage.jsx","components/WithdrawCookiesConsent/WithdrawCookiesConsent.jsx","components/MetaData/LandingPageMetaDescription.jsx","components/MetaData/NewsMetaDescription.jsx","redux/cartSlice.js","components/Home/styles.js","components/Home/components/Holder.styles.js","components/Home/components/Holder.jsx","components/Home/components/Heronews.jsx","assets/MoveClip_Start.jpg","assets/Suction_Start.jpg","assets/Workstation_Start.jpg","assets/Workstation_Mobile.jpg","assets/Pipe_Mobile.jpg","assets/Pedestal_Mobile.jpg","assets/solutions_mob.jpg","assets/piedestal.png","assets/ror.png","assets/truck.png","components/News/styles.js","components/News/NewsCard.jsx","components/News/NewsCardList.jsx","components/Home/Home.jsx","components/Navbar/ListOptions/styles.js","components/Navbar/ListOptions/assets/arrow-forward.svg","components/Navbar/ListOptions/ListOptions.jsx","components/Navbar/styles.js","components/Navbar/NavbarMenu/NavbarMenu.jsx","assets/eng.svg","assets/swe.png","components/Navbar/SearchArea/DesktopSearchArea.jsx","components/Navbar/SearchArea/MobileDrawer/assets/close-icon.svg","components/Navbar/SearchArea/MobileDrawer/styles.js","components/Navbar/SearchArea/MobileDrawer/assets/arrow-forward.svg","components/Navbar/SearchArea/MobileDrawer/MobileDrawer.jsx","components/Navbar/SearchArea/MobileSearchArea.jsx","components/Navbar/MessageBar/MessageBar.jsx","components/Navbar/Navbar.jsx","components/Order/OrderAddresses/styles.js","components/Order/OrderAddresses/MobileOrderAddresses.jsx","components/Order/OrderAddresses/OrderAddresses.jsx","components/Order/ProductCardOrder/MobileProductCardOrder.jsx","components/CustomerOrders/OrderInfo/MobileOrderInfo.jsx","components/Order/OrderConfirmation/OrderConfirmation.jsx","components/Order/OrderStepConnector/OrderStepConnector.jsx","components/Order/OrderStepIcon/styles.js","components/Order/OrderStepIcon/OrderStepIcon.jsx","components/Order/OrderSummary/styles.js","components/Order/ProductCardOrder/MobileCartItem.jsx","components/Order/OrderSummary/MobileOrderSummary.jsx","components/Order/OrderSummary/OrderSummary.jsx","components/Order/styles.js","components/Order/Order.jsx","components/Products/FilterProducts/styles.js","components/Products/FilterProducts/components/showMore.jsx","components/Products/FilterProducts/components/CheckboxList.jsx","components/Products/FilterProducts/components/PropertiesFilterComponents/ExpandableHeader.jsx","components/Products/FilterProducts/components/PropertiesFilterComponents/PropertiesList.jsx","components/Products/FilterProducts/components/PropertiesFilterComponents/PropertyGroup.jsx","lib/helper/propertyHelper.js","components/Products/FilterProducts/components/PropertiesFilter.jsx","components/Products/FilterProducts/components/SideFilter.jsx","lib/icons/Funnel/funnel.svg","lib/icons/Funnel/FunnelIcon.jsx","components/Products/ProductNavigation/styles.js","components/Products/ProductNavigation/ProductNavigation.jsx","components/Products/FilterProductToolbar/FilterProductToolbar.jsx","components/Products/FilterProducts/FilterProducts.jsx","components/Footer/styles.js","components/Footer/assets/logotype.svg","assets/homePageContact.jpg","assets/homePageContact_mob.jpg","components/Footer/components/Contact/styles.js","components/Footer/components/Contact/Contact.jsx","components/Footer/Footer.jsx","components/CustomerOrders/styles.js","components/CustomerOrders/components/TrackingButton.jsx","components/CustomerOrders/components/DesktopOrderPaper.jsx","components/CustomerOrders/components/MobileOrderPaper.jsx","components/CustomerOrders/components/CustomerOrder.jsx","components/CustomerOrders/components/Headers.jsx","components/CustomerOrders/CustomerOrders.jsx","components/Favorites/FavoriteProductPage/styles.js","assets/check.png","assets/close.png","components/Favorites/FavoriteProductPage/Userlist.jsx","assets/pen.png","assets/delete.png","components/Favorites/FavoriteProductPage/FavoriteProductsPage.jsx","components/News/NewsPage/styles.js","components/Stepper/NavigationButton.jsx","components/Stepper/Stepper.jsx","components/News/NewsPage/NewsPage.jsx","components/CompareProducts/styles.js","components/CompareProducts/components/ComparisonHeader.jsx","components/CompareProducts/components/ComparisonTableSection.jsx","components/CompareProducts/components/ProductComparisonSections.jsx","components/CompareProducts/components/ProductComparisonTable.jsx","components/CompareProducts/CompareProducts.jsx","components/User/styles.js","components/User/assets/mypages.jpg","components/User/MessageBox/MessageBox.jsx","components/User/User.jsx","lib/helper/numberHelper.js","components/OrderUpload/styles.js","components/OrderUpload/CsvReader/CsvReader.jsx","assets/orderByFileExample.jpg","components/OrderUpload/OrderUpload.jsx","components/SignIn/styles.js","components/SignIn/ForgotPasswordForm.jsx","components/SignIn/SignIn.jsx","components/FileDownload/styles.js","components/FileDownload/DownloadForm/DownloadForm.jsx","components/FileDownload/FileDownload.jsx","components/StateHandler/StateHandlers/CartHandler.jsx","components/StateHandler/StateHandlers/FavoriteHandler.jsx","components/StateHandler/StateHandler.jsx","components/ResetPassword/styles.js","components/ResetPassword/ResetPassword.jsx","components/NotFound/styles.js","components/NotFound/NotFound.jsx","components/News/NewsListPage/styles.js","components/News/NewsListPage/NewsListPage.jsx","components/GDPRWarning/styles.js","components/GDPRWarning/GDPRWarning.jsx","components/Page/styles.js","components/Page/Page.jsx","components/CompareOverview/styles.js","components/CompareOverview/CompareOverview.jsx","redux/hook/productHooks.js","components/FlashMessage/styles.js","components/FlashMessage/FlashMessage.jsx","components/NewsLetter/styles.js","components/NewsLetter/NewsLetter.jsx","lib/helper/commonHelper.js","components/Welcomesplash/styles.js","components/Welcomesplash/WelcomeSplash.jsx","components/Products/ProductInfo/components/TabPanel.jsx","components/Products/ProductInfo/view/RelatedProducts.jsx","components/Products/ProductInfo/components/loadingComponents/MobileLoading.jsx","components/Products/ProductInfo/components/loadingComponents/DesktopLoading.jsx","components/Products/ProductInfo/components/LoadingView.jsx","components/Products/ProductInfo/components/Material/styles.js","redux/hook/materialHooks.js","components/Products/ProductInfo/components/ProductInfo.jsx","components/Menu2/Menu2Drawer.jsx","components/ShareButton/styles.js","components/ShareButton/ShareButton.jsx","components/SearchDealer/DealerSearchFilter.jsx","components/SearchDealer/styles.js","components/SearchDealer/SearchDealer.jsx","components/CustomTextField/styles.js","components/CustomTextField/CustomTextField.jsx","components/MetaData/SignInMetaDescription.jsx","components/MetaData/ProclipMetaDescription.jsx","redux/hook/searchHooks.js","redux/adapter/productAdapter.js","components/Products/ProductInfo/styles.js","redux/searchReducer.js","lib/helper/brandHelper.js","redux/userSlice.js","redux/services/cartApi.js","styles.js","redux/customerOrderReducer.js","redux/hook/errorHooks.js","redux/localStorage.js","redux/middleware/api.js","redux/materialReducer.js","redux/thunk/newsArticleThunk.js","redux/newsArticleReducer.js","redux/adapter/modelAdapter.js","redux/thunk/modelThunk.js","redux/modelSlice.js","redux/thunk/collectionThunk.js","redux/collectionReducer.js","redux/rootReducer.js","redux/store.js","components/ProclipAndHolders/styles.js","assets/proclipAndHolders.png","assets/proclip.png","assets/proclipHolder.png","components/ProclipAndHolders/ProclipAndHolders.jsx","components/ProclipAndHolders/helpers/brandhelper.jsx","components/ProductDevelopment/styles.js","assets/prouctDev.png","components/ProductDevelopment/ProductDevelopment.jsx","components/About/Timeline.styles.js","components/About/assets/arrow.svg","components/About/Timeline.jsx","components/About/styles.js","components/About/About.jsx","components/RouteChangeTracker/RouteChangeTracker.jsx","components/SpeedOrder/QuickShop.jsx","components/ErrorPage/styles.js","components/ErrorPage/ErrorPage.jsx","components/Career/styles.js","components/Career/assets/mont.png","components/Career/assets/mont_mob.jpg","components/Career/assets/cnc.jpg","components/Career/assets/cnc_mob.jpg","components/Career/Career.jsx","components/CategoriesPage/assets/arrow-up.svg","components/CategoriesPage/components/ScrollTopButton.jsx","components/CategoriesPage/assets/dl-icon.svg","components/CategoriesPage/CategoriesPage.jsx","components/ContactPage/assets/contacthero.jpg","components/ContactPage/styles.js","components/ContactPage/assets/mobhero.png","components/ContactPage/helpers/countries.jsx","components/ContactPage/ContactPage.jsx","components/MetaData/AboutMetaDescription.jsx","components/MetaData/ProductDevelopmentMetaDescription.jsx","components/MetaData/ProclipAndHoldersMetaDescription.jsx","components/MetaData/CategoriesMetaDescription.jsx","components/RetailersPage/RetailersPage.jsx","components/Products/ProductInfo/components/ProductImageCarousel/ProductImageCarousel.jsx","components/Products/ProductInfo/components/ProductAccordion/assets/expand.svg","components/Products/ProductInfo/components/ProductAccordion/ProductAccordion.jsx","components/Products/ProductInfo/components/CompatibleModelsList/CompatibleModelsList.jsx","components/Products/ProductInfo/components/ActionButtons/ActionButtons.jsx","components/Products/ProductInfo/components/AddToCartControls/AddToCartControls.jsx","components/Products/ProductInfo/components/Accessories/Accessories.jsx","components/Products/ProductInfo/components/ModTekSection/ModTekSection.jsx","components/Products/ProductInfo/components/DesktopProductInfoNew.jsx","App.js","index.js","redux/thunk/productThunk.js","redux/favoriteSlice.js","redux/compareProductsReducer.js","lib/helper/searchHelper.js","redux/cookieStorage.js","redux/hook/settingsHooks.js","redux/settingsReducer.js","components/Home/components/Row.styles.js","components/Home/components/Row.jsx","lib/helper/dynamicContentHelper.js","redux/services/contentApi.js","components/Favorites/FavoriteButton.jsx"],"names":["getUserData","authToken","callback","setLoading","arguments","length","undefined","errorCallback","async","response","axios","post","error","data","fetchData","then","result","catch","console","checkMonitorArticles","lang","articles","language","stringList","fetchJson","persistScrollPosition","id","sessionStorage","setItem","transformProductForCompare","product","propertiesAsDisplayNameValue","properties","reduce","l","_ref","displayName","value","toLowerCase","compatibilityListString","compatibleModels","map","x","_x$years","brand","model","years","join","placement","Set","newProd","isNew","Localization","yes","no","productTransformation","products","sectionMapping","Description","MappedFields","itemNumber","Field","name","description","eanNumber","DisplayDefaultValues","fitsFor","newProduct","technicalInformation","dimensionsAndWeight","width","height","depth","weight","volume","sections","s","section","Data","mf","sectionData","Values","values","notApplicable","push","prepareProducts","originalId","makeStyles","theme","wrapper","position","display","breakpoints","down","tabletBreakpoint","dropdownButton","gap","flex","textDecoration","border","backgroundColor","alignItems","cursor","fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","justifyContent","background","opacity","paddingTop","paddingBottom","buttonLeftWrapper","buttonRightWrapper","iconWrapper","dropdown","flexDirection","zIndex","top","right","marginTop","marginLeft","padding","borderRadius","boxShadow","left","truncatedSearchString","maxWidth","whiteSpace","overflow","textOverflow","color","clearButton","visibility","hover","MultiSearchbar","vehicles","snap","show","onClose","onClick","dropdownRef","useRef","classes","useStyles","dispatch","useDispatch","useLanguage","steering","useSteering","brands","useGetBrandsQuery","allModels","useGetModelsQuery","steerings","open","setOpen","useState","brandOptions","setBrandOptions","modelOptions","setModelOptions","yearOptions","setYearOptions","selectedBrand","setSelectedBrand","selectedModel","setSelectedModel","selectedYear","setSelectedYear","setHover","isMobile","useMediaQuery","useEffect","modelYears","useGetModelYearsQuery","navigate","useNavigate","ArrowIcon","ArrowDropUpIcon","ArrowDropDownIcon","urlToFilterPage","isOtherBrandDevice","indexOf","filter","_ref2","setSearchQuery","type","models","clearFilter","replace","newBrandOptions","brandType","_ref3","processedNames","forEach","has","add","handleClickOutside","event","target","classList","current","contains","document","addEventListener","removeEventListener","clearFilters","e","stopPropagation","anyFilterSelected","_jsxs","role","tabIndex","className","ref","onKeyDown","key","children","disabled","onMouseEnter","onMouseLeave","_jsx","loading","src","Car","Phone","alt","style","getFullSelectionString","string","searchOnVehicle","searchOnDevice","ClearIcon","CircularProgress","paddingLeft","paddingRight","snapStyle","transform","Autocomplete","options","onChange","renderInput","params","TextField","label","variant","pageSlice","createSlice","initialState","limit","offset","prevLimit","prevOffset","action","userSelectedLimit","reducers","increaseLimit","state","reset","savePage","setLimit","payload","setOffset","setUserSelectedLimit","actions","increasePageLimit","resetCurrentPage","setPageLimit","setUserLimit","setPageOffset","addYearPrefix","year","parseInt","getYearString","yearInterval","start","end","split","compatibleModelText","comp","trimEnd","ProductCard","handleShowMoreCompsClick","listView","grid","onSelect","restorationRef","backGroundColor","compare","showSearchDealerLink","productInfo","modTek","modTekInformation","altNameList","isAuthorized","useIsUserAuthorized","price","usePrice","displayPrice","proxyPath","useProxyPath","modtekProduct","useGetModTekProductsQuery","information","info","Object","keys","ProductCardTemplate","showSpeedOrder","linkToProduct","newsDateComparer","a","b","aDate","Date","dateTime","bDate","getTime","newsArticleAdapter","createEntityAdapter","selectId","newsArticle","sortComparer","newsArticleSelectors","getSelectors","selectById","selectAll","root","boxSizing","rotated","writingMode","textOrientation","marginRight","text","textTransform","Banner","whatType","comingSoon","bestseller","phasingOut","getData","Typography","palette","default","spacing","minHeight","productViewBreakpoint","notGrid","notGridLoading","circleAnimation","isGrid","MissingFavoriteProductCard","productId","replacementProds","useGetReplacementProductsQuery","productContent","images","thisProductIsNoLongerAvailable","getReplacementText","_replacementProds$rep","deleted","replacementProducts","itWasReplacedByTheFollowingArticles","array","str","toString","substr","getArticleString","showShare","showCompare","showFavorite","fillEmptySpace","ReplacementProducts","searchedId","Box","wasReplacedByFollowingArticles","List","ListItem","NavLink","to","ProductGallery","list","hidden","setProducts","fetchedProducts","fetchModteks","p","_p$id","pr","sx","maxHeight","i","ModTekSelector","_modTek$title","_modTek$title6","missingProducts","modTekId","titles","title","index","activeButton","setActiveButton","useSelectedModTek","chooseStep","_modTek$title2","_modTek$title3","en","changeSelectedModTek","step","_modTek$title4","_modTek$title5","ind","Button","component","Link","size","toUpperCase","t","_modTek$categories$fi","categories","find","category","Products","useGridView","isLoading","isDeleted","useTheme","mobileBreakpoint","isOnlyOneCardWidth","isGridState","useSelector","settings","productGridView","isGridTemplateColumns","navigationType","useNavigationType","useMemo","productMarkerId","persistendId","getItem","removeItem","window","scrollTo","Array","fill","createRef","gridTemplateColumns","xs","sm","md","lg","mini","theProduct","isDiscontinuedAndNoLongerAvailable","weCouldNotFindThisProductEtc","useCookiesConsent","gdpr","hasAllowedCookies","usePage","page","returnObj","productInfoApi","createApi","reducerPath","baseQuery","fetchBaseQuery","baseUrl","endpoints","builder","getBrands","query","transformResponse","nameCorrectedBrands","replaceNameForBrandOther","sortBrands","getProductsByFilter","filters","pagination","cleanFilters","filterFaultyValues","isSearchQueryEmpty","restoreNameForBrandOther","url","method","body","_meta","arg","_response$pagedList$r","_response$pagedList","_response$pagedList$r2","productList","pagedList","getModelYears","args","brandIds","modelIds","useGetProductsByFilterQuery","useLoadPrices","ids","useUserAuthToken","prices","useGetPricesQuery","skip","locale","useParams","margin","CompatibleModels","_allSearchQueries$bra","_allSearchQueries$bra2","_allSearchQueries$mod","_allSearchQueries$mod2","_allSearchQueries$yea","_allSearchQueries$yea2","allSearchQueries","useSearchQuery","sort","moveWordsToTopComparer","slice","moreSmall","gutterBottom","AnchorLink","href","showMore","flexGrow","button","centerContent","select","borderBottom","textUnderlineOffset","DropdownPagination","setIndex","itemCountText","displaying","Select","inputProps","selectOption","currentIndex","MenuItem","outOf","results","PagePagination","Pagination","count","Number","_","siblingCount","renderItem","item","PaginationItem","PageHandler","itemCount","searchQuery","Math","floor","amountOfPages","ceil","location","useLocation","prevLocation","pathname","search","prevSearchQuery","match","textsParameter","handleLoadSpecific","pageIndex","URL","URLSearchParams","set","history","_searchQuery$texts","currentLocation","hasSearchQueryChanged","texts","_searchQuery$texts2","includes","decodeURIComponent","onLoadMore","handleListSelect","numberOfOptions","from","fullWidth","startIcon","CachedIcon","loadMore","pageOptions","classNames","isNaN","get","dropdownOptions","modelNameCompare","modelNameA","modelNameB","expression","aParts","Boolean","bParts","localeCompare","aPartAsInt","bPartAsInt","diff","compareNumber","sign","sortModels","modelList","gdprSlice","acceptCookies","declineCookies","sendGAEventProductSearch","ReactGA","sendGAEventProductSearchViaLink","sendGAEventSignedIn","sendGAEventSignInUnauthorized","sendGAEventMaintenanceSignIn","sendGAEventErrorOnSignIn","useCompareCount","_useSelector$length","compareProduct","productIds","useCompareProducts","useIsCompareOverviewVisible","showOverview","useIsOnComparePage","onComparePage","monitorSlice","cartSimulation","cartSimulationLoading","loadingCustomerOrder","customerOrder","simulateOrderRequested","simulateOrderRequestReceived","simulateOrderFailed","resetPlacedOrder","fetchOrderRequestStarted","fetchOrderRequestReceived","fetchOrderFailed","simulateOrder","rows","apiCallBegan","onStart","onSuccess","onError","resetOrder","NoIndexMetaData","Helmet","content","getStatusText","statusId","_allStatus$statusId","upperCase","defaultStatus","icon","DoneIcon","deliveryComplete","selectedStatus","CheckCircleOutlineIcon","registered","PrintIcon","printed","AccessTimeIcon","deliveryTimeCannotBeConfirmed","TransferWithinAStationIcon","processing","LocalShippingIcon","partiallyDelivered","_Fragment","ProductViewToggleButton","noMargin","Tooltip","toggleView","IconButton","toggleProductGridViewSetting","ListIcon","AppsIcon","RegisterRetailerStepIcon","Info","Business","ShoppingCart","LocalShipping","Payment","VerifiedUser","String","active","backgroundImage","completed","line","textFieldWrapper","textFieldWrapperNoPadding","formDefaultValues","companyName","organizationNumber","website","contactName","contactPhone","contactEmail","deliveryAddress","deliveryPostalCode","deliveryTown","boxDeliveryAddress","boxDeliveryPostalCode","boxDeliveryTown","billingAddress","billingPostalCode","billingTown","billingEmail","nameSign","dateSign","townSign","registrationCertificate","agreement","recaptcha","RetailerInformation","toSellBroditProducts","paragraph","marginBottom","retailerApplicationText","BusinessSection","register","errors","expanded","setExpanded","React","hasErrors","expandedValue","Accordion","_event","AccordionSummary","expandIcon","ExpandMore","companyAdress","Error","AccordionDetails","required","organisationNumber","PurchaceSection","_ref4","purchase","contactPerson","phonenumber","email","DeliveryAdress","_ref5","delivery","streetAddress","helperText","forParcelDelivery","postalCode","town","postalAddress","InvoicingAdress","_ref6","forInvoiceThroughPdfBroditOnlySendsInvoicesThroughEmail","ValidateAndRegisterSection","_ref7","_registrationCertific","_registrationCertific2","watch","onChangeRecaptcha","onExpired","recaptchaRef","recaptchaSiteKey","registrationCertificateWatch","validate","companySignatory","date","attachUpToDateRegistrationCertificateFromBolagsverketAsAFile","chooseAFile","accept","noFileHasBeenSelected","FormControl","FormGroup","FormControlLabel","control","Checkbox","iHaveReadAndAgreeTo","rel","broditABsConditionsAndTermsOfSale","FormHelperText","pleaseAcceptTheTermsAndConditionsAboveToContinue","ReCAPTCHA","sitekey","hl","pleaseFillInThisCheckBox","alignSelf","sendApplication","minWidth","Send","RegisterRetailer","props","setValue","setError","clearErrors","handleSubmit","formState","useForm","defaultValues","setIsLoading","useRecaptchaSiteKey","Container","onSubmit","message","formData","FormData","status","entries","append","headers","exception","_exception$response","setSnackbarMessage","yourApplicationHasBeenSent","couldNotConnectToTheServer","aProblemOccuredWhileProccessingYourApplication","pleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists","DynamicContent","remainingProps","markdownText","isFetching","useGetDynamicPageMarkdownQuery","dynamicContentElement","SearchDealer","YoutubeVideo","link","StyledMarkdown","noContentForTheSelectedLanguage","favoriteApi","getFavorite","onQueryStarted","_authToken","queryFulfilled","favoriteFromServer","batch","setFavoriteProducts","setShouldSyncFavorites","err","updateFavorite","mutation","favorite","useGetFavoriteQuery","useUpdateFavoriteMutation","swipeableTextMobileStepper","swiperBox","bannerBox","imageBox","productImage","objectFit","buttonRoot","iconRoot","navButton","NavButtonIcon","KeyboardArrowRightIcon","KeyboardArrowLeftIcon","NavButton","iconStyle","ImageDialog","handleClose","f","Dialog","DialogContent","SwipeableMobileStepper","isDialog","dialogIndex","DialogActions","autoFocus","close","SwipeableTextMobileStepper","productPage","bannerArea","disableSwipe","activeStep","setActiveStep","showImageDialog","setShowImageDialog","isSmall","imagesReOrdered","imgArr","foundArr","exec","last","splice","returnArr","instructional","getImages","maxSteps","buttonMinHeight","handleBack","prevActiveStep","noDisplayLink","onLinkClick","SwipeableViews","onChangeIndex","enableMouseEvents","containerStyle","justifyItems","image","process","handleNext","closeImageDialog","requestCustomerOrders","createAsyncThunk","rejectWithValue","fetchCustomerOrders","requestCustomerOrder","fetchCustomerOrder","materialAdapter","material","materialSelectors","priceApi","getPrices","_ids","meta","addPrices","warn","_err$error","useUrlQuery","useUrlSearchQuery","urlSearchParams","extractSearchQueryFromUrlSearchParams","createAction","apiCallSucess","apiCallFailed","search2Slice","setSearchQuery2","searchQueries","updateSearchQuery2","newValue","clearSearchQuery2","exclude","excludedSearchQueries","prev","menuItem","menuItemIcon","openTransform","categoryArea","up","catalog","bold","AppMenuItemComponent","NavLinkComponent","forwardRef","createNavLinkComponent","AppMenuItem","collections","onItemClick","selectCollection","level","collection","isExpandable","some","c","ArrowNext","Menu2","_currentCollection$pa","onBackToParent","menuRef","collectionStructure","setCollectionStructure","currentCollection","setCurrentCollection","setHistory","isDesktop","small","midSize","midSizeBreakpoint","addParentToCollections","parent","findCollectionById","subCollection","collectionId","selectedCollection","col","prevState","fetch","json","fetchCollectionStructure","structuredResult","mobileLayout","backButton","handleBackAction","ArrowBack","collectionTitle","appMenu","disablePadding","indent","desktopLayout","img","textAlign","homeSectionCustomSolutionsTitel","textWrap","megaMenu","readMoreLink","readMore","borderRight","components","h1","_node","elementProps","h2","h3","h4","h5","_ref8","ReactMarkdown","rehypePlugins","rehypeRaw","remarkPlugins","remarkGfm","createTheme","MuiButtonBase","disableRipple","primary","main","secondary","grey","contrastThreshold","typography","body2","MuiInputBase","styleOverrides","borderColor","MuiOutlinedInput","MuiSelect","MuiButton","MuiLink","textDecorationColor","priceAdapter","getInitialState","clearAll","removeAll","addMany","clearPriceErrors","working","animation","transitions","easing","easeInOut","outlinedSmall","qtyField","input","textField","quickshopWrapper","bottom","hide","quickshopButton","justifySelf","transition","quickshopContent","roundButton","appearance","quickshopInput","quantityInput","submitButton","SpeedOrder","articleNumber","quantity","_ref$current","q","addToCart","hasBeenAddedToCart","articleCouldNotBeAddedQuantityZero","couldNotBePlacedInCart","focus","placeholder","qty","inputRef","outlinedSizeSmall","strings","LocalizedStrings","onlyOnlineShops","findLocalRetailer","viaOurDistributors","pdfFiles","compatibleProducts","back","showSearch","hideSearch","tabInformation","moreInformation","tabSpecification","tabCompability","tabInstructions","tabRelatedProducts","tabRelatedFiles","noRelatedFiles","noAccessories","thereAreNoVideosForThisProduct","loadingMaterial","features","fasteners","compabilities","thisProductIsNotModelSpecific","loadingCompabilities","loadingProperties","propertiesNoneExist","instructions","chargingSpecification","unknownErrorCreatingOrder","showLess","noMaterialsAssigned","loadingProduct","createLeaflet","print","isComparing","share","productInformation","addToFavorites","removeFromFavorites","yourFavorites","pickedByPro","newProductsForDevices","newProductsForVehicles","more","seeAll","hits","toggleLanguage","user","cart","logIn","password","repeatPassword","changePassword","forgotPassword","passwordsMustMatch","forgotPasswordNotification","checkYourLoginDetails","addressDetails","confirmation","yourCart","checkOrderDetails","summary","numberOfOrderLines","totalQuantity","total","emptyCart","addNote","note","backToShop","backToCart","toCheckout","submitOrder","myDetails","customerNumber","messageToBrodit","purchaseOrder","orderPlacedBy","emailForOrderConfirmation","standardShippingAddress","orderConfirmation","thankYouForOrder","orderIsProcessing","orderNumber","orderDate","orderEmail","shippingAddress","reference","shop","shopViaReseller","findReseller","becomeReseller","new","news","showMoreNews","couldNotFindTheSelectedNewsArticle","newHolders","newProclip","newsLetter","aboutBrodit","broditsStory","broditsMovie","cookies","policies","integrityPolicy","contact","contactBrodit","hello","contactBroditVia","ifYouWantToChangeAnyInformation","hereIsYourUserInfo","workAtBrodit","findBrodit","noArticlesInCart","yourOrders","yourReference","order","orderWasPlaced","track","marking","numberOfProducts","trackShipment","backToOrderList","sentQuantity","anErrorOccuredTryRelogging","published","toggleSortOrder","searchOnModel","searchOnModelYears","device","vehicle","showImages","howToInstall","phone","fax","thisSiteUsesCookies","readMoreInThePrivacyPolicy","iAccept","IHaveReadAndAcceptTheTerms","cancel","backwards","next","aProblemOccuredWhileProccessingYourApplicationPleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists","otherModels","allProducts","searchResults","youSearchedFor","searchUpperCase","searchForProducts","premiereNewOnlineShop","beforeYouLogInInfo","returnNote","logOut","chooseYear","deselectAll","showOrHideFilters","yourEmail","yourName","receiversEmail","shareThis","orderByFile","orderByFileInfoParagraph1","orderByFileInfoParagraph2","upload","clearYourCartFirst","orderWasImported","errorReadingOrderFile","clear","chosenFile","notIncludedArticlesMessage","yourPasswordHasBeenChanged","ifYouHaveProblemsWithYourCartResetIt","youHaveSharedTheProduct","somethingWentWrongWhenSharingProduct","recaptchaError","unknownError","experiencingProblemsWithCart","clickHere","toResetYourCart","endingSoon","chooseCity","shopOnline","notFound","thisPageWasNotFoundGoBackTo","home","showAmount","yourSearchGenerated","account","fileDownload","yourAccount","english","swedish","german","includePrices","updatesOnly","newItems","changedItems","deletedItems","youMustChooseAType","formatShouldBeISO8601","download","errorWhenAttemptingToDownloadFile","fromDate","webshopForBroditResellers","continueShopping","thisProductIsNotAvailableOrder","country","useTemporaryAddress","zipAndCity","address","productNotFound","forInstanceKarlsborg","asLoggedInUserYouCanWithdraw","ifYouWantToWithdrawConsent","here","youMustThenAcceptTheTermsAgain","tryResettingPasswordAgain","fileDownloadIsNotAvailable","apiKey","badRequestFileDownload","unAuthorizedFileDownload","compareProducts","noProductsToCompare","compareMaxThreeArticles","compareMaxTwoArticles","toComparison","clearAllProducts","endComparison","parcel","orderSystemMaintenance","systemMaintenanceTryAgainLater","theProductWasReplacedWithFollowingProductProducts","unregister","save","yourSubscriptionHasBeenUpdated","somethingWentWrong","whereCanIBuy","thePasswordMustAlsoComplyToTheFollowingRules","containMinimumSixCharacters","containUpperCaseCharacters","containLowerCaseCharacters","containANumber","containAFigure","productIsNotAvailable","withdrawingCookiesConsent","redirectingToStartPage","video","startPage","maximum30Letters","downloadCatalog","homeSection1Titel","homeSection1Text","findRightProclip","findRightHolder","homeSection2Titel","homeSection2Text","homeSectionPedestalHolderTitel","homeSectionPedestalHolderText","homeSectionPedestalHolderLinkText","homeSectionPipeHolderTitel","homeSectionPipeHolderText","homeSectionPipeHolderLinkText","homeSectionTruckHolderTitel","homeSectionTruckHolderText","homeSectionTruckHolderLinkText","homeSectionCustomSolutionsText","howIsItMade","homeSection4Text","deviceHolder","proclip","seeProduct","homeSection5Title","homeSection5Text","proclipAndHolders","proclipSection1Title","proclipSection1Text","proclipBrandsTitle","deviceBrandsTitle","proclipSection2ProclipText","proclipSection2HolderTitle","proclipSection2HolderText","proclipSection3ProclipBrands","proclipSection3ProclipDevices","productDevSection1Title","productDevSection1Text","productDevSection2Title","productDevSection2TextPart1","productDevSection2TextPart2","productDevSection2Part3Title","productDevSection2TextPart3","contactUs","productDevSection3Text","seeMore","seeLess","addArticleToCart","examplesSpecialCharacters","areYouSure","deleteAllConfirmation","exVat","downloadComparisonPdf","downloadProductPdf","findProClip","findDeviceHolder","customerDetails","myPagesEmail","refreshToContinue","adImageAlt","numbersOnly","smsTracking","cellNumber","homeSuctionTitle","homeSuctionText","homeSuctionLinkText","homeScreenTitle","homeScreenText","homeScreenLinkText","homeMoveClipTitle","homeMoveClipText","homeMoveClipLinkText","homeReadMoreAboutStrong","contactFullname","contactCompany","contactMessageTitle","contactSend","contactOfficeAndManufacturing","contactMailSent","newList","errorCreatingFavoriteList","myLists","selectLists","decreaseQuantity","increaseQuantity","deleteList","editList","unlisted","newName","selectProducts","noListIsEqualToOnlyFavorite","showUnlisted","showAllFavorites","seeProductVideo","playVideo","aboutProductDevelopment","aboutProclip","about","previousProductImage","nextProductImage","heartIcon","deleteListButton","signedInMenu","unavailable","sv","useCustomerOrders","useCustomerOrder","OrderNumber","avatarLarge","heading","bottomContent","flexRow","flexColumn","flexItem","avatarImg","capitalized","accordionSummary","basis20","flexBasis","padding4","mobileTextField","loadingAnimation","mobileLoadingAnimation","flexEnd","mobileProductCardHeader","overflowY","overflowX","moreInfo","mobilePriceBox","marginBottom1","marginNone","marginRight24","mobileCartItem","flexWrap","mobileRow","mobileImageWrapper","mobileTitleWrapper","mobileTitle","spaceBetween","mobilePriceLeft","mobilePriceRight","mobilePadded","mobileDescription","mobileProductId","mobileButtonWrapper","mobileProductImage","mobileLink","mobileAccordion","mobileNoteInput","bareLink","ProductCardOrder","currency","deliveredQuantity","isModifiable","useProductsLoading","deleteProduct","deleteCartRow","Skeleton","Paper","Avatar","slotProps","classnames","formatAmount","formatPrice","FavoriteButton","DeleteIcon","editCartNote","n","parseFloat","isFinite","parsed","setQuantity","priceSelectors","_state$user$steering","useUser","useUserData","selectedModTek","youtubeVideoWrapper","aspectRatio","frameBorder","allow","allowFullScreen","SpeedOrderNavbar","desktopBreakpoint","autoComplete","InputProps","endAdornment","InputAdornment","xmlns","viewBox","d","outline","leadingTrim","textEdge","fontStyle","textRdge","iconButton","ReportButton","downloading","setDownloading","downloadReport","statusCode","responseType","resp","createObjectURL","Blob","createElement","setAttribute","appendChild","click","parentNode","removeChild","PictureAsPdfIcon","searchInput","searchInputWrapper","AsyncSearch","searchText","setSearchText","_query","setQuery","redirect","setRedirect","asyncSearchSearchQuery","delayDebounceFn","setTimeout","clearTimeout","searchOnText","ignoreSteering","steeringFilter","trim","isProductNumber","clearSearchResult","MagnifyingGlass","onKeyUp","keyCode","setShowNavbarSearch","steeringButton","option","slide","slideRight","LeftRightSteeringFilter","mobileSearchArea","isUserAuthorized","setPreferredSteering","useSetPreferredSteeringMutation","handleButtonPress","preferredSteering","changeSteering","userInfoWrapper","titleRow","customerGrid","addressGrid","UserInfo","_user$addresses","_user$addresses$deliv","_user$addresses2","_user$addresses2$deli","_user$addresses3","_user$addresses3$deli","_user$addresses4","_user$addresses4$invo","_user$addresses5","_user$addresses5$invo","_user$addresses6","_user$addresses6$invo","userData","addresses","Row1","Row2","Row4","invoiceAddress","PersonOutline","safeTitle","row","renderAddressField","CompareToggleButton","compareCount","productInCompare","removeFromCompare","addToCompare","CompareIcon","productAdapter","modtekProducts","relatedProducts","lastProductFetch","lastFetchItemCount","lastFetchProperties","productNames","pendingRequests","deleteSearchResult","extraReducers","addCase","requestProduct","pending","fulfilled","_action$payload","addOne","rejected","requestProducts","_action$payload2","requestFilteredProducts","_action$payload3","pagingHeader","totalItems","names","requestMaterial","internalLangConvert","fetchMaterial","condition","getState","drawerWidth","navList","drawer","getWindowDimensions","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","withdrawCookiesConsent","skipReload","signOut","reload","Text","NewlineText","Specification","useProduct","column","Table","tableRoot","TableBody","TableRow","TableCell","grayText","spaceEven","orderLineContent","listItemGutters","externalLinkIcon","verticalAlign","OrderInfo","_customerOrder$Rows$f2","isOrderConfirmation","findComment","_customerOrder$Rows$f","Rows","Position","Type","TextType","ThumbUp","AssignmentTurnedInIcon","Status","CheckCircleOutline","ConfirmationNumber","OrderDate","toLocaleDateString","Receipt","TotalOrderLines","TotalProducts","TotalSum","Notes","YourOrderNumber","YourReference","Email","DeliveryAddress","Row5","Shipments","shipment","gutters","SimpleLink","ExternalLinkIcon","CreditCard","InvoiceAddress","HeadingRow","showRestItemsHeading","UnitPrice","Quantity","DeliveredQuantity","NewsItem","_news$images","isDevice","newsCard","publishedText","Thumbnail","itemThumbnail","srcWidth","textWrapper","titleWrapper","getTitle","subtitle","getSubtitle","container","pageTitle","skeletonText","skeletonRect","newsGrid","mobileMenuBreakpoint","cardRoot","between","cardRootMni","media","backgroundSize","cardContent","cardContentMini","flexRowMini","rowContent","paperRoot","centerColumn","addButton","swipableImageListView","swipableImageModTekView","swipableImageGridView","only","spacingTop","productCard","flexBox","cardFooter","gridButtons","paddingBottom8","paperBox","listImage","listProductNumber","productText","buttonBox","h5Styling","subtitle1Styling","GridTitle","altName","language_id","product_id","plainText","ListTitle","ModTekTitle","GridPrice","upperString","ListPrice","ModTekPrice","ListProductNumber","GridProductNumber","GridImage","ListImage","ModTekImage","GridButtons","showReport","Grid","ShareButton","isCompare","ListButtons","GridDescription","ModTekDescription","ListDescription","sideModule","ReactHtmlParser","SearchDealerLink","cartContentMinHeight","cardMaxWidth","scrollIntoView","behavior","block","Card","CardContent","navigationButtonBox","navigationButtonButton","keyboardArrow","thumbNailStepper","thumbNailStepperMain","thumbNailIndicator","thumbNailIndicatorCircle","blackH3","hoverUnderline","transformOrigin","_contents$find","_image","contents","thumbNailId","isActive","setIsActive","widthQuery","styleWithWidth","NavigationButton","autoPlay","indexRoot","paper","blackText","listRoot","alignContent","card","Instruction","regexForInstructionImages","filteredImages","textRegex","indexRootroot","instructionImageList","_filteredImages$index","_filteredImages$index2","Instructions","instructionRoot","Icon","capitalize","gray","clearCart","_result","useClearCartMutation","dialogOpen","setDialogOpen","ConfirmationDialog","closeModal","onConfirm","empty","openModal","DeleteForeverIcon","dialog","dialogButtonWrapper","dialogButton","dialogTextWrapper","overflowWrap","newText","snackPack","setMessage","_action$payload$sever","_action$payload$type","_action$payload$autoH","severity","autoHide","nextSnackPack","setDialogMessage","setNextSnackPack","broditWebApi","getNews","groups","includeFutureNews","group","languageSpecificNews","article","getNewsById","getOrderSystemMaintenance","getBigNews","getHeroNews","getFilesById","getRelatedProducts","getModTekProducts","getRelatedVideos","getModels","getModelsForBrand","brandId","restoredBrandId","getYearsForModel","getReplacementProducts","getTechnicalInformationForProduct","getAltNameForProducts","logFrontendError","stack","useGetNewsQuery","useGetNewsByIdQuery","useGetOrderSystemMaintenanceQuery","useGetBigNewsQuery","useGetHeroNewsQuery","useGetFilesByIdQuery","useGetRelatedProductsQuery","useGetRelatedVideosQuery","useGetModelsForBrandQuery","useGetYearsForModelQuery","useGetTechnicalInformationForProductQuery","useGetAltNameForProductsQuery","useLogFrontendErrorMutation","CustomerOrderInfo","ErrorMessage","handleClick","Snackbar","anchorOrigin","horizontal","vertical","autoHideDuration","ContentProps","VehicleNewsListPage","steeringGroup","vehicleNews","_news$products","_news$products2","MessageNotification","userMessage","messageInfo","setMessageInfo","closeSnackbar","reason","messageProps","transitionProps","onExited","handleExited","TransitionProps","Alert","scroll","DynamicContentPage","parameterType","selectedType","WithdrawCookiesConsent","LandingPageMetaDescription","keywords","htmlAttributes","NewsMetaDescription","cartSlice","number","items","shouldSync","setQty","setItems","del","element","editNote","setShouldSync","nextOrderStep","prevOrderStep","putOrderId","resetOrderStep","batchAdd","setCartItems","setShouldSyncCart","nextCartStep","prevCartStep","setOrderId","resetCartStep","batchAddToCart","section1","flexShrink","heroBoxWrapper","heroBox","heroBoxHeader","heroBoxTitle","heroBoxText","videoWrapper","youtube","searchWrapper","section2Wrapper","section2","section2Text","holders","section3","section3Wrappper","section3TextBox","customSolutionImg","section4Wrapper","section4","section4News","vehicleHolder","blackH2","blackH3Medium","blackH2Roboto","blackH3Roboto","blackArialText","holderTextBox","section3Button","section1Button","alignTextCenter","heroWrapper","backgroundPosition","fadeIn","newsWrapper","selectorWrapper","selectorTitle","steeringWrapper","anchorButtonStyle","downloadAnchor","fadeOut","readmore","readmoreParent","imageGrid","imageGridItem","gridColumn","imageGridItemImage","outerWrapper","holderWrapper","HolderElement","hash","HeroNews","_heroNews$selectedHer","_heroNews$selectedHer2","_heroNews$selectedHer3","_heroNews$selectedHer4","_heroNews$selectedHer5","_heroNews$selectedHer6","hNews","heroNews","textRef","setFadeIn","selectedHeroIndex","setSelectedHeroIndex","fadeInRef","isTablet","handleSelectHero","intervalId","setInterval","len","prevIndex","clearInterval","naturalWidth","scrollWidth","clientWidth","imageWrapper","bottomWrapper","cardTitle","cardUnderTitle","anchor","buttonWrapperRow","seeMoreButton","newsAnchor","NewsCard","_item$products","_item$images","_item$title","_item$title2","_item$title3","_item$title4","_item$title5","_item$title6","urlParts","urlByType","isVehicle","NewsCardList","_Array$from","setSeeMore","allNewsPath","newsArticles","groupByType","Home","showCards","Row","padded","CarMount","Holder","PedestalMobile","PipeMobile","WorkstationMobile","HolderComponent","Piedestal","Ror","Truck","Suction","Workstation","MoveClip","SolutionsMob","CustomSolutions","listItem","common","black","scrollWithOffset","el","yCoordinate","getBoundingClientRect","scrollY","LinkListItem","mobile","ListItemText","ListItemIcon","StyledListItem","withStyles","white","ListOptions","burgerMenu","userPage","handleOpenDrawer","myAccountLinkList","linkType","path","GetAppIcon","AttachmentIcon","ReceiptIcon","FavoriteIcon","AccountCircleIcon","notLoggedInLinkList","loggedInLinkList","returnSlip","NoteIcon","shouldLink","HashLink","el1","dense","ArrowForward","el2","el3","appBar","topBox","topBoxTextWrapper","columnGap","topBoxText","removeButtonStandardStyling","productButton","mobileMenuButton","loggedIn","desktopSearchAreaBox","toolbar","logo","drawerPaper","badgePos","badge","leftRightFilter","searchArea","flag","pointerEvents","loginIcon","slider","slideItem","slideContent","topBar","closeButton","loginButton","innerToolbarWrapper","plainButton","navWrapper","StyledMenu","Menu","elevation","NavbarMenu","anchorEl","setAnchorEl","currentTarget","ExpandLessIcon","ExpandMoreIcon","keepMounted","DesktopSearchArea","drawerIsOpen","otherLang","acceptedCookies","signedInStyles","endIcon","Badge","badgeContent","anchorOriginBottomRightRectangular","smooth","menuButton","engFlag","sweFlag","asyncSearch","forwardButton","leftDrawerPaper","drawerRow","loginAnchor","MobileDrawer","setSlide","links","handleForward","Drawer","CloseIcon","renderLoginLogoutButton","toggleDrawer","MobileSearchArea","toggleShowSearch","clipPath","fillRule","clipRule","MessageBarBase","styled","CloseButton","ReadMoreLink","MessageBar","cookieClosed","loadCookie","isMounted","fetchAnnouncementMessage","fetchMessage","enabled","InfoIcon","barText","barLink","closeMessage","saveCookie","Navbar","setDrawerIsOpen","navbarRef","searchBoxRef","showingSearch","useIsShowingNavbarSearch","isAuth","windowSize","setHide","setProxyPath","setRecaptchaSiteKey","openVehicleSearch","setOpenVehicleSearch","openDeviceSearch","setOpenDeviceSearch","AppBar","Toolbar","disableGutters","handleOnClick","largeLogo","Menu2Drawer","handleBackDropClick","handleCloseDeviceSearch","handleDeviceSearchClick","handleCloseVehicleSearch","handleVehicleSearchClick","addressWrapper","half","tempAddressLabel","full","gap1","space","AddressButtons","orderInProgress","ButtonGroup","handlePrev","Loop","boxHeight","MobileOrderAddresses","setOrderInProgress","counriesForLang","countries","resetField","yourOrderNumber","specialAddress","sms","comment","httpStatusCode","margin50","maxLength","mailRegex","test","Switch","Collapse","in","smsNumber","InputLabel","defaultValue","OrderAddresses","MobileProductCardOrder","Divider","MobileOrderInfo","OrderConfirmation","OrderStepConnector","alternativeLabel","StepConnector","OrderStepIcon","icons","ShoppingCartIcon","PersonOutlineIcon","ThumbUpOutlinedIcon","cartContainerRow","cartItemsContainer","flexLeft","headerArea","marginBottomTheme2","flexGrow1","flexBetween","flexCenter","orderDetails","orderSummary","summaryButtons","mobileSummaryButtons","itemsCenter","summaryMain","topButtonWrapper","MobileCartItem","noteChanged","mobileAccordionSummary","SummaryButtons","ArrowBackIcon","ArrowForwardIcon","MobileOrderSummary","monitor","useProducts","cartItems","simulate","PriceInfo","SuggestedPrice","AtQuantity","openDialog","closeDialog","_cartSimulation$find","_cartSimulation$find2","PartNumber","OrderSummary","stepper","checkoutWrapper","Order","steps","Stepper","connector","stepProps","isStepCompleted","Step","StepLabel","StepIconComponent","orderAddresses","renderStep","checked","productBox","productsContainerWithFilter","buttonWrapper","ShowMore","showAll","CheckboxList","allItems","selectedItems","remove","checkIfSelected","selected","handleToggle","direction","toggleShowMore","labelId","ButtonBase","edge","ExpandableHeader","PropertiesList","property","PropertyGroup","groupName","propertiesPerName","groupBy","serializeProperty","PropertiesFilter","propertiesPerGroup","SideFilter","_productsResult$names","_productsResult$prope","_allSearchQueriesComb","_allModelsForBrand","_allModelsForBrand2","_allSearchQueriesComb3","_allSearchQueriesComb4","_filterProductsSearch","_filterProductsSearch2","_allSearchQueriesComb5","_productsResult$brand","_productsResult$brand2","_allSearchQueriesComb8","_allSearchQueriesComb9","_allSearchQueriesComb10","_allSearchQueriesComb11","_deviceSearchbarSearc","productsResult","urlQuery","allSearchQueriesCombined","deviceSearchbarSearchQuery","filterProductsSearchQuery","allProductNames","allProperties","allModelsForBrand","_allSearchQueriesComb2","selectedProperties","selectedProductNames","selectedBrands","_allSearchQueriesComb6","_allSearchQueriesComb7","allBrandGroups","GroupByName","selectedGroups","selectedBrandGroups","brandGroup","selectedModels","yearsForModel","updateQuery","queryPart","_filterProductsSearch7","filterProductsYears","productName","_filterProductsSearch4","productNameId","_filterProductsSearch5","serializedProperty","singleProperty","_filterProductsSearch6","brandName","brandGroupName","_filterProductsSearch3","modelName","displayEmpty","FunnelIcon","funnelIcon","ProductNavigation","noShow","FilterProductToolbar","_rowRef$current","toggleFilter","productTotalCount","rowRef","searchQueriesAsText","searchTerms","clientHeight","FilterProducts","_urlSelectedModel","_productsResult$paged","_productsResult$paged2","_productsResult$paged3","_productsResult$paged4","isSmallScreen","urlSelectedBrand","urlSelectedModel","urlSelectedColletion","dirtyUrlSelectedBrand","dirtyUrlSelectedModel","dirtyUrlSelectedCollection","isUserShowingFilter","setIsUserShowingFilter","showFilter","urlSearchQuery","isUrlSearchQueryEmpty","useIsSearchQueryEmpty","search1","search2","useSearchQuery2","isAllSearchQueryEmpty","getProductsByFilterRequest","startedTimeStamp","forcedLoadingSpinner","setForcedLoadingSpinner","showReplacementProds","isProductIdRegex","getUrl","_collection$name","cleanBrands","cleanModels","cleanModelsString","cleanCollections","encodeURIComponent","updateUrlParams","combinedSearchQuery","_combinedSearchQuery$","setInitialUrl","res","findObjectById","footer","footerGrid","gridGap","logotypeWrapper","logotype","gridItem","addressAnchorWrapper","innerAnchorWrapper","addressAnchor","groupTitle","HomePageContact","HomePageContactMobile","contentWrapper","Contact","Footer","setData","fetchStaticData","linkGroup","renderLink","Logotype","companyInfo","linkGroups","listArea","infoText","infoArea","headerRoot","wrapItem","textCenter","h3Styling","h6Styling","TrackingButton","shippingArray","SearchIcon","DesktopOrderPaper","orderData","getDateFormat","MobileOrderPaper","object","header","CustomerOrder","_customerOrder$YourOr","_customerOrder$YourRe","_customerOrder$TotalO","_customerOrder$TotalP","_customerOrder$TotalS","headerList","mobileHeaderList","Headers","CustomerOrders","customerOrders","PlaylistAddCheckIcon","Userlist","_list$","_list$4","_list$5","_list$6","userLists","productsArray","setName","listName","isEditing","setIsEditing","tempName","setTempName","idArray","setSelectedItems","expandedAccordion","setExpandedAccordion","deleteFavortiteList","deleteFavoriteList","handleEditToggle","handleSave","_list$2","oldName","updateFavorites","handleCancel","_list$3","processedData","witdh","handleSelect","multiple","disableCloseOnSelect","clearText","disableUnderline","renderTags","Chip","CheckIcon","handleDelete","FavoriteProductsPage","favoriteProducts","setUserLists","updatedLists","falseProducts","useFilteredProducts","userFavorites","flat","showNotInList","setShowNotInList","notInList","y","errorOpen","setErrorOpen","toggleEdit","stepperWrapper","productsWrapper","noProductsBox","titleBox","youtubeVideo","newsTitle","newsPreamble","NavigationButtonWrapper","customComponent","positionOnTop","showNavigationOnHover","rightSide","isHovering","CustomComponent","newProps","_isHovering","bgcolor","KeyboardArrowRight","KeyboardArrowLeft","AutoPlaySwipeableViews","handleStepChange","pages","positionNavigationOnTop","backButtonComponent","nextButtonComponent","disabledSwipe","autoplay","setIsHovering","handleMouseEnter","handleMouseLeave","handleNavigateBack","previousIndex","axis","newStep","interval","handleNavigateNext","NewsPage","_data$products2","place","imageIndex","setImageIndex","_data$products","partsOfPath","imageId","wordWrap","hyphens","preamble","comparisonHeader","padding8","paperWrapper","tableCell","wordBreak","informations","pdfButton","ComparisonHeader","ComparisonTableSection","ProductComparisonSections","TableContainer","ProductComparisonTable","CompareProducts","queryParams","productForCompareIds","success","setSuccess","setCompareUrl","getCompareUrl","cleanedUrl","searchParams","pushState","_queryParams$get","setIsOnComparePage","downloadUrl","finally","withdrawConsent","MessageBoxBase","Title","Paragraph","MessageBox","User","_userData$name","MyPagesImage","toLocaleString","minimumFractionDigits","maximumFractionDigits","amount","CsvReader","callbackFn","csvFile","setCsvFile","submit","file","reader","FileReader","onload","delim","successfulRows","val","original","failedRows","processCSV","readAsText","handleFormSubmit","FileCopyIcon","files","PublishIcon","ArticlesPartiallyLoadedMessage","loadedArticles","failedArticles","notInMonitor","OrderUpload","_loading","readSuccess","cartArticles","avatar","paperPadding","paperFlex","form","textAlignCenter","removeAutofillBg","ForgotPasswordForm","resetRecaptcha","recaptchaBypass","_error$response","SendIcon","SignIn","resetPasswordVisible","setResetPasswordVisible","setWorking","isMaintenance","passwordHidden","setPasswordHidden","useResolvedPath","LockOutlined","signIn","Navigate","removeTrailingSlash","VisibilityIcon","VisibilityOffIcon","DownloadForm","yesterday","setDate","getDate","includePrice","includeHistory","historicalData","toISOString","queryString","handleDownload","LocalizationProvider","dateAdapter","AdapterDateFns","FormLabel","multiline","RadioGroup","Radio","InputLabelProps","shrink","DataUsageIcon","FileDownload","CartHandler","savedCartTimeout","setSavedCartTimeout","updateCartOnServer","useUpdateCartMutation","isLoadingCart","useGetCartQuery","FavoriteHandler","savedFavoriteTimeout","setSavedFavoriteTimeout","updateFavoriteOnServer","isLoadingFavorite","StateHandler","userCookie","welcomeSplashVisible","field","passwordDisclaimer","listItemIcon","helpIcon","requirementWrapper","ResetPassword","guid","tokenValid","setTokenValid","checkingValidity","setCheckingValidity","firstPassword","setFirstPassword","secondPassword","setSecondPassword","firstPasswordHidden","setFirstPasswordHidden","secondPasswordHidden","setSecondPasswordHidden","passwordsMatch","setPasswordsMatch","passwordLengthValid","setPasswordLengthValid","passwordContainsUppercase","setPasswordContainsUppercase","passwordContainsLowercase","setPasswordContainsLowercase","passwordContainsDigit","setPasswordContainsDigit","passwordContainsSpecialCharacter","setPasswordContainsSpecialCharacter","passwordRequirements","valid","explanation","formIsValid","passwordsEmpty","token","requirement","InvalidIcon","HelpOutlineIcon","NotFound","marginTop50","textSkeleton","rectSkeleton","NewsListPage","skeletonCount","buttonContainer","maxWidth600","GDPRWarning","hasReadTerms","setHasReadTerms","handleAccept","Page","clearAllListItem","clearAllPrimary","clearAllSecondary","ProductEntryListItem","_prod$name","_prod$originalId","prod","ListItemAvatar","onCloseClick","CompareOverview","compareProds","visible","isOnComparePage","onClearClick","removeAllFromCompare","hideCompare","setShowCompareOverview","Popper","Fade","timeout","Minimize","selectAllModtekProducts","selectAllRelatedProducts","promise","abort","startsWith","FlashMessage","NewsLetter","siteKey","mail","words","fullString","word","moveToTopComparer","substringToTop","partialString","JSON","stringify","partialA","partialB","aIncludesWord","bIncludesWord","resultingOrder","every","foundWord","isObjectOnlyNull","obj","arr","func","groupingBy","targetId","foundObject","spacing1","spacing2","WelcomeSplash","TabPanel","RelatedProducts","MobileLoading","DesktopLoading","LoadingView","mediaContainer","textBody","useMaterial","ProductInfo","openClass","shadows","defaultVales","modalOpen","setModalOpen","handleShareButtonClick","ShareIcon","Modal","handleModalClose","toEmail","DealerSearchFilter","countryDealers","onChangeCountryDealers","onChangeDealerLocations","dealerLocations","dealer","dealerplace","dealerCountries","Country","resultGrid","marginTop40","dealerSearchFilterWrapper","padding5","resultCard","underline","dealersByCountries","setDealersByCountries","setFilter","webshop","fetchDealerData","customerNr","fetchDealerByCountry","company","webShop","visitAddress","commonName","organization","zip","Company","Webpage","underlineColor","borderBottomColor","CustomTextField","useDefaultStyle","SignInMetaDescription","ProclipMetaDescription","selectedSearchQueries","dependencies","_len","searchQueryTypes","_key","previousValue","currentValue","_previousValue$key","_currentValue$key","_len2","_key2","_previousValue$key2","_currentValue$key2","searchQueryObject","sortOrder","modtekProductSelectors","relatedProductSelectors","selectModtekProductById","selectRelatedProductById","productSelectors","tabHeight","tabRoot","tabs","mobileTabs","tab","firstTab","float","mobileContent","sideBoard","contentSkeleton","productMain","mobileProductMain","mobileProductCard","panelBox","halfWidth","flexHalf","justifyCenter","bigLoading","smallLoading","instructionHeading","pxToRem","fontWeightRegular","borderTop","compatibilityList","compatibilityItem","documentLink","relatedVideos","productInfoWrapper","searchSlice","updateSearchQuery","clearSearchQuery","brandsNameCompare","brandNameA","brandNameB","brandList","otherBrandIndex","findIndex","brandNames","combinedBrands","_result$groupBy$value","_result$groupBy","userSlice","parse","setUser","showWelcomeSplash","closeWelcomeSplash","eraseCookie","setSteering","setSelectedModTek","signOutAction","closeWelcome","cartApi","getCart","cartFromServer","updateCart","parameters","homePage","useErrors","priceErrors","customerOrderErrors","reducersToSave","api","request","requestNewsArticleById","fetchNewsArticleById","requestNewsArticles","groupParam","fetchNewsArticles","modelAdapter","modelSelectors","requestModel","fetchModel","requestModelsByBrand","steeringParams","fetchModelsForBrand","modelSlice","lastModelFetch","requestCollectionsForBrand","fetchCollectionsForModel","rootReducer","combineReducers","cartReducer","userReducer","productReducer","materialReducer","monitorReducer","settingsReducer","priceReducer","customerOrderReducer","newsArticleReducer","gdprReducer","collectionReducer","searchReducer","search2Reducer","userMessageReducer","favoriteReducer","compareProductsReducer","reducer","contentApi","persistConfig","storage","whitelist","persistedReducer","persistReducer","store","configureStore","preloadedState","loadReducers","serializedReducers","localStorage","middleware","getDefaultMiddleware","serializableCheck","concat","thunk","persistor","persistStore","setupListeners","section1Wrapper","firstBlackH2","firstBlackText","box","section2ProclipWrapper","brandListTitel","brandListText","hero","brandLink","ProclipAndHolders","proclipBrandsList","term","deviceBrandsList","Hero","proClip","divider","proClipHolder","section3Wrapper","whiteText","whiteLargerText","whiteH2Roboto","fatBlackText","cardText","alignCenter","ProductDevelopment","contacts","renderContactCard","CardMedia","productDev","textArray","renderImageTextSection","timeline","oddTimeline","timelineInfo","timelineDivider","timelineDividerVerticalLine","timelineDividerHorizontalLine","oddTimelineDividerHorizontalLine","timelineImage","yearTitle","textJustified","oddText","arrow","mobInfoWrapper","mobInfoReverse","mobImageWrapper","mobImageText","Desktop","timeLineRow","odd","oddTimelineClass","oddHorizontalLineClass","oddTextClass","lastItem","Fragment","imageText","imageUrl","Mobile","reverseClass","Down","topInfo","topTitle","topText","topAnchorWrapper","topAnchor","storyWrapper","story","storyTitle","storyText","About","fetchPageData","youtubeEmbedUrl","referrerPolicy","anchorText","DesktopTimeline","MobileTimeline","RouteChangeTracker","send","hitType","QuickShop","isOpen","setIsOpen","sku","setSku","addState","setAddState","setFail","inputsDisabled","preventDefault","RemoveCircleIcon","min","AddCircleIcon","addIcon","WarningIcon","AddShoppingCartIcon","ErrorPage","LargeLogo","blackH1","adImageWrapper","adImage","adWrapper","Career","imageSrc","fetchPriority","AssemblyMob","Assembly","CNCMob","CNC","RootButton","Arrow","ScrollTopButton","setVisible","toggleVisibility","scrollTop","documentElement","ArrowUp","Root","StickyMenu","authorized","MenuLink","Separator","HeroWrapper","HeroImage","HeroPicture","PageWrapper","TextSection","scrollMarginTop","InnerWrapper","PageTitle","TextParagraph","GridItem","backgroundimage","GridLink","LinkWrapper","_ref9","TextSectionLink","_ref10","DownloadLink","_ref11","FiftyFiftyWrapper","FiftyFiftyShrinkWrapper","FiftyFifty","_ref12","reverse","FiftyFiftyItem","_ref13","InfoWrapper","_ref14","FiftyFiftyImage","_ref15","_ref16","Subtitle","_ref17","_ref18","ItemList","_ref19","BulletWrapper","_ref20","ListBullet","_ref21","ListItemLabel","_ref22","InfoLinkWrapper","InfoLink","_ref23","Video","_ref24","VideoWrapper","_ref25","PlayButton","_ref26","CategoriesPage","videoPlaying","setVideoPlaying","videoRef","refreshData","substring","getElementById","findAndScrollToElementById","renderGrid","renderGridItem","renderComponent","menu","renderTextSectionWithLinks","textSection","dangerouslySetInnerHTML","__html","downloadLink","DownloadIcon","renderFiftyFifty","embedVideoUrl","onPlay","onPause","onEnded","currentTime","controls","play","PlayArrowIcon","usps","usp","renderStickyMenu","fetchpriority","srcSet","contactCardGrid","contactCard","contactImage","contactInfo","contactTopInfo","contactTitle","contactLink","locationTitle","sectionText","contactHero","ContactHero","contactForm","contactAddress","formGrid","textfieldWrapper","addressRow","helpText","formWrapper","addressLink","mobileHero","CountriesEn","CountriesSe","ContactPage","recaptchaToken","setRecaptchaToken","fullName","setFullName","setCompany","setPhone","setEmail","setCountry","formValid","setFormValid","stripHtml","fetchContactData","renderContactSection","Person2Icon","PersonIcon","roles","MobHero","FullName","Message","Language","pattern","onRecaptchaExpired","generalContactInfo","street","zipCode","AboutPageMetaDescription","ProductDevelopmentMetaDescription","ProclipAndHoldersMetaDescription","CategoriesMetaDescription","Content","TitleWrapper","Dropdown","EComGrid","GridItemTextRow","GridItemPhone","GridItemLink","RetailersPage","dealersCountry","setDealersCountry","setCountries","selectedCountry","setSelectedCountry","dealersCity","setDealersCity","cities","setCities","selectedCity","setSelectedCity","webshopDealers","setWebshopDealers","fetchDealerByCity","city","flatMap","dealers","CarouselBase","ImageWrapper","scrollSnapType","SlideItem","scrollSnapAlign","SlideImage","ThumbnailWrapper","LightboxThumbnailWrapper","ThumbnailImage","Top","Youtube","LightboxYoutube","Lightbox","LightboxWrapper","LightboxContent","LightboxImage","PlayBtnOverlay","PlayBtnIcon","FullRow","TopContent","ProductImageCarousel","memo","videos","toggleVideo","sliderRef","imageRefs","activeIndex","setActiveIndex","activeThumbnail","setActiveThumbnail","setMedia","lightboxOpen","setLightboxOpen","instructionImages","scrollImageIntoView","inline","previousSlide","newIndex","nextSlide","getYoutubeThumbnailUrl","embedUrl","observer","IntersectionObserver","entry","isIntersecting","dataset","rootMargin","threshold","observe","disconnect","handleKeyDown","ArrowBackIosNewIcon","ArrowForwardIosIcon","ProductAccordion","defaultExpanded","accordionRef","Wrapper","StyledAccordion","StyledAccordionSummary","Details","ExpandIcon","CompabilityTitle","CompatibleModelsListEl","CompatibleItem","CompatibleModelsButton","StyledHr","CompatibleModelsList","sortedCompatibleModels","compatibleModelsOpen","setCompatibleModelsOpen","Base","ActionButtons","Price","AddToCartButton","AddToCartControls","incorrectQuantity","addItemToCart","AccessoryGrid","AccessoryGridItem","Image","BottomWrapper","NoPhotographyOutlinedIcon","ButtonWrapper","ItemText","ItemLink","Accessories","relatedProductIds","TabButton","ProductWrapper","NoPhotographyOutlined","CardButtonWrapper","ModTekSection","activeId","setActiveId","setProductIds","Left","Right","ProductInfoWrapper","ProductName","ProductId","ProductDescription","ProductVideoLink","RetailerLink","VideoIcon","AccordionWrapper","LoadingWrapper","LoadingTop","LoadingText","Spinner","ModtekInformation","DesktopProductInfoNew","usedTheme","setPlayVideo","renderProductInfo","techincalInformation","getTechnicalInformation","_technicalInformation","ti","languageShort","htmlText","instruction","lazy","App","_location$pathname$ma","setLanguage","subscribe","saveReducers","ErrorBoundary","FallbackComponent","componentStack","StyledEngineProvider","injectFirst","ThemeProvider","PersistGate","Routes","Route","handleCloseError","AppWrapper","DefaultRoute","ReactDOM","render","Provider","Router","Suspense","fallback","fetchProduct","fetchProducts","shouldRun","filterValue","fetchFilteredProducts","favoriteSlice","setAllFavoriteProducts","addFavoriteProduct","removeFavoriteProduct","removeFavoriteList","addToFavoriteProducts","removeFromFavoriteProducts","distinctResult","valueObject","filteredSearchQuery","serializedValue","cName","cookie","cStart","cEnd","getCookie","expireDate","now","validityInHours","maximumAge","expires","toUTCString","maxAge","createCookie","isShowingNavbarSearch","settingsSlice","toggleProductGridView","setPP","setRCSK","setShowNavbarSearchAction","shouldShow","selectDynamicPage","pageList","_pageList$filter","getContent","route","getDynamicPages","getDynamicPageMarkdown","selectMarkdownText","dynamicPage","_dynamicPage$markdown","_dynamicPage$markdown2","_dynamicPage$markdown3","markdown","getDynamicPage","useGetContentQuery","useGetDynamicPagesQuery","useGetDynamicPageQuery","CustomPopper","favorites","isFavorited","setOptions","freeSolo","autoSelect","handleChange","newOptions","isArray","PopperComponent","updatedItems"],"mappings":"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M2kG,GAAc,CACvB,cACA,UACA,UACA,iBACA,UACA,SACA,WACA,aACA,sBACA,YACA,UACA,QACA,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,kCACA,mCACA,yBACA,WACA,gBACA,SACA,iCACA,oBACA,WACA,eACA,UACA,aACA,WACA,WACA,SACA,iBACA,2BACA,OACA,QACA,QACA,mBACA,0BACA,WACA,UACA,QACA,oCACA,eACA,aACA,mBACA,UACA,OACA,aACA,SACA,UACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,WACA,8BACA,gBACA,OACA,UACA,SACA,gBACA,mBACA,8BACA,QACA,SACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,aACA,OACA,YACA,WACA,SACA,gBACA,SACA,QACA,oCACA,WACA,WACA,YACA,UACA,UACA,QACA,YACA,4BACA,OACA,UACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aACA,QACA,WACA,yCACA,qBACA,SACA,aACA,mCACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,QACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,aACA,YACA,UACA,SACA,kCACA,uBACA,SACA,WACA,aACA,aACA,UACA,aACA,UACA,UACA,QACA,QACA,cACA,gBACA,cACA,YACA,QACA,UACA,OACA,iBACA,kBACA,2BACA,SACA,OACA,WACA,QACA,sBACA,SACA,mBACA,WACA,OACA,cACA,WACA,SACA,WACA,cACA,QACA,aACA,UACA,qBACA,SACA,sBACA,+CACA,wBACA,cACA,6BACA,4BACA,mCACA,QACA,aACA,wBACA,eACA,UACA,SACA,aACA,eACA,YACA,4BACA,WACA,WACA,kBACA,UACA,eACA,+CACA,cACA,QACA,YACA,QACA,WACA,yBACA,SACA,cACA,uBACA,4BACA,aACA,+BACA,WACA,cACA,OACA,UACA,QACA,sBACA,UACA,aACA,eACA,2BACA,SACA,SACA,UACA,uBACA,uDACA,2BACA,uCACA,UACA,aACA,UACA,oCACA,WACA,2BACA,wBACA,oBACA,iBACA,QACA,SACA,WACA,oBACFjqF,MAAK,CAAC5M,EAAGC,IAAMD,EAAE8R,cAAc7R,EAAG,QAEvB62F,GAAc,CACvB,UACA,2BACA,cACA,sBACA,WACA,WACA,WACA,SACA,YACA,YACA,oBACA,eACA,aACA,QACA,eACA,0BACA,WACA,aACA,UACA,eACA,YACA,UACA,UACA,QACA,sBACA,UACA,SACA,UACA,mCACA,YACA,UACA,SACA,cACA,WACA,UACA,SACA,SACA,gBACA,iBACA,+BACA,oBACA,UACA,kBACA,eACA,QACA,UACA,OACA,WACA,aACA,OACA,YACA,aACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,0BACA,WACA,UACA,UACA,UACA,gBACA,UACA,UACA,WACA,UACA,OACA,oBACA,4BACA,iBACA,YACA,QACA,iBACA,UACA,WACA,iBACA,WACA,QACA,YACA,cACA,SACA,SACA,aACA,mBACA,WACA,sCACA,YACA,OACA,gBACA,SACA,WACA,8BACA,WACA,WACA,QACA,SACA,aACA,SACA,SACA,cACA,SACA,0CACA,OACA,OACA,SACA,UACA,SACA,UACA,YACA,QACA,QACA,cACA,WACA,WACA,YACA,wBACA,YACA,WACA,SACA,iBACA,YACA,OACA,UACA,cACA,gBACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,UACA,SACA,YACA,aACA,eACA,aACA,mBACA,iBACA,OACA,UACA,YACA,QACA,iBACA,aACA,cACA,aACA,QACA,YACA,aACA,SACA,SACA,WACA,gBACA,UACA,iBACA,QACA,eACA,UACA,YACA,mBACA,QACA,QACA,QACA,OACA,cACA,OACA,SACA,OACA,qBACA,mBACA,eACA,WACA,QACA,4BACA,mBACA,cACA,YACA,WACA,QACA,WACA,QACA,aACA,cACA,UACA,WACA,SACA,eACA,kBACA,eACA,QA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","file":"static/js/main.e5d6bee6.chunk.js","sourcesContent":["import axios from \"axios\"\r\n\r\nexport const getUserData = (\r\n authToken,\r\n callback,\r\n setLoading = () => { },\r\n errorCallback = () => { }\r\n) => {\r\n const fetchData = async () => {\r\n if (setLoading) setLoading(true)\r\n let response = {}\r\n try {\r\n response = await axios.post(\r\n \"/api/Users/GetCustomerData\",\r\n {\r\n authToken\r\n }\r\n )\r\n } catch (error) {\r\n errorCallback(error)\r\n if (setLoading) setLoading(false)\r\n throw error\r\n }\r\n\r\n if (setLoading) setLoading(false)\r\n return response.data\r\n }\r\n\r\n fetchData()\r\n .then(result => callback(result))\r\n .catch(error => {\r\n console.error(\"Error getting user data.\", error)\r\n setLoading(false)\r\n })\r\n}\r\n\r\nexport const checkMonitorArticles = (lang, articles, callback, setLoading) => {\r\n const fetchJson = async () => {\r\n if (setLoading) setLoading(true)\r\n\r\n const response = await axios.post(\"/api/ProductInfo/CheckMonitorProducts\", {\r\n language: lang,\r\n stringList: articles\r\n })\r\n\r\n if (setLoading) setLoading(false)\r\n return response.data\r\n }\r\n\r\n fetchJson()\r\n .then(result => callback(result))\r\n .catch(error => {\r\n console.error(\"Error checking monitor products.\", error)\r\n setLoading(false)\r\n })\r\n}\r\n","/* eslint-disable array-callback-return */\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\n\r\nexport const persistScrollPosition = id => {\r\n sessionStorage.setItem(\"scroll-position-product-id-marker\", id)\r\n}\r\n\r\nexport const transformProductForCompare = product => {\r\n // flatten out the product properties\r\n const propertiesAsDisplayNameValue = product.properties.reduce(\r\n (l, { displayName, value }) => ({ ...l, [displayName.toLowerCase()]: value }),\r\n {}\r\n )\r\n\r\n const compatibilityListString = product.compatibleModels.map(x => (x.brand !== \",\" ? `${x.brand} ${x.model} ${x.years ?? \"\"}` : null)).join(\"\\n\")\r\n const placement = [...new Set(product.compatibleModels.map(x => x.placement))].join(\"\\n\")\r\n\r\n const newProd = product.isNew ? Localization.yes : Localization.no\r\n\r\n const p = {\r\n ...product, ...propertiesAsDisplayNameValue, compatibilityListString, newProd, placement\r\n }\r\n\r\n return p\r\n}\r\n\r\nexport const productTransformation = products => {\r\n const sectionMapping = [\r\n {\r\n Description: Localization.product,\r\n MappedFields: [\r\n {\r\n Description: Localization.itemNumber,\r\n Field: \"originalId\"\r\n },\r\n {\r\n Description: Localization.name,\r\n Field: \"name\"\r\n },\r\n {\r\n Description: Localization.description,\r\n Field: \"description\"\r\n },\r\n {\r\n Description: Localization.eanNumber,\r\n Field: \"eanNumber\"\r\n },\r\n {\r\n Description: Localization.placement,\r\n Field: \"placement\",\r\n DisplayDefaultValues: true\r\n },\r\n {\r\n Description: Localization.fitsFor,\r\n Field: \"compatibilityListString\",\r\n DisplayDefaultValues: true\r\n },\r\n {\r\n Description: Localization.newProduct,\r\n Field: \"newProd\"\r\n },\r\n {\r\n Description: Localization.technicalInformation,\r\n Field: \"technicalInformation\"\r\n }\r\n ]\r\n },\r\n {\r\n Description: Localization.dimensionsAndWeight,\r\n MappedFields: [\r\n {\r\n Description: Localization.width,\r\n Field: \"width\",\r\n DisplayDefaultValues: true\r\n },\r\n {\r\n Description: Localization.height,\r\n Field: \"height\",\r\n DisplayDefaultValues: true\r\n },\r\n {\r\n Description: Localization.depth,\r\n Field: \"depth\",\r\n DisplayDefaultValues: true\r\n },\r\n {\r\n Description: Localization.weight,\r\n Field: \"weight\",\r\n DisplayDefaultValues: true\r\n },\r\n {\r\n Description: Localization.volume,\r\n Field: \"volume\",\r\n DisplayDefaultValues: true\r\n }\r\n ]\r\n }\r\n ]\r\n\r\n const sections = []\r\n\r\n sectionMapping.map(s => {\r\n const section = {\r\n Description: s.Description,\r\n Data: []\r\n }\r\n\r\n s.MappedFields.map(mf => {\r\n const sectionData = {\r\n Description: mf.Description,\r\n Values: []\r\n }\r\n\r\n let values = []\r\n\r\n values = products.map(x => {\r\n if (x[mf.Field] !== undefined) { // There is a value, take it\r\n return x[mf.Field]\r\n }\r\n if (mf.DisplayDefaultValues) { // Take default value\r\n return Localization.notApplicable\r\n }\r\n return x[mf.Field]\r\n })\r\n\r\n sectionData.Values = values\r\n\r\n section.Data.push(sectionData)\r\n })\r\n sections.push(section)\r\n })\r\n\r\n return sections\r\n}\r\n\r\nexport const prepareProducts = (products, language) => products.map(product => (\r\n {\r\n ...product,\r\n id: `${language}-${product.id}`,\r\n originalId: product.id\r\n }\r\n))\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n wrapper: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"95%\"\r\n }\r\n },\r\n dropdownButton: {\r\n display: \"flex\",\r\n gap: \"8px\",\r\n flex: \"0 0 100%\",\r\n textDecoration: \"none\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n justifyContent: \"space-between\",\r\n \"&:hover .buttonRightWrapper\": {\r\n background: \"blue\"\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.8,\r\n cursor: \"auto\"\r\n },\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n paddingTop: \"10px\",\r\n paddingBottom: \"10px\",\r\n width: \"100%\"\r\n }\r\n },\r\n buttonLeftWrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"10px\"\r\n },\r\n buttonRightWrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n iconWrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: \"20px\"\r\n },\r\n dropdown: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"10px\",\r\n position: \"absolute\",\r\n zIndex: 200,\r\n top: \"100%\",\r\n right: 0,\r\n marginTop: \"6px\",\r\n marginLeft: \"-2px\",\r\n padding: \"30px\",\r\n background: \"#FFFFFF\",\r\n width: \"200px\",\r\n border: \"1px solid #D2D2D2\",\r\n borderRadius: \"6px\",\r\n boxShadow: \"0px 0px 10px 0px #2D2D2D1A\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"unset\",\r\n left: 0,\r\n right: 0\r\n }\r\n },\r\n truncatedSearchString: {\r\n maxWidth: \"200px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n color: \"#2d2d2d\"\r\n },\r\n clearButton: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n border: 0,\r\n width: \"18px\",\r\n height: \"18px\",\r\n padding: 0,\r\n borderRadius: \"50%\",\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\",\r\n visibility: \"hidden\",\r\n \"&:hover\": {\r\n backgroundColor: \"#EFEFEF\"\r\n }\r\n },\r\n hover: {\r\n visibility: \"visible\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/car.a4b62b1f.svg\";","export default __webpack_public_path__ + \"static/media/phone.ca9b55ec.svg\";","import useStyles from \"./styles\"\r\nimport Car from \"./assets/car.svg\"\r\nimport Phone from \"./assets/phone.svg\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { setSearchQuery } from \"../../../redux/searchReducer\"\r\nimport { useGetBrandsQuery, useGetModelYearsQuery } from \"../../../redux/services/productInfoApi\"\r\nimport { useGetModelsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport { useSteering } from \"../../../redux/hook/userHooks\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React, { useEffect, useState, useRef } from \"react\"\r\nimport { Autocomplete, useMediaQuery } from \"@mui/material\"\r\nimport TextField from \"@mui/material/TextField\"\r\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\"\r\nimport ArrowDropUpIcon from \"@mui/icons-material/ArrowDropUp\"\r\nimport ClearIcon from \"@mui/icons-material/Clear\"\r\nimport CircularProgress from \"@mui/material/CircularProgress\"\r\n\r\nfunction MultiSearchbar({\r\n vehicles = false,\r\n maxWidth = \"200px\",\r\n snap = \"\",\r\n show,\r\n onClose = () => { },\r\n onClick\r\n}) {\r\n const dropdownRef = useRef(null)\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const language = useLanguage()\r\n const steering = useSteering()\r\n const { data: brands } = useGetBrandsQuery({ language, steering: vehicles ? steering : null })\r\n const { data: allModels } = vehicles\r\n ? useGetModelsQuery({ language, steerings: [steering] })\r\n : useGetModelsQuery({ language })\r\n\r\n const [open, setOpen] = useState(show)\r\n const [brandOptions, setBrandOptions] = useState([])\r\n const [modelOptions, setModelOptions] = useState([])\r\n const [yearOptions, setYearOptions] = useState([])\r\n\r\n const [selectedBrand, setSelectedBrand] = useState(null)\r\n const [selectedModel, setSelectedModel] = useState(null)\r\n const [selectedYear, setSelectedYear] = useState(null)\r\n const [hover, setHover] = useState(false)\r\n const isMobile = useMediaQuery(`(max-width:${tabletBreakpoint}px)`)\r\n\r\n useEffect(() => {\r\n setOpen(show)\r\n }, [show])\r\n\r\n const { data: modelYears } = useGetModelYearsQuery({\r\n brand: selectedBrand,\r\n model: selectedModel,\r\n language: language,\r\n steering: steering\r\n })\r\n const navigate = useNavigate()\r\n\r\n const ArrowIcon = open ? ArrowDropUpIcon : ArrowDropDownIcon\r\n\r\n const getFullSelectionString = () => {\r\n let string = selectedBrand\r\n\r\n if (selectedModel) string += ` ${selectedModel}`\r\n if (selectedYear) string += ` ${selectedYear}`\r\n\r\n return string\r\n }\r\n\r\n const urlToFilterPage = () => `/${language}/filter`\r\n\r\n useEffect(() => {\r\n const isOtherBrandDevice = !vehicles && brandOptions.indexOf(selectedBrand) === 0\r\n setSelectedModel(null)\r\n setSelectedYear(null)\r\n\r\n if (allModels && !isOtherBrandDevice) {\r\n setModelOptions(allModels.filter(model => model.brand === selectedBrand).map(({ name }) => name))\r\n }\r\n\r\n if (isOtherBrandDevice) {\r\n dispatch(setSearchQuery({\r\n type: \"deviceSearchbar\",\r\n value: {\r\n brands: [selectedBrand],\r\n models: []\r\n },\r\n clearFilter: true\r\n }))\r\n\r\n setOpen(false)\r\n navigate(urlToFilterPage(), { replace: true })\r\n }\r\n }, [selectedBrand])\r\n\r\n useEffect(() => {\r\n setSelectedYear(null)\r\n }, [selectedModel])\r\n\r\n useEffect(() => {\r\n setYearOptions(modelYears)\r\n }, [modelYears])\r\n\r\n useEffect(() => {\r\n if (selectedModel && !vehicles) {\r\n dispatch(setSearchQuery({\r\n type: \"deviceSearchbar\",\r\n value: {\r\n brands: [selectedBrand],\r\n models: [selectedModel]\r\n },\r\n clearFilter: true\r\n }))\r\n\r\n setOpen(false)\r\n onClose()\r\n navigate(urlToFilterPage(), { replace: true })\r\n }\r\n }, [selectedModel])\r\n\r\n useEffect(() => {\r\n if (selectedYear && vehicles) {\r\n dispatch(setSearchQuery({\r\n type: \"vehicleSearchbar\",\r\n value: {\r\n brands: [selectedBrand],\r\n steering: [steering],\r\n models: [selectedModel],\r\n years: [selectedYear]\r\n },\r\n clearFilter: true\r\n }))\r\n\r\n setOpen(false)\r\n onClose()\r\n navigate(urlToFilterPage(), { replace: true })\r\n }\r\n }, [selectedYear])\r\n\r\n useEffect(() => {\r\n if (brands === undefined) return\r\n\r\n let newBrandOptions = []\r\n\r\n if (vehicles) {\r\n newBrandOptions = brands\r\n .filter(brand => brand.brandType.name === \"Vehicles\")\r\n .map(({ name }) => name)\r\n } else {\r\n const processedNames = new Set()\r\n\r\n brands.forEach(brand => {\r\n if (brand.brandType.name !== \"Vehicles\" && !processedNames.has(brand.name)) {\r\n newBrandOptions.push(brand.name)\r\n processedNames.add(brand.name)\r\n }\r\n })\r\n }\r\n\r\n setBrandOptions(newBrandOptions)\r\n }, [brands])\r\n\r\n useEffect(() => {\r\n const handleClickOutside = event => {\r\n if (event.target.classList.value.length === 0) return\r\n if (dropdownRef.current\r\n && !dropdownRef.current.contains(event.target)\r\n && !event.target.classList.contains(\"MuiAutocomplete-option\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-listbox\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-dropdown\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-wrapper\")\r\n && !event.target.classList.contains(\"MuiInputBase-input\")\r\n && !event.target.classList.contains(\"MuiBox-root\")\r\n && !event.target.classList.contains(\"MuiSvgIcon-root\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-input\")\r\n && !event.target.classList.contains(\"makeStyles-dropdownButton-60\")\r\n && !event.target.classList.contains(\"makeStyles-dropdownButton-64\")\r\n && !event.target.classList.contains(\"makeStyles-truncatedSearchString-65\")\r\n && !event.target.classList.contains(\"makeStyles-option-69\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-endAdornment\")\r\n ) {\r\n setOpen(false)\r\n onClose()\r\n }\r\n }\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside)\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n }, [])\r\n\r\n const getPlaceholderString = () => (vehicles ? Localization.searchOnVehicle : Localization.searchOnDevice)\r\n\r\n const snapStyle = () => {\r\n switch (snap) {\r\n case \"left\":\r\n return { left: 0 }\r\n case \"center\":\r\n return { left: \"50%\", transform: \"translateX(-50%)\" }\r\n default:\r\n return {}\r\n }\r\n }\r\n\r\n const clearFilters = e => {\r\n e.stopPropagation()\r\n setSelectedYear(null)\r\n setSelectedModel(null)\r\n setSelectedBrand(null)\r\n }\r\n\r\n const anyFilterSelected = selectedBrand !== null\r\n\r\n return (\r\n isMobile && onClick()}\r\n onKeyDown={event => {\r\n if (event.key === \"Enter\") {\r\n onClick()\r\n }\r\n }}\r\n >\r\n \r\n {open\r\n && (\r\n
\r\n setSelectedBrand(value)}\r\n renderInput={params => }\r\n />\r\n setSelectedModel(value)}\r\n renderInput={params => }\r\n />\r\n {vehicles\r\n && (\r\n setSelectedYear(value)}\r\n renderInput={params => }\r\n />\r\n )}\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MultiSearchbar\r\n","import { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst DEFAULT_LIMIT = 20\r\nconst DEFAULT_OFFSET = 0\r\n\r\nexport const pageSlice = createSlice({\r\n name: \"page\",\r\n initialState: {\r\n limit: DEFAULT_LIMIT,\r\n offset: 0,\r\n prevLimit: DEFAULT_LIMIT,\r\n prevOffset: 0,\r\n action: \"none\",\r\n userSelectedLimit: DEFAULT_LIMIT\r\n },\r\n reducers: {\r\n increaseLimit: state => ({\r\n ...state,\r\n prevLimit: state.limit,\r\n limit: state.limit + state.userSelectedLimit,\r\n action: \"load_more\"\r\n }),\r\n reset: state => ({\r\n ...state,\r\n prevLimit: state.limit,\r\n prevOffset: state.offset,\r\n limit: DEFAULT_LIMIT,\r\n offset: DEFAULT_OFFSET,\r\n userSelectedLimit: DEFAULT_LIMIT,\r\n action: \"none\"\r\n }),\r\n savePage: state => ({\r\n ...state,\r\n prevLimit: state.limit,\r\n prevOffset: state.offset,\r\n action: \"leave\"\r\n }),\r\n setLimit: (state, action) => ({\r\n ...state,\r\n prevLimit: state.limit,\r\n prevOffset: state.offset,\r\n limit: action.payload,\r\n action: \"load_more\"\r\n }),\r\n setOffset: (state, action) => {\r\n state.action = \"load_more\"\r\n state.prevOffset = state.offset\r\n state.offset = action.payload\r\n },\r\n setUserSelectedLimit: (state, action) => {\r\n state.userSelectedLimit = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport default pageSlice.reducer\r\n\r\nconst {\r\n increaseLimit, reset, savePage, setLimit, setUserSelectedLimit, setOffset\r\n} = pageSlice.actions\r\n\r\nexport const saveCurrentPage = () => dispatch => dispatch(\r\n savePage()\r\n)\r\n\r\nexport const increasePageLimit = () => dispatch => dispatch(\r\n increaseLimit()\r\n)\r\n\r\nexport const resetCurrentPage = () => dispatch => dispatch(\r\n reset()\r\n)\r\n\r\nexport const setPageLimit = limit => dispatch => dispatch(\r\n setLimit(limit)\r\n)\r\n\r\nexport const setUserLimit = limit => dispatch => dispatch(\r\n setUserSelectedLimit(limit)\r\n)\r\n\r\nexport const setPageOffset = offset => dispatch => dispatch(\r\n setOffset(offset)\r\n)\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable radix */\r\nimport { brandsNameCompare } from \"./brandHelper\"\r\nimport { modelNameCompare } from \"./modelHelper\"\r\nimport yearCompare from \"./yearHelper\"\r\n\r\nconst addYearPrefix = year => {\r\n if (year === undefined) return \"\"\r\n if (year === \"\") return \"\"\r\n return year.replace(/\\D/, \"\") > parseInt(46) // Denna går antagligen sönder 2047\r\n ? `19${year}`\r\n : `20${year}`\r\n}\r\n\r\nexport const getYearString = yearInterval => {\r\n const [start, end] = yearInterval.split(\"-\")\r\n const startYear = addYearPrefix(start)\r\n const endYear = addYearPrefix(end)\r\n return `${startYear}-${endYear}`\r\n}\r\n\r\n// Comparer for sort.\r\nexport const sortModelVersions = (a, b) => {\r\n let compareResult = brandsNameCompare(a.brand, b.brand)\r\n if (compareResult === 0) {\r\n compareResult = modelNameCompare(a.model, b.model)\r\n }\r\n if (compareResult === 0) {\r\n compareResult = yearCompare(getYearString(a.years), getYearString(b.years))\r\n }\r\n return compareResult\r\n}\r\n\r\nexport const compatibleModelText = comp => {\r\n const list = [`${comp.brand} `, `${comp.model} `, comp.years ? `${getYearString(comp.years)} ` : \"\", comp.placement ? `(${comp.placement}) ` : \"\"]\r\n const result = list.join(\"\").trimEnd()\r\n return result\r\n}\r\n","/* eslint-disable no-nested-ternary */\r\nimport ProductCardTemplate from \"./Components/ProductCardTemplate\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport usePrice from \"../../../redux/hook/priceHooks\"\r\nimport { useProxyPath } from \"../../../redux/hook/settingsHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { useGetModTekProductsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport React from \"react\"\r\n\r\nconst ProductCard = (\r\n {\r\n product,\r\n handleShowMoreCompsClick,\r\n listView = false,\r\n grid,\r\n onSelect,\r\n restorationRef,\r\n backGroundColor,\r\n compare,\r\n showSearchDealerLink,\r\n productInfo = false,\r\n modTek = {},\r\n modTekInformation = {},\r\n altNameList = []\r\n }\r\n) => {\r\n const isAuthorized = useIsUserAuthorized()\r\n const price = usePrice(product?.originalId)\r\n const displayPrice = isAuthorized && price !== undefined\r\n const language = useLanguage()\r\n const proxyPath = useProxyPath()\r\n const { data: modtekProduct } = useGetModTekProductsQuery(modTek?.originalId)\r\n const information = modtekProduct\r\n ? modTekInformation\r\n : product?.information\r\n const info = (information !== undefined && information !== null)\r\n ? Object.keys(information).length > 0\r\n ? modTekInformation?.[language]\r\n : information?.[language]\r\n : \"\"\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ProductCard\r\n","const newsDateComparer = (a, b) => {\r\n const aDate = new Date(a.dateTime)\r\n const bDate = new Date(b.dateTime)\r\n\r\n if (aDate.getTime() === bDate.getTime()) return 0 // TODO: Lägg till en localeCompare här så att man först jämför datum och sedan på localeCompare för samma datum.\r\n return aDate < bDate ? 1 : -1\r\n}\r\n\r\nconst sortNews = newsList => [...newsList].sort(\r\n (a, b) => newsDateComparer(a, b)\r\n)\r\n\r\nexport { newsDateComparer, sortNews }\r\n","import { newsDateComparer } from \"../../lib/helper/newsHelper\";\r\nimport { createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nexport const newsArticleAdapter = createEntityAdapter({\r\n selectId: newsArticle => newsArticle.id,\r\n sortComparer: newsDateComparer\r\n});\r\n\r\nexport const newsArticleSelectors = newsArticleAdapter.getSelectors(state => state.newsArticle)\r\n\r\nexport const { selectById, selectAll } = newsArticleSelectors;\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n root: {\r\n whiteSpace: \"nowrap\",\r\n boxSizing: \"border-box\"\r\n },\r\n rotated: {\r\n writingMode: \"vertical-lr\",\r\n textOrientation: \"mixed\",\r\n transform: \"rotate(180deg)\",\r\n paddingBottom: 5,\r\n paddingRight: 1,\r\n paddingTop: 5,\r\n marginLeft: 5,\r\n marginRight: 5\r\n },\r\n text: {\r\n textTransform: \"uppercase\",\r\n color: \"#fff\",\r\n fontSize: 8\r\n }\r\n}))\r\n","/* eslint-disable indent */\r\nimport useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport React from \"react\"\r\nimport { Typography } from \"@mui/material\"\r\n\r\nconst Banner = ({ type }) => {\r\n const classes = useStyles()\r\n\r\n const getData = whatType => {\r\n switch (whatType) {\r\n case \"new\":\r\n return {\r\n text: Localization.newProduct,\r\n color: \"#d64936\"\r\n }\r\n case \"comingSoon\":\r\n return {\r\n text: Localization.comingSoon,\r\n color: \"#32a8a2\"\r\n }\r\n case \"bestseller\":\r\n return {\r\n text: Localization.bestseller,\r\n color: \"#d6c636\"\r\n }\r\n case \"phasingOut\":\r\n return {\r\n text: Localization.phasingOut,\r\n color: \"#a69d03\"\r\n }\r\n case \"blank\":\r\n return {\r\n text: \"\",\r\n color: \"transparent\"\r\n }\r\n default:\r\n return {\r\n text: \"Unknown\",\r\n color: null\r\n }\r\n }\r\n }\r\n\r\n const data = getData(type)\r\n\r\n return (\r\n \r\n \r\n {data.text}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Banner\r\n","import { productViewBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n result: {\r\n position: \"relative\",\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(2),\r\n minHeight: 450,\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n minHeight: 0\r\n }\r\n },\r\n notGrid: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: 16\r\n },\r\n notGridLoading: {\r\n width: \"100%\",\r\n height: 142\r\n },\r\n circleAnimation: {\r\n position: \"absolute\",\r\n padding: 10,\r\n zIndex: 99,\r\n left: \"50%\",\r\n marginTop: \"calc(50vh - 145px)\", // 145px navbar height\r\n transform: \"translateX(-50%)\"\r\n },\r\n isGrid: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: 16\r\n }\r\n}))\r\n","import ProductCardTemplate from \"./Components/ProductCardTemplate\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useGetReplacementProductsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport React from \"react\"\r\n\r\nfunction MissingFavoriteProductCard({ productId, grid }) {\r\n const { data: replacementProds } = useGetReplacementProductsQuery(productId)\r\n\r\n const getArticleString = array => {\r\n const str = array.map(id => `${id}, `).toString()\r\n return str.substr(0, str.length - 2)\r\n }\r\n\r\n const getReplacementText = () => (\r\n replacementProds?.deleted === true && replacementProds?.replacementProducts?.length > 0\r\n ? (`${Localization.itWasReplacedByTheFollowingArticles + getArticleString(replacementProds.replacementProducts)}.`)\r\n : \"\"\r\n )\r\n\r\n const productContent = {\r\n images: [`${process.env.REACT_APP_IMAGE_URL}w120/${productId}.jpg`],\r\n description: `${Localization.thisProductIsNoLongerAvailable} ${getReplacementText()}`,\r\n name: \"\",\r\n originalId: `${productId}`\r\n }\r\n\r\n return (\r\n { }}\r\n restorationRef={null}\r\n compare={false}\r\n showShare={false}\r\n showCompare={false}\r\n showFavorite\r\n showSpeedOrder={false}\r\n fillEmptySpace\r\n displayPrice={false}\r\n linkToProduct=\"#\"\r\n />\r\n )\r\n}\r\n\r\nexport default MissingFavoriteProductCard\r\n","import { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport {\r\n Box, List, ListItem, Typography\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nfunction ReplacementProducts({ replacementProducts, searchedId }) {\r\n const language = useLanguage()\r\n\r\n return (\r\n \r\n \r\n {/* eslint-disable-next-line max-len */}\r\n {`${Localization.product} ${searchedId} ${Localization.wasReplacedByFollowingArticles}`}\r\n \r\n \r\n {replacementProducts?.map(productId => (\r\n \r\n \r\n \r\n {productId}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ReplacementProducts\r\n","/* eslint-disable import/no-cycle */\r\nimport MissingFavoriteProductCard from \"../MissingFavoriteProductCard\"\r\nimport ProductCard from \"../ProductCard\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { changeSelectedModTek } from \"../../../../redux/userSlice\"\r\nimport { useSelectedModTek } from \"../../../../redux/hook/userHooks\"\r\nimport { fetchModteks } from \"../../../../redux/thunk/productThunk\"\r\nimport React, { useState, useEffect } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nimport {\r\n Box,\r\n Button,\r\n Typography\r\n} from \"@mui/material\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst ProductGallery = ({\r\n list = [], language, grid, persistScrollPosition, restorationRef, hidden\r\n}) => {\r\n const [products, setProducts] = useState([])\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n const fetchedProducts = await fetchModteks(list, language)\r\n fetchedProducts.map(p => {\r\n const pr = p\r\n pr.id = `${language}-${p.id}`\r\n pr.originalId = p.id?.split(\"-\")[1]\r\n return pr\r\n })\r\n setProducts(fetchedProducts)\r\n }\r\n\r\n fetchData()\r\n }, [list])\r\n\r\n return (\r\n \r\n {products.map((p, i) => (\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nconst ModTekSelector = ({\r\n restorationRef,\r\n grid,\r\n missingProducts,\r\n modTek = {},\r\n modTekId,\r\n persistScrollPosition\r\n}) => {\r\n const dispatch = useDispatch()\r\n const language = useLanguage()\r\n const modTekTitles = modTek?.title?.[language]\r\n const titles = modTekTitles\r\n const index = {}\r\n const [activeButton, setActiveButton] = useState(\"\")\r\n\r\n titles.forEach((key, i) => { index[key] = i })// { dock: 0, power: 1, accessories: 2 }\r\n const state = useSelectedModTek()\r\n\r\n const chooseStep = i => {\r\n setActiveButton(modTek?.title?.en[i])\r\n dispatch(changeSelectedModTek({ id: modTekId, step: modTek?.title?.en[i] }))\r\n }\r\n\r\n useEffect(() => {\r\n if (state.step !== \"\") {\r\n chooseStep(modTek.title.en.indexOf(state.step))\r\n } else {\r\n chooseStep(modTek?.title?.en.indexOf(modTek?.title?.en[0]))\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n {\r\n missingProducts?.map(id => (\r\n \r\n ))\r\n }\r\n \r\n {\r\n titles.map((title, ind) => (\r\n chooseStep(ind)}\r\n key={title}\r\n >\r\n \r\n \r\n {title?.toUpperCase()}\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n {modTek?.title?.en.map(t => (\r\n category.id === t)?.products}\r\n language={language}\r\n key={t}\r\n restorationRef={restorationRef}\r\n grid={grid}\r\n missingProducts={missingProducts}\r\n modTek={modTek}\r\n modTekId={modTekId}\r\n persistScrollPosition={persistScrollPosition}\r\n hidden={t !== activeButton}\r\n />\r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ModTekSelector\r\n","import useStyles from \"./styles\"\r\nimport ProductCard from \"./ProductCard/ProductCard\"\r\nimport MissingFavoriteProductCard from \"./ProductCard/MissingFavoriteProductCard\"\r\nimport ReplacementProducts from \"./ReplacementProducts/ReplacementProducts\"\r\nimport ModTekSelector from \"./ProductCard/Components/ModTekSelector\"\r\nimport { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport React, {\r\n useRef, useState, useEffect, createRef, useMemo\r\n} from \"react\"\r\nimport {\r\n CircularProgress, Box, useTheme, useMediaQuery, Typography\r\n} from \"@mui/material\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { useNavigationType } from \"react-router-dom\"\r\n\r\nconst Products = ({\r\n products,\r\n useGridView,\r\n missingProducts = [],\r\n isLoading,\r\n replacementProducts,\r\n searchedId,\r\n isDeleted,\r\n modTek = {},\r\n modTekInformation = {},\r\n modTekId,\r\n altNameList = []\r\n}) => {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileBreakpoint))\r\n const isOnlyOneCardWidth = useMediaQuery(theme.breakpoints.down(1000))\r\n\r\n const isGridState = useSelector(state => state.settings.productGridView)\r\n const isGrid = useGridView ?? (isMobile || isGridState)\r\n const isGridTemplateColumns = isMobile ? \"\" : \"repeat(auto-fit, 400px)\"\r\n const classes = useStyles()\r\n const navigationType = useNavigationType()\r\n const loading = useMemo(\r\n () => (isLoading),\r\n [isLoading]\r\n )\r\n const [productMarkerId] = useState(() => {\r\n if (navigationType !== \"POP\") { return null }\r\n\r\n const persistendId = sessionStorage.getItem(\r\n \"scroll-position-product-id-marker\"\r\n )\r\n\r\n sessionStorage.removeItem(\"scroll-position-product-id-marker\")\r\n\r\n return persistendId || null\r\n })\r\n\r\n useEffect(() => {\r\n if (!productMarkerId) { window.scrollTo(0, 0) }\r\n }, [productMarkerId])\r\n\r\n const persistScrollPosition = id => {\r\n sessionStorage.setItem(\"scroll-position-product-id-marker\", id)\r\n }\r\n\r\n const restorationRef = useRef(Array(products.length).fill(createRef()))\r\n\r\n return (\r\n \r\n\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {(isGrid && Object.keys(modTek).length === 0) && (\r\n \r\n {\r\n missingProducts.map(id => (\r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n products.map((product, i) => (\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n )}\r\n {(!isGrid && Object.keys(modTek).length === 0) && (\r\n \r\n {\r\n missingProducts.map(id => (\r\n \r\n ))\r\n }\r\n {\r\n products.map((product, i) => (\r\n \r\n ))\r\n }\r\n \r\n )}\r\n\r\n {Object.keys(modTek).length > 0 && (\r\n \r\n \r\n \r\n )}\r\n\r\n {(!loading && replacementProducts?.length > 0 && isDeleted && searchedId)\r\n && (\r\n \r\n )}\r\n {(!loading && products?.length === 0 && replacementProducts?.length === 0 && isDeleted && searchedId)\r\n && (\r\n \r\n {`${Localization.theProduct} ${searchedId} ${Localization.isDiscontinuedAndNoLongerAvailable}.`}\r\n \r\n )}\r\n {(!loading && products?.length === 0 && replacementProducts?.length === 0 && !isDeleted && searchedId)\r\n && (\r\n \r\n {`${Localization.theProduct} ${searchedId}, ${Localization.weCouldNotFindThisProductEtc}`}\r\n \r\n )}\r\n \r\n )\r\n}\r\nexport default Products\r\n","import { useSelector } from \"react-redux\"\r\n\r\nconst useCookiesConsent = () => useSelector(state => state.gdpr.hasAllowedCookies)\r\n\r\nexport default useCookiesConsent\r\n","import { resetCurrentPage } from \"../pageReducer\"\r\nimport { useEffect } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useNavigate, useNavigationType } from \"react-router-dom\"\r\n\r\nconst usePage = () => {\r\n const page = useSelector(state => state.page)\r\n const navigate = useNavigate()\r\n const dispatch = useDispatch()\r\n const navigationType = useNavigationType()\r\n\r\n const returnObj = { limit: 0, offset: 0, userSelectedLimit: 0 }\r\n\r\n useEffect(() => {\r\n if (navigationType !== \"POP\") dispatch(resetCurrentPage())\r\n }, [dispatch, navigationType])\r\n\r\n if (navigate.action === \"POP\" && page.action === \"leave\") {\r\n returnObj.limit = page.prevLimit\r\n returnObj.offset = page.prevOffset\r\n } else if (navigate.action === \"POP\" && page.action === \"load_more\") {\r\n returnObj.limit = page.limit\r\n returnObj.offset = page.offset\r\n } else if (navigate.action === \"POP\" && page.action === \"none\") {\r\n returnObj.limit = page.prevLimit\r\n returnObj.offset = page.prevOffset\r\n } else {\r\n returnObj.limit = page.limit\r\n returnObj.offset = page.offset\r\n }\r\n\r\n returnObj.userSelectedLimit = page.userSelectedLimit\r\n return returnObj\r\n}\r\n\r\nexport default usePage\r\n","import { prepareProducts } from \"../../components/CompareProducts/helperFunctions\"\r\nimport { replaceNameForBrandOther, restoreNameForBrandOther, sortBrands } from \"../../lib/helper/brandHelper\"\r\nimport { filterFaultyValues, isSearchQueryEmpty } from \"../../lib/helper/searchHelper\"\r\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\"\r\n\r\nexport const productInfoApi = createApi({\r\n reducerPath: \"productInfoApi\",\r\n baseQuery: fetchBaseQuery({ baseUrl: \"/api/ProductInfo/\" }),\r\n endpoints: builder => ({\r\n getBrands: builder.query({\r\n query: ({ language, steering = null }) => (\r\n `GetBrands?language=${language}${steering ? `&steering=${steering}` : \"\"}`\r\n ),\r\n transformResponse: response => {\r\n const nameCorrectedBrands = replaceNameForBrandOther(response)\r\n const sortedBrands = sortBrands(nameCorrectedBrands)\r\n return sortedBrands\r\n }\r\n }),\r\n getProductsByFilter: builder.query({\r\n query: ({ filters, pagination, language }) => {\r\n // Filter out empty search keywords.\r\n const cleanFilters = filterFaultyValues(filters)\r\n\r\n // Prevent fetching when filter is empty.\r\n const isEmpty = isSearchQueryEmpty(cleanFilters)\r\n if (isEmpty) return null\r\n\r\n // Restore the original name of the \"Other models\" brand.\r\n if (cleanFilters.brands) {\r\n cleanFilters.brands = restoreNameForBrandOther(cleanFilters.brands)\r\n }\r\n return {\r\n url: \"GetProductsByFilter\",\r\n method: \"POST\",\r\n body: { ...cleanFilters, ...pagination, language }\r\n }\r\n },\r\n transformResponse: (response, _meta, arg) => {\r\n const productList = response?.pagedList?.response?.list ?? []\r\n const products = prepareProducts(productList, arg.language)\r\n return {\r\n ...response,\r\n products: products,\r\n brands: replaceNameForBrandOther(response.brands)\r\n }\r\n }\r\n }),\r\n getModelYears: builder.query({\r\n query: args => ({\r\n url: \"GetModelYears\",\r\n method: \"POST\",\r\n body: {\r\n brandIds: [args.brand],\r\n modelIds: [args.model],\r\n language: args.language,\r\n steering: [args.steering]\r\n }\r\n }),\r\n transformResponse: response => response.response\r\n })\r\n })\r\n})\r\n\r\nexport const { useGetBrandsQuery, useGetProductsByFilterQuery, useGetModelYearsQuery } = productInfoApi\r\n","import { useIsUserAuthorized, useUserAuthToken } from \"./userHooks\"\r\nimport { selectById } from \"../adapter/priceAdapter\"\r\nimport { useGetPricesQuery } from \"../services/priceApi\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst usePrice = id => useSelector(state => selectById(state, id))\r\n\r\n/**\r\n * Use this hook to load the prices into the price adapter.\r\n * @param {*} ids The ids of the products we fetch the price for.\r\n * @returns The prices for the specified products.\r\n */\r\nexport const useLoadPrices = ids => {\r\n const authToken = useUserAuthToken()\r\n const isAuthorized = useIsUserAuthorized()\r\n const { data: prices } = useGetPricesQuery(\r\n {\r\n authToken,\r\n ids\r\n },\r\n { skip: !isAuthorized || ids.length <= 0 }\r\n )\r\n return prices\r\n}\r\n\r\nexport default usePrice\r\n","/* eslint-disable import/prefer-default-export */\r\nimport { useParams } from \"react-router-dom\"\r\n\r\nconst useLanguage = () => {\r\n const { locale } = useParams()\r\n return locale\r\n}\r\n\r\nexport { useLanguage }\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n list: {\r\n margin: 0,\r\n padding: 0,\r\n paddingLeft: \"1em\"\r\n }\r\n}))\r\n","/* eslint-disable no-bitwise */\r\nimport useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../../lib/Localization\"\r\nimport { compatibleModelText } from \"../../../../../lib/helper/modelVersionsHelper\"\r\nimport { useSearchQuery } from \"../../../../../redux/hook/searchHooks\"\r\nimport { moveWordsToTopComparer } from \"../../../../../lib/helper/commonHelper\"\r\nimport { Typography, Link as AnchorLink } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst CompatibleModels = ({ compatibleModels, handleShowMoreCompsClick }) => {\r\n const classes = useStyles()\r\n const allSearchQueries = useSearchQuery()\r\n const brand = allSearchQueries.brands?.[0] ?? \"\"\r\n const model = allSearchQueries.models?.[0] ?? \"\"\r\n const year = allSearchQueries.years?.[0] ?? \"\"\r\n\r\n return (\r\n
    \r\n {\r\n compatibleModels\r\n ? [...compatibleModels]\r\n .sort((a, b) => moveWordsToTopComparer(\r\n compatibleModelText(a),\r\n compatibleModelText(b),\r\n [brand, model, year]\r\n ))\r\n .slice(0, 2)\r\n .filter(x => x.brand !== \",\")\r\n .map((comp, i) => (\r\n
  • \r\n \r\n {compatibleModelText(comp)}\r\n {\r\n (\r\n compatibleModels.length > 2\r\n && handleShowMoreCompsClick === null\r\n & i === 1\r\n )\r\n ? Localization.moreSmall\r\n : null\r\n }\r\n \r\n {compatibleModels.length > 2 && i === 1 ? (\r\n
    \r\n {handleShowMoreCompsClick !== null ? (\r\n \r\n \r\n {Localization.showMore}\r\n \r\n \r\n ) : (null)}\r\n
    \r\n ) : null}\r\n
  • \r\n ))\r\n : null\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default CompatibleModels\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n flexGrow: 1,\r\n padding: 15\r\n },\r\n button: {\r\n backgroundColor: \"white\"\r\n },\r\n centerContent: {\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n select: {\r\n \"&:before\": {\r\n borderBottom: \"none\"\r\n },\r\n \"&:after\": {\r\n borderBottom: \"none\"\r\n }\r\n }\r\n}))\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles({\r\n pagination: {\r\n \"& .Mui-selected\": {\r\n background: \"none\",\r\n textDecoration: \"underline\",\r\n textUnderlineOffset: \"0.2rem\",\r\n fontWeight: \"bold\"\r\n }\r\n },\r\n select: {\r\n \"&:before\": {\r\n borderBottom: \"none\"\r\n },\r\n \"&:after\": {\r\n borderBottom: \"none\"\r\n }\r\n }\r\n})\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport theme from \"../../theme\"\r\nimport { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport {\r\n Box, MenuItem, Select, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst DropdownPagination = ({\r\n values, index, setIndex, itemCountText\r\n}) => {\r\n const handleSpecific = event => {\r\n const value = event.target.value\r\n setIndex(value)\r\n }\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(() => theme.breakpoints.down(mobileBreakpoint))\r\n\r\n return (\r\n \r\n {!isMobile\r\n && (\r\n \r\n {Localization.displaying}\r\n   \r\n \r\n )}\r\n 0) ? index : \"\"}\r\n onChange={handleSpecific}\r\n className={classes.select}\r\n variant=\"standard\"\r\n >\r\n {\r\n values.map((value, currentIndex) => (\r\n {value}\r\n ))\r\n }\r\n \r\n \r\n  \r\n {Localization.outOf}\r\n {\" \"}\r\n {itemCountText}\r\n {\" \"}\r\n {Localization.results}\r\n .\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DropdownPagination\r\n","import useStyles from \"./styles\"\r\nimport { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport theme from \"../../theme\"\r\nimport { useMediaQuery, Pagination, PaginationItem } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst PagePagination = ({ values, index, setIndex }) => {\r\n const handleSpecific = value => {\r\n setIndex(value)\r\n window.scrollTo(0, 0)\r\n }\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileBreakpoint))\r\n\r\n return (\r\n handleSpecific(page)}\r\n siblingCount={isMobile ? 0 : 1}\r\n renderItem={\r\n item => (\r\n \r\n )\r\n }\r\n className={classes.pagination}\r\n />\r\n )\r\n}\r\n\r\nexport default PagePagination\r\n","import useStyles from \"./styles\"\r\nimport {\r\n increasePageLimit, setPageLimit, setPageOffset, setUserLimit, resetCurrentPage\r\n} from \"../../redux/pageReducer\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport usePage from \"../../redux/hook/pageHook\"\r\nimport { useSearchQuery } from \"../../redux/hook/searchHooks\"\r\nimport DropdownPagination from \"../Pagination/DropdownPagination\"\r\nimport PagePagination from \"../Pagination/PagePagination\"\r\nimport { setSearchQuery } from \"../../redux/searchReducer\"\r\nimport CachedIcon from \"@mui/icons-material/Cached\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport {\r\n Box, Button, MenuItem, Select\r\n} from \"@mui/material\"\r\nimport React, { useEffect, useRef } from \"react\"\r\nimport classNames from \"classnames\"\r\nimport { useLocation, useNavigate } from \"react-router-dom\"\r\n\r\nconst PRODS_PER_PAGE = 20\r\n\r\nconst PageHandler = ({ type, itemCount }) => {\r\n const page = usePage()\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const searchQuery = useSearchQuery()\r\n const index = Math.floor(page.offset / page.userSelectedLimit)\r\n const amountOfPages = Math.ceil(itemCount / page.userSelectedLimit)\r\n\r\n const location = useLocation()\r\n const navigate = useNavigate()\r\n const prevLocation = useRef(location.pathname + location.search)\r\n const prevSearchQuery = useRef(null)\r\n\r\n const match = location.search.match(/(?:\\?|&)texts=([^&]*)/)\r\n const textsParameter = match ? match[1] : \"\"\r\n\r\n const reset = () => {\r\n dispatch(setPageOffset(0))\r\n dispatch(resetCurrentPage())\r\n }\r\n\r\n const handleLoadSpecific = pageIndex => {\r\n dispatch(setPageOffset(pageIndex * page.userSelectedLimit))\r\n dispatch(setPageLimit(page.userSelectedLimit))\r\n\r\n const url = new URL(window.location.href)\r\n const params = new URLSearchParams(url.search)\r\n\r\n params.set(\"page\", pageIndex)\r\n\r\n url.search = params.toString()\r\n\r\n dispatch(setSearchQuery({ type: \"filterProducts\", value: { ...searchQuery, page: [url.search.split(\"page=\")[1]] } }))\r\n if (window.history.href !== \"https://localhost:5031/en/filter\") navigate(url.pathname + url.search)\r\n }\r\n\r\n useEffect(() => {\r\n if (searchQuery.brand === undefined) return\r\n const currentLocation = location.pathname + location.search\r\n const hasSearchQueryChanged = searchQuery !== prevSearchQuery.current\r\n\r\n if (searchQuery?.texts?.[0] !== undefined) {\r\n const shouldResetPage = (\r\n currentLocation !== prevLocation.current\r\n || (!location.pathname.includes(searchQuery.brands)\r\n && !decodeURIComponent(textsParameter).replace(/\\+/g, \" \").includes(searchQuery?.texts?.[0]))\r\n )\r\n\r\n if (shouldResetPage) reset()\r\n }\r\n\r\n if (hasSearchQueryChanged && searchQuery.page === undefined) {\r\n reset()\r\n } else {\r\n handleLoadSpecific(parseInt(searchQuery.page, 10))\r\n }\r\n\r\n prevLocation.current = currentLocation\r\n prevSearchQuery.current = searchQuery\r\n }, [location, dispatch, searchQuery])\r\n\r\n const onLoadMore = () => {\r\n dispatch(increasePageLimit())\r\n }\r\n\r\n const handleListSelect = e => {\r\n dispatch(setPageLimit(e.target.value))\r\n dispatch(setUserLimit(e.target.value))\r\n }\r\n\r\n if (type === \"list\") {\r\n const numberOfOptions = 3\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (type === \"button\") {\r\n return (\r\n
\r\n }\r\n onClick={onLoadMore}\r\n >\r\n {Localization.loadMore}\r\n \r\n
\r\n )\r\n }\r\n\r\n if (type === \"pagePagination\") {\r\n let pageOptions = [...Array(amountOfPages)].map(\r\n (_, i) => i + 1\r\n )\r\n\r\n if (amountOfPages <= 0) pageOptions = [1]\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n if (type === \"dropdownPagination\") {\r\n let dropdownOptions = [...Array(amountOfPages)].map(\r\n (_, i) => {\r\n const step = page.userSelectedLimit\r\n const start = step * i\r\n let end = start + (step)\r\n if (end > itemCount) end = itemCount\r\n return `${start + 1}-${end}`\r\n }\r\n )\r\n\r\n if (amountOfPages <= 0) {\r\n dropdownOptions = [\"0-0\"]\r\n }\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n return null\r\n}\r\n\r\nexport default PageHandler\r\n","/* eslint-disable no-plusplus */\r\nexport const modelNameCompare = (modelNameA, modelNameB) => {\r\n const a = modelNameA.toUpperCase()\r\n const b = modelNameB.toUpperCase()\r\n\r\n const expression = /(\\D*)(\\d*)/\r\n const aParts = a.split(expression).filter(Boolean)\r\n const bParts = b.split(expression).filter(Boolean)\r\n\r\n for (let i = 0; i < aParts.length && i < bParts.length; i++) {\r\n if (aParts[i].localeCompare(bParts[i]) !== 0) {\r\n const aPartAsInt = parseInt(aParts[i], 10)\r\n const bPartAsInt = parseInt(bParts[i], 10)\r\n // If one or more part is not an integer\r\n if (!aPartAsInt || !bPartAsInt) {\r\n return a.localeCompare(b)\r\n }\r\n\r\n const diff = aPartAsInt - bPartAsInt\r\n if (diff !== 0) {\r\n return diff\r\n }\r\n }\r\n }\r\n\r\n const compareNumber = `${a.length}`.localeCompare(`${b.length}`)\r\n return Math.sign(compareNumber)\r\n}\r\n\r\nexport const sortModels = modelList => [...modelList].sort(\r\n (a, b) => modelNameCompare(a.name, b.name)\r\n)\r\n","// import { startGoogleAnalytics, stopGoogleAnalytics } from \"../lib/helper/googleAnalyticsHelper\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst gdprSlice = createSlice({\r\n name: \"gdpr\",\r\n initialState: {\r\n hasAllowedCookies: false\r\n },\r\n reducers: {\r\n acceptCookies: state => {\r\n state.hasAllowedCookies = true\r\n // startGoogleAnalytics()\r\n },\r\n declineCookies: state => {\r\n state.hasAllowedCookies = false\r\n // stopGoogleAnalytics()\r\n }\r\n }\r\n})\r\n\r\nexport default gdprSlice.reducer\r\n\r\nexport const { acceptCookies, declineCookies } = gdprSlice.actions\r\n","import { eraseCookie } from \"../../redux/cookieStorage\"\r\nimport ReactGA from \"react-ga4\"\r\n\r\nexport const startGoogleAnalytics = () => {\r\n if (process.env.REACT_APP_GA_TRACKING_ID) {\r\n ReactGA.initialize(\r\n process.env.REACT_APP_GA_TRACKING_ID\r\n // ,{\r\n // debug: true,\r\n // // titleCase: false,\r\n // gaOptions: {\r\n // // userId: 123,\r\n // siteSpeedSampleRate: 100\r\n // }\r\n // }\r\n )\r\n }\r\n}\r\n\r\nexport const stopGoogleAnalytics = () => {\r\n const cookieIdName = process.env.REACT_APP_GA_TRACKING_ID.replace(/.*?\\-/, \"\")\r\n eraseCookie(`_ga_${cookieIdName}`)\r\n eraseCookie(\"_ga\")\r\n eraseCookie(\"_gat\")\r\n eraseCookie(\"_gid\")\r\n}\r\n\r\nexport const sendGAEventProductSearch = () => {\r\n ReactGA.event(\r\n {\r\n category: \"product\",\r\n action: \"search\",\r\n label: \"Searched on products\"\r\n }\r\n )\r\n}\r\n\r\nexport const sendGAEventProductSearchViaLink = () => {\r\n ReactGA.event(\r\n {\r\n category: \"product\",\r\n action: \"search-using-link\",\r\n label: \"Searched on products using a link\"\r\n }\r\n )\r\n}\r\n\r\nexport const sendGAEventSignedIn = () => {\r\n ReactGA.event(\r\n {\r\n category: \"user\",\r\n action: \"sign-in\",\r\n label: \"Signed in\"\r\n }\r\n )\r\n}\r\n\r\nexport const sendGAEventSignInUnauthorized = () => {\r\n ReactGA.event(\r\n {\r\n category: \"user\",\r\n action: \"sign-in-unauthorized\",\r\n label: \"Sign in failed due to being unauthorized\"\r\n }\r\n )\r\n}\r\n\r\nexport const sendGAEventMaintenanceSignIn = () => {\r\n ReactGA.event(\r\n {\r\n category: \"user\",\r\n action: \"sign-in-blocked-by-maintenance\",\r\n label: \"Blocked sign in attempt due to maintenance\"\r\n }\r\n )\r\n}\r\n\r\nexport const sendGAEventErrorOnSignIn = () => {\r\n ReactGA.event(\r\n {\r\n category: \"user\",\r\n action: \"sign-in-error\",\r\n label: \"Error on signing in\"\r\n }\r\n )\r\n}\r\n","import { useSelector } from \"react-redux\";\r\n\r\nconst useCompareCount = () => useSelector(state => state.compareProduct.productIds).length ?? 0\r\n\r\nconst useCompareProducts = () => useSelector(state => state.compareProduct.productIds)\r\n\r\nconst useIsCompareOverviewVisible = () => useSelector(state => state.compareProduct.showOverview)\r\n\r\nconst useIsOnComparePage = () => useSelector(state => state.compareProduct.onComparePage)\r\n\r\nexport {\r\n useCompareCount,\r\n useCompareProducts,\r\n useIsCompareOverviewVisible,\r\n useIsOnComparePage\r\n};\r\n","import { apiCallBegan } from \"./api\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nexport const monitorSlice = createSlice({\r\n name: \"monitor\",\r\n initialState: {\r\n cartSimulation: [],\r\n cartSimulationLoading: false,\r\n loadingCustomerOrder: false,\r\n customerOrder: []\r\n },\r\n reducers: {\r\n simulateOrderRequested: state => {\r\n state.cartSimulationLoading = true\r\n },\r\n simulateOrderRequestReceived: (state, action) => ({\r\n ...state,\r\n cartSimulation: action.payload,\r\n cartSimulationLoading: false\r\n }),\r\n simulateOrderFailed: state => {\r\n state.cartSimulationLoading = false\r\n },\r\n resetPlacedOrder: state => ({\r\n ...state,\r\n cartSimulation: []\r\n }),\r\n fetchOrderRequestStarted: state => {\r\n state.loadingCustomerOrder = true\r\n },\r\n fetchOrderRequestReceived: (state, action) => ({\r\n ...state,\r\n customerOrder: action.payload,\r\n loadingCustomerOrder: false\r\n }),\r\n fetchOrderFailed: state => {\r\n state.loadingCustomerOrder = false\r\n }\r\n }\r\n})\r\n\r\nexport default monitorSlice.reducer\r\n\r\nconst {\r\n simulateOrderRequested,\r\n simulateOrderRequestReceived,\r\n simulateOrderFailed,\r\n resetPlacedOrder,\r\n fetchOrderRequestStarted,\r\n fetchOrderRequestReceived,\r\n fetchOrderFailed\r\n} = monitorSlice.actions\r\n\r\nexport const simulateOrder = (authToken, rows) => dispatch => dispatch(\r\n apiCallBegan({\r\n url: \"/api/ProductInfo/SimulateOrder\",\r\n onStart: simulateOrderRequested.type,\r\n onSuccess: simulateOrderRequestReceived.type,\r\n onError: simulateOrderFailed.type,\r\n method: \"POST\",\r\n data: {\r\n authToken: authToken,\r\n rows: rows\r\n }\r\n })\r\n)\r\n\r\nexport const resetOrder = () => dispatch => dispatch(resetPlacedOrder())\r\n\r\nexport const fetchCustomerOrder = orderNumber => dispatch => dispatch(\r\n apiCallBegan({\r\n url: `/api/ProductInfo/GetCustomerOrder?orderNumber=${orderNumber}`,\r\n onStart: fetchOrderRequestStarted.type,\r\n onSuccess: fetchOrderRequestReceived.type,\r\n onError: fetchOrderFailed.type\r\n })\r\n)\r\n","import React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\n/**\r\n * Prevents google from indexing this route.\r\n */\r\nfunction NoIndexMetaData() {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default NoIndexMetaData\r\n","import { strings as Localization } from \"../../lib/Localization\"\r\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\"\r\nimport DoneIcon from \"@mui/icons-material/Done\"\r\nimport LocalShippingIcon from \"@mui/icons-material/LocalShipping\"\r\nimport TransferWithinAStationIcon from \"@mui/icons-material/TransferWithinAStation\"\r\nimport { Typography } from \"@mui/material\"\r\nimport AccessTimeIcon from \"@mui/icons-material/AccessTime\"\r\nimport PrintIcon from \"@mui/icons-material/Print\"\r\nimport React from \"react\"\r\n\r\nconst getStatusText = (statusId, upperCase = false) => {\r\n const defaultStatus = {\r\n icon: ,\r\n text: Localization.deliveryComplete\r\n }\r\n const allStatus = {\r\n 1: {\r\n icon: ,\r\n text: Localization.registered\r\n },\r\n 2: {\r\n icon: ,\r\n text: Localization.printed\r\n },\r\n 3: {\r\n icon: ,\r\n text: Localization.deliveryTimeCannotBeConfirmed\r\n },\r\n 4: {\r\n icon: ,\r\n text: Localization.processing\r\n },\r\n 5: {\r\n icon: ,\r\n text: Localization.partiallyDelivered\r\n }\r\n }\r\n\r\n const selectedStatus = allStatus[statusId] ?? defaultStatus\r\n\r\n return (\r\n <>\r\n {selectedStatus.icon}\r\n \r\n {\r\n upperCase\r\n ? selectedStatus.text.toUpperCase()\r\n : selectedStatus.text\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default getStatusText\r\n","import { strings as Localization } from \"../../../lib/Localization\"\r\nimport { toggleProductGridViewSetting } from \"../../../redux/settingsReducer\"\r\nimport { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport React from \"react\"\r\nimport {\r\n Tooltip, IconButton, Box, useMediaQuery\r\n} from \"@mui/material\"\r\nimport ListIcon from \"@mui/icons-material/List\"\r\nimport AppsIcon from \"@mui/icons-material/Apps\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst ProductViewToggleButton = ({ noMargin }) => {\r\n const dispatch = useDispatch()\r\n const toggleView = event => {\r\n event.stopPropagation()\r\n dispatch(toggleProductGridViewSetting())\r\n }\r\n const isGrid = useSelector(state => state.settings.productGridView)\r\n const isMobile = useMediaQuery(theme => theme.breakpoints.down(mobileBreakpoint))\r\n return (\r\n \r\n \r\n \r\n {isGrid ? : }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProductViewToggleButton\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport {\r\n VerifiedUser, LocalShipping, Payment, Info, Business, ShoppingCart\r\n} from \"@mui/icons-material\"\r\n\r\nconst RegisterRetailerStepIcon = ({ icon }) => {\r\n const icons = {\r\n 1: ,\r\n 2: ,\r\n 3: ,\r\n 4: ,\r\n 5: ,\r\n 6: \r\n }\r\n\r\n return (icons[String(icon)])\r\n}\r\n\r\nRegisterRetailerStepIcon.propTypes = {\r\n /**\r\n * Whether this step is active.\r\n */\r\n active: PropTypes.bool,\r\n /**\r\n * Mark the step as completed. Is passed to child components.\r\n */\r\n completed: PropTypes.bool,\r\n /**\r\n * The label displayed in the step icon.\r\n */\r\n icon: PropTypes.node\r\n}\r\n\r\nexport default RegisterRetailerStepIcon\r\n","import { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n // backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3)\r\n },\r\n root: {\r\n backgroundColor: \"#ccc\",\r\n zIndex: 1,\r\n color: \"#fff\",\r\n width: 50,\r\n height: 50,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n active: {\r\n backgroundImage:\r\n \"linear-gradient( 136deg, rgb(242,113,33) 0%, rgb(233,64,87) 50%, rgb(138,35,135) 100%)\",\r\n boxShadow: \"0 4px 10px 0 rgba(0,0,0,.25)\"\r\n },\r\n completed: {\r\n backgroundImage:\r\n \"linear-gradient( 136deg, rgb(242,113,33) 0%, rgb(233,64,87) 50%, rgb(138,35,135) 100%)\"\r\n },\r\n line: {\r\n },\r\n textFieldWrapper: {\r\n padding: \"0 20px 20px 20px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"10px\"\r\n },\r\n textFieldWrapperNoPadding: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"10px\"\r\n }\r\n}));\r\n","import RegisterRetailerStepIcon from \"./RegisterRetailerStepIcon\"\r\nimport useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useRecaptchaSiteKey } from \"../../redux/hook/settingsHooks\"\r\nimport React, { useState, useRef } from \"react\"\r\nimport {\r\n Box,\r\n Typography,\r\n TextField,\r\n Button,\r\n Checkbox,\r\n FormControlLabel,\r\n Link,\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Container,\r\n FormControl,\r\n FormGroup,\r\n FormHelperText,\r\n CircularProgress\r\n} from \"@mui/material\"\r\nimport ReCAPTCHA from \"react-google-recaptcha\"\r\n// import RegisterRetailerStepConnector from './RegisterRetailerStepConnector';\r\nimport { Error, ExpandMore, Send } from \"@mui/icons-material\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport axios from \"axios\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst formDefaultValues = {\r\n companyName: \"\",\r\n organizationNumber: \"\",\r\n website: \"\",\r\n contactName: \"\",\r\n contactPhone: \"\",\r\n contactEmail: \"\",\r\n deliveryAddress: \"\",\r\n deliveryPostalCode: \"\",\r\n deliveryTown: \"\",\r\n boxDeliveryAddress: \"\",\r\n boxDeliveryPostalCode: \"\",\r\n boxDeliveryTown: \"\",\r\n billingAddress: \"\",\r\n billingPostalCode: \"\",\r\n billingTown: \"\",\r\n billingEmail: \"\",\r\n nameSign: \"\",\r\n dateSign: \"\",\r\n townSign: \"\",\r\n registrationCertificate: undefined,\r\n agreement: false,\r\n recaptcha: undefined\r\n}\r\n\r\nconst RegisterRetailer = ({ ...props }) => {\r\n const {\r\n register, setValue, setError, clearErrors, handleSubmit, watch, formState: { errors }\r\n } = useForm({ defaultValues: formDefaultValues })\r\n const recaptchaRef = useRef()\r\n const [isLoading, setIsLoading] = useState(false)\r\n const dispatch = useDispatch()\r\n const recaptchaSiteKey = useRecaptchaSiteKey()\r\n const language = useLanguage()\r\n\r\n const onChangeRecaptcha = value => {\r\n if (value) {\r\n clearErrors(\"recaptcha\")\r\n }\r\n\r\n setValue(\"recaptcha\", value)\r\n }\r\n\r\n const onExpired = () => {\r\n setValue(\"recaptcha\", undefined)\r\n }\r\n\r\n const handleRegisterRetailer = async data => {\r\n if (data.recaptcha === undefined) {\r\n setError(\"recaptcha\", {\r\n type: \"manual\",\r\n message: \"Please verify that you are not a robot using Recaptcha!\"\r\n })\r\n return\r\n }\r\n\r\n // Move data into a FormData object\r\n const formData = new FormData()\r\n Object.entries(data).forEach(([key, value]) => {\r\n formData.append(key, value)\r\n })\r\n formData.set(\"registrationCertificate\", data.registrationCertificate[0], data.registrationCertificate[0].name)\r\n\r\n setIsLoading(true)\r\n let status\r\n try {\r\n const response = await axios.post(\r\n `/api/Users/RegisterRetailer?token=${data.recaptcha}`,\r\n formData,\r\n { headers: { \"content-type\": \"multipart/form-data\" } }\r\n )\r\n status = response.status\r\n } catch (exception) {\r\n status = exception?.response?.status\r\n }\r\n setIsLoading(false)\r\n\r\n switch (status) {\r\n case 200: {\r\n dispatch(setSnackbarMessage(Localization.yourApplicationHasBeenSent, \"success\"))\r\n return\r\n }\r\n case undefined: {\r\n console.error(\"Failed to send the request to register retailer.\")\r\n dispatch(setSnackbarMessage(\r\n `${Localization.couldNotConnectToTheServer}`,\r\n \"error\"\r\n ))\r\n return\r\n }\r\n case 401: {\r\n setError(\"recaptcha\", {\r\n type: \"manual\",\r\n message: \"Recaptcha returned an error whilst validating!\"\r\n })\r\n break\r\n }\r\n default: {\r\n setError(\"recaptcha\", {\r\n type: \"manual\",\r\n message: \"An error occured on the server!\"\r\n })\r\n break\r\n }\r\n }\r\n\r\n console.error(`Failed with the status of ${status} when trying to register retailer.`)\r\n setValue(\"recaptcha\", undefined)\r\n recaptchaRef.current.reset()\r\n dispatch(setSnackbarMessage(\r\n `${Localization.aProblemOccuredWhileProccessingYourApplication} \r\n ${Localization.pleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists}`,\r\n \"error\"\r\n ))\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {\r\n language === \"sv\"\r\n && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n )\r\n}\r\n\r\nconst RetailerInformation = () => (\r\n \r\n {Localization.toSellBroditProducts}\r\n \r\n {Localization.retailerApplicationText}\r\n \r\n \r\n)\r\n\r\nconst BusinessSection = ({ register, errors }) => {\r\n const [expanded, setExpanded] = React.useState(true)\r\n const hasErrors = (\r\n Boolean(errors.companyName)\r\n || Boolean(errors.organizationNumber)\r\n || Boolean(errors.website)\r\n )\r\n React.useEffect(() => {\r\n setExpanded(expandedValue => hasErrors || expandedValue)\r\n }, [hasErrors])\r\n const classes = useStyles()\r\n\r\n return (\r\n { setExpanded((expandedValue || hasErrors)) }}>\r\n }>\r\n \r\n \r\n {Localization.companyAdress}\r\n {hasErrors && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst PurchaceSection = ({ register, errors }) => {\r\n const [expanded, setExpanded] = React.useState(false)\r\n const hasErrors = (\r\n Boolean(errors.contactName)\r\n || Boolean(errors.contactPhone)\r\n || Boolean(errors.contactEmail)\r\n )\r\n React.useEffect(() => {\r\n setExpanded(expandedValue => hasErrors || expandedValue)\r\n }, [hasErrors])\r\n const classes = useStyles()\r\n\r\n return (\r\n { setExpanded((expandedValue || hasErrors)) }}>\r\n }>\r\n \r\n \r\n {Localization.purchase}\r\n {hasErrors && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst DeliveryAdress = ({ register, errors }) => {\r\n const [expanded, setExpanded] = React.useState(false)\r\n const hasErrors = (\r\n Boolean(errors.deliveryAddress)\r\n || Boolean(errors.deliveryPostalCode)\r\n || Boolean(errors.deliveryTown)\r\n )\r\n React.useEffect(() => {\r\n setExpanded(expandedValue => hasErrors || expandedValue)\r\n }, [hasErrors])\r\n const classes = useStyles()\r\n\r\n return (\r\n { setExpanded((expandedValue || hasErrors)) }}>\r\n }>\r\n \r\n \r\n {Localization.delivery}\r\n {hasErrors && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst InvoicingAdress = ({ register, errors }) => {\r\n const [expanded, setExpanded] = React.useState(false)\r\n const hasErrors = (\r\n Boolean(errors.billingAddress)\r\n || Boolean(errors.billingPostalCode)\r\n || Boolean(errors.billingTown)\r\n || Boolean(errors.billingEmail)\r\n )\r\n const classes = useStyles()\r\n\r\n React.useEffect(() => {\r\n setExpanded(expandedValue => hasErrors || expandedValue)\r\n }, [hasErrors])\r\n\r\n return (\r\n { setExpanded((expandedValue || hasErrors)) }}>\r\n }>\r\n \r\n \r\n {Localization.billingAddress}\r\n {hasErrors && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst ValidateAndRegisterSection = ({\r\n register, errors, watch, onChangeRecaptcha, onExpired, recaptchaRef, isLoading, recaptchaSiteKey\r\n}) => {\r\n const registrationCertificateWatch = watch(\"registrationCertificate\")\r\n const lang = useLanguage()\r\n const hasErrors = (\r\n Boolean(errors.agreement)\r\n || Boolean(errors.registrationCertificate)\r\n || Boolean(errors.recaptcha)\r\n )\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {Localization.validate}\r\n {hasErrors && }\r\n \r\n \r\n \r\n \r\n \r\n {Localization.companySignatory}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.attachUpToDateRegistrationCertificateFromBolagsverketAsAFile}\r\n \r\n \r\n \r\n {Localization.chooseAFile}\r\n \r\n \r\n \r\n {registrationCertificateWatch?.[0]?.name ?? Localization.noFileHasBeenSelected}\r\n \r\n \r\n \r\n \r\n \r\n value === true\r\n }\r\n )}\r\n />\r\n )}\r\n label={(\r\n \r\n {Localization.iHaveReadAndAgreeTo}\r\n {\" \"}\r\n \r\n {Localization.broditABsConditionsAndTermsOfSale}\r\n \r\n .\r\n \r\n )}\r\n />\r\n \r\n {Boolean(errors.agreement) && (\r\n \r\n {Localization.pleaseAcceptTheTermsAndConditionsAboveToContinue}\r\n \r\n )}\r\n \r\n \r\n {Boolean(errors.recaptcha) && {Localization.pleaseFillInThisCheckBox}}\r\n \r\n {Localization.sendApplication}\r\n \r\n {isLoading ? : }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default RegisterRetailer\r\n","/* eslint-disable react/no-children-prop */\r\n/* eslint-disable no-nested-ternary */\r\nimport { SearchDealer } from \"../..\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useGetDynamicPageMarkdownQuery } from \"../../../redux/services/contentApi\"\r\nimport RegisterRetailer from \"../../RegisterRetailer/RegisterRetailer\"\r\nimport StyledMarkdown from \"../../StyledMarkdown\"\r\nimport YoutubeVideo from \"../../YoutubeVideo/YoutubeVideo\"\r\nimport { Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst DynamicContent = ({ type, ...remainingProps }) => {\r\n const language = useLanguage()\r\n const {\r\n data: markdownText,\r\n isFetching\r\n } = useGetDynamicPageMarkdownQuery({ id: type, language: language })\r\n\r\n let dynamicContentElement\r\n switch (type) {\r\n case \"becomeRetailer\":\r\n dynamicContentElement = \r\n break\r\n case \"findRetailers\":\r\n dynamicContentElement = \r\n break\r\n case \"aboutVideo\":\r\n dynamicContentElement = \r\n break\r\n case \"howitworks\":\r\n dynamicContentElement = \r\n break\r\n default:\r\n dynamicContentElement = (\r\n markdownText\r\n ? \r\n : (\r\n isFetching\r\n ? {Localization.loading}\r\n : {Localization.noContentForTheSelectedLanguage}\r\n )\r\n )\r\n }\r\n\r\n return dynamicContentElement\r\n}\r\n\r\nexport default DynamicContent\r\n","import { setFavoriteProducts, setShouldSyncFavorites } from \"../favoriteSlice\"\r\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\"\r\nimport { batch } from \"react-redux\"\r\n\r\nexport const favoriteApi = createApi({\r\n reducerPath: \"favoriteApi\",\r\n baseQuery: fetchBaseQuery({ baseUrl: \"/api/favorite/\" }),\r\n endpoints: builder => ({\r\n\r\n getFavorite: builder.query({\r\n query: ({ authToken }) => `GetFromAuthToken?authToken=${authToken}`,\r\n // transformResponse: (response) => response?.response,\r\n\r\n async onQueryStarted({ _authToken }, { dispatch, queryFulfilled }) {\r\n // Request has started.\r\n try {\r\n const { data: favoriteFromServer } = await queryFulfilled\r\n // Request succeeded.\r\n // Batch prevents rerendering for each dispatch and\r\n // instead only rerenders once.\r\n batch(() => {\r\n dispatch(setFavoriteProducts(\r\n favoriteFromServer\r\n ))\r\n dispatch(setShouldSyncFavorites(false))\r\n })\r\n } catch (err) {\r\n // Request returned and error.\r\n }\r\n }\r\n }),\r\n\r\n updateFavorite: builder.mutation({\r\n query: ({ authToken, favorite }) => ({\r\n url: `UpdateFromAuthToken?authToken=${authToken}`,\r\n method: \"POST\",\r\n body: favorite\r\n })\r\n // transformResponse: (response) => response?.response,\r\n })\r\n })\r\n})\r\n\r\nexport const { useGetFavoriteQuery, useUpdateFavoriteMutation } = favoriteApi\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n display: \"inherit\",\r\n flexGrow: 1,\r\n justifyContent: \"center\"\r\n },\r\n swipeableTextMobileStepper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1\r\n },\r\n swiperBox: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"inherit\",\r\n alignItems: \"center\"\r\n },\r\n bannerBox: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n height: \"100%\",\r\n alignItems: \"flex-start\"\r\n },\r\n imageBox: {\r\n minHeight: 110,\r\n margin: 2\r\n },\r\n productImage: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n objectFit: \"contain\"\r\n },\r\n buttonRoot: {\r\n color: \"#2d2d2d\",\r\n minWidth: \"inherit\",\r\n \"&:hover\": {\r\n backgroundColor: \"inherit\"\r\n }\r\n },\r\n iconRoot: {\r\n borderRadius: \"50%\",\r\n padding: theme.spacing(1),\r\n \"&:hover\": {\r\n backgroundColor: \"#8f8f8f\",\r\n color: \"#fff\"\r\n }\r\n },\r\n navButton: {\r\n alignItems: \"flex-end\",\r\n maxWidth: 48\r\n }\r\n}))\r\n","import useStyles from \"../styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport KeyboardArrowLeftIcon from \"@mui/icons-material/KeyboardArrowLeft\"\r\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\"\r\n\r\nconst NavButtonIcon = ({ right, style }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n {\r\n right\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default NavButtonIcon\r\n","import NavButtonIcon from \"./NavButtonIcon\"\r\nimport useStyles from \"../styles\"\r\nimport { Button } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst NavButton = ({\r\n onClick, minHeight, right, iconStyle, style\r\n}) => {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default NavButton\r\n","import SwipeableMobileStepper from \"../SwipableView\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport React from \"react\"\r\nimport Button from \"@mui/material/Button\"\r\nimport Dialog from \"@mui/material/Dialog\"\r\nimport DialogActions from \"@mui/material/DialogActions\"\r\nimport DialogContent from \"@mui/material/DialogContent\"\r\n\r\nexport default function ImageDialog({\r\n open, index, handleClose = f => f, product\r\n}) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import useStyles from \"./styles\"\r\nimport NavButton from \"./components/Navbutton\"\r\nimport ImageDialog from \"../ImageDialog/index\"\r\nimport Banner from \"../Products/Banner/Banner\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport theme from \"../../theme\"\r\nimport { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport SwipeableViews from \"react-swipeable-views\"\r\nimport { Box, useMediaQuery } from \"@mui/material\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nfunction SwipeableTextMobileStepper({\r\n product = {},\r\n isDialog,\r\n dialogIndex,\r\n listView, grid,\r\n productPage,\r\n onSelect,\r\n bannerArea,\r\n phasingOut,\r\n modTek,\r\n disableSwipe = false\r\n}) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const { images, originalId } = product\r\n const [activeStep, setActiveStep] = useState(isDialog ? dialogIndex : 0)\r\n const [showImageDialog, setShowImageDialog] = useState(false)\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n\r\n useEffect(() => {\r\n if (!isDialog) { setActiveStep(0) }\r\n }, [product])\r\n\r\n const getImages = imgArr => {\r\n if (disableSwipe) return [`${product.originalId}.jpg`]\r\n\r\n const foundArr = imgArr ? imgArr.filter(x => {\r\n const regex = /^[0-9]*-([a-z]|[0-9]).[a-z]*$|^[0-9]*.[a-z]*$/\r\n return regex.exec(x)\r\n }) : []\r\n\r\n if (foundArr.length > 0) {\r\n const last = foundArr[foundArr.length - 1]\r\n foundArr.splice(foundArr.length - 1, 1)\r\n const returnArr = foundArr.sort()\r\n returnArr.splice(0, 0, last)\r\n\r\n const instructional = returnArr.filter(x => {\r\n const instructionRegex = /^[0-9]*-[0-9].[a-z]*$/\r\n return instructionRegex.exec(x)\r\n })\r\n\r\n // Put instructional stuff in the end.\r\n const main = returnArr.filter(x => !instructional.includes(x))\r\n return [...main, ...instructional.sort()]\r\n }\r\n return [`${product.originalId}.jpg`] // Return default image\r\n }\r\n\r\n const imagesReOrdered = getImages(images)\r\n const maxSteps = imagesReOrdered.length\r\n const buttonMinHeight = (!listView && !isSmall) ? 455 : \"100%\"\r\n\r\n const getSizeParam = () => {\r\n if (productPage) return \"\"\r\n if (modTek) return \"\"\r\n if (listView) {\r\n if (grid) {\r\n return \"w450/\"\r\n }\r\n return \"w120/\"\r\n }\r\n return \"\"\r\n }\r\n\r\n const getMaxHeight = () => {\r\n if (isDialog) return \"none\"\r\n if (productPage) return 480\r\n return 250\r\n }\r\n\r\n const handleNext = () => {\r\n if (activeStep + 1 > maxSteps - 1) {\r\n setActiveStep(0)\r\n } else {\r\n setActiveStep(prevActiveStep => prevActiveStep + 1)\r\n }\r\n }\r\n\r\n const handleBack = () => {\r\n if (activeStep - 1 < 0) {\r\n setActiveStep(maxSteps - 1)\r\n } else {\r\n setActiveStep(prevActiveStep => prevActiveStep - 1)\r\n }\r\n }\r\n\r\n const handleStepChange = step => {\r\n setActiveStep(step)\r\n }\r\n\r\n const openImageDialog = () => {\r\n setShowImageDialog(true)\r\n }\r\n\r\n const closeImageDialog = () => {\r\n setShowImageDialog(false)\r\n }\r\n\r\n const onLinkClick = () => {\r\n if (productPage || !onSelect) return\r\n onSelect(product.id)\r\n }\r\n\r\n return (\r\n \r\n {!modTek && (\r\n \r\n {!isDialog\r\n && (\r\n <>\r\n {product.isNew && }\r\n {product.comingSoon && }\r\n {phasingOut && }\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {\r\n (maxSteps > 1 && !modTek)\r\n && (\r\n \r\n )\r\n }\r\n \r\n {/* eslint-disable-next-line max-len */}\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */}\r\n { if (!isDialog) openImageDialog() }}\r\n >\r\n \r\n {imagesReOrdered.map((image, index) => (\r\n \r\n \r\n {/* eslint-disable-next-line max-len */}\r\n \r\n ))}\r\n \r\n \r\n \r\n {\r\n (maxSteps > 1 && !modTek)\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SwipeableTextMobileStepper\r\n","import { createAsyncThunk } from \"@reduxjs/toolkit\"\r\nimport axios from \"axios\"\r\n\r\nconst fetchCustomerOrders = async (authToken, offset, limit) => {\r\n const a = await axios.get(\r\n `/api/ProductInfo/GetCustomerOrders?authToken=${authToken}&offset=${offset}&limit=${limit}`\r\n ) // offset and limit not used in backend, only last 20 is displayed\r\n return a.data\r\n}\r\n\r\n// Fetch customer orders, but do not save them in a adapter.\r\nexport const requestCustomerOrders = createAsyncThunk(\r\n \"customerOrders/fetch\",\r\n async (params, { rejectWithValue }) => {\r\n try {\r\n const { authToken, offset, limit } = params\r\n return await fetchCustomerOrders(authToken, offset, limit)\r\n } catch (err) {\r\n return rejectWithValue(\"Could not fetch customer order.\")\r\n }\r\n }\r\n)\r\n\r\nconst fetchCustomerOrder = async (authToken, id) => {\r\n const a = await axios.get(\r\n `/api/ProductInfo/GetCustomerOrder?orderNumber=${id}&authToken=${authToken}`\r\n )\r\n return a.data\r\n}\r\n\r\nexport const requestCustomerOrder = createAsyncThunk(\r\n \"customerOrders/fetchById\",\r\n async (params, { rejectWithValue }) => {\r\n try {\r\n const { authToken, id } = params\r\n return await fetchCustomerOrder(authToken, id)\r\n } catch (err) {\r\n return rejectWithValue(\"Could not fetch customer orders.\")\r\n }\r\n }\r\n)\r\n","import { createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nexport const materialAdapter = createEntityAdapter({\r\n selectId: material => material.id,\r\n sortComparer: (a, b) => a.id.localeCompare(b.id)\r\n});\r\n\r\nexport const materialSelectors = materialAdapter.getSelectors(state => state.material)\r\n\r\nexport const { selectById, selectAll } = materialSelectors;\r\n","// Need to use the React-specific entry point to import createApi\r\nimport { addPrices } from \"../priceSlice\"\r\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\"\r\n\r\nexport const priceApi = createApi({\r\n reducerPath: \"priceApi\",\r\n baseQuery: fetchBaseQuery({ baseUrl: \"/api/ProductInfo/\" }),\r\n endpoints: builder => ({\r\n getPrices: builder.query({\r\n query: ({ authToken, ids }) => ({\r\n url: \"GetPrices\",\r\n method: \"POST\",\r\n body: {\r\n authToken,\r\n ids\r\n }\r\n }),\r\n\r\n async onQueryStarted({ _authToken, _ids }, { dispatch, queryFulfilled }) {\r\n try {\r\n const { data, meta } = await queryFulfilled\r\n\r\n if (meta.response.status === 200) {\r\n dispatch(addPrices(data))\r\n } else {\r\n console.warn(`Unexpected status code: ${meta.response.status}`)\r\n }\r\n } catch (err) {\r\n if (err?.error?.status) {\r\n console.error(`Request failed with status ${err.error.status}`)\r\n } else {\r\n console.error(\"Error fetching prices:\", err)\r\n }\r\n }\r\n }\r\n })\r\n })\r\n})\r\n\r\nexport const { useGetPricesQuery } = priceApi\r\n","import { extractSearchQueryFromUrlSearchParams } from \"../helper/searchHelper\";\r\nimport { useMemo } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nexport const useUrlQuery = () => {\r\n const { search } = useLocation();\r\n return useMemo(() => new URLSearchParams(search), [search]);\r\n}\r\n\r\nexport const useUrlSearchQuery = urlSearchParams => useMemo(\r\n () => extractSearchQueryFromUrlSearchParams(urlSearchParams),\r\n [urlSearchParams]\r\n)\r\n","import { createAction } from \"@reduxjs/toolkit\";\r\n\r\nexport const apiCallBegan = createAction(\"api/callBegan\");\r\nexport const apiCallSucess = createAction(\"api/callSuccess\");\r\nexport const apiCallFailed = createAction(\"api/callFailed\");\r\n","import { filterFaultyValues } from \"../lib/helper/searchHelper\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst search2Slice = createSlice({\r\n name: \"search2\",\r\n reducers: {\r\n /**\r\n * Creates a new search query entry with the name of \"type\" containing\r\n * the value of \"value\".\r\n * @param {*} state The current state (using \"Immer\").\r\n * @param {object} payload An object containing two keys { type, value }.\r\n * payload.type {string} The name of the entry to create/override.\r\n * payload.value {object} The value of the search query entry.\r\n * Note: The payload.value object must follow the standard, that for each\r\n * key the value must be represented as an array, for example:\r\n * { customKeyword: [\"value1\", \"value2\", ...], anotherCustomKeyword: [\"another value\"], thirdCustomKeyword: [], ...}\r\n * Keys with faulty values, for example empty arrays and falsy values\r\n * will not be added.\r\n */\r\n setSearchQuery2: (state, { payload }) => {\r\n const { type, value, clearFilter } = payload\r\n if (clearFilter) state.searchQueries = {}\r\n state.searchQueries[type] = filterFaultyValues(value)\r\n },\r\n\r\n /**\r\n * Overrides a part of a search query entry with the name of \"type\" and\r\n * spreads in the value of \"value\".\r\n * @param {*} state The current state (using \"Immer\").\r\n * @param {object} payload An object containing two keys { type, value }.\r\n * payload.type {string} The name of the entry to create/update.\r\n * payload.value {object} The value you want to spread into the\r\n * search querys existing value.\r\n * Note: The payload.value object must follow the standard, that for each\r\n * key the value must be represented as an array, for example:\r\n * { customKeyword: [\"value1\", \"value2\", ...], anotherCustomKeyword: [\"another value\"], thirdCustomKeyword: [], ...}\r\n * Keys with faulty values, for example empty arrays and falsy values\r\n * will not be added.\r\n */\r\n updateSearchQuery2: (state, { payload }) => {\r\n const { type, value } = payload\r\n\r\n const newValue = {\r\n ...state.searchQueries[type],\r\n ...value\r\n }\r\n\r\n state.searchQueries[type] = filterFaultyValues(newValue)\r\n },\r\n\r\n /**\r\n * Removes all filters in the search query.\r\n * @param {*} state The current state (using \"Immer\").\r\n * @param {object} payload (Optional) An object containing the key { exclude }.\r\n * payload.exclude {Array} The search query keys specified in\r\n * this list will not be removed.\r\n */\r\n clearSearchQuery2: (state, { payload }) => {\r\n if (payload?.exclude) {\r\n // Removes all keys except the excluded keys\r\n const excludedSearchQueries = Object.entries(state.searchQueries)\r\n .reduce(\r\n (prev, [key, value]) => (\r\n payload.exclude.includes(key)\r\n ? { ...prev, [key]: value }\r\n : prev\r\n ),\r\n {}\r\n )\r\n\r\n state.searchQueries = excludedSearchQueries\r\n } else {\r\n state.searchQueries = {}\r\n }\r\n }\r\n },\r\n\r\n initialState: {\r\n /**\r\n * Search query entry inside the searchQueries object should always follow\r\n * the standard of \"componentNameResponsibleForThisQuery: { customKeyword: [], anotherCustomKeyword: [], ...}\r\n */\r\n searchQueries: {\r\n // Example structure:\r\n // vehicleSearchbar: { brands: [], models: [], years: [] },\r\n // deviceSearchbar: { brands: [], models: [] },\r\n // filterProducts: { brands: [], models: [], years: [], collections: [] },\r\n }\r\n }\r\n})\r\n\r\nexport const { setSearchQuery2, updateSearchQuery2, clearSearchQuery2 } = search2Slice.actions\r\nexport default search2Slice.reducer\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n menuItem: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n // backgroundColor: '#fff',\r\n \"&.active\": {\r\n \"& .MuiListItemIcon-root\": {\r\n color: \"#fff\"\r\n }\r\n },\r\n \"&:hover\": {\r\n backgroundColor: \"#f3f3f3\"\r\n }\r\n },\r\n menuItemIcon: {\r\n color: \"#97c05c\"\r\n },\r\n button: {\r\n justifyContent: \"flex-start\",\r\n color: \"#404040\"\r\n },\r\n icon: {\r\n display: \"inline-block\",\r\n transform: \"rotate(-90deg)\"\r\n },\r\n openTransform: {\r\n transform: \"rotate(-90deg)\"\r\n },\r\n categoryArea: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"flex-end\",\r\n gap: \"8px\",\r\n width: \"100%\",\r\n [theme.breakpoints.up(tabletBreakpoint)]: {\r\n justifyContent: \"flex-start\"\r\n }\r\n },\r\n catalog: {\r\n fontFamily: \"Arial\",\r\n fontWeight: \"400\",\r\n fontSize: \"14px\"\r\n },\r\n bold: {\r\n fontWeight: \"bold!important\"\r\n },\r\n hidden: {\r\n visibility: \"hidden\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/arrow-next.9146cef8.svg\";","import React, { forwardRef } from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { ListItem } from \"@mui/material\"\r\n\r\nconst createNavLinkComponent = link => forwardRef((props, ref) => )\r\n\r\nconst AppMenuItemComponent = ({ className, link, children }) => {\r\n if (!link || typeof link !== \"string\") {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n const NavLinkComponent = createNavLinkComponent(link)\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default AppMenuItemComponent\r\n","import useStyles from \"./styles\"\r\nimport ArrowNext from \"./assets/arrow-next.svg\"\r\nimport AppMenuItemComponent from \"../AppMenuItemComponent/AppMenuItemComponent\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport {\r\n Box, Typography\r\n} from \"@mui/material\"\r\nimport React, { useState, useEffect } from \"react\"\r\n\r\n// varför går det inte att skicka props id, namn och collections som ett enda objekt? det blir undefined av någon okänd anledning i vissa fall på desktop\r\nconst AppMenuItem = ({\r\n id, name, collections, onItemClick, selectCollection, level, history\r\n}) => {\r\n const collection = { id, name, collections }\r\n const classes = useStyles()\r\n const isExpandable = collections && collections.length > 0\r\n const [open, setOpen] = useState(false)\r\n const language = useLanguage()\r\n const handleClick = () => {\r\n setOpen(true)\r\n selectCollection(collection.id, level)\r\n }\r\n\r\n useEffect(() => {\r\n if (!history?.some(c => c.id === id)) setOpen(false)\r\n }, [history])\r\n\r\n const MenuItemRoot = (\r\n onItemClick(id) : () => handleClick()} id={id}>\r\n \r\n
\r\n {name}\r\n {isExpandable && \"Arrow}\r\n {/* \"Arrow */}\r\n
\r\n \r\n
\r\n )\r\n\r\n return MenuItemRoot\r\n}\r\n\r\nexport default AppMenuItem\r\n","export default __webpack_public_path__ + \"static/media/arrow-back.fe100d52.svg\";","export default __webpack_public_path__ + \"static/media/CustomizedSolutions2.eb952aad.jpg\";","import AppMenuItem from \"./AppMenuItem/AppMenuItem\"\r\nimport useStyles from \"./styles\"\r\nimport ArrowBack from \"./assets/arrow-back.svg\"\r\nimport { midSizeBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport theme from \"../../theme\"\r\nimport img from \"../../assets/CustomizedSolutions2.jpg\"\r\nimport {\r\n Box, List, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React, { useEffect, useState, useRef } from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\n// https://medium.com/@modularcoder/reactjs-multi-level-sidebar-navigation-menu-with-typescrip-materialui-251943c12dda\r\n// TODO: Refactorera! Fett oklart vad som går fel men allt som ser konstigt ut är här enligt principen \"dont fix what aint broken\" och it aint broken :/\r\n// https://medium.com/@modularcoder/reactjs-multi-level-sidebar-navigation-menu-with-typescrip-materialui-251943c12dda\r\nconst Menu2 = ({ onItemClick, onBackToParent = null, onClose }) => {\r\n const menuRef = useRef(null)\r\n const classes = useStyles()\r\n const [collectionStructure, setCollectionStructure] = useState(null)\r\n const [loading, setLoading] = useState(false)\r\n const lang = useLanguage()\r\n const [currentCollection, setCurrentCollection] = useState({ collections: [] })\r\n const [history, setHistory] = useState([])\r\n const isDesktop = useMediaQuery(() => theme.breakpoints.up(tabletBreakpoint))\r\n const small = useMediaQuery(() => theme.breakpoints.down(tabletBreakpoint))\r\n const midSize = useMediaQuery(() => theme.breakpoints.down(midSizeBreakpoint))\r\n\r\n const addParentToCollections = (collections, parent = null) => {\r\n if (!collections || collections.length === 0) {\r\n return []\r\n }\r\n\r\n return collections.map(collection => ({\r\n ...collection,\r\n parent,\r\n collections: addParentToCollections(collection.collections, collection)\r\n }))\r\n }\r\n\r\n const fetchCollectionStructure = async () => {\r\n setLoading(true)\r\n const response = await fetch(`/api/Collections/GetCollectionHierarchy?language=${lang}`)\r\n setLoading(false)\r\n return response.json()\r\n }\r\n\r\n const findCollectionById = (collection, id) => {\r\n if (!collection) {\r\n return null\r\n }\r\n\r\n if (collection.id === id) {\r\n return collection\r\n }\r\n\r\n if (collection.collections && collection.collections.length > 0) {\r\n for (const subCollection of collection.collections) {\r\n const result = findCollectionById(subCollection, id)\r\n if (result) {\r\n return result\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n const selectCollection = (collectionId, level) => {\r\n const selectedCollection = findCollectionById(collectionStructure, collectionId)\r\n if (!history.some(col => col.id === selectedCollection.id)) {\r\n setHistory(prevState => [...prevState.slice(0, level + 1), selectedCollection])\r\n }\r\n setCurrentCollection(selectedCollection)\r\n }\r\n\r\n useEffect(() => {\r\n fetchCollectionStructure().then(result => {\r\n const structuredResult = addParentToCollections([result])[0]\r\n setHistory([structuredResult])\r\n setCollectionStructure(structuredResult)\r\n setCurrentCollection(structuredResult)\r\n })\r\n }, [lang])\r\n\r\n const handleBackAction = () => {\r\n if (onBackToParent !== null && currentCollection.parent === null) {\r\n onBackToParent()\r\n return\r\n }\r\n selectCollection(currentCollection.parent.id)\r\n }\r\n\r\n useEffect(() => {\r\n const handleClickOutside = event => {\r\n if (menuRef.current\r\n && !menuRef.current.contains(event.target)\r\n && event.target.id !== \"productButtonDesktop\"\r\n && !event.target.classList.contains(\"MuiAutocomplete-option\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-listbox\")) {\r\n onClose()\r\n }\r\n }\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside)\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n }, [])\r\n\r\n const mobileLayout = (\r\n currentCollection && collectionStructure\r\n ? (\r\n <>\r\n \r\n

{currentCollection.name}

\r\n {\r\n (loading && collectionStructure.collections.length <= 0)\r\n && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )\r\n }\r\n \r\n {\r\n currentCollection.collections.map(collection => {\r\n if (collection === undefined) return null\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n )\r\n : \"\"\r\n )\r\n\r\n const desktopLayout = (\r\n currentCollection && collectionStructure ? (\r\n \r\n {loading && collectionStructure.collections.length <= 0 && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )}\r\n {!midSize && (\r\n \r\n \"\"\r\n \r\n {Localization.homeSectionCustomSolutionsTitel}\r\n \r\n \r\n {Localization.megaMenu}\r\n \r\n \r\n {Localization.readMore}\r\n
\r\n \r\n )}\r\n <>\r\n {\r\n (loading && collectionStructure.collections.length <= 0)\r\n && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )\r\n }\r\n \r\n {history.map((col, i) => (\r\n \r\n {col.collections.map(collection => {\r\n if (collection === undefined) return null\r\n return (\r\n selectCollection(id, depth)}\r\n level={i}\r\n indent={0}\r\n onItemClick={onItemClick}\r\n history={history}\r\n />\r\n )\r\n })}\r\n \r\n ))}\r\n \r\n \r\n \r\n ) : \"\"\r\n )\r\n return isDesktop ? desktopLayout : mobileLayout\r\n}\r\n\r\nexport default Menu2\r\n","import React from \"react\"\r\nimport ReactMarkdown from \"react-markdown\"\r\nimport rehypeRaw from \"rehype-raw\"\r\nimport remarkGfm from \"remark-gfm\"\r\nimport { Box, Typography } from \"@mui/material\"\r\n\r\nconst components = {\r\n h1: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h2: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h3: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h4: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h5: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n p: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n img: ({ _node, ...elementProps }) => (\r\n \r\n \"\"\r\n \r\n )\r\n}\r\n\r\nconst StyledMarkdown = ({ style, ...remainingProps }) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default StyledMarkdown\r\n","import { createTheme } from \"@mui/material\"\r\nimport { grey } from \"@mui/material/colors\"\r\n\r\nexport default createTheme({\r\n props: {\r\n MuiButtonBase: {\r\n disableRipple: true\r\n }\r\n },\r\n palette: {\r\n primary: {\r\n main: \"#F09057\"\r\n },\r\n secondary: {\r\n main: grey[500]\r\n },\r\n contrastThreshold: 3,\r\n background: {\r\n default: \"#fafafa\"\r\n }\r\n },\r\n typography: {\r\n body2: {\r\n fontSize: \"1rem\"\r\n }\r\n },\r\n components: {\r\n MuiInputBase: {\r\n styleOverrides: {\r\n root: {\r\n \"&.Mui-focused\": {\r\n borderColor: \"#6C6C6C\"\r\n }\r\n }\r\n }\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: {\r\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\r\n border: \"1px solid #2d2d2d\"\r\n }\r\n }\r\n }\r\n },\r\n MuiSelect: {\r\n styleOverrides: {\r\n select: {\r\n \"&.MuiSelect-standard\": {\r\n borderBottom: \"1px solid #2d2d2d\"\r\n }\r\n }\r\n }\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n color: \"#2d2d2d\",\r\n borderColor: \"#2d2d2d\"\r\n }\r\n }\r\n },\r\n MuiLink: {\r\n styleOverrides: {\r\n root: {\r\n color: \"#2d2d2d\",\r\n borderColor: \"#2d2d2d\",\r\n textDecorationColor: \"#2d2d2d\",\r\n fontWeight: 600\r\n }\r\n }\r\n }\r\n }\r\n})\r\n","import { priceAdapter } from \"./adapter/priceAdapter\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst slice = createSlice({\r\n name: \"price\",\r\n initialState: priceAdapter.getInitialState({\r\n errors: []\r\n }),\r\n reducers: {\r\n clearAll: state => {\r\n priceAdapter.removeAll(state);\r\n },\r\n clearErrors: state => ({\r\n ...state,\r\n errors: []\r\n }),\r\n add: (state, action) => {\r\n priceAdapter.addMany(state, action.payload);\r\n }\r\n }\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\nconst { clearAll, clearErrors, add } = slice.actions;\r\n\r\nexport const clearPrices = () => dispatch => dispatch(\r\n clearAll()\r\n)\r\n\r\nexport const clearPriceErrors = () => dispatch => dispatch(\r\n clearErrors()\r\n)\r\n\r\nexport const addPrices = prices => dispatch => dispatch(\r\n add(prices)\r\n)\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n \"@keyframes rotate\": {\r\n \"0%\": {\r\n transform: \"rotate(0deg)\"\r\n },\r\n \"100%\": {\r\n transform: \"rotate(180deg)\"\r\n }\r\n },\r\n working: {\r\n animation: `$rotate 1s ${theme.transitions.easing.easeInOut} infinite`\r\n },\r\n buttonRoot: {\r\n minWidth: \"auto\"\r\n },\r\n outlinedSmall: {\r\n padding: \"1px 9px\"\r\n },\r\n qtyField: {\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: 5,\r\n paddingBottom: 5\r\n }\r\n },\r\n input: {\r\n fontSize: \"1rem!important\"\r\n },\r\n textField: {\r\n height: \"31px\",\r\n \"& .MuiInput-root\": {\r\n paddingBottom: \"0px!important\"\r\n },\r\n \"& .MuiOutlinedInput-inputAdornedEnd\": {\r\n paddingRight: \"0px!important\"\r\n },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: \"0px!important\",\r\n paddingBottom: \"0px!important\"\r\n },\r\n \"& .MuiOutlinedInput-input\": {\r\n padding: \"0px!important\"\r\n },\r\n \"& .MuiInputBase-inputMarginDense\": {\r\n paddingTop: \"0px!important\"\r\n },\r\n \"& .MuiInputBase-input\": {\r\n padding: \"0px!important\",\r\n paddingLeft: \"4px!important\",\r\n textAlign: \"center\",\r\n height: \"29px\",\r\n width: 70\r\n }\r\n },\r\n quickshopWrapper: {\r\n display: \"flex\",\r\n position: \"fixed\",\r\n bottom: \"20px\",\r\n left: \"20px\",\r\n right: \"20px\",\r\n height: \"40px\",\r\n borderRadius: \"20px 20px 20px 20px\",\r\n backgroundColor: \"transparent\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n overflow: \"hidden\"\r\n },\r\n hide: {\r\n visibility: \"hidden\"\r\n },\r\n quickshopButton: {\r\n position: \"absolute\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n width: \"40px\",\r\n height: \"40px\",\r\n backgroundColor: \"#F09057\",\r\n justifySelf: \"flex-end\",\r\n borderRadius: \"50%\",\r\n border: 0,\r\n cursor: \"pointer\",\r\n transition: \"0.1s all ease-in\"\r\n },\r\n quickshopContent: {\r\n fontFamily: \"rubik\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n width: 0,\r\n backgroundColor: \"#F09057\",\r\n transition: \"0.2s all ease-out\",\r\n borderRadius: \"20px\",\r\n overflow: \"hidden\",\r\n paddingLeft: \"20px\",\r\n gap: \"5px\",\r\n maxWidth: \"300px\"\r\n },\r\n open: {\r\n width: \"100%\",\r\n paddingRight: \"40px\"\r\n },\r\n roundButton: {\r\n fontFamily: \"rubik\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n appearance: \"none\",\r\n color: \"white\",\r\n borderRadius: \"50%\",\r\n fontSize: \"16px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n backgroundColor: \"transparent\",\r\n border: 0,\r\n fontWeight: 700,\r\n cursor: \"pointer\",\r\n \"&:disabled\": {\r\n opacity: 0.8,\r\n cursor: \"auto\"\r\n }\r\n },\r\n quickshopInput: {\r\n flex: \"1 1 auto\",\r\n fontFamily: \"rubik\",\r\n fontSize: \"16px\",\r\n border: 0,\r\n padding: \"4px\",\r\n borderRadius: \"2px\",\r\n width: 0,\r\n \"&::placeholder\": {\r\n color: \"#2d2d2d\"\r\n },\r\n \"&::-webkit-outer-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&::-webkit-inner-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.8\r\n }\r\n },\r\n quantityInput: {\r\n fontFamily: \"rubik\",\r\n fontSize: \"16px\",\r\n width: \"20px\",\r\n textAlign: \"center\",\r\n padding: \"4px\",\r\n borderRadius: \"2px\",\r\n border: 0,\r\n appearance: \"none\",\r\n \"&::-webkit-outer-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&::-webkit-inner-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.8\r\n }\r\n },\r\n submitButton: {\r\n display: \"flex\",\r\n fontFamily: \"rubik\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"white\",\r\n border: 0,\r\n borderRadius: \"5px\",\r\n color: \"#2d2d2d\",\r\n cursor: \"pointer\",\r\n padding: \"5px\",\r\n \"&:disabled\": {\r\n opacity: 0.8,\r\n cursor: \"auto\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { addToCart } from \"../../redux/cartSlice\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { checkMonitorArticles } from \"../../lib/helper/userHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Button, TextField, Tooltip } from \"@mui/material\"\r\nimport React, { useEffect, useState, useRef } from \"react\"\r\n\r\nconst SpeedOrder = ({ articleNumber }) => {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const [loading, setLoading] = useState(false)\r\n const lang = useLanguage()\r\n const ref = useRef()\r\n\r\n const defaultValues = {\r\n articleNumber: null,\r\n quantity: 1\r\n }\r\n\r\n const {\r\n register, setValue, handleSubmit, watch\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n // First render\r\n useEffect(() => {\r\n setValue(\"articleNumber\", articleNumber)\r\n }, [])\r\n\r\n // Handle a new search -> component is not mounted; but prop has changed.\r\n useEffect(() => {\r\n setValue(\"articleNumber\", articleNumber)\r\n }, [articleNumber])\r\n\r\n const parse = i => parseInt(i, 10)\r\n\r\n const onSubmit = data => {\r\n checkMonitorArticles(lang, [data.articleNumber], result => {\r\n if (!result.includes(data.articleNumber) && data.quantity > 0) {\r\n const q = parse(data.quantity)\r\n dispatch(addToCart(data.articleNumber, q))\r\n dispatch(setSnackbarMessage(`${Localization.itemNumber} ${data.articleNumber} ${Localization.hasBeenAddedToCart}`, \"success\"))\r\n } else if (data.quantity === 0) {\r\n dispatch(setSnackbarMessage(Localization.articleCouldNotBeAddedQuantityZero, \"error\"))\r\n } else {\r\n dispatch(setSnackbarMessage(`${Localization.itemNumber} ${data.articleNumber} ${Localization.couldNotBePlacedInCart}`, \"error\"))\r\n }\r\n }, setLoading)\r\n\r\n ref.current?.focus()\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {Localization.addToCart}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SpeedOrder\r\n","export default __webpack_public_path__ + \"static/media/customizedSolutions.0f16880e.png\";","/* eslint-disable import/prefer-default-export */\r\nimport LocalizedStrings from \"react-localization\"\r\n\r\nexport const strings = new LocalizedStrings({\r\n en: {\r\n onlyOnlineShops: \"See only online shops\",\r\n findLocalRetailer: \"Find your local retailer\",\r\n viaOurDistributors: \"Brodit products are available via our distributors.\",\r\n pdfFiles: \"PDF-files\",\r\n compatibleProducts: \"Compatible models\",\r\n back: \"Go back\",\r\n showSearch: \"Show search area\",\r\n hideSearch: \"Hide search area\",\r\n tabInformation: \"Information\",\r\n moreInformation: \"More information\",\r\n tabSpecification: \"Specification\",\r\n tabCompability: \"Fits for\",\r\n tabInstructions: \"Instructions\",\r\n tabRelatedProducts: \"Accessories\",\r\n tabRelatedFiles: \"Documents\",\r\n noRelatedFiles: \"There are no documents for this product\",\r\n noAccessories: \"There are no accessories for this product.\",\r\n thereAreNoVideosForThisProduct: \"There are no videos for this product.\",\r\n itemNumber: \"Item no\",\r\n loadingMaterial: \"Loading material\",\r\n features: \"Features\",\r\n fasteners: \"Fasteners\",\r\n compabilities: \"Fits the following models\",\r\n thisProductIsNotModelSpecific: \"This product is not model specific\",\r\n loadingCompabilities: \"Loading compabilities\",\r\n loadingProperties: \"Loading properties\",\r\n properties: \"Properties\",\r\n propertiesNoneExist: \"No properties apply to this product.\",\r\n instructions: \"Instructions for\",\r\n chargingSpecification: \"Charging specifications\",\r\n error: \"Error\",\r\n unknownErrorCreatingOrder: \"Unknown error creating order.\",\r\n showMore: \"Show more\",\r\n showLess: \"Show less\",\r\n noMaterialsAssigned: \"No features are assigned to this product.\",\r\n comingSoon: \"Coming soon\",\r\n loadingProduct: \"Loading product\",\r\n createLeaflet: \"Create leaflet\",\r\n print: \"Print\",\r\n compare: \"Compare\",\r\n isComparing: \"is being compared\",\r\n share: \"Share\",\r\n loading: \"Loading\",\r\n image: \"Image\",\r\n addToCart: \"Add to cart\",\r\n eanNumber: \"EAN-number\",\r\n productInformation: \"Product information\",\r\n addToFavorites: \"Add to favorites\",\r\n removeFromFavorites: \"Remove from favorites\",\r\n yourFavorites: \"Favorites\",\r\n newProduct: \"New product\",\r\n pickedByPro: \"Picked By Pro\",\r\n newProductsForDevices: \"New products for devices\",\r\n newProductsForVehicles: \"New products for vehicles\",\r\n more: \"More\",\r\n moreSmall: \"...more\",\r\n close: \"Close\",\r\n seeAll: \"Show all\",\r\n hits: \"hits\",\r\n toggleLanguage: \"Toggle language\",\r\n user: \"User\",\r\n cart: \"Cart\",\r\n toggleView: \"Toggle view\",\r\n logIn: \"Sign in\",\r\n email: \"E-mail\",\r\n password: \"Password\",\r\n repeatPassword: \"Repeat password\",\r\n changePassword: \"Change password\",\r\n forgotPassword: \"Forgot password\",\r\n passwordsMustMatch: \"The passwords must match\",\r\n forgotPasswordNotification: \"A mail for resetting the password has been sent to the given email if it exist in our system. The link is vaild for 30min.\",\r\n checkYourLoginDetails: \"Check your login details and try again.\",\r\n product: \"Product\",\r\n theProduct: \"The product\",\r\n hasBeenAddedToCart: \"has been added to the cart.\",\r\n addressDetails: \"Address details\",\r\n confirmation: \"Confirmation\",\r\n yourCart: \"Your cart\",\r\n checkOrderDetails: \"Please check your order carefully to make sure everything is correct.\",\r\n summary: \"Summary\",\r\n numberOfOrderLines: \"Number of order lines\",\r\n totalQuantity: \"Total quantity\",\r\n total: \"Total\",\r\n emptyCart: \"Empty cart\",\r\n addNote: \"Add note\",\r\n note: \"Note\",\r\n quantity: \"Order qty\",\r\n qty: \"Qty\",\r\n price: \"Price\",\r\n backToShop: \"Back to shop\",\r\n backToCart: \"Back to cart\",\r\n toCheckout: \"To checkout\",\r\n submitOrder: \"Submit order\",\r\n myDetails: \"My details\",\r\n customerNumber: \"Customer number:\",\r\n name: \"Name:\",\r\n messageToBrodit: \"Message to Brodit\",\r\n purchaseOrder: \"Purchase order | Marking\",\r\n orderPlacedBy: \"Order placed by | Reference\",\r\n emailForOrderConfirmation: \"E-mail (for order confirmation)\",\r\n standardShippingAddress: \"Standard shipping address\",\r\n billingAddress: \"Billing address\",\r\n orderConfirmation: \"Order confirmation\",\r\n thankYouForOrder: \"Thank you for ordering from Brodit!\",\r\n orderIsProcessing: \"Your order is now being processed. You will receive a confirmation via e-mail soon.\",\r\n orderNumber: \"Order number\",\r\n orderDate: \"Order date\",\r\n orderEmail: \"Order e-mail\",\r\n shippingAddress: \"Shipping address\",\r\n reference: \"Reference\", // Kanske inte nödvändig, ett datafält egentligen\r\n shop: \"Shop\",\r\n shopViaReseller: \"You can buy Brodit's products via reseller\",\r\n findReseller: \"Find a reseller\",\r\n becomeReseller: \"Become a distributor\",\r\n new: \"New\",\r\n news: \"News\",\r\n showMoreNews: \"Older news\",\r\n couldNotFindTheSelectedNewsArticle: \"Could not find the selected news article\",\r\n newHolders: \"New Holders\",\r\n newProclip: \"New ProClip\",\r\n newsLetter: \"Newsletter\",\r\n aboutBrodit: \"About Brodit\",\r\n broditsStory: \"Brodit's story\",\r\n broditsMovie: \"Brodit's movie\",\r\n cookies: \"Cookies\",\r\n values: \"Values\",\r\n policies: \"Policies\",\r\n integrityPolicy: \"Integrity policy\",\r\n contact: \"Contact\",\r\n contactBrodit: \"Contact Brodit\",\r\n hello: \"Hello\",\r\n contactBroditVia: \"Contact Brodit via \",\r\n ifYouWantToChangeAnyInformation: \" if you wish to change any information.\",\r\n hereIsYourUserInfo: \"Here is your user info.\",\r\n workAtBrodit: \"Work at Brodit\",\r\n findBrodit: \"Find Brodit\",\r\n noArticlesInCart: \"You have no articles in the cart.\",\r\n yourOrders: \"My orders\",\r\n yourReference: \"Your reference\",\r\n registered: \"Registered\",\r\n printed: \"Printed\",\r\n deliveryTimeCannotBeConfirmed: \"Delivery time cannot be confirmed\",\r\n processing: \"Processing\",\r\n partiallyDelivered: \"Partly dispatched\",\r\n deliveryComplete: \"Dispatched\",\r\n date: \"Date\",\r\n order: \"Order\",\r\n orderWasPlaced: \"Order is placed, please check your email for order confirmation.\",\r\n status: \"Status\",\r\n track: \"Track\",\r\n marking: \"Marking\",\r\n numberOfProducts: \"Number of products\",\r\n trackShipment: \"Track shipment\",\r\n backToOrderList: \"Back to order list\",\r\n sentQuantity: \"Sent quantity\",\r\n anErrorOccuredTryRelogging: \"An error occured. Try logging in again.\",\r\n published: \"Published\",\r\n toggleSortOrder: \"Toggle sort order\",\r\n sort: \"Sort by\",\r\n searchOnDevice: \"Choose device\",\r\n searchOnVehicle: \"Choose vehicle\",\r\n searchOnModel: \"Choose model\",\r\n searchOnModelYears: \"Choose year\",\r\n device: \"Device\",\r\n vehicle: \"Vehicle\",\r\n showImages: \"Show more images\",\r\n howToInstall: \"How to install\",\r\n phone: \"Phone\",\r\n fax: \"Fax\",\r\n thisSiteUsesCookies: \"This site uses Cookies.\",\r\n readMore: \"Read more\",\r\n readMoreInThePrivacyPolicy: \"Read more in the Privacy policy.\",\r\n iAccept: \"I accept\",\r\n IHaveReadAndAcceptTheTerms: \"I have read and agree to the terms.\",\r\n iHaveReadAndAgreeTo: \"I have read and agree to\",\r\n broditABsConditionsAndTermsOfSale: \"Brodit ABs conditions and terms of sale\",\r\n information: \"Information\",\r\n companyAdress: \"Company\",\r\n purchase: \"Purchase\",\r\n delivery: \"Delivery\",\r\n validate: \"Validate\",\r\n cancel: \"Cancel\",\r\n register: \"Register\",\r\n backwards: \"Back\",\r\n next: \"Next\",\r\n companyName: \"Company name\",\r\n organisationNumber: \"Organisation number\",\r\n website: \"Website\",\r\n contactPerson: \"Contact person\",\r\n phonenumber: \"Phone number\",\r\n streetAddress: \"Street address\",\r\n postalCode: \"Postal code\",\r\n town: \"Town\",\r\n boxDeliveryAddress: \"Box delivery address\",\r\n deliveryAddress: \"Delivery address\",\r\n postalAddress: \"Postal address\",\r\n companySignatory: \"Company signatory\",\r\n attachUpToDateRegistrationCertificateFromBolagsverketAsAFile: \"Attach up to date registration certificate from Bolagsverket (PRV) as a file in PDF-format.\",\r\n chooseAFile: \"Choose a file\",\r\n noFileHasBeenSelected: \"No file has been selected.\",\r\n pleaseAcceptTheTermsAndConditionsAboveToContinue: \"Please accept the terms and conditions above to continue.\",\r\n pleaseFillInThisCheckBox: \"Please fill in this check box.\",\r\n sendApplication: \"Send application\",\r\n forParcelDelivery: \"For parcel delivery\",\r\n forInvoiceThroughPdfBroditOnlySendsInvoicesThroughEmail: \"for invoice in PDF format (Brodit only sends invoices through email)\",\r\n yourApplicationHasBeenSent: \"Your application has been sent.\",\r\n aProblemOccuredWhileProccessingYourApplication: \"A problem occured while proccessing your application.\",\r\n pleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists: \" Please try again later or contact Brodit if the problem persists.\",\r\n couldNotConnectToTheServer: \"Could not connect to the server.\",\r\n aProblemOccuredWhileProccessingYourApplicationPleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists: \"A problem occured while proccessing your application. Please try again later or contact Brodits support if the problem persists.\",\r\n models: \"Model\",\r\n modelYears: \"Model year\",\r\n otherModels: \"Other models\",\r\n products: \"Products\",\r\n allProducts: \"All products\",\r\n loadMore: \"Load more\",\r\n searchResults: \"Search results\",\r\n youSearchedFor: \"You searched for\",\r\n search: \"Search\",\r\n searchUpperCase: \"SEARCH\",\r\n searchForProducts: \"Search for products\",\r\n premiereNewOnlineShop: \"Premiere new online shop\",\r\n beforeYouLogInInfo: \"Updated shop requires updated password... Reset your password before logging in the first time (use the feature below). Thank you!\",\r\n returnNote: \"Return note\",\r\n logOut: \"Sign out\",\r\n year: \"Year\",\r\n chooseYear: \"CHOOSE YEAR\",\r\n deselectAll: \"DESELECT ALL\",\r\n showOrHideFilters: \"Show or hide filters\",\r\n yourEmail: \"Your e-mail\",\r\n yourName: \"Your name\",\r\n receiversEmail: \"Receivers e-mail\",\r\n message: \"Message\",\r\n shareThis: \"Share this\",\r\n orderByFile: \"Order by file\",\r\n orderByFileInfoParagraph1: \"For easier order placement you can upload an order-file into our web shop. You can export the file from your own system, and then upload it directly into your cart. This saves you time and eliminates type errors!\",\r\n orderByFileInfoParagraph2: \"Specifications: The file must be a comma separated text file. Usually, it is easiest to save your file as a csv-file directly from Excel or similar applications, but any text file will work as long as the numbers are delimited by commas or semi-colons. The file should contain item numbers and quantities only (Column A: Item no, Column B: Quantity)\",\r\n upload: \"Upload\",\r\n clearYourCartFirst: \"You already have items in your cart. Please clear it to continue.\",\r\n orderWasImported: \"Your order is now imported to the cart.\",\r\n errorReadingOrderFile: \"There was an error reading the order import file. Please try another file.\",\r\n clear: \"Clear\",\r\n chosenFile: \"Chosen file\",\r\n notIncludedArticlesMessage: \"The following articles are not found or not for sale\",\r\n couldNotBePlacedInCart: \"could not be placed in cart, it is not for sale or does not exist.\",\r\n yourPasswordHasBeenChanged: \"Your password has been changed.\",\r\n ifYouHaveProblemsWithYourCartResetIt: \"If you have problems with your cart, you can click here to reset it.\",\r\n youHaveSharedTheProduct: \"You have shared the product.\",\r\n somethingWentWrongWhenSharingProduct: \"Something went wrong when sharing the product.\",\r\n recaptchaError: \"Something went wrong with Recaptcha.\",\r\n unknownError: \"An unknown error occured.\",\r\n articleCouldNotBeAddedQuantityZero: \"The article cannot be added with quantity zero.\",\r\n experiencingProblemsWithCart: \"Experiencing problems with the cart? \",\r\n clickHere: \"Click here\",\r\n toResetYourCart: \" to reset (empty) it.\",\r\n endingSoon: \"Ending Soon\",\r\n chooseCity: \"CHOOSE CITY\",\r\n shopOnline: \"Shop online\",\r\n notFound: \"Not found\",\r\n thisPageWasNotFoundGoBackTo: \"This page was not found. Go to \",\r\n home: \"Mounting platform specialist!\",\r\n phasingOut: \"Few left\",\r\n brands: \"Brand\",\r\n showAmount: \"Show amount\",\r\n yourSearchGenerated: \"Your search generated\",\r\n account: \"Account\",\r\n fileDownload: \"File download\",\r\n yourAccount: \"My account\",\r\n language: \"Language\",\r\n english: \"English\",\r\n swedish: \"Swedish\",\r\n german: \"German\",\r\n includePrices: \"Include prices\",\r\n updatesOnly: \"Updates only\",\r\n newItems: \"New items\",\r\n changedItems: \"Changed items\",\r\n deletedItems: \"Deleted items\",\r\n isDeleted: \"Is deleted\",\r\n isDiscontinuedAndNoLongerAvailable: \"is discontinued and is no longer available\",\r\n removeAll: \"Remove all\",\r\n removeItem: \"Remove item\",\r\n youMustChooseAType: \"You must choose a type of data.\",\r\n formatShouldBeISO8601: \"Format should be YYYY-MM-DD.\",\r\n download: \"Download\",\r\n errorWhenAttemptingToDownloadFile: \"Error when attempting to download file.\",\r\n type: \"Type\",\r\n noContentForTheSelectedLanguage: \"No content for the selected language.\",\r\n fromDate: \"From date\",\r\n webshopForBroditResellers: \"Online shop for Brodit distributors\",\r\n continueShopping: \"Continue shopping\",\r\n toSellBroditProducts: \"To sell Brodit products\",\r\n retailerApplicationText: `Brodit is represented worldwide via experienced\r\n and valued distributors. For unrepresented countries, there’s an opening\r\n for companies who are passionate about service, quality and innovative\r\n ideas. If that applies to you, please tell us about your current\r\n business areas as well as your visions for Brodit products in your\r\n country in an e-mail to exportsales@brodit.se. Thank you!`,\r\n thisProductIsNotAvailableOrder: \"This item is included in your order but you can only see the item number, you can not see the product name or what it fits for.\",\r\n country: \"Country\",\r\n useTemporaryAddress: \"Send this order to a temporary shipping address\",\r\n zipAndCity: \"Zip and city\",\r\n address: \"Address\",\r\n productNotFound: \"Product not found\",\r\n weCouldNotFindThisProductEtc: \"We could not find this product. The product does not exist.\",\r\n forInstanceKarlsborg: \"I.e. \\\"54634 Karlsborg\\\"\",\r\n asLoggedInUserYouCanWithdraw: \"You can withdraw your consent at any time at your user profile or on the Privacy page under Documents.\",\r\n ifYouWantToWithdrawConsent: \"If you want to withdraw your consent to cookies, click \",\r\n here: \"here\",\r\n youMustThenAcceptTheTermsAgain: \"You must then accept the privacy terms again to be able to sign in.\",\r\n tryResettingPasswordAgain: \"It seems like the token is not valid. Try resetting your password again.\",\r\n fileDownloadIsNotAvailable: \"File download is under development and is not available for now.\",\r\n displaying: \"Displaying\",\r\n outOf: \"out of\",\r\n results: \"results\",\r\n apiKey: \"API key\",\r\n badRequestFileDownload: \"Error in input when downloading file. Is API key in correct format?\",\r\n unAuthorizedFileDownload: \"Error trying to verify API key when downloading file. Check with Brodit that you are allowed to download file.\",\r\n compareProducts: \"Compare products\",\r\n noProductsToCompare: \"No products has been added for compare\",\r\n description: \"Description\",\r\n placement: \"Placement\",\r\n fitsFor: \"Fits for\",\r\n technicalInformation: \"Technical information\",\r\n dimensionsAndWeight: \"Dimensions & weight\",\r\n width: \"Width\",\r\n height: \"Height\",\r\n depth: \"Depth\",\r\n weight: \"Weight\",\r\n volume: \"Volume\",\r\n yes: \"Yes\",\r\n no: \"No\",\r\n compareMaxThreeArticles: \"You can compare up to three articles at a time.\",\r\n compareMaxTwoArticles: \"You can only compare two articles\",\r\n toComparison: \"To comparison\",\r\n notApplicable: \"Not applicable\",\r\n clearAllProducts: \"Clear all products\",\r\n endComparison: \"End comparison\",\r\n thisProductIsNoLongerAvailable: \"This product is no longer available.\",\r\n parcel: \"Parcel\",\r\n orderSystemMaintenance: \"Our order system is currently under maintenance. During this time you can't login and use some services on the site. Refresh the page in a while and try again. Sorry for the inconvenience.\",\r\n systemMaintenanceTryAgainLater: \"There is currently a system maintenance, please try again later.\",\r\n theProductWasReplacedWithFollowingProductProducts: \"The product was replaced by the following product(s).\",\r\n wasReplacedByFollowingArticles: \" was replaced by the following articles.\",\r\n itWasReplacedByTheFollowingArticles: \"It was replaced by the following articles: \",\r\n action: \"Action\",\r\n unregister: \"Unregister\",\r\n save: \"Save\",\r\n yourSubscriptionHasBeenUpdated: \"Your newsletter subscription has been updated.\",\r\n somethingWentWrong: \"Something went wrong.\",\r\n whereCanIBuy: \"Where can I buy?\",\r\n thePasswordMustAlsoComplyToTheFollowingRules: \"The password must comply to the following rules:\",\r\n containMinimumSixCharacters: \"Contain minimum six characters\",\r\n containUpperCaseCharacters: \"Contain uppercase characters\",\r\n containLowerCaseCharacters: \"Contain lowercase characters\",\r\n containANumber: \"Contain a number\",\r\n containAFigure: \"Contain a special character\",\r\n productIsNotAvailable: \"Product is not available\",\r\n withdrawingCookiesConsent: \"Withdrawing cookies consent...\",\r\n redirectingToStartPage: \"Redirecting to start page...\",\r\n video: \"Video\",\r\n startPage: \"landing page\",\r\n maximum30Letters: \"This field can contain maximum 30 letters.\",\r\n downloadCatalog: \"Download catalog\",\r\n homeSection1Titel: \"Model specific Two-Part Solution\",\r\n homeSection1Text: \"Our ProClip and Device Holders are custom-designed for both your device and your specific vehicle model. The ProClip is seamlessly installed into the interior gaps without causing any damage or permanent modifications. Find the solution tailored to your needs using our search tool below. If you can't find what you're looking for, please contact us, and we'll be happy to assist you further.\",\r\n findRightProclip: \"Find the right ProClip for your vehicle\",\r\n findRightHolder: \"Holder for your device\",\r\n homeSection2Titel: \"Stronger Mounting Solutions\",\r\n homeSection2Text: \"Are you using a tablet, barcode scanner, payment terminal, or any other mobile device that needs to be mounted in a forklift, construction machine, or a truck? Whatever your needs are, we have a solution for you! With our wide range of products, we offer customized solutions for all types of environments, whether it's in the office, warehouse, or even in the air. We ensure that your devices are within reach, even under the most challenging conditions.\",\r\n homeSectionPedestalHolderTitel: \"Pedestal Mounts\",\r\n homeSectionPedestalHolderText: \"Modular, lightweight, and exceptionally strong - that's our range of aluminum pedestals designed for mounting heavier devices for everyday use in demanding environments.\",\r\n homeSectionPedestalHolderLinkText: \"Learn more about pedestal mounts\",\r\n homeSectionPipeHolderTitel: \"Pipe Mounts\",\r\n homeSectionPipeHolderText: \"Robust Pipe Mounts that easily attach to pipes and bars. Their applications are versatile, ranging from trucks, forklifts, carts, boats to airplanes.\",\r\n homeSectionPipeHolderLinkText: \"Learn more about pipe mounts\",\r\n homeSectionTruckHolderTitel: \"Forklift Mounts\",\r\n homeSectionTruckHolderText: \"Warehouse environments often involve heavy equipment and demanding conditions. For device mounting in these environments, sturdy mounts capable of withstanding stress and vibrations are required.\",\r\n homeSectionTruckHolderLinkText: \"Learn more about forklift mounts\",\r\n homeSectionCustomSolutionsTitel: \"Customized Solutions\",\r\n homeSectionCustomSolutionsText: \"At our factory in Karlsborg, Sweden, both development and manufacturing take place. If your company or operation has specific needs and requirements, our team of designers is ready to collaborate with you to create tailored solutions and products.\",\r\n howIsItMade: \"Read more\",\r\n homeSection4Text: \"The market introduces new vehicles and devices daily. For over four decades we've equipped ourselves with the knowledge and network required to rapidly develop, manufacture, and deliver products to a market that is constantly evolving.\",\r\n deviceHolder: \"Device Holders\",\r\n proclip: \"ProClip\",\r\n seeProduct: \"Show product\",\r\n homeSection5Title: \"Do you need help finding the right products?\",\r\n homeSection5Text: \"Contact us and describe your needs, and we'll assist you in finding the best solution for you!\",\r\n proclipAndHolders: \"ProClip and Device Holders\",\r\n proclipSection1Title: \"Model specific ProClip Mounts and Device Holders\",\r\n proclipSection1Text: \"Our two-part mounting solution provides you with a tailored device installation perfectly suited to your needs. One part consists of a Device Holder designed to fit your mobile phone, tablet, or other handheld device precisely. This is combined with a ProClip, which is a mount built specifically for your car model. The ProClip is installed in the car completely without screws, therefore causing no damage to the interior. Flexible, stable and secure - Simple!\",\r\n proclipBrandsTitle: \"We offer ProClips for vehicles from a wide range of brands, including:\",\r\n deviceBrandsTitle: \"We offer holders for devices from a wide range of brands, including:\",\r\n proclipSection2ProclipText: \"The ProClip serves as the mounting platform for the Device Holder. The purpose of our ProClip is to enable a stable and secure installation of the Device Holder in the vehicle, without the need for any permanent alterations such as drilling or screwing into the instrument panel. Instead, the ProClip is securely attached to the vehicle's existing gaps, panels, or seams on the dashboard. In many cases, it is further secured with double-sided adhesive tape specially designed not to leave any residue if you choose to remove or relocate the ProClip. Each ProClip is specifically designed for each car make and model, and the development of a new ProClip is a craftsmanship done on-site for each car and truck. Typically we develop a couple of ProClips for each vehicle model to offer a variety of mounting options.\",\r\n proclipSection2HolderTitle: \"Device Holders\",\r\n proclipSection2HolderText: \"The Device Holder is also specifically designed for your smartphone, GPS, or other mobile device. Various options are offered based on whether you have the device with or without a case, desire charging with a cable or wirelessly, or a passive holder without charging. In addition to our model specific device holders, we also offer adjustable holders that can be customized in height or width depending on the device you use it for.\",\r\n proclipSection3ProclipBrands: \"ProClip is available for all of these brands\",\r\n proclipSection3ProclipDevices: \"We offer Device Holders for a wide range of brands, including these\",\r\n productDevSection1Title: \"Customized solutions\",\r\n productDevSection1Text: \"In cases where our existing range is insufficient to meet the customer's needs, we have the opportunity to create a customized mounting solution.\",\r\n productDevSection2Title: \"Needs analysis\",\r\n productDevSection2TextPart1: \"The process begins with direct communication between you, our sales representatives, and product developers. Together, we identify needs and potential solutions.\",\r\n productDevSection2TextPart2: \"The needs can vary depending on how and where the device will be used. These needs include factors such as challenging environments, technical specifications, charging and data transfer requirements, and more.\",\r\n productDevSection2Part3Title: \"Cost estimation and prototype\",\r\n productDevSection2TextPart3: \"When we have achieved a common understanding of how the product should be designed, we present a development cost. If this cost is approved, we proceed to manufacture a prototype. The prototype can be a functional, CNC-machined version or, in some cases, a 3D-printed prototype.\",\r\n contactUs: \"Contact us\",\r\n productDevSection3Text: \"We do not impose any limitations on what a customer-specific project may entail; we have developed unique solutions for emergency services, food companies, the forestry industry, and more.\",\r\n seeMore: \"+ Show more\",\r\n seeLess: \"- Show less\",\r\n addArticleToCart: \"Add article to cart\",\r\n megaMenu: \"If your company or business has specific needs and requirements, our team of designers is ready to collaborate with you and create customized solutions and products.\",\r\n examplesSpecialCharacters: \"Examples of special characters: \",\r\n areYouSure: \"Are you sure?\",\r\n deleteAllConfirmation: \"This will delete all products in the cart.\",\r\n exVat: \"excl. VAT\",\r\n downloadComparisonPdf: \"Download comparison as PDF\",\r\n downloadProductPdf: \"Download product attributes as PDF\",\r\n findProClip: \"Choose a ProClip for your vehicle\",\r\n findDeviceHolder: \"Find your Device Holder\",\r\n customerDetails: \"Customer details\",\r\n myPagesEmail: \"E-mail:\",\r\n refreshToContinue: \"Refresh the page to continue.\",\r\n adImageAlt: \"Work ad\",\r\n numbersOnly: \"May only contain numbers\",\r\n smsTracking: \"SMS-tracking\",\r\n cellNumber: \"Cellphone number\",\r\n homeSuctionTitle: \"Suction Cup Mounts\",\r\n homeSuctionText: \"Quick and easy mounting on smooth surfaces. Enables flexible solutions.\",\r\n homeSuctionLinkText: \"Learn more about suction cup mounts\",\r\n homeScreenTitle: \"Workstation mounts\",\r\n homeScreenText: \"Ergonomic holders for a screen and keyboard, with options for fixed or foldable holders, suited for demanding environments.\",\r\n homeScreenLinkText: \"Learn more about workstation mounts\",\r\n homeMoveClipTitle: \"MoveClip\",\r\n homeMoveClipText: \"Allows easy switching between different holders on the same mounting location, and provides the ability to conveniently use the same holder in multiple places.\",\r\n homeMoveClipLinkText: \"Learn more about MoveClip\",\r\n homeReadMoreAboutStrong: \"Read more about our stronger mounting solutions\",\r\n contactFullname: \"Full name\",\r\n contactCompany: \"Company\",\r\n contactPhone: \"Phone\",\r\n contactEmail: \"Email\",\r\n contactMessageTitle: \"How can we help you? *\",\r\n contactSend: \"Send request\",\r\n contactOfficeAndManufacturing: \"Head office and manufacturing\",\r\n contactMailSent: \"Contact request has been sent.\",\r\n newList: \"Create a new list\",\r\n productId: \"Product number\",\r\n errorCreatingFavoriteList: \"En ny lista behöver namn och produkter för att kunna skapas. A new list needs a name and at least one product to be created.\",\r\n myLists: \"My lists:\",\r\n selectLists: \"Choose lists or create a new one\",\r\n decreaseQuantity: \"Decrease quantity\",\r\n increaseQuantity: \"Increase quantity\",\r\n deleteList: \"Delete list\",\r\n editList: \"Edit list\",\r\n unlisted: \"Products not in a list\",\r\n newName: \"New name:\",\r\n selectProducts: \"Select products:\",\r\n noListIsEqualToOnlyFavorite: \"Leave empty to add to the standard list\",\r\n showUnlisted: \"Show unlisted\",\r\n showAllFavorites: \"Show all favorites\",\r\n seeProductVideo: \"Watch product video\",\r\n selectOption: \"Select an option\",\r\n textField: \"Text field\",\r\n playVideo: \"Play video\",\r\n aboutProductDevelopment: \"about our product development\",\r\n aboutProclip: \"about ProClip and Holders\",\r\n about: \"about\",\r\n previousProductImage: \"previous product image\",\r\n nextProductImage: \"next product image\",\r\n heartIcon: \"heart icon\",\r\n deleteListButton: \"delete list button\",\r\n signedInMenu: \"Signed in menu\",\r\n unavailable: \"unavailable\"\r\n },\r\n sv: {\r\n onlyOnlineShops: \"Se enbart E-handel\",\r\n findLocalRetailer: \"Hitta din lokala återförsäljare\",\r\n viaOurDistributors: \"Brodits produkter kan köpas via våra återförsäljare.\",\r\n pdfFiles: \"PDF-filer\",\r\n compatibleProducts: \"Kompatibla modeller\",\r\n back: \"Bakåt\",\r\n showSearch: \"Visa sökfält\",\r\n hideSearch: \"Dölj sökfält\",\r\n tabInformation: \"Information\",\r\n moreInformation: \"More information\",\r\n tabSpecification: \"Specifikation\",\r\n tabCompability: \"Passar till\",\r\n tabInstructions: \"Instruktioner\",\r\n tabRelatedProducts: \"Tillbehör\",\r\n tabRelatedFiles: \"Dokument\",\r\n noRelatedFiles: \"Det finns inga dokument för den här produkten\",\r\n noAccessories: \"Det finns inga tillbehör för den här produkten\",\r\n thereAreNoVideosForThisProduct: \"Det finns inga videoklipp för den här produkten.\",\r\n itemNumber: \"Art. nr.\",\r\n loadingMaterial: \"Laddar material\",\r\n features: \"Funktioner\",\r\n fasteners: \"Fästen\",\r\n compabilities: \"Passar till följande modeller\",\r\n thisProductIsNotModelSpecific: \"Den här produkten är inte modellspecifik\",\r\n loadingCompabilities: \"Laddar kompabiliteter\",\r\n loadingProperties: \"Laddar egenskaper\",\r\n properties: \"Egenskaper\",\r\n propertiesNoneExist: \"Inga egenskaper gäller för denna produkt.\",\r\n instructions: \"Instruktioner för\",\r\n chargingSpecification: \"Laddningsspecifikationer\",\r\n error: \"Fel\",\r\n unknownErrorCreatingOrder: \"Okänt fel när ordern skapades.\",\r\n showMore: \"Visa fler\",\r\n showLess: \"Visa färre\",\r\n noMaterialsAssigned: \"Inga funktioner är knutna till den här produkten.\",\r\n comingSoon: \"Kommer snart\",\r\n loadingProduct: \"Laddar produkt\",\r\n createLeaflet: \"Skapa broschyr\",\r\n print: \"Skriv ut\",\r\n compare: \"Jämför\",\r\n isComparing: \"blir jämförd\",\r\n share: \"Dela\",\r\n loading: \"Laddar\",\r\n image: \"Bild\",\r\n addToCart: \"Lägg i varukorg\",\r\n eanNumber: \"EAN-nummer\",\r\n productInformation: \"Produktinformation\",\r\n addToFavorites: \"Lägg till som favorit\",\r\n removeFromFavorites: \"Ta bort från favoriter\",\r\n yourFavorites: \"Favoriter\",\r\n newProduct: \"Ny produkt\",\r\n pickedByPro: \"Bästsäljare\",\r\n newProductsForDevices: \"Nya produkter till enheter\",\r\n newProductsForVehicles: \"Nya produkter till fordon\",\r\n more: \"Mer\",\r\n moreSmall: \"...fler\",\r\n close: \"Stäng\",\r\n seeAll: \"Visa alla\",\r\n hits: \"träffar\",\r\n toggleLanguage: \"Växla språk\",\r\n user: \"Användare\",\r\n cart: \"Varukorg\",\r\n toggleView: \"Växla vy\",\r\n logIn: \"Logga in\",\r\n email: \"E-post\",\r\n password: \"Lösenord\",\r\n repeatPassword: \"Upprepa lösenordet\",\r\n changePassword: \"Ändra lösenord\",\r\n forgotPassword: \"Glömt lösenord\",\r\n passwordsMustMatch: \"Lösenorden måste matcha\",\r\n forgotPasswordNotification: \"Ett återställningsmail har skickats till den angivna e-posten om den finns i systemet. Länken är giltig i 30min.\",\r\n checkYourLoginDetails: \"Kontrollera dina login-uppgifter och prova igen.\",\r\n product: \"Artikel\",\r\n theProduct: \"Artikel\",\r\n hasBeenAddedToCart: \"har lagts i varukorgen\",\r\n addressDetails: \"Adressuppgifter\",\r\n confirmation: \"Bekräftelse\",\r\n yourCart: \"Din varukorg\",\r\n checkOrderDetails: \"Kontrollera din order noggrant för att vara säker på att allt stämmer.\",\r\n summary: \"Sammanställning\",\r\n numberOfOrderLines: \"Antal orderrader\",\r\n totalQuantity: \"Artiklar totalt\",\r\n total: \"Totalt\",\r\n emptyCart: \"Töm varukorg\",\r\n addNote: \"Lägg till anteckning\",\r\n note: \"Notering\",\r\n quantity: \"Order antal\",\r\n qty: \"Ant\",\r\n price: \"Pris\",\r\n backToShop: \"Tillbaka to affär\",\r\n backToCart: \"Tillbaka till varukorg\",\r\n toCheckout: \"Till kassan\",\r\n submitOrder: \"Skicka order\",\r\n myDetails: \"Mina uppgifter\",\r\n customerNumber: \"Kundnummer:\",\r\n name: \"Namn:\",\r\n messageToBrodit: \"Meddelande till Brodit\",\r\n purchaseOrder: \"Inköpsorder | Märkning\",\r\n orderPlacedBy: \"Order lagd av | Referens\",\r\n emailForOrderConfirmation: \"E-post (för orderbekräftelse)\",\r\n standardShippingAddress: \"Förvald leveransadress\",\r\n billingAddress: \"Fakturaadress\",\r\n orderConfirmation: \"Orderbekräftelse\",\r\n thankYouForOrder: \"Tack för att du beställer från Brodit!\",\r\n orderIsProcessing: \"Din order behandlas. Du kommer få en bekräftelse via e-post snart.\",\r\n orderNumber: \"Ordernummer\",\r\n orderDate: \"Orderdatum\",\r\n orderEmail: \"E-post för order\",\r\n shippingAddress: \"Leveransadress\",\r\n reference: \"Referens\", // Kanske inte nödvändig, ett datafält egentligen\r\n shop: \"Handla\",\r\n shopViaReseller: \"Du kan köpa Brodits produkter via återförsäljare\",\r\n findReseller: \"Hitta återförsäljare\",\r\n becomeReseller: \"Bli återförsäljare\",\r\n new: \"Nyhet\",\r\n news: \"Nyheter\",\r\n showMoreNews: \"Äldre nyheter\",\r\n couldNotFindTheSelectedNewsArticle: \"Kunde inte hitta den valda nyhetsartikeln\",\r\n newHolders: \"Nya hållare\",\r\n newProclip: \"Nya ProClip\",\r\n newsLetter: \"Nyhetsbrev\",\r\n aboutBrodit: \"Om Brodit\",\r\n broditsStory: \"Historien om Brodit\",\r\n broditsMovie: \"Filmen om Brodit\",\r\n cookies: \"Kakor\",\r\n values: \"Värdegrund\",\r\n policies: \"Policy\",\r\n integrityPolicy: \"Integritetspolicy\",\r\n contact: \"Kontakt\",\r\n contactBrodit: \"Kontakta Brodit\",\r\n hello: \"Hej\",\r\n contactBroditVia: \"Kontakta Brodit via \",\r\n ifYouWantToChangeAnyInformation: \" om du vill ändra någon information.\",\r\n hereIsYourUserInfo: \"Här hittar du information kring din användare.\",\r\n workAtBrodit: \"Jobba på Brodit\",\r\n findBrodit: \"Hitta till Brodit\",\r\n noArticlesInCart: \"Du har inga artiklar i varukorgen.\",\r\n yourOrders: \"Mina beställningar\",\r\n yourReference: \"Er referens\",\r\n registered: \"Registrerad\",\r\n printed: \"Utskriven\",\r\n deliveryTimeCannotBeConfirmed: \"Leveranstid kan ej bekräftas\",\r\n processing: \"Bearbetas\",\r\n partiallyDelivered: \"Delvis skickad\",\r\n deliveryComplete: \"Skickad\",\r\n date: \"Datum\",\r\n order: \"Beställning\",\r\n orderWasPlaced: \"Ordern är lagd, vänligen kontrollera din e-post efter orderbekräftelsen.\",\r\n status: \"Status\",\r\n track: \"Spåra\",\r\n marking: \"Märkning\",\r\n numberOfProducts: \"Antal produkter\",\r\n trackShipment: \"Spåra leverans\",\r\n backToOrderList: \"Tillbaka till orderlistan\",\r\n sentQuantity: \"Skickat antal\",\r\n anErrorOccuredTryRelogging: \"Ett fel inträffade. Testa att logga in på nytt.\",\r\n phone: \"Telefon\",\r\n fax: \"Fax\",\r\n published: \"Publicerad\",\r\n showImages: \"Visa mer bilder\",\r\n toggleSortOrder: \"Växla sorteringsordning\",\r\n sort: \"Sortera på\",\r\n searchOnDevice: \"Välj enhet\",\r\n searchOnVehicle: \"Välj fordon\",\r\n searchOnModel: \"Välj Modell\",\r\n searchOnModelYears: \"Välj år\",\r\n device: \"Enhet\",\r\n vehicle: \"Fordon\",\r\n howToInstall: \"Så monterar du\",\r\n thisSiteUsesCookies: \"Denna webbplats använder Cookies.\",\r\n readMore: \"Läs mer\",\r\n readMoreInThePrivacyPolicy: \"Läs mer i vår integritetspolicy.\",\r\n iAccept: \"Jag accepterar\",\r\n IHaveReadAndAcceptTheTerms: \"Jag har läst och godkänner villkoren.\",\r\n iHaveReadAndAgreeTo: \"Jag har tagit del av och accepterat\",\r\n broditABsConditionsAndTermsOfSale: \"Brodit ABs försäljningsvillkor\",\r\n information: \"Information\",\r\n companyAdress: \"Företag\",\r\n purchase: \"Inköp\",\r\n delivery: \"Leveransadress\",\r\n validate: \"Validera\",\r\n cancel: \"Avbryt\",\r\n backwards: \"Tillbaka\",\r\n next: \"Nästa\",\r\n companyName: \"Företagsnamn\",\r\n organisationNumber: \"Organisationnummer\",\r\n website: \"Hemsida\",\r\n contactPerson: \"Kontaktperson\",\r\n phonenumber: \"Telefonnummer\",\r\n streetAddress: \"Gatuadress\",\r\n postalCode: \"Postnr\",\r\n town: \"Ort\",\r\n boxDeliveryAddress: \"Boxadress\",\r\n deliveryAddress: \"Leveransadress\",\r\n postalAddress: \"Postadress\",\r\n companySignatory: \"Firmatecknare\",\r\n attachUpToDateRegistrationCertificateFromBolagsverketAsAFile: \"Bifoga aktuellt registreringsbevis från Bolagsverket (PRV) som fil i PDF-format.\",\r\n chooseAFile: \"Välj fil\",\r\n noFileHasBeenSelected: \"Ingen fil har valts.\",\r\n pleaseAcceptTheTermsAndConditionsAboveToContinue: \"Vänligen acceptera vilkoren ovan för att fortsätta.\",\r\n pleaseFillInThisCheckBox: \"Vänligen fyll i denna kryssrutan.\",\r\n sendApplication: \"Skicka ansökan\",\r\n forParcelDelivery: \"För paketleverans\",\r\n forInvoiceThroughPdfBroditOnlySendsInvoicesThroughEmail: \"för faktura via PDF (Brodit skickar endast faktura via E-post)\",\r\n yourApplicationHasBeenSent: \"Din ansökan har skickats.\",\r\n aProblemOccuredWhileProccessingYourApplication: \"Ett problem uppstod när din ansökan skulle behandlas.\",\r\n pleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists: \"Vänligen försök igen senare eller kontakta Brodit ifall problemet kvarstår.\",\r\n couldNotConnectToTheServer: \"Det gick inte att ansluta till servern.\",\r\n aProblemOccuredWhileProccessingYourApplicationPleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists: \"Ett problem uppstod när din ansökan skulle behandlas. Vänligen försök igen senare eller kontakta Brodits support ifall problemet kvarstår.\",\r\n models: \"Modell\",\r\n modelYears: \"Årsmodell\",\r\n otherModels: \"Övriga modeller\",\r\n products: \"Produkter\",\r\n allProducts: \"Alla produkter\",\r\n loadMore: \"Ladda fler\",\r\n searchResults: \"Sökresultat\",\r\n youSearchedFor: \"Du sökte efter\",\r\n search: \"Sök\",\r\n searchUpperCase: \"SÖK\",\r\n searchForProducts: \"Sök efter produkter\",\r\n premiereNewOnlineShop: \"Premiär ny webshop\",\r\n beforeYouLogInInfo: \"Uppdaterad shop kräver uppdaterat lösenord! Återställ ditt lösenord innan du loggar in första gången (använd funktionen nedan). Tack!\",\r\n returnNote: \"Retursedel\",\r\n logOut: \"Logga ut\",\r\n year: \"År\",\r\n chooseYear: \"Välj år\",\r\n deselectAll: \"AVMARKERA ALLA\",\r\n showOrHideFilters: \"Visa eller dölj filter\",\r\n yourEmail: \"Din e-post\",\r\n yourName: \"Ditt namn\",\r\n receiversEmail: \"Mottagarens e-post\",\r\n message: \"Meddelande\",\r\n shareThis: \"Dela detta\",\r\n orderByFile: \"Order via fil\",\r\n orderByFileInfoParagraph1: \"För enklare orderläggning kan du läsa in en orderfil i vår webshop. Du kan exportera filen från ditt eget system, och ladda upp den direkt i din varukorg så slipper du knappa in ordern manuellt. Snabbt och bekvämt!\",\r\n orderByFileInfoParagraph2: \"Specifikationer: Filen skall vara en kommaseparerad textfil. Det enklaste är att välja att spara filen i csv-format i Excel eller liknande progam, men vilken textfil som helst fungerar så länge siffrorna är avgränsade med komma eller semikolon. Filen ska endast innehålla artikelnummer och antal (Kolumn A: Artikelnummer, Kolumn B: Antal).\",\r\n upload: \"Ladda upp\",\r\n clearYourCartFirst: \"Du har redan artiklar i varukorgen. Vänligen rensa den innan du fortsätter.\",\r\n orderWasImported: \"Ordern är nu importerad till varukorgen.\",\r\n errorReadingOrderFile: \"Det uppstod ett fel när orderfilen lästes in. Försök med en annan fil.\",\r\n clear: \"Rensa\",\r\n chosenFile: \"Vald fil\",\r\n notIncludedArticlesMessage: \"Följande artiklar kunde inte hittas eller är inte till försäljning\",\r\n couldNotBePlacedInCart: \"kunde inte läggas i varukorgen, den är inte till salu eller finns inte\",\r\n yourPasswordHasBeenChanged: \"Ditt lösenord har ändrats.\",\r\n ifYouHaveProblemsWithYourCartResetIt: \"Om du har problem med varukorgen kan du klicka här för att återställa den.\",\r\n youHaveSharedTheProduct: \"Du har delat produkten.\",\r\n somethingWentWrongWhenSharingProduct: \"Någonting gick fel när produkten skulle delas.\",\r\n recaptchaError: \"Någonting gick fel med Recaptcha.\",\r\n unknownError: \"Ett okänt fel uppstod.\",\r\n articleCouldNotBeAddedQuantityZero: \"Artikeln kan inte läggas till med noll i antal.\",\r\n experiencingProblemsWithCart: \"Upplever du problem med varukorgen? \",\r\n clickHere: \"Klicka här\",\r\n toResetYourCart: \" för att återställa (tömma) den.\",\r\n endingSoon: \"Utgående\",\r\n chooseCity: \"VÄLJ STAD\",\r\n shopOnline: \"Handla online\",\r\n notFound: \"Sidan hittas inte\",\r\n thisPageWasNotFoundGoBackTo: \"Sidan kunde inte hittas. Gå till \",\r\n home: \"Specialisten på monteringsplattformar!\",\r\n phasingOut: \"Få kvar\",\r\n brands: \"Märke\",\r\n showAmount: \"Visa antal\",\r\n yourSearchGenerated: \"Din sökning genererade\",\r\n account: \"Konto\",\r\n fileDownload: \"Filnedladdning\",\r\n yourAccount: \"Mitt konto\",\r\n language: \"Språk\",\r\n english: \"Engelska\",\r\n swedish: \"Svenska\",\r\n german: \"Tyska\",\r\n includePrices: \"Inkludera priser\",\r\n updatesOnly: \"Endast uppdateringar\",\r\n newItems: \"Nya produkter\",\r\n changedItems: \"Ändrade produkter\",\r\n deletedItems: \"Borttagna produkter\",\r\n isDeleted: \"Är borttagna\",\r\n isDiscontinuedAndNoLongerAvailable: \"har utgått ur sortimentet\",\r\n removeAll: \"Ta bort alla\",\r\n removeItem: \"Ta bort produkt\",\r\n youMustChooseAType: \"Du måste välja en typ av data.\",\r\n formatShouldBeISO8601: \"Formatet måste vara YYYY-MM-DD.\",\r\n download: \"Ladda ner\",\r\n errorWhenAttemptingToDownloadFile: \"Ett fel uppstod då filen skulle laddas ner.\",\r\n type: \"Typ\",\r\n noContentForTheSelectedLanguage: \"Inget innehåll för det valda språket.\",\r\n fromDate: \"Från datum\",\r\n webshopForBroditResellers: \"Webshop för Brodits återförsäljare\",\r\n continueShopping: \"Fortsätt handla\",\r\n toSellBroditProducts: \"Att sälja Brodits produkter\",\r\n retailerApplicationText: `Brodit representeras i hela Sverige av kunniga och uppskattade återförsäljare.\r\n Om du brinner för service, kvalitet, problemlösning och vill arbeta aktivt med\r\n Brodits produkter, fyll gärna i dina uppgifter nedan så kontaktar vi dig. Tack!`,\r\n thisProductIsNotAvailableOrder: \"Den här produkten är med på din order men du kan endast se artikelnumret, du kan inte se produktens namn eller vad den passar till.\",\r\n country: \"Land\",\r\n useTemporaryAddress: \"Skicka denna order till en tillfällig leveransadress. Kostnad 35 kr exkl moms.\",\r\n zipAndCity: \"Postnummer och ort\",\r\n address: \"Adress\",\r\n productNotFound: \"Produkten hittades inte\",\r\n weCouldNotFindThisProductEtc: \"Vi kunde inte hitta den här produkten. Produkten finns inte.\",\r\n forInstanceKarlsborg: \"T.ex. \\\"54634 Karlsborg\\\"\",\r\n asLoggedInUserYouCanWithdraw: \"Som inloggad användare kan du när som helst ångra ditt samtycke genom länken i din profil eller på sidan Integritet under Dokument.\",\r\n ifYouWantToWithdrawConsent: \"Om du vill ångra ditt samtycke till cookies kan du klicka \",\r\n here: \"här\",\r\n youMustThenAcceptTheTermsAgain: \"Du måste då åter acceptera villkoren för att kunna använda sidan i inloggat läge.\",\r\n tryResettingPasswordAgain: \"Det verkar som länken inte stämmer. Försök återställa ditt lösenord igen.\",\r\n fileDownloadIsNotAvailable: \"Filnedladdning är under utveckling och är därför inte tillgängligt just nu.\",\r\n displaying: \"Visar\",\r\n outOf: \"av\",\r\n results: \"resultat\",\r\n apiKey: \"API nyckel\",\r\n badRequestFileDownload: \"Fel i indata vid filnedladdning. Är API-nyckeln i korrekt format?\",\r\n unAuthorizedFileDownload: \"Fel vid verifiering av API-nyckel. Kontrollera med Brodit att du är behörig för filnedladdning.\",\r\n compareProducts: \"Jämför produkter\",\r\n noProductsToCompare: \"Inga artiklar har lagts till i jämförelse\",\r\n description: \"Beskrivning\",\r\n placement: \"Placering\",\r\n fitsFor: \"Passar till\",\r\n technicalInformation: \"Teknisk information\",\r\n dimensionsAndWeight: \"Dimensioner & vikt\",\r\n width: \"Bredd\",\r\n height: \"Höjd\",\r\n depth: \"Djup\",\r\n weight: \"Vikt\",\r\n volume: \"Volym\",\r\n yes: \"Ja\",\r\n no: \"Nej\",\r\n compareMaxThreeArticles: \"Du kan jämföra upp till tre artiklar samtidigt.\",\r\n compareMaxTwoArticles: \"Du kan endast jämföra två artiklar samtidigt.\",\r\n toComparison: \"Till jämförelsen\",\r\n notApplicable: \"Inte tillämpbar\",\r\n clearAllProducts: \"Rensa alla produkter\",\r\n endComparison: \"Avsluta jämförelse\",\r\n thisProductIsNoLongerAvailable: \"Denna produkt är inte längre tillgänglig.\",\r\n parcel: \"Försändelse\",\r\n orderSystemMaintenance: \"Vårt ordersystem underhålls för närvarande. Under denna tid kan du inte logga in och använda vissa tjänster på webbplatsen. Uppdatera sidan om ett tag och försök igen. Vi beklagar om detta orsakar problem.\",\r\n systemMaintenanceTryAgainLater: \"För närvarande systemunderhåll, prova igen senare.\",\r\n theProductWasReplacedWithFollowingProductProducts: \"Produkten är ersatt med följande produkt(er).\",\r\n wasReplacedByFollowingArticles: \" har blivit ersatt av följande artiklar.\",\r\n itWasReplacedByTheFollowingArticles: \"Den är ersatt av följande artiklar: \",\r\n action: \"Åtgärd\",\r\n register: \"Prenumerara\",\r\n unregister: \"Avprenumerera\",\r\n save: \"Spara\",\r\n yourSubscriptionHasBeenUpdated: \"Din nyhetsprenumeration har uppdaterats.\",\r\n somethingWentWrong: \"Någonting gick fel.\",\r\n whereCanIBuy: \"Var kan jag köpa?\",\r\n thePasswordMustAlsoComplyToTheFollowingRules: \"Lösenorder måste uppfylla följande krav: \",\r\n containMinimumSixCharacters: \"Innehålla minst sex tecken\",\r\n containUpperCaseCharacters: \"Innehålla versaler\",\r\n containLowerCaseCharacters: \"Innehålla gemener\",\r\n containANumber: \"Innehålla en siffra\",\r\n containAFigure: \"Innehålla minst ett specialtecken\",\r\n productIsNotAvailable: \"Produkten finns inte tillgänglig\",\r\n withdrawingCookiesConsent: \"Ångrar samtycke till cookies...\",\r\n redirectingToStartPage: \"Omdirigeras till startsidan...\",\r\n video: \"Video\",\r\n startPage: \"start sidan\",\r\n maximum30Letters: \"Det här fältet kan innehålla maximalt 30 tecken.\",\r\n downloadCatalog: \"Ladda ner katalog\",\r\n homeSection1Titel: \"Modellspecifik tvådelslösning\",\r\n homeSection1Text: \"Våra ProClip och enhetshållare är tillverkade modellspecifikt för både enhet och fordon. ProClip monteras naturligt i interiörens springor helt utan skada eller permanenta ändringar. Sök efter vår lösning för just dina behov med hjälp av vårt sökverktyg här nedan. Hittar du inte det du söker så kontakta oss så hjälper vi dig vidare.\",\r\n findRightProclip: \"Hitta rätt ProClip för din bil\",\r\n findRightHolder: \"Hållare för din enhet\",\r\n homeSection2Titel: \"Starkare monteringslösningar\",\r\n homeSection2Text: \"Använder du en surfplatta, streckkodsläsare, betalterminal eller annan mobil enhet som behöver monteras i en truck, entreprenadmaskin eller lastbil? Vi har en lösning för alla dina behov! Med vårt breda sortiment erbjuder vi anpassade lösningar för alla typer av miljöer. Oavsett om det är på kontoret, lagret eller i luften så säkerställer vi att dina enheter alltid är inom räckhåll, även under de mest utmanande förhållandena.\",\r\n homeSectionPedestalHolderTitel: \"Piedestalfästen\",\r\n homeSectionPedestalHolderText: \"Modulärt, lättviktigt och mycket starkt. - Det är vårt sortiment av aluminiumpiedestaler för montering av tyngre enheter vid vardagligt bruk i krävande miljöer.\",\r\n homeSectionPedestalHolderLinkText: \"Mer om piedestalfästen\",\r\n homeSectionPipeHolderTitel: \"Rörfästen\",\r\n homeSectionPipeHolderText: \"Robusta rörfästen som enkelt monteras på rör och stänger. Användningsområdena är många. Lastbilar, truckar, vagnar, båtar och flygplan är exempel på där de används.\",\r\n homeSectionPipeHolderLinkText: \"Mer om rörfästen\",\r\n homeSectionTruckHolderTitel: \"Truckfästen\",\r\n homeSectionTruckHolderText: \"Lagermiljöer innefattar ofta tung utrustning och krävande förhållanden. För enhetsmontering i dessa miljöer krävs rejäla fästen som klarar av påfrestningar och vibrationer.\",\r\n homeSectionTruckHolderLinkText: \"Mer om truckfästen\",\r\n homeSectionCustomSolutionsTitel: \"Skräddarsydda lösningar\",\r\n homeSectionCustomSolutionsText: \"I vår fabrik i Karlsborg sker både utveckling och tillverkning. Om ditt företag eller din verksamhet har särskilda behov och krav så är vårt team av konstruktörer redo för att samarbeta med er och skapa skräddarsydda lösningar och produkter.\",\r\n howIsItMade: \"Såhär går det till\",\r\n homeSection4Text: \"Marknaden introducerar dagligen nya fordon och enheter. Vi har under fyra decennier rustat oss med den kunskap och det nätverk som krävs för att snabbt utveckla, tillverka och leverera produkter till en marknad som är i ständig förändring.\",\r\n deviceHolder: \"Enhetshållare\",\r\n proclip: \"ProClip\",\r\n seeProduct: \"Visa produkt\",\r\n homeSection5Title: \"Behöver du hjälp med att hitta rätt produkter?\",\r\n homeSection5Text: \"Kontakta oss och beskriv dina behov så hjälper vi dig att hitta den bästa lösningen för just dig!\",\r\n proclipAndHolders: \"ProClip och Enhetshållare\",\r\n proclipSection1Title: \"Modellspecifika ProClipfästen och enhetshållare\",\r\n proclipSection1Text: \"Vår tvådelade monteringslösning ger dig en skräddarsydd enhetsmontering som passar perfekt för dina behov. Ena delen är en enhetshållare skapad för att passa just din mobil, surfplatta eller annan handhållen enhet, denna kombineras med en ProClip som är ett fäste byggt specifikt för din bilmodel. ProClip monteras i bilen helt utan skruv och gör därmed ingen skada på interiören. Flexibelt, stabilt och säkert - Enkelt!\",\r\n proclipSection2ProclipText: \"ProClipen är monteringsplattformen för enhetshållaren, syftet med vår ProClip är att kunna montera enhetshållaren i fordonet stabilt och säkert, helt utan att göra permanenta ändringar i bilen så som att borra och skruva i instrumentpanelen. En ProClip klickas istället fast i bilens befintliga springor, paneler eller skarvar på instrumentbrädan. I många fall säkras den sedan av en dubbelhäftande tejp som är speciellt framtagen för att inte lämna några spår efter sig om man vill ta ur eller flytta en ProClip. En ProClip är framtagen specifikt för varje bil- och årsmodell och framtagningen av en ny ProClip är ett hantverk om görs på plats i varje bil och lastbil. Oftast tar vi fram ett par ProClip till varje fordonsmodell för att kunna erbjuda en rad olika placeringar att välja mellan.\",\r\n proclipSection2HolderTitle: \"Enhetshållare\",\r\n proclipBrandsTitle: \"Vi erbjuder ProClip för fordon från ett brett urval av märken, bland annat:\",\r\n deviceBrandsTitle: \"Vi erbjuder hållare för enheter från ett brett urval av varumärken, bland annat:\",\r\n proclipSection2HolderText: \"Enhetshållaren är också designad specifikt för din smartphone, GPS eller annan mobil enhet. Olika val erbjuds utifrån om du har enheten med eller utan skal, önskar laddning med kabel eller trådlöst eller en passiv hållare om du inte önskar laddning. Utöver våra modellspecifika enhetshållare erbjuder vi även justerbara hållare som kan anpassas i höjd eller bredd beroende på vilken enhet du vill använda den till.\",\r\n proclipSection3ProclipBrands: \"ProClip finns för alla dessa fordonsmärkena\",\r\n proclipSection3ProclipDevices: \"Vi har Enhetshållare för bland annat dessa varumärken\",\r\n productDevSection1Title: \"Skräddarsydda lösningar\",\r\n productDevSection1Text: \"I de fall då vårt befintliga sortiment inte räcker för att tillgodose kundens behov, har vi möjlighet att skapa en skräddarsydd monteringslösning.\",\r\n productDevSection2Title: \"Behovsanalys\",\r\n productDevSection2TextPart1: \"Processen inleds med en direkt kommunikation mellan dig, våra säljare och produktutvecklare. Tillsammans identifierar vi behov och potentiella lösningar.\",\r\n productDevSection2TextPart2: \" Behoven kan variera beroende på hur och var enheten ska användas. Dessa behov inkluderar faktorer som tuffa miljöer, tekniska specifikationer, laddnings- och dataöverföringskrav med mera.\",\r\n productDevSection2Part3Title: \"Kostnadsuppskattning och prototyp\",\r\n productDevSection2TextPart3: \"När vi har uppnått en gemensam bild av hur produkten ska utformas presenterar vi en utvecklingskostnad. Om denna kostnad godkänns så går vi vidare med att tillverka en prototyp. Prototypen kan vara en skarp, CNC-bearbetad version eller i vissa fall, en 3D-utskriven prototyp.\",\r\n contactUs: \"Kontakta oss\",\r\n productDevSection3Text: \"Vi sätter inga begränsningar på vad ett kundspecifikt projekt kan innebära, vi har tagit fram unika lösningar till både blåljusverksamhet, livsmedelsföretag, skogsindustrin med mera.\",\r\n seeMore: \"+ Visa fler\",\r\n seeLess: \"- Visa färre\",\r\n addArticleToCart: \"Lägg till artikel\",\r\n megaMenu: \"Om ditt företag eller din verksamhet har särskilda behov och krav så är vårt team av konstruktörer redo för att samarbeta med er och skapa skräddarsydda lösningar och produkter.\",\r\n examplesSpecialCharacters: \"Exempel på specialtecken: \",\r\n areYouSure: \"Är du säker?\",\r\n deleteAllConfirmation: \"Detta kommer ta bort alla produkter i varukorgen.\",\r\n exVat: \"exkl. moms\",\r\n downloadComparisonPdf: \"Ladda hem jämförelse som PDF\",\r\n downloadProductPdf: \"Ladda hem produkt attribut as PDF\",\r\n findProClip: \"Välj en ProClip till ditt fordon\",\r\n findDeviceHolder: \"Hitta din enhetshållare\",\r\n customerDetails: \"Kunduppgifter\",\r\n myPagesEmail: \"E-post:\",\r\n refreshToContinue: \"Ladda om sidan för att fortsätta.\",\r\n adImageAlt: \"Jobb annons\",\r\n numbersOnly: \"Får endast innehålla siffror\",\r\n smsTracking: \"SMS-avisering\",\r\n cellNumber: \"Mobilnummer\",\r\n homeSuctionTitle: \"Sugproppsfästen\",\r\n homeSuctionText: \"Snabb och enkel montering på släta ytor. Möjliggör flexibla lösningar.\",\r\n homeSuctionLinkText: \"Mer om sugproppsfästen\",\r\n homeScreenTitle: \"Skärm och Tangentbordshållare\",\r\n homeScreenText: \"Ergonomiska hållare för skärm och tangentbord, med alternativ för fast eller vikbar hållare, anpassade för krävande miljöer.\",\r\n homeScreenLinkText: \"Mer om skärm och tangentbordshållare\",\r\n homeMoveClipTitle: \"MoveClip\",\r\n homeMoveClipText: \"Möjliggör enkla byten mellan olika hållare på samma monteringsplats, samt ger möjlighet att smidigt använda samma hållare på flera platser.\",\r\n homeMoveClipLinkText: \"Mer om MoveClip\",\r\n homeReadMoreAboutStrong: \"Läs mer om vårt starkare sortiment\",\r\n contactFullname: \"För- och efternamn\",\r\n contactCompany: \"Företag\",\r\n contactPhone: \"Telefon\",\r\n contactEmail: \"Epost\",\r\n contactMessageTitle: \"Vad kan vi hjälpa dig med? *\",\r\n contactSend: \"Skicka förfrågan\",\r\n contactOfficeAndManufacturing: \"Huvudkontor och tillverkning\",\r\n contactMailSent: \"Kontaktförfrågan har skickats.\",\r\n newList: \"Skapa en ny favoritlista\",\r\n productId: \"Artikelnummer\",\r\n errorCreatingFavoriteList: \"En ny lista behöver namn och produkter för att kunna skapas.\",\r\n myLists: \"Mina listor:\",\r\n selectLists: \"Välj listor eller skapa en ny\",\r\n decreaseQuantity: \"Minska antal\",\r\n increaseQuantity: \"Öka antal\",\r\n deleteList: \"Ta bort lista\",\r\n editList: \"Redigera lista\",\r\n unlisted: \"Artiklar ej i lista\",\r\n newName: \"Nytt namn:\",\r\n selectProducts: \"Välj produkter:\",\r\n noListIsEqualToOnlyFavorite: \"Lämna tom för att lägga till i standardad listan\",\r\n showUnlisted: \"Visa olistade\",\r\n showAllFavorites: \"Visa alla favoriter\",\r\n seeProductVideo: \"Se produktfilm\",\r\n selectOption: \"Select an option\",\r\n textField: \"Textfält\",\r\n playVideo: \"Spela video\",\r\n aboutProductDevelopment: \"om vår produkt utveckling\",\r\n aboutProclip: \"om ProClip och hållare\",\r\n about: \"om\",\r\n previousProductImage: \"förra produkt bild\",\r\n nextProductImage: \"nästa produkt bild\",\r\n heartIcon: \"hjärtsymbol\",\r\n deleteListButton: \"radera lista\",\r\n signedInMenu: \"inloggad meny\",\r\n unavailable: \"ej tillgänglig\"\r\n }\r\n})\r\n","import { useUserAuthToken } from \"./userHooks\";\r\nimport { requestCustomerOrders, requestCustomerOrder } from \"../thunk/customerOrderThunk\";\r\nimport { useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nconst useCustomerOrders = (offset, limit) => {\r\n const dispatch = useDispatch();\r\n const authToken = useUserAuthToken();\r\n\r\n useEffect(() => {\r\n const params = { authToken, offset, limit }\r\n dispatch(requestCustomerOrders(params));\r\n }, [offset, limit, authToken, dispatch]);\r\n\r\n return useSelector(state => state.customerOrder.list);\r\n}\r\n\r\nconst useCustomerOrder = id => {\r\n const dispatch = useDispatch();\r\n const authToken = useUserAuthToken();\r\n\r\n useEffect(() => {\r\n const params = { authToken, id };\r\n dispatch(requestCustomerOrder(params));\r\n }, [id, dispatch]);\r\n\r\n return useSelector(state => state.customerOrder.list).find(x => x.OrderNumber === id);\r\n}\r\n\r\nexport { useCustomerOrder, useCustomerOrders };\r\n","import { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n padding: 10,\r\n marginBottom: 10,\r\n boxShadow: \"none\"\r\n },\r\n avatarLarge: {\r\n width: 100,\r\n height: 100,\r\n marginBottom: theme.spacing(1)\r\n },\r\n heading: {\r\n fontWeight: \"bold\",\r\n fontSize: 14\r\n },\r\n bottomContent: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n flexItem: {\r\n flex: \"1 1 0px\"\r\n },\r\n avatarImg: {\r\n width: \"100%\",\r\n height: \"auto\",\r\n objectFit: \"initial\"\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n accordionSummary: {\r\n margin: 0,\r\n height: 36,\r\n minHeight: 0,\r\n \"& div\": {\r\n margin: 0,\r\n minHeight: 0\r\n }\r\n },\r\n basis20: {\r\n flexBasis: \"20%\"\r\n },\r\n padding4: {\r\n padding: 4\r\n },\r\n textField: {\r\n width: \"75px\"\r\n },\r\n mobileTextField: {\r\n width: \"75px\",\r\n marginRight: \"1rem\"\r\n },\r\n loadingAnimation: {\r\n width: \"100%\",\r\n height: 100\r\n },\r\n mobileLoadingAnimation: {\r\n width: \"100%\",\r\n height: \"350px\"\r\n },\r\n flexEnd: {\r\n justifyContent: \"flex-end\"\r\n },\r\n mobileProductCardHeader: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n maxHeight: \"50%\",\r\n overflowY: \"scroll\",\r\n overflowX: \"hidden\",\r\n marginBottom: \"1rem\",\r\n gap: \"1rem\"\r\n },\r\n moreInfo: {\r\n padding: 0,\r\n marginBottom: 0\r\n },\r\n mobilePriceBox: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n maxHeight: \"50%\",\r\n overflowY: \"scroll\",\r\n marginBottom: \"1rem\"\r\n },\r\n marginBottom1: {\r\n marginBottom: \"1rem\"\r\n },\r\n marginNone: {\r\n margin: 0\r\n },\r\n marginRight24: {\r\n marginRight: \"24px\"\r\n },\r\n mobileCartItem: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n backgroundColor: \"#FFFFFF\",\r\n borderRadius: \"5px\",\r\n marginBottom: \"10px\",\r\n fontSize: \"15px\",\r\n fontFamily: \"Arial\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n fontSize: \"12px\"\r\n }\r\n },\r\n mobileRow: {\r\n display: \"flex\",\r\n flex: \"0 1 100%\"\r\n },\r\n mobileImageWrapper: {\r\n display: \"flex\",\r\n flex: \"1 1 200px\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n padding: \"10px\"\r\n },\r\n mobileTitleWrapper: {\r\n flex: \"0 1 100%\",\r\n padding: \"10px\"\r\n },\r\n mobileTitle: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\"\r\n },\r\n spaceBetween: {\r\n justifyContent: \"space-between\"\r\n },\r\n mobilePriceLeft: {\r\n display: \"flex\",\r\n flex: \"0 0 60%\",\r\n alignItems: \"center\"\r\n },\r\n mobilePriceRight: {\r\n display: \"flex\",\r\n flex: \"0 0 40%\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\"\r\n },\r\n mobilePadded: {\r\n padding: \"10px\"\r\n },\r\n mobileDescription: {\r\n marginTop: \"10px\"\r\n },\r\n mobileProductId: {\r\n fontSize: \"14px\"\r\n },\r\n mobileButtonWrapper: {\r\n display: \"flex\"\r\n },\r\n mobileProductImage: {\r\n width: \"auto\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"75px\"\r\n }\r\n },\r\n mobileLink: {\r\n color: \"#2d2d2d\",\r\n textDecoration: \"none\",\r\n fontWeight: \"600\"\r\n },\r\n mobileAccordion: {\r\n flex: \"0 1 100%\",\r\n boxShadow: \"none\",\r\n backgroundColor: \"#fbfbfb\"\r\n },\r\n mobileNoteInput: {\r\n flex: \"0 1 100%\",\r\n backgroundColor: \"#fbfbfb\",\r\n color: \"#2d2d2d\",\r\n border: 0,\r\n padding: \"16px\"\r\n },\r\n bareLink: {\r\n color: \"#2d2d2d\",\r\n textDecoration: \"none\"\r\n }\r\n}))\r\n","/* eslint-disable no-restricted-globals */\r\nimport useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { deleteCartRow, editCartNote, setQuantity } from \"../../../redux/cartSlice\"\r\nimport { useProductsLoading } from \"../../../redux/hook/productHooks\"\r\nimport FavoriteButton from \"../../Favorites/FavoriteButton\"\r\nimport Banner from \"../../Products/Banner/Banner\"\r\nimport CompatibleModels from \"../../Products/ProductInfo/components/CompatibleModels/CompatibleModels\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport {\r\n Avatar, Box, IconButton, Paper, TextField, Tooltip, Typography,\r\n Skeleton\r\n} from \"@mui/material\"\r\nimport DeleteIcon from \"@mui/icons-material/Delete\"\r\n\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst ProductCardOrder = ({\r\n id, price, currency, quantity, deliveredQuantity, isModifiable, index, text, product\r\n}) => {\r\n const classes = useStyles()\r\n const loading = useProductsLoading()\r\n const dispatch = useDispatch()\r\n const language = useLanguage()\r\n\r\n const quantityChanged = e => {\r\n const n = e.target.value !== \"\" ? e.target.value : 0\r\n const isNumber = !isNaN(parseFloat(n)) && isFinite(n)\r\n if (!isNumber) return\r\n const parsed = parseInt(n, 10)\r\n dispatch(setQuantity(parsed, index))\r\n }\r\n\r\n const deleteProduct = () => {\r\n dispatch(deleteCartRow(index))\r\n }\r\n\r\n const noteChanged = e => {\r\n const t = e.target.value\r\n dispatch(editCartNote(t, index))\r\n }\r\n\r\n // Product is not yet loaded..\r\n if (product === undefined && loading) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // When product is ordered but cannot be found return card with info\r\n if (product === undefined) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {id}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.thisProductIsNotAvailableOrder}\r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n {formatAmount(quantity)}\r\n \r\n {deliveredQuantity !== undefined ? (\r\n \r\n {formatAmount(deliveredQuantity) || \"0\"}\r\n \r\n ) : (null)}\r\n \r\n {formatPrice(price)}\r\n \r\n \r\n {formatPrice(price * quantity)}\r\n \r\n \r\n {isModifiable\r\n ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {product.isNew && }\r\n {product.comingSoon && }\r\n {!product.comingSoon && !product.isNew && }\r\n { /* */ /* Not in first iteration.. */}\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {product.originalId}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {product.name}\r\n \r\n \r\n \r\n {product.description}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {deliveredQuantity !== undefined ? (\r\n \r\n {formatAmount(deliveredQuantity) || \"0\"}\r\n \r\n ) : (null)}\r\n \r\n \r\n {formatPrice(price)}\r\n {\" \"}\r\n {currency}\r\n \r\n \r\n \r\n \r\n {formatPrice(price * quantity)}\r\n {\" \"}\r\n {currency}\r\n \r\n \r\n \r\n {isModifiable\r\n ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ProductCardOrder\r\n","import { createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nexport const priceAdapter = createEntityAdapter({\r\n selectId: price => price.productId\r\n});\r\n\r\nexport const priceSelectors = priceAdapter.getSelectors(state => state.price);\r\n\r\nexport const { selectById } = priceSelectors;\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\n// Uses the user steering setting on english website,\r\n// and defaults to LHD on swedish language.\r\nexport const useSteering = () => {\r\n const language = useLanguage()\r\n return useSelector(\r\n state => (\r\n language === \"en\"\r\n ? (state.user.steering ?? \"1\")\r\n : \"1\"\r\n )\r\n )\r\n}\r\n\r\nexport const useUser = () => useSelector(state => state.user)\r\n\r\nexport const useIsUserAuthorized = () => {\r\n const isAuthorized = useSelector(state => Boolean(state.user.authToken))\r\n const item = sessionStorage.getItem(\"isAuthorized\")\r\n\r\n return isAuthorized && !!item\r\n}\r\n\r\nexport const useUserAuthToken = () => useSelector(state => state.user.authToken)\r\n\r\nexport const useUserData = () => useSelector(state => state.user.user)\r\n\r\nexport const useSelectedModTek = () => useSelector(state => state.user.selectedModTek)\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n youtubeVideoWrapper: {\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flex: \"0 0 70%\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n\r\n },\r\n flex: \"0 0 45%\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nfunction YoutubeVideo({\r\n link,\r\n ...props\r\n}) {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default YoutubeVideo\r\n","import useStyles from \"./styles\"\r\nimport { checkMonitorArticles } from \"../../lib/helper/userHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { addToCart } from \"../../redux/cartSlice\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport {\r\n Box, Button, InputAdornment, TextField, Tooltip, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React, { useRef, useState, useEffect } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst SpeedOrderNavbar = () => {\r\n const dispatch = useDispatch()\r\n const [loading, setLoading] = useState(false)\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n const ref = useRef()\r\n const [quantity, setQuantity] = useState(null)\r\n const isDesktop = useMediaQuery(theme => theme.breakpoints.up(desktopBreakpoint))\r\n\r\n const defaultValues = {\r\n articleNumber: null,\r\n quantity: null\r\n }\r\n\r\n const {\r\n register, handleSubmit, reset, setValue\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const parse = i => parseInt(i, 10)\r\n\r\n useEffect(() => {\r\n setValue(\"quantity\", quantity)\r\n }, [quantity])\r\n\r\n const onSubmit = data => {\r\n checkMonitorArticles(lang, [data.articleNumber], result => {\r\n if (!result.includes(data.articleNumber) && data.quantity > 0) {\r\n const q = parse(data.quantity)\r\n dispatch(addToCart(data.articleNumber, q))\r\n setQuantity(0)\r\n dispatch(setSnackbarMessage(`${Localization.itemNumber} ${data.articleNumber} ${Localization.hasBeenAddedToCart}`, \"success\"))\r\n reset()\r\n } else if (data.quantity === 0) {\r\n dispatch(setSnackbarMessage(Localization.articleCouldNotBeAddedQuantityZero, \"error\"))\r\n } else {\r\n dispatch(setSnackbarMessage(`${Localization.itemNumber} ${data.articleNumber} ${Localization.couldNotBePlacedInCart}`, \"error\"))\r\n }\r\n }, setLoading)\r\n\r\n ref.current?.focus()\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n setQuantity(quantity > 0 ? quantity - 1 : 0)}\r\n tabIndex={-1}\r\n style={{\r\n border: \"none\",\r\n height: 29,\r\n backgroundColor: \"transparent\"\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n setQuantity(quantity + 1)}\r\n tabIndex={-1}\r\n style={{\r\n border: \"none\",\r\n height: 29,\r\n backgroundColor: \"transparent\"\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n style={{\r\n width: 200,\r\n borderRadius: \"4px\",\r\n // border: \" 0.5px solid #BDBDBD\",\r\n background: \"rgba(217, 217, 217, 0.10)\",\r\n color: \" var(--Dark-Grey, #6C6C6C)\",\r\n leadingTrim: \"both\",\r\n textEdge: \"cap\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"20px\", /* 117.647% */\r\n letterSpacing: \" 0.25px\"\r\n }}\r\n id=\"addProduct\"\r\n variant=\"outlined\"\r\n placeholder={Localization.itemNumber}\r\n size=\"small\"\r\n inputRef={ref}\r\n className={classes.textField}\r\n {...register(\"articleNumber\", { required: true })}\r\n />\r\n \r\n \r\n \r\n \r\n {Localization.addToCart}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SpeedOrderNavbar\r\n","import { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport React, { useState } from \"react\"\r\nimport { IconButton, Tooltip } from \"@mui/material\"\r\nimport { makeStyles } from \"@mui/styles\"\r\nimport PictureAsPdfIcon from \"@mui/icons-material/PictureAsPdf\"\r\nimport axios from \"axios\"\r\n\r\nconst useStyles = makeStyles(() => ({\r\n iconButton: {\r\n padding: 4,\r\n color: \"#2d2d2d\"\r\n }\r\n}))\r\n\r\nconst ReportButton = ({ productId }) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n const [downloading, setDownloading] = useState(false)\r\n\r\n const downloadReport = () => {\r\n setDownloading(true);\r\n (async () => {\r\n let data\r\n let statusCode = 0\r\n\r\n try {\r\n await axios.get(`/api/ProductInfo/GetProductReport?id=${productId}&language=${lang}`, { responseType: \"blob\" })\r\n .then(resp => {\r\n data = resp.data\r\n statusCode = resp.status\r\n }).catch(err => {\r\n if (err.response) {\r\n statusCode = err.response.status\r\n }\r\n })\r\n } catch (error) {\r\n console.error(\"Error fetching data with axios\")\r\n }\r\n\r\n setDownloading(false)\r\n\r\n if (statusCode !== 200) return\r\n\r\n const url = window.URL.createObjectURL(new Blob([data]))\r\n const link = document.createElement(\"a\")\r\n link.href = url\r\n link.setAttribute(\"download\", `${productId}_${lang}.pdf`)\r\n document.body.appendChild(link)\r\n link.click()\r\n link.parentNode.removeChild(link)\r\n })()\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ReportButton\r\n","export default __webpack_public_path__ + \"static/media/magnifying-glass.b4b44b94.svg\";","import { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n wrapper: {\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"93%\",\r\n padding: \"10px 6px 10px 6px\"\r\n }\r\n },\r\n searchInput: {\r\n display: \"flex\",\r\n position: \"relative\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n textAlign: \"left\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n \"&:focus\": {\r\n outline: \"unset\"\r\n }\r\n },\r\n searchInputWrapper: {\r\n position: \"relative\",\r\n flex: \"1 1 100%\",\r\n \"&:after\": {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n height: \"1px\",\r\n backgroundColor: \"#2D2D2D\",\r\n content: \"''\",\r\n opacity: 0.1\r\n }\r\n }\r\n}))\r\n","import MagnifyingGlass from \"./assets/magnifying-glass.svg\"\r\nimport useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { setSearchQuery } from \"../../redux/searchReducer\"\r\nimport { useSearchQuery } from \"../../redux/hook/searchHooks\"\r\nimport { useSteering } from \"../../redux/hook/userHooks\"\r\nimport { clearSearchResult } from \"../../redux/productReducer\"\r\nimport { setShowNavbarSearch } from \"../../redux/settingsReducer\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React, { useEffect, useState } from \"react\"\r\n\r\nconst AsyncSearch = ({ style, ...props }) => {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const [searchText, setSearchText] = useState(\"\")\r\n const [_query, setQuery] = useState(\"\")\r\n const [redirect, setRedirect] = useState(false)\r\n\r\n const asyncSearchSearchQuery = useSearchQuery(\"asyncSearch\")\r\n const steering = useSteering()\r\n const language = useLanguage()\r\n const navigate = useNavigate()\r\n\r\n const handleEdit = e => {\r\n setSearchText(e.target.value)\r\n }\r\n\r\n const handleKeyUp = e => {\r\n if (e.keyCode === 13) {\r\n dispatch(setShowNavbarSearch(false))\r\n setRedirect(true)\r\n navigate(`/${language}/filter/`)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const delayDebounceFn = setTimeout(() => {\r\n setQuery(searchText)\r\n }, 750)\r\n\r\n return () => clearTimeout(delayDebounceFn)\r\n }, [searchText])\r\n\r\n useEffect(() => () => {\r\n setRedirect(false)\r\n })\r\n\r\n const searchOnText = (ignoreSteering = false) => {\r\n const steeringFilter = { steering: [steering, \"3\"] }\r\n dispatch(setSearchQuery({\r\n type: \"asyncSearch\",\r\n value: (\r\n {\r\n texts: [searchText.trim()],\r\n ...(ignoreSteering ? {} : steeringFilter)\r\n }\r\n ),\r\n clearFilter: true\r\n }))\r\n }\r\n\r\n useEffect(() => {\r\n if (redirect) {\r\n // When the search term is a product number, ignore the steering.\r\n const isProductNumber = Boolean(\r\n searchText.trim().match(/^\\d\\d\\d\\d\\d\\d$/)\r\n )\r\n searchOnText(isProductNumber)\r\n navigate(`/${language}/filter`)\r\n }\r\n }, [searchText, redirect, dispatch])\r\n\r\n useEffect(() => {\r\n if (Object.entries(asyncSearchSearchQuery).length > 0) {\r\n dispatch(clearSearchResult())\r\n searchOnText()\r\n }\r\n }, [steering])\r\n\r\n return (\r\n
\r\n \r\n \"Search\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AsyncSearch\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n steeringButton: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\",\r\n borderRadius: \"6px\",\r\n padding: 0,\r\n overflow: \"hidden\",\r\n border: \"1px solid #F09057\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n },\r\n option: {\r\n flex: \"0 0 50%\",\r\n position: \"relative\",\r\n zIndex: 2,\r\n padding: \"6px\",\r\n background: 0,\r\n border: 0,\r\n transition: \"all 0.1s ease-in\",\r\n cursor: \"pointer\",\r\n color: \"#2d2d2d\"\r\n },\r\n active: {\r\n color: \"white\",\r\n cursor: \"auto\"\r\n },\r\n slide: {\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n left: \"50%\",\r\n right: 0,\r\n backgroundColor: \"#F09057\",\r\n transition: \"all 0.1s ease-in\",\r\n zIndex: 1\r\n },\r\n slideRight: {\r\n left: \"0\",\r\n right: \"50%\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useSteering, useUserAuthToken, useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { useSetPreferredSteeringMutation } from \"../../../redux/services/broditWebApi\"\r\nimport { changeSteering } from \"../../../redux/userSlice\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nfunction LeftRightSteeringFilter({ mobileSearchArea }) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const steering = useSteering()\r\n\r\n const isUserAuthorized = useIsUserAuthorized()\r\n const authToken = useUserAuthToken()\r\n\r\n const [setPreferredSteering] = useSetPreferredSteeringMutation()\r\n\r\n const handleButtonPress = preferredSteering => {\r\n if (isUserAuthorized) {\r\n setPreferredSteering({\r\n preferredSteering: preferredSteering,\r\n authToken: authToken\r\n })\r\n }\r\n\r\n dispatch(changeSteering(preferredSteering))\r\n }\r\n\r\n return (\r\n
\r\n
\r\n handleButtonPress(\"1\")}\r\n className={`${classes.option} ${steering === \"1\" ? classes.active : \"\"}`}\r\n >\r\n LHD\r\n \r\n handleButtonPress(\"2\")}\r\n className={`${classes.option} ${steering === \"2\" ? classes.active : \"\"}`}\r\n >\r\n RHD\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LeftRightSteeringFilter\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n userInfoWrapper: {\r\n flex: \"0 1 100%\"\r\n },\r\n titleRow: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n fontSize: \"18px\",\r\n fontWeight: 500,\r\n marginBottom: \"8px\"\r\n },\r\n customerGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"auto\"\r\n },\r\n addressGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"400px 400px\",\r\n marginBottom: \"100px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n gridTemplateColumns: \"300px 300px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n gap: \"20px\",\r\n gridTemplateColumns: \"auto\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useUser, useUserData } from \"../../redux/hook/userHooks\"\r\nimport { LocalShipping, Payment, PersonOutline } from \"@mui/icons-material\"\r\nimport React from \"react\"\r\n\r\nconst UserInfo = () => {\r\n const user = useUser()\r\n const userData = useUserData()\r\n const classes = useStyles()\r\n\r\n const addresses = [\r\n {\r\n icon: ,\r\n title: Localization.standardShippingAddress,\r\n rows: [\r\n user?.addresses?.deliveryAddress?.Row1,\r\n user?.addresses?.deliveryAddress?.Row2,\r\n user?.addresses?.deliveryAddress?.Row4\r\n ]\r\n },\r\n {\r\n icon: ,\r\n title: Localization.billingAddress,\r\n rows: [\r\n user?.addresses?.invoiceAddress?.Row1,\r\n user?.addresses?.invoiceAddress?.Row2,\r\n user?.addresses?.invoiceAddress?.Row4\r\n ]\r\n }\r\n ]\r\n\r\n const renderAddressField = (icon, title, rows = []) => {\r\n const safeTitle = title || \"default-title\"\r\n\r\n return (\r\n
\r\n
\r\n {icon}\r\n {title || \"Untitled\"}\r\n
\r\n {rows.map((row, index) => (\r\n
{row}
\r\n ))}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n {\" \"}\r\n {Localization.customerDetails}\r\n
\r\n
\r\n
{`${Localization.customerNumber} ${userData?.customerNumber}`}
\r\n
{`${Localization.name} ${userData?.name}`}
\r\n
{`${Localization.myPagesEmail} ${userData?.email}`}
\r\n
\r\n
\r\n
\r\n {addresses.map(address => renderAddressField(address.icon, address.title, address.rows))}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default UserInfo\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n iconButton: {\r\n padding: 4\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { addToCompare, removeFromCompare } from \"../../redux/compareProductsReducer\"\r\nimport { useCompareCount } from \"../../redux/hook/compareHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport React from \"react\"\r\nimport { IconButton, Tooltip } from \"@mui/material\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport CompareIcon from \"@mui/icons-material/Compare\"\r\n\r\nconst CompareToggleButton = ({ productId }) => {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const compareCount = useCompareCount()\r\n\r\n const addItemToCompare = () => {\r\n dispatch(addToCompare(productId))\r\n }\r\n\r\n const removeItemFromCompare = () => {\r\n dispatch(removeFromCompare(productId))\r\n }\r\n\r\n const productInCompare = useSelector(state => {\r\n const productIds = state.compareProduct.productIds;\r\n return productIds.includes(productId);\r\n })\r\n\r\n const onClick = () => {\r\n if (!productInCompare) {\r\n if (compareCount < 2) {\r\n addItemToCompare()\r\n } else {\r\n dispatch(setSnackbarMessage(Localization.compareMaxTwoArticles, \"warning\"))\r\n }\r\n } else {\r\n removeItemFromCompare()\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CompareToggleButton\r\n","import { productAdapter } from \"./adapter/productAdapter\"\r\nimport { requestProduct, requestProducts, requestFilteredProducts } from \"./thunk/productThunk\"\r\nimport { prepareProducts } from \"../components/CompareProducts/helperFunctions\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst slice = createSlice({\r\n name: \"product\",\r\n initialState: productAdapter.getInitialState({\r\n modtekProducts: productAdapter.getInitialState(),\r\n relatedProducts: productAdapter.getInitialState(),\r\n lastProductFetch: [],\r\n lastFetchItemCount: 0,\r\n lastFetchProperties: {\r\n brands: [],\r\n productNames: []\r\n },\r\n loading: false,\r\n pendingRequests: 0\r\n }),\r\n reducers: {\r\n reset: () => {\r\n productAdapter.removeAll()\r\n },\r\n deleteSearchResult: state => {\r\n state.lastProductFetch = []\r\n state.lastFetchItemCount = 0\r\n state.lastFetchProperties = {\r\n brands: [],\r\n productNames: []\r\n }\r\n }\r\n },\r\n extraReducers: builder => {\r\n // Request one\r\n builder.addCase(requestProduct.pending, state => {\r\n state.pendingRequests += 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n builder.addCase(requestProduct.fulfilled, (state, action) => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n\r\n const pagedList = action.payload?.pagedList.response\r\n if (!pagedList || pagedList.list.length === 0) {\r\n return\r\n }\r\n\r\n const products = prepareProducts(pagedList.list, action.meta.arg.lang)\r\n productAdapter.addOne(state, products[0])\r\n })\r\n\r\n builder.addCase(requestProduct.rejected, state => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n\r\n builder.addCase(requestProducts.pending, state => {\r\n state.pendingRequests += 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n builder.addCase(requestProducts.fulfilled, (state, action) => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n\r\n const pagedList = action.payload?.pagedList.response\r\n if (!pagedList || pagedList.list.length === 0) {\r\n return\r\n }\r\n\r\n const products = prepareProducts(pagedList.list, action.meta.arg.lang)\r\n\r\n const key = action.meta.arg.key\r\n\r\n switch (key) {\r\n case \"modtek\":\r\n productAdapter.removeAll(state.modtekProducts)\r\n productAdapter.addMany(state.modtekProducts, products)\r\n break\r\n case \"related\":\r\n productAdapter.removeAll(state.relatedProducts)\r\n productAdapter.addMany(state.relatedProducts, products)\r\n break\r\n default:\r\n productAdapter.addMany(state, products)\r\n }\r\n })\r\n builder.addCase(requestProducts.rejected, state => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n\r\n // Request many\r\n builder.addCase(requestFilteredProducts.pending, state => {\r\n state.pendingRequests += 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n builder.addCase(requestFilteredProducts.fulfilled, (state, action) => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n\r\n const pagedList = action.payload?.pagedList.response\r\n if (!pagedList) {\r\n return\r\n }\r\n\r\n const products = prepareProducts(pagedList.list, action.meta.arg.lang)\r\n state.lastProductFetch = products.map(x => x.originalId)\r\n state.lastFetchItemCount = pagedList.pagingHeader.totalItems\r\n state.lastFetchProperties = {\r\n brands: action.payload.brands,\r\n productNames: action.payload.names\r\n }\r\n\r\n productAdapter.addMany(state, products)\r\n })\r\n builder.addCase(requestFilteredProducts.rejected, state => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n }\r\n})\r\n\r\nconst { reset, deleteSearchResult } = slice.actions\r\n\r\nexport default slice.reducer\r\n\r\nexport const resetProductsCache = () => dispatch => {\r\n dispatch(reset())\r\n}\r\n\r\nexport const clearSearchResult = () => dispatch => {\r\n dispatch(deleteSearchResult())\r\n}\r\n","/* eslint-disable import/prefer-default-export */\r\nimport { selectById } from \"../adapter/materialAdapter\"\r\nimport { createAsyncThunk } from \"@reduxjs/toolkit\"\r\nimport axios from \"axios\"\r\n\r\nconst internalLangConvert = lang => (lang === \"en\" ? \"EN1\" : \"SV1\")\r\n\r\nconst fetchMaterial = async (id, lang) => {\r\n const a = await axios.get(\r\n `/api/ProductInfo/MaterialDetails?materialId=${id}&lang=${internalLangConvert(lang)}`\r\n )\r\n return a.data\r\n}\r\n\r\nexport const requestMaterial = createAsyncThunk(\r\n \"material/fetchById\",\r\n async params => {\r\n const { id, lang } = params\r\n return fetchMaterial(id, lang)\r\n },\r\n {\r\n condition: (params, { getState }) => {\r\n const { id, lang } = params\r\n const existing = selectById(getState(), `${lang}-${id}`)\r\n return !existing\r\n }\r\n }\r\n)\r\n","export default __webpack_public_path__ + \"static/media/carMount.54f0099a.png\";","import { makeStyles } from \"@mui/styles\"\r\n\r\nconst drawerWidth = \"100%\"\r\n\r\nexport default makeStyles(() => ({\r\n appMenu: {\r\n width: \"auto\"\r\n },\r\n navList: {\r\n width: drawerWidth\r\n },\r\n menuItem: {\r\n width: drawerWidth\r\n },\r\n menuItemIcon: {\r\n color: \"#97c05c\"\r\n },\r\n drawer: {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n bottom: \"0\",\r\n top: \"auto\",\r\n zIndex: -1,\r\n backgroundColor: \"#FFFFFF\",\r\n transition: \"all 0.1s ease-in\",\r\n boxShadow: \"0px 0px 5px 0px rgba(45, 45, 45, 0.05)\"\r\n },\r\n open: {\r\n transform: \"translateY(99%)\"\r\n },\r\n backButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n backgroundColor: \"#F8F8F8\",\r\n paddingTop: \"8px\",\r\n paddingBottom: \"8px\",\r\n paddingLeft: \"20px\",\r\n border: 0,\r\n cursor: \"pointer\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 400,\r\n letterSpacing: \"0.25px\",\r\n gap: \"5px\",\r\n color: \"#2d2d2d\"\r\n },\r\n collectionTitle: {\r\n margin: 0,\r\n textAlign: \"right\",\r\n paddingTop: \"20px\",\r\n paddingRight: \"20px\",\r\n paddingLeft: \"20px\",\r\n paddingBottom: \"14px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.5px\"\r\n },\r\n readMoreLink: {\r\n textDecoration: \"none\",\r\n padding: \"10px 20px 10px 20px\",\r\n background: \"#F09057\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"center\",\r\n borderRadius: \"4px\",\r\n transition: \"all 0.1s ease-in\",\r\n color: \"#2D2D2D\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/largelogo.cea58660.png\";","import { useState, useEffect } from \"react\";\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height\r\n };\r\n}\r\n\r\nexport default function useWindowDimensions() {\r\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions());\r\n }\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n return windowDimensions;\r\n}\r\n","export default __webpack_public_path__ + \"static/media/holder.b0b5d705.png\";","import { declineCookies } from \"../../redux/gdprSlice\"\r\nimport { signOut } from \"../../redux/userSlice\"\r\n\r\nconst withdrawCookiesConsent = (skipReload = false) => dispatch => {\r\n dispatch(declineCookies())\r\n dispatch(signOut())\r\n\r\n // Couldn't find a good way to uninitialize GA4.\r\n // The GA4 cookie is recreated if removed.\r\n // Quick fix: Reloading the page prevents it from reinitializing GA4,\r\n // and the cookie is removed again in StateHandler.\r\n if (!skipReload) window.location.reload()\r\n}\r\n\r\nexport default withdrawCookiesConsent\r\n","import NewlineText from \"./NewlineText\"\r\nimport React from \"react\"\r\n\r\nexport default function Text({ text, technicalInformation = false }) {\r\n return (\r\n \r\n )\r\n}\r\n","import { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useProduct } from \"../../../../redux/hook/productHooks\"\r\nimport Text from \"../components/Text/index\"\r\nimport useStyles from \"../styles\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Table, TableBody, TableCell, TableRow, Typography\r\n} from \"@mui/material\"\r\n\r\nexport default function Specification({ id }) {\r\n const product = useProduct(id)\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n {Localization.productInformation}\r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n {product.originalId}\r\n \r\n \r\n {Localization.eanNumber}\r\n {product.eanNumber}\r\n \r\n \r\n
\r\n {product.properties.length > 0\r\n ? (\r\n \r\n {Localization.properties}\r\n \r\n \r\n {product.properties.map(item => (\r\n \r\n {item.displayName}\r\n {item.value}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n )\r\n : null}\r\n {product.chargingSpecification\r\n && (\r\n <>\r\n {Localization.chargingSpecification}\r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n marginBottom: {\r\n marginBottom: 40\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexEnd: {\r\n justifyContent: \"flex-end\",\r\n marginLeft: 50\r\n },\r\n spaceEven: {\r\n justifyContent: \"space-evenly\"\r\n },\r\n orderLineContent: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(2)\r\n },\r\n listItemGutters: {\r\n padding: 0\r\n },\r\n externalLinkIcon: {\r\n padding: 4,\r\n verticalAlign: \"middle\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport ExternalLinkIcon from \"../../../lib/icons/ExternalLink/ExternalLinkIcon\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useUser } from \"../../../redux/hook/userHooks\"\r\nimport HeadingRow from \"../../Order/ProductCardOrder/HeadingRow/HeadingRow\"\r\nimport ProductCardOrder from \"../../Order/ProductCardOrder/ProductCardOrder\"\r\nimport getStatusText from \"../functions\"\r\nimport { Link } from \"react-router-dom\"\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\nimport LocalShippingIcon from \"@mui/icons-material/LocalShipping\"\r\nimport AssignmentTurnedInIcon from \"@mui/icons-material/AssignmentTurnedIn\"\r\nimport {\r\n ArrowBack, CheckCircleOutline,\r\n ConfirmationNumber, CreditCard, Notes, PersonOutline, Receipt, ThumbUp\r\n} from \"@mui/icons-material\"\r\nimport {\r\n Box, Button, Link as SimpleLink, List, ListItem, Typography\r\n} from \"@mui/material\"\r\n\r\nconst OrderInfo = ({ customerOrder, isOrderConfirmation }) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n const user = useUser()\r\n\r\n const getDate = a => {\r\n const date = new Date(a)\r\n return date.toLocaleDateString()\r\n }\r\n\r\n const findComment = position => customerOrder.Rows.find(\r\n x => x.Position === position && x.Type === 4 && x.TextType === 7\r\n )?.Text\r\n\r\n return (\r\n \r\n {isOrderConfirmation ? (\r\n <>\r\n \r\n {Localization.orderConfirmation}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {Localization.order}\r\n {\" \"}\r\n {customerOrder.OrderNumber}\r\n \r\n \r\n \r\n {getStatusText(customerOrder.Status)}\r\n \r\n \r\n )}\r\n {isOrderConfirmation ? (\r\n \r\n \r\n {Localization.thankYouForOrder}\r\n \r\n {Localization.orderIsProcessing}\r\n \r\n ) : (\r\n null\r\n )}\r\n \r\n \r\n \r\n {isOrderConfirmation ? (\r\n <>\r\n \r\n {Localization.checkOrderDetails}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n {Localization.orderNumber}\r\n :\r\n {\" \"}\r\n {customerOrder.OrderNumber}\r\n \r\n \r\n {Localization.orderDate}\r\n :\r\n {\" \"}\r\n {getDate(customerOrder.OrderDate)}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {\" \"}\r\n {formatAmount(customerOrder.TotalOrderLines)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {\" \"}\r\n {formatAmount(customerOrder.TotalProducts)}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(customerOrder.TotalSum)}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.messageToBrodit}\r\n :\r\n {\" \"}\r\n {\r\n customerOrder.Rows.filter(\r\n x => x.Position === null && x.Type === 4\r\n )[0]?.Text\r\n }\r\n \r\n \r\n {Localization.purchaseOrder}\r\n :\r\n {\" \"}\r\n {customerOrder.YourOrderNumber}\r\n \r\n \r\n {Localization.orderPlacedBy}\r\n :\r\n {\" \"}\r\n {customerOrder.YourReference}\r\n \r\n \r\n {Localization.orderEmail}\r\n :\r\n {\" \"}\r\n {customerOrder.Email}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.shippingAddress}\r\n \r\n {customerOrder.DeliveryAddress ? (\r\n <>\r\n {customerOrder.DeliveryAddress.Row1}\r\n {customerOrder.DeliveryAddress.Row2}\r\n {customerOrder.DeliveryAddress.Row4}\r\n {customerOrder.DeliveryAddress.Row5}\r\n \r\n ) : null}\r\n \r\n {(!isOrderConfirmation && customerOrder.Shipments.length > 0)\r\n && (\r\n \r\n \r\n \r\n {Localization.trackShipment}\r\n \r\n \r\n {customerOrder.Shipments.map((shipment, i) => (\r\n \r\n \r\n {Localization.parcel}\r\n {\" \"}\r\n #\r\n {i + 1}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {Localization.billingAddress}\r\n \r\n {customerOrder.InvoiceAddress ? (\r\n <>\r\n {customerOrder.InvoiceAddress.Row1}\r\n {customerOrder.InvoiceAddress.Row2}\r\n {customerOrder.InvoiceAddress.Row4}\r\n {customerOrder.InvoiceAddress.Row5}\r\n \r\n ) : null}\r\n \r\n \r\n {isOrderConfirmation && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isOrderConfirmation && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {customerOrder.Rows.filter(x => x.Type === 1).map((row, i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default OrderInfo\r\n","import useStyles from \"./VehicleNewsListPage/styles\"\r\nimport Thumbnail from \"../Thumbnail\"\r\nimport { Typography } from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\nimport React from \"react\"\r\n\r\nfunction NewsItem({\r\n news, url, alt, isDevice = false, ...props\r\n}) {\r\n const classes = useStyles()\r\n\r\n const getTitle = () => {\r\n let title = \"\"\r\n\r\n title += news.title ? news.title : \"\"\r\n title += news.year ? ` ${news.year}` : \"\"\r\n\r\n return title\r\n }\r\n\r\n const getSubtitle = () => {\r\n let subtitle = \"\"\r\n\r\n subtitle += news.placement ? news.placement : \"\"\r\n subtitle += news.products.length > 0 ? ` (${news.products[0]})` : \"\"\r\n\r\n return subtitle\r\n }\r\n\r\n return (\r\n
\r\n \r\n {new Date(news.dateTime).toLocaleDateString()}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {getTitle()}\r\n
\r\n
\r\n {!isDevice &&
{getSubtitle()}
}\r\n
\r\n \r\n
\r\n )\r\n}\r\nexport default NewsItem\r\n","import { mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n publishedText: {\r\n marginTop: 50,\r\n marginBottom: 15\r\n },\r\n itemThumbnail: {\r\n width: \"100%\",\r\n minHeight: 500\r\n },\r\n container: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3)\r\n },\r\n pageTitle: {\r\n display: \"flex\",\r\n gap: 25,\r\n marginTop: 50,\r\n flexWrap: \"wrap\"\r\n },\r\n skeletonText: {\r\n marginTop: 50,\r\n marginBottom: 15,\r\n width: \"33%\"\r\n },\r\n skeletonRect: {\r\n height: 500\r\n },\r\n newsGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"50% 50%\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n gridTemplateColumns: \"100%\"\r\n }\r\n },\r\n newsCard: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n link: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"1 1 100%\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\"\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"flex-end\",\r\n background: \"#FFFFFF\",\r\n padding: \"10px 16px 16px 16px\",\r\n gap: \"8px\",\r\n borderRadius: \"0 0 6px 6px\"\r\n },\r\n titleWrapper: {\r\n display: \"flex\"\r\n },\r\n title: {\r\n fontFamily: \"Rubik\",\r\n fontWeight: 400,\r\n fontSize: \"20px\",\r\n borderBottom: \"1px solid transparent\",\r\n \"&:hover\": {\r\n borderBottom: \"1px solid #2D2D2D\"\r\n }\r\n },\r\n subtitle: {\r\n fontFamily: \"Rubik\",\r\n fontWeight: 400,\r\n fontSize: \"16px\"\r\n }\r\n}))\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n cardRoot: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n flexGrow: 1,\r\n height: \"auto\",\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: 5.5,\r\n paddingBottom: 5.5\r\n },\r\n boxShadow: \"none\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"auto\"\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, tabletBreakpoint)]: {\r\n width: 400\r\n }\r\n },\r\n cardRootMni: {\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: 5.5,\r\n paddingBottom: 5.5\r\n },\r\n boxShadow: \"none\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"auto\"\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, tabletBreakpoint)]: {\r\n width: 400\r\n }\r\n },\r\n media: {\r\n height: 0,\r\n paddingTop: \"50.00%\",\r\n backgroundSize: \"contain\"\r\n },\r\n cardContent: {\r\n display: \"flex\",\r\n flex: \"1 0 auto\",\r\n justifyContent: \"space-between\",\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\"\r\n },\r\n cardContentMini: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n padding: 0\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexGrow: 1\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1\r\n },\r\n flexRowMini: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n bannerArea: {\r\n display: \"flex\",\r\n height: \"auto\",\r\n alignItems: \"flex-start\",\r\n whiteSpace: \"nowrap\"\r\n },\r\n rowContent: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n avatarLarge: {\r\n width: theme.spacing(10),\r\n height: theme.spacing(10)\r\n },\r\n heading: {\r\n fontWeight: \"bold!important\",\r\n fontSize: \"14px!important\"\r\n },\r\n paperRoot: {\r\n marginBottom: theme.spacing(2),\r\n boxShadow: \"none\",\r\n padding: theme.spacing(2),\r\n width: \"100%\"\r\n },\r\n flexEnd: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n },\r\n centerColumn: {\r\n alignItems: \"center\"\r\n },\r\n verticalAlign: {\r\n alignItems: \"flex-start\"\r\n },\r\n noDisplayLink: {\r\n textDecoration: \"none\",\r\n color: \"#000\"\r\n },\r\n addButton: {\r\n \"& span > .MuiButton-startIcon\": {\r\n marginRight: 0,\r\n marginLeft: -4\r\n }\r\n },\r\n swipableImageListView: {\r\n maxWidth: 250,\r\n display: \"flex\",\r\n flexBasis: 250\r\n },\r\n swipableImageModTekView: {\r\n maxWidth: 250,\r\n display: \"flex\"\r\n },\r\n swipableImageGridView: {\r\n width: \"auto\",\r\n display: \"flex\",\r\n flexBasis: 300,\r\n minHeight: 175,\r\n maxWidth: \"none\",\r\n [theme.breakpoints.only(mobileBreakpoint)]: {\r\n maxWidth: 400\r\n }\r\n },\r\n spacingTop: {\r\n paddingTop: theme.spacing(1)\r\n },\r\n productCard: {\r\n display: \"flex\",\r\n width: \"100%\",\r\n justifyContent: \"center\"\r\n },\r\n flexBox: {\r\n display: \"flex\"\r\n },\r\n cardFooter: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n width: \"100%\"\r\n },\r\n gridButtons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n alignItems: \"center\"\r\n },\r\n paddingBottom8: {\r\n paddingBottom: 8\r\n },\r\n paperBox: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: 32\r\n },\r\n listImage: {\r\n width: \"25%\"\r\n },\r\n listProductNumber: {\r\n width: \"10%\"\r\n },\r\n productText: {\r\n width: \"35%\"\r\n },\r\n buttonBox: {\r\n width: \"30%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\"\r\n },\r\n h5Styling: {\r\n margin: 0,\r\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: 400,\r\n fontSize: \"1.5rem\",\r\n lineHeight: 1.334,\r\n letterSpacing: \"0em\",\r\n marginBottom: \"0.35em\"\r\n },\r\n subtitle1Styling: {\r\n margin: 0,\r\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: 400,\r\n fontSize: \"1rem\",\r\n lineHeight: 1.75,\r\n letterSpacing: \"0.00938em\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { Typography } from \"@mui/material\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\n\r\nexport function GridTitle({\r\n listView, onClick, product, to, altNameList = []\r\n}) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const altName = altNameList?.find(alt => (\r\n alt.language_id.toLowerCase() === `${language}1` && product?.originalId === alt?.product_id\r\n ))\r\n return (\r\n listView\r\n ? (\r\n \r\n \r\n {(altName) ? altName?.plainText : product?.name}\r\n \r\n \r\n )\r\n : (\r\n \r\n {(altName) ? altName?.plainText : product?.name}\r\n \r\n )\r\n )\r\n}\r\n\r\nexport function ListTitle({ name, product, altNameList = [] }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const altName = altNameList?.find(alt => (\r\n alt.language_id.toLowerCase() === `${language}1` && product?.originalId === alt?.product_id\r\n ))\r\n return (\r\n \r\n {(altName) ? altName?.plainText : name}\r\n \r\n )\r\n}\r\n\r\nexport function ModTekTitle({\r\n listView, to, onClick, product, altNameList = []\r\n}) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const altName = altNameList?.find(alt => (\r\n alt.language_id.toLowerCase() === `${language}1` && product?.originalId === alt?.product_id\r\n ))\r\n return (\r\n listView\r\n ? (\r\n \r\n \r\n {(altName) ? altName?.plainText : product?.name}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {(altName) ? altName?.plainText : product?.name}\r\n \r\n \r\n )\r\n )\r\n}\r\n","import { formatPrice } from \"../../../../lib/helper/numberHelper\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { Box, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nexport function GridPrice({ displayPrice, price }) {\r\n const upperString = Localization.exVat.toUpperCase()\r\n return (\r\n \r\n {displayPrice\r\n && (\r\n \r\n {formatPrice(price.price)}\r\n {\" \"}\r\n {price.currency}\r\n {\" \"}\r\n {` ${upperString}`}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport function ListPrice({ displayPrice, price }) {\r\n const upperString = Localization.exVat.toUpperCase()\r\n return (\r\n \r\n {displayPrice\r\n && (\r\n \r\n {formatPrice(price.price)}\r\n {\" \"}\r\n {price.currency}\r\n {\" \"}\r\n {` ${upperString}`}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport function ModTekPrice({ displayPrice, price }) {\r\n const upperString = Localization.exVat.toUpperCase()\r\n return (\r\n \r\n {displayPrice\r\n && (\r\n \r\n {formatPrice(price.price)}\r\n {\" \"}\r\n {price.currency}\r\n {\" \"}\r\n {` ${upperString}`}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\n\r\nexport function ListProductNumber({ originalId }) {\r\n const classes = useStyles()\r\n return (\r\n
\r\n \r\n {Localization.itemNumber}\r\n \r\n \r\n {originalId}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport function GridProductNumber({ originalId }) {\r\n const classes = useStyles()\r\n return (\r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {originalId}\r\n \r\n )\r\n}\r\n","import useStyles from \"./styles\"\r\nimport SwipeableTextMobileStepper from \"../../../SwipableView\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nexport function GridImage({\r\n listView, product, grid, onSelect, phasingOut\r\n}) {\r\n const classes = useStyles()\r\n return (\r\n \r\n {listView\r\n ? (\r\n \r\n )\r\n : null}\r\n \r\n )\r\n}\r\n\r\nexport function ListImage({\r\n product, grid, onSelect, phasingOut\r\n}) {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport function ModTekImage({\r\n product, grid, onSelect, phasingOut\r\n}) {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n\r\n \r\n )\r\n}\r\n","import { CompareToggleButton, ShareButton, ReportButton } from \"../../..\"\r\nimport FavoriteButton from \"../../../Favorites/FavoriteButton\"\r\nimport { Grid, Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nexport function GridButtons(props) {\r\n const {\r\n showFavorite, product, showShare, showCompare, compare, showReport\r\n } = props\r\n return (\r\n <>\r\n \r\n {showFavorite && }\r\n \r\n \r\n {showShare && }\r\n \r\n \r\n {showCompare && (\r\n \r\n )}\r\n \r\n \r\n {showReport && }\r\n \r\n \r\n )\r\n}\r\n\r\nexport function ListButtons(props) {\r\n const {\r\n showFavorite, product, showShare, showCompare, compare, showReport\r\n } = props\r\n\r\n return (\r\n \r\n {/* {props.showReport && } */}\r\n {showFavorite && }\r\n {showShare && }\r\n {showCompare && (\r\n \r\n )}\r\n {showReport && }\r\n \r\n )\r\n}\r\n","import { Box, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport ReactHtmlParser from \"react-html-parser\"\r\n\r\nexport function GridDescription(props) {\r\n return (\r\n \r\n \r\n {props?.description}\r\n \r\n {\r\n props?.modTekInformation\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport function ListDescription(props) {\r\n return (\r\n \r\n \r\n {props?.description}\r\n \r\n {\r\n props?.modTekInformation\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport function ModTekDescription({ sideModule = false, modTekInformation = \"\" }) {\r\n return (\r\n sideModule\r\n ? (\r\n \r\n \r\n {ReactHtmlParser(modTekInformation)}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {ReactHtmlParser(modTekInformation)}\r\n \r\n \r\n )\r\n )\r\n}\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Button } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nfunction SearchDealerLink() {\r\n const language = useLanguage()\r\n\r\n return (\r\n \r\n {Localization.whereCanIBuy}\r\n \r\n )\r\n}\r\n\r\nexport default SearchDealerLink\r\n","/* eslint-disable import/no-cycle */\r\nimport useStyles from \"./styles\"\r\nimport { GridTitle, ListTitle, ModTekTitle } from \"./ProductTitle\"\r\nimport { GridPrice, ListPrice, ModTekPrice } from \"./ProductPrice\"\r\nimport { GridProductNumber, ListProductNumber } from \"./ProductNumber\"\r\nimport { GridImage, ListImage, ModTekImage } from \"./ProductImage\"\r\nimport { GridButtons, ListButtons } from \"./ProductButtons\"\r\nimport { GridDescription, ListDescription, ModTekDescription } from \"./ProductDescription\"\r\nimport SearchDealerLink from \"../../../SearchDealer/SearchDealerLink\"\r\nimport SpeedOrder from \"../../../SpeedOrder/SpeedOrder\"\r\nimport CompatibleModels from \"../../ProductInfo/components/CompatibleModels/CompatibleModels\"\r\nimport theme from \"../../../../theme\"\r\nimport { productViewBreakpoint } from \"../../../../lib/helper/viewportHelper\"\r\nimport { useUserData } from \"../../../../redux/hook/userHooks\"\r\nimport {\r\n Box,\r\n Card,\r\n CardContent,\r\n Paper,\r\n Typography,\r\n useMediaQuery\r\n} from \"@mui/material\"\r\nimport classNames from \"classnames\"\r\nimport React, { useEffect } from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nfunction ProductCardTemplate(\r\n {\r\n product,\r\n handleShowMoreCompsClick,\r\n listView,\r\n grid,\r\n onSelect,\r\n restorationRef,\r\n backGroundColor,\r\n compare,\r\n price,\r\n linkToProduct,\r\n displayPrice = false,\r\n showSpeedOrder = false,\r\n showShare = true,\r\n showCompare = true,\r\n showFavorite = true,\r\n showReport = true,\r\n showSearchDealerLink = false,\r\n productInfo,\r\n modTek = {},\r\n modTekInformation = \"\",\r\n altNameList = []\r\n }\r\n) {\r\n const classes = useStyles()\r\n const userData = useUserData()\r\n const isSmall = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n let cartContentMinHeight = listView ? 250 : 415\r\n let cardMaxWidth = grid ? 400 : \"auto\"\r\n if (compare && isSmall) cardMaxWidth = 300\r\n if (productInfo) cartContentMinHeight = \"auto\"\r\n\r\n useEffect(() => {\r\n if (!restorationRef) return\r\n\r\n restorationRef.current.scrollIntoView({ behavior: \"auto\", block: \"center\" })\r\n })\r\n\r\n return (\r\n 0 ? \"flex-start\" : \"center\" }}\r\n >\r\n {(grid && Object.keys(modTek).length === 0)\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n onSelect(product?.id)}\r\n product={product}\r\n altNameList={altNameList}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n showSpeedOrder\r\n && \r\n }\r\n {\r\n showSearchDealerLink\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {(!grid && Object.keys(modTek).length === 0) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onSelect(product?.id)}\r\n end\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n showSpeedOrder\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {Object.keys(modTek).length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n onSelect(product?.id)}\r\n className={classes.noDisplayLink}\r\n end\r\n >\r\n \r\n #\r\n {product?.originalId}\r\n \r\n \r\n\r\n onSelect(product?.id)}\r\n product={product}\r\n altNameList={altNameList}\r\n />\r\n {\r\n modTekInformation.length > 0\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n userData.customerNumber && (\r\n \r\n \r\n \r\n {\r\n showSpeedOrder\r\n && \r\n }\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ProductCardTemplate\r\n","import { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n navigationButtonBox: {\r\n padding: 15,\r\n margin: 15,\r\n borderRadius: \"50%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n navigationButtonButton: {\r\n position: \"absolute\",\r\n height: \"100%\",\r\n zIndex: 1\r\n },\r\n keyboardArrow: {\r\n color: \"white\"\r\n },\r\n thumbNailStepper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n thumbNailStepperMain: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n position: \"relative\"\r\n },\r\n thumbNailIndicator: {\r\n width: \"30px\",\r\n height: \"30px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n thumbNailIndicatorCircle: {\r\n width: 12.5,\r\n height: 12.5,\r\n borderRadius: \"50%\"\r\n },\r\n blackH3: {\r\n color: \"#2D2D2D\",\r\n /* H3 */\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 160% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontFamily: \"Roboto\",\r\n fontSize: \"18px\"\r\n }\r\n },\r\n hoverUnderline: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform .5s ease-out\"\r\n },\r\n \"&.isActive:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport theme from \"../../theme\"\r\nimport { desktopBreakpoint, mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport {\r\n Box, Typography, useMediaQuery, Skeleton\r\n} from \"@mui/material\"\r\nimport React, { useState } from \"react\"\r\n\r\nfunction Thumbnail({\r\n src,\r\n content: contents,\r\n alt,\r\n loading,\r\n style,\r\n srcWidth,\r\n thumbNailId,\r\n title,\r\n home = null\r\n}) {\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(desktopBreakpoint))\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileBreakpoint))\r\n const [isActive, setIsActive] = useState(false)\r\n\r\n let image = contents?.find(content => content.language === language)?.image\r\n image = image ?? src\r\n\r\n const widthQuery = srcWidth !== undefined ? `?width=${srcWidth}&language=${language}` : \"\"\r\n\r\n const styleWithWidth = {\r\n width: \"auto\",\r\n flex: 1,\r\n boxShadow: \"0px 0px 20px 0px rgba(45, 45, 45, 0.1)\",\r\n minHeight: \"200px\",\r\n ...style\r\n }\r\n\r\n return (\r\n (!loading)\r\n ? (\r\n setIsActive(true)}\r\n onMouseLeave={() => setIsActive(false)}\r\n >\r\n
\r\n \r\n {home !== null && (\r\n \r\n \r\n {title}\r\n \r\n \r\n {Localization.seeProduct}\r\n \r\n \r\n )}\r\n
\r\n \r\n )\r\n : \r\n )\r\n}\r\n\r\nexport default Thumbnail\r\n","import useStyles from \"../styles\"\r\nimport { Box, Button } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { KeyboardArrowLeft, KeyboardArrowRight } from \"@mui/icons-material\"\r\n\r\nfunction NavigationButton({ onClick, rightSide, style }) {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n {\r\n rightSide\r\n ? \r\n : \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NavigationButton\r\n","import Thumbnail from \"./Thumbnail\"\r\nimport NavigationButton from \"./components/NavigationButton\"\r\nimport useStyles from \"./styles\"\r\nimport { useGetContentQuery } from \"../../redux/services/contentApi\"\r\nimport React from \"react\"\r\nimport SwipeableViews from \"react-swipeable-views\"\r\nimport { autoPlay } from \"react-swipeable-views-utils\"\r\nimport { Box, Skeleton } from \"@mui/material\"\r\n\r\nconst AutoPlaySwipeableViews = autoPlay(SwipeableViews)\r\n\r\nfunction ThumbnailStepper({ thumbnailsUrl, style, srcWidth }) {\r\n const [currentIndex, setCurrentIndex] = React.useState(0)\r\n const [isHovering, setIsHovering] = React.useState(false)\r\n const { data, isFetching } = useGetContentQuery(thumbnailsUrl)\r\n const thumbnails = data ?? []\r\n const classes = useStyles()\r\n\r\n const handleNext = () => {\r\n setCurrentIndex(previousIndex => (\r\n (previousIndex + 1) % thumbnails.length\r\n ))\r\n }\r\n\r\n const handleBack = () => {\r\n setCurrentIndex(previousIndex => (\r\n (previousIndex > 0)\r\n ? previousIndex - 1\r\n : thumbnails.length - 1\r\n ))\r\n }\r\n\r\n const handleStepChange = index => {\r\n setCurrentIndex(index)\r\n }\r\n\r\n const handleMouseEnter = () => setIsHovering(true)\r\n const handleMouseLeave = () => setIsHovering(false)\r\n const hideOnHover = { opacity: isHovering ? 1 : 0, transition: \"opacity 0.5s\" }\r\n\r\n return (\r\n (!isFetching && thumbnails)\r\n ? (\r\n \r\n \r\n \r\n \r\n {\r\n thumbnails.map(thumbnailProps => {\r\n const idArray = thumbnailProps.content[0].image.split(\".\").at(0).split(\"/\")\r\n const id = `${idArray.at(-2)}-${idArray.at(-1)}`\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n thumbnails.map((_, i) => {\r\n const idArray = _.content[0].image.split(\".\").at(0).split(\"/\")\r\n const id = `${idArray.at(-2)}-${idArray.at(-1)}`\r\n return (\r\n handleStepChange(i)}\r\n >\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n )\r\n : \r\n )\r\n}\r\n\r\nexport default ThumbnailStepper\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n indexRoot: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-around\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n grayText: {\r\n color: \"#666\"\r\n },\r\n blackText: {\r\n color: \"#2D2D2D\",\r\n marginTop: \"8px\"\r\n },\r\n listRoot: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n cardRoot: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n backgroundColor: theme.palette.background.paper,\r\n flex: \"0 0 calc(50% - 16px)\",\r\n justifyContent: \"center\",\r\n boxSizing: \"border-box\",\r\n margin: \"8px\",\r\n alignContent: \"flex-start\"\r\n },\r\n root: {\r\n marginLeft: \"10px\",\r\n marginRight: \"10px\"\r\n },\r\n image: {\r\n height: 200,\r\n width: 300\r\n },\r\n card: {\r\n height: \"auto\",\r\n width: 300,\r\n border: \"none\",\r\n boxShadow: \"none\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../../lib/Localization\"\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Card, CardContent, Typography\r\n} from \"@mui/material\"\r\n\r\nconst Instruction = ({ text, images }) => {\r\n const classes = useStyles()\r\n\r\n const regexForInstructionImages = /^.*\\-\\d.*/\r\n const filteredImages = images.filter(x => regexForInstructionImages.exec(x))\r\n\r\n const textRegex = /\\d[.].*/mg\r\n let match\r\n const texts = []\r\n\r\n while ((match = textRegex.exec(text))) {\r\n texts.push(match[0])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {Localization.howToInstall}\r\n \r\n \r\n {texts.map(\r\n (paragraph, index) => (\r\n \r\n {filteredImages[index]\r\n && (\r\n \r\n )}\r\n \r\n \r\n \r\n {paragraph}\r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Instruction\r\n","import Instruction from \"../components/Instruction\"\r\nimport useStyles from \"../styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst Instructions = ({ text, images }) => {\r\n const classes = useStyles()\r\n return (\r\n \r\n {text\r\n && }\r\n \r\n )\r\n}\r\n\r\nexport default Instructions\r\n","export default __webpack_public_path__ + \"static/media/icons8-external-link.caf56822.svg\";","import icon from \"./icons8-external-link.svg\"\r\nimport React from \"react\"\r\nimport { Icon } from \"@mui/material\"\r\n\r\nconst ExternalLinkIcon = ({ style }) => (\r\n \r\n \"icon\r\n \r\n)\r\n\r\nexport default ExternalLinkIcon\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n root: {\r\n padding: 10\r\n },\r\n capitalize: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexItem: {\r\n flex: \"1 1 0px\"\r\n },\r\n gray: {\r\n color: \"#a3a3a3\"\r\n },\r\n basis20: {\r\n flexBasis: \"20%\"\r\n },\r\n padding4: {\r\n padding: 4\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useUser, useUserAuthToken } from \"../../../../redux/hook/userHooks\"\r\nimport ConfirmationDialog from \"../../OrderSummary/ConfirmationDialog/ConfirmationDialog\"\r\nimport { useClearCartMutation } from \"../../../../redux/services/cartApi\"\r\nimport {\r\n Box, IconButton, Tooltip, Typography\r\n} from \"@mui/material\"\r\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\"\r\nimport classnames from \"classnames\"\r\nimport React, { useState } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst HeadingRow = ({ showRestItemsHeading, isOrderConfirmation }) => {\r\n const classes = useStyles()\r\n const user = useUser()\r\n const authToken = useUserAuthToken()\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n const [dialogOpen, setDialogOpen] = useState(false)\r\n\r\n const openModal = () => {\r\n setDialogOpen(true)\r\n }\r\n\r\n const closeModal = () => {\r\n setDialogOpen(false)\r\n }\r\n\r\n const empty = () => {\r\n clearCart({ authToken })\r\n setDialogOpen(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n \r\n \r\n \r\n \r\n {Localization.product}\r\n \r\n \r\n \r\n \r\n {Localization.note}\r\n \r\n \r\n \r\n \r\n {Localization.qty}\r\n \r\n \r\n {showRestItemsHeading\r\n && (\r\n \r\n \r\n {Localization.sentQuantity}\r\n \r\n \r\n )}\r\n \r\n \r\n {Localization.price}\r\n \r\n \r\n {Localization.exVat.toUpperCase()}\r\n \r\n \r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n \r\n \r\n {Localization.exVat.toUpperCase()}\r\n \r\n \r\n {!showRestItemsHeading && !isOrderConfirmation\r\n ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : }\r\n \r\n )\r\n}\r\n\r\nexport default HeadingRow\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n dialog: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"1rem\",\r\n padding: \"32px\"\r\n },\r\n dialogButtonWrapper: {\r\n display: \"flex\",\r\n gap: \"5px\"\r\n },\r\n dialogButton: {\r\n flex: \"0 1 50%\"\r\n },\r\n dialogTextWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport React from \"react\"\r\nimport Button from \"@mui/material/Button\"\r\nimport Dialog from \"@mui/material/Dialog\"\r\nimport {\r\n Box, Typography\r\n} from \"@mui/material\"\r\n\r\nconst ConfirmationDialog = ({ open, onConfirm, onClose }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n {Localization.removeAll}\r\n \r\n {Localization.areYouSure}\r\n {Localization.deleteAllConfirmation}\r\n \r\n \r\n \r\n {Localization.yes}\r\n \r\n \r\n {Localization.no}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ConfirmationDialog\r\n","import { productViewBreakpoint } from \"../../../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n whiteSpace: \"pre-line\",\r\n overflowWrap: \"break-word\"\r\n },\r\n text: {\r\n width: 580,\r\n lineHeight: 2,\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n width: \"auto\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport ReactHtmlParser from \"react-html-parser\"\r\n\r\nexport default function NewlineText({ text, technicalInformation }) {\r\n const classes = useStyles()\r\n\r\n if (typeof text === \"undefined\" || text === null) return null\r\n const newText = text.split(/\\r?\\n/).map((str, i) => (\r\n \r\n {str}\r\n \r\n ))\r\n\r\n return (\r\n technicalInformation === true ? (\r\n
\r\n {ReactHtmlParser(text)}\r\n
\r\n ) :
{newText}
\r\n )\r\n}\r\n","import { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst slice = createSlice({\r\n name: \"userMessage\",\r\n initialState: {\r\n snackPack: []\r\n },\r\n reducers: {\r\n setMessage: (state, action) => {\r\n state.snackPack.push(\r\n {\r\n message: action.payload.message,\r\n key: new Date().getTime(),\r\n severity: action.payload.severity ?? \"info\",\r\n type: action.payload.type ?? \"snackbar\",\r\n autoHide: action.payload.autoHide ?? false\r\n }\r\n )\r\n },\r\n nextSnackPack: state => {\r\n state.snackPack = state.snackPack.slice(1)\r\n }\r\n }\r\n})\r\n\r\nconst { setMessage, nextSnackPack } = slice.actions\r\n\r\nexport default slice.reducer\r\n\r\nexport const setSnackbarMessage = (message, severity) => dispatch => dispatch(\r\n setMessage({\r\n message,\r\n severity,\r\n autoHide: true,\r\n type: \"snackbar\"\r\n })\r\n)\r\n\r\nexport const setDialogMessage = message => dispatch => dispatch(\r\n setMessage({\r\n message,\r\n autoHide: false,\r\n type: \"dialog\"\r\n })\r\n)\r\n\r\nexport const setNextSnackPack = () => dispatch => dispatch(\r\n nextSnackPack()\r\n)\r\n","// Need to use the React-specific entry point to import createApi\r\nimport { restoreNameForBrandOther } from \"../../lib/helper/brandHelper\"\r\nimport { sortModels } from \"../../lib/helper/modelHelper\"\r\nimport { newsArticleAdapter } from \"../adapter/newsArticleAdapter\"\r\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\"\r\n\r\n// Define a service using a base URL and expected endpoints\r\nexport const broditWebApi = createApi({\r\n reducerPath: \"broditWebApi\",\r\n baseQuery: fetchBaseQuery({\r\n baseUrl: \"/api/\"\r\n }),\r\n endpoints: builder => ({\r\n getNews: builder.query({\r\n query: ({\r\n language, limit = 20, groups = [], includeFutureNews = false\r\n }) => {\r\n let params = \"?\"\r\n params += `language=${language}`\r\n params += `&limit=${limit}`\r\n params += `&includeFutureNews=${includeFutureNews}`\r\n params += groups.map(group => `&groups=${group}`).join(\"\")\r\n return `news${params}`\r\n },\r\n transformResponse: (response, _meta, arg) => {\r\n const languageSpecificNews = response.map(article => ({\r\n ...article,\r\n id: `${arg.language}-${article.id}`,\r\n originalId: article.id\r\n }))\r\n\r\n newsArticleAdapter.addMany(\r\n newsArticleAdapter.getInitialState(),\r\n languageSpecificNews\r\n )\r\n\r\n return languageSpecificNews\r\n }\r\n }),\r\n getNewsById: builder.query({\r\n query: ({ language, id }) => `news/${id}?language=${language}`,\r\n transformResponse: (response, _meta, arg) => {\r\n const languageSpecificNews = {\r\n ...response,\r\n id: `${arg.language}-${response.id}`,\r\n originalId: response.id\r\n }\r\n\r\n newsArticleAdapter.addOne(\r\n newsArticleAdapter.getInitialState(),\r\n languageSpecificNews\r\n )\r\n\r\n return languageSpecificNews\r\n }\r\n }),\r\n getOrderSystemMaintenance: builder.query({\r\n query: () => \"Users/IsOrderSystemUnderMaintenance\"\r\n }),\r\n getBigNews: builder.query({\r\n query: () => \"news/GetBigNews\"\r\n }),\r\n getHeroNews: builder.query({\r\n query: () => \"news/GetHeroNews\"\r\n }),\r\n getFilesById: builder.query({\r\n query: id => `ProductInfo/GetProductSheets/${id}`\r\n }),\r\n getRelatedProducts: builder.query({\r\n query: id => `RelatedProducts/${id}`\r\n }),\r\n getModTekProducts: builder.query({\r\n query: id => `RelatedProducts/Modtek/${id}`\r\n }),\r\n getRelatedVideos: builder.query({\r\n query: id => `RelatedVideos/${id}`\r\n }),\r\n getModels: builder.query({\r\n query: ({ language, steerings = null }) => {\r\n const steeringParams = steerings\r\n ? steerings.map(steering => `&steerings=${steering}`).join(\"\")\r\n : \"\"\r\n\r\n return `v1/Models?language=${language}${steeringParams}`\r\n },\r\n transformResponse: response => sortModels(response)\r\n }),\r\n getModelsForBrand: builder.query({\r\n query: ({ brandId, language, steerings = null }) => {\r\n const [restoredBrandId] = restoreNameForBrandOther([brandId])\r\n const steeringParams = steerings\r\n ? steerings.map(steering => `&steerings=${steering}`).join(\"\")\r\n : \"\"\r\n\r\n return `v1/Brands/${restoredBrandId}/Models?language=${language}${steeringParams}`\r\n },\r\n transformResponse: response => sortModels(response)\r\n }),\r\n getYearsForModel: builder.query({\r\n query: ({\r\n modelIds,\r\n brandIds,\r\n language,\r\n steerings\r\n }) => ({\r\n url: \"ProductInfo/GetModelYears\",\r\n method: \"POST\",\r\n body: {\r\n modelIds: modelIds,\r\n brandIds: restoreNameForBrandOther(\r\n brandIds\r\n ),\r\n language: language,\r\n steering: steerings\r\n }\r\n }),\r\n transformResponse: response => response.response\r\n }),\r\n getReplacementProducts: builder.query({\r\n query: id => `ProductInfo/GetReplacementProducts?id=${id}`\r\n }),\r\n getTechnicalInformationForProduct: builder.query({\r\n query: id => `ProductInfo/GetProductsHtmlText?id=${id}`\r\n }),\r\n getAltNameForProducts: builder.query({\r\n query: id => `ProductInfo/GetAltTextForProducts?id=${id}`\r\n }),\r\n setPreferredSteering: builder.mutation({\r\n query: body => ({\r\n url: `Users/SetPreferredSteering/${body.preferredSteering}`,\r\n method: \"POST\",\r\n body: {\r\n authToken: body.authToken\r\n }\r\n })\r\n }),\r\n logFrontendError: builder.mutation({\r\n query: body => ({\r\n url: \"Error/Log\",\r\n method: \"POST\",\r\n body: {\r\n error: body.error,\r\n stack: body.stack\r\n }\r\n })\r\n })\r\n })\r\n})\r\n\r\nexport const {\r\n useGetNewsQuery,\r\n useGetNewsByIdQuery,\r\n useGetOrderSystemMaintenanceQuery,\r\n useGetBigNewsQuery,\r\n useGetHeroNewsQuery,\r\n useGetFilesByIdQuery,\r\n useGetRelatedProductsQuery,\r\n useGetRelatedVideosQuery,\r\n useGetModelsQuery,\r\n useGetModelsForBrandQuery,\r\n useGetYearsForModelQuery,\r\n useGetReplacementProductsQuery,\r\n useGetModTekProductsQuery,\r\n useGetTechnicalInformationForProductQuery,\r\n useSetPreferredSteeringMutation,\r\n useGetAltNameForProductsQuery,\r\n useLogFrontendErrorMutation\r\n} = broditWebApi\r\n","export const microBreakpoint = 300\r\nexport const mobileBreakpoint = 769 // px\r\nexport const mobileMenuBreakpoint = 1081\r\nexport const tabletBreakpoint = 1199\r\nexport const productViewBreakpoint = 999\r\nexport const desktopBreakpoint = 1920\r\nexport const midSizeBreakpoint = 1600\r\n","import { useCustomerOrder } from \"../../../redux/hook/customerOrderHooks\"\r\nimport OrderInfo from \"../OrderInfo/OrderInfo\"\r\nimport React from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport { CircularProgress } from \"@mui/material\"\r\n\r\nconst CustomerOrderInfo = () => {\r\n const { order } = useParams()\r\n\r\n const customerOrder = useCustomerOrder(order)\r\n\r\n if (customerOrder === undefined) return \r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CustomerOrderInfo\r\n","import { strings as Localization } from \"../../lib/Localization\"\r\nimport React from \"react\"\r\nimport { Snackbar, Button } from \"@mui/material\"\r\n\r\nconst ErrorMessage = ({ open, handleClose }) => {\r\n const handleClick = () => {\r\n handleClose()\r\n }\r\n\r\n const action = (\r\n \r\n {Localization.close}\r\n \r\n )\r\n\r\n // Todo: kanske inte ska ha en sån här (Snackbar) som visar att det inträffat fel..\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ErrorMessage\r\n","import useStyles from \"./styles\"\r\nimport NewsItem from \"../NewsItem\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport usePage from \"../../../redux/hook/pageHook\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport PageHandler from \"../../PageHandler/PageHandler\"\r\nimport { useGetNewsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport { useSteering } from \"../../../redux/hook/userHooks\"\r\nimport LeftRightSteeringFilter from \"../../AutocompleteSearch/VehicleSearchbar/LeftRightSteeringFilter\"\r\nimport {\r\n Box, Typography, Container,\r\n Skeleton\r\n} from \"@mui/material\"\r\n\r\nimport React from \"react\"\r\n\r\nfunction VehicleNewsListPage() {\r\n const { limit } = usePage()\r\n const language = useLanguage()\r\n const steering = useSteering()\r\n const classes = useStyles()\r\n let steeringGroup\r\n switch (steering) {\r\n case \"1\":\r\n steeringGroup = \"LHD\"\r\n break\r\n case \"2\":\r\n steeringGroup = \"RHD\"\r\n break\r\n default:\r\n steeringGroup = \"LHD\"\r\n }\r\n\r\n const { data: vehicleNews, isFetching } = useGetNewsQuery({\r\n language,\r\n limit,\r\n groups: [steeringGroup]\r\n })\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {Localization.newProductsForVehicles.toUpperCase()}\r\n \r\n {\r\n language === \"en\"\r\n && \r\n }\r\n \r\n
\r\n {\r\n !isFetching\r\n && vehicleNews.map(news => (\r\n \r\n ))\r\n }\r\n {\r\n isFetching\r\n && [...Array(limit).keys()].map(i => (\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default VehicleNewsListPage\r\n","import { setNextSnackPack } from \"../../redux/userMessageSlice\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport {\r\n Box, Button, Dialog, DialogActions, DialogContent, Snackbar,\r\n Alert\r\n} from \"@mui/material\"\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst MessageNotification = () => {\r\n const dispatch = useDispatch()\r\n const [open, setOpen] = useState(false)\r\n const snackPack = useSelector(state => state.userMessage.snackPack)\r\n const [messageInfo, setMessageInfo] = useState(undefined)\r\n const autoHideDuration = messageInfo?.autoHide ? 3500 : null\r\n\r\n useEffect(() => {\r\n if (snackPack.length && !messageInfo) {\r\n setMessageInfo({ ...snackPack[0] })\r\n dispatch(setNextSnackPack())\r\n setOpen(true)\r\n } else if (snackPack.length && messageInfo && open) {\r\n setOpen(false)\r\n }\r\n }, [snackPack, messageInfo, open, dispatch])\r\n\r\n const closeSnackbar = () => {\r\n setOpen(false)\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") return\r\n closeSnackbar()\r\n }\r\n\r\n const handleExited = () => {\r\n setMessageInfo(undefined)\r\n }\r\n\r\n const messageProps = {\r\n key: messageInfo?.key,\r\n open: open,\r\n onClose: handleClose,\r\n autoHideDuration\r\n }\r\n\r\n const transitionProps = {\r\n onExited: handleExited\r\n }\r\n\r\n return (\r\n \r\n {\r\n messageInfo?.type === \"snackbar\"\r\n && (\r\n \r\n \r\n {messageInfo?.message}\r\n \r\n \r\n )\r\n }\r\n {\r\n messageInfo?.type === \"dialog\"\r\n && (\r\n \r\n {messageInfo?.message}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default MessageNotification\r\n","import DynamicContent from \"./DynamicContent/DynamicContent\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { Container, useMediaQuery, useTheme } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\n\r\nconst DynamicContentPage = ({ type }) => {\r\n const { type: parameterType } = useParams()\r\n const theme = useTheme()\r\n const selectedType = parameterType ?? type\r\n const isDesktop = useMediaQuery(t => t.breakpoints.up(desktopBreakpoint))\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default DynamicContentPage\r\n","import withdrawCookiesConsent from \"../../lib/helper/gdprHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { Container, Typography, useTheme } from \"@mui/material\"\r\nimport React, { useEffect } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nfunction WithdrawCookiesConsent() {\r\n const dispatch = useDispatch()\r\n const theme = useTheme()\r\n const language = useLanguage()\r\n\r\n useEffect(() => {\r\n dispatch(withdrawCookiesConsent({ skipReload: true }))\r\n window.location.replace(`/${language}`)\r\n }, [])\r\n\r\n return (\r\n \r\n {Localization.redirectingToStartPage}\r\n \r\n )\r\n}\r\n\r\nexport default WithdrawCookiesConsent\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\nfunction LandingPageMetaDescription() {\r\n const language = useLanguage()\r\n\r\n const title = language === \"sv\"\r\n ? \"Brodit | Monteringslösningen för din enhet\"\r\n : \"Brodit | Mounting solutions for your device\"\r\n const description = language === \"sv\"\r\n ? \"Brodit tillverkar en världsledande tvådelslösning för modellspecifik montering av din enhet i ditt fordon. Vilken enhet som helst, var som helst! Funktion | Kvalitet | Säkerhet.\"\r\n : \"Brodit is a world-leading manufacturer of model specific mounting solutions for your device. Any device, anywhere! Function | Quality | Safety.\"\r\n\r\n const keywords = language === \"sv\"\r\n ? \"Brodit, monteringslösningar, Truckfästen, Rörfästen, Piedestalfästen, ProClip, enhetshållare\"\r\n : \"Brodit, Mounting Solutions, Forklift Mounts, Pipe Mounts, Pedestal Mounts, ProClip, Device Holders\"\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default LandingPageMetaDescription\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\nfunction NewsMetaDescription() {\r\n const language = useLanguage()\r\n\r\n const title = language === \"sv\"\r\n ? \"Nyheter\"\r\n : \"News\"\r\n const description = language === \"sv\"\r\n ? \"Letar du hållare till din enhet? Se våra nyheter här!\"\r\n : \"Looking for a mounting solution? See our news here!\"\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NewsMetaDescription\r\n","import { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nexport const cartSlice = createSlice({\r\n name: \"cart\",\r\n initialState: {\r\n order: {\r\n step: 0,\r\n number: \"\"\r\n },\r\n items: [],\r\n shouldSync: false\r\n },\r\n reducers: {\r\n // Set to a determined quantity (needed in cart view)\r\n setQty: (state, action) => ({\r\n ...state,\r\n items: state.items.map((item, i) => (\r\n i === action.payload.index ? { ...item, quantity: action.payload.quantity } : item\r\n )),\r\n shouldSync: true\r\n }),\r\n add: (state, action) => ({\r\n ...state,\r\n items: [...state.items, { id: action.payload.id, quantity: action.payload.quantity }],\r\n shouldSync: true\r\n }),\r\n setItems: (state, action) => {\r\n state.items = action.payload\r\n state.shouldSync = true\r\n },\r\n del: (state, action) => ({\r\n ...state,\r\n items: [...state.items.filter((element, index) => index !== action.payload)],\r\n shouldSync: true\r\n }),\r\n empty: state => ({\r\n ...state,\r\n items: [],\r\n shouldSync: true\r\n }),\r\n editNote: (state, action) => ({\r\n ...state,\r\n items: state.items.map((item, i) => (\r\n i === action.payload.index ? { ...item, note: action.payload.text } : item\r\n )),\r\n shouldSync: true\r\n }),\r\n setShouldSync: (state, action) => {\r\n state.shouldSync = action.payload\r\n },\r\n nextOrderStep: state => ({\r\n ...state,\r\n order: {\r\n step: state.order.step + 1,\r\n number: state.order.number\r\n }\r\n }),\r\n prevOrderStep: state => ({\r\n ...state,\r\n order: {\r\n step: state.order.step - 1,\r\n number: state.order.number\r\n }\r\n }),\r\n putOrderId: (state, action) => ({\r\n ...state,\r\n order: {\r\n step: state.order.step,\r\n number: action.payload\r\n }\r\n }),\r\n resetOrderStep: state => ({\r\n ...state,\r\n order: {\r\n step: 0,\r\n number: state.order.number // Varför behålla egentligen\r\n }\r\n }),\r\n batchAdd: (state, action) => ({\r\n ...state,\r\n items: action.payload.map(item => ({ id: item.article, quantity: item.quantity })),\r\n shouldSync: true\r\n })\r\n }\r\n})\r\n\r\nexport default cartSlice.reducer\r\n\r\nconst {\r\n add, setItems, setShouldSync, del, empty,\r\n setQty, nextOrderStep, prevOrderStep, putOrderId,\r\n resetOrderStep, editNote, batchAdd\r\n} = cartSlice.actions\r\n\r\nexport const addToCart = (id, quantity) => dispatch => dispatch(\r\n add({\r\n id,\r\n quantity\r\n })\r\n)\r\n\r\nexport const setCartItems = items => dispatch => dispatch(\r\n setItems(items)\r\n)\r\n\r\nexport const setShouldSyncCart = shouldSync => dispatch => dispatch(\r\n setShouldSync(shouldSync)\r\n)\r\n\r\nexport const setQuantity = (quantity, index) => dispatch => dispatch(\r\n setQty({\r\n quantity,\r\n index\r\n })\r\n)\r\n\r\nexport const deleteCartRow = index => dispatch => dispatch(\r\n del(index)\r\n)\r\n\r\nexport const editCartNote = (text, index) => dispatch => dispatch(\r\n editNote({\r\n text,\r\n index\r\n })\r\n)\r\n\r\nexport const emptyCart = () => dispatch => dispatch(empty())\r\n\r\nexport const nextCartStep = () => dispatch => dispatch(nextOrderStep())\r\n\r\nexport const prevCartStep = () => dispatch => dispatch(prevOrderStep())\r\n\r\nexport const setOrderId = id => dispatch => dispatch(putOrderId(id))\r\n\r\nexport const resetCartStep = () => dispatch => dispatch(resetOrderStep())\r\n\r\nexport const batchAddToCart = items => dispatch => dispatch(batchAdd(items))\r\n","import {\r\n desktopBreakpoint, mobileBreakpoint, mobileMenuBreakpoint, tabletBreakpoint\r\n} from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n main: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n },\r\n section1: {\r\n maxWidth: \"100%\",\r\n display: \"flex\",\r\n height: \"auto\",\r\n flexShrink: 0,\r\n backgroundColor: \"#FFF\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n heroBoxWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n flex: \"0 1 1920px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n justifyContent: \"center\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n display: \"none\"\r\n }\r\n },\r\n heroBox: {\r\n display: \"flex\",\r\n padding: \"15px 30px\",\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"20px\",\r\n borderRadius: \"10px\",\r\n background: \"rgba(255, 255, 255, 0.90)\",\r\n marginRight: \"200px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n padding: \"15px\"\r\n },\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n marginRight: \"unset\"\r\n }\r\n },\r\n heroBoxHeader: {\r\n color: \"#FFF\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 88.889% */\r\n letterSpacing: \"0.5px\",\r\n position: \"relative\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n leadingTrim: \"both\",\r\n textEdge: \"cap\",\r\n fontSize: \"8px\"\r\n }\r\n },\r\n heroBoxTitle: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"40px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\" /* 100% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n leadingTrim: \"both\",\r\n textEdge: \"cap\",\r\n fontSize: \"18px\",\r\n lineHeight: \"0px\", /* 0% */\r\n width: \"100%\"\r\n }\r\n },\r\n heroBoxText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 160% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"13px\",\r\n lineHeight: \"normal\",\r\n width: \"100%\"\r\n }\r\n },\r\n videoWrapper: {\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n aspectRatio: \"16 / 9\",\r\n width: \"100%\"\r\n }\r\n },\r\n youtube: {\r\n width: \"700px\",\r\n height: \"368px\",\r\n border: 0,\r\n borderRadius: 6,\r\n [theme.breakpoints.down(1400)]: {\r\n width: \"450px\",\r\n height: \"234px\"\r\n },\r\n [theme.breakpoints.between(1400, 1700)]: {\r\n width: \"550px\",\r\n height: \"286px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n }\r\n },\r\n searchWrapper: {\r\n display: \"flex\",\r\n padding: \"40px 0px 75px 0px\",\r\n alignItems: \"center\",\r\n gap: \"60px\",\r\n width: \"auto\",\r\n maxWidth: \"1400px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flexDirection: \"column-reverse\",\r\n maxWidth: \"100%\"\r\n }\r\n },\r\n search: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"55px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n flexDirection: \"column\"\r\n }\r\n },\r\n section2Wrapper: {\r\n flex: \"0 0 100%\",\r\n backgroundColor: \"#F8F8F8\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n paddingTop: \"75px\",\r\n paddingBottom: \"75px\"\r\n },\r\n section2: {\r\n width: \"80%\",\r\n height: \"auto\",\r\n flexShrink: 0,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n gap: 50,\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n maxWidth: \"550px\",\r\n width: \"100%\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\"\r\n }\r\n },\r\n section2Text: {\r\n maxWidth: \"782px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"20px\"\r\n },\r\n holders: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n gap: \"30px\",\r\n maxWidth: \"1399px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n }\r\n },\r\n section3: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\",\r\n flexDirection: \"column\",\r\n paddingTop: 40,\r\n paddingBottom: 40\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"50%\"\r\n }\r\n },\r\n section3Wrappper: {\r\n width: \"50%\",\r\n maxWidth: \"618px\",\r\n height: \"550px\",\r\n flexShrink: 0,\r\n backgroundColor: \"#FFF\",\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\",\r\n paddingLeft: \"60px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n padding: 0,\r\n width: \"100%\",\r\n height: \"auto\",\r\n maxWidth: \"unset\"\r\n }\r\n },\r\n section3TextBox: {\r\n display: \"inlineFlex\",\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n }\r\n },\r\n customSolutionImg: {\r\n width: \"956px\",\r\n height: \"545px\",\r\n flexShrink: 0,\r\n objectFit: \"cover\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"485px\",\r\n height: \"282px\"\r\n },\r\n [theme.breakpoints.down(505)]: {\r\n width: \"250px\",\r\n height: \"146px\"\r\n }\r\n },\r\n section4Wrapper: {\r\n flex: \"0 0 100%\",\r\n backgroundColor: \"#F8F8F8\",\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n section4: {\r\n flexShrink: 0,\r\n backgroundColor: \"#F8F8F8\",\r\n width: \"80%\",\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n maxWidth: \"550px\",\r\n width: \"100%\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n }\r\n },\r\n section4News: {\r\n maxWidth: \"822px\",\r\n display: \"inline-flex\",\r\n paddingTop: \"75px\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\",\r\n paddingTop: 40\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n deviceHolder: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n marginBottom: \"60px\"\r\n },\r\n vehicleHolder: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n marginBottom: \"150px\"\r\n },\r\n blackH2: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\" /* 133.333% */,\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"20px\",\r\n lineHeight: \"26.8px\"\r\n }\r\n },\r\n blackH3Medium: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 114.286% */\r\n letterSpacing: \"0.5px\"\r\n },\r\n blackText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"20px\", /* 142.857% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\"\r\n }\r\n },\r\n blackH2Roboto: {\r\n color: \"#2D2D2D\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"40px\" /* 200% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"18px\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 177.778% */\r\n }\r\n },\r\n blackH3Roboto: {\r\n color: \"#2D2D2D\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"32px\" /* 160% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"16px\",\r\n fontWeight: \"500px\",\r\n lineHeight: \"normal\"\r\n }\r\n },\r\n blackArialText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 141.176% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\"/* 142.857% */\r\n }\r\n },\r\n holderTextBox: {\r\n backgroundColor: \"blue\",\r\n borderRadius: \"0px 0px 6px 6px\",\r\n background: \"#FFF\",\r\n height: \"128px\",\r\n paddingTop: 20,\r\n paddingBottom: 20,\r\n marginTop: -5,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n height: \"auto\",\r\n alignItems: \"flex-start\",\r\n paddingLeft: \"20px\"\r\n }\r\n },\r\n section3Button: {\r\n /* M3/label/medium */\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 114.286% */\r\n letterSpacing: \"0.5px\",\r\n textTransform: \"none\",\r\n color: \"#2d2d2d\"\r\n },\r\n section1Button: {\r\n display: \"flex\",\r\n padding: \"10px 20px\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n background: \"#F09057\",\r\n textDecoration: \"none\"\r\n },\r\n alignTextCenter: {\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n textAlign: \"center\"\r\n }\r\n },\r\n thumbNailIndicator: {\r\n width: \"30px\",\r\n height: \"30px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n thumbNailIndicatorCircle: {\r\n \"&.MuiButton-root\": {\r\n width: 12.5,\r\n height: 12.5,\r\n borderRadius: \"50%\",\r\n minWidth: 0,\r\n padding: 0\r\n },\r\n \"&.MuiButton-contained\": {\r\n backgroundColor: \"black\"\r\n }\r\n },\r\n heroWrapper: {\r\n display: \"flex\",\r\n flex: \"0 0 100%\",\r\n overflow: \"hidden\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n maxWidth: \"100%\",\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/1920.webp)\",\r\n backgroundPosition: \"center center\",\r\n backgroundSize: \"cover\",\r\n height: \"351px\",\r\n [theme.breakpoints.up(mobileMenuBreakpoint)]: {\r\n height: \"600px\"\r\n },\r\n [theme.breakpoints.between(desktopBreakpoint, 2560)]: {\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/2560.webp)\"\r\n },\r\n [theme.breakpoints.up(2560)]: {\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/3840.webp)\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/768.webp)\"\r\n }\r\n },\r\n fadeIn: {\r\n animation: \"$fadeIn 500ms ease-in\"\r\n },\r\n newsWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n marginTop: \"40px\",\r\n marginBottom: \"40px\"\r\n },\r\n selectorWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n flex: \"1 0 235px\"\r\n },\r\n selectorTitle: {\r\n flex: \"0 0 100%\",\r\n height: \"48px\",\r\n textAlign: \"center\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n lineHeight: \"24px\",\r\n [theme.breakpoints.down(1700)]: {\r\n fontSize: \"16px\"\r\n }\r\n },\r\n steeringWrapper: {\r\n flex: \"0 0 250px\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n },\r\n steering: {\r\n flex: \"0 0 200px\",\r\n marginBottom: \"10px\"\r\n },\r\n anchorButtonStyle: {\r\n fontFamily: \"Arial\",\r\n fontWeight: 700,\r\n fontSize: \"14px\",\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n padding: \"10px 20px 10px 20px\",\r\n borderRadius: \"4px\",\r\n textAlign: \"center\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n backgroundColor: \"#F09057\",\r\n marginTop: \"10px\",\r\n maxWidth: \"60%\",\r\n transition: \"all 0.1s ease-in\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n },\r\n downloadAnchor: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"5px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n borderBottom: \"1px solid transparent\",\r\n \"&:hover\": {\r\n borderBottom: \"1px solid #F09057\"\r\n }\r\n },\r\n \"@keyframes fadeIn\": {\r\n \"0%\": { opacity: 0, transform: \"translateX(-15px)\" },\r\n \"100%\": { opacity: 1, transform: \"translateX(0)\" }\r\n },\r\n fadeOut: {\r\n animation: \"$fadeOut 500ms ease-out\"\r\n },\r\n \"@keyframes fadeOut\": {\r\n \"0%\": { opacity: 1, transform: \"translateX(0)\" },\r\n \"100%\": { opacity: 0, transform: \"translateX(15px)\" }\r\n },\r\n readmore: {\r\n display: \"flex\",\r\n width: \"auto\",\r\n alignItems: \"center\",\r\n gap: \"5px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n borderBottom: \"2px solid #F09057\"\r\n }\r\n },\r\n readmoreParent: {\r\n display: \"flex\",\r\n marginTop: \"8px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n justifyContent: \"center\"\r\n }\r\n },\r\n downloadCatalog: {\r\n textDecoration: \"none\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n borderBottom: \"2px solid #F09057\"\r\n }\r\n },\r\n imageGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(2, 1fr)\",\r\n gap: \"5px\",\r\n marginBottom: \"16px\"\r\n },\r\n imageGridItem: {\r\n gridColumn: \"span 1\",\r\n \"&:last-child\": {\r\n gridColumn: \"span 2\"\r\n }\r\n },\r\n imageGridItemImage: {\r\n display: \"block\",\r\n width: \"100%\",\r\n borderRadius: \"4px\"\r\n }\r\n}))\r\n","import { desktopBreakpoint, mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n outerWrapper: {\r\n flex: \"0 1 446px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"1 1 auto\"\r\n }\r\n },\r\n holderWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 446px\",\r\n height: \"100%\",\r\n flexDirection: \"column\",\r\n overflow: \"hidden\",\r\n borderRadius: 10,\r\n boxShadow: \"0px 0px 20px 0px rgba(45, 45, 45, 0.1)\"\r\n // [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n // height: \"auto\"\r\n // }\r\n },\r\n holderTextBox: {\r\n flex: \"1 1 auto\",\r\n backgroundColor: \"#FFFFFF\",\r\n background: \"#FFF\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n padding: \"20px\",\r\n textAlign: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n height: \"auto\"\r\n }\r\n },\r\n blackH3Roboto: {\r\n color: \"#2D2D2D\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"32px\" /* 160% */,\r\n marginBottom: \"5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"16px\",\r\n fontWeight: \"500px\",\r\n lineHeight: \"normal\"\r\n }\r\n },\r\n blackArialText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 141.176% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\"/* 142.857% */\r\n }\r\n },\r\n link: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n paddingBottom: \"2px\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./Holder.styles\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Typography\r\n} from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst HolderElement = ({\r\n id, src, isDesktop, alt, title, text, link\r\n}) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {title}\r\n \r\n \r\n {text}\r\n \r\n
\r\n {link.title}\r\n
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default HolderElement\r\n","import useStyles from \"../styles\"\r\nimport { useGetHeroNewsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport React, { useEffect, useRef, useState } from \"react\"\r\nimport { Button, Typography, useMediaQuery } from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\nimport classnames from \"classnames\"\r\n\r\nfunction HeroNews() {\r\n const { data: hNews } = useGetHeroNewsQuery()\r\n const language = useLanguage()\r\n const heroNews = hNews?.filter(x => x.language === language && x.active === true)\r\n const textRef = useRef()\r\n const [fadeIn, setFadeIn] = useState(true)\r\n const [selectedHeroIndex, setSelectedHeroIndex] = useState(0)\r\n const fadeInRef = useRef(0)\r\n const classes = useStyles()\r\n const isTablet = useMediaQuery(theme.breakpoints.up(tabletBreakpoint))\r\n\r\n const handleSelectHero = index => {\r\n setFadeIn(false)\r\n setTimeout(() => {\r\n fadeInRef.current += 1\r\n setSelectedHeroIndex(index)\r\n setFadeIn(true)\r\n }, 500) // Set the timeout to match the animation duration\r\n }\r\n\r\n useEffect(() => {\r\n const intervalId = setInterval(() => {\r\n if (heroNews?.length > 1) {\r\n setFadeIn(false)\r\n setTimeout(() => {\r\n fadeInRef.current += 1\r\n const len = heroNews?.length || 0\r\n setSelectedHeroIndex(prevIndex => ((prevIndex + 1) % len))\r\n setFadeIn(true)\r\n }, 500) // Set the timeout to match the animation duration\r\n }\r\n }, 4000)\r\n\r\n return () => clearInterval(intervalId)\r\n }, [heroNews?.length, handleSelectHero])\r\n\r\n useEffect(() => {\r\n if (textRef.current) {\r\n const naturalWidth = textRef.current.scrollWidth\r\n\r\n if (textRef.current.clientWidth !== naturalWidth) {\r\n textRef.current.style.width = `${naturalWidth}px`\r\n }\r\n }\r\n }, [heroNews, selectedHeroIndex])\r\n\r\n return (\r\n
\r\n {(heroNews?.[selectedHeroIndex]?.active) && (\r\n
\r\n
\r\n \r\n \r\n {Localization.new}\r\n \r\n
\r\n \r\n \r\n {heroNews?.[selectedHeroIndex]?.name}\r\n \r\n \r\n {heroNews?.[selectedHeroIndex]?.alt}\r\n \r\n {isTablet\r\n ? (\r\n \r\n {Localization.readMore}\r\n

\r\n {Localization.about}\r\n {\" \"}\r\n {heroNews?.[selectedHeroIndex]?.name}\r\n

\r\n \r\n )\r\n : (\r\n \r\n {Localization.readMore}\r\n \r\n )}\r\n
\r\n {heroNews.length > 1 && (\r\n
\r\n
\r\n {heroNews?.map((item, i) => (\r\n handleSelectHero(i)}\r\n className={classes.thumbNailIndicatorCircle}\r\n variant={i === selectedHeroIndex ? \"contained\" : \"outlined\"}\r\n />\r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default HeroNews\r\n","export default __webpack_public_path__ + \"static/media/MoveClip_Start.d586b0d2.jpg\";","export default __webpack_public_path__ + \"static/media/Suction_Start.c9dca1d6.jpg\";","export default __webpack_public_path__ + \"static/media/Workstation_Start.5897f6d5.jpg\";","export default __webpack_public_path__ + \"static/media/Workstation_Mobile.f22e2c86.jpg\";","export default __webpack_public_path__ + \"static/media/Pipe_Mobile.ac37673b.jpg\";","export default __webpack_public_path__ + \"static/media/Pedestal_Mobile.f5c86cdc.jpg\";","export default __webpack_public_path__ + \"static/media/solutions_mob.cbad34bb.jpg\";","export default __webpack_public_path__ + \"static/media/piedestal.b56f23f5.png\";","export default __webpack_public_path__ + \"static/media/ror.0d0f3e2a.png\";","export default __webpack_public_path__ + \"static/media/truck.44c2e90e.png\";","import {\r\n desktopBreakpoint, midSizeBreakpoint, mobileMenuBreakpoint\r\n} from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n wrapper: {\r\n display: \"flex\",\r\n maxWidth: \"1110px\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n },\r\n title: {\r\n flex: \"0 0 100%\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontWeight: 500,\r\n lineHeight: \"40px\",\r\n textAlign: \"center\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n marginTop: \"30px\"\r\n }\r\n },\r\n list: {\r\n display: \"grid\",\r\n justifyContent: \"space-between\",\r\n flex: \"0 0 100%\",\r\n gridTemplateColumns: \"350px 350px 350px\",\r\n [theme.breakpoints.down(midSizeBreakpoint)]: {\r\n gridTemplateColumns: \"300px 300px 300px\",\r\n justifyContent: \"center\",\r\n gap: \"20px\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n gridTemplateColumns: \"345px\",\r\n justifyContent: \"center\",\r\n gap: \"30px\"\r\n },\r\n [theme.breakpoints.down(390)]: {\r\n gridTemplateColumns: \"100%\"\r\n }\r\n },\r\n item: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n borderRadius: \"6px\",\r\n boxShadow: \"rgba(45, 45, 45, 0.1) 0px 0px 20px 0px\",\r\n overflow: \"hidden\",\r\n textDecoration: \"none\",\r\n backgroundColor: \"#FFFFFF\",\r\n \"&:visited\": {\r\n color: \"inherit\"\r\n }\r\n },\r\n imageWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n flex: \"0 0 220px\",\r\n backgroundColor: \"#FFFFFF\",\r\n [theme.breakpoints.down(midSizeBreakpoint)]: {\r\n flex: \"0 0 188px\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 0 220px\"\r\n }\r\n },\r\n image: {\r\n width: \"350px\",\r\n height: \"220px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n width: \"345px\",\r\n height: \"217px\"\r\n }\r\n },\r\n bottomWrapper: {\r\n display: \"flex\",\r\n flex: \"1 0 auto\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n paddingTop: \"10px\",\r\n paddingLeft: \"20px\",\r\n paddingRight: \"20px\",\r\n paddingBottom: \"20px\",\r\n backgroundColor: \"#FFFFFF\"\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\"\r\n },\r\n cardTitle: {\r\n flex: \"0 0 100%\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontWeight: 400,\r\n lineHeight: \"32px\",\r\n color: \"#2D2D2D\",\r\n margin: 0,\r\n textDecoration: \"none\"\r\n },\r\n cardUnderTitle: {\r\n fontFamily: \"Rubik\",\r\n fontSize: \"16px\",\r\n fontWeight: 400,\r\n lineHeight: \"32px\",\r\n color: \"#2D2D2D\",\r\n margin: 0\r\n },\r\n anchor: {\r\n marginTop: \"8px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n color: \"#2D2D2D\"\r\n },\r\n isActive: {\r\n \"&:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n buttonWrapperRow: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n flex: \"0 0 100%\"\r\n },\r\n seeMoreButton: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n marginTop: \"10px\",\r\n textTransform: \"none\"\r\n },\r\n newsAnchor: {\r\n position: \"relative\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n marginTop: \"30px\",\r\n display: \"inline-block\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textDecoration: \"2px underline #F09057\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n marginTop: \"10px\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport React from \"react\"\r\n\r\nconst NewsCard = ({\r\n item, type, language, index\r\n}) => {\r\n const classes = useStyles()\r\n\r\n const urlParts = item.originalId.split(\"\\\\\")\r\n const urlByType = type !== \"device\" ? `/${language}/product/${item.products?.[0]}` : `/${language}/news/${urlParts[0]}/${urlParts[1]}`\r\n\r\n const isVehicle = type === \"vehicle\"\r\n\r\n return (\r\n \r\n
\r\n {`${Localization.image}\r\n
\r\n
\r\n
\r\n 20 ? \"flex\" : \"block\", flexWrap: \"wrap\" }}>\r\n = 20 ? 1 : 0, marginRight: item?.title?.length >= 20 ? \"0px\" : \"8px\" }}>{`${item?.title} ${(item?.title?.length <= 20 && isVehicle) ? item?.year : \"\"}`}\r\n {(isVehicle && item?.title?.length > 20) && 20 ? 1 : 0 }}>{item?.year}}\r\n \r\n
\r\n {isVehicle\r\n && (\r\n \r\n {`${item?.placement} (${item?.products[0]})`}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NewsCard\r\n","import useStyles from \"./styles\"\r\nimport NewsCard from \"./NewsCard\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useGetNewsQuery } from \"../../redux/services/broditWebApi\"\r\nimport theme from \"../../theme\"\r\nimport { mobileMenuBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { useSteering } from \"../../redux/hook/userHooks\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { Button, useMediaQuery } from \"@mui/material\"\r\nimport React, { useState } from \"react\"\r\n\r\nfunction NewsCardList({ type, title }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(mobileMenuBreakpoint))\r\n const [seeMore, setSeeMore] = useState(false)\r\n const steering = useSteering()\r\n\r\n const groupByType = () => {\r\n let group = \"device\"\r\n\r\n if (type !== \"device\") {\r\n switch (steering) {\r\n case \"1\":\r\n group = \"LHD\"\r\n break\r\n case \"2\":\r\n group = \"RHD\"\r\n break\r\n default:\r\n group = \"LHD\"\r\n }\r\n }\r\n\r\n return group\r\n }\r\n\r\n const allNewsPath = type !== \"device\" ? \"proclip\" : \"news\"\r\n\r\n const { data: newsArticles } = useGetNewsQuery({\r\n language,\r\n limit: 3,\r\n groups: [groupByType()]\r\n })\r\n\r\n const list = newsArticles?.length > 0\r\n ? Array.from(newsArticles)?.splice(0, isDesktop || seeMore ? 3 : 1)\r\n : []\r\n\r\n return (\r\n
\r\n

{title}

\r\n
\r\n {list.map((item, i) => )}\r\n
\r\n {!isDesktop\r\n && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {Localization.showMoreNews}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NewsCardList\r\n","import useStyles from \"./styles\"\r\nimport HolderComponent from \"./components/Holder\"\r\nimport Row from \"./components/Row\"\r\nimport HeroNews from \"./components/Heronews\"\r\nimport CarMount from \"../../assets/carMount.png\"\r\nimport MoveClip from \"../../assets/MoveClip_Start.jpg\"\r\nimport Suction from \"../../assets/Suction_Start.jpg\"\r\nimport Workstation from \"../../assets/Workstation_Start.jpg\"\r\nimport WorkstationMobile from \"../../assets/Workstation_Mobile.jpg\"\r\nimport PipeMobile from \"../../assets/Pipe_Mobile.jpg\"\r\nimport PedestalMobile from \"../../assets/Pedestal_Mobile.jpg\"\r\nimport Holder from \"../../assets/holder.png\"\r\nimport SolutionsMob from \"../../assets/solutions_mob.jpg\"\r\nimport Piedestal from \"../../assets/piedestal.png\"\r\nimport Ror from \"../../assets/ror.png\"\r\nimport Truck from \"../../assets/truck.png\"\r\nimport CustomSolutions from \"../../assets/customizedSolutions.png\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { LeftRightSteeringFilter } from \"../AutocompleteSearch\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport theme from \"../../theme\"\r\nimport { desktopBreakpoint, mobileMenuBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport NewsCardList from \"../News/NewsCardList\"\r\nimport MultiSearchbar from \"../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Button, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\nimport { Link, NavLink } from \"react-router-dom\"\r\nimport classnames from \"classnames\"\r\n\r\nconst Home = () => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(desktopBreakpoint))\r\n const isTablet = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n const showCards = useMediaQuery(theme.breakpoints.up(1170))\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileMenuBreakpoint))\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.homeSection1Titel}\r\n \r\n \r\n {Localization.homeSection1Text}\r\n \r\n
\r\n \r\n {Localization.readMore}\r\n

\r\n {Localization.aboutProclip}\r\n

\r\n
\r\n
\r\n {isTablet && (\r\n \r\n \r\n \r\n {Localization.contactBrodit}\r\n \r\n \r\n \r\n )}\r\n
\r\n {!isTablet && (\r\n \r\n \r\n \"Car\r\n

{Localization.findProClip}

\r\n
\r\n {language === \"en\" &&
{language === \"en\" && }
}\r\n \r\n
\r\n
\r\n \r\n \"Phone\r\n

{Localization.findDeviceHolder}

\r\n
\r\n {language === \"en\" && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {!showCards\r\n && (\r\n
\r\n
\r\n \"Pedestal\r\n
\r\n
\r\n \"Pipe\r\n
\r\n
\r\n \"Workstation\r\n
\r\n
\r\n )}\r\n \r\n {Localization.homeSection2Titel}\r\n \r\n \r\n {Localization.homeSection2Text}\r\n \r\n
\r\n \r\n {!showCards\r\n && (\r\n \r\n {Localization.homeReadMoreAboutStrong}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n {Localization.downloadCatalog}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {showCards\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {showCards\r\n && (\r\n \r\n {Localization.homeReadMoreAboutStrong}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.homeSectionCustomSolutionsTitel}\r\n \r\n \r\n {Localization.homeSectionCustomSolutionsText}\r\n \r\n \r\n \r\n {Localization.readMore}\r\n

\r\n {Localization.aboutProductDevelopment}\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {Localization.news}\r\n \r\n \r\n {Localization.homeSection4Text}\r\n \r\n {\r\n (language === \"en\" && isTablet)\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Home\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n listItem: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n width: \"100%\",\r\n textDecoration: \"none\",\r\n color: theme.palette.common.black,\r\n textAlign: \"end\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/arrow-forward.9146cef8.svg\";","import useStyles from \"./styles\"\r\nimport ArrowForward from \"./assets/arrow-forward.svg\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { signOut } from \"../../../redux/userSlice\"\r\nimport theme from \"../../../theme\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { desktopBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport {\r\n Box, Button, ListItem, ListItemIcon, ListItemText\r\n} from \"@mui/material\"\r\nimport { withStyles } from \"@mui/styles\"\r\nimport { Favorite as FavoriteIcon } from \"@mui/icons-material\"\r\nimport AccountCircleIcon from \"@mui/icons-material/AccountCircle\"\r\nimport AttachmentIcon from \"@mui/icons-material/Attachment\"\r\nimport GetAppIcon from \"@mui/icons-material/GetApp\"\r\nimport ReceiptIcon from \"@mui/icons-material/Receipt\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { HashLink } from \"react-router-hash-link\"\r\nimport NoteIcon from \"@mui/icons-material/Note\"\r\n\r\nconst scrollWithOffset = el => {\r\n const yCoordinate = el.getBoundingClientRect().top + window.scrollY\r\n const yOffset = -100\r\n window.scrollTo({ top: yCoordinate + yOffset, behavior: \"smooth\" })\r\n}\r\n\r\nconst LinkListItem = ({ listItem, mobile }) => (\r\n <>\r\n \r\n {\r\n !mobile && (\r\n \r\n {listItem.icon}\r\n \r\n )\r\n }\r\n\r\n \r\n)\r\n\r\nconst StyledListItem = withStyles(t => ({\r\n root: {\r\n \"&:focus\": {\r\n backgroundColor: t.palette.common.white,\r\n \"& .MuiListItemIcon-root, & .MuiListItemText-primary\": {\r\n color: t.palette.common.black\r\n }\r\n },\r\n \"& .MuiTypography-root\": {\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n }\r\n },\r\n \"&.MuiListItem-root\": {\r\n width: \"auto\"\r\n }\r\n }\r\n}))(ListItem)\r\n\r\nconst ListOptions = ({\r\n button, mobile = false, burgerMenu = false, userPage = false, handleOpenDrawer\r\n}) => {\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n const isAuthorized = useIsUserAuthorized()\r\n const language = useLanguage()\r\n const classes = useStyles()\r\n\r\n const myAccountLinkList = [\r\n {\r\n linkType: \"link\", path: `/${lang}/downloads`, target: \"\", text: Localization.fileDownload, icon: \r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/order-upload`, target: \"\", text: Localization.orderByFile, icon: \r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/orders`, target: \"\", text: Localization.yourOrders, icon: \r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/favorites`, target: \"\", text: Localization.yourFavorites, icon: \r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/user`, target: \"\", text: Localization.yourAccount, icon: \r\n }\r\n ]\r\n const notLoggedInLinkList = [\r\n {\r\n linkType: \"link\", path: `/${lang}/proclip-and-holders`, target: \"\", text: Localization.proclipAndHolders\r\n },\r\n {\r\n linkType: \"link\", path: \"/\", target: \"\", text: Localization.allProducts\r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/#news`, target: \"\", text: Localization.news\r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/retailers`, target: \"\", text: Localization.findReseller\r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/contact`, target: \"\", text: Localization.contactBrodit\r\n }\r\n ]\r\n const loggedInLinkList = [\r\n {\r\n linkType: \"link\", path: `/${lang}/proclip-and-holders`, target: \"\", text: Localization.proclipAndHolders\r\n },\r\n {\r\n linkType: \"link\", path: \"/\", target: \"\", text: Localization.allProducts\r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/#news`, target: \"\", text: Localization.news\r\n },\r\n {\r\n linkType: \"link\", path: `/${lang}/contact`, target: \"\", text: Localization.contactBrodit\r\n }\r\n ]\r\n\r\n const returnSlip = {\r\n text: Localization.returnNote,\r\n icon: \r\n }\r\n\r\n return (\r\n \r\n {\r\n (!isAuthorized && mobile) && (\r\n <>\r\n {\r\n notLoggedInLinkList.map(el => {\r\n const shouldLink = el.path !== \"/\"\r\n\r\n return (\r\n handleOpenDrawer() : null}\r\n to={el.path}\r\n scroll={el1 => scrollWithOffset(el1)}\r\n dense\r\n >\r\n \r\n {!shouldLink && \"Forward}\r\n \r\n )\r\n })\r\n }\r\n \r\n )\r\n }\r\n {\r\n (isAuthorized && mobile) && (\r\n <>\r\n {\r\n loggedInLinkList.map(el => (\r\n handleOpenDrawer() : null}\r\n to={el.path}\r\n scroll={el2 => scrollWithOffset(el2)}\r\n dense\r\n >\r\n \r\n \r\n ))\r\n }\r\n \r\n )\r\n }\r\n {\r\n (!burgerMenu && !mobile) && (\r\n <>\r\n {myAccountLinkList.map(el => (\r\n scrollWithOffset(el3)}\r\n dense\r\n >\r\n \r\n \r\n ))}\r\n \r\n )\r\n }\r\n {\r\n (lang === \"sv\" && isAuthorized) && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n {isAuthorized && (\r\n dispatch(signOut())}\r\n component={Link}\r\n aria-label=\"Log out\"\r\n >\r\n {Localization.logOut}\r\n \r\n )}\r\n {!isAuthorized && (\r\n \r\n {Localization.logIn}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ListOptions\r\n","import {\r\n desktopBreakpoint, mobileBreakpoint, mobileMenuBreakpoint, tabletBreakpoint\r\n} from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nconst menuWidth = \"fit-content\"\r\n\r\nexport default makeStyles(theme => ({\r\n appBar: {\r\n boxShadow: \"none!important\",\r\n width: \"auto\",\r\n maxWidth: \"100%\",\r\n [theme.breakpoints.up(mobileBreakpoint)]: {\r\n marginLeft: 0\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n width: \"100%\"\r\n },\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\"\r\n },\r\n topBox: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n padding: \"5px 20px\",\r\n gap: \"20px\",\r\n background: \"#F8F8F8\"\r\n },\r\n topBoxTextWrapper: {\r\n flex: \"0 1 1920px\",\r\n height: \"18px\",\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n columnGap: \"16px\",\r\n alignItems: \"center\"\r\n },\r\n topBoxText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"18px\" /* 128.571% */\r\n },\r\n image: {\r\n height: \"99px\",\r\n width: \"182px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"121px\",\r\n height: \"64px\"\r\n }\r\n },\r\n removeButtonStandardStyling: {\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n minWidth: \"0px!important\",\r\n padding: \"0px!important\",\r\n maxWidth: 28,\r\n maxHeight: 28,\r\n \"& .MuiButton-endIcon\": {\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n marginLeft: \"0px!important\",\r\n marginRight: \"0px!import\"\r\n }\r\n }\r\n }\r\n },\r\n productButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n color: \"var(--black, #2D2D2D)\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"20px\", /* 133.333% */\r\n letterSpacing: \"0.25px\",\r\n textTransform: \"none!important\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\"\r\n },\r\n mobileMenuButton: {\r\n justifyContent: \"flex-start\",\r\n display: \"flex\"\r\n },\r\n iconWrapper: {\r\n display: \"flex\",\r\n alignItems: \"flex-end\",\r\n flexDirection: \"row\"\r\n },\r\n loggedIn: {\r\n display: \"flex\",\r\n paddingRight: \"0px\",\r\n alignItems: \"flex-end\",\r\n gap: \"10px\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n desktopSearchAreaBox: {\r\n display: \"flex\",\r\n paddingRight: \"0px\",\r\n alignItems: \"center\",\r\n gap: \"29px\"\r\n },\r\n flexWrap: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\"\r\n },\r\n toolbar: {\r\n display: \"flex\",\r\n flex: \"0 1 100%\",\r\n justifyContent: \"center\",\r\n paddingLeft: \"20px\",\r\n paddingRight: \"20px\",\r\n backgroundColor: \"#FFFFFF\",\r\n borderBottom: \"1px solid rgba(0, 0, 0, 0.12)\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n justifyContent: \"space-between\",\r\n paddingTop: 15,\r\n paddingBottom: 15\r\n }\r\n },\r\n logo: {\r\n display: \"flex\",\r\n paddingLeft: \"0px\",\r\n paddingTop: \"5px\",\r\n paddingBottom: \"5px\",\r\n flexDirection: \"column\",\r\n gap: \"10px\",\r\n marginLeft: \"47\"\r\n },\r\n drawerPaper: {\r\n position: \"relative\",\r\n whiteSpace: \"nowrap\",\r\n width: menuWidth,\r\n color: \"#404040\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"auto\"\r\n }\r\n },\r\n badgePos: {\r\n transform: \"scale(1) translate(60%, 0%)\"\r\n },\r\n badge: {\r\n height: \"20px\",\r\n minWidth: \"20px\",\r\n borderRadius: \"50%\",\r\n padding: 0,\r\n color: \"#FFF\"\r\n },\r\n leftRightFilter: {\r\n width: 75,\r\n height: 60,\r\n paddingLeft: 4,\r\n marginTop: 4\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: \"40px\"\r\n },\r\n searchArea: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: 40,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n alignItems: \"center\",\r\n gap: 16\r\n }\r\n },\r\n mobileSearchArea: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: 20,\r\n alignItems: \"flex-end\"\r\n },\r\n flag: {\r\n width: 38,\r\n height: 38\r\n },\r\n icon: {\r\n display: \"inline-block\",\r\n pointerEvents: \"none\"\r\n },\r\n openTransform: {\r\n transform: \"rotate(180deg)\"\r\n },\r\n hoverUnderline: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n iconButton: {\r\n \"&.MuiButton-root\": {\r\n minWidth: 0\r\n }\r\n },\r\n loginIcon: {\r\n marginLeft: 5\r\n },\r\n slider: {\r\n display: \"flex\",\r\n // position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n transition: \"all 0.2s ease-in-out\"\r\n },\r\n slideItem: {\r\n flex: \"0 0 100%\"\r\n },\r\n slideContent: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"0 0 100%\",\r\n justifyContent: \"flex-end\"\r\n },\r\n topBar: {\r\n display: \"flex\",\r\n padding: \"20px\",\r\n justifyContent: \"flex-end\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"18px\",\r\n textAlign: \"left\"\r\n },\r\n closeButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n appearance: \"none\",\r\n gap: \"5px\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\"\r\n },\r\n loginButton: {\r\n display: \"flex\",\r\n padding: \"10px 20px\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"#F09057\",\r\n color: \"#2D2D2D\",\r\n /* M3/label/medium */\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 114.286% */\r\n letterSpacing: \"0.5px\",\r\n transition: \"all 0.1s ease-in\",\r\n textDecoration: \"none\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n },\r\n innerToolbarWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flex: \"0 1 1920px\",\r\n paddingLeft: \"16px\",\r\n paddingRight: \"16px\",\r\n alignItems: \"center\"\r\n },\r\n plainButton: {\r\n display: \"flex\"\r\n },\r\n navWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 1920px\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\"\r\n }\r\n}))\r\n","import ListOptions from \"../ListOptions/ListOptions\"\r\nimport useStyles from \"../styles\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport React from \"react\"\r\nimport { withStyles } from \"@mui/styles\"\r\nimport { Button, Menu } from \"@mui/material\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\"\r\n\r\nconst StyledMenu = withStyles({\r\n paper: {\r\n marginTop: \"5px\",\r\n boxShadow: \"0px 0px 20px 0px rgba(45, 45, 45, 0.1)\"\r\n }\r\n})(props => (\r\n \r\n))\r\n\r\nconst NavbarMenu = ({ mobile }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n const classes = useStyles()\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n
\r\n \r\n {/* { person icon} */}\r\n \r\n \r\n \r\n {!anchorEl\r\n ? \r\n : }\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default NavbarMenu\r\n","export default __webpack_public_path__ + \"static/media/eng.9931805a.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFdQTFRF////QXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNUn3DQXPNQXPNx8B81slzQXPNQXPNQXPNU33CmqeXo6yR6NRo89ph/+Fa4V8orAAAABZ0Uk5TAAEFDhwwQGp0e4Wmrri8vc/h5ev0/L9BfX0AAANzSURBVHja7djdauMwEIDR0Y/TQNv3f88uocG25F4se93UsFStzrk32DMfcpwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhXioiIUnLJI95ericuOjZ7/UxvvbV/AaTLax61z+XMw+0W/MiY/qxHRImoLy9p2AOqnDkBuu0+MttraT1K5NengW9SAP9RLeuR43oxiVldrpGXZ3OY1/OSazKGiX8H1FxMYWYlL4Yws0UAswdgBnMTgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAAvlcdu4B06iJVfyGA+vueKVV79QpAAAgAASAABIAAEAACQAAIAAEgAAQgACMQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIgPHUfejbS+XERUez18cD6L8wgG6vXgEIAAEgAASAABAAAkAACAABIAAEgAAEYAQCQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAABGIEAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAHwIwLYzGBmmwBmD6AZwsxa3g9TmNex5+1mDPO6bTnuqznMar1HiWNPddg7TOXMudat9iH3W4sS0df9kgQwnf723iP+br6UXIb8SyifOZwOn7afb7/15gMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgOl9AO6gRrzHx4BRAAAAAElFTkSuQmCC\"","import NavbarMenu from \"../NavbarMenu/NavbarMenu\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport useStyles from \"../styles\"\r\nimport { LeftRightSteeringFilter } from \"../../AutocompleteSearch\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport AsyncSearch from \"../../AsyncSearch/AsyncSearch\"\r\nimport SpeedOrderNavbar from \"../../SpeedOrder/SpeedOrderNavbar\"\r\nimport useCookiesConsent from \"../../../redux/hook/gdprHooks\"\r\nimport engFlag from \"../../../assets/eng.svg\"\r\nimport sweFlag from \"../../../assets/swe.png\"\r\nimport MultiSearchbar from \"../../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport {\r\n Box, Button, Tooltip, Badge, Typography\r\n} from \"@mui/material\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\nimport classnames from \"classnames\"\r\nimport { ShoppingCart } from \"@mui/icons-material\"\r\nimport React from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { Link, NavLink } from \"react-router-dom\"\r\nimport { HashLink } from \"react-router-hash-link\"\r\n\r\nfunction DesktopSearchArea({ handleOpenDrawer, drawerIsOpen }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const otherLang = language === \"sv\" ? \"en\" : \"sv\"\r\n const isAuthorized = useIsUserAuthorized()\r\n const cart = useSelector(state => state.cart)\r\n const acceptedCookies = useCookiesConsent()\r\n\r\n const changeLanguage = () => window.location.pathname.replace(language, otherLang)\r\n\r\n const scrollWithOffset = el => {\r\n const yCoordinate = el.getBoundingClientRect().top + window.scrollY\r\n const yOffset = -100\r\n window.scrollTo({ top: yCoordinate + yOffset, behavior: \"smooth\" })\r\n }\r\n const signedInStyles = isAuthorized && ({ paddingTop: \"5px\", paddingBottom: \"5px\" })\r\n return (\r\n \r\n \r\n {\r\n isAuthorized\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {!isAuthorized\r\n && (\r\n \r\n \r\n {Localization.findReseller}\r\n \r\n \r\n )}\r\n scrollWithOffset(el)} to={`/${language}/#news`} style={{ textDecoration: \"none\" }} className={classes.hoverUnderline}>\r\n \r\n {Localization.news}\r\n \r\n \r\n \r\n \r\n {Localization.allProducts}\r\n \r\n \r\n \r\n {!isAuthorized\r\n && (\r\n \r\n {Localization.logIn}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (language === \"en\")\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DesktopSearchArea\r\n","export default __webpack_public_path__ + \"static/media/close-icon.99dc9a03.svg\";","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n slider: {\r\n display: \"flex\",\r\n left: 0,\r\n right: 0,\r\n transition: \"all 0.2s ease-in-out\"\r\n },\r\n slideItem: {\r\n flex: \"0 0 100%\"\r\n },\r\n slideContent: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"0 0 100%\",\r\n justifyContent: \"flex-end\"\r\n },\r\n topBar: {\r\n display: \"flex\",\r\n padding: \"20px\",\r\n justifyContent: \"flex-end\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"18px\",\r\n textAlign: \"left\"\r\n },\r\n closeButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n appearance: \"none\",\r\n gap: \"5px\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"18px\",\r\n textAlign: \"left\",\r\n color: \"#2d2d2d\"\r\n },\r\n forwardButton: {\r\n border: 0,\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"flex-end\",\r\n background: \"transparent\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n textAlign: \"left\",\r\n paddingTop: \"7px\",\r\n paddingBottom: \"7px\",\r\n paddingRight: \"20px\",\r\n cursor: \"pointer\",\r\n color: \"#2D2D2D\"\r\n },\r\n anchor: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n paddingTop: \"7px\",\r\n paddingBottom: \"7px\",\r\n paddingRight: \"20px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\"\r\n },\r\n leftDrawerPaper: {\r\n width: \"100%\",\r\n maxWidth: \"600px\",\r\n overflowX: \"hidden\"\r\n },\r\n drawerRow: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n paddingRight: \"20px\",\r\n paddingLeft: \"20px\",\r\n paddingTop: \"5px\",\r\n paddingBottom: \"5px\"\r\n },\r\n loginAnchor: {\r\n borderRadius: \"4px\",\r\n backgroundColor: \"#F09057\",\r\n border: 0,\r\n padding: \"10px 14px 10px 14px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/arrow-forward.608577d8.svg\";","import CloseIcon from \"./assets/close-icon.svg\"\r\nimport useStyles from \"./styles\"\r\nimport ArrowForward from \"./assets/arrow-forward.svg\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../../redux/hook/userHooks\"\r\n/* eslint-disable import/no-cycle */\r\nimport Menu2 from \"../../../Menu2/Menu2\"\r\nimport { setSearchQuery } from \"../../../../redux/searchReducer\"\r\nimport { signOut } from \"../../../../redux/userSlice\"\r\nimport {\r\n Button\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport Drawer from \"@mui/material/Drawer\"\r\n\r\nfunction MobileDrawer({ open, onClose }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const dispatch = useDispatch()\r\n\r\n const [slide, setSlide] = React.useState(0)\r\n\r\n const handleClose = () => {\r\n onClose()\r\n setTimeout(() => {\r\n setSlide(0)\r\n }, 500)\r\n }\r\n\r\n const handleForward = () => {\r\n setSlide(slide + 1)\r\n }\r\n\r\n const handleBack = () => {\r\n setSlide(slide - 1)\r\n }\r\n\r\n const onItemClick = id => {\r\n dispatch(setSearchQuery({\r\n type: \"menu2Drawer\",\r\n value: { collections: [id] },\r\n clearFilter: true\r\n }))\r\n handleClose()\r\n }\r\n\r\n const links = [\r\n {\r\n type: \"button\",\r\n path: \"/\",\r\n text: Localization.allProducts,\r\n onClick: handleForward\r\n },\r\n {\r\n type: \"link\",\r\n path: `/${language}/#news`,\r\n text: Localization.news\r\n },\r\n {\r\n type: \"link\",\r\n path: `/${language}/retailers`,\r\n text: Localization.findReseller\r\n },\r\n {\r\n type: \"link\",\r\n path: `/${language}/contact`,\r\n text: Localization.contactBrodit\r\n }\r\n ]\r\n\r\n const logOut = () => {\r\n handleClose()\r\n dispatch(signOut())\r\n }\r\n\r\n const renderLoginLogoutButton = () => {\r\n const element = isAuthorized\r\n ? \r\n : {Localization.logIn}\r\n\r\n return (\r\n
\r\n {element}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {links.map(link => (\r\n link.type === \"button\"\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n {link.text}\r\n \r\n )))}\r\n {renderLoginLogoutButton()}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default MobileDrawer\r\n","import MobileDrawer from \"./MobileDrawer/MobileDrawer\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport useStyles from \"../styles\"\r\n/* eslint-disable import/no-cycle */\r\nimport sweFlag from \"../../../assets/swe.png\"\r\nimport engFlag from \"../../../assets/eng.svg\"\r\nimport useCookiesConsent from \"../../../redux/hook/gdprHooks\"\r\nimport { useSearchQuery } from \"../../../redux/hook/searchHooks\"\r\nimport NavbarMenu from \"../NavbarMenu/NavbarMenu\"\r\nimport {\r\n Badge, Box, Button, Tooltip\r\n} from \"@mui/material\"\r\nimport { ShoppingCart } from \"@mui/icons-material\"\r\nimport React, { useEffect } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nfunction MobileSearchArea({ toggleShowSearch }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const cart = useSelector(state => state.cart)\r\n const otherLang = language === \"sv\" ? \"en\" : \"sv\"\r\n const changeLanguage = () => window.location.pathname.replace(language, otherLang)\r\n const acceptedCookies = useCookiesConsent()\r\n const search = useSearchQuery()\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n useEffect(() => {\r\n toggleShowSearch(false)\r\n }, [search])\r\n\r\n return (\r\n \r\n \r\n {!isAuthorized && (\r\n \r\n {Localization.logIn}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {isAuthorized && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n toggleShowSearch()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {isAuthorized && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileSearchArea\r\n","import { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { loadCookie, saveCookie } from \"../../../redux/cookieStorage\"\r\nimport { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { styled } from \"@mui/styles\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\nimport CloseIcon from \"@mui/icons-material/Close\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst MessageBarBase = styled(\"div\")(({ theme }) => (\r\n {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexWrap: \"wrap\",\r\n padding: \"16px 20px\",\r\n backgroundColor: \"#000000\",\r\n color: \"#FFFFFF\",\r\n fontFamily: \"Arial\",\r\n gap: \"8px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n padding: \"16px 50px 16px 20px\"\r\n }\r\n }\r\n))\r\n\r\nconst CloseButton = styled(\"button\")(() => (\r\n {\r\n position: \"absolute\",\r\n right: \"20px\",\r\n top: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"unset\",\r\n color: \"#FFFFFF\",\r\n cursor: \"pointer\"\r\n }\r\n))\r\n\r\nconst ReadMoreLink = styled(Link)(() => (\r\n {\r\n color: \"#FFFFFF\",\r\n fontWeight: 700\r\n }\r\n))\r\n\r\nconst Text = styled(\"div\")(({ theme }) => (\r\n {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n flex: \"0 1 100%\",\r\n justifyContent: \"center\"\r\n }\r\n }\r\n))\r\n\r\nconst MessageBar = () => {\r\n const [open, setOpen] = useState(false)\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const cookieClosed = loadCookie(\"messageClosed\")\r\n const [message, setMessage] = useState(null)\r\n\r\n const fetchAnnouncementMessage = async () => {\r\n const response = await fetch(`/files/DynamicPages/AnnouncementMessage-${language}.json`)\r\n return response.json()\r\n }\r\n\r\n useEffect(() => {\r\n let isMounted = true\r\n\r\n const fetchMessage = async () => {\r\n const result = await fetchAnnouncementMessage()\r\n if (isMounted) setMessage(result)\r\n }\r\n\r\n fetchMessage()\r\n\r\n return () => {\r\n isMounted = false\r\n }\r\n }, [language])\r\n\r\n useEffect(() => {\r\n setOpen(!cookieClosed)\r\n }, [cookieClosed])\r\n\r\n const closeMessage = () => {\r\n saveCookie(\"messageClosed\", 1)\r\n setOpen(false)\r\n }\r\n\r\n return isAuthorized && open && message && message.enabled ? (\r\n \r\n \r\n \r\n {message.barText}\r\n \r\n {message.barLink.text}\r\n \r\n \r\n ) : null\r\n}\r\n\r\nexport default MessageBar\r\n","/* eslint-disable import/no-cycle */\r\nimport DesktopSearchArea from \"./SearchArea/DesktopSearchArea\"\r\nimport MobileSearchArea from \"./SearchArea/MobileSearchArea\"\r\nimport useStyles from \"./styles\"\r\nimport MessageBar from \"./MessageBar/MessageBar\"\r\nimport {\r\n AsyncSearch,\r\n Menu2Drawer\r\n} from \"..\"\r\nimport largeLogo from \"../../assets/largelogo.png\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useIsShowingNavbarSearch } from \"../../redux/hook/settingsHooks\"\r\nimport { useUserAuthToken } from \"../../redux/hook/userHooks\"\r\nimport { setProxyPath, setRecaptchaSiteKey, setShowNavbarSearch } from \"../../redux/settingsReducer\"\r\nimport theme from \"../../theme\"\r\nimport useWindowDimensions from \"../../redux/hook/windowHooks\"\r\nimport { LeftRightSteeringFilter } from \"../AutocompleteSearch\"\r\nimport MultiSearchbar from \"../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React, {\r\n useEffect, useRef, useState\r\n} from \"react\"\r\nimport {\r\n AppBar, Box, Toolbar,\r\n Typography,\r\n useMediaQuery\r\n} from \"@mui/material\"\r\n\r\nconst Navbar = () => {\r\n const language = useLanguage()\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n\r\n const [drawerIsOpen, setDrawerIsOpen] = useState(false)\r\n const navbarRef = useRef()\r\n const searchBoxRef = useRef()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(tabletBreakpoint))\r\n const showingSearch = useIsShowingNavbarSearch()\r\n const isAuth = useUserAuthToken()\r\n const windowSize = useWindowDimensions()\r\n const [hide, setHide] = useState(false)\r\n\r\n useEffect(() => {\r\n dispatch(setProxyPath(process.env.REACT_APP_PROXY_PATH))\r\n dispatch(setRecaptchaSiteKey(process.env.REACT_APP_RECAPTCHA_SITEKEY))\r\n }, [])\r\n\r\n const handleOpenDrawer = () => setDrawerIsOpen(prev => !prev)\r\n\r\n const handleBackDropClick = () => setDrawerIsOpen(false)\r\n\r\n const toggleShowSearch = (input = null) => {\r\n if (input === false) dispatch(setShowNavbarSearch(false))\r\n else dispatch(setShowNavbarSearch(!showingSearch))\r\n }\r\n\r\n const handleOnClick = () => {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n useEffect(() => { setDrawerIsOpen(false) }, [windowSize])\r\n\r\n const handleClickOutside = event => {\r\n if (event.target.classList.value.length === 0) return\r\n if (!event.target.classList.contains(\"MuiAutocomplete-option\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-listbox\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-dropdown\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-wrapper\")\r\n && !event.target.classList.contains(\"MuiInputBase-input\")\r\n && !event.target.classList.contains(\"MuiBox-root\")\r\n && !event.target.classList.contains(\"MuiSvgIcon-root\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-input\")\r\n && !event.target.classList.contains(\"makeStyles-dropdownButton-60\")\r\n && !event.target.classList.contains(\"makeStyles-dropdownButton-64\")\r\n && !event.target.classList.contains(\"makeStyles-truncatedSearchString-65\")\r\n && !event.target.classList.contains(\"makeStyles-option-69\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-endAdornment\")\r\n ) setHide(false)\r\n if (\r\n searchBoxRef?.current && !searchBoxRef?.current.contains(event.target)\r\n && navbarRef?.current && !navbarRef?.current.contains(event.target)\r\n && !event.target.id.includes(\"autocomplete-search\")\r\n ) {\r\n dispatch(setShowNavbarSearch(false))\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (showingSearch) {\r\n document.addEventListener(\"mousedown\", handleClickOutside)\r\n } else {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n }, [showingSearch])\r\n\r\n const [openVehicleSearch, setOpenVehicleSearch] = useState(false)\r\n const [openDeviceSearch, setOpenDeviceSearch] = useState(false)\r\n\r\n const handleVehicleSearchClick = () => {\r\n setOpenVehicleSearch(true)\r\n setOpenDeviceSearch(false)\r\n }\r\n\r\n const handleDeviceSearchClick = () => {\r\n setOpenVehicleSearch(false)\r\n setOpenDeviceSearch(true)\r\n }\r\n\r\n const handleCloseVehicleSearch = () => {\r\n setOpenVehicleSearch(false)\r\n }\r\n\r\n const handleCloseDeviceSearch = () => {\r\n setOpenDeviceSearch(false)\r\n }\r\n\r\n return (\r\n <>\r\n {!hide\r\n && (\r\n \r\n \r\n {isDesktop && (\r\n \r\n \r\n {isAuth !== null && (\r\n <>\r\n \r\n \r\n {Localization.downloadCatalog}\r\n \r\n \r\n \r\n \r\n {Localization.contactBrodit}\r\n \r\n \r\n \r\n )}\r\n {isAuth === null && (\r\n <>\r\n \r\n \r\n {Localization.becomeReseller.toUpperCase()}\r\n \r\n \r\n \r\n \r\n {Localization.contactBrodit.toUpperCase()}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {isDesktop\r\n && (\r\n \r\n )}\r\n {!isDesktop\r\n && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n {\r\n (language === \"en\")\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Navbar\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n justifyContent: \"center\",\r\n margin: theme.spacing(2)\r\n },\r\n \"@keyframes rotate\": {\r\n \"0%\": {\r\n transform: \"rotate(0deg)\"\r\n },\r\n \"100%\": {\r\n transform: \"rotate(180deg)\"\r\n }\r\n },\r\n working: {\r\n animation: `$rotate 3000ms ${theme.transitions.easing.easeInOut} infinite`\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: 350,\r\n marginBottom: 40,\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"auto\"\r\n }\r\n },\r\n column: {\r\n flex: \"1 0 350px\",\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n addressWrapper: {\r\n padding: 20\r\n },\r\n half: {\r\n flex: \"0 1 50%\"\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n tempAddressLabel: {\r\n fontSize: 12\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n spaceEven: {\r\n justifyContent: \"space-evenly\"\r\n },\r\n full: {\r\n width: \"100%\"\r\n },\r\n gap1: {\r\n gap: \"1rem\"\r\n },\r\n userInfoWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n fontFamily: \"Arial\",\r\n gap: \"30px\"\r\n },\r\n space: {\r\n gap: \"50px\"\r\n }\r\n}))\r\n","import countries from \"./countries.json\"\r\nimport useStyles from \"./styles\"\r\nimport { UserInfo } from \"../..\"\r\nimport { mailRegex } from \"../../../lib/helper/commonHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport {\r\n nextCartStep, prevCartStep, setOrderId\r\n} from \"../../../redux/cartSlice\"\r\nimport { useIsUserAuthorized, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { setSnackbarMessage } from \"../../../redux/userMessageSlice\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, Collapse, FormControl, FormControlLabel, InputLabel, MenuItem, Select, Switch, TextField, Typography,\r\n Alert\r\n} from \"@mui/material\"\r\nimport { ArrowBack, ArrowForward, Loop } from \"@mui/icons-material\"\r\n\r\nimport axios from \"axios\"\r\nimport classNames from \"classnames\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst AddressButtons = ({ orderInProgress }) => {\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const isAuthorized = useIsUserAuthorized()\r\n const dispatch = useDispatch()\r\n\r\n const handlePrev = () => {\r\n dispatch(prevCartStep())\r\n }\r\n\r\n const orderingAvailable = () => (cart.items.length > 0) && (isAuthorized === true) && cart.order.step === 1\r\n\r\n return (\r\n \r\n \r\n }\r\n onClick={handlePrev}\r\n disabled={cart.order.step === 0}\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n >\r\n {Localization.backToCart}\r\n \r\n : }\r\n id=\"submitOrder\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n type=\"submit\"\r\n disabled={!orderingAvailable() || orderInProgress}\r\n >\r\n {Localization.submitOrder}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst boxHeight = 15\r\n\r\nconst MobileOrderAddresses = () => {\r\n const defaultValues = {\r\n yourOrderNumber: null, // Purchase order\r\n authToken: null,\r\n email: null,\r\n reference: null, // Order placed by\r\n rows: [],\r\n messageToBrodit: null,\r\n language: null,\r\n deliveryAddress: {},\r\n specialAddress: false\r\n }\r\n\r\n const classes = useStyles()\r\n const authToken = useUserAuthToken()\r\n const cart = useSelector(state => state.cart)\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n const [orderInProgress, setOrderInProgress] = useState(false)\r\n const counriesForLang = countries[lang]\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n const {\r\n register, handleSubmit, resetField, watch, setValue, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const sms = watch(\"SMS\")\r\n\r\n useEffect(() => {\r\n resetField(\"smsNumber\")\r\n }, [sms])\r\n\r\n useEffect(() => {\r\n setValue(\"authToken\", authToken)\r\n setValue(\"language\", lang)\r\n setValue(\"rows\", cart.items.map(item => ({\r\n type: 1, // Sätts alltid till 1 i backend (nu)\r\n articleNumber: item.id,\r\n quantity: item.quantity,\r\n comment: item.note\r\n })))\r\n }, [])\r\n\r\n const onSubmit = data => {\r\n // Delete the delivery adress if omitted, monitor wants this as null if no action is to be taken (= omitted)\r\n if (!watch(\"specialAddress\")) {\r\n delete data.deliveryAddress\r\n }\r\n\r\n (async () => {\r\n setOrderInProgress(true)\r\n let response = null\r\n try {\r\n response = await axios.post(\r\n \"/api/ProductInfo/PlaceOrder\",\r\n data\r\n )\r\n } catch {\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n setOrderInProgress(false)\r\n return\r\n }\r\n\r\n const status = response.data.httpStatusCode // Statuskod från MonitorAPI, ej från WebAPI.\r\n\r\n setOrderInProgress(false)\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.orderWasPlaced, \"success\"))\r\n break\r\n case 400:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n case 401:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n }\r\n\r\n dispatch(setOrderId(response.data.response.OrderNumber))\r\n dispatch(nextCartStep())\r\n clearCart({ authToken })\r\n })()\r\n }\r\n\r\n return (\r\n
\r\n {Localization.myDetails}\r\n \r\n \r\n \r\n \r\n \r\n {Boolean(errors.yourOrderNumber) && {Localization.maximum30Letters}}\r\n \r\n \r\n \r\n mailRegex.test(value) })}\r\n error={Boolean(errors.email)}\r\n />\r\n \r\n {lang === \"sv\"\r\n && (\r\n <>\r\n \r\n )}\r\n />\r\n \r\n \r\n /^[0-9]+$/.test(value)\r\n }) : {})}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lang !== \"sv\" && (\r\n \r\n {Localization.country}\r\n \r\n {counriesForLang.map((country, i) => (\r\n {country.value}\r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileOrderAddresses\r\n","import countries from \"./countries.json\"\r\nimport useStyles from \"./styles\"\r\nimport { UserInfo } from \"../..\"\r\nimport { mailRegex } from \"../../../lib/helper/commonHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport {\r\n nextCartStep, prevCartStep, setOrderId\r\n} from \"../../../redux/cartSlice\"\r\nimport { useIsUserAuthorized, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { setSnackbarMessage } from \"../../../redux/userMessageSlice\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, Collapse, FormControl, FormControlLabel, InputLabel, MenuItem, Select, Switch, TextField, Alert\r\n} from \"@mui/material\"\r\nimport { ArrowBack, ArrowForward, Loop } from \"@mui/icons-material\"\r\n\r\nimport axios from \"axios\"\r\nimport classNames from \"classnames\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst AddressButtons = ({ orderInProgress }) => {\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const isAuthorized = useIsUserAuthorized()\r\n const dispatch = useDispatch()\r\n\r\n const handlePrev = () => {\r\n dispatch(prevCartStep())\r\n }\r\n\r\n const orderingAvailable = () => (cart.items.length > 0) && (isAuthorized === true) && cart.order.step === 1\r\n\r\n return (\r\n \r\n \r\n }\r\n onClick={handlePrev}\r\n disabled={cart.order.step === 0}\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n >\r\n {Localization.backToCart}\r\n \r\n : }\r\n variant=\"contained\"\r\n id=\"submitOrder\"\r\n color=\"primary\"\r\n type=\"submit\"\r\n disabled={!orderingAvailable() || orderInProgress}\r\n >\r\n {Localization.submitOrder}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst boxHeight = 15\r\n\r\nconst OrderAddresses = () => {\r\n const defaultValues = {\r\n yourOrderNumber: null, // Purchase order\r\n authToken: null,\r\n email: null,\r\n reference: null, // Order placed by\r\n rows: [],\r\n messageToBrodit: null,\r\n language: null,\r\n deliveryAddress: {},\r\n specialAddress: false,\r\n smsNumber: null\r\n }\r\n\r\n const classes = useStyles()\r\n const authToken = useUserAuthToken()\r\n const cart = useSelector(state => state.cart)\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n const [orderInProgress, setOrderInProgress] = useState(false)\r\n const counriesForLang = countries[lang]\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n const {\r\n register, resetField, handleSubmit, watch, setValue, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const sms = watch(\"SMS\")\r\n\r\n useEffect(() => {\r\n resetField(\"smsNumber\")\r\n }, [sms])\r\n\r\n useEffect(() => {\r\n setValue(\"authToken\", authToken)\r\n setValue(\"language\", lang)\r\n setValue(\"rows\", cart.items.map(item => ({\r\n type: 1, // Sätts alltid till 1 i backend (nu)\r\n articleNumber: item.id,\r\n quantity: item.quantity,\r\n comment: item.note\r\n })))\r\n }, [])\r\n\r\n const onSubmit = data => {\r\n // Delete the delivery adress if omitted, monitor wants this as null if no action is to be taken (= omitted)\r\n if (!watch(\"specialAddress\")) {\r\n delete data.deliveryAddress\r\n }\r\n\r\n (async () => {\r\n setOrderInProgress(true)\r\n let response = null\r\n try {\r\n response = await axios.post(\r\n \"/api/ProductInfo/PlaceOrder\",\r\n data\r\n )\r\n } catch {\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n setOrderInProgress(false)\r\n return\r\n }\r\n\r\n const status = response.data.httpStatusCode // Statuskod från MonitorAPI, ej från WebAPI.\r\n\r\n setOrderInProgress(false)\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.orderWasPlaced, \"success\"))\r\n break\r\n case 400:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n case 401:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n }\r\n\r\n dispatch(setOrderId(response.data.response.OrderNumber))\r\n dispatch(nextCartStep())\r\n clearCart({ authToken })\r\n })()\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {Boolean(errors.yourOrderNumber) && {Localization.maximum30Letters}}\r\n \r\n \r\n \r\n mailRegex.test(value) })}\r\n error={Boolean(errors.email)}\r\n />\r\n \r\n {lang === \"sv\"\r\n && (\r\n <>\r\n \r\n )}\r\n />\r\n \r\n \r\n\r\n /^[0-9]+$/.test(value)\r\n }) : {})}\r\n />\r\n\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lang !== \"sv\" && (\r\n \r\n {Localization.country}\r\n \r\n {counriesForLang.map((country, i) => (\r\n {country.value}\r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default OrderAddresses\r\n","/* eslint-disable no-restricted-globals */\r\nimport useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { deleteCartRow, editCartNote, setQuantity } from \"../../../redux/cartSlice\"\r\nimport { useProduct, useProductsLoading } from \"../../../redux/hook/productHooks\"\r\nimport FavoriteButton from \"../../Favorites/FavoriteButton\"\r\nimport Banner from \"../../Products/Banner/Banner\"\r\nimport CompatibleModels from \"../../Products/ProductInfo/components/CompatibleModels/CompatibleModels\"\r\nimport {\r\n Accordion, AccordionDetails, AccordionSummary,\r\n Avatar, Box, Divider, IconButton, Paper,\r\n TextField, Tooltip, Typography,\r\n Skeleton\r\n} from \"@mui/material\"\r\nimport DeleteIcon from \"@mui/icons-material/Delete\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\n\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst MobileProductCardOrder = ({\r\n id, price, currency, quantity, deliveredQuantity, isModifiable, index, text\r\n}) => {\r\n const classes = useStyles()\r\n const product = useProduct(id)\r\n const loading = useProductsLoading()\r\n const dispatch = useDispatch()\r\n\r\n const quantityChanged = e => {\r\n const n = e.target.value !== \"\" ? e.target.value : 0\r\n const isNumber = !isNaN(parseFloat(n)) && isFinite(n)\r\n if (!isNumber) return\r\n const parsed = parseInt(n, 10)\r\n dispatch(setQuantity(parsed, index))\r\n }\r\n\r\n const deleteProduct = () => {\r\n dispatch(deleteCartRow(index))\r\n }\r\n\r\n const noteChanged = e => {\r\n const t = e.target.value\r\n dispatch(editCartNote(t, index))\r\n }\r\n\r\n // Product is not yet loaded..\r\n if (product === undefined && loading) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // When product is ordered but cannot be found return card with info\r\n if (product === undefined) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {id}\r\n \r\n
\r\n
\r\n
\r\n \r\n {Localization.thisProductIsNotAvailableOrder}\r\n \r\n
\r\n
\r\n
\r\n {text}\r\n
\r\n
\r\n {formatAmount(quantity)}\r\n
\r\n {deliveredQuantity !== undefined ? (\r\n
\r\n {formatAmount(deliveredQuantity) || \"0\"}\r\n
\r\n ) : (null)}\r\n
\r\n {formatPrice(price)}\r\n
\r\n
\r\n {formatPrice(price * quantity)}\r\n
\r\n
\r\n {isModifiable\r\n ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null}\r\n
\r\n
\r\n \r\n )\r\n }\r\n\r\n // Product was found, return a cart\r\n return (\r\n \r\n \r\n \r\n \r\n {product.isNew\r\n ? \r\n : null}\r\n {product.comingSoon\r\n ? \r\n : null}\r\n { /* */ /* Not in first iteration.. */}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {product.originalId}\r\n \r\n \r\n \r\n \r\n \r\n {product.name}\r\n \r\n \r\n {Localization.note}\r\n :\r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n className={classes.accordionSummary}\r\n >\r\n

{Localization.moreInformation}

\r\n \r\n \r\n \r\n {Localization.description}\r\n :\r\n \r\n \r\n {product.description}\r\n \r\n \r\n {Localization.compatibleProducts}\r\n :\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {deliveredQuantity !== undefined ? (\r\n \r\n {formatAmount(deliveredQuantity) || \"0\"}\r\n \r\n ) : (null)}\r\n \r\n \r\n {Localization.price}\r\n :\r\n {\" \"}\r\n {formatPrice(price)}\r\n {\" \"}\r\n {currency}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.total}\r\n :\r\n {\" \"}\r\n {formatPrice(price * quantity)}\r\n {\" \"}\r\n {currency}\r\n \r\n \r\n \r\n {isModifiable\r\n ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MobileProductCardOrder\r\n","import useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport ExternalLinkIcon from \"../../../lib/icons/ExternalLink/ExternalLinkIcon\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useUser } from \"../../../redux/hook/userHooks\"\r\nimport MobileProductCardOrder from \"../../Order/ProductCardOrder/MobileProductCardOrder\"\r\nimport getStatusText from \"../functions\"\r\nimport {\r\n Box, Button, Link as SimpleLink, List, ListItem, Typography\r\n} from \"@mui/material\"\r\nimport {\r\n ArrowBack, CheckCircleOutline, ConfirmationNumber,\r\n CreditCard, Notes, PersonOutline, Receipt, ThumbUp\r\n} from \"@mui/icons-material\"\r\nimport AssignmentTurnedInIcon from \"@mui/icons-material/AssignmentTurnedIn\"\r\nimport LocalShippingIcon from \"@mui/icons-material/LocalShipping\"\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst MobileOrderInfo = ({ customerOrder, isOrderConfirmation }) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n const user = useUser()\r\n\r\n const getDate = a => {\r\n const date = new Date(a)\r\n return date.toLocaleDateString()\r\n }\r\n\r\n const findComment = position => customerOrder.Rows.find(\r\n x => x.Position === position && x.Type === 4 && x.TextType === 7\r\n )?.Text\r\n\r\n return (\r\n \r\n {isOrderConfirmation ? (\r\n <>\r\n \r\n {Localization.orderConfirmation}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {Localization.order}\r\n {\" \"}\r\n {customerOrder.OrderNumber}\r\n \r\n \r\n \r\n {getStatusText(customerOrder.Status)}\r\n \r\n \r\n )}\r\n {isOrderConfirmation ? (\r\n \r\n \r\n {Localization.thankYouForOrder}\r\n \r\n {Localization.orderIsProcessing}\r\n \r\n ) : (\r\n null\r\n )}\r\n \r\n \r\n \r\n {isOrderConfirmation ? (\r\n <>\r\n \r\n \r\n {Localization.checkOrderDetails}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n {Localization.orderNumber}\r\n :\r\n {\" \"}\r\n {customerOrder.OrderNumber}\r\n \r\n \r\n {Localization.orderDate}\r\n :\r\n {\" \"}\r\n {getDate(customerOrder.OrderDate)}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {\" \"}\r\n {formatAmount(customerOrder.TotalOrderLines)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {\" \"}\r\n {formatAmount(customerOrder.TotalProducts)}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(customerOrder.TotalSum)}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.messageToBrodit}\r\n :\r\n {\" \"}\r\n {\r\n customerOrder.Rows.filter(\r\n x => x.Position === null && x.Type === 4\r\n )[0]?.Text\r\n }\r\n \r\n \r\n {Localization.purchaseOrder}\r\n :\r\n {\" \"}\r\n {customerOrder.YourOrderNumber}\r\n \r\n \r\n {Localization.orderPlacedBy}\r\n :\r\n {\" \"}\r\n {customerOrder.YourReference}\r\n \r\n \r\n {Localization.orderEmail}\r\n :\r\n {\" \"}\r\n {customerOrder.Email}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.shippingAddress}\r\n \r\n {customerOrder.DeliveryAddress ? (\r\n <>\r\n {customerOrder.DeliveryAddress.Row1}\r\n {customerOrder.DeliveryAddress.Row2}\r\n {customerOrder.DeliveryAddress.Row4}\r\n {customerOrder.DeliveryAddress.Row5}\r\n \r\n ) : null}\r\n \r\n {(!isOrderConfirmation && customerOrder.Shipments.length > 0)\r\n && (\r\n \r\n \r\n \r\n {Localization.trackShipment}\r\n \r\n \r\n {customerOrder.Shipments.map((shipment, i) => (\r\n \r\n \r\n {Localization.parcel}\r\n {\" \"}\r\n #\r\n {i + 1}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {Localization.billingAddress}\r\n \r\n {customerOrder.InvoiceAddress ? (\r\n <>\r\n {customerOrder.InvoiceAddress.Row1}\r\n {customerOrder.InvoiceAddress.Row2}\r\n {customerOrder.InvoiceAddress.Row4}\r\n {customerOrder.InvoiceAddress.Row5}\r\n \r\n ) : null}\r\n \r\n \r\n {isOrderConfirmation && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isOrderConfirmation && (\r\n \r\n )}\r\n \r\n \r\n \r\n {customerOrder.Rows.filter(x => x.Type === 1).map((row, i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileOrderInfo\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { resetCartStep } from \"../../../redux/cartSlice\"\r\nimport { useCustomerOrder } from \"../../../redux/hook/customerOrderHooks\"\r\nimport { resetOrder } from \"../../../redux/monitorSlice\"\r\nimport theme from \"../../../theme\"\r\nimport MobileOrderInfo from \"../../CustomerOrders/OrderInfo/MobileOrderInfo\"\r\nimport OrderInfo from \"../../CustomerOrders/OrderInfo/OrderInfo\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport React, { useEffect } from \"react\"\r\nimport { CircularProgress, useMediaQuery } from \"@mui/material\"\r\n\r\nconst OrderConfirmation = () => {\r\n const dispatch = useDispatch()\r\n const cart = useSelector(state => state.cart)\r\n const customerOrder = useCustomerOrder(cart.order.number)\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n\r\n useEffect(() => () => {\r\n // Cleanup when navigating away from cart.\r\n dispatch(resetCartStep())\r\n dispatch(resetOrder())\r\n }, [dispatch])\r\n\r\n if (customerOrder === undefined) return \r\n\r\n return (\r\n isSmall\r\n ? \r\n : \r\n )\r\n}\r\n\r\nexport default OrderConfirmation\r\n","import { withStyles } from \"@mui/styles\";\r\nimport StepConnector from \"@mui/material/StepConnector\";\r\n\r\nconst OrderStepConnector = withStyles({\r\n alternativeLabel: {\r\n top: 22\r\n },\r\n active: {\r\n \"& $line\": {\r\n backgroundImage:\r\n \"linear-gradient( 95deg,rgb(158, 158, 158) 50%,rgb(255, 152, 0) 100%)\"\r\n }\r\n },\r\n completed: {\r\n \"& $line\": {\r\n backgroundImage:\r\n \"linear-gradient( 95deg,rgb(158, 158, 158) 50%,rgb(158, 158, 158) 100%)\"\r\n }\r\n },\r\n line: {\r\n height: 3,\r\n border: 0,\r\n backgroundColor: \"#eaeaf0\",\r\n borderRadius: 1\r\n }\r\n})(StepConnector);\r\n\r\nexport default OrderStepConnector;\r\n","import { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n backgroundColor: \"#ccc\",\r\n zIndex: 1,\r\n color: \"#fff\",\r\n width: 50,\r\n height: 50,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n active: {\r\n backgroundColor: theme.palette.primary.main,\r\n boxShadow: \"0 4px 10px 0 rgba(0,0,0,.25)\"\r\n },\r\n completed: {\r\n backgroundColor: theme.palette.secondary.main\r\n }\r\n}));\r\n","import useStyles from \"./styles\"\r\nimport React from \"react\"\r\nimport ShoppingCartIcon from \"@mui/icons-material/ShoppingCart\"\r\nimport PersonOutlineIcon from \"@mui/icons-material/PersonOutline\"\r\nimport ThumbUpOutlinedIcon from \"@mui/icons-material/ThumbUpOutlined\"\r\nimport { Avatar } from \"@mui/material\"\r\n\r\nconst OrderStepIcon = ({ active, completed, icon }) => {\r\n const classes = useStyles()\r\n const icons = {\r\n 1: ,\r\n 2: ,\r\n 3: \r\n }\r\n\r\n return (\r\n \r\n {icons[String(icon)]}\r\n \r\n )\r\n}\r\n\r\nexport default OrderStepIcon\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n cartContainerRow: {\r\n backgroundColor: theme.palette.background.paper,\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n content: {\r\n width: \"100%\",\r\n backgroundColor: \"#f3f3f3\" // theme.palette.background.default,\r\n },\r\n cartItemsContainer: {\r\n padding: 16\r\n },\r\n flexLeft: {\r\n justifyContent: \"flex-end\",\r\n display: \"flex\"\r\n },\r\n headerArea: {\r\n width: \"100%\",\r\n height: 100\r\n },\r\n capitalize: {\r\n textTransform: \"uppercase\"\r\n },\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n justifyContent: \"center\",\r\n margin: theme.spacing(4)\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n marginBottomTheme2: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n flexGrow1: {\r\n flexGrow: 1\r\n },\r\n flexBetween: {\r\n justifyContent: \"space-between\"\r\n },\r\n flexCenter: {\r\n justifyContent: \"center\"\r\n },\r\n half: {\r\n width: \"50%\"\r\n },\r\n orderDetails: {\r\n width: 250\r\n },\r\n orderSummary: {\r\n width: 150\r\n },\r\n summaryButtons: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n width: \"50%\",\r\n justifyContent: \"center\"\r\n },\r\n mobileSummaryButtons: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n justifyContent: \"center\"\r\n },\r\n itemsCenter: {\r\n alignItems: \"center\"\r\n },\r\n summaryMain: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n width: \"60%\",\r\n justifyContent: \"space-between\",\r\n gap: \"1rem\"\r\n },\r\n topButtonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n }\r\n}))\r\n","/* eslint-disable no-restricted-globals */\r\nimport useStyles from \"./styles\"\r\nimport { formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { deleteCartRow, editCartNote, setQuantity } from \"../../../redux/cartSlice\"\r\nimport { useProductsLoading } from \"../../../redux/hook/productHooks\"\r\nimport FavoriteButton from \"../../Favorites/FavoriteButton\"\r\nimport CompatibleModels from \"../../Products/ProductInfo/components/CompatibleModels/CompatibleModels\"\r\nimport { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport {\r\n Accordion, AccordionDetails, AccordionSummary,\r\n IconButton,\r\n TextField, Tooltip, Typography,\r\n useMediaQuery,\r\n Skeleton\r\n} from \"@mui/material\"\r\nimport DeleteIcon from \"@mui/icons-material/Delete\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\n\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst MobileCartItem = ({\r\n id, price, currency, quantity, isModifiable, index, text, product\r\n}) => {\r\n const classes = useStyles()\r\n const loading = useProductsLoading()\r\n const dispatch = useDispatch()\r\n const isTablet = useMediaQuery(theme.breakpoints.up(mobileBreakpoint))\r\n const lang = useLanguage()\r\n\r\n const quantityChanged = e => {\r\n const n = e.target.value !== \"\" ? e.target.value : 0\r\n const isNumber = !isNaN(parseFloat(n)) && isFinite(n)\r\n if (!isNumber) return\r\n const parsed = parseInt(n, 10)\r\n dispatch(setQuantity(parsed, index))\r\n }\r\n\r\n const deleteProduct = () => {\r\n dispatch(deleteCartRow(index))\r\n }\r\n\r\n const noteChanged = e => {\r\n const t = e.target.value\r\n dispatch(editCartNote(t, index))\r\n }\r\n\r\n // Product is not yet loaded..\r\n if (product === undefined && loading) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // When product is ordered but cannot be found return card with info\r\n if (product === undefined) {\r\n return (\r\n
Product undefined
\r\n )\r\n }\r\n\r\n // Product was found, return a cart\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {product.name}\r\n
\r\n {isModifiable\r\n ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null}\r\n
\r\n
\r\n
{product.originalId}
\r\n {isTablet\r\n && (\r\n
\r\n {product.description}\r\n \r\n \r\n\r\n
\r\n )}\r\n
\r\n
\r\n {!isTablet\r\n && (\r\n <>\r\n
\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n className={classes.mobileAccordionSummary}\r\n >\r\n

{Localization.moreInformation}

\r\n \r\n \r\n \r\n {Localization.description}\r\n :\r\n \r\n \r\n {product.description}\r\n \r\n \r\n {Localization.compatibleProducts}\r\n :\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n {`x ${formatPrice(price)} ${currency}`}\r\n
\r\n
\r\n
\r\n {`${formatPrice(price * quantity)} ${currency}`}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default MobileCartItem\r\n","import useStyles from \"./styles\"\r\nimport ConfirmationDialog from \"./ConfirmationDialog/ConfirmationDialog\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { nextCartStep } from \"../../../redux/cartSlice\"\r\nimport { useUser, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { simulateOrder } from \"../../../redux/monitorSlice\"\r\nimport MobileCartItem from \"../ProductCardOrder/MobileCartItem\"\r\nimport ProductCardOrder from \"../ProductCardOrder/ProductCardOrder\"\r\nimport { useProducts } from \"../../../redux/hook/productHooks\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, CircularProgress, Link as SimpleLink, Typography, useMediaQuery, useTheme, IconButton, Tooltip\r\n} from \"@mui/material\"\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\"\r\nimport ArrowForwardIcon from \"@mui/icons-material/ArrowForward\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\nimport ReceiptIcon from \"@mui/icons-material/Receipt\"\r\nimport classnames from \"classnames\"\r\nimport React, { useEffect, useMemo, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\"\r\n\r\nconst SummaryButtons = () => {\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n\r\n const classes = useStyles()\r\n\r\n const handleNext = () => {\r\n dispatch(nextCartStep())\r\n }\r\n\r\n return (\r\n \r\n \r\n }\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n component={Link}\r\n to={`/${lang}`}\r\n >\r\n {Localization.continueShopping}\r\n \r\n }\r\n id=\"toCheckout\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={handleNext}\r\n >\r\n {Localization.toCheckout}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst MobileOrderSummary = () => {\r\n const dispatch = useDispatch()\r\n const cartSimulation = useSelector(state => state.monitor.cartSimulation)\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const user = useUser()\r\n const authToken = useUserAuthToken()\r\n const theme = useTheme()\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n const products = useProducts(cart.items.map(item => item.id))\r\n const lang = useLanguage()\r\n\r\n const cartItems = useMemo(() => (cart.items.map(item => ({ number: item.id, quantity: item.quantity }))), [cart.items])\r\n\r\n const [dialogOpen, setDialogOpen] = useState(false)\r\n const openDialog = () => setDialogOpen(true)\r\n const closeDialog = () => setDialogOpen(false)\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n useEffect(() => {\r\n const simulate = setTimeout(() => {\r\n if (cartItems.length > 0) {\r\n dispatch(simulateOrder(authToken, cartItems))\r\n }\r\n }, 500)\r\n\r\n return () => clearTimeout(simulate)\r\n }, [cartItems, authToken, dispatch])\r\n\r\n const empty = () => {\r\n setDialogOpen(false)\r\n clearCart({ authToken })\r\n }\r\n\r\n if (cart.items.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.noArticlesInCart}\r\n \r\n \r\n )\r\n }\r\n\r\n if (cartSimulation.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.yourCart}\r\n \r\n \r\n \r\n \r\n {Localization.experiencingProblemsWithCart}\r\n \r\n {Localization.clickHere}\r\n \r\n {Localization.toResetYourCart}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {formatAmount(cart.items.length)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {formatAmount(cart.items.reduce((a, b) => a + b.quantity, 0))}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(cartSimulation.reduce((a, b) => a + b.PriceInfo.SuggestedPrice * b.AtQuantity, 0))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {[...cart.items].map((item, i) => ((isSmall)\r\n ? (\r\n x.PartNumber === item.id)?.PriceInfo.SuggestedPrice}\r\n currency={user?.currency}\r\n quantity={item.quantity}\r\n isModifiable\r\n index={i}\r\n text={item.note}\r\n product={products?.find(product => product.id === `${lang}-${item.id}`)}\r\n />\r\n )\r\n : (\r\n x.PartNumber === item.id)?.PriceInfo.SuggestedPrice}\r\n currency={user?.currency}\r\n quantity={item.quantity}\r\n isModifiable\r\n index={i}\r\n text={item.note}\r\n product={products?.find(product => product.id === `${lang}-${item.id}`)}\r\n />\r\n )))}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MobileOrderSummary\r\n","import useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { nextCartStep } from \"../../../redux/cartSlice\"\r\nimport { useUser, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { simulateOrder } from \"../../../redux/monitorSlice\"\r\nimport HeadingRow from \"../ProductCardOrder/HeadingRow/HeadingRow\"\r\nimport ProductCardOrder from \"../ProductCardOrder/ProductCardOrder\"\r\nimport { useProducts } from \"../../../redux/hook/productHooks\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, CircularProgress, Link as SimpleLink, List, Typography\r\n} from \"@mui/material\"\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\"\r\nimport ArrowForwardIcon from \"@mui/icons-material/ArrowForward\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\nimport ReceiptIcon from \"@mui/icons-material/Receipt\"\r\nimport classnames from \"classnames\"\r\nimport React, { useEffect, useMemo } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst SummaryButtons = () => {\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n\r\n const classes = useStyles()\r\n\r\n const handleNext = () => {\r\n dispatch(nextCartStep())\r\n }\r\n\r\n return (\r\n \r\n \r\n }\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n component={Link}\r\n to={`/${lang}`}\r\n >\r\n {Localization.continueShopping}\r\n \r\n }\r\n id=\"toCheckout\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={handleNext}\r\n >\r\n {Localization.toCheckout}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst OrderSummary = () => {\r\n const dispatch = useDispatch()\r\n const cartSimulation = useSelector(state => state.monitor.cartSimulation)\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const user = useUser()\r\n const authToken = useUserAuthToken()\r\n const products = useProducts(cart.items.map(item => item.id))\r\n const lang = useLanguage()\r\n const cartItems = useMemo(() => (cart.items.map(item => ({ number: item.id, quantity: item.quantity }))), [cart.items])\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n useEffect(() => {\r\n const simulate = setTimeout(() => {\r\n if (cartItems.length > 0) {\r\n dispatch(simulateOrder(authToken, cartItems))\r\n }\r\n }, 500)\r\n\r\n return () => clearTimeout(simulate)\r\n }, [cartItems, authToken, dispatch])\r\n\r\n const empty = () => {\r\n clearCart({ authToken })\r\n }\r\n\r\n if (cart.items.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.yourCart}\r\n {Localization.noArticlesInCart}\r\n \r\n \r\n )\r\n }\r\n\r\n if (cartSimulation.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.yourCart}\r\n \r\n \r\n \r\n \r\n {Localization.experiencingProblemsWithCart}\r\n \r\n {Localization.clickHere}\r\n \r\n {Localization.toResetYourCart}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {\" \"}\r\n {formatAmount(cart.items.length)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {\" \"}\r\n {formatAmount(cart.items.reduce((a, b) => a + b.quantity, 0))}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(cartSimulation.reduce((a, b) => a + b.PriceInfo.SuggestedPrice * b.AtQuantity, 0))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {[...cart.items].map((item, i) => (\r\n
  • \r\n product.id === `${lang}-${item.id}`)}\r\n price={cartSimulation.find(x => x.PartNumber === item.id)?.PriceInfo.SuggestedPrice}\r\n currency={user?.currency}\r\n quantity={item.quantity}\r\n isModifiable\r\n index={i}\r\n text={item.note}\r\n />\r\n
  • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default OrderSummary\r\n","import { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n flexGrow: 1,\r\n // backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n padding: \"20px\"\r\n }\r\n },\r\n stepper: {\r\n flex: \"0 1 1920px\"\r\n },\r\n checkoutWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 1920px\",\r\n justifyContent: \"center\"\r\n }\r\n}));\r\n","import MobileOrderAddresses from \"./OrderAddresses/MobileOrderAddresses\"\r\nimport OrderAddresses from \"./OrderAddresses/OrderAddresses\"\r\nimport OrderConfirmation from \"./OrderConfirmation/OrderConfirmation\"\r\nimport OrderStepConnector from \"./OrderStepConnector/OrderStepConnector\"\r\nimport OrderStepIcon from \"./OrderStepIcon/OrderStepIcon\"\r\nimport MobileOrderSummary from \"./OrderSummary/MobileOrderSummary\"\r\nimport OrderSummary from \"./OrderSummary/OrderSummary\"\r\nimport useStyles from \"./styles\"\r\nimport theme from \"../../theme\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { useSelector } from \"react-redux\"\r\nimport React from \"react\"\r\nimport {\r\n Step, StepLabel, Stepper, useMediaQuery\r\n} from \"@mui/material\"\r\n\r\nconst Order = () => {\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n\r\n const activeStep = cart.order.step\r\n const steps = [Localization.cart, Localization.addressDetails, Localization.confirmation]\r\n\r\n const isStepCompleted = i => activeStep > i\r\n\r\n const renderStep = step => {\r\n const orderSummary = isSmall ? : \r\n const orderAddresses = isSmall ? : \r\n\r\n switch (step) {\r\n case 0:\r\n return orderSummary\r\n case 1:\r\n return orderAddresses\r\n case 2:\r\n return \r\n default:\r\n return \"error\"\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n }>\r\n {steps.map((step, i) => {\r\n const stepProps = {}\r\n const labelProps = {}\r\n stepProps.completed = isStepCompleted(i)\r\n return (\r\n \r\n {step}\r\n \r\n )\r\n })}\r\n \r\n
    \r\n {renderStep(activeStep)}\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Order\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n listRoot: {\r\n width: \"100%\",\r\n maxWidth: 360,\r\n backgroundColor: theme.palette.background.paper,\r\n maxHeight: \"400px\",\r\n overflowY: \"auto\"\r\n },\r\n root: {\r\n marginTop: 72\r\n },\r\n marginBottom: {\r\n marginBottom: 15\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n icon: {\r\n color: \"rgba(0,0,0,0.3)\",\r\n \"&$checked\": {\r\n color: \"#7c7c7c\"\r\n }\r\n },\r\n checked: {},\r\n dense: {\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n buttonRoot: {\r\n minWidth: \"auto\"\r\n },\r\n button: {\r\n marginLeft: theme.spacing(1),\r\n color: \"#2d2d2d\"\r\n },\r\n select: {\r\n width: \"80%!important\",\r\n marginLeft: \"1em\"\r\n },\r\n flexGrow1: {\r\n flexGrow: 1\r\n },\r\n productBox: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n productsContainerWithFilter: {\r\n flex: \"0 0 300px\",\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"100%\",\r\n padding: \"16px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flex: \"unset\"\r\n }\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n }\r\n}))\r\n","/* eslint-disable react/destructuring-assignment */\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ShowMore = props => {\r\n const { showAll, open } = props\r\n const items = (open || showAll) ? props.children : []\r\n return (\r\n \r\n {items}\r\n \r\n )\r\n}\r\n\r\nexport default ShowMore\r\n","import ShowMore from \"./showMore\"\r\nimport useStyles from \"../styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport {\r\n Box, Button, Checkbox, Grid, List, ListItem, ListItemIcon,\r\n ListItemText, Typography, useTheme\r\n} from \"@mui/material\"\r\nimport React, { useState } from \"react\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\"\r\n\r\nconst CheckboxList = ({\r\n allItems, selectedItems, heading, add, remove, showAll\r\n}) => {\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const [open, setOpen] = useState(false)\r\n\r\n const checkIfSelected = item => selectedItems.some(\r\n selected => (\r\n selected.id === item.id\r\n || selected === item.id\r\n || selected.name === item.name\r\n || selected === item.name\r\n )\r\n )\r\n\r\n const handleToggle = item => () => {\r\n const exists = checkIfSelected(item)\r\n if (!exists) {\r\n add(item)\r\n } else {\r\n remove(item)\r\n }\r\n }\r\n\r\n const toggleShowMore = () => {\r\n setOpen(prev => !prev)\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n {heading}\r\n {!showAll\r\n && (\r\n \r\n {\r\n open ? : \r\n }\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {allItems.map(item => {\r\n const labelId = `checkbox-list-label-${item.id}`\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default CheckboxList\r\n","import useStyles from \"../../styles\"\r\nimport { Box, Button, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\"\r\nimport classnames from \"classnames\"\r\n\r\nconst ExpandableHeader = ({\r\n open, setOpen, text, showAll\r\n}) => {\r\n const classes = useStyles()\r\n const toggleShowMore = () => setOpen(x => !x)\r\n\r\n return (\r\n \r\n {text}\r\n {!showAll\r\n && (\r\n \r\n {\r\n open ? : \r\n }\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ExpandableHeader\r\n","import ExpandableHeader from \"./ExpandableHeader\"\r\nimport useStyles from \"../../styles\"\r\nimport {\r\n Box, Checkbox, List, ListItem, ListItemText\r\n} from \"@mui/material\"\r\nimport React, { useState } from \"react\"\r\n\r\nconst PropertiesList = ({\r\n title, properties, handleToggle, checkIfSelected\r\n}) => {\r\n const classes = useStyles()\r\n const [open, setOpen] = useState(false)\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n open && (\r\n \r\n {properties.map(property => {\r\n const labelId = `checkbox-list-label-${title}`\r\n return (\r\n handleToggle(property)}\r\n dense\r\n button\r\n className={classes.dense}\r\n style={{ minWidth: 0, display: \"flex\" }}\r\n >\r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PropertiesList\r\n","import ExpandableHeader from \"./ExpandableHeader\"\r\nimport PropertiesList from \"./PropertiesList\"\r\nimport useStyles from \"../../styles\"\r\nimport { groupBy } from \"../../../../../lib/helper/commonHelper\"\r\nimport React, { useMemo, useState } from \"react\"\r\nimport { Box, List } from \"@mui/material\"\r\n\r\nconst PropertyGroup = ({\r\n groupName, properties, handleToggle, checkIfSelected\r\n}) => {\r\n const classes = useStyles()\r\n const [open, setOpen] = useState(false)\r\n const propertiesPerName = useMemo(\r\n () => groupBy(properties, property => property.name),\r\n [properties]\r\n )\r\n\r\n return (\r\n \r\n \r\n {\r\n open && (\r\n \r\n {Object.entries(propertiesPerName).map(([name, props], index) => (\r\n \r\n ))}\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default PropertyGroup\r\n","const serializeProperty = property => (\r\n `${property.groupName}>${property.name}>${property.value}`\r\n)\r\n\r\nexport default serializeProperty\r\n","import PropertyGroup from \"./PropertiesFilterComponents/PropertyGroup\"\r\nimport serializeProperty from \"../../../../lib/helper/propertyHelper\"\r\nimport { groupBy } from \"../../../../lib/helper/commonHelper\"\r\nimport { Box, useTheme } from \"@mui/material\"\r\nimport React, { useMemo } from \"react\"\r\n\r\nconst PropertiesFilter = ({\r\n properties = [], selectedItems, add, remove\r\n}) => {\r\n const theme = useTheme()\r\n const groups = useMemo(\r\n () => groupBy(properties, property => property.groupName),\r\n [properties]\r\n )\r\n\r\n const checkIfSelected = item => selectedItems.some(\r\n selected => selected === serializeProperty(item)\r\n )\r\n\r\n const handleToggle = item => {\r\n const exists = checkIfSelected(item)\r\n\r\n if (!exists) add(item)\r\n else remove(item)\r\n }\r\n\r\n return (\r\n \r\n \r\n {Object.entries(groups).map(([groupName, propertiesPerGroup]) => (\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PropertiesFilter\r\n","import CheckboxList from \"./CheckboxList\"\r\nimport PropertiesFilter from \"./PropertiesFilter\"\r\nimport useStyles from \"../styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { sortModels } from \"../../../../lib/helper/modelHelper\"\r\nimport { useGetModelsQuery, useGetYearsForModelQuery } from \"../../../../redux/services/broditWebApi\"\r\nimport { useSteering } from \"../../../../redux/hook/userHooks\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { GroupByName, sortBrands } from \"../../../../lib/helper/brandHelper\"\r\nimport { useSearchQuery } from \"../../../../redux/hook/searchHooks\"\r\nimport { setSearchQuery } from \"../../../../redux/searchReducer\"\r\nimport { useUrlQuery } from \"../../../../lib/hooks/urlQueryHooks\"\r\nimport serializeProperty from \"../../../../lib/helper/propertyHelper\"\r\nimport React, { useEffect } from \"react\"\r\nimport ClearIcon from \"@mui/icons-material/Clear\"\r\nimport {\r\n Box, Button, MenuItem, Select, Typography, useTheme\r\n} from \"@mui/material\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst SideFilter = ({ productsResult }) => {\r\n const classes = useStyles()\r\n const steering = useSteering()\r\n const language = useLanguage()\r\n const dispatch = useDispatch()\r\n const theme = useTheme()\r\n const urlQuery = useUrlQuery()\r\n const allSearchQueriesCombined = useSearchQuery()\r\n const deviceSearchbarSearchQuery = useSearchQuery(\"deviceSearchbar\")\r\n const filterProductsSearchQuery = useSearchQuery(\"filterProducts\")\r\n\r\n const allProductNames = productsResult?.names ?? []\r\n const allProperties = productsResult?.properties ?? []\r\n\r\n let { data: allModelsForBrand } = useGetModelsQuery(\r\n {\r\n language,\r\n steerings: [steering, \"3\"]\r\n },\r\n { skip: !allSearchQueriesCombined.brands?.[0] }\r\n )\r\n\r\n allModelsForBrand = (allModelsForBrand ?? [])\r\n .filter(\r\n // Hide brands with the following ids\r\n model => ![\r\n \"22c5359d-7ca1-4769-b419-f5b59cdc2170\"\r\n ].includes(model.id)\r\n )\r\n allModelsForBrand = allModelsForBrand?.filter(x => x.brand === allSearchQueriesCombined.brands?.[0])\r\n allModelsForBrand = sortModels(allModelsForBrand)\r\n\r\n const selectedProperties = allSearchQueriesCombined.properties ?? []\r\n const selectedProductNames = allSearchQueriesCombined.productNames ?? []\r\n const selectedYear = filterProductsSearchQuery.years?.[0]\r\n ?? allSearchQueriesCombined.years?.[0]\r\n ?? null\r\n\r\n const selectedBrands = (productsResult?.brands ?? []).filter(brand => (\r\n (allSearchQueriesCombined.brands ?? []).includes(brand.id)\r\n || (allSearchQueriesCombined.brands ?? []).includes(brand.name)\r\n ))\r\n\r\n let allBrandGroups = GroupByName(productsResult?.brands ?? [])\r\n allBrandGroups = sortBrands(allBrandGroups)\r\n const selectedGroups = GroupByName(selectedBrands)\r\n\r\n const selectedBrandGroups = allBrandGroups.filter(\r\n // If the selected group name is present in the allBrandGroups\r\n // and both groups have the same amount of members then return true.\r\n brandGroup => (\r\n selectedGroups.some(\r\n group => (\r\n group.name === brandGroup.name\r\n && group.value.length === brandGroup.value.length\r\n )\r\n )\r\n )\r\n )\r\n const selectedModels = allSearchQueriesCombined.models ?? []\r\n\r\n const { data: yearsForModel } = useGetYearsForModelQuery(\r\n {\r\n modelIds: selectedModels,\r\n brandIds: allSearchQueriesCombined.brands ?? [],\r\n language: language,\r\n steering: [steering]\r\n },\r\n { skip: selectedModels.length === 0 || allSearchQueriesCombined.brands === undefined }\r\n )\r\n\r\n const years = selectedModels.length > 0\r\n ? (yearsForModel ?? [])\r\n : []\r\n\r\n const updateQuery = queryPart => {\r\n dispatch(setSearchQuery(\r\n {\r\n type: \"filterProducts\",\r\n value: {\r\n ...filterProductsSearchQuery,\r\n ...queryPart\r\n }\r\n }\r\n ))\r\n }\r\n\r\n const setSelectedYear = year => {\r\n updateQuery(\r\n { years: (year) ? [year] : [] }\r\n )\r\n }\r\n\r\n const handleYearSelect = e => {\r\n const year = e.target.value\r\n setSelectedYear(year)\r\n }\r\n\r\n const addModelToQuery = model => {\r\n const { name } = model\r\n updateQuery({\r\n models: [\r\n ...filterProductsSearchQuery.models ?? [],\r\n name\r\n ]\r\n })\r\n }\r\n\r\n const removeModelFromQuery = model => {\r\n const { name } = model\r\n if (filterProductsSearchQuery.models) {\r\n updateQuery({\r\n models: filterProductsSearchQuery.models.filter(modelName => modelName !== name)\r\n })\r\n }\r\n }\r\n\r\n const addProductNameToQuery = productName => {\r\n const { id } = productName\r\n updateQuery({\r\n productNames: [\r\n ...filterProductsSearchQuery.productNames ?? [],\r\n id\r\n ]\r\n })\r\n }\r\n\r\n const removeProductNameFromQuery = productName => {\r\n const { id } = productName\r\n if (filterProductsSearchQuery.productNames) {\r\n updateQuery({\r\n productNames: filterProductsSearchQuery.productNames.filter(\r\n productNameId => productNameId !== id\r\n )\r\n })\r\n }\r\n }\r\n\r\n const addPropertyToQuery = property => {\r\n const serializedProperty = serializeProperty(property)\r\n updateQuery({\r\n properties: [\r\n ...filterProductsSearchQuery.properties ?? [],\r\n serializedProperty\r\n ]\r\n })\r\n }\r\n\r\n const removePropertyFromQuery = property => {\r\n const serializedProperty = serializeProperty(property)\r\n if (filterProductsSearchQuery.properties) {\r\n updateQuery({\r\n properties: filterProductsSearchQuery.properties.filter(\r\n singleProperty => singleProperty !== serializedProperty\r\n )\r\n })\r\n }\r\n }\r\n\r\n const addBrandToQuery = brandGroup => {\r\n const brandName = brandGroup.name\r\n updateQuery({\r\n brands: [\r\n ...filterProductsSearchQuery.brands ?? [],\r\n brandName\r\n ]\r\n })\r\n }\r\n\r\n const removeBrandFromQuery = brandGroup => {\r\n const brandGroupName = brandGroup.name\r\n if (filterProductsSearchQuery.brands) {\r\n updateQuery({\r\n brands: filterProductsSearchQuery.brands.filter(\r\n brandName => brandGroupName !== brandName\r\n )\r\n })\r\n }\r\n }\r\n\r\n const clearSelection = () => {\r\n if (Object.entries(filterProductsSearchQuery).length > 0) {\r\n dispatch(\r\n setSearchQuery(\r\n {\r\n type: \"filterProducts\",\r\n value: {}\r\n }\r\n )\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const filterProductsYears = filterProductsSearchQuery.years?.[0]\r\n if (filterProductsYears && !years.includes(filterProductsYears)) {\r\n if (!urlQuery.get(\"years\")) { setSelectedYear(null) }\r\n }\r\n }, [years])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {allBrandGroups.length > 0\r\n && (\r\n \r\n \r\n \r\n )}\r\n {\r\n allSearchQueriesCombined.brands?.length > 0\r\n && allModelsForBrand.length > 0\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n allSearchQueriesCombined.models?.length > 0\r\n && (deviceSearchbarSearchQuery.models ?? []).length < 1\r\n && years.length > 0\r\n && (\r\n \r\n {Localization.year}\r\n \r\n {Localization.chooseYear}\r\n {years.map(year => (\r\n \r\n {year}\r\n \r\n ))}\r\n \r\n \r\n )\r\n }\r\n \r\n }\r\n onClick={() => clearSelection()}\r\n >\r\n {Localization.deselectAll}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SideFilter\r\n","export default __webpack_public_path__ + \"static/media/funnel.7c02c449.svg\";","import funnelIcon from \"./funnel.svg\"\r\nimport React from \"react\"\r\nimport { Icon } from \"@mui/material\"\r\n\r\nconst FunnelIcon = () => (\r\n \r\n \"filter\r\n \r\n)\r\n\r\nexport default FunnelIcon\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\"\r\n }\r\n}))\r\n","/* eslint-disable react/destructuring-assignment */\r\nimport useStyles from \"./styles\"\r\nimport ProductViewToggleButton from \"../ProductViewToggleButton/ProductViewToggleButton\"\r\nimport React from \"react\"\r\n\r\nconst ProductNavigation = props => {\r\n const classes = useStyles()\r\n return (\r\n
    \r\n {props.children}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n */ }\r\n {!props.noShow && }\r\n
    \r\n )\r\n}\r\n\r\nexport default ProductNavigation\r\n","import FunnelIcon from \"../../../lib/icons/Funnel/FunnelIcon\"\r\nimport ProductNavigation from \"../ProductNavigation/ProductNavigation\"\r\nimport PageHandler from \"../../PageHandler/PageHandler\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useSearchQuery } from \"../../../redux/hook/searchHooks\"\r\nimport {\r\n Box, IconButton, Tooltip, Typography\r\n} from \"@mui/material\"\r\nimport React, { useRef } from \"react\"\r\n\r\nfunction FilterProductToolbar({ toggleFilter, productTotalCount, ...props }) {\r\n const rowRef = useRef()\r\n const allSearchQueriesCombined = useSearchQuery()\r\n\r\n const searchQueriesAsText = () => {\r\n const {\r\n brands,\r\n models,\r\n years,\r\n texts\r\n } = allSearchQueriesCombined\r\n\r\n const allSearchTerms = [\r\n texts,\r\n brands,\r\n models,\r\n years\r\n ]\r\n\r\n const allSearchTexts = allSearchTerms.map(\r\n searchTerms => (searchTerms ? searchTerms.join(\" \") : \"\")\r\n )\r\n\r\n const result = allSearchTexts.filter(text => text !== \"\").join(\" \")\r\n\r\n return result\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n searchQueriesAsText() !== \"\"\r\n && `${Localization.youSearchedFor}: ${searchQueriesAsText()}.`\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FilterProductToolbar\r\n","/* eslint-disable react/destructuring-assignment */\r\nimport useStyles from \"./styles\"\r\nimport SideFilter from \"./components/SideFilter\"\r\nimport { PageHandler, Products } from \"../..\"\r\nimport usePage from \"../../../redux/hook/pageHook\"\r\nimport { useIsSearchQueryEmpty, useSearchQuery, useSearchQuery2 } from \"../../../redux/hook/searchHooks\"\r\nimport { setSearchQuery } from \"../../../redux/searchReducer\"\r\nimport { sendGAEventProductSearchViaLink } from \"../../../lib/helper/googleAnalyticsHelper\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useUrlQuery, useUrlSearchQuery } from \"../../../lib/hooks/urlQueryHooks\"\r\nimport { useGetAltNameForProductsQuery, useGetReplacementProductsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport NoIndexMetaData from \"../../MetaData/NoIndexMetadata\"\r\nimport FilterProductToolbar from \"../FilterProductToolbar/FilterProductToolbar\"\r\nimport { useGetProductsByFilterQuery } from \"../../../redux/services/productInfoApi\"\r\nimport { findObjectById, isProductIdRegex } from \"../../../lib/helper/commonHelper\"\r\nimport { isSearchQueryEmpty } from \"../../../lib/helper/searchHelper\"\r\nimport { setSearchQuery2 } from \"../../../redux/search2Reducer\"\r\nimport { useLoadPrices } from \"../../../redux/hook/priceHooks\"\r\nimport { setShowNavbarSearch } from \"../../../redux/settingsReducer\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport {\r\n Box, Button, useMediaQuery, useTheme\r\n} from \"@mui/material\"\r\nimport React, {\r\n useEffect, useMemo, useState\r\n} from \"react\"\r\nimport { useParams, useNavigate, useLocation } from \"react-router-dom\"\r\nimport Drawer from \"@mui/material/Drawer\"\r\nimport CloseIcon from \"@mui/icons-material/Close\"\r\n\r\nconst FilterProducts = () => {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const page = usePage()\r\n const urlQuery = useUrlQuery()\r\n const href = new URL(window.location.href)\r\n const params = new URLSearchParams(href.search)\r\n const language = useLanguage()\r\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n let {\r\n brand: urlSelectedBrand,\r\n model: urlSelectedModel,\r\n collections: urlSelectedColletion\r\n } = useParams()\r\n const navigate = useNavigate()\r\n const location = useLocation()\r\n const { data: altNameList } = useGetAltNameForProductsQuery()\r\n\r\n const fetchCollectionStructure = async () => {\r\n const response = await fetch(`/api/Collections/GetCollectionHierarchy?language=${language}`)\r\n return response.json()\r\n }\r\n\r\n const dirtyUrlSelectedBrand = urlSelectedBrand && urlSelectedBrand.replace(\"_\", \"%2B\")\r\n const dirtyUrlSelectedModel = urlSelectedModel && urlSelectedModel.replace(\"_\", \"%2B\").replace(\"£\", \"/\")\r\n const dirtyUrlSelectedCollection = urlSelectedColletion && urlSelectedColletion.replace(\"_\", \"%2B\").replace(\"£\", \"/\")\r\n urlSelectedBrand = urlSelectedBrand && decodeURIComponent(dirtyUrlSelectedBrand)\r\n urlSelectedModel = urlSelectedModel && decodeURIComponent(dirtyUrlSelectedModel)\r\n urlSelectedModel = urlSelectedModel?.split(\"$\")\r\n urlSelectedColletion = urlSelectedColletion && decodeURIComponent(dirtyUrlSelectedCollection)\r\n\r\n const [isUserShowingFilter, setIsUserShowingFilter] = useState(true)\r\n const [showFilter] = useState(true)\r\n const urlSearchQuery = useUrlSearchQuery(urlQuery)\r\n const isUrlSearchQueryEmpty = useIsSearchQueryEmpty(urlSearchQuery)\r\n const search1 = useSearchQuery()\r\n const search2 = useSearchQuery2()\r\n const allSearchQueriesCombined = useMemo(() => (\r\n Object.keys(search2).length > 0 ? search2 : search1\r\n ), [search1, search2])\r\n const isAllSearchQueryEmpty = useIsSearchQueryEmpty(allSearchQueriesCombined)\r\n const pagination = useMemo(() => {\r\n const offset = params.get(\"page\") ? (parseInt(params.get(\"page\"), 10) - 1) * page.limit : page.offset\r\n return { offset, limit: page.limit }\r\n }, [href, page.offset, page.limit])\r\n const getProductsByFilterRequest = useGetProductsByFilterQuery({\r\n filters: allSearchQueriesCombined, pagination, language\r\n })\r\n const {\r\n data: productsResult, isFetching, startedTimeStamp, error\r\n } = getProductsByFilterRequest\r\n const [forcedLoadingSpinner, setForcedLoadingSpinner] = useState(false)\r\n const loading = useMemo(\r\n () => !isAllSearchQueryEmpty && (forcedLoadingSpinner || isFetching),\r\n [isFetching, forcedLoadingSpinner, isAllSearchQueryEmpty]\r\n )\r\n const products = (productsResult?.products && !isAllSearchQueryEmpty && !error)\r\n ? productsResult?.products\r\n : []\r\n\r\n let productTotalCount = (productsResult?.pagedList?.response?.pagingHeader?.totalItems) ?? 0\r\n productTotalCount = (isAllSearchQueryEmpty || error) ? 0 : productTotalCount\r\n const showReplacementProds = (\r\n allSearchQueriesCombined?.texts?.length === 1\r\n && isProductIdRegex.test(allSearchQueriesCombined?.texts?.[0])\r\n )\r\n const { data: replacementProds } = useGetReplacementProductsQuery(\r\n allSearchQueriesCombined?.texts?.[0],\r\n { skip: !showReplacementProds }\r\n )\r\n\r\n const getUrl = (collection = null) => {\r\n let link = `/${language}/filter`\r\n if (location.search.split(\"=\")[1] > Math.ceil(productTotalCount / page.userSelectedLimit) && productTotalCount > 0) {\r\n dispatch(setSearchQuery({ type: \"filterProducts\", value: { ...allSearchQueriesCombined, page: [\"1\"] } }))\r\n return `${location.pathname}?page=1`\r\n }\r\n\r\n const cleanBrands = allSearchQueriesCombined?.brands?.[0].replace(\"+\", \"_\")\r\n const cleanModels = allSearchQueriesCombined?.models?.map(x => x?.replace(\"+\", \"_\").replace(\"/\", \"£\"))\r\n const cleanModelsString = cleanModels?.join(\"$\")\r\n const cleanCollections = collection?.name?.replace(\"/\", \"£\")\r\n if (allSearchQueriesCombined?.brands) link += `/brand/${encodeURIComponent(cleanBrands)}`\r\n if (allSearchQueriesCombined?.models) link += `/${encodeURIComponent(cleanModelsString)}`\r\n if (collection) link += `/collection/${encodeURIComponent(collection?.id)}/${cleanCollections || \"\"}`\r\n if (allSearchQueriesCombined?.years) link += `?steering=${allSearchQueriesCombined?.steering}&years=${allSearchQueriesCombined?.years}`\r\n if (allSearchQueriesCombined?.texts) link += `?texts=${allSearchQueriesCombined?.texts}${allSearchQueriesCombined?.steering !== undefined ? `&steering=${allSearchQueriesCombined?.steering?.[0]}%2C${allSearchQueriesCombined?.steering?.[1]}` : \"\"}`\r\n if (allSearchQueriesCombined?.page\r\n && (allSearchQueriesCombined?.years || allSearchQueriesCombined?.texts)) link += `&page=${allSearchQueriesCombined?.page}`\r\n if (allSearchQueriesCombined?.page\r\n && (!allSearchQueriesCombined?.years && !allSearchQueriesCombined?.texts)) link += `?page=${allSearchQueriesCombined?.page}`\r\n return link\r\n }\r\n\r\n const setInitialUrl = () => {\r\n const url = getUrl()\r\n\r\n if (url !== \"\" && url !== decodeURIComponent(location.pathname + location.search)) navigate(url)\r\n }\r\n\r\n const updateUrlParams = collection => {\r\n const url = getUrl(collection)\r\n if (url !== \"\" && decodeURIComponent(url) !== decodeURIComponent(location.pathname + location.search)) navigate(url)\r\n }\r\n\r\n const toggleFilter = () => {\r\n setIsUserShowingFilter(prev => !prev)\r\n }\r\n\r\n useLoadPrices(products.map(product => product.originalId))\r\n\r\n useEffect(() => {\r\n setForcedLoadingSpinner(true)\r\n const a = setTimeout(() => {\r\n setForcedLoadingSpinner(false)\r\n }, 100)\r\n return () => clearTimeout(a)\r\n }, [startedTimeStamp])\r\n\r\n useEffect(() => {\r\n setIsUserShowingFilter(!isSmallScreen)\r\n }, [isSmallScreen])\r\n\r\n useEffect(() => {\r\n const combinedSearchQuery = {\r\n ...!isUrlSearchQueryEmpty && urlSearchQuery,\r\n ...urlSelectedBrand && { brands: [urlSelectedBrand] },\r\n ...urlSelectedModel && { models: [...urlSelectedModel] },\r\n ...urlSelectedColletion && { collections: [urlSelectedColletion] },\r\n ...urlSearchQuery?.years && { years: urlSearchQuery?.years }\r\n }\r\n\r\n if (combinedSearchQuery?.years) {\r\n dispatch(setSearchQuery2({\r\n type: \"vehicleSearchbar\",\r\n value: combinedSearchQuery\r\n }))\r\n\r\n return\r\n }\r\n\r\n if (!isSearchQueryEmpty(combinedSearchQuery)) {\r\n if (combinedSearchQuery?.collections !== undefined && !combinedSearchQuery?.collections?.[0].includes(\"s\")) {\r\n combinedSearchQuery.collections[0] = `s${combinedSearchQuery.collections[0]} `\r\n }\r\n\r\n dispatch(\r\n setSearchQuery({\r\n type: \"filterProducts\",\r\n value: combinedSearchQuery,\r\n clearFilter: true\r\n })\r\n )\r\n sendGAEventProductSearchViaLink()\r\n }\r\n\r\n setInitialUrl()\r\n\r\n return () => {\r\n dispatch(setShowNavbarSearch(false))\r\n dispatch(setSearchQuery({ type: \"filterProducts\", value: {} }))\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (allSearchQueriesCombined?.collections?.[0] !== undefined) {\r\n fetchCollectionStructure().then(result => {\r\n const res = findObjectById(result, allSearchQueriesCombined?.collections?.[0])\r\n if (res !== null) updateUrlParams(res)\r\n window.scroll(0, 0)\r\n })\r\n } else {\r\n updateUrlParams()\r\n }\r\n }, [allSearchQueriesCombined, language, products])\r\n\r\n useEffect(() => {\r\n if (Object.keys(search1).length > 0) {\r\n dispatch(setSearchQuery2({\r\n type: \"filterProducts\",\r\n value: {}\r\n }))\r\n dispatch(setSearchQuery2({\r\n type: \"deviceSearchbar\",\r\n value: {}\r\n }))\r\n dispatch(setSearchQuery2({\r\n type: \"vehicleSearchbar\",\r\n value: {}\r\n }))\r\n }\r\n }, [search1])\r\n\r\n return (\r\n
    \r\n {\r\n (\r\n !isAllSearchQueryEmpty\r\n || !isUrlSearchQueryEmpty\r\n )\r\n && \r\n }\r\n \r\n setIsUserShowingFilter(false)} open={isUserShowingFilter && showFilter && isSmallScreen}>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n {\r\n isUserShowingFilter && showFilter && !isSmallScreen\r\n && (\r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default FilterProducts\r\n","import {\r\n mobileBreakpoint, mobileMenuBreakpoint, tabletBreakpoint\r\n} from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n footer: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n gap: \"30px\",\r\n width: \"100%\",\r\n justifyContent: \"center\",\r\n backgroundColor: \"#F8F8F8\",\r\n paddingBottom: \"65px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n paddingBottom: \"30px\"\r\n }\r\n },\r\n footerGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"206px 170px 200px 235px 155px 110px\",\r\n gap: \"20px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n gridTemplateColumns: \"150px 170px 200px 170px 130px 110px\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n gridTemplateColumns: \"150px 150px 150px 150px\",\r\n gridGap: \"25px 25px\",\r\n padding: \"20px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n gridTemplateColumns: \"150px 150px\",\r\n gridGap: \"25px 25px\",\r\n padding: \"20px\"\r\n },\r\n [theme.breakpoints.down(390)]: {\r\n gridTemplateColumns: \"150px\"\r\n }\r\n },\r\n logotypeWrapper: {\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n display: \"none\"\r\n }\r\n },\r\n logotype: {\r\n width: \"206px\",\r\n height: \"108px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"150px\"\r\n }\r\n },\r\n gridItem: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n addressWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n marginBottom: \"15px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"24px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: 14\r\n }\r\n },\r\n text: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"24px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"14px\"\r\n }\r\n },\r\n anchor: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"28px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"14px\"\r\n }\r\n },\r\n anchorButtonStyle: {\r\n fontFamily: \"Arial\",\r\n fontWeight: 700,\r\n fontSize: \"14px\",\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n padding: \"10px 20px 10px 20px\",\r\n borderRadius: \"4px\",\r\n textAlign: \"center\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n backgroundColor: \"#F09057\",\r\n marginTop: \"10px\",\r\n maxWidth: \"60%\",\r\n transition: \"all 0.1s ease-in\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n },\r\n addressAnchorWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n gap: \"6px\"\r\n },\r\n innerAnchorWrapper: {\r\n flex: \"0 0 100%\"\r\n },\r\n addressAnchor: {\r\n fontFamily: \"Arial\",\r\n fontWeight: 700,\r\n color: \"#2D2D2D\",\r\n fontSize: \"17px\",\r\n lineHeight: 1.1,\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n textDecoration: \"none\",\r\n paddingBottom: \"1px\",\r\n \"&:first-child\": {\r\n marginBottom: \"5px\"\r\n },\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"14px\"\r\n }\r\n },\r\n groupTitle: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n lineHeight: \"24px\",\r\n marginBottom: \"1px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"14px\"\r\n }\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/logotype.d402c0da.svg\";","export default __webpack_public_path__ + \"static/media/homePageContact.0fa658f4.jpg\";","export default __webpack_public_path__ + \"static/media/homePageContact_mob.250b75a8.jpg\";","import {\r\n mobileBreakpoint, tabletBreakpoint, desktopBreakpoint\r\n} from \"../../../../lib/helper/viewportHelper\"\r\nimport HomePageContact from \"../../../../assets/homePageContact.jpg\"\r\nimport HomePageContactMobile from \"../../../../assets/homePageContact_mob.jpg\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n contact: {\r\n display: \"flex\",\r\n flex: \"0 0 100%\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundImage: `url(${HomePageContact})`,\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n minHeight: \"440px\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n minHeight: \"600px\"\r\n },\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n minHeight: \"179px\",\r\n paddingTop: \"50px\",\r\n paddingBottom: \"50px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n backgroundImage: `url(${HomePageContactMobile})`\r\n }\r\n },\r\n contentWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n paddingLeft: \"45px\",\r\n paddingRight: \"45px\"\r\n }\r\n },\r\n title: {\r\n flex: \"0 0 100%\",\r\n fontFamily: \"Roboto\",\r\n fontSize: \"30px\",\r\n fontWeight: 700,\r\n textAlign: \"center\",\r\n color: \"#FFFFFF\",\r\n marginTop: 0,\r\n marginBottom: \"5px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"25px\"\r\n }\r\n },\r\n text: {\r\n flex: \"0 0 100%\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"20px\",\r\n fontWeight: 400,\r\n lineHeight: \"24px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"center\",\r\n color: \"#FFFFFF\",\r\n marginBottom: \"20px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"14px\"\r\n }\r\n },\r\n anchorButtonStyle: {\r\n fontFamily: \"Arial\",\r\n fontWeight: 700,\r\n fontSize: \"14px\",\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n padding: \"10px 20px 10px 20px\",\r\n borderRadius: \"4px\",\r\n textAlign: \"center\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n backgroundColor: \"#F09057\",\r\n marginTop: \"10px\",\r\n maxWidth: \"60%\",\r\n transition: \"all 0.1s ease-in\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport React from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nconst Contact = () => {\r\n const language = useLanguage()\r\n const classes = useStyles()\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n {Localization.homeSection5Title}\r\n

    \r\n \r\n {Localization.homeSection5Text}\r\n \r\n \r\n {Localization.contactBrodit}\r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Contact\r\n","import useStyles from \"./styles\"\r\nimport Logotype from \"./assets/logotype.svg\"\r\nimport Contact from \"./components/Contact/Contact\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst Footer = () => {\r\n const language = useLanguage()\r\n const classes = useStyles()\r\n const [data, setData] = React.useState(null)\r\n\r\n const fetchStaticData = async () => {\r\n const response = await fetch(`/files/DynamicPages/Footer-${language}.json`)\r\n return response.json()\r\n }\r\n\r\n React.useEffect(() => {\r\n fetchStaticData().then(result => setData(result))\r\n }, [false, language])\r\n\r\n const cleanPhoneNumber = phone => phone.replace(/\\(0\\)|\\s+|-/g, \"\")\r\n\r\n const handleOnClick = () => {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n const renderLink = link => {\r\n const url = `/${language}/${link.url}`\r\n\r\n switch (link.type) {\r\n case \"anchor\":\r\n return handleOnClick(url)} key={link.text}>{link.text}\r\n case \"button\":\r\n return handleOnClick(url)} key={link.text}>{link.text}\r\n case \"external\":\r\n return {link.text}\r\n default:\r\n return handleOnClick(url)} key={link.text}>{link.text}\r\n }\r\n }\r\n\r\n const linkGroup = group => (\r\n
    \r\n {group.title}\r\n {group.links.map(link => renderLink(link))}\r\n
    \r\n )\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Footer\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3)\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n listArea: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(2)\r\n },\r\n infoText: {\r\n width: 250\r\n },\r\n infoArea: {\r\n marginBottom: 50\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexItem: {\r\n flex: \"1 1 0px\"\r\n },\r\n headerRoot: {\r\n padding: 10\r\n },\r\n gray: {\r\n color: \"#a3a3a3\"\r\n },\r\n root: {\r\n padding: 10,\r\n marginBottom: 32,\r\n boxShadow: \"none\"\r\n },\r\n flexWrap: {\r\n flexWrap: \"wrap\",\r\n justifyContent: \"space-between\",\r\n gap: \"2rem\"\r\n },\r\n wrapItem: {\r\n marginBottom: \"1rem\",\r\n \"& .MuiTypography-h6\": {\r\n display: \"inline\"\r\n }\r\n },\r\n bold: {\r\n fontWeight: \"bold\"\r\n },\r\n textCenter: {\r\n alignItems: \"center\"\r\n },\r\n h3Styling: {\r\n margin: 0,\r\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: 400,\r\n fontSize: \"3rem\",\r\n lineHeight: 1.167,\r\n letterSpacing: \"0em\",\r\n marginBottom: \"0.35em\"\r\n },\r\n h6Styling: {\r\n margin: 0,\r\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: 500,\r\n fontSize: \"1.25rem\",\r\n lineHeight: 1.6,\r\n letterSpacing: \"0.0075em\"\r\n }\r\n}))\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport theme from \"../../../theme\"\r\nimport useStyles from \"../styles\"\r\nimport { Link } from \"react-router-dom\"\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\nimport SearchIcon from \"@mui/icons-material/Search\"\r\nimport {\r\n Box, IconButton, Link as SimpleLink, Tooltip, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\n\r\nconst TrackingButton = ({ orderNumber, shippingArray }) => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n\r\n return (\r\n \r\n \r\n \r\n {isSmall && (\r\n \r\n {`${Localization.trackShipment.toUpperCase()}:`}\r\n \r\n )}\r\n {(shippingArray.length === 0)\r\n && (\r\n \r\n \r\n \r\n )}\r\n {(shippingArray.length === 1)\r\n && (\r\n \r\n \r\n \r\n )}\r\n {(shippingArray.length >= 2)\r\n && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TrackingButton\r\n","import TrackingButton from \"./TrackingButton\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport getStatusText from \"../functions\"\r\nimport useStyles from \"../styles\"\r\nimport { Box, Paper, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nconst DesktopOrderPaper = ({ orderData, getDateFormat, customerOrder }) => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {getDateFormat(customerOrder.OrderDate)}\r\n \r\n \r\n \r\n \r\n \r\n {customerOrder.OrderNumber}\r\n \r\n \r\n \r\n \r\n \r\n {getStatusText(customerOrder.Status)}\r\n \r\n \r\n \r\n {orderData.map((title, index) => (\r\n \r\n \r\n {title}\r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DesktopOrderPaper\r\n","import TrackingButton from \"./TrackingButton\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport getStatusText from \"../functions\"\r\nimport useStyles from \"../styles\"\r\nimport {\r\n Box, Paper, Typography\r\n} from \"@mui/material\"\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nconst MobileOrderPaper = ({ orderData, getDateFormat, customerOrder }) => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const upperCase = true\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {customerOrder.OrderNumber}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {getDateFormat(customerOrder.OrderDate)}\r\n \r\n \r\n\r\n \r\n \r\n {getStatusText(customerOrder.Status, upperCase)}\r\n \r\n \r\n \r\n \r\n \r\n {orderData.map((object, index) => {\r\n const header = object?.header.toUpperCase()\r\n const data = object?.data.toString().toUpperCase()\r\n return (\r\n \r\n \r\n {`${header}:`}\r\n\r\n \r\n \r\n {` ${data}`}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileOrderPaper\r\n","import DesktopOrderPaper from \"./DesktopOrderPaper\"\r\nimport MobileOrderPaper from \"./MobileOrderPaper\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport { useMediaQuery } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst CustomerOrder = ({ customerOrder, headerList }) => {\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n\r\n const getDateFormat = d => {\r\n const date = new Date(d)\r\n return date.toLocaleDateString()\r\n }\r\n\r\n // slice tar allt i listan efter index 4\r\n const mobileHeaderList = headerList.slice(4)\r\n\r\n const orderData = [\r\n { header: `${mobileHeaderList[0]}`, data: customerOrder.YourOrderNumber ?? \"\" },\r\n { header: `${mobileHeaderList[1]}`, data: customerOrder.YourReference ?? \"\" },\r\n { header: `${mobileHeaderList[2]}`, data: customerOrder.TotalOrderLines ?? \"\" },\r\n { header: `${mobileHeaderList[3]}`, data: customerOrder.TotalProducts ?? \"\" },\r\n { header: `${mobileHeaderList[4]}`, data: customerOrder.TotalSum ?? \"\" }\r\n ]\r\n\r\n return (\r\n isSmall\r\n ? \r\n : data)} getDateFormat={getDateFormat} customerOrder={customerOrder} />\r\n )\r\n}\r\n\r\nexport default CustomerOrder\r\n","import useStyles from \"../styles\"\r\nimport { Box, Typography } from \"@mui/material\"\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\n\r\nconst Headers = ({ headerList }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n {headerList.map((title, index) => (\r\n \r\n \r\n {title}\r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default Headers\r\n","import CustomerOrder from \"./components/CustomerOrder\"\r\nimport Headers from \"./components/Headers\"\r\nimport useStyles from \"./styles\"\r\nimport { PageHandler } from \"..\"\r\nimport { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useCustomerOrders } from \"../../redux/hook/customerOrderHooks\"\r\nimport usePage from \"../../redux/hook/pageHook\"\r\nimport { useUser } from \"../../redux/hook/userHooks\"\r\nimport theme from \"../../theme\"\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\nimport PlaylistAddCheckIcon from \"@mui/icons-material/PlaylistAddCheck\"\r\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\"\r\nimport {\r\n Box, List, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\n\r\nconst CustomerOrders = () => {\r\n const classes = useStyles()\r\n const page = usePage()\r\n const customerOrders = useCustomerOrders(page.offset, page.limit)\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n const user = useUser()\r\n\r\n const headerList = [\r\n Localization.date,\r\n Localization.order,\r\n Localization.status,\r\n Localization.track,\r\n Localization.marking,\r\n Localization.reference,\r\n Localization.numberOfOrderLines,\r\n Localization.numberOfProducts,\r\n `${Localization.total} ${user?.currency}`\r\n ]\r\n\r\n return (\r\n \r\n \r\n {Localization.yourOrders}\r\n \r\n \r\n \r\n {Localization.checkOrderDetails}\r\n \r\n \r\n \r\n {!isSmall && }\r\n \r\n {customerOrders.map((item, i) => (\r\n
  • \r\n \r\n
  • \r\n ))}\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default CustomerOrders\r\n","import { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n wrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3)\r\n },\r\n infoArea: {\r\n marginBottom: 50\r\n },\r\n listArea: {\r\n backgroundColor: theme.palette.background.default,\r\n paddingRight: theme.spacing(2),\r\n paddingBottom: 0,\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n padding: 0\r\n }\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n select: {\r\n minWidth: \"275px\",\r\n width: \"auto\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n minWidth: \"220px\"\r\n }\r\n }\r\n}))\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAsQAAALEBxi1JjQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADrSURBVEiJ7dKxLgVBFAbgT1ZuchMN2puoNGhFwxuoiCcQhUS8gEp3Gy/AG4hGo1KJTikegGipRCQ2VrFncrcQWcw2cv9mivnnm5nkMM6/T5HZ28M8bjO74AAVHrrAt/GBEhu58XW8q1+/nxtfwUvgh7nxBTwFftLmwHIUBy26A9wHfo7JNhcMjaZg8ZvetHoMK1yj3waHWdzEwWesftHp4yo6d5hpi6dM4TKAN2w19gqcxd4j5n6KN195EVCJ3cCPjX639Fs8pYfTACu8Nta1v+IphXqq0iUlNnPhKRM4CnwnN95Mr0t8nG7zCSe5NHDVwxcIAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACxAAAAsQHGLUmNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAIdJREFUSIntlMsNgCAQRF+sQRIbECsl0p56sBy9LAkXhUW5KHNlmTcZPtD0W02AB0zGbA84YNQAPHAAWwJigEVmnQZgxPwOEpunglxCVjHYgSFz7THkNfMYEteVqq4YElKrkndvJXiiqhVVPeSq1zT3oRXXpfkqAmTWAKxsyEllJJDVAJo+pBNmSj1eLTte1QAAAABJRU5ErkJggg==\"","import { useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { deleteFavoriteList, setFavoriteProducts } from \"../../../redux/favoriteSlice\"\r\nimport { fetchModteks } from \"../../../redux/thunk/productThunk\"\r\nimport ProductViewToggleButton from \"../../Products/ProductViewToggleButton/ProductViewToggleButton\"\r\n// eslint-disable-next-line import/no-cycle\r\nimport Products from \"../../Products/Products\"\r\nimport CheckIcon from \"../../../assets/check.png\"\r\nimport ClearIcon from \"../../../assets/close.png\"\r\nimport Trashcan from \"../../../assets/delete.png\"\r\nimport PenIcon from \"../../../assets/pen.png\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport React, { useState, useEffect } from \"react\"\r\n\r\nimport { useDispatch } from \"react-redux\"\r\nimport axios from \"axios\"\r\n\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Autocomplete, Box, Chip, TextField, Tooltip, Typography\r\n} from \"@mui/material\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\n\r\nfunction Userlist({\r\n userLists, list = [], language, classes, theme, productsArray, index\r\n}) {\r\n const [data, setData] = useState(null)\r\n const [name, setName] = useState(list[0]?.listName)\r\n const [isEditing, setIsEditing] = useState(false)\r\n const [tempName, setTempName] = useState(\"\")\r\n const dispatch = useDispatch()\r\n const authToken = useUserAuthToken()\r\n const idArray = list?.map(x => x.productId)\r\n const [selectedItems, setSelectedItems] = useState(idArray)\r\n const productList = productsArray\r\n const [expandedAccordion, setExpandedAccordion] = useState((userLists.length === 1 && index === 0) ? 0 : null)\r\n\r\n useEffect(() => {\r\n setExpandedAccordion((userLists.length === 1 && index === 0) ? 0 : null)\r\n }, [userLists])\r\n\r\n const handleAccordionChange = i => {\r\n setExpandedAccordion(expandedAccordion === i ? null : i)\r\n }\r\n\r\n const updateFavorites = async ({ newName, products, oldName }) => {\r\n const a = await axios.post(`/api/favorite/UpdateFavoriteListName?authToken=${authToken}`, { newName, products, oldName })\r\n dispatch(setFavoriteProducts(a.data.response))\r\n setIsEditing(false)\r\n }\r\n\r\n const deleteFavortiteList = async () => {\r\n dispatch(deleteFavoriteList(name))\r\n await axios.post(`/api/favorite/DeleteFavoriteListByName?authToken=${authToken}`, { name })\r\n }\r\n\r\n const handleEditToggle = event => {\r\n event.stopPropagation()\r\n setIsEditing(true)\r\n setTempName(name)\r\n }\r\n\r\n const handleNameChange = event => {\r\n event.stopPropagation()\r\n setTempName(event.target.value)\r\n }\r\n\r\n const handleSave = event => {\r\n event.stopPropagation()\r\n setName(tempName)\r\n setIsEditing(false)\r\n const newObject = { newName: tempName, products: selectedItems, oldName: list[0]?.listName }\r\n updateFavorites(newObject)\r\n }\r\n\r\n const handleDelete = () => {\r\n deleteFavortiteList()\r\n setTempName(\"\")\r\n setSelectedItems(idArray)\r\n }\r\n\r\n const handleCancel = event => {\r\n event.stopPropagation()\r\n setTempName(name)\r\n setIsEditing(false)\r\n setTempName(\"\")\r\n setSelectedItems(idArray)\r\n }\r\n\r\n const handleKeyDown = event => {\r\n event.stopPropagation()\r\n if (event.key === \"Enter\") {\r\n handleEditToggle()\r\n }\r\n }\r\n\r\n const handleKeyDownDelete = event => {\r\n event.stopPropagation()\r\n if (event.key === \"Enter\") {\r\n deleteFavortiteList()\r\n }\r\n }\r\n\r\n const handleSelect = (event, value) => {\r\n event.stopPropagation()\r\n const selectedOptions = value\r\n setSelectedItems(selectedOptions)\r\n }\r\n\r\n useEffect(() => {\r\n let isMounted = true\r\n\r\n const fetchData = async () => {\r\n try {\r\n const d = await fetchModteks(idArray, language)\r\n const processedData = d.map(x => ({\r\n ...x,\r\n originalId: x.id,\r\n id: `${language}-${x.id}`\r\n }))\r\n\r\n if (isMounted) {\r\n setData(processedData.sort((a, b) => a.originalId.localeCompare(b.originalId)))\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error)\r\n }\r\n }\r\n\r\n fetchData()\r\n setName(list[0]?.listName)\r\n setSelectedItems(idArray)\r\n\r\n return () => {\r\n isMounted = false\r\n }\r\n }, [list, language])\r\n\r\n return (\r\n handleAccordionChange(index)}\r\n >\r\n \r\n )}\r\n >\r\n \r\n \r\n {isEditing ? (\r\n e.stopPropagation()}\r\n onChange={handleNameChange}\r\n sx={{\r\n \"& .MuiInput-input\": { padding: \"0px!important\", height: \"auto!important\" },\r\n width: \"96px\",\r\n \"& .MuiInput-root::before\": {\r\n borderBottom: \"none\"\r\n }\r\n }}\r\n />\r\n ) : (\r\n \r\n {name}\r\n \r\n )}\r\n {isEditing\r\n && (\r\n <>\r\n e.stopPropagation()}\r\n onChange={handleSelect}\r\n multiple\r\n options={productList}\r\n className={classes.select}\r\n variant=\"standard\"\r\n value={selectedItems}\r\n disableCloseOnSelect\r\n clearText={Localization.clear}\r\n renderInput={params => (\r\n e.stopPropagation()}\r\n variant=\"standard\"\r\n InputProps={{\r\n ...params.InputProps,\r\n disableUnderline: true\r\n }}\r\n label={Localization.selectProducts}\r\n placeholder={Localization.productId}\r\n sx={{\r\n \"& .MuiInputBase-root\": {\r\n height: \"24px\"\r\n },\r\n \"& .MuiInputBase-root-MuiInput-root\": {\r\n marginTop: 0\r\n },\r\n \"& .MuiInput-root .MuiInput-input\": {\r\n padding: \"0px\"\r\n }\r\n }}\r\n />\r\n )}\r\n renderTags={value => (value.length > 0 ? (\r\n e.stopPropagation()} label={`${value.length}`} style={{ height: 24 }} />\r\n ) : null)}\r\n />\r\n
    \r\n \r\n e.key === \"Enter\" && handleSave}\r\n onClick={handleSave}\r\n style={{ display: \"flex\", alignItems: \"center\" }}\r\n >\r\n {Localization.save}\r\n \r\n \r\n \r\n e.key === \"Enter\" && handleCancel}\r\n onClick={handleCancel}\r\n style={{ display: \"flex\", alignItems: \"center\" }}\r\n >\r\n {Localization.cancel}\r\n \r\n \r\n
    \r\n \r\n )}\r\n {(!isEditing && expandedAccordion === index) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n \"delete\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Userlist\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAjAAAAIwBFCEVQAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACbSURBVDiN3c6xCoFhFAbgR7kVioUFO6UsNovchKsyKKPBFViVhTJholCyGH4L9aX+/u83eusMZ3jec8iXOjbYo53TKmGIJxI80InFNZwxwygoOeTByXvCkl1eHJYM0fwFJ7igkoVPKfiK1h9imKfgCxpZeIw+lr9chhXuXyXRuBxcvKGHRczbUMQg2I+oohuDoYAJtphiHQs/eQEn0FXPNIa5gwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAdhAAAHYQGVw7i2AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEZJREFUOI1jZMAN/qPxGbEpYmJgYDgKVYyOsRmIjg8z4lBMP4DsL1JdwsjAAAkDigBNDWDEwaafC0aKAYMrIR0hQd9hGAMA3VkRIWhThsgAAAAASUVORK5CYII=\"","import useStyles from \"./styles\"\r\n// eslint-disable-next-line import/no-cycle\r\nimport Userlist from \"./Userlist\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useFilteredProducts, useProductsLoading } from \"../../../redux/hook/productHooks\"\r\nimport Products from \"../../Products/Products\"\r\nimport ProductViewToggleButton from \"../../Products/ProductViewToggleButton/ProductViewToggleButton\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useUser, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport CheckIcon from \"../../../assets/check.png\"\r\nimport ClearIcon from \"../../../assets/close.png\"\r\nimport { setFavoriteProducts } from \"../../../redux/favoriteSlice\"\r\nimport { mobileBreakpoint, tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport {\r\n Alert,\r\n Autocomplete,\r\n Box, Button, Chip, Divider, Snackbar, TextField, Tooltip, Typography, useMediaQuery, useTheme\r\n} from \"@mui/material\"\r\nimport classNames from \"classnames\"\r\nimport React, { useMemo, useState, useEffect } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport axios from \"axios\"\r\n\r\nfunction FavoriteProductsPage() {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(`(max-width:${mobileBreakpoint}px)`)\r\n const isTablet = useMediaQuery(`(max-width:${tabletBreakpoint}px)`)\r\n const favoriteProducts = useSelector(state => state.favorite.favoriteProducts)\r\n const user = useUser()\r\n const [userLists, setUserLists] = useState([])\r\n\r\n useEffect(() => {\r\n const updatedLists = Object.values(\r\n favoriteProducts\r\n .filter(\r\n x => x.listName !== null && user.user.customerNumber === x.customerNumber\r\n )\r\n .reduce((result, item) => {\r\n if (!result[item.listName]) {\r\n result[item.listName] = []\r\n }\r\n result[item.listName].push(item)\r\n return result\r\n }, {})\r\n ).sort((a, b) => a[0].listName.localeCompare(b[0].listName))\r\n setUserLists(updatedLists)\r\n }, [favoriteProducts])\r\n\r\n const idArray = [...Array.from(\r\n new Set(favoriteProducts\r\n .filter(x => x.listName === null && user.user.customerNumber === x.customerNumber)\r\n .map(x => x.productId))\r\n )]\r\n\r\n const filter = useMemo(() => ({ productIds: idArray }), [favoriteProducts])\r\n const pagination = useMemo(() => ({ offset: 0, limit: -1 }), [])\r\n const isLoading = useProductsLoading()\r\n const falseProducts = useFilteredProducts(filter, pagination)\r\n const products = useMemo(() => [...falseProducts]?.sort((a, b) => a?.originalId.localeCompare(b?.originalId)), [falseProducts])\r\n const userFavorites = [...new Set(favoriteProducts.filter(x => user.user.customerNumber === x.customerNumber).map(x => x.productId).flat())]\r\n\r\n const missingProducts = useMemo(() => (\r\n idArray?.filter(id => !products?.some(product => product.originalId === id))\r\n ), [favoriteProducts, products])\r\n const theme = useTheme()\r\n const language = useLanguage()\r\n const authToken = useUserAuthToken()\r\n\r\n const [showNotInList, setShowNotInList] = useState(false)\r\n const notInList = products?.filter(item => ![...new Set(userLists?.map(x => x.map(y => y.productId)).flat())].includes(item.originalId))\r\n const [isEditing, setIsEditing] = useState(false)\r\n const [tempName, setTempName] = useState(\"\")\r\n const [selectedItems, setSelectedItems] = useState([])\r\n const [errorOpen, setErrorOpen] = useState(false)\r\n const dispatch = useDispatch()\r\n\r\n const handleNameChange = event => {\r\n setTempName(event.target.value)\r\n }\r\n\r\n const handleSave = async () => {\r\n if (selectedItems.length > 0 && tempName.length > 0) {\r\n const a = await axios.post(`/api/favorite/CreateFavoriteList?authToken=${authToken}`, { products: selectedItems, listName: tempName })\r\n dispatch(setFavoriteProducts(a.data.response))\r\n setIsEditing(false)\r\n } else {\r\n setErrorOpen(true)\r\n }\r\n setTempName(\"\")\r\n setSelectedItems([])\r\n }\r\n\r\n const handleCancel = () => {\r\n setIsEditing(false)\r\n setTempName(\"\")\r\n setSelectedItems([])\r\n }\r\n\r\n const toggleEdit = () => {\r\n setIsEditing(true)\r\n setTempName(tempName)\r\n }\r\n\r\n const handleSelect = (_event, value) => {\r\n const selectedOptions = value\r\n setSelectedItems(selectedOptions)\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return\r\n }\r\n setErrorOpen(false)\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {Localization.yourFavorites}\r\n
    \r\n \r\n
    \r\n {!isEditing && (\r\n e.key === \"Enter\" && toggleEdit()}\r\n style={{\r\n display: \"flex\",\r\n padding: \"10px 12px\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n background: \"#F09057\",\r\n height: 31\r\n }}\r\n >\r\n \r\n {Localization.newList}\r\n \r\n \r\n )}\r\n {isEditing && (\r\n
    \r\n \r\n
    \r\n (\r\n \r\n )}\r\n renderTags={value => (value.length > 0 ? (\r\n \r\n ) : null)}\r\n />\r\n \r\n e.key === \"Enter\" && handleSave()}\r\n onClick={handleSave}\r\n style={{ display: \"flex\", alignItems: \"flex-end\" }}\r\n >\r\n {Localization.save}\r\n \r\n \r\n \r\n e.key === \"Enter\" && handleCancel()}\r\n onClick={handleCancel}\r\n style={{ display: \"flex\", alignItems: \"flex-end\" }}\r\n >\r\n {Localization.cancel}\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n {Localization.errorCreatingFavoriteList}\r\n \r\n \r\n
    \r\n \r\n {\r\n userLists?.map((list, index) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n {!showNotInList ? Localization.allProducts : Localization.unlisted}\r\n \r\n
    \r\n setShowNotInList(!showNotInList)}\r\n onKeyDown={e => e.key === \"Enter\" && setShowNotInList(!showNotInList)}\r\n style={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n background: \"#F09057\",\r\n height: 24\r\n }}\r\n >\r\n \r\n {showNotInList ? Localization.showAllFavorites : Localization.showUnlisted}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default FavoriteProductsPage\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n container: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n paddingTop: theme.spacing(8),\r\n maxWidth: \"1920px\"\r\n },\r\n newsWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n },\r\n stepperWrapper: {\r\n maxWidth: 800,\r\n padding: theme.spacing(3)\r\n },\r\n productsWrapper: {\r\n flex: \"0 0 100%\"\r\n },\r\n stepper: {\r\n marginBottom: 20,\r\n marginTop: 10\r\n },\r\n noProductsBox: {\r\n flex: \"0 1 1600px\",\r\n margin: `0 ${theme.spacing(3)}px`,\r\n marginTop: theme.spacing(6),\r\n display: \"flex\",\r\n justifyContent: \"space-between\"\r\n },\r\n titleBox: {\r\n marginTop: 40,\r\n marginBottom: 30\r\n },\r\n youtubeVideo: {\r\n aspectRatio: \"16 / 9\",\r\n width: \"100%\"\r\n },\r\n newsTitle: {\r\n margin: 0,\r\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: 400,\r\n fontSize: \"3rem\",\r\n lineHeight: \"1.167\",\r\n letterSpacing: \"0em\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n fontSize: \"2.2rem\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n fontSize: \"1.8rem\"\r\n }\r\n },\r\n newsPreamble: {\r\n margin: 0,\r\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: 400,\r\n fontSize: \"1.5rem\",\r\n lineHeight: 1.334,\r\n letterSpacing: \"0em\",\r\n [theme.breakpoints.between(tabletBreakpoint)]: {\r\n fontSize: \"1.2rem\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n fontSize: \"1.1rem\"\r\n }\r\n }\r\n}))\r\n","import { Button, Box } from \"@mui/material\"\r\nimport { KeyboardArrowLeft, KeyboardArrowRight } from \"@mui/icons-material\"\r\nimport React from \"react\"\r\n\r\nfunction NavigationButtonWrapper({\r\n customComponent, positionOnTop, showNavigationOnHover, ...props\r\n}) {\r\n const {\r\n rightSide,\r\n isHovering\r\n } = props\r\n const CustomComponent = customComponent\r\n\r\n const hideOnHover = {\r\n opacity: (isHovering || !showNavigationOnHover) ? 1 : 0,\r\n transition: \"opacity 0.5s\"\r\n }\r\n\r\n const absoluteStyle = (positionOnTop) ? {\r\n position: \"absolute\",\r\n left: (!rightSide) ? 0 : null,\r\n right: (rightSide) ? 0 : null,\r\n zIndex: 1\r\n } : {}\r\n\r\n const newProps = {\r\n style: {\r\n ...absoluteStyle,\r\n ...hideOnHover\r\n },\r\n ...props\r\n }\r\n\r\n return (\r\n (CustomComponent)\r\n ? \r\n : \r\n )\r\n}\r\n\r\nfunction NavigationButton({\r\n style, rightSide, _isHovering, ...props\r\n}) {\r\n return (\r\n \r\n \r\n {\r\n rightSide\r\n ? \r\n : \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport { NavigationButtonWrapper }\r\nexport default NavigationButton\r\n","import { NavigationButtonWrapper } from \"./NavigationButton\"\r\nimport React from \"react\"\r\nimport SwipeableViews from \"react-swipeable-views\"\r\nimport { autoPlay } from \"react-swipeable-views-utils\"\r\nimport { Box, Skeleton } from \"@mui/material\"\r\n\r\nconst AutoPlaySwipeableViews = autoPlay(SwipeableViews)\r\n\r\nfunction Stepper({\r\n style,\r\n index,\r\n setIndex,\r\n handleNext,\r\n handleBack,\r\n handleStepChange,\r\n pages,\r\n loading,\r\n showNavigationOnHover,\r\n positionNavigationOnTop,\r\n backButtonComponent,\r\n nextButtonComponent,\r\n disabledSwipe,\r\n autoplay = false,\r\n ...remainingProps\r\n}) {\r\n const [isHovering, setIsHovering] = React.useState(false)\r\n\r\n const handleNavigateNext = () => {\r\n if (handleNext) handleNext()\r\n else {\r\n setIndex(previousIndex => (\r\n (previousIndex + 1) % pages.length\r\n ))\r\n }\r\n }\r\n\r\n const handleNavigateBack = () => {\r\n if (handleBack) handleBack()\r\n else {\r\n setIndex(previousIndex => (\r\n (previousIndex > 0)\r\n ? previousIndex - 1\r\n : pages.length - 1\r\n ))\r\n }\r\n }\r\n\r\n const handleNavigateStepChange = newStep => {\r\n if (handleStepChange) handleStepChange(newStep)\r\n else setIndex(newStep)\r\n }\r\n\r\n const handleMouseEnter = () => setIsHovering(true)\r\n const handleMouseLeave = () => setIsHovering(false)\r\n\r\n return (\r\n (!loading)\r\n ? (\r\n \r\n \r\n \r\n {pages}\r\n \r\n \r\n \r\n )\r\n : \r\n )\r\n}\r\n\r\nexport default Stepper\r\n","/* eslint-disable import/no-cycle */\r\n/* eslint-disable react/no-children-prop */\r\n/* eslint-disable react/no-unstable-nested-components */\r\nimport useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useFilteredProducts } from \"../../../redux/hook/productHooks\"\r\nimport { useGetNewsByIdQuery } from \"../../../redux/services/broditWebApi\"\r\nimport Products from \"../../Products/Products\"\r\nimport ProductViewToggleButton from \"../../Products/ProductViewToggleButton/ProductViewToggleButton\"\r\nimport { NavigationButton } from \"../../Stepper\"\r\nimport Stepper from \"../../Stepper/Stepper\"\r\nimport StyledMarkdown from \"../../StyledMarkdown\"\r\nimport Thumbnail from \"../../Thumbnail\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport React, { useMemo, useState } from \"react\"\r\nimport {\r\n Skeleton,\r\n Box, Container, Divider, Typography\r\n} from \"@mui/material\"\r\n\r\nconst NewsPage = () => {\r\n const { place, id } = useParams()\r\n const [imageIndex, setImageIndex] = useState(0)\r\n const language = useLanguage()\r\n const { data, isFetching } = useGetNewsByIdQuery({\r\n language,\r\n id: `${place}/${id}`\r\n })\r\n const filter = useMemo(\r\n () => ({ productIds: data?.products ?? [] }),\r\n [data?.products]\r\n )\r\n const products = useFilteredProducts(filter)\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n {\r\n !isFetching && data\r\n && (\r\n
    \r\n \r\n \r\n {/* {Localization.published}: */}\r\n {new Date(data.dateTime).toLocaleDateString()}\r\n \r\n {data.video\r\n ? (\r\n \r\n )\r\n : (\r\n ((imageIndex > 0)\r\n ? \r\n : null)\r\n }\r\n nextButtonComponent={\r\n props => (\r\n (\r\n imageIndex < (data.images.length - 1)\r\n && data.images.length > 1\r\n )\r\n ? \r\n : null\r\n )\r\n }\r\n pages={\r\n data.images.map(image => {\r\n const partsOfPath = image.split(\"/\")\r\n const imageId = partsOfPath[partsOfPath.length - 1]\r\n return (\r\n \r\n )\r\n })\r\n }\r\n />\r\n )}\r\n \r\n \r\n {data.title}\r\n \r\n \r\n {data.preamble}\r\n \r\n \r\n \r\n \r\n {\r\n (data?.products ?? []).length > 0\r\n && (\r\n <>\r\n \r\n \r\n {Localization.products.toUpperCase()}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n )\r\n }\r\n
    \r\n )\r\n }\r\n {\r\n isFetching\r\n && \r\n }\r\n {\r\n !isFetching && !data\r\n && (\r\n \r\n \r\n {`${Localization.couldNotFindTheSelectedNewsArticle} \"${id}\".`}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default NewsPage\r\n","import { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n result: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\"\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3)\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n comparisonHeader: {\r\n display: \"flex\",\r\n gridGap: \"10px\",\r\n flex: \"1 1 auto\",\r\n justifyContent: \"center\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n flexWrap: \"wrap\"\r\n },\r\n padding8: {\r\n padding: 8\r\n },\r\n paperWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"1 auto\",\r\n alignItems: \"flex-start\"\r\n },\r\n fullWidth: {\r\n width: \"100%\"\r\n },\r\n tableCell: {\r\n minWidth: 112,\r\n fontWeight: 700,\r\n wordBreak: \"break-word\"\r\n },\r\n informations: {\r\n whiteSpace: \"pre-line\",\r\n verticalAlign: \"top\"\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n marginBottom: 10\r\n },\r\n pdfButton: {\r\n flex: \"0 1 auto\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n }\r\n}))\r\n","import { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport ProductCard from \"../../Products/ProductCard/ProductCard\"\r\nimport { persistScrollPosition } from \"../helperFunctions\"\r\nimport useStyles from \"../styles\"\r\nimport { Box, useMediaQuery } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ComparisonHeader = ({ products }) => {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n\r\n return (\r\n \r\n {\r\n products.map((product, i) => (\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ComparisonHeader\r\n","import useStyles from \"../styles\"\r\nimport theme from \"../../../theme\"\r\nimport { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport {\r\n Box, TableCell, TableRow, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ComparisonTableSection = ({ informations, text }) => {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n\r\n return (\r\n isMobile\r\n ? (\r\n \r\n \r\n {text}\r\n \r\n \r\n {informations.map((info, i) => (\r\n \r\n {info}\r\n \r\n ))}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {text}\r\n \r\n {informations.map((info, i) => (\r\n \r\n {info}\r\n \r\n ))}\r\n \r\n )\r\n )\r\n}\r\n\r\nexport default ComparisonTableSection\r\n","import ComparisonTableSection from \"./ComparisonTableSection\"\r\nimport useStyles from \"../styles\"\r\nimport { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport {\r\n Box, Paper, Table, TableBody, TableContainer, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ProductComparisonSections = ({ sections }) => {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n\r\n return (\r\n <>\r\n {\r\n sections.map((section, i) => (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n section.Data.map((info, index) => (\r\n \r\n ))\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n ))\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ProductComparisonSections\r\n","import ComparisonHeader from \"./ComparisonHeader\"\r\nimport ProductComparisonSections from \"./ProductComparisonSections\"\r\nimport { productTransformation } from \"../helperFunctions\"\r\nimport useStyles from \"../styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ProductComparisonTable = ({ products }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProductComparisonTable\r\n","import ProductComparisonTable from \"./components/ProductComparisonTable\"\r\nimport { transformProductForCompare } from \"./helperFunctions\"\r\nimport useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useUrlQuery } from \"../../lib/hooks/urlQueryHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { addToCompare, setIsOnComparePage } from \"../../redux/compareProductsReducer\"\r\nimport { useCompareProducts } from \"../../redux/hook/compareHooks\"\r\nimport { useFilteredProducts } from \"../../redux/hook/productHooks\"\r\nimport { productViewBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport theme from \"../../theme\"\r\nimport { batch, useDispatch } from \"react-redux\"\r\nimport React, { useEffect, useMemo, useState } from \"react\"\r\nimport { Box, Typography, useMediaQuery } from \"@mui/material\"\r\nimport Button from \"@mui/material/Button\"\r\nimport PictureAsPdfIcon from \"@mui/icons-material/PictureAsPdf\"\r\nimport axios from \"axios\"\r\nimport CircularProgress from \"@mui/material/CircularProgress\"\r\nimport DoneIcon from \"@mui/icons-material/Done\"\r\n\r\nconst CompareProducts = () => {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n const language = useLanguage()\r\n const queryParams = useUrlQuery()\r\n const productForCompareIds = useCompareProducts()\r\n const [loading, setLoading] = useState(false)\r\n const [success, setSuccess] = useState(false)\r\n\r\n const filter = useMemo(\r\n () => ({ productIds: productForCompareIds ?? [] }),\r\n [productForCompareIds]\r\n )\r\n let products = useFilteredProducts(filter)\r\n products = products.map(p => transformProductForCompare(p))\r\n\r\n const getCompareUrl = () => {\r\n const cleanedUrl = window.location.toString().replace(window.location.search, \"\")\r\n const url = new URL(cleanedUrl)\r\n if (productForCompareIds && productForCompareIds.length > 0) {\r\n url.searchParams.set(\"id\", productForCompareIds)\r\n url.searchParams.sort()\r\n }\r\n return url\r\n }\r\n\r\n const setCompareUrl = () => {\r\n const url = getCompareUrl()\r\n window.history.pushState({}, \"\", url)\r\n }\r\n\r\n useEffect(() => {\r\n const ids = (queryParams.get(\"id\") ?? \"\")\r\n .split(\",\")\r\n .filter(id => Boolean(id))\r\n\r\n batch(() => {\r\n ids.forEach(id => {\r\n dispatch(addToCompare(id))\r\n })\r\n dispatch(setIsOnComparePage(true))\r\n })\r\n\r\n return () => {\r\n dispatch(setIsOnComparePage(false))\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setCompareUrl()\r\n }, [productForCompareIds, language])\r\n\r\n const downloadComparisonReport = async () => {\r\n setLoading(true)\r\n const ids = `${products[0].originalId}-${products[1].originalId}`\r\n const url = `/api/ProductInfo/GetProductComparisonReport?ids=${ids}&language=${language}`\r\n await axios.get(url, {\r\n responseType: \"blob\"\r\n })\r\n .then(response => {\r\n const downloadUrl = window.URL.createObjectURL(new Blob([response.data]))\r\n\r\n const link = document.createElement(\"a\")\r\n link.href = downloadUrl\r\n link.setAttribute(\"download\", `product-comparison-${ids}.pdf`)\r\n document.body.appendChild(link)\r\n link.click()\r\n\r\n link.parentNode.removeChild(link)\r\n })\r\n .catch(error => console.error(\"Error fetching data: \", error))\r\n .finally(() => {\r\n setLoading(false)\r\n setSuccess(true)\r\n })\r\n }\r\n\r\n const buttonIcon = () => {\r\n if (loading) {\r\n return \r\n }\r\n\r\n if (success) {\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n return (\r\n \r\n {Localization.compareProducts}\r\n \r\n {products.length === 2\r\n && (\r\n \r\n {Localization.downloadComparisonPdf}\r\n \r\n )}\r\n \r\n {\r\n products.length > 0\r\n ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n {Localization.noProductsToCompare}\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default CompareProducts\r\n","import { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n userPage: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n width: \"100%\",\r\n flexWrap: \"wrap\"\r\n },\r\n contentWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 1920px\",\r\n fontFamily: \"Arial\",\r\n padding: \"20px 40px\",\r\n gap: \"20px\"\r\n },\r\n left: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n gap: \"20px\",\r\n flex: \"0 0 60%\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n },\r\n right: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n flex: \"1 1 0px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n display: \"none\"\r\n }\r\n },\r\n pageTitle: {\r\n fontSize: \"24px\"\r\n },\r\n withdrawConsent: {\r\n flex: \"0 1 100%\"\r\n },\r\n image: {\r\n flex: \"1 1 0px\",\r\n width: \"0px\",\r\n borderRadius: \"5px\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/mypages.754a4665.jpg\";","import { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { styled } from \"@mui/styles\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\n\r\nconst MessageBoxBase = styled(\"div\")(({ theme }) => (\r\n {\r\n flex: \"0 1 1600px\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n padding: \"16px 20px\",\r\n backgroundColor: \"#FFFFFF\",\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n gap: \"5px\",\r\n marginTop: \"16px\",\r\n borderRadius: \"10px\",\r\n border: \"1px solid #f09057\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 1 80%\"\r\n }\r\n }\r\n))\r\n\r\nconst Title = styled(\"div\")(() => (\r\n {\r\n flex: \"0 0 100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n gap: \"8px\"\r\n }\r\n))\r\n\r\nconst Paragraph = styled(\"p\")(() => (\r\n {\r\n flex: \"0 0 100%\",\r\n fontSize: \"14px\",\r\n margin: \"5px 0\"\r\n }\r\n))\r\n\r\nconst MessageBox = () => {\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const [message, setMessage] = useState(null)\r\n\r\n const fetchAnnouncementMessage = async () => {\r\n const response = await fetch(`/files/DynamicPages/AnnouncementMessage-${language}.json`)\r\n return response.json()\r\n }\r\n\r\n useEffect(() => {\r\n let isMounted = true\r\n\r\n const fetchMessage = async () => {\r\n const result = await fetchAnnouncementMessage()\r\n if (isMounted) setMessage(result)\r\n }\r\n\r\n fetchMessage()\r\n\r\n return () => {\r\n isMounted = false\r\n }\r\n }, [language])\r\n\r\n return isAuthorized && message && message.enabled ? (\r\n \r\n \r\n <InfoIcon />\r\n {message.title}\r\n \r\n {message.text && message.text.map((text, i) => {text})}\r\n \r\n ) : null\r\n}\r\n\r\nexport default MessageBox\r\n","import useStyles from \"./styles\"\r\nimport MyPagesImage from \"./assets/mypages.jpg\"\r\nimport MessageBox from \"./MessageBox/MessageBox\"\r\nimport withdrawCookiesConsent from \"../../lib/helper/gdprHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useUserData } from \"../../redux/hook/userHooks\"\r\nimport UserInfo from \"../UserInfo/UserInfo\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React from \"react\"\r\nimport {\r\n Link\r\n} from \"@mui/material\"\r\n\r\nconst User = () => {\r\n const classes = useStyles()\r\n const userData = useUserData()\r\n const dispatch = useDispatch()\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n

    {`${Localization.hello} ${userData.name ?? \"\"}`}

    \r\n \r\n
    \r\n {Localization.ifYouWantToWithdrawConsent}\r\n dispatch(withdrawCookiesConsent())}>\r\n {Localization.here}\r\n \r\n .\r\n {Localization.youMustThenAcceptTheTermsAgain}\r\n
    \r\n
    \r\n {Localization.contactBroditVia}\r\n info@brodit.se\r\n {Localization.ifYouWantToChangeAnyInformation}\r\n
    \r\n
    \r\n
    \r\n \"Corvette\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default User\r\n","export const formatPrice = price => {\r\n if (!price) return null\r\n\r\n // Adds spaces, commas and restrict the number of fraction digits.\r\n return price.toLocaleString(\"sv\", {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n })\r\n}\r\n\r\nexport const formatAmount = amount => {\r\n if (!amount) return null\r\n\r\n // Adds spaces, hide fraction digits if there are none present.\r\n return amount.toLocaleString(\"sv\", {\r\n minimumFractionDigits: 0\r\n })\r\n}\r\n","import { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n // backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3)\r\n },\r\n capitalize: {\r\n textTransform: \"uppercase\"\r\n }\r\n}));\r\n","/* eslint-disable no-restricted-globals */\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport React, { useRef, useState } from \"react\"\r\nimport {\r\n Button, ButtonGroup, Box, Typography\r\n} from \"@mui/material\"\r\nimport PublishIcon from \"@mui/icons-material/Publish\"\r\nimport FileCopyIcon from \"@mui/icons-material/FileCopy\"\r\n\r\nconst CsvReader = ({ callbackFn }) => {\r\n const [csvFile, setCsvFile] = useState(null)\r\n const ref = useRef()\r\n\r\n const processCSV = (str, delim = \";\") => {\r\n let success = true\r\n let rows = str.split(/\\r\\n|\\n|\\r/)\r\n\r\n // Remove all empty rows.\r\n rows = rows.filter(x => x !== \"\")\r\n\r\n rows = rows.map(row => {\r\n // Extract the value for the first column as the 'article'\r\n // and the second column as 'quantity' for each row.\r\n const [article, quantity] = row.split(delim).map(val => val.trim())\r\n\r\n return {\r\n article,\r\n quantity,\r\n original: row,\r\n success: false\r\n }\r\n })\r\n\r\n const failedRows = []\r\n const successfulRows = []\r\n rows.forEach(row => {\r\n const isNumber = (\r\n !isNaN(parseFloat(row.quantity))\r\n && isFinite(row.quantity)\r\n )\r\n\r\n if (isNumber) {\r\n successfulRows.push(\r\n {\r\n ...row,\r\n quantity: parseInt(row.quantity, 10),\r\n success: true\r\n }\r\n )\r\n } else {\r\n success = false\r\n failedRows.push(row)\r\n }\r\n })\r\n\r\n return {\r\n success,\r\n successfulRows,\r\n failedRows\r\n }\r\n }\r\n\r\n const submit = () => {\r\n const file = csvFile\r\n const reader = new FileReader()\r\n\r\n reader.onload = e => {\r\n const text = e.target.result\r\n const delim = text.includes(\";\") ? \";\" : \",\"\r\n const { success, successfulRows } = processCSV(text, delim)\r\n\r\n if (success) {\r\n const articles = successfulRows.map(\r\n ({ article, quantity }) => ({ article, quantity })\r\n )\r\n callbackFn(true, articles)\r\n } else {\r\n callbackFn(false, null)\r\n }\r\n\r\n ref.current.reset()\r\n setCsvFile(null)\r\n }\r\n\r\n reader.readAsText(file)\r\n }\r\n\r\n const handleFormSubmit = () => {\r\n if (csvFile) submit()\r\n }\r\n\r\n return (\r\n
    \r\n \r\n }\r\n >\r\n {Localization.chooseAFile}\r\n {\r\n // Bug, if same file is chosen after clear, the gui is not updated.\r\n setCsvFile(e.target.files[0])\r\n }}\r\n hidden\r\n />\r\n \r\n }\r\n >\r\n {Localization.upload}\r\n \r\n {/* \r\n {Localization.clear}\r\n */}\r\n \r\n {csvFile\r\n && (\r\n \r\n \r\n {Localization.chosenFile}\r\n :\r\n {\" \"}\r\n {csvFile.name}\r\n \r\n \r\n )}\r\n
    \r\n )\r\n}\r\n\r\nexport default CsvReader\r\n","export default __webpack_public_path__ + \"static/media/orderByFileExample.301e71ae.jpg\";","import useStyles from \"./styles\"\r\nimport CsvReader from \"./CsvReader/CsvReader\"\r\nimport image from \"../../assets/orderByFileExample.jpg\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { batchAddToCart } from \"../../redux/cartSlice\"\r\nimport { setDialogMessage } from \"../../redux/userMessageSlice\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { checkMonitorArticles } from \"../../lib/helper/userHelper\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport FileCopyIcon from \"@mui/icons-material/FileCopy\"\r\nimport { Alert, Typography, Box } from \"@mui/material\"\r\n\r\nimport React, { useState } from \"react\"\r\n\r\nconst OrderUpload = () => {\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const dispatch = useDispatch()\r\n const lang = useLanguage()\r\n const [_loading, setLoading] = useState(false)\r\n\r\n const callback = async (readSuccess, array) => {\r\n if (cart.items.length > 0) {\r\n dispatch(setDialogMessage(\r\n {Localization.clearYourCartFirst}\r\n ))\r\n return\r\n }\r\n if (readSuccess) {\r\n checkMonitorArticles(lang, array.map(x => x.article), result => {\r\n const cartArticles = array.filter(x => !result.includes(x.article))\r\n dispatch(batchAddToCart(cartArticles))\r\n\r\n if (result.length > 0) {\r\n dispatch(setDialogMessage(\r\n \r\n ))\r\n } else {\r\n dispatch(setDialogMessage(\r\n {Localization.orderWasImported}\r\n ))\r\n }\r\n }, setLoading)\r\n } else {\r\n dispatch(setDialogMessage(\r\n {Localization.errorReadingOrderFile}\r\n ))\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n {Localization.orderByFile}\r\n \r\n \r\n \r\n \r\n \"instruction\"\r\n \r\n \r\n {Localization.orderByFileInfoParagraph1}\r\n {Localization.orderByFileInfoParagraph2}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nfunction ArticlesPartiallyLoadedMessage({ loadedArticles, failedArticles }) {\r\n const getNotIncludedMessage = notInMonitor => (\r\n \r\n \r\n {Localization.notIncludedArticlesMessage}\r\n :\r\n \r\n
    \r\n {notInMonitor.map(article => ({article}))}\r\n
    \r\n )\r\n\r\n return (\r\n \r\n {\r\n loadedArticles.length > 0\r\n && (\r\n \r\n {Localization.orderWasImported}\r\n \r\n )\r\n }\r\n
    \r\n \r\n {getNotIncludedMessage(failedArticles)}\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default OrderUpload\r\n","import { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n minHeight: 450\r\n },\r\n paper: {\r\n marginTop: theme.spacing(4)\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n paperPadding: {\r\n padding: theme.spacing(3)\r\n },\r\n paperFlex: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n form: {\r\n width: \"100%\", // Fix IE 11 issue.\r\n marginTop: theme.spacing(1)\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n textAlignCenter: {\r\n textAlign: \"center\"\r\n },\r\n removeAutofillBg: {\r\n \"& input\": {\r\n \"&:-webkit-autofill\": {\r\n \"-webkit-box-shadow\": \"0 0 0 1000px white inset\",\r\n \"-webkit-text-fill-color\": theme.palette.text.primary\r\n },\r\n \"&:-webkit-autofill:hover\": {\r\n \"-webkit-box-shadow\": \"0 0 0 1000px white inset\",\r\n \"-webkit-text-fill-color\": theme.palette.text.primary\r\n },\r\n \"&:-webkit-autofill:focus\": {\r\n \"-webkit-box-shadow\": \"0 0 0 1000px white inset\",\r\n \"-webkit-text-fill-color\": theme.palette.text.primary\r\n },\r\n \"&:-webkit-autofill:active\": {\r\n \"-webkit-box-shadow\": \"0 0 0 1000px white inset\",\r\n \"-webkit-text-fill-color\": theme.palette.text.primary\r\n }\r\n }\r\n }\r\n}));\r\n","import { mailRegex } from \"../../lib/helper/commonHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useRecaptchaSiteKey } from \"../../redux/hook/settingsHooks\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport {\r\n Button,\r\n FormControl,\r\n TextField,\r\n Typography,\r\n useTheme\r\n} from \"@mui/material\"\r\nimport SendIcon from \"@mui/icons-material/Send\"\r\nimport axios from \"axios\"\r\nimport React, { useEffect, useRef, useState } from \"react\"\r\nimport ReCAPTCHA from \"react-google-recaptcha\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst ForgotPasswordForm = () => {\r\n const theme = useTheme()\r\n const dispatch = useDispatch()\r\n const [loading, setLoading] = useState(false)\r\n const lang = useLanguage()\r\n const recaptchaRef = useRef()\r\n const recaptchaSiteKey = useRecaptchaSiteKey()\r\n\r\n const defaultValues = {\r\n email: null,\r\n language: null,\r\n recaptcha: undefined\r\n }\r\n\r\n const {\r\n register, handleSubmit, watch, setValue, formState: { errors }, setError, clearErrors\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const onExpired = () => {\r\n setValue(\"recaptcha\", undefined)\r\n }\r\n\r\n const onChangeRecaptcha = value => {\r\n setValue(\"recaptcha\", value)\r\n }\r\n\r\n const resetRecaptcha = () => {\r\n setValue(\"recaptcha\", undefined)\r\n recaptchaRef.current.reset()\r\n }\r\n\r\n const onSubmit = data => {\r\n if (data.recaptcha === undefined) { // data.typeOfSubmit === undefined &&\r\n setError(\"recaptcha\", {\r\n type: \"manual\",\r\n message: \"Please verify that you are not a robot using Recaptcha!\"\r\n })\r\n resetRecaptcha()\r\n setTimeout(() => {\r\n clearErrors()\r\n }, 250)\r\n return\r\n }\r\n\r\n (async () => {\r\n setLoading(true)\r\n let status = null\r\n try {\r\n if (data.recaptchaBypass === \"true\") {\r\n status = 200\r\n } else {\r\n const response = await axios.post(\r\n `/api/Users/PasswordResetRequest?token=${data.recaptcha}`,\r\n data\r\n )\r\n status = response.data.httpStatusCode // From internal api\r\n }\r\n } catch (error) {\r\n status = error?.response?.status\r\n }\r\n\r\n setLoading(false)\r\n\r\n switch (status) {\r\n case (200):\r\n dispatch(setSnackbarMessage(Localization.forgotPasswordNotification, \"success\"))\r\n break\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownError, \"error\"))\r\n break\r\n }\r\n\r\n setTimeout(() => {\r\n resetRecaptcha()\r\n }, 250)\r\n })()\r\n }\r\n\r\n useEffect(() => {\r\n setValue(\"language\", lang)\r\n }, [])\r\n\r\n return (\r\n
    \r\n \r\n mailRegex.test(value) })}\r\n size=\"small\"\r\n />\r\n \r\n\r\n {/* {(process.env.NODE_ENV === \"development\" || process.env.NODE_ENV === \"testenvironment\") && (\r\n \r\n \r\n \r\n \r\n )} */}\r\n\r\n \r\n \r\n \r\n\r\n {Boolean(errors.recaptcha) && {Localization.pleaseFillInThisCheckBox}}\r\n \r\n }\r\n >\r\n OK\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ForgotPasswordForm\r\n","import useStyles from \"./styles\"\r\nimport ForgotPasswordForm from \"./ForgotPasswordForm\"\r\nimport { mailRegex, removeTrailingSlash } from \"../../lib/helper/commonHelper\"\r\nimport {\r\n sendGAEventErrorOnSignIn,\r\n sendGAEventMaintenanceSignIn,\r\n sendGAEventSignedIn,\r\n sendGAEventSignInUnauthorized\r\n} from \"../../lib/helper/googleAnalyticsHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport useCookiesConsent from \"../../redux/hook/gdprHooks\"\r\n\r\nimport { useGetOrderSystemMaintenanceQuery } from \"../../redux/services/broditWebApi\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { signIn } from \"../../redux/userSlice\"\r\nimport {\r\n Avatar,\r\n Button,\r\n CircularProgress,\r\n Collapse,\r\n Container,\r\n Paper,\r\n TextField,\r\n Typography,\r\n useTheme,\r\n IconButton\r\n} from \"@mui/material\"\r\nimport { LockOutlined } from \"@mui/icons-material\"\r\nimport axios from \"axios\"\r\nimport classNames from \"classnames\"\r\nimport React, { useState } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Navigate, useResolvedPath } from \"react-router-dom\"\r\nimport VisibilityIcon from \"@mui/icons-material/Visibility\"\r\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\"\r\n\r\nconst SignIn = () => {\r\n const defaultValues = {\r\n email: null,\r\n password: null\r\n }\r\n\r\n const [resetPasswordVisible, setResetPasswordVisible] = useState(false)\r\n const theme = useTheme()\r\n const [working, setWorking] = useState(false)\r\n const acceptedCookies = useCookiesConsent()\r\n const { data: isMaintenance } = useGetOrderSystemMaintenanceQuery()\r\n const [passwordHidden, setPasswordHidden] = useState(true)\r\n\r\n const {\r\n register, handleSubmit, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const url = useResolvedPath(\"\").pathname\r\n\r\n const onSubmit = data => {\r\n (async () => {\r\n setWorking(true)\r\n let status = null\r\n let response = null\r\n try {\r\n response = await axios.post(\r\n \"/api/Users/Authenticate\",\r\n data\r\n )\r\n status = response.status\r\n } catch (error) {\r\n status = error?.response?.status\r\n }\r\n\r\n setWorking(false)\r\n\r\n switch (status) {\r\n case (200):\r\n dispatch(signIn(response.data)) // user\r\n sendGAEventSignedIn()\r\n break\r\n case (401):\r\n dispatch(setSnackbarMessage(Localization.checkYourLoginDetails, \"error\"))\r\n sendGAEventSignInUnauthorized()\r\n return\r\n case (503):\r\n dispatch(setSnackbarMessage(Localization.systemMaintenanceTryAgainLater, \"error\"))\r\n sendGAEventMaintenanceSignIn()\r\n return\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownError, \"error\"))\r\n sendGAEventErrorOnSignIn()\r\n }\r\n })()\r\n\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {Localization.webshopForBroditResellers}\r\n
    \r\n mailRegex.test(value) })}\r\n error={Boolean(errors.email)}\r\n fullWidth\r\n disabled={isMaintenance}\r\n />\r\n setPasswordHidden(!passwordHidden)\r\n }\r\n >\r\n {passwordHidden\r\n ? \r\n : }\r\n \r\n ),\r\n style: { background: \"pink !important\" }\r\n }}\r\n />\r\n \r\n {\r\n (working)\r\n ? \r\n : Localization.logIn\r\n }\r\n \r\n \r\n setResetPasswordVisible(!resetPasswordVisible)}\r\n style={{ marginBottom: theme.spacing(2), marginTop: 48 }}\r\n >\r\n {Localization.forgotPassword}\r\n ?\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default SignIn\r\n","import { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n // backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"90%\",\r\n padding: \"5%\"\r\n }\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n }\r\n}))\r\n","import { strings as Localization } from \"../../../lib/Localization\"\r\nimport { setSnackbarMessage } from \"../../../redux/userMessageSlice\"\r\nimport { useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { useGetOrderSystemMaintenanceQuery } from \"../../../redux/services/broditWebApi\"\r\nimport React, { useState, useEffect } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport axios from \"axios\"\r\nimport {\r\n FormControl,\r\n RadioGroup,\r\n FormLabel,\r\n FormControlLabel,\r\n Radio,\r\n Button,\r\n FormGroup,\r\n Switch,\r\n Collapse,\r\n Box,\r\n TextField,\r\n FormHelperText\r\n} from \"@mui/material\"\r\nimport { makeStyles } from \"@mui/styles\"\r\nimport DataUsageIcon from \"@mui/icons-material/DataUsage\"\r\nimport GetAppIcon from \"@mui/icons-material/GetApp\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\"\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\"\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n \"@keyframes rotate\": {\r\n \"0%\": {\r\n transform: \"rotate(0deg)\"\r\n },\r\n \"100%\": {\r\n transform: \"rotate(360deg)\"\r\n }\r\n },\r\n working: {\r\n animation: `$rotate 3000ms ${theme.transitions.easing.easeInOut} infinite`\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n }\r\n}))\r\n\r\nconst DownloadForm = () => {\r\n const classes = useStyles()\r\n const defaultValues = {\r\n apiKey: null,\r\n includePrice: false,\r\n language: \"en\",\r\n includeHistory: false,\r\n historicalData: null,\r\n from: null\r\n }\r\n\r\n const { data: isMaintenance } = useGetOrderSystemMaintenanceQuery()\r\n\r\n const yesterday = new Date()\r\n yesterday.setDate(yesterday.getDate() - 1)\r\n\r\n const dispatch = useDispatch()\r\n const [downloading, setDownloading] = useState(false)\r\n const [date, setDate] = useState(yesterday) // Init with yesterday\r\n\r\n const authToken = useUserAuthToken()\r\n\r\n const {\r\n register, handleSubmit, watch, setValue, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n useEffect(() => {\r\n let d = null\r\n try {\r\n d = new Date(date).toISOString().split(\"T\")[0]\r\n } catch {\r\n setDate(null); return\r\n }\r\n setValue(\"from\", d)\r\n }, [date])\r\n\r\n useEffect(() => {\r\n setValue(\"apiKey\", null);\r\n\r\n (async () => {\r\n let apiKey = \"\"\r\n try {\r\n const response = await axios.get(\r\n `/api/Users/GetApiKeyFromAuthToken?token=${authToken}`\r\n )\r\n apiKey = response.data\r\n } catch (error) {\r\n console.error(error)\r\n } finally {\r\n setValue(\"apiKey\", apiKey)\r\n }\r\n })()\r\n }, [])\r\n\r\n // Vill man ha filen på svenska, engelska eller tyska?\r\n // Vill man ha pris?\r\n // Vill man endast ha med nya saker osv (filtrera då i grejen sen. HIHI)\r\n\r\n const handleDownload = queryString => {\r\n (async () => {\r\n setDownloading(true)\r\n let statusCode = 0\r\n let data\r\n try {\r\n await axios.get(`/api/ProductInfo/GetProductFile?${queryString}`, {\r\n responseType: \"blob\"\r\n }).then(resp => {\r\n statusCode = resp.status\r\n data = resp.data\r\n }).catch(error => {\r\n if (error.response) {\r\n statusCode = error.response.status\r\n }\r\n })\r\n } catch {\r\n console.error(\"Error fetching file with Axios.\")\r\n }\r\n\r\n switch (statusCode) {\r\n case 200:\r\n setDownloading(false)\r\n break\r\n case 400:\r\n dispatch(setSnackbarMessage(Localization.badRequestFileDownload, \"error\"))\r\n setDownloading(false)\r\n return\r\n case 401:\r\n dispatch(setSnackbarMessage(Localization.unAuthorizedFileDownload, \"error\"))\r\n setDownloading(false)\r\n return\r\n default:\r\n dispatch(setSnackbarMessage(Localization.errorWhenAttemptingToDownloadFile, \"error\"))\r\n setDownloading(false)\r\n return\r\n }\r\n\r\n const url = window.URL.createObjectURL(new Blob([data]))\r\n const link = document.createElement(\"a\")\r\n link.href = url\r\n link.setAttribute(\"download\", \"file.txt\") // Filnamn. Hur får man tag på det liksom.\r\n document.body.appendChild(link)\r\n link.click()\r\n link.parentNode.removeChild(link)\r\n })()\r\n }\r\n const onSubmit = data => {\r\n const queryString = Object.keys(data)\r\n .map(key => `${key}=${data[key]}`)\r\n .join(\"&\")\r\n handleDownload(queryString)\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {Localization.apiKey}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.language}\r\n \r\n \r\n } label={Localization.english} />\r\n } label={Localization.swedish} />\r\n } label={Localization.german} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n label={Localization.includePrices}\r\n />\r\n \r\n \r\n \r\n )}\r\n label={Localization.updatesOnly}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.type}\r\n \r\n \r\n } label={Localization.newItems} />\r\n } label={Localization.changedItems} />\r\n } label={Localization.deletedItems} />\r\n \r\n \r\n {errors.historicalData && Localization.youMustChooseAType}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.fromDate}\r\n \r\n {\r\n setDate(d.target.value)\r\n }}\r\n value={date || \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n : }\r\n color=\"primary\"\r\n variant=\"contained\"\r\n >\r\n {Localization.download}\r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default DownloadForm\r\n","import useStyles from \"./styles\"\r\nimport DownloadForm from \"./DownloadForm/DownloadForm\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport DynamicContent from \"../DynamicContentPage/DynamicContent/DynamicContent\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport {\r\n Typography, Box, useTheme, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst FileDownload = () => {\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const isDesktop = useMediaQuery(t => t.breakpoints.up(desktopBreakpoint))\r\n\r\n return (\r\n
    \r\n {Localization.fileDownload}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default FileDownload\r\n","import { setShouldSyncCart } from \"../../../redux/cartSlice\"\r\nimport { useIsUserAuthorized, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { useGetCartQuery, useUpdateCartMutation } from \"../../../redux/services/cartApi\"\r\nimport { useState, useEffect } from \"react\"\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst CartHandler = () => {\r\n const dispatch = useDispatch()\r\n const cart = useSelector(state => state.cart)\r\n const authToken = useUserAuthToken()\r\n const isAuthorized = useIsUserAuthorized()\r\n const [savedCartTimeout, setSavedCartTimeout] = useState(null)\r\n const saveTimeoutDuration = 1500\r\n\r\n const [updateCartOnServer, _result] = useUpdateCartMutation()\r\n const { isLoading: isLoadingCart } = useGetCartQuery(\r\n { authToken },\r\n { skip: !isAuthorized }\r\n )\r\n\r\n useEffect(() => {\r\n if (cart.shouldSync) {\r\n if (savedCartTimeout) {\r\n clearTimeout(savedCartTimeout)\r\n setSavedCartTimeout(null)\r\n }\r\n\r\n if (isAuthorized && !isLoadingCart) {\r\n setSavedCartTimeout(\r\n setTimeout(\r\n () => {\r\n updateCartOnServer({\r\n authToken: authToken,\r\n cart\r\n })\r\n },\r\n saveTimeoutDuration\r\n )\r\n )\r\n }\r\n\r\n dispatch(setShouldSyncCart(false))\r\n }\r\n }, [cart, authToken, isAuthorized, isLoadingCart, cart.shouldSync])\r\n\r\n return null\r\n}\r\n\r\nexport default CartHandler\r\n","import { setShouldSyncFavorites } from \"../../../redux/favoriteSlice\"\r\nimport { useIsUserAuthorized, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { useGetFavoriteQuery, useUpdateFavoriteMutation } from \"../../../redux/services/favoriteApi\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useState, useEffect } from \"react\"\r\n\r\nconst FavoriteHandler = () => {\r\n const dispatch = useDispatch()\r\n const authToken = useUserAuthToken()\r\n const isAuthorized = useIsUserAuthorized()\r\n const favorite = useSelector(state => state.favorite)\r\n const [savedFavoriteTimeout, setSavedFavoriteTimeout] = useState(null)\r\n const saveTimeoutDuration = 1000\r\n\r\n const [updateFavoriteOnServer, _result] = useUpdateFavoriteMutation()\r\n const {\r\n isLoading: isLoadingFavorite\r\n } = useGetFavoriteQuery(\r\n { authToken },\r\n { skip: !isAuthorized }\r\n )\r\n\r\n useEffect(() => {\r\n if (favorite.shouldSync) {\r\n if (savedFavoriteTimeout) {\r\n clearTimeout(savedFavoriteTimeout)\r\n setSavedFavoriteTimeout(null)\r\n }\r\n\r\n if (isAuthorized && !isLoadingFavorite) {\r\n setSavedFavoriteTimeout(\r\n setTimeout(\r\n () => {\r\n updateFavoriteOnServer({\r\n authToken,\r\n favorite\r\n })\r\n },\r\n saveTimeoutDuration\r\n )\r\n )\r\n }\r\n\r\n dispatch(setShouldSyncFavorites(false))\r\n }\r\n }, [favorite, isAuthorized, authToken, isLoadingFavorite, favorite.shouldSync])\r\n\r\n return null\r\n}\r\n\r\nexport default FavoriteHandler\r\n","import CartHandler from \"./StateHandlers/CartHandler\"\r\nimport FavoriteHandler from \"./StateHandlers/FavoriteHandler\"\r\nimport { getUserData } from \"../../lib/helper/userHelper\"\r\nimport { loadCookie } from \"../../redux/cookieStorage\"\r\nimport { acceptCookies, declineCookies } from \"../../redux/gdprSlice\"\r\nimport useCookiesConsent from \"../../redux/hook/gdprHooks\"\r\nimport { useIsUserAuthorized } from \"../../redux/hook/userHooks\"\r\nimport { useGetOrderSystemMaintenanceQuery } from \"../../redux/services/broditWebApi\"\r\nimport { signIn, signOut } from \"../../redux/userSlice\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { React, useEffect } from \"react\"\r\nimport { useLocation, useNavigate } from \"react-router-dom\"\r\n\r\n/**\r\n * Handles neccessary state changes that always need to be rendered\r\n * regardless if the designated component is mounted or not.\r\n * For example, handles default state values and clearing state when\r\n * changing the language.\r\n */\r\nconst StateHandler = () => {\r\n const dispatch = useDispatch()\r\n const isAuthorized = useIsUserAuthorized()\r\n const hasAllowedCookies = useCookiesConsent()\r\n const location = useLocation()\r\n const navigate = useNavigate()\r\n\r\n const { data: isMaintenance } = useGetOrderSystemMaintenanceQuery()\r\n\r\n // Logs in on mount if the authToken is present.\r\n useEffect(() => {\r\n if (isAuthorized && isMaintenance) dispatch(signOut())\r\n\r\n const userCookie = loadCookie(\"user\")\r\n const welcomeSplashVisible = userCookie?.welcomeSplashVisible\r\n const authToken = userCookie?.authToken\r\n\r\n if (authToken) {\r\n getUserData(\r\n authToken,\r\n result => {\r\n if (welcomeSplashVisible !== undefined) result.welcomeSplashVisible = welcomeSplashVisible\r\n dispatch(signIn(result))\r\n navigate(location)\r\n },\r\n () => { },\r\n () => {\r\n dispatch(signOut())\r\n }\r\n )\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n // Start google analytics if gdpr is already accepted.\r\n if (hasAllowedCookies) {\r\n dispatch(acceptCookies())\r\n } else {\r\n dispatch(declineCookies())\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default StateHandler\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n minHeight: 450\r\n },\r\n paper: {\r\n padding: theme.spacing(3),\r\n marginTop: theme.spacing(8)\r\n },\r\n field: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n form: {\r\n width: \"100%\", // Fix IE 11 issue.\r\n marginTop: theme.spacing(1)\r\n },\r\n passwordDisclaimer: {\r\n margin: 0,\r\n padding: \"8px 16px\"\r\n },\r\n listItemIcon: {\r\n marginRight: \"8px\",\r\n minWidth: \"unset\"\r\n },\r\n helpIcon: {\r\n marginLeft: \"8px\",\r\n padding: \"unset\"\r\n },\r\n requirementWrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport {\r\n Paper, TextField, Button, Container, Typography, CircularProgress, Box, ListItem, IconButton,\r\n Alert\r\n} from \"@mui/material\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useParams, useNavigate } from \"react-router-dom\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport axios from \"axios\"\r\n\r\nimport DoneIcon from \"@mui/icons-material/Done\"\r\nimport InvalidIcon from \"@mui/icons-material/NotInterested\"\r\nimport List from \"@mui/material/List\"\r\nimport ListItemIcon from \"@mui/material/ListItemIcon\"\r\nimport VisibilityIcon from \"@mui/icons-material/Visibility\"\r\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\"\r\nimport HelpOutlineIcon from \"@mui/icons-material/HelpOutline\"\r\nimport Tooltip from \"@mui/material/Tooltip\"\r\n\r\nconst ResetPassword = () => {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const { guid } = useParams()\r\n const [working, setWorking] = useState(false)\r\n const navigate = useNavigate()\r\n const lang = useLanguage()\r\n const [tokenValid, setTokenValid] = useState(false)\r\n const [checkingValidity, setCheckingValidity] = useState(false)\r\n\r\n const [firstPassword, setFirstPassword] = useState(\"\")\r\n const [secondPassword, setSecondPassword] = useState(\"\")\r\n\r\n const [firstPasswordHidden, setFirstPasswordHidden] = useState(true)\r\n const [secondPasswordHidden, setSecondPasswordHidden] = useState(true)\r\n\r\n const [passwordsMatch, setPasswordsMatch] = useState(firstPassword === secondPassword)\r\n const [passwordLengthValid, setPasswordLengthValid] = useState(false)\r\n const [passwordContainsUppercase, setPasswordContainsUppercase] = useState(false)\r\n const [passwordContainsLowercase, setPasswordContainsLowercase] = useState(false)\r\n const [passwordContainsDigit, setPasswordContainsDigit] = useState(false)\r\n const [passwordContainsSpecialCharacter, setPasswordContainsSpecialCharacter] = useState(false)\r\n\r\n const defaultValues = {\r\n firstPassword: null,\r\n secondPassword: null,\r\n guid: null\r\n }\r\n\r\n const {\r\n register, handleSubmit, setValue, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const passwordRequirements = [\r\n { text: Localization.passwordsMustMatch, valid: passwordsMatch },\r\n { text: Localization.containMinimumSixCharacters, valid: passwordLengthValid },\r\n { text: Localization.containUpperCaseCharacters, valid: passwordContainsUppercase },\r\n { text: Localization.containLowerCaseCharacters, valid: passwordContainsLowercase },\r\n { text: Localization.containANumber, valid: passwordContainsDigit },\r\n {\r\n text: Localization.containAFigure,\r\n valid: passwordContainsSpecialCharacter,\r\n explanation: `${Localization.examplesSpecialCharacters} !@#$%^&*?`\r\n }\r\n ]\r\n\r\n const formIsValid = () => (passwordsMatch\r\n && passwordLengthValid\r\n && passwordContainsUppercase\r\n && passwordContainsLowercase\r\n && passwordContainsDigit\r\n && passwordContainsSpecialCharacter)\r\n\r\n const onSubmit = data => {\r\n if (!formIsValid()) {\r\n return\r\n }\r\n\r\n (async () => {\r\n setWorking(true)\r\n let status = null\r\n\r\n try {\r\n const response = await axios.post(\"/api/Users/PasswordChangeRequest\", {\r\n token: data.guid,\r\n password: data.firstPassword\r\n })\r\n status = response.data.httpStatusCode // From internal api\r\n } catch (error) {\r\n status = error?.response?.status\r\n }\r\n\r\n setWorking(false)\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.yourPasswordHasBeenChanged, \"success\"))\r\n navigate(`/${lang}/signin`)\r\n break\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownError, \"error\"))\r\n break\r\n }\r\n })()\r\n }\r\n\r\n useEffect(() => {\r\n setValue(\"guid\", guid);\r\n\r\n (async () => {\r\n setCheckingValidity(true)\r\n\r\n try {\r\n const response = await axios.get(`/api/Users/CheckTokenValidity?token=${guid}`)\r\n setTokenValid(response.data)\r\n } catch (error) {\r\n setTokenValid(false)\r\n }\r\n\r\n setCheckingValidity(false)\r\n })()\r\n }, [])\r\n\r\n useEffect(() => {\r\n const passwordsEmpty = firstPassword.length === 0 && secondPassword.length === 0\r\n\r\n setPasswordsMatch(!passwordsEmpty && firstPassword === secondPassword)\r\n setPasswordLengthValid(firstPassword.length >= 6)\r\n setPasswordContainsUppercase(/\\p{Lu}/u.test(firstPassword))\r\n setPasswordContainsLowercase(/\\p{Ll}/u.test(firstPassword))\r\n setPasswordContainsDigit(/\\d/.test(firstPassword))\r\n setPasswordContainsSpecialCharacter(/[!@#$%^&*?]/.test(firstPassword))\r\n }, [firstPassword, secondPassword])\r\n\r\n return (\r\n
    \r\n \r\n \r\n {Localization.changePassword}\r\n <>\r\n {\r\n checkingValidity && \r\n }\r\n {\r\n (!tokenValid && !checkingValidity)\r\n && {Localization.tryResettingPasswordAgain}\r\n }\r\n \r\n
    \r\n setFirstPassword(event.target.value)}\r\n InputProps={{\r\n endAdornment: (\r\n setFirstPasswordHidden(!firstPasswordHidden)\r\n }\r\n >\r\n {firstPasswordHidden\r\n ? \r\n : }\r\n \r\n )\r\n }}\r\n {...register(\"firstPassword\", { required: true })}\r\n />\r\n setSecondPassword(event.target.value)}\r\n InputProps={{\r\n endAdornment: (\r\n setSecondPasswordHidden(!secondPasswordHidden)\r\n }\r\n >\r\n {secondPasswordHidden\r\n ? \r\n : }\r\n \r\n )\r\n }}\r\n {...register(\"secondPassword\", { required: true })}\r\n />\r\n \r\n {working ? : Localization.changePassword}\r\n \r\n \r\n
    \r\n \r\n \r\n

    \r\n {Localization.thePasswordMustAlsoComplyToTheFollowingRules}\r\n

    \r\n \r\n {passwordRequirements.map(requirement => (\r\n \r\n
    \r\n \r\n {requirement.valid ? : }\r\n \r\n {requirement.text}\r\n
    \r\n {requirement.explanation\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ResetPassword\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n minHeight: \"60vh\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport NoIndexMetaData from \"../MetaData/NoIndexMetadata\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst NotFound = () => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n\r\n return (\r\n
    \r\n \r\n {Localization.notFound}\r\n \r\n {Localization.thisPageWasNotFoundGoBackTo}\r\n \r\n {Localization.startPage}\r\n \r\n .\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default NotFound\r\n","import { mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n container: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3)\r\n },\r\n marginTop50: {\r\n marginTop: 50\r\n },\r\n textSkeleton: {\r\n marginTop: 50,\r\n marginBottom: 15,\r\n width: \"33%\"\r\n },\r\n rectSkeleton: {\r\n height: 500\r\n },\r\n newsGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"50% 50%\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n gridTemplateColumns: \"100%\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport usePage from \"../../../redux/hook/pageHook\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport PageHandler from \"../../PageHandler/PageHandler\"\r\nimport { useGetNewsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport NewsItem from \"../NewsItem\"\r\nimport {\r\n Typography, Container, Skeleton\r\n} from \"@mui/material\"\r\n\r\nimport React from \"react\"\r\n\r\nfunction NewsListPage() {\r\n const { limit } = usePage()\r\n const language = useLanguage()\r\n const { data, isFetching } = useGetNewsQuery({\r\n language,\r\n limit,\r\n groups: [\"device\"]\r\n })\r\n const newsArticles = data ?? []\r\n const classes = useStyles()\r\n let skeletonCount = limit - newsArticles.length\r\n if (skeletonCount < 1) skeletonCount = 1\r\n\r\n return (\r\n
    \r\n \r\n \r\n {Localization.newProductsForDevices.toUpperCase()}\r\n \r\n
    \r\n {\r\n newsArticles.map(news => (\r\n \r\n ))\r\n }\r\n {\r\n isFetching\r\n && [...Array(skeletonCount).keys()].map(i => (\r\n
    \r\n \r\n \r\n
    \r\n ))\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default NewsListPage\r\n","import { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n container: {\r\n padding: theme.spacing(3),\r\n minWidth: theme.spacing(80),\r\n backgroundColor: theme.palette.grey[200],\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n minWidth: \"80%\"\r\n }\r\n },\r\n buttonBox: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\"\r\n },\r\n buttonContainer: {\r\n display: \"flex\",\r\n alignItems: \"flex-end\"\r\n },\r\n maxWidth600: {\r\n maxWidth: 600\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { acceptCookies } from \"../../redux/gdprSlice\"\r\nimport useCookiesConsent from \"../../redux/hook/gdprHooks\"\r\nimport React from \"react\"\r\nimport {\r\n Snackbar,\r\n Link,\r\n Button,\r\n Typography,\r\n Paper,\r\n FormControlLabel,\r\n Checkbox,\r\n Box\r\n} from \"@mui/material\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst GDPRWarning = () => {\r\n const [hasReadTerms, setHasReadTerms] = React.useState(false)\r\n const dispatch = useDispatch()\r\n const hasAllowedCookies = useCookiesConsent()\r\n const classes = useStyles()\r\n\r\n const handleAccept = () => {\r\n dispatch(acceptCookies())\r\n }\r\n\r\n const handleCheckboxChanged = event => {\r\n setHasReadTerms(event.target.checked)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {Localization.thisSiteUsesCookies}\r\n {\" \"}\r\n \r\n {Localization.readMoreInThePrivacyPolicy}\r\n \r\n \r\n
    \r\n \r\n {Localization.asLoggedInUserYouCanWithdraw}\r\n \r\n
    \r\n \r\n \r\n )}\r\n label={Localization.IHaveReadAndAcceptTheTerms}\r\n />\r\n \r\n \r\n {Localization.iAccept}\r\n\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default GDPRWarning\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n page: {\r\n width: \"100%\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React, { useEffect } from \"react\"\r\n\r\nconst TITLE_PREFIX = \"Brodit | \"\r\n\r\nconst Page = ({ title, ...props }) => {\r\n const classes = useStyles()\r\n useEffect(() => {\r\n document.title = TITLE_PREFIX + title\r\n window.scrollTo(0, 0)\r\n }, [title])\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nexport default Page\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n paper: {\r\n padding: theme.spacing(2)\r\n },\r\n avatarImg: {\r\n width: \"100%\",\r\n height: \"auto\",\r\n objectFit: \"initial\"\r\n },\r\n clearAllListItem: {\r\n margin: 0\r\n },\r\n clearAllPrimary: {\r\n fontSize: \"0.8rem\"\r\n },\r\n clearAllSecondary: {\r\n fontSize: \"0.7rem\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport {\r\n useCompareCount, useCompareProducts, useIsCompareOverviewVisible, useIsOnComparePage\r\n} from \"../../redux/hook/compareHooks\"\r\nimport { useProduct } from \"../../redux/hook/productHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { removeFromCompare, setShowCompareOverview, removeAllFromCompare } from \"../../redux/compareProductsReducer\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport theme from \"../../theme\"\r\nimport React, { useEffect } from \"react\"\r\nimport {\r\n Popper, Fade, Paper, List,\r\n ListItemAvatar, Avatar, ListItemText,\r\n ListItem, Typography, IconButton, Grid, useMediaQuery, Box\r\n} from \"@mui/material\"\r\nimport CloseIcon from \"@mui/icons-material/Close\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport DeleteIcon from \"@mui/icons-material/Delete\"\r\nimport Minimize from \"@mui/icons-material/Minimize\"\r\nimport CompareIcon from \"@mui/icons-material/Compare\"\r\n\r\nconst CompareOverview = () => {\r\n const compareCount = useCompareCount()\r\n const compareProds = useCompareProducts()\r\n const classes = useStyles()\r\n const visible = useIsCompareOverviewVisible()\r\n const isOnComparePage = useIsOnComparePage()\r\n const language = useLanguage()\r\n const dispatch = useDispatch()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileBreakpoint))\r\n\r\n const onClearClick = () => {\r\n dispatch(removeAllFromCompare())\r\n }\r\n\r\n const hideCompare = () => {\r\n dispatch(setShowCompareOverview(false))\r\n }\r\n\r\n const showCompare = () => {\r\n dispatch(setShowCompareOverview(true))\r\n }\r\n\r\n useEffect(() => {\r\n // If number of compare prods change and if we have any\r\n // products to compare, unhide the popup.\r\n dispatch(setShowCompareOverview(compareCount > 0))\r\n }, [compareCount])\r\n\r\n return (\r\n visible\r\n ? (\r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.compareProducts}\r\n \r\n \r\n \r\n \r\n {Localization.toComparison}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {compareProds.map(prod => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n : (\r\n (isMobile && compareCount > 0) && (\r\n \r\n \r\n \r\n )\r\n )\r\n )\r\n}\r\n\r\nconst ProductEntryListItem = ({ id }) => {\r\n const prod = useProduct(id)\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n\r\n const onCloseClick = () => {\r\n dispatch(removeFromCompare(id))\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CompareOverview\r\n","import { useLoadPrices } from \"./priceHooks\"\r\nimport { sendGAEventProductSearch } from \"../../lib/helper/googleAnalyticsHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport {\r\n selectAll, selectAllModtekProducts, selectAllRelatedProducts, selectById\r\n} from \"../adapter/productAdapter\"\r\nimport { requestProduct, requestProducts, requestFilteredProducts } from \"../thunk/productThunk\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useEffect } from \"react\"\r\n\r\nconst useProduct = id => {\r\n const dispatch = useDispatch()\r\n const lang = useLanguage()\r\n\r\n useEffect(() => {\r\n const params = { id, lang }\r\n dispatch(requestProduct(params))\r\n }, [id, lang, dispatch])\r\n\r\n const product = useSelector(state => selectById(state, `${lang}-${id}`))\r\n useLoadPrices(\r\n product?.originalId\r\n ? [product.originalId]\r\n : []\r\n )\r\n\r\n return product\r\n}\r\n\r\nconst useProducts = (ids, key = null) => {\r\n const dispatch = useDispatch()//\r\n const lang = useLanguage()\r\n\r\n useEffect(() => {\r\n const params = { ids, lang, key }\r\n dispatch(requestProducts(params))\r\n }, [ids, lang, dispatch, key])\r\n\r\n let products;\r\n\r\n switch (key) {\r\n case \"modtek\":\r\n products = useSelector(state => selectAllModtekProducts(state) || [])\r\n break\r\n case \"related\":\r\n products = useSelector(state => selectAllRelatedProducts(state) || [])\r\n break\r\n default:\r\n products = useSelector(state => selectAll(state))\r\n }\r\n\r\n useLoadPrices(ids.map(item => item))\r\n\r\n return products\r\n}\r\n\r\n/**\r\n * Fetches and returns the products that matched the given filters.\r\n * @param {*} filters A search query object. (Refer to the backend model\r\n * for exact values. Accepts the structure specified in the searchReducer)\r\n * @param {*} pagination A pagination object containing offset and limit.\r\n * @returns The language specific products that matched the search query.\r\n */\r\nconst useFilteredProducts = (filters, pagination) => {\r\n const dispatch = useDispatch()\r\n const lang = useLanguage()\r\n\r\n useEffect(() => {\r\n const promise = dispatch(requestFilteredProducts({ filters, pagination, lang }))\r\n sendGAEventProductSearch()\r\n\r\n return () => {\r\n promise.abort()\r\n }\r\n }, [filters, pagination, lang, dispatch])\r\n\r\n const products = useSelector(\r\n state => (\r\n selectAll(state)\r\n .filter(\r\n product => state.product.lastProductFetch.includes(product.originalId)\r\n ).filter(\r\n product => product.id.startsWith(lang)\r\n )\r\n )\r\n )\r\n useLoadPrices(products.map(product => product.originalId))\r\n return products\r\n}\r\n\r\nconst useLastFetchedProductProperties = () => useSelector(\r\n state => state.product.lastFetchProperties\r\n)\r\n\r\nconst useProductsLoading = () => useSelector(state => state.product.loading)\r\n\r\nconst useLastFetchItemCount = () => useSelector(state => state.product.lastFetchItemCount)\r\n\r\nexport {\r\n useProduct,\r\n useProducts,\r\n useFilteredProducts,\r\n useLastFetchedProductProperties,\r\n useLastFetchItemCount,\r\n useProductsLoading\r\n}\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n root: {\r\n borderRadius: 0,\r\n backgroundColor: \"rgb(255,179,66)\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useGetOrderSystemMaintenanceQuery } from \"../../redux/services/broditWebApi\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { Alert } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst FlashMessage = () => {\r\n const classes = useStyles()\r\n const { data: isMaintenance } = useGetOrderSystemMaintenanceQuery()\r\n\r\n return (\r\n isMaintenance ? (\r\n \r\n {Localization.orderSystemMaintenance}\r\n \r\n ) : null\r\n )\r\n}\r\n\r\nexport default FlashMessage\r\n","import { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n content: {\r\n flexGrow: 1,\r\n // backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3)\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n }\r\n}));\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { mailRegex } from \"../../lib/helper/commonHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useRecaptchaSiteKey } from \"../../redux/hook/settingsHooks\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport DynamicContent from \"../DynamicContentPage/DynamicContent/DynamicContent\"\r\nimport {\r\n Box, Button, Container, FormControl, FormControlLabel, FormGroup, FormLabel, Radio, RadioGroup, TextField, Typography, useTheme\r\n} from \"@mui/material\"\r\nimport axios from \"axios\"\r\nimport React, { useEffect, useRef } from \"react\"\r\nimport ReCAPTCHA from \"react-google-recaptcha\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst NewsLetter = () => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const siteKey = useRecaptchaSiteKey()\r\n const recaptchaRef = useRef()\r\n const dispatch = useDispatch()\r\n const theme = useTheme()\r\n\r\n const defaultValues = {\r\n language: null,\r\n email: null,\r\n action: null,\r\n recaptcha: undefined\r\n }\r\n\r\n const {\r\n register, handleSubmit, setValue, clearErrors, setError, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n useEffect(() => {\r\n setValue(\"language\", language)\r\n }, [language])\r\n\r\n const resetRecaptch = () => {\r\n recaptchaRef.current.reset()\r\n setValue(\"recaptcha\", undefined)\r\n }\r\n\r\n const onSubmit = async data => {\r\n if (data.recaptcha === undefined) {\r\n setError(\"recaptcha\", {\r\n type: \"manual\",\r\n message: \"Recaptcha was not activated\"\r\n })\r\n return\r\n }\r\n\r\n let status\r\n try {\r\n const response = await axios.post(`/api/News/UpdateNewsLetterSubscription?token=${data.recaptcha}&action=${data.action}`, data)\r\n status = response.status\r\n } catch (exception) {\r\n status = exception?.response?.status\r\n }\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.yourSubscriptionHasBeenUpdated, \"success\"))\r\n break\r\n default:\r\n dispatch(setSnackbarMessage(Localization.somethingWentWrong, \"error\"))\r\n break\r\n }\r\n\r\n resetRecaptch()\r\n }\r\n\r\n const onExpired = () => {\r\n setValue(\"recaptcha\", undefined)\r\n }\r\n\r\n const onChangeRecaptcha = value => {\r\n if (value) {\r\n clearErrors(\"recaptcha\")\r\n }\r\n\r\n setValue(\"recaptcha\", value)\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {Localization.newsLetter}\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n } label={Localization.register} />\r\n } label={Localization.unregister} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {Localization.email}\r\n mailRegex.test(mail) })} inputProps={{ \"aria-label\": \"email\" }} error={Boolean(errors.email)} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {Boolean(errors.recaptcha) && {Localization.pleaseFillInThisCheckBox}}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default NewsLetter\r\n","/* eslint-disable no-restricted-syntax */\r\nexport const mailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\r\n\r\nexport const removeTrailingSlash = str => str.replace(/\\/+$/, \"\")\r\n\r\n/**\r\n * Moves the items containing the substring the top of the list.\r\n * @param {*} a The first string.\r\n * @param {*} b The second string.\r\n * @param {*} substringToTop The substring to search for.\r\n * @returns The new order represented as an integer.\r\n */\r\nexport const moveToTopComparer = (a, b, substringToTop, fullString) => {\r\n const partialString = JSON.stringify(fullString.split(\" \").splice(0, 3))\r\n const partialA = JSON.stringify(a.split(\" \").splice(0, 3))\r\n const partialB = JSON.stringify(b.split(\" \").splice(0, 3))\r\n\r\n if (fullString === a) {\r\n return [true, -1]\r\n }\r\n\r\n const aIncludesWord = a.includes(substringToTop) || partialString === partialA\r\n const bIncludesWord = b.includes(substringToTop) || partialString === partialB\r\n\r\n if (aIncludesWord && bIncludesWord) return [true, 0]\r\n if (aIncludesWord) {\r\n return [true, -1]\r\n } if (bIncludesWord) {\r\n return [true, 1]\r\n }\r\n return [false, 0]\r\n}\r\n\r\n/**\r\n * Forces all strings that contain the words in the list to the top.\r\n * Starts with the first item. Will only move to the next word if\r\n * the previous word is present in the string.\r\n * @param a The first string.\r\n * @param b The second string.\r\n * @param words The words (in order) to be pushed to the top.\r\n * @returns A list sorted where the item containing the most\r\n * words will be moved to the top.\r\n */\r\nexport const moveWordsToTopComparer = (a, b, words) => {\r\n const fullString = words.join(\" \").trimEnd()\r\n const results = words.map(word => moveToTopComparer(a, b, word, fullString))\r\n\r\n let resultingOrder = 0\r\n results.every(result => {\r\n const [foundWord, order] = result\r\n if (!foundWord) {\r\n resultingOrder = 0\r\n return false // Breaks the loop.\r\n }\r\n if (order !== 0) {\r\n resultingOrder = order\r\n return false // Breaks the loop.\r\n }\r\n\r\n return true // Continues the loop.\r\n })\r\n\r\n return resultingOrder\r\n}\r\n\r\nexport const isProductIdRegex = /([0-9]{6})/\r\n\r\nexport const removeKey = (obj, keyRoRemove) => {\r\n if (!obj.hasOwnProperty(keyRoRemove)) {\r\n console.warn(\"key doesn't exsist in obj\")\r\n return obj\r\n }\r\n const { [keyRoRemove]: _foo, ...objWithRestKeys } = obj\r\n return objWithRestKeys\r\n}\r\n\r\nexport const isObjectOnlyNull = obj => {\r\n for (const key of Object.keys(obj)) {\r\n if (obj[key] !== null) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction groupingBy(array, key) {\r\n return array.reduce((result, obj) => {\r\n (result[obj[key]] = result[obj[key]] || []).push(obj)\r\n return result\r\n }, {})\r\n}\r\n\r\nexport const groupBy = (arr, func) => groupingBy(arr, func)\r\n\r\nexport const findObjectById = (obj, targetId) => {\r\n // Base case: if the current object has the target ID, return the object\r\n if (obj.id === targetId) {\r\n return obj\r\n }\r\n\r\n // Check if the current object has collections\r\n if (obj.collections && obj.collections.length > 0) {\r\n // Iterate through collections and recursively search for the target ID\r\n for (const collection of obj.collections) {\r\n const foundObject = findObjectById(collection, targetId)\r\n // If the target ID is found, return the object\r\n if (foundObject) {\r\n return foundObject\r\n }\r\n }\r\n }\r\n\r\n // If the target ID is not found in the current object or its collections, return null\r\n return null\r\n}\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nconst POPOVER_WIDTH = 650\r\nexport default makeStyles(theme => ({\r\n root: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n paper: {\r\n width: POPOVER_WIDTH\r\n },\r\n spacing1: {\r\n paddingRight: theme.spacing(1),\r\n paddingTop: theme.spacing(1)\r\n },\r\n spacing2: {\r\n padding: theme.spacing(2)\r\n },\r\n flex: {\r\n display: \"flex\"\r\n },\r\n flexGrow1: {\r\n flexGrow: 1\r\n }\r\n}))\r\n","/* eslint-disable import/no-cycle */\r\nimport useStyles from \"./styles\"\r\nimport DynamicContent from \"../DynamicContentPage/DynamicContent/DynamicContent\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { closeWelcome } from \"../../redux/userSlice\"\r\nimport useWindowDimensions from \"../../redux/hook/windowHooks\"\r\nimport { useGetDynamicPageQuery } from \"../../redux/services/contentApi\"\r\nimport React, { useMemo } from \"react\"\r\nimport {\r\n Popover, Box, IconButton, Tooltip\r\n} from \"@mui/material\"\r\nimport CloseIcon from \"@mui/icons-material/Close\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst WelcomeSplash = () => {\r\n const dispach = useDispatch()\r\n const classes = useStyles()\r\n const handleClose = () => {\r\n dispach(closeWelcome())\r\n }\r\n\r\n const POPOVER_WIDTH = 650\r\n const windowDimensions = useWindowDimensions()\r\n const showWelcome = useSelector(state => state.user.welcomeSplashVisible)\r\n const { data } = useGetDynamicPageQuery({ id: \"welcome\" })\r\n // Om visible inte finns i datan så lyssnar vi bara på showWelcome, annars har data.visible prio\r\n const isVisible = useMemo(\r\n () => (\r\n data?.visible === undefined\r\n ? showWelcome\r\n : data.visible && showWelcome\r\n ),\r\n [data, showWelcome]\r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default WelcomeSplash\r\n","import { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst TabPanel = props => {\r\n const {\r\n children, value, index, ...other\r\n } = props\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default TabPanel\r\n","/* eslint-disable import/no-cycle */\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useFilteredProducts } from \"../../../../redux/hook/productHooks\"\r\nimport { useGetRelatedProductsQuery } from \"../../../../redux/services/broditWebApi\"\r\nimport Products from \"../../Products\"\r\nimport useStyles from \"../styles\"\r\nimport React, { useMemo } from \"react\"\r\nimport {\r\n Box, Typography\r\n} from \"@mui/material\"\r\n\r\nfunction RelatedProducts({\r\n id, modTek = {}, modTekInformation, modTekId\r\n}) {\r\n const { data, isFetching } = useGetRelatedProductsQuery(id)\r\n const classes = useStyles()\r\n const filter = useMemo(() => ({ productIds: data }), [data])\r\n const products = useFilteredProducts(filter)\r\n const hasProducts = products && products.length > 0\r\n const hasModTek = modTek && Object.keys(modTek).length > 0\r\n\r\n return (\r\n <>\r\n {\r\n (isFetching)\r\n && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )\r\n }\r\n {\r\n ((!isFetching) && (hasProducts || hasModTek))\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n (!isFetching) && (!hasProducts && !hasModTek)\r\n && {Localization.noAccessories}\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default RelatedProducts\r\n","import useStyles from \"../../styles\"\r\nimport { Box, Skeleton } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst MobileLoading = () => {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileLoading\r\n","import useStyles from \"../../styles\"\r\nimport {\r\n AppBar, Box, Tabs, Skeleton\r\n} from \"@mui/material\"\r\n\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\n\r\nconst DesktopLoading = () => {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default DesktopLoading\r\n","import MobileLoading from \"./loadingComponents/MobileLoading\"\r\nimport DesktopLoading from \"./loadingComponents/DesktopLoading\"\r\nimport { productViewBreakpoint } from \"../../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../../theme\"\r\nimport { useMediaQuery } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst LoadingView = () => {\r\n const isSmall = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n return (\r\n isSmall ? : \r\n )\r\n}\r\n\r\nexport default LoadingView\r\n","import { tabletBreakpoint } from \"../../../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n width: \"100%\",\r\n marginBottom: theme.spacing(5),\r\n boxShadow: \"none\",\r\n \"&:hover > *\": {\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n mediaContainer: {\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(4),\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n textBody: {\r\n lineHeight: \"1.8\"\r\n },\r\n image: {\r\n height: 200,\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n height: \"auto\",\r\n maxWidth: \"100%\"\r\n }\r\n }\r\n}))\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\";\r\nimport { selectById } from \"../adapter/materialAdapter\";\r\nimport { requestMaterial } from \"../thunk/materialThunk\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst useMaterial = id => {\r\n const dispatch = useDispatch();\r\n const lang = useLanguage();\r\n\r\n useEffect(() => {\r\n const params = { id, lang };\r\n dispatch(requestMaterial(params));\r\n }, [lang, id, dispatch]);\r\n\r\n return useSelector(state => selectById(state, `${lang}-${id}`));\r\n}\r\n\r\nexport default useMaterial\r\n","import DesktopProductInfo from \"./DesktopProductInfo\"\r\nimport LoadingView from \"./LoadingView\"\r\nimport MobileProductInfo from \"./MobileProductInfo\"\r\nimport NotFoundView from \"./NotFoundView\"\r\nimport Text from \"./Text\"\r\nimport { tabletBreakpoint } from \"../../../../lib/helper/viewportHelper\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useProduct, useProductsLoading } from \"../../../../redux/hook/productHooks\"\r\nimport { useIsUserAuthorized } from \"../../../../redux/hook/userHooks\"\r\nimport theme from \"../../../../theme\"\r\nimport useStyles from \"../styles\"\r\nimport CompatibilityInfo from \"../view/CompabilityInfo\"\r\nimport Instructions from \"../view/Instructions\"\r\nimport Materials from \"../view/Materials\"\r\nimport RelatedFiles from \"../view/RelatedFiles\"\r\nimport RelatedProducts from \"../view/RelatedProducts\"\r\nimport RelatedVideos from \"../view/RelatedVideos\"\r\nimport Specification from \"../view/Specification\"\r\nimport {\r\n useGetAltNameForProductsQuery,\r\n useGetFilesByIdQuery,\r\n useGetModTekProductsQuery,\r\n useGetRelatedProductsQuery,\r\n useGetRelatedVideosQuery,\r\n useGetTechnicalInformationForProductQuery\r\n} from \"../../../../redux/services/broditWebApi\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { Box, useMediaQuery } from \"@mui/material\"\r\n\r\nconst ProductInfo = () => {\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n const classes = useStyles()\r\n const { id } = useParams()\r\n const product = useProduct(id)\r\n const [value, setValue] = useState(0)\r\n const loading = useProductsLoading()\r\n const isAuthorized = useIsUserAuthorized()\r\n const language = useLanguage()\r\n\r\n const { data: relatedProducts } = useGetRelatedProductsQuery(id)\r\n const { data: modTek } = useGetModTekProductsQuery(id)\r\n const { data: files } = useGetFilesByIdQuery(id)\r\n const { data: videos } = useGetRelatedVideosQuery(id)\r\n const { data: technicalInformation } = useGetTechnicalInformationForProductQuery(id)\r\n const { data: altNameList } = useGetAltNameForProductsQuery(id)\r\n\r\n const modTekInformation = modTek?.information\r\n\r\n const handleChange = (e, newValue) => {\r\n setValue(newValue)\r\n }\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [])\r\n\r\n useEffect(() => {\r\n // Reset page\r\n setValue(0)\r\n window.scrollTo(0, 0)\r\n }, [id])\r\n\r\n const tabList = [\r\n {\r\n title: Localization.tabInformation,\r\n component: (\r\n \r\n ti.languageShort === language)\r\n ?.htmlText\r\n : product?.techincalInformation\r\n }\r\n technicalInformation\r\n />\r\n \r\n \r\n ),\r\n visible: technicalInformation?.length > 0\r\n },\r\n {\r\n title: Localization.tabRelatedProducts,\r\n component: ,\r\n visible: relatedProducts?.length > 0\r\n },\r\n {\r\n title: Localization.tabSpecification,\r\n component: ,\r\n visible: true\r\n },\r\n {\r\n title: Localization.tabCompability,\r\n component: ,\r\n visible: product?.compatibleModels?.length > 0\r\n },\r\n {\r\n title: Localization.tabInstructions,\r\n component: ,\r\n visible: product?.images?.length > 0 && product?.instruction?.length > 0\r\n },\r\n {\r\n title: Localization.tabRelatedFiles,\r\n component: ,\r\n visible: files?.length > 0\r\n },\r\n {\r\n title: Localization.video,\r\n component: ,\r\n visible: videos?.length > 0\r\n }\r\n ].filter(tab => tab.visible)\r\n\r\n const handleShowMoreCompsClick = e => {\r\n e.preventDefault()\r\n setValue(tabList.findIndex(tab => tab.title === Localization.tabCompability))\r\n }\r\n\r\n return (\r\n
    \r\n {!product && loading && }\r\n {!product && !loading && }\r\n {\r\n product\r\n && (\r\n isSmall\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n )\r\n }\r\n
    \r\n )\r\n}\r\n\r\nexport default ProductInfo\r\n","import Menu2 from \"./Menu2\"\r\nimport useStyles from \"./styles\"\r\nimport { setSearchQuery } from \"../../redux/searchReducer\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nfunction Menu2Drawer({ toggleDrawer, open, onClose }) {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n\r\n const onItemClick = id => {\r\n dispatch(setSearchQuery({\r\n type: \"menu2Drawer\",\r\n value: { collections: [id] },\r\n clearFilter: true\r\n }))\r\n toggleDrawer()\r\n }\r\n\r\n const openClass = open ? classes.open : \"\"\r\n\r\n return (\r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default Menu2Drawer\r\n","import { makeStyles } from \"@mui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n rotated: {\r\n transform: \"rotate(180deg)\"\r\n },\r\n iconButton: {\r\n padding: 4,\r\n color: \"#2d2d2d\"\r\n },\r\n paper: {\r\n width: 400,\r\n backgroundColor: theme.palette.background.paper,\r\n border: \"2px solid #000\",\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(3, 4, 3, 3)\r\n }\r\n}));\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { mailRegex } from \"../../lib/helper/commonHelper\"\r\nimport { useRecaptchaSiteKey } from \"../../redux/hook/settingsHooks\"\r\nimport React, { useEffect, useRef, useState } from \"react\"\r\nimport {\r\n Tooltip, IconButton, Modal, Box, Typography, TextField, Button, CircularProgress\r\n} from \"@mui/material\"\r\nimport ShareIcon from \"@mui/icons-material/Share\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport ReCAPTCHA from \"react-google-recaptcha\"\r\nimport axios from \"axios\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport CloseIcon from \"@mui/icons-material/Close\"\r\n\r\nconst defaultVales = {\r\n recaptcha: undefined\r\n}\r\n\r\nconst ShareButton = ({ productId }) => {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const [modalOpen, setModalOpen] = useState(false)\r\n const recaptchaRef = useRef()\r\n const [loading, setLoading] = useState(false)\r\n const lang = useLanguage()\r\n const recaptchaSiteKey = useRecaptchaSiteKey()\r\n\r\n const {\r\n register, setValue, watch, handleSubmit, formState: { errors }\r\n } = useForm({ defaultValues: defaultVales }) /* recapthca ska in */\r\n\r\n const handleShareButtonClick = () => {\r\n setModalOpen(true)\r\n }\r\n\r\n const handleModalClose = () => {\r\n setModalOpen(false)\r\n }\r\n\r\n const onChangeRecaptcha = value => {\r\n setValue(\"recaptcha\", value)\r\n }\r\n\r\n const onExpired = () => {\r\n setValue(\"recaptcha\", undefined)\r\n }\r\n\r\n useEffect(() => {\r\n // when component is loaded, those can essentially be set\r\n setValue(\"productId\", productId)\r\n setValue(\"language\", lang)\r\n }, [productId, lang])\r\n\r\n const onSubmit = async data => {\r\n setLoading(true)\r\n\r\n let status\r\n try {\r\n const response = await axios.post(\r\n `/api/Users/ShareProduct?token=${data.recaptcha}`,\r\n data\r\n )\r\n status = response.status\r\n } catch (error) {\r\n status = error?.response?.status\r\n }\r\n\r\n setLoading(false)\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.youHaveSharedTheProduct, \"success\"))\r\n break\r\n case 400:\r\n dispatch(setSnackbarMessage(Localization.somethingWentWrongWhenSharingProduct, \"warning\"))\r\n break\r\n case 401:\r\n dispatch(setSnackbarMessage(Localization.recaptchaError, \"warning\"))\r\n break\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownError, \"error\"))\r\n }\r\n\r\n setTimeout(() => {\r\n if (recaptchaRef.current) recaptchaRef.current.reset()\r\n setValue(\"recaptcha\", undefined)\r\n setModalOpen(false)\r\n }, 500)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.shareThis}\r\n \r\n \r\n setModalOpen(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n mailRegex.test(value) })}\r\n variant=\"standard\"\r\n label={Localization.yourEmail}\r\n error={Boolean(errors.yourEmail)}\r\n />\r\n mailRegex.test(value) })}\r\n variant=\"standard\"\r\n label={Localization.receiversEmail}\r\n error={Boolean(errors.toEmail)}\r\n style={{ height: 50 }}\r\n />\r\n \r\n \r\n \r\n {loading ? : Localization.share}\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ShareButton\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport {\r\n Box, TextField, Autocomplete\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst DealerSearchFilter = props => {\r\n const language = useLanguage()\r\n const {\r\n data, countryDealers,\r\n filter, onChangeCountryDealers,\r\n onChangeDealerLocations\r\n } = props\r\n const dealerLocations = Array.from(new Set(data.map(dealer => dealer.place))).filter(dealerplace => dealerplace !== \"\").sort()\r\n const dealerCountries = countryDealers.map(x => x.Country)\r\n\r\n return (\r\n language === \"en\"\r\n ? (\r\n }\r\n onChange={onChangeCountryDealers}\r\n value={filter.country}\r\n />\r\n )\r\n : (\r\n \r\n }\r\n onChange={onChangeDealerLocations}\r\n value={filter.place}\r\n />\r\n \r\n )\r\n )\r\n}\r\n\r\nexport default DealerSearchFilter\r\n","import { desktopBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n resultGrid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"flex-start\",\r\n marginTop: 30,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n },\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n justifyContent: \"center\",\r\n flexDirection: \"column\"\r\n }\r\n },\r\n marginTop40: {\r\n marginTop: 40\r\n },\r\n dealerSearchFilterWrapper: {\r\n padding: \"20px\",\r\n marginTop: 20,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n justifyContent: \"flex-start\",\r\n padding: \"0px\"\r\n }\r\n },\r\n padding5: {\r\n padding: 5\r\n },\r\n resultCard: {\r\n width: \"345px\",\r\n padding: \"16px\"\r\n },\r\n blackH2: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"20px\",\r\n lineHeight: \"26.8px\"\r\n }\r\n },\r\n bold: {\r\n fontWeight: \"bold\"\r\n },\r\n underline: {\r\n width: \"fit-content\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n borderBottom: \"2px solid #F09057\"\r\n }\r\n }\r\n}))\r\n","import DealerSearchFilter from \"./DealerSearchFilter\"\r\nimport useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport CustomSolutions from \"../../assets/customizedSolutions.png\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport {\r\n Box, Card, CardContent, Checkbox, Link, Typography,\r\n useMediaQuery\r\n} from \"@mui/material\"\r\nimport React, { useState, useEffect } from \"react\"\r\nimport classnames from \"classnames\"\r\n\r\nconst SearchDealer = ({ ...props }) => {\r\n const language = useLanguage()\r\n const [data, setData] = useState([])\r\n const [dealersByCountries, setDealersByCountries] = useState([])\r\n const classes = useStyles()\r\n const isDesktop = useMediaQuery(theme => theme.breakpoints.up(desktopBreakpoint))\r\n\r\n const [filter, setFilter] = useState({\r\n place: null,\r\n webshop: null,\r\n country: null\r\n })\r\n\r\n const fetchDealerData = async () => {\r\n const response = await fetch(\"/files/DynamicPages/Resellers.json\")\r\n return response.json()\r\n }\r\n\r\n const fetchDealerByCountry = async () => {\r\n const response = await fetch(\"/files/DynamicPages/DealersByCountry.json\")\r\n return response.json()\r\n }\r\n\r\n useEffect(() => {\r\n setData([])\r\n setDealersByCountries([])\r\n setFilter({\r\n place: null,\r\n webshop: null,\r\n country: null\r\n })\r\n\r\n fetchDealerData().then(result => {\r\n result.sort((a, b) => a - b)\r\n setData(result.filter(x => x.customerNr !== \"\"))\r\n })\r\n\r\n fetchDealerByCountry().then(result => {\r\n result.sort((a, b) => a - b)\r\n setDealersByCountries(result)\r\n })\r\n }, [language])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {Localization.findLocalRetailer}\r\n \r\n \r\n {\r\n setFilter({ place: null, webshop: null, country: value })\r\n }\r\n }\r\n onChangeDealerLocations={\r\n (event, value) => {\r\n setFilter({ place: value, webshop: null, country: null })\r\n }\r\n }\r\n />\r\n \r\n \r\n {language === \"sv\" && !isDesktop && (\r\n \r\n {Localization.onlyOnlineShops}\r\n {\r\n setFilter({ place: null, webshop: value, country: null })\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n {\r\n data && filter.webshop !== true\r\n ? data.filter(company => (\r\n filter.place !== undefined && company.place === filter.place)\r\n || (filter.webshop !== undefined && company.webShop === filter.webshop))\r\n .map(company => {\r\n const address = company.visitAddress\r\n ? company.visitAddress\r\n : company.postalAddress\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n company.commonName !== \"\"\r\n ? company.commonName\r\n : company.organization\r\n }\r\n \r\n {address && (\r\n \r\n {address}\r\n ,\r\n {\" \"}\r\n {company.zip}\r\n \r\n )}\r\n \r\n {company.phone}\r\n \r\n \r\n \r\n {company.website}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }) : null\r\n }\r\n \r\n {\r\n filter.country ? dealersByCountries.filter(\r\n x => x.Country === filter.country\r\n ).map(company => (\r\n \r\n \r\n \r\n {company.Company}\r\n {company.Country}\r\n \r\n {company.Phone}\r\n \r\n \r\n {company.Webpage}\r\n \r\n \r\n \r\n \r\n )) : null\r\n }\r\n {isDesktop && language === \"sv\" && {Localization.shopOnline}}\r\n \r\n {(((data && filter.webshop === true) || isDesktop) && language === \"sv\")\r\n ? data.filter(company => (company.webShop !== \"\"))\r\n .map(company => {\r\n const address = company.visitAddress\r\n ? company.visitAddress\r\n : company.postalAddress\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n company.commonName !== \"\"\r\n ? company.commonName\r\n : company.organization\r\n }\r\n \r\n {address && (\r\n \r\n {address}\r\n ,\r\n {\" \"}\r\n {company.zip}\r\n \r\n )}\r\n \r\n {company.phone}\r\n \r\n \r\n \r\n {company.website}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }) : null}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SearchDealer\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nconst underlineColor = \"#7c7c7c\"\r\n\r\nexport default makeStyles(() => ({\r\n input: {\r\n textTransform: \"uppercase\",\r\n \"& .MuiInputBase-root\": {\r\n maxHeight: \"16px!important\"\r\n },\r\n \"& .MuiAutocomplete-clearIndicator\": {\r\n display: \"none\"\r\n }\r\n },\r\n textField: {\r\n \"& .MuiInputBase-root\": {\r\n maxHeight: \"16px!important\"\r\n },\r\n \"& input::placeholder\": {\r\n fontSize: \"15px\"\r\n },\r\n // input label when focused\r\n \"& label.Mui-focused\": {\r\n color: underlineColor\r\n },\r\n // focused color for input with variant='standard'\r\n \"& .MuiInput-underline:after\": {\r\n borderBottomColor: underlineColor\r\n },\r\n // focused color for input with variant='filled'\r\n \"& .MuiFilledInput-underline:after\": {\r\n borderBottomColor: underlineColor\r\n },\r\n // focused color for input with variant='outlined'\r\n \"& .MuiOutlinedInput-root\": {\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: underlineColor\r\n }\r\n },\r\n \"& .MuiInput-root\": {\r\n paddingBottom: \"5px!important\"\r\n },\r\n \"& .MuiAutocomplete-popupIndicator\": {\r\n marginRight: \"-5px!important\"\r\n },\r\n \"& .MuiAutocomplete-inputRoot\": {\r\n flexWrap: \"nowrap\",\r\n paddingRight: \"0px!important\",\r\n color: \"#2D2D2D!important\",\r\n leadingTrim: \"both!important\",\r\n textEdge: \"cap!important\",\r\n fontFamily: \"Arial!important\",\r\n fontSize: \"15px!important\",\r\n fontStyle: \"normal!important\",\r\n fontWeight: \"400!important\",\r\n lineHeight: \"20px!important\", /* 133.333% */\r\n letterSpacing: \"0.25px!important\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport React from \"react\"\r\nimport { TextField } from \"@mui/material\"\r\nimport classNames from \"classnames\"\r\n\r\nconst CustomTextField = ({ useDefaultStyle, className, ...props }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default CustomTextField\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\nfunction SignInMetaDescription() {\r\n const language = useLanguage()\r\n\r\n const title = language === \"sv\"\r\n ? \"Logga in\"\r\n : \"Sign in\"\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SignInMetaDescription\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\nfunction ProclipMetaDescription() {\r\n const language = useLanguage()\r\n\r\n const title = language === \"sv\"\r\n ? \"ProClip nyheter\"\r\n : \"ProClip news\"\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProclipMetaDescription\r\n","import { isSearchQueryEmpty } from \"../../lib/helper/searchHelper\"\r\nimport React, { useMemo } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\n/**\r\n * Combines all or the specified search queries into a single search query object.\r\n * @param {...string} searchQueryTypes The name of the search queries from\r\n * state.search.searchQueries you want to combine into a single search query.\r\n * Note: Combines all available queries if left empty.\r\n * @returns A search query object.\r\n *\r\n * @example\r\n * // Set the search queries.\r\n * dispatch(setSearchQuery({ type: \"mySearchQuery\", value: { toys: [\"Airplane\", \"Firetruck\"] } }))\r\n * dispatch(setSearchQuery({ type: \"mySecondSearchQuery\", value: { toys: [\"Racecar\"] } }))\r\n *\r\n * // Provide a type to only fetch the value of the specified type.\r\n * useSearchQuery(\"mySearchQuery\")\r\n * // #=> { toys:['Airplane', 'Firetruck'] }\r\n *\r\n * // Provide multiple types to get a combined value of the types specified.\r\n * useSearchQuery(\"mySearchQuery\", \"mySecondSearchQuery\")\r\n * // #=> { toys:['Airplane', 'Firetruck', 'Racecar'] }\r\n *\r\n * // Providing no type will combine all available types into a single value.\r\n * useSearchQuery()\r\n * // #=> { toys:['Airplane', 'Firetruck', 'Racecar'] }\r\n *\r\n */\r\nexport const useSearchQuery = (...searchQueryTypes) => {\r\n const searchQueries = useSelector(state => state.search.searchQueries)\r\n\r\n let selectedSearchQueries\r\n let dependencies\r\n if (searchQueryTypes.length > 0) {\r\n selectedSearchQueries = searchQueryTypes.reduce(\r\n (result, type) => [...result, searchQueries[type]],\r\n []\r\n )\r\n dependencies = selectedSearchQueries\r\n selectedSearchQueries = selectedSearchQueries.filter(value => Boolean(value))\r\n } else {\r\n selectedSearchQueries = Object.values(searchQueries)\r\n dependencies = [searchQueries]\r\n }\r\n\r\n const memorizedSearchQuery = React.useMemo(\r\n () => {\r\n if (selectedSearchQueries.length === 1) {\r\n return { ...selectedSearchQueries[0] }\r\n }\r\n\r\n // Combines a list of objects into a single object, where each\r\n // key in each object contains an array.\r\n //\r\n // -- Example input --\r\n // selectedSearchQueries: [\r\n // { brands: [\"a\"], models: [\"x\"] },\r\n // { brands: [\"b\"] },\r\n // ]\r\n // result => { brands: [\"a\", \"b\"], models: [\"x\"] }\r\n const searchQuery = selectedSearchQueries.reduce(\r\n (previousValue, currentValue) => {\r\n const result = { ...previousValue, ...currentValue }\r\n\r\n Object.keys(result).forEach(key => {\r\n result[key] = [\r\n ...previousValue?.[key] ?? [],\r\n ...currentValue?.[key] ?? []\r\n ]\r\n })\r\n\r\n return result\r\n },\r\n {}\r\n )\r\n\r\n Object.keys(searchQuery).forEach(key => {\r\n // Converting to and from a Set removes the duplicates.\r\n searchQuery[key] = [...new Set(searchQuery[key])]\r\n })\r\n\r\n return searchQuery\r\n },\r\n\r\n // Both the warnings about missing dependencies here are indirectly\r\n // included in the dependencies array. If \"searchQueryTypes\" or\r\n // \"selectedSearchQueries\" change, so will \"dependencies\" since\r\n // it is constructed from these two variables.\r\n dependencies\r\n )\r\n\r\n return memorizedSearchQuery\r\n}\r\n\r\nexport const useSearchQuery2 = (...searchQueryTypes) => {\r\n const searchQueries = useSelector(state => state.search2.searchQueries)\r\n\r\n let selectedSearchQueries\r\n let dependencies\r\n if (searchQueryTypes.length > 0) {\r\n selectedSearchQueries = searchQueryTypes.reduce(\r\n (result, type) => [...result, searchQueries[type]],\r\n []\r\n )\r\n dependencies = selectedSearchQueries\r\n selectedSearchQueries = selectedSearchQueries.filter(value => Boolean(value))\r\n } else {\r\n selectedSearchQueries = Object.values(searchQueries)\r\n dependencies = [searchQueries]\r\n }\r\n\r\n const memorizedSearchQuery = React.useMemo(\r\n () => {\r\n if (selectedSearchQueries.length === 1) {\r\n return { ...selectedSearchQueries[0] }\r\n }\r\n\r\n // Combines a list of objects into a single object, where each\r\n // key in each object contains an array.\r\n //\r\n // -- Example input --\r\n // selectedSearchQueries: [\r\n // { brands: [\"a\"], models: [\"x\"] },\r\n // { brands: [\"b\"] },\r\n // ]\r\n // result => { brands: [\"a\", \"b\"], models: [\"x\"] }\r\n const searchQuery = selectedSearchQueries.reduce(\r\n (previousValue, currentValue) => {\r\n const result = { ...previousValue, ...currentValue }\r\n\r\n Object.keys(result).forEach(key => {\r\n result[key] = [\r\n ...previousValue?.[key] ?? [],\r\n ...currentValue?.[key] ?? []\r\n ]\r\n })\r\n\r\n return result\r\n },\r\n {}\r\n )\r\n\r\n Object.keys(searchQuery).forEach(key => {\r\n // Converting to and from a Set removes the duplicates.\r\n searchQuery[key] = [...new Set(searchQuery[key])]\r\n })\r\n\r\n return searchQuery\r\n },\r\n\r\n // Both the warnings about missing dependencies here are indirectly\r\n // included in the dependencies array. If \"searchQueryTypes\" or\r\n // \"selectedSearchQueries\" change, so will \"dependencies\" since\r\n // it is constructed from these two variables.\r\n dependencies\r\n )\r\n\r\n return memorizedSearchQuery\r\n}\r\n\r\n/**\r\n * Evaluates if a searchQuery object is empty.\r\n * @param {*} searchQueryObject A search query object.\r\n * @returns Returns true if the search query object does not contain any values.\r\n */\r\nexport const useIsSearchQueryEmpty = searchQueryObject => useMemo(\r\n () => isSearchQueryEmpty(searchQueryObject),\r\n [searchQueryObject]\r\n)\r\n","/* eslint-disable no-nested-ternary */\r\n// Fyll på med alla saker från adaptern..\r\n\r\nimport { createEntityAdapter } from \"@reduxjs/toolkit\"\r\n\r\nexport const productAdapter = createEntityAdapter({\r\n selectId: product => product.id,\r\n sortComparer: (a, b) => (a.sortOrder > b.sortOrder ? 1 : ((b.sortOrder > a.sortOrder) ? -1 : 0))\r\n})\r\n\r\nexport const modtekProductSelectors = productAdapter.getSelectors(\r\n state => state.product.modtekProducts\r\n)\r\n\r\nexport const relatedProductSelectors = productAdapter.getSelectors(\r\n state => state.product.relatedProducts\r\n)\r\n\r\nexport const { selectAll: selectAllModtekProducts, selectById: selectModtekProductById } = modtekProductSelectors;\r\n\r\nexport const { selectAll: selectAllRelatedProducts, selectById: selectRelatedProductById } = relatedProductSelectors;\r\n\r\nexport const productSelectors = productAdapter.getSelectors(state => state.product)\r\n\r\nexport const { selectById, selectAll } = productSelectors\r\n","import { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nconst tabHeight = 40\r\n\r\nexport default makeStyles(theme => ({\r\n tabRoot: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.paper,\r\n marginTop: \"25px\"\r\n },\r\n tabs: {\r\n backgroundColor: \"#fff\",\r\n color: \"rgba(0, 0, 0, 0.70)\",\r\n borderBottom: \"1px solid #d1d1d1\",\r\n minHeight: tabHeight,\r\n height: tabHeight,\r\n \"& .Mui-selected\": {\r\n color: \"rgba(0, 0, 0, 1)\",\r\n backgroundColor: \"#f0f0f0\"\r\n }\r\n },\r\n mobileTabs: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: \"#fff\",\r\n color: \"rgba(0, 0, 0, 0.70)\",\r\n height: \"100%\",\r\n overflow: \"visible\",\r\n width: \"100%\"\r\n },\r\n tab: {\r\n textTransform: \"none\",\r\n minHeight: tabHeight,\r\n height: tabHeight\r\n },\r\n firstTab: {\r\n textTransform: \"none\",\r\n minHeight: tabHeight,\r\n height: tabHeight\r\n },\r\n column: {\r\n width: 580,\r\n display: \"block\",\r\n float: \"left\",\r\n paddingLeft: \"25px\",\r\n color: \"#666\",\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n width: \"auto\",\r\n paddingLeft: \"0px\",\r\n float: \"none\"\r\n }\r\n },\r\n grayText: {\r\n color: \"#2d2d2d\"\r\n },\r\n appBar: {\r\n boxShadow: \"none\"\r\n },\r\n content: {\r\n flex: \"0 1 1920px\",\r\n paddingTop: theme.spacing(3),\r\n paddingBottom: theme.spacing(3)\r\n },\r\n mobileContent: {\r\n flexGrow: 1,\r\n padding: 0\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n sideBoard: {\r\n width: 200,\r\n backgroundColor: \"#f3f3f3\"\r\n },\r\n contentSkeleton: {\r\n width: 580,\r\n display: \"block\",\r\n float: \"left\",\r\n paddingLeft: \"25px\",\r\n height: 580,\r\n margin: 50\r\n },\r\n link: {\r\n textDecoration: \"none\",\r\n color: \"#666\",\r\n \"&:hover\": {\r\n textDecoration: \"underline\"\r\n },\r\n \"&:visited\": {\r\n color: \"#666\"\r\n }\r\n },\r\n productMain: {\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"flex-start\",\r\n flexDirection: \"row\",\r\n width: \"100%\"\r\n },\r\n mobileProductMain: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n },\r\n mobileProductCard: {\r\n backgroundColor: \"#f0f0f0\"\r\n },\r\n panelBox: {\r\n minHeight: \"400px\",\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n minHeight: \"auto\"\r\n }\r\n },\r\n halfWidth: {\r\n width: \"50%\"\r\n },\r\n flexHalf: {\r\n flex: \"0 1 50%\"\r\n },\r\n justifyCenter: {\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n bigLoading: {\r\n width: 400,\r\n height: 450\r\n },\r\n smallLoading: {\r\n width: 160,\r\n height: 40\r\n },\r\n instructionRoot: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"100%\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n instructionHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n fontWeight: theme.typography.fontWeightRegular\r\n },\r\n instructionImageList: {\r\n width: \"min-content\"\r\n },\r\n tableRoot: {\r\n marginBottom: theme.spacing(4),\r\n maxWidth: 580,\r\n marginLeft: theme.spacing(4),\r\n \"& tr\": {\r\n borderTop: \"1px solid rgba(224, 224, 224, 1)\",\r\n \"& > td\": {\r\n width: \"50%\"\r\n }\r\n },\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n marginLeft: \"0px\"\r\n }\r\n },\r\n gray: {\r\n color: \"rgba(0, 0, 0, 0.54)\"\r\n },\r\n compatibilityList: {\r\n padding: 0,\r\n paddingLeft: \"1em\",\r\n margin: 0\r\n },\r\n compatibilityItem: {\r\n marginBottom: theme.spacing(0.5)\r\n },\r\n documentLink: {\r\n color: \"#666\",\r\n textDecoration: \"none\",\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n textDecoration: \"underline\",\r\n color: \"#666\"\r\n }\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n relatedVideos: {\r\n flex: \"0 0 100%\"\r\n },\r\n productInfoWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n }\r\n}))\r\n","import { filterFaultyValues } from \"../lib/helper/searchHelper\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst searchSlice = createSlice({\r\n name: \"search\",\r\n reducers: {\r\n /**\r\n * Creates a new search query entry with the name of \"type\" containing\r\n * the value of \"value\".\r\n * @param {*} state The current state (using \"Immer\").\r\n * @param {object} payload An object containing two keys { type, value }.\r\n * payload.type {string} The name of the entry to create/override.\r\n * payload.value {object} The value of the search query entry.\r\n * Note: The payload.value object must follow the standard, that for each\r\n * key the value must be represented as an array, for example:\r\n * { customKeyword: [\"value1\", \"value2\", ...], anotherCustomKeyword: [\"another value\"], thirdCustomKeyword: [], ...}\r\n * Keys with faulty values, for example empty arrays and falsy values\r\n * will not be added.\r\n */\r\n setSearchQuery: (state, { payload }) => {\r\n const { type, value, clearFilter } = payload\r\n if (clearFilter) state.searchQueries = {}\r\n state.searchQueries[type] = filterFaultyValues(value)\r\n },\r\n\r\n /**\r\n * Overrides a part of a search query entry with the name of \"type\" and\r\n * spreads in the value of \"value\".\r\n * @param {*} state The current state (using \"Immer\").\r\n * @param {object} payload An object containing two keys { type, value }.\r\n * payload.type {string} The name of the entry to create/update.\r\n * payload.value {object} The value you want to spread into the\r\n * search querys existing value.\r\n * Note: The payload.value object must follow the standard, that for each\r\n * key the value must be represented as an array, for example:\r\n * { customKeyword: [\"value1\", \"value2\", ...], anotherCustomKeyword: [\"another value\"], thirdCustomKeyword: [], ...}\r\n * Keys with faulty values, for example empty arrays and falsy values\r\n * will not be added.\r\n */\r\n updateSearchQuery: (state, { payload }) => {\r\n const { type, value } = payload\r\n\r\n const newValue = {\r\n ...state.searchQueries[type],\r\n ...value\r\n }\r\n\r\n state.searchQueries[type] = filterFaultyValues(newValue)\r\n },\r\n\r\n /**\r\n * Removes all filters in the search query.\r\n * @param {*} state The current state (using \"Immer\").\r\n * @param {object} payload (Optional) An object containing the key { exclude }.\r\n * payload.exclude {Array} The search query keys specified in\r\n * this list will not be removed.\r\n */\r\n clearSearchQuery: (state, { payload }) => {\r\n if (payload?.exclude) {\r\n // Removes all keys except the excluded keys\r\n const excludedSearchQueries = Object.entries(state.searchQueries)\r\n .reduce(\r\n (prev, [key, value]) => (\r\n payload.exclude.includes(key)\r\n ? { ...prev, [key]: value }\r\n : prev\r\n ),\r\n {}\r\n )\r\n\r\n state.searchQueries = excludedSearchQueries\r\n } else {\r\n state.searchQueries = {}\r\n }\r\n }\r\n },\r\n\r\n initialState: {\r\n /**\r\n * Search query entry inside the searchQueries object should always follow\r\n * the standard of \"componentNameResponsibleForThisQuery: { customKeyword: [], anotherCustomKeyword: [], ...}\r\n */\r\n searchQueries: {\r\n // Example structure:\r\n // vehicleSearchbar: { brands: [], models: [], years: [] },\r\n // deviceSearchbar: { brands: [], models: [] },\r\n // filterProducts: { brands: [], models: [], years: [], collections: [] },\r\n }\r\n }\r\n})\r\n\r\nexport const { setSearchQuery, updateSearchQuery, clearSearchQuery } = searchSlice.actions\r\nexport default searchSlice.reducer\r\n","import { strings as Localization } from \"../Localization\"\r\n\r\nexport const brandsNameCompare = (brandNameA, brandNameB) => {\r\n // Force \"Other models\" to the top.\r\n if (brandNameA === Localization.otherModels) {\r\n return -1\r\n } if (brandNameB === Localization.otherModels) {\r\n return 1\r\n }\r\n return brandNameA.localeCompare(brandNameB)\r\n}\r\n\r\nexport const sortBrands = brandList => [...brandList].sort(\r\n (a, b) => brandsNameCompare(a.name, b.name)\r\n)\r\n\r\nexport const replaceNameForBrandOther = brandList => {\r\n // Make the result mutable\r\n const result = [...brandList.map(\r\n brand => ({ ...brand })\r\n )]\r\n\r\n // Replace the name of \",\" brand.\r\n const otherBrandIndex = result.findIndex(\r\n brand => brand.name === \",\"\r\n )\r\n if (otherBrandIndex !== -1) {\r\n result[otherBrandIndex].name = Localization.otherModels\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const restoreNameForBrandOther = brandNames => {\r\n // Make the result mutable\r\n const result = [...brandNames]\r\n\r\n // Replace the name of \",\" brand.\r\n const otherBrandIndex = result.findIndex(\r\n brandName => brandName === Localization.otherModels\r\n )\r\n if (otherBrandIndex !== -1) {\r\n result[otherBrandIndex] = \",\"\r\n }\r\n\r\n return result\r\n}\r\n\r\n// Is used by brands, models and years.\r\nexport const GroupByName = brandList => {\r\n const combinedBrands = brandList.reduce(\r\n (result, brand) => {\r\n const groupBy = brand.name\r\n const name = brand.name\r\n const value = [...(result[groupBy]?.value ?? []), brand]\r\n result[groupBy] = { id: name, name, value }\r\n\r\n return result\r\n },\r\n {}\r\n )\r\n\r\n return Object.values(combinedBrands)\r\n}\r\n\r\n/**\r\n * Searches through a list of items and attempts to find all items,\r\n * whose specified attribute is, present in the list of identifiers.\r\n * @param {*} identifiers The list of identifiers.\r\n * @param {*} items The list of items being \"filtered\"/searched.\r\n * @param {*} attributeToCompare Specifies a function for extracting an\r\n * attribute from the item. Used to match nested attributes against identifiers.\r\n * @returns A list of two items.\r\n * First item: A list of the items who matched against the identifiers.\r\n * Second item: A list of the identifiers without a match.\r\n */\r\n// Används inte just nu finns därför inte tester för denna\r\nexport const findItemsUsingIdentifier = (\r\n identifiers,\r\n items,\r\n attributeToCompare = (item => item)\r\n) => {\r\n const noMatchIds = [...(identifiers ?? [])]\r\n return [\r\n (\r\n items.filter(\r\n item => {\r\n const itemAttribute = attributeToCompare(item)\r\n const hasMatch = (identifiers ?? []).includes(itemAttribute)\r\n if (hasMatch) noMatchIds.splice(noMatchIds.indexOf(itemAttribute), 1)\r\n return hasMatch\r\n }\r\n )\r\n ),\r\n noMatchIds\r\n ]\r\n}\r\n\r\n/**\r\n * Finds the name of each object with a corresponding id.\r\n * @param {*} brandIds The ids to find the names for.\r\n * @param {*} allBrands The list of objects containing an 'id' key and a 'name' key.\r\n * @returns A list of two items.\r\n * First item: A list of names corresponding to the given ids.\r\n * Second item: A list of ids without a corresponding name.\r\n */\r\n// Används inte just nu finns därför inte tester för denna\r\nexport const findNamesFromIds = (brandIds, allBrands) => {\r\n const [matchedBrands, noMatchIds] = findItemsUsingIdentifier(\r\n brandIds,\r\n allBrands,\r\n brand => brand.id\r\n )\r\n\r\n return [\r\n matchedBrands.map(brand => brand.name),\r\n noMatchIds\r\n ]\r\n}\r\n\r\n/**\r\n * Finds the ids of each object with a corresponding name.\r\n * @param {*} brandNames The names to find the ids for.\r\n * @param {*} allBrands The list of objects containing an 'id' key and a 'name' key.\r\n * @returns A list of two items.\r\n * First item: A list of ids corresponding to the given names.\r\n * Second item: A list of names without any corresponding id.\r\n */\r\n// Används inte just nu finns därför inte tester för denna\r\nexport const findIdsFromNames = (brandNames, allBrands) => {\r\n const brandNamesLowerCase = brandNames.map(brandName => brandName.toLowerCase())\r\n const [matchedBrands, noMatchNames] = findItemsUsingIdentifier(\r\n brandNamesLowerCase,\r\n allBrands,\r\n brand => brand.name.toLowerCase()\r\n )\r\n\r\n return [\r\n matchedBrands.map(brand => brand.id),\r\n noMatchNames\r\n ]\r\n}\r\n","import { eraseCookie, loadCookie, saveCookie } from \"./cookieStorage\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState: {\r\n isAuthorized: JSON.parse(sessionStorage.getItem(\"isAuthorized\")) || false,\r\n authToken: null,\r\n user: {},\r\n addresses: {},\r\n welcomeSplashVisible: false,\r\n currency: null,\r\n steering: \"1\",\r\n selectedModTek: { id: \"\", step: \"\" }\r\n },\r\n reducers: {\r\n setUser: (state, action) => {\r\n const {\r\n user, addresses, currency, welcomeSplashVisible\r\n } = action.payload\r\n const { authToken, ...userData } = user\r\n const showWelcomeSplash = welcomeSplashVisible ?? true\r\n sessionStorage.setItem(\"isAuthorized\", \"true\")\r\n saveCookie(\"user\", {\r\n authToken: authToken,\r\n welcomeSplashVisible: showWelcomeSplash\r\n })\r\n\r\n state.authToken = authToken\r\n state.user = userData\r\n state.addresses = addresses\r\n state.currency = currency\r\n state.steering = user?.preferredSteering ? user.preferredSteering.toString() : \"1\"\r\n state.welcomeSplashVisible = showWelcomeSplash\r\n state.isAuthorized = true\r\n },\r\n closeWelcomeSplash: state => {\r\n saveCookie(\"user\", { ...loadCookie(\"user\"), welcomeSplashVisible: false })\r\n state.welcomeSplashVisible = false\r\n },\r\n signOut: state => {\r\n eraseCookie(\"user\")\r\n\r\n state.authToken = null\r\n state.user = {}\r\n state.addresses = {}\r\n state.currency = null\r\n state.isAuthorized = false\r\n sessionStorage.removeItem(\"isAuthorized\")\r\n },\r\n setSteering: (state, action) => {\r\n state.steering = action.payload\r\n },\r\n setSelectedModTek: (state, action) => {\r\n state.selectedModTek = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport default userSlice.reducer\r\n\r\nexport const {\r\n signOut: signOutAction,\r\n setUser,\r\n setSteering,\r\n setSelectedModTek,\r\n closeWelcomeSplash\r\n} = userSlice.actions\r\n\r\nexport const signIn = user => dispatch => dispatch(setUser(user))\r\nexport const signOut = () => dispatch => dispatch(signOutAction())\r\nexport const changeSteering = steering => dispatch => dispatch(setSteering(steering))\r\nexport const changeSelectedModTek = selected => dispatch => dispatch(setSelectedModTek(selected))\r\nexport const closeWelcome = () => dispatch => dispatch(closeWelcomeSplash())\r\n","import { emptyCart, setCartItems, setShouldSyncCart } from \"../cartSlice\"\r\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\"\r\nimport { batch } from \"react-redux\"\r\n\r\nexport const cartApi = createApi({\r\n reducerPath: \"cartApi\",\r\n baseQuery: fetchBaseQuery({ baseUrl: \"/api/cart/\" }),\r\n endpoints: builder => ({\r\n\r\n getCart: builder.query({\r\n query: ({ authToken }) => `GetFromAuthToken?authToken=${authToken}`,\r\n // transformResponse: (response) => response?.response,\r\n\r\n async onQueryStarted({ _authToken }, { dispatch, queryFulfilled }) {\r\n // Request has started.\r\n try {\r\n const { data: cartFromServer } = await queryFulfilled\r\n // Request succeeded.\r\n // Batch prevents rerendering for each dispatch and\r\n // instead only rerenders once.\r\n batch(() => {\r\n dispatch(setCartItems(\r\n cartFromServer\r\n ))\r\n dispatch(setShouldSyncCart(false))\r\n })\r\n } catch (err) {\r\n // Request returned and error.\r\n }\r\n }\r\n }),\r\n\r\n updateCart: builder.mutation({\r\n query: ({ authToken, ...parameters }) => ({\r\n url: `UpdateFromAuthToken?authToken=${authToken}`,\r\n method: \"POST\",\r\n body: {\r\n ...parameters\r\n }\r\n })\r\n // transformResponse: (response) => response?.response,\r\n }),\r\n clearCart: builder.mutation({\r\n query: ({ authToken }) => ({\r\n url: `ClearCart?authToken=${authToken}`,\r\n method: \"POST\",\r\n body: {}\r\n }),\r\n // You can add cache manipulation here if necessary, but avoid hooks\r\n async onQueryStarted({ authToken }, { dispatch }) {\r\n try {\r\n batch(() => {\r\n dispatch(emptyCart())\r\n dispatch(setShouldSyncCart(false))\r\n })\r\n } catch (err) {\r\n console.error(\"Error clearig cart:\", err)\r\n }\r\n }\r\n })\r\n })\r\n})\r\n\r\nexport const { useGetCartQuery, useUpdateCartMutation, useClearCartMutation } = cartApi\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n root: {\r\n flex: \"0 1 100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n homePage: {\r\n width: \"100%\"\r\n }\r\n}))\r\n","import { requestCustomerOrders, requestCustomerOrder } from \"./thunk/customerOrderThunk\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst slice = createSlice({\r\n name: \"customerOrder\",\r\n initialState: {\r\n list: [],\r\n errors: []\r\n },\r\n reducers: {\r\n clearErrors: state => ({\r\n ...state,\r\n errors: []\r\n })\r\n },\r\n extraReducers: builder => {\r\n builder.addCase(requestCustomerOrders.fulfilled, (state, action) => {\r\n state.list = action.payload\r\n if (state.list === \"\") state.list = []\r\n })\r\n builder.addCase(requestCustomerOrders.rejected, (state, action) => {\r\n state.errors.push(action.payload)\r\n })\r\n builder.addCase(requestCustomerOrder.fulfilled, (state, action) => {\r\n state.list = action.payload\r\n if (state.list === \"\") state.list = []\r\n })\r\n builder.addCase(requestCustomerOrder.rejected, (state, action) => {\r\n state.errors.push(action.payload)\r\n })\r\n }\r\n})\r\n\r\nexport default slice.reducer\r\n\r\nconst { clearErrors } = slice.actions\r\n\r\nexport const clearCustomerOrderErrors = () => dispatch => dispatch(\r\n clearErrors()\r\n)\r\n","import { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useErrors = () => {\r\n const priceErrors = useSelector(state => state.price.errors);\r\n const customerOrderErrors = useSelector(state => state.customerOrder.errors);\r\n\r\n useEffect(() => {\r\n\r\n }, [priceErrors, customerOrderErrors]);\r\n\r\n return priceErrors.length > 0 || customerOrderErrors.length > 0;\r\n}\r\n\r\nexport default useErrors;\r\n","/* eslint-disable no-return-assign */\r\n// https://gist.github.com/vre2h/d620ad389580e788b7482245fa62b06c\r\n\r\n// Specify reducers that should be saved to localstorage\r\nconst reducersToSave = [\"settings\", \"gdpr\"]\r\n\r\nexport const loadReducers = () => {\r\n try {\r\n const serializedReducers = localStorage.getItem(\"persistantReducers\")\r\n if (!serializedReducers) return undefined\r\n return JSON.parse(serializedReducers)\r\n } catch (err) {\r\n console.warn(err)\r\n return undefined\r\n }\r\n}\r\n\r\nexport const saveReducers = state => {\r\n const reducers = {}\r\n reducersToSave.forEach(key => reducers[key] = state[key])\r\n\r\n try {\r\n const serializedReducers = JSON.stringify(reducers)\r\n localStorage.setItem(\"persistantReducers\", serializedReducers)\r\n } catch (err) {\r\n console.warn(err)\r\n }\r\n}\r\n","/* eslint-disable consistent-return */\r\nimport * as actions from \"../api\"\r\nimport axios from \"axios\"\r\n\r\nconst api = ({ dispatch }) => next => async action => {\r\n if (action.type !== actions.apiCallBegan.type) return next(action)\r\n\r\n const {\r\n url, method, data, onStart, onSuccess, onError\r\n } = action.payload\r\n\r\n if (onStart) {\r\n dispatch({\r\n type: onStart\r\n })\r\n }\r\n\r\n next(action)\r\n\r\n try {\r\n const response = await axios.request({\r\n // baseURL: \"http:://localhost:62414\",\r\n url,\r\n method,\r\n data\r\n })\r\n // General\r\n dispatch(actions.apiCallSucess(response.data))\r\n // Specific\r\n if (onSuccess) {\r\n dispatch({\r\n type: onSuccess,\r\n payload: response.data\r\n })\r\n }\r\n } catch (error) {\r\n // General\r\n dispatch(actions.apiCallFailed(error.message))\r\n // Specific\r\n if (onError) {\r\n dispatch({\r\n type: onError,\r\n payload: error.message\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default api\r\n","import { materialAdapter } from \"./adapter/materialAdapter\";\r\nimport { requestMaterial } from \"./thunk/materialThunk\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst slice = createSlice({\r\n name: \"material\",\r\n initialState: materialAdapter.getInitialState(),\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder.addCase(requestMaterial.fulfilled, (state, action) => {\r\n materialAdapter.addOne(state, {\r\n ...action.payload,\r\n id: `${action.meta.arg.lang}-${action.payload.id}`,\r\n originalId: action.payload.id\r\n });\r\n });\r\n }\r\n});\r\n\r\nexport default slice.reducer;\r\n","import { selectAll } from \"../adapter/newsArticleAdapter\"\r\nimport { createAsyncThunk } from \"@reduxjs/toolkit\"\r\nimport axios from \"axios\"\r\n\r\nconst fetchNewsArticleById = async (id, lang) => {\r\n const a = await axios.get(`/api/news/${id}?language=${lang}`)\r\n return a.data\r\n}\r\n\r\nconst fetchNewsArticles = async ({\r\n lang, limit, group, includeFutureNews\r\n}) => {\r\n const groupParam = (group && group !== \"\") ? `&group=${group}` : \"\"\r\n const response = axios.get(`/api/news?language=${lang}&limit=${limit}&includeFutureNews=${includeFutureNews}${groupParam}`)\r\n return response.data\r\n}\r\n\r\n// const fetchNewsArticle = async (slug, lang) => {\r\n// const a = await axios.get(`/api/Pages/GetNewsArticle?slug=${slug}&language=${lang}`);\r\n// return a.data;\r\n// }\r\n\r\n// export const requestNewsArticle = createAsyncThunk('newsArticle/fetchBySlug',\r\n// async (params) => {\r\n// const { slug, lang } = params;\r\n// return await fetchNewsArticle(slug, lang);\r\n// },{\r\n// condition: (params, { getState }) => {\r\n// const { slug } = params;\r\n// const existing = selectAll(getState()).some(x => x.slug === slug);\r\n// return !existing;\r\n// }\r\n// }\r\n// );\r\n\r\nexport const requestNewsArticleById = createAsyncThunk(\r\n \"newsArticle/fetchById\",\r\n async params => {\r\n const { id, lang } = params\r\n return fetchNewsArticleById(id, lang)\r\n },\r\n {\r\n condition: (params, { getState }) => {\r\n const { id } = params\r\n const existing = selectAll(getState()).some(x => x.originalId === id)\r\n return !existing\r\n }\r\n }\r\n)\r\n\r\nexport const requestNewsArticles = createAsyncThunk(\r\n \"newsArticle/fetchAll\",\r\n async params => fetchNewsArticles(params)\r\n)\r\n","import { newsArticleAdapter } from \"./adapter/newsArticleAdapter\";\r\nimport { requestNewsArticleById, requestNewsArticles } from \"./thunk/newsArticleThunk\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst slice = createSlice({\r\n name: \"newsArticle\",\r\n initialState: newsArticleAdapter.getInitialState(),\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder.addCase(requestNewsArticleById.fulfilled, (state, action) => {\r\n newsArticleAdapter.addOne(state, {\r\n ...action.payload,\r\n id: `${action.meta.arg.lang}-${action.payload.id}`,\r\n originalId: action.payload.id\r\n })\r\n });\r\n builder.addCase(requestNewsArticles.fulfilled, (state, action) => {\r\n newsArticleAdapter.addMany(state, action.payload.map(article => ({\r\n ...article,\r\n id: `${action.meta.arg.lang}-${article.id}`,\r\n originalId: article.id\r\n }))); // meta.arg.lang = lang paramter\r\n });\r\n }\r\n})\r\n\r\nexport default slice.reducer;\r\n","import { modelNameCompare } from \"../../lib/helper/modelHelper\";\r\nimport { createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nexport const modelAdapter = createEntityAdapter({\r\n selectId: model => model.id,\r\n sortComparer: (a, b) => modelNameCompare(a.name, b.name)\r\n});\r\n\r\nexport const modelSelectors = modelAdapter.getSelectors(state => state.model);\r\n\r\nexport const { selectById, selectAll } = modelSelectors;\r\n","import { restoreNameForBrandOther } from \"../../lib/helper/brandHelper\"\r\nimport { selectById } from \"../adapter/modelAdapter\"\r\nimport { createAsyncThunk } from \"@reduxjs/toolkit\"\r\nimport axios from \"axios\"\r\n\r\nconst fetchModel = async id => {\r\n const response = await axios.get(`/api/v1/Models/${id}`)\r\n return response.data\r\n}\r\n\r\nconst fetchModelsForBrand = async (brandId, language, steering = null) => {\r\n const [restoredBrandId] = restoreNameForBrandOther([brandId])\r\n const steeringParams = steering ? `&steerings=${steering}` : \"\"\r\n const response = await axios.get(\r\n `/api/v1/Brands/${restoredBrandId}/Models?language=${language}${steeringParams}`\r\n )\r\n return response.data\r\n}\r\n\r\nexport const requestModel = createAsyncThunk(\r\n \"model/fetchById\",\r\n async params => {\r\n const { id } = params\r\n return fetchModel(id)\r\n },\r\n {\r\n condition: (params, { getState }) => {\r\n const { id } = params\r\n const existing = selectById(getState(), id)\r\n return !existing\r\n }\r\n }\r\n)\r\n\r\nexport const requestModelsByBrand = createAsyncThunk(\r\n \"model/fetchByBrand\",\r\n async ({ brandId, language, steering = null }) => (\r\n fetchModelsForBrand(brandId, language, steering)\r\n )\r\n)\r\n","import { modelAdapter } from \"./adapter/modelAdapter\"\r\nimport { requestModel, requestModelsByBrand } from \"./thunk/modelThunk\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\n// Then, handle actions in your reducers:\r\nconst modelSlice = createSlice({\r\n name: \"model\",\r\n initialState: modelAdapter.getInitialState({\r\n lastModelFetch: []\r\n }),\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder.addCase(requestModel.fulfilled, (state, action) => {\r\n modelAdapter.addOne(state, action.payload)\r\n })\r\n builder.addCase(requestModelsByBrand.fulfilled, (state, action) => {\r\n state.lastModelFetch = action.payload.map(x => x.id)\r\n modelAdapter.addMany(state, action.payload)\r\n })\r\n }\r\n})\r\n\r\nexport default modelSlice.reducer\r\n","/* eslint-disable import/prefer-default-export */\r\nimport { restoreNameForBrandOther } from \"../../lib/helper/brandHelper\"\r\nimport { createAsyncThunk } from \"@reduxjs/toolkit\"\r\nimport axios from \"axios\"\r\n\r\nconst fetchCollectionsForModel = async (language, brandId) => {\r\n const [restoredBrandId] = restoreNameForBrandOther([brandId])\r\n const response = await axios.get(\r\n `/api/ProductInfo/GetCollectionsForBrand?language=${language}&brandId=${restoredBrandId}`\r\n )\r\n return response.data\r\n}\r\n\r\nexport const requestCollectionsForBrand = createAsyncThunk(\r\n \"collections/fetchForBrand\",\r\n async params => {\r\n const { lang, brandId } = params\r\n return fetchCollectionsForModel(lang, brandId)\r\n }\r\n)\r\n","import { requestCollectionsForBrand } from \"./thunk/collectionThunk\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst slice = createSlice({\r\n name: \"collection\",\r\n initialState: [],\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder.addCase(requestCollectionsForBrand.fulfilled, (state, action) => action.payload);\r\n }\r\n});\r\n\r\nexport default slice.reducer;\r\n","/* eslint-disable import/no-named-as-default */\r\nimport cartReducer from \"./cartSlice\"\r\nimport userReducer from \"./userSlice\"\r\nimport monitorReducer from \"./monitorSlice\"\r\nimport settingsReducer from \"./settingsReducer\"\r\nimport productReducer from \"./productReducer\"\r\nimport materialReducer from \"./materialReducer\"\r\nimport priceReducer from \"./priceSlice\"\r\nimport customerOrderReducer from \"./customerOrderReducer\"\r\nimport newsArticleReducer from \"./newsArticleReducer\"\r\nimport modelSlice from \"./modelSlice\"\r\nimport gdprReducer from \"./gdprSlice\"\r\nimport collectionReducer from \"./collectionReducer\"\r\nimport pageSlice from \"./pageReducer\"\r\nimport searchReducer from \"./searchReducer\"\r\nimport userMessageReducer from \"./userMessageSlice\"\r\nimport favoriteReducer from \"./favoriteSlice\"\r\nimport { broditWebApi } from \"./services/broditWebApi\"\r\nimport { contentApi } from \"./services/contentApi\"\r\nimport { cartApi } from \"./services/cartApi\"\r\nimport { favoriteApi } from \"./services/favoriteApi\"\r\nimport compareProductsReducer from \"./compareProductsReducer\"\r\nimport { priceApi } from \"./services/priceApi\"\r\nimport { productInfoApi } from \"./services/productInfoApi\"\r\nimport search2Reducer from \"./search2Reducer\"\r\nimport { combineReducers } from \"@reduxjs/toolkit\"\r\n\r\nexport const rootReducer = combineReducers({\r\n cart: cartReducer,\r\n user: userReducer,\r\n product: productReducer,\r\n material: materialReducer,\r\n monitor: monitorReducer,\r\n settings: settingsReducer,\r\n price: priceReducer,\r\n customerOrder: customerOrderReducer,\r\n newsArticle: newsArticleReducer,\r\n model: modelSlice,\r\n gdpr: gdprReducer,\r\n collection: collectionReducer,\r\n page: pageSlice,\r\n search: searchReducer,\r\n search2: search2Reducer,\r\n userMessage: userMessageReducer,\r\n favorite: favoriteReducer,\r\n compareProduct: compareProductsReducer,\r\n [broditWebApi.reducerPath]: broditWebApi.reducer,\r\n [contentApi.reducerPath]: contentApi.reducer,\r\n [cartApi.reducerPath]: cartApi.reducer,\r\n [favoriteApi.reducerPath]: favoriteApi.reducer,\r\n [priceApi.reducerPath]: priceApi.reducer,\r\n [productInfoApi.reducerPath]: productInfoApi.reducer\r\n})\r\n\r\nexport default rootReducer\r\n","/* eslint-disable import/no-extraneous-dependencies */\r\nimport { broditWebApi } from \"./services/broditWebApi\"\r\nimport api from \"./middleware/api\"\r\nimport { loadReducers } from \"./localStorage\"\r\nimport { rootReducer } from \"./rootReducer\"\r\nimport { contentApi } from \"./services/contentApi\"\r\nimport { cartApi } from \"./services/cartApi\"\r\nimport { favoriteApi } from \"./services/favoriteApi\"\r\nimport { priceApi } from \"./services/priceApi\"\r\nimport { productInfoApi } from \"./services/productInfoApi\"\r\nimport { setupListeners } from \"@reduxjs/toolkit/query\"\r\nimport { configureStore } from \"@reduxjs/toolkit\"\r\nimport thunk from \"redux-thunk\"\r\n\r\nimport { persistStore, persistReducer } from \"redux-persist\"\r\nimport storage from \"redux-persist/lib/storage\"\r\n\r\nconst persistConfig = {\r\n key: \"root\",\r\n storage,\r\n whitelist: [\"compareProduct\", \"user\"]\r\n}\r\n\r\nconst persistedReducer = persistReducer(persistConfig, rootReducer)\r\n\r\nconst store = configureStore({\r\n reducer: persistedReducer,\r\n preloadedState: {\r\n ...loadReducers()\r\n },\r\n middleware: getDefaultMiddleware => [\r\n ...getDefaultMiddleware({\r\n serializableCheck: false\r\n }).concat([\r\n broditWebApi.middleware,\r\n contentApi.middleware,\r\n cartApi.middleware,\r\n favoriteApi.middleware,\r\n priceApi.middleware,\r\n productInfoApi.middleware\r\n ]),\r\n thunk,\r\n api\r\n ]\r\n})\r\n\r\nconst persistor = persistStore(store)\r\n\r\n// optional, but required for refetchOnFocus/refetchOnReconnect behaviors (@reduxjs/toolkit/query)\r\n// see `setupListeners` docs - takes an optional callback as the 2nd arg for customization\r\nsetupListeners(store.dispatch)\r\n\r\nexport { store, persistor }\r\n","import theme from \"../../theme\"\r\nimport { desktopBreakpoint, mobileBreakpoint, mobileMenuBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n main: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n },\r\n section1: {\r\n width: \"auto\",\r\n height: \"auto\",\r\n backgroundColor: \"#FFF\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\"\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n }\r\n },\r\n section1Wrapper: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n marginTop: 40,\r\n marginBottom: 40\r\n },\r\n section2: {\r\n width: \"80%\",\r\n height: \"auto\",\r\n flexShrink: 0,\r\n backgroundColor: \"#FFF\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n paddingBottom: \"75px\",\r\n gap: 50,\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n }\r\n },\r\n section3: {\r\n backgroundColor: \"#F8F8F8\",\r\n width: \"100%\",\r\n paddingTop: \"150px\",\r\n paddingBottom: \"150px\"\r\n },\r\n blackH2: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\" /* 133.333% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"20px\",\r\n lineHeight: \"26.8px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n textAlign: \"start\"\r\n }\r\n },\r\n firstBlackH2: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\" /* 133.333% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"20px\",\r\n lineHeight: \"26.8px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n textAlign: \"center\"\r\n }\r\n },\r\n firstBlackText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"20px\", /* 142.857% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n textAlign: \"center\"\r\n }\r\n },\r\n blackText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"20px\", /* 142.857% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n textAlign: \"start\"\r\n }\r\n },\r\n logo: {\r\n display: \"flex\",\r\n width: \"108px\",\r\n height: \"54px\",\r\n padding: \"8px\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n flexShrink: 0\r\n },\r\n blackH3: {\r\n color: \"#332D2D\",\r\n /* M3/title/medium */\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"24px\", /* 133.333% */\r\n letterSpacing: \"0.15px\",\r\n textAlign: \"center\"\r\n },\r\n box: {\r\n width: \"1080px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"auto\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n section2ProclipWrapper: {\r\n display: \"flex\",\r\n gap: \"46px\",\r\n paddingTop: \"20px\",\r\n flexDirection: \"row\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\",\r\n alignItems: \"center\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flexDirection: \"column\"\r\n }\r\n },\r\n image: {\r\n objectFit: \"cover\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\",\r\n height: \"auto\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n brandListTitel: {\r\n color: \"#2D2D2D\",\r\n textAlign: \"center\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"32px\" /* 160% */\r\n },\r\n brandListText: {\r\n whiteSpace: \"pre-wrap\",\r\n color: \"#2D2D2D\",\r\n textAlign: \"center\",\r\n /* M3/body/large */\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 133.333% */\r\n letterSpacing: \"0.5px\"\r\n },\r\n hero: {\r\n position: \"relative\",\r\n width: \"100%\"\r\n },\r\n selectorWrapper: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"250px\",\r\n justifyContent: \"center\",\r\n gap: \"8px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n gridTemplateColumns: \"auto-fill\"\r\n }\r\n },\r\n brandLink: {\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n \"&:hover\": {\r\n textDecoration: \"underline\"\r\n }\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/proclipAndHolders.d6c2c29b.png\";","export default __webpack_public_path__ + \"static/media/proclip.d3dd217c.png\";","export default __webpack_public_path__ + \"static/media/proclipHolder.6b8c5cc8.png\";","import useStyles from \"./styles\"\r\nimport { getDeviceBrandsList, getVehicleBrandsList } from \"./helpers/brandhelper\"\r\nimport Hero from \"../../assets/proclipAndHolders.png\"\r\nimport CarMount from \"../../assets/carMount.png\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport proClip from \"../../assets/proclip.png\"\r\nimport proClipHolder from \"../../assets/proclipHolder.png\"\r\nimport { LeftRightSteeringFilter } from \"../AutocompleteSearch\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport Holder from \"../../assets/holder.png\"\r\nimport theme from \"../../theme\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport MultiSearchbar from \"../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst ProclipAndHolders = () => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(desktopBreakpoint))\r\n\r\n const proclipBrandsList = getVehicleBrandsList()\r\n const deviceBrandsList = getDeviceBrandsList()\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.proclipSection1Title}\r\n \r\n \r\n {Localization.proclipSection1Text}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ProClip\r\n \r\n {Localization.proclipSection2ProclipText}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.findRightProclip}\r\n \r\n \"Phone\r\n \r\n
    \r\n {language === \"en\" && }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {Localization.proclipBrandsTitle}\r\n \r\n {proclipBrandsList.map((brand, i) => {\r\n const divider = i !== proclipBrandsList.length - 1 ? \" | \" : \"\"\r\n const term = brand.term ? brand.term : brand.name\r\n\r\n return (\r\n \r\n {brand.name}\r\n {divider}\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.proclipSection2HolderTitle}\r\n \r\n \r\n {Localization.proclipSection2HolderText}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.findRightHolder}\r\n \r\n \"Phone\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {Localization.deviceBrandsTitle}\r\n \r\n {deviceBrandsList.map((brand, i) => {\r\n const divider = i !== deviceBrandsList.length - 1 ? \" | \" : \"\"\r\n const term = brand.term ? brand.term : brand.name\r\n\r\n return (\r\n \r\n {brand.name}\r\n {divider}\r\n \r\n )\r\n })}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ProclipAndHolders\r\n","export const getVehicleBrandsList = () => [\r\n { name: \"Volvo\", term: null },\r\n { name: \"Mercedes-Benz\", term: \"Mercedes%20Benz\" },\r\n { name: \"Ford\", term: null },\r\n { name: \"Audi\", term: null },\r\n { name: \"BMW\", term: null },\r\n { name: \"Volkswagen\", term: null },\r\n { name: \"Tesla\", term: null },\r\n { name: \"Bentley\", term: null },\r\n { name: \"Toyota\", term: null },\r\n { name: \"Hyundai\", term: null },\r\n { name: \"Subaru\", term: null },\r\n { name: \"Suzuki\", term: null },\r\n { name: \"Chevrolet\", term: null },\r\n { name: \"Dodge\", term: null },\r\n { name: \"Lamborghini\", term: null },\r\n { name: \"Ineos\", term: null },\r\n { name: \"Mazda\", term: null },\r\n { name: \"Chrysler\", term: null }\r\n]\r\n\r\nexport const getDeviceBrandsList = () => [\r\n { name: \"Samsung\", term: null },\r\n { name: \"Apple\", term: null },\r\n { name: \"Honeywell\", term: null },\r\n { name: \"Huawei\", term: null },\r\n { name: \"Garmin\", term: null },\r\n { name: \"OnePlus\", term: null },\r\n { name: \"ICOM\", term: null },\r\n { name: \"Google\", term: null },\r\n { name: \"Lenovo\", term: null },\r\n { name: \"HTC\", term: null },\r\n { name: \"TomTom\", term: null },\r\n { name: \"iZettle\", term: null },\r\n { name: \"Dell\", term: null },\r\n { name: \"Microsoft\", term: null },\r\n { name: \"Sonim\", term: null },\r\n { name: \"Nokia\", term: null },\r\n { name: \"Zodiac\", term: null }\r\n]\r\n","import theme from \"../../theme\"\r\nimport { desktopBreakpoint, mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n main: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n section1: {\r\n maxWidth: \"688px\",\r\n height: \"auto\",\r\n backgroundColor: \"#FFF\",\r\n paddingBottom: \"50px\",\r\n paddingTop: \"40px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n paddingTop: \"20px\",\r\n paddingLeft: \"24px\",\r\n paddingRight: \"24px\",\r\n paddingBottom: \"40px\"\r\n }\r\n },\r\n section1Wrapper: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n flexDirection: \"column\",\r\n flex: \"\"\r\n },\r\n section2: {\r\n width: \"80%\",\r\n height: \"auto\",\r\n flexShrink: 0,\r\n backgroundColor: \"#FFF\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n paddingBottom: \"75px\",\r\n gap: 50,\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\",\r\n paddingBottom: \"unset\",\r\n paddingLeft: \"unset\",\r\n paddingRight: \"unset\"\r\n }\r\n },\r\n section3: {\r\n backgroundColor: \"#F8F8F8\",\r\n width: \"100%\",\r\n paddingTop: \"75px\",\r\n paddingBottom: \"75px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n paddingTop: \"40px\",\r\n paddingBottom: \"40px\"\r\n }\r\n },\r\n section3Wrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n gap: \"20px\",\r\n width: \"80%\"\r\n },\r\n whiteText: {\r\n color: \"#FFF\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 88.889% */\r\n letterSpacing: \"0.5px\"\r\n },\r\n whiteLargerText: {\r\n color: \"#FFF\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 120% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n /* Mobil/P */\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\" /* 142.857% */\r\n }\r\n },\r\n whiteH2Roboto: {\r\n color: \"#FFF\",\r\n fontFamily: \"Roboto\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"123.688%\" /* 37.106px */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n /* Mobil/H CTA */\r\n fontSize: \"25px\",\r\n lineHeight: \"normal\"\r\n }\r\n },\r\n blackH2: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\",\r\n marginTop: 0,\r\n textAlign: \"center\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"20px\",\r\n lineHeight: \"26.8px\",\r\n marginTop: 0,\r\n marginBottom: \"10px\"\r\n }\r\n },\r\n blackText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 142.857% */\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"center\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n textAlign: \"left\",\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\"\r\n }\r\n },\r\n fatBlackText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 114.286% */\r\n letterSpacing: \" 0.5px\",\r\n \"& .MuiTypography-root\": {\r\n marginBottom: \"10px\"\r\n }\r\n },\r\n anchor: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textDecoration: \"none\",\r\n borderBottom: \"1px solid transparent\",\r\n \"&:hover\": {\r\n borderBottom: \"1px solid #F09057\"\r\n }\r\n },\r\n blackH3: {\r\n flex: \"0 0 100%\",\r\n color: \"#332D2D\",\r\n /* M3/title/medium */\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\",\r\n letterSpacing: \"0.15px\",\r\n textAlign: \"center\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n fontWeight: 500,\r\n textAlign: \"left\"\r\n }\r\n },\r\n card: {\r\n width: \"100%\",\r\n margin: \"10px\",\r\n maxWidth: \"350px\",\r\n padding: \"0px\",\r\n borderRadius: \"6px\",\r\n boxShadow: \"0px 0px 20px 0px #2D2D2D1A\"\r\n },\r\n cardContent: {\r\n paddingTop: \"8px\",\r\n paddingLeft: \"20px\",\r\n paddingRight: \"20px\",\r\n paddingBottom: \"20px\"\r\n },\r\n cardTitle: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"18px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 177.778% */\r\n },\r\n cardText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\",\r\n letterSpacing: \"0.5px\",\r\n marginBottom: \"10px\"\r\n },\r\n alignCenter: {\r\n alignSelf: \"center\"\r\n },\r\n link: {\r\n color: \"black\",\r\n \"&:link\": {\r\n color: \"black\"\r\n },\r\n \"&visited\": {\r\n color: \"black\"\r\n }\r\n },\r\n hero: {\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n maxWidth: \"700px\",\r\n marginTop: \"40px\",\r\n marginBottom: \"50px\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n \"&:last-child\": {\r\n marginBottom: \"unset\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n alignItems: \"flex-start\",\r\n paddingTop: \"20px\",\r\n paddingLeft: \"20px\",\r\n paddingRight: \"20px\",\r\n paddingBottom: \"40px\",\r\n marginTop: \"unset\",\r\n marginBottom: \"unset\"\r\n }\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/prouctDev.d2de58e7.png\";","import useStyles from \"./styles\"\r\nimport Hero from \"../../assets/customizedSolutions.png\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport theme from \"../../theme\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport productDev from \"../../assets/prouctDev.png\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Typography, useMediaQuery, Card, CardContent, CardMedia\r\n} from \"@mui/material\"\r\nimport classnames from \"classnames\"\r\n\r\nconst ProductDevelopment = () => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(desktopBreakpoint))\r\n\r\n const contacts = [\r\n {\r\n name: \"Peter Hermansson\",\r\n country: \"Sweden\",\r\n phone: \"0505-177 70\",\r\n email: \"peter@brodit.se\",\r\n image: \"/files/ImagesStatic/peter.jpg\"\r\n },\r\n {\r\n name: \"Fredrik Källström\",\r\n country: \"Sverige\",\r\n phone: \"0505-177 79\",\r\n email: \"fredrik@brodit.se\",\r\n image: \"/files/ImagesStatic/fredrik.jpg\"\r\n }\r\n ]\r\n\r\n const renderImageTextSection = (title, image, textArray) => (\r\n <>\r\n \r\n

    \r\n {title}\r\n

    \r\n {textArray.map((text, index) => (\r\n \r\n {text}\r\n \r\n ))}\r\n
    \r\n \r\n \r\n )\r\n\r\n const renderContactCard = contact => (\r\n \r\n \r\n \r\n \r\n {contact.name}\r\n \r\n \r\n {contact.country}\r\n \r\n \r\n \r\n {contact.phone}\r\n \r\n \r\n \r\n \r\n {contact.email}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {renderImageTextSection(\r\n Localization.productDevSection1Title,\r\n productDev,\r\n [\r\n Localization.productDevSection1Text,\r\n Localization.productDevSection2TextPart1 + Localization.productDevSection2TextPart2,\r\n Localization.productDevSection2TextPart3\r\n ]\r\n )}\r\n \r\n \r\n \r\n \r\n {Localization.contactUs}\r\n {Localization.productDevSection3Text}\r\n {language === \"en\" ? renderContactCard(contacts[0]) : renderContactCard(contacts[1])}\r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default ProductDevelopment\r\n","import { mobileMenuBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n timeline: {\r\n flex: \"0 0 100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: 30,\r\n minHeight: 50\r\n },\r\n oddTimeline: {\r\n flexDirection: \"row-reverse\"\r\n },\r\n timelineInfo: {\r\n flex: \"0 1 560px\",\r\n paddingRight: 10,\r\n paddingLeft: 10\r\n },\r\n timelineDivider: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n position: \"relative\",\r\n marginRight: 30,\r\n marginLeft: 30\r\n },\r\n timelineDividerVerticalLine: {\r\n width: 4,\r\n backgroundColor: \"#2D2D2D\",\r\n height: \"100%\"\r\n },\r\n timelineDividerHorizontalLine: {\r\n position: \"absolute\",\r\n height: 4,\r\n left: 0,\r\n top: 23,\r\n width: 30,\r\n backgroundColor: \"#2D2D2D\"\r\n },\r\n oddTimelineDividerHorizontalLine: {\r\n left: \"unset\",\r\n right: 0\r\n },\r\n timelineImage: {\r\n maxWidth: \"100%\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n },\r\n yearTitle: {\r\n fontFamily: \"Rubik\",\r\n fontSize: 30,\r\n fontWeight: 500,\r\n lineHeight: 0,\r\n textAlign: \"left\",\r\n color: \"#F09057\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n fontSize: 20\r\n }\r\n },\r\n text: {\r\n fontFamily: \"Arial\",\r\n fontSize: 17,\r\n fontWeight: 400,\r\n lineHeight: \"24px\",\r\n letterSpacing: 0.5,\r\n textAlign: \"left\",\r\n whiteSpace: \"pre-line\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n fontSize: 14,\r\n lineHeight: \"20px\"\r\n }\r\n },\r\n textJustified: {\r\n textAlign: \"justify\"\r\n },\r\n oddText: {\r\n textAlign: \"right\"\r\n },\r\n arrow: {\r\n marginTop: 30,\r\n marginBottom: 30,\r\n opacity: 0.5\r\n },\r\n mobInfoWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n paddingLeft: 22,\r\n paddingRight: 22,\r\n gap: 20,\r\n backgroundColor: \"#F8F8F8\",\r\n \"&:last-child\": {\r\n paddingBottom: 40\r\n }\r\n },\r\n mobInfoReverse: {\r\n flexDirection: \"column-reverse\"\r\n },\r\n mobImageWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\"\r\n },\r\n mobImageText: {\r\n fontFamily: \"Arial\",\r\n fontSize: 12,\r\n fontWeight: 400,\r\n lineHeight: \"15px\",\r\n letterSpacing: 0.5,\r\n textAlign: \"left\",\r\n whiteSpace: \"pre-line\",\r\n marginTop: 6\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/arrow.2c37d7db.svg\";","import useStyles from \"./Timeline.styles\"\r\nimport Down from \"./assets/arrow.svg\"\r\nimport Row from \"../Home/components/Row\"\r\nimport React, { Fragment } from \"react\"\r\nimport { Box, Typography } from \"@mui/material\"\r\n\r\nexport const Desktop = ({ data }) => {\r\n const classes = useStyles()\r\n\r\n const timeLineRow = (item, i) => {\r\n const odd = i % 2 !== 0\r\n const oddTimelineClass = odd ? classes.oddTimeline : \"\"\r\n const oddHorizontalLineClass = odd ? classes.oddTimelineDividerHorizontalLine : \"\"\r\n const oddTextClass = odd ? classes.oddText : \"\"\r\n const lastItem = i === data.timeline.length - 1\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.imageText}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n

    {item.title}

    \r\n \r\n {item.text}\r\n \r\n
    \r\n \r\n \r\n \r\n {!lastItem\r\n &&
    }\r\n \r\n \r\n )\r\n }\r\n\r\n return data.timeline.map((item, i) => timeLineRow(item, i))\r\n}\r\n\r\nexport const Mobile = ({ data }) => {\r\n const classes = useStyles()\r\n\r\n const timeLineRow = (item, i) => {\r\n const reverseClass = i === 0 ? classes.mobInfoReverse : \"\"\r\n\r\n return (\r\n \r\n
    \r\n \r\n

    {item.title}

    \r\n {item.text}\r\n
    \r\n \r\n \r\n {item.imageText}\r\n \r\n
    \r\n {i < data.timeline.length - 1 && (\r\n \r\n \"Down\r\n \r\n )}\r\n
    \r\n )\r\n }\r\n\r\n return data.timeline.map((item, i) => timeLineRow(item, i))\r\n}\r\n","import { desktopBreakpoint, mobileMenuBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n hero: {\r\n display: \"flex\",\r\n flex: \"0 1 1920px\",\r\n justifyContent: \"center\"\r\n },\r\n youtube: {\r\n aspectRatio: \"16 / 9\",\r\n flex: \"0 1 1400px\"\r\n },\r\n topInfo: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"0 1 857px\",\r\n marginTop: 100,\r\n marginBottom: 100,\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 1 100%\",\r\n marginTop: \"unset\",\r\n marginBottom: \"unset\",\r\n padding: 20\r\n }\r\n },\r\n topTitle: {\r\n fontFamily: \"Rubik\",\r\n fontSize: 30,\r\n fontWeight: 500,\r\n lineHeight: \"40px\",\r\n textAlign: \"center\",\r\n marginTop: 0,\r\n marginBottom: 20,\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n fontSize: 20,\r\n lineHeight: \"26px\",\r\n textAlign: \"left\",\r\n marginBottom: 15\r\n }\r\n },\r\n topText: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"24px\",\r\n letterSpacing: 0.5,\r\n textAlign: \"center\",\r\n whiteSpace: \"pre-line\",\r\n marginBottom: 20,\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n fontSize: 14,\r\n lineHeight: \"20px\",\r\n textAlign: \"left\"\r\n }\r\n },\r\n topAnchorWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n justifyContent: \"flex-start\"\r\n }\r\n },\r\n topAnchor: {\r\n fontFamily: \"Arial\",\r\n fontSize: 14,\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: 0.5,\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n borderBottom: \"2px solid #F09057\"\r\n }\r\n },\r\n storyWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 100%\",\r\n backgroundColor: \"#F8F8F8\",\r\n justifyContent: \"center\",\r\n paddingTop: 100,\r\n paddingBottom: 100,\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n paddingTop: 30,\r\n paddingBottom: 30,\r\n paddingLeft: 20,\r\n paddingRight: 20\r\n }\r\n },\r\n story: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n flex: \"0 1 850px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 1 100%\",\r\n alignItems: \"flex-start\"\r\n }\r\n },\r\n storyTitle: {\r\n fontFamily: \"Rubik\",\r\n fontSize: 30,\r\n fontWeight: 500,\r\n lineHeight: \"40px\",\r\n textAlign: \"center\",\r\n marginTop: 0,\r\n marginBottom: 5,\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n fontSize: 20,\r\n lineHeight: \"26px\",\r\n textAlign: \"left\",\r\n marginBottom: 15\r\n }\r\n },\r\n storyText: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"24px\",\r\n letterSpacing: 0.5,\r\n textAlign: \"center\",\r\n whiteSpace: \"pre-line\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n fontSize: 14,\r\n lineHeight: \"20px\",\r\n textAlign: \"left\"\r\n }\r\n }\r\n}))\r\n","import { Desktop as DesktopTimeline, Mobile as MobileTimeline } from \"./Timeline\"\r\nimport useStyles from \"./styles\"\r\nimport Row from \"../Home/components/Row\"\r\nimport { mobileMenuBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React, { useState } from \"react\"\r\nimport { useMediaQuery, Box, Typography } from \"@mui/material\"\r\n\r\nconst About = () => {\r\n const [data, setData] = useState(null)\r\n const isDesktop = useMediaQuery(theme => theme.breakpoints.up(mobileMenuBreakpoint))\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n\r\n const fetchPageData = async () => {\r\n const response = await fetch(`/files/DynamicPages/AboutPage-${language}.json`)\r\n return response.json()\r\n }\r\n\r\n React.useEffect(() => {\r\n fetchPageData().then(result => setData(result))\r\n }, [language])\r\n\r\n const youtubeHero = () => (\r\n \r\n