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

{currentCollection.name}

\r\n {\r\n (loading && collectionStructure.collections.length <= 0)\r\n && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )\r\n }\r\n \r\n {\r\n currentCollection.collections.map(collection => {\r\n if (collection === undefined) return null\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n )\r\n : \"\"\r\n )\r\n\r\n const desktopLayout = (\r\n currentCollection && collectionStructure ? (\r\n \r\n {loading && collectionStructure.collections.length <= 0 && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )}\r\n {!midSize && (\r\n \r\n \"\"\r\n \r\n {Localization.homeSectionCustomSolutionsTitel}\r\n \r\n \r\n {Localization.megaMenu}\r\n \r\n \r\n {Localization.readMore}\r\n
\r\n \r\n )}\r\n <>\r\n {\r\n (loading && collectionStructure.collections.length <= 0)\r\n && (\r\n \r\n {Localization.loading}\r\n ...\r\n \r\n )\r\n }\r\n \r\n {history.map((col, i) => (\r\n \r\n {col.collections.map(collection => {\r\n if (collection === undefined) return null\r\n return (\r\n selectCollection(id, depth)}\r\n level={i}\r\n indent={0}\r\n onItemClick={onItemClick}\r\n history={history}\r\n />\r\n )\r\n })}\r\n \r\n ))}\r\n \r\n \r\n \r\n ) : \"\"\r\n )\r\n return isDesktop ? desktopLayout : mobileLayout\r\n}\r\n\r\nexport default Menu2\r\n","import React from \"react\"\r\nimport ReactMarkdown from \"react-markdown\"\r\nimport rehypeRaw from \"rehype-raw\"\r\nimport remarkGfm from \"remark-gfm\"\r\nimport { Box, Typography } from \"@mui/material\"\r\n\r\nconst components = {\r\n h1: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h2: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h3: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h4: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n h5: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n p: ({ _node, ...elementProps }) => (\r\n \r\n ),\r\n img: ({ _node, ...elementProps }) => (\r\n \r\n \"\"\r\n \r\n )\r\n}\r\n\r\nconst StyledMarkdown = ({ style, ...remainingProps }) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default StyledMarkdown\r\n","import { createTheme } from \"@mui/material\"\r\nimport { grey } from \"@mui/material/colors\"\r\n\r\nexport default createTheme({\r\n props: {\r\n MuiButtonBase: {\r\n disableRipple: true\r\n }\r\n },\r\n palette: {\r\n primary: {\r\n main: \"#F09057\"\r\n },\r\n secondary: {\r\n main: grey[500]\r\n },\r\n contrastThreshold: 3,\r\n background: {\r\n default: \"#fafafa\"\r\n }\r\n },\r\n typography: {\r\n body2: {\r\n fontSize: \"1rem\"\r\n }\r\n },\r\n components: {\r\n MuiInputBase: {\r\n styleOverrides: {\r\n root: {\r\n \"&.Mui-focused\": {\r\n borderColor: \"#6C6C6C\"\r\n }\r\n }\r\n }\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: {\r\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\r\n border: \"1px solid #2d2d2d\"\r\n }\r\n }\r\n }\r\n },\r\n MuiSelect: {\r\n styleOverrides: {\r\n select: {\r\n \"&.MuiSelect-standard\": {\r\n borderBottom: \"1px solid #2d2d2d\"\r\n }\r\n }\r\n }\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n color: \"#2d2d2d\",\r\n borderColor: \"#2d2d2d\"\r\n }\r\n }\r\n },\r\n MuiLink: {\r\n styleOverrides: {\r\n root: {\r\n color: \"#2d2d2d\",\r\n borderColor: \"#2d2d2d\",\r\n textDecorationColor: \"#2d2d2d\",\r\n fontWeight: 600\r\n }\r\n }\r\n }\r\n }\r\n})\r\n","import { priceAdapter } from \"./adapter/priceAdapter\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst slice = createSlice({\r\n name: \"price\",\r\n initialState: priceAdapter.getInitialState({\r\n errors: []\r\n }),\r\n reducers: {\r\n clearAll: state => {\r\n priceAdapter.removeAll(state);\r\n },\r\n clearErrors: state => ({\r\n ...state,\r\n errors: []\r\n }),\r\n add: (state, action) => {\r\n priceAdapter.addMany(state, action.payload);\r\n }\r\n }\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\nconst { clearAll, clearErrors, add } = slice.actions;\r\n\r\nexport const clearPrices = () => dispatch => dispatch(\r\n clearAll()\r\n)\r\n\r\nexport const clearPriceErrors = () => dispatch => dispatch(\r\n clearErrors()\r\n)\r\n\r\nexport const addPrices = prices => dispatch => dispatch(\r\n add(prices)\r\n)\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n \"@keyframes rotate\": {\r\n \"0%\": {\r\n transform: \"rotate(0deg)\"\r\n },\r\n \"100%\": {\r\n transform: \"rotate(180deg)\"\r\n }\r\n },\r\n working: {\r\n animation: `$rotate 1s ${theme.transitions.easing.easeInOut} infinite`\r\n },\r\n buttonRoot: {\r\n minWidth: \"auto\"\r\n },\r\n outlinedSmall: {\r\n padding: \"1px 9px\"\r\n },\r\n qtyField: {\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: 5,\r\n paddingBottom: 5\r\n }\r\n },\r\n input: {\r\n fontSize: \"1rem!important\"\r\n },\r\n textField: {\r\n height: \"31px\",\r\n \"& .MuiInput-root\": {\r\n paddingBottom: \"0px!important\"\r\n },\r\n \"& .MuiOutlinedInput-inputAdornedEnd\": {\r\n paddingRight: \"0px!important\"\r\n },\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: \"0px!important\",\r\n paddingBottom: \"0px!important\"\r\n },\r\n \"& .MuiOutlinedInput-input\": {\r\n padding: \"0px!important\"\r\n },\r\n \"& .MuiInputBase-inputMarginDense\": {\r\n paddingTop: \"0px!important\"\r\n },\r\n \"& .MuiInputBase-input\": {\r\n padding: \"0px!important\",\r\n paddingLeft: \"4px!important\",\r\n textAlign: \"center\",\r\n height: \"29px\",\r\n width: 70\r\n }\r\n },\r\n quickshopWrapper: {\r\n display: \"flex\",\r\n position: \"fixed\",\r\n bottom: \"20px\",\r\n left: \"20px\",\r\n right: \"20px\",\r\n height: \"40px\",\r\n borderRadius: \"20px 20px 20px 20px\",\r\n backgroundColor: \"transparent\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n overflow: \"hidden\"\r\n },\r\n hide: {\r\n visibility: \"hidden\"\r\n },\r\n quickshopButton: {\r\n position: \"absolute\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n width: \"40px\",\r\n height: \"40px\",\r\n backgroundColor: \"#F09057\",\r\n justifySelf: \"flex-end\",\r\n borderRadius: \"50%\",\r\n border: 0,\r\n cursor: \"pointer\",\r\n transition: \"0.1s all ease-in\"\r\n },\r\n quickshopContent: {\r\n fontFamily: \"rubik\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n width: 0,\r\n backgroundColor: \"#F09057\",\r\n transition: \"0.2s all ease-out\",\r\n borderRadius: \"20px\",\r\n overflow: \"hidden\",\r\n paddingLeft: \"20px\",\r\n gap: \"5px\",\r\n maxWidth: \"300px\"\r\n },\r\n open: {\r\n width: \"100%\",\r\n paddingRight: \"40px\"\r\n },\r\n roundButton: {\r\n fontFamily: \"rubik\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n appearance: \"none\",\r\n color: \"white\",\r\n borderRadius: \"50%\",\r\n fontSize: \"16px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n backgroundColor: \"transparent\",\r\n border: 0,\r\n fontWeight: 700,\r\n cursor: \"pointer\",\r\n \"&:disabled\": {\r\n opacity: 0.8,\r\n cursor: \"auto\"\r\n }\r\n },\r\n quickshopInput: {\r\n flex: \"1 1 auto\",\r\n fontFamily: \"rubik\",\r\n fontSize: \"16px\",\r\n border: 0,\r\n padding: \"4px\",\r\n borderRadius: \"2px\",\r\n width: 0,\r\n \"&::placeholder\": {\r\n color: \"#2d2d2d\"\r\n },\r\n \"&::-webkit-outer-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&::-webkit-inner-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.8\r\n }\r\n },\r\n quantityInput: {\r\n fontFamily: \"rubik\",\r\n fontSize: \"16px\",\r\n width: \"20px\",\r\n textAlign: \"center\",\r\n padding: \"4px\",\r\n borderRadius: \"2px\",\r\n border: 0,\r\n appearance: \"none\",\r\n \"&::-webkit-outer-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&::-webkit-inner-spin-button\": {\r\n appearance: \"none\"\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.8\r\n }\r\n },\r\n submitButton: {\r\n display: \"flex\",\r\n fontFamily: \"rubik\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"white\",\r\n border: 0,\r\n borderRadius: \"5px\",\r\n color: \"#2d2d2d\",\r\n cursor: \"pointer\",\r\n padding: \"5px\",\r\n \"&:disabled\": {\r\n opacity: 0.8,\r\n cursor: \"auto\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { addToCart } from \"../../redux/cartSlice\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport { checkMonitorArticles } from \"../../lib/helper/userHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Button, TextField, Tooltip } from \"@mui/material\"\r\nimport React, { useEffect, useState, useRef } from \"react\"\r\n\r\nconst SpeedOrder = ({ articleNumber }) => {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const [loading, setLoading] = useState(false)\r\n const lang = useLanguage()\r\n const ref = useRef()\r\n\r\n const defaultValues = {\r\n articleNumber: null,\r\n quantity: 1\r\n }\r\n\r\n const {\r\n register, setValue, handleSubmit, watch\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n // First render\r\n useEffect(() => {\r\n setValue(\"articleNumber\", articleNumber)\r\n }, [])\r\n\r\n // Handle a new search -> component is not mounted; but prop has changed.\r\n useEffect(() => {\r\n setValue(\"articleNumber\", articleNumber)\r\n }, [articleNumber])\r\n\r\n const parse = i => parseInt(i, 10)\r\n\r\n const onSubmit = data => {\r\n checkMonitorArticles(lang, [data.articleNumber], result => {\r\n if (!result.includes(data.articleNumber) && data.quantity > 0) {\r\n const q = parse(data.quantity)\r\n dispatch(addToCart(data.articleNumber, q))\r\n dispatch(setSnackbarMessage(`${Localization.itemNumber} ${data.articleNumber} ${Localization.hasBeenAddedToCart}`, \"success\"))\r\n } else if (data.quantity === 0) {\r\n dispatch(setSnackbarMessage(Localization.articleCouldNotBeAddedQuantityZero, \"error\"))\r\n } else {\r\n dispatch(setSnackbarMessage(`${Localization.itemNumber} ${data.articleNumber} ${Localization.couldNotBePlacedInCart}`, \"error\"))\r\n }\r\n }, setLoading)\r\n\r\n ref.current?.focus()\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {Localization.addToCart}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SpeedOrder\r\n","export default __webpack_public_path__ + \"static/media/customizedSolutions.0f16880e.png\";","/* eslint-disable import/prefer-default-export */\r\nimport LocalizedStrings from \"react-localization\"\r\n\r\nexport const strings = new LocalizedStrings({\r\n en: {\r\n onlyOnlineShops: \"See only online shops\",\r\n findLocalRetailer: \"Find your local retailer\",\r\n viaOurDistributors: \"Brodit products are available via our distributors.\",\r\n pdfFiles: \"PDF-files\",\r\n compatibleProducts: \"Compatible models\",\r\n back: \"Go back\",\r\n showSearch: \"Show search area\",\r\n hideSearch: \"Hide search area\",\r\n tabInformation: \"Information\",\r\n moreInformation: \"More information\",\r\n tabSpecification: \"Specification\",\r\n tabCompability: \"Fits for\",\r\n tabInstructions: \"Instructions\",\r\n tabRelatedProducts: \"Accessories\",\r\n tabRelatedFiles: \"Documents\",\r\n noRelatedFiles: \"There are no documents for this product\",\r\n noAccessories: \"There are no accessories for this product.\",\r\n thereAreNoVideosForThisProduct: \"There are no videos for this product.\",\r\n itemNumber: \"Item no\",\r\n loadingMaterial: \"Loading material\",\r\n features: \"Features\",\r\n fasteners: \"Fasteners\",\r\n compabilities: \"Fits the following models\",\r\n thisProductIsNotModelSpecific: \"This product is not model specific\",\r\n loadingCompabilities: \"Loading compabilities\",\r\n loadingProperties: \"Loading properties\",\r\n properties: \"Properties\",\r\n propertiesNoneExist: \"No properties apply to this product.\",\r\n instructions: \"Instructions for\",\r\n chargingSpecification: \"Charging specifications\",\r\n error: \"Error\",\r\n unknownErrorCreatingOrder: \"Unknown error creating order.\",\r\n showMore: \"Show more\",\r\n showLess: \"Show less\",\r\n noMaterialsAssigned: \"No features are assigned to this product.\",\r\n comingSoon: \"Coming soon\",\r\n loadingProduct: \"Loading product\",\r\n createLeaflet: \"Create leaflet\",\r\n print: \"Print\",\r\n compare: \"Compare\",\r\n isComparing: \"is being compared\",\r\n share: \"Share\",\r\n loading: \"Loading\",\r\n image: \"Image\",\r\n addToCart: \"Add to cart\",\r\n eanNumber: \"EAN-number\",\r\n productInformation: \"Product information\",\r\n addToFavorites: \"Add to favorites\",\r\n removeFromFavorites: \"Remove from favorites\",\r\n yourFavorites: \"Favorites\",\r\n newProduct: \"New product\",\r\n pickedByPro: \"Picked By Pro\",\r\n newProductsForDevices: \"New products for devices\",\r\n newProductsForVehicles: \"New products for vehicles\",\r\n more: \"More\",\r\n moreSmall: \"...more\",\r\n close: \"Close\",\r\n seeAll: \"Show all\",\r\n hits: \"hits\",\r\n toggleLanguage: \"Toggle language\",\r\n user: \"User\",\r\n cart: \"Cart\",\r\n toggleView: \"Toggle view\",\r\n logIn: \"Sign in\",\r\n email: \"E-mail\",\r\n password: \"Password\",\r\n repeatPassword: \"Repeat password\",\r\n changePassword: \"Change password\",\r\n forgotPassword: \"Forgot password\",\r\n passwordsMustMatch: \"The passwords must match\",\r\n forgotPasswordNotification: \"A mail for resetting the password has been sent to the given email if it exist in our system. The link is vaild for 30min.\",\r\n checkYourLoginDetails: \"Check your login details and try again.\",\r\n product: \"Product\",\r\n theProduct: \"The product\",\r\n hasBeenAddedToCart: \"has been added to the cart.\",\r\n addressDetails: \"Address details\",\r\n confirmation: \"Confirmation\",\r\n yourCart: \"Your cart\",\r\n checkOrderDetails: \"Please check your order carefully to make sure everything is correct.\",\r\n summary: \"Summary\",\r\n numberOfOrderLines: \"Number of order lines\",\r\n totalQuantity: \"Total quantity\",\r\n total: \"Total\",\r\n emptyCart: \"Empty cart\",\r\n addNote: \"Add note\",\r\n note: \"Note\",\r\n quantity: \"Order qty\",\r\n qty: \"Qty\",\r\n price: \"Price\",\r\n backToShop: \"Back to shop\",\r\n backToCart: \"Back to cart\",\r\n toCheckout: \"To checkout\",\r\n submitOrder: \"Submit order\",\r\n myDetails: \"My details\",\r\n customerNumber: \"Customer number:\",\r\n name: \"Name:\",\r\n messageToBrodit: \"Message to Brodit\",\r\n purchaseOrder: \"Purchase order | Marking\",\r\n orderPlacedBy: \"Order placed by | Reference\",\r\n emailForOrderConfirmation: \"E-mail (for order confirmation)\",\r\n standardShippingAddress: \"Standard shipping address\",\r\n billingAddress: \"Billing address\",\r\n orderConfirmation: \"Order confirmation\",\r\n thankYouForOrder: \"Thank you for ordering from Brodit!\",\r\n orderIsProcessing: \"Your order is now being processed. You will receive a confirmation via e-mail soon.\",\r\n orderNumber: \"Order number\",\r\n orderDate: \"Order date\",\r\n orderEmail: \"Order e-mail\",\r\n shippingAddress: \"Shipping address\",\r\n reference: \"Reference\", // Kanske inte nödvändig, ett datafält egentligen\r\n shop: \"Shop\",\r\n shopViaReseller: \"You can buy Brodit's products via reseller\",\r\n findReseller: \"Find a reseller\",\r\n becomeReseller: \"Become a distributor\",\r\n new: \"New\",\r\n news: \"News\",\r\n showMoreNews: \"Older news\",\r\n couldNotFindTheSelectedNewsArticle: \"Could not find the selected news article\",\r\n newHolders: \"New Holders\",\r\n newProclip: \"New ProClip\",\r\n newsLetter: \"Newsletter\",\r\n aboutBrodit: \"About Brodit\",\r\n broditsStory: \"Brodit's story\",\r\n broditsMovie: \"Brodit's movie\",\r\n cookies: \"Cookies\",\r\n values: \"Values\",\r\n policies: \"Policies\",\r\n integrityPolicy: \"Integrity policy\",\r\n contact: \"Contact\",\r\n contactBrodit: \"Contact Brodit\",\r\n hello: \"Hello\",\r\n contactBroditVia: \"Contact Brodit via \",\r\n ifYouWantToChangeAnyInformation: \" if you wish to change any information.\",\r\n hereIsYourUserInfo: \"Here is your user info.\",\r\n workAtBrodit: \"Work at Brodit\",\r\n findBrodit: \"Find Brodit\",\r\n noArticlesInCart: \"You have no articles in the cart.\",\r\n yourOrders: \"My orders\",\r\n yourReference: \"Your reference\",\r\n registered: \"Registered\",\r\n printed: \"Printed\",\r\n deliveryTimeCannotBeConfirmed: \"Delivery time cannot be confirmed\",\r\n processing: \"Processing\",\r\n partiallyDelivered: \"Partly dispatched\",\r\n deliveryComplete: \"Dispatched\",\r\n date: \"Date\",\r\n order: \"Order\",\r\n orderWasPlaced: \"Order is placed, please check your email for order confirmation.\",\r\n status: \"Status\",\r\n track: \"Track\",\r\n marking: \"Marking\",\r\n numberOfProducts: \"Number of products\",\r\n trackShipment: \"Track shipment\",\r\n backToOrderList: \"Back to order list\",\r\n sentQuantity: \"Sent quantity\",\r\n anErrorOccuredTryRelogging: \"An error occured. Try logging in again.\",\r\n published: \"Published\",\r\n toggleSortOrder: \"Toggle sort order\",\r\n sort: \"Sort by\",\r\n searchOnDevice: \"Choose device\",\r\n searchOnVehicle: \"Choose vehicle\",\r\n searchOnModel: \"Choose model\",\r\n searchOnModelYears: \"Choose year\",\r\n device: \"Device\",\r\n vehicle: \"Vehicle\",\r\n showImages: \"Show more images\",\r\n howToInstall: \"How to install\",\r\n phone: \"Phone\",\r\n fax: \"Fax\",\r\n thisSiteUsesCookies: \"This site uses Cookies.\",\r\n readMore: \"Read more\",\r\n readMoreInThePrivacyPolicy: \"Read more in the Privacy policy.\",\r\n iAccept: \"I accept\",\r\n IHaveReadAndAcceptTheTerms: \"I have read and agree to the terms.\",\r\n iHaveReadAndAgreeTo: \"I have read and agree to\",\r\n broditABsConditionsAndTermsOfSale: \"Brodit ABs conditions and terms of sale\",\r\n information: \"Information\",\r\n companyAdress: \"Company\",\r\n purchase: \"Purchase\",\r\n delivery: \"Delivery\",\r\n validate: \"Validate\",\r\n cancel: \"Cancel\",\r\n register: \"Register\",\r\n backwards: \"Back\",\r\n next: \"Next\",\r\n companyName: \"Company name\",\r\n organisationNumber: \"Organisation number\",\r\n website: \"Website\",\r\n contactPerson: \"Contact person\",\r\n phonenumber: \"Phone number\",\r\n streetAddress: \"Street address\",\r\n postalCode: \"Postal code\",\r\n town: \"Town\",\r\n boxDeliveryAddress: \"Box delivery address\",\r\n deliveryAddress: \"Delivery address\",\r\n postalAddress: \"Postal address\",\r\n companySignatory: \"Company signatory\",\r\n attachUpToDateRegistrationCertificateFromBolagsverketAsAFile: \"Attach up to date registration certificate from Bolagsverket (PRV) as a file in PDF-format.\",\r\n chooseAFile: \"Choose a file\",\r\n noFileHasBeenSelected: \"No file has been selected.\",\r\n pleaseAcceptTheTermsAndConditionsAboveToContinue: \"Please accept the terms and conditions above to continue.\",\r\n pleaseFillInThisCheckBox: \"Please fill in this check box.\",\r\n sendApplication: \"Send application\",\r\n forParcelDelivery: \"For parcel delivery\",\r\n forInvoiceThroughPdfBroditOnlySendsInvoicesThroughEmail: \"for invoice in PDF format (Brodit only sends invoices through email)\",\r\n yourApplicationHasBeenSent: \"Your application has been sent.\",\r\n aProblemOccuredWhileProccessingYourApplication: \"A problem occured while proccessing your application.\",\r\n pleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists: \" Please try again later or contact Brodit if the problem persists.\",\r\n couldNotConnectToTheServer: \"Could not connect to the server.\",\r\n aProblemOccuredWhileProccessingYourApplicationPleaseTryAgainLaterOrContactBroditsSupportIfTheProblemPersists: \"A problem occured while proccessing your application. Please try again later or contact Brodits support if the problem persists.\",\r\n models: \"Model\",\r\n modelYears: \"Model year\",\r\n otherModels: \"Other models\",\r\n products: \"Products\",\r\n allProducts: \"All products\",\r\n loadMore: \"Load more\",\r\n searchResults: \"Search results\",\r\n youSearchedFor: \"You searched for\",\r\n search: \"Search\",\r\n searchUpperCase: \"SEARCH\",\r\n searchForProducts: \"Search for products\",\r\n premiereNewOnlineShop: \"Premiere new online shop\",\r\n beforeYouLogInInfo: \"Updated shop requires updated password... Reset your password before logging in the first time (use the feature below). Thank you!\",\r\n returnNote: \"Return note\",\r\n logOut: \"Sign out\",\r\n year: \"Year\",\r\n chooseYear: \"CHOOSE YEAR\",\r\n deselectAll: \"DESELECT ALL\",\r\n showOrHideFilters: \"Show or hide filters\",\r\n yourEmail: \"Your e-mail\",\r\n yourName: \"Your name\",\r\n receiversEmail: \"Receivers e-mail\",\r\n message: \"Message\",\r\n shareThis: \"Share this\",\r\n orderByFile: \"Order by file\",\r\n orderByFileInfoParagraph1: \"For easier order placement you can upload an order-file into our web shop. You can export the file from your own system, and then upload it directly into your cart. This saves you time and eliminates type errors!\",\r\n orderByFileInfoParagraph2: \"Specifications: The file must be a comma separated text file. Usually, it is easiest to save your file as a csv-file directly from Excel or similar applications, but any text file will work as long as the numbers are delimited by commas or semi-colons. The file should contain item numbers and quantities only (Column A: Item no, Column B: Quantity)\",\r\n upload: \"Upload\",\r\n clearYourCartFirst: \"You already have items in your cart. Please clear it to continue.\",\r\n orderWasImported: \"Your order is now imported to the cart.\",\r\n errorReadingOrderFile: \"There was an error reading the order import file. Please try another file.\",\r\n clear: \"Clear\",\r\n chosenFile: \"Chosen file\",\r\n notIncludedArticlesMessage: \"The following articles are not found or not for sale\",\r\n couldNotBePlacedInCart: \"could not be placed in cart, it is not for sale or does not exist.\",\r\n yourPasswordHasBeenChanged: \"Your password has been changed.\",\r\n ifYouHaveProblemsWithYourCartResetIt: \"If you have problems with your cart, you can click here to reset it.\",\r\n youHaveSharedTheProduct: \"You have shared the product.\",\r\n somethingWentWrongWhenSharingProduct: \"Something went wrong when sharing the product.\",\r\n recaptchaError: \"Something went wrong with Recaptcha.\",\r\n unknownError: \"An unknown error occured.\",\r\n articleCouldNotBeAddedQuantityZero: \"The article cannot be added with quantity zero.\",\r\n experiencingProblemsWithCart: \"Experiencing problems with the cart? \",\r\n clickHere: \"Click here\",\r\n toResetYourCart: \" to reset (empty) it.\",\r\n endingSoon: \"Ending Soon\",\r\n chooseCity: \"CHOOSE CITY\",\r\n shopOnline: \"Shop online\",\r\n notFound: \"Not found\",\r\n thisPageWasNotFoundGoBackTo: \"This page was not found. Go to \",\r\n home: \"Mounting platform specialist!\",\r\n phasingOut: \"Few left\",\r\n brands: \"Brand\",\r\n showAmount: \"Show amount\",\r\n yourSearchGenerated: \"Your search generated\",\r\n account: \"Account\",\r\n fileDownload: \"File download\",\r\n yourAccount: \"My account\",\r\n language: \"Language\",\r\n english: \"English\",\r\n swedish: \"Swedish\",\r\n german: \"German\",\r\n includePrices: \"Include prices\",\r\n updatesOnly: \"Updates only\",\r\n newItems: \"New items\",\r\n changedItems: \"Changed items\",\r\n deletedItems: \"Deleted items\",\r\n isDeleted: \"Is deleted\",\r\n isDiscontinuedAndNoLongerAvailable: \"is discontinued and is no longer available\",\r\n removeAll: \"Remove all\",\r\n removeItem: \"Remove item\",\r\n youMustChooseAType: \"You must choose a type of data.\",\r\n formatShouldBeISO8601: \"Format should be YYYY-MM-DD.\",\r\n download: \"Download\",\r\n errorWhenAttemptingToDownloadFile: \"Error when attempting to download file.\",\r\n type: \"Type\",\r\n noContentForTheSelectedLanguage: \"No content for the selected language.\",\r\n fromDate: \"From date\",\r\n webshopForBroditResellers: \"Online shop for Brodit distributors\",\r\n continueShopping: \"Continue shopping\",\r\n toSellBroditProducts: \"To sell Brodit products\",\r\n retailerApplicationText: `Brodit is represented worldwide via experienced\r\n and valued distributors. For unrepresented countries, there’s an opening\r\n for companies who are passionate about service, quality and innovative\r\n ideas. If that applies to you, please tell us about your current\r\n business areas as well as your visions for Brodit products in your\r\n country in an e-mail to exportsales@brodit.se. Thank you!`,\r\n thisProductIsNotAvailableOrder: \"This item is included in your order but you can only see the item number, you can not see the product name or what it fits for.\",\r\n country: \"Country\",\r\n useTemporaryAddress: \"Send this order to a temporary shipping address\",\r\n zipAndCity: \"Zip and city\",\r\n address: \"Address\",\r\n productNotFound: \"Product not found\",\r\n weCouldNotFindThisProductEtc: \"We could not find this product. The product does not exist.\",\r\n forInstanceKarlsborg: \"I.e. \\\"54634 Karlsborg\\\"\",\r\n asLoggedInUserYouCanWithdraw: \"You can withdraw your consent at any time at your user profile or on the Privacy page under Documents.\",\r\n ifYouWantToWithdrawConsent: \"If you want to withdraw your consent to cookies, click \",\r\n here: \"here\",\r\n youMustThenAcceptTheTermsAgain: \"You must then accept the privacy terms again to be able to sign in.\",\r\n tryResettingPasswordAgain: \"It seems like the token is not valid. Try resetting your password again.\",\r\n fileDownloadIsNotAvailable: \"File download is under development and is not available for now.\",\r\n displaying: \"Displaying\",\r\n outOf: \"out of\",\r\n results: \"results\",\r\n apiKey: \"API key\",\r\n badRequestFileDownload: \"Error in input when downloading file. Is API key in correct format?\",\r\n unAuthorizedFileDownload: \"Error trying to verify API key when downloading file. Check with Brodit that you are allowed to download file.\",\r\n compareProducts: \"Compare products\",\r\n noProductsToCompare: \"No products has been added for compare\",\r\n description: \"Description\",\r\n placement: \"Placement\",\r\n fitsFor: \"Fits for\",\r\n technicalInformation: \"Technical information\",\r\n dimensionsAndWeight: \"Dimensions & weight\",\r\n width: \"Width\",\r\n height: \"Height\",\r\n depth: \"Depth\",\r\n weight: \"Weight\",\r\n volume: \"Volume\",\r\n yes: \"Yes\",\r\n no: \"No\",\r\n compareMaxThreeArticles: \"You can compare up to three articles at a time.\",\r\n compareMaxTwoArticles: \"You can only compare two articles\",\r\n toComparison: \"To comparison\",\r\n notApplicable: \"Not applicable\",\r\n clearAllProducts: \"Clear all products\",\r\n endComparison: \"End comparison\",\r\n thisProductIsNoLongerAvailable: \"This product is no longer available.\",\r\n parcel: \"Parcel\",\r\n orderSystemMaintenance: \"Our order system is currently under maintenance. During this time you can't login and use some services on the site. Refresh the page in a while and try again. Sorry for the inconvenience.\",\r\n systemMaintenanceTryAgainLater: \"There is currently a system maintenance, please try again later.\",\r\n theProductWasReplacedWithFollowingProductProducts: \"The product was replaced by the following product(s).\",\r\n wasReplacedByFollowingArticles: \" was replaced by the following articles.\",\r\n itWasReplacedByTheFollowingArticles: \"It was replaced by the following articles: \",\r\n action: \"Action\",\r\n unregister: \"Unregister\",\r\n save: \"Save\",\r\n yourSubscriptionHasBeenUpdated: \"Your newsletter subscription has been updated.\",\r\n somethingWentWrong: \"Something went wrong.\",\r\n whereCanIBuy: \"Where can I buy?\",\r\n thePasswordMustAlsoComplyToTheFollowingRules: \"The password must comply to the following rules:\",\r\n containMinimumSixCharacters: \"Contain minimum six characters\",\r\n containUpperCaseCharacters: \"Contain uppercase characters\",\r\n containLowerCaseCharacters: \"Contain lowercase characters\",\r\n containANumber: \"Contain a number\",\r\n containAFigure: \"Contain a special character\",\r\n productIsNotAvailable: \"Product is not available\",\r\n withdrawingCookiesConsent: \"Withdrawing cookies consent...\",\r\n redirectingToStartPage: \"Redirecting to start page...\",\r\n video: \"Video\",\r\n startPage: \"landing page\",\r\n maximum30Letters: \"This field can contain maximum 30 letters.\",\r\n downloadCatalog: \"Download catalog\",\r\n homeSection1Titel: \"Model specific Two-Part Solution\",\r\n homeSection1Text: \"Our ProClip and Device Holders are custom-designed for both your device and your specific vehicle model. The ProClip is seamlessly installed into the interior gaps without causing any damage or permanent modifications. Find the solution tailored to your needs using our search tool below. If you can't find what you're looking for, please contact us, and we'll be happy to assist you further.\",\r\n findRightProclip: \"Find the right ProClip for your vehicle\",\r\n findRightHolder: \"Holder for your device\",\r\n homeSection2Titel: \"Stronger Mounting Solutions\",\r\n homeSection2Text: \"Are you using a tablet, barcode scanner, payment terminal, or any other mobile device that needs to be mounted in a forklift, construction machine, or a truck? Whatever your needs are, we have a solution for you! With our wide range of products, we offer customized solutions for all types of environments, whether it's in the office, warehouse, or even in the air. We ensure that your devices are within reach, even under the most challenging conditions.\",\r\n homeSectionPedestalHolderTitel: \"Pedestal Mounts\",\r\n homeSectionPedestalHolderText: \"Modular, lightweight, and exceptionally strong - that's our range of aluminum pedestals designed for mounting heavier devices for everyday use in demanding environments.\",\r\n homeSectionPedestalHolderLinkText: \"Learn more about pedestal mounts\",\r\n homeSectionPipeHolderTitel: \"Pipe Mounts\",\r\n homeSectionPipeHolderText: \"Robust Pipe Mounts that easily attach to pipes and bars. Their applications are versatile, ranging from trucks, forklifts, carts, boats to airplanes.\",\r\n homeSectionPipeHolderLinkText: \"Learn more about pipe mounts\",\r\n homeSectionTruckHolderTitel: \"Forklift Mounts\",\r\n homeSectionTruckHolderText: \"Warehouse environments often involve heavy equipment and demanding conditions. For device mounting in these environments, sturdy mounts capable of withstanding stress and vibrations are required.\",\r\n homeSectionTruckHolderLinkText: \"Learn more about forklift mounts\",\r\n homeSectionCustomSolutionsTitel: \"Customized Solutions\",\r\n homeSectionCustomSolutionsText: \"At our factory in Karlsborg, Sweden, both development and manufacturing take place. If your company or operation has specific needs and requirements, our team of designers is ready to collaborate with you to create tailored solutions and products.\",\r\n howIsItMade: \"Read more\",\r\n homeSection4Text: \"The market introduces new vehicles and devices daily. For over four decades we've equipped ourselves with the knowledge and network required to rapidly develop, manufacture, and deliver products to a market that is constantly evolving.\",\r\n deviceHolder: \"Device Holders\",\r\n proclip: \"ProClip\",\r\n seeProduct: \"Show product\",\r\n homeSection5Title: \"Do you need help finding the right products?\",\r\n homeSection5Text: \"Contact us and describe your needs, and we'll assist you in finding the best solution for you!\",\r\n proclipAndHolders: \"ProClip and Device Holders\",\r\n proclipSection1Title: \"Model specific ProClip Mounts and Device Holders\",\r\n proclipSection1Text: \"Our two-part mounting solution provides you with a tailored device installation perfectly suited to your needs. One part consists of a Device Holder designed to fit your mobile phone, tablet, or other handheld device precisely. This is combined with a ProClip, which is a mount built specifically for your car model. The ProClip is installed in the car completely without screws, therefore causing no damage to the interior. Flexible, stable and secure - Simple!\",\r\n proclipBrandsTitle: \"We offer ProClips for vehicles from a wide range of brands, including:\",\r\n deviceBrandsTitle: \"We offer holders for devices from a wide range of brands, including:\",\r\n proclipSection2ProclipText: \"The ProClip serves as the mounting platform for the Device Holder. The purpose of our ProClip is to enable a stable and secure installation of the Device Holder in the vehicle, without the need for any permanent alterations such as drilling or screwing into the instrument panel. Instead, the ProClip is securely attached to the vehicle's existing gaps, panels, or seams on the dashboard. In many cases, it is further secured with double-sided adhesive tape specially designed not to leave any residue if you choose to remove or relocate the ProClip. Each ProClip is specifically designed for each car make and model, and the development of a new ProClip is a craftsmanship done on-site for each car and truck. Typically we develop a couple of ProClips for each vehicle model to offer a variety of mounting options.\",\r\n proclipSection2HolderTitle: \"Device Holders\",\r\n proclipSection2HolderText: \"The Device Holder is also specifically designed for your smartphone, GPS, or other mobile device. Various options are offered based on whether you have the device with or without a case, desire charging with a cable or wirelessly, or a passive holder without charging. In addition to our model specific device holders, we also offer adjustable holders that can be customized in height or width depending on the device you use it for.\",\r\n proclipSection3ProclipBrands: \"ProClip is available for all of these brands\",\r\n proclipSection3ProclipDevices: \"We offer Device Holders for a wide range of brands, including these\",\r\n productDevSection1Title: \"Customized solutions\",\r\n productDevSection1Text: \"In cases where our existing range is insufficient to meet the customer's needs, we have the opportunity to create a customized mounting solution.\",\r\n productDevSection2Title: \"Needs analysis\",\r\n productDevSection2TextPart1: \"The process begins with direct communication between you, our sales representatives, and product developers. Together, we identify needs and potential solutions.\",\r\n productDevSection2TextPart2: \"The needs can vary depending on how and where the device will be used. These needs include factors such as challenging environments, technical specifications, charging and data transfer requirements, and more.\",\r\n productDevSection2Part3Title: \"Cost estimation and prototype\",\r\n productDevSection2TextPart3: \"When we have achieved a common understanding of how the product should be designed, we present a development cost. If this cost is approved, we proceed to manufacture a prototype. The prototype can be a functional, CNC-machined version or, in some cases, a 3D-printed prototype.\",\r\n contactUs: \"Contact us\",\r\n productDevSection3Text: \"We do not impose any limitations on what a customer-specific project may entail; we have developed unique solutions for emergency services, food companies, the forestry industry, and more.\",\r\n seeMore: \"+ Show more\",\r\n seeLess: \"- Show less\",\r\n addArticleToCart: \"Add article to cart\",\r\n megaMenu: \"If your company or business has specific needs and requirements, our team of designers is ready to collaborate with you and create customized solutions and products.\",\r\n examplesSpecialCharacters: \"Examples of special characters: \",\r\n areYouSure: \"Are you sure?\",\r\n deleteAllConfirmation: \"This will delete all products in the cart.\",\r\n exVat: \"excl. VAT\",\r\n downloadComparisonPdf: \"Download comparison as PDF\",\r\n 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 },\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 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 }\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 React, { useState } from \"react\"\r\nimport { IconButton, Tooltip } from \"@mui/material\"\r\nimport { makeStyles } from \"@mui/styles\"\r\nimport PictureAsPdfIcon from \"@mui/icons-material/PictureAsPdf\"\r\nimport axios from \"axios\"\r\n\r\nconst useStyles = makeStyles(() => ({\r\n iconButton: {\r\n padding: 4,\r\n color: \"#2d2d2d\"\r\n }\r\n}))\r\n\r\nconst ReportButton = ({ productId }) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n const [downloading, setDownloading] = useState(false)\r\n\r\n const downloadReport = () => {\r\n setDownloading(true);\r\n (async () => {\r\n let data\r\n let statusCode = 0\r\n\r\n try {\r\n await axios.get(`/api/ProductInfo/GetProductReport?id=${productId}&language=${lang}`, { responseType: \"blob\" })\r\n .then(resp => {\r\n data = resp.data\r\n statusCode = resp.status\r\n }).catch(err => {\r\n if (err.response) {\r\n statusCode = err.response.status\r\n }\r\n })\r\n } catch (error) {\r\n console.error(\"Error fetching data with axios\")\r\n }\r\n\r\n setDownloading(false)\r\n\r\n if (statusCode !== 200) return\r\n\r\n const url = window.URL.createObjectURL(new Blob([data]))\r\n const link = document.createElement(\"a\")\r\n link.href = url\r\n link.setAttribute(\"download\", `${productId}_${lang}.pdf`)\r\n document.body.appendChild(link)\r\n link.click()\r\n link.parentNode.removeChild(link)\r\n })()\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ReportButton\r\n","export default __webpack_public_path__ + \"static/media/magnifying-glass.b4b44b94.svg\";","import { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n wrapper: {\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"93%\",\r\n padding: \"10px 6px 10px 6px\"\r\n }\r\n },\r\n searchInput: {\r\n display: \"flex\",\r\n position: \"relative\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n textAlign: \"left\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n \"&:focus\": {\r\n outline: \"unset\"\r\n }\r\n },\r\n searchInputWrapper: {\r\n position: \"relative\",\r\n flex: \"1 1 100%\",\r\n \"&:after\": {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n height: \"1px\",\r\n backgroundColor: \"#2D2D2D\",\r\n content: \"''\",\r\n opacity: 0.1\r\n }\r\n }\r\n}))\r\n","import MagnifyingGlass from \"./assets/magnifying-glass.svg\"\r\nimport useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { setSearchQuery } from \"../../redux/searchReducer\"\r\nimport { useSearchQuery } from \"../../redux/hook/searchHooks\"\r\nimport { useSteering } from \"../../redux/hook/userHooks\"\r\nimport { clearSearchResult } from \"../../redux/productReducer\"\r\nimport { setShowNavbarSearch } from \"../../redux/settingsReducer\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React, { useEffect, useState } from \"react\"\r\n\r\nconst AsyncSearch = ({ style, ...props }) => {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const [searchText, setSearchText] = useState(\"\")\r\n const [_query, setQuery] = useState(\"\")\r\n const [redirect, setRedirect] = useState(false)\r\n\r\n const asyncSearchSearchQuery = useSearchQuery(\"asyncSearch\")\r\n const steering = useSteering()\r\n const language = useLanguage()\r\n const navigate = useNavigate()\r\n\r\n const handleEdit = e => {\r\n setSearchText(e.target.value)\r\n }\r\n\r\n const handleKeyUp = e => {\r\n if (e.keyCode === 13) {\r\n dispatch(setShowNavbarSearch(false))\r\n setRedirect(true)\r\n navigate(`/${language}/filter/`)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const delayDebounceFn = setTimeout(() => {\r\n setQuery(searchText)\r\n }, 750)\r\n\r\n return () => clearTimeout(delayDebounceFn)\r\n }, [searchText])\r\n\r\n useEffect(() => () => {\r\n setRedirect(false)\r\n })\r\n\r\n const searchOnText = (ignoreSteering = false) => {\r\n const steeringFilter = { steering: [steering, \"3\"] }\r\n dispatch(setSearchQuery({\r\n type: \"asyncSearch\",\r\n value: (\r\n {\r\n texts: [searchText.trim()],\r\n ...(ignoreSteering ? {} : steeringFilter)\r\n }\r\n ),\r\n clearFilter: true\r\n }))\r\n }\r\n\r\n useEffect(() => {\r\n if (redirect) {\r\n // When the search term is a product number, ignore the steering.\r\n const isProductNumber = Boolean(\r\n searchText.trim().match(/^\\d\\d\\d\\d\\d\\d$/)\r\n )\r\n searchOnText(isProductNumber)\r\n navigate(`/${language}/filter`)\r\n }\r\n }, [searchText, redirect, dispatch])\r\n\r\n useEffect(() => {\r\n if (Object.entries(asyncSearchSearchQuery).length > 0) {\r\n dispatch(clearSearchResult())\r\n searchOnText()\r\n }\r\n }, [steering])\r\n\r\n return (\r\n
\r\n \r\n \"Search\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AsyncSearch\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n steeringButton: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\",\r\n borderRadius: \"6px\",\r\n padding: 0,\r\n overflow: \"hidden\",\r\n border: \"1px solid #F09057\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n },\r\n option: {\r\n flex: \"0 0 50%\",\r\n position: \"relative\",\r\n zIndex: 2,\r\n padding: \"6px\",\r\n background: 0,\r\n border: 0,\r\n transition: \"all 0.1s ease-in\",\r\n cursor: \"pointer\",\r\n color: \"#2d2d2d\"\r\n },\r\n active: {\r\n color: \"white\",\r\n cursor: \"auto\"\r\n },\r\n slide: {\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n left: \"50%\",\r\n right: 0,\r\n backgroundColor: \"#F09057\",\r\n transition: \"all 0.1s ease-in\",\r\n zIndex: 1\r\n },\r\n slideRight: {\r\n left: \"0\",\r\n right: \"50%\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useSteering, useUserAuthToken, useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { useSetPreferredSteeringMutation } from \"../../../redux/services/broditWebApi\"\r\nimport { changeSteering } from \"../../../redux/userSlice\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nfunction LeftRightSteeringFilter({ mobileSearchArea }) {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const steering = useSteering()\r\n\r\n const isUserAuthorized = useIsUserAuthorized()\r\n const authToken = useUserAuthToken()\r\n\r\n const [setPreferredSteering] = useSetPreferredSteeringMutation()\r\n\r\n const handleButtonPress = preferredSteering => {\r\n if (isUserAuthorized) {\r\n setPreferredSteering({\r\n preferredSteering: preferredSteering,\r\n authToken: authToken\r\n })\r\n }\r\n\r\n dispatch(changeSteering(preferredSteering))\r\n }\r\n\r\n return (\r\n
\r\n
\r\n handleButtonPress(\"1\")}\r\n className={`${classes.option} ${steering === \"1\" ? classes.active : \"\"}`}\r\n >\r\n LHD\r\n \r\n handleButtonPress(\"2\")}\r\n className={`${classes.option} ${steering === \"2\" ? classes.active : \"\"}`}\r\n >\r\n RHD\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LeftRightSteeringFilter\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n userInfoWrapper: {\r\n flex: \"0 1 100%\"\r\n },\r\n titleRow: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n fontSize: \"18px\",\r\n fontWeight: 500,\r\n marginBottom: \"8px\"\r\n },\r\n customerGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"auto\"\r\n },\r\n addressGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"400px 400px\",\r\n marginBottom: \"100px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n gridTemplateColumns: \"300px 300px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n gap: \"20px\",\r\n gridTemplateColumns: \"auto\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useUser, useUserData } from \"../../redux/hook/userHooks\"\r\nimport { LocalShipping, Payment, PersonOutline } from \"@mui/icons-material\"\r\nimport React from \"react\"\r\n\r\nconst UserInfo = () => {\r\n const user = useUser()\r\n const userData = useUserData()\r\n const classes = useStyles()\r\n\r\n const addresses = [\r\n {\r\n icon: ,\r\n title: Localization.standardShippingAddress,\r\n rows: [\r\n user?.addresses?.deliveryAddress?.Row1,\r\n user?.addresses?.deliveryAddress?.Row2,\r\n user?.addresses?.deliveryAddress?.Row4\r\n ]\r\n },\r\n {\r\n icon: ,\r\n title: Localization.billingAddress,\r\n rows: [\r\n user?.addresses?.invoiceAddress?.Row1,\r\n user?.addresses?.invoiceAddress?.Row2,\r\n user?.addresses?.invoiceAddress?.Row4\r\n ]\r\n }\r\n ]\r\n\r\n const renderAddressField = (icon, title, rows = []) => {\r\n const safeTitle = title || \"default-title\"\r\n\r\n return (\r\n
\r\n
\r\n {icon}\r\n {title || \"Untitled\"}\r\n
\r\n {rows.map((row, index) => (\r\n
{row}
\r\n ))}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n {\" \"}\r\n {Localization.customerDetails}\r\n
\r\n
\r\n
{`${Localization.customerNumber} ${userData?.customerNumber}`}
\r\n
{`${Localization.name} ${userData?.name}`}
\r\n
{`${Localization.myPagesEmail} ${userData?.email}`}
\r\n
\r\n
\r\n
\r\n {addresses.map(address => renderAddressField(address.icon, address.title, address.rows))}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default UserInfo\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n iconButton: {\r\n padding: 4\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { addToCompare, removeFromCompare } from \"../../redux/compareProductsReducer\"\r\nimport { useCompareCount } from \"../../redux/hook/compareHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { setSnackbarMessage } from \"../../redux/userMessageSlice\"\r\nimport React from \"react\"\r\nimport { IconButton, Tooltip } from \"@mui/material\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport CompareIcon from \"@mui/icons-material/Compare\"\r\n\r\nconst CompareToggleButton = ({ productId }) => {\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n const compareCount = useCompareCount()\r\n\r\n const addItemToCompare = () => {\r\n dispatch(addToCompare(productId))\r\n }\r\n\r\n const removeItemFromCompare = () => {\r\n dispatch(removeFromCompare(productId))\r\n }\r\n\r\n const productInCompare = useSelector(state => {\r\n const productIds = state.compareProduct.productIds;\r\n return productIds.includes(productId);\r\n })\r\n\r\n const onClick = () => {\r\n if (!productInCompare) {\r\n if (compareCount < 2) {\r\n addItemToCompare()\r\n } else {\r\n dispatch(setSnackbarMessage(Localization.compareMaxTwoArticles, \"warning\"))\r\n }\r\n } else {\r\n removeItemFromCompare()\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CompareToggleButton\r\n","import { productAdapter } from \"./adapter/productAdapter\"\r\nimport { requestProduct, requestProducts, requestFilteredProducts } from \"./thunk/productThunk\"\r\nimport { prepareProducts } from \"../components/CompareProducts/helperFunctions\"\r\nimport { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst slice = createSlice({\r\n name: \"product\",\r\n initialState: productAdapter.getInitialState({\r\n modtekProducts: productAdapter.getInitialState(),\r\n relatedProducts: productAdapter.getInitialState(),\r\n lastProductFetch: [],\r\n lastFetchItemCount: 0,\r\n lastFetchProperties: {\r\n brands: [],\r\n productNames: []\r\n },\r\n loading: false,\r\n pendingRequests: 0\r\n }),\r\n reducers: {\r\n reset: () => {\r\n productAdapter.removeAll()\r\n },\r\n deleteSearchResult: state => {\r\n state.lastProductFetch = []\r\n state.lastFetchItemCount = 0\r\n state.lastFetchProperties = {\r\n brands: [],\r\n productNames: []\r\n }\r\n }\r\n },\r\n extraReducers: builder => {\r\n // Request one\r\n builder.addCase(requestProduct.pending, state => {\r\n state.pendingRequests += 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n builder.addCase(requestProduct.fulfilled, (state, action) => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n\r\n const pagedList = action.payload?.pagedList.response\r\n if (!pagedList || pagedList.list.length === 0) {\r\n return\r\n }\r\n\r\n const products = prepareProducts(pagedList.list, action.meta.arg.lang)\r\n productAdapter.addOne(state, products[0])\r\n })\r\n\r\n builder.addCase(requestProduct.rejected, state => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n\r\n builder.addCase(requestProducts.pending, state => {\r\n state.pendingRequests += 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n builder.addCase(requestProducts.fulfilled, (state, action) => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n\r\n const pagedList = action.payload?.pagedList.response\r\n if (!pagedList || pagedList.list.length === 0) {\r\n return\r\n }\r\n\r\n const products = prepareProducts(pagedList.list, action.meta.arg.lang)\r\n\r\n const key = action.meta.arg.key\r\n\r\n switch (key) {\r\n case \"modtek\":\r\n productAdapter.removeAll(state.modtekProducts)\r\n productAdapter.addMany(state.modtekProducts, products)\r\n break\r\n case \"related\":\r\n productAdapter.removeAll(state.relatedProducts)\r\n productAdapter.addMany(state.relatedProducts, products)\r\n break\r\n default:\r\n productAdapter.addMany(state, products)\r\n }\r\n })\r\n builder.addCase(requestProducts.rejected, state => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n\r\n // Request many\r\n builder.addCase(requestFilteredProducts.pending, state => {\r\n state.pendingRequests += 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n builder.addCase(requestFilteredProducts.fulfilled, (state, action) => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n\r\n const pagedList = action.payload?.pagedList.response\r\n if (!pagedList) {\r\n return\r\n }\r\n\r\n const products = prepareProducts(pagedList.list, action.meta.arg.lang)\r\n state.lastProductFetch = products.map(x => x.originalId)\r\n state.lastFetchItemCount = pagedList.pagingHeader.totalItems\r\n state.lastFetchProperties = {\r\n brands: action.payload.brands,\r\n productNames: action.payload.names\r\n }\r\n\r\n productAdapter.addMany(state, products)\r\n })\r\n builder.addCase(requestFilteredProducts.rejected, state => {\r\n state.pendingRequests -= 1\r\n state.loading = Boolean(state.pendingRequests)\r\n })\r\n }\r\n})\r\n\r\nconst { reset, deleteSearchResult } = slice.actions\r\n\r\nexport default slice.reducer\r\n\r\nexport const resetProductsCache = () => dispatch => {\r\n dispatch(reset())\r\n}\r\n\r\nexport const clearSearchResult = () => dispatch => {\r\n dispatch(deleteSearchResult())\r\n}\r\n","/* eslint-disable import/prefer-default-export */\r\nimport { selectById } from \"../adapter/materialAdapter\"\r\nimport { createAsyncThunk } from \"@reduxjs/toolkit\"\r\nimport axios from \"axios\"\r\n\r\nconst internalLangConvert = lang => (lang === \"en\" ? \"EN1\" : \"SV1\")\r\n\r\nconst fetchMaterial = async (id, lang) => {\r\n const a = await axios.get(\r\n `/api/ProductInfo/MaterialDetails?materialId=${id}&lang=${internalLangConvert(lang)}`\r\n )\r\n return a.data\r\n}\r\n\r\nexport const requestMaterial = createAsyncThunk(\r\n \"material/fetchById\",\r\n async params => {\r\n const { id, lang } = params\r\n return fetchMaterial(id, lang)\r\n },\r\n {\r\n condition: (params, { getState }) => {\r\n const { id, lang } = params\r\n const existing = selectById(getState(), `${lang}-${id}`)\r\n return !existing\r\n }\r\n }\r\n)\r\n","export default __webpack_public_path__ + \"static/media/carMount.54f0099a.png\";","import { makeStyles } from \"@mui/styles\"\r\n\r\nconst drawerWidth = \"100%\"\r\n\r\nexport default makeStyles(() => ({\r\n appMenu: {\r\n width: \"auto\"\r\n },\r\n navList: {\r\n width: drawerWidth\r\n },\r\n menuItem: {\r\n width: drawerWidth\r\n },\r\n menuItemIcon: {\r\n color: \"#97c05c\"\r\n },\r\n drawer: {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n bottom: \"0\",\r\n top: \"auto\",\r\n zIndex: -1,\r\n backgroundColor: \"#FFFFFF\",\r\n transition: \"all 0.1s ease-in\",\r\n boxShadow: \"0px 0px 5px 0px rgba(45, 45, 45, 0.05)\"\r\n },\r\n open: {\r\n transform: \"translateY(99%)\"\r\n },\r\n backButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n backgroundColor: \"#F8F8F8\",\r\n paddingTop: \"8px\",\r\n paddingBottom: \"8px\",\r\n paddingLeft: \"20px\",\r\n border: 0,\r\n cursor: \"pointer\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 400,\r\n letterSpacing: \"0.25px\",\r\n gap: \"5px\",\r\n color: \"#2d2d2d\"\r\n },\r\n collectionTitle: {\r\n margin: 0,\r\n textAlign: \"right\",\r\n paddingTop: \"20px\",\r\n paddingRight: \"20px\",\r\n paddingLeft: \"20px\",\r\n paddingBottom: \"14px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.5px\"\r\n },\r\n readMoreLink: {\r\n textDecoration: \"none\",\r\n padding: \"10px 20px 10px 20px\",\r\n background: \"#F09057\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"center\",\r\n borderRadius: \"4px\",\r\n transition: \"all 0.1s ease-in\",\r\n color: \"#2D2D2D\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/largelogo.cea58660.png\";","import { useState, useEffect } from \"react\";\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height\r\n };\r\n}\r\n\r\nexport default function useWindowDimensions() {\r\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions());\r\n }\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n return windowDimensions;\r\n}\r\n","export default __webpack_public_path__ + \"static/media/holder.b0b5d705.png\";","import { declineCookies } from \"../../redux/gdprSlice\"\r\nimport { signOut } from \"../../redux/userSlice\"\r\n\r\nconst withdrawCookiesConsent = (skipReload = false) => dispatch => {\r\n dispatch(declineCookies())\r\n dispatch(signOut())\r\n\r\n // Couldn't find a good way to uninitialize GA4.\r\n // The GA4 cookie is recreated if removed.\r\n // Quick fix: Reloading the page prevents it from reinitializing GA4,\r\n // and the cookie is removed again in StateHandler.\r\n if (!skipReload) window.location.reload()\r\n}\r\n\r\nexport default withdrawCookiesConsent\r\n","import NewlineText from \"./NewlineText\"\r\nimport React from \"react\"\r\n\r\nexport default function Text({ text, technicalInformation = false }) {\r\n return (\r\n \r\n )\r\n}\r\n","import { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useProduct } from \"../../../../redux/hook/productHooks\"\r\nimport Text from \"../components/Text/index\"\r\nimport useStyles from \"../styles\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Table, TableBody, TableCell, TableRow, Typography\r\n} from \"@mui/material\"\r\n\r\nexport default function Specification({ id }) {\r\n const product = useProduct(id)\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n {Localization.productInformation}\r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n {product.originalId}\r\n \r\n \r\n {Localization.eanNumber}\r\n {product.eanNumber}\r\n \r\n \r\n
\r\n {product.properties.length > 0\r\n ? (\r\n \r\n {Localization.properties}\r\n \r\n \r\n {product.properties.map(item => (\r\n \r\n {item.displayName}\r\n {item.value}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n )\r\n : null}\r\n {product.chargingSpecification\r\n && (\r\n <>\r\n {Localization.chargingSpecification}\r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n marginBottom: {\r\n marginBottom: 40\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexEnd: {\r\n justifyContent: \"flex-end\",\r\n marginLeft: 50\r\n },\r\n spaceEven: {\r\n justifyContent: \"space-evenly\"\r\n },\r\n orderLineContent: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(2)\r\n },\r\n listItemGutters: {\r\n padding: 0\r\n },\r\n externalLinkIcon: {\r\n padding: 4,\r\n verticalAlign: \"middle\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport ExternalLinkIcon from \"../../../lib/icons/ExternalLink/ExternalLinkIcon\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useUser } from \"../../../redux/hook/userHooks\"\r\nimport HeadingRow from \"../../Order/ProductCardOrder/HeadingRow/HeadingRow\"\r\nimport ProductCardOrder from \"../../Order/ProductCardOrder/ProductCardOrder\"\r\nimport getStatusText from \"../functions\"\r\nimport { Link } from \"react-router-dom\"\r\nimport React from \"react\"\r\nimport classnames from \"classnames\"\r\nimport LocalShippingIcon from \"@mui/icons-material/LocalShipping\"\r\nimport AssignmentTurnedInIcon from \"@mui/icons-material/AssignmentTurnedIn\"\r\nimport {\r\n ArrowBack, CheckCircleOutline,\r\n ConfirmationNumber, CreditCard, Notes, PersonOutline, Receipt, ThumbUp\r\n} from \"@mui/icons-material\"\r\nimport {\r\n Box, Button, Link as SimpleLink, List, ListItem, Typography\r\n} from \"@mui/material\"\r\n\r\nconst OrderInfo = ({ customerOrder, isOrderConfirmation }) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n const user = useUser()\r\n\r\n const getDate = a => {\r\n const date = new Date(a)\r\n return date.toLocaleDateString()\r\n }\r\n\r\n const findComment = position => customerOrder.Rows.find(\r\n x => x.Position === position && x.Type === 4 && x.TextType === 7\r\n )?.Text\r\n\r\n return (\r\n \r\n {isOrderConfirmation ? (\r\n <>\r\n \r\n {Localization.orderConfirmation}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {Localization.order}\r\n {\" \"}\r\n {customerOrder.OrderNumber}\r\n \r\n \r\n \r\n {getStatusText(customerOrder.Status)}\r\n \r\n \r\n )}\r\n {isOrderConfirmation ? (\r\n \r\n \r\n {Localization.thankYouForOrder}\r\n \r\n {Localization.orderIsProcessing}\r\n \r\n ) : (\r\n null\r\n )}\r\n \r\n \r\n \r\n {isOrderConfirmation ? (\r\n <>\r\n \r\n {Localization.checkOrderDetails}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n {Localization.orderNumber}\r\n :\r\n {\" \"}\r\n {customerOrder.OrderNumber}\r\n \r\n \r\n {Localization.orderDate}\r\n :\r\n {\" \"}\r\n {getDate(customerOrder.OrderDate)}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {\" \"}\r\n {formatAmount(customerOrder.TotalOrderLines)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {\" \"}\r\n {formatAmount(customerOrder.TotalProducts)}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(customerOrder.TotalSum)}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.messageToBrodit}\r\n :\r\n {\" \"}\r\n {\r\n customerOrder.Rows.filter(\r\n x => x.Position === null && x.Type === 4\r\n )[0]?.Text\r\n }\r\n \r\n \r\n {Localization.purchaseOrder}\r\n :\r\n {\" \"}\r\n {customerOrder.YourOrderNumber}\r\n \r\n \r\n {Localization.orderPlacedBy}\r\n :\r\n {\" \"}\r\n {customerOrder.YourReference}\r\n \r\n \r\n {Localization.orderEmail}\r\n :\r\n {\" \"}\r\n {customerOrder.Email}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.shippingAddress}\r\n \r\n {customerOrder.DeliveryAddress ? (\r\n <>\r\n {customerOrder.DeliveryAddress.Row1}\r\n {customerOrder.DeliveryAddress.Row2}\r\n {customerOrder.DeliveryAddress.Row4}\r\n {customerOrder.DeliveryAddress.Row5}\r\n \r\n ) : null}\r\n \r\n {(!isOrderConfirmation && customerOrder.Shipments.length > 0)\r\n && (\r\n \r\n \r\n \r\n {Localization.trackShipment}\r\n \r\n \r\n {customerOrder.Shipments.map((shipment, i) => (\r\n \r\n \r\n {Localization.parcel}\r\n {\" \"}\r\n #\r\n {i + 1}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {Localization.billingAddress}\r\n \r\n {customerOrder.InvoiceAddress ? (\r\n <>\r\n {customerOrder.InvoiceAddress.Row1}\r\n {customerOrder.InvoiceAddress.Row2}\r\n {customerOrder.InvoiceAddress.Row4}\r\n {customerOrder.InvoiceAddress.Row5}\r\n \r\n ) : null}\r\n \r\n \r\n {isOrderConfirmation && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isOrderConfirmation && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {customerOrder.Rows.filter(x => x.Type === 1).map((row, i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default OrderInfo\r\n","import useStyles from \"./VehicleNewsListPage/styles\"\r\nimport Thumbnail from \"../Thumbnail\"\r\nimport { Typography } from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\nimport React from \"react\"\r\n\r\nfunction NewsItem({\r\n news, url, alt, isDevice = false, ...props\r\n}) {\r\n const classes = useStyles()\r\n\r\n const getTitle = () => {\r\n let title = \"\"\r\n\r\n title += news.title ? news.title : \"\"\r\n title += news.year ? ` ${news.year}` : \"\"\r\n\r\n return title\r\n }\r\n\r\n const getSubtitle = () => {\r\n let subtitle = \"\"\r\n\r\n subtitle += news.placement ? news.placement : \"\"\r\n subtitle += news.products.length > 0 ? ` (${news.products[0]})` : \"\"\r\n\r\n return subtitle\r\n }\r\n\r\n return (\r\n
\r\n \r\n {new Date(news.dateTime).toLocaleDateString()}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {getTitle()}\r\n
\r\n
\r\n {!isDevice &&
{getSubtitle()}
}\r\n
\r\n \r\n
\r\n )\r\n}\r\nexport default NewsItem\r\n","import { mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n publishedText: {\r\n marginTop: 50,\r\n marginBottom: 15\r\n },\r\n itemThumbnail: {\r\n width: \"100%\",\r\n minHeight: 500\r\n },\r\n container: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3)\r\n },\r\n pageTitle: {\r\n display: \"flex\",\r\n gap: 25,\r\n marginTop: 50,\r\n flexWrap: \"wrap\"\r\n },\r\n skeletonText: {\r\n marginTop: 50,\r\n marginBottom: 15,\r\n width: \"33%\"\r\n },\r\n skeletonRect: {\r\n height: 500\r\n },\r\n newsGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"50% 50%\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n gridTemplateColumns: \"100%\"\r\n }\r\n },\r\n newsCard: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n link: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"1 1 100%\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\"\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"flex-end\",\r\n background: \"#FFFFFF\",\r\n padding: \"10px 16px 16px 16px\",\r\n gap: \"8px\",\r\n borderRadius: \"0 0 6px 6px\"\r\n },\r\n titleWrapper: {\r\n display: \"flex\"\r\n },\r\n title: {\r\n fontFamily: \"Rubik\",\r\n fontWeight: 400,\r\n fontSize: \"20px\",\r\n borderBottom: \"1px solid transparent\",\r\n \"&:hover\": {\r\n borderBottom: \"1px solid #2D2D2D\"\r\n }\r\n },\r\n subtitle: {\r\n fontFamily: \"Rubik\",\r\n fontWeight: 400,\r\n fontSize: \"16px\"\r\n }\r\n}))\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n cardRoot: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n flexGrow: 1,\r\n height: \"auto\",\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: 5.5,\r\n paddingBottom: 5.5\r\n },\r\n boxShadow: \"none\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"auto\"\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, tabletBreakpoint)]: {\r\n width: 400\r\n }\r\n },\r\n cardRootMni: {\r\n \"& .MuiOutlinedInput-inputMarginDense\": {\r\n paddingTop: 5.5,\r\n paddingBottom: 5.5\r\n },\r\n boxShadow: \"none\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"auto\"\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, tabletBreakpoint)]: {\r\n width: 400\r\n }\r\n },\r\n media: {\r\n height: 0,\r\n paddingTop: \"50.00%\",\r\n backgroundSize: \"contain\"\r\n },\r\n cardContent: {\r\n display: \"flex\",\r\n flex: \"1 0 auto\",\r\n justifyContent: \"space-between\",\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\"\r\n },\r\n cardContentMini: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n padding: 0\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexGrow: 1\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1\r\n },\r\n flexRowMini: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n bannerArea: {\r\n display: \"flex\",\r\n height: \"auto\",\r\n alignItems: \"flex-start\",\r\n whiteSpace: \"nowrap\"\r\n },\r\n rowContent: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n avatarLarge: {\r\n width: theme.spacing(10),\r\n height: theme.spacing(10)\r\n },\r\n heading: {\r\n fontWeight: \"bold\",\r\n fontSize: 14\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}))\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\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\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 return (\r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {originalId}\r\n \r\n )\r\n}\r\n","import useStyles from \"./styles\"\r\nimport SwipeableTextMobileStepper from \"../../../SwipableView\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nexport function GridImage({\r\n listView, product, grid, onSelect, phasingOut\r\n}) {\r\n const classes = useStyles()\r\n return (\r\n \r\n {listView\r\n ? (\r\n \r\n )\r\n : null}\r\n \r\n )\r\n}\r\n\r\nexport function ListImage({\r\n product, grid, onSelect, phasingOut\r\n}) {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport function ModTekImage({\r\n product, grid, onSelect, phasingOut\r\n}) {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n\r\n \r\n )\r\n}\r\n","import { CompareToggleButton, ShareButton, ReportButton } from \"../../..\"\r\nimport FavoriteButton from \"../../../Favorites/FavoriteButton\"\r\nimport { Grid, Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nexport function GridButtons(props) {\r\n const {\r\n showFavorite, product, showShare, showCompare, compare, showReport\r\n } = props\r\n return (\r\n <>\r\n \r\n {showFavorite && }\r\n \r\n \r\n {showShare && }\r\n \r\n \r\n {showCompare && (\r\n \r\n )}\r\n \r\n \r\n {showReport && }\r\n \r\n \r\n )\r\n}\r\n\r\nexport function ListButtons(props) {\r\n const {\r\n showFavorite, product, showShare, showCompare, compare, showReport\r\n } = props\r\n\r\n return (\r\n \r\n {/* {props.showReport && } */}\r\n {showFavorite && }\r\n {showShare && }\r\n {showCompare && (\r\n \r\n )}\r\n {showReport && }\r\n \r\n )\r\n}\r\n","import { Box, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport ReactHtmlParser from \"react-html-parser\"\r\n\r\nexport function GridDescription(props) {\r\n return (\r\n \r\n \r\n {props?.description}\r\n \r\n {\r\n props?.modTekInformation\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport function ListDescription(props) {\r\n return (\r\n \r\n \r\n {props?.description}\r\n \r\n {\r\n props?.modTekInformation\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport function ModTekDescription({ sideModule = false, modTekInformation = \"\" }) {\r\n return (\r\n sideModule\r\n ? (\r\n \r\n \r\n {ReactHtmlParser(modTekInformation)}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {ReactHtmlParser(modTekInformation)}\r\n \r\n \r\n )\r\n )\r\n}\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Button } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nfunction SearchDealerLink() {\r\n const language = useLanguage()\r\n\r\n return (\r\n \r\n {Localization.whereCanIBuy}\r\n \r\n )\r\n}\r\n\r\nexport default SearchDealerLink\r\n","/* eslint-disable import/no-cycle */\r\nimport useStyles from \"./styles\"\r\nimport { GridTitle, ListTitle, ModTekTitle } from \"./ProductTitle\"\r\nimport { GridPrice, ListPrice, ModTekPrice } from \"./ProductPrice\"\r\nimport { GridProductNumber, ListProductNumber } from \"./ProductNumber\"\r\nimport { GridImage, ListImage, ModTekImage } from \"./ProductImage\"\r\nimport { GridButtons, ListButtons } from \"./ProductButtons\"\r\nimport { GridDescription, ListDescription, ModTekDescription } from \"./ProductDescription\"\r\nimport SearchDealerLink from \"../../../SearchDealer/SearchDealerLink\"\r\nimport SpeedOrder from \"../../../SpeedOrder/SpeedOrder\"\r\nimport CompatibleModels from \"../../ProductInfo/components/CompatibleModels/CompatibleModels\"\r\nimport theme from \"../../../../theme\"\r\nimport { productViewBreakpoint } from \"../../../../lib/helper/viewportHelper\"\r\nimport { useUserData } from \"../../../../redux/hook/userHooks\"\r\nimport {\r\n Box,\r\n Card,\r\n CardContent,\r\n Paper,\r\n Typography,\r\n useMediaQuery\r\n} from \"@mui/material\"\r\nimport classNames from \"classnames\"\r\nimport React, { useEffect } from \"react\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nfunction ProductCardTemplate(\r\n {\r\n product,\r\n handleShowMoreCompsClick,\r\n listView,\r\n grid,\r\n onSelect,\r\n restorationRef,\r\n backGroundColor,\r\n compare,\r\n price,\r\n linkToProduct,\r\n displayPrice = false,\r\n showSpeedOrder = false,\r\n showShare = true,\r\n showCompare = true,\r\n showFavorite = true,\r\n showReport = true,\r\n showSearchDealerLink = false,\r\n productInfo,\r\n modTek = {},\r\n modTekInformation = \"\",\r\n altNameList = []\r\n }\r\n) {\r\n const classes = useStyles()\r\n const userData = useUserData()\r\n const isSmall = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n let cartContentMinHeight = listView ? 250 : 415\r\n let cardMaxWidth = grid ? 400 : \"auto\"\r\n if (compare && isSmall) cardMaxWidth = 300\r\n if (productInfo) cartContentMinHeight = \"auto\"\r\n\r\n useEffect(() => {\r\n if (!restorationRef) return\r\n\r\n restorationRef.current.scrollIntoView({ behavior: \"auto\", block: \"center\" })\r\n })\r\n\r\n return (\r\n 0 ? \"flex-start\" : \"center\" }}\r\n >\r\n {(grid && Object.keys(modTek).length === 0)\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n onSelect(product?.id)}\r\n product={product}\r\n altNameList={altNameList}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n showSpeedOrder\r\n && \r\n }\r\n {\r\n showSearchDealerLink\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {(!grid && Object.keys(modTek).length === 0) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onSelect(product?.id)}\r\n end\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n showSpeedOrder\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {Object.keys(modTek).length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n onSelect(product?.id)}\r\n className={classes.noDisplayLink}\r\n end\r\n >\r\n \r\n #\r\n {product?.originalId}\r\n \r\n \r\n\r\n onSelect(product?.id)}\r\n product={product}\r\n altNameList={altNameList}\r\n />\r\n {\r\n modTekInformation.length > 0\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n userData.customerNumber && (\r\n \r\n \r\n \r\n {\r\n showSpeedOrder\r\n && \r\n }\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ProductCardTemplate\r\n","import { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n navigationButtonBox: {\r\n padding: 15,\r\n margin: 15,\r\n borderRadius: \"50%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n navigationButtonButton: {\r\n position: \"absolute\",\r\n height: \"100%\",\r\n zIndex: 1\r\n },\r\n keyboardArrow: {\r\n color: \"white\"\r\n },\r\n thumbNailStepper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\"\r\n },\r\n thumbNailStepperMain: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n position: \"relative\"\r\n },\r\n thumbNailIndicator: {\r\n width: \"30px\",\r\n height: \"30px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n thumbNailIndicatorCircle: {\r\n width: 12.5,\r\n height: 12.5,\r\n borderRadius: \"50%\"\r\n },\r\n blackH3: {\r\n color: \"#2D2D2D\",\r\n /* H3 */\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 160% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontFamily: \"Roboto\",\r\n fontSize: \"18px\"\r\n }\r\n },\r\n hoverUnderline: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform .5s ease-out\"\r\n },\r\n \"&.isActive:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport theme from \"../../theme\"\r\nimport { desktopBreakpoint, mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport {\r\n Box, Typography, useMediaQuery, Skeleton\r\n} from \"@mui/material\"\r\nimport React, { useState } from \"react\"\r\n\r\nfunction Thumbnail({\r\n src,\r\n content: contents,\r\n alt,\r\n loading,\r\n style,\r\n srcWidth,\r\n thumbNailId,\r\n title,\r\n home = null\r\n}) {\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(desktopBreakpoint))\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileBreakpoint))\r\n const [isActive, setIsActive] = useState(false)\r\n\r\n let image = contents?.find(content => content.language === language)?.image\r\n image = image ?? src\r\n\r\n const widthQuery = srcWidth !== undefined ? `?width=${srcWidth}&language=${language}` : \"\"\r\n\r\n const styleWithWidth = {\r\n width: \"auto\",\r\n flex: 1,\r\n boxShadow: \"0px 0px 20px 0px rgba(45, 45, 45, 0.1)\",\r\n minHeight: \"200px\",\r\n ...style\r\n }\r\n\r\n return (\r\n (!loading)\r\n ? (\r\n setIsActive(true)}\r\n onMouseLeave={() => setIsActive(false)}\r\n >\r\n
\r\n \r\n {home !== null && (\r\n \r\n \r\n {title}\r\n \r\n \r\n {Localization.seeProduct}\r\n \r\n \r\n )}\r\n
\r\n \r\n )\r\n : \r\n )\r\n}\r\n\r\nexport default Thumbnail\r\n","import useStyles from \"../styles\"\r\nimport { Box, Button } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { KeyboardArrowLeft, KeyboardArrowRight } from \"@mui/icons-material\"\r\n\r\nfunction NavigationButton({ onClick, rightSide, style }) {\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n {\r\n rightSide\r\n ? \r\n : \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NavigationButton\r\n","import Thumbnail from \"./Thumbnail\"\r\nimport NavigationButton from \"./components/NavigationButton\"\r\nimport useStyles from \"./styles\"\r\nimport { useGetContentQuery } from \"../../redux/services/contentApi\"\r\nimport React from \"react\"\r\nimport SwipeableViews from \"react-swipeable-views\"\r\nimport { autoPlay } from \"react-swipeable-views-utils\"\r\nimport { Box, Skeleton } from \"@mui/material\"\r\n\r\nconst AutoPlaySwipeableViews = autoPlay(SwipeableViews)\r\n\r\nfunction ThumbnailStepper({ thumbnailsUrl, style, srcWidth }) {\r\n const [currentIndex, setCurrentIndex] = React.useState(0)\r\n const [isHovering, setIsHovering] = React.useState(false)\r\n const { data, isFetching } = useGetContentQuery(thumbnailsUrl)\r\n const thumbnails = data ?? []\r\n const classes = useStyles()\r\n\r\n const handleNext = () => {\r\n setCurrentIndex(previousIndex => (\r\n (previousIndex + 1) % thumbnails.length\r\n ))\r\n }\r\n\r\n const handleBack = () => {\r\n setCurrentIndex(previousIndex => (\r\n (previousIndex > 0)\r\n ? previousIndex - 1\r\n : thumbnails.length - 1\r\n ))\r\n }\r\n\r\n const handleStepChange = index => {\r\n setCurrentIndex(index)\r\n }\r\n\r\n const handleMouseEnter = () => setIsHovering(true)\r\n const handleMouseLeave = () => setIsHovering(false)\r\n const hideOnHover = { opacity: isHovering ? 1 : 0, transition: \"opacity 0.5s\" }\r\n\r\n return (\r\n (!isFetching && thumbnails)\r\n ? (\r\n \r\n \r\n \r\n \r\n {\r\n thumbnails.map(thumbnailProps => {\r\n const idArray = thumbnailProps.content[0].image.split(\".\").at(0).split(\"/\")\r\n const id = `${idArray.at(-2)}-${idArray.at(-1)}`\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n thumbnails.map((_, i) => {\r\n const idArray = _.content[0].image.split(\".\").at(0).split(\"/\")\r\n const id = `${idArray.at(-2)}-${idArray.at(-1)}`\r\n return (\r\n handleStepChange(i)}\r\n >\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n )\r\n : \r\n )\r\n}\r\n\r\nexport default ThumbnailStepper\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n indexRoot: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-around\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n grayText: {\r\n color: \"#666\"\r\n },\r\n blackText: {\r\n color: \"#2D2D2D\",\r\n marginTop: \"8px\"\r\n },\r\n listRoot: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n cardRoot: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n backgroundColor: theme.palette.background.paper,\r\n flex: \"0 0 calc(50% - 16px)\",\r\n justifyContent: \"center\",\r\n boxSizing: \"border-box\",\r\n margin: \"8px\",\r\n alignContent: \"flex-start\"\r\n },\r\n root: {\r\n marginLeft: \"10px\",\r\n marginRight: \"10px\"\r\n },\r\n image: {\r\n height: 200,\r\n width: 300\r\n },\r\n card: {\r\n height: \"auto\",\r\n width: 300,\r\n border: \"none\",\r\n boxShadow: \"none\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../../lib/Localization\"\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Card, CardContent, Typography\r\n} from \"@mui/material\"\r\n\r\nconst Instruction = ({ text, images }) => {\r\n const classes = useStyles()\r\n\r\n const regexForInstructionImages = /^.*\\-\\d.*/\r\n const filteredImages = images.filter(x => regexForInstructionImages.exec(x))\r\n\r\n const textRegex = /\\d[.].*/mg\r\n let match\r\n const texts = []\r\n\r\n while ((match = textRegex.exec(text))) {\r\n texts.push(match[0])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {Localization.howToInstall}\r\n \r\n \r\n {texts.map(\r\n (paragraph, index) => (\r\n \r\n {filteredImages[index]\r\n && (\r\n \r\n )}\r\n \r\n \r\n \r\n {paragraph}\r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Instruction\r\n","import Instruction from \"../components/Instruction\"\r\nimport useStyles from \"../styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst Instructions = ({ text, images }) => {\r\n const classes = useStyles()\r\n return (\r\n \r\n {text\r\n && }\r\n \r\n )\r\n}\r\n\r\nexport default Instructions\r\n","export default __webpack_public_path__ + \"static/media/icons8-external-link.caf56822.svg\";","import icon from \"./icons8-external-link.svg\"\r\nimport React from \"react\"\r\nimport { Icon } from \"@mui/material\"\r\n\r\nconst ExternalLinkIcon = ({ style }) => (\r\n \r\n \"icon\r\n \r\n)\r\n\r\nexport default ExternalLinkIcon\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n root: {\r\n padding: 10\r\n },\r\n capitalize: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n flexItem: {\r\n flex: \"1 1 0px\"\r\n },\r\n gray: {\r\n color: \"#a3a3a3\"\r\n },\r\n basis20: {\r\n flexBasis: \"20%\"\r\n },\r\n padding4: {\r\n padding: 4\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useUser, useUserAuthToken } from \"../../../../redux/hook/userHooks\"\r\nimport ConfirmationDialog from \"../../OrderSummary/ConfirmationDialog/ConfirmationDialog\"\r\nimport { useClearCartMutation } from \"../../../../redux/services/cartApi\"\r\nimport {\r\n Box, IconButton, Tooltip, Typography\r\n} from \"@mui/material\"\r\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\"\r\nimport classnames from \"classnames\"\r\nimport React, { useState } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst HeadingRow = ({ showRestItemsHeading, isOrderConfirmation }) => {\r\n const classes = useStyles()\r\n const user = useUser()\r\n const authToken = useUserAuthToken()\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n const [dialogOpen, setDialogOpen] = useState(false)\r\n\r\n const openModal = () => {\r\n setDialogOpen(true)\r\n }\r\n\r\n const closeModal = () => {\r\n setDialogOpen(false)\r\n }\r\n\r\n const empty = () => {\r\n clearCart({ authToken })\r\n setDialogOpen(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n \r\n \r\n \r\n \r\n {Localization.product}\r\n \r\n \r\n \r\n \r\n {Localization.note}\r\n \r\n \r\n \r\n \r\n {Localization.qty}\r\n \r\n \r\n {showRestItemsHeading\r\n && (\r\n \r\n \r\n {Localization.sentQuantity}\r\n \r\n \r\n )}\r\n \r\n \r\n {Localization.price}\r\n \r\n \r\n {Localization.exVat.toUpperCase()}\r\n \r\n \r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n \r\n \r\n {Localization.exVat.toUpperCase()}\r\n \r\n \r\n {!showRestItemsHeading && !isOrderConfirmation\r\n ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : }\r\n \r\n )\r\n}\r\n\r\nexport default HeadingRow\r\n","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n dialog: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"1rem\",\r\n padding: \"32px\"\r\n },\r\n dialogButtonWrapper: {\r\n display: \"flex\",\r\n gap: \"5px\"\r\n },\r\n dialogButton: {\r\n flex: \"0 1 50%\"\r\n },\r\n dialogTextWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\"\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport React from \"react\"\r\nimport Button from \"@mui/material/Button\"\r\nimport Dialog from \"@mui/material/Dialog\"\r\nimport {\r\n Box, Typography\r\n} from \"@mui/material\"\r\n\r\nconst ConfirmationDialog = ({ open, onConfirm, onClose }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n {Localization.removeAll}\r\n \r\n {Localization.areYouSure}\r\n {Localization.deleteAllConfirmation}\r\n \r\n \r\n \r\n {Localization.yes}\r\n \r\n \r\n {Localization.no}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ConfirmationDialog\r\n","import { productViewBreakpoint } from \"../../../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n whiteSpace: \"pre-line\",\r\n overflowWrap: \"break-word\"\r\n },\r\n text: {\r\n width: 580,\r\n lineHeight: 2,\r\n [theme.breakpoints.down(productViewBreakpoint)]: {\r\n width: \"auto\"\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./styles\"\r\nimport { Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport ReactHtmlParser from \"react-html-parser\"\r\n\r\nexport default function NewlineText({ text, technicalInformation }) {\r\n const classes = useStyles()\r\n\r\n if (typeof text === \"undefined\" || text === null) return null\r\n const newText = text.split(/\\r?\\n/).map((str, i) => (\r\n \r\n {str}\r\n \r\n ))\r\n\r\n return (\r\n technicalInformation === true ? (\r\n
\r\n {ReactHtmlParser(text)}\r\n
\r\n ) :
{newText}
\r\n )\r\n}\r\n","import { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nconst slice = createSlice({\r\n name: \"userMessage\",\r\n initialState: {\r\n snackPack: []\r\n },\r\n reducers: {\r\n setMessage: (state, action) => {\r\n state.snackPack.push(\r\n {\r\n message: action.payload.message,\r\n key: new Date().getTime(),\r\n severity: action.payload.severity ?? \"info\",\r\n type: action.payload.type ?? \"snackbar\",\r\n autoHide: action.payload.autoHide ?? false\r\n }\r\n )\r\n },\r\n nextSnackPack: state => {\r\n state.snackPack = state.snackPack.slice(1)\r\n }\r\n }\r\n})\r\n\r\nconst { setMessage, nextSnackPack } = slice.actions\r\n\r\nexport default slice.reducer\r\n\r\nexport const setSnackbarMessage = (message, severity) => dispatch => dispatch(\r\n setMessage({\r\n message,\r\n severity,\r\n autoHide: true,\r\n type: \"snackbar\"\r\n })\r\n)\r\n\r\nexport const setDialogMessage = message => dispatch => dispatch(\r\n setMessage({\r\n message,\r\n autoHide: false,\r\n type: \"dialog\"\r\n })\r\n)\r\n\r\nexport const setNextSnackPack = () => dispatch => dispatch(\r\n nextSnackPack()\r\n)\r\n","// Need to use the React-specific entry point to import createApi\r\nimport { restoreNameForBrandOther } from \"../../lib/helper/brandHelper\"\r\nimport { sortModels } from \"../../lib/helper/modelHelper\"\r\nimport { newsArticleAdapter } from \"../adapter/newsArticleAdapter\"\r\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\"\r\n\r\n// Define a service using a base URL and expected endpoints\r\nexport const broditWebApi = createApi({\r\n reducerPath: \"broditWebApi\",\r\n baseQuery: fetchBaseQuery({\r\n baseUrl: \"/api/\"\r\n }),\r\n endpoints: builder => ({\r\n getNews: builder.query({\r\n query: ({\r\n language, limit = 20, groups = [], includeFutureNews = false\r\n }) => {\r\n let params = \"?\"\r\n params += `language=${language}`\r\n params += `&limit=${limit}`\r\n params += `&includeFutureNews=${includeFutureNews}`\r\n params += groups.map(group => `&groups=${group}`).join(\"\")\r\n return `news${params}`\r\n },\r\n transformResponse: (response, _meta, arg) => {\r\n const languageSpecificNews = response.map(article => ({\r\n ...article,\r\n id: `${arg.language}-${article.id}`,\r\n originalId: article.id\r\n }))\r\n\r\n newsArticleAdapter.addMany(\r\n newsArticleAdapter.getInitialState(),\r\n languageSpecificNews\r\n )\r\n\r\n return languageSpecificNews\r\n }\r\n }),\r\n getNewsById: builder.query({\r\n query: ({ language, id }) => `news/${id}?language=${language}`,\r\n transformResponse: (response, _meta, arg) => {\r\n const languageSpecificNews = {\r\n ...response,\r\n id: `${arg.language}-${response.id}`,\r\n originalId: response.id\r\n }\r\n\r\n newsArticleAdapter.addOne(\r\n newsArticleAdapter.getInitialState(),\r\n languageSpecificNews\r\n )\r\n\r\n return languageSpecificNews\r\n }\r\n }),\r\n getOrderSystemMaintenance: builder.query({\r\n query: () => \"Users/IsOrderSystemUnderMaintenance\"\r\n }),\r\n getBigNews: builder.query({\r\n query: () => \"news/GetBigNews\"\r\n }),\r\n getHeroNews: builder.query({\r\n query: () => \"news/GetHeroNews\"\r\n }),\r\n getFilesById: builder.query({\r\n query: id => `ProductInfo/GetProductSheets/${id}`\r\n }),\r\n getRelatedProducts: builder.query({\r\n query: id => `RelatedProducts/${id}`\r\n }),\r\n getModTekProducts: builder.query({\r\n query: id => `RelatedProducts/Modtek/${id}`\r\n }),\r\n getRelatedVideos: builder.query({\r\n query: id => `RelatedVideos/${id}`\r\n }),\r\n getModels: builder.query({\r\n query: ({ language, steerings = null }) => {\r\n const steeringParams = steerings\r\n ? steerings.map(steering => `&steerings=${steering}`).join(\"\")\r\n : \"\"\r\n\r\n return `v1/Models?language=${language}${steeringParams}`\r\n },\r\n transformResponse: response => sortModels(response)\r\n }),\r\n getModelsForBrand: builder.query({\r\n query: ({ brandId, language, steerings = null }) => {\r\n const [restoredBrandId] = restoreNameForBrandOther([brandId])\r\n const steeringParams = steerings\r\n ? steerings.map(steering => `&steerings=${steering}`).join(\"\")\r\n : \"\"\r\n\r\n return `v1/Brands/${restoredBrandId}/Models?language=${language}${steeringParams}`\r\n },\r\n transformResponse: response => sortModels(response)\r\n }),\r\n getYearsForModel: builder.query({\r\n query: ({\r\n modelIds,\r\n brandIds,\r\n language,\r\n steerings\r\n }) => ({\r\n url: \"ProductInfo/GetModelYears\",\r\n method: \"POST\",\r\n body: {\r\n modelIds: modelIds,\r\n brandIds: restoreNameForBrandOther(\r\n brandIds\r\n ),\r\n language: language,\r\n steering: steerings\r\n }\r\n }),\r\n transformResponse: response => response.response\r\n }),\r\n getReplacementProducts: builder.query({\r\n query: id => `ProductInfo/GetReplacementProducts?id=${id}`\r\n }),\r\n getTechnicalInformationForProduct: builder.query({\r\n query: id => `ProductInfo/GetProductsHtmlText?id=${id}`\r\n }),\r\n getAltNameForProducts: builder.query({\r\n query: id => `ProductInfo/GetAltTextForProducts?id=${id}`\r\n }),\r\n setPreferredSteering: builder.mutation({\r\n query: body => ({\r\n url: `Users/SetPreferredSteering/${body.preferredSteering}`,\r\n method: \"POST\",\r\n body: {\r\n authToken: body.authToken\r\n }\r\n })\r\n }),\r\n logFrontendError: builder.mutation({\r\n query: body => ({\r\n url: \"Error/Log\",\r\n method: \"POST\",\r\n body: {\r\n error: body.error,\r\n stack: body.stack\r\n }\r\n })\r\n })\r\n })\r\n})\r\n\r\nexport const {\r\n useGetNewsQuery,\r\n useGetNewsByIdQuery,\r\n useGetOrderSystemMaintenanceQuery,\r\n useGetBigNewsQuery,\r\n useGetHeroNewsQuery,\r\n useGetFilesByIdQuery,\r\n useGetRelatedProductsQuery,\r\n useGetRelatedVideosQuery,\r\n useGetModelsQuery,\r\n useGetModelsForBrandQuery,\r\n useGetYearsForModelQuery,\r\n useGetReplacementProductsQuery,\r\n useGetModTekProductsQuery,\r\n useGetTechnicalInformationForProductQuery,\r\n useSetPreferredSteeringMutation,\r\n useGetAltNameForProductsQuery,\r\n useLogFrontendErrorMutation\r\n} = broditWebApi\r\n","export const microBreakpoint = 300\r\nexport const mobileBreakpoint = 769 // px\r\nexport const mobileMenuBreakpoint = 1081\r\nexport const tabletBreakpoint = 1199\r\nexport const productViewBreakpoint = 999\r\nexport const desktopBreakpoint = 1920\r\nexport const midSizeBreakpoint = 1600\r\n","import { useCustomerOrder } from \"../../../redux/hook/customerOrderHooks\"\r\nimport OrderInfo from \"../OrderInfo/OrderInfo\"\r\nimport React from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport { CircularProgress } from \"@mui/material\"\r\n\r\nconst CustomerOrderInfo = () => {\r\n const { order } = useParams()\r\n\r\n const customerOrder = useCustomerOrder(order)\r\n\r\n if (customerOrder === undefined) return \r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CustomerOrderInfo\r\n","import { strings as Localization } from \"../../lib/Localization\"\r\nimport React from \"react\"\r\nimport { Snackbar, Button } from \"@mui/material\"\r\n\r\nconst ErrorMessage = ({ open, handleClose }) => {\r\n const handleClick = () => {\r\n handleClose()\r\n }\r\n\r\n const action = (\r\n \r\n {Localization.close}\r\n \r\n )\r\n\r\n // Todo: kanske inte ska ha en sån här (Snackbar) som visar att det inträffat fel..\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ErrorMessage\r\n","import useStyles from \"./styles\"\r\nimport NewsItem from \"../NewsItem\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport usePage from \"../../../redux/hook/pageHook\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport PageHandler from \"../../PageHandler/PageHandler\"\r\nimport { useGetNewsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport { useSteering } from \"../../../redux/hook/userHooks\"\r\nimport LeftRightSteeringFilter from \"../../AutocompleteSearch/VehicleSearchbar/LeftRightSteeringFilter\"\r\nimport {\r\n Box, Typography, Container,\r\n Skeleton\r\n} from \"@mui/material\"\r\n\r\nimport React from \"react\"\r\n\r\nfunction VehicleNewsListPage() {\r\n const { limit } = usePage()\r\n const language = useLanguage()\r\n const steering = useSteering()\r\n const classes = useStyles()\r\n let steeringGroup\r\n switch (steering) {\r\n case \"1\":\r\n steeringGroup = \"LHD\"\r\n break\r\n case \"2\":\r\n steeringGroup = \"RHD\"\r\n break\r\n default:\r\n steeringGroup = \"LHD\"\r\n }\r\n\r\n const { data: vehicleNews, isFetching } = useGetNewsQuery({\r\n language,\r\n limit,\r\n groups: [steeringGroup]\r\n })\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {Localization.newProductsForVehicles.toUpperCase()}\r\n \r\n {\r\n language === \"en\"\r\n && \r\n }\r\n \r\n
\r\n {\r\n !isFetching\r\n && vehicleNews.map(news => (\r\n \r\n ))\r\n }\r\n {\r\n isFetching\r\n && [...Array(limit).keys()].map(i => (\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default VehicleNewsListPage\r\n","import { setNextSnackPack } from \"../../redux/userMessageSlice\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport {\r\n Box, Button, Dialog, DialogActions, DialogContent, Snackbar,\r\n Alert\r\n} from \"@mui/material\"\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst MessageNotification = () => {\r\n const dispatch = useDispatch()\r\n const [open, setOpen] = useState(false)\r\n const snackPack = useSelector(state => state.userMessage.snackPack)\r\n const [messageInfo, setMessageInfo] = useState(undefined)\r\n const autoHideDuration = messageInfo?.autoHide ? 3500 : null\r\n\r\n useEffect(() => {\r\n if (snackPack.length && !messageInfo) {\r\n setMessageInfo({ ...snackPack[0] })\r\n dispatch(setNextSnackPack())\r\n setOpen(true)\r\n } else if (snackPack.length && messageInfo && open) {\r\n setOpen(false)\r\n }\r\n }, [snackPack, messageInfo, open, dispatch])\r\n\r\n const closeSnackbar = () => {\r\n setOpen(false)\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") return\r\n closeSnackbar()\r\n }\r\n\r\n const handleExited = () => {\r\n setMessageInfo(undefined)\r\n }\r\n\r\n const messageProps = {\r\n key: messageInfo?.key,\r\n open: open,\r\n onClose: handleClose,\r\n autoHideDuration\r\n }\r\n\r\n const transitionProps = {\r\n onExited: handleExited\r\n }\r\n\r\n return (\r\n \r\n {\r\n messageInfo?.type === \"snackbar\"\r\n && (\r\n \r\n \r\n {messageInfo?.message}\r\n \r\n \r\n )\r\n }\r\n {\r\n messageInfo?.type === \"dialog\"\r\n && (\r\n \r\n {messageInfo?.message}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default MessageNotification\r\n","import DynamicContent from \"./DynamicContent/DynamicContent\"\r\nimport { desktopBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { Container, useMediaQuery, useTheme } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\n\r\nconst DynamicContentPage = ({ type }) => {\r\n const { type: parameterType } = useParams()\r\n const theme = useTheme()\r\n const selectedType = parameterType ?? type\r\n const isDesktop = useMediaQuery(t => t.breakpoints.up(desktopBreakpoint))\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default DynamicContentPage\r\n","import withdrawCookiesConsent from \"../../lib/helper/gdprHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { Container, Typography, useTheme } from \"@mui/material\"\r\nimport React, { useEffect } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nfunction WithdrawCookiesConsent() {\r\n const dispatch = useDispatch()\r\n const theme = useTheme()\r\n const language = useLanguage()\r\n\r\n useEffect(() => {\r\n dispatch(withdrawCookiesConsent({ skipReload: true }))\r\n window.location.replace(`/${language}`)\r\n }, [])\r\n\r\n return (\r\n \r\n {Localization.redirectingToStartPage}\r\n \r\n )\r\n}\r\n\r\nexport default WithdrawCookiesConsent\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\nfunction LandingPageMetaDescription() {\r\n const language = useLanguage()\r\n\r\n const title = language === \"sv\"\r\n ? \"Brodit | Monteringslösningen för din enhet\"\r\n : \"Brodit | Mounting solutions for your device\"\r\n const description = language === \"sv\"\r\n ? \"Brodit tillverkar en världsledande tvådelslösning för modellspecifik montering av din enhet i ditt fordon. Vilken enhet som helst, var som helst! Funktion | Kvalitet | Säkerhet.\"\r\n : \"Brodit is a world-leading manufacturer of model specific mounting solutions for your device. Any device, anywhere! Function | Quality | Safety.\"\r\n\r\n const keywords = language === \"sv\"\r\n ? \"Brodit, monteringslösningar, Truckfästen, Rörfästen, Piedestalfästen, ProClip, enhetshållare\"\r\n : \"Brodit, Mounting Solutions, Forklift Mounts, Pipe Mounts, Pedestal Mounts, ProClip, Device Holders\"\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default LandingPageMetaDescription\r\n","import { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\n\r\nfunction NewsMetaDescription() {\r\n const language = useLanguage()\r\n\r\n const title = language === \"sv\"\r\n ? \"Nyheter\"\r\n : \"News\"\r\n const description = language === \"sv\"\r\n ? \"Letar du hållare till din enhet? Se våra nyheter här!\"\r\n : \"Looking for a mounting solution? See our news here!\"\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NewsMetaDescription\r\n","import { createSlice } from \"@reduxjs/toolkit\"\r\n\r\nexport const cartSlice = createSlice({\r\n name: \"cart\",\r\n initialState: {\r\n order: {\r\n step: 0,\r\n number: \"\"\r\n },\r\n items: [],\r\n shouldSync: false\r\n },\r\n reducers: {\r\n // Set to a determined quantity (needed in cart view)\r\n setQty: (state, action) => ({\r\n ...state,\r\n items: state.items.map((item, i) => (\r\n i === action.payload.index ? { ...item, quantity: action.payload.quantity } : item\r\n )),\r\n shouldSync: true\r\n }),\r\n add: (state, action) => ({\r\n ...state,\r\n items: [...state.items, { id: action.payload.id, quantity: action.payload.quantity }],\r\n shouldSync: true\r\n }),\r\n setItems: (state, action) => {\r\n state.items = action.payload\r\n state.shouldSync = true\r\n },\r\n del: (state, action) => ({\r\n ...state,\r\n items: [...state.items.filter((element, index) => index !== action.payload)],\r\n shouldSync: true\r\n }),\r\n empty: state => ({\r\n ...state,\r\n items: [],\r\n shouldSync: true\r\n }),\r\n editNote: (state, action) => ({\r\n ...state,\r\n items: state.items.map((item, i) => (\r\n i === action.payload.index ? { ...item, note: action.payload.text } : item\r\n )),\r\n shouldSync: true\r\n }),\r\n setShouldSync: (state, action) => {\r\n state.shouldSync = action.payload\r\n },\r\n nextOrderStep: state => ({\r\n ...state,\r\n order: {\r\n step: state.order.step + 1,\r\n number: state.order.number\r\n }\r\n }),\r\n prevOrderStep: state => ({\r\n ...state,\r\n order: {\r\n step: state.order.step - 1,\r\n number: state.order.number\r\n }\r\n }),\r\n putOrderId: (state, action) => ({\r\n ...state,\r\n order: {\r\n step: state.order.step,\r\n number: action.payload\r\n }\r\n }),\r\n resetOrderStep: state => ({\r\n ...state,\r\n order: {\r\n step: 0,\r\n number: state.order.number // Varför behålla egentligen\r\n }\r\n }),\r\n batchAdd: (state, action) => ({\r\n ...state,\r\n items: action.payload.map(item => ({ id: item.article, quantity: item.quantity })),\r\n shouldSync: true\r\n })\r\n }\r\n})\r\n\r\nexport default cartSlice.reducer\r\n\r\nconst {\r\n add, setItems, setShouldSync, del, empty,\r\n setQty, nextOrderStep, prevOrderStep, putOrderId,\r\n resetOrderStep, editNote, batchAdd\r\n} = cartSlice.actions\r\n\r\nexport const addToCart = (id, quantity) => dispatch => dispatch(\r\n add({\r\n id,\r\n quantity\r\n })\r\n)\r\n\r\nexport const setCartItems = items => dispatch => dispatch(\r\n setItems(items)\r\n)\r\n\r\nexport const setShouldSyncCart = shouldSync => dispatch => dispatch(\r\n setShouldSync(shouldSync)\r\n)\r\n\r\nexport const setQuantity = (quantity, index) => dispatch => dispatch(\r\n setQty({\r\n quantity,\r\n index\r\n })\r\n)\r\n\r\nexport const deleteCartRow = index => dispatch => dispatch(\r\n del(index)\r\n)\r\n\r\nexport const editCartNote = (text, index) => dispatch => dispatch(\r\n editNote({\r\n text,\r\n index\r\n })\r\n)\r\n\r\nexport const emptyCart = () => dispatch => dispatch(empty())\r\n\r\nexport const nextCartStep = () => dispatch => dispatch(nextOrderStep())\r\n\r\nexport const prevCartStep = () => dispatch => dispatch(prevOrderStep())\r\n\r\nexport const setOrderId = id => dispatch => dispatch(putOrderId(id))\r\n\r\nexport const resetCartStep = () => dispatch => dispatch(resetOrderStep())\r\n\r\nexport const batchAddToCart = items => dispatch => dispatch(batchAdd(items))\r\n","import {\r\n desktopBreakpoint, mobileBreakpoint, mobileMenuBreakpoint, tabletBreakpoint\r\n} from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n main: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n },\r\n section1: {\r\n maxWidth: \"100%\",\r\n display: \"flex\",\r\n height: \"auto\",\r\n flexShrink: 0,\r\n backgroundColor: \"#FFF\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n heroBoxWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n flex: \"0 1 1920px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n justifyContent: \"center\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n display: \"none\"\r\n }\r\n },\r\n heroBox: {\r\n display: \"flex\",\r\n padding: \"15px 30px\",\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"20px\",\r\n borderRadius: \"10px\",\r\n background: \"rgba(255, 255, 255, 0.90)\",\r\n marginRight: \"200px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n padding: \"15px\"\r\n },\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n marginRight: \"unset\"\r\n }\r\n },\r\n heroBoxHeader: {\r\n color: \"#FFF\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 88.889% */\r\n letterSpacing: \"0.5px\",\r\n position: \"relative\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n leadingTrim: \"both\",\r\n textEdge: \"cap\",\r\n fontSize: \"8px\"\r\n }\r\n },\r\n heroBoxTitle: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"40px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\" /* 100% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n leadingTrim: \"both\",\r\n textEdge: \"cap\",\r\n fontSize: \"18px\",\r\n lineHeight: \"0px\", /* 0% */\r\n width: \"100%\"\r\n }\r\n },\r\n heroBoxText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 160% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"13px\",\r\n lineHeight: \"normal\",\r\n width: \"100%\"\r\n }\r\n },\r\n videoWrapper: {\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n aspectRatio: \"16 / 9\",\r\n width: \"100%\"\r\n }\r\n },\r\n youtube: {\r\n width: \"700px\",\r\n height: \"368px\",\r\n border: 0,\r\n borderRadius: 6,\r\n [theme.breakpoints.down(1400)]: {\r\n width: \"450px\",\r\n height: \"234px\"\r\n },\r\n [theme.breakpoints.between(1400, 1700)]: {\r\n width: \"550px\",\r\n height: \"286px\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n }\r\n },\r\n searchWrapper: {\r\n display: \"flex\",\r\n padding: \"40px 0px 75px 0px\",\r\n alignItems: \"center\",\r\n gap: \"60px\",\r\n width: \"auto\",\r\n maxWidth: \"1400px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flexDirection: \"column-reverse\",\r\n maxWidth: \"100%\"\r\n }\r\n },\r\n search: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"55px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n flexDirection: \"column\"\r\n }\r\n },\r\n section2Wrapper: {\r\n flex: \"0 0 100%\",\r\n backgroundColor: \"#F8F8F8\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n paddingTop: \"75px\",\r\n paddingBottom: \"75px\"\r\n },\r\n section2: {\r\n width: \"80%\",\r\n height: \"auto\",\r\n flexShrink: 0,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n gap: 50,\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n maxWidth: \"550px\",\r\n width: \"100%\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\"\r\n }\r\n },\r\n section2Text: {\r\n maxWidth: \"782px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"20px\"\r\n },\r\n holders: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n gap: \"30px\",\r\n maxWidth: \"1399px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n width: \"100%\"\r\n },\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n alignItems: \"center\",\r\n flexDirection: \"column\"\r\n }\r\n },\r\n section3: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\",\r\n flexDirection: \"column\",\r\n paddingTop: 40,\r\n paddingBottom: 40\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"50%\"\r\n }\r\n },\r\n section3Wrappper: {\r\n width: \"50%\",\r\n maxWidth: \"618px\",\r\n height: \"550px\",\r\n flexShrink: 0,\r\n backgroundColor: \"#FFF\",\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\",\r\n paddingLeft: \"60px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n padding: 0,\r\n width: \"100%\",\r\n height: \"auto\",\r\n maxWidth: \"unset\"\r\n }\r\n },\r\n section3TextBox: {\r\n display: \"inlineFlex\",\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n }\r\n },\r\n customSolutionImg: {\r\n width: \"956px\",\r\n height: \"545px\",\r\n flexShrink: 0,\r\n objectFit: \"cover\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"485px\",\r\n height: \"282px\"\r\n },\r\n [theme.breakpoints.down(505)]: {\r\n width: \"250px\",\r\n height: \"146px\"\r\n }\r\n },\r\n section4Wrapper: {\r\n flex: \"0 0 100%\",\r\n backgroundColor: \"#F8F8F8\",\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n section4: {\r\n flexShrink: 0,\r\n backgroundColor: \"#F8F8F8\",\r\n width: \"80%\",\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n maxWidth: \"550px\",\r\n width: \"100%\",\r\n paddingLeft: \"0%\",\r\n paddingRight: \"0%\"\r\n }\r\n },\r\n section4News: {\r\n maxWidth: \"822px\",\r\n display: \"inline-flex\",\r\n paddingTop: \"75px\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n width: \"80%\",\r\n paddingTop: 40\r\n },\r\n [theme.breakpoints.between(mobileBreakpoint, mobileMenuBreakpoint)]: {\r\n width: \"100%\"\r\n }\r\n },\r\n deviceHolder: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n marginBottom: \"60px\"\r\n },\r\n vehicleHolder: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n marginBottom: \"150px\"\r\n },\r\n blackH2: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Rubik\",\r\n fontSize: \"30px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"500\",\r\n lineHeight: \"40px\" /* 133.333% */,\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n textAlign: \"center\",\r\n fontSize: \"20px\",\r\n lineHeight: \"26.8px\"\r\n }\r\n },\r\n blackH3Medium: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 114.286% */\r\n letterSpacing: \"0.5px\"\r\n },\r\n blackText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"20px\", /* 142.857% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n textAlign: \"center\"\r\n }\r\n },\r\n blackH2Roboto: {\r\n color: \"#2D2D2D\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"40px\" /* 200% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"18px\",\r\n fontWeight: \"400\",\r\n lineHeight: \"32px\" /* 177.778% */\r\n }\r\n },\r\n blackH3Roboto: {\r\n color: \"#2D2D2D\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"32px\" /* 160% */,\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"16px\",\r\n fontWeight: \"500px\",\r\n lineHeight: \"normal\"\r\n }\r\n },\r\n blackArialText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 141.176% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\"/* 142.857% */\r\n }\r\n },\r\n holderTextBox: {\r\n backgroundColor: \"blue\",\r\n borderRadius: \"0px 0px 6px 6px\",\r\n background: \"#FFF\",\r\n height: \"128px\",\r\n paddingTop: 20,\r\n paddingBottom: 20,\r\n marginTop: -5,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n height: \"auto\",\r\n alignItems: \"flex-start\",\r\n paddingLeft: \"20px\"\r\n }\r\n },\r\n section3Button: {\r\n /* M3/label/medium */\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"16px\", /* 114.286% */\r\n letterSpacing: \"0.5px\",\r\n textTransform: \"none\",\r\n color: \"#2d2d2d\"\r\n },\r\n section1Button: {\r\n display: \"flex\",\r\n padding: \"10px 20px\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n background: \"#F09057\",\r\n textDecoration: \"none\"\r\n },\r\n alignTextCenter: {\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n textAlign: \"center\"\r\n }\r\n },\r\n thumbNailIndicator: {\r\n width: \"30px\",\r\n height: \"30px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n thumbNailIndicatorCircle: {\r\n \"&.MuiButton-root\": {\r\n width: 12.5,\r\n height: 12.5,\r\n borderRadius: \"50%\",\r\n minWidth: 0,\r\n padding: 0\r\n },\r\n \"&.MuiButton-contained\": {\r\n backgroundColor: \"black\"\r\n }\r\n },\r\n heroWrapper: {\r\n display: \"flex\",\r\n flex: \"0 0 100%\",\r\n overflow: \"hidden\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n maxWidth: \"100%\",\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/1920.webp)\",\r\n backgroundPosition: \"center center\",\r\n backgroundSize: \"cover\",\r\n height: \"351px\",\r\n [theme.breakpoints.up(mobileMenuBreakpoint)]: {\r\n height: \"600px\"\r\n },\r\n [theme.breakpoints.between(desktopBreakpoint, 2560)]: {\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/2560.webp)\"\r\n },\r\n [theme.breakpoints.up(2560)]: {\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/3840.webp)\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n backgroundImage: \"url(/files/ImagesStatic/Hero/768.webp)\"\r\n }\r\n },\r\n fadeIn: {\r\n animation: \"$fadeIn 500ms ease-in\"\r\n },\r\n newsWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n marginTop: \"40px\",\r\n marginBottom: \"40px\"\r\n },\r\n selectorWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n flex: \"1 0 235px\"\r\n },\r\n selectorTitle: {\r\n flex: \"0 0 100%\",\r\n height: \"48px\",\r\n textAlign: \"center\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n lineHeight: \"24px\",\r\n [theme.breakpoints.down(1700)]: {\r\n fontSize: \"16px\"\r\n }\r\n },\r\n steeringWrapper: {\r\n flex: \"0 0 250px\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n },\r\n steering: {\r\n flex: \"0 0 200px\",\r\n marginBottom: \"10px\"\r\n },\r\n anchorButtonStyle: {\r\n fontFamily: \"Arial\",\r\n fontWeight: 700,\r\n fontSize: \"14px\",\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n padding: \"10px 20px 10px 20px\",\r\n borderRadius: \"4px\",\r\n textAlign: \"center\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\",\r\n backgroundColor: \"#F09057\",\r\n marginTop: \"10px\",\r\n maxWidth: \"60%\",\r\n transition: \"all 0.1s ease-in\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ef7830\"\r\n }\r\n },\r\n downloadAnchor: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"5px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n borderBottom: \"1px solid transparent\",\r\n \"&:hover\": {\r\n borderBottom: \"1px solid #F09057\"\r\n }\r\n },\r\n \"@keyframes fadeIn\": {\r\n \"0%\": { opacity: 0, transform: \"translateX(-15px)\" },\r\n \"100%\": { opacity: 1, transform: \"translateX(0)\" }\r\n },\r\n fadeOut: {\r\n animation: \"$fadeOut 500ms ease-out\"\r\n },\r\n \"@keyframes fadeOut\": {\r\n \"0%\": { opacity: 1, transform: \"translateX(0)\" },\r\n \"100%\": { opacity: 0, transform: \"translateX(15px)\" }\r\n },\r\n readmore: {\r\n display: \"flex\",\r\n width: \"auto\",\r\n alignItems: \"center\",\r\n gap: \"5px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n borderBottom: \"2px solid #F09057\"\r\n }\r\n },\r\n readmoreParent: {\r\n display: \"flex\",\r\n marginTop: \"8px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n justifyContent: \"center\"\r\n }\r\n },\r\n downloadCatalog: {\r\n textDecoration: \"none\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n },\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n borderBottom: \"2px solid #F09057\"\r\n }\r\n },\r\n imageGrid: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(2, 1fr)\",\r\n gap: \"5px\",\r\n marginBottom: \"16px\"\r\n },\r\n imageGridItem: {\r\n gridColumn: \"span 1\",\r\n \"&:last-child\": {\r\n gridColumn: \"span 2\"\r\n }\r\n },\r\n imageGridItemImage: {\r\n display: \"block\",\r\n width: \"100%\",\r\n borderRadius: \"4px\"\r\n }\r\n}))\r\n","import { desktopBreakpoint, mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n outerWrapper: {\r\n flex: \"0 1 446px\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"1 1 auto\"\r\n }\r\n },\r\n holderWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 446px\",\r\n height: \"100%\",\r\n flexDirection: \"column\",\r\n overflow: \"hidden\",\r\n borderRadius: 10,\r\n boxShadow: \"0px 0px 20px 0px rgba(45, 45, 45, 0.1)\"\r\n // [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n // height: \"auto\"\r\n // }\r\n },\r\n holderTextBox: {\r\n flex: \"1 1 auto\",\r\n backgroundColor: \"#FFFFFF\",\r\n background: \"#FFF\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n padding: \"20px\",\r\n textAlign: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"10px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n height: \"auto\"\r\n }\r\n },\r\n blackH3Roboto: {\r\n color: \"#2D2D2D\",\r\n fontSize: \"20px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"700\",\r\n lineHeight: \"32px\" /* 160% */,\r\n marginBottom: \"5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"16px\",\r\n fontWeight: \"500px\",\r\n lineHeight: \"normal\"\r\n }\r\n },\r\n blackArialText: {\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n lineHeight: \"24px\", /* 141.176% */\r\n letterSpacing: \"0.5px\",\r\n [theme.breakpoints.down(desktopBreakpoint)]: {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\"/* 142.857% */\r\n }\r\n },\r\n link: {\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\",\r\n paddingBottom: \"2px\",\r\n [theme.breakpoints.up(desktopBreakpoint)]: {\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"scaleX(0)\",\r\n height: \"2px\",\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: \"#F09057\",\r\n transformOrigin: \"bottom right\",\r\n transition: \"transform 0.25s ease-out\"\r\n },\r\n \"&:hover:after\": {\r\n transform: \"scaleX(1)\",\r\n transformOrigin: \"bottom left\"\r\n }\r\n }\r\n }\r\n}))\r\n","import useStyles from \"./Holder.styles\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Typography\r\n} from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst HolderElement = ({\r\n id, src, isDesktop, alt, title, text, link\r\n}) => {\r\n const classes = useStyles()\r\n const lang = useLanguage()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {title}\r\n \r\n \r\n {text}\r\n \r\n
\r\n {link.title}\r\n
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default HolderElement\r\n","import useStyles from \"../styles\"\r\nimport { useGetHeroNewsQuery } from \"../../../redux/services/broditWebApi\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport React, { useEffect, useRef, useState } from \"react\"\r\nimport { Button, Typography, useMediaQuery } from \"@mui/material\"\r\nimport { Link } from \"react-router-dom\"\r\nimport classnames from \"classnames\"\r\n\r\nfunction HeroNews() {\r\n const { data: hNews } = useGetHeroNewsQuery()\r\n const language = useLanguage()\r\n const heroNews = hNews?.filter(x => x.language === language && x.active === true)\r\n const textRef = useRef()\r\n const [fadeIn, setFadeIn] = useState(true)\r\n const [selectedHeroIndex, setSelectedHeroIndex] = useState(0)\r\n const fadeInRef = useRef(0)\r\n const classes = useStyles()\r\n const isTablet = useMediaQuery(theme.breakpoints.up(tabletBreakpoint))\r\n\r\n const handleSelectHero = index => {\r\n setFadeIn(false)\r\n setTimeout(() => {\r\n fadeInRef.current += 1\r\n setSelectedHeroIndex(index)\r\n setFadeIn(true)\r\n }, 500) // Set the timeout to match the animation duration\r\n }\r\n\r\n useEffect(() => {\r\n const intervalId = setInterval(() => {\r\n if (heroNews?.length > 1) {\r\n setFadeIn(false)\r\n setTimeout(() => {\r\n fadeInRef.current += 1\r\n const len = heroNews?.length || 0\r\n setSelectedHeroIndex(prevIndex => ((prevIndex + 1) % len))\r\n setFadeIn(true)\r\n }, 500) // Set the timeout to match the animation duration\r\n }\r\n }, 4000)\r\n\r\n return () => clearInterval(intervalId)\r\n }, [heroNews?.length, handleSelectHero])\r\n\r\n useEffect(() => {\r\n if (textRef.current) {\r\n const naturalWidth = textRef.current.scrollWidth\r\n\r\n if (textRef.current.clientWidth !== naturalWidth) {\r\n textRef.current.style.width = `${naturalWidth}px`\r\n }\r\n }\r\n }, [heroNews, selectedHeroIndex])\r\n\r\n return (\r\n
\r\n {(heroNews?.[selectedHeroIndex]?.active) && (\r\n
\r\n
\r\n \r\n \r\n {Localization.new}\r\n \r\n
\r\n \r\n \r\n {heroNews?.[selectedHeroIndex]?.name}\r\n \r\n \r\n {heroNews?.[selectedHeroIndex]?.alt}\r\n \r\n {isTablet\r\n ? (\r\n \r\n {Localization.readMore}\r\n \r\n )\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 { NavLink } from \"react-router-dom\"\r\nimport React from \"react\"\r\n\r\nconst NewsCard = ({ item, type, language }) => {\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 {item?.title}\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 => )}\r\n
\r\n {!isDesktop\r\n && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {Localization.showMoreNews}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NewsCardList\r\n","import useStyles from \"./styles\"\r\nimport HolderComponent from \"./components/Holder\"\r\nimport Row from \"./components/Row\"\r\nimport HeroNews from \"./components/Heronews\"\r\nimport CarMount from \"../../assets/carMount.png\"\r\nimport MoveClip from \"../../assets/MoveClip_Start.jpg\"\r\nimport Suction from \"../../assets/Suction_Start.jpg\"\r\nimport Workstation from \"../../assets/Workstation_Start.jpg\"\r\nimport WorkstationMobile from \"../../assets/Workstation_Mobile.jpg\"\r\nimport PipeMobile from \"../../assets/Pipe_Mobile.jpg\"\r\nimport PedestalMobile from \"../../assets/Pedestal_Mobile.jpg\"\r\nimport Holder from \"../../assets/holder.png\"\r\nimport SolutionsMob from \"../../assets/solutions_mob.jpg\"\r\nimport Piedestal from \"../../assets/piedestal.png\"\r\nimport Ror from \"../../assets/ror.png\"\r\nimport Truck from \"../../assets/truck.png\"\r\nimport CustomSolutions from \"../../assets/customizedSolutions.png\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { LeftRightSteeringFilter } from \"../AutocompleteSearch\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport theme from \"../../theme\"\r\nimport { desktopBreakpoint, mobileMenuBreakpoint, tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport NewsCardList from \"../News/NewsCardList\"\r\nimport MultiSearchbar from \"../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport React from \"react\"\r\nimport {\r\n Box, Button, Typography, useMediaQuery\r\n} from \"@mui/material\"\r\nimport { Link, NavLink } from \"react-router-dom\"\r\nimport classnames from \"classnames\"\r\n\r\nconst Home = () => {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(desktopBreakpoint))\r\n const isTablet = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n const showCards = useMediaQuery(theme.breakpoints.up(1170))\r\n const isMobile = useMediaQuery(theme.breakpoints.down(mobileMenuBreakpoint))\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.homeSection1Titel}\r\n \r\n \r\n {Localization.homeSection1Text}\r\n \r\n
\r\n \r\n {Localization.readMore}\r\n \r\n
\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 \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 React from \"react\"\r\nimport { withStyles } from \"@mui/styles\"\r\nimport { Button, Menu } from \"@mui/material\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\"\r\n\r\nconst StyledMenu = withStyles({\r\n paper: {\r\n marginTop: \"5px\",\r\n boxShadow: \"0px 0px 20px 0px rgba(45, 45, 45, 0.1)\"\r\n }\r\n})(props => (\r\n \r\n))\r\n\r\nconst NavbarMenu = ({ mobile }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n const classes = useStyles()\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n
\r\n \r\n {/* { person icon} */}\r\n \r\n \r\n \r\n {!anchorEl\r\n ? \r\n : }\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default NavbarMenu\r\n","export default __webpack_public_path__ + \"static/media/eng.9931805a.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFdQTFRF////QXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNQXPNUn3DQXPNQXPNx8B81slzQXPNQXPNQXPNU33CmqeXo6yR6NRo89ph/+Fa4V8orAAAABZ0Uk5TAAEFDhwwQGp0e4Wmrri8vc/h5ev0/L9BfX0AAANzSURBVHja7djdauMwEIDR0Y/TQNv3f88uocG25F4se93UsFStzrk32DMfcpwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhXioiIUnLJI95ericuOjZ7/UxvvbV/AaTLax61z+XMw+0W/MiY/qxHRImoLy9p2AOqnDkBuu0+MttraT1K5NengW9SAP9RLeuR43oxiVldrpGXZ3OY1/OSazKGiX8H1FxMYWYlL4Yws0UAswdgBnMTgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAAvlcdu4B06iJVfyGA+vueKVV79QpAAAgAASAABIAAEAACQAAIAAEgAAQgACMQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIgPHUfejbS+XERUez18cD6L8wgG6vXgEIAAEgAASAABAAAkAACAABIAAEgAAEYAQCQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAABGIEAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAHwIwLYzGBmmwBmD6AZwsxa3g9TmNex5+1mDPO6bTnuqznMar1HiWNPddg7TOXMudat9iH3W4sS0df9kgQwnf723iP+br6UXIb8SyifOZwOn7afb7/15gMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgOl9AO6gRrzHx4BRAAAAAElFTkSuQmCC\"","import NavbarMenu from \"../NavbarMenu/NavbarMenu\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport useStyles from \"../styles\"\r\nimport { LeftRightSteeringFilter } from \"../../AutocompleteSearch\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport AsyncSearch from \"../../AsyncSearch/AsyncSearch\"\r\nimport SpeedOrderNavbar from \"../../SpeedOrder/SpeedOrderNavbar\"\r\nimport useCookiesConsent from \"../../../redux/hook/gdprHooks\"\r\nimport engFlag from \"../../../assets/eng.svg\"\r\nimport sweFlag from \"../../../assets/swe.png\"\r\nimport MultiSearchbar from \"../../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport {\r\n Box, Button, Tooltip, Badge, Typography\r\n} from \"@mui/material\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\nimport classnames from \"classnames\"\r\nimport { ShoppingCart } from \"@mui/icons-material\"\r\nimport React from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { Link, NavLink } from \"react-router-dom\"\r\nimport { HashLink } from \"react-router-hash-link\"\r\n\r\nfunction DesktopSearchArea({ handleOpenDrawer, drawerIsOpen }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const otherLang = language === \"sv\" ? \"en\" : \"sv\"\r\n const isAuthorized = useIsUserAuthorized()\r\n const cart = useSelector(state => state.cart)\r\n const acceptedCookies = useCookiesConsent()\r\n\r\n const changeLanguage = () => window.location.pathname.replace(language, otherLang)\r\n\r\n const scrollWithOffset = el => {\r\n const yCoordinate = el.getBoundingClientRect().top + window.scrollY\r\n const yOffset = -100\r\n window.scrollTo({ top: yCoordinate + yOffset, behavior: \"smooth\" })\r\n }\r\n const signedInStyles = isAuthorized && ({ paddingTop: \"5px\", paddingBottom: \"5px\" })\r\n return (\r\n \r\n \r\n {\r\n isAuthorized\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {!isAuthorized\r\n && (\r\n \r\n \r\n {Localization.findReseller}\r\n \r\n \r\n )}\r\n scrollWithOffset(el)} to={`/${language}/#news`} style={{ textDecoration: \"none\" }} className={classes.hoverUnderline}>\r\n \r\n {Localization.news}\r\n \r\n \r\n \r\n \r\n {Localization.allProducts}\r\n \r\n \r\n \r\n {!isAuthorized\r\n && (\r\n \r\n {Localization.logIn}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (language === \"en\")\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DesktopSearchArea\r\n","export default __webpack_public_path__ + \"static/media/close-icon.99dc9a03.svg\";","import { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(() => ({\r\n slider: {\r\n display: \"flex\",\r\n left: 0,\r\n right: 0,\r\n transition: \"all 0.2s ease-in-out\"\r\n },\r\n slideItem: {\r\n flex: \"0 0 100%\"\r\n },\r\n slideContent: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"0 0 100%\",\r\n justifyContent: \"flex-end\"\r\n },\r\n topBar: {\r\n display: \"flex\",\r\n padding: \"20px\",\r\n justifyContent: \"flex-end\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"18px\",\r\n textAlign: \"left\"\r\n },\r\n closeButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n appearance: \"none\",\r\n gap: \"5px\",\r\n border: 0,\r\n backgroundColor: \"transparent\",\r\n cursor: \"pointer\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"15px\",\r\n fontWeight: 400,\r\n lineHeight: \"18px\",\r\n textAlign: \"left\",\r\n color: \"#2d2d2d\"\r\n },\r\n forwardButton: {\r\n border: 0,\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"flex-end\",\r\n background: \"transparent\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n textAlign: \"left\",\r\n paddingTop: \"7px\",\r\n paddingBottom: \"7px\",\r\n paddingRight: \"20px\",\r\n cursor: \"pointer\",\r\n color: \"#2D2D2D\"\r\n },\r\n anchor: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n paddingTop: \"7px\",\r\n paddingBottom: \"7px\",\r\n paddingRight: \"20px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"17px\",\r\n fontWeight: 400,\r\n lineHeight: \"20px\",\r\n letterSpacing: \"0.25px\",\r\n textAlign: \"left\",\r\n color: \"#2D2D2D\",\r\n textDecoration: \"none\"\r\n },\r\n leftDrawerPaper: {\r\n width: \"100%\",\r\n maxWidth: \"600px\",\r\n overflowX: \"hidden\"\r\n },\r\n drawerRow: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n paddingRight: \"20px\",\r\n paddingLeft: \"20px\",\r\n paddingTop: \"5px\",\r\n paddingBottom: \"5px\"\r\n },\r\n loginAnchor: {\r\n borderRadius: \"4px\",\r\n backgroundColor: \"#F09057\",\r\n border: 0,\r\n padding: \"10px 14px 10px 14px\",\r\n fontFamily: \"Arial\",\r\n fontSize: \"14px\",\r\n fontWeight: 700,\r\n lineHeight: \"16px\",\r\n letterSpacing: \"0.5px\",\r\n textAlign: \"left\",\r\n textDecoration: \"none\",\r\n color: \"#2D2D2D\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/arrow-forward.608577d8.svg\";","import CloseIcon from \"./assets/close-icon.svg\"\r\nimport useStyles from \"./styles\"\r\nimport ArrowForward from \"./assets/arrow-forward.svg\"\r\nimport { strings as Localization } from \"../../../../lib/Localization\"\r\nimport { useLanguage } from \"../../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../../redux/hook/userHooks\"\r\n/* eslint-disable import/no-cycle */\r\nimport Menu2 from \"../../../Menu2/Menu2\"\r\nimport { setSearchQuery } from \"../../../../redux/searchReducer\"\r\nimport { signOut } from \"../../../../redux/userSlice\"\r\nimport {\r\n Button\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport Drawer from \"@mui/material/Drawer\"\r\n\r\nfunction MobileDrawer({ open, onClose }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const dispatch = useDispatch()\r\n\r\n const [slide, setSlide] = React.useState(0)\r\n\r\n const handleClose = () => {\r\n onClose()\r\n setTimeout(() => {\r\n setSlide(0)\r\n }, 500)\r\n }\r\n\r\n const handleForward = () => {\r\n setSlide(slide + 1)\r\n }\r\n\r\n const handleBack = () => {\r\n setSlide(slide - 1)\r\n }\r\n\r\n const onItemClick = id => {\r\n dispatch(setSearchQuery({\r\n type: \"menu2Drawer\",\r\n value: { collections: [id] },\r\n clearFilter: true\r\n }))\r\n handleClose()\r\n }\r\n\r\n const links = [\r\n {\r\n type: \"button\",\r\n path: \"/\",\r\n text: Localization.allProducts,\r\n onClick: handleForward\r\n },\r\n {\r\n type: \"link\",\r\n path: `/${language}/#news`,\r\n text: Localization.news\r\n },\r\n {\r\n type: \"link\",\r\n path: `/${language}/retailers`,\r\n text: Localization.findReseller\r\n },\r\n {\r\n type: \"link\",\r\n path: `/${language}/contact`,\r\n text: Localization.contactBrodit\r\n }\r\n ]\r\n\r\n const logOut = () => {\r\n handleClose()\r\n dispatch(signOut())\r\n }\r\n\r\n const renderLoginLogoutButton = () => {\r\n const element = isAuthorized\r\n ? \r\n : {Localization.logIn}\r\n\r\n return (\r\n
\r\n {element}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {links.map(link => (\r\n link.type === \"button\"\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n {link.text}\r\n \r\n )))}\r\n {renderLoginLogoutButton()}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default MobileDrawer\r\n","import MobileDrawer from \"./MobileDrawer/MobileDrawer\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport useStyles from \"../styles\"\r\n/* eslint-disable import/no-cycle */\r\nimport sweFlag from \"../../../assets/swe.png\"\r\nimport engFlag from \"../../../assets/eng.svg\"\r\nimport useCookiesConsent from \"../../../redux/hook/gdprHooks\"\r\nimport { useSearchQuery } from \"../../../redux/hook/searchHooks\"\r\nimport NavbarMenu from \"../NavbarMenu/NavbarMenu\"\r\nimport {\r\n Badge, Box, Button, Tooltip\r\n} from \"@mui/material\"\r\nimport { ShoppingCart } from \"@mui/icons-material\"\r\nimport React, { useEffect } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nfunction MobileSearchArea({ toggleShowSearch }) {\r\n const classes = useStyles()\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const cart = useSelector(state => state.cart)\r\n const otherLang = language === \"sv\" ? \"en\" : \"sv\"\r\n const changeLanguage = () => window.location.pathname.replace(language, otherLang)\r\n const acceptedCookies = useCookiesConsent()\r\n const search = useSearchQuery()\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n useEffect(() => {\r\n toggleShowSearch(false)\r\n }, [search])\r\n\r\n return (\r\n \r\n \r\n {!isAuthorized && (\r\n \r\n {Localization.logIn}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {isAuthorized && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n toggleShowSearch()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {isAuthorized && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileSearchArea\r\n","import { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { loadCookie, saveCookie } from \"../../../redux/cookieStorage\"\r\nimport { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { styled } from \"@mui/styles\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\nimport CloseIcon from \"@mui/icons-material/Close\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst MessageBarBase = styled(\"div\")(({ theme }) => (\r\n {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n flexWrap: \"wrap\",\r\n padding: \"16px 20px\",\r\n backgroundColor: \"#000000\",\r\n color: \"#FFFFFF\",\r\n fontFamily: \"Arial\",\r\n gap: \"8px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n padding: \"16px 50px 16px 20px\"\r\n }\r\n }\r\n))\r\n\r\nconst CloseButton = styled(\"button\")(() => (\r\n {\r\n position: \"absolute\",\r\n right: \"20px\",\r\n top: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"unset\",\r\n color: \"#FFFFFF\",\r\n cursor: \"pointer\"\r\n }\r\n))\r\n\r\nconst ReadMoreLink = styled(Link)(() => (\r\n {\r\n color: \"#FFFFFF\",\r\n fontWeight: 700\r\n }\r\n))\r\n\r\nconst Text = styled(\"div\")(({ theme }) => (\r\n {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n flex: \"0 1 100%\",\r\n justifyContent: \"center\"\r\n }\r\n }\r\n))\r\n\r\nconst MessageBar = () => {\r\n const [open, setOpen] = useState(false)\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const cookieClosed = loadCookie(\"messageClosed\")\r\n const [message, setMessage] = useState(null)\r\n\r\n const fetchAnnouncementMessage = async () => {\r\n const response = await fetch(`/files/DynamicPages/AnnouncementMessage-${language}.json`)\r\n return response.json()\r\n }\r\n\r\n useEffect(() => {\r\n let isMounted = true\r\n\r\n const fetchMessage = async () => {\r\n const result = await fetchAnnouncementMessage()\r\n if (isMounted) setMessage(result)\r\n }\r\n\r\n fetchMessage()\r\n\r\n return () => {\r\n isMounted = false\r\n }\r\n }, [language])\r\n\r\n useEffect(() => {\r\n setOpen(!cookieClosed)\r\n }, [cookieClosed])\r\n\r\n const closeMessage = () => {\r\n saveCookie(\"messageClosed\", 1)\r\n setOpen(false)\r\n }\r\n\r\n return isAuthorized && open && message && message.enabled ? (\r\n \r\n \r\n \r\n {message.barText}\r\n \r\n {message.barLink.text}\r\n \r\n \r\n ) : null\r\n}\r\n\r\nexport default MessageBar\r\n","/* eslint-disable import/no-cycle */\r\nimport DesktopSearchArea from \"./SearchArea/DesktopSearchArea\"\r\nimport MobileSearchArea from \"./SearchArea/MobileSearchArea\"\r\nimport useStyles from \"./styles\"\r\nimport MessageBar from \"./MessageBar/MessageBar\"\r\nimport {\r\n AsyncSearch,\r\n Menu2Drawer\r\n} from \"..\"\r\nimport largeLogo from \"../../assets/largelogo.png\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useIsShowingNavbarSearch } from \"../../redux/hook/settingsHooks\"\r\nimport { useUserAuthToken } from \"../../redux/hook/userHooks\"\r\nimport { setProxyPath, setRecaptchaSiteKey, setShowNavbarSearch } from \"../../redux/settingsReducer\"\r\nimport theme from \"../../theme\"\r\nimport useWindowDimensions from \"../../redux/hook/windowHooks\"\r\nimport { LeftRightSteeringFilter } from \"../AutocompleteSearch\"\r\nimport MultiSearchbar from \"../AutocompleteSearch/MultiSearchbar/MultiSearchbar\"\r\nimport { NavLink } from \"react-router-dom\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React, {\r\n useEffect, useRef, useState\r\n} from \"react\"\r\nimport {\r\n AppBar, Box, Toolbar,\r\n Typography,\r\n useMediaQuery\r\n} from \"@mui/material\"\r\n\r\nconst Navbar = () => {\r\n const language = useLanguage()\r\n const dispatch = useDispatch()\r\n const classes = useStyles()\r\n\r\n const [drawerIsOpen, setDrawerIsOpen] = useState(false)\r\n const navbarRef = useRef()\r\n const searchBoxRef = useRef()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(tabletBreakpoint))\r\n const showingSearch = useIsShowingNavbarSearch()\r\n const isAuth = useUserAuthToken()\r\n const windowSize = useWindowDimensions()\r\n const [hide, setHide] = useState(false)\r\n\r\n useEffect(() => {\r\n dispatch(setProxyPath(process.env.REACT_APP_PROXY_PATH))\r\n dispatch(setRecaptchaSiteKey(process.env.REACT_APP_RECAPTCHA_SITEKEY))\r\n }, [])\r\n\r\n const handleOpenDrawer = () => setDrawerIsOpen(prev => !prev)\r\n\r\n const handleBackDropClick = () => setDrawerIsOpen(false)\r\n\r\n const toggleShowSearch = (input = null) => {\r\n if (input === false) dispatch(setShowNavbarSearch(false))\r\n else dispatch(setShowNavbarSearch(!showingSearch))\r\n }\r\n\r\n const handleOnClick = () => {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n useEffect(() => { setDrawerIsOpen(false) }, [windowSize])\r\n\r\n const handleClickOutside = event => {\r\n if (event.target.classList.value.length === 0) return\r\n if (!event.target.classList.contains(\"MuiAutocomplete-option\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-listbox\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-dropdown\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-wrapper\")\r\n && !event.target.classList.contains(\"MuiInputBase-input\")\r\n && !event.target.classList.contains(\"MuiBox-root\")\r\n && !event.target.classList.contains(\"MuiSvgIcon-root\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-input\")\r\n && !event.target.classList.contains(\"makeStyles-dropdownButton-60\")\r\n && !event.target.classList.contains(\"makeStyles-dropdownButton-64\")\r\n && !event.target.classList.contains(\"makeStyles-truncatedSearchString-65\")\r\n && !event.target.classList.contains(\"makeStyles-option-69\")\r\n && !event.target.classList.contains(\"MuiAutocomplete-endAdornment\")\r\n ) setHide(false)\r\n if (\r\n searchBoxRef?.current && !searchBoxRef?.current.contains(event.target)\r\n && navbarRef?.current && !navbarRef?.current.contains(event.target)\r\n && !event.target.id.includes(\"autocomplete-search\")\r\n ) {\r\n dispatch(setShowNavbarSearch(false))\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (showingSearch) {\r\n document.addEventListener(\"mousedown\", handleClickOutside)\r\n } else {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside)\r\n }\r\n }, [showingSearch])\r\n\r\n const [openVehicleSearch, setOpenVehicleSearch] = useState(false)\r\n const [openDeviceSearch, setOpenDeviceSearch] = useState(false)\r\n\r\n const handleVehicleSearchClick = () => {\r\n setOpenVehicleSearch(true)\r\n setOpenDeviceSearch(false)\r\n }\r\n\r\n const handleDeviceSearchClick = () => {\r\n setOpenVehicleSearch(false)\r\n setOpenDeviceSearch(true)\r\n }\r\n\r\n const handleCloseVehicleSearch = () => {\r\n setOpenVehicleSearch(false)\r\n }\r\n\r\n const handleCloseDeviceSearch = () => {\r\n setOpenDeviceSearch(false)\r\n }\r\n\r\n return (\r\n <>\r\n {!hide\r\n && (\r\n \r\n \r\n {isDesktop && (\r\n \r\n \r\n {isAuth !== null && (\r\n <>\r\n \r\n \r\n {Localization.downloadCatalog}\r\n \r\n \r\n \r\n \r\n {Localization.contactBrodit}\r\n \r\n \r\n \r\n )}\r\n {isAuth === null && (\r\n <>\r\n \r\n \r\n {Localization.becomeReseller.toUpperCase()}\r\n \r\n \r\n \r\n \r\n {Localization.contactBrodit.toUpperCase()}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {isDesktop\r\n && (\r\n \r\n )}\r\n {!isDesktop\r\n && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n {\r\n (language === \"en\")\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Navbar\r\n","import { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexGrow: 1,\r\n justifyContent: \"center\",\r\n margin: theme.spacing(2)\r\n },\r\n \"@keyframes rotate\": {\r\n \"0%\": {\r\n transform: \"rotate(0deg)\"\r\n },\r\n \"100%\": {\r\n transform: \"rotate(180deg)\"\r\n }\r\n },\r\n working: {\r\n animation: `$rotate 3000ms ${theme.transitions.easing.easeInOut} infinite`\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: 350,\r\n marginBottom: 40,\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n width: \"auto\"\r\n }\r\n },\r\n column: {\r\n flex: \"1 0 350px\",\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n addressWrapper: {\r\n padding: 20\r\n },\r\n half: {\r\n flex: \"0 1 50%\"\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n tempAddressLabel: {\r\n fontSize: 12\r\n },\r\n flexRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\"\r\n },\r\n spaceEven: {\r\n justifyContent: \"space-evenly\"\r\n },\r\n full: {\r\n width: \"100%\"\r\n },\r\n gap1: {\r\n gap: \"1rem\"\r\n },\r\n userInfoWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n fontFamily: \"Arial\",\r\n gap: \"30px\"\r\n },\r\n space: {\r\n gap: \"50px\"\r\n }\r\n}))\r\n","import countries from \"./countries.json\"\r\nimport useStyles from \"./styles\"\r\nimport { UserInfo } from \"../..\"\r\nimport { mailRegex } from \"../../../lib/helper/commonHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport {\r\n nextCartStep, prevCartStep, setOrderId\r\n} from \"../../../redux/cartSlice\"\r\nimport { useIsUserAuthorized, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { setSnackbarMessage } from \"../../../redux/userMessageSlice\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, Collapse, FormControl, FormControlLabel, InputLabel, MenuItem, Select, Switch, TextField, Typography,\r\n Alert\r\n} from \"@mui/material\"\r\nimport { ArrowBack, ArrowForward, Loop } from \"@mui/icons-material\"\r\n\r\nimport axios from \"axios\"\r\nimport classNames from \"classnames\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst AddressButtons = ({ orderInProgress }) => {\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const isAuthorized = useIsUserAuthorized()\r\n const dispatch = useDispatch()\r\n\r\n const handlePrev = () => {\r\n dispatch(prevCartStep())\r\n }\r\n\r\n const orderingAvailable = () => (cart.items.length > 0) && (isAuthorized === true) && cart.order.step === 1\r\n\r\n return (\r\n \r\n \r\n }\r\n onClick={handlePrev}\r\n disabled={cart.order.step === 0}\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n >\r\n {Localization.backToCart}\r\n \r\n : }\r\n id=\"submitOrder\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n type=\"submit\"\r\n disabled={!orderingAvailable() || orderInProgress}\r\n >\r\n {Localization.submitOrder}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst boxHeight = 15\r\n\r\nconst MobileOrderAddresses = () => {\r\n const defaultValues = {\r\n yourOrderNumber: null, // Purchase order\r\n authToken: null,\r\n email: null,\r\n reference: null, // Order placed by\r\n rows: [],\r\n messageToBrodit: null,\r\n language: null,\r\n deliveryAddress: {},\r\n specialAddress: false\r\n }\r\n\r\n const classes = useStyles()\r\n const authToken = useUserAuthToken()\r\n const cart = useSelector(state => state.cart)\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n const [orderInProgress, setOrderInProgress] = useState(false)\r\n const counriesForLang = countries[lang]\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n const {\r\n register, handleSubmit, resetField, watch, setValue, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const sms = watch(\"SMS\")\r\n\r\n useEffect(() => {\r\n resetField(\"smsNumber\")\r\n }, [sms])\r\n\r\n useEffect(() => {\r\n setValue(\"authToken\", authToken)\r\n setValue(\"language\", lang)\r\n setValue(\"rows\", cart.items.map(item => ({\r\n type: 1, // Sätts alltid till 1 i backend (nu)\r\n articleNumber: item.id,\r\n quantity: item.quantity,\r\n comment: item.note\r\n })))\r\n }, [])\r\n\r\n const onSubmit = data => {\r\n // Delete the delivery adress if omitted, monitor wants this as null if no action is to be taken (= omitted)\r\n if (!watch(\"specialAddress\")) {\r\n delete data.deliveryAddress\r\n }\r\n\r\n (async () => {\r\n setOrderInProgress(true)\r\n let response = null\r\n try {\r\n response = await axios.post(\r\n \"/api/ProductInfo/PlaceOrder\",\r\n data\r\n )\r\n } catch {\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n setOrderInProgress(false)\r\n return\r\n }\r\n\r\n const status = response.data.httpStatusCode // Statuskod från MonitorAPI, ej från WebAPI.\r\n\r\n setOrderInProgress(false)\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.orderWasPlaced, \"success\"))\r\n break\r\n case 400:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n case 401:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n }\r\n\r\n dispatch(setOrderId(response.data.response.OrderNumber))\r\n dispatch(nextCartStep())\r\n clearCart({ authToken })\r\n })()\r\n }\r\n\r\n return (\r\n
\r\n {Localization.myDetails}\r\n \r\n \r\n \r\n \r\n \r\n {Boolean(errors.yourOrderNumber) && {Localization.maximum30Letters}}\r\n \r\n \r\n \r\n mailRegex.test(value) })}\r\n error={Boolean(errors.email)}\r\n />\r\n \r\n {lang === \"sv\"\r\n && (\r\n <>\r\n \r\n )}\r\n />\r\n \r\n \r\n /^[0-9]+$/.test(value)\r\n }) : {})}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lang !== \"sv\" && (\r\n \r\n {Localization.country}\r\n \r\n {counriesForLang.map((country, i) => (\r\n {country.value}\r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MobileOrderAddresses\r\n","import countries from \"./countries.json\"\r\nimport useStyles from \"./styles\"\r\nimport { UserInfo } from \"../..\"\r\nimport { mailRegex } from \"../../../lib/helper/commonHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport {\r\n nextCartStep, prevCartStep, setOrderId\r\n} from \"../../../redux/cartSlice\"\r\nimport { useIsUserAuthorized, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { setSnackbarMessage } from \"../../../redux/userMessageSlice\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, Collapse, FormControl, FormControlLabel, InputLabel, MenuItem, Select, Switch, TextField, Alert\r\n} from \"@mui/material\"\r\nimport { ArrowBack, ArrowForward, Loop } from \"@mui/icons-material\"\r\n\r\nimport axios from \"axios\"\r\nimport classNames from \"classnames\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { useForm } from \"react-hook-form\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst AddressButtons = ({ orderInProgress }) => {\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const isAuthorized = useIsUserAuthorized()\r\n const dispatch = useDispatch()\r\n\r\n const handlePrev = () => {\r\n dispatch(prevCartStep())\r\n }\r\n\r\n const orderingAvailable = () => (cart.items.length > 0) && (isAuthorized === true) && cart.order.step === 1\r\n\r\n return (\r\n \r\n \r\n }\r\n onClick={handlePrev}\r\n disabled={cart.order.step === 0}\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n >\r\n {Localization.backToCart}\r\n \r\n : }\r\n variant=\"contained\"\r\n id=\"submitOrder\"\r\n color=\"primary\"\r\n type=\"submit\"\r\n disabled={!orderingAvailable() || orderInProgress}\r\n >\r\n {Localization.submitOrder}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst boxHeight = 15\r\n\r\nconst OrderAddresses = () => {\r\n const defaultValues = {\r\n yourOrderNumber: null, // Purchase order\r\n authToken: null,\r\n email: null,\r\n reference: null, // Order placed by\r\n rows: [],\r\n messageToBrodit: null,\r\n language: null,\r\n deliveryAddress: {},\r\n specialAddress: false,\r\n smsNumber: null\r\n }\r\n\r\n const classes = useStyles()\r\n const authToken = useUserAuthToken()\r\n const cart = useSelector(state => state.cart)\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n const [orderInProgress, setOrderInProgress] = useState(false)\r\n const counriesForLang = countries[lang]\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n const {\r\n register, resetField, handleSubmit, watch, setValue, formState: { errors }\r\n } = useForm({ defaultValues: defaultValues })\r\n\r\n const sms = watch(\"SMS\")\r\n\r\n useEffect(() => {\r\n resetField(\"smsNumber\")\r\n }, [sms])\r\n\r\n useEffect(() => {\r\n setValue(\"authToken\", authToken)\r\n setValue(\"language\", lang)\r\n setValue(\"rows\", cart.items.map(item => ({\r\n type: 1, // Sätts alltid till 1 i backend (nu)\r\n articleNumber: item.id,\r\n quantity: item.quantity,\r\n comment: item.note\r\n })))\r\n }, [])\r\n\r\n const onSubmit = data => {\r\n // Delete the delivery adress if omitted, monitor wants this as null if no action is to be taken (= omitted)\r\n if (!watch(\"specialAddress\")) {\r\n delete data.deliveryAddress\r\n }\r\n\r\n (async () => {\r\n setOrderInProgress(true)\r\n let response = null\r\n try {\r\n response = await axios.post(\r\n \"/api/ProductInfo/PlaceOrder\",\r\n data\r\n )\r\n } catch {\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n setOrderInProgress(false)\r\n return\r\n }\r\n\r\n const status = response.data.httpStatusCode // Statuskod från MonitorAPI, ej från WebAPI.\r\n\r\n setOrderInProgress(false)\r\n\r\n switch (status) {\r\n case 200:\r\n dispatch(setSnackbarMessage(Localization.orderWasPlaced, \"success\"))\r\n break\r\n case 400:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n case 401:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n default:\r\n dispatch(setSnackbarMessage(Localization.unknownErrorCreatingOrder, \"error\"))\r\n return\r\n }\r\n\r\n dispatch(setOrderId(response.data.response.OrderNumber))\r\n dispatch(nextCartStep())\r\n clearCart({ authToken })\r\n })()\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {Boolean(errors.yourOrderNumber) && {Localization.maximum30Letters}}\r\n \r\n \r\n \r\n mailRegex.test(value) })}\r\n error={Boolean(errors.email)}\r\n />\r\n \r\n {lang === \"sv\"\r\n && (\r\n <>\r\n \r\n )}\r\n />\r\n \r\n \r\n\r\n /^[0-9]+$/.test(value)\r\n }) : {})}\r\n />\r\n\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lang !== \"sv\" && (\r\n \r\n {Localization.country}\r\n \r\n {counriesForLang.map((country, i) => (\r\n {country.value}\r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default OrderAddresses\r\n","/* eslint-disable no-restricted-globals */\r\nimport useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { deleteCartRow, editCartNote, setQuantity } from \"../../../redux/cartSlice\"\r\nimport { useProduct, useProductsLoading } from \"../../../redux/hook/productHooks\"\r\nimport FavoriteButton from \"../../Favorites/FavoriteButton\"\r\nimport Banner from \"../../Products/Banner/Banner\"\r\nimport CompatibleModels from \"../../Products/ProductInfo/components/CompatibleModels/CompatibleModels\"\r\nimport {\r\n Accordion, AccordionDetails, AccordionSummary,\r\n Avatar, Box, Divider, IconButton, Paper,\r\n TextField, Tooltip, Typography,\r\n Skeleton\r\n} from \"@mui/material\"\r\nimport DeleteIcon from \"@mui/icons-material/Delete\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\n\r\nimport classnames from \"classnames\"\r\nimport React from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\n\r\nconst MobileProductCardOrder = ({\r\n id, price, currency, quantity, deliveredQuantity, isModifiable, index, text\r\n}) => {\r\n const classes = useStyles()\r\n const product = useProduct(id)\r\n const loading = useProductsLoading()\r\n const dispatch = useDispatch()\r\n\r\n const quantityChanged = e => {\r\n const n = e.target.value !== \"\" ? e.target.value : 0\r\n const isNumber = !isNaN(parseFloat(n)) && isFinite(n)\r\n if (!isNumber) return\r\n const parsed = parseInt(n, 10)\r\n dispatch(setQuantity(parsed, index))\r\n }\r\n\r\n const deleteProduct = () => {\r\n dispatch(deleteCartRow(index))\r\n }\r\n\r\n const noteChanged = e => {\r\n const t = e.target.value\r\n dispatch(editCartNote(t, index))\r\n }\r\n\r\n // Product is not yet loaded..\r\n if (product === undefined && loading) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // When product is ordered but cannot be found return card with info\r\n if (product === undefined) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {id}\r\n \r\n
\r\n
\r\n
\r\n \r\n {Localization.thisProductIsNotAvailableOrder}\r\n \r\n
\r\n
\r\n
\r\n {text}\r\n
\r\n
\r\n {formatAmount(quantity)}\r\n
\r\n {deliveredQuantity !== undefined ? (\r\n
\r\n {formatAmount(deliveredQuantity) || \"0\"}\r\n
\r\n ) : (null)}\r\n
\r\n {formatPrice(price)}\r\n
\r\n
\r\n {formatPrice(price * quantity)}\r\n
\r\n
\r\n {isModifiable\r\n ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null}\r\n
\r\n
\r\n \r\n )\r\n }\r\n\r\n // Product was found, return a cart\r\n return (\r\n \r\n \r\n \r\n \r\n {product.isNew\r\n ? \r\n : null}\r\n {product.comingSoon\r\n ? \r\n : null}\r\n { /* */ /* Not in first iteration.. */}\r\n \r\n \r\n \r\n \r\n \r\n {Localization.itemNumber}\r\n {\" \"}\r\n {product.originalId}\r\n \r\n \r\n \r\n \r\n \r\n {product.name}\r\n \r\n \r\n {Localization.note}\r\n :\r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n className={classes.accordionSummary}\r\n >\r\n

{Localization.moreInformation}

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

{Localization.moreInformation}

\r\n \r\n \r\n \r\n {Localization.description}\r\n :\r\n \r\n \r\n {product.description}\r\n \r\n \r\n {Localization.compatibleProducts}\r\n :\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n {`x ${formatPrice(price)} ${currency}`}\r\n
\r\n
\r\n
\r\n {`${formatPrice(price * quantity)} ${currency}`}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default MobileCartItem\r\n","import useStyles from \"./styles\"\r\nimport ConfirmationDialog from \"./ConfirmationDialog/ConfirmationDialog\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { nextCartStep } from \"../../../redux/cartSlice\"\r\nimport { useUser, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { simulateOrder } from \"../../../redux/monitorSlice\"\r\nimport MobileCartItem from \"../ProductCardOrder/MobileCartItem\"\r\nimport ProductCardOrder from \"../ProductCardOrder/ProductCardOrder\"\r\nimport { useProducts } from \"../../../redux/hook/productHooks\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, CircularProgress, Link as SimpleLink, Typography, useMediaQuery, useTheme, IconButton, Tooltip\r\n} from \"@mui/material\"\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\"\r\nimport ArrowForwardIcon from \"@mui/icons-material/ArrowForward\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\nimport ReceiptIcon from \"@mui/icons-material/Receipt\"\r\nimport classnames from \"classnames\"\r\nimport React, { useEffect, useMemo, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\"\r\n\r\nconst SummaryButtons = () => {\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n\r\n const classes = useStyles()\r\n\r\n const handleNext = () => {\r\n dispatch(nextCartStep())\r\n }\r\n\r\n return (\r\n \r\n \r\n }\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n component={Link}\r\n to={`/${lang}`}\r\n >\r\n {Localization.continueShopping}\r\n \r\n }\r\n id=\"toCheckout\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={handleNext}\r\n >\r\n {Localization.toCheckout}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst MobileOrderSummary = () => {\r\n const dispatch = useDispatch()\r\n const cartSimulation = useSelector(state => state.monitor.cartSimulation)\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const user = useUser()\r\n const authToken = useUserAuthToken()\r\n const theme = useTheme()\r\n const isSmall = useMediaQuery(theme.breakpoints.down(tabletBreakpoint))\r\n const products = useProducts(cart.items.map(item => item.id))\r\n const lang = useLanguage()\r\n\r\n const cartItems = useMemo(() => (cart.items.map(item => ({ number: item.id, quantity: item.quantity }))), [cart.items])\r\n\r\n const [dialogOpen, setDialogOpen] = useState(false)\r\n const openDialog = () => setDialogOpen(true)\r\n const closeDialog = () => setDialogOpen(false)\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n useEffect(() => {\r\n const simulate = setTimeout(() => {\r\n if (cartItems.length > 0) {\r\n dispatch(simulateOrder(authToken, cartItems))\r\n }\r\n }, 500)\r\n\r\n return () => clearTimeout(simulate)\r\n }, [cartItems, authToken, dispatch])\r\n\r\n const empty = () => {\r\n setDialogOpen(false)\r\n clearCart({ authToken })\r\n }\r\n\r\n if (cart.items.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.noArticlesInCart}\r\n \r\n \r\n )\r\n }\r\n\r\n if (cartSimulation.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.yourCart}\r\n \r\n \r\n \r\n \r\n {Localization.experiencingProblemsWithCart}\r\n \r\n {Localization.clickHere}\r\n \r\n {Localization.toResetYourCart}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {formatAmount(cart.items.length)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {formatAmount(cart.items.reduce((a, b) => a + b.quantity, 0))}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(cartSimulation.reduce((a, b) => a + b.PriceInfo.SuggestedPrice * b.AtQuantity, 0))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {[...cart.items].map((item, i) => ((isSmall)\r\n ? (\r\n x.PartNumber === item.id)?.PriceInfo.SuggestedPrice}\r\n currency={user?.currency}\r\n quantity={item.quantity}\r\n isModifiable\r\n index={i}\r\n text={item.note}\r\n product={products?.find(product => product.id === `${lang}-${item.id}`)}\r\n />\r\n )\r\n : (\r\n x.PartNumber === item.id)?.PriceInfo.SuggestedPrice}\r\n currency={user?.currency}\r\n quantity={item.quantity}\r\n isModifiable\r\n index={i}\r\n text={item.note}\r\n product={products?.find(product => product.id === `${lang}-${item.id}`)}\r\n />\r\n )))}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MobileOrderSummary\r\n","import useStyles from \"./styles\"\r\nimport { formatAmount, formatPrice } from \"../../../lib/helper/numberHelper\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { nextCartStep } from \"../../../redux/cartSlice\"\r\nimport { useUser, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { simulateOrder } from \"../../../redux/monitorSlice\"\r\nimport HeadingRow from \"../ProductCardOrder/HeadingRow/HeadingRow\"\r\nimport ProductCardOrder from \"../ProductCardOrder/ProductCardOrder\"\r\nimport { useProducts } from \"../../../redux/hook/productHooks\"\r\nimport { useClearCartMutation } from \"../../../redux/services/cartApi\"\r\nimport {\r\n Box, Button, ButtonGroup, CircularProgress, Link as SimpleLink, List, Typography\r\n} from \"@mui/material\"\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\"\r\nimport ArrowForwardIcon from \"@mui/icons-material/ArrowForward\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\nimport ReceiptIcon from \"@mui/icons-material/Receipt\"\r\nimport classnames from \"classnames\"\r\nimport React, { useEffect, useMemo } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst SummaryButtons = () => {\r\n const lang = useLanguage()\r\n const dispatch = useDispatch()\r\n\r\n const classes = useStyles()\r\n\r\n const handleNext = () => {\r\n dispatch(nextCartStep())\r\n }\r\n\r\n return (\r\n \r\n \r\n }\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n component={Link}\r\n to={`/${lang}`}\r\n >\r\n {Localization.continueShopping}\r\n \r\n }\r\n id=\"toCheckout\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={handleNext}\r\n >\r\n {Localization.toCheckout}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst OrderSummary = () => {\r\n const dispatch = useDispatch()\r\n const cartSimulation = useSelector(state => state.monitor.cartSimulation)\r\n const classes = useStyles()\r\n const cart = useSelector(state => state.cart)\r\n const user = useUser()\r\n const authToken = useUserAuthToken()\r\n const products = useProducts(cart.items.map(item => item.id))\r\n const lang = useLanguage()\r\n const cartItems = useMemo(() => (cart.items.map(item => ({ number: item.id, quantity: item.quantity }))), [cart.items])\r\n const [clearCart, _result] = useClearCartMutation()\r\n\r\n useEffect(() => {\r\n const simulate = setTimeout(() => {\r\n if (cartItems.length > 0) {\r\n dispatch(simulateOrder(authToken, cartItems))\r\n }\r\n }, 500)\r\n\r\n return () => clearTimeout(simulate)\r\n }, [cartItems, authToken, dispatch])\r\n\r\n const empty = () => {\r\n clearCart({ authToken })\r\n }\r\n\r\n if (cart.items.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.yourCart}\r\n {Localization.noArticlesInCart}\r\n \r\n \r\n )\r\n }\r\n\r\n if (cartSimulation.length === 0) {\r\n return (\r\n \r\n \r\n {Localization.yourCart}\r\n \r\n \r\n \r\n \r\n {Localization.experiencingProblemsWithCart}\r\n \r\n {Localization.clickHere}\r\n \r\n {Localization.toResetYourCart}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Localization.summary}\r\n \r\n \r\n {Localization.numberOfOrderLines}\r\n :\r\n {\" \"}\r\n {formatAmount(cart.items.length)}\r\n \r\n \r\n {Localization.totalQuantity}\r\n :\r\n {\" \"}\r\n {formatAmount(cart.items.reduce((a, b) => a + b.quantity, 0))}\r\n \r\n \r\n {Localization.total}\r\n {\" \"}\r\n {user?.currency}\r\n :\r\n {\" \"}\r\n {formatPrice(cartSimulation.reduce((a, b) => a + b.PriceInfo.SuggestedPrice * b.AtQuantity, 0))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {[...cart.items].map((item, i) => (\r\n 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\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 {\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\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\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}));\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\nexport default CustomerOrders\r\n","import { mobileBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n wrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3)\r\n },\r\n infoArea: {\r\n marginBottom: 50\r\n },\r\n listArea: {\r\n backgroundColor: theme.palette.background.default,\r\n paddingRight: theme.spacing(2),\r\n paddingBottom: 0,\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n padding: 0\r\n }\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n select: {\r\n minWidth: \"275px\",\r\n width: \"auto\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n minWidth: \"220px\"\r\n }\r\n }\r\n}))\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAsQAAALEBxi1JjQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADrSURBVEiJ7dKxLgVBFAbgT1ZuchMN2puoNGhFwxuoiCcQhUS8gEp3Gy/AG4hGo1KJTikegGipRCQ2VrFncrcQWcw2cv9mivnnm5nkMM6/T5HZ28M8bjO74AAVHrrAt/GBEhu58XW8q1+/nxtfwUvgh7nxBTwFftLmwHIUBy26A9wHfo7JNhcMjaZg8ZvetHoMK1yj3waHWdzEwWesftHp4yo6d5hpi6dM4TKAN2w19gqcxd4j5n6KN195EVCJ3cCPjX639Fs8pYfTACu8Nta1v+IphXqq0iUlNnPhKRM4CnwnN95Mr0t8nG7zCSe5NHDVwxcIAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACxAAAAsQHGLUmNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAIdJREFUSIntlMsNgCAQRF+sQRIbECsl0p56sBy9LAkXhUW5KHNlmTcZPtD0W02AB0zGbA84YNQAPHAAWwJigEVmnQZgxPwOEpunglxCVjHYgSFz7THkNfMYEteVqq4YElKrkndvJXiiqhVVPeSq1zT3oRXXpfkqAmTWAKxsyEllJJDVAJo+pBNmSj1eLTte1QAAAABJRU5ErkJggg==\"","import { useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport { deleteFavoriteList, setFavoriteProducts } from \"../../../redux/favoriteSlice\"\r\nimport { fetchModteks } from \"../../../redux/thunk/productThunk\"\r\nimport ProductViewToggleButton from \"../../Products/ProductViewToggleButton/ProductViewToggleButton\"\r\n// eslint-disable-next-line import/no-cycle\r\nimport Products from \"../../Products/Products\"\r\nimport CheckIcon from \"../../../assets/check.png\"\r\nimport ClearIcon from \"../../../assets/close.png\"\r\nimport Trashcan from \"../../../assets/delete.png\"\r\nimport PenIcon from \"../../../assets/pen.png\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport React, { useState, useEffect } from \"react\"\r\n\r\nimport { useDispatch } from \"react-redux\"\r\nimport axios from \"axios\"\r\n\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Autocomplete, Box, Chip, TextField, Tooltip, Typography\r\n} from \"@mui/material\"\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\"\r\n\r\nfunction Userlist({\r\n userLists, list = [], language, classes, theme, productsArray, index\r\n}) {\r\n const [data, setData] = useState(null)\r\n const [name, setName] = useState(list[0]?.listName)\r\n const [isEditing, setIsEditing] = useState(false)\r\n const [tempName, setTempName] = useState(\"\")\r\n const dispatch = useDispatch()\r\n const authToken = useUserAuthToken()\r\n const idArray = list?.map(x => x.productId)\r\n const [selectedItems, setSelectedItems] = useState(idArray)\r\n const productList = productsArray\r\n const [expandedAccordion, setExpandedAccordion] = useState((userLists.length === 1 && index === 0) ? 0 : null)\r\n\r\n useEffect(() => {\r\n setExpandedAccordion((userLists.length === 1 && index === 0) ? 0 : null)\r\n }, [userLists])\r\n\r\n const handleAccordionChange = i => {\r\n setExpandedAccordion(expandedAccordion === i ? null : i)\r\n }\r\n\r\n const updateFavorites = async ({ newName, products, oldName }) => {\r\n const a = await axios.post(`/api/favorite/UpdateFavoriteListName?authToken=${authToken}`, { newName, products, oldName })\r\n dispatch(setFavoriteProducts(a.data.response))\r\n setIsEditing(false)\r\n }\r\n\r\n const deleteFavortiteList = async () => {\r\n dispatch(deleteFavoriteList(name))\r\n await axios.post(`/api/favorite/DeleteFavoriteListByName?authToken=${authToken}`, { name })\r\n }\r\n\r\n const handleEditToggle = event => {\r\n event.stopPropagation()\r\n setIsEditing(true)\r\n setTempName(name)\r\n }\r\n\r\n const handleNameChange = event => {\r\n event.stopPropagation()\r\n setTempName(event.target.value)\r\n }\r\n\r\n const handleSave = event => {\r\n event.stopPropagation()\r\n setName(tempName)\r\n setIsEditing(false)\r\n const newObject = { newName: tempName, products: selectedItems, oldName: list[0]?.listName }\r\n updateFavorites(newObject)\r\n }\r\n\r\n const handleDelete = () => {\r\n deleteFavortiteList()\r\n setTempName(\"\")\r\n setSelectedItems(idArray)\r\n }\r\n\r\n const handleCancel = event => {\r\n event.stopPropagation()\r\n setTempName(name)\r\n setIsEditing(false)\r\n setTempName(\"\")\r\n setSelectedItems(idArray)\r\n }\r\n\r\n const handleKeyDown = event => {\r\n event.stopPropagation()\r\n if (event.key === \"Enter\") {\r\n handleEditToggle()\r\n }\r\n }\r\n\r\n const handleKeyDownDelete = event => {\r\n event.stopPropagation()\r\n if (event.key === \"Enter\") {\r\n deleteFavortiteList()\r\n }\r\n }\r\n\r\n const handleSelect = (event, value) => {\r\n event.stopPropagation()\r\n const selectedOptions = value\r\n setSelectedItems(selectedOptions)\r\n }\r\n\r\n useEffect(() => {\r\n let isMounted = true\r\n\r\n const fetchData = async () => {\r\n try {\r\n const d = await fetchModteks(idArray, language)\r\n const processedData = d.map(x => ({\r\n ...x,\r\n originalId: x.id,\r\n id: `${language}-${x.id}`\r\n }))\r\n\r\n if (isMounted) {\r\n setData(processedData.sort((a, b) => a.originalId.localeCompare(b.originalId)))\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error)\r\n }\r\n }\r\n\r\n fetchData()\r\n setName(list[0]?.listName)\r\n setSelectedItems(idArray)\r\n\r\n return () => {\r\n isMounted = false\r\n }\r\n }, [list, language])\r\n\r\n return (\r\n handleAccordionChange(index)}\r\n >\r\n \r\n )}\r\n >\r\n \r\n \r\n {isEditing ? (\r\n e.stopPropagation()}\r\n onChange={handleNameChange}\r\n sx={{\r\n \"& .MuiInput-input\": { padding: \"0px!important\", height: \"auto!important\" },\r\n width: \"96px\",\r\n \"& .MuiInput-root::before\": {\r\n borderBottom: \"none\"\r\n }\r\n }}\r\n />\r\n ) : (\r\n \r\n {name}\r\n \r\n )}\r\n {isEditing\r\n && (\r\n <>\r\n e.stopPropagation()}\r\n onChange={handleSelect}\r\n multiple\r\n options={productList}\r\n className={classes.select}\r\n variant=\"standard\"\r\n value={selectedItems}\r\n disableCloseOnSelect\r\n clearText={Localization.clear}\r\n renderInput={params => (\r\n e.stopPropagation()}\r\n variant=\"standard\"\r\n InputProps={{\r\n ...params.InputProps,\r\n disableUnderline: true\r\n }}\r\n label={Localization.selectProducts}\r\n placeholder={Localization.productId}\r\n sx={{\r\n \"& .MuiInputBase-root\": {\r\n height: \"24px\"\r\n },\r\n \"& .MuiInputBase-root-MuiInput-root\": {\r\n marginTop: 0\r\n },\r\n \"& .MuiInput-root .MuiInput-input\": {\r\n padding: \"0px\"\r\n }\r\n }}\r\n />\r\n )}\r\n renderTags={value => (value.length > 0 ? (\r\n e.stopPropagation()} label={`${value.length}`} style={{ height: 24 }} />\r\n ) : null)}\r\n />\r\n
\r\n \r\n e.key === \"Enter\" && handleSave}\r\n onClick={handleSave}\r\n style={{ display: \"flex\", alignItems: \"center\" }}\r\n >\r\n {Localization.save}\r\n \r\n \r\n \r\n e.key === \"Enter\" && handleCancel}\r\n onClick={handleCancel}\r\n style={{ display: \"flex\", alignItems: \"center\" }}\r\n >\r\n {Localization.cancel}\r\n \r\n \r\n
\r\n \r\n )}\r\n {(!isEditing && expandedAccordion === index) && (\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n \"delete\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Userlist\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAjAAAAIwBFCEVQAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACbSURBVDiN3c6xCoFhFAbgR7kVioUFO6UsNovchKsyKKPBFViVhTJholCyGH4L9aX+/u83eusMZ3jec8iXOjbYo53TKmGIJxI80InFNZwxwygoOeTByXvCkl1eHJYM0fwFJ7igkoVPKfiK1h9imKfgCxpZeIw+lr9chhXuXyXRuBxcvKGHRczbUMQg2I+oohuDoYAJtphiHQs/eQEn0FXPNIa5gwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAdhAAAHYQGVw7i2AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEZJREFUOI1jZMAN/qPxGbEpYmJgYDgKVYyOsRmIjg8z4lBMP4DsL1JdwsjAAAkDigBNDWDEwaafC0aKAYMrIR0hQd9hGAMA3VkRIWhThsgAAAAASUVORK5CYII=\"","import useStyles from \"./styles\"\r\n// eslint-disable-next-line import/no-cycle\r\nimport Userlist from \"./Userlist\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useFilteredProducts, useProductsLoading } from \"../../../redux/hook/productHooks\"\r\nimport Products from \"../../Products/Products\"\r\nimport ProductViewToggleButton from \"../../Products/ProductViewToggleButton/ProductViewToggleButton\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useUser, useUserAuthToken } from \"../../../redux/hook/userHooks\"\r\nimport CheckIcon from \"../../../assets/check.png\"\r\nimport ClearIcon from \"../../../assets/close.png\"\r\nimport { setFavoriteProducts } from \"../../../redux/favoriteSlice\"\r\nimport { mobileBreakpoint, tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport {\r\n Alert,\r\n Autocomplete,\r\n Box, Button, Chip, Divider, Snackbar, TextField, Tooltip, Typography, useMediaQuery, useTheme\r\n} from \"@mui/material\"\r\nimport classNames from \"classnames\"\r\nimport React, { useMemo, useState, useEffect } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport axios from \"axios\"\r\n\r\nfunction FavoriteProductsPage() {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(`(max-width:${mobileBreakpoint}px)`)\r\n const isTablet = useMediaQuery(`(max-width:${tabletBreakpoint}px)`)\r\n const favoriteProducts = useSelector(state => state.favorite.favoriteProducts)\r\n const user = useUser()\r\n const [userLists, setUserLists] = useState([])\r\n\r\n useEffect(() => {\r\n const updatedLists = Object.values(\r\n favoriteProducts\r\n .filter(\r\n x => x.listName !== null && user.user.customerNumber === x.customerNumber\r\n )\r\n .reduce((result, item) => {\r\n if (!result[item.listName]) {\r\n result[item.listName] = []\r\n }\r\n result[item.listName].push(item)\r\n return result\r\n }, {})\r\n ).sort((a, b) => a[0].listName.localeCompare(b[0].listName))\r\n setUserLists(updatedLists)\r\n }, [favoriteProducts])\r\n\r\n const idArray = [...Array.from(\r\n new Set(favoriteProducts\r\n .filter(x => x.listName === null && user.user.customerNumber === x.customerNumber)\r\n .map(x => x.productId))\r\n )]\r\n\r\n const filter = useMemo(() => ({ productIds: idArray }), [favoriteProducts])\r\n const pagination = useMemo(() => ({ offset: 0, limit: -1 }), [])\r\n const isLoading = useProductsLoading()\r\n const falseProducts = useFilteredProducts(filter, pagination)\r\n const products = useMemo(() => [...falseProducts]?.sort((a, b) => a?.originalId.localeCompare(b?.originalId)), [falseProducts])\r\n const userFavorites = [...new Set(favoriteProducts.filter(x => user.user.customerNumber === x.customerNumber).map(x => x.productId).flat())]\r\n\r\n const missingProducts = useMemo(() => (\r\n idArray?.filter(id => !products?.some(product => product.originalId === id))\r\n ), [favoriteProducts, products])\r\n const theme = useTheme()\r\n const language = useLanguage()\r\n const authToken = useUserAuthToken()\r\n\r\n const [showNotInList, setShowNotInList] = useState(false)\r\n const notInList = products?.filter(item => ![...new Set(userLists?.map(x => x.map(y => y.productId)).flat())].includes(item.originalId))\r\n const [isEditing, setIsEditing] = useState(false)\r\n const [tempName, setTempName] = useState(\"\")\r\n const [selectedItems, setSelectedItems] = useState([])\r\n const [errorOpen, setErrorOpen] = useState(false)\r\n const dispatch = useDispatch()\r\n\r\n const handleNameChange = event => {\r\n setTempName(event.target.value)\r\n }\r\n\r\n const handleSave = async () => {\r\n if (selectedItems.length > 0 && tempName.length > 0) {\r\n const a = await axios.post(`/api/favorite/CreateFavoriteList?authToken=${authToken}`, { products: selectedItems, listName: tempName })\r\n dispatch(setFavoriteProducts(a.data.response))\r\n setIsEditing(false)\r\n } else {\r\n setErrorOpen(true)\r\n }\r\n setTempName(\"\")\r\n setSelectedItems([])\r\n }\r\n\r\n const handleCancel = () => {\r\n setIsEditing(false)\r\n setTempName(\"\")\r\n setSelectedItems([])\r\n }\r\n\r\n const toggleEdit = () => {\r\n setIsEditing(true)\r\n setTempName(tempName)\r\n }\r\n\r\n const handleSelect = (_event, value) => {\r\n const selectedOptions = value\r\n setSelectedItems(selectedOptions)\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return\r\n }\r\n setErrorOpen(false)\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {Localization.yourFavorites}\r\n
\r\n \r\n
\r\n {!isEditing && (\r\n e.key === \"Enter\" && toggleEdit()}\r\n style={{\r\n display: \"flex\",\r\n padding: \"10px 12px\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n background: \"#F09057\",\r\n height: 31\r\n }}\r\n >\r\n \r\n {Localization.newList}\r\n \r\n \r\n )}\r\n {isEditing && (\r\n
\r\n \r\n
\r\n (\r\n \r\n )}\r\n renderTags={value => (value.length > 0 ? (\r\n \r\n ) : null)}\r\n />\r\n \r\n e.key === \"Enter\" && handleSave()}\r\n onClick={handleSave}\r\n style={{ display: \"flex\", alignItems: \"flex-end\" }}\r\n >\r\n {Localization.save}\r\n \r\n \r\n \r\n e.key === \"Enter\" && handleCancel()}\r\n onClick={handleCancel}\r\n style={{ display: \"flex\", alignItems: \"flex-end\" }}\r\n >\r\n {Localization.cancel}\r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n {Localization.errorCreatingFavoriteList}\r\n \r\n \r\n
\r\n \r\n {\r\n userLists?.map((list, index) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n {!showNotInList ? Localization.allProducts : Localization.unlisted}\r\n \r\n
\r\n setShowNotInList(!showNotInList)}\r\n onKeyDown={e => e.key === \"Enter\" && setShowNotInList(!showNotInList)}\r\n style={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n borderRadius: \"4px\",\r\n background: \"#F09057\",\r\n height: 24\r\n }}\r\n >\r\n \r\n {showNotInList ? Localization.showAllFavorites : Localization.showUnlisted}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default FavoriteProductsPage\r\n","import { mobileBreakpoint, tabletBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n container: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(3),\r\n paddingTop: theme.spacing(8),\r\n maxWidth: \"1920px\"\r\n },\r\n newsWrapper: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\"\r\n },\r\n stepperWrapper: {\r\n maxWidth: 800,\r\n padding: theme.spacing(3)\r\n },\r\n productsWrapper: {\r\n flex: \"0 0 100%\"\r\n },\r\n stepper: {\r\n marginBottom: 20,\r\n marginTop: 10\r\n },\r\n noProductsBox: {\r\n flex: \"0 1 1600px\",\r\n margin: `0 ${theme.spacing(3)}px`,\r\n marginTop: theme.spacing(6),\r\n display: \"flex\",\r\n justifyContent: \"space-between\"\r\n },\r\n titleBox: {\r\n marginTop: 40,\r\n marginBottom: 30\r\n },\r\n youtubeVideo: {\r\n aspectRatio: \"16 / 9\",\r\n width: \"100%\"\r\n },\r\n newsTitle: {\r\n [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 [theme.breakpoints.between(tabletBreakpoint)]: {\r\n fontSize: \"1.2rem\"\r\n },\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n fontSize: \"1.1rem\"\r\n }\r\n }\r\n}))\r\n","import { Button, Box } from \"@mui/material\"\r\nimport { KeyboardArrowLeft, KeyboardArrowRight } from \"@mui/icons-material\"\r\nimport React from \"react\"\r\n\r\nfunction NavigationButtonWrapper({\r\n customComponent, positionOnTop, showNavigationOnHover, ...props\r\n}) {\r\n const {\r\n rightSide,\r\n isHovering\r\n } = props\r\n const CustomComponent = customComponent\r\n\r\n const hideOnHover = {\r\n opacity: (isHovering || !showNavigationOnHover) ? 1 : 0,\r\n transition: \"opacity 0.5s\"\r\n }\r\n\r\n const absoluteStyle = (positionOnTop) ? {\r\n position: \"absolute\",\r\n left: (!rightSide) ? 0 : null,\r\n right: (rightSide) ? 0 : null,\r\n zIndex: 1\r\n } : {}\r\n\r\n const newProps = {\r\n style: {\r\n ...absoluteStyle,\r\n ...hideOnHover\r\n },\r\n ...props\r\n }\r\n\r\n return (\r\n (CustomComponent)\r\n ? \r\n : \r\n )\r\n}\r\n\r\nfunction NavigationButton({\r\n style, rightSide, _isHovering, ...props\r\n}) {\r\n return (\r\n \r\n \r\n {\r\n rightSide\r\n ? \r\n : \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport { NavigationButtonWrapper }\r\nexport default NavigationButton\r\n","import { NavigationButtonWrapper } from \"./NavigationButton\"\r\nimport React from \"react\"\r\nimport SwipeableViews from \"react-swipeable-views\"\r\nimport { autoPlay } from \"react-swipeable-views-utils\"\r\nimport { Box, Skeleton } from \"@mui/material\"\r\n\r\nconst AutoPlaySwipeableViews = autoPlay(SwipeableViews)\r\n\r\nfunction Stepper({\r\n style,\r\n index,\r\n setIndex,\r\n handleNext,\r\n handleBack,\r\n handleStepChange,\r\n pages,\r\n loading,\r\n showNavigationOnHover,\r\n positionNavigationOnTop,\r\n backButtonComponent,\r\n nextButtonComponent,\r\n disabledSwipe,\r\n autoplay = false,\r\n ...remainingProps\r\n}) {\r\n const [isHovering, setIsHovering] = React.useState(false)\r\n\r\n const handleNavigateNext = () => {\r\n if (handleNext) handleNext()\r\n else {\r\n setIndex(previousIndex => (\r\n (previousIndex + 1) % pages.length\r\n ))\r\n }\r\n }\r\n\r\n const handleNavigateBack = () => {\r\n if (handleBack) handleBack()\r\n else {\r\n setIndex(previousIndex => (\r\n (previousIndex > 0)\r\n ? previousIndex - 1\r\n : pages.length - 1\r\n ))\r\n }\r\n }\r\n\r\n const handleNavigateStepChange = newStep => {\r\n if (handleStepChange) handleStepChange(newStep)\r\n else setIndex(newStep)\r\n }\r\n\r\n const handleMouseEnter = () => setIsHovering(true)\r\n const handleMouseLeave = () => setIsHovering(false)\r\n\r\n return (\r\n (!loading)\r\n ? (\r\n \r\n \r\n \r\n {pages}\r\n \r\n \r\n \r\n )\r\n : \r\n )\r\n}\r\n\r\nexport default Stepper\r\n","/* eslint-disable import/no-cycle */\r\n/* eslint-disable react/no-children-prop */\r\n/* eslint-disable react/no-unstable-nested-components */\r\nimport useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { strings as Localization } from \"../../../lib/Localization\"\r\nimport { useFilteredProducts } from \"../../../redux/hook/productHooks\"\r\nimport { useGetNewsByIdQuery } from \"../../../redux/services/broditWebApi\"\r\nimport Products from \"../../Products/Products\"\r\nimport ProductViewToggleButton from \"../../Products/ProductViewToggleButton/ProductViewToggleButton\"\r\nimport { NavigationButton } from \"../../Stepper\"\r\nimport Stepper from \"../../Stepper/Stepper\"\r\nimport StyledMarkdown from \"../../StyledMarkdown\"\r\nimport Thumbnail from \"../../Thumbnail\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport React, { useMemo, useState } from \"react\"\r\nimport {\r\n Skeleton,\r\n Box, Container, Divider, Typography\r\n} from \"@mui/material\"\r\n\r\nconst NewsPage = () => {\r\n const { place, id } = useParams()\r\n const [imageIndex, setImageIndex] = useState(0)\r\n const language = useLanguage()\r\n const { data, isFetching } = useGetNewsByIdQuery({\r\n language,\r\n id: `${place}/${id}`\r\n })\r\n const filter = useMemo(\r\n () => ({ productIds: data?.products ?? [] }),\r\n [data?.products]\r\n )\r\n const products = useFilteredProducts(filter)\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n {\r\n !isFetching && data\r\n && (\r\n
\r\n \r\n \r\n {/* {Localization.published}: */}\r\n {new Date(data.dateTime).toLocaleDateString()}\r\n \r\n {data.video\r\n ? (\r\n \r\n )\r\n : (\r\n ((imageIndex > 0)\r\n ? \r\n : null)\r\n }\r\n nextButtonComponent={\r\n props => (\r\n (\r\n imageIndex < (data.images.length - 1)\r\n && data.images.length > 1\r\n )\r\n ? \r\n : null\r\n )\r\n }\r\n pages={\r\n data.images.map(image => {\r\n const partsOfPath = image.split(\"/\")\r\n const imageId = partsOfPath[partsOfPath.length - 1]\r\n return (\r\n \r\n )\r\n })\r\n }\r\n />\r\n )}\r\n \r\n \r\n {data.title}\r\n \r\n \r\n {data.preamble}\r\n \r\n \r\n \r\n \r\n {\r\n (data?.products ?? []).length > 0\r\n && (\r\n <>\r\n \r\n \r\n {Localization.products.toUpperCase()}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n )\r\n }\r\n
\r\n )\r\n }\r\n {\r\n isFetching\r\n && \r\n }\r\n {\r\n !isFetching && !data\r\n && (\r\n \r\n \r\n {`${Localization.couldNotFindTheSelectedNewsArticle} \"${id}\".`}\r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NewsPage\r\n","import { mobileBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n result: {\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\"\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3)\r\n },\r\n capitalized: {\r\n textTransform: \"uppercase\"\r\n },\r\n flexColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n comparisonHeader: {\r\n display: \"flex\",\r\n gridGap: \"10px\",\r\n flex: \"1 1 auto\",\r\n justifyContent: \"center\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n flexWrap: \"wrap\"\r\n },\r\n padding8: {\r\n padding: 8\r\n },\r\n paperWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"1 auto\",\r\n alignItems: \"flex-start\"\r\n },\r\n fullWidth: {\r\n width: \"100%\"\r\n },\r\n tableCell: {\r\n minWidth: 112,\r\n fontWeight: 700,\r\n wordBreak: \"break-word\"\r\n },\r\n informations: {\r\n whiteSpace: \"pre-line\",\r\n verticalAlign: \"top\"\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n marginBottom: 10\r\n },\r\n pdfButton: {\r\n flex: \"0 1 auto\",\r\n [theme.breakpoints.down(mobileBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n }\r\n}))\r\n","import { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport ProductCard from \"../../Products/ProductCard/ProductCard\"\r\nimport { persistScrollPosition } from \"../helperFunctions\"\r\nimport useStyles from \"../styles\"\r\nimport { Box, useMediaQuery } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ComparisonHeader = ({ products }) => {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n\r\n return (\r\n \r\n {\r\n products.map((product, i) => (\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ComparisonHeader\r\n","import useStyles from \"../styles\"\r\nimport theme from \"../../../theme\"\r\nimport { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport {\r\n Box, TableCell, TableRow, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ComparisonTableSection = ({ informations, text }) => {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n\r\n return (\r\n isMobile\r\n ? (\r\n \r\n \r\n {text}\r\n \r\n \r\n {informations.map((info, i) => (\r\n \r\n {info}\r\n \r\n ))}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {text}\r\n \r\n {informations.map((info, i) => (\r\n \r\n {info}\r\n \r\n ))}\r\n \r\n )\r\n )\r\n}\r\n\r\nexport default ComparisonTableSection\r\n","import ComparisonTableSection from \"./ComparisonTableSection\"\r\nimport useStyles from \"../styles\"\r\nimport { productViewBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport theme from \"../../../theme\"\r\nimport {\r\n Box, Paper, Table, TableBody, TableContainer, useMediaQuery\r\n} from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ProductComparisonSections = ({ sections }) => {\r\n const classes = useStyles()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n\r\n return (\r\n <>\r\n {\r\n sections.map((section, i) => (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n section.Data.map((info, index) => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n ))\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ProductComparisonSections\r\n","import ComparisonHeader from \"./ComparisonHeader\"\r\nimport ProductComparisonSections from \"./ProductComparisonSections\"\r\nimport { productTransformation } from \"../helperFunctions\"\r\nimport useStyles from \"../styles\"\r\nimport { Box } from \"@mui/material\"\r\nimport React from \"react\"\r\n\r\nconst ProductComparisonTable = ({ products }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProductComparisonTable\r\n","import ProductComparisonTable from \"./components/ProductComparisonTable\"\r\nimport { transformProductForCompare } from \"./helperFunctions\"\r\nimport useStyles from \"./styles\"\r\nimport { useLanguage } from \"../../lib/hooks/languageHooks\"\r\nimport { useUrlQuery } from \"../../lib/hooks/urlQueryHooks\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { addToCompare, setIsOnComparePage } from \"../../redux/compareProductsReducer\"\r\nimport { useCompareProducts } from \"../../redux/hook/compareHooks\"\r\nimport { useFilteredProducts } from \"../../redux/hook/productHooks\"\r\nimport { productViewBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport theme from \"../../theme\"\r\nimport { batch, useDispatch } from \"react-redux\"\r\nimport React, { useEffect, useMemo, useState } from \"react\"\r\nimport { Box, Typography, useMediaQuery } from \"@mui/material\"\r\nimport Button from \"@mui/material/Button\"\r\nimport PictureAsPdfIcon from \"@mui/icons-material/PictureAsPdf\"\r\nimport axios from \"axios\"\r\nimport CircularProgress from \"@mui/material/CircularProgress\"\r\nimport DoneIcon from \"@mui/icons-material/Done\"\r\n\r\nconst CompareProducts = () => {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n const isMobile = useMediaQuery(theme.breakpoints.down(productViewBreakpoint))\r\n const language = useLanguage()\r\n const queryParams = useUrlQuery()\r\n const productForCompareIds = useCompareProducts()\r\n const [loading, setLoading] = useState(false)\r\n const [success, setSuccess] = useState(false)\r\n\r\n const filter = useMemo(\r\n () => ({ productIds: productForCompareIds ?? [] }),\r\n [productForCompareIds]\r\n )\r\n let products = useFilteredProducts(filter)\r\n products = products.map(p => transformProductForCompare(p))\r\n\r\n const getCompareUrl = () => {\r\n const cleanedUrl = window.location.toString().replace(window.location.search, \"\")\r\n const url = new URL(cleanedUrl)\r\n if (productForCompareIds && productForCompareIds.length > 0) {\r\n url.searchParams.set(\"id\", productForCompareIds)\r\n url.searchParams.sort()\r\n }\r\n return url\r\n }\r\n\r\n const setCompareUrl = () => {\r\n const url = getCompareUrl()\r\n window.history.pushState({}, \"\", url)\r\n }\r\n\r\n useEffect(() => {\r\n const ids = (queryParams.get(\"id\") ?? \"\")\r\n .split(\",\")\r\n .filter(id => Boolean(id))\r\n\r\n batch(() => {\r\n ids.forEach(id => {\r\n dispatch(addToCompare(id))\r\n })\r\n dispatch(setIsOnComparePage(true))\r\n })\r\n\r\n return () => {\r\n dispatch(setIsOnComparePage(false))\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setCompareUrl()\r\n }, [productForCompareIds, language])\r\n\r\n const downloadComparisonReport = async () => {\r\n setLoading(true)\r\n const ids = `${products[0].originalId}-${products[1].originalId}`\r\n const url = `/api/ProductInfo/GetProductComparisonReport?ids=${ids}&language=${language}`\r\n await axios.get(url, {\r\n responseType: \"blob\"\r\n })\r\n .then(response => {\r\n const downloadUrl = window.URL.createObjectURL(new Blob([response.data]))\r\n\r\n const link = document.createElement(\"a\")\r\n link.href = downloadUrl\r\n link.setAttribute(\"download\", `product-comparison-${ids}.pdf`)\r\n document.body.appendChild(link)\r\n link.click()\r\n\r\n link.parentNode.removeChild(link)\r\n })\r\n .catch(error => console.error(\"Error fetching data: \", error))\r\n .finally(() => {\r\n setLoading(false)\r\n setSuccess(true)\r\n })\r\n }\r\n\r\n const buttonIcon = () => {\r\n if (loading) {\r\n return \r\n }\r\n\r\n if (success) {\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n return (\r\n \r\n {Localization.compareProducts}\r\n \r\n {products.length === 2\r\n && (\r\n \r\n {Localization.downloadComparisonPdf}\r\n \r\n )}\r\n \r\n {\r\n products.length > 0\r\n ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n {Localization.noProductsToCompare}\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default CompareProducts\r\n","import { tabletBreakpoint } from \"../../lib/helper/viewportHelper\"\r\nimport { makeStyles } from \"@mui/styles\"\r\n\r\nexport default makeStyles(theme => ({\r\n userPage: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n width: \"100%\",\r\n flexWrap: \"wrap\"\r\n },\r\n contentWrapper: {\r\n display: \"flex\",\r\n flex: \"0 1 1920px\",\r\n fontFamily: \"Arial\",\r\n padding: \"20px 40px\",\r\n gap: \"20px\"\r\n },\r\n left: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n gap: \"20px\",\r\n flex: \"0 0 60%\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n flex: \"0 0 100%\"\r\n }\r\n },\r\n right: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n flex: \"1 1 0px\",\r\n [theme.breakpoints.down(tabletBreakpoint)]: {\r\n display: \"none\"\r\n }\r\n },\r\n pageTitle: {\r\n fontSize: \"24px\"\r\n },\r\n withdrawConsent: {\r\n flex: \"0 1 100%\"\r\n },\r\n image: {\r\n flex: \"1 1 0px\",\r\n width: \"0px\",\r\n borderRadius: \"5px\"\r\n }\r\n}))\r\n","export default __webpack_public_path__ + \"static/media/mypages.754a4665.jpg\";","import { useLanguage } from \"../../../lib/hooks/languageHooks\"\r\nimport { useIsUserAuthorized } from \"../../../redux/hook/userHooks\"\r\nimport { mobileMenuBreakpoint } from \"../../../lib/helper/viewportHelper\"\r\nimport { styled } from \"@mui/styles\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport InfoIcon from \"@mui/icons-material/Info\"\r\n\r\nconst MessageBoxBase = styled(\"div\")(({ theme }) => (\r\n {\r\n flex: \"0 1 1600px\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n padding: \"16px 20px\",\r\n backgroundColor: \"#FFFFFF\",\r\n color: \"#2D2D2D\",\r\n fontFamily: \"Arial\",\r\n gap: \"5px\",\r\n marginTop: \"16px\",\r\n borderRadius: \"10px\",\r\n border: \"1px solid #f09057\",\r\n [theme.breakpoints.down(mobileMenuBreakpoint)]: {\r\n flex: \"0 1 80%\"\r\n }\r\n }\r\n))\r\n\r\nconst Title = styled(\"div\")(() => (\r\n {\r\n flex: \"0 0 100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n fontSize: \"17px\",\r\n fontWeight: 700,\r\n gap: \"8px\"\r\n }\r\n))\r\n\r\nconst Paragraph = styled(\"p\")(() => (\r\n {\r\n flex: \"0 0 100%\",\r\n fontSize: \"14px\",\r\n margin: \"5px 0\"\r\n }\r\n))\r\n\r\nconst MessageBox = () => {\r\n const language = useLanguage()\r\n const isAuthorized = useIsUserAuthorized()\r\n const [message, setMessage] = useState(null)\r\n\r\n const fetchAnnouncementMessage = async () => {\r\n const response = await fetch(`/files/DynamicPages/AnnouncementMessage-${language}.json`)\r\n return response.json()\r\n }\r\n\r\n useEffect(() => {\r\n let isMounted = true\r\n\r\n const fetchMessage = async () => {\r\n const result = await fetchAnnouncementMessage()\r\n if (isMounted) setMessage(result)\r\n }\r\n\r\n fetchMessage()\r\n\r\n return () => {\r\n isMounted = false\r\n }\r\n }, [language])\r\n\r\n return isAuthorized && message && message.enabled ? (\r\n \r\n \r\n <InfoIcon />\r\n {message.title}\r\n \r\n {message.text && message.text.map((text, i) => {text})}\r\n \r\n ) : null\r\n}\r\n\r\nexport default MessageBox\r\n","import useStyles from \"./styles\"\r\nimport MyPagesImage from \"./assets/mypages.jpg\"\r\nimport MessageBox from \"./MessageBox/MessageBox\"\r\nimport withdrawCookiesConsent from \"../../lib/helper/gdprHelper\"\r\nimport { strings as Localization } from \"../../lib/Localization\"\r\nimport { useUserData } from \"../../redux/hook/userHooks\"\r\nimport UserInfo from \"../UserInfo/UserInfo\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport React from \"react\"\r\nimport {\r\n Link\r\n} from \"@mui/material\"\r\n\r\nconst User = () => {\r\n const classes = useStyles()\r\n const userData = useUserData()\r\n const dispatch = useDispatch()\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n

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

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

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

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

\r\n {title}\r\n

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

{item.title}

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

{item.title}

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