{"version":3,"file":"228.0762b8fcdb5d6ea68677.chunk.js","mappings":"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","sources":["webpack://AlfaLaval/./components/SearchBar/components/AutoCompleteSuggestions/AutoCompleteSuggestions.tsx","webpack://AlfaLaval/./components/SearchBar/components/SearchInput/SearchInput.tsx","webpack://AlfaLaval/./components/SearchBar/SearchBar.hooks.ts","webpack://AlfaLaval/./components/SearchBar/SearchBar.tsx","webpack://AlfaLaval/./helpers/consts.ts","webpack://AlfaLaval/./helpers/objectHelpers.ts","webpack://AlfaLaval/./layouts/Header/Header.service.ts","webpack://AlfaLaval/./layouts/Header/Header.utils.ts","webpack://AlfaLaval/./pages/SearchPage/SearchPage.service.ts","webpack://AlfaLaval/./services/endpoints.ts"],"sourcesContent":["import React from 'react';\r\nimport './AutoCompleteSuggestions.scss';\r\n\r\ninterface AutoCompleteSuggestionsProps {\r\n  onSelection: (suggestion: string) => void;\r\n  suggestions: string[];\r\n  selectedSuggestion: number;\r\n  autocompleteFrom: string;\r\n}\r\n\r\nexport const AutoCompleteSuggestions = ({\r\n  suggestions,\r\n  onSelection,\r\n  selectedSuggestion,\r\n  autocompleteFrom,\r\n}: AutoCompleteSuggestionsProps) => {\r\n  return (\r\n    <div className='c-search-autocomplete'>\r\n      <hr />\r\n      <ul className='ac_results m-search-bar-suggestions'>\r\n        {suggestions.map((suggestion, index) => (\r\n          <li\r\n            key={index}\r\n            className={index === selectedSuggestion ? 'selected' : ''}\r\n            onClick={() => onSelection(suggestion)}\r\n          >\r\n            <span>\r\n              <span className='strong'>{autocompleteFrom}</span>\r\n              {suggestion.substr(autocompleteFrom.length)}\r\n            </span>\r\n          </li>\r\n        ))}\r\n      </ul>\r\n    </div>\r\n  );\r\n};\r\n","import React, { forwardRef, KeyboardEvent, ChangeEvent } from 'react';\r\nimport './SearchInput.scss';\r\n\r\ninterface SearchInputProps {\r\n  showSearchIcon: boolean;\r\n  placeholder: string;\r\n  value: string;\r\n  onChange: (e: ChangeEvent) => void;\r\n  onKeyDown: (e: KeyboardEvent) => void;\r\n  onClearBtnClick: () => void;\r\n}\r\n\r\nexport const SearchInput = forwardRef<HTMLInputElement, SearchInputProps>(\r\n  ({ showSearchIcon, placeholder, value, onChange, onKeyDown, onClearBtnClick }, ref) => {\r\n    return (\r\n      <div className='l-search-panel-container'>\r\n        <input\r\n          ref={ref}\r\n          className='c-search-bar'\r\n          type='text'\r\n          autoCapitalize='none'\r\n          autoComplete='off'\r\n          autoCorrect='off'\r\n          placeholder={placeholder}\r\n          value={value}\r\n          onChange={onChange}\r\n          onKeyDown={onKeyDown}\r\n        />\r\n        {showSearchIcon && !value && <i className='icon-symbol-search c-search-icon' />}\r\n        {value && <i onClick={onClearBtnClick} className='icon-symbol-close c-clear-icon' />}\r\n      </div>\r\n    );\r\n  }\r\n);\r\n","import { useCallback, useState, useEffect, KeyboardEvent } from \"react\";\r\nimport { debounce } from '@helpers/waitFunctions';\r\nimport { useLazyDoSearchAutocompleteQuery } from \"@pages/SearchPage/SearchPage.service\";\r\n\r\nconst keyCodes = {\r\n  ENTER: 13,\r\n  ESCAPE: 27,\r\n  UP: 38,\r\n  DOWN: 40,\r\n};\r\n\r\ninterface useAutocompleteProps {\r\n  query: string;\r\n  value: string;\r\n  setValueToSuggestion: (suggestion: string) => void;\r\n  onEnterKeyPress: () => void;\r\n  onEscKeyPress: () => void;\r\n}\r\n\r\nexport const useAutocomplete = ({ query, value, onEnterKeyPress, onEscKeyPress, setValueToSuggestion }: useAutocompleteProps) => {\r\n  const [getAutocompleteSuggestions] = useLazyDoSearchAutocompleteQuery();\r\n  const [suggestions, setSuggestions] = useState([]);\r\n  const [selectedSuggestion, setSelectedSuggestion] = useState(-1);\r\n\r\n  useEffect(() => {\r\n    // controls the suggestion select process by setting value to currently selected suggestion\r\n    if (selectedSuggestion !== -1) setValueToSuggestion(suggestions[selectedSuggestion]);\r\n  }, [suggestions, selectedSuggestion]);\r\n\r\n  const doSelectSuggestion = (key) => {\r\n    const lastItem = suggestions.length - 1;\r\n    let nextItem;\r\n\r\n    if (key === keyCodes.UP) {\r\n      nextItem = selectedSuggestion <= 0 ? lastItem : selectedSuggestion - 1;\r\n    } else {\r\n      nextItem = selectedSuggestion === lastItem ? 0 : selectedSuggestion + 1;\r\n    }\r\n    setSelectedSuggestion(nextItem);\r\n  };\r\n\r\n  const onKeyDown = (e: KeyboardEvent) => {\r\n    const key = e.which || e.keyCode;\r\n    switch (key) {\r\n      case keyCodes.UP:\r\n      case keyCodes.DOWN:\r\n        e.preventDefault();\r\n        doSelectSuggestion(key);\r\n        break;\r\n\r\n      case keyCodes.ENTER:\r\n        onEnterKeyPress();\r\n        break;\r\n\r\n      case keyCodes.ESCAPE:\r\n        onEscKeyPress();\r\n        break;\r\n    }\r\n  };\r\n\r\n\r\n  useEffect(() => {\r\n    if (!value) {\r\n      setSuggestions([]);\r\n      setSelectedSuggestion(-1);\r\n    }\r\n  }, [value]);\r\n\r\n  useEffect(() => {\r\n    setSuggestions([]);\r\n    setSelectedSuggestion(-1);\r\n  }, [query]);\r\n\r\n  const handleAutocomplete = useCallback(debounce(async (input: string) => {\r\n    if (!input) return;\r\n    const searchTerm = normalizeInput(input);\r\n\r\n    const { data: suggestionsData = [] } = await getAutocompleteSuggestions(input);\r\n    const filteredSugestions = suggestionsData.filter((suggestion) =>\r\n      suggestion.match(new RegExp('^' + searchTerm.replace(/\\W\\s/g, ''), 'i'))\r\n    );\r\n\r\n    setSelectedSuggestion(-1);\r\n    setSuggestions(filteredSugestions);\r\n  }, 200), []);\r\n\r\n\r\n  const normalizeInput = (value) => {\r\n    return value.toLowerCase().trim();\r\n  };\r\n\r\n  const resetSuggestions = () => {\r\n    setSuggestions([]);\r\n  }\r\n\r\n  return { suggestions, selectedSuggestion, onKeyDown, handleAutocomplete, resetSuggestions };\r\n}","import React, { useState, useRef, useEffect } from 'react';\r\nimport { AutoCompleteSuggestions } from './components/AutoCompleteSuggestions';\r\nimport { SearchInput } from './components/SearchInput';\r\nimport { useAutocomplete } from './SearchBar.hooks';\r\nimport { SearchInformation } from '@pages/SearchPage';\r\nimport './SearchBar.scss';\r\n\r\ninterface SearchBarProps {\r\n  query?: string;\r\n  onSubmit: (value: string) => void;\r\n  placeholder: string;\r\n  searchInformation?: SearchInformation[];\r\n  className?: string;\r\n  showSearchIcon?: boolean;\r\n  searchLastUpdated?: string;\r\n}\r\n\r\nexport const SearchBar = ({\r\n  query = '',\r\n  onSubmit,\r\n  placeholder,\r\n  searchInformation,\r\n  className,\r\n  showSearchIcon = true,\r\n  searchLastUpdated,\r\n}: SearchBarProps) => {\r\n  const inputRef = useRef(null);\r\n  const [value, setValue] = useState(query);\r\n  const [autocompleteFrom, setAutocompleteFrom] = useState('');\r\n\r\n  useEffect(() => {\r\n    // if query is updated from parent then update value\r\n    setValue(query);\r\n  }, [query]);\r\n\r\n  const { onKeyDown, suggestions, selectedSuggestion, handleAutocomplete, resetSuggestions } =\r\n    useAutocomplete({\r\n      query,\r\n      value,\r\n      setValueToSuggestion: (suggestion) => {\r\n        setValue(suggestion);\r\n      },\r\n      onEnterKeyPress: () => {\r\n        onSubmit(value);\r\n      },\r\n      onEscKeyPress: () => {\r\n        inputRef.current.blur();\r\n      },\r\n    });\r\n\r\n  const onChangeInput = ({ target }) => {\r\n    setValue(target.value);\r\n    setAutocompleteFrom(target.value);\r\n    handleAutocomplete(target.value);\r\n    resetSuggestions();\r\n  };\r\n\r\n  const onClearBtnClick = () => {\r\n    setValue('');\r\n    inputRef.current.focus();\r\n  };\r\n\r\n  const onAutocompleteSelection = (suggestion) => {\r\n    setValue(suggestion);\r\n    onSubmit(suggestion);\r\n  };\r\n\r\n  useEffect(() => {\r\n    inputRef.current.focus();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    // unmount suggestions when results are fetched\r\n    resetSuggestions();\r\n  }, [searchLastUpdated]);\r\n\r\n  return (\r\n    <div className={className}>\r\n      <div className='autocomplete-container'>\r\n        <SearchInput\r\n          showSearchIcon={showSearchIcon}\r\n          ref={inputRef}\r\n          placeholder={placeholder}\r\n          value={value}\r\n          onClearBtnClick={onClearBtnClick}\r\n          onKeyDown={onKeyDown}\r\n          onChange={onChangeInput}\r\n        />\r\n\r\n        {searchInformation?.length > 0 && (\r\n          <div className='l-search-panel-links'>\r\n            {searchInformation.map((item) => (\r\n              <span key={item.Text}>\r\n                <a href={item.Url}>{item.Text}</a>\r\n              </span>\r\n            ))}\r\n          </div>\r\n        )}\r\n\r\n        {suggestions.length > 0 && (\r\n          <AutoCompleteSuggestions\r\n            suggestions={suggestions}\r\n            autocompleteFrom={autocompleteFrom}\r\n            selectedSuggestion={selectedSuggestion}\r\n            onSelection={onAutocompleteSelection}\r\n          />\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","export const HEADER_HEIGHT = 88;\r\nexport const TOP_BAR_HEIGHT = 32;\r\nexport const FULL_HEADER_HEIGHT = 120;\r\nexport const pageType = {\r\n  column: 'MegaMenuColumnPage',\r\n  section: 'MegaMenuSectionPage',\r\n  otherColumn: 'MegaMenuOtherPage',\r\n};\r\n\r\ntype LangType = {\r\n  code: string;\r\n  value: string;\r\n};\r\n\r\nexport const formFieldType = {\r\n  quoteitem: \"quoteitem\",\r\n  textbox: \"textbox\",\r\n  textboxlist: \"textboxlist\",\r\n  textarea: \"textarea\",\r\n  email: \"textboxemail\",\r\n  phone: 'phonenumber',\r\n  file: \"fileupload\",\r\n  checkbox: \"checkbox\",\r\n  radio: \"radio\",\r\n  toggle: \"toggle\",\r\n  regionselection: \"regionselection\",\r\n  industryselection: \"industryselection\",\r\n  productselection: \"productselection\",\r\n  applicationselection: \"applicationselection\",\r\n  optiongroup: \"optiongroup\",\r\n};\r\nexport const langJson: LangType[] = [\r\n  {\r\n    code: 'en', // what episerver has\r\n    value: 'en', // bc7 standared\r\n  },\r\n  {\r\n    code: 'sv',\r\n    value: 'sv',\r\n  },\r\n  {\r\n    code: 'de',\r\n    value: 'de',\r\n  },\r\n  {\r\n    code: 'fr',\r\n    value: 'fr',\r\n  },\r\n  {\r\n    code: 'es',\r\n    value: 'es',\r\n  },\r\n  {\r\n    code: 'no',\r\n    value: 'no',\r\n  },\r\n  {\r\n    code: 'da',\r\n    value: 'da',\r\n  },\r\n  {\r\n    code: 'fi',\r\n    value: 'fi',\r\n  },\r\n  {\r\n    code: 'nl',\r\n    value: 'nl',\r\n  },\r\n  {\r\n    code: 'en-ca',\r\n    value: 'en-ca',\r\n  },\r\n  {\r\n    code: 'fr-ca',\r\n    value: 'fr-ca',\r\n  },\r\n  {\r\n    code: 'pt',\r\n    value: 'pt',\r\n  },\r\n  {\r\n    code: 'ru',\r\n    value: 'ru',\r\n  },\r\n  {\r\n    code: 'it',\r\n    value: 'it',\r\n  },\r\n  {\r\n    code: 'sk',\r\n    value: 'sk',\r\n  },\r\n  {\r\n    code: 'cs',\r\n    value: 'cs',\r\n  },\r\n  {\r\n    code: 'hu',\r\n    value: 'hu',\r\n  },\r\n  {\r\n    code: 'zh',\r\n    value: 'zh',\r\n  },\r\n  {\r\n    code: 'pl',\r\n    value: 'pl',\r\n  },\r\n  {\r\n    code: 'ja',\r\n    value: 'ja',\r\n  },\r\n  {\r\n    code: 'ko',\r\n    value: 'ko',\r\n  },\r\n  {\r\n    code: 'el',\r\n    value: 'el',\r\n  },\r\n  {\r\n    code: 'tr',\r\n    value: 'tr',\r\n  },\r\n  {\r\n    code: 'zh-tw',\r\n    value: 'zh-tw',\r\n  },\r\n  {\r\n    code: 'lv',\r\n    value: 'lv',\r\n  },\r\n  {\r\n    code: 'lt',\r\n    value: 'lt',\r\n  },\r\n  {\r\n    code: 'ro',\r\n    value: 'ro',\r\n  },\r\n  {\r\n    code: 'sl',\r\n    value: 'sl',\r\n  },\r\n  {\r\n    code: 'en-gb',\r\n    value: 'en-gb',\r\n  },\r\n  {\r\n    code: 'he',\r\n    value: 'he',\r\n  },\r\n  {\r\n    code: 'fr-be',\r\n    value: 'fr-be',\r\n  },\r\n  {\r\n    code: 'en-bz',\r\n    value: 'en-bz',\r\n  },\r\n  {\r\n    code: 'es-mx',\r\n    value: 'es-mx',\r\n  },\r\n  {\r\n    code: 'es-ar',\r\n    value: 'es-ar',\r\n  },\r\n  {\r\n    code: 'en-us',\r\n    value: 'en-us',\r\n  },\r\n  {\r\n    code: 'en-au',\r\n    value: 'en-au',\r\n  },\r\n  {\r\n    code: 'en-nz',\r\n    value: 'en-nz',\r\n  },\r\n  {\r\n    code: 'en-sg',\r\n    value: 'en-sg',\r\n  },\r\n  {\r\n    code: 'es-co',\r\n    value: 'es-co',\r\n  },\r\n  {\r\n    code: 'en-in',\r\n    value: 'en-in',\r\n  },\r\n  {\r\n    code: 'en-tt',\r\n    value: 'en-tt',\r\n  },\r\n  {\r\n    code: 'en-za',\r\n    value: 'en-za',\r\n  },\r\n  {\r\n    code: 'uk',\r\n    value: 'uk',\r\n  },\r\n  {\r\n    code: 'en-my',\r\n    value: 'en-my',\r\n  },\r\n  {\r\n    code: 'id',\r\n    value: 'id',\r\n  },\r\n  {\r\n    code: 'th',\r\n    value: 'th',\r\n  },\r\n  {\r\n    code: 'bg',\r\n    value: 'bg',\r\n  },\r\n  {\r\n    code: 'en-fr',\r\n    value: 'en-fr',\r\n  },\r\n];\r\n\r\n//Story 365068 - Added to check for the links that contains \"shop.alfalaval.com\"\r\nexport const productShopUrl = \"shop.alfalaval.com\";","export const hasProperty = (obj: object, key: string): boolean => {\r\n  return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\n\r\nexport const parseStringObject = (obj: Record<string, string>): Record<string, any> => {\r\n  const newObj: Record<string, any> = JSON.parse(JSON.stringify(obj));\r\n  Object.entries(newObj).forEach(([key, value]) => {\r\n    switch (value) {\r\n      case 'true':\r\n        newObj[key] = true;\r\n        break;\r\n      case 'false':\r\n        newObj[key] = false;\r\n        break;\r\n      case 'null':\r\n        newObj[key] = null;\r\n        break;\r\n      case 'undefined':\r\n        newObj[key] = undefined;\r\n        break;\r\n      default:\r\n        newObj[key] = value;\r\n        break;\r\n    }\r\n  });\r\n  return newObj;\r\n};\r\n","import { MegaMenuSegment } from '@layouts/MegaMenu/MegaMenu.types';\r\nimport { apiSlice } from '@services/apiSlice';\r\nimport { Header as endpoints } from '@services/endpoints';\r\nimport { Geolocation, MegaMenuNavigation, SubNavigation, TopMenu } from './Header.types';\r\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query';\r\nimport { sortByOrder, sortColumnOrder, sortColumnSection } from './Header.utils';\r\n\r\ninterface MegaMenuNav extends MegaMenuNavigation {\r\n  MegaMenuColumns: Record<string, MegaMenuSegment>;\r\n}\r\n\r\nconst headerApi = apiSlice.injectEndpoints({\r\n  endpoints: (build) => ({\r\n    fetchMegaMenuNavigation: build.query<MegaMenuNav, void>({\r\n      async queryFn(_arg, _queryApi, _extraOptions, fetchWithBQ) {\r\n        let columns: Record<string, MegaMenuSegment> = {};\r\n        const { data: megaMenuNavResponse, error: megaMenuNavError } = await fetchWithBQ({\r\n          url: `${endpoints.fetchMegaMenuNavigation}/${window.lang}`,\r\n        });\r\n\r\n        if (megaMenuNavError) return { error: megaMenuNavError as FetchBaseQueryError };\r\n\r\n        const megaMenuNav = megaMenuNavResponse as MegaMenuNavigation;\r\n\r\n        if (megaMenuNav.MainMenuLinks) {\r\n          const columnsResponses = await Promise.all(\r\n            megaMenuNav.MainMenuLinks.map(async (_item, index) => {\r\n              return await fetchWithBQ({\r\n                url: endpoints.fetchMegaMenuColumn,\r\n                params: { language: window.lang, index },\r\n              });\r\n            })\r\n          );\r\n\r\n          columnsResponses.forEach((response) => {\r\n            const megaMenuSegment = response.data[0] as MegaMenuSegment;\r\n\r\n            if (megaMenuSegment.Columns) {\r\n              megaMenuSegment.Columns.sort(sortByOrder);\r\n              megaMenuSegment.Columns.forEach((data) => {\r\n                if (data.PageTypeName == 'MegaMenuOtherPage' && !data.IsOtherPageMainColumn) {\r\n                  sortColumnSection(data);\r\n                } else {\r\n                  sortColumnOrder(data.ColumnAndSection);\r\n                }\r\n              });\r\n            }\r\n\r\n            columns[megaMenuSegment.ContainerLink] = megaMenuSegment;\r\n          });\r\n        }\r\n\r\n        return { data: { ...megaMenuNav, MegaMenuColumns: columns } };\r\n      },\r\n    }),\r\n    fetchSubNavigation: build.query<SubNavigation, void>({\r\n      query: () => ({\r\n        url: endpoints.fetchSubNavigation,\r\n        params: { lang: window.lang, pageId: window.pageId },\r\n      }),\r\n    }),\r\n    fetchGeolocation: build.query<Geolocation, void>({\r\n      query: () => ({\r\n        url: endpoints.fetchGeolocation,\r\n        params: { language: window.lang },\r\n      }),\r\n    }),\r\n    fetchTopMenu: build.query<TopMenu, void>({\r\n      query: () => ({\r\n        url: endpoints.fetchTopMenu + `${window.lang}/${window.pageId}`,\r\n      }),\r\n    }),\r\n  }),\r\n  overrideExisting: false,\r\n});\r\n\r\nexport const {\r\n  useFetchMegaMenuNavigationQuery,\r\n  useFetchSubNavigationQuery,\r\n  useLazyFetchGeolocationQuery,\r\n  useFetchTopMenuQuery,\r\n} = headerApi;\r\n","import { langJson } from '@helpers/consts';\r\nimport { MegaMenuColumn, MegaMenuColumnSection } from '@layouts/MegaMenu/MegaMenu.types';\r\n\r\nexport function activeClass(defaultClass, cond, crossIcon = true) {\r\n  return cond && crossIcon ? `${defaultClass} active` : defaultClass;\r\n}\r\n\r\nexport function sortArray<T extends { Name?: string; Title?: string }>(arr: T[]): T[] {\r\n  const localLang = window.lang;\r\n  const lang = langJson.find((element) => element.code === localLang.toLowerCase());\r\n  const collator = new Intl.Collator(lang?.value || 'en', { sensitivity: 'variant' });\r\n\r\n  return arr.sort((a, b) => {\r\n    const strOne = a.Title ?? a.Name;\r\n    const strTwo = b.Title ?? b.Name;\r\n\r\n    return collator.compare(strOne, strTwo);\r\n  });\r\n}\r\n\r\nexport const sortByOrder = (a: MegaMenuColumn, b: MegaMenuColumn) => {\r\n  return (\r\n    +(b.SortColumnOrder != null) - +(a.SortColumnOrder != null) ||\r\n    a.SortColumnOrder - b.SortColumnOrder\r\n  );\r\n};\r\n\r\nexport const sortColumnSection = (data: MegaMenuColumn) => {\r\n  const columnsection = sortArray(data.ColumnAndSection);\r\n  columnsection.forEach((sec) => {\r\n    if (sec.Sections) {\r\n      const Sections = sortArray(sec.Sections);\r\n      Sections.forEach((e) => {\r\n        if (e.Children) sortArray(e.Children);\r\n      });\r\n    }\r\n    if (sec.Children) sortArray(sec.Children);\r\n  });\r\n};\r\n\r\nexport const sortColumnOrder = (columnsection: MegaMenuColumnSection[]) => {\r\n  columnsection.sort(function (a, b) {\r\n    return (\r\n      +(b.mobileSortColumnOrder != null) - +(a.mobileSortColumnOrder != null) ||\r\n      +(b.SortColumnOrder != null) - +(a.SortColumnOrder != null) ||\r\n      +(b.SortSectionOrder != null) - +(a.SortSectionOrder != null) ||\r\n      a.mobileSortColumnOrder - b.mobileSortColumnOrder ||\r\n      a.SortColumnOrder - b.SortColumnOrder ||\r\n      a.SortSectionOrder - b.SortSectionOrder\r\n    );\r\n  });\r\n};\r\n","import { apiSlice } from '@services/apiSlice';\r\nimport { Search as endpoints } from '@services/endpoints';\r\nimport { SearchResult } from './SearchPage.types';\r\n\r\ninterface SearchQueryParams {\r\n  page: number;\r\n  query: string;\r\n  orderBy: string;\r\n  category: string;\r\n}\r\n\r\nconst searchApi = apiSlice\r\n  .injectEndpoints({\r\n    endpoints: (build) => ({\r\n      doSearch: build.query<SearchResult, SearchQueryParams>({\r\n        query: (params) => ({\r\n          url: endpoints.doSearch,\r\n          params: { lang: window.lang, ...params },\r\n        }),\r\n      }),\r\n      doSearchAutocomplete: build.query<string[], string>({\r\n        query: (searchString) => ({\r\n          url: endpoints.doSearchAutocomplete,\r\n          params: { prefix: searchString }\r\n        }),\r\n      }),\r\n    }),\r\n    overrideExisting: false,\r\n  })\r\n\r\nexport const { useLazyDoSearchAutocompleteQuery, useDoSearchQuery } = searchApi;","export const Breadcrumb = {\r\n  fetchBreadcrumb: '/webapi/Breadcrumb/Get',\r\n};\r\n\r\nexport const Footer = {\r\n  fetchFooter: '/api/footer',\r\n};\r\n\r\nexport const CountrySelector = {\r\n  fetchCountrySelectList: '/webapi/CountrySelector/Get',\r\n};\r\n\r\nexport const RelatedTabs = {\r\n  fetchRelatedTabs: '/webapi/RelatedTabs/Get',\r\n  relatedTabs: '/webapi/RelatedTabs/GetTabs', // NOT IN USE\r\n};\r\n\r\nexport const Search = {\r\n  doSearch: '/webapi/SearchApi/SearchFor',\r\n  doSearchAutocomplete: '/webapi/SearchApi/GetAutocomplete',\r\n};\r\n\r\nexport const NewsAndStories = {\r\n  fetchNewsAndStoriesData: '/webapi/NewsListingApi/GetNewsListItems',\r\n  fetchNews: '/webapi/NewsListingApi/GetNewsList',\r\n  fetchStories: '/webapi/StoriesList/Get',\r\n};\r\n\r\nexport const Webinars = {\r\n  fetchWebinarBanner: '/webapi/WebinarLandingPage/Get',\r\n  fetchWebinarList: '/webapi/WebinarPage/Get',\r\n};\r\n\r\nexport const Header = {\r\n  fetchHeader: '/webapi/Header/Get', //NOT IN USE\r\n  fetchSubNavigation: '/webapi/SubNavigation/Get',\r\n  fetchMegaMenuNavigation: '/api/mainmenu',\r\n  fetchGeolocation: '/api/Geolocation',\r\n  fetchTopMenu: '/api/TopNavigation/',\r\n  fetchMegaMenuColumn: '/webapi/menuitems/columns',\r\n};\r\n\r\nexport const Stories = {\r\n  fetchStories: '/webapi/StoriesList/Get',\r\n};\r\n\r\nexport const News = {\r\n  fetchNews: '/webapi/NewsListPage/Get',\r\n};\r\n\r\nexport const Vacancies = {\r\n  fetchVacancies: '/webapi/Vacancy/Get', // NOT IN USE\r\n};\r\n\r\nexport const Webshop = {\r\n  fetchWebshop: '/webapi/WebShop/Get', // NOT IN USE\r\n};\r\n\r\nexport const ContactUs = {\r\n  fetchContactUsForm: '/webapi/ContactUsForm/GetForm',\r\n  fetchFindOfficeData: '/webapi/CountriesCategories/Get',\r\n  fetchEnquiryForm: '/webapi/contactus/getenquiryform',\r\n  fetchEnquirySerialLinkData: '/webapi/contactus/GetModalPopUp',\r\n  submitEnquiryForm: '/Quote/ProcessForm',\r\n  fetchEnquiryApplicationList: '/webapi/contactus/GetIndustryApplication',\r\n};\r\n\r\nexport const InvestorRelations = {\r\n  fetchPressReleaseFilterData: '/api/v1/ir/pressrelease',\r\n  fetchInvestorRelationsNews: '/api/v1/ir/news',\r\n  fetchInvestorRelationsPage: '/api/v1/ir/page2',\r\n  fetchInvestorRelationsMenu: '/api/v1/ir/menu2',\r\n  makeSubscription: '//publish.ne.cision.com/Subscription/SubscribeWithCaptcha',\r\n};\r\n\r\nexport const CoolCalc = {\r\n  getCoolCalc: '/webapi/CoolCalc/Get', // NOT IN USE\r\n  shareCoolCalc: '/webapi/CoolCalc/Save',\r\n};\r\n\r\nexport const Hexpert = {\r\n  fetchHexpertPage: '/api/v1/hex/page',\r\n  getAntiForgeryToken: '/api/v1/hex/GetAntiForgery',\r\n  submitHexpertForm: '/EPiServer.Forms/DataSubmit/Submit',\r\n  createHexpertPdf: '/api/v1/hex/CreatePdf',\r\n  getIsMatchingProducts: '/api/v1/hex/IsMatchingProduct',\r\n  getHexpertResult: '/api/v1/hex/GetResult',\r\n  mailResult: '/api/v1/hex/SendMail',\r\n};\r\n\r\nexport const SafetyDatasheet = {\r\n  fetchSafetyDatasheet: '/webapi/SafetyDataSheet/GetSafetyDataSheetResult',\r\n};\r\n"],"names":["AutoCompleteSuggestions","suggestions","onSelection","selectedSuggestion","autocompleteFrom","className","map","suggestion","index","key","onClick","substr","length","SearchInput","forwardRef","showSearchIcon","placeholder","value","onChange","onKeyDown","onClearBtnClick","ref","type","autoCapitalize","autoComplete","autoCorrect","keyCodes","useAutocomplete","query","onEnterKeyPress","onEscKeyPress","setValueToSuggestion","getAutocompleteSuggestions","setSuggestions","useState","setSelectedSuggestion","useEffect","handleAutocomplete","useCallback","async","input","searchTerm","normalizeInput","data","suggestionsData","filteredSugestions","filter","match","RegExp","replace","toLowerCase","trim","e","which","keyCode","preventDefault","lastItem","nextItem","doSelectSuggestion","resetSuggestions","SearchBar","onSubmit","searchInformation","searchLastUpdated","inputRef","useRef","setValue","setAutocompleteFrom","current","blur","focus","target","item","Text","href","Url","formFieldType","quoteitem","textbox","textboxlist","textarea","email","phone","file","checkbox","radio","toggle","regionselection","industryselection","productselection","applicationselection","optiongroup","langJson","code","productShopUrl","hasProperty","obj","Object","prototype","hasOwnProperty","call","parseStringObject","newObj","JSON","parse","stringify","entries","forEach","undefined","headerApi","endpoints","build","fetchMegaMenuNavigation","_arg","_queryApi","_extraOptions","fetchWithBQ","columns","megaMenuNavResponse","error","megaMenuNavError","url","window","lang","megaMenuNav","MainMenuLinks","Promise","all","_item","params","language","response","megaMenuSegment","Columns","sort","PageTypeName","IsOtherPageMainColumn","ColumnAndSection","ContainerLink","MegaMenuColumns","fetchSubNavigation","pageId","fetchGeolocation","fetchTopMenu","overrideExisting","useFetchMegaMenuNavigationQuery","useFetchSubNavigationQuery","useLazyFetchGeolocationQuery","useFetchTopMenuQuery","activeClass","defaultClass","cond","crossIcon","sortArray","arr","localLang","element","collator","Intl","Collator","sensitivity","a","b","strOne","Title","Name","strTwo","compare","sortByOrder","SortColumnOrder","sortColumnSection","sec","Sections","Children","sortColumnOrder","columnsection","mobileSortColumnOrder","SortSectionOrder","searchApi","doSearch","doSearchAutocomplete","searchString","prefix","useLazyDoSearchAutocompleteQuery","useDoSearchQuery","Breadcrumb","fetchBreadcrumb","Footer","fetchFooter","CountrySelector","fetchCountrySelectList","RelatedTabs","fetchRelatedTabs","relatedTabs","Search","NewsAndStories","fetchNewsAndStoriesData","fetchNews","fetchStories","Webinars","fetchWebinarBanner","fetchWebinarList","Header","fetchHeader","fetchMegaMenuColumn","Stories","News","ContactUs","fetchContactUsForm","fetchFindOfficeData","fetchEnquiryForm","fetchEnquirySerialLinkData","submitEnquiryForm","fetchEnquiryApplicationList","InvestorRelations","fetchPressReleaseFilterData","fetchInvestorRelationsNews","fetchInvestorRelationsPage","fetchInvestorRelationsMenu","makeSubscription","CoolCalc","getCoolCalc","shareCoolCalc","Hexpert","fetchHexpertPage","getAntiForgeryToken","submitHexpertForm","createHexpertPdf","getIsMatchingProducts","getHexpertResult","mailResult","SafetyDatasheet","fetchSafetyDatasheet"],"sourceRoot":""}