{"version":3,"sources":["components/Favorites/FavoriteButton.jsx","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","lib/helper/modelVersionsHelper.js","components/Products/ProductCard/ProductCard.jsx","components/ConsentMessage/ConsentMessage.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/pageHook.js","redux/services/productInfoApi.js","redux/hook/priceHooks.js","redux/hook/compareHooks.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","lib/helper/googleAnalyticsHelper.jsx","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","theme.js","components/StyledMarkdown/StyledMarkdown.jsx","redux/priceSlice.js","components/SpeedOrder/styles.js","components/SpeedOrder/SpeedOrder.jsx","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","assets/customizedSolutions.png","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","components/Products/ProductInfo/components/Text/styles.js","components/Products/ProductInfo/components/Text/NewlineText.js","components/Products/ProductInfo/components/Text/index.jsx","redux/hook/materialHooks.js","components/Products/ProductInfo/components/Material/index.js","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","redux/userMessageSlice.js","redux/services/broditWebApi.js","components/Products/ProductInfo/view/Materials.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/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/Page/styles.js","components/Page/Page.jsx","components/CompareOverview/styles.js","components/CompareOverview/CompareOverview.jsx","components/FlashMessage/styles.js","components/FlashMessage/FlashMessage.jsx","redux/hook/productHooks.js","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/LoadingView.jsx","components/Products/ProductInfo/components/ProductInfo.jsx","components/Menu2/Menu2Drawer.jsx","components/ShareButton/styles.js","components/ShareButton/ShareButton.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/compareProductsReducer.js","redux/userSlice.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/services/cartApi.js","redux/cookieStorage.js","redux/thunk/productThunk.js","redux/favoriteSlice.js","redux/pageReducer.js","lib/helper/searchHelper.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"],"names":["CustomPopper","styled","Popper","width","left","FavoriteButton","_ref","productId","dispatch","useDispatch","favorites","useSelector","state","favorite","favoriteProducts","user","useUser","userLists","useMemo","Array","from","Set","filter","x","listName","customerNumber","map","item","sort","a","b","localeCompare","Localization","yourFavorites","open","setOpen","useState","isAuthorized","useIsUserAuthorized","isFavorited","some","product","authToken","useUserAuthToken","selectedItems","setSelectedItems","handleClose","options","setOptions","useEffect","_jsx","Tooltip","title","removeFromFavorites","addToFavorites","children","_jsxs","id","IconButton","size","heartIcon","onClick","async","removeFromFavoriteProducts","axios","post","style","color","FavoriteIcon","Dialog","onClose","maxWidth","fullWidth","position","Box","p","Autocomplete","freeSolo","autoSelect","multiple","value","onChange","handleChange","_event","newValue","reason","newOptions","isArray","label","selectLists","renderInput","params","TextField","variant","PopperComponent","Button","updatedItems","payload","data","response","addToFavoriteProducts","error","console","marginTop","marginRight","save","close","getUserData","callback","setLoading","arguments","length","undefined","errorCallback","fetchData","then","result","catch","checkMonitorArticles","lang","articles","language","stringList","fetchJson","persistScrollPosition","sessionStorage","setItem","transformProductForCompare","propertiesAsDisplayNameValue","properties","reduce","l","displayName","toLowerCase","compatibilityListString","compatibleModels","_x$years","brand","model","years","join","placement","newProd","isNew","yes","no","productTransformation","products","sectionMapping","Description","MappedFields","itemNumber","Field","name","description","eanNumber","DisplayDefaultValues","fitsFor","newProduct","technicalInformation","dimensionsAndWeight","height","depth","weight","volume","sections","s","section","Data","mf","sectionData","Values","values","notApplicable","push","prepareProducts","originalId","makeStyles","theme","wrapper","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","marginLeft","padding","borderRadius","boxShadow","truncatedSearchString","whiteSpace","overflow","textOverflow","clearButton","visibility","hover","MultiSearchbar","vehicles","snap","show","dropdownRef","useRef","classes","useStyles","useLanguage","steering","useSteering","brands","useGetBrandsQuery","allModels","useGetModelsQuery","steerings","brandOptions","setBrandOptions","modelOptions","setModelOptions","yearOptions","setYearOptions","selectedBrand","setSelectedBrand","selectedModel","setSelectedModel","selectedYear","setSelectedYear","setHover","isMobile","useMediaQuery","modelYears","useGetModelYearsQuery","navigate","useNavigate","ArrowIcon","ArrowDropUpIcon","ArrowDropDownIcon","urlToFilterPage","isOtherBrandDevice","indexOf","_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","role","tabIndex","className","ref","onKeyDown","key","disabled","onMouseEnter","onMouseLeave","loading","src","Car","Phone","alt","getFullSelectionString","string","searchOnVehicle","searchOnDevice","ClearIcon","CircularProgress","paddingLeft","paddingRight","snapStyle","transform","addYearPrefix","year","parseInt","getYearString","yearInterval","start","end","split","compatibleModelText","comp","trimEnd","ProductCard","handleShowMoreCompsClick","listView","grid","onSelect","restorationRef","backGroundColor","compare","showSearchDealerLink","productInfo","modTek","modTekInformation","altNameList","price","usePrice","displayPrice","proxyPath","useProxyPath","modtekProduct","useGetModTekProductsQuery","information","info","Object","keys","ProductCardTemplate","showSpeedOrder","linkToProduct","ConsentWrapper","flexWrap","ConsentTitle","textAlign","ConsentButton","ConsentMessage","showConsentBanner","useCookieConsent","consentCookiesPrompt","manageConsentButtonText","newsDateComparer","aDate","Date","dateTime","bDate","getTime","newsArticleAdapter","createEntityAdapter","selectId","newsArticle","sortComparer","newsArticleSelectors","getSelectors","selectById","selectAll","root","boxSizing","rotated","writingMode","textOrientation","text","textTransform","Banner","whatType","comingSoon","bestseller","phasingOut","getData","Typography","palette","default","spacing","minHeight","productViewBreakpoint","notGrid","notGridLoading","circleAnimation","isGrid","MissingFavoriteProductCard","replacementProds","useGetReplacementProductsQuery","productContent","images","thisProductIsNoLongerAvailable","getReplacementText","_replacementProds$rep","deleted","replacementProducts","itWasReplacedByTheFollowingArticles","array","str","toString","substr","getArticleString","showShare","showCompare","showFavorite","fillEmptySpace","ReplacementProducts","searchedId","wasReplacedByFollowingArticles","List","ListItem","NavLink","to","ProductGallery","list","hidden","setProducts","fetchedProducts","fetchModteks","_p$id","pr","sx","maxHeight","i","ModTekSelector","_modTek$title","_modTek$title6","missingProducts","modTekId","titles","index","activeButton","setActiveButton","useSelectedModTek","chooseStep","_modTek$title2","_modTek$title3","en","changeSelectedModTek","step","_modTek$title4","_modTek$title5","ind","component","Link","toUpperCase","t","_modTek$categories$fi","categories","find","category","Products","useGridView","isLoading","isDeleted","useTheme","mobileBreakpoint","isOnlyOneCardWidth","isGridState","settings","productGridView","isGridTemplateColumns","navigationType","useNavigationType","productMarkerId","persistendId","getItem","removeItem","window","scrollTo","fill","createRef","gridTemplateColumns","xs","sm","md","lg","mini","theProduct","isDiscontinuedAndNoLongerAvailable","weCouldNotFindThisProductEtc","usePage","page","returnObj","limit","offset","userSelectedLimit","resetCurrentPage","action","prevLimit","prevOffset","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","prices","useGetPricesQuery","skip","useCompareCount","_useSelector$length","compareProduct","productIds","useCompareProducts","useIsCompareOverviewVisible","showOverview","useIsOnComparePage","onComparePage","locale","useParams","margin","CompatibleModels","_allSearchQueries$bra","_allSearchQueries$bra2","_allSearchQueries$mod","_allSearchQueries$mod2","_allSearchQueries$yea","_allSearchQueries$yea2","allSearchQueries","useSearchQuery","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","PaginationItem","PageHandler","itemCount","searchQuery","Math","floor","amountOfPages","ceil","location","useLocation","prevLocation","pathname","search","prevSearchQuery","match","textsParameter","reset","setPageOffset","handleLoadSpecific","pageIndex","setPageLimit","URL","URLSearchParams","set","history","_searchQuery$texts","currentLocation","hasSearchQueryChanged","texts","_searchQuery$texts2","includes","decodeURIComponent","onLoadMore","increasePageLimit","handleListSelect","setUserLimit","numberOfOptions","startIcon","CachedIcon","loadMore","pageOptions","classNames","isNaN","get","dropdownOptions","modelNameCompare","modelNameA","modelNameB","expression","aParts","Boolean","bParts","aPartAsInt","bPartAsInt","diff","compareNumber","sign","sortModels","modelList","sendGAEventProductSearch","ReactGA","sendGAEventProductSearchViaLink","sendGAEventSignedIn","sendGAEventSignInUnauthorized","sendGAEventMaintenanceSignIn","sendGAEventErrorOnSignIn","monitorSlice","createSlice","initialState","cartSimulation","cartSimulationLoading","loadingCustomerOrder","customerOrder","reducers","simulateOrderRequested","simulateOrderRequestReceived","simulateOrderFailed","resetPlacedOrder","fetchOrderRequestStarted","fetchOrderRequestReceived","fetchOrderFailed","actions","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","toggleView","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","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","YoutubeVideo","link","StyledMarkdown","noContentForTheSelectedLanguage","favoriteApi","getFavorite","onQueryStarted","_authToken","queryFulfilled","favoriteFromServer","batch","setFavoriteProducts","setShouldSyncFavorites","err","updateFavorite","mutation","useGetFavoriteQuery","useUpdateFavoriteMutation","swipeableTextMobileStepper","swiperBox","bannerBox","imageBox","productImage","objectFit","buttonRoot","iconRoot","navButton","NavButtonIcon","KeyboardArrowRightIcon","KeyboardArrowLeftIcon","NavButton","iconStyle","ImageDialog","f","DialogContent","SwipeableMobileStepper","isDialog","dialogIndex","DialogActions","autoFocus","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","clearSearchQuery2","exclude","excludedSearchQueries","prev","menuItem","menuItemIcon","openTransform","categoryArea","up","catalog","bold","AppMenuItemComponent","NavLinkComponent","forwardRef","createNavLinkComponent","AppMenuItem","collections","onItemClick","selectCollection","level","collection","isExpandable","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","homeSectionCustomSolutionsTitel","textWrap","megaMenu","readMoreLink","readMore","borderRight","createTheme","MuiButtonBase","disableRipple","primary","main","secondary","grey","contrastThreshold","typography","body2","components","MuiInputBase","styleOverrides","borderColor","MuiOutlinedInput","MuiSelect","MuiButton","MuiLink","textDecorationColor","h1","_node","elementProps","h2","h3","h4","h5","_ref8","ReactMarkdown","rehypePlugins","rehypeRaw","remarkPlugins","remarkGfm","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","pickedByPro","newProductsForDevices","newProductsForVehicles","more","seeAll","hits","toggleLanguage","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","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","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","decreaseQuantity","increaseQuantity","deleteList","editList","unlisted","newName","selectProducts","noListIsEqualToOnlyFavorite","showUnlisted","showAllFavorites","seeProductVideo","playVideo","aboutProductDevelopment","aboutProclip","about","previousProductImage","nextProductImage","deleteListButton","signedInMenu","unavailable","cmtitle","cmmessage","cmbuttonText","cmdeclineButtonText","cmmanageButtonText","cmprivacyPolicyText","cmmanageTitle","cmmanageMessage","cmmanageEssentialTitle","cmmanageEssentialSubtitle","cmmanageEssentialStatus","cmmanageEssentialStatusButtonText","cmmanageAnalyticsTitle","cmmanageAnalyticsSubtitle","cmmanageSocialTitle","cmmanageSocialSubtitle","cmmanageAdvertTitle","cmmanageAdvertSubtitle","cmmanageCookiesStatus","cmmanageCookiesStatusConsented","cmmanageCookiesStatusDeclined","cmmanageCancelButtonText","cmmanageSaveButtonText","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","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","DeleteIcon","editCartNote","n","parseFloat","isFinite","parsed","setQuantity","priceSelectors","_state$user$steering","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","Specification","useProduct","column","Table","tableRoot","TableBody","TableRow","TableCell","grayText","Text","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","overflowWrap","NewlineText","newText","useMaterial","Material","MaterialRow","MaterialImageWrapper","MaterialText","MaterialImage","Title","Icon","capitalize","gray","clearCart","_result","useClearCartMutation","dialogOpen","setDialogOpen","ConfirmationDialog","closeModal","onConfirm","empty","openModal","DeleteForeverIcon","dialog","dialogButtonWrapper","dialogButton","dialogTextWrapper","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","Materials","materials","CustomerOrderInfo","ErrorMessage","handleClick","Snackbar","anchorOrigin","horizontal","vertical","autoHideDuration","ContentProps","VehicleNewsListPage","steeringGroup","vehicleNews","_news$products","_news$products2","MessageNotification","userMessage","messageInfo","setMessageInfo","closeSnackbar","messageProps","transitionProps","onExited","handleExited","TransitionProps","Alert","scroll","DynamicContentPage","parameterType","selectedType","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","youtubeNoConsent","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","detailedConsent","Row","padded","Advertising","consented","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","AccountCircleIcon","notLoggedInLinkList","loggedInLinkList","returnSlip","NoteIcon","shouldLink","HashLink","el1","dense","ArrowForward","el2","el3","signOut","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","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","CloseButton","ReadMoreLink","MessageBar","cookieClosed","loadCookie","isMounted","fetchAnnouncementMessage","fetchMessage","enabled","InfoIcon","barText","barLink","closeMessage","saveCookie","Navbar","setDrawerIsOpen","navbarRef","searchBoxRef","showingSearch","useIsShowingNavbarSearch","isAuth","windowSize","setHide","logConsent","consent","Id","Value","JSON","stringify","cookieKey","consentId","newId","crypto","randomUUID","setIsOnComparePage","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","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","productsArray","setName","isEditing","setIsEditing","tempName","setTempName","idArray","expandedAccordion","setExpandedAccordion","deleteFavortiteList","deleteFavoriteList","handleEditToggle","handleSave","_list$2","oldName","updateFavorites","handleCancel","_list$3","processedData","witdh","handleSelect","disableCloseOnSelect","clearText","disableUnderline","renderTags","Chip","CheckIcon","handleDelete","FavoriteProductsPage","setUserLists","updatedLists","falseProducts","useFilteredProducts","userFavorites","flat","showNotInList","setShowNotInList","notInList","y","errorOpen","setErrorOpen","toggleEdit","stepperWrapper","productsWrapper","noProductsBox","titleBox","youtubeVideo","noConsentYoutube","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","downloadUrl","finally","withdrawConsent","MessageBoxBase","Paragraph","MessageBox","User","_userData$name","MyPagesImage","toLocaleString","minimumFractionDigits","maximumFractionDigits","amount","CsvReader","callbackFn","csvFile","setCsvFile","submit","file","reader","FileReader","onload","delim","successfulRows","val","original","failedRows","correctedQuantity","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","Page","clearAllListItem","clearAllPrimary","clearAllSecondary","ProductEntryListItem","_prod$name","_prod$originalId","prod","ListItemAvatar","onCloseClick","CompareOverview","compareProds","visible","isOnComparePage","onClearClick","removeAllFromCompare","hideCompare","setShowCompareOverview","Fade","timeout","Minimize","FlashMessage","selectAllModtekProducts","selectAllRelatedProducts","promise","abort","startsWith","NewsLetter","siteKey","mail","words","fullString","word","moveToTopComparer","substringToTop","partialString","partialA","partialB","aIncludesWord","bIncludesWord","resultingOrder","every","foundWord","isObjectOnlyNull","obj","arr","func","groupingBy","targetId","foundObject","spacing1","spacing2","WelcomeSplash","TabPanel","RelatedProducts","MobileLoading","LoadingView","ProductInfo","openClass","shadows","defaultVales","modalOpen","setModalOpen","handleShareButtonClick","ShareIcon","Modal","handleModalClose","toEmail","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","distinctResult","userSlice","parse","setUser","showWelcomeSplash","closeWelcomeSplash","eraseCookie","setSteering","setSelectedModTek","signOutAction","closeWelcome","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","collectionReducer","pageSlice","searchReducer","search2Reducer","userMessageReducer","favoriteReducer","compareProductsReducer","reducer","contentApi","cartApi","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","youtubeConsent","noConsentTitle","consentWrapper","manageConsentButton","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","company","setCompany","setPhone","setEmail","setCountry","formValid","setFormValid","stripHtml","fetchContactData","renderContactSection","Person2Icon","PersonIcon","roles","MobHero","FullName","Company","Message","Country","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","fetchDealerByCountry","fetchDealerByCity","city","flatMap","dealers","dealer","webShop","Webpage","commonName","organization","visitAddress","zip","CarouselBase","ImageWrapper","scrollSnapType","SlideItem","scrollSnapAlign","SlideImage","ThumbnailWrapper","LightboxThumbnailWrapper","ThumbnailImage","Top","Youtube","LightboxYoutube","LightboxConsent","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","InformationRow","MaterialWrapper","DesktopProductInfoNew","usedTheme","setPlayVideo","renderProductInfo","importantInformation","techincalInformation","getTechnicalInformation","_technicalInformation","ti","languageShort","htmlText","instruction","lazy","PrivacyPolicy","App","_location$pathname$ma","setLanguage","subscribe","saveReducers","ErrorBoundary","FallbackComponent","componentStack","CookieManager","showManageButton","privacyPolicyUrl","translations","buttonText","declineButtonText","manageButtonText","privacyPolicyText","manageTitle","manageMessage","manageEssentialTitle","manageEssentialSubtitle","manageEssentialStatus","manageEssentialStatusButtonText","manageAnalyticsTitle","manageAnalyticsSubtitle","manageSocialTitle","manageSocialSubtitle","manageAdvertTitle","manageAdvertSubtitle","manageCookiesStatus","manageCookiesStatusConsented","manageCookiesStatusDeclined","manageCancelButtonText","manageSaveButtonText","StyledEngineProvider","injectFirst","ThemeProvider","PersistGate","Routes","Route","handleCloseError","AppWrapper","DefaultRoute","ReactDOM","render","Provider","Router","Suspense","fallback","getCart","cartFromServer","updateCart","parameters","serializedValue","cName","cookie","cStart","cEnd","getCookie","validityInHours","expireDate","now","maxAge","maximumAge","expires","toUTCString","createCookie","fetchProduct","fetchProducts","shouldRun","filterValue","fetchFilteredProducts","favoriteSlice","setAllFavoriteProducts","addFavoriteProduct","removeFavoriteProduct","removeFavoriteList","increaseLimit","savePage","setLimit","setOffset","setUserSelectedLimit","valueObject","filteredSearchQuery","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"],"mappings":"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ACV,CAAC7K,EAAMG,YAAYC,KAAK8R,OAAoB,CACxCrH,SAAU,eACVtK,IAAK,IAGbgiE,eAAgB,CACZ/hE,KAAM,YACN,CAACR,EAAMG,YAAYC,KAAK8R,OAAoB,CACxC1R,KAAM,aAGdo/F,YAAa,CACT9+F,WAAY,QACZC,SAAU,OACVC,WAAY,IACZC,WAAY,OACZC,cAAe,QACfT,eAAgB,OAChBxH,MAAO,UACP,CAAC+G,EAAMG,YAAYC,KAAK8R,OAAoB,CACxC1R,KAAM,WACNO,SAAU,SAGlB8+F,WAAY,CACR5qG,MAAO,OACPiL,QAAS,OACT,CAACF,EAAMG,YAAYC,KAAK8R,OAAoB,CACxChS,QAAS,cClPN,OAA0B,oCCElC,MAAM4/F,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,oBACFppG,MAAK,CAACC,EAAGC,IAAMD,EAAEE,cAAcD,EAAG,QAEvBmpG,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,QACA,UACA,YACA,gDACA,YACA,yBACA,YACA,eACA,aACA,UACA,UACA,UACA,WACA,iCACA,cACA,eACA,SACA,YACA,4BACA,QACA,2BACA,OACA,WACA,eACA,UACA,cACA,eACA,WACA,QACA,UACA,sBACA,SACA,SACA,WACA,UACA,SACA,qBACA,MACA,UACA,aACA,gBACA,iCACA,YACA,4BACA,8BACA,UACA,UACA,6BACA,QACA,QACA,UACA,YACA,SACA,WACA,YACFrpG,MAAK,CAACC,EAAGC,IAAMD,EAAEE,cAAcD,EAAG,Q,qFCjSrBopG,OAtMKA,KAChB,MAAM1qG,EAAWC,cACXgH,EAAW4G,eACVnI,EAAM22E,GAAWptD,IAAMrtB,SAAS,MACjC+L,EAAUC,KACV0jB,EAAe5jB,mBACfsjF,EAAUp9D,gBACT+2E,EAAgBC,GAAqBhpG,mBAAS,OAE9CipG,EAAUC,GAAelpG,mBAAS,KAClCmpG,EAASC,GAAcppG,mBAAS,KAChCsqC,EAAO++D,GAAYrpG,mBAAS,KAC5BsuB,EAAOg7E,GAAYtpG,mBAAS,KAC5BmyB,EAAS+gC,GAAclzD,mBAAS,KAChC+uC,EAASw6D,GAAcvpG,mBAAS,KAChCwpG,EAAWC,GAAgBzpG,oBAAS,GAerC0pG,EAAYl0F,GAEPA,EAAKjH,QADE,gBACa,IAG/B1N,qBAAU,KACN0oG,EAAW,GAAG,GACf,CAAClkG,IAiDJg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","file":"static/js/main.9f9dffdf.chunk.js","sourcesContent":["import { strings as Localization } from \"../../lib/Localization\"\r\nimport { addToFavoriteProducts, removeFromFavoriteProducts } from \"../../redux/favoriteSlice\"\r\nimport { useIsUserAuthorized, useUser, useUserAuthToken } from \"../../redux/hook/userHooks\"\r\nimport React, { useMemo, useState, useEffect } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nimport {\r\n Autocomplete, Box, Button, Dialog, IconButton, Popper, TextField, Tooltip\r\n} from \"@mui/material\"\r\nimport FavoriteIcon from \"@mui/icons-material/Favorite\"\r\nimport axios from \"axios\"\r\nimport { styled } from \"@mui/styles\"\r\n\r\nconst CustomPopper = styled(Popper)({\r\n \"&.MuiAutocomplete-popper\": {\r\n width: \"200px !important\",\r\n left: \"60px !important\"\r\n },\r\n \"& .MuiAutocomplete-listbox\": {\r\n width: \"200px\"\r\n }\r\n})\r\n\r\nfunction FavoriteButton({ productId }) {\r\n const dispatch = useDispatch()\r\n const favorites = useSelector(state => state.favorite.favoriteProducts)\r\n const user = useUser()\r\n const userLists = useMemo(\r\n () => [...[...Array.from(\r\n new Set(favorites.filter(x => x?.listName !== null && user.user.customerNumber === x.customerNumber).map(item => item?.listName))\r\n ).sort((a, b) => a.localeCompare(b))], Localization.yourFavorites],\r\n [favorites]\r\n )\r\n\r\n const [open, setOpen] = useState(false)\r\n const isAuthorized = useIsUserAuthorized()\r\n const isFavorited = useMemo(\r\n () => favorites.some(product => product.productId === productId && user.user.customerNumber === product.customerNumber),\r\n [favorites, productId]\r\n )\r\n const authToken = useUserAuthToken()\r\n const [selectedItems, setSelectedItems] = useState([Localization.yourFavorites])\r\n\r\n const handleOpen = () => setOpen(true)\r\n const handleClose = () => setOpen(false)\r\n const [options, setOptions] = useState(userLists)\r\n\r\n useEffect(() => {\r\n setOptions(userLists)\r\n }, [userLists])\r\n\r\n const handleChange = (_event, newValue, reason) => {\r\n if (reason === \"select-option\" || reason === \"create-option\") {\r\n const newOptions = Array.isArray(newValue)\r\n ? [...new Set([...options, ...newValue])]\r\n : [...new Set([...options, newValue])]\r\n setOptions(newOptions)\r\n }\r\n\r\n setSelectedItems(newValue)\r\n }\r\n\r\n const handleSave = async () => {\r\n try {\r\n const updatedItems = selectedItems.map(item => (item === Localization.yourFavorites ? null : item))\r\n\r\n const payload = {\r\n productId,\r\n listName: updatedItems\r\n }\r\n\r\n const response = await axios.post(`/api/favorite/CreateFavorite?authToken=${authToken}`, payload)\r\n response.data.response.map(x => dispatch(addToFavoriteProducts(x)))\r\n\r\n handleClose()\r\n } catch (error) {\r\n console.error(\"Error during save operation:\", error)\r\n }\r\n }\r\n\r\n const toggleFavorite = async () => {\r\n if (isFavorited) {\r\n dispatch(removeFromFavoriteProducts(productId))\r\n axios.post(`/api/favorite/DeleteFavorite?authToken=${authToken}`, { productId: productId })\r\n return\r\n }\r\n handleOpen()\r\n }\r\n\r\n return (\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 PopperComponent={CustomPopper}\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 FavoriteButton\r\n","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","/* 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","import { 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\nimport { styled } from \"@mui/styles\"\r\nimport { useCookieConsent } from \"react-cookie-manager\"\r\n\r\nconst ConsentWrapper = styled(\"div\")(() => (\r\n {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n gap: \"8px\",\r\n padding: \"20px\"\r\n }\r\n))\r\n\r\nconst ConsentTitle = styled(\"div\")(() => (\r\n {\r\n flex: \"0 1 100%\",\r\n textAlign: \"center\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\"\r\n }\r\n))\r\n\r\nconst ConsentButton = styled(\"button\")(() => (\r\n {\r\n fontWeight: 700,\r\n backgroundColor: \"#F09057\",\r\n border: 0,\r\n borderRadius: \"6px\",\r\n padding: \"5px 10px\",\r\n cursor: \"pointer\"\r\n }\r\n))\r\n\r\nconst ConsentMessage = () => {\r\n const { showConsentBanner } = useCookieConsent()\r\n\r\n return (\r\n \r\n \r\n {Localization.consentCookiesPrompt}\r\n \r\n \r\n {Localization.manageConsentButtonText}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ConsentMessage\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 { 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","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","/* 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 { 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 { 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 { 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 \"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 { 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 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 { 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","/* 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 cmtitle: \"\",\r\n cmmessage: \"This website uses cookies to enhance your experience.\",\r\n cmbuttonText: \"Accept\",\r\n cmdeclineButtonText: \"Decline\",\r\n cmmanageButtonText: \"Manage Cookies\",\r\n cmprivacyPolicyText: \"Privacy Policy\",\r\n cmmanageTitle: \"Cookie Preferences\",\r\n cmmanageMessage: \"Manage your cookie preferences below. Essential cookies are always enabled as they are necessary for the website to function properly.\",\r\n cmmanageEssentialTitle: \"Essential\",\r\n cmmanageEssentialSubtitle: \"Required for the website to function properly\",\r\n cmmanageEssentialStatus: \"Status: Always enabled\",\r\n cmmanageEssentialStatusButtonText: \"Always On\",\r\n cmmanageAnalyticsTitle: \"Analytics\",\r\n cmmanageAnalyticsSubtitle: \"Help us understand how visitors interact with our website\",\r\n cmmanageSocialTitle: \"Social\",\r\n cmmanageSocialSubtitle: \"Enable social media features and sharing\",\r\n cmmanageAdvertTitle: \"Advertising\",\r\n cmmanageAdvertSubtitle: \"Personalize advertisements and measure their performance\",\r\n cmmanageCookiesStatus: \"Status: {{status}} on {{date}}\",\r\n cmmanageCookiesStatusConsented: \"Consented\",\r\n cmmanageCookiesStatusDeclined: \"Declined\",\r\n cmmanageCancelButtonText: \"Cancel\",\r\n cmmanageSaveButtonText: \"Save Preferences\",\r\n consentCookiesPrompt: \"You need to consent to advertising cookies to be able to see this video\",\r\n manageConsentButtonText: \"Manage consent\"\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 cmtitle: \"\",\r\n cmmessage: \"Denna webbplats använder cookies för att förbättra din upplevelse.\",\r\n cmbuttonText: \"Acceptera\",\r\n cmdeclineButtonText: \"Avböj\",\r\n cmmanageButtonText: \"Hantera cookies\",\r\n cmprivacyPolicyText: \"Integritetspolicy\",\r\n cmmanageTitle: \"Cookie-inställningar\",\r\n cmmanageMessage: \"Hantera dina cookie-inställningar nedan. Nödvändiga cookies är alltid aktiverade eftersom de krävs för att webbplatsen ska fungera korrekt.\",\r\n cmmanageEssentialTitle: \"Nödvändiga\",\r\n cmmanageEssentialSubtitle: \"Krävs för att webbplatsen ska fungera korrekt\",\r\n cmmanageEssentialStatus: \"Status: Alltid aktiverad\",\r\n cmmanageEssentialStatusButtonText: \"Alltid på\",\r\n cmmanageAnalyticsTitle: \"Analys\",\r\n cmmanageAnalyticsSubtitle: \"Hjälper oss att förstå hur besökare interagerar med vår webbplats\",\r\n cmmanageSocialTitle: \"Sociala\",\r\n cmmanageSocialSubtitle: \"Aktivera funktioner för sociala medier och delning\",\r\n cmmanageAdvertTitle: \"Annonsering\",\r\n cmmanageAdvertSubtitle: \"Anpassa annonser och mäta deras prestanda\",\r\n cmmanageCookiesStatus: \"Status: {{status}} den {{date}}\",\r\n cmmanageCookiesStatusConsented: \"Godkänt\",\r\n cmmanageCookiesStatusDeclined: \"Avböjt\",\r\n cmmanageCancelButtonText: \"Avbryt\",\r\n cmmanageSaveButtonText: \"Spara inställningar\",\r\n consentCookiesPrompt: \"Du måste samtycka till cookies innan du kan se denna video.\",\r\n manageConsentButtonText: \"Hantera samtycke\"\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\";","export default __webpack_public_path__ + \"static/media/customizedSolutions.0f16880e.png\";","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","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 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 { 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 useMaterial from \"../../../../../redux/hook/materialHooks\"\r\nimport { strings as Localization } from \"../../../../../lib/Localization\"\r\nimport { mobileMenuBreakpoint } from \"../../../../../lib/helper/viewportHelper\"\r\nimport { CircularProgress } from \"@mui/material\"\r\n\r\nimport React from \"react\"\r\nimport { styled } from \"@mui/styles\"\r\n\r\nexport default function Material({ id }) {\r\n const material = useMaterial(id) // lägg på lang\r\n\r\n if (material === undefined) return \r\n\r\n const MaterialRow = styled(\"div\")(() => ({\r\n display: \"flex\",\r\n flex: \"0 1 100%\",\r\n flexWrap: \"wrap\",\r\n \"&:nth-child(even)\": {\r\n flexDirection: \"row-reverse\"\r\n }\r\n }))\r\n\r\n const MaterialImageWrapper = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flex: \"0 1 50%\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 1 100%\",\r\n justifyContent: \"center\"\r\n }\r\n }))\r\n\r\n const MaterialText = styled(\"div\")(({ theme }) => ({\r\n flex: \"0 1 50%\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 1 100%\"\r\n }\r\n }))\r\n\r\n const MaterialImage = styled(\"img\")(() => ({\r\n maxWidth: \"100%\"\r\n }))\r\n\r\n const Title = styled(\"div\")(() => ({\r\n fontWeight: 700,\r\n width: \"100%\",\r\n margin: \"8px 0\"\r\n }))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {material.name}\r\n
{material.information}
\r\n
\r\n
\r\n )\r\n}\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 { 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","import { useProduct } from \"../../../../redux/hook/productHooks\"\r\nimport Material from \"../components/Material\"\r\nimport useStyles from \"../styles\"\r\nimport React from \"react\"\r\nimport { Box } from \"@mui/material\"\r\n\r\nconst Materials = ({ productId }) => {\r\n const product = useProduct(productId)\r\n const list = product.materials\r\n const classes = useStyles()\r\n\r\n if (typeof list === \"undefined\" || list === null) return null\r\n\r\n return (\r\n \r\n {list.map((item, i) => (\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default Materials\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 { 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 youtubeNoConsent: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexWrap: \"wrap\",\r\n width: \"700px\",\r\n height: \"368px\",\r\n border: 0,\r\n borderRadius: 6,\r\n backgroundColor: \"#f6f6f6\",\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 ConsentMessage from \"../ConsentMessage/ConsentMessage\"\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\nimport { useCookieConsent } from \"react-cookie-manager\"\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 const { detailedConsent } = useCookieConsent()\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {detailedConsent?.Advertising.consented\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 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\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 { resetCurrentPage } from \"../../../../redux/pageReducer\"\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(resetCurrentPage())\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 { 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 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 { setIsOnComparePage } from \"../../redux/compareProductsReducer\"\r\nimport { loadCookie, saveCookie } from \"../../redux/cookieStorage\"\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\nimport { useCookieConsent } from \"react-cookie-manager\"\r\nimport axios from \"axios\"\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 const { detailedConsent } = useCookieConsent()\r\n\r\n const logConsent = (id, consent) => {\r\n const formData = {\r\n Id: id,\r\n Value: JSON.stringify(consent)\r\n }\r\n\r\n axios.post(\"/api/Consent\", formData)\r\n }\r\n\r\n useEffect(() => {\r\n if (detailedConsent) {\r\n const cookieKey = \"consent-id\"\r\n const consentId = loadCookie(cookieKey)\r\n\r\n if (!consentId) {\r\n const newId = crypto.randomUUID()\r\n saveCookie(cookieKey, newId, 4344)\r\n\r\n logConsent(newId, detailedConsent)\r\n } else {\r\n logConsent(consentId, detailedConsent)\r\n }\r\n }\r\n }, [detailedConsent])\r\n\r\n useEffect(() => {\r\n dispatch(setIsOnComparePage(false))\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 => 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 noConsentYoutube: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n aspectRatio: \"16 / 9\",\r\n width: \"100%\",\r\n backgroundColor: \"#f6f6f6\"\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 ConsentMessage from \"../../ConsentMessage/ConsentMessage\"\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\nimport { useCookieConsent } from \"react-cookie-manager\"\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 const { detailedConsent } = useCookieConsent()\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 && detailedConsent?.Advertising.consented)\r\n && (\r\n \r\n )}\r\n\r\n {(data.video && !detailedConsent?.Advertising.consented)\r\n && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {!data.video && (\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 { 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.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 correctedQuantity = row.quantity.replace(\",\", \".\")\r\n\r\n const isNumber = (\r\n !isNaN(parseFloat(correctedQuantity))\r\n && isFinite(correctedQuantity)\r\n )\r\n\r\n if (isNumber) {\r\n successfulRows.push(\r\n {\r\n ...row,\r\n quantity: parseInt(correctedQuantity, 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 { 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 { 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 { 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 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 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 { 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 { 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 { 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(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 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 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 { resetCurrentPage } from \"../../redux/pageReducer\"\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(resetCurrentPage())\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 { 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 { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst slice = createSlice({\r\n name: \"productCompare\",\r\n initialState: {\r\n productIds: [],\r\n showOverview: false,\r\n onComparePage: false\r\n },\r\n reducers: {\r\n addToCompare: (state, action) => {\r\n const result = [...state.productIds, action.payload]\r\n const distinctResult = [...new Set(result)]\r\n state.productIds = distinctResult\r\n },\r\n removeFromCompare: (state, action) => {\r\n state.productIds = [...state.productIds.filter(\r\n element => element !== action.payload\r\n )]\r\n },\r\n removeAllFromCompare: state => {\r\n state.productIds = []\r\n },\r\n setShowCompareOverview: (state, action) => {\r\n state.showOverview = action.payload\r\n },\r\n setIsOnComparePage: (state, action) => {\r\n state.onComparePage = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const {\r\n addToCompare,\r\n removeFromCompare,\r\n setShowCompareOverview,\r\n removeAllFromCompare,\r\n setIsOnComparePage\r\n} = slice.actions\r\n\r\nexport default slice.reducer\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 { 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 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 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 youtubeConsent: {\r\n display: \"flex\",\r\n aspectRatio: \"16 / 9\",\r\n flex: \"0 1 1400px\",\r\n backgroundColor: \"#f6f6f6\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n },\r\n noConsentTitle: {\r\n flex: \"0 1 100%\",\r\n textAlign: \"center\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\"\r\n },\r\n consentWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n gap: \"8px\"\r\n },\r\n manageConsentButton: {\r\n fontWeight: 700,\r\n backgroundColor: \"#F09057\",\r\n border: 0,\r\n borderRadius: \"6px\",\r\n padding: \"5px 10px\",\r\n cursor: \"pointer\"\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 ConsentMessage from \"../ConsentMessage/ConsentMessage\"\r\nimport React, { useState } from \"react\"\r\nimport { useMediaQuery, Box, Typography } from \"@mui/material\"\r\nimport { useCookieConsent } from \"react-cookie-manager\"\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 const { detailedConsent } = useCookieConsent()\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