{"version":3,"file":"static/js/marketReportsListing.0472b2e6.js","mappings":"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","sources":["webpack://tig-front/./src/pages/MarketReportsListingPage/components/VPOption/VPOption.module.scss?9e7d","pages/MarketReportsListingPage/components/VPOption/VPOption.tsx","webpack://tig-front/./src/pages/MarketReportsListingPage/components/VPSection/VPSection.module.scss?6f19","pages/MarketReportsListingPage/components/VPSection/VPSection.tsx","assets/icons/search.svg","webpack://tig-front/./src/pages/MarketReportsListingPage/components/SearchBar/SearchBarSuggestions/SearchBarSuggestions.module.scss?628d","pages/MarketReportsListingPage/components/SearchBar/SearchBarSuggestions/SearchBarSuggestions.tsx","helpers/useDebouncedValue.ts","webpack://tig-front/./src/pages/MarketReportsListingPage/components/SearchBar/SearchBarInput/SearchBarInput.module.scss?370e","pages/MarketReportsListingPage/components/SearchBar/SearchBarInput/SearchBarInput.tsx","webpack://tig-front/./src/pages/MarketReportsListingPage/components/SearchBar/SearchBar.module.scss?15a2","pages/MarketReportsListingPage/components/SearchBar/SearchBar.tsx","api/search.ts","webpack://tig-front/./src/pages/MarketReportsListingPage/MarketReportsListingPage.module.scss?d82f","pages/MarketReportsListingPage/MarketReportsListingPage.tsx","../temp/MarketReportsListingPage.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"title\":\"cy_cX\",\"description\":\"cy_c\"};","import React, { FC } from 'react';\nimport styles from './VPOption.module.scss';\n\nexport interface VPOptionProps {\n title: string;\n description: string;\n className?: string;\n}\n\nconst VPOption: FC = ({\n description, title, className,\n}: VPOptionProps) => (\n
\n
{title}
\n
{description}
\n
\n);\n\nexport default VPOption;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"P_dt\",\"option\":\"P_fs\"};","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport key from 'weak-key';\nimport VPOption, { VPOptionProps } from '@/pages/MarketReportsListingPage/components/VPOption/VPOption';\nimport grid from '@/common/css/grid.module.scss';\nimport styles from './VPSection.module.scss';\n\ninterface VPSectionProps {\n options: VPOptionProps[];\n}\n\nconst VPSection: FC = ({\n options,\n}: VPSectionProps) => {\n if (!options?.length) {\n return null;\n }\n\n const optionsView = options.map((option) => (\n \n ));\n\n return (\n
\n
\n {optionsView}\n
\n
\n );\n};\n\nexport default VPSection;\n","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgSearch = (_ref, ref) => {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n role: \"img\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 11,\n height: 11,\n x: 1,\n y: 1,\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n rx: 5.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.757 11.172 l1.415-1.415 4.95 4.95-1.415 1.414z\",\n fill: \"currentColor\",\n stroke: \"none\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgSearch);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/search.4abbb248177c6d4945348e224737aa7e.svg\";","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"dw_g\",\"item\":\"dw_ft\"};","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport key from 'weak-key';\nimport styles from './SearchBarSuggestions.module.scss';\n\nexport interface SearchBarSuggestion {\n title: string;\n placeId: string;\n}\n\ninterface SearchBarSuggestionsProps {\n items: SearchBarSuggestion[];\n onItemClick: (suggestion: SearchBarSuggestion) => void;\n className?: string;\n}\n\nconst SearchBarSuggestions: FC = ({\n className, items, onItemClick,\n}: SearchBarSuggestionsProps) => (\n
\n {items.map((item) => (\n onItemClick(item)}\n title={item.title}\n >\n {item.title}\n
\n ))}\n \n);\n\nexport default SearchBarSuggestions;\n","import { useState, useEffect } from 'react';\n\nconst useDebouncedValue = (value: any, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(\n () => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n },\n\n [value],\n );\n\n return debouncedValue;\n};\n\nexport default useDebouncedValue;\n","// extracted by mini-css-extract-plugin\nexport default {\"relativeWrapper\":\"cC_ks\",\"container\":\"cC_g\",\"focused\":\"cC_kt\",\"input\":\"cC_kv\",\"crossIcon\":\"cC_kw\",\"searchIcon\":\"cC_kx\"};","import React, {\n ChangeEvent, KeyboardEvent, FC, useEffect, useRef, useState,\n} from 'react';\nimport { ReactComponent as Cross } from '@/assets/icons/close.svg';\nimport { ReactComponent as Search } from '@/assets/icons/search.svg';\nimport SearchBarSuggestions, { SearchBarSuggestion }\n from '@/pages/MarketReportsListingPage/components/SearchBar/SearchBarSuggestions/SearchBarSuggestions';\nimport useDebouncedValue from '@/helpers/useDebouncedValue';\nimport styles from './SearchBarInput.module.scss';\n\ninterface SearchBarInputProps {\n initValue?: string;\n placeholder: string;\n onChange: (value: string) => void;\n isValid: boolean;\n suggestions: SearchBarSuggestion[] | null;\n onClear?: () => void;\n onSuggestionClick?: (placeId: string) => void;\n onSearch?: (placeId: string) => void;\n}\n\nconst SearchBarInput: FC = ({\n onChange, placeholder, initValue, isValid, suggestions, onClear, onSuggestionClick, onSearch,\n}: SearchBarInputProps) => {\n const [value, setValue] = useState(initValue);\n const inputContainerRef = useRef(null);\n const inputRef = useRef(null);\n const [isDropDownOpen, setIsDropDownOpen] = useState(false);\n const debouncedValue = useDebouncedValue(value, 300);\n\n const onValueChange = (e: ChangeEvent): void => {\n const newValue = e.target.value;\n setValue(newValue);\n };\n\n useEffect(() => {\n onChange(debouncedValue);\n }, [debouncedValue]);\n\n // to open dropdown on value change after clear on cross\n useEffect(() => {\n if (document.activeElement === inputRef.current && !isDropDownOpen) {\n setIsDropDownOpen(true);\n }\n }, [suggestions]);\n\n useEffect((): () => void => {\n const handleDocumentClick = (event: MouseEvent): void => {\n if (!inputContainerRef || !inputContainerRef.current) {\n return;\n }\n\n const target = event.target as HTMLElement;\n if ((target === inputContainerRef.current) || inputContainerRef.current.contains(target)) {\n return;\n }\n\n setIsDropDownOpen(false);\n };\n document.addEventListener('click', handleDocumentClick);\n\n return (): void => document.removeEventListener('click', handleDocumentClick);\n }, [isDropDownOpen]);\n\n const onInputFocus = (): void => {\n const element = inputContainerRef.current;\n if (element && !element.classList.contains(styles.focused)) {\n element.classList.add(styles.focused);\n }\n setIsDropDownOpen(true);\n };\n\n const onInputBlur = (): void => {\n const element = inputContainerRef.current;\n if (element && element.classList.contains(styles.focused)) {\n element.classList.remove(styles.focused);\n }\n };\n\n const onClearClick = (): void => {\n setValue('');\n if (onClear) {\n onClear();\n }\n const inputElement = inputRef.current;\n if (inputElement) {\n inputElement.focus();\n }\n };\n\n const onItemClick = ({ title, placeId }: SearchBarSuggestion): void => {\n setValue(title);\n setIsDropDownOpen(false);\n if (onSuggestionClick) {\n onSuggestionClick(placeId);\n }\n };\n\n const onSearchClick = (): void => {\n if (!isValid || !suggestions || !suggestions.length) {\n return;\n }\n if (onSearch) {\n setIsDropDownOpen(false);\n onSearch(suggestions[0].placeId);\n }\n };\n\n const onInputKeyUp = (e: KeyboardEvent): void => {\n if (e.key === 'Enter') {\n onSearchClick();\n }\n };\n\n return (\n
\n
\n \n {value && (\n \n )}\n \n {(value && isValid && suggestions && !!suggestions.length && isDropDownOpen) && (\n \n )}\n
\n
\n );\n};\n\nexport default SearchBarInput;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"bl_g\",\"invalidMessage\":\"bl_f9\"};","import React, { FC, useState } from 'react';\nimport { getSearchSuggestions, getSearchPlace } from '@/api/search';\nimport { SearchBarSuggestion } from\n '@/pages/MarketReportsListingPage/components/SearchBar/SearchBarSuggestions/SearchBarSuggestions';\nimport SearchBarInput from '@/pages/MarketReportsListingPage/components/SearchBar/SearchBarInput/SearchBarInput';\nimport styles from './SearchBar.module.scss';\n\ninterface SearchBarProps {\n invalidMessage: string;\n placeholder?: string;\n currentSearch?: string;\n}\n\ninterface SuggestionsResponse {\n suggestions: SearchBarSuggestion[];\n}\n\ninterface PlaceInfoResponse {\n place: string;\n cityName: string;\n countryCode: string;\n countryName: string;\n address: string;\n placeId: string;\n}\n\nconst encodeSpaces = (value: string): string => value.replace(/\\s/g, '%2D');\n\nconst SearchBar: FC = ({\n placeholder = '', invalidMessage, currentSearch,\n}: SearchBarProps) => {\n const [suggestions, setSuggestions] = useState(null);\n const [isValid, setIsValid] = useState(true);\n\n const invalidate = (): void => {\n setIsValid(false);\n };\n\n const updateSuggestions = ({ suggestions: newSuggestions }: SuggestionsResponse): void => {\n if (!newSuggestions) {\n return;\n }\n setSuggestions(newSuggestions);\n if (suggestions) {\n setIsValid(!!newSuggestions.length);\n }\n };\n\n const onValueChange = (newValue: string): void => {\n if (!newValue) {\n return;\n }\n\n getSearchSuggestions(newValue, updateSuggestions, invalidate);\n };\n\n const onClearClick = (): void => {\n setSuggestions([]);\n setIsValid(true);\n window.location.replace(window.location.pathname);\n };\n\n const redirectToSearchResults = (placeInfo: PlaceInfoResponse): void => {\n const {\n address, place, cityName, countryCode, countryName, placeId,\n } = placeInfo;\n\n if (!address) {\n return;\n }\n\n const { pathname } = window.location;\n const placeEncoded = place ? `place=${encodeSpaces(place)}&` : '';\n const cityEncoded = encodeSpaces(cityName);\n const countryEncoded = encodeSpaces(countryName);\n\n const searchUrl = `${pathname}?${placeEncoded}city=${cityEncoded}&countryCode=${countryCode}&countryName=${countryEncoded}&placeId=${placeId}`;\n window.location.replace(searchUrl);\n };\n\n const selectPlace = (placeId: string): void => {\n if (!placeId) {\n return;\n }\n\n getSearchPlace(placeId, redirectToSearchResults, invalidate);\n };\n\n return (\n
\n \n {(invalidMessage && !isValid) &&
{invalidMessage}
}\n
\n );\n};\n\nexport default SearchBar;\n","export const getSearchSuggestions = (\n searchQuery: string,\n successCallback: (data: any) => void,\n errorCallback: () => void,\n): void => {\n const url = `/apis/search/suggest?s=${encodeURI(searchQuery)}`;\n\n fetch(url)\n .then((resp: Response) => resp.json())\n .then((data): void => {\n successCallback(data);\n })\n .catch((): void => {\n errorCallback();\n });\n};\n\nexport const getSearchPlace = (\n placeId: string,\n successCallback: (data: any) => void,\n errorCallback: () => void,\n): void => {\n const url = `/apis/search/GetPlaceDetails?plid=${placeId}`;\n\n fetch(url)\n .then((resp: Response) => resp.json())\n .then((data): void => {\n successCallback(data);\n })\n .catch((): void => {\n errorCallback();\n });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"featuredTitle\":\"r_df\",\"searchBarContainer\":\"r_dg\",\"locationsTitle\":\"r_dh\"};","import React, { FC, useRef } from 'react';\nimport { hasExternalForm } from '@/helpers/externalForm';\nimport { ModalName } from '@/common/contexts/globalModalContext';\nimport ListingLayout, { ListingLayoutProps } from '@/common/layouts/ListingLayout/ListingLayout';\nimport VPSection from '@/pages/MarketReportsListingPage/components/VPSection/VPSection';\nimport { BannerProps } from '@/common/components/Banner/Banner';\nimport ListingGallery from '@/common/components/ListingGallery/ListingGallery';\nimport { ListCardProps } from '@/common/components/ListCard/ListCard';\nimport { VPOptionProps } from '@/pages/MarketReportsListingPage/components/VPOption/VPOption';\nimport SearchBar from '@/pages/MarketReportsListingPage/components/SearchBar/SearchBar';\nimport ExternalModalForms from '@/common/components/Modal/ExternalModalForms/ExternalModalForms';\nimport CustomReportModal, { CustomReportModalProps } from '@/common/components/CustomReportModal/CustomReportModal';\nimport styles from './MarketReportsListingPage.module.scss';\n\ninterface MarketReportsListingPageProps extends ListingLayoutProps {\n vpSection?: VPOptionProps[];\n featuredReportsBlock?: ReportsBlock;\n locationReportsBlock?: ReportsBlock;\n banner?: BannerProps;\n customInsightPopup?: CustomReportModalProps;\n addressForSearch?: string;\n}\n\ninterface ReportsBlock {\n title: string;\n mark: string;\n invalidLocation: string | null;\n reports: ListCardProps[];\n}\n\nconst MarketReportsListingPage: FC = ({\n featuredReportsBlock,\n locationReportsBlock,\n vpSection,\n banner,\n customInsightPopup,\n addressForSearch,\n pardot,\n signUpSection,\n ...listingLayoutProps\n}) => {\n const {\n title: featuredTitle,\n reports: featuredReports,\n mark: featuredMark,\n } = featuredReportsBlock || {};\n const {\n title: locationsTitle,\n reports: locationReports,\n mark: searchBarPlaceholder,\n invalidLocation,\n } = locationReportsBlock || {};\n\n const itemRefToScroll = useRef(null);\n\n const shouldRenderNewsletterModal = !hasExternalForm({ pardot, modalName: ModalName.newsletter });\n\n const featuredReportCards = featuredReports?.map((featuredReport): ListCardProps => ({\n mark: featuredMark, ...featuredReport,\n }));\n\n const renderModal = () => {\n if (!customInsightPopup || hasExternalForm({ pardot, modalName: ModalName.customReport })) {\n return null;\n }\n\n return (\n \n );\n };\n\n return (\n \n {!!vpSection && (\n \n )}\n
\n {featuredTitle}\n
\n \n\n
\n
\n {locationsTitle}\n
\n \n
\n\n \n {!!pardot && (\n \n )}\n {renderModal()}\n \n );\n};\n\nexport default MarketReportsListingPage;\n","import 'react-app-polyfill/stable';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactDOMServer from 'react-dom/server';\nimport MarketReportsListingPage from '@/pages/MarketReportsListingPage/MarketReportsListingPage';\n\nglobal.React = React;\nglobal.ReactDOM = ReactDOM;\nglobal.ReactDOMServer = ReactDOMServer;\n\nglobal.MarketReportsListingPage = MarketReportsListingPage;\n"],"names":["_ref","description","title","className","_jsxs","children","_jsx","styles","options","length","optionsView","map","option","VPOption","key","grid","row","classNames","colSm10","offsetSm1","_g","_extends","Object","assign","bind","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","SvgSearch","ref","titleId","props","xmlns","width","height","viewBox","role","id","fillRule","x","y","fill","stroke","strokeWidth","rx","d","ForwardRef","forwardRef","items","onItemClick","item","onClick","useDebouncedValue","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","handler","setTimeout","clearTimeout","onChange","placeholder","initValue","isValid","suggestions","onClear","onSuggestionClick","onSearch","setValue","inputContainerRef","useRef","inputRef","isDropDownOpen","setIsDropDownOpen","document","activeElement","current","handleDocumentClick","event","contains","addEventListener","removeEventListener","onSearchClick","placeId","relativeWrapper","container","input","e","newValue","onFocus","onInputFocus","element","classList","focused","add","onBlur","onInputBlur","remove","onKeyUp","Cross","crossIcon","onClearClick","inputElement","focus","Search","searchIcon","SearchBarSuggestions","_ref2","encodeSpaces","replace","invalidMessage","currentSearch","setSuggestions","setIsValid","invalidate","updateSuggestions","newSuggestions","redirectToSearchResults","placeInfo","address","place","cityName","countryCode","countryName","pathname","window","location","searchUrl","selectPlace","getSearchPlace","successCallback","errorCallback","fetch","then","resp","json","data","catch","SearchBarInput","getSearchSuggestions","searchQuery","url","encodeURI","featuredReportsBlock","locationReportsBlock","vpSection","banner","customInsightPopup","addressForSearch","pardot","signUpSection","listingLayoutProps","featuredTitle","reports","featuredReports","mark","featuredMark","locationsTitle","locationReports","searchBarPlaceholder","invalidLocation","itemRefToScroll","shouldRenderNewsletterModal","hasExternalForm","modalName","ModalName","newsletter","featuredReportCards","featuredReport","ListingLayout","VPSection","ListingGallery","cards","SearchBar","ExternalModalForms","titles","customReport","modalWindowTitle","CustomReportModal","global","React","ReactDOM","ReactDOMServer","MarketReportsListingPage"],"sourceRoot":""}