{"version":3,"file":"header.0762b8fcdb5d6ea68677.chunk.js","mappings":"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A,mBACA,gBACA,SACA,KACA,2DACA,cACA,UACA,cACA,SACA,eACA,aACA,iBACA,UACA,eACA,aACA,gBACA,UACA,cACA,WACA,WACA,UACA,UACA,kBACA,aACA,gBACA,aACA,cACA,YACA,cACA,aACA,YACA,UACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,YACA,WACA,kBACA,eACA,yCACA,2BACA,gBACA,WACA,oBACA,OACA,WACA,YACA,UACA,QACA,QACA,cACA,YACA,eACA,OACA,SACA,WACA,yBACA,YACA,WACA,sBACA,SACA,sBACA,OACA,cACA,aACA,QACA,YACA,oBACA,SACA,UACA,WACA,qBACA,WACA,eACA,cACA,UACA,mBACA,YACA,gBACA,MACA,UACA,mBACA,UACA,QACA,QACA,oBACA,cACA,QACA,QACA,YACA,YACA,WACA,eACA,YACA,YACA,WACA,aACA,OACA,UACA,aACA,QACA,aACA,SACA,kBACA,OACA,UACA,2BACA,QACA,cACA,SACA,UACA,YACA,OACA,UACA,aACA,UACA,UACA,gBACA,cACA,QACA,WACA,WACA,YACA,YACA,OACA,UACA,UACA,aACA,UACA,QACA,cACA,SACA,QACA,QACA,MACA,OACA,SACA,SACA,+BACA,SACA,QACA,YACA,aACA,SACA,aACA,oBACA,eACA,UACA,YACA,gBACA,UACA,cACA,aACA,oBACA,gBACA,MACA,WACA,aACA,YACA,aACA,2BACA,WACA,YACA,UAQD,SAAeA,GACb,IAEE,IAAIiN,OAAO,eAAeC,KAAK,YAIjC,CAHE,MAAOC,GAEP,OAAOnN,CACT,CACA,CAEA,CAAC,MAAO,eAER,CAAC,SAAU,4DAEX,CAAC,OAAQ,oBAET,CAAC,OAAQ,aAET,CAAC,SAAU,8BAA8BkG,SAAQkH,IAC/C,IAAKC,EAAQtC,GAAWqC,EACxB,MAAM5L,EAAQxB,EAAKsN,YAAYD,IAC1B7L,GACHxB,EAAKuN,OAAO/L,EAAO,EAAGuJ,EACxB,GAGJ,CAEAyC,CAAMxN,GAMN,IAAIyN,EAAqB,IAAIC,QACzBC,E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","sources":["webpack://AlfaLaval/./node_modules/classnames/index.js","webpack://AlfaLaval/./assets/icons/common/Profile.tsx","webpack://AlfaLaval/./assets/icons/common/IconContainer.tsx","webpack://AlfaLaval/./assets/icons/common/Facebook.tsx","webpack://AlfaLaval/./assets/icons/common/Twitter.tsx","webpack://AlfaLaval/./assets/icons/common/ExternalLink.tsx","webpack://AlfaLaval/./assets/icons/common/Arrow.tsx","webpack://AlfaLaval/./assets/icons/common/Cross.tsx","webpack://AlfaLaval/./assets/icons/common/Delete.tsx","webpack://AlfaLaval/./assets/icons/common/Email.tsx","webpack://AlfaLaval/./assets/icons/common/Phone.tsx","webpack://AlfaLaval/./components/Button/Button.tsx","webpack://AlfaLaval/./components/CloseButton/CloseButton.tsx","webpack://AlfaLaval/./components/SocialMediaShare/SocialMediaShare.tsx","webpack://AlfaLaval/./helpers/noScroll.ts","webpack://AlfaLaval/./helpers/quoteClickHelper.ts","webpack://AlfaLaval/./hooks/useOutsideClick.tsx","webpack://AlfaLaval/./layouts/HeaderBar/HeaderBar.service.ts","webpack://AlfaLaval/./components/LanguageSelect/LanguageSelect.tsx","webpack://AlfaLaval/./layouts/Header/components/TopMenu/components/TopMenuLanguageSelector.tsx","webpack://AlfaLaval/./layouts/Header/components/TopMenu/TopMenu.tsx","webpack://AlfaLaval/./layouts/Header/components/Brand.tsx","webpack://AlfaLaval/./layouts/Header/components/MenuSection/components/ContactButton.tsx","webpack://AlfaLaval/./layouts/Header/components/MenuSection/components/MainNavigation.tsx","webpack://AlfaLaval/./layouts/Header/components/MenuSection/components/SearchButton.tsx","webpack://AlfaLaval/./layouts/Header/components/MenuSection/components/SignInButton.tsx","webpack://AlfaLaval/./layouts/Header/components/MenuSection/components/MarketButton.tsx","webpack://AlfaLaval/./layouts/Header/components/MenuSection/MenuSection.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/desktop/MegaMenuState/MegaMenuState.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/desktop/MegaMenuItem/MegaMenuItem.hooks.ts","webpack://AlfaLaval/./layouts/MegaMenu/components/desktop/MegaMenuItem/MegaMenuItem.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/desktop/MegaMenuColumn/MegaMenuColumn.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/desktop/MegaMenuNavigation/MegaMenuNavigation.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/desktop/MegaMenuMain.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MegaMenuListMobile/components/MobileListItemWithChildren.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MegaMenuListMobile/components/MobileListItemGoBackBtn.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MegaMenuListMobile/components/MobileMenuListWrapper.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MegaMenuListMobile/MegaMenuListMobile.tsx","webpack://AlfaLaval/./layouts/MegaMenu/helpers/columnDataUtils.ts","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MegaMenuColumnMobile/MegaMenuColumnMobile.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/common/LanguageSelector/LanguageSelectorMobile.tsx","webpack://AlfaLaval/./node_modules/isbot/index.mjs","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MobileNavigationList/MobileNavigationList.tsx","webpack://AlfaLaval/./layouts/MegaMenu/components/mobile/MobileNavigationList/MobileNavigationList.utils.ts","webpack://AlfaLaval/./components/SignInDropdown/SignInDrodown.tsx","webpack://AlfaLaval/./layouts/CountrySelector/components/CountrySelectorFooter.tsx","webpack://AlfaLaval/./layouts/CountrySelector/components/MobileList.tsx","webpack://AlfaLaval/./layouts/CountrySelector/components/DesktopList.tsx","webpack://AlfaLaval/./layouts/CountrySelector/CountrySelector.service.ts","webpack://AlfaLaval/./layouts/CountrySelector/CountrySelector.tsx","webpack://AlfaLaval/./layouts/MegaMenu/MainNavigationMobileNew.tsx","webpack://AlfaLaval/./helpers/isWebCrawler.ts","webpack://AlfaLaval/./layouts/Header/Header.hooks.ts","webpack://AlfaLaval/./layouts/HeaderBar/components/Breadcrumb/Breadcrumb.hooks.ts","webpack://AlfaLaval/./layouts/HeaderBar/components/Breadcrumb/components/SocialBar.tsx","webpack://AlfaLaval/./layouts/HeaderBar/components/Breadcrumb/Breadcrumb.tsx","webpack://AlfaLaval/./layouts/HeaderBar/components/SubMenu/SubMenu.tsx","webpack://AlfaLaval/./layouts/HeaderBar/components/SubMenu/SubMenuMobile.tsx","webpack://AlfaLaval/./layouts/HeaderBar/HeaderBar.tsx","webpack://AlfaLaval/./layouts/Header/Header.tsx","webpack://AlfaLaval/./layouts/Header/index.ts","webpack://AlfaLaval/./pages/ContactUs/ContactUs.service.ts"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from 'react';\r\n\r\nexport const Profile = () => (\r\n  <svg\r\n    xmlns='http://www.w3.org/2000/svg'\r\n    width='21'\r\n    height='21'\r\n    viewBox='0 0 21 21'\r\n    fill='none'\r\n    stroke='#11387f'\r\n    strokeWidth='2'\r\n    strokeLinecap='round'\r\n    strokeLinejoin='round'\r\n  >\r\n    <circle cx='12' cy='7' r='4' />\r\n    <path d='M12 14s-8-1.5-8 4h16c0-5.5-8-4-8-4z' />\r\n  </svg>\r\n);\r\n","import React, { ReactNode } from 'react';\r\n\r\ninterface IconContainerProps {\r\n  icon: ReactNode;\r\n  className?: string;\r\n}\r\n\r\nexport const IconContainer = ({ icon, className }: IconContainerProps) => {\r\n  return (\r\n    <i className={className} aria-hidden=\"true\">\r\n      {icon}\r\n    </i>\r\n  )\r\n};","import React from 'react';\r\n\r\nexport const Facebook = () => (\r\n  <svg xmlns=\"http://www.w3.org/2000/svg\" enable-background=\"new 0 0 24 24\" height=\"20\" viewBox=\"0 0 24 24\" width=\"20\">\r\n    <rect fill=\"none\" height=\"20\" width=\"20\" />\r\n    <path d=\"M22,12c0-5.52-4.48-10-10-10S2,6.48,2,12c0,4.84,3.44,8.87,8,9.8V15H8v-3h2V9.5C10,7.57,11.57,6,13.5,6H16v3h-2 c-0.55,0-1,0.45-1,1v2h3v3h-3v6.95C18.05,21.45,22,17.19,22,12z\" />\r\n  </svg>\r\n);\r\n\r\n\r\n","import React from 'react';\r\n\r\nexport const Twitter = () => (\r\n  <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\r\n    <path d=\"M 2.3671875 3 L 9.4628906 13.140625 L 2.7402344 21 L 5.3808594 21 L 10.644531 14.830078 L 14.960938 21 L 21.871094 21 L 14.449219 10.375 L 20.740234 3 L 18.140625 3 L 13.271484 8.6875 L 9.2988281 3 L 2.3671875 3 z M 6.2070312 5 L 8.2558594 5 L 18.033203 19 L 16.001953 19 L 6.2070312 5 z\"></path>\r\n  </svg>\r\n);","import React from 'react';\r\n\r\nexport const ExternalLink = () => (\r\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <g id=\"external-link\">\r\n      <path id=\"Vector\" d=\"M18 13V17C18 18.0609 17.5786 19.0783 16.8284 19.8284C16.0783 20.5786 15.0609 21 14 21H3V6H11\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n      <path id=\"Vector_2\" d=\"M15 3H21V9\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n      <path id=\"Vector_3\" d=\"M10 14L21 3\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n    </g>\r\n  </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const Arrow = ({ stroke = '#10387F', rotate = 0 }) => {\r\n  return (\r\n    <svg\r\n      xmlns='http://www.w3.org/2000/svg'\r\n      width='24'\r\n      height='24'\r\n      viewBox='0 0 24 24'\r\n      fill='none'\r\n      style={{\r\n        transformBox: 'fill-box',\r\n        transformOrigin: 'center',\r\n        transform: `rotate(${rotate}deg)`,\r\n      }}\r\n    >\r\n      <path d='M9 18.5L15 12.5L9 6.5' stroke={stroke} strokeWidth='2' />\r\n    </svg>\r\n  );\r\n};\r\n","import React from 'react';\r\n\r\nexport const Cross = () => (\r\n  <svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n    <path\r\n      d='M18 6L6 18'\r\n      stroke='currentColor'\r\n      strokeWidth='2'\r\n      strokeLinecap='round'\r\n      strokeLinejoin='round'\r\n    />\r\n    <path\r\n      d='M6 6L18 18'\r\n      stroke='currentColor'\r\n      strokeWidth='2'\r\n      strokeLinecap='round'\r\n      strokeLinejoin='round'\r\n    />\r\n  </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const Delete = () => (\r\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n    <path d=\"M3 6H5H21\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n    <path d=\"M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V18C19 19.0609 18.5786 20.0783 17.8284 20.8284C17.0783 21.5786 16.0609 22 15 22H5V6H19Z\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n    <path d=\"M10 11V17\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n    <path d=\"M14 11V17\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n  </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const EmailSvg = () => (\r\n  <svg width='20' height='15' viewBox='0 0 20 15' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n    <path\r\n      d='M0.833496 2.74939C0.833496 1.64482 1.72893 0.74939 2.8335 0.74939H17.1668C18.2714 0.74939 19.1668 1.64482 19.1668 2.74939V3.50801L11.7086 8.675C10.6809 9.38697 9.31942 9.38697 8.29173 8.675L0.833496 3.50801V2.74939Z'\r\n      fill='#3D3935'\r\n    />\r\n    <path\r\n      d='M0.833496 4.42755L8.29173 9.59454C9.31942 10.3065 10.6809 10.3065 11.7086 9.59454L19.1668 4.42755V12.0827C19.1668 13.1873 18.2714 14.0827 17.1668 14.0827H2.8335C1.72893 14.0827 0.833496 13.1873 0.833496 12.0827V4.42755Z'\r\n      fill='#3D3935'\r\n    />\r\n  </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const PhoneSvg = () => (\r\n  <svg width='18' height='17' viewBox='0 0 18 17' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n    <path\r\n      fillRule='evenodd'\r\n      clipRule='evenodd'\r\n      d='M17.3327 12.5608V15.0698C17.3336 15.3028 17.2857 15.5333 17.1923 15.7468C17.0988 15.9602 16.9617 16.1517 16.7896 16.3092C16.6177 16.4667 16.4146 16.5865 16.1936 16.6611C15.9725 16.7358 15.7382 16.7635 15.5058 16.7425C12.9272 16.4629 10.4502 15.5835 8.27395 14.175C6.24917 12.8909 4.53255 11.1777 3.24595 9.15694C1.82971 6.97511 0.948369 4.49104 0.673306 1.90593C0.652365 1.67465 0.679901 1.44157 0.754173 1.22149C0.828436 1.00143 0.947808 0.799203 1.10467 0.627696C1.26154 0.456188 1.45247 0.319163 1.66532 0.225335C1.87815 0.131506 2.10824 0.0829403 2.34091 0.0827228H4.8549C5.26157 0.0787251 5.65584 0.222458 5.9642 0.487116C6.27256 0.751775 6.47396 1.11931 6.53088 1.52122C6.63701 2.32415 6.83377 3.11253 7.11751 3.87132C7.23022 4.17066 7.25461 4.49599 7.18782 4.80875C7.12095 5.12151 6.96567 5.4086 6.74042 5.63599L5.67613 6.69811C6.86905 8.79196 8.60613 10.5256 10.7041 11.7161L11.7684 10.654C11.9961 10.4292 12.2838 10.2742 12.5972 10.2075C12.9106 10.1408 13.2365 10.1651 13.5365 10.2776C14.2968 10.5608 15.0868 10.7572 15.8913 10.8631C16.2983 10.9204 16.6701 11.125 16.9359 11.438C17.2016 11.7511 17.3428 12.1507 17.3327 12.5608Z'\r\n      fill='#3D3935'\r\n    />\r\n  </svg>\r\n);\r\n","import { createElement, ReactNode, MouseEvent } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nexport interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\r\n  text: string;\r\n  className?: string;\r\n  type?: 'button' | 'submit' | 'reset';\r\n  onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\r\n  href?: string;\r\n  size?: 'xs' | 'small' | 'medium' | 'large';\r\n  disabled?: boolean;\r\n  color?: 'grey' | 'default' | 'primary' | 'cta';\r\n  border?: boolean;\r\n  children?: ReactNode;\r\n}\r\n\r\nexport const Button = ({\r\n  text,\r\n  className = '',\r\n  onClick = () => {},\r\n  href,\r\n  size = 'medium',\r\n  disabled = false,\r\n  color = 'default',\r\n  border = false,\r\n  children,\r\n  type,\r\n  ...props\r\n}: ButtonProps) => {\r\n  const tag = href ? 'a' : 'button';\r\n\r\n  return createElement(\r\n    tag,\r\n    {\r\n      onClick,\r\n      className:\r\n        classNames('c-button', {\r\n          'is-xs': size === 'xs',\r\n          'is-small': size === 'small',\r\n          'is-medium': size === 'medium',\r\n          'is-large': size === 'large',\r\n          'is-disabled': !!disabled,\r\n          'is-grey': color === 'grey',\r\n          'is-default': color === 'default',\r\n          'is-primary': color === 'primary',\r\n          'is-cta': color === 'cta',\r\n          'is-border': !!border,\r\n        }) +\r\n        ' ' +\r\n        className,\r\n      href,\r\n      ...(tag === 'a' && { target: '_blank' }),\r\n      type,\r\n      ...props,\r\n    },\r\n    [text, children]\r\n  );\r\n};\r\n","import React, { MouseEventHandler } from 'react';\r\nimport './CloseButton.scss';\r\n\r\ninterface CloseButtonProps {\r\n  onClick: MouseEventHandler<HTMLElement>;\r\n  className?: string;\r\n}\r\n\r\nexport const CloseButton = ({ onClick, className }: CloseButtonProps) => {\r\n  return (\r\n    <i\r\n      onClick={onClick}\r\n      className={\r\n        'c-close-button icon-symbol-close' + (className === 'search-close' ? ' search-close' : '')\r\n      }\r\n    />\r\n  );\r\n};\r\n","import React, { MouseEvent } from 'react';\r\nimport { IconContainer, Facebook, Twitter } from '@icons/common';\r\n\r\ninterface SocialMediaShareProps {\r\n  title: string;\r\n}\r\n\r\nexport const SocialMediaShare = ({ title }: SocialMediaShareProps) => {\r\n  const handleClick = (e: MouseEvent<HTMLAnchorElement>, name: string) => {\r\n    e.preventDefault();\r\n\r\n    window.open(\r\n      e.currentTarget.href,\r\n      name + \"Share Window\",\r\n      \"height=450, width=550, top=\" +\r\n      (window.innerHeight / 2 - 275) +\r\n      \", left=\" +\r\n      (window.innerWidth / 2 - 225) +\r\n      \", toolbar=0, location=0, menubar=0, directories=0, scrollbars=0\"\r\n    );\r\n  };\r\n\r\n  const shareUrl = window.location.href;\r\n\r\n  return (\r\n    <div className=\"l-share-buttons-container\">\r\n      <span className=\"share\">{title}</span>\r\n      <div className=\"l-share-buttons-container-links\">\r\n        {/* <!-- Facebook --> */}\r\n        <div className=\"c-share-link is-facebook \">\r\n          <a\r\n            href={\"http://www.facebook.com/sharer.php?u=\" + shareUrl}\r\n            onClick={(e) => handleClick(e, \"Facebook\")}>\r\n            <IconContainer icon={<Facebook />} />\r\n          </a>\r\n        </div>\r\n\r\n        {/* <!-- Twitter --> */}\r\n        <div className=\"c-share-link is-twitter\">\r\n          <a\r\n            onClick={(e) => handleClick(e, \"Twitter\")}\r\n            href={\r\n              \"https://twitter.com/share?url=\" + shareUrl + \"&text=Alfalaval&hashtags=alfalaval\"\r\n            }>\r\n            <IconContainer icon={<Twitter />} />\r\n          </a>\r\n        </div>\r\n\r\n        {/* <!-- Linkedin--> */}\r\n        <div className=\"c-share-link is-linkedin\">\r\n          <a\r\n            onClick={(e) => handleClick(e, \"LinkedIn\")}\r\n            href={\"http://www.linkedin.com/shareArticle?mini=true&url=\" + shareUrl}>\r\n            <i className=\"icon-linkedin\" aria-hidden=\"true\" />\r\n          </a>\r\n        </div>\r\n\r\n        {/* <!-- Mail --> */}\r\n        <div className=\"c-share-link is-mail\">\r\n          <a href={\"mailto:?Subject=Alfalaval&Body=\" + shareUrl}>\r\n            <i className=\"icon-envelope\" aria-hidden=\"true\" />\r\n          </a>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","export const disableScroll = () => {\r\n  document.body.classList.add(\"no-scroll\");\r\n};\r\n\r\nexport const enableScroll = () => {\r\n  document.body.classList.remove(\"no-scroll\");\r\n};\r\n","import dataLayer from '@helpers/dataLayer';\r\n\r\nexport const quoteClickHelper = (contactUsForm: { I18: Record<string, string> }, redirect?: () => void) => {\r\n  localStorage.setItem('CategoryID', contactUsForm.I18.CategoryID);\r\n  // quoteOriginPageID is used as parent page id in contact-us/enquiry type form\r\n  localStorage.setItem('quoteOriginPageID', window.pageId);\r\n  localStorage.setItem('quoteOriginPageUrl', window.location.href);\r\n\r\n  dataLayer.push('contact_button', {\r\n    contact_type: contactUsForm?.I18?.RequestForQuote || '',\r\n  });\r\n\r\n  if (redirect) {\r\n    redirect();\r\n  } else {\r\n    window.location.href = contactUsForm?.I18?.EnquiryTypeLink;\r\n  }\r\n};\r\n","import { useEffect } from \"react\";\r\n\r\nexport const useOutsideClick = (\r\n  ref: React.RefObject<any>,\r\n  handler: Function\r\n) => {\r\n  return useEffect(() => {\r\n    const handleClick = (e: any) => {\r\n      if (ref.current && !ref.current.contains(e.target)) {\r\n        handler(e);\r\n      }\r\n    };\r\n\r\n    document.addEventListener(\"mousedown\", handleClick);\r\n    document.addEventListener(\"touchstart\", handleClick);\r\n\r\n    return () => {\r\n      document.removeEventListener(\"mousedown\", handleClick);\r\n      document.removeEventListener(\"touchstart\", handleClick);\r\n    };\r\n  }, [ref, handler]);\r\n};\r\n","import { apiSlice } from '@services/apiSlice';\r\nimport { Breadcrumb as endpoints } from '@services/endpoints';\r\nimport { Breadcrumb } from './HeaderBar.types';\r\n\r\nconst breadcrumbApi = apiSlice.injectEndpoints({\r\n  endpoints: (build) => ({\r\n    fetchBreadcrumb: build.query<Breadcrumb, void>({\r\n      query: () => ({\r\n        url: endpoints.fetchBreadcrumb,\r\n        params: { language: window.lang, pageId: window.pageId }\r\n      }),\r\n    }),\r\n  }),\r\n  overrideExisting: false,\r\n})\r\n\r\nexport const { useFetchBreadcrumbQuery } = breadcrumbApi;","import { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { Language } from '@type/common';\r\nimport React, { useState, useRef, useMemo } from 'react';\r\nimport './LanguageSelect.scss';\r\n\r\ninterface LanguageSelectProps {\r\n  title: string;\r\n  name: string;\r\n  selectFunction: (item: Language) => void;\r\n  list: Language[];\r\n  arrow?: string;\r\n}\r\n\r\nexport const LanguageSelect = ({\r\n  title,\r\n  name,\r\n  selectFunction,\r\n  list,\r\n  arrow = 'down',\r\n}: LanguageSelectProps) => {\r\n  const [isShowing, setIsShowing] = useState<boolean>(false);\r\n\r\n  const selectRef = useRef<HTMLDivElement>(null);\r\n  const handleClickOutside = () => {\r\n    setIsShowing(false);\r\n  };\r\n  useOutsideClick(selectRef, handleClickOutside);\r\n\r\n  const handleClick = () => {\r\n    setIsShowing(!isShowing);\r\n  };\r\n\r\n  const onSelect = (item: Language) => {\r\n    selectFunction(item);\r\n    setIsShowing(false);\r\n  };\r\n\r\n  const listItems = useMemo(() => {\r\n    return list\r\n      ? list.map((item, key) => (\r\n          <li key={key} onClick={() => onSelect(item)}>\r\n            {item[name]}\r\n          </li>\r\n        ))\r\n      : [];\r\n  }, [list, name]);\r\n\r\n  return (\r\n    <div ref={selectRef} className='c-language-select'>\r\n      <div className='c-language-select-wrapper' onClick={handleClick}>\r\n        <span>{title}</span>\r\n        {arrow === 'down' || isShowing ? (\r\n          <i className='icon-angle-down' />\r\n        ) : (\r\n          <i className='icon-angle-right' />\r\n        )}\r\n      </div>\r\n      {isShowing && (\r\n        <div className='c-language-select-list'>\r\n          <ul>{listItems}</ul>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { LanguageSelect } from '@components/LanguageSelect';\r\nimport { TopMenu } from '@layouts/Header/Header.types';\r\nimport { Language } from '@type/common';\r\n\r\ninterface TopMenuLanguageSelectorProps {\r\n  languages: TopMenu['Languages'];\r\n  defaultLanguage: string;\r\n}\r\n\r\nexport const TopMenuLanguageSelector = ({\r\n  languages,\r\n  defaultLanguage,\r\n}: TopMenuLanguageSelectorProps) => {\r\n  const select = (item: Language) => {\r\n    window.location.href = item.Href;\r\n  };\r\n\r\n  const currentLanguageTitle = () => {\r\n    const lang = languages.filter((i) => i.LanguageCode == window.lang);\r\n    if (lang.length > 0) {\r\n      return lang[0].Name;\r\n    } else {\r\n      return languages[0].Name;\r\n    }\r\n  };\r\n\r\n  const languageTitle = currentLanguageTitle();\r\n\r\n  return (\r\n    <React.Fragment>\r\n      <div className='c-top-menu-link current-language'>\r\n        <LanguageSelect\r\n          arrow='right'\r\n          list={languages}\r\n          name='Name'\r\n          selectFunction={(item) => select(item)}\r\n          title={defaultLanguage ?? languageTitle}\r\n        />\r\n      </div>\r\n    </React.Fragment>\r\n  );\r\n};\r\n","import { TopMenu } from '@layouts/Header/Header.types';\r\nimport React from 'react';\r\nimport { TopMenuLanguageSelector } from './components';\r\nimport { productShopUrl } from '@helpers/consts';\r\n\r\ninterface TopMenuProps {\r\n  topMenu: TopMenu;\r\n}\r\n\r\nconst TopMenu = ({ topMenu }: TopMenuProps) => {\r\n  return (\r\n    <div className='l-header-top-bar'>\r\n      <div className='l-header-top-bar-ribbon'></div>\r\n      <div className='l-header-container-specialmenu'>\r\n        <div className='l-flex-items'></div>\r\n        <div className='l-flex-items center'>\r\n          <div className={`c-top-menu ${!topMenu ? 'loading' : ''}`}>\r\n            <svg width='20' height='20' xmlns='http://www.w3.org/2000/svg' className='right-arc'>\r\n              <path\r\n                d='M 0 20\r\n        A 20 20, 0, 0, 0, 20 0\r\n        L 20 20 Z'\r\n                fill='#F5F3F2'\r\n              ></path>\r\n            </svg>\r\n            {topMenu &&\r\n              topMenu.SectionLinks.map((item, index) => (\r\n                <a\r\n                  key={index}\r\n                  className='c-top-menu-link'\r\n                  href={item.Href}\r\n                  title={item.Text}\r\n                  target={item.Target}\r\n                  //Story 365068 - Added new attribute i.e referrerpolicy=\"unsafe-url\" if item.Href contains shop.alfalaval.com\r\n                  {...(item.Href?.includes(productShopUrl) && { referrerPolicy: 'unsafe-url' })}\r\n                >\r\n                  {item.Text}\r\n                </a>\r\n              ))}\r\n            {topMenu && topMenu.Languages && (\r\n              <TopMenuLanguageSelector\r\n                defaultLanguage={topMenu.DefaultLanguage}\r\n                languages={topMenu.Languages}\r\n              />\r\n            )}\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className='l-flex-items right'></div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default TopMenu;\r\n","import React from 'react';\r\n\r\ninterface BrandProps {\r\n  className?: string;\r\n}\r\n\r\nexport const Brand = ({ className }: BrandProps) => {\r\n  let pathLink = '';\r\n  if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'nl') {\r\n    pathLink = '/nl';\r\n  } else if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'fr-BE') {\r\n    pathLink = '/fr-be';\r\n  } else if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'fr-ca') {\r\n    pathLink = '/fr-ca';\r\n  } else {\r\n    pathLink = '/';\r\n  }\r\n  return (\r\n    <div className={className}>\r\n      <a href={pathLink} className='header-logo-primary'>\r\n        <img\r\n          src='/ui/css/img/logo-alfalaval.svg'\r\n          alt='Alfa Laval'\r\n          height='100px'\r\n          width='100px'\r\n        ></img>\r\n      </a>\r\n    </div>\r\n  );\r\n};\r\n","import React, { forwardRef } from 'react';\r\n\r\ninterface ContactButtonProps {\r\n  highlight: boolean;\r\n  selected: string;\r\n  contactlink: string;\r\n  title: string;\r\n}\r\n\r\nexport const ContactButton = forwardRef<HTMLAnchorElement, ContactButtonProps>(\r\n  ({ highlight, selected, contactlink, title }, ref) => {\r\n    const classes =\r\n      window.pageType === 'ContactUsPage' && !highlight\r\n        ? 'c-header-main-menu-item active'\r\n        : 'c-header-main-menu-item';\r\n\r\n    if (selected) {\r\n      document.cookie = 'contactcaptcha=true; path=/';\r\n    } else {\r\n      document.cookie = 'contactcaptcha=false; path=/';\r\n    }\r\n\r\n    const handleClick = () => {\r\n      window.localStorage.setItem('menuContainerLink', '');\r\n    };\r\n\r\n    return (\r\n      <a\r\n        ref={ref}\r\n        onClick={handleClick}\r\n        className={classes}\r\n        href={contactlink}\r\n        id='header-contactbtn'\r\n      >\r\n        {title}\r\n      </a>\r\n    );\r\n  }\r\n);\r\n","import { MegaMenuNavigationItem } from '@layouts/MegaMenu/MegaMenu.types';\r\nimport React from 'react';\r\n\r\ninterface MainNavigationProps {\r\n  model: MegaMenuNavigationItem[];\r\n  onClick: (index: string) => void;\r\n  selected: string;\r\n}\r\n\r\nexport const MainNavigation = ({ model, selected, onClick }: MainNavigationProps) => {\r\n  const handleClick = (index: string) => {\r\n    onClick(index);\r\n  };\r\n\r\n  const setValue = (val: string) => {\r\n    window.localStorage.setItem('menuContainerLink', val);\r\n  };\r\n\r\n  if (!model) return null;\r\n\r\n  const itemClass = 'c-header-main-menu-item';\r\n\r\n  return (\r\n    <>\r\n      {model.map((item, index) =>\r\n        item.NoSubCategory ? (\r\n          <a\r\n            onClick={() => setValue(item.ContainerLink)}\r\n            key={index}\r\n            className={\r\n              window.localStorage.getItem('menuContainerLink') == item.ContainerLink\r\n                ? `${itemClass} active`\r\n                : itemClass\r\n            }\r\n            href={item.UrlSegment}\r\n          >\r\n            {item.Name}\r\n          </a>\r\n        ) : (\r\n          <button\r\n            onClick={() => handleClick(item.ContainerLink)}\r\n            key={index}\r\n            className={selected === item.ContainerLink ? `${itemClass} active` : itemClass}\r\n          >\r\n            {item.Name}\r\n          </button>\r\n        )\r\n      )}\r\n    </>\r\n  );\r\n};\r\n","import React, { MouseEvent } from 'react';\r\n\r\ninterface SearchButtonProps {\r\n  selected: boolean;\r\n  onClick: (e: MouseEvent<HTMLButtonElement>) => void;\r\n  title: string;\r\n}\r\n\r\nexport const SearchButton = ({ selected, onClick, title }: SearchButtonProps) => {\r\n  const classes = selected ? 'c-header-main-menu-item active' : 'c-header-main-menu-item';\r\n  return (\r\n    <button onClick={onClick} className={classes}>\r\n      <i className='svg-icon pr-8 icon-symbol-search'></i>\r\n      {title}\r\n    </button>\r\n  );\r\n};\r\n","import React, { Fragment, MouseEvent } from 'react';\r\nimport { Profile } from '@icons/common/Profile';\r\n\r\ninterface SignInButtonProps {\r\n  selected: boolean;\r\n  onClick: (e: MouseEvent<HTMLButtonElement>) => void;\r\n  title: string;\r\n}\r\n\r\nexport const SignInButton = ({ selected, onClick, title }: SignInButtonProps) => {\r\n  const classes = selected ? 'c-header-main-menu-item active' : 'c-header-main-menu-item';\r\n  return (\r\n    <button onClick={onClick} className={`${classes} sign-in-button`} >\r\n      <i className='svg-icon pr-8 icon-sign-in'>\r\n        <Profile />\r\n      </i>\r\n      {title}\r\n    </button>\r\n  );\r\n};\r\n","import classNames from 'classnames';\r\nimport React, { MouseEvent } from 'react';\r\n\r\ninterface MarketButtonProps {\r\n  selected: boolean;\r\n  onClick: (e: MouseEvent<HTMLButtonElement>) => void;\r\n  title: string;\r\n}\r\n\r\nexport const MarketButton = ({ selected, onClick, title }: MarketButtonProps) => {\r\n  return (\r\n    <button onClick={onClick} className={classNames(\r\n      'c-header-main-menu-item',\r\n      'market-button',\r\n      'changeWebsites-button',\r\n      { active: selected }\r\n    )}>\r\n      <i className='svg-icon pr-8 icon-sphere'></i>\r\n      {title}\r\n    </button>\r\n  );\r\n};","import React, { Fragment, useRef, useState } from 'react';\r\nimport { ContactButton, MainNavigation, MarketButton, SearchButton, SignInButton } from './components';\r\nimport { MegaMenuNavigationItem } from '@layouts/MegaMenu/MegaMenu.types';\r\nimport './MenuSection.scss';\r\nimport { useWinSize } from '@contexts/WinSizeContext';\r\nimport { activeClass } from '@layouts/Header/Header.utils';\r\nimport { IconContainer, Profile } from '@icons/common';\r\nimport { SignInLinkInformation } from '@layouts/Header/Header.types';\r\nimport classNames from 'classnames';\r\n\r\ninterface MenuSectionProps {\r\n  toggleMegaMenu: (index: string) => void;\r\n  toggleSearchArea: () => void;\r\n  toggleSignInArea: () => void;\r\n  toggleMarketArea: () => void;\r\n  showHideSignIn: boolean;\r\n  megaMenuNavigation: MegaMenuNavigationItem[];\r\n  contactLink: string;\r\n  contactBtnText: string;\r\n  searchBtnText: string;\r\n  signInBtnText: string;\r\n  selected: string;\r\n  signInDescription: string;\r\n  signInBtnLinks: SignInLinkInformation[];\r\n  showSearchArea: boolean;\r\n  showSignInArea: boolean;\r\n  showMarketArea: boolean;\r\n  cls: string;\r\n}\r\n\r\nexport const MenuSection = ({\r\n  toggleMegaMenu,\r\n  toggleSearchArea,\r\n  toggleSignInArea,\r\n  toggleMarketArea,\r\n  showHideSignIn,\r\n  megaMenuNavigation,\r\n  contactLink,\r\n  contactBtnText,\r\n  searchBtnText,\r\n  signInBtnText,\r\n  selected,\r\n  signInDescription,\r\n  showSearchArea,\r\n  showSignInArea,\r\n  showMarketArea,\r\n  signInBtnLinks,\r\n  cls,\r\n}: MenuSectionProps) => {\r\n  const [contactClick, setContactClick] = useState(false);\r\n  const contactBtnRef = useRef<HTMLAnchorElement>();\r\n  const { isDesktopForHeader } = useWinSize();\r\n  const handlehighlight = (index: string) => {\r\n    setContactClick(true);\r\n    toggleMegaMenu(index);\r\n    if (window.pageType === 'ContactUsPage' && contactBtnRef.current) {\r\n      contactBtnRef.current.classList.remove('active');\r\n    }\r\n  };\r\n  let pathLink = '';\r\n\r\n  if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'nl') {\r\n    pathLink = '/nl/';\r\n  } else if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'fr-BE') {\r\n    pathLink = '/fr-be/';\r\n  } else if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'fr-CA') {\r\n    pathLink = '/fr-ca/';\r\n  } else {\r\n    pathLink = '/';\r\n  }\r\n  return (\r\n    <Fragment>\r\n      <div className='l-header-main-menu'>\r\n        <div className='l-header-main-menu-left'>\r\n          <MainNavigation\r\n            model={megaMenuNavigation}\r\n            onClick={(index: string) => handlehighlight(index)}\r\n            selected={selected}\r\n          />\r\n          <ContactButton\r\n            ref={contactBtnRef}\r\n            selected={selected}\r\n            title={contactBtnText}\r\n            highlight={contactClick}\r\n            contactlink={window.location.origin + pathLink + contactLink}\r\n          />\r\n        </div>\r\n        <div\r\n          className={classNames(\r\n            `l-header-main-menu-right`,\r\n            isDesktopForHeader && !showHideSignIn ? 'search-sign-in-right' : ''\r\n          )}\r\n        >\r\n          <SearchButton\r\n            onClick={toggleSearchArea}\r\n            selected={showSearchArea}\r\n            title={searchBtnText}\r\n          />\r\n          {(signInBtnLinks.length > 0 || signInDescription) && !showHideSignIn && (\r\n            <SignInButton\r\n              onClick={toggleSignInArea}\r\n              selected={showSignInArea}\r\n              title={signInBtnText}\r\n            />\r\n          )}\r\n          <MarketButton\r\n            onClick={toggleMarketArea}\r\n            selected={showMarketArea}\r\n            title={window.lang.toUpperCase()}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className={`${cls}-main-mobile-item`}>\r\n        {(!showHideSignIn ||\r\n          (showHideSignIn && !isDesktopForHeader) ||\r\n          window.innerWidth == 900) && (\r\n          <div\r\n            className={activeClass('c-animation-box mobile-right-icon', showSearchArea, false)}\r\n            onClick={toggleSearchArea}\r\n          >\r\n            <ul>\r\n              <li>\r\n                <i className='svg-icon icon-symbol-close'></i>\r\n              </li>\r\n              <li>\r\n                <i className='svg-icon icon-symbol-search'></i>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        )}\r\n        {(signInBtnLinks.length > 0 || signInDescription) && !showHideSignIn && (\r\n          <div\r\n            className={activeClass(\r\n              'c-animation-box mobile-right-icon sign-in-area',\r\n              !showHideSignIn,\r\n              false\r\n            )}\r\n            onClick={toggleSignInArea}\r\n          >\r\n            <ul>\r\n              <li>\r\n                <i className='svg-icon icon-symbol-close'></i>\r\n              </li>\r\n              <li>\r\n                <IconContainer icon={<Profile />} className='svg-icon icon-sign-in' />\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        )}\r\n        <div\r\n            className={activeClass(\r\n              'c-animation-box mobile-right-icon market-area',\r\n              !showHideSignIn,\r\n              false\r\n            )}\r\n            onClick={toggleMarketArea}\r\n          >\r\n            <ul>\r\n              <li>\r\n                <i className='svg-icon icon-symbol-close'></i>\r\n              </li>\r\n              <li>\r\n                <i className='svg-icon icon-sphere' />\r\n              </li>\r\n            </ul>\r\n          </div>\r\n      </div>\r\n    </Fragment>\r\n  );\r\n};\r\n","import { MegaMenuColumn, MegaMenuSegment } from '@layouts/MegaMenu/MegaMenu.types';\r\nimport React, { ReactNode, createContext, useContext, useEffect, useState, useRef } from 'react';\r\n\r\ninterface ActiveItems {\r\n  [key: string]: string;\r\n}\r\n\r\ntype MegaMenuData = MegaMenuSegment | MegaMenuColumn;\r\n\r\ninterface MegaMenuStateProviderProps {\r\n  selectedSection: string;\r\n  megaMenuData: MegaMenuSegment;\r\n  children: ReactNode;\r\n}\r\n\r\ninterface MegaMenuStateContext {\r\n  activeItems: ActiveItems;\r\n  data: MegaMenuData;\r\n  addActiveItem: (changedLevel: number, item: string) => void;\r\n  resetActiveItems: () => void;\r\n  removeActiveItem: (level: number) => void;\r\n  resetData: () => void;\r\n  setData: (data: MegaMenuData) => void;\r\n}\r\n\r\nconst MegaMenuState = createContext<MegaMenuStateContext>(null);\r\n\r\nexport const MegaMenuStateProvider = ({\r\n  selectedSection,\r\n  megaMenuData,\r\n  children,\r\n}: MegaMenuStateProviderProps) => {\r\n  // obj where obj key is the level and the value is the active item\r\n  const [activeItems, setActiveItems] = useState<ActiveItems>({});\r\n  const initialData = useRef<MegaMenuData>(megaMenuData);\r\n  const [data, setData] = useState<MegaMenuData>(megaMenuData);\r\n\r\n  const addActiveItem = (changedLevel: number, item: string) => {\r\n    // remove all active items that come after changed active item\r\n    const newActiveItems = { ...activeItems };\r\n\r\n    Object.keys(newActiveItems).forEach((level) => {\r\n      if (parseInt(level) > changedLevel) {\r\n        delete newActiveItems[level];\r\n      }\r\n    });\r\n\r\n    setActiveItems({ ...newActiveItems, [changedLevel.toString()]: item });\r\n  };\r\n\r\n  useEffect(() => {\r\n    resetActiveItems();\r\n  }, [selectedSection, megaMenuData]);\r\n\r\n  useEffect(() => {\r\n    setData(megaMenuData);\r\n    initialData.current = megaMenuData;\r\n  }, [megaMenuData]);\r\n\r\n  const resetActiveItems = () => {\r\n    setActiveItems({});\r\n  };\r\n\r\n  const removeActiveItem = (level: number) => {\r\n    delete activeItems[level.toString()];\r\n  };\r\n\r\n  const resetData = () => {\r\n    setData(initialData.current);\r\n    resetActiveItems();\r\n  };\r\n\r\n  return (\r\n    <MegaMenuState.Provider\r\n      value={{\r\n        activeItems,\r\n        data,\r\n        addActiveItem,\r\n        resetActiveItems,\r\n        removeActiveItem,\r\n        resetData,\r\n        setData: (newData) => {\r\n          setData(newData);\r\n        },\r\n      }}\r\n    >\r\n      {children}\r\n    </MegaMenuState.Provider>\r\n  );\r\n};\r\n\r\nexport const useMegaMenuState = () => {\r\n  const context = useContext(MegaMenuState);\r\n\r\n  return context;\r\n};\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nexport const useMegaMenuItemHover = (onHover: () => void) => {\r\n  const [isHovered, setIsHovered] = useState(false);\r\n  const hoverTimer = useRef(null);\r\n\r\n  const onHoverStarted = () => {\r\n    hoverTimer.current = setTimeout(() => {\r\n      setIsHovered(true);\r\n      onHover();\r\n    }, 200);\r\n  };\r\n\r\n  const onHoverEnded = () => {\r\n    clearTimeout(hoverTimer.current);\r\n    setIsHovered(false);\r\n  };\r\n\r\n  useEffect(() => {\r\n    return () => {\r\n      clearTimeout(hoverTimer.current);\r\n    };\r\n  }, []);\r\n\r\n  return {\r\n    isHovered,\r\n    onMouseEnter: onHoverStarted,\r\n    onMouseLeave: onHoverEnded,\r\n  };\r\n};\r\n","import React from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { MegaMenuColumn } from '../MegaMenuColumn';\r\nimport classNames from 'classnames';\r\nimport { useMegaMenuState } from '../MegaMenuState';\r\nimport './MegaMenuItem.scss';\r\nimport { useMegaMenuItemHover } from './MegaMenuItem.hooks';\r\nimport { Section } from '@layouts/MegaMenu/MegaMenu.types';\r\n\r\ninterface MegaMenuItemProps {\r\n  title: string;\r\n  href: string;\r\n  level: number;\r\n  items: Section[];\r\n  hasChildren: boolean;\r\n  className?: string;\r\n}\r\n\r\nexport const MegaMenuItem = ({\r\n  title,\r\n  href,\r\n  level,\r\n  items,\r\n  hasChildren,\r\n  className,\r\n}: MegaMenuItemProps) => {\r\n  const { activeItems, addActiveItem } = useMegaMenuState();\r\n  const isActive = activeItems[level] === title;\r\n  const isMobileDevice = navigator.maxTouchPoints > 0;\r\n\r\n  const onHover = () => {\r\n    addActiveItem(level, title);\r\n  };\r\n\r\n  const { isHovered, onMouseEnter, onMouseLeave } = useMegaMenuItemHover(onHover);\r\n\r\n  const doHightlightLink = () => {\r\n    if (isMobileDevice) {\r\n      return href && hasChildren;\r\n    }\r\n    return isHovered && href && hasChildren;\r\n  };\r\n\r\n  const showChildren = isActive && hasChildren;\r\n\r\n  const nextLevel = level + 1;\r\n  return (\r\n    <div className={classNames('l-megaMenu-column-item-wrapper', className)}>\r\n      <span\r\n        className={classNames('l-megaMenu-column-item', {\r\n          'level-1': level === 1,\r\n          'level-2': level === 2,\r\n          'level-3': level === 3,\r\n          'level-4': level === 4,\r\n          active: isActive && hasChildren,\r\n        })}\r\n        onMouseEnter={onMouseEnter}\r\n        onMouseLeave={onMouseLeave}\r\n        onClick={() => {\r\n          if (!isMobileDevice && href) {\r\n            window.location.href = href;\r\n          }\r\n        }}\r\n      >\r\n        <a className={doHightlightLink() ? 'highlight-link' : ''} href={href || undefined}>\r\n          {title}\r\n        </a>\r\n        {hasChildren && <i className='icon-angle-right' />}\r\n      </span>\r\n      {showChildren &&\r\n        createPortal(\r\n          <MegaMenuColumn items={items} level={nextLevel} />,\r\n          document.querySelector(`.l-megaMenu-navigation-col.level-${nextLevel}`)\r\n        )}\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { MegaMenuItem } from '../MegaMenuItem';\r\nimport { hasProperty } from '@helpers/objectHelpers';\r\nimport './MegaMenuColumn.scss';\r\nimport {\r\n  MegaMenuColumn as MegaMenuColumnType,\r\n  MegaMenuColumnSection,\r\n  Section,\r\n} from '@layouts/MegaMenu/MegaMenu.types';\r\n\r\ntype MegaMenuColumnData = MegaMenuColumnType | MegaMenuColumnSection | Section;\r\n\r\ninterface MegaMenuColumnProps {\r\n  items: MegaMenuColumnType[] | MegaMenuColumnSection[] | Section[];\r\n  level: number;\r\n}\r\n\r\nexport const MegaMenuColumn = ({ items, level }: MegaMenuColumnProps) => {\r\n  return (\r\n    <>\r\n      {items?.map((columnData: MegaMenuColumnData, index: number) => {\r\n        const columnChildren =\r\n          ('ColumnAndSection' in columnData && columnData.ColumnAndSection) ||\r\n          ('Children' in columnData && columnData.Children) ||\r\n          ('Sections' in columnData && columnData.Sections);\r\n\r\n        const columnHasChildren =\r\n          columnChildren?.length > 0 &&\r\n          hasProperty(columnData, 'NoSubCategory') &&\r\n          columnData.NoSubCategory === false;\r\n\r\n        return (\r\n          <MegaMenuItem\r\n            key={index}\r\n            level={level}\r\n            hasChildren={columnHasChildren}\r\n            href={columnData.UrlSegment || ('HeaderPage' in columnData && columnData.HeaderPage)}\r\n            title={\r\n              ('Title' in columnData && columnData.Title) ||\r\n              ('Name' in columnData && columnData.Name) ||\r\n              ''\r\n            }\r\n            items={columnChildren as Section[]}\r\n          />\r\n        );\r\n      })}\r\n    </>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { MegaMenuColumn } from '../MegaMenuColumn';\r\nimport classNames from 'classnames';\r\nimport { useMegaMenuState } from '../MegaMenuState';\r\nimport './MegaMenuNavigation.scss';\r\n\r\ninterface MegaMenuNavigationProps {\r\n  levels: number;\r\n}\r\n\r\nexport const MegaMenuNavigation = ({ levels }: MegaMenuNavigationProps) => {\r\n  const { data } = useMegaMenuState();\r\n\r\n  return (\r\n    <div className={'l-megaMenu-navigation-new-main'}>\r\n      {/* For every level add an empty placeholder div to render column using portals.\r\n     For first level we start rendering MegaMenu */}\r\n      {Array(levels)\r\n        .fill(0)\r\n        .map((_, prevLevel) => {\r\n          const level = prevLevel + 1;\r\n          const columns = 'Columns' in data ? data.Columns : data.ColumnAndSection;\r\n\r\n          return (\r\n            <div key={level} className={classNames('l-megaMenu-navigation-col', `level-${level}`)}>\r\n              {level === 1 && <MegaMenuColumn level={1} items={columns} />}\r\n            </div>\r\n          );\r\n        })}\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { CloseButton } from '@components/CloseButton';\r\nimport { MegaMenuStateProvider } from './MegaMenuState';\r\nimport './MegaMenuMain.scss';\r\nimport { MegaMenuNavigation } from './MegaMenuNavigation';\r\nimport { MegaMenuSegment } from '@layouts/MegaMenu/MegaMenu.types';\r\n\r\ninterface MegaMenuMainProps {\r\n  show: boolean;\r\n  selected: string;\r\n  megaMenuColumns: {\r\n    [key: string]: MegaMenuSegment;\r\n  };\r\n  closeMegaMenu: () => void;\r\n}\r\n\r\nconst MegaMenuMain = ({ show, selected, megaMenuColumns, closeMegaMenu }: MegaMenuMainProps) => {\r\n  const LEVELS = 4;\r\n  const selectedColumn = megaMenuColumns[selected];\r\n\r\n  return show ? (\r\n    <div className='l-megaMenu-new'>\r\n      <div className='l-megaMenu-container-new'>\r\n        <CloseButton onClick={closeMegaMenu} />\r\n        <MegaMenuStateProvider selectedSection={selected} megaMenuData={selectedColumn}>\r\n          <MegaMenuNavigation levels={LEVELS} />\r\n        </MegaMenuStateProvider>\r\n      </div>\r\n    </div>\r\n  ) : null;\r\n};\r\n\r\nexport default MegaMenuMain;\r\n","import React from 'react';\r\n\r\ninterface MobileListItemWithChildrenProps {\r\n  count: number;\r\n  item;\r\n  level: number;\r\n  container;\r\n  backID;\r\n}\r\n\r\nexport const MobileListItemWithChildren = ({\r\n  count,\r\n  item,\r\n  level,\r\n  container,\r\n  backID,\r\n}: MobileListItemWithChildrenProps) => {\r\n  const text = item.Name ? item.Name : item.Title;\r\n  const urlSegment = item.UrlSegment;\r\n\r\n  const handleItemClick = (event) => {\r\n    const nextLevel = level + 1;\r\n    const el = document.getElementById(\r\n      `mobile-mm-${container}-${nextLevel}-${event.currentTarget.id}`\r\n    );\r\n    if (el) {\r\n      el.classList.remove('hidden');\r\n      el.classList.forEach((className) => {\r\n        if (className.startsWith('move')) {\r\n          el.classList.remove(className);\r\n          el.classList.add('move-from-left');\r\n        }\r\n      });\r\n      const child = el.querySelector('.mobile-mm-header-title');\r\n      const backChild = el.querySelector('.mobile-mm-header-back');\r\n      if (backChild && backID) backChild.setAttribute('data-mm-mobileback-id', backID);\r\n      if (child) {\r\n        if (urlSegment && urlSegment.length) {\r\n          child.innerHTML = `<a href=${urlSegment} style=\"text-decoration:underline;font-weight:bold;padding:0px\">${text}</a>`;\r\n        } else {\r\n          child.innerHTML = text;\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <li\r\n      onClick={handleItemClick}\r\n      className='l-header-mobile-menu-item link elsetest'\r\n      id={count.toString()}\r\n      data-mobile-menus-id={count}\r\n    >\r\n      <span>{text}</span>\r\n      <i className='icon-angle-right' />\r\n    </li>\r\n  );\r\n};\r\n","import React, { forwardRef, MouseEvent } from 'react';\r\n\r\ninterface MobileListItemGoBackBtnProps {\r\n  level: number;\r\n  text: string;\r\n}\r\n\r\nexport const MobileListItemGoBackBtn = forwardRef<HTMLLIElement, MobileListItemGoBackBtnProps>(\r\n  ({ level, text }, ref) => {\r\n    const goBack = (event: MouseEvent<HTMLLIElement>) => {\r\n      const menuList = document.getElementsByClassName('mm-mobile-ul');\r\n      const menu: Element[] = Array.prototype.slice.call(menuList);\r\n      if (level <= 1) {\r\n        const mobileMenu = document.getElementById('mobile-megamenu');\r\n        if (mobileMenu) {\r\n          if (menu) {\r\n            menu.forEach((element) => {\r\n              if (element) element.classList.add('hidden');\r\n            });\r\n          }\r\n          mobileMenu.classList.forEach((className) => {\r\n            if (className.startsWith('move')) {\r\n              mobileMenu.classList.remove(className);\r\n              mobileMenu.classList.add('move-from-right');\r\n            }\r\n          });\r\n        }\r\n      } else {\r\n        const targetEl = event.currentTarget;\r\n        if (targetEl) {\r\n          const id = targetEl.getAttribute('data-mm-mobileback-id');\r\n          if (id) {\r\n            const el = document.getElementById(id);\r\n            if (el) {\r\n              if (menu) {\r\n                menu.forEach((element) => {\r\n                  if (element != el) element.classList.add('hidden');\r\n                });\r\n              }\r\n              el.classList.remove('hidden');\r\n              el.classList.forEach((className) => {\r\n                if (className.startsWith('move')) {\r\n                  el.classList.remove(className);\r\n                  el.classList.add('move-from-right');\r\n                }\r\n              });\r\n            }\r\n          }\r\n        }\r\n      }\r\n    };\r\n\r\n    return (\r\n      <li ref={ref} className='l-header-mobile-menu-item mobile-mm-header-back' onClick={goBack}>\r\n        <span className='back mobile-back-mm'>\r\n          <i className='icon-angle-left' />\r\n          {text}\r\n        </span>\r\n      </li>\r\n    );\r\n  }\r\n);\r\n","import React, { ReactNode } from 'react';\r\nimport { MobileListItemGoBackBtn } from './MobileListItemGoBackBtn';\r\n\r\ninterface MobileMenuListWrapperProps {\r\n  id: string;\r\n  children: ReactNode;\r\n  backBtnText: string;\r\n  level: number;\r\n  name: string;\r\n}\r\n\r\nexport const MobileMenuListWrapper = ({\r\n  id,\r\n  children,\r\n  backBtnText,\r\n  level,\r\n  name,\r\n}: MobileMenuListWrapperProps) => {\r\n  return (\r\n    <ul\r\n      style={{\r\n        height: window.innerHeight - 56 + 'px',\r\n      }}\r\n      className='l-header-mobile-menu-list move-from-left mm-mobile-ul hidden'\r\n      id={id}\r\n    >\r\n      <MobileListItemGoBackBtn level={level} text={backBtnText} />\r\n      <li className='l-header-mobile-menu-item headline mobile-mm-header-title'>{name}:</li>\r\n      {children}\r\n    </ul>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { MobileListItemWithChildren } from './components/MobileListItemWithChildren';\r\nimport { MobileMenuListWrapper } from './components/MobileMenuListWrapper';\r\nimport { hasProperty } from '@helpers/objectHelpers';\r\nimport { ColumnsListItem } from '@layouts/MegaMenu/MegaMenu.types';\r\n\r\ninterface MegaMenuListMobileProps {\r\n  container: string;\r\n  level: number;\r\n  name: string;\r\n  columnList: ColumnsListItem[] | ColumnsListItem[][];\r\n  i18n: Record<string, string>;\r\n}\r\n\r\nexport const MegaMenuListMobile = ({\r\n  container,\r\n  level,\r\n  name,\r\n  columnList = [],\r\n  i18n,\r\n}: MegaMenuListMobileProps) => {\r\n  let count = 0;\r\n\r\n  const renderMenuItem = (item: ColumnsListItem, index: number, backID: string) => {\r\n    const hasSubCategory = hasProperty(item, 'NoSubCategory') && !item.NoSubCategory;\r\n\r\n    count++;\r\n\r\n    if (!hasSubCategory) {\r\n      const link = item.UrlSegment || ('HeaderPage' in item && item.HeaderPage) || '';\r\n\r\n      return (\r\n        <li\r\n          key={index}\r\n          id={count.toString()}\r\n          className='l-header-mobile-menu-item link iftest'\r\n          onClick={() => window.location.replace(link)}\r\n          data-mobile-menus-id={count}\r\n        >\r\n          <a href={link}>{('Name' in item && item.Name) || item.Title || ''}</a>\r\n        </li>\r\n      );\r\n    }\r\n\r\n    return (\r\n      <MobileListItemWithChildren\r\n        key={index}\r\n        count={count}\r\n        item={item}\r\n        level={level}\r\n        backID={backID}\r\n        container={container}\r\n      />\r\n    );\r\n  };\r\n\r\n  return (\r\n    <div id={`mobile-mm-${container}-level${level}`} data-mobile-level-section={container}>\r\n      {level == 1 ? (\r\n        <MobileMenuListWrapper\r\n          id={`mobile-mm-${container}-${level}-1`}\r\n          name={name}\r\n          level={level}\r\n          backBtnText={i18n.Back}\r\n        >\r\n          {(columnList as ColumnsListItem[]).map((item: ColumnsListItem, index: number) =>\r\n            renderMenuItem(item, index, `mobile-mm-${container}-${level}-1`)\r\n          )}\r\n        </MobileMenuListWrapper>\r\n      ) : (\r\n        (columnList as ColumnsListItem[][]).map((list, index) => {\r\n          const id = `mobile-mm-${container}-${level}-${index + 1}`;\r\n          return (\r\n            <MobileMenuListWrapper\r\n              key={id}\r\n              id={id}\r\n              name={name}\r\n              level={level}\r\n              backBtnText={i18n.Back}\r\n            >\r\n              {list?.map((item, index) => renderMenuItem(item, index, id))}\r\n            </MobileMenuListWrapper>\r\n          );\r\n        })\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n","import { hasProperty } from '@helpers/objectHelpers';\r\nimport { ColumnsListItem, MegaMenuColumn } from '../MegaMenu.types';\r\n\r\nconst filterColumnList = (el: ColumnsListItem, level: number) => {\r\n  const column = [];\r\n\r\n  switch (level) {\r\n    case 4: {\r\n      if ('Children' in el && el.Children?.length > 0 && hasProperty(el, 'NoSubCategory')) {\r\n        column.push(el.Children);\r\n      } else {\r\n        column.push([]);\r\n      }\r\n      break;\r\n    }\r\n    default: {\r\n      if (el.NoSubCategory) {\r\n        column.push([el] as MegaMenuColumn[]);\r\n      } else if ('ColumnAndSection' in el && el.ColumnAndSection?.length > 0) {\r\n        column.push(el.ColumnAndSection);\r\n      } else if ('Sections' in el && el.Sections?.length > 0) {\r\n        column.push(el.Sections);\r\n      } else if ('Children' in el && el.Children?.length > 0) {\r\n        column.push(el.Children);\r\n      } else {\r\n        column.push([]);\r\n      }\r\n    }\r\n  }\r\n  return column;\r\n};\r\n\r\nexport const renderOtherColumn = (\r\n  columnData: ColumnsListItem[] | ColumnsListItem[][],\r\n  level: number\r\n) => {\r\n  const column: ColumnsListItem[] | ColumnsListItem[][] = [];\r\n  if (columnData) {\r\n    columnData.forEach((el) => {\r\n      if (level === 2) {\r\n        const data = filterColumnList(el, level);\r\n        column.push(...data);\r\n      } else if (Array.isArray(el)) {\r\n        el.forEach((element) => {\r\n          const data = filterColumnList(element, level);\r\n          column.push(...data);\r\n        });\r\n      }\r\n    });\r\n  }\r\n  return column;\r\n};\r\n","import React from 'react';\r\nimport { MegaMenuListMobile } from '../MegaMenuListMobile';\r\nimport { renderOtherColumn } from '../../../helpers/columnDataUtils';\r\nimport {\r\n  MegaMenuNavigationItem,\r\n  MegaMenuColumn,\r\n  ColumnsListItem,\r\n} from '@layouts/MegaMenu/MegaMenu.types';\r\n\r\ninterface MegaMenuColumnMobileProps {\r\n  nav: MegaMenuNavigationItem;\r\n  i18n: Record<string, string>;\r\n  columnData?: MegaMenuColumn[];\r\n}\r\n\r\nexport const MegaMenuColumnMobile = ({ columnData = [], nav, i18n }: MegaMenuColumnMobileProps) => {\r\n  const levelRender = (columnList: ColumnsListItem[] | ColumnsListItem[][], level: number) => {\r\n    return (\r\n      <MegaMenuListMobile\r\n        name={nav.Name}\r\n        columnList={columnList}\r\n        i18n={i18n}\r\n        level={level}\r\n        container={nav.ContainerLink}\r\n      />\r\n    );\r\n  };\r\n\r\n  const level2 = renderOtherColumn(columnData, 2);\r\n  const level3 = renderOtherColumn(level2, 3);\r\n  const level4 = renderOtherColumn(level3, 4);\r\n  return (\r\n    <div\r\n      className=''\r\n      data-mobile-mm-container-id={nav.ContainerLink}\r\n      data-mobile-mm-container-name={nav.Name}\r\n      id={nav.ContainerLink}\r\n    >\r\n      {levelRender(columnData, 1)}\r\n      {levelRender(level2, 2)}\r\n      {levelRender(level3, 3)}\r\n      {levelRender(level4, 4)}\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { LanguageSelect } from '@components/LanguageSelect';\r\nimport { Language } from '@type/common';\r\nimport './LanguageSelector.scss';\r\n\r\ninterface LanguageSelectorProps {\r\n  languages: Language[];\r\n}\r\n\r\nexport const LanguageSelectorMobile = ({ languages }: LanguageSelectorProps) => {\r\n  const currentLanguageTitle = () => {\r\n    const lang = languages?.filter((i) => i.LanguageCode == window.lang);\r\n    if (lang.length > 0) {\r\n      return lang[0].Name;\r\n    } else {\r\n      return languages[0].Name;\r\n    }\r\n  };\r\n\r\n  const languageTitle = currentLanguageTitle();\r\n\r\n  const select = (item: Language) => {\r\n    window.location.href = item.Href;\r\n  };\r\n\r\n  return (\r\n    <div className='c-header-language-selector-mobile'>\r\n      <LanguageSelect\r\n        list={languages}\r\n        name='Name'\r\n        title={languageTitle}\r\n        selectFunction={(item) => select(item)}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n","function _classPrivateFieldGet(receiver, privateMap) {\n  var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\");\n  return _classApplyDescriptorGet(receiver, descriptor);\n}\nfunction _classPrivateFieldSet(receiver, privateMap, value) {\n  var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\");\n  _classApplyDescriptorSet(receiver, descriptor, value);\n  return value;\n}\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) {\n  if (!privateMap.has(receiver)) {\n    throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n  }\n  return privateMap.get(receiver);\n}\nfunction _classApplyDescriptorGet(receiver, descriptor) {\n  if (descriptor.get) {\n    return descriptor.get.call(receiver);\n  }\n  return descriptor.value;\n}\nfunction _classApplyDescriptorSet(receiver, descriptor, value) {\n  if (descriptor.set) {\n    descriptor.set.call(receiver, value);\n  } else {\n    if (!descriptor.writable) {\n      throw new TypeError(\"attempted to set read only private field\");\n    }\n    descriptor.value = value;\n  }\n}\nfunction _classPrivateMethodGet(receiver, privateSet, fn) {\n  if (!privateSet.has(receiver)) {\n    throw new TypeError(\"attempted to get private field on non-instance\");\n  }\n  return fn;\n}\nfunction _checkPrivateRedeclaration(obj, privateCollection) {\n  if (privateCollection.has(obj)) {\n    throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n  }\n}\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) {\n  _checkPrivateRedeclaration(obj, privateMap);\n  privateMap.set(obj, value);\n}\nfunction _classPrivateMethodInitSpec(obj, privateSet) {\n  _checkPrivateRedeclaration(obj, privateSet);\n  privateSet.add(obj);\n}\n\nvar list = [\n\t\" daum[ /]\",\n\t\" deusu/\",\n\t\" yadirectfetcher\",\n\t\"(?:^| )site\",\n\t\"(?:^|[^g])news\",\n\t\"@[a-z]\",\n\t\"\\\\(at\\\\)[a-z]\",\n\t\"\\\\(github\\\\.com/\",\n\t\"\\\\[at\\\\][a-z]\",\n\t\"^12345\",\n\t\"^<\",\n\t\"^[\\\\w \\\\.\\\\-\\\\(\\\\)]+(/v?\\\\d+(\\\\.\\\\d+)?(\\\\.\\\\d{1,10})?)?$\",\n\t\"^[^ ]{50,}$\",\n\t\"^active\",\n\t\"^ad muncher\",\n\t\"^amaya\",\n\t\"^anglesharp/\",\n\t\"^anonymous\",\n\t\"^avsdevicesdk/\",\n\t\"^axios/\",\n\t\"^bidtellect/\",\n\t\"^biglotron\",\n\t\"^btwebclient/\",\n\t\"^castro\",\n\t\"^clamav[ /]\",\n\t\"^client/\",\n\t\"^cobweb/\",\n\t\"^coccoc\",\n\t\"^custom\",\n\t\"^ddg[_-]android\",\n\t\"^discourse\",\n\t\"^dispatch/\\\\d\",\n\t\"^downcast/\",\n\t\"^duckduckgo\",\n\t\"^facebook\",\n\t\"^fdm[ /]\\\\d\",\n\t\"^getright/\",\n\t\"^gozilla/\",\n\t\"^hatena\",\n\t\"^hobbit\",\n\t\"^hotzonu\",\n\t\"^hwcdn/\",\n\t\"^jeode/\",\n\t\"^jetty/\",\n\t\"^jigsaw\",\n\t\"^linkdex\",\n\t\"^lwp[-: ]\",\n\t\"^metauri\",\n\t\"^microsoft bits\",\n\t\"^movabletype\",\n\t\"^mozilla/\\\\d\\\\.\\\\d \\\\(compatible;?\\\\)$\",\n\t\"^mozilla/\\\\d\\\\.\\\\d \\\\w*$\",\n\t\"^navermailapp\",\n\t\"^netsurf\",\n\t\"^offline explorer\",\n\t\"^php\",\n\t\"^postman\",\n\t\"^postrank\",\n\t\"^python\",\n\t\"^read\",\n\t\"^reed\",\n\t\"^restsharp/\",\n\t\"^snapchat\",\n\t\"^space bison\",\n\t\"^svn\",\n\t\"^swcd \",\n\t\"^taringa\",\n\t\"^test certificate info\",\n\t\"^thumbor/\",\n\t\"^tumblr/\",\n\t\"^user-agent:mozilla\",\n\t\"^valid\",\n\t\"^venus/fedoraplanet\",\n\t\"^w3c\",\n\t\"^webbandit/\",\n\t\"^webcopier\",\n\t\"^wget\",\n\t\"^whatsapp\",\n\t\"^xenu link sleuth\",\n\t\"^yahoo\",\n\t\"^yandex\",\n\t\"^zdm/\\\\d\",\n\t\"^zoom marketplace/\",\n\t\"^{{.*}}$\",\n\t\"adbeat\\\\.com\",\n\t\"appinsights\",\n\t\"archive\",\n\t\"ask jeeves/teoma\",\n\t\"bit\\\\.ly/\",\n\t\"bluecoat drtr\",\n\t\"bot\",\n\t\"browsex\",\n\t\"burpcollaborator\",\n\t\"capture\",\n\t\"catch\",\n\t\"check\",\n\t\"chrome-lighthouse\",\n\t\"chromeframe\",\n\t\"cloud\",\n\t\"crawl\",\n\t\"cryptoapi\",\n\t\"dareboost\",\n\t\"datanyze\",\n\t\"dataprovider\",\n\t\"dejaclick\",\n\t\"dmbrowser\",\n\t\"download\",\n\t\"evc-batch/\",\n\t\"feed\",\n\t\"firephp\",\n\t\"freesafeip\",\n\t\"ghost\",\n\t\"gomezagent\",\n\t\"google\",\n\t\"headlesschrome/\",\n\t\"http\",\n\t\"httrack\",\n\t\"hubspot marketing grader\",\n\t\"hydra\",\n\t\"ibisbrowser\",\n\t\"images\",\n\t\"iplabel\",\n\t\"ips-agent\",\n\t\"java\",\n\t\"library\",\n\t\"mail\\\\.ru/\",\n\t\"manager\",\n\t\"monitor\",\n\t\"morningscore/\",\n\t\"neustar wpm\",\n\t\"nutch\",\n\t\"offbyone\",\n\t\"optimize\",\n\t\"pageburst\",\n\t\"pagespeed\",\n\t\"perl\",\n\t\"phantom\",\n\t\"pingdom\",\n\t\"powermarks\",\n\t\"preview\",\n\t\"proxy\",\n\t\"ptst[ /]\\\\d\",\n\t\"reader\",\n\t\"rexx;\",\n\t\"rigor\",\n\t\"rss\",\n\t\"scan\",\n\t\"scrape\",\n\t\"search\",\n\t\"serp ?reputation ?management\",\n\t\"server\",\n\t\"sogou\",\n\t\"sparkler/\",\n\t\"speedcurve\",\n\t\"spider\",\n\t\"statuscake\",\n\t\"stumbleupon\\\\.com\",\n\t\"supercleaner\",\n\t\"synapse\",\n\t\"synthetic\",\n\t\"taginspector/\",\n\t\"torrent\",\n\t\"tracemyfile\",\n\t\"transcoder\",\n\t\"trendsmapresolver\",\n\t\"twingly recon\",\n\t\"url\",\n\t\"virtuoso\",\n\t\"wappalyzer\",\n\t\"webglance\",\n\t\"webkit2png\",\n\t\"websitemetadataretriever\",\n\t\"whatcms/\",\n\t\"wordpress\",\n\t\"zgrab\"\n];\n\n/**\n * Mutate given list of patter strings\n * @param {string[]} list\n * @returns {string[]}\n */\nfunction amend(list) {\n  try {\n    // Risk: Uses lookbehind assertion, avoid breakage in parsing by using RegExp constructor\n    new RegExp('(?<! cu)bot').test('dangerbot'); // eslint-disable-line prefer-regex-literals\n  } catch (error) {\n    // Skip regex fixes\n    return list;\n  }\n  [\n  // Addresses: Cubot device\n  ['bot', '(?<! cu)bot'],\n  // Addresses: Android webview\n  ['google', '(?<! (?:channel/|google/))google(?!(app|/google| pixel))'],\n  // Addresses: libhttp browser\n  ['http', '(?<!(?:lib))http'],\n  // Addresses: java based browsers\n  ['java', 'java(?!;)'],\n  // Addresses: Yandex Search App\n  ['search', '(?<! ya(?:yandex)?)search']].forEach(_ref => {\n    let [search, replace] = _ref;\n    const index = list.lastIndexOf(search);\n    if (~index) {\n      list.splice(index, 1, replace);\n    }\n  });\n  return list;\n}\n\namend(list);\nconst flags = 'i';\n\n/**\n * Test user agents for matching patterns\n */\nvar _list = /*#__PURE__*/new WeakMap();\nvar _pattern = /*#__PURE__*/new WeakMap();\nvar _update = /*#__PURE__*/new WeakSet();\nvar _index = /*#__PURE__*/new WeakSet();\nclass Isbot {\n  constructor(patterns) {\n    /**\n     * Find the first index of an existing rule or -1 if not found\n     * @param  {string} rule\n     * @returns {number}\n     */\n    _classPrivateMethodInitSpec(this, _index);\n    /**\n     * Recreate the pattern from rules list\n     */\n    _classPrivateMethodInitSpec(this, _update);\n    /**\n     * @type {string[]}\n     */\n    _classPrivateFieldInitSpec(this, _list, {\n      writable: true,\n      value: void 0\n    });\n    /**\n     * @type {RegExp}\n     */\n    _classPrivateFieldInitSpec(this, _pattern, {\n      writable: true,\n      value: void 0\n    });\n    _classPrivateFieldSet(this, _list, patterns || list.slice());\n    _classPrivateMethodGet(this, _update, _update2).call(this);\n    const isbot = ua => this.test(ua);\n    return Object.defineProperties(isbot, Object.entries(Object.getOwnPropertyDescriptors(Isbot.prototype)).reduce((accumulator, _ref) => {\n      let [prop, descriptor] = _ref;\n      if (typeof descriptor.value === 'function') {\n        Object.assign(accumulator, {\n          [prop]: {\n            value: this[prop].bind(this)\n          }\n        });\n      }\n      if (typeof descriptor.get === 'function') {\n        Object.assign(accumulator, {\n          [prop]: {\n            get: () => this[prop]\n          }\n        });\n      }\n      return accumulator;\n    }, {}));\n  }\n  /**\n   * Get a clone of the pattern\n   * @type RegExp\n   */\n  get pattern() {\n    return new RegExp(_classPrivateFieldGet(this, _pattern));\n  }\n\n  /**\n   * Match given string against out pattern\n   * @param  {string} ua User Agent string\n   * @returns {boolean}\n   */\n  test(ua) {\n    return Boolean(ua) && _classPrivateFieldGet(this, _pattern).test(ua);\n  }\n\n  /**\n   * Get the match for strings' known crawler pattern\n   * @param  {string} ua User Agent string\n   * @returns {string|null}\n   */\n  find() {\n    let ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    const match = ua.match(_classPrivateFieldGet(this, _pattern));\n    return match && match[0];\n  }\n\n  /**\n   * Get the patterns that match user agent string if any\n   * @param  {string} ua User Agent string\n   * @returns {string[]}\n   */\n  matches() {\n    let ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    return _classPrivateFieldGet(this, _list).filter(entry => new RegExp(entry, flags).test(ua));\n  }\n\n  /**\n   * Clear all patterns that match user agent\n   * @param  {string} ua User Agent string\n   * @returns {void}\n   */\n  clear() {\n    let ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    this.exclude(this.matches(ua));\n  }\n\n  /**\n   * Extent patterns for known crawlers\n   * @param  {string[]} filters\n   * @returns {void}\n   */\n  extend() {\n    let filters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    [].push.apply(_classPrivateFieldGet(this, _list), filters.filter(rule => _classPrivateMethodGet(this, _index, _index2).call(this, rule) === -1).map(filter => filter.toLowerCase()));\n    _classPrivateMethodGet(this, _update, _update2).call(this);\n  }\n\n  /**\n   * Exclude patterns from bot pattern rule\n   * @param  {string[]} filters\n   * @returns {void}\n   */\n  exclude() {\n    let filters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    let {\n      length\n    } = filters;\n    while (length--) {\n      const index = _classPrivateMethodGet(this, _index, _index2).call(this, filters[length]);\n      if (index > -1) {\n        _classPrivateFieldGet(this, _list).splice(index, 1);\n      }\n    }\n    _classPrivateMethodGet(this, _update, _update2).call(this);\n  }\n\n  /**\n   * Create a new Isbot instance using given list or self's list\n   * @param  {string[]} [list]\n   * @returns {Isbot}\n   */\n  spawn(list) {\n    return new Isbot(list || _classPrivateFieldGet(this, _list));\n  }\n}\nfunction _update2() {\n  _classPrivateFieldSet(this, _pattern, new RegExp(_classPrivateFieldGet(this, _list).join('|'), flags));\n}\nfunction _index2(rule) {\n  return _classPrivateFieldGet(this, _list).indexOf(rule.toLowerCase());\n}\n\nconst isbot = new Isbot();\n\nexport { isbot as default };\n//# sourceMappingURL=index.mjs.map\n","import { MegaMenuNavigationItem } from '@layouts/MegaMenu/MegaMenu.types';\r\nimport React from 'react';\r\nimport { getPathLink } from './MobileNavigationList.utils';\r\n\r\ninterface MobileNavigationListProps {\r\n  navigation?: MegaMenuNavigationItem[];\r\n  contact: {\r\n    Text: string;\r\n    Href: string;\r\n  };\r\n}\r\n\r\nexport const MobileNavigationList = ({ navigation = [], contact }: MobileNavigationListProps) => {\r\n  const pathLink = getPathLink();\r\n  const hasNavigationList = navigation.length > 0;\r\n\r\n  const addToMegaMenu = (index: string) => {\r\n    window.localStorage.setItem('menuContainerLink', index);\r\n    const el = document.getElementById(`mobile-mm-${index}-1-1`);\r\n    if (el) {\r\n      el.classList.remove('move-from-right');\r\n      el.classList.remove('hidden');\r\n      el.classList.add('move-from-left');\r\n    }\r\n  };\r\n\r\n  const onNavItemClick = (nav: MegaMenuNavigationItem) => {\r\n    if (nav.NoSubCategory) {\r\n      window.localStorage.setItem('menuContainerLink', nav.ContainerLink);\r\n      window.location.href = nav.UrlSegment;\r\n    } else {\r\n      addToMegaMenu(nav.ContainerLink);\r\n    }\r\n  };\r\n\r\n  if (!hasNavigationList) return null;\r\n\r\n  return (\r\n    <>\r\n      {navigation.map((nav, index) => (\r\n        <li onClick={() => onNavItemClick(nav)} key={index} className='l-header-mobile-menu-item'>\r\n          <span>{nav.Name}</span>\r\n          {!nav.NoSubCategory && <i className='icon-angle-right' />}\r\n        </li>\r\n      ))}\r\n      <li\r\n        key={-1}\r\n        onClick={() => {\r\n          window.localStorage.setItem('menuContainerLink', '');\r\n          window.location.href = pathLink + contact.Href;\r\n        }}\r\n        className='l-header-mobile-menu-item'\r\n      >\r\n        {contact.Text}\r\n      </li>\r\n    </>\r\n  );\r\n};\r\n","export const getPathLink = () => {\r\n  let pathLink = '';\r\n\r\n  if (document.getElementsByTagName('html')[0].getAttribute('lang') === 'nl') {\r\n    pathLink = '/nl/';\r\n  } else if (\r\n    document.getElementsByTagName('html')[0].getAttribute('lang') === 'fr-BE'\r\n  ) {\r\n    pathLink = '/fr-be/';\r\n  } else if (\r\n    document.getElementsByTagName('html')[0].getAttribute('lang') === 'fr-CA'\r\n  ) {\r\n    pathLink = '/fr-ca/';\r\n  } else {\r\n    pathLink = '/';\r\n  }\r\n  return pathLink;\r\n};\r\n","import React from 'react';\r\nimport { IconContainer, ExternalLink } from '@icons/common';\r\nimport { Button } from '@components/Button';\r\nimport { SignInLinkInformation } from '@layouts/Header/Header.types';\r\nimport dataLayer from '@helpers/dataLayer';\r\nimport './SignInDropdown.scss';\r\nimport { productShopUrl } from '@helpers/consts';\r\n\r\ninterface SignInDropdownProps {\r\n  signInInformation?: string;\r\n  links?: SignInLinkInformation[];\r\n}\r\n\r\nexport const SignInDropdown = ({ signInInformation, links }: SignInDropdownProps) => {\r\n\r\n  const handleDatalayerPush = (linkText: string, linkUrl: string) => {\r\n    dataLayer.push('exit_link', {\r\n      link_text: linkText,\r\n      link_url: linkUrl,\r\n    });\r\n  }\r\n  return (\r\n    <>\r\n      <div className='sign-in-header' dangerouslySetInnerHTML={{ __html: signInInformation }}></div>\r\n      <div className='sign-in-button-container'>\r\n        {links.map((item, index) => (\r\n          <Button\r\n            onClick={() => handleDatalayerPush(item.Text, item.Url)}\r\n            key={index}\r\n            className='c-sign-in-dropdown-button'\r\n            text={item.Text}\r\n            size='small'\r\n            color='primary'\r\n            href={item.Url}\r\n            //Story 365068 - Added new attribute i.e referrerpolicy=\"unsafe-url\" if item.Url contains shop.alfalaval.com\r\n            {...(item.Url?.includes(productShopUrl) && { referrerPolicy: 'unsafe-url' })}\r\n          >\r\n            <IconContainer key={index} icon={<ExternalLink />} className='svg-icon icon-sign-in' />\r\n          </Button>\r\n        ))}\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n","import React, { MouseEvent } from 'react';\r\n\r\ninterface CountrySelectorFooterProps {\r\n  footerLink: string;\r\n  footerText: string;\r\n  footerLinkHref: string;\r\n  RedirectedIntro: string;\r\n  RemoveSettingsText: string;\r\n}\r\n\r\nexport const CountrySelectorFooter = ({\r\n  footerLink,\r\n  footerText,\r\n  footerLinkHref,\r\n  RedirectedIntro,\r\n  RemoveSettingsText,\r\n}: CountrySelectorFooterProps) => {\r\n  const isCommertialSiteHomePage = () => {\r\n    const site = window.location.href;\r\n    if (\r\n      site == 'https://www.alfalaval.com' ||\r\n      site == 'https://www.alfalaval.com/' ||\r\n      site == 'https://alfalaval.com' ||\r\n      site == 'https://alfalaval.com/' ||\r\n      site == 'https://www.alfalaval.com/?remove-preferred-site=true'\r\n    ) {\r\n      return true;\r\n    }\r\n    return false;\r\n  };\r\n\r\n  const isThisSiteIsPreferedSiteAndCommertialSite = () => {\r\n    if (\r\n      window.localStorage.getItem('preferred-site') == 'https://www.alfalaval.com/' &&\r\n      isCommertialSiteHomePage()\r\n    ) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  };\r\n\r\n  const removeSettings = (e: MouseEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault();\r\n    window.localStorage.removeItem('preferred-site');\r\n    document.location.href =\r\n      (e.target as HTMLAnchorElement).href + '?remove-preferred-site=' + true;\r\n  };\r\n\r\n  const displayGeolocationForLocalSite = () => {\r\n    if (window.localStorage.getItem('preferred-site') != null) {\r\n      return true;\r\n    }\r\n    return false;\r\n  };\r\n\r\n  return (\r\n    <div className='c-country-selector-block-footer'>\r\n      {footerText} <a href={footerLinkHref}>{footerLink}</a>\r\n      {displayGeolocationForLocalSite() && !isThisSiteIsPreferedSiteAndCommertialSite() && (\r\n        <div>\r\n          {RedirectedIntro && <p className='redirected-message'>{RedirectedIntro} </p>}\r\n          {RemoveSettingsText && (\r\n            <a\r\n              href='https://www.alfalaval.com/'\r\n              className='c-button is-primary is-small is-border'\r\n              onClick={removeSettings}\r\n            >\r\n              {RemoveSettingsText}\r\n            </a>\r\n          )}\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { CloseButton } from '@components/CloseButton';\r\nimport { CountrySelectorFooter } from './CountrySelectorFooter';\r\nimport classNames from 'classnames';\r\n\r\ninterface Link {\r\n  Text: string;\r\n  Href: string;\r\n  Target: string | null;\r\n  PageId: number;\r\n}\r\n\r\ninterface MobileListProps {\r\n  title: string;\r\n  countries: Array<{\r\n    Text: string;\r\n    Href: string;\r\n  }>;\r\n  countrySelectList: {\r\n    ContactUsPageLink: Link;\r\n    I18n: Record<string, string>;\r\n    RedirectedIntro: string;\r\n    RemoveSettingsText: string;\r\n  };\r\n}\r\n\r\nexport const MobileList = ({ countries, title, countrySelectList }: MobileListProps) => {\r\n  const [isCountrySelector, setIsCountrySelector] = useState(false);\r\n\r\n  const selectCountryMobile = (e) => {\r\n    document.location.href = e.target.value;\r\n  };\r\n\r\n  const openCountrySelector = () => {\r\n    setIsCountrySelector(true);\r\n  };\r\n\r\n  const closeCountrySelector = () => {\r\n    setIsCountrySelector(false);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <div className='l-header-market-area'>\r\n        {isCountrySelector && (<div className='market-overlay'></div>)}\r\n        <div className='l-header-market-heading'>{title}</div>\r\n        <div\r\n          className='l-header-market-selector c-accordion-tabs-head-countryselect'\r\n          onClick={openCountrySelector}\r\n        >\r\n          <i className='icon-sphere'></i>\r\n          <div className='market-language'>{window.lang.toUpperCase()}</div>\r\n          <i className='icon-angle-right market-arrow'></i>\r\n        </div>\r\n      </div>\r\n      {isCountrySelector && (\r\n        <div className='c-country-selector-block-mobile'>\r\n          <div className='c-country-selector-header-mobile'>\r\n            {title}\r\n            <span>\r\n              <CloseButton className='c-close-button' onClick={closeCountrySelector} />\r\n            </span>\r\n          </div>\r\n          <ul className='c-country-selector-block-mobile-content'>\r\n            {countries.map((element, index) => (\r\n              <li key={index} className='c-country-selector-mobile-list'>\r\n                <a onClick={selectCountryMobile} href={element.Href}>\r\n                  {element.Text}\r\n                </a>\r\n              </li>\r\n            ))}\r\n          </ul>\r\n          <CountrySelectorFooter\r\n            footerLink={countrySelectList.ContactUsPageLink.Text}\r\n            footerText={countrySelectList.I18n.ContactUsPageText}\r\n            footerLinkHref={countrySelectList.ContactUsPageLink.Href}\r\n            RedirectedIntro={countrySelectList.RedirectedIntro}\r\n            RemoveSettingsText={countrySelectList.RemoveSettingsText}\r\n          />\r\n        </div>\r\n      )}\r\n    </>\r\n  );\r\n};\r\n","import React, { MouseEvent } from 'react';\r\n\r\ninterface DesktopListProps {\r\n  countries: Array<{\r\n    Text: string;\r\n    Href: string;\r\n  }>;\r\n}\r\n\r\nexport const DesktopList = ({ countries }: DesktopListProps) => {\r\n  const selectCountry = (e: MouseEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault();\r\n    const url = new URL(e.currentTarget.attributes.getNamedItem('href').value);\r\n    document.location.href = url.href;\r\n  };\r\n\r\n  const generateDesktopList = (array: typeof countries) => {\r\n    const columns = 4;\r\n    const temparray = [];\r\n    const newArray = [];\r\n\r\n    // Put all countries inside li\r\n    array.forEach((element) => {\r\n      temparray.push(\r\n        <li key={element.Text}>\r\n          <a onClick={selectCountry} href={element.Href}>\r\n            {element.Text}\r\n          </a>\r\n        </li>\r\n      );\r\n    });\r\n\r\n    const temparraylength = temparray.length;\r\n    const columnsLength = Math.ceil(temparraylength / columns);\r\n\r\n    // Split array and put all li inside ui\r\n    for (let i = 0; i < temparraylength; i += columnsLength) {\r\n      const column = temparray.slice(i, i + columnsLength);\r\n      newArray.push(\r\n        <ul key={i} className='c-country-selector-block-list-column'>\r\n          {column}\r\n        </ul>\r\n      );\r\n    }\r\n    return newArray;\r\n  };\r\n\r\n  return (\r\n    <div className='c-country-selector-block-list'>\r\n      {countries && generateDesktopList(countries)}\r\n    </div>\r\n  );\r\n};\r\n","import { apiSlice } from '@services/apiSlice';\r\nimport { CountrySelector as endpoints } from '@services/endpoints';\r\nimport { CounstrySelectorData } from './CountrySelector.types';\r\n\r\n\r\nconst countrySelectorApi = apiSlice.injectEndpoints({\r\n  endpoints: (build) => ({\r\n    fetchCountrySelectList: build.query<CounstrySelectorData, void>({\r\n      query: () => ({\r\n        url: endpoints.fetchCountrySelectList,\r\n        params: { language: window.lang, pageId: window.pageId }\r\n      }),\r\n    }),\r\n  }),\r\n  overrideExisting: false,\r\n})\r\n\r\nexport const { useFetchCountrySelectListQuery } = countrySelectorApi;","import React from 'react';\r\nimport { MobileList } from './components/MobileList';\r\nimport { DesktopList } from './components/DesktopList';\r\nimport { CountrySelectorFooter } from './components/CountrySelectorFooter';\r\nimport { CloseButton } from '@components/CloseButton';\r\nimport { useFetchCountrySelectListQuery } from './CountrySelector.service';\r\nimport { useWinSize } from '@contexts/WinSizeContext';\r\nimport './CountrySelector.scss';\r\n\r\ninterface CountrySelectorProps {\r\n  handleCloseDropdown?: () => void;\r\n}\r\n\r\nconst CountrySelector = ({ handleCloseDropdown }: CountrySelectorProps) => {\r\n  const { data: countrySelectList } = useFetchCountrySelectListQuery();\r\n  const { isDesktopForHeader: isDesktop } = useWinSize();\r\n  const { isMobileForHeader: isMobileScreen } = useWinSize();\r\n  const isMobile = !isDesktop;\r\n\r\n  if (!countrySelectList) return null;\r\n\r\n  return (\r\n    <>\r\n      {isMobile || isMobileScreen ? (\r\n        <MobileList\r\n          countries={countrySelectList.Countries}\r\n          title={countrySelectList.Header}\r\n          countrySelectList={countrySelectList}\r\n        />\r\n      ) : (\r\n        <div className='c-country-selector-container'>\r\n          <div className='c-country-selector-header'>\r\n            <div className='c-country-selector-heading'>{countrySelectList.Header}</div>\r\n            <CloseButton onClick={handleCloseDropdown} />\r\n          </div>\r\n          <div className='c-country-selector-info'>{countrySelectList.Introduction}</div>\r\n          {countrySelectList && countrySelectList.I18n && (\r\n            <div className='c-country-selector-block'>\r\n              <DesktopList countries={countrySelectList.Countries} />\r\n              <hr />\r\n              <CountrySelectorFooter\r\n                footerLink={countrySelectList.ContactUsPageLink.Text}\r\n                footerText={countrySelectList.I18n.ContactUsPageText}\r\n                footerLinkHref={countrySelectList.ContactUsPageLink.Href}\r\n                RedirectedIntro={countrySelectList.RedirectedIntro}\r\n                RemoveSettingsText={countrySelectList.RemoveSettingsText}\r\n              />\r\n            </div>\r\n          )}\r\n        </div>\r\n      )}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default CountrySelector;\r\n","import React from 'react';\r\nimport { MegaMenuColumnMobile } from './components/mobile/MegaMenuColumnMobile';\r\nimport { LanguageSelectorMobile } from './components/common/LanguageSelector';\r\nimport { isWebCrawler } from '@helpers/isWebCrawler';\r\nimport './MainNavigationMobileNew.scss';\r\nimport { MobileNavigationList } from './components/mobile/MobileNavigationList';\r\nimport { SignInLinkInformation, TopMenu } from '@layouts/Header/Header.types';\r\nimport { MegaMenuNavigationItem, MegaMenuSegment } from './MegaMenu.types';\r\nimport { SignInDropdown } from '@components/SignInDropdown';\r\nimport { CountrySelector } from '@layouts/CountrySelector';\r\nimport { productShopUrl } from '@helpers/consts';\r\n\r\ninterface MainNavigationMobileNewProps {\r\n  topMenu: TopMenu;\r\n  navigation: MegaMenuNavigationItem[];\r\n  contact: {\r\n    Text: string;\r\n    Href: string;\r\n  };\r\n  showing: boolean;\r\n  columns: {\r\n    [key: string]: MegaMenuSegment;\r\n  };\r\n  i18n: Record<string, string>;\r\n  signInInformation?: string;\r\n  showHideSignIn?: boolean;\r\n  links?: SignInLinkInformation[];\r\n}\r\n\r\nconst MainNavigationMobileNew = ({\r\n  topMenu,\r\n  navigation,\r\n  contact,\r\n  showing,\r\n  columns,\r\n  i18n,\r\n  showHideSignIn,\r\n  signInInformation,\r\n  links,\r\n}: MainNavigationMobileNewProps) => {\r\n  const pageIsCrawled = isWebCrawler();\r\n\r\n  return pageIsCrawled || showing ? (\r\n    <div className={`l-header-mobile-menu ${!showing ? 'hidden' : ''}`}>\r\n      <ul\r\n        id='mobile-megamenu'\r\n        style={{\r\n          height: window.innerHeight - 56 + 'px',\r\n        }}\r\n        className='l-header-mobile-menu-list move-from-left'\r\n      >\r\n        <MobileNavigationList navigation={navigation} contact={contact} />\r\n        {topMenu.SectionLinks.map((link, index) => (\r\n          <li\r\n            key={index}\r\n            onClick={() => {\r\n              window.location.href = link.Href;\r\n            }}\r\n            className='l-header-mobile-menu-item top-menu'\r\n            //Story 365068 - Added new attribute i.e referrerpolicy=\"unsafe-url\" if link.Href contains shop.alfalaval.com\r\n            {...(link.Href?.includes(productShopUrl) && { referrerPolicy: 'unsafe-url' })}\r\n          >\r\n            {link.Text}\r\n          </li>\r\n        ))}\r\n        {topMenu?.Languages && (\r\n          <li className='l-header-mobile-menu-item language top-menu-language'>\r\n            <LanguageSelectorMobile languages={topMenu.Languages} />\r\n          </li>\r\n        )}\r\n        {(links.length > 0 || signInInformation) && !showHideSignIn && (\r\n          <li>\r\n            <div className='l-sign-in-mobile-area-container'>\r\n              <div className='l-sign-in-mobile-area-header'>\r\n                <SignInDropdown signInInformation={signInInformation} links={links} />\r\n              </div>\r\n            </div>\r\n          </li>\r\n        )}\r\n        <li>\r\n          <CountrySelector />\r\n        </li>\r\n      </ul>\r\n      {navigation?.map(\r\n        (nav, index) =>\r\n          !nav.NoSubCategory && (\r\n            <MegaMenuColumnMobile\r\n              key={index}\r\n              nav={nav}\r\n              columnData={columns[nav.ContainerLink]?.Columns}\r\n              i18n={i18n}\r\n            />\r\n          )\r\n      )}\r\n    </div>\r\n  ) : null;\r\n};\r\n\r\nexport default MainNavigationMobileNew;\r\n","import isbot from 'isbot';\r\n\r\nexport const isWebCrawler = (): boolean => {\r\n  return isbot(navigator.userAgent);\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { throttle } from '@helpers/waitFunctions';\r\n\r\nconst getStickyCss = () => {\r\n  return `l-header-sticky offset-top ${window.scrollY >= 54 ? 'hide-top-bar' : ''}`;\r\n};\r\n\r\nexport const useStickyHeader = (hasBreadcrumb: boolean, lite: boolean) => {\r\n  const cls = lite ? 'l-header-lite-sticky offset-top hide-top-bar' : 'l-header-sticky offset-top';\r\n  const [stickyCss, setStickyCss] = useState(cls);\r\n\r\n  const handleStickyInPageNavigation = () => {\r\n    const header = document.querySelector('.l-header');\r\n    const navElement: HTMLDivElement = document.querySelector('.c-in-page-nav');\r\n    const navList = navElement && navElement.querySelector('.c-in-page-nav-list');\r\n    const { height: headerHeight } = header.getBoundingClientRect();\r\n    const hasNavElement = !!(navList && navList.childElementCount > 0);\r\n    const moveInPageNav = window.pageType !== 'SearchPage';\r\n\r\n    // Logic to control inPageNavigation visibility\r\n    if (headerHeight && hasNavElement && navElement.style.visibility !== 'visible') {\r\n      if (moveInPageNav) {\r\n        header.appendChild(navElement);\r\n      }\r\n      navElement.classList.add('visible');\r\n    }\r\n  };\r\n\r\n  function setHeaderHeightForScroll() {\r\n    const root = document.documentElement;\r\n    const headerHeight = (document.querySelector('.l-header') as HTMLElement).offsetHeight;\r\n    root.style.setProperty('--header-height-for-scroll', headerHeight + 'px');\r\n  }\r\n\r\n  const handleScroll = () => {\r\n    const newStickyCss = getStickyCss();\r\n    if (stickyCss !== newStickyCss) {\r\n      setStickyCss(newStickyCss);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    handleScroll();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (!lite) {\r\n      handleStickyInPageNavigation();\r\n    }\r\n\r\n    const barElement = document.getElementById('l-header-sticky-wrapper');\r\n\r\n    if (barElement) {\r\n      if (hasBreadcrumb) {\r\n        barElement.classList.add('l-header-conditional-sticky-wrapper');\r\n      } else {\r\n        barElement.classList.remove('l-header-conditional-sticky-wrapper');\r\n      }\r\n    }\r\n  }, [hasBreadcrumb]);\r\n\r\n  useEffect(() => {\r\n    setHeaderHeightForScroll();\r\n\r\n    const throttledScroll = throttle(handleScroll, 300);\r\n    const throttledHandleInPageNav = throttle(handleStickyInPageNavigation, 300);\r\n    const throttledSetHeaderHeightForScroll = throttle(setHeaderHeightForScroll, 1000);\r\n\r\n    window.addEventListener('resize', throttledSetHeaderHeightForScroll);\r\n    window.addEventListener('scroll', throttledScroll);\r\n    if (!lite) {\r\n      window.addEventListener('resize', throttledHandleInPageNav);\r\n    }\r\n\r\n    return () => {\r\n      window.removeEventListener('resize', throttledSetHeaderHeightForScroll);\r\n      window.removeEventListener('scroll', throttledScroll);\r\n      if (!lite) {\r\n        window.removeEventListener('resize', throttledHandleInPageNav);\r\n      }\r\n    };\r\n  }, []);\r\n\r\n  return { stickyCss, handleScroll };\r\n};\r\n","import { useEffect, useRef } from 'react';\r\n\r\nexport const useBreadcrumbsSizeChange = (breadcrumbRef) => {\r\n  const resizeObserver = useRef(null);\r\n\r\n  const fixScrollingHeight = (headerHeight: number) => {\r\n    // when transitioning from normal header to sticky header - scrolling will be incorrect if we dont set up header height\r\n    const headerEl: HTMLDivElement = document.querySelector('.l-header');\r\n    const inPageNav = document.querySelector('.c-in-page-nav');\r\n    const navList = inPageNav && inPageNav.querySelector('.c-in-page-nav-list');\r\n    const hasNavElement = !!(navList && navList.childElementCount > 0);\r\n    const inPageNavHeight = hasNavElement ? 48 : 0;\r\n\r\n    headerEl.style.height = `${headerHeight + inPageNavHeight}px`;\r\n  };\r\n\r\n  const fitBreadcrumbs = () => {\r\n    // on every breadcrumbs size change - setting header height set by CLS fix to actual height\r\n    const headerWrapperEl: HTMLDivElement = document.querySelector('.l-header-sticky-wrapper');\r\n    const headerMainEl = headerWrapperEl.querySelector('.l-header-sticky');\r\n    const newHeight = headerMainEl.clientHeight;\r\n\r\n    headerWrapperEl.style.height = `${newHeight}px`;\r\n    fixScrollingHeight(newHeight);\r\n  };\r\n\r\n  useEffect(() => {\r\n    resizeObserver.current = new ResizeObserver(() => {\r\n      fitBreadcrumbs();\r\n    });\r\n\r\n    resizeObserver.current.observe(breadcrumbRef.current);\r\n\r\n    return () => {\r\n      if (resizeObserver.current) {\r\n        resizeObserver.current.disconnect();\r\n      }\r\n    };\r\n  }, []);\r\n};\r\n","import React from 'react';\r\nimport { SocialMediaShare } from '@components/SocialMediaShare';\r\nimport { quoteClickHelper } from '@helpers/quoteClickHelper';\r\nimport { Button } from '@components/Button';\r\n\r\ninterface SocialBarProps {\r\n  hideRequestQuote: boolean;\r\n  contactUsForm: { I18: Record<string, string> };\r\n  shareTitle?: string;\r\n}\r\n\r\nexport const SocialBar = ({\r\n  shareTitle = '',\r\n  hideRequestQuote = true,\r\n  contactUsForm,\r\n}: SocialBarProps) => {\r\n  const requestForQuoteText = contactUsForm?.I18.RequestForQuote;\r\n\r\n  return (\r\n    <div className='c-headerbar-social'>\r\n      <SocialMediaShare title={shareTitle} />\r\n      {!hideRequestQuote && requestForQuoteText && (\r\n        <Button\r\n          size='medium'\r\n          color='primary'\r\n          text={requestForQuoteText}\r\n          onClick={() => quoteClickHelper(contactUsForm)}\r\n        />\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n","import React, { useRef, useEffect, MouseEvent } from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { useBreadcrumbsSizeChange } from './Breadcrumb.hooks';\r\nimport { SocialBar } from './components/SocialBar';\r\nimport { BreadcrumbItem, Breadcrumb as BreadcrumbType } from '../../HeaderBar.types';\r\nimport './Breadcrumb.scss';\r\nimport { useFetchContactUsFormQuery } from '@pages/ContactUs/ContactUs.service';\r\n\r\ninterface BreadcrumbProps {\r\n  breadcrumb: BreadcrumbType;\r\n}\r\n\r\nexport const Breadcrumb = ({ breadcrumb }: BreadcrumbProps) => {\r\n  const breadcrumbRef = useRef(null);\r\n  const { data: contactUsForm } = useFetchContactUsFormQuery();\r\n  useBreadcrumbsSizeChange(breadcrumbRef);\r\n\r\n  return (\r\n    <div ref={breadcrumbRef} className='c-breadcrumb'>\r\n      <div className='c-breadcrumb-container'>\r\n        {breadcrumb &&\r\n          breadcrumb.Breadcrumbs.map(\r\n            (item, index) => {\r\n              const lastBreadcrumbItem = index === breadcrumb.Breadcrumbs.length - 1;\r\n\r\n              return (\r\n                item.Href && (\r\n                  <span\r\n                    key={index}\r\n                    className={\r\n                      index > 0 ? 'c-breadcrumb-links c-breadcrumb-separator' : 'c-breadcrumb-links'\r\n                    }\r\n                  >\r\n                    <a\r\n                      // Story 469071: Breadcrumb changes as per ARC - disabled last breadcrumb item with css \r\n                      className={`c-breadcrumb-link ${lastBreadcrumbItem ? 'c-breadcrumb-disabled-link' : ''}`}\r\n                      key={index}\r\n                      href={lastBreadcrumbItem ? undefined : item.Href}\r\n                      dangerouslySetInnerHTML={{\r\n                        __html: item.Text,\r\n                      }}\r\n                      // Story 469071: Breadcrumb changes as per ARC - added aria-current property to the last breadcrumb item\r\n                      aria-current={lastBreadcrumbItem ? 'page' : undefined}\r\n                    />\r\n                  </span>\r\n                )\r\n              );\r\n            })}\r\n      </div>\r\n      {breadcrumb && contactUsForm ? (\r\n        <SocialBar\r\n          shareTitle={breadcrumb?.Share || ''}\r\n          hideRequestQuote={contactUsForm?.hideRequestQuote}\r\n          contactUsForm={contactUsForm}\r\n        />\r\n      ) : (\r\n        // used to render loading indicator\r\n        <div className='c-headerbar-social' />\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Breadcrumb;\r\n","import { SubNavigation } from '@layouts/Header/Header.types';\r\nimport React from 'react';\r\n\r\ninterface SubMenuProps {\r\n  submenuLinks: SubNavigation['content'];\r\n}\r\n\r\nexport const SubMenu = ({ submenuLinks }: SubMenuProps) => {\r\n  const subMenuLinks = submenuLinks.map((item, index) => {\r\n    const activeStyle = parseInt(window.pageId) === parseInt(item.PageId) ? 'is-active' : '';\r\n    return (\r\n      <li key={index} className='c-submenu-link-container'>\r\n        <a href={item.Href} className={`c-submenu-link ${activeStyle}`}>\r\n          {item.Text}\r\n        </a>\r\n      </li>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <div className='c-submenu'>\r\n      <ul className='c-submenu-list'>{subMenuLinks}</ul>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useRef, MouseEvent } from 'react';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport './SubMenuMobile.scss';\r\nimport { SubNavigation } from '@layouts/Header/Header.types';\r\n\r\ninterface SubMenuMobileProps {\r\n  submenuLinks: SubNavigation['content'];\r\n  title: string;\r\n}\r\n\r\nexport const SubMenuMobile = ({ submenuLinks, title }: SubMenuMobileProps) => {\r\n  const [active, setActive] = useState(false);\r\n\r\n  const subMenuRef = useRef(null);\r\n  const handleClickOutside = () => {\r\n    setActive(false);\r\n  };\r\n  useOutsideClick(subMenuRef, handleClickOutside);\r\n\r\n  const onClick = (e: MouseEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault();\r\n    setActive(!active);\r\n  };\r\n\r\n  let currentLink = submenuLinks.filter(\r\n    (item) => parseInt(item.PageId) === parseInt(window.pageId)\r\n  )[0];\r\n  let list = [];\r\n  if (!currentLink && submenuLinks.length) {\r\n    currentLink = submenuLinks[0];\r\n    list = submenuLinks.filter((item) => parseInt(item.PageId) !== parseInt(currentLink.PageId));\r\n  } else {\r\n    list = submenuLinks.filter((item) => parseInt(item.PageId) !== parseInt(window.pageId));\r\n  }\r\n\r\n  const subMenuLinks = list.map((item, index) => {\r\n    return (\r\n      <li key={index} className='c-submenu-mobile-link-container'>\r\n        <a href={item.Href} className='c-submenu-mobile-link'>\r\n          {item.Text}\r\n        </a>\r\n      </li>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <div className='c-submenu-mobile'>\r\n      <div className='c-submenu-mobile-current-link'>\r\n        {currentLink && (\r\n          <a onClick={onClick} href={currentLink.Href} className='c-submenu-mobile-link no-border'>\r\n            {currentLink.Text}\r\n          </a>\r\n        )}\r\n        {!currentLink && (\r\n          <a onClick={onClick} href='#' className='c-submenu-mobile-link no-border'>\r\n            {title}\r\n          </a>\r\n        )}\r\n        {active ? (\r\n          <i className='icon-chevron-up' onClick={onClick} />\r\n        ) : (\r\n          <i className='icon-chevron-down' onClick={onClick} />\r\n        )}\r\n      </div>\r\n      {active && <ul className='c-submenu-mobile-list'>{subMenuLinks}</ul>}\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { Breadcrumb } from '@layouts/HeaderBar/components/Breadcrumb';\r\nimport { SubMenu, SubMenuMobile } from './components/SubMenu';\r\nimport { useFetchBreadcrumbQuery } from './HeaderBar.service';\r\nimport classNames from 'classnames';\r\nimport { SubNavigation } from '@layouts/Header/Header.types';\r\n\r\ninterface HeaderBarProps {\r\n  subNavigation: SubNavigation;\r\n}\r\n\r\nconst HeaderBar = ({ subNavigation }: HeaderBarProps) => {\r\n  const { data: breadcrumb, isLoading } = useFetchBreadcrumbQuery();\r\n  return (\r\n    <div id='c-headerbar' className='c-headerbar'>\r\n      <div className={classNames('c-headerbar-container', { loading: isLoading })}>\r\n        {subNavigation.SubNavType === 'Breadcrumb' && <Breadcrumb breadcrumb={breadcrumb} />}\r\n      </div>\r\n      <div className='c-headerbar-container page-with-submenu'>\r\n        {subNavigation.SubNavType === 'SubMenu' && subNavigation.content && (\r\n          <div>\r\n            <SubMenu submenuLinks={subNavigation.content} />\r\n            <SubMenuMobile submenuLinks={subNavigation.content} title={subNavigation.Title} />\r\n          </div>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default HeaderBar;\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport { TopMenu } from '@layouts/Header/components/TopMenu';\r\nimport { enableScroll, disableScroll } from '@helpers/noScroll';\r\nimport { setScrollbarWidthForCSS } from '@contexts/ScrollContext';\r\nimport { Brand } from './components/Brand';\r\nimport { MenuSection } from './components/MenuSection';\r\nimport { CloseButton } from '@components/CloseButton';\r\nimport { MegaMenuMain, MainNavigationMobileNew } from '@layouts/MegaMenu';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { useStickyHeader } from './Header.hooks';\r\nimport { SearchBar } from '@components/SearchBar';\r\nimport { SignInDropdown } from '@components/SignInDropdown';\r\nimport './Header.scss';\r\nimport { HeaderBar } from '@layouts/HeaderBar';\r\nimport { CountrySelector } from '@layouts/CountrySelector';\r\nimport {\r\n  useFetchMegaMenuNavigationQuery,\r\n  useFetchSubNavigationQuery,\r\n  useFetchTopMenuQuery,\r\n} from './Header.service';\r\nimport { activeClass } from './Header.utils';\r\nimport { useWinSize } from '@contexts/WinSizeContext';\r\nimport classNames from 'classnames';\r\n\r\ninterface HeaderProps {\r\n  lite?: boolean;\r\n}\r\n\r\nconst Header = ({ lite = false }: HeaderProps) => {\r\n  const cls = lite ? 'l-header-lite' : 'l-header';\r\n  const headerRef = useRef<HTMLDivElement>(null);\r\n  const [selected, setSelected] = useState<string>(null);\r\n  const [selectedCategory, setSelectedCategory] = useState<string>(null);\r\n\r\n  const { data: megaMenuNavigation, isLoading: isLoadingMegaMenuNavigation } =\r\n    useFetchMegaMenuNavigationQuery();\r\n  const { data: subNavigation } = useFetchSubNavigationQuery();\r\n  const { data: topMenu } = useFetchTopMenuQuery();\r\n\r\n  const showDropDown = !!selectedCategory;\r\n  const showMegaMenu = selectedCategory === 'MegaMenu';\r\n  const showSearchArea = selectedCategory === 'SearchArea';\r\n  const showSignInArea = selectedCategory === 'SignInArea';\r\n  const showMarketArea = selectedCategory === 'MarketArea';\r\n  const { isDesktopForHeader: isDesktop } = useWinSize();\r\n  const { isMobileForHeader: isMobileScreen } = useWinSize();\r\n\r\n  const hasBreadcrumb = subNavigation?.SubNavType === 'Breadcrumb';\r\n  const showHeaderBar = !lite && (hasBreadcrumb || subNavigation?.SubNavType === 'SubMenu');\r\n  const { stickyCss, handleScroll } = useStickyHeader(hasBreadcrumb, lite);\r\n\r\n  const handleClickOutside = () => {\r\n    handleCloseDropdown();\r\n  };\r\n  useOutsideClick(headerRef, handleClickOutside);\r\n\r\n  const handleCloseDropdown = () => {\r\n    setSelectedCategory(null);\r\n    setSelected(null);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (selectedCategory) {\r\n      disableScroll();\r\n      showOverlay(true);\r\n    } else {\r\n      enableScroll();\r\n      showOverlay(false);\r\n    }\r\n  }, [selectedCategory]);\r\n\r\n  // set a CSS variable with the scrollbar width\r\n  setScrollbarWidthForCSS();\r\n\r\n  const openMegaMenu = () => {\r\n    setSelectedCategory('MegaMenu');\r\n  };\r\n\r\n  const toggleMegaMenu = (index) => {\r\n    if (selected === index) {\r\n      handleCloseDropdown();\r\n    } else {\r\n      setSelected(index);\r\n      openMegaMenu();\r\n    }\r\n  };\r\n\r\n  const toggleMegaMenuMobile = () => {\r\n    if (showMegaMenu) {\r\n      setSelectedCategory(null);\r\n      handleCloseDropdown();\r\n    } else {\r\n      openMegaMenu();\r\n    }\r\n  };\r\n\r\n  const toggleSearchArea = () => {\r\n    showSearchArea ? enableScroll() : disableScroll();\r\n    handleCloseDropdown();\r\n\r\n    if (selectedCategory !== 'SearchArea') {\r\n      setSelectedCategory('SearchArea');\r\n    }\r\n  };\r\n\r\n  const toggleSignInArea = () => {\r\n    handleCloseDropdown();\r\n\r\n    if (selectedCategory !== 'SignInArea') {\r\n      setSelectedCategory('SignInArea');\r\n    }\r\n  };\r\n\r\n  const toggleMarketArea = () => {\r\n    handleCloseDropdown();\r\n\r\n    if (selectedCategory !== 'MarketArea') {\r\n      setSelectedCategory('MarketArea');\r\n    }\r\n  };\r\n\r\n  const showOverlay = (value: boolean) => {\r\n    if (value) {\r\n      document.querySelector('.overlay').classList.add('show');\r\n      document.querySelector('.l-header-sticky')?.classList.add('adjust-width');\r\n    } else {\r\n      document.querySelector('.overlay').classList.remove('show');\r\n      document.querySelector('.l-header-sticky')?.classList.remove('adjust-width');\r\n    }\r\n  };\r\n\r\n  // UserStory : 324368 Removed Geo-banner from production\r\n  // const closeGeolocation = () => {\r\n  //   handleScroll();\r\n  // };\r\n\r\n  return (\r\n    <div ref={headerRef} className={`${cls}-sticky-wrapper`} id={`${cls}-sticky-wrapper`}>\r\n      <div className={stickyCss}>\r\n        {/* UserStory : 324368 Removed Geo-banner from production */}\r\n        {/* <Geolocation onCloseGeolocation={closeGeolocation} /> */}\r\n        {!lite && <TopMenu topMenu={topMenu} />}\r\n\r\n        <div className={`${cls}-main`}>\r\n          <div className={`${cls}-container ${isLoadingMegaMenuNavigation ? 'loading' : ''}`}>\r\n            <div className={`${cls}-main-left`}>\r\n              <div className={`${cls}-main-mobile-item`}>\r\n                <div\r\n                  className={activeClass('c-animation-box', showMegaMenu)}\r\n                  onClick={toggleMegaMenuMobile}\r\n                >\r\n                  <ul>\r\n                    <li>\r\n                      <i className='svg-icon icon-symbol-close'></i>\r\n                    </li>\r\n                    <li>\r\n                      <i className='svg-icon icon-symbol-burger'></i>\r\n                    </li>\r\n                  </ul>\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <Brand className={`${cls}-main-brand`} />\r\n            {megaMenuNavigation && (\r\n              <div className={`${cls}-main-right`}>\r\n                <MenuSection\r\n                  showSignInArea={showSignInArea}\r\n                  showSearchArea={showSearchArea}\r\n                  showMarketArea={showMarketArea}\r\n                  toggleMegaMenu={toggleMegaMenu}\r\n                  toggleSearchArea={toggleSearchArea}\r\n                  toggleSignInArea={toggleSignInArea}\r\n                  toggleMarketArea={toggleMarketArea}\r\n                  megaMenuNavigation={megaMenuNavigation.MainMenuLinks}\r\n                  selected={selected}\r\n                  searchBtnText={megaMenuNavigation.Search.Name}\r\n                  signInBtnText={megaMenuNavigation.SignIn.Heading}\r\n                  signInBtnLinks={megaMenuNavigation.SignIn.Links}\r\n                  signInDescription={megaMenuNavigation.SignIn.Description}\r\n                  showHideSignIn={megaMenuNavigation.SignIn.HideSignIn}\r\n                  contactBtnText={megaMenuNavigation.Contact.Text}\r\n                  contactLink={megaMenuNavigation.Contact.Href}\r\n                  cls={cls}\r\n                />\r\n              </div>\r\n            )}\r\n          </div>\r\n        </div>\r\n        <div className={`${cls}-dropdown`}>\r\n          <div\r\n            className={classNames(\r\n              `${cls}-dropdown-container`,\r\n              showDropDown ? 'show' : '',\r\n              showSignInArea ? 'sign-in-dropdown' : ''\r\n            )}\r\n          >\r\n            {isDesktop && !isMobileScreen && (\r\n              <MegaMenuMain\r\n                megaMenuColumns={megaMenuNavigation?.MegaMenuColumns || {}}\r\n                selected={selected}\r\n                show={showMegaMenu}\r\n                closeMegaMenu={handleCloseDropdown}\r\n              />\r\n            )}\r\n\r\n            {showSearchArea && (\r\n              <div className='l-mega-menu-search'>\r\n                <div className='l-search-area'>\r\n                  <div className='l-search-area-container'>\r\n                    <div className='l-search-area-last'>\r\n                      <SearchBar\r\n                        className='l-search-area-input-wrapper'\r\n                        placeholder={megaMenuNavigation.Search.Placeholder}\r\n                        showSearchIcon={false}\r\n                        onSubmit={(value) => {\r\n                          const searchUrl = megaMenuNavigation.Search.SearchUrl;\r\n                          const searchParams = new URLSearchParams({\r\n                            query: value,\r\n                            category: 'All',\r\n                            orderBy: 'relevance',\r\n                          });\r\n                          window.location.href = `${searchUrl}?${searchParams.toString()}`;\r\n                        }}\r\n                      />\r\n                    </div>\r\n                    <CloseButton className='search-close' onClick={handleCloseDropdown} />\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            )}\r\n\r\n            {!(megaMenuNavigation?.SignIn.HideSignIn) && selectedCategory === 'SignInArea' && (\r\n              <div className='l-mega-menu-sign-in'>\r\n                <div className='l-sign-in-area-container'>\r\n                  <SignInDropdown\r\n                    signInInformation={megaMenuNavigation?.SignIn.Description}\r\n                    links={megaMenuNavigation?.SignIn.Links}\r\n                  />\r\n                  <CloseButton className='c-close-button' onClick={handleCloseDropdown} />\r\n                </div>\r\n              </div>\r\n            )}\r\n\r\n            {showMarketArea && (\r\n              <div className='c-country-selector'>\r\n                <CountrySelector handleCloseDropdown={handleCloseDropdown} />\r\n              </div>\r\n            )}\r\n\r\n            {(!isDesktop || isMobileScreen) && megaMenuNavigation && (\r\n              <MainNavigationMobileNew\r\n                columns={megaMenuNavigation.MegaMenuColumns || {}}\r\n                contact={megaMenuNavigation.Contact}\r\n                i18n={megaMenuNavigation.I18n}\r\n                navigation={megaMenuNavigation.MainMenuLinks}\r\n                showing={showMegaMenu}\r\n                topMenu={topMenu}\r\n                showHideSignIn={megaMenuNavigation.SignIn.HideSignIn}\r\n                signInInformation={megaMenuNavigation?.SignIn.Description}\r\n                links={megaMenuNavigation?.SignIn.Links}\r\n              />\r\n            )}\r\n          </div>\r\n        </div>\r\n        {showHeaderBar && <HeaderBar subNavigation={subNavigation} />}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Header;\r\n","import Header from './Header';\r\nexport default Header;\r\n","import { apiSlice } from '@services/apiSlice';\r\nimport { ContactUs as endpoints } from '@services/endpoints';\r\nimport { FindContactData, ContactUsForm } from './ContactUs.types';\r\n\r\ninterface FindOfficeQueryParams {\r\n  countryId?: number;\r\n  officeTypeId?: number;\r\n}\r\n\r\ninterface ContactUsFormQueryParams {\r\n  countryId?: number;\r\n  type?: string;\r\n}\r\n\r\nconst contactUsApi = apiSlice.injectEndpoints({\r\n  endpoints: (build) => ({\r\n    fetchFindOfficeData: build.query<FindContactData, FindOfficeQueryParams>({\r\n      query: ({ countryId, officeTypeId }) => ({\r\n        url: endpoints.fetchFindOfficeData,\r\n        params: {\r\n          lang: window.lang,\r\n          countryId: countryId || 2000,\r\n          officeTypeId: officeTypeId || 0,\r\n        },\r\n      }),\r\n    }),\r\n    fetchContactUsForm: build.query<ContactUsForm, ContactUsFormQueryParams | void>({\r\n      query: (params) => ({\r\n        url: endpoints.fetchContactUsForm,\r\n        params: {\r\n          lang: window.lang,\r\n          pageId: window.pageId,\r\n          type: params ? params.type : 'RequestAQuote',\r\n          countryId: params && params.countryId ? params.countryId : 0,\r\n        },\r\n      }),\r\n    }),\r\n  }),\r\n  overrideExisting: false,\r\n});\r\n\r\nexport const { useFetchContactUsFormQuery, useLazyFetchFindOfficeDataQuery } = contactUsApi;\r\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","key","call","join","module","exports","default","define","window","Profile","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r","d","IconContainer","icon","className","Facebook","Twitter","x","y","ExternalLink","id","Arrow","rotate","style","transformBox","transformOrigin","transform","Cross","Delete","EmailSvg","PhoneSvg","fillRule","clipRule","Button","text","onClick","href","size","disabled","color","border","children","type","props","tag","createElement","target","CloseButton","SocialMediaShare","title","handleClick","e","name","preventDefault","open","currentTarget","innerHeight","innerWidth","shareUrl","location","disableScroll","document","body","classList","add","enableScroll","remove","quoteClickHelper","contactUsForm","redirect","localStorage","setItem","I18","CategoryID","pageId","contact_type","RequestForQuote","EnquiryTypeLink","useOutsideClick","ref","handler","useEffect","current","contains","addEventListener","removeEventListener","breadcrumbApi","endpoints","build","fetchBreadcrumb","query","url","params","language","lang","overrideExisting","useFetchBreadcrumbQuery","selectFunction","list","arrow","isShowing","setIsShowing","useState","selectRef","useRef","listItems","useMemo","map","item","onSelect","TopMenuLanguageSelector","languages","defaultLanguage","languageTitle","filter","LanguageCode","Name","currentLanguageTitle","Href","select","topMenu","SectionLinks","index","Text","Target","referrerPolicy","Languages","DefaultLanguage","Brand","pathLink","getElementsByTagName","getAttribute","src","alt","ContactButton","forwardRef","highlight","selected","contactlink","pageType","cookie","MainNavigation","model","itemClass","NoSubCategory","setValue","val","ContainerLink","getItem","UrlSegment","SearchButton","SignInButton","MarketButton","active","MenuSection","toggleMegaMenu","toggleSearchArea","toggleSignInArea","toggleMarketArea","showHideSignIn","megaMenuNavigation","contactLink","contactBtnText","searchBtnText","signInBtnText","signInDescription","showSearchArea","showSignInArea","showMarketArea","signInBtnLinks","cls","contactClick","setContactClick","contactBtnRef","isDesktopForHeader","Fragment","handlehighlight","origin","toUpperCase","MegaMenuState","createContext","MegaMenuStateProvider","selectedSection","megaMenuData","activeItems","setActiveItems","initialData","data","setData","resetActiveItems","Provider","value","addActiveItem","changedLevel","newActiveItems","keys","forEach","level","parseInt","removeActiveItem","resetData","newData","useMegaMenuState","useContext","MegaMenuItem","items","hasChildren","isActive","isMobileDevice","navigator","maxTouchPoints","isHovered","onMouseEnter","onMouseLeave","onHover","setIsHovered","hoverTimer","clearTimeout","setTimeout","useMegaMenuItemHover","showChildren","nextLevel","undefined","createPortal","MegaMenuColumn","querySelector","columnData","columnChildren","ColumnAndSection","Children","Sections","columnHasChildren","HeaderPage","Title","MegaMenuNavigation","levels","_","prevLevel","columns","Columns","show","megaMenuColumns","closeMegaMenu","selectedColumn","MobileListItemWithChildren","count","container","backID","urlSegment","event","el","getElementById","startsWith","child","backChild","setAttribute","innerHTML","MobileListItemGoBackBtn","menuList","getElementsByClassName","menu","slice","mobileMenu","element","targetEl","MobileMenuListWrapper","backBtnText","MegaMenuListMobile","columnList","i18n","renderMenuItem","hasSubCategory","link","replace","Back","filterColumnList","column","renderOtherColumn","MegaMenuColumnMobile","nav","levelRender","level2","level3","level4","LanguageSelectorMobile","_classPrivateFieldGet","receiver","privateMap","descriptor","get","_classApplyDescriptorGet","_classExtractFieldDescriptor","_classPrivateFieldSet","set","writable","TypeError","_classApplyDescriptorSet","action","has","_classPrivateMethodGet","privateSet","fn","_checkPrivateRedeclaration","obj","privateCollection","_classPrivateFieldInitSpec","_classPrivateMethodInitSpec","RegExp","test","error","_ref","search","lastIndexOf","splice","amend","_list","WeakMap","_pattern","_update","WeakSet","_index","Isbot","constructor","patterns","this","_update2","defineProperties","ua","entries","getOwnPropertyDescriptors","reduce","accumulator","prop","assign","bind","pattern","Boolean","find","match","matches","entry","clear","exclude","extend","filters","rule","_index2","toLowerCase","spawn","indexOf","isbot","MobileNavigationList","navigation","contact","getPathLink","hasNavigationList","onNavItemClick","addToMegaMenu","SignInDropdown","signInInformation","links","dangerouslySetInnerHTML","__html","handleDatalayerPush","linkText","linkUrl","Url","dataLayer","link_text","link_url","CountrySelectorFooter","footerLink","footerText","footerLinkHref","RedirectedIntro","RemoveSettingsText","site","isCommertialSiteHomePage","removeItem","MobileList","countries","countrySelectList","isCountrySelector","setIsCountrySelector","selectCountryMobile","ContactUsPageLink","I18n","ContactUsPageText","DesktopList","selectCountry","URL","attributes","getNamedItem","array","temparray","newArray","temparraylength","columnsLength","Math","ceil","generateDesktopList","countrySelectorApi","apiSlice","fetchCountrySelectList","useFetchCountrySelectListQuery","handleCloseDropdown","isDesktop","isMobileForHeader","isMobileScreen","isMobile","Countries","Header","Introduction","showing","userAgent","useStickyHeader","hasBreadcrumb","lite","stickyCss","setStickyCss","handleStickyInPageNavigation","header","navElement","navList","headerHeight","getBoundingClientRect","hasNavElement","childElementCount","moveInPageNav","visibility","appendChild","setHeaderHeightForScroll","root","documentElement","offsetHeight","setProperty","handleScroll","newStickyCss","scrollY","barElement","throttledScroll","throttledHandleInPageNav","throttledSetHeaderHeightForScroll","useBreadcrumbsSizeChange","breadcrumbRef","resizeObserver","fitBreadcrumbs","headerWrapperEl","newHeight","clientHeight","headerEl","inPageNav","inPageNavHeight","fixScrollingHeight","ResizeObserver","observe","disconnect","SocialBar","shareTitle","hideRequestQuote","requestForQuoteText","breadcrumb","Breadcrumbs","lastBreadcrumbItem","Share","SubMenu","submenuLinks","subMenuLinks","activeStyle","PageId","SubMenuMobile","setActive","subMenuRef","currentLink","subNavigation","isLoading","loading","SubNavType","content","headerRef","setSelected","selectedCategory","setSelectedCategory","isLoadingMegaMenuNavigation","showDropDown","showMegaMenu","showHeaderBar","showOverlay","openMegaMenu","MainMenuLinks","Search","SignIn","Heading","Links","Description","HideSignIn","Contact","MegaMenuColumns","SearchBar","placeholder","Placeholder","showSearchIcon","onSubmit","searchUrl","SearchUrl","searchParams","URLSearchParams","category","orderBy","contactUsApi","fetchFindOfficeData","countryId","officeTypeId","fetchContactUsForm","useFetchContactUsFormQuery","useLazyFetchFindOfficeDataQuery"],"sourceRoot":""}