{"version":3,"sources":["../node_modules/@workbench/core/dist/workbench lazy groupOptions: {} namespace object","utility/theme.tsx","components/subcomponent/subcomponent.tsx","components/mainPage/subcomponent/MBBeVoIconCard/MBBeVoIconCard.tsx","components/mainPage/subcomponent/MBBeVoContentSliderWeb/ContentSlider.jsx","components/mainPage/subcomponent/MBBeVoIconCardMobile/MBBeVoIconCardMobile.tsx","components/mainPage/subcomponent/MBBeVoContentSliderMobile/MBBeVoContentSliderMobile.tsx","resource/icons/ic_bevo_fett_48.svg","resource/icons/ic_bevo_breaking-fluid_48.svg","resource/icons/ic_bevo_fuel-comp_48.svg","resource/icons/ic_bevo_hydraulikoel_48.svg","resource/icons/ic_bevo_lenkgetriebe_48.svg","resource/icons/Lenkgetriebe.svg","resource/icons/ic_bevo_NOx-Reduktionsmittel_48.svg","resource/icons/ic_bevo_motorEngine.svg","resource/icons/ic_bevo_washer-fluid_48.svg","resource/icons/ic_bevo_kompressor_48.svg","resource/icons/ic_bevo_transmission_48.svg","resource/icons/ic_bevo_konservierungsstoffe_48.svg","resource/icons/ic_bevo_korrosions-frostschutz_48.svg","resource/icons/ic_bevo_kaeltemittel_48.svg","resource/icons/E-Motor.svg","resource/icons/EdAc.svg","resource/icons/cleaner.svg","resource/image/adBlueHeader.jpg","resource/image/categoryHeader.jpg","resource/image/CleanerHeader.jpg","resource/image/GetriebeHeader.jpg","resource/image/KühlantHeader.jpg","resource/image/MotorHeader.jpg","globals/Constants.tsx","components/mainPage/subcomponent/MBBeVoContentSlider/MBBeVoContentSlider.tsx","resource/image/motorPlaceholder.jpg","resource/image/oilPlaceholder.jpg","resource/image/carPlaceholder.png","components/mainPage/subcomponent/MBBeVoContent/MBBeVoContent.tsx","components/mainPage/subcomponent/MBBeVoDesc/MBBeVoDesc.tsx","resource/image/truckDesktop.jpg","resource/image/e-truck.jpg","globals/i18n.js","components/mainPage/subcomponent/SwiperSlider/ProgressBar.tsx","components/mainPage/subcomponent/iconNavigation/IconNavigation.js","components/mainPage/subcomponent/SwiperSlider/HotspotLink.tsx","components/mainPage/subcomponent/SwiperSlider/SwiperSlider.tsx","components/mainPage/MainPage.tsx","resource/icons/ic_bevo_drop_16_grey.svg","resource/icons/ic_bevo_drop_16.svg","utility/DialogHelper.tsx","utility/Helper.tsx","utility/FetchAPI.tsx","globals/LanguageMappingsContext.tsx","components/general/header/subcomponent/navWeb/NavWeb.jsx","components/general/search/SearchOverview.jsx","components/general/header/Header.jsx","components/general/Footer.tsx","interfaces/IProduct.tsx","interfaces/IProductSheet.tsx","components/category/sheetPage/SheetTable.tsx","components/qr/QrOverview.tsx","resource/image/adBlueSmall.jpg","resource/image/GetriebeSmall.jpg","resource/image/KühlantSmall.jpg","resource/image/MotorölSmall.jpg","components/category/categoryList/CategoryList.tsx","components/category/categoryTable/CategoryTable.tsx","components/category/categoryTable/staticCategories.tsx","components/category/categoryTable/StaticCategoryTable.tsx","components/category/headerBanner/HeaderBanner.tsx","resource/image/CategoryPlaceholderTransparent.png","components/category/prolog/Prolog.tsx","components/category/CategoryOverview.tsx","resource/image/HydrogenHeader.jpg","components/category/sheetPage/SheetOverview.tsx","components/general/cookieModel/text_DE/PrivacyStatementDe.tsx","components/general/cookieModel/text_EN/PrivacyStatementEn.tsx","components/general/cookieModel/text_DE/ProviderDe.tsx","components/general/cookieModel/text_EN/ProviderEn.tsx","components/general/cookieModel/text_DE/LegalNoticeDe.tsx","components/general/cookieModel/text_EN/LegalNoticeEn.tsx","components/general/cookieModel/CookieModel.jsx","components/general/comingSoon/ComingSoon.tsx","components/oilFinder/OilFinder.tsx","interfaces/IContact.tsx","components/general/contact/Contact.jsx","components/general/category/Category.tsx","components/category/sheetPage/SheetPdf.tsx","components/App.tsx","index.tsx"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","Colors","Themes","Primary","theme","createMuiTheme","DUITheme","palette","primary","main","secondary","text","type","background","default","Subcomponent","_jsx","children","useStyles","makeStyles","createStyles","content","color","textAlign","IconCard","props","navigate","useNavigate","t","i18n","useTranslation","_Fragment","className","_jsxs","onClick","language","link","WbIcon","src","icon","description","Link","to","class","name","Icon","ChevronRight","ContentSlider","style","width","margin","overflow","map","element","index","MBBeVoContentSliderMobile","IconCardMobile","BASE_URL","CATEGORY_PROPS","engineOilIcon","image","MotorHeader","static","sheeTitle","staticDetails","sheetPrefix","brakeFluidIcon","categoryHeader","fuelIcon","transmissionIcon","GetriebeHeader","greaseIcon","hydraulicOilIcon","preservationIcon","refrigeratorOilIcon","stearingGearIcon","adBlueIcon","adBlueHeader","coolantIcon","KühlantHeader","refrigerantIcon","washerFluidIcon","edacIcon","electricEngineIcon","axleOilIcon","cleanerIcon","CleanerHeader","filename","sort","a","b","TABLE_HEADER","productName","key","value","type30","type40","type50","type80","type90","type0W","type0W20","type0W30","type0W40","type5W30","type5W40","type5W50","type10W","type10W30","type10W40","type10W60","type15W40","type20W20","type20W50","type75W","type75W80","type75W85","type75W90","type80W","type80W90","type80W85","type85W90","MBBeVoContentSlider","MBBeVoContent","motor","MBBeVoDesc","marginTop","use","LanguageDetector","initReactI18next","init","resources","en","translations","Diesel","electricTruck","Cleaner","ClearCareProductsTitle","ClearCareProductsDetails","mainPage","title","keywords","author","robots","categoryOverview","MbApprovalLabel","SheetNumber","Here","MailFeedbackPartOne","MailFeedbackPartTwo","CookieBarHeader","CookieBarContent","CookieBarDetails","TechnicallyNeccessary","Analytics","SaveSelected","AgreeToAll","WelcomeToSupport","SupportInfo","SupportAsterisk","FirstName","LastName","StreetName","HouseNumber","PostalCode","City","Country","Email","Message","SupportPolicy","Send","Title","ErrorFirstName","ErrorLastName","ErrorEmail","ErrorMessage","ErrorTitle","ErrorCountry","ErrorPostalCode","LastUpdate","ChoooseBeVo","Link1","Link2","SearchResultPart1","SearchResultPart2","BackToOverview","SearchLabel","ProductName","ShowMore","ShowLess","NoProduct","PrologGearOil","PrologFuel","PrologCoolant","PrologAdBlue","PrologMotorOil","PrologEdac","CookieUse","PrologHydrogen","IntroductionContent","Sheet","ProductApproval","ProductNotApproved","Description","Principal","Interested","TopCategories","BrakeFluid","Info","EngineOil","NewAvailable","Fuel","GearOil","Grease","HydraulicFluid","PreservationAgent","RefrigeratorOil","SteeringGearOil","AdBlue","Coolant","Refrigerant","Windshield","ReservedRights","Date","getFullYear","PrivacyStatement","Cookies","Category","LegalNotice","Settings","Categories","Getriebeöl","Motoröl","Bremsflüssigkeit","Kraftstoff","Fett","Hydrauliköl","Konservierungsmittel","Kompressoröl","Lenkgetriebeöl","Frostschutz","Kältemittel","OilFinder","Provider","MappingOverview","Contact","LearnMore","MbOgOil","MbChoice","OperatingInstructions","OperatingInstructionsContent","ContactUrl","Type30","Type40","Type50","Type80","Type90","Type0W","Type0W20","Type0W30","Type0W40","Type5W30","Type5W40","Type5W50","Type10W","Type10W30","Type10W40","Type20W20","Type20W50","Type75W","Type75W80","Type75W85","Type75W90","Type80W","Type80W90","Type80W85","Type85W90","ModelHeaderText","de","ProductAllowerdText","pt","fallbackLng","debug","ns","defaultNS","keySeparator","interpolation","escapeValue","ProgressBar","React","memo","_ref","progress","IconNavigation","onclick","open","position","clsx","HotspotLink","hotspot","classes","label","autoplaySpeed","CustomArrow","direction","arrowPath","display","alignItems","justifyContent","xmlns","viewBox","stroke","fill","d","HomeCarousel","setProgress","useState","slides","useMemo","subtitle","desktopSkeletonImage","dotText","hotspots","hydrogenSkeletonImage","intervalRef","useRef","useEffect","current","setInterval","prev","clearInterval","handleBeforeChange","useCallback","settings","dots","infinite","speed","slidesToShow","slidesToScroll","autoplay","cssEase","swipeToSlide","arrows","prevArrow","nextArrow","beforeChange","customPaging","i","appendDots","Slider","slide","alt","MainPage","location","useLocation","path","pathname","startsWith","changeLanguage","window","scrollTo","Helmet","property","rel","href","hrefLang","openCategoriesMenu","_document$getElementB","_document$getElementB2","_document$getElementB3","_document$getElementB4","_document$getElementB5","_document$getElementB6","document","getElementById","classList","add","remove","closeCategoriesMenu","_document$getElementB7","_document$getElementB8","_document$getElementB9","_document$getElementB10","_document$getElementB11","_document$getElementB12","closeSubCategoriesMenu","closeSearch","_document$getElementB13","_document$getElementB14","showProviderTab","_document","_document$getElementB17","_document2","_document2$getElement","_document3","_document3$getElement","setAttribute","showLegalNoticeTab","_document4","_document4$getElement","_document5","_document5$getElement","_document6","_document6$getElement","showDataPrivacyTab","_document7","_document7$getElement","_document8","_document8$getElement","_document9","_document9$getElement","_document$getElements","_document$getElementB18","_document$getElementB19","_document$getElementB20","_document$getElementB21","_document$getElementB22","getElementsByClassName","setCategoryString","category","async","showPdfInNewTab","sheet","mapping","newWindow","languageMappings","_sheet","_sheet2","_sheet3","_sheet4","_sheet5","_sheet6","console","log","error","pdfDe","pdfEn","pdfPt","getSheetByNumber","sheetNumber","results","data","catch","getSheetData","fileName","base64Data","pdf","linkSource","encodeURI","downloadLink","createElement","download","navigator","userAgent","toLowerCase","includes","click","_window","pdfWindow","write","history","pushState","_sheet$sheetNumber","replaceAll","axios","get","getSearchResults","LanguageMappingsContext","createContext","useLanguageMappings","context","useContext","NavWeb","categorySheets","setCategorySheets","ChoosenCategory","setChoosenCategory","categoryLink","setCategoryLink","storedCategories","localStorage","getItem","lastUpdated","now","getTime","JSON","parse","fetchCategoriesFromAPI","setItem","categorzMap","Map","result","categoryGroups","forEach","newSheet","titleDe","titleEn","titlePt","htmlDe","htmlEn","htmlPt","push","Object","categoryKey","sheets","itemA","itemB","sheetNumberA","sheetNumberB","localeCompare","set","stringify","categoryMapArray","Array","from","entries","sortedSheets","chooseCategory","categoryName","lng","foundCategory","openSubCategoriesMenu","_document$getElementB15","_document$getElementB16","openLearnMore","level","arr","preventDefault","length","product","highlightText","searchTerm","regex","RegExp","replace","SearchOverview","searchText","setSearchText","searchResult","setSearchResult","abortController","setAbortController","abortControllerRef","latestRequestIdRef","debouncedSearch","debounce","requestId","abort","controller","AbortController","response","signal","onChange","target","searchButton","variant","closeAndResetSearch","productSheet","langKey","charAt","toUpperCase","slice","relevantText","arguments","undefined","trim","words","split","lowerText","lowerSearchTerm","searchIndex","indexOf","wordStartIndex","wordEndIndex","startIdx","Math","max","endIdx","min","join","getRelevantText","highlightedText","selectSheetItemResult","interactive","border","dangerouslySetInnerHTML","__html","Header","setLanguageDe","setLanguagePt","setLanguageEn","_document2$getElement2","_document3$getElement2","_document4$getElement2","_document5$getElement2","_document6$getElement2","_document7$getElement2","_document8$getElement2","_document9$getElement2","_document10","_document10$getElemen","_document10$getElemen2","_document11","_document11$getElemen","_document11$getElemen2","_document12","_document12$getElemen","_document12$getElemen2","_document13","_document13$getElemen","_document13$getElemen2","_document14","_document14$getElemen","_document14$getElemen2","_document15","_document15$getElemen","_document15$getElemen2","_document16","_document16$getElemen","_document16$getElemen2","_document17","_document17$getElemen","_document17$getElemen2","_document18","_document18$getElemen","_document18$getElemen2","openSearch","role","drop","dropWhite","verticalLine","marginBottom","backgroundColor","borderWidth","height","linkText","fontSize","marginRight","container","Footer","emptyProductObject","productId","privateLabel","type5W20","emptyProductSheetObject","productCollection","additionalInfoDe","additionalInfoEn","additionalInfoPt","publishDate","privateLabels","SheetTable","_sheet$productCollect","_sheet$productCollect2","_sheet$productCollect3","setSheet","rowsWithLinks","filter","row","rowsWithoutLinks","setLinkedFluidCount","setUnlinkedFluidCount","top","behavior","setShowMore","columns","check","isLink","column","_sheet$productCollect4","some","scope","_sheet$productCollect5","showMore","_sheet$productCollect6","QrOverview","setProductSheet","sheetNumbers","setSheetNumbers","foundProductCollection","setFoundProductColletion","isLoading","setIsLoading","linkedFluidCount","unlinkedFluidCount","useParams","numbers","resultSheet","getProductsById","foundProducts","moment","toString","format","CategoryList","KatList","engineImage","URL","gearImage","coolantImage","adBlueImage","CategoryTable","sheetCollection","setSheetCollection","categoryText","getSheetNumbersByCategory","cleanerProducts","StaticCategoryTable","products","HeaderBanner","_props$description","whiteSpace","categoryHeaderImage","Prolog","expand","setExpand","setText","CategoryOverview","_props$staticDetails","marginLeft","SheetOverview","DOMPurify","createDOMPurify","foundProps","setFoundProps","choosenLanguage","setChoosenLanguage","loopProps","find","prevProps","HydrogenHeader","additionalInfo","dateString","dateFormat","sanitize","html","handleShowMoreToggle","PrivacyStatementDe","showSecondLayer","PrivacyStatementEn","ProviderDe","fontWeight","ProviderEn","LegalNoticeDe","LegalNoticeEn","CookieModel","querySelector","addEventListener","mode","closeOnBackdropClick","closeOnEscapeKey","headline","verticalAlign","selected","getViewportWidth","fitted","ComingSoon","emptyContactObject","email","message","locale","timeLeft","start","pause","resume","reset","useCountDown","emailSent","setEmailSent","setEmail","setTitle","setMessage","errorEmail","setErrorEmail","errorTitle","setErrorTitle","errorMessage","setErrorMessage","initialState","setInitialState","isBot","setIsBot","checkInput","isbot","clearForm","interval","validateEmail","match","addEmail","addTitle","addMessage","tabindex","autocomplete","sendMail","contactData","post","sendContact","gridTemplateColumns","gap","SheetPdf","app","maxWidth","App","isTracking","setIsTracking","MuiThemeProvider","BrowserRouter","Routes","Route","ReactDOM","render"],"mappings":"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","file":"static/js/main.28bd0b95.chunk.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 155;","import { DUITheme } from '@daimler/material-ui-theme';\nimport { createMuiTheme } from '@material-ui/core';\n\n// Workbench Colors\n// https://workbench.mercedes-benz.com/foundation/colours\nexport const Colors = {\n Highlight: '#00adef',\n HighlightHover: '#0088c6',\n HighlightPressed: '#009ed8',\n HighlightOutlineDark: '#4a90e2',\n HighlightOutlineLight: '#57cdf5',\n\n White: '#FFFFFF',\n Smoke: '#f8f8f8',\n Moon: '#f4f4f4',\n Asphalt: '#e5e5e5',\n Silver: '#bfbfbf',\n Noble: '#999999',\n Boulder: '#767676',\n Gunmetal: '#666666',\n Obsidian: '#333333',\n Mineshaft: '#262626',\n Black: '#000000',\n Ok: '#008a00',\n Caution: '#ffbf00',\n Error: '#e1292b',\n CO2a: '#009e46',\n CO2b: '#67b633',\n CO2c: '#d2d700',\n CO2d: '#ffed00',\n CO2e: '#fdc602',\n CO2f: '#f17e04',\n CO2g: '#eb2220',\n};\nexport const Themes = {\n Primary: (() => {\n let theme = createMuiTheme(DUITheme);\n // Autocomplete component overrides .MuiIconButton-colorPrimary -> !important\n theme.palette.primary.main = `${Colors.White} !important`;\n theme.palette.secondary.main = Colors.Black;\n theme.palette.text.primary = Colors.White;\n theme.palette.text.secondary = Colors.Black;\n theme.palette.type = 'dark';\n theme.palette.background.default = Colors.Black;\n\n return theme;\n })(),\n};\n","import React from 'react'\n\nexport const Subcomponent = () => {\n return (\n <div>Subcomponent</div>\n )\n}","/* eslint-disable */\nimport React from 'react';\n\nimport { Icon } from '@workbench/core';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport './MBBeVoIconCard.css';\nimport { WbIcon } from '@workbench/react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n// Styling\nconst useStyles = makeStyles(() =>\n createStyles({\n content: {\n color: 'white',\n textAlign: 'center',\n },\n })\n);\n\nexport default function IconCard(props: any) {\n const classes = useStyles();\n let navigate = useNavigate();\n const { t, i18n } = useTranslation();\n\n return (\n <>\n {/* <div style={{ maxWidth: \"160px\", maxHeight: \"180px\", margin: \"auto\" }}> */}\n\n <div className='MBBeVoIconCard__wrapper'>\n <div\n className='MBBeVoIconCard__content cursorPointer'\n onClick={() =>\n i18n.language == 'de'\n ? navigate(`/category${props.props.link}/de`)\n : navigate(`/category${props.props.link}/en`)\n }\n >\n <div className='MBBeVoIconCard__icon-wrapper'>\n <div className='MBBeVoIconCard__icon-content'>\n <WbIcon\n className='MBBeVoIconCard__icon'\n /* name={props.props.icon} */\n src={props.props.icon}\n />\n </div>\n </div>\n <div className='MBBeVoIconCard__text-wrapper'>\n <p className='wb-type-hint MBBeVoIconCard__text-content'>\n {t(props.props.description)}\n </p>\n </div>\n <Link\n to={\n i18n.language == 'de'\n ? `/category${props.props.link}/de`\n : `/category${props.props.link}/en`\n }\n >\n <div>\n <Link\n className='wb-button wb-button--primary wb-button--small MBBeVoIconCard__button-anchor'\n to={\n i18n.language == 'de'\n ? `/category${props.props.link}/de`\n : `/category${props.props.link}/en`\n }\n >\n <WbIcon\n class='MBBeVoIconCard__button-icon'\n name={Icon.ChevronRight}\n />\n <p className='wb-type-button'>{t('LearnMore')}</p>\n </Link>\n </div>\n </Link>\n </div>\n </div>\n </>\n );\n}\n","/* eslint-disable */\nimport React from 'react';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport IconCard from '../MBBeVoIconCard/MBBeVoIconCard';\nimport './MBBeVoContentSliderWeb.css';\nimport { useTranslation, i18n } from 'react-i18next';\n\n// Styling\nconst useStyles = makeStyles(() => createStyles({}));\n\nexport function ContentSlider(props) {\n const content = props.content;\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n\n return (\n <>\n <div>\n <div className='wb-grid-container'>\n <div className='wb-grid-row'>\n <p className='wb-type-heading-m sectionTitle'>\n <p className='wb-type-heading-m sectionTitle'>\n {t('ChoooseBeVo')}\n </p>\n </p>\n <div\n className='wb-grid-col-mq3-12 wb-grid__zero-padding'\n style={{ width: '75%', margin: 'auto' }}\n >\n <wb-slider\n theme='dark'\n show-arrow-navigation\n show-dot-navigation\n style={{ overflow: 'visible' }}\n >\n {content.map(function (element, index) {\n return (\n <div\n className='wb-slider__item wb-grid-col-mq1-1.7 MBBeVoContentSlider__map'\n key={index}\n >\n <IconCard props={element}></IconCard>\n </div>\n );\n })}\n </wb-slider>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n}\n","/* eslint-disable */\nimport React from 'react';\n\nimport { Icon } from '@workbench/core';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport './MBBeVoIconCardMobile.css';\nimport { WbIcon } from '@workbench/react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n// Styling\nconst useStyles = makeStyles(() =>\n createStyles({\n content: {\n color: 'white',\n textAlign: 'center',\n },\n })\n);\n\nexport default function IconCard(props: any) {\n const classes = useStyles();\n let navigate = useNavigate();\n const { t, i18n } = useTranslation();\n\n return (\n <>\n {/* <div style={{ maxWidth: \"160px\", maxHeight: \"180px\", margin: \"auto\" }}> */}\n\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq1-12 wb-grid-col-mq3-4'>\n <div>\n <div className='MBBeVoIconCard__mobile-icon-wrapper'>\n <div\n className='MBBeVoIconCard__mobile-icon-content cursorPointer'\n onClick={() =>\n i18n.language == 'de'\n ? navigate(`/category${props.props.link}/de`)\n : navigate(`/category${props.props.link}/en`)\n }\n >\n <WbIcon\n className='MBBeVoIconCard__mobile-icon'\n src={props.props.icon}\n />\n </div>\n </div>\n <div className='MBBeVoIconCard__mobile-text-wrapper'>\n <p className='wb-type-hint MBBeVoIconCard__mobile-text-content'>\n {t(props.props.description)}\n </p>\n </div>\n <Link\n to={\n i18n.language == 'de'\n ? `/category${props.props.link}/de`\n : `/category${props.props.link}/en`\n }\n >\n <div>\n <Link\n className='wb-button wb-button--primary wb-button--small MBBeVoIconCard__mobile-button-anchor'\n to={\n i18n.language == 'de'\n ? `/category${props.props.link}/de`\n : `/category${props.props.link}/en`\n }\n >\n <WbIcon\n class='MBBeVoIconCard__mobile-button-icon'\n name={Icon.ChevronRight}\n />\n <span className='wb-type-button'>{t('LearnMore')}</span>\n </Link>\n </div>\n </Link>\n </div>\n </div>\n <hr className='hrIconLine' />\n </>\n );\n}\n","import React from 'react';\nimport { Icon } from '@workbench/core';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport IconCardMobile from '../MBBeVoIconCardMobile/MBBeVoIconCardMobile';\nimport './MBBeVoContentSliderMobile.css';\nimport { IMBBeVoContentSlider } from '../../../../interfaces/IMBBeVoContentSlider';\n\nconst MBBeVoContentSliderMobile = (props: any) => {\n const content: IMBBeVoContentSlider[] = props.content;\n\n return (\n <div className='wb-grid-container p'>\n <div className='wb-grid-row'>\n {content.map(function (element, index) {\n return <IconCardMobile props={element}></IconCardMobile>;\n })}\n </div>\n </div>\n );\n};\n\nexport default MBBeVoContentSliderMobile;\n","export default __webpack_public_path__ + \"static/media/ic_bevo_fett_48.1e30ccc4.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_breaking-fluid_48.3aabf2b4.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_fuel-comp_48.1ce8f9b3.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_hydraulikoel_48.f86d5558.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_lenkgetriebe_48.bde9914c.svg\";","export default __webpack_public_path__ + \"static/media/Lenkgetriebe.4bd37804.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_NOx-Reduktionsmittel_48.85a0f7cc.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_motorEngine.f8e1077a.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_washer-fluid_48.77d8c280.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_kompressor_48.5854e229.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_transmission_48.ca6eec87.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_konservierungsstoffe_48.0f38d27e.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_korrosions-frostschutz_48.17596906.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_kaeltemittel_48.9e8b7114.svg\";","export default __webpack_public_path__ + \"static/media/E-Motor.7b1fdbfc.svg\";","export default __webpack_public_path__ + \"static/media/EdAc.97ec152b.svg\";","export default __webpack_public_path__ + \"static/media/cleaner.cc3d4e5d.svg\";","export default __webpack_public_path__ + \"static/media/adBlueHeader.10557e9b.jpg\";","export default __webpack_public_path__ + \"static/media/categoryHeader.7f2e9685.jpg\";","export default __webpack_public_path__ + \"static/media/CleanerHeader.49b5c879.jpg\";","export default __webpack_public_path__ + \"static/media/GetriebeHeader.9e0bfa06.jpg\";","export default __webpack_public_path__ + \"static/media/KühlantHeader.21774951.jpg\";","export default __webpack_public_path__ + \"static/media/MotorHeader.b58fa871.jpg\";","//Module Import\nimport {useTranslation, Trans} from 'react-i18next';\n\n//Icons\nimport greaseIcon from '../resource/icons/ic_bevo_fett_48.svg';\nimport brakeFluidIcon from '../resource/icons/ic_bevo_breaking-fluid_48.svg';\nimport fuelIcon from '../resource/icons/ic_bevo_fuel-comp_48.svg';\nimport hydraulicOilIcon from '../resource/icons/ic_bevo_hydraulikoel_48.svg';\nimport infoIcon from '../resource/icons/ic_bevo_info_48.svg';\n// import stearingGearIcon from '../resource/icons/\nimport axleOilIcon from '../resource/icons/ic_bevo_lenkgetriebe_48.svg';\nimport stearingGearIcon from '../resource/icons/Lenkgetriebe.svg';\nimport adBlueIcon from '../resource/icons/ic_bevo_NOx-Reduktionsmittel_48.svg';\nimport engineOilIcon from '../resource/icons/ic_bevo_motorEngine.svg';\nimport washerFluidIcon from '../resource/icons/ic_bevo_washer-fluid_48.svg';\nimport refrigeratorOilIcon from '../resource/icons/ic_bevo_kompressor_48.svg';\nimport transmissionIcon from '../resource/icons/ic_bevo_transmission_48.svg';\nimport preservationIcon from '../resource/icons/ic_bevo_konservierungsstoffe_48.svg';\nimport coolantIcon from '../resource/icons/ic_bevo_korrosions-frostschutz_48.svg';\nimport refrigerantIcon from '../resource/icons/ic_bevo_kaeltemittel_48.svg';\nimport electricEngineIcon from '../resource/icons/E-Motor.svg';\nimport edacIcon from '../resource/icons/EdAc.svg';\nimport hydrogenIcon from '../resource/icons/hydrogen.svg';\nimport cleanerIcon from '../resource/icons/cleaner.svg';\n\n// Categoty header images\nimport adBlueHeader from '../resource/image/adBlueHeader.jpg';\nimport categoryHeader from '../resource/image/categoryHeader.jpg';\nimport CleanerHeader from '../resource/image/CleanerHeader.jpg';\nimport GetriebeHeader from '../resource/image/GetriebeHeader.jpg';\nimport KühlantHeader from '../resource/image/KühlantHeader.jpg';\nimport MotorHeader from '../resource/image/MotorHeader.jpg';\n\n// Media Query breakpoint\nexport const MEDIA_QUERY_BREAKPOINT_TABLE_NUMBER = 900;\nexport const MEDIA_QUERY_BREAKPOINT = '(max-width: 720px)';\nexport const MEDIA_QUERY_BREAKPOINT_TABLE = `(max-width: ${MEDIA_QUERY_BREAKPOINT_TABLE_NUMBER}px)`;\n\n// API\nexport const BASE_URL =\n process.env.NODE_ENV == 'production'\n ? '/api/v1/'\n : 'https://bevo.peccloud.de/api/v1/';\n\n// export const BASE_URL = 'http://localhost:8080/api/v1/';\n// export const BASE_URL = 'https://bevo-dev.trucks.app.corpintra.net/api/v1/';\n\n// Categories\nexport const CATEGORY_PROPS = [\n /* {\n icon: infoIcon,\n image: categoryHeader,\n description: 'Info',\n link: '/general-information',\n }, */\n {\n icon: engineOilIcon,\n image: MotorHeader,\n static: false,\n sheeTitle: \"EngineOil\",\n staticDetails: \"\",\n description: 'EngineOil',\n link: '/engine-oil',\n sheetPrefix: 15,\n },\n {\n icon: brakeFluidIcon,\n image: categoryHeader,\n static: false,\n sheeTitle: \"BrakeFluid\",\n staticDetails: \"\",\n description: 'BrakeFluid',\n link: '/brake-fluid',\n sheetPrefix: 30,\n },\n {\n icon: fuelIcon,\n image: categoryHeader,\n description: 'Fuel',\n static: false,\n sheeTitle: \"Fuel\",\n staticDetails: \"\",\n link: '/fuel',\n sheetPrefix: 16,\n },\n {\n icon: transmissionIcon,\n image: GetriebeHeader,\n description: 'GearOil',\n static: false,\n sheeTitle: \"GearOil\",\n staticDetails: \"\",\n link: '/gear-oil',\n sheetPrefix: 13,\n },\n {\n icon: greaseIcon,\n image: categoryHeader,\n description: 'Grease',\n static: false,\n sheeTitle: \"Grease\",\n staticDetails: \"\",\n link: '/grease',\n sheetPrefix: 33,\n },\n {\n icon: hydraulicOilIcon,\n image: categoryHeader,\n description: 'HydraulicFluid',\n static: false,\n sheeTitle: \"HydraulicFluid\",\n staticDetails: \"\",\n link: '/hydraulic-fluid',\n sheetPrefix: 31,\n },\n {\n icon: preservationIcon,\n image: categoryHeader,\n description: 'PreservationAgent',\n static: false,\n sheeTitle: \"PreservationAgent\",\n staticDetails: \"\",\n link: '/preservation-agent',\n sheetPrefix: 34,\n },\n {\n icon: refrigeratorOilIcon,\n image: categoryHeader,\n description: 'RefrigeratorOil',\n static: false,\n sheeTitle: \"RefrigeratorOil\",\n staticDetails: \"\",\n link: '/compressor-oil',\n sheetPrefix: 36,\n },\n {\n icon: stearingGearIcon,\n image: categoryHeader,\n description: 'SteeringGearOil',\n static: false,\n sheeTitle: \"SteeringGearOil\",\n staticDetails: \"\",\n link: '/stearing-gear-oil',\n sheetPrefix: 38,\n },\n {\n icon: adBlueIcon,\n image: adBlueHeader,\n description: 'AdBlue',\n static: false,\n sheeTitle: \"AdBlue\",\n staticDetails: \"\",\n link: '/NOx-reducing-agent',\n sheetPrefix: 17,\n },\n {\n icon: coolantIcon,\n image: KühlantHeader,\n description: 'Coolant',\n link: '/coolant',\n static: false,\n sheeTitle: \"Coolant\",\n staticDetails: \"\",\n sheetPrefix: 29,\n },\n {\n icon: refrigerantIcon,\n image: categoryHeader,\n description: 'Refrigerant',\n link: '/refrigerant',\n static: false,\n sheeTitle: \"Refrigerant\",\n staticDetails: \"\",\n sheetPrefix: 35,\n },\n {\n icon: washerFluidIcon,\n image: categoryHeader,\n description: 'Windshield',\n link: '/windshield-washer-fluid-concentrate',\n static: false,\n staticDetails: \"\",\n sheeTitle: \"Windshield\",\n sheetPrefix: 38,\n },\n {\n icon: edacIcon,\n image: categoryHeader,\n description: 'edAC-Oil',\n link: '/edAC-Oil',\n static: false,\n sheeTitle: \"edAC-Oil\",\n staticDetails: \"\",\n sheetPrefix: 32,\n },\n {\n icon: electricEngineIcon,\n image: categoryHeader,\n description: 'E-Drive',\n link: '/E-Drive',\n static: false,\n sheeTitle: \"E-Drive\",\n staticDetails: \"\",\n sheetPrefix: 10,\n },\n {\n icon: axleOilIcon,\n image: categoryHeader,\n description: 'Axle-Oil',\n link: '/Axle-Oil',\n static: false,\n sheeTitle: \"ClearCareProductsTitle\",\n staticDetails: \"\",\n sheetPrefix: 11,\n },\n {\n icon: cleanerIcon,\n image: CleanerHeader,\n description: 'Cleaner',\n static: true,\n sheeTitle: \"ClearCareProductsTitle\",\n staticDetails: \"ClearCareProductsDetails\",\n filename:\"cleaner.csv\",\n link: '/cleaner-and-care',\n sheetPrefix: 39,\n },\n].sort((a,b) => a.sheetPrefix - b.sheetPrefix);\n\nexport const TABLE_HEADER: {\n [key: string]: { key: string; value: string };\n} = {\n productName: {key: 'productName', value: 'ProductName'},\n description: {key: 'description', value: 'Principal'},\n type30: {key: 'type30', value: '30'},\n type40: {key: 'type40', value: '40'},\n type50: {key: 'type50', value: '50'},\n type80: {key: 'type80', value: '80'},\n type90: {key: 'type90', value: '90'},\n type0W: {key: 'type0W', value: '0W'},\n type0W20: {key: 'type0W20', value: '0W-20'},\n type0W30: {key: 'type0W30', value: '0W-30'},\n type0W40: {key: 'type0W40', value: '0W-40'},\n type5W30: {key: 'type5W30', value: '5W-30'},\n type5W40: {key: 'type5W40', value: '5W-40'},\n type5W50: {key: 'type5W50', value: '5W-50'},\n type10W: {key: 'type10W', value: '10W'},\n type10W30: {key: 'type10W30', value: '10W-30'},\n type10W40: {key: 'type10W40', value: '10W-40'},\n\n type10W60: {key: 'type10W60', value: '10W-60'},\n type15W40: {key: 'type15W40', value: '15W-40'},\n type20W20: {key: 'type20W20', value: '20W-20'},\n type20W50: {key: 'type20W50', value: '20W-50'},\n type75W: {key: 'type75W', value: '75W'},\n type75W80: {key: 'type75W80', value: '75W-80'},\n type75W85: {key: 'type75W85', value: '75W-85'},\n type75W90: {key: 'type75W90', value: '75W-90'},\n type80W: {key: 'type80W', value: '80W'},\n type80W90: {key: 'type80W90', value: '80W-90'},\n type80W85: {key: 'type80W85', value: '80W-85'},\n type85W90: {key: 'type85W90', value: '85W-90'},\n};\n","import React from 'react';\nimport { Icon } from '@workbench/core';\n//import { WbContentSlider } from \"@workbench/react\";\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport IconCard from '../MBBeVoIconCard/MBBeVoIconCard';\nimport { MBBeVoContentSliderWeb } from '../MBBeVoContentSliderWeb/MBBeVoContentSliderWeb';\nimport { ContentSlider } from '../MBBeVoContentSliderWeb/ContentSlider';\nimport MBBeVoContentSliderMobile from '../MBBeVoContentSliderMobile/MBBeVoContentSliderMobile';\nimport './MBBeVoContentSlider.css';\n\nimport { CATEGORY_PROPS } from '../../../../globals/Constants';\n\nconst MBBeVoContentSlider = () => {\n return (\n <div className=''>\n {/* Slider for Web and Tablets >= 768px */}\n <div className='MBBeVoContentSlider-web-tab'>\n <ContentSlider content={CATEGORY_PROPS}></ContentSlider>\n </div>\n {/* Slider for mobile devices < 768px */}\n <div className='MBBeVoContentSlider-mobile MBBeVoContentSlider-mobile-space'>\n <MBBeVoContentSliderMobile\n content={CATEGORY_PROPS}\n ></MBBeVoContentSliderMobile>\n </div>\n </div>\n );\n};\n\nexport default MBBeVoContentSlider;\n","export default __webpack_public_path__ + \"static/media/motorPlaceholder.798fcb3f.jpg\";","export default __webpack_public_path__ + \"static/media/oilPlaceholder.e5eaeca8.jpg\";","export default __webpack_public_path__ + \"static/media/carPlaceholder.13741ff7.png\";","import motor from '../../../../resource/image/motorPlaceholder.jpg';\nimport './MBBeVoContent.css';\nimport { useTranslation, Trans } from 'react-i18next';\n\nconst MBBeVoContent = () => {\n const { t, i18n } = useTranslation();\n\n return (\n <div className='wb-grid-row'>\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-12 wb-grid-col-mq3-6 wb-grid-col-mq4-6 wb-grid-col-mq5-6 wb-grid-col-mq6-6'>\n <p className='wb-type-heading-m MBBeVoContent__text MBBeVoContent__spaceBottom MBBeVoContent__title-top'>\n Mercedes-Benz Trucks Operating Fluids\n </p>\n <img src={motor} className='MBBeVoContent__image'></img>\n </div>\n\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-12 wb-grid-col-mq3-6 wb-grid-col-mq4-6 wb-grid-col-mq5-6 wb-grid-col-mq6-6'>\n <p className='wb-type-heading-m MBBeVoContent__text MBBeVoContent__title-bottom'>\n Mercedes-Benz Trucks Operating Fluids\n </p>\n <p className='contentText wb-type-copy-tertiary MBBeVoContent__text MBBeVoContent__text-bottom'>\n {t('IntroductionContent')}\n </p>\n </div>\n </div>\n );\n};\n\nexport default MBBeVoContent;\n","import oil from '../../../../resource/image/oilPlaceholder.jpg';\nimport car from '../../../../resource/image/carPlaceholder.png';\nimport './MBBeVoDesc.css';\nimport MBBeVoTeaser from '../MBBeVoTeaser/MBBeVoTeaser';\nimport MBBeVoContent from '../MBBeVoContent/MBBeVoContent';\nimport { useTranslation } from 'react-i18next';\n\nconst MBBeVoDesc = () => {\n const { t } = useTranslation();\n const teaserContent = [\n {\n title: t('MbOgOil'),\n subTitle: t('MbChoice'),\n URL: '#1',\n image: oil,\n },\n {\n title: t('OperatingInstructions'),\n subTitle: t('OperatingInstructionsContent'),\n URL: '#2',\n image: car,\n },\n ];\n\n return (\n <div>\n <div style={{ marginTop: '48px' }} className='wb-grid-container'>\n <div className='wb-grid-row'>\n <MBBeVoContent />\n </div>\n </div>\n {/* <div style={{ marginTop: '72px' }} className='wb-grid-container'>\n <div className='wb-grid-row'>\n <MBBeVoTeaser\n title={teaserContent[0].title}\n subTitle={teaserContent[0].subTitle}\n URL={teaserContent[0].URL}\n image={teaserContent[0].image}\n />\n\n <MBBeVoTeaser\n title={teaserContent[1].title}\n subTitle={teaserContent[1].subTitle}\n URL={teaserContent[1].URL}\n image={teaserContent[1].image}\n />\n </div>\n </div> */}\n </div>\n );\n};\n\nexport default MBBeVoDesc;\n","export default __webpack_public_path__ + \"static/media/truckDesktop.c27ef2de.jpg\";","export default __webpack_public_path__ + \"static/media/e-truck.6dac96b9.jpg\";","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport {initReactI18next} from 'react-i18next';\n\ni18n\n\t.use(LanguageDetector)\n\t.use(initReactI18next)\n\t.init({\n\t\t// we init with resources\n\t\tresources: {\n\t\t\ten: {\n\t\t\t\ttranslations: {\n\t\t\t\t\tDiesel: \"Diesel\",\n\t\t\t\t\telectricTruck: \"eMobility\",\n\t\t\t\t\tCleaner: \"Recommended cleaning products\",\n\t\t\t\t\tClearCareProductsTitle: \"Recommended cleaning \\n and care products\",\n\t\t\t\t\tClearCareProductsDetails: \"Important Information! \\n The products listed here are only suggested for use by Daimler Truck and do not have DTFR specification approval.\\n Our chemical cleaning and care products for Mercedes-Benz Trucks are developed according to our high-quality standards and based on our internal environmental and occupational safety guidelines. \\n Protecting the environment and health is important to us.\",\n\t\t\t\t\tmainPage: {\n\t\t\t\t\t\ttitle: \"Mercedes-Benz Trucks Operating Fluids\",\n\t\t\t\t\t\tdescription: \"Discover all tested and approved operating fluids for Actros, Atego, Arocs, and many other models from Mercedes-Benz Trucks | A service of Daimler Truck AG.\",\n\t\t\t\t\t\tkeywords: \"operating fluids, engine oil, transmission oil, Daimler Truck AG, DTFR number, coolant, e-drive systems, maintenance, transmission oils, approved engine oils, LKW und Bus-Bereich, Trucks, Buses, Actros, Atego, Arocs\",\n\t\t\t\t\t\tauthor: \" Daimler Truck AG\",\n\t\t\t\t\t\trobots: \"index, follow\"\n\t\t\t\t\t\t},\n\t\t\t\t\tcategoryOverview: {\n\t\t\t\t\t\t\ttitle: \"Fluid Categories\",\n\t\t\t\t\t\t\tdescription: \"In addition to common categories like engine oil, transmission oil, and coolant, you will also find other approved products, e.g. for e-drive systems or maintenance.\",\n\t\t\t\t\t\t},\n\t\t\t\t\tMbApprovalLabel: `MB-Approval/MB-Freigabe`,\n\t\t\t\t\tSheetNumber: `Sheet number`,\n\t\t\t\t\tHere: `here`,\n\t\t\t\t\tMailFeedbackPartOne: `Your message has been sent successfully.\n\n You will be redirected to the home page, in `,\n\t\t\t\t\tMailFeedbackPartTwo: ` seconds. \n If you are not automatically redirected, please click `,\n\t\t\t\t\tCookieBarHeader: 'Mercedes-Benz AG uses cookies for various purposes',\n\t\t\t\t\tCookieBarContent:\n\t\t\t\t\t\t'We want to ensure optimum use of our website for you, and also to continually improve our website. You can revoke your voluntary consent at any time. You can find further information and setting options under \"Settings\".',\n\t\t\t\t\tCookieBarDetails: 'Show details',\n\t\t\t\t\tTechnicallyNeccessary: 'Only technically necessary',\n\t\t\t\t\tAnalytics: 'Analysis and statistics',\n\t\t\t\t\tSaveSelected: 'Agree to selected',\n\t\t\t\t\tAgreeToAll: 'Agree to all',\n\t\t\t\t\tWelcomeToSupport: 'Contact',\n\t\t\t\t\tSupportInfo:\n\t\t\t\t\t\t'Do you have any questions or suggestions for improvement related to one of our apps or websites? Our customer support team is ready to help you. Please send us your queries or suggestions and we will ensure that they are actioned correctly.',\n\t\t\t\t\tSupportAsterisk:\n\t\t\t\t\t\t'Please complete all the fields marked with an asterisk (*).',\n\t\t\t\t\tFirstName: 'Your first name*',\n\t\t\t\t\tLastName: 'Your last name*',\n\t\t\t\t\tStreetName: 'Street name',\n\t\t\t\t\tHouseNumber: 'Nr',\n\t\t\t\t\tPostalCode: 'Postal code*',\n\t\t\t\t\tCity: 'City',\n\t\t\t\t\tCountry: 'Country or Region*',\n\t\t\t\t\tEmail: 'Email',\n\t\t\t\t\tMessage: 'Message',\n\t\t\t\t\tSupportPolicy:\n\t\t\t\t\t\t'I agree to my details being transferred and used by the app or website provider, its group of companies and or technical developer for the purpose of answering my query. ',\n\t\t\t\t\tSend: 'Send',\n\t\t\t\t\tTitle: 'Subject',\n\t\t\t\t\tErrorFirstName: 'Please enter a first name',\n\t\t\t\t\tErrorLastName: 'Please enter a last name',\n\t\t\t\t\tErrorEmail: 'Please enter an e-mail address',\n\t\t\t\t\tErrorMessage: 'Please enter a request',\n\t\t\t\t\tErrorTitle: 'Please enter a subject',\n\t\t\t\t\tErrorCountry: 'Please enter a country',\n\t\t\t\t\tErrorPostalCode: 'Please enter a postal code',\n\t\t\t\t\tLastUpdate: 'Last Update: ',\n\t\t\t\t\tChoooseBeVo:\n\t\t\t\t\t\t'Please select the operating fluid that you are interested in:',\n\t\t\t\t\tLink1:\n\t\t\t\t\t\t'https://www.mercedes-benz.com/en/vehicles/service-parts/the-only-oil-with-mercedes-benz-know-how/',\n\t\t\t\t\tLink2:\n\t\t\t\t\t\t'https://www.mercedes-benz.de/passengercars/services-accessories/manuals.html',\n\t\t\t\t\tSearchResultPart1: 'Your search returned',\n\t\t\t\t\tSearchResultPart2: 'results',\n\t\t\t\t\tBackToOverview: '↠Back to the overview',\n\t\t\t\t\tSearchLabel: 'Your search term',\n\t\t\t\t\tProductName: 'Product name',\n\t\t\t\t\tShowMore: 'Show more',\n\t\t\t\t\tShowLess: 'Show less',\n\t\t\t\t\tNoProduct: 'No products available',\n\t\t\t\t\tPrologGearOil: `Gear oil is an important operating fluid for the function and durability of the transmission. Mercedes-Benz-Trucks gear oils are specially developed and tested for use in Mercedes-Bent-Trucks vehicles. Therefore, only gear oils with “DTFR xxxxxx†are recommended for use in Mercedes-Benz-Trucks vehicles. The “DTFR xxxxxx†of the products can be recognised by the indication (f.e. DTFR 13A100) on the package. All products approved by Daimler Truck AG for the respective gear oil specification are listed on the DTFR-Sheets 13xxxx and 12xxxx.\nThe axle and gear oil specifications approved for Mercedes-Benz-Trucks vehicles can be found in the respective owner’s manual and, if applicable, additional in the service information. \n `,\n\t\t\t\t\tPrologFuel: `Fuels produced by highly developed chemical-physical processes using petroleum or renewable sources are energy sources for combustion engines in motor vehicles. These fuels are complex mixtures of compounds made up of carbon, hydrogen, and possibly oxygen with various structures that are adapted to the combustion processes of engines. Their energy density is high compared to other combustible fluids of the same weight. The energy stored is converted into mechanical energy during combustion in the engine.\nViewed globally, there is an extremely varying range of quality. Fuel quality plays a key role in a vehicle’s performance and exhaust gas emissions. Consequently, fuel quality should be adequately harmonized with a vehicle’s requirements. To achieve these goals, the global automotive industry has created the \"World Wide Fuel Charter\" (\"WWFC\"), which defines suitable target specifications for fuel properties with respect to the various exhaust gas and CO2 requirements. The WWFC is revised and adapted to the latest technology at regular intervals. The market quality of the fuels is usually defined by national standards.\n\n<strong>Spark-Ignition Engine Fuel – Gasoline</strong> \nThe term “gasoline†is normally used to describe the lighter crude oil fractions that are separated from the heavy fractions during the refining process. From a chemical perspective, gasoline consists of organic molecules within a certain boiling range (~40–200 °C). These molecules mainly consist of carbon and hydrogen atoms. Crude oil also contains sulfur, which needs to be reduced or removed to produce gasoline that will not damage the engine or other vehicle technologies. The ignition of spark-ignition engine fuels is realized via an external ignition source (e.g. spark plug).\nThe main classification of gasoline takes place based on knock resistance, which is represented using a research and motor octane number. Typical examples of these specifications are RON 95 and RON 98. However, in European and other markets, ethanol content with respect to vehicle compatibility is also an important parameter in addition to knock resistance. Details of fuels suitable for your vehicle can be found in the operator’s manual and on the inside of the fuel filler flap.\n\n<strong>Diesel Fuel</strong> \n“Diesel fuel†is usually referred to as the middle distillate crude oil fraction that is separated from lighter and heavier fractions during the refining process. From a chemical perspective, diesel fuel consists of organic molecules within a certain boiling range (~160–350 °C). These molecules mainly consist of carbon and hydrogen atoms. Certain straight-chain molecules require modification for specific cooling properties. Crude oil also contains sulfur, which needs to be reduced or removed to produce diesel that will not damage the engine or other vehicle technologies. In Europe, the maximum volume of bio diesel permitted in diesel fuel is 7%. Details of fuels suitable for your vehicle can be found in the operator’s manual and on the inside of the fuel filler flap.\n\n<strong>Paraffinic Diesel Fuels</strong> \nParaffinic fuels are made almost entirely from alkanes and are therefore free from aromatics and sulfur. In addition to linear and branched alkanes, some fuels also contain cycloalkanes. The properties of paraffinic fuels differ from those of regular diesel fuel because of their chemical composition. The main differences between paraffinic diesel fuels and conventional diesel fuels are their higher cetane number and lower density. Details of fuels suitable for your vehicle can be found in the operator’s manual and on the inside of the fuel filler flap.\n\n<strong>Fuel Additives and Secondary Additives</strong> \nDue to the high demands placed on fuels, it is necessary to optimize certain properties of basic fuels. Additives can provide additional properties to fuels while also accentuating or reducing existing properties. Additives are fuel-soluble compounds of a predominantly organic-chemical nature. The correct selection, application, and metering of these additives requires in-depth investigations in laboratories, on test stands, and in vehicles as to optimally adapt the effect the additives have on the respective fuel, ensure additives are harmonized with each other, and that there are no negative side effects. Because the consumer does not usually possess the necessary prerequisites for this, a fuel additive can be commissioned only by the fuel manufacturer. \nNevertheless, fuel additives are constantly offered to drivers, some of which promise significant improvements such as improved engine performance with lower fuel consumption. For the sake of clarity, we refer to these additives as “secondary additives.†Since standardized and adequate fuel quality can be expected in most cases, secondary additives are generally not required in our automotive engines. It must be ensured that only the fuel quality specified by us is used in each case. In contrast, the use of secondary additives is generally only an additional cost that in the worst case may lead to lasting damage. Additional additives may be required in certain markets where poor fuel quality is the norm. In this special case, only additives that have been tested and approved by Mercedes-Benz-Trucks specialist workshops are recommended. The instructions and mixing ratios indicated on the container must be observed. \nThe application of secondary additives without Mercedes-Benz-Trucks approval is strongly discouraged. Because their use may negatively affect the warranty of both the vehicle manufacturer and the fuel supplier, this is always to be carried out under the responsibility of the vehicle operator.`,\n\t\t\t\t\tPrologCoolant: `Coolants:\n- ensure material compatibility\n- enable optimal heat dissipation\n- protect against corrosion\nThe corrosion/antifreeze or coolants approved in the specifications for operating fluids meet the demanding Mercedes-Benz-Trucks specifications. This ensures excellent operation of the cooling systems under the vehicle-specific loads.\nIt is not only the choice of coolant that is decisive, but also maintaining the optimal water quality and mixing concentration between concentrate and water during operation: too much additive package is just as unhelpful as is too much water.\nDTFR-Sheet 29A100 contains general information on the correct handling of coolants.\nDTFR-Sheet 29A110 lists all products approved by Mercedes-Benz-Trucks for the respective application.\n`,\n\t\t\t\t\tPrologAdBlue: `Nox reducing agent AUS 32 (“AdBlueâ€) for SCR systems\nApproved Nox reducing agent AUS 32 (“AdBlueâ€)\nBB00.40-P-0352-01A\nFor diesel engines, the technology of direct injection of the diesel fuel has virtually become the standard. The very demanding exhaust emission legislation necessitates exhaust gas aftertreatment for diesel engines. \nFor example, oxidation catalysts are common in numerous modern passenger car diesel engines today. Compliance with the latest exhaust emission regulations for passenger cars and light commercial vehicles will require the use of further exhaust aftertreatment systems, at least for the heavier vehicles in this category. Several different systems for reducing NOx emissions are being developed or are already in use. For heavy-duty commercial vehicles, a system for reducing nitrogen oxide emissions with higher selectivity, a NOx catalytic converter with urea as the reducing agent is used. This is a selective catalytic NOx reduction in the presence of ammonia.\n\nVia an upstream reaction stage, the urea-water solution introduced into the exhaust tract is first converted into ammonia. In the following catalytic reduction, the NOx is largely decomposed to nitrogen and water in the presence of ammonia. The urea-SCR process for the exhaust gas aftertreatment is state of the art. A detailed quality description of the reducing agent is the basis for a nationwide, manufacturer-independent introduction of this technology and is necessary to ensure the long-term activity of the exhaust gas aftertreatment system. The requirements on the reducing agent are published in the form of the standards DIN 70070 (requirements) and DIN V 70071 (test methods).\n\nStandardisation at the international level has been completed and can be found in the International Standard ISO 22241. For Mercedes-Benz-Trucks vehicles, an urea-water solution in accordance with the requirements of ISO 22241 must be used. In Europe, the brand name \"AdBlue®\" is often used for this quality. If qualities outside the specification are used, damage to the Bluetec system cannot be ruled out.\n `,\n\t\t\t\t\tPrologMotorOil: `Engine oil is an operating fluid important for the function and longevity of the engine. Therefore, only engine oils with “DTFR xxxxxx†are recommended for use in Mercedes-Benz-Trucks vehicles. DTFR xxxxxx of products can be found on the product packaging \"DTFR xxxxxx\" (e.g. DTFR 15B120). DTFR 15A100 list the particular engine oil specifications for all Mercedes-Benz-Trucks approved products.\nEngine oil specifications approved for Mercedes-Benz-Trucks vehicles and engines can be found in the respective vehicle operator’s manual, and, if necessary, in the supplementary service information. \nThe recommended SAE viscosity class according to application region can be found on DTFR 15A110.`,\n\t\t\t\t\tPrologEdac: `The following product list is intended to help you select the correct operating fluid for your Mercedes-Benz Trucks & Buses vehicle/unit from the wide variety available on the market.\n\t\t\t\t\t\n\t\t\t\t\t\t'We recommend to only use the products listed below which have been tested and approved by Daimler Truck.\n\t\t\t\t\t\t\n\t\t\t\t\t\t'The high-voltage air compressor is an oil-lubricated unit. This oil is used for lubrication, heat absorption and dissipation, as well as sealing of various internal functional surfaces and processes. Therefore, an oil change should be performed on the high-voltage air compressor as part of the service.`,\n\t\t\t\t\tCookieUse: `Daimler Truck AG uses cookies for various purposes`,\n\t\t\t\t\tPrologHydrogen: `Supplying fuel cell vehicles with a specified hydrogen quality is a prerequisite for a long service life of the fuel cell system.\n \nStandardization at international level is therefore necessary and can be found in the international standard ISO 14687. For Mercedes-Benz Trucks vehicles, a hydrogen quality in accordance with the requirements of ISO 14687 must be used. If qualities outside the specification are used, damage to the fuel cell system cannot be ruled out.\nThe quality of the hydrogen at the dispenser for Class D hydrogen (ISO 14687 Chapter 5) must meet the requirements described therein. The fuel specifications are not process-dependent or raw material-specific.\nThe ISO 14687 standard (Appendix A) describes, among other things, the effects of various impurities (such as inert gases, carbon monoxide and dioxide, methane, ammonia, sulphur compounds, particles, etc.) on the fuel cell stacks/components.`,\n\t\t\t\t\tIntroductionContent: `This website is a platform for publishing Mercedes-Benz-Trucks tested and approved operating fluids for your vehicles and major assemblies. We recommend exclusively using products that have been tested and approved by Daimler Truck AG as:\n· components and operating fluids are tailored to one another,\n· damages that occur due to the usage of unsuited operating fluids are not covered by the warranty.\nApproval by Mercedes-Benz-Trucks is clearly marked on the product packaging: e.g.: \"DTFR 15C110\" or \"DTFR 15C110\"\nThe website always shows the latest specifications for operating fluids and the relevant approvals for products on the market.\n\nYou can find the specifications for operating fluids relevant to your vehicle/ major assembly in the online Owner's Manual.`,\n\t\t\t\t\tSheet: `DTFR-Sheet`,\n\t\t\t\t\tProductApproval: 'Product is approved',\n\t\t\t\t\tProductNotApproved: 'Product is not approved',\n\t\t\t\t\tDescription: `Description`,\n\t\t\t\t\tPrincipal: `Company`,\n\t\t\t\t\tInterested: `You might also be interested in:`,\n\t\t\t\t\tTopCategories: `Our top categories`,\n\t\t\t\t\tBrakeFluid: `Brake Fluid`,\n\t\t\t\t\tInfo: `Informations to Specification for Operating Fluids`,\n\t\t\t\t\tEngineOil: `Engine Oil`,\n\t\t\t\t\tNewAvailable: `Now also in Portuguese!`,\n\t\t\t\t\tFuel: `Fuel`,\n\t\t\t\t\tGearOil: `Gear Oil`,\n\t\t\t\t\tGrease: `Grease`,\n\t\t\t\t\tHydraulicFluid: `Hydraulic Fluid`,\n\t\t\t\t\tPreservationAgent: `Preservation Agent`,\n\t\t\t\t\tRefrigeratorOil: `Refrigerator Oil`,\n\t\t\t\t\tSteeringGearOil: `Steering Gear Oil`,\n\t\t\t\t\tAdBlue: `NOx Reducing Agent`,\n\t\t\t\t\tCoolant: `Coolant`,\n\t\t\t\t\tRefrigerant: `Refrigerant`,\n\t\t\t\t\tWindshield: `Windshield Washer Fluid Concentrate`,\n\t\t\t\t\tReservedRights: `© ${new Date().getFullYear()}. Daimler Truck AG. All rights reserved`,\n\t\t\t\t\tPrivacyStatement: `Privacy Statement`,\n\t\t\t\t\tCookies: `Cookies`,\n\t\t\t\t\tCategory: `Category`,\n\t\t\t\t\tLegalNotice: `Legal Notice`,\n\t\t\t\t\tSettings: `Settings`,\n\t\t\t\t\tCategories: `Categories`,\n\t\t\t\t\tGetriebeöl: `Gear Oil`,\n\t\t\t\t\tMotoröl: `Motor Oil`,\n\t\t\t\t\tBremsflüssigkeit: `Brake Fluid`,\n\t\t\t\t\tKraftstoff: `Fuel`,\n\t\t\t\t\tFett: `Grease`,\n\t\t\t\t\tHydrauliköl: `Hydraulic Fluid`,\n\t\t\t\t\tKonservierungsmittel: `Preservation Agent`,\n\t\t\t\t\tKompressoröl: `Refrigerator Oil`,\n\t\t\t\t\tLenkgetriebeöl: `Stearing Gear Oil`,\n\t\t\t\t\tFrostschutz: `Coolant`,\n\t\t\t\t\tKältemittel: `Refrigerant`,\n\t\t\t\t\t\"E-Drive\": `E-Drive`,\n\t\t\t\t\t\"E-Engine-Oil\": `E-Motor-Oil`,\n\t\t\t\t\t\"E-Motor-Oil\": `E-Motor-Oil`,\n\t\t\t\t\t\"edAC-Oil\": \"edAC-Oil\",\n\t\t\t\t\t\"Axle-Oil\": \"Axle Oil\",\n\t\t\t\t\tOilFinder: `Oil finder`,\n\t\t\t\t\tProvider: `Provider`,\n\t\t\t\t\tMappingOverview: `DTFR Overview`,\n\t\t\t\t\tContact: `Contact`,\n\t\t\t\t\tLearnMore: `Learn more`,\n\t\t\t\t\tMbOgOil: `Mercedes-Benz original motor oil`,\n\t\t\t\t\tMbChoice: `If your Mercedes has the choice:`,\n\t\t\t\t\tOperatingInstructions: `Online Owner's Manual`,\n\t\t\t\t\tOperatingInstructionsContent: `You can find the Specifications for Operating Fluids relevant to your vehicle/ major assembly in the online Owner's Manual.`,\n\t\t\t\t\tContactUrl: `https://www.mbcac.net/go/appsupport/Contact.aspx?app=Mercedes-Benz%20BeVo&lang=en-EN`,\n\t\t\t\t\tType30: '30',\n\t\t\t\t\tType40: '40',\n\t\t\t\t\tType50: '50',\n\t\t\t\t\tType80: '80',\n\t\t\t\t\tType90: '90',\n\t\t\t\t\tType0W: '0W',\n\t\t\t\t\tType0W20: '0W-20',\n\t\t\t\t\tType0W30: '0W-30',\n\t\t\t\t\tType0W40: '0W-40',\n\t\t\t\t\tType5W30: '5W-30',\n\t\t\t\t\tType5W40: '5W-40',\n\t\t\t\t\tType5W50: '5W-50',\n\t\t\t\t\tType10W: '10W',\n\t\t\t\t\tType10W30: '10W-30',\n\t\t\t\t\tType10W40: '10W-40',\n\t\t\t\t\tType20W20: '20W-20',\n\t\t\t\t\tType20W50: '20W-50',\n\t\t\t\t\tType75W: '75W',\n\t\t\t\t\tType75W80: '75W-80',\n\t\t\t\t\tType75W85: '75W-85',\n\t\t\t\t\tType75W90: '75W-90',\n\t\t\t\t\tType80W: '80W',\n\t\t\t\t\tType80W90: '80W-90',\n\t\t\t\t\tType80W85: '80W-85',\n\t\t\t\t\tType85W90: '85W-90',\n\t\t\t\t\tModelHeaderText: '',\n\t\t\t\t},\n\t\t\t},\n\t\t\tde: {\n\t\t\t\ttranslations: {\n\t\t\t\t\tDiesel: \"Diesel\",\n\t\t\t\t\telectricTruck: \"eMobilität\",\n\t\t\t\t\tCleaner: \"Empfohlene Reinigungsmittel\",\n\t\t\t\t\tClearCareProductsTitle: \"Empfohlene Reinigungsmittel \\n und Pflegeprodukte\",\n\t\t\t\t\tClearCareProductsDetails: \"Wichtige Information!\\n Die hier aufgeführten Produkte dienen lediglich als Verwendungsvorschlag seitens Daimler Truck und besitzen keine DTFR-Spezifikationsfreigabe.\\n Unsere chemischen Reinigungs- und Pflegeprodukte für Mercedes-Benz Trucks werden gemäß unseren hohen Qualitätsansprüchen wie auch auf Grundlage unserer internen Umwelt- und Arbeitsschutzvorgabenentwickelt. \\n Denn der Schutz von Umwelt und Gesundheit ist uns wichtig.\",\n\t\t\t\t\tmainPage: {\n\t\t\t\t\t\ttitle: \"Mercedes-Benz Trucks Betriebsstoff-Vorschriften\",\n\t\t\t\t\t\tdescription: \"Entdecke alle geprüften und freigegebenen Betriebsstoffe für Actros, Atego, Arocs und viele weitere Modelle von Mercedes-Benz Trucks | Ein Service der Daimler Truck AG.\",\n\t\t\t\t\t\tkeywords: \"Betriebsstoffe, Motoröl, Getriebeöl, Daimler Truck AG, DTFR-Nummer, Kühlmittel, eAntriebssysteme, Instandhaltung, Getriebeöle, freigegebenen Motoröle, LKW und Bus-Bereich, LKW, Bus, Actros, Atego, Arocs, Bereich\",\n\t\t\t\t\t\tauthor: \" Daimler Truck AG\",\n\t\t\t\t\t\trobots: \"index, follow\"\n\t\t\t\t\t\t},\n\t\t\t\t\tcategoryOverview: {\n\t\t\t\t\t\t\ttitle: \"Betriebsflüssigkeit Kategorien\",\n\t\t\t\t\t\t\tdescription: \"Neben klassischen Kategorien wie Motoröl, Getriebeöl und Kühlmittel finden sie auch weitere freigegebene Produkte z.B. für eAntriebssysteme oder Instandhaltung Motoröl.\",\n\t\t\t\t\t\t},\n\t\t\t\t\tMbApprovalLabel: `MB-Freigabe/MB-Approval`,\n\t\t\t\t\tHere: `hier`,\n\t\t\t\t\tMailFeedbackPartOne: `Ihre Nachricht wurde erfolgreich versendet.\n\n Sie werden auf die Startseite weitergeleitet, in `,\n\t\t \t\t\tNewAvailable: `Jetzt auch auf Portugiesisch!`,\n\t\t\t\t\tMailFeedbackPartTwo: ` Sekunden. \n Werden Sie nicht automatisch weitergeleitet, klicken Sie bitte `,\n\t\t\t\t\tCookieBarHeader:\n\t\t\t\t\t\t'Die Mercedes-Benz AG nutzt Cookies für verschiedene Zwecke',\n\t\t\t\t\tCookieBarContent:\n\t\t\t\t\t\t'Damit möchten wir Ihnen die bestmögliche Nutzung unserer Webseite ermöglichen, sowie unsere Webseite fortlaufend verbessern. Sie können Ihre freiwillige Zustimmung jederzeit widerrufen. Weitere Informationen und Einstellungsmöglichkeiten finden Sie unter „Einstellungen“.',\n\t\t\t\t\tCookieBarDetails: 'Details einblenden',\n\t\t\t\t\tTechnicallyNeccessary: 'Technisch erforderlich',\n\t\t\t\t\tAnalytics: 'Analyse und Statistik',\n\t\t\t\t\tSaveSelected: 'Einstellungen speichern',\n\t\t\t\t\tAgreeToAll: 'Allem zustimmen',\n\t\t\t\t\tWelcomeToSupport: 'Kontakt',\n\t\t\t\t\tSheetNumber: `Blattnummer`,\n\t\t\t\t\tProductAllowerdText: `Produkt ist freigegeben`,\n\t\t\t\t\tModelHeaderText: '',\n\t\t\t\t\tSupportInfo:\n\t\t\t\t\t\t'Haben Sie eine Frage oder einen Verbesserungsvorschlag bezüglich einer unserer Apps oder Webseiten? Unsere Kundenbetreuung steht Ihnen zur Verfügung. Bitte teilen Sie uns Ihr Anliegen mit, wir kümmern uns dann um die zügige Weiterleitung an den zuständigen Anbieter der Daimler AG. Als Tochterunternehmen der Daimler AG kümmert sich das Customer Assistance Center in Maastricht um die professionelle Bearbeitung aller Anfragen.',\n\t\t\t\t\tSupportAsterisk:\n\t\t\t\t\t\t'Um Ihnen schnell und effektiv behilflich sein zu können, bitten wir Sie alle mit * gekennzeichnete Felder auf jeden Fall auszufüllen.',\n\t\t\t\t\tFirstName: 'Vorname*',\n\t\t\t\t\tLastName: 'Nachname*',\n\t\t\t\t\tStreetName: 'Straße',\n\t\t\t\t\tHouseNumber: 'Nr',\n\t\t\t\t\tPostalCode: 'PLZ',\n\t\t\t\t\tCity: 'Ort',\n\t\t\t\t\tCountry: 'Land',\n\t\t\t\t\tEmail: 'E-Mail',\n\t\t\t\t\tMessage: 'Mitteilung',\n\t\t\t\t\tSupportPolicy:\n\t\t\t\t\t\t'Ich bin damit einverstanden, dass die im Kontaktformular angegebenen Daten zum Zweck der Beantwortung meiner Anfrage an den in der App oder an den auf der Website genannten Anbieter und soweit erforderlich auch an den jeweiligen technischen Entwickler übermittelt werden. ',\n\t\t\t\t\tSend: 'Versenden',\n\t\t\t\t\tTitle: 'Betreff',\n\t\t\t\t\tErrorFirstName: 'Bitte Vornamen eingeben',\n\t\t\t\t\tErrorLastName: 'Bitte Nachnamen eingeben',\n\t\t\t\t\tErrorEmail: 'Bitte geben Sie hier Ihre E-Mailadresse an',\n\t\t\t\t\tErrorMessage: 'Bitte Feld ausfüllen',\n\t\t\t\t\tErrorTitle: 'Bitte Betreff eingeben',\n\t\t\t\t\tErrorCountry: 'Please enter a country',\n\t\t\t\t\tErrorPostalCode: 'Please enter a postal code',\n\t\t\t\t\tLastUpdate: 'Stand: ',\n\t\t\t\t\tChoooseBeVo: 'Bitte wählen Sie nachfolgend einen Betriebsstoff aus:',\n\t\t\t\t\tLink1:\n\t\t\t\t\t\t'https://www.mercedes-benz.com/de/fahrzeuge/service-teile/das-einzige-oel-mit-mercedes-benz-know-how/',\n\t\t\t\t\tLink2:\n\t\t\t\t\t\t'https://www.mercedes-benz.de/passengercars/services-accessories/manuals.html',\n\t\t\t\t\tSearchResultPart1: 'Ihre Suche ergab',\n\t\t\t\t\tSearchResultPart2: 'Ergebnisse',\n\t\t\t\t\tBackToOverview: '↠Zurück zur Ãœbersicht',\n\t\t\t\t\tSearchLabel: 'Ihr Suchbegriff',\n\t\t\t\t\tPrologGearOil: `Das Getriebeöl ist ein für die Funktion und Langlebigkeit des Getriebes wichtiger Betriebsstoff. Die Mercedes-Benz-Trucks Getriebeöle werden eigens für den Einsatz in Mercedes-Benz-Trucks Fahrzeugen entwickelt und erprobt. Daher empfehlen wir für die die Verwendung in Mercedes-Benz-Trucks Fahrzeugen ausschließlich nur Öle mit „DTFR xxxxxx“. Die „DTFR xxxxxx“ von Produkten ist über die Angabe (z.B. DTFR 13A100) auf dem Gebinde erkenntlich. Auf den DTFR-Blättern 13xxxx und 12xxxx sind alle für die jeweilige Getriebeölspezifikation der von der Daimler Truck AG freigegebenen Produkte gelistet.\nDie für Mercedes-Benz-Trucks Fahrzeuge freigegebenen Achs- und Getriebeölspezifikationen können der jeweiligen Fahrzeug-Betriebsanleitung und ggf. ergänzenden Service-Informationen entnommen werden.`,\n\t\t\t\t\tProductName: 'Produktname',\n\t\t\t\t\tShowMore: 'Mehr anzeigen',\n\t\t\t\t\tShowLess: 'Weniger anzeigen',\n\t\t\t\t\tNoProduct: 'Leider keine Produkte verfügbar',\n\t\t\t\t\tPrologFuel: `Energiequellen für die Verbrennungsmotoren in Kraftfahrzeugen sind Kraftstoffe, die durch hoch entwickelte chemisch-physikalische Verfahren aus Erdöl oder erneuerbaren Quellen hergestellt werden. Diese Kraftstoffe sind komplexe Gemische unterschiedlich aufgebauter Verbindungen bestehend aus Kohlenstoff, Wasserstoff und eventuell Sauerstoff und auf die Verbrennungsverfahren der Motoren abgestimmt. Bezogen auf gleiches Gewicht besitzen sie im Vergleich zu anderen brennbaren Flüssigkeiten eine große Energiedichte. Die gespeicherte Energie wird während der Verbrennung im Motor in mechanische Energie umgewandelt.\nWeltweit gesehen gibt es eine große Qualitätsspanne. Die Qualität des Kraftstoffs spielt für die Performance und die Abgasemissionen der Fahrzeuge eine entscheidende Rolle. Konsequenterweise sollte die Kraftstoffqualität entsprechend der Fahrzeuganforderungen auf einem angemessenen Niveau harmonisiert werden. Um diese Ziele zu erreichen, wurde seitens der weltweiten Automobilindustrie die \"World Wide Fuel Charter\" (\"WWFC\") geschaffen, die geeignete Zielvorstellungen von Kraftstoffeigenschaften für die verschiedenen Abgas- und CO2-Anforderungen definiert. Die WWFC wird in regelmäßigen Abständen überarbeitet und dem neuesten Stand der Technik angepasst. Die Marktqualität der Kraftstoffe wird üblicherweise durch nationale Normen festgelegt.\n\n<strong>Ottokraftstoff - Benzin</strong>\nFür gewöhnlich werden mit dem Begriff „Benzin“ die leichteren Rohölfraktionen beschrieben, die während des Raffinerieprozesses von den schweren Fraktionen getrennt werden. Chemisch betrachtet besteht die Flüssigkeit aus organischen Molekülen die innerhalb eines bestimmten Siedebereichs (~40-200 °C) liegen. Diese Moleküle bestehen vornehmlich aus Kohlenstoff- und Wasserstoffatomen. Im Rohöl ist auch Schwefel enthalten, welcher reduziert oder entfernt werden muss, um Benzin herzustellen, das weder Motor noch andere Fahrzeugtechnologien schädigen kann. Die Zündung von Ottokraftstoffen erfolgt durch eine externe Zündquelle (z. B. Zündkerze).\nDie Hauptklassifizierung von Benzin erfolgt anhand der Klopffestigkeit, welche durch die Research- und Motor-Oktanzahl beschrieben wird. Typische Angaben sind zum Beispiel: ROZ 95 und ROZ 98. Im europäischen Markt aber auch in anderen Märkten ist neben der Klopffestigkeit auch der Ethanolgehalt aufgrund der Fahrzeugkompatibilität ein wichtiger Parameter. Details zu den geeigneten Kraftstoffen für ihr Fahrzeug finden Sie in der Betriebsanleitung und auf der Innenseite der Tankklappe.\n\n<strong>Dieselkraftstoff</strong>\nDieselkraftstoff wird für gewöhnlich als die Mitteldestillat-Fraktion des Rohöls bezeichnet, die während des Raffinerieprozesses von den leichteren und schwereren Fraktionen getrennt werden. Chemisch betrachtet besteht die Flüssigkeit aus organischen Molekülen die innerhalb eines bestimmten Siedebereichs (~160-350 °C) liegen. Diese Moleküle bestehen vornehmlich aus Kohlenstoff- und Wasserstoffatomen. Für spezifische Kälteeigenschaften benötigen bestimmte geradkettige Moleküle eine Modifikation. Im Rohöl ist auch Schwefel enthalten, welcher reduziert oder entfernt werden muss, um Diesel herzustellen, welcher weder Motor noch andere Fahrzeugtechnologien schädigen kann. In Europa darf der Dieselkraftstoff bis zu 7 Vol. % Biodiesel enthalten. Details zu den geeigneten Kraftstoffen für ihr Fahrzeug finden Sie in der Betriebsanleitung und auf der Innenseite der Tankklappe.\n\n<strong>Paraffinische Dieselkraftstoffe</strong>\nParaffinische Kraftstoffe bestehen nahezu vollständig aus Alkanen und sind folglich frei von Aromaten und Schwefel. Neben linearen und verzweigten Alkanen sind teilweise auch Cycloalkane enthalten. Bedingt durch die chemische Zusammensetzung unterscheiden sich die Eigenschaften paraffinischer Kraftstoffe von denen des regulären Dieselkraftstoffs. Die Hauptunterschiede paraffinischer Dieselkraftstoffe zu konventionellen Dieselkraftstoffen stellen die höhere Cetanzahl und die niedrigere Dichte dar. Details zu den geeigneten Kraftstoffen für ihr Fahrzeug finden Sie in der Betriebsanleitung und auf der Innenseite der Tankklappe.\n\n<strong>Kraftstoffadditive und Sekundärzusätze</strong>\nDurch die hohen Anforderungen, die an Kraftstoffe gestellt werden, ist es notwendig bestimmte Eigenschaften der Grundkraftstoffe zu optimieren. Additive können den Kraftstoffen zusätzliche Eigenschaften verleihen oder vorhandene Eigenschaften hervorheben oder abschwächen. Bei Additiven handelt es sich um kraftstofflösliche Verbindungen überwiegend organisch-chemischer Natur.\nDie richtige Auswahl, Anwendung und Dosierung solcher Additive setzen eingehende Untersuchungen im Labor, auf Prüfständen und in Fahrzeugen voraus, damit die Wirkung der Additive dem jeweiligen Kraftstoff optimal angepasst ist, die Zusätze aufeinander abgestimmt sind und keine negativen Nebeneffekte bewirkt werden. Da dem Verbraucher in der Regel die erforderlichen Voraussetzungen hierzu fehlen, kann die Kraftstoffadditivierung ausschließlich Aufgabe der Kraftstoffhersteller sein.\n\nDem Fahrer werden jedoch immer wieder Kraftstoff-Additive angeboten, die teilweise große Erfolge, wie z. B. höhere Motorleistung bei niedrigerem Kraftstoffverbrauch, versprechen. Diese Zusätze werden von uns, der besseren Unterscheidung wegen, als Sekundärzusätze bezeichnet. Bei unseren Fahrzeugmotoren sind Sekundärzusätze im Allgemeinen nicht erforderlich, da in den meisten Fällen mit gleichmäßigen und ausreichenden Kraftstoffqualitäten gerechnet werden kann. Es ist darauf zu achten, dass nur die jeweils von uns vorgeschriebene Kraftstoffqualität verwendet wird. Der Einsatz von Sekundärzusätzen ist dagegen im Allgemeinen nur eine zusätzliche, nicht erforderliche Kostenbelastung und kann im schlimmsten Fall zu nachhaltigen Schäden führen. In einzelnen Märkten mit schlechter Kraftstoffqualität kann eine zusätzliche Additivierung erforderlich sein. In diesem Sonderfall werden für Mercedes-Benz-Trucks Fahrzeuge erprobte und freigegebene Additive von den Mercedes-Benz-\nTrucks Fachwerkstätten empfohlen. Die auf dem Behälter angegebenen Hinweise und Mischungsverhältnisse sind zwingend zu beachten.\nVon der Anwendung von Sekundärzusätzen ohne DTFR Freigabe ist dringend abzuraten. Sie erfolgt immer in eigener Verantwortung des Fahrzeugbetreibers, da deren Verwendung die Gewährleistung sowohl des Fahrzeugherstellers- als auch des Kraftstofflieferanten beeinträchtigen kann.`,\n\t\t\t\t\tCookieUse: `Die Daimler Truck AG nutzt Cookies für verschiedene Zwecke`,\n\t\t\t\t\tPrologAdBlue: `NOx-Reduktionsmittel AUS 32 (\"AdBlue\") für SCR-Anlagen\nFreigegebene NOx-Reduktionsmittel AUS 32(\"AdBlue\")\nBB00.40-P-0352-01A\nBei Dieselmotoren hat sich die Technik der Direkteinspritzung des Dieselkraftstoffs nahezu zum Standard entwickelt. Die sehr anspruchsvolle Abgasgesetzgebung macht bei Dieselmotoren eine Abgasnachbehandlung erforderlich. So sind bei zahlreichen modernen PKW-Dieselmotoren heute Oxidationskatalysatoren üblich. Die Einhaltung der neuesten Abgasvorschriften für Personenkraftwagen und leichte Nutzfahrzeuge wird zumindest für die schwereren Fahrzeuge dieser Kategorie den Einsatz weiterer Abgasnachbehandlungssysteme erforderlich machen. Zur Verringerung der NOx-Emission ist eine Reihe von unterschiedlichen Systemen in der Entwicklung bzw. bereits im Einsatz. Bei schweren Nutzfahrzeugen wird als ein System zur Verringerung der Stickoxidemission mit höherer Selektivität der Nox-Katalysator mit Harnstoff als Reduktionsmittel eingesetzt. Hierbei handelt es sich um eine selektive katalytische Nox-Reduktion in Gegenwart von Ammoniak.\nÃœber eine vorgelagerte Reaktionsstufe wird die in den Abgastrakt eingebrachte Harnstoff-Wasserlösung zunächst in Ammoniak überführt. Bei der folgenden katalytischen Reduktion wird das Nox in Gegenwart von Ammoniak weitgehend zu Stickstoff und Wasser zersetzt. Das Harnstoff-SCR-Verfahren für die Abgasnachbehandlung ist Stand der Technik. Eine detaillierte Qualitätsbeschreibung des Reduktionsmittels ist Grundlage für eine flächendeckende, herstellerunabhängige Einführung dieser Technik und erforderlich zur Sicherung der Daueraktivität der Abgasnachbehandlungsanlage. Die Anforderungen für das Reduktionsmittel ist in Gestalt der Normen DIN 70070 (Anforderungen) und DIN V 70071 (Prüfverfahren) veröffentlicht.\nEine Normung auf internationaler Ebene ist abgeschlossen und findet sich in dem Internationalen Standard ISO 22241. Für Mercedes-Benz-Trucks Fahrzeuge ist eine Harnstoffwasserlösung nach den Anforderungen der ISO 22241 einzusetzen. In Europa wird der Markenname \"AdBlue®\" für diese Qualität häufig verwendet. Bei Verwendung von Qualitäten außerhalb der Spezifikation können Schäden am Bluetec System nicht ausgeschlossen werden.`,\n\t\t\t\t\tPrologCoolant: `Korrosions-Frostschutzmittel: \n- gewährleisten Werkstoffverträglichkeit \n- ermöglichen optimale Wärmeabfuhr \n- schützen vor Korrosion \nDie freigegebenen Korrosions-/Frostschutzmittel bzw. Kühlmittel erfüllen die anspruchsvollen Mercedes-Benz-Trucks Spezifikationen. Ein hervorragender Betrieb der Kühlsysteme unter den fahrzeugspezifischen Belastungen ist dadurch gewährleistet. \nEntscheidend ist nicht nur die Wahl des Kühlmittels, sondern auch die Einhaltung der optimalen Wasserqualität und Mischungskonzentration zwischen Konzentrat- und Wasseranteilen während des Betriebs: zu viel Additivpaket hilft so wenig wie zu viel Wasser. \nIm DTFR Blatt 29A100 befinden sich allgemeine Informationen für den korrekten Umgang der Kühlmittel. \nIm DTFR Blatt 29A110 sind alle für die jeweiligen Anwendungen freigegebenen Produkten gelistet.\n`,\n\t\t\t\t\tPrologMotorOil: `Das Motoröl ist ein für die Funktion und Langlebigkeit des Motors wichtiger Betriebsstoff. Daher wird für die Verwendung in Mercedes-Benz-Trucks Fahrzeugen ausschließlich Motoröle mit DTFR xxxxxx empfohlen. Die DTFR xxxxxx von Produkten ist über die Angabe auf dem Gebinde „DTFR xxxxxx“ (z.B. DTFR 15B120) erkenntlich. In der DTFR 15A100 sind alle für die jeweilige Motorölspezifikation der von der Daimler Truck AG freigegebenen Produkte gelistet.\nDie für Mercedes-Benz-Trucks Fahrzeuge und -motoren freigegebenen Motorölspezifikationen können der jeweiligen Fahrzeug-Betriebsanleitung und ggf. ergänzenden Service-Informationen entnommen werden. \nDie abhängig von der Anwendungsregion empfohlene SAE Viskositätsklasse kann dem DTFR 15A110 entnommen werden.`,\n\t\t\t\t\tPrologEdac: `Die nachfolgende Produktliste soll Ihnen helfen, den richtigen Betriebsstoff für Ihr Mercedes-Benz Trucks & Buses Fahrzeug/ Aggregat aus der Marktvielfalt auszuwählen.\n\t\t\t\t\t\nWir empfehlen, ausschließlich die in der nachfolgenden Liste aufgeführten, von Daimler Truck geprüften und freigegebenen, Produkte zu verwenden.\n\nDer Hochvolt-Luftpresser ist ein öl-geschmiertes Aggregat. Dieses Öl dient zu Schmierung, Wärmeaufnahme und Abführung, sowie Dichtung verschiedenster, interner Funktionsflächen und Prozesse. Daher sollte im Rahmen des Service ein Ölwechsel am Hochvolt-Luftpresser vorgenommen werden.\n\t\t\t\t\t`,\n\t\t\t\t\tPrologHydrogen: `Eine Versorgung der Brennstoffzellenfahrzeuge mit einer vorgegebenen Wasserstoffqualität ist Voraussetzung für eine hohe Lebensdauer des Brennstoffzellensystems.\n\nEine Normung auf internationaler Ebene ist somit erforderlich und findet sich in dem Internationalen Standard ISO 14687. Für Mercedes-Benz-Trucks Fahrzeuge ist eine Wasserstoffqualität nach den Anforderungen der ISO 14687 einzusetzen. Bei Verwendung von Qualitäten außerhalb der Spezifikation können Schäden am Brennstoffzellensystem nicht ausgeschlossen werden.\nDie Qualität des Wasserstoffs an der Zapfsäule für Wasserstoff der KlasseD (ISO 14687 Kapitel 5) muss den darin beschriebenen Anforderungen entsprechen. Die Kraftstoffspezifikationen sind nicht prozessabhängig oder rohstoffspezifisch.\nIn der Norm ISO 14687 (Anhang A) werden u.a. die Auswirkungen von verschiedensten Verunreinigungen (wie z.B. Inertgase, Kohlenmonoxid und -dioxid, Methan, Ammoniak, Schwefelverbindungen, Partikel etc.) auf die Brennstoffzellenstacks/-komponenten beschrieben.\n\t\t\t\t\t`,\n\t\t\t\t\tIntroductionContent: `Diese Seite ist eine Veröffentlichungsplattform für die von Mercedes-Benz-Trucks geprüften und freigegebenen Betriebsstoffe für Ihre Fahrzeuge und Aggregate. Generell empfehlen wir ausschließlich Produkte zu verwenden, die von Mercedes-Benz-Trucks geprüft und freigegeben wurden, da: \n- Konstruktionsteile und Betriebsstoffe aufeinander abgestimmt sind, \n- Schäden, die durch die Verwendung ungeeigneter Betriebsstoffe entstehen, nicht unter die Gewährleistung fallen. \nVon Mercedes-Benz-Trucks freigegebene Produkte sind auf den Gebinden eindeutig gekennzeichnet: z.B. „DTFR 15C110 “ \nDie Webseite bildet immer den aktuellen Stand der Betriebsstoff-Vorschriften und der entsprechenden Produktfreigaben im Markt ab.\n`,\n\t\t\t\t\tSheet: `DTFR-Blatt`,\n\t\t\t\t\tDescription: `Beschreibung`,\n\t\t\t\t\tPrincipal: `Unternehmen`,\n\t\t\t\t\tInterested: `Das könnte Sie auch interessieren:`,\n\t\t\t\t\tTopCategories: `Unsere Top-Kategorien`,\n\t\t\t\t\tBrakeFluid: `Bremsflüssigkeit`,\n\t\t\t\t\tInfo: `Informationen zu Betriebsstoff-Vorschriften`,\n\t\t\t\t\tEngineOil: `Motoröl`,\n\t\t\t\t\tFuel: `Kraftstoff`,\n\t\t\t\t\tGetriebeöl: `Getriebeöl`,\n\t\t\t\t\tMotoröl: `Motoröl`,\n\t\t\t\t\tBremsflüssigkeit: `Bremsflüssigkeit`,\n\t\t\t\t\tKraftstoff: `Kraftstoff`,\n\t\t\t\t\tFett: `Fett`,\n\t\t\t\t\tHydrauliköl: `Hydrauliköl`,\n\t\t\t\t\tKonservierungsmittel: `Konservierungsmittel`,\n\t\t\t\t\tKompressoröl: `Kompressoröl`,\n\t\t\t\t\tLenkgetriebeöl: `Lenkgetriebeöl`,\n\t\t\t\t\tFrostschutz: `Frostschutz`,\n\t\t\t\t\tKältemittel: `Kältemittel`,\n\t\t\t\t\tGearOil: `Getriebeöl`,\n\t\t\t\t\tGrease: `Fett`,\n\t\t\t\t\t\"E-Drive\": `E-Antriebssysteme`,\n\t\t\t\t\t\"E-Engine-Oil\": `E-Motoröl`,\n\t\t\t\t\t\"E-Motor-Oil\": `E-Motoröl`,\n\t\t\t\t\t\"edAC-Oil\": \"edAC-Öl\",\n\t\t\t\t\t\"Axle-Oil\": \"Achsenöl\",\n\t\t\t\t\t\"Axle Oil\": \"Achsenöl\",\n\t\t\t\t\tHydraulicFluid: `Hydrauliköl`,\n\t\t\t\t\tPreservationAgent: `Konservierungsmittel`,\n\t\t\t\t\tRefrigeratorOil: `Kompressoröl`,\n\t\t\t\t\tSteeringGearOil: `Lenkgetriebeöl`,\n\t\t\t\t\tAdBlue: `NOx-Reduktionsmittel`,\n\t\t\t\t\tCoolant: `Korrosions- / Frostschutzmittel`,\n\t\t\t\t\tRefrigerant: `Kältemittel`,\n\t\t\t\t\tWindshield: `Scheibenwaschmittel-Konzentrat`,\n\t\t\t\t\tReservedRights: `© ${new Date().getFullYear()}. Daimler Truck AG. Alle Rechte vorbehalten`,\n\t\t\t\t\tPrivacyStatement: `Datenschutz`,\n\t\t\t\t\tCookies: `Cookies`,\n\t\t\t\t\tLegalNotice: `Rechtliche Hinweise`,\n\t\t\t\t\tSettings: `Einstellungen`,\n\t\t\t\t\tCategories: `Kategorien`,\n\t\t\t\t\tOilFinder: `Öl-Finder`,\n\t\t\t\t\tProvider: `Anbieter`,\n\t\t\t\t\tMappingOverview: `DTFR Ãœbersicht`,\n\t\t\t\t\tContact: `Kontakt`,\n\t\t\t\t\tLearnMore: `Mehr erfahren`,\n\t\t\t\t\tMbOgOil: `Mercedes-Benz Original-Motoröl`,\n\t\t\t\t\tMbChoice: `Wenn ihr Mercedes die Wahl hätte:`,\n\t\t\t\t\tOperatingInstructions: `Digitale Betriebsanleitungen`,\n\t\t\t\t\tOperatingInstructionsContent: `In den Online-Bedienungsanleitung finden Sie die zu Ihrem Fahr-zeug/Aggregat passenden Betriebsstoff-Spezifikationen`,\n\t\t\t\t\tContactUrl: `https://www.mbcac.net/go/appsupport/Contact.aspx?app=Mercedes-Benz%20BeVo&lang=de-DE`,\n\t\t\t\t\tType30: '30',\n\t\t\t\t\tType40: '40',\n\t\t\t\t\tType50: '50',\n\t\t\t\t\tType80: '80',\n\t\t\t\t\tType90: '90',\n\t\t\t\t\tType0W: '0W',\n\t\t\t\t\tType0W20: '0W-20',\n\t\t\t\t\tType0W30: '0W-30',\n\t\t\t\t\tType0W40: '0W-40',\n\t\t\t\t\tType5W30: '5W-30',\n\t\t\t\t\tType5W40: '5W-40',\n\t\t\t\t\tType5W50: '5W-50',\n\t\t\t\t\tType10W: '10W',\n\t\t\t\t\tType10W30: '10W-30',\n\t\t\t\t\tType10W40: '10W-40',\n\t\t\t\t\tType20W20: '20W-20',\n\t\t\t\t\tType20W50: '20W-50',\n\t\t\t\t\tType75W: '75W',\n\t\t\t\t\tType75W80: '75W-80',\n\t\t\t\t\tType75W85: '75W-85',\n\t\t\t\t\tType75W90: '75W-90',\n\t\t\t\t\tType80W: '80W',\n\t\t\t\t\tType80W90: '80W-90',\n\t\t\t\t\tType80W85: '80W-85',\n\t\t\t\t\tType85W90: '85W-90',\n\t\t\t\t},\n\t\t\t},\n\t\t\tpt: {\n\t\t\t\ttranslations: {\n\t\t\t\t\tDiesel: \"Diesel\",\n\t\t\t\t\telectricTruck: \"eMobilidade\",\n\t\t\t\t\tCleaner: \"Produtos recomendados para limpeza\",\n\t\t\t\t\tClearCareProductsTitle: \"Produtos recomendados para \\n limpeza e manutenção\",\n\t\t\t\t\tClearCareProductsDetails: \"Informação Importante!\\ \\n Os produtos listados aqui são apenas sugestões de uso fornecidas pela Daimler Truck e não possuem aprovação segundo as especificações DTFR. \\n Nossos produtos quÃmicos de limpeza e cuidado para os caminhões Mercedes-Benz são desenvolvidos de acordo com nossos altos padrões de qualidade e com base em nossas diretrizes internas de proteção ambiental e segurança no trabalho. \\n A proteção do meio ambiente e da saúde é importante para nós.\",\n\t\t\t\t\tMbApprovalLabel: `MB-Freigabe/MB-Approval`,\n\t\t\t\t\tNewAvailable: `Agora também em português!`,\n\t\t\t\t\tHere: `aqui`,\n\t\t\t\t\tMailFeedbackPartOne: `Sua mensagem foi enviada com sucesso.\n\n Você será redirecionado para a página inicial em `,\n\t\t\t\t\tMailFeedbackPartTwo: ` segundos. \n Se você não for redirecionado automaticamente, clique `,\n\t\t\t\t\tCookieBarHeader:\n\t\t\t\t\t\t'A Mercedes-Benz AG usa cookies para vários fins',\n\t\t\t\t\tCookieBarContent:\n\t\t\t\t\t\t'Damit möchten wir Ihnen die bestmögliche Nutzung unserer Webseite ermöglichen, sowie unsere Webseite fortlaufend verbessern. Sie können Ihre freiwillige Zustimmung jederzeit widerrufen. Weitere Informationen und Einstellungsmöglichkeiten finden Sie unter „Einstellungen“.',\n\t\t\t\t\tCookieBarDetails: 'Mostrar detalhes',\n\t\t\t\t\tTechnicallyNeccessary: 'Tecnicamente necessário',\n\t\t\t\t\tAnalytics: 'Analyse und Statistik',\n\t\t\t\t\tSaveSelected: 'Salvar configurações',\n\t\t\t\t\tAgreeToAll: 'Concordo com tudo',\n\t\t\t\t\tWelcomeToSupport: 'Contato',\n\t\t\t\t\tSheetNumber: `Blattnummer`,\n\t\t\t\t\tProductAllowerdText: `Produto é lançado`,\n\t\t\t\t\tSupportInfo:\n\t\t\t\t\t\t'Você tem alguma dúvida ou sugestão de melhoria em relação a um de nossos aplicativos ou sites? Nosso atendimento ao cliente está à sua disposição. Informe-nos a sua preocupação e garantiremos que ela seja rapidamente encaminhada ao fornecedor responsável na Daimler AG. Como subsidiária da Daimler AG, o Centro de Assistência ao Cliente em Maastricht cuida do processamento profissional de todas as consultas.',\n\t\t\t\t\tSupportAsterisk:\n\t\t\t\t\t\t'Para podermos ajudá-lo de forma rápida e eficaz, pedimos-lhe que preencha todos os campos assinalados com *.',\n\t\t\t\t\tFirstName: 'Primeiro nome*',\n\t\t\t\t\tLastName: 'Sobrenome*',\n\t\t\t\t\tStreetName: 'Rua',\n\t\t\t\t\tHouseNumber: 'Não',\n\t\t\t\t\tPostalCode: 'CEP',\n\t\t\t\t\tCity: 'Localização',\n\t\t\t\t\tCountry: 'PaÃs',\n\t\t\t\t\tEmail: 'E-Mail',\n\t\t\t\t\tMessage: 'Mensagem',\n\t\t\t\t\tSupportPolicy:\n\t\t\t\t\t\t'Concordo que os dados fornecidos no formulário de contacto sejam transmitidos ao fornecedor indicado na aplicação ou no site e, se necessário, ao respetivo responsável técnico para efeitos de resposta ao meu pedido. ',\n\t\t\t\t\tSend: 'Enviar',\n\t\t\t\t\tTitle: 'Assunto',\n\t\t\t\t\tErrorFirstName: 'Por favor insira o primeiro nome',\n\t\t\t\t\tErrorLastName: 'Por favor insira o sobrenome',\n\t\t\t\t\tErrorEmail: 'Por favor, insira um endereço de e-mail',\n\t\t\t\t\tErrorMessage: 'Por favor, preencha o campo',\n\t\t\t\t\tErrorTitle: 'Por favor, insira o assunto',\n\t\t\t\t\tErrorCountry: 'Por favor, preencha o campo',\n\t\t\t\t\tErrorPostalCode: 'Por favor, preencha o campo',\n\t\t\t\t\tLastUpdate: 'Atualizado em: ',\n\t\t\t\t\tChoooseBeVo: 'Por favor, escolha um fluido operacional:',\n\t\t\t\t\tModelHeaderText: \" Este conteúdo está disponÃvel apenas em alemão e inglês.\",\n\t\t\t\t\tLink1:\n\t\t\t\t\t\t'https://www.mercedes-benz.com/de/fahrzeuge/service-teile/das-einzige-oel-mit-mercedes-benz-know-how/',\n\t\t\t\t\tLink2:\n\t\t\t\t\t\t'https://www.mercedes-benz.de/passengercars/services-accessories/manuals.html',\n\t\t\t\t\tSearchResultPart1: 'Sua pesquisa resultou',\n\t\t\t\t\tSearchResultPart2: 'Resultados',\n\t\t\t\t\tBackToOverview: '↠Voltar ao menu',\n\t\t\t\t\tSearchLabel: 'Sua busca',\n\t\t\t\t\tPrologGearOil: `O óleo de transmissão é um fluido essencial para o funcionamento e durabilidade da transmissão. Os óleos de transmissão Mercedes-Benz Trucks são desenvolvidos e testados especificamente para veÃculos Mercedes-Benz Trucks. Por isso, recomendamos o uso exclusivo de óleos com a designação \"DTFR xxxxxx\" para veÃculos Mercedes-Benz Trucks. A designação \"DTFR xxxxxx\" está indicada na embalagem (ex. DTFR 13A100). As especificações de óleos de transmissão aprovados pela Daimler Truck AG estão listadas nas fichas DTFR 13xxxx e 12xxxx.\nAs especificações de óleos de transmissão e de eixos aprovadas para veÃculos Mercedes-Benz Trucks podem ser encontradas no manual do veÃculo e em informações adicionais de serviço, se necessário.`,\n\t\t\t\t\tProductName: 'Nome do produto',\n\t\t\t\t\tShowMore: 'Mostrar mais',\n\t\t\t\t\tShowLess: 'Mostrar menos',\n\t\t\t\t\tNoProduct: 'Infelizmente não há produtos disponÃveis',\n\t\t\t\t\tPrologFuel: `CombustÃveis produzidos por processos quÃmicos-fÃsicos altamente desenvolvidos utilizando petróleo ou fontes renováveis são fontes de energia para motores de combustão em veÃculos motorizados. Esses combustÃveis são misturas complexas de compostos compostos por carbono, hidrogênio e possivelmente oxigênio, com várias estruturas que são adaptadas aos processos de combustão dos motores. Sua densidade energética é alta em comparação com outros fluidos combustÃveis do mesmo peso. A energia armazenada é convertida em energia mecânica durante a combustão no motor.\nVisto globalmente, há uma variação extrema na qualidade. A qualidade do combustÃvel desempenha um papel fundamental no desempenho de um veÃculo e nas emissões de gases de escape. Consequentemente, a qualidade do combustÃvel deve ser adequadamente harmonizada com os requisitos de um veÃculo. Para atingir esses objetivos, a indústria automotiva global criou a \"Carta Mundial de CombustÃveis\" (\"WWFC\"), que define especificações-alvo adequadas para as propriedades do combustÃvel em relação aos vários requisitos de gases de escape e CO2. A WWFC é revisada e adaptada à s mais recentes tecnologias em intervalos regulares. A qualidade de mercado dos combustÃveis é geralmente definida por normas nacionais.\nCombustÃvel para Motores de Ignição por FaÃsca – Gasolina \nO termo “gasolina†é normalmente usado para descrever as frações mais leves do petróleo bruto que são separadas das frações pesadas durante o processo de refino. Do ponto de vista quÃmico, a gasolina consiste em moléculas orgânicas dentro de uma certa faixa de ebulição (~40–200 °C). Essas moléculas consistem principalmente de átomos de carbono e hidrogênio. O petróleo bruto também contém enxofre, que precisa ser reduzido ou removido para produzir gasolina que não danifique o motor ou outras tecnologias do veÃculo. A ignição dos combustÃveis para motores de ignição por faÃsca é realizada através de uma fonte de ignição externa (por exemplo, vela de ignição).\nA principal classificação da gasolina ocorre com base na resistência ao batido, que é representada por um número de octano de pesquisa e motor. Exemplos tÃpicos dessas especificações são RON 95 e RON 98. No entanto, em mercados europeus e outros, o teor de etanol em relação à compatibilidade do veÃculo também é um parâmetro importante, além da resistência ao batido. Detalhes sobre os combustÃveis adequados para o seu veÃculo podem ser encontrados no manual do operador e na parte interna da tampa de abastecimento de combustÃvel.\nCombustÃvel Diesel “CombustÃvel diesel†é geralmente referido como a fração de petróleo bruto do destilado médio que é separada das frações mais leves e pesadas durante o processo de refino. Do ponto de vista quÃmico, o combustÃvel diesel consiste em moléculas orgânicas dentro de uma certa faixa de ebulição (~160–350 °C). Essas moléculas consistem principalmente de átomos de carbono e hidrogênio. Certas moléculas de cadeia reta exigem modificação para propriedades de resfriamento especÃficas. O petróleo bruto também contém enxofre, que precisa ser reduzido ou removido para produzir diesel que não danifique o motor ou outras tecnologias do veÃculo. Na Europa, o volume máximo de biodiesel permitido no combustÃvel diesel é de 7%. Detalhes sobre os combustÃveis adequados para o seu veÃculo podem ser encontrados no manual do operador e na parte interna da tampa de abastecimento de combustÃvel.\nCombustÃveis Diesel ParafÃnicos \nOs combustÃveis parafÃnicos são feitos quase inteiramente de alcanos e, portanto, são isentos de aromáticos e enxofre. Além de alcanos lineares e ramificados, alguns combustÃveis também contêm cicloalcanos. As propriedades dos combustÃveis parafÃnicos diferem das do combustÃvel diesel comum devido à sua composição quÃmica. As principais diferenças entre combustÃveis diesel parafÃnicos e combustÃveis diesel convencionais são seu número de cetano mais alto e menor densidade. Detalhes sobre os combustÃveis adequados para o seu veÃculo podem ser encontrados no manual do operador e na parte interna da tampa de abastecimento de combustÃvel.\nAditivos de CombustÃvel e Aditivos Secundários \nDevido à s altas exigências impostas aos combustÃveis, é necessário otimizar certas propriedades dos combustÃveis básicos. Os aditivos podem fornecer propriedades adicionais aos combustÃveis, ao mesmo tempo em que acentuam ou reduzem propriedades existentes. Os aditivos são compostos solúveis em combustÃvel de natureza predominantemente organoquÃmica. A seleção, aplicação e dosagem corretas desses aditivos exigem investigações aprofundadas em laboratórios, em bancadas de teste e em veÃculos para adaptar otimamente o efeito que os aditivos têm sobre o respectivo combustÃvel, garantir que os aditivos sejam harmonizados entre si e que não haja efeitos colaterais negativos. Como o consumidor geralmente não possui os pré-requisitos necessários para isso, um aditivo de combustÃvel pode ser encomendado apenas pelo fabricante do combustÃvel.\nNo entanto, aditivos de combustÃvel são constantemente oferecidos aos motoristas, alguns dos quais prometem melhorias significativas, como melhor desempenho do motor com menor consumo de combustÃvel. Para fins de clareza, referimo-nos a esses aditivos como “aditivos secundáriosâ€. Uma vez que a qualidade do combustÃvel padronizada e adequada pode ser esperada na maioria dos casos, os aditivos secundários geralmente não são necessários em nossos motores automotivos. Deve-se garantir que apenas a qualidade do combustÃvel especificada por nós seja utilizada em cada caso. Em contraste, o uso de aditivos secundários é geralmente apenas um custo adicional que, no pior dos casos, pode causar danos duradouros. Aditivos adicionais podem ser necessários em certos mercados onde a baixa qualidade do combustÃvel é a norma. Neste caso especial, recomenda-se apenas aditivos que tenham sido testados e aprovados por oficinas especializadas da Mercedes-Benz-Trucks. As instruções e proporções de mistura indicadas no recipiente devem ser observadas.\nA aplicação de aditivos secundários sem a aprovação da Mercedes-Benz-Trucks é fortemente desencorajada. Como seu uso pode afetar negativamente a garantia tanto do fabricante do veÃculo quanto do fornecedor de combustÃvel, isso deve ser sempre realizado sob a responsabilidade do operador do veÃculo.`,\n\t\t\t\t\tPrologAdBlue: `Agente de redução de NOx AUS 32 (\"ADBlue\") para instalações SCR \nAgente de redução de NOx AUS 32(\"ADBlue\") liberados \nO sistema de injeção direta foi desenvolvido, até se tornar praticamente padrão para motores Diesel. A legislação de gases de escape muito exigente torna indispensável o pós-tratamento dos gases de escape em motores diesel. Hoje, muitos motores Diesel modernos para automóveis de passeio são equipados com catalisadores de oxidação. Para operar em conformidade com as mais novas normas para emissões de automóveis e veÃculos comerciais leves, será necessário para os veÃculos mais pesados desta categoria utilizar outros sistemas de pós-tratamento dos gases de escape. Para a redução de emissões de NOx, existe uma série de diferentes sistemas em desenvolvimento e, em parte, já em operação. Em veÃculos comerciais pesados, é utilizado um sistema para redução de emissão de óxido azotado de maior seletividade, que utiliza o catalisador NOx com ureia, como produto redutor. Trata-se aqui de uma redução catalÃtica seletiva de NOx, na presença de amônia. Através de um pré-estágio de reação, a solução de água/ureia, introduzida no sistema de escape, é convertida primeiro em amônia. Na seguinte redução catalÃtica, a maior parte do NOx é reduzida a nitrogênio e água, na presença de amônia. O sistema SCR de ureia para o pós-tratamento dos gases de escape é o mais avançado tecnologicamente. Uma descrição detalhada de qualidade do agente redutor é a base para uma introdução de cobertura abrangente, independente do fabricante desta técnica e necessária para uma atividade constante do sistema de pós-tratamento dos gases de escape. As exigências para o agente redutor foram publicadas através das normas DIN 70070 (exigências) e DIN V 70071 (método de teste). Uma normatização a nÃvel internacional está definida e se encontra na norma internacional ISO 22241. Para os veÃculos Mercedes-Benz-Trucks, deve ser utilizado um agente de redução de NOx conforme as exigências da ISO 22241. Na Europa é utilizado com frequência para está qualidade, a marca nominativa \"AdBlue®\". Em caso na utilização de qualidades fora da especificação podem causar danos no sistema Bluetec.`,\n\t\t\t\t\tPrologCoolant: `LÃquidos de arrefecimento:\n•\tgarantem a compatibilidade dos materiais\n•\tpossibilitam dissipação de calor ideal\n•\tprotegem contra corrosão\nOs agentes anticorrosivos/anticongelantes ou lÃquidos de arrefecimento aprovados nas especificações para fluidos operacionais atendem à s rigorosas especificações da Mercedes-Benz-Trucks. Isso garante um excelente funcionamento dos sistemas de arrefecimento sob as cargas especÃficas do veÃculo.\nNão é apenas a escolha do lÃquido de arrefecimento que é decisiva, mas também a manutenção da qualidade ideal da água e da concentração correta entre o concentrado e a água durante a operação: um excesso de pacote de aditivos é tão prejudicial quanto uma quantidade excessiva de água.\nA Ficha DTFR 29A100 contém informações gerais sobre o manuseio adequado dos lÃquidos de arrefecimento.\nA Ficha DTFR 29A110 lista todos os produtos aprovados pela Mercedes-Benz-Trucks para cada aplicação.`,\n\t\t\t\t\tPrologMotorOil: `O óleo de motor é essencial para o funcionamento e a durabilidade do motor. Recomendamos o uso exclusivo de óleos de motor com \"DTFR xxxxxx\" para veÃculos Mercedes-Benz Trucks. A designação \"DTFR xxxxxx\" está indicada na embalagem (ex. DTFR 15B120). As especificações de óleos de motor aprovados estão listadas na ficha DTFR 15A100. \nAs especificações de óleos de motor aprovados para veÃculos e motores Mercedes-Benz Trucks podem ser encontradas no manual do veÃculo e em informações de serviço adicionais, se necessário.\nA viscosidade SAE recomendada para cada região de aplicação está indicada na ficha DTFR 15A110.`,\n\t\t\t\t\tPrologEdac: `A lista de produtos a seguir destina-se a ajudar na escolha do fluido operacional correto para o seu veÃculo/unidade Mercedes-Benz Trucks & Buses, entre a ampla variedade disponÃvel no mercado.\nRecomendamos o uso exclusivo dos produtos listados abaixo, que foram testados e aprovados pela Daimler Truck.\nO compressor de ar de alta tensão é uma unidade lubrificada a óleo. Esse óleo é utilizado para lubrificação, absorção e dissipação de calor, além de realizar a vedação de várias superfÃcies e processos funcionais internos. Portanto, uma troca de óleo deve ser realizada no compressor de ar de alta tensão como parte do serviço.`,\n\t\t\t\t\tPrologHydrogen: `Die nachfolgende Produktliste soll Ihnen helfen, den richtigen Betriebsstoff für Psr Mercedes-Benz Motors & Buses Fahrzeug/ Aggregat aus der Marktvielfalt auszuwählen.\n\t\t\t\t\t\nWir empfehlen, ausschließlich die in der nachfolgenden Liste aufgeführt, von Daimler Truck geprüften und freigegebenen, Produkte zu verwenden.\n\t\t\t\t\t`,\n\t\t\t\t\tIntroductionContent: `Esta página é uma plataforma de publicação para os fluidos operacionais\ntestados e aprovados pela Mercedes-Benz Trucks para seus veÃculos e agregados. De forma geral, recomendamos a utilização exclusiva de produtos testados e aprovados pela Mercedes-Benz Trucks, uma vez que\n\n- peças de construção e fluidos operacionais estão adaptados entre si\n- - danos causados pela utilização de fluidos operacionais inadequados, não são cobertos pela garantia legal. Produtos aprovados pela\n\nMercedes-Benz Trucks são identificados nas embalagens de maneira\nevidente: p. ex. \"DTFR 15C110 \" O site representa sempre o estado atual\ndas especificações de fluidos operacionais e das respectivas liberações de\nprodutos no mercado.\n`,\n\t\t\t\t\tSheet: `Ficha DTFR`,\n\t\t\t\t\tDescription: `Descrição`,\n\t\t\t\t\tPrincipal: `Empresa`,\n\t\t\t\t\tInterested: `Por favor, escolha um fluido operacional:`,\n\t\t\t\t\tTopCategories: `Nossas principais categorias`,\n\t\t\t\t\tBrakeFluid: `Fluido de freio`,\n\t\t\t\t\tInfo: `Informationen zu Betriebsstoff-Vorschriften`,\n\t\t\t\t\tEngineOil: `Óleo de motor`,\n\t\t\t\t\tFuel: `CombustÃvel`,\n\t\t\t\t\tGetriebeöl: `Getriebeöl`,\n\t\t\t\t\tMotoröl: `Óleo para motor`,\n\t\t\t\t\tBremsflüssigkeit: `Bremsflüssigkeit`,\n\t\t\t\t\tKraftstoff: `CombustÃvel`,\n\t\t\t\t\tFett: `Graxa`,\n\t\t\t\t\tHydrauliköl: `Óleo hidráulico`,\n\t\t\t\t\tKonservierungsmittel: `Conservantes`,\n\t\t\t\t\tKompressoröl: `Óleo para compressor`,\n\t\t\t\t\tLenkgetriebeöl: `Óleo para caixa de direção`,\n\t\t\t\t\tFrostschutz: `Frostschutz`,\n\t\t\t\t\tKältemittel: `Agente refrigerante`,\n\t\t\t\t\tGearOil: `Óleo de transmissão`,\n\t\t\t\t\tGrease: `Graxa`,\n\t\t\t\t\t\"E-Drive\": `Sistemas de propulsão elétrica`,\n\t\t\t\t\t\"E-Engine-Oil\": `E-Óleo de motor`,\n\t\t\t\t\t\"E-Motor-Oil\": `E-Óleo para motor`,\n\t\t\t\t\t\"edAC-Oil\": \"Óleo edAC\",\n\t\t\t\t\t\"Axle-Oil\": \"Óleo do eixo\",\n\t\t\t\t\t\"Axle Oil\": \"Óleo do eixo\",\n\t\t\t\t\tHydraulicFluid: `Óleo hidráulico`,\n\t\t\t\t\tPreservationAgent: `Conservantes`,\n\t\t\t\t\tRefrigeratorOil: `Óleo para compressor`,\n\t\t\t\t\tSteeringGearOil: `Óleo para caixa de direção`,\n\t\t\t\t\tAdBlue: `Agente de redução de NOx`,\n\t\t\t\t\tCoolant: `Agentes anticorrosivos / agente anticongelante`,\n\t\t\t\t\tRefrigerant: `Agente refrigerante`,\n\t\t\t\t\tWindshield: `Limpa-vidros concentrado`,\n\t\t\t\t\tReservedRights: `© ${new Date().getFullYear()}. Daimler Truck AG. Todos os direitos reservados`,\n\t\t\t\t\tPrivacyStatement: `PolÃtica de privacidade`,\n\t\t\t\t\tCookies: `Cookies`,\n\t\t\t\t\tLegalNotice: `Avisos legais`,\n\t\t\t\t\tSettings: `Einstellungen`,\n\t\t\t\t\tCategories: `Categorias`,\n\t\t\t\t\tOilFinder: `Localizador de óleo`,\n\t\t\t\t\tProvider: `Provedor`,\n\t\t\t\t\tMappingOverview: `Resumo DTFR`,\n\t\t\t\t\tContact: `Contato`,\n\t\t\t\t\tLearnMore: `Saiba mais`,\n\t\t\t\t\tMbOgOil: `Óleo de motor original Mercedes-Benz`,\n\t\t\t\t\tMbChoice: `Se o seu Mercedes pudesse escolher:`,\n\t\t\t\t\tOperatingInstructions: `Instruções de operação digitais`,\n\t\t\t\t\tOperatingInstructionsContent: `Nas instruções de operação on-line você encontrará as especificações de combustÃvel adequadas para o seu veÃculo/unidade`,\n\t\t\t\t\tContactUrl: `https://www.mbcac.net/go/appsupport/Contact.aspx?app=Mercedes-Benz%20BeVo&lang=de-DE`,\n\t\t\t\t\tType30: '30',\n\t\t\t\t\tType40: '40',\n\t\t\t\t\tType50: '50',\n\t\t\t\t\tType80: '80',\n\t\t\t\t\tType90: '90',\n\t\t\t\t\tType0W: '0W',\n\t\t\t\t\tType0W20: '0W-20',\n\t\t\t\t\tType0W30: '0W-30',\n\t\t\t\t\tType0W40: '0W-40',\n\t\t\t\t\tType5W30: '5W-30',\n\t\t\t\t\tType5W40: '5W-40',\n\t\t\t\t\tType5W50: '5W-50',\n\t\t\t\t\tType10W: '10W',\n\t\t\t\t\tType10W30: '10W-30',\n\t\t\t\t\tType10W40: '10W-40',\n\t\t\t\t\tType20W20: '20W-20',\n\t\t\t\t\tType20W50: '20W-50',\n\t\t\t\t\tType75W: '75W',\n\t\t\t\t\tType75W80: '75W-80',\n\t\t\t\t\tType75W85: '75W-85',\n\t\t\t\t\tType75W90: '75W-90',\n\t\t\t\t\tType80W: '80W',\n\t\t\t\t\tType80W90: '80W-90',\n\t\t\t\t\tType80W85: '80W-85',\n\t\t\t\t\tType85W90: '85W-90',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tfallbackLng: 'en',\n\t\tdebug: true,\n\n\t\t// have a common namespace used around the full app\n\t\tns: ['translations'],\n\t\tdefaultNS: 'translations',\n\n\t\tkeySeparator: false, // we use content as keys\n\n\t\tinterpolation: {\n\t\t\tescapeValue: false,\n\t\t},\n\t});\n\nexport default i18n;\n","import React from \"react\";\n\ninterface ProgressBarProps {\n progress: number;\n}\nexport const ProgressBar: React.FC<ProgressBarProps> = React.memo(({ progress }) => (\n <div className=\"progress-bar-container\">\n <div className=\"progress-bar\" style={{ width: `${progress}%` }}></div>\n </div>\n));\n","/* eslint-disable */\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { Icon } from '@workbench/core';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport './IconNavigation.css';\nimport { WbIcon } from '@workbench/react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n// Styling\nconst useStyles = makeStyles(() =>\n createStyles({\n content: {\n color: 'white',\n textAlign: 'center',\n },\n })\n);\n\nexport default function IconNavigation(props) {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <>\n <Link to={props.link}>\n <div\n class='iconNavigationContainer '\n onclick={`window.location.href=${props.link}`}\n >\n <div>\n <wb-tooltip-host\n open={props.open}\n position={props.position}\n class={clsx('tooltipContainer')}\n >\n <button\n class='roundButtonStyle wb-round-button wb-round-button--solid-level-0 wb-round-button--small'\n type='button'\n >\n <wb-icon\n class='iconStyle'\n name='bds/hotspot-active/24'\n ></wb-icon>\n </button>\n <wb-tooltip\n class={clsx('tooltipStyle', { ['noHover']: props.open })}\n >\n {t(props.description)}\n <Link class='activeLink' to={props.link}>\n <WbIcon\n class={clsx('tooltipIcon')}\n name='bds/chevron-right/24'\n ></WbIcon>\n </Link>\n </wb-tooltip>\n </wb-tooltip-host>\n </div>\n </div>\n </Link>\n </>\n );\n}\n","import { Link } from \"react-router-dom\";\nimport IconNavigation from \"../iconNavigation/IconNavigation\";\nimport React from \"react\";\n\n// Define a type for the Hotspot\ninterface Hotspot {\n id: number;\n label: string;\n link: string;\n classes?: string; // classes is optional\n}\n// Now, explicitly type the props for the HotspotLink component\ninterface HotspotLinkProps {\n hotspot: Hotspot;\n}\nexport const HotspotLink: React.FC<HotspotLinkProps> = React.memo(({ hotspot }) => (\n <Link key={hotspot.id} to={hotspot.link} className={`hotspot-dot ${hotspot.classes || \"\"}`}>\n <IconNavigation\n description={hotspot.label}\n open={false}\n link={hotspot.link}\n position=\"top\" />\n </Link>\n));\n","import { useState, useEffect, useMemo, useRef, useCallback } from \"react\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport desktopSkeletonImage from \"../../../../resource/image/truckDesktop.jpg\";\n// import hydrogenSkeletonImage from \"../../../../resource/image/e-truck-slider.jpg\";\nimport hydrogenSkeletonImage from \"../../../../resource/image/e-truck.jpg\";\n\n\nimport \"./SwiperSlider.css\";\nimport i18n from \"../../../../globals/i18n\";\n\nimport { ProgressBar } from \"./ProgressBar\";\nimport { HotspotLink } from \"./HotspotLink\";\n\nconst autoplaySpeed = 7000; // 7 seconds\n\nconst CustomArrow = (props: any) => {\n const { className, style, onClick, direction } = props;\n const arrowPath =\n direction === \"prev\"\n ? \"M15 17l-5-5 5-5\"\n : \"M9 17l5-5-5-5\"; // SVG Path for previous or next arrow\n return (\n <div\n className={`${className} custom-${direction}-arrow`}\n style={{ \n ...style, \n display: \"flex\", \n alignItems: \"center\", \n justifyContent: \"center\", \n background: \"#fff\" \n }}\n onClick={onClick}\n >\n <svg \n xmlns=\"http://www.w3.org/2000/svg\" \n viewBox=\"0 0 24 24\" \n stroke=\"black\" \n fill=\"none\"\n >\n <path d={arrowPath} stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n );\n}; \n\nconst HomeCarousel = () => {\n const [progress, setProgress] = useState(0);\n const { t } = useTranslation();\n\n const slides = useMemo(() => [\n {\n id: 1,\n title: \"Mercedes Benz Trucks\",\n subtitle: \"Operating Fluids\",\n image: desktopSkeletonImage,\n dotText: t('Diesel'),\n hotspots: [\n { id: 1, label: \"EngineOil\", classes: \"slide1 sengineNavigatorDesktop\", link: `/category/engine-oil/${i18n.language}` },\n { id: 2, label: \"GearOil\", classes: \"slide1 sgearNavigatorDesktop\", link: `/category/gear-oil/${i18n.language}` },\n { id: 3, label: \"AdBlue\", classes: \"slide1 sadBlueNavigatorDesktop\", link: `/category/NOx-reducing-agent/${i18n.language}` },\n { id: 4, label: \"Axle-Oil\", classes: \"slide1 saxleOilNavigatorDesktop\", link: `/category/Axle-Oil/${i18n.language}` },\n { id: 5, label: \"Coolant\", classes: \"slide1 scoolantNavigatorDesktop\", link: `/category/coolant/${i18n.language}` },\n ],\n },\n {\n id: 2,\n title: \"Mercedes Benz Trucks\",\n subtitle: \"Operating Fluids\",\n dotText: t('electricTruck'),\n image: hydrogenSkeletonImage,\n hotspots: [\n { id: 7, label: \"edAC-Oil\", classes: \"slide2 sedacNavigatorDesktop\", link: `/category/edAC-Oil/${i18n.language}` },\n { id: 8, label: \"E-Drive\", classes: \"slide2 sedriveNavigatorDesktop\", link: `/category/E-Drive/${i18n.language}` },\n ],\n },\n ], [t]);\n\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n\n useEffect(() => {\n const startProgress = () => {\n setProgress(0);\n intervalRef.current = setInterval(() => {\n setProgress((prev) => (prev < 100 ? prev + 1 : 100));\n }, autoplaySpeed / 100);\n };\n\n startProgress();\n\n return () => {\n if (intervalRef.current) clearInterval(intervalRef.current);\n };\n }, [autoplaySpeed]);\n\n\n\n const handleBeforeChange = useCallback(() => {\n setProgress(0); // Reset progress when slide changes\n }, []);\n \n const settings = useMemo(() => ({\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n autoplay: true,\n autoplaySpeed,\n cssEase: \"linear\",\n swipeToSlide: true,\n arrows: true,\n prevArrow: <CustomArrow direction=\"prev\" />,\n nextArrow: <CustomArrow direction=\"next\" />,\n beforeChange: handleBeforeChange,\n customPaging: (i: number) => (\n <div className=\"custom-dot\">\n <span>{slides[i].dotText}</span>\n </div>\n ),\n appendDots: (dots: any) => (\n <>\n <div className=\"mobile-text no-desktop\">\n <span className=\"title\">Mercedes Benz Trucks</span><br />\n <span className=\"subtitle\">Operating Fluids</span>\n </div>\n <ul className=\"slick-dots\">{dots}</ul>\n </>\n ),\n }), [autoplaySpeed, slides, handleBeforeChange]);\n\n return (\n <div className=\"carousel-container\">\n <Slider className=\"custom-slick-sliders\" {...settings}>\n {slides.map((slide) => (\n <div key={slide.id} className=\"slide-containe r\">\n <div className='image-wrapper'>\n <img src={slide.image} alt={slide.title} className=\"slide-image\" />\n </div>\n <div className=\"custom-slider-text wb-type-heading-l desktop-title-text no-mobile\">\n <span className=\"title\">{slide.title}</span><br/>\n <span className=\"subtitle\">{slide.subtitle}</span>\n </div>\n {/* Custom Hotspot Navigation Dots */}\n <div className=\"hotspot-links\">\n {slide.hotspots.map((hotspot) => (\n <HotspotLink hotspot={hotspot} />\n ))}\n </div>\n </div>\n ))}\n </Slider>\n <ProgressBar progress={progress} />\n </div>\n );\n};\n\nexport default HomeCarousel;","import { CarSkeleton } from './subcomponent/CarSkeleton/CarSkeleton';\n\nimport MBBeVoContentSlider from './subcomponent/MBBeVoContentSlider/MBBeVoContentSlider';\nimport MBBeVoDesc from './subcomponent/MBBeVoDesc/MBBeVoDesc';\nimport './MainPage.css';\nimport { CarSkeletonSmartphone } from './subcomponent/CarSkeletonSmartphone/CarSkeletonSmartphone';\nimport { CarSkeletonTablet } from './subcomponent/CarSkeletonTablet/CarSkeletonTablet';\nimport HomeCarousel from './subcomponent/SwiperSlider/SwiperSlider';\nimport { useEffect } from 'react';\nimport { Helmet } from 'react-helmet';\nimport { useTranslation, Trans } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\n\n/**\n * Main page (landing page or home page) component.\n *\n * @returns\n */\n\nexport function MainPage() {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n useEffect(() => {\n // Change language based on the current pathname\n const path = location.pathname; // Get the current pathname\n if (path.startsWith('/de') || path === '/de') {\n i18n.changeLanguage('de');\n } else if (path.startsWith('/en') || path === '/en') {\n i18n.changeLanguage('en');\n }\n\n // Scroll to top on component mount\n window.scrollTo(0, 0);\n }, [location.pathname, i18n]); // Add location.pathname and i18n as dependencies\n const hreflang = i18n.language;\n return (\n <>\n {/* @ts-ignore */}\n <Helmet>\n <title>{t('mainPage.title', { keySeparator: \".\"})}</title>\n <meta name=\"description\" content={t('mainPage.description' , { keySeparator: \".\"})} />\n <meta name=\"keywords\" content={t('mainPage.keywords' , { keySeparator: \".\"})} />\n <meta name=\"author\" content={t('mainPage.author' , { keySeparator: \".\"})} />\n <meta name=\"robots\" content={t('mainPage.robots' , { keySeparator: \".\"})} />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta property=\"og:title\" content={t('mainPage.title' , { keySeparator: \".\"})} />\n <meta property=\"og:description\" content={t('mainPage.description' , { keySeparator: \".\"})} />\n <link rel=\"alternate\" href={\"https://bevo.mercedes-benz-trucks.com/de\"} hrefLang=\"de\" />\n <link rel=\"alternate\" href={\"https://bevo.mercedes-benz-trucks.com/en\"} hrefLang=\"en\" />\n <link rel=\"canonical\" href={\"https://bevo.mercedes-benz-trucks.com\"} />\n </Helmet>\n <HomeCarousel />\n {/* <div className=\"mobile-text no-desktop\">\n <span className=\"title\">Mercedes Benz Trucks</span><br/>\n <span className=\"subtitle\">Operating Fluids</span>\n </div> */}\n {/* Slider for desktop devices > 992px */}\n {/* <CarSkeleton></CarSkeleton> */}\n {/* Slider for tablet devices > 768px < 992px */}\n {/* <CarSkeletonTablet></CarSkeletonTablet> */}\n {/* Slider for smartphone devices < 768px */}\n {/* <CarSkeletonSmartphone></CarSkeletonSmartphone> */}\n\n <MBBeVoContentSlider></MBBeVoContentSlider>\n\n {/* MBBeVoDesc */}\n <MBBeVoDesc></MBBeVoDesc>\n </>\n );\n}\n","export default __webpack_public_path__ + \"static/media/ic_bevo_drop_16_grey.0aef0c16.svg\";","export default __webpack_public_path__ + \"static/media/ic_bevo_drop_16.21536c58.svg\";","export const openCategoriesMenu = () => {\n document.getElementById('deactivedBackground')?.classList.add('lightColor');\n document.getElementById('mainCategoryMenu')?.classList.add('visible');\n\n document.getElementById('mainCategoryMenu')?.classList.remove('notVisible');\n\n document.getElementById('bodyElement')?.classList.add('lockedScroll');\n\n document.getElementById('deactivedBackground')?.classList.add('visible');\n\n document\n .getElementById('deactivedBackground')\n ?.classList.remove('notVisible');\n};\n\nexport const closeCategoriesMenu = () => {\n document.getElementById('mainCategoryMenu')?.classList.remove('visible');\n\n document.getElementById('mainCategoryMenu')?.classList.add('notVisible');\n\n document.getElementById('deactivedBackground')?.classList.remove('visible');\n\n document.getElementById('bodyElement')?.classList.remove('lockedScroll');\n\n document.getElementById('deactivedBackground')?.classList.add('notVisible');\n document\n .getElementById('deactivedBackground')\n ?.classList.remove('lightColor');\n closeSubCategoriesMenu();\n closeSearch();\n};\n\nexport const closeSubCategoriesMenu = () => {\n document.getElementById('subCategoryMenu')?.classList.remove('visible');\n\n document.getElementById('subCategoryMenu')?.classList.add('notVisible');\n};\nexport const openSubCategoriesMenu = () => {\n document.getElementById('subCategoryMenu')?.classList.add('visible');\n\n document.getElementById('subCategoryMenu')?.classList.remove('notVisible');\n};\n\nexport const showProviderTab = () => {\n document?.getElementById('cookieModelContainer')?.classList.remove('hide');\n document\n ?.getElementById('providerTabContent')\n ?.classList.add('wb-tab-content--selected');\n document?.getElementById('tabs')?.setAttribute('selected', 'provider');\n};\n\nexport const showLegalNoticeTab = () => {\n document?.getElementById('cookieModelContainer')?.classList.remove('hide');\n document\n ?.getElementById('legalNoticeTabContent')\n ?.classList.add('wb-tab-content--selected');\n document?.getElementById('tabs')?.setAttribute('selected', 'legalNotice');\n};\n\nexport const showDataPrivacyTab = () => {\n document?.getElementById('cookieModelContainer')?.classList.remove('hide');\n document\n ?.getElementById('dataPrivacyTabContent')\n ?.classList.add('wb-tab-content--selected');\n document?.getElementById('tabs')?.setAttribute('selected', 'dataPrivacy');\n};\n\nexport const showSettingsTab = () => {\n document?.getElementById('cookieModelContainer')?.classList.remove('hide');\n document\n ?.getElementById('settingsTabContent')\n ?.classList.add('wb-tab-content--selected');\n document?.getElementById('tabs')?.setAttribute('selected', 'settings');\n};\n\nexport const closeSearch = () => {\n document\n .getElementsByClassName('.wb-header__logo-container')[0]\n ?.classList.remove('foreground');\n document.getElementById('searchContainer')?.classList.remove('visible');\n\n document.getElementById('searchContainer')?.classList.add('notVisible');\n\n document.getElementById('deactivedBackground')?.classList.remove('visible');\n\n document.getElementById('deactivedBackground')?.classList.add('notVisible');\n\n document.getElementById('deactivedBackground')?.classList.remove('darkColor');\n};\n","import {IProductSheet} from '../interfaces/IProductSheet';\nimport {closeCategoriesMenu, closeSearch} from './DialogHelper';\nimport {parse} from 'date-format-parse';\nimport { getSheetByNumber } from './FetchAPI';\nimport { useLanguageMappings } from '../globals/LanguageMappingsContext';\nimport {useTranslation} from \"react-i18next\";\n\nexport const parseDate = (dateString: string | Date): Date => {\n if (dateString instanceof Date) {\n return dateString\n }\n if (dateString.includes('/')) {\n return parse(\n dateString,\n 'M/D/YY, h:m A'\n )\n }\n\n return parse(\n dateString.replaceAll(',', ''),\n 'DD.MM.YY HH:mm'\n )\n}\n\nexport const setCategoryString = (category: string) => {\n if (category === 'Engine Oil' || category === 'EngineOil' || category === 'Óleo de motor') {\n return 'Motoröl';\n } else if (category === 'Brake Fluid' || category === 'BrakeFluid' || category === 'Fluido de freio' ) {\n return 'Bremsflüssigkeit';\n } else if (category === 'Fuel' || category === 'CombustÃvel') {\n return 'Kraftstoff';\n } else if (category === 'Gear Oil' || category === 'GearOil' || category === 'Óleo de transmissão') {\n return 'Getriebeöl';\n } else if (category === 'E-Drive' || category === 'Sistemas de propulsão elétrica') {\n return 'E-Antriebssysteme';\n } else if (category === 'Grease' || category === 'Graxa') {\n return 'Fett';\n } else if (category === 'Hydraulic Fluid' || category === 'HydraulicFluid' || category === 'Óleo hidráulico') {\n return 'Hydrauliköl';\n } else if (\n category === 'Preservation Agent' ||\n category === 'PreservationAgent' || category === 'Conservantes'\n ) {\n return 'Konservierungsmittel';\n } else if (\n category === 'Refrigerator Oil' ||\n category === 'RefrigeratorOil' || category === 'Óleo para compressor'\n ) {\n return 'Kompressoröl';\n } else if (\n category === 'Steering Gear Oil' ||\n category === 'SteeringGearOil' || category === 'Óleo para caixa de direção'\n ) {\n return 'Lenkgetriebeöl';\n } else if (\n category === 'NOx Reducing Agent' ||\n category === 'NOxReducingAgent' ||\n category === 'AdBlue' || category === 'Agente de redução de NOx'\n ) {\n return 'NOx-Reduktionsmittel';\n } else if (\n category === 'Korrosions-/Frostschutz' ||\n category === 'Korrosions- /Frostschutz' ||\n category === 'Korrosions- / Frostschutzmittel' || category === 'Agentes anticorrosivos / agente anticongelante'\n ) {\n return 'Frostschutz';\n } else if (category === 'Coolant' || category === 'Agentes anticorrosivos / agente anticongelante') {\n return 'Frostschutz';\n } else if (category === 'Refrigerant' || category === 'Agente refrigerante') {\n return 'Kältemittel';\n } else if (category === 'edAC-Oil' || category === 'Óleo edAC') {\n return 'edAC-Öl';\n } else if (\n category === 'E-Engine Oil' ||\n category === 'E-Motor-Oil' || category === 'E-Óleo para motor'\n\n ) {\n return 'E-Motoröl';\n } else if (category === 'Axle Oil' || category === 'Óleo do eixo') {\n return 'Achsenöl';\n } else if (\n category === 'Windshield Washer Fluid Concentrate' ||\n category === 'WindshieldWasherFluidConcentrate' ||\n category === 'Scheibenwaschmittel-Konzentrat' ||\n category === 'Windshield' || category === 'Limpa-vidros concentrado'\n ) {\n return 'Scheibenwaschmittel-Konzentrat';\n } else return category;\n};\n\nexport async function showPdfInNewTab(\n { sheet, language, navigate, mapping, newWindow = true, languageMappings =null, t=null, i18n=null }: \n { sheet: IProductSheet; language: string; navigate: any; mapping: any; newWindow?: boolean; languageMappings?: any; t?: any; i18n?: any; }\n) {\n let path = '/';\n // mapping = languageMappings[i18n.language] || languageMappings['en'];\n\n try {\n console.log(\"30303030\")\n // Validate inputs\n if (!sheet || !language || !mapping) {\n console.error('Invalid input parameters for showPdfInNewTab');\n return;\n }\n\n console.log(\"3a3a3a3a3a3a3\")\n\n // Fetch updated sheet data if PDFs are marked as \"exists\"\n if (sheet?.pdfDe === \"exists\" && sheet?.pdfEn === \"exists\" && sheet?.pdfPt === \"exists\") {\n sheet = await getSheetData(sheet);\n }\n\n console.log(\"Updated sheet data:\", sheet);\n console.log(\"Mapping used:\", mapping);\n console.log(\"44444444444444444444444\")\n\n // Ensure all required PDFs are available\n if (sheet?.pdfDe && sheet?.pdfEn && sheet?.pdfPt) {\n console.log(\"5555555555555555\")\n // Determine file name and base64 PDF data\n const fileName = sheet[mapping.title] || `PDF_${sheet.sheetNumber}_${language}`;\n const base64Data = sheet[mapping.pdf];\n\n // Construct link source\n const linkSource = `data:application/pdf;base64,${encodeURI(base64Data)}`;\n const downloadLink = document.createElement('a');\n downloadLink.href = linkSource;\n downloadLink.download = fileName;\n\n if (!navigator.userAgent.toLowerCase().includes('android')) {\n const pdfWindow = newWindow ? window?.open(linkSource) : window;\n if (pdfWindow) {\n pdfWindow.document.write(`\n <html>\n <head>\n <title>${fileName}</title>\n <style>\n body { margin: 0; }\n iframe { border-width: 0; }\n </style>\n </head>\n <body>\n <embed \n width=\"100%\" \n height=\"100%\" \n src=\"${linkSource}#toolbar=0&navpanes=0&scrollbar=0\">\n </embed>\n </body>\n </html>\n `);\n pdfWindow.history.pushState({}, fileName, `/pdf/${sheet.sheetNumber}/${language}`);\n }\n console.log(\"66666666666666666666666\")\n } else {\n console.log(\"7777777777777777\")\n // Trigger download for Android devices\n downloadLink.click();\n }\n \n } else {\n console.log(\"88888888888888888888888\")\n // Navigate to fallback path if PDFs are not available\n path = `/sheet/${sheet.sheetNumber?.replaceAll(' ', '_')}/${language}`;\n closeCategoriesMenu();\n closeSearch();\n navigate(path);\n }\n } catch (error) {\n console.error('Error in showPdfInNewTab:', error);\n }\n}\n\n// Fetch updated sheet data\nexport function getSheetData(sheet: IProductSheet): Promise<IProductSheet> {\n return getSheetByNumber(sheet.sheetNumber)\n .then((results: any) => results.data as IProductSheet)\n .catch((error) => {\n console.error('Error fetching sheet data:', error);\n throw error;\n });\n}\n\n","import axios from 'axios';\nimport { BASE_URL } from '../globals/Constants';\nimport { setCategoryString } from './Helper';\nimport { IContact } from '../interfaces/IContact';\n\nexport const getSheetsByCategory = (category: string) => {\n const categoryText = setCategoryString(category);\n return axios.get(`${BASE_URL}category/${categoryText}`);\n};\n\nexport const getAllSheets = (category: string) => {\n return axios.get(`${BASE_URL}allSheetsByCategory/`);\n};\n\nexport const getAllData = (category: string) => {\n return axios.get(`${BASE_URL}all/`);\n};\n\nexport const getSheetNumbersByCategory = (category: string) => {\n const categoryText = setCategoryString(category);\n return axios.get(`${BASE_URL}categorySheetNumbers/${categoryText}`);\n};\n\nexport const getSheetByNumber = (sheetNumber: string) => {\n sheetNumber = sheetNumber.replaceAll('_', '%20');\n return axios.get(`${BASE_URL}sheet/${sheetNumber}`);\n};\n\nexport const getSearchResults = (text: string) => {\n return axios.get(`${BASE_URL}search/${text}`);\n};\n\nexport const getProductsById = (productId: string) => {\n return axios.get(`${BASE_URL}product/${productId}`);\n};\n\nexport async function sendContact(contactData: IContact) {\n const data = await axios.post(`${BASE_URL}contact`, contactData);\n return data;\n}\n","import React, { createContext, useContext } from 'react';\n\ntype LanguageMapping = {\n title: string;\n additionalInfo: string;\n html: string;\n pdf: string;\n dateFormat: string;\n };\n \n type LanguageMappings = {\n [key: string]: LanguageMapping;\n };\nexport const LanguageMappingsContext = createContext<LanguageMappings | null>(null);\n\nexport const useLanguageMappings = () => {\n const context = useContext(LanguageMappingsContext);\n if (!context) {\n throw new Error('useLanguageMappings must be used within a LanguageMappingsProvider');\n }\n return context;\n};","import React, { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport './NavWeb.css';\nimport '../../../../../globals/style/GlobalStyle.css';\nimport { useTranslation, Trans } from 'react-i18next';\nimport {\n getSheetsByCategory,\n getAllSheets,\n getAllData,\n getSheetNumbersByCategory,\n} from '../../../../../utility/FetchAPI';\nimport { CATEGORY_PROPS } from '../../../../../globals/Constants';\nimport { Link, useNavigate, useLocation } from 'react-router-dom';\nimport { showPdfInNewTab } from '../../../../../utility/Helper';\nimport {\n closeCategoriesMenu,\n closeSubCategoriesMenu,\n openSubCategoriesMenu,\n} from '../../../../../utility/DialogHelper';\n\nimport { WbIcon } from '@workbench/react';\nimport { useLanguageMappings } from '../../../../../globals/LanguageMappingsContext';\n\n// Styling\n\n/**\n * Interactive car image component for the main page.\n *\n * @returns\n */\nexport const NavWeb = () => {\n const { t, i18n } = useTranslation();\n const [categorySheets, setCategorySheets] = useState();\n const [ChoosenCategory, setChoosenCategory] = useState();\n const [categoryLink, setCategoryLink] = useState('');\n let navigate = useNavigate();\n let location = useLocation();\n const languageMappings = useLanguageMappings();\n console.log('LanguageMappings:', languageMappings);\n const mapping = languageMappings[i18n.language] || languageMappings['en'];\n\n useEffect(() => {\n const storedCategories = localStorage.getItem('categorySheets');\n const lastUpdated = localStorage.getItem('categoriesLastUpdated');\n const now = new Date().getTime();\n \n if (storedCategories && lastUpdated && (now - lastUpdated < 60 * 60 * 1000)) {\n setCategorySheets(JSON.parse(storedCategories));\n } else {\n fetchCategoriesFromAPI();\n localStorage.setItem('categoriesLastUpdated', now);\n }\n }, []); \n\n // const fetchCategoriesFromAPI = () => {\n // let categorzMap = new Map();\n // getAllData().then((result) => {\n\n\n // const sortedSheets = Object.keys(result.data).map(categoryKey => {\n // return {\n // category: categoryKey, \n // sheets: result.data[categoryKey].sort((itemA, itemB) => {\n // const sheetNumberA = itemA.sheetNumber;\n // const sheetNumberB = itemB.sheetNumber;\n // if(sheetNumberA.startsWith('DTFR') && !sheetNumberB.startsWith('DTFR')) {\n // return -1;\n // }\n // if(!sheetNumberA.startsWith('DTFR') && sheetNumberB.startsWith('DTFR')) {\n // return 1;\n // }\n // return sheetNumberA.localeCompare(sheetNumberB);\n // })\n // };\n // });\n // sortedSheets.forEach((category) => {\n // categorzMap.set(category.category, JSON.stringify(category.sheets));\n // });\n // const categoryMapArray = Array.from(categorzMap.entries());\n // localStorage.setItem('categorySheetsMap', JSON.stringify(categoryMapArray));\n // setCategorySheets(sortedSheets);\n // });\n // };\n\n\n const fetchCategoriesFromAPI = () => {\n let categorzMap = new Map();\n \n getAllData().then((result) => {\n // Initialize a map to store the grouped data by category\n let categoryGroups = {};\n\n // Group sheets by their category\n result.data.forEach((sheet) => {\n const category = sheet.category;\n \n // Initialize the array for this category if it doesn't exist\n if (!categoryGroups[category]) {\n categoryGroups[category] = [];\n }\n\n const newSheet = {\n sheetNumber: sheet.sheetNumber,\n pdfDe: sheet.pdfDe ? \"exists\" : null,\n pdfEn: sheet.pdfEn ? \"exists\" : null,\n pdfPt: sheet.pdfPt ? \"exists\" : null,\n titleDe: sheet.titleDe,\n titleEn: sheet.titleEn,\n titlePt: sheet.titlePt, \n htmlDe: sheet.htmlDe,\n htmlEn: sheet.htmlEn,\n htmlPt: sheet.htmlPt,\n };\n\n // Push the current sheet into the corresponding category group\n categoryGroups[category].push(newSheet);\n });\n\n // Sort the sheets within each category\n Object.keys(categoryGroups).forEach(categoryKey => {\n const sheets = categoryGroups[categoryKey];\n \n // Sort the sheets by sheetNumber or apply your custom sorting logic\n categoryGroups[categoryKey] = sheets.sort((itemA, itemB) => {\n const sheetNumberA = itemA.sheetNumber;\n const sheetNumberB = itemB.sheetNumber;\n\n if (sheetNumberA.startsWith('DTFR') && !sheetNumberB.startsWith('DTFR')) {\n return -1;\n }\n if (!sheetNumberA.startsWith('DTFR') && sheetNumberB.startsWith('DTFR')) {\n return 1;\n }\n return sheetNumberA.localeCompare(sheetNumberB);\n });\n });\n\n // Save the sorted categories in a map and local storage\n Object.keys(categoryGroups).forEach((categoryKey) => {\n categorzMap.set(categoryKey, JSON.stringify(categoryGroups[categoryKey]));\n });\n\n const categoryMapArray = Array.from(categorzMap.entries());\n localStorage.setItem('categorySheetsMap', JSON.stringify(categoryMapArray));\n \n // Set state with the sorted category data\n const sortedSheets = Object.keys(categoryGroups).map(categoryKey => ({\n category: categoryKey,\n sheets: categoryGroups[categoryKey]\n }));\n setCategorySheets(sortedSheets);\n });\n};\n\n \n\n const chooseCategory = (category) => {\n const categoryMapArray = JSON.parse(localStorage.getItem('categorySheetsMap'));\n const categorzMap = new Map(categoryMapArray);\n const categoryName = t(category.description, { lng: 'de' });\n let foundCategory = null;\n setChoosenCategory(category);\n if(categorzMap.get(categoryName)) {\n foundCategory = categorzMap.get(categoryName);\n setCategorySheets(JSON.parse(foundCategory));\n }\n\n if(!foundCategory) {\n // closeSubCategoriesMenu();\n setCategorySheets(null);\n }\n openSubCategoriesMenu();\n};\n\n const openLearnMore = (categoryLink) => {\n i18n.language == 'de'\n ? navigate(`/category${categoryLink}/de`)\n : navigate(`/category${categoryLink}/en`);\n closeCategoriesMenu();\n };\n\n return (\n <div id='mainCategoryMenu' className='nav-web-wrapper notVisible'>\n <nav\n class='wb-header-flyout-container wb-header-flyout-container--open'\n aria-label='Sub Navigations'\n >\n {/* <div class='wb-header-flyout-container__close-layer'></div> */}\n <div class='wb-header-flyout-container__inner'>\n <div className='nav-web-parent'>\n <wb-header-flyout level='2' open id='visibleMenu'>\n <div class='wb-header-flyout__body'>\n <div class='wb-header-flyout__topbar'>\n <div class='wb-header-flyout__topbar-outer'>\n <div class='wb-header-flyout__topbar-inner'>\n <button\n class='wb-header-flyout__control wb-header-flyout__control--icon-only wb-header-flyout__back-arrow'\n type='button'\n onClick={closeCategoriesMenu}\n >\n <wb-icon name='chevron-left' flip-rtl></wb-icon>\n </button>\n <h3 class='wb-header-flyout__topbar-headline menuTextDesktop'>\n {t('Categories')}\n </h3>\n <button\n class='wb-header-flyout__control wb-header-flyout__control--icon-only wb-header-flyout__x-button'\n type='button'\n onClick={closeCategoriesMenu}\n >\n <wb-icon name='close'></wb-icon>\n </button>\n <hr class='wb-header-flyout__topbar-divider' />\n </div>\n </div>\n </div>\n <div class='wb-header-flyout__nav'>\n <ul class='wb-header-flyout__nav-items'>\n {CATEGORY_PROPS.map((category, i, arr) => {\n return (\n <li>\n <button\n class='wb-header-flyout__nav-link'\n onClick={(e) => {\n e.preventDefault(); // Prevent default behavior\n if (category.static) {\n openLearnMore(category.link); // Redirect if category.static is true\n } else {\n chooseCategory(category); // Continue with regular category selection\n setCategoryLink(category.link);\n }\n }}\n >\n <span class='wb-header-flyout__nav-item'>\n <WbIcon\n className='wb-header-flyout__nav-item-icon'\n src={category.icon}\n />\n <span\n class={clsx(\n 'wb-header-flyout__nav-item-label',\n { ['lastMenuItem']: arr.length - 1 === i }\n )}\n >\n {t(category.description)}\n </span>\n <span class='wb-header-flyout__control wb-header-flyout__control--icon-only'>\n <wb-icon\n name='chevron-right'\n flip-rtl\n ></wb-icon>\n </span>\n </span>\n </button>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n </wb-header-flyout>\n </div>\n\n <div id='subCategoryMenu' className='nav-web-child notVisible'>\n <wb-header-flyout level='1' open>\n <div class='wb-header-flyout__body childDialog'>\n <div class='wb-header-flyout__topbar '>\n <div class='wb-header-flyout__topbar-outer childDialogContainer'>\n <div class='wb-header-flyout__topbar-inner '>\n <button\n class='wb-header-flyout__control wb-header-flyout__control--icon-only wb-header-flyout__back-arrow'\n type='button'\n onClick={closeSubCategoriesMenu}\n >\n <wb-icon name='chevron-left' flip-rtl></wb-icon>\n </button>\n <h3 class='wb-header-flyout__topbar-headline'>\n {ChoosenCategory ? (\n <WbIcon\n className='wb-header-flyout__topbar-headline-icon'\n src={ChoosenCategory.icon}\n />\n ) : (\n ''\n )}\n {ChoosenCategory ? t(ChoosenCategory.description) : ''}\n </h3>\n <button\n class='wb-header-flyout__control wb-header-flyout__control--icon-only wb-header-flyout__x-button'\n type='button'\n onClick={closeCategoriesMenu}\n >\n <wb-icon name='close'></wb-icon>\n </button>\n <hr class='wb-header-flyout__topbar-divider' />\n </div>\n </div>\n </div>\n <div class='wb-header-flyout__nav '>\n <ul class='wb-header-flyout__nav-items childNav'>\n <li class='desktopMarginChevron'>\n <div\n class='wb-header-flyout__nav-link'\n onClick={() => openLearnMore(categoryLink)}\n //to={(path(product))}\n >\n <span class='wb-header-flyout__nav-item'>\n <span class='wb-header-flyout__nav-item-label'>\n {t('LearnMore')}\n </span>\n </span>\n </div>\n </li>\n {categorySheets?.map((product) => {\n return (\n <li class='desktopMarginChevron'>\n <div\n class='wb-header-flyout__nav-link'\n onClick={() =>\n showPdfInNewTab({ sheet: product, language: i18n.language, navigate, mapping,newWindow: true,t,i18n })\n }\n //to={(path(product))}\n >\n <span class='wb-header-flyout__nav-item'>\n <span class='wb-header-flyout__nav-item-label'>\n {product.sheetNumber}\n </span>\n </span>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n </wb-header-flyout>\n </div>\n </div>\n </nav>\n </div>\n );\n};\n","import { useState, useEffect, useRef, useMemo } from 'react';\nimport '../../../globals/style/GlobalStyle.css';\nimport './SearchOverview.css';\nimport { getSearchResults } from '../../../utility/FetchAPI';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport { showPdfInNewTab } from '../../../utility/Helper';\nimport { closeSearch } from '../../../utility/DialogHelper';\nimport { useLanguageMappings } from '../../../globals/LanguageMappingsContext';\nimport { debounce } from \"lodash\";\n\n\n// Utility function to highlight search term\nconst highlightText = (text, searchTerm) => {\n if (!text) return ''; // Return an empty string if text is null or undefined\n if (!searchTerm) return text;\n const regex = new RegExp(`(${searchTerm})`, 'gi');\n return text.replace(regex, '<span class=\"highlight\">$1</span>');\n};\n\n// Utility function to get the relevant portion of text\nconst getRelevantText = (text = '', searchTerm = '') => {\n if (!text.trim()) return '';\n\n const words = text.split(/\\s+/); // Split by spaces (handles multiple spaces too)\n const lowerText = text.toLowerCase();\n const lowerSearchTerm = searchTerm.toLowerCase();\n\n // Find the index of the search term\n const searchIndex = lowerText.indexOf(lowerSearchTerm);\n\n if (searchIndex !== -1) {\n // Find the start and end word indices for the relevant snippet\n const wordStartIndex = lowerText.slice(0, searchIndex).split(/\\s+/).length - 1;\n const wordEndIndex = wordStartIndex + lowerSearchTerm.split(/\\s+/).length;\n\n // Include up to 5 words before and after the search term\n const startIdx = Math.max(0, wordStartIndex - 5);\n const endIdx = Math.min(words.length, wordEndIndex + 5);\n\n return words.slice(startIdx, endIdx).join(' ') + '...';\n }\n\n // If the search term is not found, return the first 10 words\n return words.slice(0, 10).join(' ') + '...';\n};\n\n\nexport const SearchOverview = () => {\n const languageMappings = useLanguageMappings();\n const [searchText, setSearchText] = useState('');\n const [searchResult, setSearchResult] = useState();\n const [abortController, setAbortController] = useState(null);\n const { t, i18n } = useTranslation();\n const mapping = languageMappings[i18n.language] || languageMappings['en'];\n let navigate = useNavigate();\n const location = useLocation();\n const abortControllerRef = useRef(null);\n const latestRequestIdRef = useRef(0);\n\n const search = async (text) => {\n if (abortController) {\n abortController.abort(); // Cancel the previous request\n }\n const controller = new AbortController();\n setAbortController(controller);\n // setSearchText(text);\n getSearchResults(text).then((results) => {\n setSearchResult(results.data);\n });\n };\n\n // ✅ Memoized debounce function to prevent re-creating on every render\n const debouncedSearch = useMemo(\n () =>\n debounce(async (text, requestId) => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n const controller = new AbortController();\n abortControllerRef.current = controller;\n \n try {\n const response = await getSearchResults(text, { signal: controller.signal });\n if (requestId === latestRequestIdRef.current) {\n setSearchResult(response.data); // ✅ Ensure only latest response is set\n }\n } catch (error) {\n if (error.name !== 'AbortError') {\n console.error('Search request failed:', error);\n }\n }\n }, 900), // ✅ 300ms debounce to wait for user to stop typing\n []\n );\n\n\n const handleSearchChange = (e) => {\n const text = e.target.value;\n setSearchText(text);\n latestRequestIdRef.current += 1; // ✅ Increment request ID for each new input\n debouncedSearch(text, latestRequestIdRef.current);\n };\n\n const path = (sheet) => {\n if (sheet.pdfDe == null && sheet.pdfEn == null) {\n return `/sheet/${sheet.sheetNumber.replaceAll(' ', '_')}/${i18n.language}`;\n }\n return location.pathname;\n };\n\n const searchButton = () => {\n getSearchResults(searchText).then((results) => {\n setSearchResult(results.data);\n });\n };\n\n const closeAndResetSearch = () => {\n closeSearch();\n setSearchText('');\n setSearchResult(null);\n };\n\n const selectSheetItemResult = (sheet) => {\n\n if (\n sheet.pdfDe === null ||\n sheet.pdfDe === '' ||\n sheet.pdfEn === null ||\n sheet.pdfEn === ''\n ) {\n setSearchText('');\n setSearchResult(null);\n }\n showPdfInNewTab({ sheet, language: i18n.language, navigate,mapping,newWindow: true,t,i18n });\n };\n\n return (\n <div\n id='searchContainer'\n className='notVisible searchContainerStyle foreground'\n >\n <div className='inputSearch'>\n <wb-input-control>\n <wb-input>\n <label>{t('SearchLabel')}</label>\n <input\n onChange={handleSearchChange}\n className='searchInput'\n type='text'\n value={searchText}\n />\n <wb-input-action>\n <button\n class='wb-round-button wb-round-button--small'\n type='button'\n onClick={() => {\n setSearchText('');\n setSearchResult(null);\n }}\n >\n <wb-icon class='wb-round-button__icon' name='close' />\n Clear input\n </button>\n </wb-input-action>\n </wb-input>\n </wb-input-control>\n </div>\n <div class='searchButton'>\n <button\n type='button'\n aria-label='Search Button'\n class='wb-button wb-button--primary wb-button--large wb-button--icon-only'\n onClick={searchButton}\n >\n <wb-icon\n class='wb-button__icon'\n aria-hidden='true'\n name='search'\n ></wb-icon>\n Search\n </button>\n </div>\n <wb-button-control\n variant='tertiary'\n class='backButton wb-type-button-secondary'\n onClick={closeAndResetSearch}\n >\n <button type='button'>{t('BackToOverview')}</button>\n </wb-button-control>\n <div className='textWhite wb-type-label textSpace'>\n {searchText != '' && (\n <p>{`${t('SearchResultPart1')} ${searchResult?.length} ${t(\n 'SearchResultPart2'\n )}`}</p>\n )}\n </div>\n <div class='cardContainer'>\n {searchResult?.map((productSheet) => {\n const langKey = `additionalInfo${i18n.language.charAt(0).toUpperCase() + i18n.language.slice(1)}`;\n const rawText = productSheet[langKey] || '';\n const relevantText = getRelevantText(rawText, searchText);\n const highlightedText = highlightText(relevantText, searchText);\n\n return (\n <div\n class='wb-padding-s searchCard'\n onClick={() => selectSheetItemResult(productSheet)}\n >\n <wb-card interactive variant='dark-grey' class=\"hydrated\" style={{ border: \"none\" }}>\n {/* <Link\n onClick={() =>\n showPdfInNewTab({ productSheet, language: i18n.language, navigate, mapping,newWindow: true,t,i18n })\n }\n to={path(productSheet)}\n type='button'\n className='wb-button wb-type-copy-strong'\n > */}\n \n <div class=\"totalcontentRow\">\n <div class=\"left-column\">\n <div class=\"text wb-type-hint firstColumnHeader\">{t(\"Sheet\")}</div>\n <div \n className=\"wb-type-heading-m firstColumnText\" \n // style={{ fontSize: \"2.125rem\" }}\n >\n {productSheet?.sheetNumber}\n </div>\n </div>\n <div class=\"right-column\">\n \n <div class=\"cardbox\">\n <div class=\"wb-type-hint secondColumnHeader\" \n // style={{ fontSize: \"2.125rem\" }}\n >\n {t(\"Description\")}</div>\n\n \n\n \n\n\n <div class=\"wb-type-label secondColumnText\"\n // style={{ fontSize: \"2.125rem\" }}\n dangerouslySetInnerHTML={{\n __html: (() => {\n switch (i18n.language) {\n case \"de\":\n return highlightText(productSheet?.titleDe || '', searchText);\n case \"pt\":\n return highlightText(productSheet?.titlePt || '', searchText);\n default:\n return highlightText(productSheet?.titleEn || '', searchText); // Default to English\n }\n })(),\n }}\n ></div>\n\n <div class=\"text wb-type-label\" dangerouslySetInnerHTML={{\n __html: highlightedText,\n }}></div>\n\n <div class=\"\"><wb-icon name='chevron-right' class='cardIcon'></wb-icon></div>\n </div>\n\n \n\n {/* <div class=\"text wb-type-label \">{t(productSheet?.category)}</div> */}\n\n {/* <div class=\"text wb-type-label\">{(() => {\n switch (i18n.language) {\n case \"de\":\n return highlightText(productSheet?.additionalInfoDe, searchText);\n case \"pt\":\n return highlightText(productSheet?.additionalInfoPt, searchText);\n default:\n return highlightText(productSheet?.additionalInfoEn, searchText); // Default to English\n }\n })()}</div> */}\n\n \n </div>\n </div>\n\n {/* <a class='wb-type-copy-strong'> */}\n {/* <div class=\"contentRow\">\n <div class=\"firstColumn\">\n <div class=\"wb-type-hint firstColumnHeader\">{t(\"Sheet\")}</div>\n <div class=\"wb-type-heading-m firstColumnText\">\n {productSheet?.sheetNumber}\n </div>\n </div>\n <hr class=\"verticalLineCard\" />\n <div class=\"secondColumn\">\n <div class=\"wb-type-hint secondColumnHeader\">{t(\"Description\")}</div>\n <div class=\"wb-type-label secondColumnText\">\n {(() => {\n switch (i18n.language) {\n case \"de\":\n return productSheet?.titleDe;\n case \"pt\":\n return productSheet?.titlePt;\n default:\n return productSheet?.titleEn; // Default to English\n }\n })()}\n </div>\n <div className='secondColumnDetails'>\n {(() => {\n switch (i18n.language) {\n case \"de\":\n return productSheet?.additionalInfoDe;\n case \"pt\":\n return productSheet?.additionalInfoPt;\n default:\n return productSheet?.additionalInfoDe; // Default to English\n }\n })()}\n </div>\n </div>\n </div> */}\n {/* <wb-icon name='chevron-right' class='cardIcon'></wb-icon> */}\n {/* </a> */}\n {/* </Link> */}\n </wb-card>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n","/* eslint-disable */\n\nimport {createStyles, makeStyles} from '@material-ui/core';\nimport drop from '../../../resource/icons/ic_bevo_drop_16_grey.svg';\nimport dropWhite from '../../../resource/icons/ic_bevo_drop_16.svg';\nimport './header_overwrite.css';\nimport './header.css';\n\nimport '../../../globals/style/GlobalStyle.css';\nimport {useTranslation, Trans} from 'react-i18next';\nimport {NavWeb} from './subcomponent/navWeb/NavWeb';\nimport {SearchOverview} from '../search/SearchOverview';\nimport {Link} from 'react-router-dom';\nimport {\n\topenCategoriesMenu,\n\tcloseCategoriesMenu,\n\tshowProviderTab,\n} from '../../../utility/DialogHelper';\nimport {useEffect, useState} from 'react';\n\n// Styling\nconst useStyles = makeStyles(() =>\n\tcreateStyles({\n\t\ticon: {\n\t\t\tcolor: 'white',\n\t\t},\n\t})\n);\n\nexport default function Header() {\n\tconst classes = useStyles();\n\tconst {t, i18n} = useTranslation();\n\n\tuseEffect(() => {\n\t\tswitch (i18n.language) {\n\t\t\tcase 'de':\n\t\t\t\tsetLanguageDe(null);\n\t\t\t\tbreak;\n\t\t\tcase 'pt':\n\t\t\t\tsetLanguagePt(null);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsetLanguageEn(null);\n\t\t\t\tbreak;\n\t\t}\n\t}, [i18n.language]);\t\n\n\tconst setLanguageDe = (e) => {\n\t\te?.preventDefault();\n\t\ti18n.changeLanguage('de');\n\t\tdocument\n\t\t\t?.getElementById('deSwitch')\n\t\t\t?.classList?.add('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('enSwitch')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('ptSwitch')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('deSwitchMobile')\n\t\t\t?.classList?.add('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('enSwitchMobile')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('ptSwitchMobile')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t};\n\n\tconst setLanguageEn = (e) => {\n\t\te?.preventDefault();\n\t\ti18n.changeLanguage('en');\n\t\tdocument\n\t\t\t?.getElementById('enSwitch')\n\t\t\t?.classList?.add('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('deSwitch')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('ptSwitch')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('enSwitchMobile')\n\t\t\t?.classList?.add('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('deSwitchMobile')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('ptSwitchMobile')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t};\n\n\tconst setLanguagePt = (e) => {\n\t\te?.preventDefault();\n\t\ti18n.changeLanguage('pt');\n\t\tdocument\n\t\t\t?.getElementById('ptSwitch')\n\t\t\t?.classList?.add('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('enSwitch')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('deSwitch')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('ptSwitchMobile')\n\t\t\t?.classList?.add('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('enSwitchMobile')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t\tdocument\n\t\t\t?.getElementById('deSwitchMobile')\n\t\t\t?.classList?.remove('wb-language-menu__item--active');\n\t};\n\n\tconst openSearch = (e) => {\n\t\te.preventDefault();\n\t\tcloseCategoriesMenu();\n\n\t\tdocument\n\t\t\t.getElementsByClassName('.wb-header__logo-container')[0]\n\t\t\t?.classList.add('foreground');\n\n\t\tdocument.getElementById('searchContainer')?.classList.add('visible');\n\n\t\tdocument.getElementById('searchContainer')?.classList.remove('notVisible');\n\n\t\tdocument.getElementById('deactivedBackground')?.classList.add('visible');\n\t\tdocument.getElementById('deactivedBackground')?.classList.add('darkColor');\n\n\t\tdocument\n\t\t\t.getElementById('deactivedBackground')\n\t\t\t?.classList.remove('notVisible');\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SearchOverview></SearchOverview>\n\t\t\t<div className='headerContainer'>\n\t\t\t\t<wb-headers logo-href='/'>\n\t\t\t\t\t<div className=\"wb-header__content-width\">\n\t\t\t\t\t\t<div className=\"wb-header__logo-container\">\n\t\t\t\t\t\t\t<a className=\"wb-header__logo\" href=\"/\">\n\t\t\t\t\t\t\t\t<img src=\"/MB-star_n_web.svg\" className=\"wb-header__star\" />\n\t\t\t\t\t\t\t\t<div className=\"wb-header__claim-wrapper\">\n\t\t\t\t\t\t\t\t\t<img src=\"/mbo_claim_64_n_web-01.svg\" className=\"wb-header__claim\"/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"wb-header__nav-container\" role=\"navigation\">\n\t\t\t\t\t<nav\n\t\t\t\t\t\tclassName='wb-header-nav wb-header-nav--desktop wb-header-nav--meta'\n\t\t\t\t\t\taria-label='Meta Navigation'\n\t\t\t\t\t>\n\t\t\t\t\t\t<nav\n\t\t\t\t\t\t\tclassName='wb-language-menu foreground'\n\t\t\t\t\t\t\taria-label='Language Navigation'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tonClick={setLanguageDe}\n\t\t\t\t\t\t\t\tid='deSwitch'\n\t\t\t\t\t\t\t\tclassName='wb-language-menu__item'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className='wb-language-menu__item-inner'>\n\t\t\t\t\t\t\t\t\t<span className='wb-visually-hidden'>Select Language:</span>\n\t\t\t\t\t\t\t\t\t<span>DE</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tonClick={setLanguageEn}\n\t\t\t\t\t\t\t\tid='enSwitch'\n\t\t\t\t\t\t\t\tclassName='wb-language-menu__item wb-language-menu__item--active'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className='wb-language-menu__item-inner'>\n\t\t\t\t\t\t\t\t\t<span className='wb-visually-hidden'>Select Language:</span>\n\t\t\t\t\t\t\t\t\t<span>EN</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tonClick={setLanguagePt}\n\t\t\t\t\t\t\t\tid='ptSwitch'\n\t\t\t\t\t\t\t\tclassName='wb-language-menu__item wb-language-menu__item--active'\n\t\t\t\t\t\t\t\tstyle={{ display: '' }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className='wb-language-menu__item-inner'>\n\t\t\t\t\t\t\t\t\t<span className='wb-visually-hidden'>Select Language:</span>\n\t\t\t\t\t\t\t\t\t<span>PT</span>\n\t\t\t\t\t\t\t\t\t<div className='tooltip-container'><div className='tooltip'>{t('NewAvailable')}</div></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass='wb-header-nav__control wb-header-nav__control--icon-only'\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t\tonClick={openSearch}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<wb-icon name='search' aria-hidden='true'></wb-icon>\n\t\t\t\t\t\t\t<span class='wb-visually-hidden'>ADD BUTTON TEXT</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</nav>\n\n\t\t\t\t\t<nav\n\t\t\t\t\t\tclass='wb-header-nav wb-header-nav--desktop wb-header-nav--main'\n\t\t\t\t\t\taria-label='Main Navigation (First Level)'\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass='wb-header-nav__control wb-header-nav__control--offset-start'\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t\tonClick={openCategoriesMenu}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* <img\n style={{ width: '16px', marginRight: '8px' }}\n src={drop}\n ></img> */}\n\t\t\t\t\t\t\t<wb-icon src={drop} aria-hidden='true'></wb-icon>\n\t\t\t\t\t\t\t{t('Categories')}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t{/* <button class='wb-header-nav__control' href='#'>\n {t('OilFinder')}\n </button> */}\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName='wb-header-nav__control highlightBgColor'\n\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\ti18n.language === 'en'\n\t\t\t\t\t\t\t\t ? \"/DTFR_Overview.pdf\"\n\t\t\t\t\t\t\t\t : i18n.language === 'pt'\n\t\t\t\t\t\t\t\t ? \"/DTFR_Visão_geral.pdf\"\n\t\t\t\t\t\t\t\t : \"/DTFR_Ãœbersicht.pdf\"\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('MappingOverview')}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclass='wb-header-nav__control'\n\t\t\t\t\t\t\tonClick={showProviderTab}\n\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('Provider')}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<Link class='wb-header-nav__control' to={'/contact'}>\n\t\t\t\t\t\t\t{t('Contact')}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</nav>\n\n\t\t\t\t\t<nav\n\t\t\t\t\t\tclass='wb-header-nav wb-header-nav--tablet wb-header-nav--start'\n\t\t\t\t\t\taria-label='Main Navigation'\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass='wb-header-nav__control wb-header-nav__control--icon-only'\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t\tonClick={openCategoriesMenu}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<wb-icon src={dropWhite} aria-hidden='true'></wb-icon>\n\t\t\t\t\t\t\t<span class='wb-visually-hidden'>Categories</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</nav>\n\n\t\t\t\t\t<nav\n\t\t\t\t\t\tclass='wb-header-nav wb-header-nav--mobile wb-header-nav--start mobileHeader'\n\t\t\t\t\t\taria-label='Main Navigation Controls'\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass='wb-header-nav__control wb-header-nav__control--icon-only'\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t\tonClick={openCategoriesMenu}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<wb-icon src={dropWhite} aria-hidden='true'></wb-icon>\n\t\t\t\t\t\t\t<span class='wb-visually-hidden'>Kategorien</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</nav>\n\t\t\t\t\t<nav\n\t\t\t\t\t\tclass='wb-language-menu foreground mobileLanguageSwitch notDesktop'\n\t\t\t\t\t\taria-label='Language Navigation'\n\t\t\t\t\t>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tonClick={setLanguageDe}\n\t\t\t\t\t\t\tid='deSwitchMobile'\n\t\t\t\t\t\t\tclass='wb-language-menu__item mobileLanguageItem'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class='wb-language-menu__item-inner '>\n\t\t\t\t\t\t\t\t<span class='wb-visually-hidden'>Select Language:</span>\n\t\t\t\t\t\t\t\t<span>DE</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tonClick={setLanguageEn}\n\t\t\t\t\t\t\tid='enSwitchMobile'\n\t\t\t\t\t\t\tclass='wb-language-menu__item wb-language-menu__item--active mobileLanguageItem'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class='wb-language-menu__item-inner '>\n\t\t\t\t\t\t\t\t<span class='wb-visually-hidden'>Select Language:</span>\n\t\t\t\t\t\t\t\t<span>EN</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tonClick={setLanguagePt}\n\t\t\t\t\t\t\tid='ptSwitchMobile'\n\t\t\t\t\t\t\tclass='wb-language-menu__item wb-language-menu__item--active mobileLanguageItem'\n\t\t\t\t\t\t\tstyle={{ display: '' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class='wb-language-menu__item-inner '>\n\t\t\t\t\t\t\t\t<span class='wb-visually-hidden'>Select Language:</span>\n\t\t\t\t\t\t\t\t<span>PT</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</nav>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass='wb-header-nav__control wb-header-nav__control--icon-only notDesktop'\n\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\tonClick={openSearch}\n\t\t\t\t\t>\n\t\t\t\t\t\t<wb-icon name='search' aria-hidden='true'></wb-icon>\n\t\t\t\t\t\t<span class='wb-visually-hidden'>ADD BUTTON TEXT</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t</wb-headers>\n\t\t\t\t<NavWeb></NavWeb>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { useTranslation, Trans } from 'react-i18next';\nimport {\n showProviderTab,\n showLegalNoticeTab,\n showDataPrivacyTab,\n showSettingsTab,\n} from '../../utility/DialogHelper';\nimport { Link } from 'react-router-dom';\n\n// Styling\nconst useStyles = makeStyles(() =>\n createStyles({\n verticalLine: {\n marginTop: '48px',\n marginBottom: '24px',\n width: '100%',\n backgroundColor: '#333333',\n color: '#333333',\n borderWidth: 0,\n height: '1px',\n },\n linkText: {\n color: '#bfbfbf',\n fontSize: 'small',\n marginRight: '36px',\n marginBottom: '24px',\n },\n container: {\n height: '80px',\n textAlign: 'center',\n },\n })\n);\n\n/**\n * Main page (landing page or home page) component.\n *\n * @returns\n */\n\nexport function Footer() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n\n const showDetails = () => {\n document!.getElementById('cookieModelContainer')!.classList.remove('hide');\n };\n\n return (\n <>\n <hr className={clsx(classes.verticalLine)}></hr>\n <div className='wb-grid-container'>\n <div className={clsx('wb-grid-row', classes.container)}>\n <div className='wb-grid-col-mq1-12'>\n <a\n onClick={showProviderTab}\n className={clsx(\n 'wb-link wb-link--standalone showForSmartphone',\n classes.linkText\n )}\n >\n {t('Provider')}\n </a>{' '}\n <a\n onClick={showProviderTab}\n className={clsx(\n 'wb-link wb-link--standalone hideForSmartphone',\n classes.linkText\n )}\n >\n {t('ReservedRights')}\n </a>{' '}\n <a\n onClick={showLegalNoticeTab}\n className={clsx('wb-link wb-link--standalone', classes.linkText)}\n >\n {t('LegalNotice')}\n </a>{' '}\n {/*<a*/}\n {/* onClick={showSettingsTab}*/}\n {/* className={clsx('wb-link wb-link--standalone', classes.linkText)}*/}\n {/*>*/}\n {/* {t('Settings')}*/}\n {/*</a>{' '}*/}\n <a\n onClick={showDataPrivacyTab}\n className={clsx('wb-link wb-link--standalone', classes.linkText)}\n >\n {t('PrivacyStatement')}\n </a>{' '}\n <Link\n className={clsx('wb-link wb-link--standalone', classes.linkText)}\n to={'/contact'}\n >\n {t('Contact')}\n </Link>{' '}\n </div>\n </div>\n </div>\n </>\n );\n}\n","export interface IProduct {\n productName: string;\n description: string;\n productId: string;\n link: string | null;\n privateLabel: string;\n type30: boolean;\n type40: boolean;\n type50: boolean;\n type80: boolean;\n type90: boolean;\n type0W: boolean;\n type0W20: boolean;\n type0W30: boolean;\n type0W40: boolean;\n type5W20: boolean;\n type5W30: boolean;\n type5W40: boolean;\n type5W50: boolean;\n type10W: boolean;\n type10W30: boolean;\n type10W40: boolean;\n type10W60: boolean;\n type15W40: boolean;\n type20W20: boolean;\n type20W50: boolean;\n type75W: boolean;\n type75W80: boolean;\n type75W85: boolean;\n type75W90: boolean;\n type80W: boolean;\n type80W90: boolean;\n type80W85: boolean;\n type85W90: boolean;\n}\n\nexport const emptyProductObject = {\n productName: '',\n description: '',\n productId: '',\n link: null,\n privateLabel: '',\n type30: false,\n type40: false,\n type50: false,\n type80: false,\n type90: false,\n type0W: false,\n type0W20: false,\n type0W30: false,\n type0W40: false,\n type5W20: false,\n type5W30: false,\n type5W40: false,\n type5W50: false,\n type10W: false,\n type10W30: false,\n type10W40: false,\n type10W60: false,\n type15W40: false,\n type20W20: false,\n type20W50: false,\n type75W: false,\n type75W80: false,\n type75W85: false,\n type75W90: false,\n type80W: false,\n type80W90: false,\n type80W85: false,\n type85W90: false,\n};\n","import { IProduct, emptyProductObject } from './IProduct';\n\nexport interface IProductSheet {\n sheetNumber: string;\n oldSheetNumber?: string;\n title: string;\n productCollection: IProduct[];\n category: string;\n titleDe: string;\n titleEn: string;\n titlePt: string;\n htmlDe: string;\n htmlEn: string;\n htmlPt: string;\n pdfEn: string;\n pdfDe: string;\n pdfPt: string;\n additionalInfoDe: string;\n additionalInfoEn: string;\n additionalInfoPt: string;\n publishDate: Date|string;\n privateLabels: Record<string, string>;\n [key: string]: string | undefined | Date | IProduct[] | Record<string, string> | any ;\n}\n\nexport const emptyProductSheetObject = {\n sheetNumber: '',\n title: '',\n productCollection: [emptyProductObject],\n category: '',\n titleDe: '',\n titleEn: '',\n titlePt: '',\n htmlDe: '',\n htmlEn: '',\n htmlPt: '',\n pdfEn: '',\n pdfDe: '',\n pdfPt: '',\n additionalInfoDe: '',\n additionalInfoEn: '',\n additionalInfoPt: '',\n publishDate: new Date(),\n privateLabels: {},\n};\n\n\nexport interface IColumn {\n key: keyof IProduct;\n check: (row: IProduct) => boolean;\n isLink?: boolean;\n}","import React, { useState, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { getSheetByNumber } from '../../../utility/FetchAPI';\nimport { WbIcon } from '@workbench/react';\n\nimport { useTranslation } from 'react-i18next';\nimport { IProduct } from '../../../interfaces/IProduct';\nimport {\n emptyProductSheetObject,\n IProductSheet,\n IColumn,\n} from '../../../interfaces/IProductSheet';\nimport { TABLE_HEADER } from '../../../globals/Constants';\nimport './SheetTable.css';\n\nexport const SheetTable = (props: {\n sheet: IProductSheet;\n language: string;\n showMore: boolean;\n setShowMore: (showMore: boolean) => void;\n setLinkedFluidCount: (count: number) => void;\n setUnlinkedFluidCount: (count: number) => void;\n}) => {\n const { t } = useTranslation();\n const [sheet, setSheet] = useState(props.sheet);\n let rowsWithLinks = sheet?.productCollection?.filter(row => row?.link !== null) || [];\n let rowsWithoutLinks = sheet?.productCollection?.filter(row => row?.link === null) || [];\n props.setLinkedFluidCount(rowsWithLinks?.length || 0);\n props.setUnlinkedFluidCount(rowsWithoutLinks?.length || 0);\n\n useEffect(() => {\n setSheet(props.sheet);\n\n document?.getElementById('sheetTableId')?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n \n props.setLinkedFluidCount(rowsWithLinks?.length || 0);\n props.setUnlinkedFluidCount(rowsWithoutLinks?.length || 0);\n props.setShowMore(rowsWithLinks.length === 0 && rowsWithoutLinks.length > 0);\n }, [props.sheet, props.language,rowsWithLinks?.length]);\n\n const columns: IColumn[] = [\n { key: 'productName', check: (row: IProduct) => row?.productName !== null, isLink: true },\n { key: 'type30', check: (row: IProduct) => row?.type30 !== false },\n { key: 'type40', check: (row:IProduct) => row?.type40 !== false },\n { key: 'type80', check: (row: IProduct) => row?.type80 !== false },\n { key: 'type90', check: (row: IProduct) => row?.type90 !== false },\n { key: 'type0W', check: (row: IProduct) => row?.type0W !== false },\n { key: 'type0W20', check: (row: IProduct) => row?.type0W20 !== false },\n { key: 'type0W30', check: (row: IProduct) => row?.type0W30 !== false },\n { key: 'type0W40', check: (row: IProduct) => row?.type0W40 !== false },\n { key: 'type5W20', check: (row: IProduct) => row?.type5W20 !== false },\n { key: 'type5W30', check: (row: IProduct) => row?.type5W30 !== false },\n { key: 'type5W40', check: (row: IProduct) => row?.type5W40 !== false },\n { key: 'type5W50', check: (row: IProduct) => row?.type5W50 !== false },\n { key: 'type10W30', check: (row: IProduct) => row?.type10W30 !== false },\n { key: 'type10W40', check: (row: IProduct) => row?.type10W40 !== false },\n { key: 'type10W60', check: (row: IProduct) => row?.type10W60 !== false },\n { key: 'type15W40', check: (row: IProduct) => row?.type15W40 !== false },\n { key: 'type20W50', check: (row: IProduct) => row?.type20W50 !== false },\n { key: 'type75W', check: (row: IProduct) => row?.type75W !== false },\n { key: 'type75W80', check: (row: IProduct) => row?.type75W80 !== false },\n { key: 'type75W85', check: (row: IProduct) => row?.type75W85 !== false },\n { key: 'type75W90', check: (row: IProduct) => row?.type75W90 !== false },\n { key: 'type80W', check: (row: IProduct) => row?.type80W !== false },\n { key: 'type80W90', check: (row: IProduct) => row?.type80W90 !== false },\n { key: 'type80W85', check: (row: IProduct) => row?.type80W85 !== false },\n { key: 'type85W90', check: (row: IProduct) => row?.type85W90 !== false },\n { key: 'description', check: (row: IProduct) => row?.description !== null },\n ];\n\n return (\n <div>\n\n {sheet?.productCollection?.length > 0 && (\n <div id='sheetTableId' className='wb-padding-s sheetTableDesktop'>\n <table className='wb-table wb-table--striped sheetTable'>\n <thead className='tableHeader'>\n <tr>\n {columns.map(column => \n sheet?.productCollection?.some(column.check) && (\n <th scope='col' key={column.key}>{t(TABLE_HEADER[column.key].value)}</th>\n )\n )}\n </tr>\n </thead>\n <tbody>\n {rowsWithLinks.map((row, key) => (\n <tr key={key}>\n {columns.map(column => \n sheet?.productCollection?.some(column.check) && (\n <td key={column.key}>\n {column.isLink && row?.link ? (\n <a\n target='_blank'\n className='wb-link dt-link'\n href={row?.link} rel=\"noreferrer\"\n >\n {row[column.key]}\n </a>\n ) : column.key.startsWith('type') && row[column.key] ? (\n <WbIcon name='checkmark' className='iconCheck'></WbIcon>\n ) : (\n row[column.key]\n )}\n </td>\n )\n )}\n </tr>\n ))}\n {props.showMore && rowsWithoutLinks.map((row, key) => (\n <tr key={key}>\n {columns.map(column => \n sheet?.productCollection?.some(column.check) && (\n <td key={column.key}>\n {column.isLink && row?.link ? (\n <a\n target='_blank'\n className='wb-link'\n href={row?.link} rel=\"noreferrer\"\n >\n {row[column.key]}\n </a>\n ) : column.key.startsWith('type') && row[column.key] ? (\n <WbIcon name='checkmark' className='iconCheck'></WbIcon>\n ) : (\n row[column.key]\n )}\n </td>\n )\n )}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n\n\n\n\n\n\n {/* \n\n {sheet?.productCollection?.length > 0 && (\n <div id='sheetTableId' className='wb-padding-s sheetTableDesktop'>\n <table className='wb-table wb-table--striped sheetTable'>\n <thead className='tableHeader'>\n <tr>\n {sheet?.productCollection?.some(\n (i) => i?.productName !== null\n ) && (\n <th scope='col'>{t(TABLE_HEADER['productName'].value)}</th>\n )}\n {sheet?.productCollection?.some((i) => i?.type30 !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type30'].value)}</th>\n )}\n {sheet?.productCollection?.some((i) => i?.type40 !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type40'].value)}</th>\n )}\n {sheet?.productCollection?.some((i) => i?.type80 !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type80'].value)}</th>\n )}\n {sheet?.productCollection?.some((i) => i?.type90 !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type90'].value)}</th>\n )}\n {sheet?.productCollection?.some((i) => i?.type0W !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type0W'].value)}</th>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type0W20 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type0W20'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type0W30 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type0W30'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type0W40 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type0W40'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type5W20 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type5W20'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type5W30 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type5W30'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type5W40 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type5W40'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type5W50 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type5W50'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type10W30 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type10W30'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type10W40 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type10W40'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type10W60 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type10W60'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type15W40 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type15W40'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type20W50 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type20W50'].value)}</th>}\n {sheet?.productCollection?.some((i) => i.type75W !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type75W'].value)}</th>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type75W80 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type75W80'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type75W85 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type75W85'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type75W90 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type75W90'].value)}</th>}\n {sheet?.productCollection?.some((i) => i.type80W !== false) && (\n <th scope='col'>{t(TABLE_HEADER['type80W'].value)}</th>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type80W90 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type80W90'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type80W85 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type80W85'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.type85W90 !== false\n ) && <th scope='col'>{t(TABLE_HEADER['type85W90'].value)}</th>}\n {sheet?.productCollection?.some(\n (i) => i?.description !== null\n ) && (\n <th scope='col'>{t(TABLE_HEADER['description'].value)}</th>\n )}\n </tr>\n </thead>\n <tbody>\n {sheet?.productCollection?.map((row, key) => {\n return (\n <tr key={key}>\n {row?.link !== null ? (\n <a\n target='_blank'\n className={clsx({\n ['wb-link dt-link']: row?.link != null,\n })}\n href={row?.link}\n >\n <td>{row?.productName}</td>\n </a>\n ) : (\n <td>{row?.productName}</td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type30 !== false\n ) && (\n <td>\n {row?.type30 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type40 !== false\n ) && (\n <td>\n {row?.type40 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type80 !== false\n ) && (\n <td>\n {row?.type80 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type90 !== false\n ) && (\n <td>\n {row?.type90 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type0W !== false\n ) && (\n <td>\n {row?.type0W && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type0W20 !== false\n ) && (\n <td>\n {row?.type0W20 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type0W30 !== false\n ) && (\n <td>\n {row?.type0W30 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type0W40 !== false\n ) && (\n <td>\n {row?.type0W40 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type5W20 !== false\n ) && (\n <td>\n {row?.type5W20 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type5W30 !== false\n ) && (\n <td>\n {row?.type5W30 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type5W40 !== false\n ) && (\n <td>\n {row?.type5W40 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type5W50 !== false\n ) && (\n <td>\n {row?.type5W50 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type10W30 !== false\n ) && (\n <td>\n {row?.type10W30 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type10W40 !== false\n ) && (\n <td>\n {row?.type10W40 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type10W60 !== false\n ) && (\n <td>\n {row?.type10W60 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type15W40 !== false\n ) && (\n <td>\n {row?.type15W40 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type20W50 !== false\n ) && (\n <td>\n {row?.type20W50 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type75W !== false\n ) && (\n <td>\n {row?.type75W && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type75W80 !== false\n ) && (\n <td>\n {row?.type75W80 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type75W85 !== false\n ) && (\n <td>\n {row?.type75W85 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type75W90 !== false\n ) && (\n <td>\n {row?.type75W90 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type80W !== false\n ) && (\n <td>\n {row?.type80W && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type80W90 !== false\n ) && (\n <td>\n {row?.type80W90 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type80W85 !== false\n ) && (\n <td>\n {row?.type80W85 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n {sheet?.productCollection?.some(\n (i) => i?.type85W90 !== false\n ) && (\n <td>\n {row?.type85W90 && (\n <WbIcon\n name='checkmark'\n className='iconCheck'\n ></WbIcon>\n )}\n </td>\n )}\n <td>{row?.description}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )} */}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport { parse } from 'date-format-parse';\n\nimport { WbIcon } from '@workbench/react';\nimport {\n emptyProductSheetObject,\n IProductSheet,\n} from '../../interfaces/IProductSheet';\nimport { getProductsById } from '../../utility/FetchAPI';\nimport { SheetTable } from '../category/sheetPage/SheetTable';\nimport { useTranslation } from 'react-i18next';\nimport './QrOverview.css';\nimport moment from 'moment';\nimport { emptyProductObject, IProduct } from '../../interfaces/IProduct';\n\nexport const QrOverview = () => {\n //Get data in Use Effect\n const [productSheet, setProductSheet] = useState(emptyProductSheetObject);\n const [sheetNumbers, setSheetNumbers]: any = useState([]);\n const [foundProductCollection, setFoundProductColletion] = useState([\n emptyProductObject,\n ]);\n const [isLoading, setIsLoading] = useState(true);\n const [linkedFluidCount, setLinkedFluidCount] = useState(0);\n const [unlinkedFluidCount, setUnlinkedFluidCount] = useState(0);\n const [showMore, setShowMore] = useState(false);\n const { productId } = useParams();\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n let numbers: string[] = [];\n let resultSheet = emptyProductSheetObject;\n getProductsById(productId!).then((result: any) => {\n console.log(\n '🚀 ~ file: qrOverview.tsx ~ line 33 ~ getProductsById ~ result.data[0]',\n result.data[0]\n );\n if (typeof result.data[0] !== 'undefined') {\n setProductSheet(result.data[0]);\n\n resultSheet = result.data[0];\n result.data.map((productSheet: any) => {\n numbers.push(productSheet.sheetNumber);\n numbers.sort((a, b) => (a < b ? -1 : 1));\n setSheetNumbers(numbers);\n let foundProducts = productSheet.productCollection.filter(\n (product: any) => product.productId === productId\n );\n foundProductCollection.push(...foundProducts);\n });\n\n resultSheet.productCollection = [\n foundProductCollection[foundProductCollection.length - 1],\n ];\n setProductSheet(resultSheet);\n }\n setIsLoading(false);\n });\n }, []);\n\n return (\n <div className='qrPage'>\n {isLoading === false ? (\n <div>\n {sheetNumbers.length < 1 ? (\n <h2 className='textWhite wb-type-heading-l qrTitle'>\n {t('ProductNotApproved')}\n </h2>\n ) : (\n <div>\n <h2 className='textWhite wb-type-heading-l qrTitle'>\n {t('ProductApproval')}\n </h2>\n\n <div>\n <div className='qrLinkColletion'>\n <p className='textWhite wb-type-copy-strong linkText'>\n {' '}\n {t('Category')}: {t(productSheet.category)}{' '}\n </p>\n </div>\n <div className='qrTableContainer'>\n <p className='textWhite wb-type-label timeLabel'>\n {t('LastUpdate')}{' '}\n {i18n.language === 'de'\n ? moment(\n parse(\n productSheet.publishDate\n .toString()\n .replaceAll(',', ''),\n 'DD.MM.YY HH:mm'\n ).toString()\n ).format('DD.MM.YYYY')\n : moment(\n parse(\n productSheet.publishDate\n .toString()\n .replaceAll(',', ''),\n 'DD.MM.YY HH:mm'\n )\n ).format('MM/DD/YYYY')}\n </p>\n <SheetTable\n sheet={productSheet}\n language={i18n.language}\n showMore={showMore} setLinkedFluidCount= {setLinkedFluidCount} setUnlinkedFluidCount= {setUnlinkedFluidCount} setShowMore = {setShowMore}\n ></SheetTable>\n <div className='qrSheetCollection'>\n <span className='textWhite wb-type-label linkText'>\n {`${t('MbApprovalLabel')}: `}\n </span>\n {sheetNumbers.map((sheetNumber: string, index: number) => {\n return (\n <>\n {sheetNumbers.length > index + 1 ? (\n <span className='textWhite wb-type-label linkText qrSheetNumbers'>\n {sheetNumber + ' / '}\n </span>\n ) : (\n <span className='textWhite wb-type-label linkText qrSheetNumbers'>\n {sheetNumber}\n </span>\n )}\n </>\n );\n })}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n ) : (\n <div></div>\n )}\n </div>\n );\n};\n","export default __webpack_public_path__ + \"static/media/adBlueSmall.5a863582.jpg\";","export default __webpack_public_path__ + \"static/media/GetriebeSmall.8b91e0f6.jpg\";","export default __webpack_public_path__ + \"static/media/KühlantSmall.5410067c.jpg\";","export default __webpack_public_path__ + \"static/media/MotorölSmall.e504c1f0.jpg\";","import './CategoryList.css';\nimport adBlueImage from '../../../resource/image/adBlueSmall.jpg';\nimport gearImage from '../../../resource/image/GetriebeSmall.jpg';\nimport coolantImage from '../../../resource/image/KühlantSmall.jpg';\nimport engineImage from '../../../resource/image/MotorölSmall.jpg';\n\nimport { useTranslation, Trans } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nexport default function CategoryList(props: { description: string }) {\n const { t, i18n } = useTranslation();\n const KatList = [\n {\n image: engineImage,\n URL: '/category/engine-oil/',\n title: t('EngineOil'),\n class: 'Hydraulikol',\n description: 'EngineOil',\n },\n {\n image: gearImage,\n URL: '/category/gear-oil/',\n title: t('GearOil'),\n class: 'Kraftstoff',\n description: 'HydraulicFluid',\n },\n {\n image: coolantImage,\n URL: '/category/coolant/',\n title: t('Coolant'),\n class: 'Getriebeol',\n description: 'Coolant',\n },\n {\n image: adBlueImage,\n URL: '/category/NOx-reducing-agent/',\n title: t('AdBlue'),\n class: 'Bremsflussigkeit',\n description: 'AdBlue',\n },\n ];\n\n return (\n <div className='width100 Title'>\n <section className='wb-padding-vertical-s'>\n <div>\n <div className='wb-type-label wb-margin-bottom-xxs text-white'>\n {t('Interested')}\n </div>\n <hr className='--wb-color-gunmetal Divider'></hr>\n </div>\n <h1 className='wb-type-heading-l text-white TopCategoryTitle'>\n {t('TopCategories')}\n </h1>\n </section>\n\n <div className='wb-grid'>\n <div className='wb-grid-row'>\n {props.description !== 'EngineOil' && (\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-4 wb-grid-col-mq3-4 wb-grid-col-mq4-4 wb-grid-col-mq5-4 wb-grid-col-mq6-4 '>\n <Link\n to={\n i18n.language === 'de'\n ? KatList[0].URL + 'de'\n : KatList[0].URL + 'en'\n }\n className=' text-white list-anchor'\n >\n <img\n src={KatList[0].image}\n className='MBBeVoTeaser__image'\n ></img>\n <section className='wb-padding-vertical-s'>\n <h1 className='wb-type-heading-m TopCategoryDescription'>\n {' '}\n {KatList[0].title}\n </h1>\n </section>\n </Link>\n </div>\n )}\n {props.description !== 'GearOil' && (\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-4 wb-grid-col-mq3-4 wb-grid-col-mq4-4 wb-grid-col-mq5-4 wb-grid-col-mq6-4'>\n <Link\n to={\n i18n.language === 'de'\n ? KatList[1].URL + 'de'\n : KatList[1].URL + 'en'\n }\n className=' text-white list-anchor'\n >\n <img\n src={KatList[1].image}\n className='MBBeVoTeaser__image'\n ></img>\n <section className='wb-padding-vertical-s'>\n <h1 className='wb-type-heading-m TopCategoryDescription'>\n {' '}\n {KatList[1].title}\n </h1>\n </section>\n </Link>\n </div>\n )}\n\n {props.description !== 'Coolant' && (\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-4 wb-grid-col-mq3-4 wb-grid-col-mq4-4 wb-grid-col-mq5-4 wb-grid-col-mq6-4'>\n <Link\n to={\n i18n.language === 'de'\n ? KatList[2].URL + 'de'\n : KatList[2].URL + 'en'\n }\n className=' text-white list-anchor'\n >\n <img\n src={KatList[2].image}\n className='MBBeVoTeaser__image'\n ></img>\n <section className='wb-padding-vertical-s'>\n <h1 className='wb-type-heading-m TopCategoryDescription'>\n {' '}\n {KatList[2].title}\n </h1>\n </section>\n </Link>\n </div>\n )}\n\n {(props.description === 'EngineOil' ||\n props.description === 'GearOil' ||\n props.description === 'Coolant') && (\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-4 wb-grid-col-mq3-4 wb-grid-col-mq4-4 wb-grid-col-mq5-4 wb-grid-col-mq6-4 '>\n <Link\n to={\n i18n.language === 'de'\n ? KatList[3].URL + 'de'\n : KatList[3].URL + 'en'\n }\n className=' text-white list-anchor'\n >\n <img\n src={KatList[3].image}\n className='MBBeVoTeaser__image'\n ></img>\n <section className='wb-padding-vertical-s Title'>\n <h1 className='wb-type-heading-m Title'>\n {' '}\n {KatList[3].title}\n </h1>\n </section>\n </Link>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import { useState, useEffect } from 'react';\nimport './CategoryTable.css';\nimport { getSheetNumbersByCategory } from '../../../utility/FetchAPI';\nimport { WbIcon } from '@workbench/react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport { showPdfInNewTab } from '../../../utility/Helper';\n\nimport { useTranslation } from 'react-i18next';\nimport {\n IProductSheet,\n emptyProductSheetObject,\n} from '../../../interfaces/IProductSheet';\nimport { useLanguageMappings } from '../../../globals/LanguageMappingsContext';\n\nexport const CategoryTable = (props: { description: string }) => {\n const languageMappings = useLanguageMappings();\n console.log('LanguageMappings:', languageMappings);\n const { t, i18n } = useTranslation();\n let navigate = useNavigate();\n const [sheetCollection, setSheetCollection] = useState([\n emptyProductSheetObject,\n ]);\n\n const location = useLocation();\n const mapping = languageMappings[i18n.language] || languageMappings['en'];\n\n useEffect(() => {\n const description: string = props.description;\n getSheetNumbersByCategory(t(description)).then((result: any) => {\n const sortedSheets = result.data.sort((itemA: IProductSheet, itemB: IProductSheet) => {\n const sheetNumberA = itemA.sheetNumber;\n const sheetNumberB = itemB.sheetNumber;\n if(sheetNumberA.startsWith('DTFR') && !sheetNumberB.startsWith('DTFR')) {\n return -1;\n }\n if(!sheetNumberA.startsWith('DTFR') && sheetNumberB.startsWith('DTFR')) {\n return 1;\n }\n return sheetNumberA.localeCompare(sheetNumberB);\n });\n setSheetCollection(sortedSheets);\n });\n }, [props.description]);\n\n const path = (sheet: IProductSheet) => {\n let path = '/';\n if (sheet.pdfDe == null && sheet.pdfEn == null) {\n if (i18n.language == 'de') {\n path = '/sheet/' + sheet.sheetNumber.replaceAll(' ', '_') + '/de';\n } else {\n path = '/sheet/' + sheet.sheetNumber.replaceAll(' ', '_') + '/en';\n }\n } else {\n path = location.pathname;\n }\n return path;\n };\n\n /* const headerText = () => {\n sheetCollection!.forEach( (sheet: IProductSheet) => {\n return (\n <th scope='col'>{t(sheet.)}</th>\n )\n })\n } */\n\n const categoryContent = () => {\n let counter = 0;\n sheetCollection.map((sheet: IProductSheet, index) => {\n counter++;\n return (\n <tr key={index}>\n <th scope='row'>{counter}</th>\n <td>{sheet.sheetNumber}</td>\n <td>{sheet.titleDe}</td>\n <td>\n <button\n type='button'\n className='wb-button wb-button--tertiary wb-button--small'\n >\n <WbIcon\n className='wb-button__icon'\n name='bds/chevron-right/24'\n aria-hidden='true'\n ></WbIcon>\n </button>\n </td>\n </tr>\n );\n });\n };\n\n return (\n <div>\n <div className='wb-padding-s tableContainer tableDesktop'>\n <table className='wb-table wb-table--striped wb-table--theme-dark'>\n <thead>\n <tr>\n <th scope='col'>#</th>\n <th scope='col'>{t('Sheet')}</th>\n <th scope='col'>{t('Description')}</th>\n <th scope='col'></th>\n </tr>\n </thead>\n <tbody>\n {' '}\n {sheetCollection.map((sheet: IProductSheet, index) => {\n return (\n <tr key={index}>\n <th scope='row'>{index + 1}</th>\n <td>{sheet.sheetNumber}</td>\n <td>\n {\n i18n.language === 'de'\n ? sheet.titleDe\n : i18n.language === 'pt'\n ? sheet.titlePt\n : sheet.titleEn\n }\n </td>\n <td>\n <Link\n onClick={() =>\n showPdfInNewTab({ sheet, language: i18n.language, navigate, mapping , newWindow: true,t,i18n })\n }\n to={path(sheet)}\n type='button'\n className='wb-button wb-button--tertiary wb-button--small'\n >\n <WbIcon\n className='wb-button__icon'\n name='bds/chevron-right/24'\n aria-hidden='true'\n ></WbIcon>\n </Link>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n","export const cleanerProducts = {\n de: [\n { name: \"Fahrzeugreiniger (Konzentrat)\", description: \"Schutz und Pflege von Kunststoff- und Lackoberflächen.\" },\n { name: \"Planenreiniger (Konzentrat)\", description: \"Kraftvoller, hochalkalischer Intensivreiniger zur Beseitigung hartnäckiger organischer Verschmutzungen und Verkrustungen.\" },\n { name: \"Felgenreiniger (Konzentrat)\", description: \"Spezialreiniger für Stahl- und Aluminiumfelgen.\" },\n { name: \"Motorreiniger (Konzentrat)\", description: \"Zur Entfernung leichter organischer Verschmutzungen (z.B. Öle, Fette, Korrosionsschutzmittel etc.)\" },\n { name: \"Scheibenreniger\", description: \"Für Glas- und Kunststoffscheiben oder Spiegelflächen, mit Antibeschlagwirkung\" },\n { name: \"Schnellreiniger\", description: \"Für die streifenfreie Reinigung von Lack, Glas sowie Kunststoff- und Gummioberflächen. Polycarbonat verträglich.\" },\n { name: \"Cockpitlotion\", description: \"Pflegt und schützt alle Kunststoffteile im Fahrzeug mit farbvertiefender Wirkung, beseitigt Verschmutzungen, wie Fett und Nikotin rückstandslos, mit UV-Schutz.\" },\n { name: \"Kunststoffreiniger\", description: \"Entfernt hartnäckige Verschmutzungen im Fahrzeug-Innenraum, beseitigt u.a. Nikotin und fettige Verschmutzungen, wirkt geruchsneutralisierend.\" },\n { name: \"Fleckentferner\", description: \"Entfernt hartnäckige Verschmutzungen von Kunststoff, Metall, Glas- und Textilpolster-Oberflächen. Ideal zum Entfernen von Öl-, Wachs- und Fettrückständen sowie Kleberesten.\" },\n // { name: \"Fenster- und Glastuch\", description: \"Das Tuch trocknet durch seine besonders feine Struktur Glasoberflächen jeglicher Art besonders schnell und zuverlässig mit streifenfreiem Ergebnis.\" },\n // { name: \"Profi-Mikrofasertuch silikonfrei\", description: \"Das Tuch ist konzipiert, um Schmutz, Wasser oder Poliermittelreste effektiv aufzunehmen und sorgt so für ein strahlendes und makelloses Finish.\" },\n // { name: \"Universal-Mikrofasertuch\", description: \"Das Tuch ist besonders weich, voluminös und liegt daher gut in der Hand. Mit dem dichten Flor nimmt es Feuchtigkeit, Schmutz sowie Öle und Fette spielend leicht auf.\" },\n // { name: \"Premium Mikrofastertuch (extrafein) mit Actros Schriftzug\", description: \"Das Tuch ist sehr fein zur Reinigung hochglänzender Teile (Innenraum) oder Displays.\" }\n ],\n en: [\n { name: \"Vehicle cleaner (concentrate)\", description: \"Protection and care for plastic and painted surfaces.\" },\n { name: \"Tarpaulin cleaner (concentrate)\", description: \"Powerful, highly alkaline intensive cleaner for removing stubborn organic dirt and encrustations.\" },\n { name: \"Wheel cleaner (concentrate)\", description: \"Special cleaner for steel and aluminum rims.\" },\n { name: \"Engine cleaner (concentrate)\", description: \"For removing light organic dirt (e.g., oils, greases, corrosion protection agents, etc.).\" },\n { name: \"Windshield cleaner\", description: \"For glass and plastic windows or mirror surfaces, with anti-fog effect.\" },\n { name: \"Quick cleaner\", description: \"For streak-free cleaning of paint, glass, plastic, and rubber surfaces. Polycarbonate compatible.\" },\n { name: \"Dashboard lotion\", description: \"Cares for and protects all plastic parts in the vehicle with a color-enhancing effect, removes dirt such as grease and nicotine without residue, with UV protection.\" },\n { name: \"Plastic cleaner\", description: \"Removes stubborn dirt in the vehicle interior, eliminates nicotine and greasy stains, and has an odor-neutralizing effect.\" },\n { name: \"Stain remover\", description: \"Removes stubborn dirt from plastic, metal, glass, and fabric upholstery surfaces. Ideal for removing oil, wax, and grease residues as well as adhesive remnants.\" },\n // { name: \"Window and glass cloth\", description: \"The cloth dries glass surfaces of any kind particularly quickly and reliably thanks to its especially fine structure, leaving a streak-free result.\" },\n // { name: \"Professional silicone-free microfiber cloth\", description: \"The cloth is designed to effectively absorb dirt, water, or polish residues, ensuring a radiant and flawless finish.\" },\n // { name: \"Universal microfiber cloth\", description: \"The cloth is particularly soft, voluminous, and easy to handle. Its dense pile effortlessly absorbs moisture, dirt, oils, and greases.\" },\n // { name: \"Premium extra-fine microfiber cloth with Actros logo\", description: \"The cloth is very fine for cleaning high-gloss parts (interior) or displays.\" }\n ],\n pt: [\n { name: \"Limpador automotivo (concentrado)\", description: \"Proteção e cuidado de superfÃcies plásticas e pintadas.\" },\n { name: \"Limpador de lona (concentrado)\", description: \"Limpador intensivo altamente alcalino para remover sujeira orgânica persistente e incrustações.\" },\n { name: \"Limpador de rodas (concentrado)\", description: \"Limpador especial para rodas de aço e alumÃnio.\" },\n { name: \"Limpador de motor (concentrado)\", description: \"Para remoção de sujeiras orgânicas leves (por exemplo, óleos, graxas, agentes de proteção contra corrosão etc.).\" },\n { name: \"Limpador de para-brisas\", description: \"Para vidros e superfÃcies de plástico ou espelhos, com efeito antiembaçante.\" },\n { name: \"Limpador rápido\", description: \"Para limpeza sem manchas de pintura, vidro, plástico e superfÃcies de borracha. CompatÃvel com policarbonato.\" },\n { name: \"Loção para painel\", description: \"Cuida e protege todas as partes plásticas do veÃculo com efeito de realce de cor, remove sujeiras como graxa e nicotina sem deixar resÃduos, com proteção UV.\" },\n { name: \"Limpador de plástico\", description: \"Remove sujeira persistente no interior do veÃculo, elimina nicotina e manchas gordurosas e possui efeito neutralizador de odores.\" },\n { name: \"Removedor de manchas\", description: \"Remove sujeira persistente de superfÃcies de plástico, metal, vidro e estofados de tecido. Ideal para remover resÃduos de óleo, cera e graxa, bem como restos de adesivos.\" },\n // { name: \"Pano para vidros e janelas\", description: \"O pano seca superfÃcies de vidro de qualquer tipo de forma particularmente rápida e confiável graças à sua estrutura especialmente fina, deixando um resultado sem manchas.\" },\n // { name: \"Pano de microfibra profissional sem silicone\", description: \"O pano foi projetado para absorver efetivamente sujeira, água ou resÃduos de polidor, garantindo um acabamento brilhante e impecável.\" },\n // { name: \"Pano de microfibra universal\", description: \"O pano é particularmente macio, volumoso e fácil de manusear. Sua trama densa absorve facilmente umidade, sujeira, óleos e graxas.\" },\n // { name: \"Pano de microfibra premium (extrafino) com logotipo Actros\", description: \"O pano é muito fino para limpar peças de alto brilho (interior) ou displays.\" }\n ]\n };\n ","import { useState, useEffect, Key, ReactChild, ReactFragment, ReactPortal } from 'react';\nimport './CategoryTable.css';\nimport { WbIcon } from '@workbench/react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport { showPdfInNewTab } from '../../../utility/Helper';\nimport { ReactI18NextChild, useTranslation } from 'react-i18next';\nimport { useLanguageMappings } from '../../../globals/LanguageMappingsContext';\n\nimport { cleanerProducts } from './staticCategories';\n\n\n\nexport const StaticCategoryTable = (props: { description: string }) => {\n const { t, i18n } = useTranslation();\n const language = i18n.language as keyof typeof cleanerProducts; // Type assertion here\n const products = cleanerProducts[language]; // Get products based on current language\n\n return (\n <div>\n <div id='sheetTableId' className='wb-padding-s sheetTableDesktop'>\n <table className='wb-table wb-table--striped sheetTable'>\n <thead className='tableHeader'>\n <tr>\n {/* <th scope=\"col\">#</th> */}\n <th scope=\"col\">{t('ProductName')}</th>\n <th scope=\"col\">{t('Description')}</th>\n </tr>\n </thead>\n <tbody>\n {products.map((product: { name: any; description: any; }, index: number) => (\n <tr key={index}>\n {/* <th scope=\"row\">{index + 1}</th> */}\n <td>\n <a\n target='_blank'\n className='wb-link dt-link'\n href=\"https://gms.aftersales.daimlertruck.com/SDS.aspx?MBReleaseNo=none\" rel=\"noreferrer\"\n >\n {product.name}\n </a>\n </td>\n <td>{product.description}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n","/* eslint-disable */\nimport React from 'react';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport './HeaderBanner.css';\nimport categoryCover from '../../../resource/image/CategoryPlaceholderTransparent.png';\nimport { useTranslation } from 'react-i18next';\nimport categoryHeaderImage from '../../../resource/image/categoryHeader.jpg';\n\nexport function HeaderBanner(props: { image: any; description: string }) {\n const { t } = useTranslation();\n return (\n <>\n <div>\n <div className='bannerDesktop__transition'>\n <img src={categoryCover} className='banner__image '></img>\n <section className='wb-padding-vertical-s categoryDescription'>\n <div className='text-white'>\n <div className='wb-type-label wb-margin-bottom-xxs text-white description'>\n Mercedes-Benz Trucks Operating Fluids:\n </div>\n <hr className='--wb-color-gunmetal Divider'></hr>\n </div>\n <h1 className='wb-type-heading-l text-white TopCategoryTitle description'style={{whiteSpace:\"pre-line\"}} >\n {t(props?.description?.toString())}\n </h1>\n </section>\n </div>\n <div className='CarSkeleton__container'>\n <img\n src={props.image == null ? categoryHeaderImage : props.image}\n className='banner__image '\n ></img>\n </div>\n </div>\n </>\n );\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAMgCAMAAAD1L48JAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAszD0iAAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAAJcEhZcwAALiAAAC4gAdUcHhsAAAAHdElNRQflCAYGBjmSlGewAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAvRSURBVHhe7dUxAQAwEAOh+jeduvhbwARvAMA5AQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAAQEDAABAQNAQMAAEBAwAJzbPuN97ji6VoKMAAAAAElFTkSuQmCC\"","/* eslint-disable */\nimport React, { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport './Prolog.css';\n\nimport { useTranslation } from 'react-i18next';\n\n// Styling\nconst useStyles = makeStyles(() =>\n createStyles({\n icon: {\n color: 'white',\n },\n })\n);\n\nexport default function Prolog(props: { description: string }) {\n const [expand, setExpand] = useState(false);\n const [text, setText] = useState('');\n\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n setExpand(false);\n // Update the document title using the browser API\n\n if (props.description === 'Motoröl' || props.description === 'EngineOil') {\n setText(t('PrologMotorOil'));\n } else if (\n props.description === 'Kraftstoff' ||\n props.description === 'Fuel'\n ) {\n setText(t('PrologFuel'));\n } else if (\n props.description === 'Getriebeöl' ||\n props.description === 'GearOil'\n ) {\n setText(t('PrologGearOil'));\n } else if (props.description === 'AdBlue' || props.description === 'N0x') {\n setText(t('PrologAdBlue'));\n } else if (\n props.description === 'Coolant' ||\n props.description === 'Frostschutz' ||\n props.description === 'Korrosions-/Frostschutz'\n ) {\n setText(t('PrologCoolant'));\n } else if (\n props.description === \"edAC-Oil\" ||\n props.description === \"edAC-öl\"\n ) {\n setText(t('PrologEdac'));\n } else if (\n props.description === \"Hydrogen\"\n ) {\n setText(t('PrologHydrogen'));\n } else {\n setText('');\n }\n }, [i18n.language, props.description]);\n\n return (\n <>\n {text != '' && (\n <div className='prolog'>\n <div\n className={clsx('accordionContainer', {\n ['accordionExpended']: expand,\n ['accordionShrinked']: !expand,\n ['prolog__transition']: !expand,\n })}\n >\n <div className='prologWidth prologStyle prolog'>\n <span className='wb-type-copy prolog' dangerouslySetInnerHTML={{__html: text}}/>\n </div>\n </div>\n\n <button\n onClick={() => setExpand(!expand)}\n type='button'\n className='accordionButton wb-button wb-button--theme-dark wb-button--secondary wb-button--large'\n >\n {expand ? t('ShowLess') : t('ShowMore')}\n </button>\n </div>\n )}\n </>\n );\n}\n","import React, { useEffect } from 'react';\nimport CategoryList from './categoryList/CategoryList';\nimport { CategoryTable } from './categoryTable/CategoryTable';\nimport { StaticCategoryTable } from './categoryTable/StaticCategoryTable';\nimport { HeaderBanner } from './headerBanner/HeaderBanner';\nimport Prolog from './prolog/Prolog';\nimport { Helmet } from 'react-helmet';\nimport { useTranslation, Trans } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\n\nimport { closeCategoriesMenu } from '../../utility/DialogHelper';\n\nexport const CategoryOverview = (props: {\n description: string;\n image: any;\n static: boolean;\n staticDetails: string;\n sheeTitle: string;\n}) => {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n useEffect(() => {\n closeCategoriesMenu();\n window.scrollTo(0, 0);\n // Change language based on the current pathname\n const path = location.pathname; // Get the current pathname\n if (path.startsWith('/de') || path === '/de') {\n i18n.changeLanguage('de');\n } else if (path.startsWith('/en') || path === '/en') {\n i18n.changeLanguage('en');\n }\n }, [props.description, props.image, location.pathname, i18n]);\n return (\n <>\n {/* @ts-ignore */}\n <Helmet>\n <title>{t('categoryOverview.title', { keySeparator: \".\" })}</title>\n <meta name=\"description\" content={t('categoryOverview.description', { keySeparator: \".\" })} />\n <meta name=\"keywords\" content={t('mainPage.keywords', { keySeparator: \".\" })} />\n <meta name=\"author\" content={t('mainPage.author', { keySeparator: \".\" })} />\n <meta name=\"robots\" content={t('mainPage.robots', { keySeparator: \".\" })} />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta property=\"og:title\" content={t('categoryOverview.title', { keySeparator: \".\" })} />\n <meta property=\"og:description\" content={t('categoryOverview.description', { keySeparator: \".\" })} />\n <link rel=\"alternate\" href={\"https://bevo.mercedes-benz-trucks.com/de\"} hrefLang=\"de\" />\n <link rel=\"alternate\" href={\"https://bevo.mercedes-benz-trucks.com/en\"} hrefLang=\"en\" />\n <link rel=\"canonical\" href={\"https://bevo.mercedes-benz-trucks.com\"} />\n </Helmet>\n <div>\n <HeaderBanner\n image={props.image}\n description={props.sheeTitle}\n ></HeaderBanner>\n <Prolog description={props.description}></Prolog>\n\n {props.static && (\n <div\n style={{ marginLeft: '14px', marginRight: '14px' }}\n >\n {/* <h1 className=\"static-sheet-title\" >\n {t(props?.sheeTitle?.toString())}\n </h1> */}\n {/* <h2 className='wb-type-heading-m textWhite spaceTopLarge spaceBottom'>\n {t(props?.sheeTitle?.toString())}\n </h2> */}\n <p className='wb-type-copy-tertiary textWhite spaceTopLarge spaceBottom' style={{whiteSpace:\"pre-line\"}}>\n {t(props?.staticDetails?.toString())}\n </p>\n </div>\n )}\n\n <div style={{ marginTop: '10px' }}>\n {props.static ? (\n <StaticCategoryTable description={props.description} />\n ) : (\n <CategoryTable description={props.description} />\n )}\n </div>\n <div\n style={{ marginTop: '80px', marginRight: '14px', marginLeft: '14px' }}\n >\n <CategoryList description={props.description}></CategoryList>\n </div>\n </div></>\n );\n};\n","export default __webpack_public_path__ + \"static/media/HydrogenHeader.05204ad0.jpg\";","import React, { useEffect, useState } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { CATEGORY_PROPS } from '../../../globals/Constants';\nimport { parse } from 'date-format-parse';\nimport { WbIcon } from '@workbench/react';\nimport {\n emptyProductSheetObject,\n IProductSheet,\n} from '../../../interfaces/IProductSheet';\nimport { getSheetByNumber } from '../../../utility/FetchAPI';\nimport { HeaderBanner } from '../headerBanner/HeaderBanner';\nimport HydrogenHeader from '../../../resource/image/HydrogenHeader.jpg';\nimport { SheetTable } from './SheetTable';\nimport { useTranslation, getI18n } from 'react-i18next';\nimport '../../../globals/style/GlobalStyle.css';\nimport './SheetOverview.css';\nimport {parseDate, setCategoryString, showPdfInNewTab} from '../../../utility/Helper';\nimport createDOMPurify from 'dompurify';\nimport { closeSearch } from '../../../utility/DialogHelper';\nimport moment from 'moment';\nimport { IProduct } from '../../../interfaces/IProduct';\nimport { useLanguageMappings } from '../../../globals/LanguageMappingsContext';\n\nexport const SheetOverview = () => {\n const languageMappings = useLanguageMappings();\n console.log('LanguageMappings:', languageMappings);\n const { t, i18n } = useTranslation();\n let navigate = useNavigate();\n const DOMPurify = createDOMPurify(window);\n let { sheetNumber, language } = useParams<{\n sheetNumber: string;\n language: string;\n }>();\n const [sheet, setSheet] = useState<IProductSheet>(emptyProductSheetObject);\n const [foundProps, setFoundProps]: any = useState(null);\n const [choosenLanguage, setChoosenLanguage] = useState(i18n.language);\n const [linkedFluidCount, setLinkedFluidCount] = useState(0);\n const [unlinkedFluidCount, setUnlinkedFluidCount] = useState(0);\n const [showMore, setShowMore] = useState(false);\n const mapping = languageMappings[i18n.language] || languageMappings['en'];\n\n const handleShowMoreToggle = () => {\n setShowMore(!showMore);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n closeSearch();\n if (sheetNumber != null) {\n getSheetByNumber(sheetNumber).then((results: any) => {\n const loopProps = CATEGORY_PROPS.find(\n (element) =>\n setCategoryString(element.description) ==\n setCategoryString(results.data.category)\n );\n setSheet(results.data);\n setFoundProps(loopProps);\n\n if (sheetNumber == 'DTFR_16D100') {\n setFoundProps((prevProps: any) => {\n return {\n ...prevProps,\n image: HydrogenHeader, \n };\n });\n \n }\n // const pdfUrl = results.data[mapping.pdf] || results.data.pdfEn;\n // if (i18n.language == 'de') {\n // showPdfInNewTab(results.data.pdfDe, i18n.language, navigate);\n // } else {\n // showPdfInNewTab(results.data.pdfEn, i18n.language, navigate);\n // }\n showPdfInNewTab({ sheet: results.data, language: i18n.language, navigate, mapping , newWindow: true,t,i18n });\n });\n }\n }, [sheetNumber, language]);\n\n return (\n <div>\n <HeaderBanner\n image={foundProps?.image}\n description={foundProps?.description}\n ></HeaderBanner>\n <div\n style={{ marginTop: '120px', marginLeft: '14px', marginRight: '14px' }}\n >\n <h2 className='wb-type-heading-m textWhite spaceTopLarge spaceBottom'>\n {sheet.sheetNumber +\n ' ' + sheet[mapping.title] }\n </h2>\n {sheet.htmlDe === null &&\n sheet.htmlEn === null &&\n sheet.productCollection === null && (\n <p className='wb-type-copy-tertiary textWhite spaceTopLarge spaceBottom'>\n {t('NoProduct')}\n </p>\n )}\n <p className='wb-type-copy-tertiary textWhite spaceTopLarge spaceBottom'>\n { sheet[ mapping.additionalInfo]}\n {/* {i18n.language === 'de'\n ? sheet.additionalInfoDe\n : sheet.additionalInfoEn} */}\n </p>\n <p className='textWhite wb-type-label timeLabel'>\n {t('LastUpdate')}{' '}\n {moment(parseDate(sheet.publishDate)).format(mapping.dateFormat)}\n </p>\n </div>\n <SheetTable sheet={sheet} language={`${language}`} showMore={showMore} setLinkedFluidCount= {setLinkedFluidCount} setUnlinkedFluidCount= {setUnlinkedFluidCount} setShowMore = {setShowMore}></SheetTable>\n {sheet?.htmlDe !== null && sheet?.htmlEn !== null && (\n <div className='htmlContainer'>\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(sheet[mapping.html || '' ]),\n }}\n />\n {/* {i18n.language === 'de' ? (\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(sheet?.htmlDe),\n }}\n />\n ) : (\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(sheet?.htmlEn),\n }}\n />\n )} */}\n { linkedFluidCount > 0 && unlinkedFluidCount > 0 && (\n <div className='wb-grid-row rowStyle'>\n <div className='wb-grid-col-mq1-12 text-center' style={{ textAlign: 'center' }}>\n <button onClick={handleShowMoreToggle} className='wb-button wb-button--primary wb-button--large'>\n {showMore ? t('ShowLess') : t('ShowMore')} \n <span style={{ marginLeft: '5px' }}>\n <WbIcon name={showMore ? 'arrow-up' : 'arrow-down'} className='iconArrow' />\n </span>\n </button>\n </div>\n </div>\n )} \n </div>\n )}\n </div>\n );\n};\n","import react from 'react';\nimport {useTranslation} from 'react-i18next';\n\nexport const PrivacyStatementDe = () => {\n\n function showCMP() {\n // @ts-ignore\n window['UC_UI'].showSecondLayer();\n }\n return (\n <div>\n <h3>Datenschutzhinweise</h3>\n <p>Verantwortlicher im Sinne der EU-Datenschutz-Grundverordnung (DSGVO) ist:</p>\n <p>\n Daimler Truck AG („Wir“)<br/>\n Fasanenweg 10<br/>\n 70771 Leinfelden-Echterdingen<br/>\n Deutschland\n </p>\n\n <p>E-Mail: <a href=\"mailto:contact@daimlertruck.com\">contact@daimlertruck.com</a></p>\n\n <p><br/>Konzerndatenschutzbeauftragter:<br/></p>\n <p>Daimler Truck AG<br/>HPC DTF2B<br/>Fasanenweg 10<br/>70771 Leinfelden-Echterdingen<br/>Deutschland</p>\n <p>E-Mail: <a\n href=\"mailto:dataprivacy@daimlertruck.com\">dataprivacy@daimlertruck.com</a></p>\n <p><strong>1. Datenschutz</strong></p>\n <p>Wir freuen uns über Ihren Besuch auf unseren Webseiten und Ihr Interesse an unseren Angeboten. Der Schutz\n Ihrer personenbezogenen Daten ist für uns ein wichtiges Anliegen. In diesen Datenschutzhinweisen\n erklären\n wir, wie wir Ihre personenbezogenen Daten erheben, was wir damit tun, für welche Zwecke und auf welchen\n Rechtsgrundlagen dies geschieht, und welche Rechte und Ansprüche sich damit für Sie verbinden.\n Zusätzlich\n verweisen wir auf die Daimler-Datenschutzrichtlinie:</p>\n <p>\n <a className=\"txtlink\"\n href=\"https://www.daimlertruck.com/dokumente/unternehmen/datenschutz/datenschutzrichtlinie.pdf\"\n target=\"_blank\">Datenschutzrichtlinie (daimlertruck.com)</a>\n <a className=\"txtlink\"\n href=\"https://www.mercedes-benz-trucks.com/datenschutz\"\n target=\"_blank\">Informationspflichten nach Datenschutzgrundverordnung</a>\n </p>\n <p>Unsere Datenschutzhinweise für den Gebrauch unserer Webseiten und die Datenschutzrichtlinie der Daimler\n Truck AG gelten nicht für Ihre Aktivitäten auf den Webseiten von sozialen Netzwerken oder anderen\n Anbietern, die Sie über die Links auf unseren Webseiten erreichen können. Bitte informieren Sie sich auf\n den Webseiten dieser Anbieter über deren Datenschutzbestimmungen.</p>\n <p><strong>2. Erhebung und Verarbeitung Ihrer personenbezogenen Daten</strong></p>\n <p>a. Wenn Sie unsere Webseiten besuchen, speichern wir bestimmte Angaben zu dem von Ihnen verwendeten\n Browser\n und Betriebssystem, das Datum und die Uhrzeit des Besuches, den Zugriffsstatus (z.B. ob Sie eine\n Webseite\n aufrufen konnten oder eine Fehlermeldung erhielten), die Nutzung von Funktionen der Webseite, die von\n Ihnen möglicherweise eingegebenen Suchbegriffe, die Häufigkeit, mit der Sie einzelne Webseiten aufrufen,\n die Bezeichnung abgerufener Dateien, die übertragenen Datenmenge, die Webseite, von der aus Sie auf\n unsere\n Webseiten gelangt sind, und die Webseite, die Sie von unseren Webseiten aus besuchen, sei es, indem Sie\n Links auf unseren Webseiten anklicken oder eine Domain direkt in das Eingabefeld derselben Registerkarte\n (bzw. desselben Fensters) Ihres Browsers eingeben, worin Sie unsere Webseiten geöffnet haben. Außerdem\n speichern wir aus Sicherheitsgründen, insbesondere zur Vorbeugung vor und Erkennung von Angriffen auf\n unsere Webseiten oder Betrugsversuchen, für die Dauer von sieben Tagen Ihre IP-Adresse und den Namen\n Ihres\n Internet Service Providers.</p>\n <p>b. Andere personenbezogene Daten speichern wir nur, falls Sie uns diese Daten z.B. im Rahmen einer\n Registrierung, eines Kontaktformulars, eines Chats, einer Umfrage, eines Preisausschreibens oder zur\n Durchführung eines Vertrages mitteilen, und auch in diesen Fällen nur, soweit uns dies aufgrund einer\n von\n Ihnen erteilten Einwilligung oder nach den geltenden Rechtsvorschriften (siehe Ziffer 7) gestattet\n ist.</p>\n <p>c. Sie sind weder gesetzlich noch vertraglich verpflichtet, Ihre personenbezogenen Daten zu überlassen.\n Möglich ist aber, dass bestimmte Funktionen unserer Webseiten von der Ãœberlassung personenbezogener\n Daten\n abhängen. Falls Sie in diesen Fällen personenbezogene Daten nicht überlassen, kann dies dazu führen,\n dass\n Funktionen nicht oder nur eingeschränkt zur Verfügung stehen.</p>\n <p><strong>3. Nutzungszwecke</strong></p>\n <p>a. Die bei einem Besuch unserer Webseiten erhobenen personenbezogenen Daten verwenden wir, um diese für\n Sie\n möglichst komfortabel zu betreiben sowie unsere IT-Systeme vor Angriffen und anderen rechtswidrigen\n Handlungen zu schützen.</p>\n <p>b. Soweit Sie uns weitere personenbezogene Daten z.B. im Rahmen einer Registrierung, eines Chats, eines\n Kontaktformulars, einer Umfrage, eines Preisausschreibens oder zur Durchführung eines Vertrages\n mitteilen, nutzen wir diese Daten zu den genannten Zwecken, zu Zwecken der Kundenverwaltung und – soweit\n erforderlich – zu Zwecken der Abwicklung und Abrechnung etwaiger Geschäftsvorgänge, jeweils in dem dafür\n erforderlichen Umfang.</p>\n <p>c. Für weitere Zwecke (z. B. Anzeige von personalisierter Inhalten oder Werbung auf der Basis Ihres\n Nutzungsverhaltens) nutzen wir und ggf. ausgewählte Dritte Ihre Daten, soweit Sie dazu im Rahmen unseres\n Consent Management Systems Ihre Einwilligung (= Zustimmung) geben. Weitere Informationen und\n Entscheidungsmöglichkeiten erhalten Sie hier: <a href=\"#\" onClick={showCMP}>CMP</a></p>\n <p>d. Außerdem nutzen wir personenbezogene Daten, soweit wir dazu rechtlich verpflichtet sind (z. B.\n Speicherung zur Erfüllung handels- oder steuerrechtlicher Aufbewahrungspflichten, Herausgabe gem.\n behördlicher oder gerichtlicher Anordnung, z. B. an eine Strafverfolgungsbehörde).</p>\n <p><strong>4. Ãœbertragung personenbezogener Daten an Dritte; Social Plug-ins; Einsatz von\n Dienstleistern </strong></p>\n <p>a. Unsere Webseiten können auch Angebote Dritter enthalten. Wenn Sie ein solches Angebot anklicken,\n übertragen wir im erforderlichen Umfang Daten an den jeweiligen Anbieter (z. B. die Angabe, dass Sie\n dieses Angebot bei uns gefunden haben und ggf. weitere Informationen, die Sie hierfür auf unseren\n Webseiten bereits angegeben haben).</p>\n <p>b. Wenn wir auf unseren Webseiten sogenannte „Social Plug-ins“ sozialer Netzwerke wie Facebook und\n Twitter\n einsetzen, binden wir diese wie folgt ein: </p>\n <p>Wenn Sie unsere Webseiten besuchen, sind die Social Plug-ins deaktiviert, d.h. es findet keine\n Ãœbertragung\n irgendwelcher Daten an die Betreiber dieser Netzwerke statt. Falls Sie eines der Netzwerke nutzen\n möchten,\n klicken Sie auf das jeweilige Social Plug-in, um eine direkte Verbindung mit dem Server des jeweiligen\n Netzwerks aufzubauen.</p>\n <p>Falls Sie bei dem Netzwerk ein Nutzerkonto haben und im Moment des Aktivierens des Social Plug-ins dort\n eingeloggt sind, kann das Netzwerk Ihren Besuch der unserer Webseiten Ihrem Nutzerkonto zuordnen. Wenn\n Sie\n das vermeiden möchten, loggen Sie sich bitte vor der Aktivierung des Social Plug-ins aus dem Netzwerk\n aus.\n Den Besuch anderer Daimler-Webseiten kann ein soziales Netzwerk nicht zuordnen, bevor Sie nicht auch ein\n dort vorhandenes Social Plug-in aktiviert haben.</p>\n <p>Wenn Sie ein Social Plug-in aktivieren, überträgt das Netzwerk die dadurch verfügbar werdenden Inhalte\n direkt an Ihren Browser, der sie in unsere Webseiten einbindet. In dieser Situation können auch\n Datenübertragungen stattfinden, die vom jeweiligen sozialen Netzwerk initiiert und gesteuert werden. Für\n Ihre Verbindung zu einem sozialen Netzwerk, die zwischen dem Netzwerk und Ihrem System stattfindenden\n Datenübertragungen und für Ihre Interaktionen auf dieser Plattform gelten ausschließlich die\n Datenschutzbestimmungen des jeweiligen Netzwerks.</p>\n <p>Das Social Plug-in bleibt aktiv, bis Sie es deaktivieren oder Ihre Cookies löschen (siehe Ziffer\n 5.d).</p>\n <p>c. Wenn Sie den Link zu einem Angebot anklicken oder ein Social Plug-in aktivieren, kann es sein, dass\n personenbezogene Daten zu Anbietern in Ländern außerhalb des Europäischen Wirtschaftsraums gelangen, die\n aus der Sicht der Europäischen Union („EU“) kein den EU-Standards entsprechendes „angemessenes\n Schutzniveau“ für die Verarbeitung personenbezogener Daten gewährleisten. Bitte denken Sie an diesen\n Umstand, bevor Sie einen Link anklicken oder ein Social Plug-in aktivieren und damit eine Ãœbertragung\n Ihrer Daten auslösen.</p>\n <p>d. Für Betrieb, Optimierung und Absicherung unserer Webseiten setzen wir außerdem qualifizierte\n Dienstleister (z. B. IT-Dienstleister, Marketing-Agenturen) ein. Personenbezogene Daten geben wir an\n diese\n nur weiter, soweit dies erforderlich ist für die Bereitstellung und Nutzung der Webseiten und deren\n Funktionalitäten, zur Verfolgung berechtigter Interessen, zur Erfüllung rechtlicher Verpflichtungen oder\n soweit Sie darin eingewilligt haben (siehe Ziffer 7).</p>\n <p><strong>5. Cookies</strong></p>\n <p>a. Beim Besuch unserer Webseiten können Cookies zum Einsatz kommen. Technisch gesehen handelt es sich um\n sog. HTML-Cookies und ähnliche Softwaretools wie Web/DOM Storage oder Local Shared Objects (sog.\n „Flash-Cookies“), die wir zusammen als Cookies bezeichnen.</p>\n <p>b. Cookies sind kleine Dateien, die während des Besuchs einer Webseite auf Ihrem Desktop-, Notebook- oder\n Mobilgerät abgelegt werden. Daraus kann man z. B. erkennen, ob es zwischen dem Gerät und den Webseiten\n schon eine Verbindung gegeben hat, Ihre bevorzugte Sprache oder andere Einstellungen berücksichtigen,\n Ihnen bestimmte Funktionalitäten (z. B. Online-Shop, Fahrzeugkonfigurator) anbieten oder nutzungsbasiert\n Ihre Interessen erkennen. Cookies können auch personenbezogene Daten enthalten.</p>\n <p>c. Ob und welche Cookies bei Ihrem Besuch unserer Webseiten zum Einsatz kommen, hängt davon ab, welche\n Bereiche und Funktionen unserer Webseiten Sie nutzen und ob Sie dem Einsatz von Cookies, die nicht\n technisch erforderlich sind, in unserem Consent Management System zustimmen.</p>\n <p>d. Der Einsatz von Cookies hängt außerdem von den Einstellungen des von Ihnen verwendeten Web-Browsers\n (z.\n B. Microsoft Edge, Google Chrome, Apple Safari, Mozilla Firefox) ab. Die meisten Web-Browser sind so\n voreingestellt, dass sie bestimmte Arten von Cookies automatisch akzeptieren; diese Einstellung können\n Sie\n jedoch meistens ändern. Vorhandene Cookies können Sie jederzeit löschen. Web/DOM-Storage und Local\n Shared\n Objects können Sie separat löschen. Wie das in dem von Ihnen verwendeten Browser bzw. Gerät\n funktioniert,\n erfahren Sie in der Anleitung des Herstellers.</p>\n <p>e. Die Einwilligung (= Zustimmung) zu sowie Ablehnung oder Löschung von Cookies sind an das verwendete\n Gerät und zudem an den jeweils verwendeten Web-Browser gebunden. Wenn Sie mehrere Geräte bzw.\n Web-Browser\n verwenden, können Sie die Entscheidungen bzw. Einstellungen jeweils unterschiedlich vornehmen.</p>\n <p>f. Wenn Sie sich gegen den Einsatz von Cookies entscheiden oder diese löschen, kann es sein, dass Ihnen\n nicht alle Funktionen unserer Webseiten oder einzelne Funktionen nur eingeschränkt zur Verfügung\n stehen.</p>\n <p><strong>6. Sicherheit</strong></p>\n <p>Wir setzen technische und organisatorische Sicherheitsmaßnahmen ein, um Ihre durch uns verwalteten Daten\n gegen Manipulationen, Verlust, Zerstörung und gegen den Zugriff unberechtigter Personen zu schützen. Wir\n verbessern unsere Sicherheitsmaßnahmen fortlaufend entsprechend der technologischen Entwicklung.</p>\n <p><strong>7. Rechtsgrundlagen der Verarbeitung</strong></p>\n <p>a. Soweit Sie uns für die Verarbeitung Ihrer personenbezogenen Daten eine Einwilligung erteilt haben,\n stellte diese die Rechtsgrundlage für die Verarbeitung dar (Art. 6 Abs. 1 Buchst. a DSGVO).</p>\n <p>b. Für eine Verarbeitung personenbezogener Daten für die Zwecke der Anbahnung oder der Erfüllung eines\n Vertrages mit Ihnen ist Art. 6 Abs. 1 Buchst. b DSGVO die Rechtsgrundlage.</p>\n <p>c. Soweit die Verarbeitung Ihrer personenbezogenen Daten zur Erfüllung unserer rechtlichen\n Verpflichtungen\n (z.B. zur Aufbewahrung von Daten) erforderlich ist, sind wir dazu gemäß Art. 6 Abs. 1 Buchst. c DSGVO\n befugt.</p>\n <p>d. Außerdem verarbeiten wir personenbezogene Daten zu Zwecken der Wahrnehmung unserer berechtigten\n Interessen sowie berechtigter Interessen Dritter gemäß Art. 6 Abs. 1 Buchst. f DSGVO. Die Erhaltung der\n Funktionsfähigkeit unserer IT-Systeme, die (Direkt-)Vermarktung eigener und fremder Produkte und\n Dienstleistungen (soweit diese nicht mit Ihrer Einwilligung erfolgt) und die rechtlich gebotene\n Dokumentation von Geschäftskontakten sind solche berechtigten Interessen. Wir berücksichtigen im Rahmen\n der jeweils erforderlichen Interessenabwägung insbesondere die Art der personenbezogenen Daten, den\n Verarbeitungszweck, die Verarbeitungsumstände und Ihr Interesse an der Vertraulichkeit Ihrer\n personenbezogenen Daten.</p>\n <p><strong>8. Löschung Ihrer personenbezogenen Daten</strong></p>\n <p>Ihre IP-Adresse und den Namen Ihres Internet Service Providers, die wir aus Sicherheitsgründen speichern,\n löschen wir nach sieben Tagen. Im Ãœbrigen löschen wir Ihre personenbezogenen Daten, sobald der Zweck, zu\n dem wir die Daten erhoben und verarbeitet haben, entfällt. Ãœber diesen Zeitpunkt hinaus findet eine\n Speicherung nur statt, soweit dies gemäß den Gesetzen, Verordnungen oder sonstigen Rechtsvorschriften,\n denen wir unterliegen, in der EU oder nach Rechtsvorschriften in Drittstaaten, wenn dort jeweils ein\n angemessenes Datenschutzniveau gegeben ist, erforderlich ist. Soweit eine Löschung im Einzelfall nicht\n möglich ist, werden die entsprechenden personenbezogenen Daten mit dem Ziel markiert, ihre künftige\n Verarbeitung einzuschränken.</p>\n <p><strong>9. Betroffenenrechte</strong></p>\n <p>a. Als von der Datenverarbeitung betroffene Person haben Sie das Recht auf Auskunft (Art. 15 DSGVO),\n Berichtigung (Art. 16 DSGVO), Datenlöschung (Art. 17 DSGVO), Einschränkung der Verarbeitung (Art. 18\n DSGVO) sowie Datenübertragbarkeit (Art. 20 DSGVO). </p>\n <p>b. Haben Sie in die Verarbeitung Ihrer personenbezogenen Daten durch uns eingewilligt, haben Sie das\n Recht,\n die Einwilligung jederzeit zu widerrufen. Die Rechtmäßigkeit der Verarbeitung Ihrer personenbezogenen\n Daten bis zu einem Widerruf wird durch den Widerruf nicht berührt. Ebenso unberührt bleibt eine weitere\n Verarbeitung dieser Daten aufgrund einer anderen Rechtsgrundlage, etwa zur Erfüllung rechtlicher\n Verpflichtungen (vgl. Abschnitt „Rechtsgrundlagen der Verarbeitung“).</p>\n <table id=\"table_listed\">\n <tbody>\n <tr id=\"table_row_dark\">\n <td><strong>c. Widerspruchsrecht</strong></td>\n </tr>\n <tr>\n <td ><u>Sie haben das Recht, aus Gründen, die sich aus Ihrer\n besonderen Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender\n personenbezogener\n Daten, die aufgrund von Art. 6 Abs. 1 e) DSGVO (Datenverarbeitung im öffentlichen Interesse)\n oder\n Art. 6 Abs. 1 f) DSGVO (Datenverarbeitung auf der Grundlage einer Interessenabwägung) erfolgt,\n Widerspruch einzulegen. Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten nur\n weiter verarbeiten, soweit wir dafür zwingende berechtigte Gründe nachweisen können, die Ihre\n Interessen, Rechte und Freiheiten überwiegen, oder soweit die Verarbeitung der Geltendmachung,\n Ausübung oder Verteidigung von Rechtsansprüchen dient. Sofern wir Ihre personenbezogenen Daten\n verarbeiten, um Direktwerbung zur Wahrnehmung berechtigter Interessen auf der Grundlage einer\n Interessenabwägung zu betreiben, haben Sie zudem das Recht, hiergegen jederzeit ohne Nennung von\n Gründen Widerspruch einzulegen.</u></td>\n </tr>\n </tbody>\n </table>\n <p>d. Wir bitten Sie, Ihre Ansprüche oder Erklärungen nach Möglichkeit an die nachstehende Kontaktadresse zu\n richten: <a href=\"mailto:contact@daimlertruck.com\">contact@daimlertruck.com</a>\n </p>\n <p>e. Sind Sie der Ansicht, die Verarbeitung Ihrer personenbezogener Daten verstoße gegen gesetzliche\n Vorgaben, haben Sie das Recht zur Beschwerde bei einer zuständigen Datenschutzaufsichtsbehörde (Art. 77\n DSGVO).</p>\n <p><strong>10. Newsletter</strong></p>\n <p>Wenn Sie einen auf unserer Webseite angebotenen Newsletter abonnieren, werden die bei der\n Newsletter-Anmeldung angegebenen Daten nur für den Versand des Newsletters verwendet, soweit Sie nicht\n einer weitergehenden Nutzung zustimmen. Sie können das Abonnement jederzeit über die im Newsletter\n vorgesehene Abmeldemöglichkeit beenden.</p>\n <p><strong>11. Zentraler Zugangsservice der Daimler Truck AG</strong></p>\n <p>Mit dem zentralen Zugangsservice der Daimler Truck AG können Sie sich bei allen an diesen Service\n angeschlossenen Webseiten und Applikationen der Daimler-Gruppe und ihrer Marken anmelden. Die dafür\n geltenden Nutzungsbedingungen enthalten spezielle Datenschutzregelungen. Sie können diese\n Nutzungsbedingungen auf den jeweiligen Anmeldeseiten der angeschlossenen Webseiten und Applikationen\n abrufen.</p>\n <p><strong>12. Datenübertragung an Empfänger außerhalb des Europäischen Wirtschaftsraums</strong></p>\n <p>a. Beim Einsatz von Dienstleistern (siehe Ziffer 4. d.) und der Weitergabe von Daten mit Ihrer\n Einwilligung\n (= Zustimmung) an Dritte (siehe Ziffer 3.c) können personenbezogene Daten an Empfänger in Ländern\n außerhalb der Europäischen Union („EU“), Islands, Liechtensteins und Norwegens (= Europäischer\n Wirtschaftsraum) übertragen und dort verarbeitet werden, insbesondere USA, Indien.</p>\n <p>b. In den folgenden Ländern besteht aus der Sicht der EU ein den EU-Standards entsprechendes angemessenes\n Schutzniveau für die Verarbeitung personenbezogener Daten (sog. Angemessenheitsbeschluss): Andorra,\n Argentinien, Kanada (eingeschränkt), Färöer-Inseln, Guernsey, Israel, Isle of Man, Japan, Jersey,\n Neuseeland, Schweiz, Uruguay. Mit Empfängern in anderen Ländern vereinbaren wir die Anwendung von\n EU-Standardvertragsklauseln, von verbindlichen Unternehmensregelungen oder andere zulässige Mechanismen,\n um entsprechend den gesetzlichen Anforderungen ein „angemessenes Schutzniveau“ zu schaffen.\n Informationen\n hierzu stellen wir Ihnen gerne über die in vorstehender Ziffer 9.d. genannten Kontaktdaten zur\n Verfügung.</p>\n <p>Stand: Januar 2022</p>\n </div>\n\n );\n};\n","import react from 'react';\nimport { useTranslation } from 'react-i18next';\n\nexport const PrivacyStatementEn = () => {\n\n function showCMP() {\n // @ts-ignore\n window['UC_UI'].showSecondLayer();\n }\n return (\n <div>\n <h3>Privacy Statement</h3>\n <p>The controller as per the EU General Data Protection Regulation (GDPR) is:</p>\n <p>Daimler Truck AG (\"We\")<br/>Fasanenweg 10<br/>70771 Leinfelden-Echterdingen<br/>Germany</p>\n <p>E-Mail: <a href=\"mailto:contact@daimlertruck.com\">contact@daimlertruck.com</a></p>\n <p><br/>Data Protection Officer:<br/></p>\n <p>Daimler Truck AG<br/>HPC DTF2B<br/>Fasanenweg 10<br/>70771 Leinfelden-Echterdingen<br/>Germany</p>\n <p>E-Mail: <a \n href=\"mailto:dataprivacy@daimlertruck.com\">dataprivacy@daimlertruck.com</a></p>\n\n <p><strong>1. Data Protection</strong></p>\n <p>We appreciate you visiting our website and your interest in the products we offer. Protecting your personal\n data is very important to us. In this Privacy Policy, we explain how we collect your personal information,\n what we do with it, for what purposes and on what legal foundation we do so, and what rights you have on\n that basis. We will also refer you to Daimler's Data Protection Policy:</p>\n <p>\n <a className=\"txtlink\" \n href=\"https://www.daimlertruck.com/dokumente/unternehmen/datenschutz/data-protection-policy-eu.pdf\"\n target=\"_blank\">Data Protection Policy EU (daimlertruck.com)</a>\n </p>\n <p>Our Privacy Statement on the use of our websites and the Daimler Truck AG Data Protection Policy do not\n apply to your activities on the websites of social networks or other providers that can be accessed using\n the links on our websites. Please read the data protection provisions on the websites of those\n providers.</p>\n <p><strong>2. Collection and processing of your personal data</strong></p>\n <p>a. Whenever you visit our websites, we store certain information about the browser and operating system you\n are using; the date and time of your visit; the status of the interaction (e.g. whether you were able to\n access the website or received an error message); the usage of features on the website; any search phrases\n you entered; how often you visit individual websites; the names of the files you access; the amount of\n data transferred; the Web page from which you accessed our website; and the Web page you visited after\n visiting our website, whether by clicking links on our websites or entering a domain directly into the\n input field of the same tab (or window) of the browser in which you have our websites open. In addition,\n we store your IP address and the name of your Internet service provider for seven days. This is for\n security reasons; in particular, to prevent and detect attacks on our websites or attempts at fraud.</p>\n <p>b. We only store other personal data if you provide this data, e.g. as part of a registration, contact\n form, chat, survey, price competition or for the execution of a contract, and even in these cases only\n insofar as this is permitted to us on the basis of a consent given by you or in accordance with the\n applicable legal provisions (see section 7).</p>\n <p>c. You are neither legally nor contractually obligated to share your personal information. However, certain\n features of our websites may depend on the sharing or personal information. If you do not provide your\n personal information in such cases, you may not be able to use those features, or they may be available\n with limited functionality.</p>\n <p><strong>3. Purposes of use</strong></p>\n <p>a. We use the personal information collected during your visit to any of our websites to make using them as\n convenient as possible for you and to protect our IT systems against attacks and other unlawful\n activities.</p>\n <p>b. If you share additional information with us – for example, by filling out a registration form, contact\n form, chat, survey, contest entry or to execute a contract with you – we will use that information for the\n designated purposes, purposes of customer management and – if required – for purposes of processing and\n billing and business transactions within the required scope in each instance.</p>\n <p>c. For other purposes (e.g. display of personalized content or advertising based on your usage behaviour),\n we and, if applicable, selected third parties, use your personal data if and to the extent you give your\n consent through our consent management system. You will find further information and decisionmaking\n options here: <a href=\"#\" onClick={showCMP}>CMP</a></p>\n <p>d. In addition, we use personal data to the extent that we are legally obliged to do so (e.g., storage for\n the fulfilment of commercial or taxrelated retention obligations, release in accordance with official or\n judicial orders, e.g. to a law enforcement authority).</p>\n <p><strong>4. Transfer of Personal Information to Third Parties; Social Plugins; Use of Service\n Providers</strong></p>\n <p>a. Our websites may also contain an offer of third parties. If you click on such an offer, we transfer data\n to the respective provider to the required extent (e.g. information that you have found this offer with us\n and, if applicable, further information that you have already provided on our websites for this\n purpose).</p>\n <p>b. When we use social plug-ins on our websites from social networks such as Facebook and Twitter, we\n integrate them as follows:</p>\n <p>When you visit our websites, the social plug-ins are deactivated, i.e. no data is transmitted to the\n operators of these networks. If you want to use one of the networks, click on the respective social\n plug-in to establish a direct connection to the server of the respective network.</p>\n <p>If you have a user account on the network and are logged in when you activate the social plug-in, the\n network can associate your visit to our websites with your user account. If you want to avoid this, please\n log out of the network before activating the social plug-in. A social network cannot associate a visit to\n other Daimler websites until you have activated an existing social plug-in.</p>\n <p>When you activate a social plug-in, the network transfers the content that becomes available directly to\n your browser, which integrates it into our websites. In this situation, data transmissions can also take\n place that are initiated and controlled by the respective social network. Your connection to a social\n network, the data transfers taking place between the network and your system, and your interactions on\n that platform are governed solely by the privacy policies of that network.</p>\n <p>The social plug-in remains active until you deactivate it or delete your cookies (see section 5.d).</p>\n <p>c. If you click on the link to an offer or activate a social plug-in, personal data may reach providers in\n countries outside the European Economic Area that, from the point of view of the European Union (\"EU\"),\n may not guarantee an \"adequate level of protection\" for the processing of personal data in accordance with\n EU standards. Please remember this fact before clicking on a link or activating a social plug-in and\n thereby triggering a transfer of your data.</p>\n <p>d. We also use qualified service providers (e.g., IT service providers, marketing agencies) to operate,\n optimize and secure our websites. We only pass on personal data to the latter insofar as this is necessary\n for the provision and use of the website and its functionalities, for the pursuit of legitimate interests,\n to comply with legal obligations, or insofar as you have consented there to (see section 7).</p>\n <p><strong>5. Cookies</strong></p>\n <p>a. Cookies may be used when you are visiting our websites. Technically, these are so-called HTML cookies\n and similar software tools such as Web/DOM Storage or Local Shared Objects (so-called \"Flash cookies\"),\n which we collectively refer to as cookies.</p>\n <p>b. Cookies are small files that are stored on your desktop, notebook or mobile device while you visit a\n website. Cookies make it possible, for example, to determine whether there has already been a connection\n between the device and the websites; take into account your preferred language or other settings, offer\n you certain certain functions (e.g. online shop, vehicle configurator) or recognize your usagebased\n interests. Cookies may also contain personal data.</p>\n <p>c. Whether and which cookies are used when you visit our websites depends on which areas and functions of\n our websites you use and whether you agree to the use of cookies that are not technically required in our\n Consent Management System.</p>\n <p>d. The use of cookies also depends on the settings of the web browser you are using (e.g., Microsoft Edge,\n Google Chrome, Apple Safari, Mozilla Firefox). Most web browsers are preset to automatically accept\n certain types of cookies; however, you can usually change this setting. You can delete stored cookies at\n any time. Web/DOM storage and local shared objects can be deleted separately. You can find out how this\n works in the browser or device you are using in the manual of the learner.</p>\n <p>e. The consent to, and rejection or deletion of, cookies are tied to the device and also to the respective\n web browser you use. If you use multiple devices or web browsers, you can make decisions or settings\n differently.</p>\n <p>f. If you decide against the use of cookies or delete them, you may not have access to all functions of our\n websites or individual functions may be limited.</p>\n <p><strong>6. Security</strong></p>\n <p>We take technical and organizational security measures in order to protect your information managed by us\n from being tampered with, lost, destroyed or accessed by authorized individuals. We are continuously\n improving our security measures in line with technological advancements.</p>\n <p><strong>7. Legal Foundations for Processing</strong></p>\n <p>a. If you have given us your consent to process your personal information, then that is the legal\n foundation for processing it (Art. 6, para. 1, letter a, of the EU's General Data Protection Regulation,\n or GDPR).</p>\n <p>b. Art. 6, para. 1, letter b, of the GDPR is the legal basis for processing personal information for the\n purpose of entering into a contract or performing a contract with you.</p>\n <p>c. If processing your personal information is required to fulfill our legal obligations (e.g. data\n retention), we are authorized to do so by Art. 6, para. 2, letter c, of the GDPR.</p>\n <p>d. Furthermore, we process personal information for purposes of protecting our legitimate interests as well\n as the interests of third parties in accordance with Art. 6, para. 1, letter f of the GDPR. Examples of\n such legitimate interests include maintaining the functionality of our IT systems as well as the (direct)\n marketing of our products and services (to the extent not covered by your consent) and those of third\n parties and the legally required documentation of business contacts. As part of the consideration of\n interests required in each case, we take into account various aspects, in particular the type of personal\n information, the purpose of processing, the circumstances of processing and your interest in the\n confidentiality of your personal information.</p>\n <p><strong>8. Deleting your personal data</strong></p>\n <p>Your IP address and the name of your Internet service provider, which we store for security reasons, are\n deleted after seven days. Moreover, we delete your personal information as soon as the purpose for which\n it was collected and processed has been fulfilled. Beyond this time period, data storage only takes place\n to the extent made necessary by the legislation, regulations or other legal provisions to which we are\n subject in the EU or by legal provisions in third-party countries if these have an appropriate level of\n data protection. Should it not be possible to delete data in individual cases, the relevant personal data\n are flagged to restrict their further processing.</p>\n <p><strong>9. Rights of the data subject</strong></p>\n <p>a. As a data subject affected by data processing, you have the right to information (Section 15 GDPR),\n Correction (Section 16 GDPR), Deletion (Section 17 GDPR), Restricted processing (Section18 GDPR) and Data\n Transferability (Section 20 GDPR).</p>\n <p>b. If you have consented to the processing of your personal information by us, you have the right to revoke\n your consent at any time. Your revocation does not affect the legality of the processing of your personal\n information that took place before your consent was revoked. It also has no effect on the continued\n processing of the information on another legal basis, such as to fulfill legal obligations (see section\n titled \"Legal Foundation of Processing\").</p>\n <table id=\"table_listed\" >\n <tbody>\n <tr id=\"table_row_dark\"\n >\n <td ><strong>c. Right to object</strong></td>\n </tr>\n <tr>\n <td ><u>For reasons relating to your particular situation, you have\n the right to file an objection at any time to the processing of personal data pertaining to you\n that is collected under Section 6 Clause (1e) GDPR (data processing in the public interest) or\n Section 6 Clause 1 f) GDPR (data processing on the basis of a balance of interests). If you file\n an objection, we will continue to process your personal data only if we can document mandatory,\n legitimate reasons that outweigh your interests, rights and freedoms, or if processing is for the\n assertion, exercise or defense of legal claims. To the extent we use your personal data for direct\n marketing based on legitimate interests, you have the right to object at any time without giving\n reasons.\n </u>\n </td>\n </tr>\n </tbody>\n </table>\n <p>d. We ask you to address your claims or declarations to the following contact address if possible: <a\n href=\"mailto:contact@daimlertruck.com\">contact@daimlertruck.com</a></p>\n <p>e. If you believe that the processing of your personal data violates legal requirements, you have the right\n to lodge a complaint with a competent data protection supervisory authority (Art. 77 GDPR).</p>\n <p><strong>10. Newsletter</strong></p>\n <p>If you subscribe to a newsletter offered on our website, the information provided during registration for\n the newsletter will be used solely for the purpose of mailing the newsletter unless you consent to its use\n for additional purposes. You may cancel the subscription at any time by using the option to unsubscribe\n contained in the newsletter.</p>\n <p><strong>11. Daimler Truck AG's Central Registration Service </strong></p>\n <p>With the Central Registration Service offered by Daimler Truck AG, you can sign up for every website and\n application belonging to the Daimler Group and its brands that are connected to the service. The\n applicable terms of use contain specific data protection provisions. Those terms of use can be found on\n the registration pages of affiliated websites and applications.</p>\n <p><strong>12. Data transmission to recipients outside the European Economic Area</strong></p>\n <p>a. When using service providers (see section 4. d.) and passing on data to third parties based on you\n consent (see section 3.c.), personal data may be provided to recipients in countries outside the European\n Union (\"EU\"), Iceland, Liechtenstein and Norway (= European Economic Area) are transferred and processed\n there, in particular USA, India.</p>\n <p>b. In the following countries, from the EU's point of view, there is an adequate level of personal data\n protection (so-called \"adequacy\"), in compliance with EU standards: Andorra, Argentina, Canada (limited),\n Faroe Islands, Guernsey, Israel, Isle of Man, Japan, Jersey, New Zealand, Switzerland, Uruguay. We agree\n with recipients in other countries on the use of EU standard contractual clauses, binding corporate rules\n or other applicable instruments (if any) to create an \"adequate level of protection\" according to legal\n requirements. For more information, please use the contact details given in section 9.d. above.</p>\n <p>Last update: January 2022</p>\n </div>\n );\n};\n","export const ProviderDe = () => {\n return (\n <>\n <h3>Anbieter</h3>\n <div>\n <p>\n Daimler Truck AG\n <br />\n Fasanenweg 10\n <br />\n 70771 Leinfelden-Echterdingen\n <br />\n Deutschland\n <br />\n Tel.: +49 711 8485-0\n <br />\n Email:{' '}\n <a\n href='mailto:contact@daimlertruck.com'\n className='wb-link wb-link--inline'\n >\n contact@daimlertruck.com\n </a>{' '}\n <br />\n </p>\n\n <p>\n <h4>vertreten durch den Vorstand:</h4>Karin RÃ¥dström (Vorsitzende), Karl Deppen, Andreas Gorbach, Jürgen Hartwig, John O’Leary, Achim Puchert, Eva Scherer\n <br />\n <br />\n <span style={{ fontWeight: 'bold' }}>\n Vorsitzender des Aufsichtsrats:\n </span>{' '}\n Joe Kaeser\n <br />\n <br />\n Handelsregister beim Amtsgericht Stuttgart, Nr. HRB 762884\n <br />\n Umsatzsteueridentifikationsnummer: DE 32 12 81 771\n </p>\n </div>\n </>\n );\n};\n","export const ProviderEn = () => {\n return (\n <>\n <h3>Provider</h3>\n <br />\n <div>\n <p>\n Daimler Truck AG\n <br />\n Fasanenweg 10\n <br />\n 70771 Leinfelden-Echterdingen\n <br />\n Germany\n <br />\n Tel.: +49 711 8485-0\n <br />\n Email:{' '}\n <a\n href='mailto:contact@daimlertruck.com'\n className='wb-link wb-link--inline'\n >\n contact@daimlertruck.com\n </a>{' '}\n <br />\n </p>\n\n <p>\n <h4>Represented by the Board of Management:</h4>Karin RÃ¥dström (Chairwoman), Karl Deppen, Andreas Gorbach, Jürgen Hartwig, John O’Leary, Achim Puchert, Eva Scherer\n <br />\n <br />\n <span style={{ fontWeight: 'bold' }}>\n Chairman of the Supervisory Board:\n </span>{' '}\n Joe Kaeser\n <br />\n <br />\n Commercial Register Stuttgart, No. HRB 762884\n <br />\n VAT registration number: DE 32 12 81 771\n </p>\n </div>\n </>\n );\n};\n","export const LegalNoticeDe = () => {\n return (\n <>\n <h3>Rechtliche Hinweise</h3>\n <br/>\n <div>\n <h4>Urheberrecht</h4>\n <p>\n Copyright {new Date().getFullYear()}. Daimler Truck AG. Alle Rechte vorbehalten. Alle Texte, Bilder, Graphiken, Ton-,\n Video- und Animationsdateien sowie ihre Arrangements unterliegen dem Urheberrecht und anderen\n Gesetzen zum Schutz geistigen Eigentums. Sie dürfen weder für Handelszwecke oder zur Weitergabe\n kopiert, noch verändert und auf anderen Web-Sites verwendet werden. Einige Internet-Seiten der\n Daimler Truck AG enthalten auch Material, das dem Urheberrecht derjenigen unterliegt, die dieses zur\n Verfügung gestellt haben.\n </p>\n <h4>Handelsmarken</h4>\n <p>\n Wo nicht anders angegeben, sind alle auf den Internet-Seiten der Daimler Truck AG genannten Marken\n gesetzlich geschützte Warenzeichen der Daimler Truck AG, dies gilt insbesondere für die Modellnamen\n sowie alle Logos und Embleme des Unternehmens.\n </p>\n <h4>Lizenzrechte</h4>\n <p>\n Die Daimler Truck AG möchte Ihnen ein innovatives und informatives Internet-Programm anbieten. Wir\n hoffen deshalb, dass Sie sich über unsere kreative Gestaltung genauso freuen wie wir. Wir bitten Sie\n aber dennoch um Verständnis dafür, dass die Daimler Truck AG ihr geistiges Eigentum, einschließlich\n Patente, Handelsmarken und Urheberrechte, schützen muss und diese Internet-Seiten keinerlei\n Lizenzrechte an dem geistigen Eigentum der Daimler Truck AG gewähren können.\n </p>\n <h4>Hinweis gemäß § 36 Verbraucherstreitbeilegungsgesetz (VSBG)</h4>\n <p>\n Die Daimler Truck AG wird nicht an einem Streitbeilegungsverfahren vor einer\n Verbraucherschlichtungsstelle im Sinne des deutschen Verbraucherstreitbeilegungsgesetzes (VSBG)\n teilnehmen und ist hierzu auch nicht verpflichtet.\n </p>\n <h4>Informationen zur Online-Streitbeilegung</h4>\n <p>\n Die EU-Kommission hat eine Internetplattform zur Online-Beilegung von Streitigkeiten (sog.\n „OS-Plattform“) geschaffen. Die OS-Plattform dient als Anlaufstelle zur außergerichtlichen Beilegung\n von Streitigkeiten betreffend vertragliche Verpflichtungen, die aus Online-Kaufverträgen erwachsen.\n Sie können die OS-Plattform unter dem\n folgenden Link erreichen:{' '}\n <a\n href='https://ec.europa.eu/consumers/odr'\n target='_blank'\n className='wb-link wb-link--inline'\n >\n http://ec.europa.eu/consumers/odr\n </a>\n </p>\n\n <h4>Haftung</h4>\n <p>\n Die Informationen und Angaben auf diesen Seiten stellen keine Zusicherung oder Garantie dar, sei sie\n ausdrücklich oder stillschweigend. Sie stellen insbesondere keine stillschweigende Zusage oder\n Garantie betreffend die Beschaffenheit, die Handelsfähigkeit, die Eignung für bestimmte Zwecke oder\n den Nichtverstoß gegen Gesetze und Patente dar. Auf unseren Internet-Seiten finden Sie auch Links zu\n anderen Seiten im Internet. Wir möchten Sie darauf hinweisen, dass wir keinen Einfluss auf die\n Gestaltung und den Inhalt der Seiten haben, auf die verlinkt wird. Wir können daher auch keine\n Gewähr für die Aktualität, Korrektheit, Vollständigkeit oder Qualität der dort bereitgestellten\n Informationen übernehmen. Vor diesem Hintergrund distanzieren wir uns hiermit von allen Inhalten\n dieser Seiten. Diese Erklärung gilt für alle auf unseren Internet-Seiten enthaltenen Links zu\n externen Seiten und deren Inhalte.\n </p>\n </div>\n </>\n );\n};\n","export const LegalNoticeEn = () => {\n return (\n <>\n <h3>Legal Notice</h3>\n <br/>\n <div>\n <h4>Copyrights</h4>\n <p>\n Copyright {new Date().getFullYear()}. Daimler Truck AG. All rights reserved. All text, images, graphics, sound files,\n video files and animation files and their arrangement are subject to copyright and other\n intellectual property laws. They may not be copied, either for commercial purposes or for\n redistribution, nor may they be modified and used on other websites. Some Daimler Truck AG webpages\n also include material that is subject to the copyright of those parties who have made such material\n available.\n </p>\n <h4>Trademarks</h4>\n <p>\n Unless otherwise stipulated, all brand names featured on the pages of Daimler Truck AG websites are\n legally protected trademarks belonging to Daimler Truck AG. This applies, in particular, to the\n model names and all corporate logos and emblems.\n </p>\n <h4>Licenses</h4>\n <p>\n Daimler Truck AG has sought to bring you an innovative and informative internet site, and we hope\n that you will be as enthusiastic about our creative effort as we are. Please appreciate, however,\n that Daimler Truck AG has to protect its intellectual property, including patents, trademarks and\n copyrights, and that these internet pages cannot be construed as granting any license rights to\n Daimler Truck AG’s intellectual property.\n </p>\n <p>\n <h4>Information according to § 36 German Consumer Dispute Resolution Act (VSBG)</h4>\n Daimler Truck AG will not participate in a dispute settlement proceeding in front of a consumer\n arbitration board according to the German Consumer Dispute Resolution Act (VSBG) and is not obliged\n to do so.\n </p>\n <p>\n <h4> Information about online dispute resolution</h4>\n The European Commission has established an internet platform for online dispute resolution (so\n called “ODR platformâ€). The ODR platform is a point of entry for out-of-court resolutions relating\n to contractual obligations of online sales contracts. You can get to the ODR platform by following\n the link:\n {' '}\n <a\n href='https://ec.europa.eu/consumers/odr'\n target='_blank'\n className='wb-link wb-link--inline'\n >\n http://ec.europa.eu/consumers/odr\n </a>\n </p>\n\n <h4>Liability</h4>\n <p>\n The information provided and the statements made on these pages do not constitute any representation\n or warranty, either express or implied. In particular, such information is not an implied promise or\n guarantee in respect of quality, marketability, fitness for any particular purpose, or the\n non-infringement of laws and patents. Our internet pages also contain links to other internet sites.\n We would like to point out that we have no influence over the design and content of the linked\n sites. We therefore accept no liability for the accuracy, completeness or quality of the information\n provided there, nor do we guarantee that it is up to date. Consequently, we hereby distance\n ourselves from all content of such sites. This declaration applies to all links to external sites\n contained on our internet pages and to the content of such sites.\n </p>\n </div>\n </>\n );\n};\n","import './CookieModel.css';\nimport React, { useEffect } from 'react';\nimport { useTranslation, i18n } from 'react-i18next';\nimport { PrivacyStatementDe } from './text_DE/PrivacyStatementDe';\nimport { PrivacyStatementEn } from './text_EN/PrivacyStatementEn';\nimport { ProviderDe } from './text_DE/ProviderDe';\nimport { ProviderEn } from './text_EN/ProviderEn';\nimport { LegalNoticeDe } from './text_DE/LegalNoticeDe';\nimport { LegalNoticeEn } from './text_EN/LegalNoticeEn';\nimport { CookiesDe } from './text_DE/CookiesDe';\nimport { CookiesEn } from './text_EN/CookiesEn';\nimport { getViewportWidth } from '@workbench/core';\n\n/**\n * Main page (landing page or home page) component.\n *\n * @returns\n */\n\nexport default function CookieModel() {\n const { t, i18n } = useTranslation();\n useEffect(() => {\n // Update the document title using the browser API\n const modal = document.querySelector('wb-modal');\n\n modal.addEventListener('wbclose', function () {\n document.getElementById('cookieModelContainer').classList.add('hide');\n });\n }, []);\n\n return (\n <div id='cookieModelContainer' className='wb-grid-container hide'>\n <div className='wb-grid-row cstm-cookie-model'>\n <wb-modal\n mode='info'\n className='cstm-txt'\n closeOnBackdropClick\n closeOnEscapeKey\n >\n {/* <wb-modal-header style={{ color: 'red' }}>{t('ModelHeaderText')}</wb-modal-header> */}\n <wb-modal-header></wb-modal-header>\n <wb-modal-content headline=' '>\n <div style={{ display: 'flex', alignItems: 'center', color: 'red',justifyContent: 'center' }}>\n {i18n.language === 'pt' && (\n // SVG Icon\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n fill=\"red\"\n style={{ marginRight: '8px', verticalAlign: 'middle' }}\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-11h2v2h-2zm0 4h2v6h-2z\" />\n </svg>\n )}\n {/* Translated Text */}\n <div>{t('ModelHeaderText')}</div>\n </div>\n\n <wb-tabs id='tabs' selected='settings'>\n {getViewportWidth() > 767 && (\n <wb-tab-bar fitted>\n <wb-tab id='provider' name='provider'>\n {t('Provider')}\n </wb-tab>\n <wb-tab id='legalNotice' name='legalNotice'>\n {t('LegalNotice')}\n </wb-tab>\n {/*<wb-tab id='settings' name='settings' selected>*/}\n {/* {t('Settings')}*/}\n {/*</wb-tab>*/}\n <wb-tab id='dataPrivacy' name='dataPrivacy'>\n {t('PrivacyStatement')}\n </wb-tab>\n </wb-tab-bar>\n )}\n\n {getViewportWidth() < 768 && (\n <wb-tab-bar>\n <wb-tab id='provider' name='provider'>\n {t('Provider')}\n </wb-tab>\n <wb-tab id='legalNotice' name='legalNotice'>\n {t('LegalNotice')}\n </wb-tab>\n <wb-tab id='settings' name='settings' selected>\n {t('Settings')}\n </wb-tab>\n <wb-tab id='dataPrivacy' name='dataPrivacy'>\n {t('PrivacyStatement')}\n </wb-tab>\n </wb-tab-bar>\n )}\n\n <wb-tab-content id='providerTabContent' name='provider'>\n {i18n.language === 'de' ? (\n <ProviderDe></ProviderDe>\n ) : (\n <ProviderEn></ProviderEn>\n )}\n </wb-tab-content>\n\n <wb-tab-content id='legalNoticeTabContent' name='legalNotice'>\n {i18n.language === 'de' ? (\n <LegalNoticeDe></LegalNoticeDe>\n ) : (\n <LegalNoticeEn></LegalNoticeEn>\n )}\n </wb-tab-content>\n\n {/*<wb-tab-content id='settingsTabContent' name='settings'>*/}\n {/* {i18n.language === 'de' ? (*/}\n {/* <CookiesDe></CookiesDe>*/}\n {/* ) : (*/}\n {/* <CookiesEn></CookiesEn>*/}\n {/* )}*/}\n {/*</wb-tab-content>*/}\n\n <wb-tab-content id='dataPrivacyTabContent' name='dataPrivacy'>\n {i18n.language === 'de' ? (\n <PrivacyStatementDe></PrivacyStatementDe>\n ) : (\n <PrivacyStatementEn></PrivacyStatementEn>\n )}\n </wb-tab-content>\n </wb-tabs>\n </wb-modal-content>\n </wb-modal>\n </div>\n </div>\n );\n}\n","import './ComingSoon.css';\n\n/**\n * Main page (landing page or home page) component.\n *\n * @returns\n */\n\nexport default function ComingSoon() {\n return (\n <div className='wb-grid-container text-color wrapper-coming-soon'>\n <div className='wb-grid-row'>\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-12 wb-grid-col-mq3-12 wb-grid-col-mq4-12 wb-grid-col-mq5-12 wb-grid-col-mq6-12 '>\n <div className='wb-grid-container text-color'>\n <div className='wb-grid-row'>\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq2-12 wb-grid-col-mq3-12 wb-grid-col-mq4-12 wb-grid-col-mq5-12 wb-grid-col-mq6-12 '>\n <h2 className='wb-banner-teaser-content__heading wb-type-heading-m'>\n Coming Soon\n </h2>\n <div className='wb-banner-teaser-content__description wb-type-copy'>\n <p>\n This page is under construction. Lorem, ipsum dolor sit amet\n consectetur adipisicing elit. Similique dignissimos amet\n placeat itaque blanditiis vitae non cum rem sunt voluptates.\n Nisi impedit aliquam praesentium iusto eligendi neque amet\n obcaecati distinctio.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import './OilFinder.css';\nimport ComingSoon from '../general/comingSoon/ComingSoon';\n\n/**\n * Main page (landing page or home page) component.\n *\n * @returns\n */\n\nexport default function OilFinder() {\n return (\n <div>\n <ComingSoon></ComingSoon>\n </div>\n );\n}\n","export interface IContact {\n email: string;\n title: string;\n message: string;\n locale: string;\n}\n\nexport const emptyContactObject = {\n email: '',\n title: '',\n message: '',\n locale: 'de'\n};\n","import { useEffect } from 'react';\nimport './Contact.css';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { sendContact } from '../../../utility/FetchAPI';\nimport { emptyContactObject } from '../../../interfaces/IContact';\nimport useCountDown from 'react-countdown-hook';\nimport { useNavigate } from 'react-router-dom';\nimport isbot from 'isbot';\n\nexport const Contact = () => {\n let navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const initialTime = 9000;\n const interval = 1000;\n const [timeLeft, { start, pause, resume, reset }] = useCountDown(\n initialTime,\n interval\n );\n\n const [emailSent, setEmailSent] = useState(false);\n const [email, setEmail] = useState('');\n const [title, setTitle] = useState('');\n const [message, setMessage] = useState('');\n const [errorEmail, setErrorEmail] = useState(false);\n const [errorTitle, setErrorTitle] = useState(false);\n const [errorMessage, setErrorMessage] = useState(false);\n const [initialState, setInitialState] = useState(true);\n const [isBot, setIsBot] = useState(false);\n\n useEffect(() => {\n checkInput();\n setIsBot(isbot(navigator.userAgent));\n });\n\n const startCountdown = () => {\n reset();\n start();\n };\n\n const clearForm = () => {\n setEmailSent(true);\n setInitialState(true);\n setEmail('');\n setTitle('');\n setMessage('');\n setErrorEmail(false);\n setErrorTitle(false);\n setErrorMessage(false);\n startCountdown();\n let interval = setInterval(() => {\n clearInterval(interval);\n navigate('/');\n }, initialTime);\n };\n\n const sendMail = () => {\n checkInput();\n if (errorEmail === true || errorTitle === true || errorMessage === true) {\n setInitialState(false);\n } else {\n let contactData = emptyContactObject;\n contactData.email = email;\n contactData.title = title;\n contactData.message = message;\n\t contactData.locale = i18n.language;\n if (!isBot) {\n let data = sendContact(contactData);\n data.then((response) => {\n if ((response.data = 'success')) {\n clearForm();\n }\n });\n } else {\n clearForm();\n }\n }\n };\n\n const checkInput = () => {\n validateEmail(email) ? setErrorEmail(false) : setErrorEmail(true);\n title === '' || null ? setErrorTitle(true) : setErrorTitle(false);\n message === '' || null ? setErrorMessage(true) : setErrorMessage(false);\n };\n\n const addEmail = (value) => {\n setEmail(value);\n validateEmail(email) ? setErrorEmail(false) : setErrorEmail(true);\n };\n\n const addTitle = (value) => {\n setTitle(value);\n title === '' || null ? setErrorTitle(true) : setErrorTitle(false);\n };\n\n const addMessage = (value) => {\n setMessage(value);\n message === '' || null ? setErrorMessage(true) : setErrorMessage(false);\n };\n\n const validateEmail = (email) => {\n return email\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n };\n\n return (\n <div className='contactContainer'>\n {/* <div>IS BOT? {isBot ? 'true' : 'false'}</div> */}\n <p className='wb-type-heading-l'>{t('WelcomeToSupport')}</p>\n <br />\n <br />\n <div className='wb-grid-container wb-type-label formContainer'>\n <div className='wb-grid-row rowStyle'>\n <div className='wb-grid-col-mq1-2 contactLabels'>{t('Email')}</div>\n <div className='wb-grid-col-mq1-10 mobileContact'>\n <wb-input-control error={!initialState && errorEmail}>\n <wb-input>\n <label>{t('Email')}</label>\n <input\n aria-labelledby='EmailError'\n type='email'\n onChange={(e) => addEmail(e.target.value)}\n value={email}\n />\n </wb-input>\n </wb-input-control>\n {!initialState && errorEmail && (\n <p className='wb-type-hint-strong error'>{t('ErrorEmail')}</p>\n )}\n </div>\n </div>\n <div className='wb-grid-row rowStyle'>\n <div className='wb-grid-col-mq1-2 contactLabels'>{t('Title')}</div>\n <div className='wb-grid-col-mq1-10 mobileContact'>\n <wb-input-control error={!initialState && errorTitle}>\n <wb-input>\n <label>{t('Title')}</label>\n <input\n aria-labelledby='TitleError'\n type='text'\n onChange={(e) => addTitle(e.target.value)}\n value={title}\n />\n </wb-input>\n </wb-input-control>\n {!initialState && errorTitle && (\n <p className='wb-type-hint-strong error'>{t('ErrorTitle')}</p>\n )}\n </div>\n </div>\n\n <div className='wb-grid-row rowStyle'>\n <div className='wb-grid-col-mq1-2 contactLabels'>{t('Message')}</div>\n <div className='wb-grid-col-mq1-10 mobileContact'>\n <wb-input-control error={!initialState && errorMessage}>\n <wb-input>\n <label>{t('Message')}</label>\n <textarea\n aria-labelledby='MessageError'\n value={message}\n onChange={(e) => addMessage(e.target.value)}\n ></textarea>\n </wb-input>\n </wb-input-control>\n {!initialState && errorMessage && (\n <p className='wb-type-hint-strong error'>{t('ErrorMessage')}</p>\n )}\n </div>\n {/* Honey pot */}\n <div>\n <input\n type='checkbox'\n name='dataPrivacy'\n onChange={(e) => setIsBot(e.target.value)}\n value='1'\n\t\t\t className='dataPrivacy'\n tabindex='-1'\n autocomplete='off'\n ></input>\n </div>\n </div>\n\n <div className='wb-grid-row rowStyle'>\n <div className='wb-grid-col-mq1-12 wb-grid-col-mq3-4 wb-grid-col-mq4-2 mobileContact sendMailBtnStyle'>\n {' '}\n <button\n type='button'\n\t\t\t className='wb-button wb-button--primary wb-button--large contactButton'\n onClick={sendMail}\n >\n {t('Send')}\n </button>\n </div>\n <div className='wb-grid-col-mq1-10 wb-grid-col-mq3-12 wb-grid-col-mq4-10 mobileContact '>\n {emailSent && (\n <div className='wb-type-copy-secondary feedbackStyle'>\n {`${t('MailFeedbackPartOne')}${timeLeft / 1000}${t(\n 'MailFeedbackPartTwo'\n )}`}\n <a\n\t\t\t\t\tclassName='wb-link wb-link--standalone'\n onClick={(e) => {\n e.preventDefault();\n navigate('/');\n }}\n >\n {t('Here')}.\n </a>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n};\n","import { useEffect } from 'react';\nimport { Helmet } from 'react-helmet';\nimport { useTranslation, Trans } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\nimport IconCard from '../../mainPage/subcomponent/MBBeVoIconCard/MBBeVoIconCard';\nimport { CATEGORY_PROPS } from '../../../globals/Constants';\n\n/**\n * Main page (landing page or home page) component.\n *\n * @returns\n */\n\nexport function Category() {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n useEffect(() => {\n // Change language based on the current pathname\n const path = location.pathname; // Get the current pathname\n if (path.startsWith('/de') || path === '/de') {\n i18n.changeLanguage('de');\n } else if (path.startsWith('/en') || path === '/en') {\n i18n.changeLanguage('en');\n }\n\n // Scroll to top on component mount\n window.scrollTo(0, 0);\n }, [location.pathname, i18n]); // Add location.pathname and i18n as dependencies\n const hreflang = i18n.language;\n return (\n <>\n {/* @ts-ignore */}\n <Helmet>\n <title>{t('categoryOverview.title', { keySeparator: \".\" })}</title>\n <meta name=\"description\" content={t('categoryOverview.description', { keySeparator: \".\" })} />\n <meta name=\"keywords\" content={t('mainPage.keywords', { keySeparator: \".\" })} />\n <meta name=\"author\" content={t('mainPage.author', { keySeparator: \".\" })} />\n <meta name=\"robots\" content={t('mainPage.robots', { keySeparator: \".\" })} />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta property=\"og:title\" content={t('categoryOverview.title', { keySeparator: \".\" })} />\n <meta property=\"og:description\" content={t('categoryOverview.description', { keySeparator: \".\" })} />\n <link rel=\"alternate\" href={\"https://bevo.mercedes-benz-trucks.com/de\"} hrefLang=\"de\" />\n <link rel=\"alternate\" href={\"https://bevo.mercedes-benz-trucks.com/en\"} hrefLang=\"en\" />\n <link rel=\"canonical\" href={\"https://bevo.mercedes-benz-trucks.com\"} />\n </Helmet>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))', gap: '16px' }}>\n {CATEGORY_PROPS.map(function (element, index) {\n return (\n <IconCard props={element} key={index}></IconCard>\n );\n })}\n </div>\n </>\n );\n}\n","import {useNavigate, useParams} from \"react-router-dom\";\nimport {useEffect, useState} from \"react\";\nimport {emptyProductSheetObject, IProductSheet} from \"../../../interfaces/IProductSheet\";\nimport {getSheetByNumber} from \"../../../utility/FetchAPI\";\nimport {CATEGORY_PROPS} from \"../../../globals/Constants\";\nimport {setCategoryString, showPdfInNewTab} from \"../../../utility/Helper\";\nimport { useLanguageMappings } from '../../../globals/LanguageMappingsContext';\nimport {useTranslation} from \"react-i18next\";\n\n\nexport const SheetPdf = () => {\n let navigate = useNavigate();\n const languageMappings = useLanguageMappings();\n \n const { t, i18n } = useTranslation();\n const mapping = languageMappings[i18n.language] || languageMappings['en'];\n let {sheetNumber, language} = useParams<{\n sheetNumber: string;\n language: string;\n }>();\n const [sheet, setSheet] = useState<IProductSheet>(emptyProductSheetObject);\n useEffect(() => {\n console.log(\"1111111111\")\n if (sheetNumber != null) {\n console.log(\"222222222222\")\n getSheetByNumber(sheetNumber).then((results: any) => {\n console.log(\"33333333333333333\")\n showPdfInNewTab({ sheet: results.data, language: i18n.language, navigate, mapping ,newWindow: false,t,i18n});\n });\n }\n }, [sheetNumber, language]);\n\n return (<></>);\n}","import React, { useEffect, useState } from 'react';\n\nimport { DUITheme } from '@daimler/material-ui-theme';\nimport { Themes } from '../utility/theme';\nimport { MuiThemeProvider } from '@material-ui/core/styles';\nimport { BrowserRouter, Route, Routes } from 'react-router-dom';\n\nimport { Subcomponent } from './subcomponent/subcomponent';\nimport { MainPage } from './mainPage/MainPage';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport { Colors } from '../utility/theme';\nimport Header from './general/header/Header';\nimport { Footer } from '../components/general/Footer';\nimport { Icon } from '@workbench/core';\nimport { QrOverview } from './qr/QrOverview';\nimport { CategoryOverview } from './category/CategoryOverview';\nimport { SheetOverview } from './category/sheetPage/SheetOverview';\n\nimport { CATEGORY_PROPS } from '../globals/Constants';\nimport CookieBar from '../components/general/cookieBar/CookieBar';\nimport CookieModel from '../components/general/cookieModel/CookieModel';\nimport OilFinder from './oilFinder/OilFinder';\nimport { Contact } from '../components/general/contact/Contact';\nimport { Category } from '../components/general/category/Category';\nimport { closeCategoriesMenu } from '../utility/DialogHelper';\n\nimport Cookies from 'js-cookie';\nimport * as ackeeTracker from 'ackee-tracker';\nimport {SheetPdf} from \"./category/sheetPage/SheetPdf\";\n\nimport {LanguageMappingsContext} from \"../globals/LanguageMappingsContext\";\n\n// Styling\nconst useStyles = makeStyles(() =>\n createStyles({\n app: {\n maxWidth: '1440px',\n marginLeft: 'auto',\n marginRight: 'auto',\n display: 'block',\n },\n })\n);\n\nexport const App = () => {\n const classes = useStyles();\n const [isTracking, setIsTracking] = useState(\n Cookies.get('t_track_data') === 'true'\n );\n\n const languageMappings = {\n de: {\n title: \"titleDe\",\n additionalInfo: \"additionalInfoDe\",\n html: \"htmlDe\",\n pdf: \"pdfDe\",\n dateFormat: \"DD.MM.YYYY\",\n },\n en: {\n title: \"titleEn\",\n additionalInfo: \"additionalInfoEn\",\n html: \"htmlEn\",\n pdf: \"pdfEn\",\n dateFormat: \"MM/DD/YYYY\",\n },\n pt: {\n title: \"titlePt\",\n additionalInfo: \"additionalInfoPt\",\n html: \"htmlPt\",\n pdf: \"pdfPt\",\n dateFormat: \"DD.MM.YYYY\",\n },\n };\n \n\n // useEffect(() => {\n // isTracking &&\n // ackeeTracker\n // .create('https://ackee-bevo.trucks.app.corpintra.net', {\n // detailed: true,\n // ignoreLocalhost: true,\n // ignoreOwnVisits: true,\n // })\n // .record('a7b71974-b7c5-4c5d-9384-1efc1810fec3');\n // }, [isTracking]);\n\n return (\n <LanguageMappingsContext.Provider value={languageMappings}>\n <MuiThemeProvider theme={Themes.Primary}>\n <div className={classes.app}>\n <div\n id='deactivedBackground'\n className='deactiveBackground notVisible'\n onClick={() => closeCategoriesMenu()}\n ></div>\n\n <BrowserRouter>\n <div>\n <Header></Header>\n </div>\n <Routes>\n <Route path='/' element={<MainPage />} />\n <Route path='/:language' element={<MainPage />} />\n <Route path='/category' element={<Category />} />\n <Route path='/contact' element={<Contact />} />\n <Route path='/oil-finder' element={<OilFinder />} />\n <Route path='/qrcode/:productId' element={<QrOverview />} />\n <Route\n path='/pdf/:sheetNumber/:language'\n element={<SheetPdf />}\n />\n <Route\n path='/sheet/:sheetNumber/:language'\n element={<SheetOverview />}\n />\n\n {CATEGORY_PROPS.map((element, key) => {\n return (\n <Route\n path={`/category${element.link}/:language`}\n element={\n <CategoryOverview\n description={element.description}\n image={element.image}\n static={element.static}\n sheeTitle={element.sheeTitle} \n staticDetails={element.staticDetails}\n ></CategoryOverview>\n }\n key={key}\n ></Route>\n );\n })}\n <Route path='/Subcomponent' element={<Subcomponent />} />\n </Routes>\n <div>\n <Footer></Footer>\n </div>\n <CookieModel></CookieModel>\n {/*{!Cookies.get('t_disclaimer') && <CookieBar></CookieBar>}*/}\n </BrowserRouter>\n </div>\n </MuiThemeProvider>\n </LanguageMappingsContext.Provider>\n );\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { App } from './components/App';\nimport './globals/i18n';\nimport '@workbench/core/dist/css/globals.css';\nimport '@workbench/core/dist/workbench/workbench';\n\nReactDOM.render(<App />, document.getElementById('root'));\n"],"sourceRoot":""}