{"version":3,"file":"defaultVendors-packages_common_packages_google-map_src_address-autocomplete_address-autocompl-0cd5ba.d0e769b0679ed12b.prod.js","mappings":"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","sources":["webpack://aurora-new-frontend/./node_modules/coordinate-parser/coordinate-number.js","webpack://aurora-new-frontend/./node_modules/coordinate-parser/coordinates.js","webpack://aurora-new-frontend/./node_modules/coordinate-parser/validator.js","webpack://aurora-new-frontend/./packages/common/packages/core/src/utils/regex.ts","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/use-google-map-api/use-google-map-api.ts","webpack://aurora-new-frontend/./node_modules/@blueprintjs/select/lib/esm/components/select/suggest.js","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/address-autocomplete/autocomplete-operator.ts","webpack://aurora-new-frontend/./node_modules/rxjs/dist/esm5/internal/operators/skip.js","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/address-autocomplete/address-autocomplete.tsx","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/address-autocomplete/use-google-autocomplete.ts","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/address-autocomplete/use-get-place-details.ts","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/address-autocomplete/utils.ts","webpack://aurora-new-frontend/./packages/common/packages/core/src/utils/parse-lat-lng.ts"],"sourcesContent":["// Generated by CoffeeScript 2.5.1\nvar CoordinateNumber;\n\nCoordinateNumber = class CoordinateNumber {\n constructor(coordinateNumbers) {\n coordinateNumbers = this.normalizeCoordinateNumbers(coordinateNumbers);\n this.sign = this.normalizedSignOf(coordinateNumbers[0]);\n [this.degrees, this.minutes, this.seconds, this.milliseconds] = coordinateNumbers.map(Math.abs);\n }\n\n normalizeCoordinateNumbers(coordinateNumbers) {\n var currentNumber, i, j, len, normalizedNumbers;\n normalizedNumbers = [0, 0, 0, 0];\n for (i = j = 0, len = coordinateNumbers.length; j < len; i = ++j) {\n currentNumber = coordinateNumbers[i];\n normalizedNumbers[i] = parseFloat(currentNumber);\n }\n return normalizedNumbers;\n }\n\n normalizedSignOf(number) {\n if (number >= 0) {\n return 1;\n } else {\n return -1;\n }\n }\n\n detectSpecialFormats() {\n if (this.degreesCanBeSpecial()) {\n if (this.degreesCanBeMilliseconds()) {\n return this.degreesAsMilliseconds();\n } else if (this.degreesCanBeDegreesMinutesAndSeconds()) {\n return this.degreesAsDegreesMinutesAndSeconds();\n } else if (this.degreesCanBeDegreesAndMinutes()) {\n return this.degreesAsDegreesAndMinutes();\n }\n }\n }\n\n degreesCanBeSpecial() {\n var canBe;\n canBe = false;\n if (!this.minutes && !this.seconds) {\n canBe = true;\n }\n return canBe;\n }\n\n degreesCanBeMilliseconds() {\n var canBe;\n if (this.degrees > 909090) {\n canBe = true;\n } else {\n canBe = false;\n }\n return canBe;\n }\n\n degreesAsMilliseconds() {\n this.milliseconds = this.degrees;\n return this.degrees = 0;\n }\n\n degreesCanBeDegreesMinutesAndSeconds() {\n var canBe;\n if (this.degrees > 9090) {\n canBe = true;\n } else {\n canBe = false;\n }\n return canBe;\n }\n\n degreesAsDegreesMinutesAndSeconds() {\n var newDegrees;\n newDegrees = Math.floor(this.degrees / 10000);\n this.minutes = Math.floor((this.degrees - newDegrees * 10000) / 100);\n this.seconds = Math.floor(this.degrees - newDegrees * 10000 - this.minutes * 100);\n return this.degrees = newDegrees;\n }\n\n degreesCanBeDegreesAndMinutes() {\n var canBe;\n if (this.degrees > 360) {\n canBe = true;\n } else {\n canBe = false;\n }\n return canBe;\n }\n\n degreesAsDegreesAndMinutes() {\n var newDegrees;\n newDegrees = Math.floor(this.degrees / 100);\n this.minutes = this.degrees - newDegrees * 100;\n return this.degrees = newDegrees;\n }\n\n toDecimal() {\n var decimalCoordinate;\n decimalCoordinate = this.sign * (this.degrees + this.minutes / 60 + this.seconds / 3600 + this.milliseconds / 3600000);\n return decimalCoordinate;\n }\n\n};\n\nmodule.exports = CoordinateNumber;\n","// Generated by CoffeeScript 2.5.1\nvar CoordinateNumber, Coordinates, Validator;\n\nValidator = require('./validator');\n\nCoordinateNumber = require('./coordinate-number');\n\nCoordinates = class Coordinates {\n constructor(coordinateString) {\n this.coordinates = coordinateString;\n this.latitudeNumbers = null;\n this.longitudeNumbers = null;\n this.validate();\n this.parse();\n }\n\n validate() {\n var validator;\n validator = new Validator();\n return validator.validate(this.coordinates);\n }\n\n parse() {\n this.groupCoordinateNumbers();\n this.latitude = this.extractLatitude();\n return this.longitude = this.extractLongitude();\n }\n\n groupCoordinateNumbers() {\n var coordinateNumbers, numberCountEachCoordinate;\n coordinateNumbers = this.extractCoordinateNumbers(this.coordinates);\n numberCountEachCoordinate = coordinateNumbers.length / 2;\n this.latitudeNumbers = coordinateNumbers.slice(0, numberCountEachCoordinate);\n return this.longitudeNumbers = coordinateNumbers.slice((0 - numberCountEachCoordinate));\n }\n\n extractCoordinateNumbers(coordinates) {\n return coordinates.match(/-?\\d+(\\.\\d+)?/g);\n }\n\n extractLatitude() {\n var latitude;\n latitude = this.coordinateNumbersToDecimal(this.latitudeNumbers);\n if (this.latitudeIsNegative()) {\n latitude = latitude * -1;\n }\n return latitude;\n }\n\n extractLongitude() {\n var longitude;\n longitude = this.coordinateNumbersToDecimal(this.longitudeNumbers);\n if (this.longitudeIsNegative()) {\n longitude = longitude * -1;\n }\n return longitude;\n }\n\n coordinateNumbersToDecimal(coordinateNumbers) {\n var coordinate, decimalCoordinate;\n coordinate = new CoordinateNumber(coordinateNumbers);\n coordinate.detectSpecialFormats();\n decimalCoordinate = coordinate.toDecimal();\n return decimalCoordinate;\n }\n\n latitudeIsNegative() {\n var isNegative;\n isNegative = this.coordinates.match(/s/i);\n return isNegative;\n }\n\n longitudeIsNegative() {\n var isNegative;\n isNegative = this.coordinates.match(/w/i);\n return isNegative;\n }\n\n getLatitude() {\n return this.latitude;\n }\n\n getLongitude() {\n return this.longitude;\n }\n\n};\n\nmodule.exports = Coordinates;\n","// Generated by CoffeeScript 2.5.1\nvar Validator;\n\nValidator = class Validator {\n isValid(coordinates) {\n var isValid, validationError;\n isValid = true;\n try {\n this.validate(coordinates);\n return isValid;\n } catch (error) {\n validationError = error;\n isValid = false;\n return isValid;\n }\n }\n\n validate(coordinates) {\n this.checkContainsNoLetters(coordinates);\n this.checkValidOrientation(coordinates);\n return this.checkNumbers(coordinates);\n }\n\n checkContainsNoLetters(coordinates) {\n var containsLetters;\n containsLetters = /(?![neswd])[a-z]/i.test(coordinates);\n if (containsLetters) {\n throw new Error('Coordinate contains invalid alphanumeric characters.');\n }\n }\n\n checkValidOrientation(coordinates) {\n var validOrientation;\n validOrientation = /^[^nsew]*[ns]?[^nsew]*[ew]?[^nsew]*$/i.test(coordinates);\n if (!validOrientation) {\n throw new Error('Invalid cardinal direction.');\n }\n }\n\n checkNumbers(coordinates) {\n var coordinateNumbers;\n coordinateNumbers = coordinates.match(/-?\\d+(\\.\\d+)?/g);\n this.checkAnyCoordinateNumbers(coordinateNumbers);\n this.checkEvenCoordinateNumbers(coordinateNumbers);\n return this.checkMaximumCoordinateNumbers(coordinateNumbers);\n }\n\n checkAnyCoordinateNumbers(coordinateNumbers) {\n if (coordinateNumbers.length === 0) {\n throw new Error('Could not find any coordinate number');\n }\n }\n\n checkEvenCoordinateNumbers(coordinateNumbers) {\n var isUnevenNumbers;\n isUnevenNumbers = coordinateNumbers.length % 2;\n if (isUnevenNumbers) {\n throw new Error('Uneven count of latitude/longitude numbers');\n }\n }\n\n checkMaximumCoordinateNumbers(coordinateNumbers) {\n if (coordinateNumbers.length > 6) {\n throw new Error('Too many coordinate numbers');\n }\n }\n\n};\n\nmodule.exports = Validator;\n","export const isValidLatLng =\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)°?\\s*,\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)°?\\s*$/;\n","import { useEffect, useState } from 'react';\n\nimport { GoogleMaps, IGoogleMaps, useAppModule } from '@aurorasolar/common-module-loader';\n\nexport enum GoogleMapApi {\n Places = 'placesService',\n Autocomplete = 'autocompleteService',\n}\n\nexport const useGoogleMapApi = (apisToLoad?: Array) => {\n const [_maps, setGoogleMap] = useState(null);\n const [_autocompleteService, setAutocompleteService] =\n useState(null);\n const [_placesService, setPlacesService] = useState(\n null,\n );\n\n const google = useAppModule(GoogleMaps);\n\n useEffect(() => {\n if (google) {\n const { getAutocompleteService, getPlacesService, maps } = google;\n setGoogleMap(maps);\n if (!_placesService && apisToLoad?.includes(GoogleMapApi.Places)) {\n const placesService = getPlacesService();\n setPlacesService(placesService);\n }\n\n if (!_autocompleteService && apisToLoad?.includes(GoogleMapApi.Autocomplete)) {\n const autocompleteService = getAutocompleteService();\n setAutocompleteService(autocompleteService);\n }\n }\n }, [_autocompleteService, _placesService, apisToLoad, google]);\n\n return {\n autocompleteService: _autocompleteService,\n maps: _maps,\n placesService: _placesService,\n };\n};\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { DISPLAYNAME_PREFIX, InputGroup, Keys, Popover, Position, Utils, } from \"@blueprintjs/core\";\nimport { Classes } from \"../../common\";\nimport { QueryList } from \"../query-list/queryList\";\nvar Suggest = /** @class */ (function (_super) {\n __extends(Suggest, _super);\n function Suggest() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n isOpen: (_this.props.popoverProps != null && _this.props.popoverProps.isOpen) || false,\n selectedItem: _this.getInitialSelectedItem(),\n };\n _this.TypedQueryList = QueryList.ofType();\n _this.input = null;\n _this.queryList = null;\n _this.refHandlers = {\n input: function (ref) {\n _this.input = ref;\n Utils.safeInvokeMember(_this.props.inputProps, \"inputRef\", ref);\n },\n queryList: function (ref) { return (_this.queryList = ref); },\n };\n _this.renderQueryList = function (listProps) {\n var _a = _this.props, fill = _a.fill, _b = _a.inputProps, inputProps = _b === void 0 ? {} : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? {} : _c;\n var _d = _this.state, isOpen = _d.isOpen, selectedItem = _d.selectedItem;\n var handleKeyDown = listProps.handleKeyDown, handleKeyUp = listProps.handleKeyUp;\n var _e = inputProps.autoComplete, autoComplete = _e === void 0 ? \"off\" : _e, _f = inputProps.placeholder, placeholder = _f === void 0 ? \"Search...\" : _f;\n var selectedItemText = selectedItem ? _this.props.inputValueRenderer(selectedItem) : \"\";\n // placeholder shows selected item while open.\n var inputPlaceholder = isOpen && selectedItemText ? selectedItemText : placeholder;\n // value shows query when open, and query remains when closed if nothing is selected.\n // if resetOnClose is enabled, then hide query when not open. (see handlePopoverOpening)\n var inputValue = isOpen\n ? listProps.query\n : selectedItemText || (_this.props.resetOnClose ? \"\" : listProps.query);\n if (fill) {\n popoverProps.fill = true;\n inputProps.fill = true;\n }\n return (React.createElement(Popover, __assign({ autoFocus: false, enforceFocus: false, isOpen: isOpen, position: Position.BOTTOM_LEFT }, popoverProps, { className: classNames(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classNames(Classes.SELECT_POPOVER, popoverProps.popoverClassName), onOpening: _this.handlePopoverOpening, onOpened: _this.handlePopoverOpened }),\n React.createElement(InputGroup, __assign({ autoComplete: autoComplete, disabled: _this.props.disabled }, inputProps, { inputRef: _this.refHandlers.input, onChange: listProps.handleQueryChange, onFocus: _this.handleInputFocus, onKeyDown: _this.getTargetKeyDownHandler(handleKeyDown), onKeyUp: _this.getTargetKeyUpHandler(handleKeyUp), placeholder: inputPlaceholder, value: inputValue })),\n React.createElement(\"div\", { onKeyDown: handleKeyDown, onKeyUp: handleKeyUp }, listProps.itemList)));\n };\n _this.selectText = function () {\n // wait until the input is properly focused to select the text inside of it\n requestAnimationFrame(function () {\n if (_this.input != null) {\n _this.input.setSelectionRange(0, _this.input.value.length);\n }\n });\n };\n _this.handleInputFocus = function (event) {\n _this.selectText();\n // TODO can we leverage Popover.openOnTargetFocus for this?\n if (!_this.props.openOnKeyDown) {\n _this.setState({ isOpen: true });\n }\n Utils.safeInvokeMember(_this.props.inputProps, \"onFocus\", event);\n };\n _this.handleItemSelect = function (item, event) {\n var nextOpenState;\n if (!_this.props.closeOnSelect) {\n if (_this.input != null) {\n _this.input.focus();\n }\n _this.selectText();\n nextOpenState = true;\n }\n else {\n if (_this.input != null) {\n _this.input.blur();\n }\n nextOpenState = false;\n }\n // the internal state should only change when uncontrolled.\n if (_this.props.selectedItem === undefined) {\n _this.setState({\n isOpen: nextOpenState,\n selectedItem: item,\n });\n }\n else {\n // otherwise just set the next open state.\n _this.setState({ isOpen: nextOpenState });\n }\n Utils.safeInvoke(_this.props.onItemSelect, item, event);\n };\n _this.handlePopoverInteraction = function (nextOpenState) {\n return requestAnimationFrame(function () {\n if (_this.input != null && _this.input !== document.activeElement) {\n // the input is no longer focused so we can close the popover\n _this.setState({ isOpen: false });\n }\n Utils.safeInvokeMember(_this.props.popoverProps, \"onInteraction\", nextOpenState);\n });\n };\n _this.handlePopoverOpening = function (node) {\n // reset query before opening instead of when closing to prevent flash of unfiltered items.\n // this is a limitation of the interactions between QueryList state and Popover transitions.\n if (_this.props.resetOnClose && _this.queryList) {\n _this.queryList.setQuery(\"\", true);\n }\n Utils.safeInvokeMember(_this.props.popoverProps, \"onOpening\", node);\n };\n _this.handlePopoverOpened = function (node) {\n // scroll active item into view after popover transition completes and all dimensions are stable.\n if (_this.queryList != null) {\n _this.queryList.scrollActiveItemIntoView();\n }\n Utils.safeInvokeMember(_this.props.popoverProps, \"onOpened\", node);\n };\n _this.getTargetKeyDownHandler = function (handleQueryListKeyDown) {\n return function (evt) {\n var which = evt.which;\n if (which === Keys.ESCAPE || which === Keys.TAB) {\n if (_this.input != null) {\n _this.input.blur();\n }\n _this.setState({ isOpen: false });\n }\n else if (_this.props.openOnKeyDown &&\n which !== Keys.BACKSPACE &&\n which !== Keys.ARROW_LEFT &&\n which !== Keys.ARROW_RIGHT) {\n _this.setState({ isOpen: true });\n }\n if (_this.state.isOpen) {\n Utils.safeInvoke(handleQueryListKeyDown, evt);\n }\n Utils.safeInvokeMember(_this.props.inputProps, \"onKeyDown\", evt);\n };\n };\n _this.getTargetKeyUpHandler = function (handleQueryListKeyUp) {\n return function (evt) {\n if (_this.state.isOpen) {\n Utils.safeInvoke(handleQueryListKeyUp, evt);\n }\n Utils.safeInvokeMember(_this.props.inputProps, \"onKeyUp\", evt);\n };\n };\n return _this;\n }\n Suggest.ofType = function () {\n return Suggest;\n };\n Suggest.prototype.render = function () {\n var _a;\n // omit props specific to this component, spread the rest.\n var _b = this.props, disabled = _b.disabled, inputProps = _b.inputProps, popoverProps = _b.popoverProps, restProps = __rest(_b, [\"disabled\", \"inputProps\", \"popoverProps\"]);\n return (React.createElement(this.TypedQueryList, __assign({}, restProps, { initialActiveItem: (_a = this.props.selectedItem, (_a !== null && _a !== void 0 ? _a : undefined)), onItemSelect: this.handleItemSelect, ref: this.refHandlers.queryList, renderer: this.renderQueryList })));\n };\n Suggest.prototype.componentDidUpdate = function (_prevProps, prevState) {\n var _this = this;\n var _a, _b;\n // If the selected item prop changes, update the underlying state.\n if (this.props.selectedItem !== undefined && this.props.selectedItem !== this.state.selectedItem) {\n this.setState({ selectedItem: this.props.selectedItem });\n }\n if (this.state.isOpen === false && prevState.isOpen === true) {\n // just closed, likely by keyboard interaction\n // wait until the transition ends so there isn't a flash of content in the popover\n setTimeout(function () {\n _this.maybeResetActiveItemToSelectedItem();\n }, (_b = (_a = this.props.popoverProps) === null || _a === void 0 ? void 0 : _a.transitionDuration, (_b !== null && _b !== void 0 ? _b : Popover.defaultProps.transitionDuration)));\n }\n if (this.state.isOpen && !prevState.isOpen && this.queryList != null) {\n this.queryList.scrollActiveItemIntoView();\n }\n };\n Suggest.prototype.getInitialSelectedItem = function () {\n // controlled > uncontrolled > default\n if (this.props.selectedItem !== undefined) {\n return this.props.selectedItem;\n }\n else if (this.props.defaultSelectedItem !== undefined) {\n return this.props.defaultSelectedItem;\n }\n else {\n return null;\n }\n };\n Suggest.prototype.maybeResetActiveItemToSelectedItem = function () {\n var _a;\n var shouldResetActiveItemToSelectedItem = this.props.activeItem === undefined && this.state.selectedItem !== null && !this.props.resetOnSelect;\n if (this.queryList !== null && shouldResetActiveItemToSelectedItem) {\n this.queryList.setActiveItem((_a = this.props.selectedItem, (_a !== null && _a !== void 0 ? _a : this.state.selectedItem)));\n }\n };\n Suggest.displayName = DISPLAYNAME_PREFIX + \".Suggest\";\n Suggest.defaultProps = {\n closeOnSelect: true,\n fill: false,\n openOnKeyDown: false,\n resetOnClose: false,\n };\n return Suggest;\n}(React.PureComponent));\nexport { Suggest };\n//# sourceMappingURL=suggest.js.map","import { from, Observable } from 'rxjs';\nimport { debounceTime, filter, skip, switchMap, takeUntil } from 'rxjs/operators';\n\n// Custom autocomplete operator https://blog.strongbrew.io/building-a-safe-autocomplete-operator-with-rxjs/\n// Accecpts a debounce time and a method to call for retrieving autocomplete results\nexport const autocomplete =\n (time: number, selector: (term: string) => Promise) => (source$: Observable) =>\n source$.pipe(\n debounceTime(time),\n filter((term) => !!term),\n switchMap((term: string) => from(selector(term)).pipe(takeUntil(source$.pipe(skip(1))))),\n );\n","import { filter } from './filter';\nexport function skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n//# sourceMappingURL=skip.js.map","import { FunctionComponent, useLayoutEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Colors } from '@aurorasolar/common-core/src/colors';\nimport { AuroraIcon, AuroraIconType } from '@aurorasolar/common-core/src/icon';\nimport { DefaultInputCSS } from '@aurorasolar/common-core/src/input';\nimport { parseLatLng } from '@aurorasolar/common-core/src/utils/parse-lat-lng';\nimport { isValidLatLng } from '@aurorasolar/common-core/src/utils/regex';\nimport { MenuItem } from '@blueprintjs/core';\nimport { ItemRenderer, Suggest } from '@blueprintjs/select';\n\nimport { AutocompleteRequestLocationType, FieldOptions } from './types';\nimport { useGetPlaceDetails } from './use-get-place-details';\nimport { AutocompleteAddress, useGoogleAutocomplete } from './use-google-autocomplete';\n\nconst AutocompleteSelect = styled(Suggest.ofType())`\n ${DefaultInputCSS}\n`;\n\nconst AddressItem = styled(MenuItem)`\n && {\n :hover {\n background: ${Colors.GRAY_200};\n }\n\n .bp3-menu-item-label {\n color: ${Colors.GRAY_800};\n }\n\n &.bp3-active {\n background: ${Colors.GRAY_200};\n color: ${Colors.GRAY_800};\n\n .bp3-menu-item-label {\n color: ${Colors.GRAY_800};\n }\n }\n\n color: ${Colors.GRAY_800};\n }\n`;\n\ninterface FullAddress {\n address: string;\n state?: string;\n country?: string;\n latitude: number;\n longitude: number;\n}\nconst addressToString = ({ main, secondary }: AutocompleteAddress): string =>\n `${main}, ${secondary}`;\n\ninterface AddressAutocompleteProps {\n onSelect: (value: FullAddress | null) => void;\n fill?: boolean;\n /* Default value for input element */\n defaultValue?: string;\n fieldOptions?: FieldOptions;\n 'aria-label'?: string;\n className?: string;\n placeholder?: string;\n autoCompleteRequestLocationType?: AutocompleteRequestLocationType[];\n autocompleteComponentRestrictions?: google.maps.places.ComponentRestrictions;\n}\nexport const AddressAutocomplete: FunctionComponent = ({\n onSelect,\n fill,\n defaultValue,\n fieldOptions,\n 'aria-label': ariaLabel = 'address-auto-complete',\n className,\n placeholder = 'Search Address...',\n autoCompleteRequestLocationType,\n autocompleteComponentRestrictions,\n}) => {\n const { currentItems, updateQuery } = useGoogleAutocomplete(\n autoCompleteRequestLocationType,\n autocompleteComponentRestrictions,\n );\n const getPlaceDetails = useGetPlaceDetails(fieldOptions);\n const inputWrapperRef = useRef(null);\n const [queryString, setQueryString] = useState();\n const [inputIsFocused, setInputIsFocused] = useState(false);\n\n useLayoutEffect(() => {\n setQueryString(defaultValue);\n }, [defaultValue]);\n\n const itemRenderer: ItemRenderer = (\n location,\n { handleClick, modifiers },\n ) => {\n return (\n }\n label={location.secondary}\n onMouseDown={handleClick}\n role=\"option\"\n />\n );\n };\n\n const selectItemHandler = async (value: AutocompleteAddress) => {\n const details = await getPlaceDetails(value.placeId);\n setQueryString(addressToString(value));\n onSelect(details);\n };\n const inputValueRenderer = (value: AutocompleteAddress) => addressToString(value);\n const onQueryChange = (value: string) => {\n if (isValidLatLng.test(value)) {\n const [latitude, longitude] = parseLatLng(value);\n onSelect({\n address: `${latitude}, ${longitude}`,\n latitude,\n longitude,\n });\n } else {\n updateQuery(value);\n setQueryString(value);\n }\n };\n\n const popoverIsOpen = inputIsFocused && currentItems.length !== 0 && queryString !== '';\n\n return (\n
\n {\n setInputIsFocused(false);\n },\n onFocus: () => {\n setInputIsFocused(true);\n },\n placeholder,\n }}\n inputValueRenderer={inputValueRenderer}\n itemRenderer={itemRenderer}\n items={currentItems}\n onItemSelect={selectItemHandler}\n onQueryChange={onQueryChange}\n popoverProps={{\n isOpen: popoverIsOpen,\n minimal: true,\n modifiers: {\n preventOverflow: {\n boundariesElement: 'viewport',\n },\n },\n popoverRef: (ref) => ref?.setAttribute('data-testid', 'address-autocomplete-popover'),\n }}\n query={queryString}\n />\n
\n );\n};\n","/* eslint-disable camelcase */\nimport { useEffect, useState } from 'react';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { GoogleMapApi, useGoogleMapApi } from '../use-google-map-api/use-google-map-api';\nimport { autocomplete } from './autocomplete-operator';\nimport { AutocompleteRequestLocationType } from './types';\n\nexport interface AutocompleteAddress {\n placeId: string;\n main: string;\n secondary: string;\n type: string;\n}\n\nexport const useGoogleAutocomplete = (\n autocompleteRequestLocationType?: AutocompleteRequestLocationType[],\n autocompleteComponentRestrictions?: google.maps.places.ComponentRestrictions,\n) => {\n const { autocompleteService } = useGoogleMapApi([GoogleMapApi.Autocomplete]);\n const [currentItems, setCurrentItems] = useState([]);\n const [term$] = useState(new BehaviorSubject(''));\n // TODO: Add session tokens to combine request cost\n useEffect(() => {\n if (autocompleteService) {\n const queryGooglePlaces = (term: string) => {\n return new Promise((resolve) => {\n autocompleteService.getPlacePredictions(\n {\n componentRestrictions: autocompleteComponentRestrictions,\n input: term,\n types: autocompleteRequestLocationType,\n },\n (results) => {\n resolve(\n results\n ? results.map(\n ({\n place_id,\n structured_formatting: { main_text, secondary_text },\n types,\n }): AutocompleteAddress => {\n return {\n main: main_text,\n placeId: place_id,\n secondary: secondary_text,\n type: types[0],\n };\n },\n )\n : [],\n );\n },\n );\n });\n };\n const subscription = term$\n .pipe(autocomplete(300, queryGooglePlaces))\n .subscribe((next) => setCurrentItems(next as AutocompleteAddress[]));\n return () => {\n subscription.unsubscribe();\n };\n }\n return undefined;\n }, [\n autocompleteService,\n term$,\n autocompleteRequestLocationType,\n autocompleteComponentRestrictions,\n ]);\n\n const updateQuery = (value: string) => {\n term$.next(value);\n };\n\n return { currentItems, updateQuery };\n};\n","import { useCallback } from 'react';\n\nimport { GoogleMapApi, useGoogleMapApi } from '../use-google-map-api/use-google-map-api';\nimport { FieldOptions, FullAddress } from './types';\nimport { filterAddressComponents } from './utils';\n\nexport const useGetPlaceDetails = (fieldOptions?: FieldOptions) => {\n const { placesService } = useGoogleMapApi([GoogleMapApi.Places]);\n const getPlaceDetails = useCallback(\n async (placeId: string): Promise => {\n if (placesService == null) {\n return null;\n }\n const { address_components, geometry, formatted_address }: google.maps.places.PlaceResult =\n (await new Promise((resolve) => {\n placesService.getDetails(\n {\n fields: ['address_components', 'geometry', 'formatted_address'],\n placeId,\n },\n (result: google.maps.places.PlaceResult) => resolve(result),\n );\n })) ?? {};\n\n const { city, country, county, postalCode, state, street, streetAddress, streetNumber } =\n filterAddressComponents(address_components ?? [], fieldOptions);\n\n return {\n address: formatted_address ?? '',\n city,\n country,\n county,\n latitude: geometry?.location.lat() ?? 0,\n longitude: geometry?.location.lng() ?? 0,\n postalCode,\n state,\n street,\n streetAddress,\n streetNumber,\n };\n },\n [placesService, fieldOptions],\n );\n return getPlaceDetails;\n};\n","import Coordinate from 'coordinate-parser';\n\nimport { AddressComponent, FieldOptions, FilteredAddressComponents } from './types';\n\nexport const isValidCoordinate = (coordinate: string) => {\n try {\n // eslint-disable-next-line no-new\n new Coordinate(coordinate);\n return true;\n } catch (_e) {\n return false;\n }\n};\n\nexport const filterAddressComponents = (\n addressComponents: AddressComponent[],\n fieldOptions: FieldOptions = {},\n): FilteredAddressComponents => {\n const fieldMappings = [\n { key: 'country', matchType: 'country' },\n { key: 'county', matchType: 'administrative_area_level_2' },\n { key: 'state', matchType: 'administrative_area_level_1' },\n { key: 'city', matchType: 'locality' },\n { key: 'street', matchType: 'route' },\n { key: 'streetNumber', matchType: 'street_number' },\n { key: 'streetAddress', matchType: 'street_address' },\n { key: 'postalCode', matchType: 'postal_code' },\n ] as const;\n\n return addressComponents.reduce(\n // eslint-disable-next-line camelcase, @typescript-eslint/naming-convention\n (all: FilteredAddressComponents, { short_name, types, long_name }) => {\n const mapping = fieldMappings.find(({ matchType }) => types.includes(matchType));\n if (!mapping) {\n return all;\n }\n\n // eslint-disable-next-line camelcase, @typescript-eslint/naming-convention\n const value = fieldOptions[mapping.key]?.useLongName ? long_name : short_name;\n return { ...all, [mapping.key]: value };\n },\n {} as FilteredAddressComponents,\n );\n};\n","import { isValidLatLng } from './regex';\n\nexport const parseLatLng = (latLng: string) => {\n if (isValidLatLng.test(latLng)) {\n return latLng.split(',').map((location) => Number.parseFloat(location.replace(/[\\s°]/g, '')));\n }\n return [];\n};\n"],"names":["CoordinateNumber","constructor","coordinateNumbers","this","normalizeCoordinateNumbers","sign","normalizedSignOf","degrees","minutes","seconds","milliseconds","map","Math","abs","currentNumber","i","j","len","normalizedNumbers","length","parseFloat","number","detectSpecialFormats","degreesCanBeSpecial","degreesCanBeMilliseconds","degreesAsMilliseconds","degreesCanBeDegreesMinutesAndSeconds","degreesAsDegreesMinutesAndSeconds","degreesCanBeDegreesAndMinutes","degreesAsDegreesAndMinutes","canBe","newDegrees","floor","toDecimal","module","exports","Coordinates","Validator","coordinateString","coordinates","latitudeNumbers","longitudeNumbers","validate","parse","groupCoordinateNumbers","latitude","extractLatitude","longitude","extractLongitude","numberCountEachCoordinate","extractCoordinateNumbers","slice","match","coordinateNumbersToDecimal","latitudeIsNegative","longitudeIsNegative","coordinate","getLatitude","getLongitude","isValid","error","checkContainsNoLetters","checkValidOrientation","checkNumbers","test","Error","checkAnyCoordinateNumbers","checkEvenCoordinateNumbers","checkMaximumCoordinateNumbers","isValidLatLng","GoogleMapApi","Suggest","_super","_this","apply","arguments","state","isOpen","props","popoverProps","selectedItem","getInitialSelectedItem","TypedQueryList","ofType","input","queryList","refHandlers","ref","inputProps","renderQueryList","listProps","_a","fill","_b","_c","_d","handleKeyDown","handleKeyUp","_e","autoComplete","_f","placeholder","selectedItemText","inputValueRenderer","inputPlaceholder","inputValue","query","resetOnClose","autoFocus","enforceFocus","position","BOTTOM_LEFT","className","onInteraction","handlePopoverInteraction","popoverClassName","onOpening","handlePopoverOpening","onOpened","handlePopoverOpened","disabled","inputRef","onChange","handleQueryChange","onFocus","handleInputFocus","onKeyDown","getTargetKeyDownHandler","onKeyUp","getTargetKeyUpHandler","value","itemList","selectText","requestAnimationFrame","setSelectionRange","event","openOnKeyDown","setState","handleItemSelect","item","nextOpenState","closeOnSelect","blur","focus","undefined","onItemSelect","document","activeElement","node","setQuery","scrollActiveItemIntoView","handleQueryListKeyDown","evt","which","handleQueryListKeyUp","prototype","render","restProps","initialActiveItem","renderer","componentDidUpdate","_prevProps","prevState","setTimeout","maybeResetActiveItemToSelectedItem","transitionDuration","defaultProps","defaultSelectedItem","shouldResetActiveItemToSelectedItem","activeItem","resetOnSelect","setActiveItem","displayName","useGoogleMapApi","apisToLoad","_maps","setGoogleMap","useState","_autocompleteService","setAutocompleteService","_placesService","setPlacesService","google","useEffect","getAutocompleteService","getPlacesService","maps","includes","Places","placesService","Autocomplete","autocompleteService","autocomplete","time","selector","source$","pipe","debounceTime","filter","term","switchMap","from","takeUntil","count","_","index","AutocompleteSelect","AddressItem","GRAY_200","GRAY_800","addressToString","main","secondary","AddressAutocomplete","onSelect","defaultValue","fieldOptions","ariaLabel","autoCompleteRequestLocationType","autocompleteComponentRestrictions","currentItems","updateQuery","autocompleteRequestLocationType","setCurrentItems","term$","BehaviorSubject","queryGooglePlaces","Promise","resolve","getPlacePredictions","componentRestrictions","types","results","place_id","structured_formatting","main_text","secondary_text","placeId","type","subscription","subscribe","next","unsubscribe","useGoogleAutocomplete","getPlaceDetails","useCallback","async","address_components","geometry","formatted_address","getDetails","fields","result","city","country","county","postalCode","street","streetAddress","streetNumber","addressComponents","fieldMappings","key","matchType","reduce","all","short_name","long_name","mapping","find","useLongName","filterAddressComponents","address","location","lat","lng","useGetPlaceDetails","inputWrapperRef","useRef","queryString","setQueryString","inputIsFocused","setInputIsFocused","useLayoutEffect","popoverIsOpen","id","large","onBlur","itemRenderer","handleClick","modifiers","text","active","icon","name","PROJECT_ADDRESS_MAP_PIN","label","onMouseDown","role","items","details","onQueryChange","latLng","split","Number","replace","minimal","preventOverflow","boundariesElement","popoverRef","setAttribute"],"sourceRoot":""}