{"version":3,"file":"rctShared-903cae6c988851b6a375.js","mappings":"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","sources":["webpack://@whistleout/webui/./Areas/Shared/React/js/components/AppComponent.jsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/maps/AddressMap.jsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/maps/HeaderMap.jsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/addressSearch/AddressChangeTracker.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/sliders/Slider.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/sliders/SliderHandle.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/LoadingProgress.jsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/locationHeader/TitleSplit.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/locationHeader/Title.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/locationHeader/HeaderBrowse.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/locationHeader/AddressLabel.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/locationHeader/HeaderSearch.tsx","webpack://@whistleout/webui/./Areas/Shared/React/js/components/locationHeader/LocationHeader.tsx","webpack://@whistleout/webui/./Areas/Shared/js/utils/productArea.ts","webpack://@whistleout/webui/./Areas/Shared/React/js/components/maps/SupplierHeaderMap.jsx","webpack://@whistleout/webui/./Areas/Shared/React/js/index.ts","webpack://@whistleout/webui/./Areas/Shared/js/vendor/react.ts"],"sourcesContent":["import React, { useContext, useMemo } from 'react';\nimport { Provider as ReduxProvider, ReactReduxContext } from 'react-redux';\nimport { BrowserRouter, useInRouterContext } from 'react-router-dom';\n\nimport { store } from '../../../js/redux/store';\n\nconst ReduxEnabled = props => {\n const context = useContext(ReactReduxContext);\n\n const wrapper = useMemo(() => {props.children}, [props.children]);\n\n const isInContext = useMemo(() => !!context, [context]);\n return isInContext ? <>{props.children} : wrapper;\n};\n\nconst RouterEnabled = props => {\n const isInRouter = useInRouterContext();\n const wrapper = useMemo(() => {props.children}, [props.children]);\n return isInRouter ? <>{props.children} : wrapper;\n};\n\nconst AppComponent = props => {\n return (\n \n \n {props.children}\n \n \n );\n};\n\nexport default AppComponent;\n","import React, { Component } from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\n\nimport AddressHelper from '../../utils/AddressHelper';\nimport AddressChangeTracker from '../addressSearch/AddressChangeTracker';\n\nexport default class AddressMap extends Component {\n constructor(props) {\n super(props);\n\n this.id = AddressMap.counter++;\n this.mapWrapperId = `header-map-wrapper-${this.id}`;\n\n this.state = {\n address: this.props.address,\n marker: null,\n isSmallScreen: this.isSmallScreen()\n };\n\n this.onAddressChange = this.onAddressChange.bind(this);\n this.onWindowResize = this.onWindowResize.bind(this);\n this.onResizeEnd = this.onResizeEnd.bind(this);\n this.getMapContainer = this.getMapContainer.bind(this);\n this.renderStaticMap = this.renderStaticMap.bind(this);\n }\n\n componentDidMount() {\n addEventListener('DOMContentLoaded', async () => {\n this.mapboxgl = await import(/* webpackChunkName: \"mapbox\" */ 'mapbox-gl');\n window.addEventListener('resize', this.onWindowResize);\n this.setView(this.state.address);\n });\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.onWindowResize);\n }\n\n componentDidUpdate() {\n this.setView(this.state.address);\n }\n\n onAddressChange(address) {\n if (this.props.ignoreAddressChange || AddressHelper.isEqual(address, this.state.address)) {\n return;\n }\n\n this.setState({ address: address });\n }\n\n getMapContainer() {\n return wo$(`#${this.props.mapContainerId}`)[0];\n }\n\n onWindowResize() {\n if (this.resizeTimer) {\n // HACK: Reset the timeout to let the resize finish\n // See: https://css-tricks.com/snippets/jquery/done-resizing-event/\n clearTimeout(this.resizeTimer);\n }\n\n this.resizeTimer = setTimeout(this.onResizeEnd, 250);\n }\n\n isSmallScreen() {\n return window.innerWidth < 992;\n }\n\n onResizeEnd() {\n const isSmallScreen = this.isSmallScreen();\n if (isSmallScreen === this.state.isSmallScreen) {\n return;\n }\n\n this.setState({ isSmallScreen: isSmallScreen }, () => {\n if (this.useStaticMap()) {\n return;\n }\n\n const mapContainer = this.getMapContainer();\n if (isSmallScreen) {\n if (mapContainer.innerHTML) {\n mapContainer.innerHTML = '';\n window.dynamicMap = null;\n\n this.onMapRemove();\n }\n } else {\n if (!mapContainer.innerHTML) {\n this.initMap();\n }\n }\n });\n }\n\n onMapRemove() {\n if (this.props.onMapRemove) {\n this.props.onMapRemove();\n }\n }\n\n onMapInit() {\n if (this.props.onMapInit) {\n this.props.onMapInit();\n }\n }\n\n initMap() {\n if (window.dynamicMap || typeof window === 'undefined') {\n return;\n }\n\n console.log('initialising header map');\n\n const location = this.getLocation(this.state.address, this.props.countryCode);\n const center = location.center || {};\n const zoom = location.zoom;\n\n this.setState({\n center: center,\n zoom: zoom\n });\n\n const mapContainer = (\n \n );\n\n this.getMapContainer().innerHTML = renderToStaticMarkup(mapContainer);\n this.onMapInit();\n\n const map = new this.mapboxgl.Map({\n accessToken: this.props.apiKey,\n container: this.mapWrapperId,\n style: `mapbox://styles/${this.props.styleId}`,\n\n center: center,\n zoom: zoom,\n\n interactive: false,\n trackResize: true,\n attributionControl: false\n });\n\n map.addControl(new this.mapboxgl.AttributionControl(), 'bottom-right');\n\n this.offset(map, center);\n this.setMarker(map, center);\n\n window.dynamicMap = map;\n }\n\n clearMarker() {\n if (this.state.marker) {\n this.state.marker.remove();\n }\n }\n\n setMarker(map, center) {\n if (AddressHelper.isCountry(this.state.address)) {\n return;\n }\n\n const cdn = 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7';\n var markerIconUrl =\n wo$(`#${this.props.mapContainerId}`).data('marker-url') || `${cdn}/images/marker-icon-2x.png`;\n\n var el = document.createElement('div');\n el.className = 'marker';\n el.style.backgroundImage = `url(${markerIconUrl})`;\n el.style.backgroundSize = 'contain';\n el.style.backgroundRepeat = 'no-repeat';\n el.style.width = '27px';\n el.style.height = '41px';\n\n const marker = new this.mapboxgl.Marker(el, { anchor: 'bottom' })\n .setLngLat([center.lng, center.lat])\n .addTo(map);\n\n this.setState({ marker: marker });\n }\n\n setView(address) {\n if (this.useStaticMap()) {\n this.renderStaticMap();\n return;\n }\n\n if (typeof window === 'undefined' || this.state.isSmallScreen) {\n return;\n }\n\n const map = window.dynamicMap;\n if (!map) {\n this.initMap();\n return;\n }\n\n const currentCenter = map.getCenter();\n const location = this.getLocation(address, this.props.countryCode);\n const newCenter = location.center;\n if (currentCenter.lat === newCenter.lat && currentCenter.lng === newCenter.lng) {\n return;\n }\n\n this.setCenter(map, newCenter, location.zoom);\n }\n\n setCenter(map, center, zoom) {\n if (JSON.stringify(center) === JSON.stringify(this.state.center)) {\n return;\n }\n\n this.setState({\n center: center,\n zoom: zoom\n });\n\n this.clearMarker();\n\n if (map.getZoom() !== zoom) {\n map.setZoom(zoom);\n }\n\n const currentCenter = map.getCenter();\n if (currentCenter.lng !== center.lng || currentCenter.lat !== center.lat) {\n map.panTo([center.lng, center.lat]);\n }\n\n if (AddressHelper.isCountry(this.state.address)) {\n return;\n }\n\n this.offset(map, center);\n this.setMarker(map, center);\n }\n\n offset(map, center) {\n const targetLatLng = this.getOffsetLatLng(map, center);\n map.panTo(targetLatLng);\n }\n\n getOffsetLatLng(map, center) {\n const offset = this.getOffset();\n\n // See: https://github.com/Leaflet/Leaflet/issues/859\n const targetPoint = map.project(center).sub(new this.mapboxgl.Point(offset.x, offset.y));\n\n return map.unproject(targetPoint);\n }\n\n getOffset() {\n if (this.props.getOffset) {\n return this.props.getOffset();\n }\n\n const wrapperRect = wo$(`#${this.mapWrapperId}`)[0].getBoundingClientRect();\n const centerBetween = this.props.getCenterBoundaries();\n\n const expected = {\n x: this.getCenter(centerBetween.left, centerBetween.right),\n y: this.getCenter(wrapperRect.top, wrapperRect.bottom)\n };\n\n const actual = {\n x: this.getCenter(wrapperRect.left, wrapperRect.right),\n y: this.getCenter(wrapperRect.top, wrapperRect.bottom)\n };\n\n return {\n x: expected.x - actual.x,\n y: expected.y - actual.y\n };\n }\n\n getCenter(start, end) {\n return start + (end - start) / 2;\n }\n\n getLocation(address, countryCode) {\n if (address && !AddressHelper.isCountry(address)) {\n return {\n center: {\n lat: address.latitude,\n lng: address.longitude\n },\n zoom: this.getZoom(address)\n };\n }\n\n if (!countryCode) {\n throw new Error('countryCode is undefined');\n }\n\n // Based on https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-hotelsearch\n const countries = {\n au: {\n center: { lat: -33.1382032, lng: 144.7961969 },\n zoom: 6\n },\n ca: {\n center: { lat: 62, lng: -110.0 },\n zoom: 3\n },\n mx: {\n center: { lat: 23.6, lng: -102.5 },\n zoom: 5\n },\n nz: {\n center: { lat: -40.9, lng: 174.9 },\n zoom: 5\n },\n uk: {\n center: { lat: 52.8, lng: -4.6 },\n zoom: 5\n },\n us: {\n center: { lat: 39.85, lng: -97.8 },\n zoom: 5\n }\n };\n\n return countries[countryCode] || countries['au'];\n }\n\n getZoom(address) {\n const zoomLevel = AddressMap.zoomLevel;\n\n if (!address) {\n return zoomLevel.country;\n }\n\n if (address.unit) {\n return zoomLevel.unit;\n }\n\n if (address.streetNumber) {\n return zoomLevel.streetNumber;\n }\n\n if (address.street) {\n return zoomLevel.street;\n }\n\n if (address.city) {\n return zoomLevel.city;\n }\n\n if (address.postcode) {\n return zoomLevel.postcode;\n }\n\n if (address.state) {\n return zoomLevel.state;\n }\n\n return zoomLevel.country;\n }\n\n renderStaticMap() {\n window.dynamicMap = null;\n const backgroundMapUrl = this.props.backgroundMapUrl;\n this.getMapContainer().innerHTML = `\n
\n `;\n }\n\n useStaticMap() {\n return this.props.useStaticMap || AddressHelper.isCountry(this.state.address) || !this.mapboxgl.supported();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nAddressMap.counter = 1;\nAddressMap.zoomLevel = {\n country: 6,\n\n unit: 14,\n streetNumber: 14,\n street: 13,\n\n postcode: 12,\n city: 12,\n\n state: 5\n};\n","import React, { Component } from 'react';\n\nimport AddressMap from './AddressMap';\n\nexport default class HeaderMap extends Component {\n\n constructor(props) {\n super(props);\n\n this.getCenterBoundaries = this.getCenterBoundaries.bind(this);\n }\n\n getCenterBoundaries() {\n if (this.props.getCenterBoundaries) {\n return this.props.getCenterBoundaries();\n }\n\n const locationHeaderRect = wo$('#location-header')[0].getBoundingClientRect();\n\n // HACK: .filter() or .map() are not transpiled in this particular case for some reason, giving an error in IE10 (IE9 is fine...)\n const contains = (array, p) => {\n for (let i = 0; i < array.length; i++) {\n const item = array[i].toLowerCase();\n if (p === item) {\n return true;\n }\n }\n\n return false;\n };\n\n var coverageButton = wo$('#coverage-maps-button a')[0];\n if (coverageButton\n && coverageButton.offsetParent !== null\n && !coverageButton.hidden\n && !contains(coverageButton.classList || [], 'hidden')\n ) {\n\n const coverageButtonRect = coverageButton.getBoundingClientRect();\n return {\n left: locationHeaderRect.right,\n right: coverageButtonRect.left\n };\n }\n\n const mainContentRect = wo$('#main-content')[0].getBoundingClientRect();\n return {\n left: locationHeaderRect.right,\n right: mainContentRect.right\n };\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { useCallback, useEffect } from 'react';\n\nimport type { Address } from '../../../../js/@types/Address';\nimport AddressHelper from '../../utils/AddressHelper';\nimport AppComponent from '../AppComponent';\nimport { AddressChangedEventArgs, onAddressChangedEvent } from './AddressSearch';\n\ninterface Props {\n initialValue?: Address;\n onAddressChange: (address: Address) => void;\n}\n\n/* eslint-disable import/no-named-as-default-member */\nconst propTypes = {\n initialValue: PropTypes.any,\n onAddressChange: PropTypes.func\n};\n/* eslint-enable */\n\nconst AddressChangeTrackerComponent = (props: Props) => {\n const onAddressChange = useCallback(\n (value: Address) => {\n if (props.onAddressChange) {\n props.onAddressChange(value);\n }\n },\n [props]\n );\n\n const onAddressChangedEventHandler = useCallback(\n (e: CustomEvent) => {\n // TODO: Fix eslint error\n // eslint-disable-next-line @typescript-eslint/no-invalid-this\n if (!e.detail || e.detail.sender === this) {\n return;\n }\n\n if (AddressHelper.isEqual(props.initialValue, e.detail.address)) {\n return;\n }\n\n onAddressChange(e.detail.address);\n },\n [onAddressChange, props.initialValue]\n );\n\n const handleOnMount = useCallback(() => {\n addEventListener(onAddressChangedEvent, onAddressChangedEventHandler);\n\n // Unmount\n return () => {\n removeEventListener(onAddressChangedEvent, onAddressChangedEventHandler);\n };\n }, [onAddressChangedEventHandler]);\n\n useEffect(() => handleOnMount(), [handleOnMount]);\n\n return <>;\n};\n\nconst AddressChangeTracker = (props: Props) => {\n return (\n \n \n \n );\n};\n\nAddressChangeTracker.propTypes = propTypes;\nexport default AddressChangeTracker;\n","import PropTypes from 'prop-types';\nimport Rcslider from 'rc-slider';\nimport React, { useCallback } from 'react';\n\nimport SliderHandle from './SliderHandle';\n\ninterface props {\n current: number;\n data: Array;\n onValueChanged: (value: number) => void;\n onValueUpdating: (value: number) => void;\n}\n\nconst Slider = ({ current, data, onValueChanged, onValueUpdating }: props) => {\n const handleValueChanged = useCallback(\n index => {\n if (onValueChanged) {\n onValueChanged(data[index]);\n }\n },\n [data, onValueChanged]\n );\n\n const handleValueUpdating = useCallback(\n index => {\n if (onValueUpdating) {\n onValueUpdating(data[index]);\n }\n },\n [data, onValueUpdating]\n );\n\n const range = {\n min: 0,\n max: data.length - 1\n };\n\n const index = data.indexOf(current);\n const createHandle = useCallback(p => , []);\n\n return (\n \n \n \n );\n};\n\n/* eslint-disable import/no-named-as-default-member */\nSlider.prototype = {\n current: PropTypes.number.isRequired,\n data: PropTypes.arrayOf(PropTypes.number).isRequired,\n onValueChanged: PropTypes.func.isRequired,\n onValueUpdating: PropTypes.func.isRequired\n};\n/* eslint-enable */\n\nexport default Slider;\n","import { SliderProps } from 'rc-slider';\nimport React, { forwardRef } from 'react';\n\nconst SliderHandle = forwardRef((props: Parameters[0], ref: React.Ref) => {\n return (\n \n );\n});\n\nSliderHandle.displayName = 'SliderHandle';\nexport default SliderHandle;\n","import React, { Component } from 'react';\n\n\nexport default class LoadingProgress extends Component {\n constructor(props) {\n super(props);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.loading === false && this.props.loading === true) {\n WhistleOut.startProgress('#loading-container', 0.1, 50);\n } else if (prevProps.loading === true && this.props.loading === false) {\n WhistleOut.endProgress('#loading-container');\n }\n }\n\n render() {\n return (\n \n
\n {this.props.children}\n
\n
\n );\n }\n}\n","import React, { useCallback, useEffect, useState } from 'react';\n\ninterface Props {\n text: string;\n className: string;\n}\n\nconst TitleSplit = (props: Props) => {\n const getParts = useCallback((text: string) => {\n const parts = text.trim().split(/\\s+/);\n const part1 = parts.slice(0, 2).join(' ');\n const part2 = parts.slice(2).join(' ');\n\n return [part1, part2];\n }, []);\n\n const [parts, setParts] = useState(getParts(props.text));\n\n useEffect(() => setParts(getParts(props.text)), [getParts, props.text]);\n\n return (\n \n \n {' '}\n \n \n );\n};\n\nexport default TitleSplit;\n","import React, { useCallback } from 'react';\n\nimport TitleSplit from './TitleSplit';\n\ninterface Props {\n text: string;\n className: string;\n}\n\nconst Title = (props: Props) => {\n const isLongText = useCallback(() => {\n return props.text && props.text.length >= 25;\n }, [props.text]);\n\n return isLongText() ? (\n \n ) : (\n \n );\n};\n\nexport default Title;\n","import React from 'react';\n\nimport Title from './Title';\n\ninterface Props {\n address: string;\n title: string;\n\n children?: React.ReactChild;\n}\n\nconst HeaderBrowse = (props: Props) => {\n return (\n
\n
\n

\n \n

\n
\n {props.children}\n
\n );\n};\n\nexport default HeaderBrowse;\n","import React from 'react';\n\ninterface Props {\n address: string;\n allowEdit: boolean;\n onEditClick: React.MouseEventHandler;\n}\n\nconst AddressLabel = (props: Props) => {\n return (\n
\n {props.address}\n {props.allowEdit ? (\n \n ) : null}\n
\n );\n};\n\nexport default AddressLabel;\n","import React from 'react';\n\nimport AddressLabel from './AddressLabel';\nimport Title from './Title';\n\ninterface Props {\n address: string;\n allowEdit: boolean;\n title: string;\n\n children?: React.ReactChild;\n onEditClick: React.MouseEventHandler;\n}\n\nconst HeaderSearch = (props: Props) => {\n return (\n
\n
\n

\n \n <AddressLabel address={props.address} allowEdit={props.allowEdit} onEditClick={props.onEditClick} />\n </h1>\n </div>\n {props.children}\n </div>\n );\n};\n\nexport default HeaderSearch;\n","import ClassNames from 'classnames';\nimport React, { Component, createRef } from 'react';\n\nimport type { Address } from '../../../../js/@types/Address';\nimport type { AddressSearchModel } from '../../../../js/@types/AddressSearchModel';\nimport { productArea } from '../../../../js/utils/productArea';\nimport SearchAddressActions from '../../actions/SearchAddressActions';\nimport { AddressSearchHandle } from '../addressSearch/AddressAutocomplete';\nimport AddressChangeTracker from '../addressSearch/AddressChangeTracker';\nimport AddressSearch, { AddressSearchProps } from '../addressSearch/AddressSearch';\nimport HeaderBrowse from './HeaderBrowse';\nimport HeaderSearch from './HeaderSearch';\n\ninterface Props {\n productAreaType: number;\n address: Address;\n addressData: AddressSearchModel;\n addressLabelPrefix: string;\n allowEdit: boolean;\n ignoreAddressChange: boolean;\n isMobilePhones: boolean;\n useBigTitle: boolean;\n text: {\n countryName: string;\n title: string;\n subTitle: string;\n };\n}\n\ninterface State {\n initialAddress: string;\n address: Address;\n hidden: boolean;\n inputValue: string;\n addressNotFound?: boolean;\n isError?: boolean;\n}\n\nconst getLabel = (address: Address) => {\n return address?.streetNumber ? address.label : null;\n};\n\nconst shouldHideAddressSearch = (productAreaType: number) =>\n productAreaType === productArea.mobilePhones || productAreaType === productArea.tablets;\n\nexport default class LocationHeader extends Component<Props, State> {\n resultsLocationForm: React.RefObject<HTMLFormElement>;\n addresSearchRef: React.RefObject<AddressSearchHandle>;\n\n constructor(props: Props) {\n super(props);\n\n const label = getLabel(props.address);\n this.state = {\n initialAddress: label,\n address: props.address || ({} as Address),\n hidden: !!props.address?.streetNumber || shouldHideAddressSearch(props.productAreaType),\n inputValue: label || undefined\n };\n\n // Set the address cookie because the search address component doesn't do it when it's hidden\n SearchAddressActions.setAddressCookie(props.address);\n\n this.resultsLocationForm = createRef();\n this.addresSearchRef = createRef();\n }\n\n static getDerivedStateFromProps = (props: Props, state: State) => {\n const label = getLabel(props.address);\n return label !== state.initialAddress\n ? {\n initialAddress: label,\n address: props.address || {},\n inputValue: label || undefined\n }\n : null;\n };\n\n onAddressChange = (value: Address) => {\n //\n if ((value && this.state && this.state.address === value) || this.props.ignoreAddressChange) {\n return;\n }\n\n // Set the address cookie because the search address component doesn't do it when it's hidden\n if (this.state.hidden) {\n SearchAddressActions.setAddressCookie(value);\n }\n\n this.setState({\n address: value,\n inputValue: (value || {}).label || null,\n addressNotFound: null,\n isError: null\n });\n\n if (value) {\n this.hideAddressSearch(true);\n }\n };\n\n onAddressSelect = () => {\n if (this.state.address) {\n this.hideAddressSearch(true);\n }\n };\n\n handleAddressChanged = (address: Address) => {\n if (this.props.ignoreAddressChange) {\n return;\n }\n\n this.setState({\n address: address || ({} as Address),\n inputValue: (address || {}).label || null\n });\n };\n\n toggle = () => {\n if (this.state.hidden) {\n this.showAddressSearch();\n } else {\n this.setState(\n {\n // Reset input value, otherwise the search bar wouldn't collapse if the address wasn't found\n inputValue: null\n },\n () => {\n this.hideAddressSearch();\n }\n );\n }\n };\n\n // onEnterPress() {\n // this.hideAddressSearch();\n // }\n\n onAddressEmptyResults = () => {\n this.setState({\n addressNotFound: true,\n isError: null\n });\n };\n\n onAddressResponseError = () => {\n this.setState({\n addressNotFound: null,\n isError: true\n });\n };\n\n onInput = (value: string) => {\n this.setState({\n inputValue: value,\n addressNotFound: null,\n isError: null\n });\n };\n\n onInputInitialized = (input: HTMLInputElement) => {\n if (!input) {\n return;\n }\n input.value = this.state.inputValue || '';\n };\n\n showAddressSearch() {\n this.setState(\n {\n hidden: false,\n inputValue: (this.state.address || {}).label || null\n },\n () => {\n const searchAddress = this.addresSearchRef.current;\n wo$(this.resultsLocationForm.current).slideDown(400, () => {\n searchAddress.focus();\n });\n }\n );\n }\n\n hideAddressSearch(force = false) {\n // Do not hide if the value is pending\n // (for example, in case of an error or if the address was not found)\n if (!force && this.state.inputValue && this.state.inputValue !== (this.state.address || {}).label) {\n return;\n }\n\n wo$(this.resultsLocationForm.current).slideUp(400, () => {\n this.setState({\n hidden: true,\n inputValue: null,\n addressNotFound: null,\n isError: null\n });\n });\n }\n\n renderErrorWarning(isError: boolean) {\n const classes = ClassNames('col-xs-24', { 'c-brand-danger': isError }, { 'c-brand-warning': !isError });\n\n const message = isError\n ? this.props.addressData.text.unableToVerifyAddress\n : this.props.addressData.text.addressNotFound;\n\n return (\n <div className=\"row pad-y-3 pad-x-3 text-center\">\n <div className={classes}>\n <span className=\"fa fa-exclamation-circle\"></span> {message}\n </div>\n </div>\n );\n }\n\n // eslint-disable-next-line complexity\n render() {\n let addressLabel = this.state.address\n ? this.state.address.label || this.props.text.countryName\n : this.props.text.countryName;\n\n // If a state, display the long name\n if (this.state.address && this.state.address.state && addressLabel === this.state.address.state.shortName) {\n addressLabel = this.state.address.state.longName;\n }\n\n const addressLabelString =\n this.props.addressLabelPrefix && this.props.addressLabelPrefix.length > 0\n ? `${this.props.addressLabelPrefix} ${addressLabel}`\n : addressLabel;\n\n const addressData = this.props.addressData;\n\n const searchAddressProps: AddressSearchProps = {\n key: `${this.state.hidden}`,\n ref: this.addresSearchRef,\n className: 'form-group mar-0 pad-y-2',\n inputClassName: 'font-5',\n current: this.state.address,\n countryCode: addressData.countryCode,\n placeholder: addressData.text.addressSearchPlaceHolder,\n tooltipLink: <i>{addressData.text.tooltipLink}</i>,\n tooltipDescription: addressData.text.tooltipDescription,\n addressNotFoundMessage: null,\n commonErrorMessage: null,\n types: addressData.types,\n queryDelay: addressData.queryDelay,\n apiKey: addressData.apiKey,\n onChange: this.onAddressChange,\n onSelect: this.onAddressSelect,\n onEmptyResults: this.onAddressEmptyResults,\n onResponseError: this.onAddressResponseError,\n // onEnterPress: this.onEnterPress,\n onInput: this.onInput,\n onInitialized: this.onInputInitialized\n };\n\n const searchFormClasses = ClassNames({ 'display-hidden': this.state.hidden });\n\n const title = this.state.address?.streetNumber\n ? this.props.text.title\n : this.props.text.title.replace(/\\s+at$/i, ' in');\n\n return (\n <React.StrictMode>\n <>\n <AddressChangeTracker\n onAddressChange={this.handleAddressChanged}\n initialValue={this.state.address}\n />\n {this.props.useBigTitle ? (\n <HeaderBrowse address={this.props.text.subTitle || addressLabelString} title={title} />\n ) : (\n <HeaderSearch\n address={this.props.text.subTitle || addressLabelString}\n allowEdit={this.props.allowEdit}\n title={title}\n onEditClick={this.toggle}\n />\n )}\n <form ref={this.resultsLocationForm} id=\"resultsLocationForm\" className={searchFormClasses}>\n <AddressSearch {...searchAddressProps} />\n </form>\n {!this.state.hidden && this.state.addressNotFound ? this.renderErrorWarning(false) : null}\n {!this.state.hidden && this.state.isError ? this.renderErrorWarning(true) : null}\n </>\n </React.StrictMode>\n );\n }\n}\n","export const productArea = {\n broadband: 2,\n mobilePhones: 3,\n payTv: 6,\n tablets: 11\n};\n","import React, { Component } from 'react';\n\nimport HeaderMap from './HeaderMap';\n\nexport default class SupplierHeaderMap extends Component {\n\n constructor(props) {\n super(props);\n\n this.getCenterBoundaries = this.getCenterBoundaries.bind(this);\n }\n\n getCenterBoundaries() {\n return {\n left: wo$('#location-header')[0].getBoundingClientRect().right,\n right: wo$('#header-logo-section')[0].getBoundingClientRect().left\n };\n }\n\n render() {\n return (\n <React.StrictMode>\n <HeaderMap\n address={this.props.address}\n countryCode={this.props.countryCode}\n backgroundMapUrl={this.props.backgroundMapUrl}\n getCenterBoundaries={this.getCenterBoundaries}\n ignoreAddressChange={this.props.ignoreAddressChange}\n mapContainerId=\"header-map\"\n apiKey={this.props.apiKey}\n styleId={this.props.styleId}\n useStaticMap={this.props.useStaticMap}\n />\n </React.StrictMode>\n );\n }\n}\n","import { initReact } from '../../js/vendor/react';\nimport * as SharedComponents from './components';\n\nexport function initSharedComponents() {\n initReact();\n window['SharedComponents'] = window['SharedComponents'] || SharedComponents;\n}\n\ninitSharedComponents();\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nexport function initReact() {\n if (window === undefined) {\n return;\n }\n\n window.React = window.React || React;\n window.ReactDOM = window.ReactDOM || ReactDOM;\n}\n"],"names":["ReduxEnabled","props","context","useContext","ReactReduxContext","wrapper","useMemo","React","ReduxProvider","store","children","RouterEnabled","isInRouter","useInRouterContext","BrowserRouter","AddressMap","Component","constructor","super","this","id","counter","mapWrapperId","state","address","marker","isSmallScreen","onAddressChange","bind","onWindowResize","onResizeEnd","getMapContainer","renderStaticMap","componentDidMount","addEventListener","async","mapboxgl","window","setView","componentWillUnmount","removeEventListener","componentDidUpdate","ignoreAddressChange","AddressHelper","setState","wo$","mapContainerId","resizeTimer","clearTimeout","setTimeout","innerWidth","useStaticMap","mapContainer","innerHTML","dynamicMap","onMapRemove","initMap","onMapInit","location","getLocation","countryCode","center","zoom","style","width","height","zIndex","className","renderToStaticMarkup","map","Map","accessToken","apiKey","container","styleId","interactive","trackResize","attributionControl","addControl","AttributionControl","offset","setMarker","clearMarker","remove","markerIconUrl","data","el","document","createElement","backgroundImage","backgroundSize","backgroundRepeat","Marker","anchor","setLngLat","lng","lat","addTo","currentCenter","getCenter","newCenter","setCenter","JSON","stringify","getZoom","setZoom","panTo","targetLatLng","getOffsetLatLng","getOffset","targetPoint","project","sub","Point","x","y","unproject","wrapperRect","getBoundingClientRect","centerBetween","getCenterBoundaries","expected","left","right","top","bottom","start","end","latitude","longitude","Error","countries","au","ca","mx","nz","uk","us","zoomLevel","unit","streetNumber","street","city","postcode","country","backgroundMapUrl","supported","render","AddressChangeTracker","initialValue","HeaderMap","locationHeaderRect","coverageButton","offsetParent","hidden","contains","array","i","length","toLowerCase","classList","coverageButtonRect","mainContentRect","propTypes","AddressChangeTrackerComponent","useCallback","value","onAddressChangedEventHandler","e","detail","sender","handleOnMount","useEffect","Slider","current","onValueChanged","onValueUpdating","handleValueChanged","index","handleValueUpdating","range","min","max","indexOf","createHandle","p","onChange","onAfterChange","step","handle","prototype","isRequired","SliderHandle","forwardRef","ref","disabled","displayName","LoadingProgress","prevProps","loading","WhistleOut","startProgress","endProgress","getParts","text","parts","trim","split","slice","join","setParts","useState","dangerouslySetInnerHTML","__html","isLongText","title","allowEdit","onClick","onEditClick","getLabel","label","LocationHeader","SearchAddressActions","inputValue","addressNotFound","isError","hideAddressSearch","onAddressSelect","handleAddressChanged","toggle","showAddressSearch","onAddressEmptyResults","onAddressResponseError","onInput","onInputInitialized","input","productAreaType","initialAddress","undefined","resultsLocationForm","createRef","addresSearchRef","searchAddress","slideDown","focus","force","slideUp","renderErrorWarning","classes","message","addressData","unableToVerifyAddress","addressLabel","countryName","shortName","longName","addressLabelString","addressLabelPrefix","searchAddressProps","key","inputClassName","placeholder","addressSearchPlaceHolder","tooltipLink","tooltipDescription","addressNotFoundMessage","commonErrorMessage","types","queryDelay","onSelect","onEmptyResults","onResponseError","onInitialized","searchFormClasses","replace","useBigTitle","subTitle","AddressSearch","getDerivedStateFromProps","SupplierHeaderMap","initReact","ReactDOM"],"sourceRoot":""}