{"version":3,"file":"stories.0762b8fcdb5d6ea68677.chunk.js","mappings":"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","sources":["webpack://AlfaLaval/./components/LoadingSpinner/LoadingSpinner.tsx","webpack://AlfaLaval/./components/Select/components/CategoryList.tsx","webpack://AlfaLaval/./components/Select/components/SubCategoriesList.tsx","webpack://AlfaLaval/./components/Select/Select.tsx","webpack://AlfaLaval/./components/Select/Select.hooks.ts","webpack://AlfaLaval/./components/SimpleSelect/SimpleSelect.tsx","webpack://AlfaLaval/./helpers/stringHelpers.ts","webpack://AlfaLaval/./hooks/useOutsideClick.tsx","webpack://AlfaLaval/./pages/Stories/components/StoriesFilter/StoriesFilter.helpers.ts","webpack://AlfaLaval/./pages/Stories/Stories.helpers.ts","webpack://AlfaLaval/./pages/Stories/components/StoriesFilter/StoriesFilter.tsx","webpack://AlfaLaval/./pages/Stories/components/StoriesList.tsx","webpack://AlfaLaval/./pages/Stories/Stories.service.ts","webpack://AlfaLaval/./pages/Stories/Stories.tsx","webpack://AlfaLaval/./pages/Stories/index.ts","webpack://AlfaLaval/./pages/Stories/Stories.hooks.ts","webpack://AlfaLaval/./services/endpoints.ts"],"sourcesContent":["import React from \"react\";\r\nimport \"./LoadingSpinner.scss\";\r\n\r\nexport const LoadingSpinner = () => {\r\n return (\r\n
\r\n \"Loading\"\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { SelectItem } from '../Select.types';\r\n\r\ninterface CategoryListProps {\r\n name: string;\r\n sub: string;\r\n selectableTitle: boolean;\r\n onClickSelectableTitle?: () => void;\r\n onSelect: (item: SelectItem[]) => void;\r\n defaultTitle: string;\r\n list: SelectItem[];\r\n}\r\n\r\nexport const CategoryList = ({\r\n name,\r\n sub,\r\n selectableTitle,\r\n onClickSelectableTitle,\r\n onSelect,\r\n defaultTitle,\r\n list,\r\n}: CategoryListProps) => {\r\n return (\r\n
\r\n
  • \r\n {defaultTitle}\r\n
  • \r\n {...list.map((item, index) => (\r\n
  • onSelect(item[sub])}>\r\n {item[name]}\r\n \r\n
  • \r\n ))}\r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\nimport { SelectItem } from '../Select.types'\r\n\r\ninterface SubCategoriesListProps {\r\n name: string;\r\n backLabel?: string;\r\n onClickBack?: () => void;\r\n list: SelectItem[];\r\n onSelect: (item: SelectItem) => void;\r\n}\r\n\r\nexport const SubCategoriesList = ({\r\n name,\r\n backLabel,\r\n onClickBack,\r\n list,\r\n onSelect,\r\n}: SubCategoriesListProps) => {\r\n return (\r\n
    \r\n
  • \r\n \r\n \r\n {backLabel || 'Back'}\r\n \r\n
  • \r\n {...list.map((item, index) => (\r\n
  • onSelect(item)}>\r\n {item[name]}\r\n
  • \r\n ))}\r\n
    \r\n );\r\n};\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { CategoryList } from './components/CategoryList';\r\nimport { SubCategoriesList } from './components/SubCategoriesList';\r\nimport { useReset } from './Select.hooks';\r\nimport { getComputerName } from '@helpers/stringHelpers';\r\nimport { SelectItem } from './Select.types';\r\nimport './Select.scss';\r\n\r\ninterface List {\r\n [key: string]: Array | string;\r\n Id: string;\r\n Name: string;\r\n}\r\n\r\ninterface SelectProps {\r\n name: string;\r\n sub: string;\r\n resetTime?: number | null;\r\n selectFunction: (item: SelectItem) => void;\r\n defaultTitle: string;\r\n selectableTitle?: boolean;\r\n title: string;\r\n list: List[];\r\n label?: string;\r\n backLabel?: string;\r\n required?: boolean;\r\n}\r\n\r\nexport const Select = ({\r\n name,\r\n sub,\r\n resetTime,\r\n selectFunction,\r\n defaultTitle,\r\n selectableTitle,\r\n required = false,\r\n title,\r\n list,\r\n label = '',\r\n backLabel,\r\n}: SelectProps) => {\r\n const [isShowing, setIsShowing] = useState(false);\r\n const [selectedCategory, setSelectedCategory] = useState(null);\r\n const [selectedCategoryItem, setSelectedCategoryItem] = useState(null);\r\n\r\n const doReset = () => {\r\n setIsShowing(false);\r\n setSelectedCategory(null);\r\n setSelectedCategoryItem(null);\r\n };\r\n\r\n useReset(resetTime, doReset);\r\n\r\n useEffect(() => {\r\n doReset();\r\n }, [list]);\r\n\r\n const selectRef = useRef(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 selectCategory = (category: SelectItem[]) => {\r\n setSelectedCategory(category);\r\n };\r\n\r\n const selectCategoryItem = (item: SelectItem) => {\r\n selectFunction(item);\r\n setSelectedCategoryItem(item);\r\n setIsShowing(false);\r\n setSelectedCategory(null);\r\n };\r\n\r\n const onClickSelectableTitle = () => {\r\n if (selectableTitle) {\r\n selectFunction(null);\r\n doReset();\r\n }\r\n };\r\n\r\n const back = () => {\r\n setSelectedCategory(null);\r\n };\r\n\r\n return (\r\n
    \r\n {label && (\r\n \r\n )}\r\n\r\n
    \r\n
    \r\n {selectedCategoryItem ? selectedCategoryItem[name] : title}\r\n \r\n
    \r\n {isShowing && (\r\n
    \r\n
      \r\n {!selectedCategory ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useReset = (resetTime: number | null, doReset: () => void) => {\r\n const [reset, setReset] = useState(resetTime);\r\n\r\n useEffect(() => {\r\n if (resetTime && resetTime !== reset) {\r\n doReset();\r\n setReset(resetTime);\r\n }\r\n }, [resetTime]);\r\n};\r\n","import React, { useRef, useState, useMemo } from 'react';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { getComputerName } from '@helpers/stringHelpers';\r\nimport './SimpleSelect.scss';\r\n\r\nexport interface SimpleSelectProps {\r\n disabled?: boolean;\r\n selectFunction: (item: T) => void;\r\n list: T[];\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n title: string;\r\n}\r\n\r\nexport const SimpleSelect = ({\r\n disabled = false,\r\n selectFunction,\r\n list,\r\n name,\r\n label,\r\n required = false,\r\n title,\r\n}: SimpleSelectProps) => {\r\n const [isShowing, setIsShowing] = useState(false);\r\n\r\n const selectRef = useRef(null);\r\n const handleClickOutside = () => {\r\n setIsShowing(false);\r\n };\r\n useOutsideClick(selectRef, handleClickOutside);\r\n\r\n const handleClick = () => {\r\n if (!disabled) {\r\n setIsShowing(!isShowing);\r\n }\r\n };\r\n\r\n const onSelect = (item: T) => {\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
  • onSelect(item)}>\r\n {name ? item[name] : item}\r\n
  • \r\n ))\r\n : [];\r\n }, [list, name]);\r\n\r\n return (\r\n
    \r\n {label && (\r\n \r\n )}\r\n
    \r\n
    \r\n {title}\r\n \r\n
    \r\n {isShowing && (\r\n
    \r\n
      {listItems}
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n","// replaces all spaces with -\r\nexport const getComputerName = (str: string): string => {\r\n if (!str) return '';\r\n const computerName = str.replace(/\\s+/g, '-').toLowerCase();\r\n return computerName;\r\n};\r\n\r\nexport const truncateString = (str: string, limit: number): string => {\r\n if (!str) return '';\r\n let truncated = str.substring(0, limit);\r\n truncated += '...';\r\n return truncated;\r\n};\r\n\r\nexport const normalizeInput = (value: string): string => {\r\n return value.toLowerCase().trim();\r\n};\r\n\r\nexport const interpolateString = (str: string, ...args: string[]): string => {\r\n let interpolatedString = str;\r\n args.forEach((arg, index) => {\r\n interpolatedString = interpolatedString.replace(`{${index}}`, arg);\r\n });\r\n return interpolatedString;\r\n};\r\n","import { useEffect } from \"react\";\r\n\r\nexport const useOutsideClick = (\r\n ref: React.RefObject,\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 { CountryItem, IndustryItem, SublistItem } from '@type/common';\r\n\r\nexport const getItemFromSubList = (\r\n id: number,\r\n list: CountryItem[] | IndustryItem[],\r\n subListName: string\r\n): SublistItem => {\r\n let returnItem: SublistItem = null;\r\n\r\n list.forEach((item) => {\r\n item[subListName].forEach((subListItem: SublistItem) => {\r\n if (parseInt(subListItem.Id) === id) returnItem = subListItem;\r\n });\r\n });\r\n\r\n return returnItem;\r\n};\r\n\r\nexport const getNameFromSubList = (\r\n id: number,\r\n list: CountryItem[] | IndustryItem[],\r\n subListName: string\r\n): string => {\r\n return getItemFromSubList(id, list, subListName)?.Name || '';\r\n};\r\n\r\nexport const getNameFromList = (id: number, list: SublistItem[] | IndustryItem[]): string => {\r\n return getItemFromList(id, list)?.Name || '';\r\n};\r\n\r\nexport const getItemFromList = (\r\n id: number,\r\n list: CountryItem[] | IndustryItem[] | SublistItem[]\r\n): IndustryItem | SublistItem => {\r\n let returnItem: IndustryItem | SublistItem = null;\r\n\r\n list.forEach((item) => {\r\n if (parseInt(item.Id) === id) returnItem = item;\r\n });\r\n return returnItem;\r\n};\r\n","import { StoriesFilter } from './Stories.types';\r\n\r\nexport const setURLfromFilters = (f: Omit) => {\r\n const url = new URL(window.location.href);\r\n url.searchParams.set('country', f.country?.toString() || '0');\r\n url.searchParams.set('industry', f.industry?.toString() || '0');\r\n url.searchParams.set('subIndustry', f.subIndustry?.toString() || '0');\r\n window.history.pushState({}, null, url);\r\n};\r\n\r\nexport const getFiltersFromURL = (): Omit => {\r\n const url = new URL(window.location.href);\r\n\r\n return {\r\n country: +url.searchParams.get('country') || 0,\r\n industry: +url.searchParams.get('industry') || 0,\r\n subIndustry: +url.searchParams.get('subIndustry') || 0,\r\n };\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Select } from '@components/Select';\r\nimport { SimpleSelect } from '@components/SimpleSelect';\r\nimport { getNameFromList, getNameFromSubList } from './StoriesFilter.helpers';\r\nimport { StoriesFilter as StoriesFilterType, StoriesPage } from '@pages/Stories/Stories.types';\r\nimport { getFiltersFromURL, setURLfromFilters } from '@pages/Stories/Stories.helpers';\r\n\r\ntype StoriesFilterItems = Omit;\r\n\r\nconst defaultFilters: StoriesFilterItems = {\r\n industry: 0,\r\n subIndustry: 0,\r\n country: 0,\r\n};\r\ninterface StoriesFilterProps {\r\n i18n: Record;\r\n storiesPageData: StoriesPage;\r\n onStoriesUpdate: (filters: StoriesFilterItems) => void;\r\n}\r\n\r\nexport const StoriesFilter = ({ i18n, storiesPageData, onStoriesUpdate }: StoriesFilterProps) => {\r\n const [filters, setFilters] = useState(getFiltersFromURL());\r\n const [resetCount, setResetCount] = useState(0);\r\n\r\n const subIndustriesList =\r\n storiesPageData.Industries.find((i) => +i.Id === filters.industry)?.SubIndustries || [];\r\n\r\n const setFilter = (newFilter: Partial) => {\r\n setFilters({\r\n ...filters,\r\n ...newFilter,\r\n });\r\n };\r\n\r\n const onResetFilters = () => {\r\n setFilters(defaultFilters);\r\n setResetCount((resetCount) => resetCount + 1);\r\n };\r\n\r\n const onSaveFilters = () => {\r\n onStoriesUpdate(filters);\r\n setURLfromFilters(filters);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n setFilter({\r\n industry: +value?.Id || 0,\r\n subIndustry: 0,\r\n });\r\n }}\r\n />\r\n\r\n setFilter({ subIndustry: +value?.Id || 0 })}\r\n />\r\n\r\n {storiesPageData.Countries && storiesPageData.Countries.length > 0 && (\r\n setFilter({ country: +value?.Id || 0 })}\r\n resetTime={resetCount}\r\n />\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\nimport { LoadingSpinner } from '@components/LoadingSpinner';\r\nimport { Story } from '../Stories.types';\r\n\r\ninterface StoriesListProps {\r\n list: Story[];\r\n i18n: Record;\r\n isLoading: boolean;\r\n isUninitialized: boolean;\r\n}\r\n\r\nexport const StoriesList = ({ list, i18n, isLoading, isUninitialized }: StoriesListProps) => {\r\n const firstSection = list.slice(0, 2).map((item, index) => (\r\n \r\n ));\r\n\r\n const secondSection = list.slice(2).map((item, index) => (\r\n \r\n ));\r\n\r\n if (isUninitialized) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {list.length == 0 ? (\r\n i18n.NoResults\r\n ) : (\r\n <>\r\n
    {firstSection}
    \r\n
    {secondSection}
    \r\n \r\n )}\r\n {isLoading && }\r\n
    \r\n
    \r\n );\r\n};\r\n","import { apiSlice } from '@services/apiSlice';\r\nimport { Stories as endpoints } from '@services/endpoints';\r\nimport { StoriesPage, StoriesListResponse, StoriesList } from './Stories.types';\r\n\r\ninterface StoriesQueryParams {\r\n page: number;\r\n country: number;\r\n industry: number;\r\n subIndustry: number;\r\n}\r\n\r\nconst storiesApi = apiSlice.injectEndpoints({\r\n endpoints: (build) => ({\r\n fetchStoriesPageData: build.query({\r\n query: () => ({\r\n url: endpoints.fetchStories,\r\n params: { language: window.lang, pageId: window.pageId },\r\n }),\r\n }),\r\n fetchStories: build.query({\r\n query: (params) => ({\r\n url: endpoints.fetchStories,\r\n params: { language: window.lang, pageId: window.pageId, ...params },\r\n }),\r\n transformResponse: (response: StoriesListResponse) => {\r\n return {\r\n StoriesListItems: response.storiesListItems,\r\n HasNextPage: response.HasNextPage,\r\n };\r\n },\r\n }),\r\n }),\r\n overrideExisting: false,\r\n});\r\n\r\nexport const { useLazyFetchStoriesQuery, useFetchStoriesPageDataQuery } = storiesApi;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { StoriesFilter } from './components/StoriesFilter';\r\nimport { StoriesList } from './components/StoriesList';\r\nimport './Stories.scss';\r\nimport { getFiltersFromURL } from './Stories.helpers';\r\nimport { useLoadMoreStories } from './Stories.hooks';\r\nimport {\r\n StoriesFilter as StoriesFilterType,\r\n StoriesList as StoriesListType,\r\n} from './Stories.types';\r\nimport { useFetchStoriesPageDataQuery, useLazyFetchStoriesQuery } from './Stories.service';\r\nimport { LoadingSpinner } from '@components/LoadingSpinner';\r\n\r\nconst StoriesPage = () => {\r\n const [storiesList, setStoriesList] = useState({\r\n StoriesListItems: [],\r\n HasNextPage: true,\r\n });\r\n\r\n const [page, setPage] = useState(1);\r\n const { data: storiesPage, isLoading: isLoadingPage } = useFetchStoriesPageDataQuery();\r\n const [doFetchStories, { data: stories, isFetching: isLoadingStories, isUninitialized }] =\r\n useLazyFetchStoriesQuery();\r\n\r\n useLoadMoreStories({\r\n hasNextPage: stories?.HasNextPage,\r\n isLoadingStories,\r\n onLoadMoreStories: () => {\r\n const nextPage = page + 1;\r\n setPage(nextPage);\r\n },\r\n });\r\n\r\n const onSaveFilters = (filters: Omit) => {\r\n setPage(1);\r\n doFetchStories({ ...filters, page: 1 }).then(({ data }) => setStoriesList(data));\r\n };\r\n\r\n useEffect(() => {\r\n const filters = getFiltersFromURL();\r\n\r\n if (!isUninitialized && page === 1) return;\r\n // appending new items to the list\r\n doFetchStories({ ...filters, page }).then(({ data }) => {\r\n setStoriesList((storiesList) => ({\r\n HasNextPage: data?.HasNextPage,\r\n StoriesListItems: [...storiesList.StoriesListItems, ...data?.StoriesListItems],\r\n }));\r\n });\r\n }, [page]);\r\n\r\n if (isLoadingPage) {\r\n return ;\r\n }\r\n return (\r\n <>\r\n

    {storiesPage.I18n.PageTitle}

    \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default StoriesPage;\r\n","import Stories from './Stories';\r\nexport default Stories;","import { useScrollPosition } from '@contexts/ScrollContext';\r\nimport { useEffect, useRef } from 'react';\r\n\r\ninterface UseLoadMoreStoriesProps {\r\n isLoadingStories: boolean;\r\n hasNextPage: boolean;\r\n onLoadMoreStories: () => void;\r\n}\r\n\r\nexport const useLoadMoreStories = ({\r\n isLoadingStories,\r\n hasNextPage,\r\n onLoadMoreStories,\r\n}: UseLoadMoreStoriesProps) => {\r\n const { scrollHeight } = useScrollPosition();\r\n const storiesDivRef = useRef(null);\r\n\r\n useEffect(() => {\r\n storiesDivRef.current = document.getElementById('customer-story-list-page') as HTMLDivElement;\r\n }, []);\r\n\r\n useEffect(() => {\r\n const storiesListHeight = storiesDivRef.current?.scrollHeight;\r\n if (\r\n storiesListHeight &&\r\n !isLoadingStories &&\r\n hasNextPage &&\r\n scrollHeight >= storiesListHeight\r\n ) {\r\n onLoadMoreStories();\r\n }\r\n }, [scrollHeight]);\r\n};\r\n","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":["LoadingSpinner","className","src","alt","CategoryList","name","sub","selectableTitle","onClickSelectableTitle","onSelect","defaultTitle","list","key","onClick","map","item","index","SubCategoriesList","backLabel","onClickBack","Select","resetTime","selectFunction","required","title","label","isShowing","setIsShowing","useState","selectedCategory","setSelectedCategory","selectedCategoryItem","setSelectedCategoryItem","doReset","reset","setReset","useEffect","useReset","selectRef","useRef","useOutsideClick","ref","htmlFor","category","SimpleSelect","disabled","listItems","useMemo","getComputerName","str","replace","toLowerCase","truncateString","limit","truncated","substring","interpolateString","args","interpolatedString","forEach","arg","handler","handleClick","e","current","contains","target","document","addEventListener","removeEventListener","getNameFromSubList","id","subListName","returnItem","subListItem","parseInt","Id","getItemFromSubList","Name","getNameFromList","getItemFromList","getFiltersFromURL","url","URL","window","location","href","country","searchParams","get","industry","subIndustry","defaultFilters","StoriesFilter","i18n","storiesPageData","onStoriesUpdate","filters","setFilters","resetCount","setResetCount","subIndustriesList","Industries","find","i","SubIndustries","setFilter","newFilter","ShowAll","value","Subindustries","Countries","length","Back","Country","ShowAllRegions","ResetAll","f","set","toString","history","pushState","setURLfromFilters","Update","StoriesList","isLoading","isUninitialized","firstSection","slice","ContentLink","loading","Image","ImageAlt","height","width","Title","Introduction","secondSection","storiesApi","apiSlice","endpoints","build","fetchStoriesPageData","query","params","language","lang","pageId","fetchStories","transformResponse","response","StoriesListItems","storiesListItems","HasNextPage","overrideExisting","useLazyFetchStoriesQuery","useFetchStoriesPageDataQuery","storiesList","setStoriesList","page","setPage","data","storiesPage","isLoadingPage","doFetchStories","stories","isFetching","isLoadingStories","hasNextPage","onLoadMoreStories","scrollHeight","storiesDivRef","getElementById","storiesListHeight","useLoadMoreStories","then","I18n","PageTitle","Breadcrumb","fetchBreadcrumb","Footer","fetchFooter","CountrySelector","fetchCountrySelectList","RelatedTabs","fetchRelatedTabs","relatedTabs","Search","doSearch","doSearchAutocomplete","NewsAndStories","fetchNewsAndStoriesData","fetchNews","Webinars","fetchWebinarBanner","fetchWebinarList","Header","fetchHeader","fetchSubNavigation","fetchMegaMenuNavigation","fetchGeolocation","fetchTopMenu","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":""}