@sanity/google-maps-input 3.0.0-studio-v3.1 → 3.0.0-v3-studio.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2016 - 2022 Sanity.io
3
+ Copyright (c) 2022 - 2022 Sanity.io
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -13,6 +13,12 @@ This plugin will replace the default `geopoint` input component.
13
13
 
14
14
  ![Google maps input](assets/google-maps-input.png)
15
15
 
16
+ ## Know issues in Studio V3
17
+
18
+ * Diff-preview is not implemented.
19
+
20
+ These will be re-added well before Studio V3 GA.
21
+
16
22
  ## Installation
17
23
 
18
24
  In your studio folder, run:
@@ -64,24 +70,13 @@ MIT-licensed. See LICENSE.
64
70
 
65
71
  ## Develop & test
66
72
 
67
- Make sure to run `npm run build` once, then run
68
-
69
- ```bash
70
- npm run link-watch
71
- ```
72
-
73
- In another shell, `cd` to your test studio and run:
74
-
75
- ```bash
76
- npx yalc add @sanity/google-maps-input --link && yarn install
77
- ```
78
-
79
- Now, changes in this repo will be automatically built and pushed to the studio,
80
- triggering hotreload. Yalc avoids issues with react-hooks that are typical when using yarn/npm link.
81
-
82
- ### About build & watch
83
-
84
- This plugin uses [@sanity/plugin-sdk](https://github.com/sanity-io/plugin-sdk)
73
+ This plugin uses [@sanity/plugin-kit](https://github.com/sanity-io/plugin-kit)
85
74
  with default configuration for build & watch scripts.
86
75
 
76
+ See [Testing a plugin in Sanity Studio](https://github.com/sanity-io/plugin-kit#testing-a-plugin-in-sanity-studio)
77
+ on how to run this plugin with hotreload in the studio.
78
+
79
+ ### Release new version
87
80
 
81
+ Run ["CI & Release" workflow](https://github.com/sanity-io/google-maps-input/actions/workflows/main.yml).
82
+ Make sure to select the main branch and check "Release new version".
package/lib/cjs/index.js CHANGED
@@ -535,7 +535,7 @@ class $6c4d418093d85b71$var$GeopointInput extends (0, ($parcel$interopDefault($d
535
535
  onChange((0, $dyHF6$sanityform.unset)());
536
536
  };
537
537
  render() {
538
- const { value: value , readOnly: readOnly , compareValue: compareValue , geoConfig: config } = this.props;
538
+ const { value: value , readOnly: readOnly , geoConfig: config , path: path , changed: changed , focused: focused } = this.props;
539
539
  const { modalOpen: modalOpen } = this.state;
540
540
  if (!config || !config.apiKey) return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsxs)("div", {
541
541
  children: [
@@ -569,15 +569,13 @@ class $6c4d418093d85b71$var$GeopointInput extends (0, ($parcel$interopDefault($d
569
569
  });
570
570
  return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsxs)((0, $dyHF6$reactjsxruntime.Fragment), {
571
571
  children: [
572
- value && /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity_unstable.ChangeIndicatorCompareValueProvider), {
573
- value: value,
574
- compareValue: compareValue,
575
- children: /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity_unstable.ChangeIndicator), {
576
- compareDeep: true,
577
- children: /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $116268a9005e03a0$export$1c4ad7c095d42d37), {
578
- src: $6c4d418093d85b71$var$getStaticImageUrl(value, config.apiKey),
579
- alt: "Map location"
580
- })
572
+ value && /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity_unstable.ChangeIndicator), {
573
+ path: path,
574
+ isChanged: changed,
575
+ hasFocus: !!focused,
576
+ children: /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $116268a9005e03a0$export$1c4ad7c095d42d37), {
577
+ src: $6c4d418093d85b71$var$getStaticImageUrl(value, config.apiKey),
578
+ alt: "Map location"
581
579
  })
582
580
  }),
583
581
  !readOnly && /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanityui.Box), {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.tsx","src/input/GeopointInput.tsx","src/loader/GoogleMapsLoadProxy.tsx","src/loader/loadGoogleMapsApi.ts","src/loader/LoadError.tsx","src/input/GeopointSelect.tsx","src/map/SearchInput.tsx","src/map/SearchInput.styles.tsx","src/map/Map.tsx","src/map/util.ts","src/map/Map.styles.tsx","src/map/Marker.tsx","src/input/GeopointInput.styles.tsx","src/global-workaround.ts","src/diff/GeopointArrayDiff.tsx","src/diff/GeopointMove.tsx","src/map/Arrow.tsx","src/diff/GeopointFieldDiff.styles.tsx","src/diff/GeopointFieldDiff.tsx"],"sourcesContent":["import React from 'react'\nimport {createPlugin, SchemaType} from 'sanity'\nimport GeopointInput, {GeopointInputProps} from './input/GeopointInput'\nimport {setGeoConfig} from './global-workaround'\nimport {Geopoint, GeopointSchemaType} from './types'\n\nexport {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'\nexport {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'\n\nexport type {LatLng, GeopointSchemaType, Geopoint} from './types'\nexport {GeopointInput}\nexport type {GeopointInputProps}\n\nexport interface GoogleMapsInputConfig {\n apiKey: string\n defaultZoom?: number\n defaultLocale?: string\n defaultLocation?: {\n lat: number\n lng: number\n }\n}\n\nexport const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {\n setGeoConfig(config)\n return {\n name: 'google-maps-input',\n form: {\n renderInput: (props) => {\n if (isGeopoint(props.schemaType)) {\n const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>\n return <GeopointInput {...castedProps} geoConfig={config} />\n }\n return undefined\n },\n },\n }\n})\n\nfunction isGeopoint(schemaType: SchemaType): schemaType is GeopointSchemaType {\n return isType('geopoint', schemaType)\n}\n\nfunction isType(name: string, schema?: SchemaType): boolean {\n if (schema?.name === name) {\n return true\n // eslint-disable-next-line no-negated-condition\n } else if (!schema?.name) {\n return false\n }\n return isType(name, schema?.type)\n}\n","import React from 'react'\nimport {uniqueId} from 'lodash'\nimport {Box, Button, Dialog, Grid} from '@sanity/ui'\nimport {EditIcon, TrashIcon} from '@sanity/icons'\nimport {ChangeIndicator, ChangeIndicatorCompareValueProvider} from 'sanity/_unstable'\nimport {ObjectInputProps, set, setIfMissing, unset} from 'sanity/form'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {Geopoint, GeopointSchemaType, LatLng} from '../types'\nimport {GeopointSelect} from './GeopointSelect'\nimport {DialogInnerContainer, PreviewImage} from './GeopointInput.styles'\nimport {GoogleMapsInputConfig} from '../index'\nimport {getGeoConfig} from '../global-workaround'\n\nconst getStaticImageUrl = (value: LatLng, apiKey: string) => {\n const loc = `${value.lat},${value.lng}`\n const params = {\n key: apiKey,\n center: loc,\n markers: loc,\n zoom: 13,\n scale: 2,\n size: '640x300',\n } as const\n const qs = Object.keys(params).reduce((res, param) => {\n return res.concat(`${param}=${encodeURIComponent(params[param as keyof typeof params])}`)\n }, [] as string[])\n\n return `https://maps.googleapis.com/maps/api/staticmap?${qs.join('&')}`\n}\n\nexport type GeopointInputProps = ObjectInputProps<Geopoint, GeopointSchemaType> & {\n geoConfig: GoogleMapsInputConfig\n}\n\ntype Focusable = any\n\ninterface InputState {\n modalOpen: boolean\n}\n\nclass GeopointInput extends React.PureComponent<GeopointInputProps, InputState> {\n _geopointInputId = uniqueId('GeopointInput')\n\n editButton: Focusable | undefined\n\n constructor(props: GeopointInputProps) {\n super(props)\n\n this.state = {\n modalOpen: false,\n }\n }\n\n setEditButton = (el: Focusable) => {\n this.editButton = el\n }\n\n focus() {\n if (this.editButton) {\n this.editButton.focus()\n }\n }\n\n handleToggleModal = () => {\n this.setState((prevState) => ({modalOpen: !prevState.modalOpen}))\n }\n\n handleCloseModal = () => {\n this.setState({modalOpen: false})\n }\n\n handleChange = (latLng: google.maps.LatLng) => {\n const {schemaType, onChange} = this.props\n onChange([\n setIfMissing({\n _type: schemaType.name,\n }),\n set(latLng.lat(), ['lat']),\n set(latLng.lng(), ['lng']),\n ])\n }\n\n handleClear = () => {\n const {onChange} = this.props\n onChange(unset())\n }\n\n render() {\n const {value, readOnly, compareValue, geoConfig: config} = this.props\n\n const {modalOpen} = this.state\n\n if (!config || !config.apiKey) {\n return (\n <div>\n <p>\n The <a href=\"https://sanity.io/docs/schema-types/geopoint-type\">Geopoint type</a> needs\n a Google Maps API key with access to:\n </p>\n <ul>\n <li>Google Maps JavaScript API</li>\n <li>Google Places API Web Service</li>\n <li>Google Static Maps API</li>\n </ul>\n <p>\n Please enter the API key with access to these services in your googleMapsInput plugin\n config.\n </p>\n </div>\n )\n }\n\n return (\n <>\n {value && (\n <ChangeIndicatorCompareValueProvider value={value} compareValue={compareValue}>\n <ChangeIndicator compareDeep>\n <PreviewImage src={getStaticImageUrl(value, config.apiKey)} alt=\"Map location\" />\n </ChangeIndicator>\n </ChangeIndicatorCompareValueProvider>\n )}\n\n {!readOnly && (\n <Box marginTop={4}>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n icon={value && EditIcon}\n padding={3}\n ref={this.setEditButton}\n text={value ? 'Edit' : 'Set location'}\n onClick={this.handleToggleModal}\n />\n\n {value && (\n <Button\n tone=\"critical\"\n icon={TrashIcon}\n padding={3}\n mode=\"ghost\"\n text={'Remove'}\n onClick={this.handleClear}\n />\n )}\n </Grid>\n </Box>\n )}\n\n {modalOpen && (\n <Dialog\n id={`${this._geopointInputId}_dialog`}\n onClose={this.handleCloseModal}\n header=\"Place the marker on the map\"\n width={1}\n >\n <DialogInnerContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => (\n <GeopointSelect\n api={api}\n value={value || undefined}\n onChange={readOnly ? undefined : this.handleChange}\n defaultLocation={config.defaultLocation}\n defaultZoom={config.defaultZoom}\n />\n )}\n </GoogleMapsLoadProxy>\n </DialogInnerContainer>\n </Dialog>\n )}\n </>\n )\n }\n}\n\nexport default GeopointInput\n","import React from 'react'\nimport {Subscription} from 'rxjs'\nimport {loadGoogleMapsApi, GoogleLoadState} from './loadGoogleMapsApi'\nimport {LoadError} from './LoadError'\nimport {GoogleMapsInputConfig} from '../index'\n\ninterface LoadProps {\n children: (api: typeof window.google.maps) => React.ReactElement\n config: GoogleMapsInputConfig\n}\n\nexport class GoogleMapsLoadProxy extends React.Component<LoadProps, GoogleLoadState> {\n loadSubscription: Subscription | undefined\n\n constructor(props: LoadProps) {\n super(props)\n\n this.state = {loadState: 'loading'}\n\n let sync = true\n this.loadSubscription = loadGoogleMapsApi(props.config).subscribe((loadState) => {\n if (sync) {\n this.state = loadState\n } else {\n this.setState(loadState)\n }\n })\n sync = false\n }\n\n componentWillUnmount() {\n if (this.loadSubscription) {\n this.loadSubscription.unsubscribe()\n }\n }\n\n render() {\n switch (this.state.loadState) {\n case 'loadError':\n return <LoadError error={this.state.error} isAuthError={false} />\n case 'authError':\n return <LoadError isAuthError />\n case 'loading':\n return <div>Loading Google Maps API</div>\n case 'loaded':\n return this.props.children(this.state.api) || null\n default:\n return null\n }\n }\n}\n","import {Observable, BehaviorSubject} from 'rxjs'\nimport {GoogleMapsInputConfig} from '../index'\n\ndeclare global {\n interface Window {\n gm_authFailure: any\n ___sanity_googleMapsApiCallback: any\n }\n}\n\nconst callbackName = '___sanity_googleMapsApiCallback'\nconst authFailureCallbackName = 'gm_authFailure'\nconst locale = (typeof window !== 'undefined' && window.navigator.language) || 'en'\n\nexport interface LoadingState {\n loadState: 'loading'\n}\n\nexport interface LoadedState {\n loadState: 'loaded'\n api: typeof window.google.maps\n}\n\nexport interface LoadErrorState {\n loadState: 'loadError'\n error: Error\n}\n\nexport interface AuthErrorState {\n loadState: 'authError'\n}\n\nexport type GoogleLoadState = LoadingState | LoadedState | LoadErrorState | AuthErrorState\n\nlet subject: BehaviorSubject<GoogleLoadState>\n\nexport function loadGoogleMapsApi(config: GoogleMapsInputConfig): Observable<GoogleLoadState> {\n const selectedLocale = config.defaultLocale || locale || 'en-US'\n\n if (subject) {\n return subject\n }\n\n subject = new BehaviorSubject<GoogleLoadState>({loadState: 'loading'})\n\n window[authFailureCallbackName] = () => {\n delete window[authFailureCallbackName]\n subject.next({loadState: 'authError'})\n }\n\n window[callbackName] = () => {\n delete window[callbackName]\n subject.next({loadState: 'loaded', api: window.google.maps})\n }\n\n const script = document.createElement('script')\n script.onerror = (\n event: Event | string,\n source?: string,\n lineno?: number,\n colno?: number,\n error?: Error\n ) =>\n subject.next({\n loadState: 'loadError',\n error: coeerceError(event, error),\n } as LoadErrorState)\n\n script.src = `https://maps.googleapis.com/maps/api/js?key=${config.apiKey}&libraries=places&callback=${callbackName}&language=${selectedLocale}`\n document.getElementsByTagName('head')[0].appendChild(script)\n\n return subject\n}\n\nfunction coeerceError(event: Event | string, error?: Error): Error {\n if (error) {\n return error\n }\n\n if (typeof event === 'string') {\n return new Error(event)\n }\n\n return new Error(isErrorEvent(event) ? event.message : 'Failed to load Google Maps API')\n}\n\nfunction isErrorEvent(event: unknown): event is ErrorEvent {\n if (typeof event !== 'object' || event === null) {\n return false\n }\n\n if (!('message' in event)) {\n return false\n }\n\n return typeof (event as ErrorEvent).message === 'string'\n}\n","import * as React from 'react'\nimport {Card, Box, Text, Code} from '@sanity/ui'\n\ntype Props = {error: Error; isAuthError: false} | {isAuthError: true}\n\nexport function LoadError(props: Props) {\n return (\n <Card tone=\"critical\" radius={1}>\n <Box as=\"header\" paddingX={4} paddingTop={4} paddingBottom={1}>\n <Text as=\"h2\" weight=\"bold\">\n Google Maps failed to load\n </Text>\n </Box>\n\n <Box paddingX={4} paddingTop={4} paddingBottom={1}>\n {props.isAuthError ? (\n <AuthError />\n ) : (\n <>\n <Text as=\"h3\">Error details:</Text>\n <pre>\n <Code size={1}>{'error' in props && props.error?.message}</Code>\n </pre>\n </>\n )}\n </Box>\n </Card>\n )\n}\n\nfunction AuthError() {\n return (\n <Text>\n <p>The error appears to be related to authentication</p>\n <p>Common causes include:</p>\n <ul>\n <li>Incorrect API key</li>\n <li>Referer not allowed</li>\n <li>Missing authentication scope</li>\n </ul>\n <p>Check the browser developer tools for more information.</p>\n </Text>\n )\n}\n","import React from 'react'\nimport {SearchInput} from '../map/SearchInput'\nimport {GoogleMap} from '../map/Map'\nimport {Marker} from '../map/Marker'\nimport {LatLng, Geopoint} from '../types'\n\nconst fallbackLatLng: LatLng = {lat: 40.7058254, lng: -74.1180863}\n\ninterface SelectProps {\n api: typeof window.google.maps\n value?: Geopoint\n onChange?: (latLng: google.maps.LatLng) => void\n defaultLocation?: LatLng\n defaultZoom?: number\n}\n\nexport class GeopointSelect extends React.PureComponent<SelectProps> {\n static defaultProps = {\n defaultZoom: 8,\n defaultLocation: {lng: 10.74609, lat: 59.91273},\n }\n\n mapRef = React.createRef<HTMLDivElement>()\n\n getCenter() {\n const {value = {}, defaultLocation = {}} = this.props\n const point: LatLng = {...fallbackLatLng, ...defaultLocation, ...value}\n return point\n }\n\n handlePlaceChanged = (place: google.maps.places.PlaceResult) => {\n if (!place.geometry?.location) {\n return\n }\n\n this.setValue(place.geometry.location)\n }\n\n handleMarkerDragEnd = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n handleMapClick = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n setValue(geoPoint: google.maps.LatLng) {\n if (this.props.onChange) {\n this.props.onChange(geoPoint)\n }\n }\n\n render() {\n const {api, defaultZoom, value, onChange} = this.props\n return (\n <GoogleMap\n api={api}\n location={this.getCenter()}\n onClick={this.handleMapClick}\n defaultZoom={defaultZoom}\n >\n {(map) => (\n <>\n <SearchInput api={api} map={map} onChange={this.handlePlaceChanged} />\n {value && (\n <Marker\n api={api}\n map={map}\n position={value}\n onMove={onChange ? this.handleMarkerDragEnd : undefined}\n />\n )}\n </>\n )}\n </GoogleMap>\n )\n }\n}\n","import * as React from 'react'\nimport {TextInput} from '@sanity/ui'\nimport {WrapperContainer} from './SearchInput.styles'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onChange: (result: google.maps.places.PlaceResult) => void\n}\n\nexport class SearchInput extends React.PureComponent<Props> {\n searchInputRef = React.createRef<HTMLInputElement>()\n autoComplete: google.maps.places.Autocomplete | undefined\n\n handleChange = () => {\n if (!this.autoComplete) {\n return\n }\n\n this.props.onChange(this.autoComplete.getPlace())\n\n if (this.searchInputRef.current) {\n this.searchInputRef.current.value = ''\n }\n }\n\n componentDidMount() {\n const input = this.searchInputRef.current\n if (!input) {\n return\n }\n\n const {api, map} = this.props\n const {Circle, places, event} = api\n const searchBounds = new Circle({center: map.getCenter(), radius: 100}).getBounds()!\n this.autoComplete = new places.Autocomplete(input, {\n bounds: searchBounds,\n types: [], // return all kinds of places\n })\n\n event.addListener(this.autoComplete, 'place_changed', this.handleChange)\n }\n\n render() {\n return (\n <WrapperContainer>\n <TextInput\n name=\"place\"\n ref={this.searchInputRef}\n placeholder=\"Search for place or address\"\n padding={4}\n />\n </WrapperContainer>\n )\n }\n}\n","import styled from 'styled-components'\n\nexport const WrapperContainer = styled.div`\n position: absolute;\n right: 10px;\n top: 10px;\n width: 220px;\n`\n","import React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\nimport {MapContainer} from './Map.styles'\n\ninterface MapProps {\n api: typeof window.google.maps\n location: LatLng\n bounds?: google.maps.LatLngBounds\n defaultZoom?: number\n mapTypeControl?: boolean\n scrollWheel?: boolean\n controlSize?: number\n onClick?: (event: google.maps.MapMouseEvent) => void\n children?: (map: google.maps.Map) => React.ReactElement\n}\n\ninterface MapState {\n map: google.maps.Map | undefined\n}\n\nexport class GoogleMap extends React.PureComponent<MapProps, MapState> {\n static defaultProps = {\n defaultZoom: 8,\n scrollWheel: true,\n }\n\n state: MapState = {map: undefined}\n clickHandler: google.maps.MapsEventListener | undefined\n mapRef = React.createRef<HTMLDivElement>()\n mapEl: HTMLDivElement | null = null\n\n componentDidMount() {\n this.attachClickHandler()\n }\n\n attachClickHandler = () => {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {api, onClick} = this.props\n const {event} = api\n\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n\n if (onClick) {\n this.clickHandler = event.addListener(map, 'click', onClick)\n }\n }\n\n componentDidUpdate(prevProps: MapProps) {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {onClick, location, bounds} = this.props\n\n if (prevProps.onClick !== onClick) {\n this.attachClickHandler()\n }\n\n if (!latLngAreEqual(prevProps.location, location)) {\n map.panTo(this.getCenter())\n }\n\n if (bounds && (!prevProps.bounds || !bounds.equals(prevProps.bounds))) {\n map.fitBounds(bounds)\n }\n }\n\n componentWillUnmount() {\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n }\n\n getCenter(): google.maps.LatLng {\n const {location, api} = this.props\n return new api.LatLng(location.lat, location.lng)\n }\n\n constructMap(el: HTMLDivElement) {\n const {defaultZoom, api, mapTypeControl, controlSize, bounds, scrollWheel} = this.props\n\n const map = new api.Map(el, {\n zoom: defaultZoom,\n center: this.getCenter(),\n scrollwheel: scrollWheel,\n streetViewControl: false,\n mapTypeControl,\n controlSize,\n })\n\n if (bounds) {\n map.fitBounds(bounds)\n }\n\n return map\n }\n\n setMapElement = (element: HTMLDivElement | null) => {\n if (element && element !== this.mapEl) {\n const map = this.constructMap(element)\n this.setState({map}, this.attachClickHandler)\n }\n\n this.mapEl = element\n }\n\n render() {\n const {children} = this.props\n const {map} = this.state\n return (\n <>\n <MapContainer ref={this.setMapElement} />\n {children && map ? children(map) : null}\n </>\n )\n }\n}\n","import {LatLng} from '../types'\n\nexport function latLngAreEqual(\n latLng1: LatLng | google.maps.LatLng,\n latLng2: LatLng | google.maps.LatLng\n): boolean {\n const lat1 = typeof latLng1.lat === 'function' ? latLng1.lat() : latLng1.lat\n const lng1 = typeof latLng1.lng === 'function' ? latLng1.lng() : latLng1.lng\n\n const lat2 = typeof latLng2.lat === 'function' ? latLng2.lat() : latLng2.lat\n const lng2 = typeof latLng2.lng === 'function' ? latLng2.lng() : latLng2.lng\n\n return lat1 === lat2 && lng1 === lng2\n}\n","import styled from 'styled-components'\n\nexport const MapContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n`\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\nconst markerPath =\n 'M 3.052 3.7 C 1.56 5.293 0.626 7.612 0.663 9.793 C 0.738 14.352 2.793 16.077 6.078 22.351 C 7.263 25.111 8.497 28.032 9.672 32.871 C 9.835 33.584 9.994 34.246 10.069 34.305 C 10.143 34.362 10.301 33.697 10.465 32.983 C 11.639 28.145 12.875 25.226 14.059 22.466 C 17.344 16.192 19.398 14.466 19.474 9.908 C 19.511 7.727 18.574 5.405 17.083 3.814 C 15.379 1.994 12.809 0.649 10.069 0.593 C 7.328 0.536 4.756 1.882 3.052 3.7 Z'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onMove?: (event: google.maps.MapMouseEvent) => void\n onClick?: (event: google.maps.MapMouseEvent) => void\n position: LatLng | google.maps.LatLng\n zIndex?: number\n opacity?: number\n label?: string\n markerRef?: React.MutableRefObject<google.maps.Marker | undefined>\n color?: {background: string; border: string; text: string}\n}\n\nexport class Marker extends React.PureComponent<Props> {\n marker: google.maps.Marker | undefined\n\n eventHandlers: {\n move?: google.maps.MapsEventListener\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {position, api, map, onMove, zIndex, opacity, label, markerRef, color} = this.props\n const {Marker: GMarker} = api\n\n let icon: google.maps.Symbol | undefined\n if (color) {\n icon = {\n path: markerPath,\n fillOpacity: 1,\n fillColor: color.background,\n strokeColor: color.border,\n strokeWeight: 2,\n anchor: new api.Point(10, 35),\n labelOrigin: new api.Point(10, 11),\n }\n }\n\n this.marker = new GMarker({\n draggable: Boolean(onMove),\n position,\n map,\n zIndex,\n opacity,\n label,\n icon,\n })\n\n if (markerRef) {\n markerRef.current = this.marker\n }\n\n this.attachMoveHandler()\n this.attachClickHandler()\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.marker) {\n return\n }\n\n const {position, onMove, label, zIndex, opacity, map} = this.props\n\n if (prevProps.onMove !== onMove) {\n this.attachMoveHandler()\n }\n\n if (!latLngAreEqual(prevProps.position, position)) {\n this.marker.setPosition(position)\n }\n\n if (prevProps.label !== label) {\n this.marker.setLabel(label || null)\n }\n\n if (prevProps.zIndex !== zIndex) {\n this.marker.setZIndex(zIndex || null)\n }\n\n if (prevProps.opacity !== opacity) {\n this.marker.setOpacity(opacity || null)\n }\n\n if (prevProps.map !== map) {\n this.marker.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n\n if (this.marker) {\n this.marker.setMap(null)\n }\n }\n\n attachMoveHandler() {\n const {api, onMove} = this.props\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n if (this.marker && onMove) {\n this.eventHandlers.move = api.event.addListener(this.marker, 'dragend', onMove)\n }\n }\n\n attachClickHandler() {\n const {api, onClick} = this.props\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n if (this.marker && onClick) {\n this.eventHandlers.click = api.event.addListener(this.marker, 'click', onClick)\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const PreviewImage = styled.img`\n width: 100%;\n height: auto;\n vertical-align: top;\n`\n\nexport const DialogInnerContainer = styled.div`\n height: 40rem;\n width: 50rem;\n`\n","import {GoogleMapsInputConfig} from './index'\n\nlet config: GoogleMapsInputConfig\n\nexport function getGeoConfig(): GoogleMapsInputConfig {\n return config as GoogleMapsInputConfig\n}\n\nexport function setGeoConfig(newConfig: GoogleMapsInputConfig): void {\n config = newConfig\n}\n","import * as React from 'react'\nimport {\n ArrayDiff,\n ObjectDiff,\n Diff,\n DiffProps as GenericDiffProps,\n DiffComponent,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ArrayDiff<Geopoint>>\n\nexport const GeopointArrayDiff: DiffComponent<ArrayDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof google.maps}) {\n const fromValue = (diff.fromValue || []).filter(hasCoordinates)\n const toValue = (diff.toValue || []).filter(hasCoordinates)\n if (fromValue.length === 0 && toValue.length === 0) {\n return null\n }\n\n const bounds = getBounds(fromValue, toValue, api)\n return (\n <GoogleMap\n api={api}\n location={bounds.getCenter().toJSON()}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n >\n {(map) => (\n <>\n {diff.items.map(({toIndex, diff: pointDiff}) => {\n if (!isChangeDiff(pointDiff)) {\n return null\n }\n\n return (\n <GeopointMove\n key={toIndex}\n api={api}\n map={map}\n diff={pointDiff}\n label={`${toIndex}`}\n />\n )\n })}\n </>\n )}\n </GoogleMap>\n )\n}\n\nfunction isChangeDiff(diff: Diff): diff is ObjectDiff<Geopoint> {\n return diff.action !== 'unchanged' && diff.type === 'object'\n}\n\nfunction hasCoordinates(point: Partial<Geopoint>): point is Geopoint {\n return typeof point.lat === 'number' && typeof point.lng === 'number'\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral[] | null | undefined,\n toValue: google.maps.LatLngLiteral[] | null | undefined,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n const bounds = new api.LatLngBounds()\n const points = [...(fromValue || []), ...(toValue || [])]\n points.forEach((point) => bounds.extend(point))\n return bounds\n}\n","import * as React from 'react'\nimport {useUserColor, ObjectDiff} from 'sanity/_unstable'\nimport {Marker} from '../map/Marker'\nimport {Arrow} from '../map/Arrow'\nimport {Geopoint} from '../types'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n diff: ObjectDiff<Geopoint>\n label?: string\n}\n\nexport function GeopointMove({diff, api, map, label}: Props) {\n const {fromValue: from, toValue: to} = diff\n const annotation = diff.isChanged ? diff.annotation : undefined\n const userColor = useUserColor(annotation ? annotation.author : null) || undefined\n const fromRef = React.useRef<google.maps.Marker>()\n const toRef = React.useRef<google.maps.Marker>()\n\n return (\n <>\n {from && (\n <Marker\n api={api}\n map={map}\n position={from}\n zIndex={0}\n opacity={0.55}\n markerRef={fromRef}\n color={userColor}\n />\n )}\n {from && to && <Arrow api={api} map={map} from={from} to={to} zIndex={1} color={userColor} />}\n {to && (\n <Marker\n api={api}\n map={map}\n position={to}\n zIndex={2}\n markerRef={toRef}\n label={label}\n color={userColor}\n />\n )}\n </>\n )\n}\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n from: LatLng\n to: LatLng\n color?: {background: string; border: string; text: string}\n zIndex?: number\n arrowRef?: React.MutableRefObject<google.maps.Polyline | undefined>\n onClick?: (event: google.maps.MapMouseEvent) => void\n}\n\nexport class Arrow extends React.PureComponent<Props> {\n line: google.maps.Polyline | undefined\n\n eventHandlers: {\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {from, to, api, map, zIndex, onClick, color, arrowRef} = this.props\n const lineSymbol = {\n path: api.SymbolPath.FORWARD_OPEN_ARROW,\n }\n\n this.line = new api.Polyline({\n map,\n zIndex,\n path: [from, to],\n icons: [{icon: lineSymbol, offset: '50%'}],\n strokeOpacity: 0.55,\n strokeColor: color ? color.text : 'black',\n })\n\n if (onClick) {\n this.eventHandlers.click = api.event.addListener(this.line, 'click', onClick)\n }\n\n if (arrowRef) {\n arrowRef.current = this.line\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.line) {\n return\n }\n\n const {from, to, map} = this.props\n if (!latLngAreEqual(prevProps.from, from) || !latLngAreEqual(prevProps.to, to)) {\n this.line.setPath([from, to])\n }\n\n if (prevProps.map !== map) {\n this.line.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.line) {\n this.line.setMap(null)\n }\n\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const RootContainer = styled.div`\n position: relative;\n min-height: 200px;\n\n &:empty {\n background-color: var(--card-skeleton-color-from);\n display: table;\n width: 100%;\n }\n\n &:empty:after {\n content: 'Missing/invalid data';\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n position: relative;\n }\n`\n","import * as React from 'react'\nimport {\n DiffComponent,\n ObjectDiff,\n DiffProps as GenericDiffProps,\n DiffTooltip,\n getAnnotationAtPath,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ObjectDiff<Geopoint>>\n\nexport const GeopointFieldDiff: DiffComponent<ObjectDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof window.google.maps}) {\n const {fromValue, toValue} = diff\n const annotation =\n getAnnotationAtPath(diff, ['lat']) ||\n getAnnotationAtPath(diff, ['lng']) ||\n getAnnotationAtPath(diff, [])\n\n const center = getCenter(diff, api)\n const bounds = fromValue && toValue ? getBounds(fromValue, toValue, api) : undefined\n\n return (\n <DiffTooltip annotations={annotation ? [annotation] : []} description={getAction(diff)}>\n <div>\n <GoogleMap\n api={api}\n location={center}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n scrollWheel={false}\n >\n {(map) => <GeopointMove api={api} map={map} diff={diff} />}\n </GoogleMap>\n </div>\n </DiffTooltip>\n )\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral,\n toValue: google.maps.LatLngLiteral,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n return new api.LatLngBounds().extend(fromValue).extend(toValue)\n}\n\nfunction getCenter(\n diff: DiffProps['diff'],\n api: typeof window.google.maps\n): google.maps.LatLngLiteral {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return getBounds(fromValue, toValue, api).getCenter().toJSON()\n }\n\n if (fromValue) {\n return fromValue\n }\n\n if (toValue) {\n return toValue\n }\n\n throw new Error('Neither a from or a to value present')\n}\n\nfunction getAction(diff: ObjectDiff<Geopoint>) {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return 'Moved'\n } else if (fromValue) {\n return 'Removed'\n } else if (toValue) {\n return 'Added'\n }\n\n return 'Unchanged'\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../"}
1
+ {"mappings":"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","sources":["src/index.tsx","src/input/GeopointInput.tsx","src/loader/GoogleMapsLoadProxy.tsx","src/loader/loadGoogleMapsApi.ts","src/loader/LoadError.tsx","src/input/GeopointSelect.tsx","src/map/SearchInput.tsx","src/map/SearchInput.styles.tsx","src/map/Map.tsx","src/map/util.ts","src/map/Map.styles.tsx","src/map/Marker.tsx","src/input/GeopointInput.styles.tsx","src/global-workaround.ts","src/diff/GeopointArrayDiff.tsx","src/diff/GeopointMove.tsx","src/map/Arrow.tsx","src/diff/GeopointFieldDiff.styles.tsx","src/diff/GeopointFieldDiff.tsx"],"sourcesContent":["import React from 'react'\nimport {createPlugin, SchemaType} from 'sanity'\nimport GeopointInput, {GeopointInputProps} from './input/GeopointInput'\nimport {setGeoConfig} from './global-workaround'\nimport {GeopointSchemaType} from './types'\n\nexport {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'\nexport {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'\n\nexport type {LatLng, GeopointSchemaType, Geopoint} from './types'\nexport {GeopointInput}\nexport type {GeopointInputProps}\n\nexport interface GoogleMapsInputConfig {\n apiKey: string\n defaultZoom?: number\n defaultLocale?: string\n defaultLocation?: {\n lat: number\n lng: number\n }\n}\n\nexport const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {\n setGeoConfig(config)\n return {\n name: 'google-maps-input',\n form: {\n renderInput: (props) => {\n if (isGeopoint(props.schemaType)) {\n const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>\n return <GeopointInput {...castedProps} geoConfig={config} />\n }\n return undefined\n },\n },\n }\n})\n\nfunction isGeopoint(schemaType: SchemaType): schemaType is GeopointSchemaType {\n return isType('geopoint', schemaType)\n}\n\nfunction isType(name: string, schema?: SchemaType): boolean {\n if (schema?.name === name) {\n return true\n // eslint-disable-next-line no-negated-condition\n } else if (!schema?.name) {\n return false\n }\n return isType(name, schema?.type)\n}\n","import React from 'react'\nimport {uniqueId} from 'lodash'\nimport {Box, Button, Dialog, Grid} from '@sanity/ui'\nimport {EditIcon, TrashIcon} from '@sanity/icons'\nimport {ChangeIndicator} from 'sanity/_unstable'\nimport {ObjectInputProps, set, setIfMissing, unset} from 'sanity/form'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {Geopoint, GeopointSchemaType, LatLng} from '../types'\nimport {GeopointSelect} from './GeopointSelect'\nimport {DialogInnerContainer, PreviewImage} from './GeopointInput.styles'\nimport {GoogleMapsInputConfig} from '../index'\nimport {getGeoConfig} from '../global-workaround'\n\nconst getStaticImageUrl = (value: LatLng, apiKey: string) => {\n const loc = `${value.lat},${value.lng}`\n const params = {\n key: apiKey,\n center: loc,\n markers: loc,\n zoom: 13,\n scale: 2,\n size: '640x300',\n } as const\n const qs = Object.keys(params).reduce((res, param) => {\n return res.concat(`${param}=${encodeURIComponent(params[param as keyof typeof params])}`)\n }, [] as string[])\n\n return `https://maps.googleapis.com/maps/api/staticmap?${qs.join('&')}`\n}\n\nexport type GeopointInputProps = ObjectInputProps<Geopoint, GeopointSchemaType> & {\n geoConfig: GoogleMapsInputConfig\n}\n\ntype Focusable = any\n\ninterface InputState {\n modalOpen: boolean\n}\n\nclass GeopointInput extends React.PureComponent<GeopointInputProps, InputState> {\n _geopointInputId = uniqueId('GeopointInput')\n\n editButton: Focusable | undefined\n\n constructor(props: GeopointInputProps) {\n super(props)\n\n this.state = {\n modalOpen: false,\n }\n }\n\n setEditButton = (el: Focusable) => {\n this.editButton = el\n }\n\n focus() {\n if (this.editButton) {\n this.editButton.focus()\n }\n }\n\n handleToggleModal = () => {\n this.setState((prevState) => ({modalOpen: !prevState.modalOpen}))\n }\n\n handleCloseModal = () => {\n this.setState({modalOpen: false})\n }\n\n handleChange = (latLng: google.maps.LatLng) => {\n const {schemaType, onChange} = this.props\n onChange([\n setIfMissing({\n _type: schemaType.name,\n }),\n set(latLng.lat(), ['lat']),\n set(latLng.lng(), ['lng']),\n ])\n }\n\n handleClear = () => {\n const {onChange} = this.props\n onChange(unset())\n }\n\n render() {\n const {value, readOnly, geoConfig: config, path, changed, focused} = this.props\n\n const {modalOpen} = this.state\n\n if (!config || !config.apiKey) {\n return (\n <div>\n <p>\n The <a href=\"https://sanity.io/docs/schema-types/geopoint-type\">Geopoint type</a> needs\n a Google Maps API key with access to:\n </p>\n <ul>\n <li>Google Maps JavaScript API</li>\n <li>Google Places API Web Service</li>\n <li>Google Static Maps API</li>\n </ul>\n <p>\n Please enter the API key with access to these services in your googleMapsInput plugin\n config.\n </p>\n </div>\n )\n }\n\n return (\n <>\n {value && (\n <ChangeIndicator path={path} isChanged={changed} hasFocus={!!focused}>\n <PreviewImage src={getStaticImageUrl(value, config.apiKey)} alt=\"Map location\" />\n </ChangeIndicator>\n )}\n\n {!readOnly && (\n <Box marginTop={4}>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n icon={value && EditIcon}\n padding={3}\n ref={this.setEditButton}\n text={value ? 'Edit' : 'Set location'}\n onClick={this.handleToggleModal}\n />\n\n {value && (\n <Button\n tone=\"critical\"\n icon={TrashIcon}\n padding={3}\n mode=\"ghost\"\n text={'Remove'}\n onClick={this.handleClear}\n />\n )}\n </Grid>\n </Box>\n )}\n\n {modalOpen && (\n <Dialog\n id={`${this._geopointInputId}_dialog`}\n onClose={this.handleCloseModal}\n header=\"Place the marker on the map\"\n width={1}\n >\n <DialogInnerContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => (\n <GeopointSelect\n api={api}\n value={value || undefined}\n onChange={readOnly ? undefined : this.handleChange}\n defaultLocation={config.defaultLocation}\n defaultZoom={config.defaultZoom}\n />\n )}\n </GoogleMapsLoadProxy>\n </DialogInnerContainer>\n </Dialog>\n )}\n </>\n )\n }\n}\n\nexport default GeopointInput\n","import React from 'react'\nimport {Subscription} from 'rxjs'\nimport {loadGoogleMapsApi, GoogleLoadState} from './loadGoogleMapsApi'\nimport {LoadError} from './LoadError'\nimport {GoogleMapsInputConfig} from '../index'\n\ninterface LoadProps {\n children: (api: typeof window.google.maps) => React.ReactElement\n config: GoogleMapsInputConfig\n}\n\nexport class GoogleMapsLoadProxy extends React.Component<LoadProps, GoogleLoadState> {\n loadSubscription: Subscription | undefined\n\n constructor(props: LoadProps) {\n super(props)\n\n this.state = {loadState: 'loading'}\n\n let sync = true\n this.loadSubscription = loadGoogleMapsApi(props.config).subscribe((loadState) => {\n if (sync) {\n this.state = loadState\n } else {\n this.setState(loadState)\n }\n })\n sync = false\n }\n\n componentWillUnmount() {\n if (this.loadSubscription) {\n this.loadSubscription.unsubscribe()\n }\n }\n\n render() {\n switch (this.state.loadState) {\n case 'loadError':\n return <LoadError error={this.state.error} isAuthError={false} />\n case 'authError':\n return <LoadError isAuthError />\n case 'loading':\n return <div>Loading Google Maps API</div>\n case 'loaded':\n return this.props.children(this.state.api) || null\n default:\n return null\n }\n }\n}\n","import {Observable, BehaviorSubject} from 'rxjs'\nimport {GoogleMapsInputConfig} from '../index'\n\ndeclare global {\n interface Window {\n gm_authFailure: any\n ___sanity_googleMapsApiCallback: any\n }\n}\n\nconst callbackName = '___sanity_googleMapsApiCallback'\nconst authFailureCallbackName = 'gm_authFailure'\nconst locale = (typeof window !== 'undefined' && window.navigator.language) || 'en'\n\nexport interface LoadingState {\n loadState: 'loading'\n}\n\nexport interface LoadedState {\n loadState: 'loaded'\n api: typeof window.google.maps\n}\n\nexport interface LoadErrorState {\n loadState: 'loadError'\n error: Error\n}\n\nexport interface AuthErrorState {\n loadState: 'authError'\n}\n\nexport type GoogleLoadState = LoadingState | LoadedState | LoadErrorState | AuthErrorState\n\nlet subject: BehaviorSubject<GoogleLoadState>\n\nexport function loadGoogleMapsApi(config: GoogleMapsInputConfig): Observable<GoogleLoadState> {\n const selectedLocale = config.defaultLocale || locale || 'en-US'\n\n if (subject) {\n return subject\n }\n\n subject = new BehaviorSubject<GoogleLoadState>({loadState: 'loading'})\n\n window[authFailureCallbackName] = () => {\n delete window[authFailureCallbackName]\n subject.next({loadState: 'authError'})\n }\n\n window[callbackName] = () => {\n delete window[callbackName]\n subject.next({loadState: 'loaded', api: window.google.maps})\n }\n\n const script = document.createElement('script')\n script.onerror = (\n event: Event | string,\n source?: string,\n lineno?: number,\n colno?: number,\n error?: Error\n ) =>\n subject.next({\n loadState: 'loadError',\n error: coeerceError(event, error),\n } as LoadErrorState)\n\n script.src = `https://maps.googleapis.com/maps/api/js?key=${config.apiKey}&libraries=places&callback=${callbackName}&language=${selectedLocale}`\n document.getElementsByTagName('head')[0].appendChild(script)\n\n return subject\n}\n\nfunction coeerceError(event: Event | string, error?: Error): Error {\n if (error) {\n return error\n }\n\n if (typeof event === 'string') {\n return new Error(event)\n }\n\n return new Error(isErrorEvent(event) ? event.message : 'Failed to load Google Maps API')\n}\n\nfunction isErrorEvent(event: unknown): event is ErrorEvent {\n if (typeof event !== 'object' || event === null) {\n return false\n }\n\n if (!('message' in event)) {\n return false\n }\n\n return typeof (event as ErrorEvent).message === 'string'\n}\n","import * as React from 'react'\nimport {Card, Box, Text, Code} from '@sanity/ui'\n\ntype Props = {error: Error; isAuthError: false} | {isAuthError: true}\n\nexport function LoadError(props: Props) {\n return (\n <Card tone=\"critical\" radius={1}>\n <Box as=\"header\" paddingX={4} paddingTop={4} paddingBottom={1}>\n <Text as=\"h2\" weight=\"bold\">\n Google Maps failed to load\n </Text>\n </Box>\n\n <Box paddingX={4} paddingTop={4} paddingBottom={1}>\n {props.isAuthError ? (\n <AuthError />\n ) : (\n <>\n <Text as=\"h3\">Error details:</Text>\n <pre>\n <Code size={1}>{'error' in props && props.error?.message}</Code>\n </pre>\n </>\n )}\n </Box>\n </Card>\n )\n}\n\nfunction AuthError() {\n return (\n <Text>\n <p>The error appears to be related to authentication</p>\n <p>Common causes include:</p>\n <ul>\n <li>Incorrect API key</li>\n <li>Referer not allowed</li>\n <li>Missing authentication scope</li>\n </ul>\n <p>Check the browser developer tools for more information.</p>\n </Text>\n )\n}\n","import React from 'react'\nimport {SearchInput} from '../map/SearchInput'\nimport {GoogleMap} from '../map/Map'\nimport {Marker} from '../map/Marker'\nimport {LatLng, Geopoint} from '../types'\n\nconst fallbackLatLng: LatLng = {lat: 40.7058254, lng: -74.1180863}\n\ninterface SelectProps {\n api: typeof window.google.maps\n value?: Geopoint\n onChange?: (latLng: google.maps.LatLng) => void\n defaultLocation?: LatLng\n defaultZoom?: number\n}\n\nexport class GeopointSelect extends React.PureComponent<SelectProps> {\n static defaultProps = {\n defaultZoom: 8,\n defaultLocation: {lng: 10.74609, lat: 59.91273},\n }\n\n mapRef = React.createRef<HTMLDivElement>()\n\n getCenter() {\n const {value = {}, defaultLocation = {}} = this.props\n const point: LatLng = {...fallbackLatLng, ...defaultLocation, ...value}\n return point\n }\n\n handlePlaceChanged = (place: google.maps.places.PlaceResult) => {\n if (!place.geometry?.location) {\n return\n }\n\n this.setValue(place.geometry.location)\n }\n\n handleMarkerDragEnd = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n handleMapClick = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n setValue(geoPoint: google.maps.LatLng) {\n if (this.props.onChange) {\n this.props.onChange(geoPoint)\n }\n }\n\n render() {\n const {api, defaultZoom, value, onChange} = this.props\n return (\n <GoogleMap\n api={api}\n location={this.getCenter()}\n onClick={this.handleMapClick}\n defaultZoom={defaultZoom}\n >\n {(map) => (\n <>\n <SearchInput api={api} map={map} onChange={this.handlePlaceChanged} />\n {value && (\n <Marker\n api={api}\n map={map}\n position={value}\n onMove={onChange ? this.handleMarkerDragEnd : undefined}\n />\n )}\n </>\n )}\n </GoogleMap>\n )\n }\n}\n","import * as React from 'react'\nimport {TextInput} from '@sanity/ui'\nimport {WrapperContainer} from './SearchInput.styles'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onChange: (result: google.maps.places.PlaceResult) => void\n}\n\nexport class SearchInput extends React.PureComponent<Props> {\n searchInputRef = React.createRef<HTMLInputElement>()\n autoComplete: google.maps.places.Autocomplete | undefined\n\n handleChange = () => {\n if (!this.autoComplete) {\n return\n }\n\n this.props.onChange(this.autoComplete.getPlace())\n\n if (this.searchInputRef.current) {\n this.searchInputRef.current.value = ''\n }\n }\n\n componentDidMount() {\n const input = this.searchInputRef.current\n if (!input) {\n return\n }\n\n const {api, map} = this.props\n const {Circle, places, event} = api\n const searchBounds = new Circle({center: map.getCenter(), radius: 100}).getBounds()!\n this.autoComplete = new places.Autocomplete(input, {\n bounds: searchBounds,\n types: [], // return all kinds of places\n })\n\n event.addListener(this.autoComplete, 'place_changed', this.handleChange)\n }\n\n render() {\n return (\n <WrapperContainer>\n <TextInput\n name=\"place\"\n ref={this.searchInputRef}\n placeholder=\"Search for place or address\"\n padding={4}\n />\n </WrapperContainer>\n )\n }\n}\n","import styled from 'styled-components'\n\nexport const WrapperContainer = styled.div`\n position: absolute;\n right: 10px;\n top: 10px;\n width: 220px;\n`\n","import React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\nimport {MapContainer} from './Map.styles'\n\ninterface MapProps {\n api: typeof window.google.maps\n location: LatLng\n bounds?: google.maps.LatLngBounds\n defaultZoom?: number\n mapTypeControl?: boolean\n scrollWheel?: boolean\n controlSize?: number\n onClick?: (event: google.maps.MapMouseEvent) => void\n children?: (map: google.maps.Map) => React.ReactElement\n}\n\ninterface MapState {\n map: google.maps.Map | undefined\n}\n\nexport class GoogleMap extends React.PureComponent<MapProps, MapState> {\n static defaultProps = {\n defaultZoom: 8,\n scrollWheel: true,\n }\n\n state: MapState = {map: undefined}\n clickHandler: google.maps.MapsEventListener | undefined\n mapRef = React.createRef<HTMLDivElement>()\n mapEl: HTMLDivElement | null = null\n\n componentDidMount() {\n this.attachClickHandler()\n }\n\n attachClickHandler = () => {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {api, onClick} = this.props\n const {event} = api\n\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n\n if (onClick) {\n this.clickHandler = event.addListener(map, 'click', onClick)\n }\n }\n\n componentDidUpdate(prevProps: MapProps) {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {onClick, location, bounds} = this.props\n\n if (prevProps.onClick !== onClick) {\n this.attachClickHandler()\n }\n\n if (!latLngAreEqual(prevProps.location, location)) {\n map.panTo(this.getCenter())\n }\n\n if (bounds && (!prevProps.bounds || !bounds.equals(prevProps.bounds))) {\n map.fitBounds(bounds)\n }\n }\n\n componentWillUnmount() {\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n }\n\n getCenter(): google.maps.LatLng {\n const {location, api} = this.props\n return new api.LatLng(location.lat, location.lng)\n }\n\n constructMap(el: HTMLDivElement) {\n const {defaultZoom, api, mapTypeControl, controlSize, bounds, scrollWheel} = this.props\n\n const map = new api.Map(el, {\n zoom: defaultZoom,\n center: this.getCenter(),\n scrollwheel: scrollWheel,\n streetViewControl: false,\n mapTypeControl,\n controlSize,\n })\n\n if (bounds) {\n map.fitBounds(bounds)\n }\n\n return map\n }\n\n setMapElement = (element: HTMLDivElement | null) => {\n if (element && element !== this.mapEl) {\n const map = this.constructMap(element)\n this.setState({map}, this.attachClickHandler)\n }\n\n this.mapEl = element\n }\n\n render() {\n const {children} = this.props\n const {map} = this.state\n return (\n <>\n <MapContainer ref={this.setMapElement} />\n {children && map ? children(map) : null}\n </>\n )\n }\n}\n","import {LatLng} from '../types'\n\nexport function latLngAreEqual(\n latLng1: LatLng | google.maps.LatLng,\n latLng2: LatLng | google.maps.LatLng\n): boolean {\n const lat1 = typeof latLng1.lat === 'function' ? latLng1.lat() : latLng1.lat\n const lng1 = typeof latLng1.lng === 'function' ? latLng1.lng() : latLng1.lng\n\n const lat2 = typeof latLng2.lat === 'function' ? latLng2.lat() : latLng2.lat\n const lng2 = typeof latLng2.lng === 'function' ? latLng2.lng() : latLng2.lng\n\n return lat1 === lat2 && lng1 === lng2\n}\n","import styled from 'styled-components'\n\nexport const MapContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n`\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\nconst markerPath =\n 'M 3.052 3.7 C 1.56 5.293 0.626 7.612 0.663 9.793 C 0.738 14.352 2.793 16.077 6.078 22.351 C 7.263 25.111 8.497 28.032 9.672 32.871 C 9.835 33.584 9.994 34.246 10.069 34.305 C 10.143 34.362 10.301 33.697 10.465 32.983 C 11.639 28.145 12.875 25.226 14.059 22.466 C 17.344 16.192 19.398 14.466 19.474 9.908 C 19.511 7.727 18.574 5.405 17.083 3.814 C 15.379 1.994 12.809 0.649 10.069 0.593 C 7.328 0.536 4.756 1.882 3.052 3.7 Z'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onMove?: (event: google.maps.MapMouseEvent) => void\n onClick?: (event: google.maps.MapMouseEvent) => void\n position: LatLng | google.maps.LatLng\n zIndex?: number\n opacity?: number\n label?: string\n markerRef?: React.MutableRefObject<google.maps.Marker | undefined>\n color?: {background: string; border: string; text: string}\n}\n\nexport class Marker extends React.PureComponent<Props> {\n marker: google.maps.Marker | undefined\n\n eventHandlers: {\n move?: google.maps.MapsEventListener\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {position, api, map, onMove, zIndex, opacity, label, markerRef, color} = this.props\n const {Marker: GMarker} = api\n\n let icon: google.maps.Symbol | undefined\n if (color) {\n icon = {\n path: markerPath,\n fillOpacity: 1,\n fillColor: color.background,\n strokeColor: color.border,\n strokeWeight: 2,\n anchor: new api.Point(10, 35),\n labelOrigin: new api.Point(10, 11),\n }\n }\n\n this.marker = new GMarker({\n draggable: Boolean(onMove),\n position,\n map,\n zIndex,\n opacity,\n label,\n icon,\n })\n\n if (markerRef) {\n markerRef.current = this.marker\n }\n\n this.attachMoveHandler()\n this.attachClickHandler()\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.marker) {\n return\n }\n\n const {position, onMove, label, zIndex, opacity, map} = this.props\n\n if (prevProps.onMove !== onMove) {\n this.attachMoveHandler()\n }\n\n if (!latLngAreEqual(prevProps.position, position)) {\n this.marker.setPosition(position)\n }\n\n if (prevProps.label !== label) {\n this.marker.setLabel(label || null)\n }\n\n if (prevProps.zIndex !== zIndex) {\n this.marker.setZIndex(zIndex || null)\n }\n\n if (prevProps.opacity !== opacity) {\n this.marker.setOpacity(opacity || null)\n }\n\n if (prevProps.map !== map) {\n this.marker.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n\n if (this.marker) {\n this.marker.setMap(null)\n }\n }\n\n attachMoveHandler() {\n const {api, onMove} = this.props\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n if (this.marker && onMove) {\n this.eventHandlers.move = api.event.addListener(this.marker, 'dragend', onMove)\n }\n }\n\n attachClickHandler() {\n const {api, onClick} = this.props\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n if (this.marker && onClick) {\n this.eventHandlers.click = api.event.addListener(this.marker, 'click', onClick)\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const PreviewImage = styled.img`\n width: 100%;\n height: auto;\n vertical-align: top;\n`\n\nexport const DialogInnerContainer = styled.div`\n height: 40rem;\n width: 50rem;\n`\n","import {GoogleMapsInputConfig} from './index'\n\nlet config: GoogleMapsInputConfig\n\nexport function getGeoConfig(): GoogleMapsInputConfig {\n return config as GoogleMapsInputConfig\n}\n\nexport function setGeoConfig(newConfig: GoogleMapsInputConfig): void {\n config = newConfig\n}\n","import * as React from 'react'\nimport {\n ArrayDiff,\n ObjectDiff,\n Diff,\n DiffProps as GenericDiffProps,\n DiffComponent,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ArrayDiff<Geopoint>>\n\nexport const GeopointArrayDiff: DiffComponent<ArrayDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof google.maps}) {\n const fromValue = (diff.fromValue || []).filter(hasCoordinates)\n const toValue = (diff.toValue || []).filter(hasCoordinates)\n if (fromValue.length === 0 && toValue.length === 0) {\n return null\n }\n\n const bounds = getBounds(fromValue, toValue, api)\n return (\n <GoogleMap\n api={api}\n location={bounds.getCenter().toJSON()}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n >\n {(map) => (\n <>\n {diff.items.map(({toIndex, diff: pointDiff}) => {\n if (!isChangeDiff(pointDiff)) {\n return null\n }\n\n return (\n <GeopointMove\n key={toIndex}\n api={api}\n map={map}\n diff={pointDiff}\n label={`${toIndex}`}\n />\n )\n })}\n </>\n )}\n </GoogleMap>\n )\n}\n\nfunction isChangeDiff(diff: Diff): diff is ObjectDiff<Geopoint> {\n return diff.action !== 'unchanged' && diff.type === 'object'\n}\n\nfunction hasCoordinates(point: Partial<Geopoint>): point is Geopoint {\n return typeof point.lat === 'number' && typeof point.lng === 'number'\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral[] | null | undefined,\n toValue: google.maps.LatLngLiteral[] | null | undefined,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n const bounds = new api.LatLngBounds()\n const points = [...(fromValue || []), ...(toValue || [])]\n points.forEach((point) => bounds.extend(point))\n return bounds\n}\n","import * as React from 'react'\nimport {useUserColor, ObjectDiff} from 'sanity/_unstable'\nimport {Marker} from '../map/Marker'\nimport {Arrow} from '../map/Arrow'\nimport {Geopoint} from '../types'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n diff: ObjectDiff<Geopoint>\n label?: string\n}\n\nexport function GeopointMove({diff, api, map, label}: Props) {\n const {fromValue: from, toValue: to} = diff\n const annotation = diff.isChanged ? diff.annotation : undefined\n const userColor = useUserColor(annotation ? annotation.author : null) || undefined\n const fromRef = React.useRef<google.maps.Marker>()\n const toRef = React.useRef<google.maps.Marker>()\n\n return (\n <>\n {from && (\n <Marker\n api={api}\n map={map}\n position={from}\n zIndex={0}\n opacity={0.55}\n markerRef={fromRef}\n color={userColor}\n />\n )}\n {from && to && <Arrow api={api} map={map} from={from} to={to} zIndex={1} color={userColor} />}\n {to && (\n <Marker\n api={api}\n map={map}\n position={to}\n zIndex={2}\n markerRef={toRef}\n label={label}\n color={userColor}\n />\n )}\n </>\n )\n}\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n from: LatLng\n to: LatLng\n color?: {background: string; border: string; text: string}\n zIndex?: number\n arrowRef?: React.MutableRefObject<google.maps.Polyline | undefined>\n onClick?: (event: google.maps.MapMouseEvent) => void\n}\n\nexport class Arrow extends React.PureComponent<Props> {\n line: google.maps.Polyline | undefined\n\n eventHandlers: {\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {from, to, api, map, zIndex, onClick, color, arrowRef} = this.props\n const lineSymbol = {\n path: api.SymbolPath.FORWARD_OPEN_ARROW,\n }\n\n this.line = new api.Polyline({\n map,\n zIndex,\n path: [from, to],\n icons: [{icon: lineSymbol, offset: '50%'}],\n strokeOpacity: 0.55,\n strokeColor: color ? color.text : 'black',\n })\n\n if (onClick) {\n this.eventHandlers.click = api.event.addListener(this.line, 'click', onClick)\n }\n\n if (arrowRef) {\n arrowRef.current = this.line\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.line) {\n return\n }\n\n const {from, to, map} = this.props\n if (!latLngAreEqual(prevProps.from, from) || !latLngAreEqual(prevProps.to, to)) {\n this.line.setPath([from, to])\n }\n\n if (prevProps.map !== map) {\n this.line.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.line) {\n this.line.setMap(null)\n }\n\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const RootContainer = styled.div`\n position: relative;\n min-height: 200px;\n\n &:empty {\n background-color: var(--card-skeleton-color-from);\n display: table;\n width: 100%;\n }\n\n &:empty:after {\n content: 'Missing/invalid data';\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n position: relative;\n }\n`\n","import * as React from 'react'\nimport {\n DiffComponent,\n ObjectDiff,\n DiffProps as GenericDiffProps,\n DiffTooltip,\n getAnnotationAtPath,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ObjectDiff<Geopoint>>\n\nexport const GeopointFieldDiff: DiffComponent<ObjectDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof window.google.maps}) {\n const {fromValue, toValue} = diff\n const annotation =\n getAnnotationAtPath(diff, ['lat']) ||\n getAnnotationAtPath(diff, ['lng']) ||\n getAnnotationAtPath(diff, [])\n\n const center = getCenter(diff, api)\n const bounds = fromValue && toValue ? getBounds(fromValue, toValue, api) : undefined\n\n return (\n <DiffTooltip annotations={annotation ? [annotation] : []} description={getAction(diff)}>\n <div>\n <GoogleMap\n api={api}\n location={center}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n scrollWheel={false}\n >\n {(map) => <GeopointMove api={api} map={map} diff={diff} />}\n </GoogleMap>\n </div>\n </DiffTooltip>\n )\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral,\n toValue: google.maps.LatLngLiteral,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n return new api.LatLngBounds().extend(fromValue).extend(toValue)\n}\n\nfunction getCenter(\n diff: DiffProps['diff'],\n api: typeof window.google.maps\n): google.maps.LatLngLiteral {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return getBounds(fromValue, toValue, api).getCenter().toJSON()\n }\n\n if (fromValue) {\n return fromValue\n }\n\n if (toValue) {\n return toValue\n }\n\n throw new Error('Neither a from or a to value present')\n}\n\nfunction getAction(diff: ObjectDiff<Geopoint>) {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return 'Moved'\n } else if (fromValue) {\n return 'Removed'\n } else if (toValue) {\n return 'Added'\n }\n\n return 'Unchanged'\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../"}
package/lib/esm/index.js CHANGED
@@ -4,7 +4,7 @@ import {createPlugin as $7XdDa$createPlugin} from "sanity";
4
4
  import {uniqueId as $7XdDa$uniqueId} from "lodash";
5
5
  import {Box as $7XdDa$Box, Grid as $7XdDa$Grid, Button as $7XdDa$Button, Dialog as $7XdDa$Dialog, Card as $7XdDa$Card, Text as $7XdDa$Text, Code as $7XdDa$Code, TextInput as $7XdDa$TextInput} from "@sanity/ui";
6
6
  import {EditIcon as $7XdDa$EditIcon, TrashIcon as $7XdDa$TrashIcon} from "@sanity/icons";
7
- import {ChangeIndicatorCompareValueProvider as $7XdDa$ChangeIndicatorCompareValueProvider, ChangeIndicator as $7XdDa$ChangeIndicator, useUserColor as $7XdDa$useUserColor, getAnnotationAtPath as $7XdDa$getAnnotationAtPath, DiffTooltip as $7XdDa$DiffTooltip} from "sanity/_unstable";
7
+ import {ChangeIndicator as $7XdDa$ChangeIndicator, useUserColor as $7XdDa$useUserColor, getAnnotationAtPath as $7XdDa$getAnnotationAtPath, DiffTooltip as $7XdDa$DiffTooltip} from "sanity/_unstable";
8
8
  import {setIfMissing as $7XdDa$setIfMissing, set as $7XdDa$set, unset as $7XdDa$unset} from "sanity/form";
9
9
  import {BehaviorSubject as $7XdDa$BehaviorSubject} from "rxjs";
10
10
  import $7XdDa$styledcomponents from "styled-components";
@@ -524,7 +524,7 @@ class $aae6ff17d8424da8$var$GeopointInput extends (0, $7XdDa$react).PureComponen
524
524
  onChange((0, $7XdDa$unset)());
525
525
  };
526
526
  render() {
527
- const { value: value , readOnly: readOnly , compareValue: compareValue , geoConfig: config } = this.props;
527
+ const { value: value , readOnly: readOnly , geoConfig: config , path: path , changed: changed , focused: focused } = this.props;
528
528
  const { modalOpen: modalOpen } = this.state;
529
529
  if (!config || !config.apiKey) return /*#__PURE__*/ (0, $7XdDa$jsxs)("div", {
530
530
  children: [
@@ -558,15 +558,13 @@ class $aae6ff17d8424da8$var$GeopointInput extends (0, $7XdDa$react).PureComponen
558
558
  });
559
559
  return /*#__PURE__*/ (0, $7XdDa$jsxs)((0, $7XdDa$Fragment), {
560
560
  children: [
561
- value && /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$ChangeIndicatorCompareValueProvider), {
562
- value: value,
563
- compareValue: compareValue,
564
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$ChangeIndicator), {
565
- compareDeep: true,
566
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $8e8668abdcaeab13$export$1c4ad7c095d42d37), {
567
- src: $aae6ff17d8424da8$var$getStaticImageUrl(value, config.apiKey),
568
- alt: "Map location"
569
- })
561
+ value && /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$ChangeIndicator), {
562
+ path: path,
563
+ isChanged: changed,
564
+ hasFocus: !!focused,
565
+ children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $8e8668abdcaeab13$export$1c4ad7c095d42d37), {
566
+ src: $aae6ff17d8424da8$var$getStaticImageUrl(value, config.apiKey),
567
+ alt: "Map location"
570
568
  })
571
569
  }),
572
570
  !readOnly && /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Box), {
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;AAAA;;;ACAA;;;;;;;ACAA;;ACAA;AAUA,MAAM,kCAAY,GAAG,iCAAiC;AACtD,MAAM,6CAAuB,GAAG,gBAAgB;AAChD,MAAM,4BAAM,GAAG,AAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAK,IAAI;AAsBnF,IAAI,6BAAO,AAAkC;AAEtC,SAAS,yCAAiB,CAAC,MAA6B,EAA+B;IAC5F,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,IAAI,4BAAM,IAAI,OAAO;IAEhE,IAAI,6BAAO,EACT,OAAO,6BAAO,CAAA;IAGhB,6BAAO,GAAG,IAAI,CAAA,GAAA,sBAAe,CAAA,CAAkB;QAAC,SAAS,EAAE,SAAS;KAAC,CAAC;IAEtE,MAAM,CAAC,6CAAuB,CAAC,GAAG,IAAM;QACtC,OAAO,MAAM,CAAC,6CAAuB,CAAC;QACtC,6BAAO,CAAC,IAAI,CAAC;YAAC,SAAS,EAAE,WAAW;SAAC,CAAC;KACvC;IAED,MAAM,CAAC,kCAAY,CAAC,GAAG,IAAM;QAC3B,OAAO,MAAM,CAAC,kCAAY,CAAC;QAC3B,6BAAO,CAAC,IAAI,CAAC;YAAC,SAAS,EAAE,QAAQ;YAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;SAAC,CAAC;KAC7D;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC/C,MAAM,CAAC,OAAO,GAAG,CACf,KAAqB,EACrB,MAAe,EACf,MAAe,EACf,KAAc,EACd,KAAa,GAEb,6BAAO,CAAC,IAAI,CAAC;YACX,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,kCAAY,CAAC,KAAK,EAAE,KAAK,CAAC;SAClC,CAAmB;IAEtB,MAAM,CAAC,GAAG,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,kCAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAChJ,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;IAE5D,OAAO,6BAAO,CAAA;CACf;AAED,SAAS,kCAAY,CAAC,KAAqB,EAAE,KAAa,EAAS;IACjE,IAAI,KAAK,EACP,OAAO,KAAK,CAAA;IAGd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAC3B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IAGzB,OAAO,IAAI,KAAK,CAAC,kCAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,gCAAgC,CAAC,CAAA;CACzF;AAED,SAAS,kCAAY,CAAC,KAAc,EAAuB;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAC7C,OAAO,KAAK,CAAA;IAGd,IAAI,CAAE,CAAA,SAAS,IAAI,KAAK,CAAA,AAAC,EACvB,OAAO,KAAK,CAAA;IAGd,OAAO,OAAO,AAAC,KAAK,CAAgB,OAAO,KAAK,QAAQ,CAAA;CACzD;;;AChGD;;;AAKO,SAAS,yCAAS,CAAC,KAAY,EAAE;IACtC,qBACE,iBAAC,CAAA,GAAA,WAAI,CAAA;QAAC,IAAI,EAAC,UAAU;QAAC,MAAM,EAAE,CAAC;;0BAC7B,gBAAC,CAAA,GAAA,UAAG,CAAA;gBAAC,EAAE,EAAC,QAAQ;gBAAC,QAAQ,EAAE,CAAC;gBAAE,UAAU,EAAE,CAAC;gBAAE,aAAa,EAAE,CAAC;0BAC3D,cAAA,gBAAC,CAAA,GAAA,WAAI,CAAA;oBAAC,EAAE,EAAC,IAAI;oBAAC,MAAM,EAAC,MAAM;8BAAC,4BAE5B;kBAAO;cACH;0BAEN,gBAAC,CAAA,GAAA,UAAG,CAAA;gBAAC,QAAQ,EAAE,CAAC;gBAAE,UAAU,EAAE,CAAC;gBAAE,aAAa,EAAE,CAAC;0BAC9C,KAAK,CAAC,WAAW,iBAChB,gBAAC,+BAAS,KAAG,iBAEb;;sCACE,gBAAC,CAAA,GAAA,WAAI,CAAA;4BAAC,EAAE,EAAC,IAAI;sCAAC,gBAAc;0BAAO;sCACnC,gBAAC,KAAG;sCACF,cAAA,gBAAC,CAAA,GAAA,WAAI,CAAA;gCAAC,IAAI,EAAE,CAAC;0CAAG,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;8BAAQ;0BAC5D;;kBACL,AACJ;cACG;;MACD,CACR;CACF;AAED,SAAS,+BAAS,GAAG;IACnB,qBACE,iBAAC,CAAA,GAAA,WAAI,CAAA;;0BACH,gBAAC,GAAC;0BAAC,mDAAiD;cAAI;0BACxD,gBAAC,GAAC;0BAAC,wBAAsB;cAAI;0BAC7B,iBAAC,IAAE;;kCACD,gBAAC,IAAE;kCAAC,mBAAiB;sBAAK;kCAC1B,gBAAC,IAAE;kCAAC,qBAAmB;sBAAK;kCAC5B,gBAAC,IAAE;kCAAC,8BAA4B;sBAAK;;cAClC;0BACL,gBAAC,GAAC;0BAAC,yDAAuD;cAAI;;MACzD,CACR;CACF;;;AFhCM,MAAM,yCAAmB,SAAS,CAAA,GAAA,YAAK,CAAA,CAAC,SAAS;IAGtD,YAAY,KAAgB,CAAE;QAC5B,KAAK,CAAC,KAAK,CAAC;QAEZ,IAAI,CAAC,KAAK,GAAG;YAAC,SAAS,EAAE,SAAS;SAAC;QAEnC,IAAI,IAAI,GAAG,IAAI;QACf,IAAI,CAAC,gBAAgB,GAAG,CAAA,GAAA,yCAAiB,CAAA,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,GAAK;YAC/E,IAAI,IAAI,EACN,IAAI,CAAC,KAAK,GAAG,SAAS;iBAEtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;SAE3B,CAAC;QACF,IAAI,GAAG,KAAK;KACb;IAED,oBAAoB,GAAG;QACrB,IAAI,IAAI,CAAC,gBAAgB,EACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;KAEtC;IAED,MAAM,GAAG;QACP,OAAQ,IAAI,CAAC,KAAK,CAAC,SAAS;YAC1B,KAAK,WAAW;gBACd,qBAAO,gBAAC,CAAA,GAAA,yCAAS,CAAA;oBAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;oBAAE,WAAW,EAAE,KAAK;kBAAI,CAAA;YACnE,KAAK,WAAW;gBACd,qBAAO,gBAAC,CAAA,GAAA,yCAAS,CAAA;oBAAC,WAAW;kBAAG,CAAA;YAClC,KAAK,SAAS;gBACZ,qBAAO,gBAAC,KAAG;8BAAC,yBAAuB;kBAAM,CAAA;YAC3C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;YACpD;gBACE,OAAO,IAAI,CAAA;SACd;KACF;CACF;;;AGlDD;;ACAA;;;ACAA;AAEO,MAAM,yCAAgB,GAAG,CAAA,GAAA,uBAAM,CAAA,CAAC,GAAG,CAAC;;;;;AAK3C,CAAC;;;ADGM,MAAM,yCAAW,SAAS,oBAAmB;IAClD,cAAc,iBAAG,gBAAe,EAAoB,CAAA;IAGpD,YAAY,GAAG,IAAM;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,EACpB,OAAM;QAGR,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEjD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAC7B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;KAEzC,CAAA;IAED,iBAAiB,GAAG;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO;QACzC,IAAI,CAAC,KAAK,EACR,OAAM;QAGR,MAAM,OAAC,GAAG,CAAA,OAAE,GAAG,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAC7B,MAAM,UAAC,MAAM,CAAA,UAAE,MAAM,CAAA,SAAE,KAAK,CAAA,EAAC,GAAG,GAAG;QACnC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC;YAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE;YAAE,MAAM,EAAE,GAAG;SAAC,CAAC,CAAC,SAAS,EAAE,AAAC;QACpF,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE;YACjD,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC;KACzE;IAED,MAAM,GAAG;QACP,qBACE,gBAAC,CAAA,GAAA,yCAAgB,CAAA;sBACf,cAAA,gBAAC,CAAA,GAAA,gBAAS,CAAA;gBACR,IAAI,EAAC,OAAO;gBACZ,GAAG,EAAE,IAAI,CAAC,cAAc;gBACxB,WAAW,EAAC,6BAA6B;gBACzC,OAAO,EAAE,CAAC;cACV;UACe,CACpB;KACF;CACF;;;AEvDD;;ACEO,SAAS,yCAAc,CAC5B,OAAoC,EACpC,OAAoC,EAC3B;IACT,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG;IAC5E,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG;IAE5E,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG;IAC5E,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG;IAE5E,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAA;CACtC;;;ACbD;AAEO,MAAM,yCAAY,GAAG,CAAA,GAAA,uBAAM,CAAA,CAAC,GAAG,CAAC;;;;;;;AAOvC,CAAC;;;AFYM,MAAM,yCAAS,SAAS,CAAA,GAAA,YAAK,CAAA,CAAC,aAAa;IAChD,OAAO,YAAY,GAAG;QACpB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,IAAI;KAClB,CAAA;IAED,KAAK,GAAa;QAAC,GAAG,EAAE,SAAS;KAAC,CAAA;IAElC,MAAM,iBAAG,CAAA,GAAA,YAAK,CAAA,CAAC,SAAS,EAAkB,CAAA;IAC1C,KAAK,GAA0B,IAAI,CAAA;IAEnC,iBAAiB,GAAG;QAClB,IAAI,CAAC,kBAAkB,EAAE;KAC1B;IAED,kBAAkB,GAAG,IAAM;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;QAC1B,IAAI,CAAC,GAAG,EACN,OAAM;QAGR,MAAM,OAAC,GAAG,CAAA,WAAE,OAAO,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACjC,MAAM,SAAC,KAAK,CAAA,EAAC,GAAG,GAAG;QAEnB,IAAI,IAAI,CAAC,YAAY,EACnB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QAG5B,IAAI,OAAO,EACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;KAE/D,CAAA;IAED,kBAAkB,CAAC,SAAmB,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;QAC1B,IAAI,CAAC,GAAG,EACN,OAAM;QAGR,MAAM,WAAC,OAAO,CAAA,YAAE,QAAQ,CAAA,UAAE,MAAM,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAE9C,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAC/B,IAAI,CAAC,kBAAkB,EAAE;QAG3B,IAAI,CAAC,CAAA,GAAA,yCAAc,CAAA,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC/C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAG7B,IAAI,MAAM,IAAK,CAAA,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,AAAC,EACnE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;KAExB;IAED,oBAAoB,GAAG;QACrB,IAAI,IAAI,CAAC,YAAY,EACnB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;KAE7B;IAED,SAAS,GAAuB;QAC9B,MAAM,YAAC,QAAQ,CAAA,OAAE,GAAG,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAClC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;KAClD;IAED,YAAY,CAAC,EAAkB,EAAE;QAC/B,MAAM,eAAC,WAAW,CAAA,OAAE,GAAG,CAAA,kBAAE,cAAc,CAAA,eAAE,WAAW,CAAA,UAAE,MAAM,CAAA,eAAE,WAAW,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAEvF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;YAC1B,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,WAAW,EAAE,WAAW;YACxB,iBAAiB,EAAE,KAAK;4BACxB,cAAc;yBACd,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,EACR,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;QAGvB,OAAO,GAAG,CAAA;KACX;IAED,aAAa,GAAG,CAAC,OAA8B,GAAK;QAClD,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC;qBAAC,GAAG;aAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;SAC9C;QAED,IAAI,CAAC,KAAK,GAAG,OAAO;KACrB,CAAA;IAED,MAAM,GAAG;QACP,MAAM,YAAC,QAAQ,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAC7B,MAAM,OAAC,GAAG,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACxB,qBACE;;8BACE,gBAAC,CAAA,GAAA,yCAAY,CAAA;oBAAC,GAAG,EAAE,IAAI,CAAC,aAAa;kBAAI;gBACxC,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;;UACtC,CACJ;KACF;CACF;;;AG5HD;;AAIA,MAAM,gCAAU,GACd,yaAAya;AAepa,MAAM,yCAAM,SAAS,oBAAmB;IAG7C,aAAa,GAGT,EAAE,CAAA;IAEN,iBAAiB,GAAG;QAClB,MAAM,YAAC,QAAQ,CAAA,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,UAAE,MAAM,CAAA,UAAE,MAAM,CAAA,WAAE,OAAO,CAAA,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,SAAE,KAAK,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACzF,MAAM,EAAC,MAAM,EAAE,OAAO,CAAA,EAAC,GAAG,GAAG;QAE7B,IAAI,IAAI,AAAgC;QACxC,IAAI,KAAK,EACP,IAAI,GAAG;YACL,IAAI,EAAE,gCAAU;YAChB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YAC7B,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;SACnC;QAGH,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC;YACxB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;sBAC1B,QAAQ;iBACR,GAAG;oBACH,MAAM;qBACN,OAAO;mBACP,KAAK;kBACL,IAAI;SACL,CAAC;QAEF,IAAI,SAAS,EACX,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;QAGjC,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,kBAAkB,EAAE;KAC1B;IAED,kBAAkB,CAAC,SAAgB,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EACd,OAAM;QAGR,MAAM,YAAC,QAAQ,CAAA,UAAE,MAAM,CAAA,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,WAAE,OAAO,CAAA,OAAE,GAAG,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAElE,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAC7B,IAAI,CAAC,iBAAiB,EAAE;QAG1B,IAAI,CAAC,CAAA,GAAA,yCAAc,CAAA,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAGnC,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,EAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;QAGrC,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC;QAGvC,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC;QAGzC,IAAI,SAAS,CAAC,GAAG,KAAK,GAAG,EACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;KAE1B;IAED,oBAAoB,GAAG;QACrB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE;QAGlC,IAAI,IAAI,CAAC,MAAM,EACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;KAE3B;IAED,iBAAiB,GAAG;QAClB,MAAM,OAAC,GAAG,CAAA,UAAE,MAAM,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAChC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE;QAElC,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EACvB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;KAElF;IAED,kBAAkB,GAAG;QACnB,MAAM,OAAC,GAAG,CAAA,WAAE,OAAO,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACjC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;QAEnC,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EACxB,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;KAElF;IAED,kDAAkD;IAClD,MAAM,GAAQ;QACZ,OAAO,IAAI,CAAA;KACZ;CACF;;;AN3HD,MAAM,oCAAc,GAAW;IAAC,GAAG,EAAE,UAAU;IAAE,GAAG,EAAE,WAAW;CAAC;AAU3D,MAAM,yCAAc,SAAS,CAAA,GAAA,YAAK,CAAA,CAAC,aAAa;IACrD,OAAO,YAAY,GAAG;QACpB,WAAW,EAAE,CAAC;QACd,eAAe,EAAE;YAAC,GAAG,EAAE,QAAQ;YAAE,GAAG,EAAE,QAAQ;SAAC;KAChD,CAAA;IAED,MAAM,iBAAG,CAAA,GAAA,YAAK,CAAA,CAAC,SAAS,EAAkB,CAAA;IAE1C,SAAS,GAAG;QACV,MAAM,SAAC,KAAK,GAAG,EAAE,oBAAE,eAAe,GAAG,EAAE,GAAC,GAAG,IAAI,CAAC,KAAK;QACrD,MAAM,KAAK,GAAW;YAAC,GAAG,oCAAc;YAAE,GAAG,eAAe;YAAE,GAAG,KAAK;SAAC;QACvE,OAAO,KAAK,CAAA;KACb;IAED,kBAAkB,GAAG,CAAC,KAAqC,GAAK;QAC9D,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAC3B,OAAM;QAGR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACvC,CAAA;IAED,mBAAmB,GAAG,CAAC,KAAgC,GAAK;QAC1D,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9C,CAAA;IAED,cAAc,GAAG,CAAC,KAAgC,GAAK;QACrD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9C,CAAA;IAED,QAAQ,CAAC,QAA4B,EAAE;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAEhC;IAED,MAAM,GAAG;QACP,MAAM,OAAC,GAAG,CAAA,eAAE,WAAW,CAAA,SAAE,KAAK,CAAA,YAAE,QAAQ,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACtD,qBACE,gBAAC,CAAA,GAAA,yCAAS,CAAA;YACR,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;YAC1B,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,WAAW,EAAE,WAAW;sBAEvB,CAAC,GAAG,iBACH;;sCACE,gBAAC,CAAA,GAAA,yCAAW,CAAA;4BAAC,GAAG,EAAE,GAAG;4BAAE,GAAG,EAAE,GAAG;4BAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB;0BAAI;wBACrE,KAAK,kBACJ,gBAAC,CAAA,GAAA,yCAAM,CAAA;4BACL,GAAG,EAAE,GAAG;4BACR,GAAG,EAAE,GAAG;4BACR,QAAQ,EAAE,KAAK;4BACf,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,SAAS;0BACvD,AACH;;kBACA,AACJ;UACS,CACb;KACF;CACF;;;AO7ED;AAEO,MAAM,yCAAY,GAAG,CAAA,GAAA,uBAAM,CAAA,CAAC,GAAG,CAAC;;;;AAIvC,CAAC;AAEM,MAAM,yCAAoB,GAAG,CAAA,GAAA,uBAAM,CAAA,CAAC,GAAG,CAAC;;;AAG/C,CAAC;;;ACTD,IAAI,4BAAM,AAAuB;AAE1B,SAAS,yCAAY,GAA0B;IACpD,OAAO,4BAAM,CAAyB;CACvC;AAEM,SAAS,wCAAY,CAAC,SAAgC,EAAQ;IACnE,4BAAM,GAAG,SAAS;CACnB;;;AZGD,MAAM,uCAAiB,GAAG,CAAC,KAAa,EAAE,MAAc,GAAK;IAC3D,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,SAAS;KAChB,AAAS;IACV,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,GAAK;QACpD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAwB,CAAC,CAAC,CAAC,CAAC,CAAA;KAC1F,EAAE,EAAE,CAAa;IAElB,OAAO,CAAC,+CAA+C,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CACxE;AAYD,MAAM,mCAAa,SAAS,CAAA,GAAA,YAAK,CAAA,CAAC,aAAa;IAC7C,gBAAgB,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,eAAe,CAAC,CAAA;IAI5C,YAAY,KAAyB,CAAE;QACrC,KAAK,CAAC,KAAK,CAAC;QAEZ,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,KAAK;SACjB;KACF;IAED,aAAa,GAAG,CAAC,EAAa,GAAK;QACjC,IAAI,CAAC,UAAU,GAAG,EAAE;KACrB,CAAA;IAED,KAAK,GAAG;QACN,IAAI,IAAI,CAAC,UAAU,EACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;KAE1B;IAED,iBAAiB,GAAG,IAAM;QACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAM,CAAA;gBAAC,SAAS,EAAE,CAAC,SAAS,CAAC,SAAS;aAAC,CAAA,AAAC,CAAC;KAClE,CAAA;IAED,gBAAgB,GAAG,IAAM;QACvB,IAAI,CAAC,QAAQ,CAAC;YAAC,SAAS,EAAE,KAAK;SAAC,CAAC;KAClC,CAAA;IAED,YAAY,GAAG,CAAC,MAA0B,GAAK;QAC7C,MAAM,cAAC,UAAU,CAAA,YAAE,QAAQ,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACzC,QAAQ,CAAC;YACP,CAAA,GAAA,mBAAY,CAAA,CAAC;gBACX,KAAK,EAAE,UAAU,CAAC,IAAI;aACvB,CAAC;YACF,CAAA,GAAA,UAAG,CAAA,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;gBAAC,KAAK;aAAC,CAAC;YAC1B,CAAA,GAAA,UAAG,CAAA,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;gBAAC,KAAK;aAAC,CAAC;SAC3B,CAAC;KACH,CAAA;IAED,WAAW,GAAG,IAAM;QAClB,MAAM,YAAC,QAAQ,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAC7B,QAAQ,CAAC,CAAA,GAAA,YAAK,CAAA,EAAE,CAAC;KAClB,CAAA;IAED,MAAM,GAAG;QACP,MAAM,SAAC,KAAK,CAAA,YAAE,QAAQ,CAAA,gBAAE,YAAY,CAAA,EAAE,SAAS,EAAE,MAAM,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAErE,MAAM,aAAC,SAAS,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAE9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAC3B,qBACE,iBAAC,KAAG;;8BACF,iBAAC,GAAC;;wBAAC,MACG;sCAAA,gBAAC,GAAC;4BAAC,IAAI,EAAC,mDAAmD;sCAAC,eAAa;0BAAI;wBAAA,8CAEnF;;kBAAI;8BACJ,iBAAC,IAAE;;sCACD,gBAAC,IAAE;sCAAC,4BAA0B;0BAAK;sCACnC,gBAAC,IAAE;sCAAC,+BAA6B;0BAAK;sCACtC,gBAAC,IAAE;sCAAC,wBAAsB;0BAAK;;kBAC5B;8BACL,gBAAC,GAAC;8BAAC,+FAGH;kBAAI;;UACA,CACP;QAGH,qBACE;;gBACG,KAAK,kBACJ,gBAAC,CAAA,GAAA,0CAAmC,CAAA;oBAAC,KAAK,EAAE,KAAK;oBAAE,YAAY,EAAE,YAAY;8BAC3E,cAAA,gBAAC,CAAA,GAAA,sBAAe,CAAA;wBAAC,WAAW;kCAC1B,cAAA,gBAAC,CAAA,GAAA,yCAAY,CAAA;4BAAC,GAAG,EAAE,uCAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;4BAAE,GAAG,EAAC,cAAc;0BAAG;sBACjE;kBACkB,AACvC;gBAEA,CAAC,QAAQ,kBACR,gBAAC,CAAA,GAAA,UAAG,CAAA;oBAAC,SAAS,EAAE,CAAC;8BACf,cAAA,iBAAC,CAAA,GAAA,WAAI,CAAA;wBAAC,OAAO,EAAE,CAAC;wBAAE,GAAG,EAAE,CAAC;;0CACtB,gBAAC,CAAA,GAAA,aAAM,CAAA;gCACL,IAAI,EAAC,OAAO;gCACZ,IAAI,EAAE,KAAK,IAAI,CAAA,GAAA,eAAQ,CAAA;gCACvB,OAAO,EAAE,CAAC;gCACV,GAAG,EAAE,IAAI,CAAC,aAAa;gCACvB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;gCACrC,OAAO,EAAE,IAAI,CAAC,iBAAiB;8BAC/B;4BAED,KAAK,kBACJ,gBAAC,CAAA,GAAA,aAAM,CAAA;gCACL,IAAI,EAAC,UAAU;gCACf,IAAI,EAAE,CAAA,GAAA,gBAAS,CAAA;gCACf,OAAO,EAAE,CAAC;gCACV,IAAI,EAAC,OAAO;gCACZ,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,IAAI,CAAC,WAAW;8BACzB,AACH;;sBACI;kBACH,AACP;gBAEA,SAAS,kBACR,gBAAC,CAAA,GAAA,aAAM,CAAA;oBACL,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBACrC,OAAO,EAAE,IAAI,CAAC,gBAAgB;oBAC9B,MAAM,EAAC,6BAA6B;oBACpC,KAAK,EAAE,CAAC;8BAER,cAAA,gBAAC,CAAA,GAAA,yCAAoB,CAAA;kCACnB,cAAA,gBAAC,CAAA,GAAA,yCAAmB,CAAA;4BAAC,MAAM,EAAE,CAAA,GAAA,yCAAY,CAAA,EAAE;sCACxC,CAAC,GAAG,iBACH,gBAAC,CAAA,GAAA,yCAAc,CAAA;oCACb,GAAG,EAAE,GAAG;oCACR,KAAK,EAAE,KAAK,IAAI,SAAS;oCACzB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY;oCAClD,eAAe,EAAE,MAAM,CAAC,eAAe;oCACvC,WAAW,EAAE,MAAM,CAAC,WAAW;kCAC/B,AACH;0BACmB;sBACD;kBAChB,AACV;;UACA,CACJ;KACF;CACF;IAED,wCAA4B,GAAb,mCAAa;;;;Aa/K5B;;;;ACAA;;;;ACAA;;AAeO,MAAM,yCAAK,SAAS,oBAAmB;IAG5C,aAAa,GAET,EAAE,CAAA;IAEN,iBAAiB,GAAG;QAClB,MAAM,QAAC,IAAI,CAAA,MAAE,EAAE,CAAA,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,UAAE,MAAM,CAAA,WAAE,OAAO,CAAA,SAAE,KAAK,CAAA,YAAE,QAAQ,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QACzE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,kBAAkB;SACxC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;iBAC3B,GAAG;oBACH,MAAM;YACN,IAAI,EAAE;gBAAC,IAAI;gBAAE,EAAE;aAAC;YAChB,KAAK,EAAE;gBAAC;oBAAC,IAAI,EAAE,UAAU;oBAAE,MAAM,EAAE,KAAK;iBAAC;aAAC;YAC1C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,OAAO;SAC1C,CAAC;QAEF,IAAI,OAAO,EACT,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;QAG/E,IAAI,QAAQ,EACV,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;KAE/B;IAED,kBAAkB,CAAC,SAAgB,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EACZ,OAAM;QAGR,MAAM,QAAC,IAAI,CAAA,MAAE,EAAE,CAAA,OAAE,GAAG,CAAA,EAAC,GAAG,IAAI,CAAC,KAAK;QAClC,IAAI,CAAC,CAAA,GAAA,yCAAc,CAAA,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA,GAAA,yCAAc,CAAA,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAC5E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAAC,IAAI;YAAE,EAAE;SAAC,CAAC;QAG/B,IAAI,SAAS,CAAC,GAAG,KAAK,GAAG,EACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;KAExB;IAED,oBAAoB,GAAG;QACrB,IAAI,IAAI,CAAC,IAAI,EACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAGxB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;KAEpC;IAED,kDAAkD;IAClD,MAAM,GAAQ;QACZ,OAAO,IAAI,CAAA;KACZ;CACF;;;AD9DM,SAAS,yCAAY,CAAC,QAAC,IAAI,CAAA,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,SAAE,KAAK,CAAA,EAAQ,EAAE;IAC3D,MAAM,EAAC,SAAS,EAAE,IAAI,CAAA,EAAE,OAAO,EAAE,EAAE,CAAA,EAAC,GAAG,IAAI;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS;IAC/D,MAAM,SAAS,GAAG,CAAA,GAAA,mBAAY,CAAA,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,SAAS;IAClF,MAAM,OAAO,GAAG,aAAY,EAAsB;IAClD,MAAM,KAAK,GAAG,aAAY,EAAsB;IAEhD,qBACE;;YACG,IAAI,kBACH,gBAAC,CAAA,GAAA,yCAAM,CAAA;gBACL,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,SAAS;cAChB,AACH;YACA,IAAI,IAAI,EAAE,kBAAI,gBAAC,CAAA,GAAA,yCAAK,CAAA;gBAAC,GAAG,EAAE,GAAG;gBAAE,GAAG,EAAE,GAAG;gBAAE,IAAI,EAAE,IAAI;gBAAE,EAAE,EAAE,EAAE;gBAAE,MAAM,EAAE,CAAC;gBAAE,KAAK,EAAE,SAAS;cAAI;YAC5F,EAAE,kBACD,gBAAC,CAAA,GAAA,yCAAM,CAAA;gBACL,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,SAAS;cAChB,AACH;;MACA,CACJ;CACF;;;AE/CD;AAEO,MAAM,yCAAa,GAAG,CAAA,GAAA,uBAAM,CAAA,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;AAiBxC,CAAC;;;;AHFM,MAAM,yCAAiB,GAAuC,CAAC,QAAC,IAAI,CAAA,cAAE,UAAU,CAAA,EAAC,GAAK;IAC3F,qBACE,gBAAC,CAAA,GAAA,yCAAa,CAAA;kBACZ,cAAA,gBAAC,CAAA,GAAA,yCAAmB,CAAA;YAAC,MAAM,EAAE,CAAA,GAAA,yCAAY,CAAA,EAAE;sBACxC,CAAC,GAAG,iBAAK,gBAAC,kCAAY;oBAAC,GAAG,EAAE,GAAG;oBAAE,IAAI,EAAE,IAAI;oBAAE,UAAU,EAAE,UAAU;kBAAI;UACpD;MACR,CACjB;CACF;AAED,SAAS,kCAAY,CAAC,OAAC,GAAG,CAAA,QAAE,IAAI,CAAA,EAAwC,EAAE;IACxE,MAAM,SAAS,GAAG,AAAC,CAAA,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA,CAAE,MAAM,CAAC,oCAAc,CAAC;IAC/D,MAAM,OAAO,GAAG,AAAC,CAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,CAAE,MAAM,CAAC,oCAAc,CAAC;IAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAChD,OAAO,IAAI,CAAA;IAGb,MAAM,MAAM,GAAG,+BAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;IACjD,qBACE,gBAAC,CAAA,GAAA,yCAAS,CAAA;QACR,GAAG,EAAE,GAAG;QACR,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE;QACrC,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,MAAM;kBAEb,CAAC,GAAG,iBACH;0BACG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAC,OAAO,CAAA,EAAE,IAAI,EAAE,SAAS,CAAA,EAAC,GAAK;oBAC9C,IAAI,CAAC,kCAAY,CAAC,SAAS,CAAC,EAC1B,OAAO,IAAI,CAAA;oBAGb,qBACE,gBAAC,CAAA,GAAA,yCAAY,CAAA;wBAEX,GAAG,EAAE,GAAG;wBACR,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;uBAJd,OAAO,CAKZ,CACH;iBACF,CAAC;cACD,AACJ;MACS,CACb;CACF;AAED,SAAS,kCAAY,CAAC,IAAU,EAAgC;IAC9D,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;CAC7D;AAED,SAAS,oCAAc,CAAC,KAAwB,EAAqB;IACnE,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAA;CACtE;AAED,SAAS,+BAAS,CAChB,SAAyD,EACzD,OAAuD,EACvD,GAA8B,EACJ;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE;IACrC,MAAM,MAAM,GAAG;WAAK,SAAS,IAAI,EAAE;WAAO,OAAO,IAAI,EAAE;KAAE;IACzD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,GAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAA;CACd;;;AInFD;;;;;;;;AAiBO,MAAM,yCAAiB,GAAwC,CAAC,QAAC,IAAI,CAAA,cAAE,UAAU,CAAA,EAAC,GAAK;IAC5F,qBACE,gBAAC,CAAA,GAAA,yCAAa,CAAA;kBACZ,cAAA,gBAAC,CAAA,GAAA,yCAAmB,CAAA;YAAC,MAAM,EAAE,CAAA,GAAA,yCAAY,CAAA,EAAE;sBACxC,CAAC,GAAG,iBAAK,gBAAC,kCAAY;oBAAC,GAAG,EAAE,GAAG;oBAAE,IAAI,EAAE,IAAI;oBAAE,UAAU,EAAE,UAAU;kBAAI;UACpD;MACR,CACjB;CACF;AAED,SAAS,kCAAY,CAAC,OAAC,GAAG,CAAA,QAAE,IAAI,CAAA,EAA+C,EAAE;IAC/E,MAAM,aAAC,SAAS,CAAA,WAAE,OAAO,CAAA,EAAC,GAAG,IAAI;IACjC,MAAM,UAAU,GACd,CAAA,GAAA,0BAAmB,CAAA,CAAC,IAAI,EAAE;QAAC,KAAK;KAAC,CAAC,IAClC,CAAA,GAAA,0BAAmB,CAAA,CAAC,IAAI,EAAE;QAAC,KAAK;KAAC,CAAC,IAClC,CAAA,GAAA,0BAAmB,CAAA,CAAC,IAAI,EAAE,EAAE,CAAC;IAE/B,MAAM,MAAM,GAAG,+BAAS,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,IAAI,OAAO,GAAG,+BAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS;IAEpF,qBACE,gBAAC,CAAA,GAAA,kBAAW,CAAA;QAAC,WAAW,EAAE,UAAU,GAAG;YAAC,UAAU;SAAC,GAAG,EAAE;QAAE,WAAW,EAAE,+BAAS,CAAC,IAAI,CAAC;kBACpF,cAAA,gBAAC,KAAG;sBACF,cAAA,gBAAC,CAAA,GAAA,yCAAS,CAAA;gBACR,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,MAAM;gBAChB,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,KAAK;0BAEjB,CAAC,GAAG,iBAAK,gBAAC,CAAA,GAAA,yCAAY,CAAA;wBAAC,GAAG,EAAE,GAAG;wBAAE,GAAG,EAAE,GAAG;wBAAE,IAAI,EAAE,IAAI;sBAAI;cAChD;UACR;MACM,CACf;CACF;AAED,SAAS,+BAAS,CAChB,SAAoC,EACpC,OAAkC,EAClC,GAA8B,EACJ;IAC1B,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CAChE;AAED,SAAS,+BAAS,CAChB,IAAuB,EACvB,GAA8B,EACH;IAC3B,MAAM,aAAC,SAAS,CAAA,WAAE,OAAO,CAAA,EAAC,GAAG,IAAI;IACjC,IAAI,SAAS,IAAI,OAAO,EACtB,OAAO,+BAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAA;IAGhE,IAAI,SAAS,EACX,OAAO,SAAS,CAAA;IAGlB,IAAI,OAAO,EACT,OAAO,OAAO,CAAA;IAGhB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;CACxD;AAED,SAAS,+BAAS,CAAC,IAA0B,EAAE;IAC7C,MAAM,aAAC,SAAS,CAAA,WAAE,OAAO,CAAA,EAAC,GAAG,IAAI;IACjC,IAAI,SAAS,IAAI,OAAO,EACtB,OAAO,OAAO,CAAA;SACT,IAAI,SAAS,EAClB,OAAO,SAAS,CAAA;SACX,IAAI,OAAO,EAChB,OAAO,OAAO,CAAA;IAGhB,OAAO,WAAW,CAAA;CACnB;;;AlBvEM,MAAM,yCAAe,GAAG,CAAA,GAAA,mBAAY,CAAA,CAAwB,CAAC,MAAM,GAAK;IAC7E,CAAA,GAAA,wCAAY,CAAA,CAAC,MAAM,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,KAAK,GAAK;gBACtB,IAAI,gCAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;oBAChC,MAAM,WAAW,GAAG,KAAK,AAAoD;oBAC7E,qBAAO,gBAAC,CAAA,GAAA,wCAAa,CAAA;wBAAE,GAAG,WAAW;wBAAE,SAAS,EAAE,MAAM;sBAAI,CAAA;iBAC7D;gBACD,OAAO,SAAS,CAAA;aACjB;SACF;KACF,CAAA;CACF,CAAC;AAEF,SAAS,gCAAU,CAAC,UAAsB,EAAoC;IAC5E,OAAO,4BAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;CACtC;AAED,SAAS,4BAAM,CAAC,IAAY,EAAE,MAAmB,EAAW;IAC1D,IAAI,MAAM,EAAE,IAAI,KAAK,IAAI,EACvB,OAAO,IAAI,CAAA;SAEN,IAAI,CAAC,MAAM,EAAE,IAAI,EACtB,OAAO,KAAK,CAAA;IAEd,OAAO,4BAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;CAClC","sources":["src/index.tsx","src/input/GeopointInput.tsx","src/loader/GoogleMapsLoadProxy.tsx","src/loader/loadGoogleMapsApi.ts","src/loader/LoadError.tsx","src/input/GeopointSelect.tsx","src/map/SearchInput.tsx","src/map/SearchInput.styles.tsx","src/map/Map.tsx","src/map/util.ts","src/map/Map.styles.tsx","src/map/Marker.tsx","src/input/GeopointInput.styles.tsx","src/global-workaround.ts","src/diff/GeopointArrayDiff.tsx","src/diff/GeopointMove.tsx","src/map/Arrow.tsx","src/diff/GeopointFieldDiff.styles.tsx","src/diff/GeopointFieldDiff.tsx"],"sourcesContent":["import React from 'react'\nimport {createPlugin, SchemaType} from 'sanity'\nimport GeopointInput, {GeopointInputProps} from './input/GeopointInput'\nimport {setGeoConfig} from './global-workaround'\nimport {Geopoint, GeopointSchemaType} from './types'\n\nexport {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'\nexport {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'\n\nexport type {LatLng, GeopointSchemaType, Geopoint} from './types'\nexport {GeopointInput}\nexport type {GeopointInputProps}\n\nexport interface GoogleMapsInputConfig {\n apiKey: string\n defaultZoom?: number\n defaultLocale?: string\n defaultLocation?: {\n lat: number\n lng: number\n }\n}\n\nexport const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {\n setGeoConfig(config)\n return {\n name: 'google-maps-input',\n form: {\n renderInput: (props) => {\n if (isGeopoint(props.schemaType)) {\n const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>\n return <GeopointInput {...castedProps} geoConfig={config} />\n }\n return undefined\n },\n },\n }\n})\n\nfunction isGeopoint(schemaType: SchemaType): schemaType is GeopointSchemaType {\n return isType('geopoint', schemaType)\n}\n\nfunction isType(name: string, schema?: SchemaType): boolean {\n if (schema?.name === name) {\n return true\n // eslint-disable-next-line no-negated-condition\n } else if (!schema?.name) {\n return false\n }\n return isType(name, schema?.type)\n}\n","import React from 'react'\nimport {uniqueId} from 'lodash'\nimport {Box, Button, Dialog, Grid} from '@sanity/ui'\nimport {EditIcon, TrashIcon} from '@sanity/icons'\nimport {ChangeIndicator, ChangeIndicatorCompareValueProvider} from 'sanity/_unstable'\nimport {ObjectInputProps, set, setIfMissing, unset} from 'sanity/form'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {Geopoint, GeopointSchemaType, LatLng} from '../types'\nimport {GeopointSelect} from './GeopointSelect'\nimport {DialogInnerContainer, PreviewImage} from './GeopointInput.styles'\nimport {GoogleMapsInputConfig} from '../index'\nimport {getGeoConfig} from '../global-workaround'\n\nconst getStaticImageUrl = (value: LatLng, apiKey: string) => {\n const loc = `${value.lat},${value.lng}`\n const params = {\n key: apiKey,\n center: loc,\n markers: loc,\n zoom: 13,\n scale: 2,\n size: '640x300',\n } as const\n const qs = Object.keys(params).reduce((res, param) => {\n return res.concat(`${param}=${encodeURIComponent(params[param as keyof typeof params])}`)\n }, [] as string[])\n\n return `https://maps.googleapis.com/maps/api/staticmap?${qs.join('&')}`\n}\n\nexport type GeopointInputProps = ObjectInputProps<Geopoint, GeopointSchemaType> & {\n geoConfig: GoogleMapsInputConfig\n}\n\ntype Focusable = any\n\ninterface InputState {\n modalOpen: boolean\n}\n\nclass GeopointInput extends React.PureComponent<GeopointInputProps, InputState> {\n _geopointInputId = uniqueId('GeopointInput')\n\n editButton: Focusable | undefined\n\n constructor(props: GeopointInputProps) {\n super(props)\n\n this.state = {\n modalOpen: false,\n }\n }\n\n setEditButton = (el: Focusable) => {\n this.editButton = el\n }\n\n focus() {\n if (this.editButton) {\n this.editButton.focus()\n }\n }\n\n handleToggleModal = () => {\n this.setState((prevState) => ({modalOpen: !prevState.modalOpen}))\n }\n\n handleCloseModal = () => {\n this.setState({modalOpen: false})\n }\n\n handleChange = (latLng: google.maps.LatLng) => {\n const {schemaType, onChange} = this.props\n onChange([\n setIfMissing({\n _type: schemaType.name,\n }),\n set(latLng.lat(), ['lat']),\n set(latLng.lng(), ['lng']),\n ])\n }\n\n handleClear = () => {\n const {onChange} = this.props\n onChange(unset())\n }\n\n render() {\n const {value, readOnly, compareValue, geoConfig: config} = this.props\n\n const {modalOpen} = this.state\n\n if (!config || !config.apiKey) {\n return (\n <div>\n <p>\n The <a href=\"https://sanity.io/docs/schema-types/geopoint-type\">Geopoint type</a> needs\n a Google Maps API key with access to:\n </p>\n <ul>\n <li>Google Maps JavaScript API</li>\n <li>Google Places API Web Service</li>\n <li>Google Static Maps API</li>\n </ul>\n <p>\n Please enter the API key with access to these services in your googleMapsInput plugin\n config.\n </p>\n </div>\n )\n }\n\n return (\n <>\n {value && (\n <ChangeIndicatorCompareValueProvider value={value} compareValue={compareValue}>\n <ChangeIndicator compareDeep>\n <PreviewImage src={getStaticImageUrl(value, config.apiKey)} alt=\"Map location\" />\n </ChangeIndicator>\n </ChangeIndicatorCompareValueProvider>\n )}\n\n {!readOnly && (\n <Box marginTop={4}>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n icon={value && EditIcon}\n padding={3}\n ref={this.setEditButton}\n text={value ? 'Edit' : 'Set location'}\n onClick={this.handleToggleModal}\n />\n\n {value && (\n <Button\n tone=\"critical\"\n icon={TrashIcon}\n padding={3}\n mode=\"ghost\"\n text={'Remove'}\n onClick={this.handleClear}\n />\n )}\n </Grid>\n </Box>\n )}\n\n {modalOpen && (\n <Dialog\n id={`${this._geopointInputId}_dialog`}\n onClose={this.handleCloseModal}\n header=\"Place the marker on the map\"\n width={1}\n >\n <DialogInnerContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => (\n <GeopointSelect\n api={api}\n value={value || undefined}\n onChange={readOnly ? undefined : this.handleChange}\n defaultLocation={config.defaultLocation}\n defaultZoom={config.defaultZoom}\n />\n )}\n </GoogleMapsLoadProxy>\n </DialogInnerContainer>\n </Dialog>\n )}\n </>\n )\n }\n}\n\nexport default GeopointInput\n","import React from 'react'\nimport {Subscription} from 'rxjs'\nimport {loadGoogleMapsApi, GoogleLoadState} from './loadGoogleMapsApi'\nimport {LoadError} from './LoadError'\nimport {GoogleMapsInputConfig} from '../index'\n\ninterface LoadProps {\n children: (api: typeof window.google.maps) => React.ReactElement\n config: GoogleMapsInputConfig\n}\n\nexport class GoogleMapsLoadProxy extends React.Component<LoadProps, GoogleLoadState> {\n loadSubscription: Subscription | undefined\n\n constructor(props: LoadProps) {\n super(props)\n\n this.state = {loadState: 'loading'}\n\n let sync = true\n this.loadSubscription = loadGoogleMapsApi(props.config).subscribe((loadState) => {\n if (sync) {\n this.state = loadState\n } else {\n this.setState(loadState)\n }\n })\n sync = false\n }\n\n componentWillUnmount() {\n if (this.loadSubscription) {\n this.loadSubscription.unsubscribe()\n }\n }\n\n render() {\n switch (this.state.loadState) {\n case 'loadError':\n return <LoadError error={this.state.error} isAuthError={false} />\n case 'authError':\n return <LoadError isAuthError />\n case 'loading':\n return <div>Loading Google Maps API</div>\n case 'loaded':\n return this.props.children(this.state.api) || null\n default:\n return null\n }\n }\n}\n","import {Observable, BehaviorSubject} from 'rxjs'\nimport {GoogleMapsInputConfig} from '../index'\n\ndeclare global {\n interface Window {\n gm_authFailure: any\n ___sanity_googleMapsApiCallback: any\n }\n}\n\nconst callbackName = '___sanity_googleMapsApiCallback'\nconst authFailureCallbackName = 'gm_authFailure'\nconst locale = (typeof window !== 'undefined' && window.navigator.language) || 'en'\n\nexport interface LoadingState {\n loadState: 'loading'\n}\n\nexport interface LoadedState {\n loadState: 'loaded'\n api: typeof window.google.maps\n}\n\nexport interface LoadErrorState {\n loadState: 'loadError'\n error: Error\n}\n\nexport interface AuthErrorState {\n loadState: 'authError'\n}\n\nexport type GoogleLoadState = LoadingState | LoadedState | LoadErrorState | AuthErrorState\n\nlet subject: BehaviorSubject<GoogleLoadState>\n\nexport function loadGoogleMapsApi(config: GoogleMapsInputConfig): Observable<GoogleLoadState> {\n const selectedLocale = config.defaultLocale || locale || 'en-US'\n\n if (subject) {\n return subject\n }\n\n subject = new BehaviorSubject<GoogleLoadState>({loadState: 'loading'})\n\n window[authFailureCallbackName] = () => {\n delete window[authFailureCallbackName]\n subject.next({loadState: 'authError'})\n }\n\n window[callbackName] = () => {\n delete window[callbackName]\n subject.next({loadState: 'loaded', api: window.google.maps})\n }\n\n const script = document.createElement('script')\n script.onerror = (\n event: Event | string,\n source?: string,\n lineno?: number,\n colno?: number,\n error?: Error\n ) =>\n subject.next({\n loadState: 'loadError',\n error: coeerceError(event, error),\n } as LoadErrorState)\n\n script.src = `https://maps.googleapis.com/maps/api/js?key=${config.apiKey}&libraries=places&callback=${callbackName}&language=${selectedLocale}`\n document.getElementsByTagName('head')[0].appendChild(script)\n\n return subject\n}\n\nfunction coeerceError(event: Event | string, error?: Error): Error {\n if (error) {\n return error\n }\n\n if (typeof event === 'string') {\n return new Error(event)\n }\n\n return new Error(isErrorEvent(event) ? event.message : 'Failed to load Google Maps API')\n}\n\nfunction isErrorEvent(event: unknown): event is ErrorEvent {\n if (typeof event !== 'object' || event === null) {\n return false\n }\n\n if (!('message' in event)) {\n return false\n }\n\n return typeof (event as ErrorEvent).message === 'string'\n}\n","import * as React from 'react'\nimport {Card, Box, Text, Code} from '@sanity/ui'\n\ntype Props = {error: Error; isAuthError: false} | {isAuthError: true}\n\nexport function LoadError(props: Props) {\n return (\n <Card tone=\"critical\" radius={1}>\n <Box as=\"header\" paddingX={4} paddingTop={4} paddingBottom={1}>\n <Text as=\"h2\" weight=\"bold\">\n Google Maps failed to load\n </Text>\n </Box>\n\n <Box paddingX={4} paddingTop={4} paddingBottom={1}>\n {props.isAuthError ? (\n <AuthError />\n ) : (\n <>\n <Text as=\"h3\">Error details:</Text>\n <pre>\n <Code size={1}>{'error' in props && props.error?.message}</Code>\n </pre>\n </>\n )}\n </Box>\n </Card>\n )\n}\n\nfunction AuthError() {\n return (\n <Text>\n <p>The error appears to be related to authentication</p>\n <p>Common causes include:</p>\n <ul>\n <li>Incorrect API key</li>\n <li>Referer not allowed</li>\n <li>Missing authentication scope</li>\n </ul>\n <p>Check the browser developer tools for more information.</p>\n </Text>\n )\n}\n","import React from 'react'\nimport {SearchInput} from '../map/SearchInput'\nimport {GoogleMap} from '../map/Map'\nimport {Marker} from '../map/Marker'\nimport {LatLng, Geopoint} from '../types'\n\nconst fallbackLatLng: LatLng = {lat: 40.7058254, lng: -74.1180863}\n\ninterface SelectProps {\n api: typeof window.google.maps\n value?: Geopoint\n onChange?: (latLng: google.maps.LatLng) => void\n defaultLocation?: LatLng\n defaultZoom?: number\n}\n\nexport class GeopointSelect extends React.PureComponent<SelectProps> {\n static defaultProps = {\n defaultZoom: 8,\n defaultLocation: {lng: 10.74609, lat: 59.91273},\n }\n\n mapRef = React.createRef<HTMLDivElement>()\n\n getCenter() {\n const {value = {}, defaultLocation = {}} = this.props\n const point: LatLng = {...fallbackLatLng, ...defaultLocation, ...value}\n return point\n }\n\n handlePlaceChanged = (place: google.maps.places.PlaceResult) => {\n if (!place.geometry?.location) {\n return\n }\n\n this.setValue(place.geometry.location)\n }\n\n handleMarkerDragEnd = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n handleMapClick = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n setValue(geoPoint: google.maps.LatLng) {\n if (this.props.onChange) {\n this.props.onChange(geoPoint)\n }\n }\n\n render() {\n const {api, defaultZoom, value, onChange} = this.props\n return (\n <GoogleMap\n api={api}\n location={this.getCenter()}\n onClick={this.handleMapClick}\n defaultZoom={defaultZoom}\n >\n {(map) => (\n <>\n <SearchInput api={api} map={map} onChange={this.handlePlaceChanged} />\n {value && (\n <Marker\n api={api}\n map={map}\n position={value}\n onMove={onChange ? this.handleMarkerDragEnd : undefined}\n />\n )}\n </>\n )}\n </GoogleMap>\n )\n }\n}\n","import * as React from 'react'\nimport {TextInput} from '@sanity/ui'\nimport {WrapperContainer} from './SearchInput.styles'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onChange: (result: google.maps.places.PlaceResult) => void\n}\n\nexport class SearchInput extends React.PureComponent<Props> {\n searchInputRef = React.createRef<HTMLInputElement>()\n autoComplete: google.maps.places.Autocomplete | undefined\n\n handleChange = () => {\n if (!this.autoComplete) {\n return\n }\n\n this.props.onChange(this.autoComplete.getPlace())\n\n if (this.searchInputRef.current) {\n this.searchInputRef.current.value = ''\n }\n }\n\n componentDidMount() {\n const input = this.searchInputRef.current\n if (!input) {\n return\n }\n\n const {api, map} = this.props\n const {Circle, places, event} = api\n const searchBounds = new Circle({center: map.getCenter(), radius: 100}).getBounds()!\n this.autoComplete = new places.Autocomplete(input, {\n bounds: searchBounds,\n types: [], // return all kinds of places\n })\n\n event.addListener(this.autoComplete, 'place_changed', this.handleChange)\n }\n\n render() {\n return (\n <WrapperContainer>\n <TextInput\n name=\"place\"\n ref={this.searchInputRef}\n placeholder=\"Search for place or address\"\n padding={4}\n />\n </WrapperContainer>\n )\n }\n}\n","import styled from 'styled-components'\n\nexport const WrapperContainer = styled.div`\n position: absolute;\n right: 10px;\n top: 10px;\n width: 220px;\n`\n","import React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\nimport {MapContainer} from './Map.styles'\n\ninterface MapProps {\n api: typeof window.google.maps\n location: LatLng\n bounds?: google.maps.LatLngBounds\n defaultZoom?: number\n mapTypeControl?: boolean\n scrollWheel?: boolean\n controlSize?: number\n onClick?: (event: google.maps.MapMouseEvent) => void\n children?: (map: google.maps.Map) => React.ReactElement\n}\n\ninterface MapState {\n map: google.maps.Map | undefined\n}\n\nexport class GoogleMap extends React.PureComponent<MapProps, MapState> {\n static defaultProps = {\n defaultZoom: 8,\n scrollWheel: true,\n }\n\n state: MapState = {map: undefined}\n clickHandler: google.maps.MapsEventListener | undefined\n mapRef = React.createRef<HTMLDivElement>()\n mapEl: HTMLDivElement | null = null\n\n componentDidMount() {\n this.attachClickHandler()\n }\n\n attachClickHandler = () => {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {api, onClick} = this.props\n const {event} = api\n\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n\n if (onClick) {\n this.clickHandler = event.addListener(map, 'click', onClick)\n }\n }\n\n componentDidUpdate(prevProps: MapProps) {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {onClick, location, bounds} = this.props\n\n if (prevProps.onClick !== onClick) {\n this.attachClickHandler()\n }\n\n if (!latLngAreEqual(prevProps.location, location)) {\n map.panTo(this.getCenter())\n }\n\n if (bounds && (!prevProps.bounds || !bounds.equals(prevProps.bounds))) {\n map.fitBounds(bounds)\n }\n }\n\n componentWillUnmount() {\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n }\n\n getCenter(): google.maps.LatLng {\n const {location, api} = this.props\n return new api.LatLng(location.lat, location.lng)\n }\n\n constructMap(el: HTMLDivElement) {\n const {defaultZoom, api, mapTypeControl, controlSize, bounds, scrollWheel} = this.props\n\n const map = new api.Map(el, {\n zoom: defaultZoom,\n center: this.getCenter(),\n scrollwheel: scrollWheel,\n streetViewControl: false,\n mapTypeControl,\n controlSize,\n })\n\n if (bounds) {\n map.fitBounds(bounds)\n }\n\n return map\n }\n\n setMapElement = (element: HTMLDivElement | null) => {\n if (element && element !== this.mapEl) {\n const map = this.constructMap(element)\n this.setState({map}, this.attachClickHandler)\n }\n\n this.mapEl = element\n }\n\n render() {\n const {children} = this.props\n const {map} = this.state\n return (\n <>\n <MapContainer ref={this.setMapElement} />\n {children && map ? children(map) : null}\n </>\n )\n }\n}\n","import {LatLng} from '../types'\n\nexport function latLngAreEqual(\n latLng1: LatLng | google.maps.LatLng,\n latLng2: LatLng | google.maps.LatLng\n): boolean {\n const lat1 = typeof latLng1.lat === 'function' ? latLng1.lat() : latLng1.lat\n const lng1 = typeof latLng1.lng === 'function' ? latLng1.lng() : latLng1.lng\n\n const lat2 = typeof latLng2.lat === 'function' ? latLng2.lat() : latLng2.lat\n const lng2 = typeof latLng2.lng === 'function' ? latLng2.lng() : latLng2.lng\n\n return lat1 === lat2 && lng1 === lng2\n}\n","import styled from 'styled-components'\n\nexport const MapContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n`\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\nconst markerPath =\n 'M 3.052 3.7 C 1.56 5.293 0.626 7.612 0.663 9.793 C 0.738 14.352 2.793 16.077 6.078 22.351 C 7.263 25.111 8.497 28.032 9.672 32.871 C 9.835 33.584 9.994 34.246 10.069 34.305 C 10.143 34.362 10.301 33.697 10.465 32.983 C 11.639 28.145 12.875 25.226 14.059 22.466 C 17.344 16.192 19.398 14.466 19.474 9.908 C 19.511 7.727 18.574 5.405 17.083 3.814 C 15.379 1.994 12.809 0.649 10.069 0.593 C 7.328 0.536 4.756 1.882 3.052 3.7 Z'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onMove?: (event: google.maps.MapMouseEvent) => void\n onClick?: (event: google.maps.MapMouseEvent) => void\n position: LatLng | google.maps.LatLng\n zIndex?: number\n opacity?: number\n label?: string\n markerRef?: React.MutableRefObject<google.maps.Marker | undefined>\n color?: {background: string; border: string; text: string}\n}\n\nexport class Marker extends React.PureComponent<Props> {\n marker: google.maps.Marker | undefined\n\n eventHandlers: {\n move?: google.maps.MapsEventListener\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {position, api, map, onMove, zIndex, opacity, label, markerRef, color} = this.props\n const {Marker: GMarker} = api\n\n let icon: google.maps.Symbol | undefined\n if (color) {\n icon = {\n path: markerPath,\n fillOpacity: 1,\n fillColor: color.background,\n strokeColor: color.border,\n strokeWeight: 2,\n anchor: new api.Point(10, 35),\n labelOrigin: new api.Point(10, 11),\n }\n }\n\n this.marker = new GMarker({\n draggable: Boolean(onMove),\n position,\n map,\n zIndex,\n opacity,\n label,\n icon,\n })\n\n if (markerRef) {\n markerRef.current = this.marker\n }\n\n this.attachMoveHandler()\n this.attachClickHandler()\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.marker) {\n return\n }\n\n const {position, onMove, label, zIndex, opacity, map} = this.props\n\n if (prevProps.onMove !== onMove) {\n this.attachMoveHandler()\n }\n\n if (!latLngAreEqual(prevProps.position, position)) {\n this.marker.setPosition(position)\n }\n\n if (prevProps.label !== label) {\n this.marker.setLabel(label || null)\n }\n\n if (prevProps.zIndex !== zIndex) {\n this.marker.setZIndex(zIndex || null)\n }\n\n if (prevProps.opacity !== opacity) {\n this.marker.setOpacity(opacity || null)\n }\n\n if (prevProps.map !== map) {\n this.marker.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n\n if (this.marker) {\n this.marker.setMap(null)\n }\n }\n\n attachMoveHandler() {\n const {api, onMove} = this.props\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n if (this.marker && onMove) {\n this.eventHandlers.move = api.event.addListener(this.marker, 'dragend', onMove)\n }\n }\n\n attachClickHandler() {\n const {api, onClick} = this.props\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n if (this.marker && onClick) {\n this.eventHandlers.click = api.event.addListener(this.marker, 'click', onClick)\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const PreviewImage = styled.img`\n width: 100%;\n height: auto;\n vertical-align: top;\n`\n\nexport const DialogInnerContainer = styled.div`\n height: 40rem;\n width: 50rem;\n`\n","import {GoogleMapsInputConfig} from './index'\n\nlet config: GoogleMapsInputConfig\n\nexport function getGeoConfig(): GoogleMapsInputConfig {\n return config as GoogleMapsInputConfig\n}\n\nexport function setGeoConfig(newConfig: GoogleMapsInputConfig): void {\n config = newConfig\n}\n","import * as React from 'react'\nimport {\n ArrayDiff,\n ObjectDiff,\n Diff,\n DiffProps as GenericDiffProps,\n DiffComponent,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ArrayDiff<Geopoint>>\n\nexport const GeopointArrayDiff: DiffComponent<ArrayDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof google.maps}) {\n const fromValue = (diff.fromValue || []).filter(hasCoordinates)\n const toValue = (diff.toValue || []).filter(hasCoordinates)\n if (fromValue.length === 0 && toValue.length === 0) {\n return null\n }\n\n const bounds = getBounds(fromValue, toValue, api)\n return (\n <GoogleMap\n api={api}\n location={bounds.getCenter().toJSON()}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n >\n {(map) => (\n <>\n {diff.items.map(({toIndex, diff: pointDiff}) => {\n if (!isChangeDiff(pointDiff)) {\n return null\n }\n\n return (\n <GeopointMove\n key={toIndex}\n api={api}\n map={map}\n diff={pointDiff}\n label={`${toIndex}`}\n />\n )\n })}\n </>\n )}\n </GoogleMap>\n )\n}\n\nfunction isChangeDiff(diff: Diff): diff is ObjectDiff<Geopoint> {\n return diff.action !== 'unchanged' && diff.type === 'object'\n}\n\nfunction hasCoordinates(point: Partial<Geopoint>): point is Geopoint {\n return typeof point.lat === 'number' && typeof point.lng === 'number'\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral[] | null | undefined,\n toValue: google.maps.LatLngLiteral[] | null | undefined,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n const bounds = new api.LatLngBounds()\n const points = [...(fromValue || []), ...(toValue || [])]\n points.forEach((point) => bounds.extend(point))\n return bounds\n}\n","import * as React from 'react'\nimport {useUserColor, ObjectDiff} from 'sanity/_unstable'\nimport {Marker} from '../map/Marker'\nimport {Arrow} from '../map/Arrow'\nimport {Geopoint} from '../types'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n diff: ObjectDiff<Geopoint>\n label?: string\n}\n\nexport function GeopointMove({diff, api, map, label}: Props) {\n const {fromValue: from, toValue: to} = diff\n const annotation = diff.isChanged ? diff.annotation : undefined\n const userColor = useUserColor(annotation ? annotation.author : null) || undefined\n const fromRef = React.useRef<google.maps.Marker>()\n const toRef = React.useRef<google.maps.Marker>()\n\n return (\n <>\n {from && (\n <Marker\n api={api}\n map={map}\n position={from}\n zIndex={0}\n opacity={0.55}\n markerRef={fromRef}\n color={userColor}\n />\n )}\n {from && to && <Arrow api={api} map={map} from={from} to={to} zIndex={1} color={userColor} />}\n {to && (\n <Marker\n api={api}\n map={map}\n position={to}\n zIndex={2}\n markerRef={toRef}\n label={label}\n color={userColor}\n />\n )}\n </>\n )\n}\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n from: LatLng\n to: LatLng\n color?: {background: string; border: string; text: string}\n zIndex?: number\n arrowRef?: React.MutableRefObject<google.maps.Polyline | undefined>\n onClick?: (event: google.maps.MapMouseEvent) => void\n}\n\nexport class Arrow extends React.PureComponent<Props> {\n line: google.maps.Polyline | undefined\n\n eventHandlers: {\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {from, to, api, map, zIndex, onClick, color, arrowRef} = this.props\n const lineSymbol = {\n path: api.SymbolPath.FORWARD_OPEN_ARROW,\n }\n\n this.line = new api.Polyline({\n map,\n zIndex,\n path: [from, to],\n icons: [{icon: lineSymbol, offset: '50%'}],\n strokeOpacity: 0.55,\n strokeColor: color ? color.text : 'black',\n })\n\n if (onClick) {\n this.eventHandlers.click = api.event.addListener(this.line, 'click', onClick)\n }\n\n if (arrowRef) {\n arrowRef.current = this.line\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.line) {\n return\n }\n\n const {from, to, map} = this.props\n if (!latLngAreEqual(prevProps.from, from) || !latLngAreEqual(prevProps.to, to)) {\n this.line.setPath([from, to])\n }\n\n if (prevProps.map !== map) {\n this.line.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.line) {\n this.line.setMap(null)\n }\n\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const RootContainer = styled.div`\n position: relative;\n min-height: 200px;\n\n &:empty {\n background-color: var(--card-skeleton-color-from);\n display: table;\n width: 100%;\n }\n\n &:empty:after {\n content: 'Missing/invalid data';\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n position: relative;\n }\n`\n","import * as React from 'react'\nimport {\n DiffComponent,\n ObjectDiff,\n DiffProps as GenericDiffProps,\n DiffTooltip,\n getAnnotationAtPath,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ObjectDiff<Geopoint>>\n\nexport const GeopointFieldDiff: DiffComponent<ObjectDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof window.google.maps}) {\n const {fromValue, toValue} = diff\n const annotation =\n getAnnotationAtPath(diff, ['lat']) ||\n getAnnotationAtPath(diff, ['lng']) ||\n getAnnotationAtPath(diff, [])\n\n const center = getCenter(diff, api)\n const bounds = fromValue && toValue ? getBounds(fromValue, toValue, api) : undefined\n\n return (\n <DiffTooltip annotations={annotation ? [annotation] : []} description={getAction(diff)}>\n <div>\n <GoogleMap\n api={api}\n location={center}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n scrollWheel={false}\n >\n {(map) => <GeopointMove api={api} map={map} diff={diff} />}\n </GoogleMap>\n </div>\n </DiffTooltip>\n )\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral,\n toValue: google.maps.LatLngLiteral,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n return new api.LatLngBounds().extend(fromValue).extend(toValue)\n}\n\nfunction getCenter(\n diff: DiffProps['diff'],\n api: typeof window.google.maps\n): google.maps.LatLngLiteral {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return getBounds(fromValue, toValue, api).getCenter().toJSON()\n }\n\n if (fromValue) {\n return fromValue\n }\n\n if (toValue) {\n return toValue\n }\n\n throw new Error('Neither a from or a to value present')\n}\n\nfunction getAction(diff: ObjectDiff<Geopoint>) {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return 'Moved'\n } else if (fromValue) {\n return 'Removed'\n } else if (toValue) {\n return 'Added'\n }\n\n return 'Unchanged'\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../"}
1
+ {"mappings":"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","sources":["src/index.tsx","src/input/GeopointInput.tsx","src/loader/GoogleMapsLoadProxy.tsx","src/loader/loadGoogleMapsApi.ts","src/loader/LoadError.tsx","src/input/GeopointSelect.tsx","src/map/SearchInput.tsx","src/map/SearchInput.styles.tsx","src/map/Map.tsx","src/map/util.ts","src/map/Map.styles.tsx","src/map/Marker.tsx","src/input/GeopointInput.styles.tsx","src/global-workaround.ts","src/diff/GeopointArrayDiff.tsx","src/diff/GeopointMove.tsx","src/map/Arrow.tsx","src/diff/GeopointFieldDiff.styles.tsx","src/diff/GeopointFieldDiff.tsx"],"sourcesContent":["import React from 'react'\nimport {createPlugin, SchemaType} from 'sanity'\nimport GeopointInput, {GeopointInputProps} from './input/GeopointInput'\nimport {setGeoConfig} from './global-workaround'\nimport {GeopointSchemaType} from './types'\n\nexport {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'\nexport {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'\n\nexport type {LatLng, GeopointSchemaType, Geopoint} from './types'\nexport {GeopointInput}\nexport type {GeopointInputProps}\n\nexport interface GoogleMapsInputConfig {\n apiKey: string\n defaultZoom?: number\n defaultLocale?: string\n defaultLocation?: {\n lat: number\n lng: number\n }\n}\n\nexport const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {\n setGeoConfig(config)\n return {\n name: 'google-maps-input',\n form: {\n renderInput: (props) => {\n if (isGeopoint(props.schemaType)) {\n const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>\n return <GeopointInput {...castedProps} geoConfig={config} />\n }\n return undefined\n },\n },\n }\n})\n\nfunction isGeopoint(schemaType: SchemaType): schemaType is GeopointSchemaType {\n return isType('geopoint', schemaType)\n}\n\nfunction isType(name: string, schema?: SchemaType): boolean {\n if (schema?.name === name) {\n return true\n // eslint-disable-next-line no-negated-condition\n } else if (!schema?.name) {\n return false\n }\n return isType(name, schema?.type)\n}\n","import React from 'react'\nimport {uniqueId} from 'lodash'\nimport {Box, Button, Dialog, Grid} from '@sanity/ui'\nimport {EditIcon, TrashIcon} from '@sanity/icons'\nimport {ChangeIndicator} from 'sanity/_unstable'\nimport {ObjectInputProps, set, setIfMissing, unset} from 'sanity/form'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {Geopoint, GeopointSchemaType, LatLng} from '../types'\nimport {GeopointSelect} from './GeopointSelect'\nimport {DialogInnerContainer, PreviewImage} from './GeopointInput.styles'\nimport {GoogleMapsInputConfig} from '../index'\nimport {getGeoConfig} from '../global-workaround'\n\nconst getStaticImageUrl = (value: LatLng, apiKey: string) => {\n const loc = `${value.lat},${value.lng}`\n const params = {\n key: apiKey,\n center: loc,\n markers: loc,\n zoom: 13,\n scale: 2,\n size: '640x300',\n } as const\n const qs = Object.keys(params).reduce((res, param) => {\n return res.concat(`${param}=${encodeURIComponent(params[param as keyof typeof params])}`)\n }, [] as string[])\n\n return `https://maps.googleapis.com/maps/api/staticmap?${qs.join('&')}`\n}\n\nexport type GeopointInputProps = ObjectInputProps<Geopoint, GeopointSchemaType> & {\n geoConfig: GoogleMapsInputConfig\n}\n\ntype Focusable = any\n\ninterface InputState {\n modalOpen: boolean\n}\n\nclass GeopointInput extends React.PureComponent<GeopointInputProps, InputState> {\n _geopointInputId = uniqueId('GeopointInput')\n\n editButton: Focusable | undefined\n\n constructor(props: GeopointInputProps) {\n super(props)\n\n this.state = {\n modalOpen: false,\n }\n }\n\n setEditButton = (el: Focusable) => {\n this.editButton = el\n }\n\n focus() {\n if (this.editButton) {\n this.editButton.focus()\n }\n }\n\n handleToggleModal = () => {\n this.setState((prevState) => ({modalOpen: !prevState.modalOpen}))\n }\n\n handleCloseModal = () => {\n this.setState({modalOpen: false})\n }\n\n handleChange = (latLng: google.maps.LatLng) => {\n const {schemaType, onChange} = this.props\n onChange([\n setIfMissing({\n _type: schemaType.name,\n }),\n set(latLng.lat(), ['lat']),\n set(latLng.lng(), ['lng']),\n ])\n }\n\n handleClear = () => {\n const {onChange} = this.props\n onChange(unset())\n }\n\n render() {\n const {value, readOnly, geoConfig: config, path, changed, focused} = this.props\n\n const {modalOpen} = this.state\n\n if (!config || !config.apiKey) {\n return (\n <div>\n <p>\n The <a href=\"https://sanity.io/docs/schema-types/geopoint-type\">Geopoint type</a> needs\n a Google Maps API key with access to:\n </p>\n <ul>\n <li>Google Maps JavaScript API</li>\n <li>Google Places API Web Service</li>\n <li>Google Static Maps API</li>\n </ul>\n <p>\n Please enter the API key with access to these services in your googleMapsInput plugin\n config.\n </p>\n </div>\n )\n }\n\n return (\n <>\n {value && (\n <ChangeIndicator path={path} isChanged={changed} hasFocus={!!focused}>\n <PreviewImage src={getStaticImageUrl(value, config.apiKey)} alt=\"Map location\" />\n </ChangeIndicator>\n )}\n\n {!readOnly && (\n <Box marginTop={4}>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n icon={value && EditIcon}\n padding={3}\n ref={this.setEditButton}\n text={value ? 'Edit' : 'Set location'}\n onClick={this.handleToggleModal}\n />\n\n {value && (\n <Button\n tone=\"critical\"\n icon={TrashIcon}\n padding={3}\n mode=\"ghost\"\n text={'Remove'}\n onClick={this.handleClear}\n />\n )}\n </Grid>\n </Box>\n )}\n\n {modalOpen && (\n <Dialog\n id={`${this._geopointInputId}_dialog`}\n onClose={this.handleCloseModal}\n header=\"Place the marker on the map\"\n width={1}\n >\n <DialogInnerContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => (\n <GeopointSelect\n api={api}\n value={value || undefined}\n onChange={readOnly ? undefined : this.handleChange}\n defaultLocation={config.defaultLocation}\n defaultZoom={config.defaultZoom}\n />\n )}\n </GoogleMapsLoadProxy>\n </DialogInnerContainer>\n </Dialog>\n )}\n </>\n )\n }\n}\n\nexport default GeopointInput\n","import React from 'react'\nimport {Subscription} from 'rxjs'\nimport {loadGoogleMapsApi, GoogleLoadState} from './loadGoogleMapsApi'\nimport {LoadError} from './LoadError'\nimport {GoogleMapsInputConfig} from '../index'\n\ninterface LoadProps {\n children: (api: typeof window.google.maps) => React.ReactElement\n config: GoogleMapsInputConfig\n}\n\nexport class GoogleMapsLoadProxy extends React.Component<LoadProps, GoogleLoadState> {\n loadSubscription: Subscription | undefined\n\n constructor(props: LoadProps) {\n super(props)\n\n this.state = {loadState: 'loading'}\n\n let sync = true\n this.loadSubscription = loadGoogleMapsApi(props.config).subscribe((loadState) => {\n if (sync) {\n this.state = loadState\n } else {\n this.setState(loadState)\n }\n })\n sync = false\n }\n\n componentWillUnmount() {\n if (this.loadSubscription) {\n this.loadSubscription.unsubscribe()\n }\n }\n\n render() {\n switch (this.state.loadState) {\n case 'loadError':\n return <LoadError error={this.state.error} isAuthError={false} />\n case 'authError':\n return <LoadError isAuthError />\n case 'loading':\n return <div>Loading Google Maps API</div>\n case 'loaded':\n return this.props.children(this.state.api) || null\n default:\n return null\n }\n }\n}\n","import {Observable, BehaviorSubject} from 'rxjs'\nimport {GoogleMapsInputConfig} from '../index'\n\ndeclare global {\n interface Window {\n gm_authFailure: any\n ___sanity_googleMapsApiCallback: any\n }\n}\n\nconst callbackName = '___sanity_googleMapsApiCallback'\nconst authFailureCallbackName = 'gm_authFailure'\nconst locale = (typeof window !== 'undefined' && window.navigator.language) || 'en'\n\nexport interface LoadingState {\n loadState: 'loading'\n}\n\nexport interface LoadedState {\n loadState: 'loaded'\n api: typeof window.google.maps\n}\n\nexport interface LoadErrorState {\n loadState: 'loadError'\n error: Error\n}\n\nexport interface AuthErrorState {\n loadState: 'authError'\n}\n\nexport type GoogleLoadState = LoadingState | LoadedState | LoadErrorState | AuthErrorState\n\nlet subject: BehaviorSubject<GoogleLoadState>\n\nexport function loadGoogleMapsApi(config: GoogleMapsInputConfig): Observable<GoogleLoadState> {\n const selectedLocale = config.defaultLocale || locale || 'en-US'\n\n if (subject) {\n return subject\n }\n\n subject = new BehaviorSubject<GoogleLoadState>({loadState: 'loading'})\n\n window[authFailureCallbackName] = () => {\n delete window[authFailureCallbackName]\n subject.next({loadState: 'authError'})\n }\n\n window[callbackName] = () => {\n delete window[callbackName]\n subject.next({loadState: 'loaded', api: window.google.maps})\n }\n\n const script = document.createElement('script')\n script.onerror = (\n event: Event | string,\n source?: string,\n lineno?: number,\n colno?: number,\n error?: Error\n ) =>\n subject.next({\n loadState: 'loadError',\n error: coeerceError(event, error),\n } as LoadErrorState)\n\n script.src = `https://maps.googleapis.com/maps/api/js?key=${config.apiKey}&libraries=places&callback=${callbackName}&language=${selectedLocale}`\n document.getElementsByTagName('head')[0].appendChild(script)\n\n return subject\n}\n\nfunction coeerceError(event: Event | string, error?: Error): Error {\n if (error) {\n return error\n }\n\n if (typeof event === 'string') {\n return new Error(event)\n }\n\n return new Error(isErrorEvent(event) ? event.message : 'Failed to load Google Maps API')\n}\n\nfunction isErrorEvent(event: unknown): event is ErrorEvent {\n if (typeof event !== 'object' || event === null) {\n return false\n }\n\n if (!('message' in event)) {\n return false\n }\n\n return typeof (event as ErrorEvent).message === 'string'\n}\n","import * as React from 'react'\nimport {Card, Box, Text, Code} from '@sanity/ui'\n\ntype Props = {error: Error; isAuthError: false} | {isAuthError: true}\n\nexport function LoadError(props: Props) {\n return (\n <Card tone=\"critical\" radius={1}>\n <Box as=\"header\" paddingX={4} paddingTop={4} paddingBottom={1}>\n <Text as=\"h2\" weight=\"bold\">\n Google Maps failed to load\n </Text>\n </Box>\n\n <Box paddingX={4} paddingTop={4} paddingBottom={1}>\n {props.isAuthError ? (\n <AuthError />\n ) : (\n <>\n <Text as=\"h3\">Error details:</Text>\n <pre>\n <Code size={1}>{'error' in props && props.error?.message}</Code>\n </pre>\n </>\n )}\n </Box>\n </Card>\n )\n}\n\nfunction AuthError() {\n return (\n <Text>\n <p>The error appears to be related to authentication</p>\n <p>Common causes include:</p>\n <ul>\n <li>Incorrect API key</li>\n <li>Referer not allowed</li>\n <li>Missing authentication scope</li>\n </ul>\n <p>Check the browser developer tools for more information.</p>\n </Text>\n )\n}\n","import React from 'react'\nimport {SearchInput} from '../map/SearchInput'\nimport {GoogleMap} from '../map/Map'\nimport {Marker} from '../map/Marker'\nimport {LatLng, Geopoint} from '../types'\n\nconst fallbackLatLng: LatLng = {lat: 40.7058254, lng: -74.1180863}\n\ninterface SelectProps {\n api: typeof window.google.maps\n value?: Geopoint\n onChange?: (latLng: google.maps.LatLng) => void\n defaultLocation?: LatLng\n defaultZoom?: number\n}\n\nexport class GeopointSelect extends React.PureComponent<SelectProps> {\n static defaultProps = {\n defaultZoom: 8,\n defaultLocation: {lng: 10.74609, lat: 59.91273},\n }\n\n mapRef = React.createRef<HTMLDivElement>()\n\n getCenter() {\n const {value = {}, defaultLocation = {}} = this.props\n const point: LatLng = {...fallbackLatLng, ...defaultLocation, ...value}\n return point\n }\n\n handlePlaceChanged = (place: google.maps.places.PlaceResult) => {\n if (!place.geometry?.location) {\n return\n }\n\n this.setValue(place.geometry.location)\n }\n\n handleMarkerDragEnd = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n handleMapClick = (event: google.maps.MapMouseEvent) => {\n if (event.latLng) this.setValue(event.latLng)\n }\n\n setValue(geoPoint: google.maps.LatLng) {\n if (this.props.onChange) {\n this.props.onChange(geoPoint)\n }\n }\n\n render() {\n const {api, defaultZoom, value, onChange} = this.props\n return (\n <GoogleMap\n api={api}\n location={this.getCenter()}\n onClick={this.handleMapClick}\n defaultZoom={defaultZoom}\n >\n {(map) => (\n <>\n <SearchInput api={api} map={map} onChange={this.handlePlaceChanged} />\n {value && (\n <Marker\n api={api}\n map={map}\n position={value}\n onMove={onChange ? this.handleMarkerDragEnd : undefined}\n />\n )}\n </>\n )}\n </GoogleMap>\n )\n }\n}\n","import * as React from 'react'\nimport {TextInput} from '@sanity/ui'\nimport {WrapperContainer} from './SearchInput.styles'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onChange: (result: google.maps.places.PlaceResult) => void\n}\n\nexport class SearchInput extends React.PureComponent<Props> {\n searchInputRef = React.createRef<HTMLInputElement>()\n autoComplete: google.maps.places.Autocomplete | undefined\n\n handleChange = () => {\n if (!this.autoComplete) {\n return\n }\n\n this.props.onChange(this.autoComplete.getPlace())\n\n if (this.searchInputRef.current) {\n this.searchInputRef.current.value = ''\n }\n }\n\n componentDidMount() {\n const input = this.searchInputRef.current\n if (!input) {\n return\n }\n\n const {api, map} = this.props\n const {Circle, places, event} = api\n const searchBounds = new Circle({center: map.getCenter(), radius: 100}).getBounds()!\n this.autoComplete = new places.Autocomplete(input, {\n bounds: searchBounds,\n types: [], // return all kinds of places\n })\n\n event.addListener(this.autoComplete, 'place_changed', this.handleChange)\n }\n\n render() {\n return (\n <WrapperContainer>\n <TextInput\n name=\"place\"\n ref={this.searchInputRef}\n placeholder=\"Search for place or address\"\n padding={4}\n />\n </WrapperContainer>\n )\n }\n}\n","import styled from 'styled-components'\n\nexport const WrapperContainer = styled.div`\n position: absolute;\n right: 10px;\n top: 10px;\n width: 220px;\n`\n","import React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\nimport {MapContainer} from './Map.styles'\n\ninterface MapProps {\n api: typeof window.google.maps\n location: LatLng\n bounds?: google.maps.LatLngBounds\n defaultZoom?: number\n mapTypeControl?: boolean\n scrollWheel?: boolean\n controlSize?: number\n onClick?: (event: google.maps.MapMouseEvent) => void\n children?: (map: google.maps.Map) => React.ReactElement\n}\n\ninterface MapState {\n map: google.maps.Map | undefined\n}\n\nexport class GoogleMap extends React.PureComponent<MapProps, MapState> {\n static defaultProps = {\n defaultZoom: 8,\n scrollWheel: true,\n }\n\n state: MapState = {map: undefined}\n clickHandler: google.maps.MapsEventListener | undefined\n mapRef = React.createRef<HTMLDivElement>()\n mapEl: HTMLDivElement | null = null\n\n componentDidMount() {\n this.attachClickHandler()\n }\n\n attachClickHandler = () => {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {api, onClick} = this.props\n const {event} = api\n\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n\n if (onClick) {\n this.clickHandler = event.addListener(map, 'click', onClick)\n }\n }\n\n componentDidUpdate(prevProps: MapProps) {\n const map = this.state.map\n if (!map) {\n return\n }\n\n const {onClick, location, bounds} = this.props\n\n if (prevProps.onClick !== onClick) {\n this.attachClickHandler()\n }\n\n if (!latLngAreEqual(prevProps.location, location)) {\n map.panTo(this.getCenter())\n }\n\n if (bounds && (!prevProps.bounds || !bounds.equals(prevProps.bounds))) {\n map.fitBounds(bounds)\n }\n }\n\n componentWillUnmount() {\n if (this.clickHandler) {\n this.clickHandler.remove()\n }\n }\n\n getCenter(): google.maps.LatLng {\n const {location, api} = this.props\n return new api.LatLng(location.lat, location.lng)\n }\n\n constructMap(el: HTMLDivElement) {\n const {defaultZoom, api, mapTypeControl, controlSize, bounds, scrollWheel} = this.props\n\n const map = new api.Map(el, {\n zoom: defaultZoom,\n center: this.getCenter(),\n scrollwheel: scrollWheel,\n streetViewControl: false,\n mapTypeControl,\n controlSize,\n })\n\n if (bounds) {\n map.fitBounds(bounds)\n }\n\n return map\n }\n\n setMapElement = (element: HTMLDivElement | null) => {\n if (element && element !== this.mapEl) {\n const map = this.constructMap(element)\n this.setState({map}, this.attachClickHandler)\n }\n\n this.mapEl = element\n }\n\n render() {\n const {children} = this.props\n const {map} = this.state\n return (\n <>\n <MapContainer ref={this.setMapElement} />\n {children && map ? children(map) : null}\n </>\n )\n }\n}\n","import {LatLng} from '../types'\n\nexport function latLngAreEqual(\n latLng1: LatLng | google.maps.LatLng,\n latLng2: LatLng | google.maps.LatLng\n): boolean {\n const lat1 = typeof latLng1.lat === 'function' ? latLng1.lat() : latLng1.lat\n const lng1 = typeof latLng1.lng === 'function' ? latLng1.lng() : latLng1.lng\n\n const lat2 = typeof latLng2.lat === 'function' ? latLng2.lat() : latLng2.lat\n const lng2 = typeof latLng2.lng === 'function' ? latLng2.lng() : latLng2.lng\n\n return lat1 === lat2 && lng1 === lng2\n}\n","import styled from 'styled-components'\n\nexport const MapContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n`\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\nconst markerPath =\n 'M 3.052 3.7 C 1.56 5.293 0.626 7.612 0.663 9.793 C 0.738 14.352 2.793 16.077 6.078 22.351 C 7.263 25.111 8.497 28.032 9.672 32.871 C 9.835 33.584 9.994 34.246 10.069 34.305 C 10.143 34.362 10.301 33.697 10.465 32.983 C 11.639 28.145 12.875 25.226 14.059 22.466 C 17.344 16.192 19.398 14.466 19.474 9.908 C 19.511 7.727 18.574 5.405 17.083 3.814 C 15.379 1.994 12.809 0.649 10.069 0.593 C 7.328 0.536 4.756 1.882 3.052 3.7 Z'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n onMove?: (event: google.maps.MapMouseEvent) => void\n onClick?: (event: google.maps.MapMouseEvent) => void\n position: LatLng | google.maps.LatLng\n zIndex?: number\n opacity?: number\n label?: string\n markerRef?: React.MutableRefObject<google.maps.Marker | undefined>\n color?: {background: string; border: string; text: string}\n}\n\nexport class Marker extends React.PureComponent<Props> {\n marker: google.maps.Marker | undefined\n\n eventHandlers: {\n move?: google.maps.MapsEventListener\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {position, api, map, onMove, zIndex, opacity, label, markerRef, color} = this.props\n const {Marker: GMarker} = api\n\n let icon: google.maps.Symbol | undefined\n if (color) {\n icon = {\n path: markerPath,\n fillOpacity: 1,\n fillColor: color.background,\n strokeColor: color.border,\n strokeWeight: 2,\n anchor: new api.Point(10, 35),\n labelOrigin: new api.Point(10, 11),\n }\n }\n\n this.marker = new GMarker({\n draggable: Boolean(onMove),\n position,\n map,\n zIndex,\n opacity,\n label,\n icon,\n })\n\n if (markerRef) {\n markerRef.current = this.marker\n }\n\n this.attachMoveHandler()\n this.attachClickHandler()\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.marker) {\n return\n }\n\n const {position, onMove, label, zIndex, opacity, map} = this.props\n\n if (prevProps.onMove !== onMove) {\n this.attachMoveHandler()\n }\n\n if (!latLngAreEqual(prevProps.position, position)) {\n this.marker.setPosition(position)\n }\n\n if (prevProps.label !== label) {\n this.marker.setLabel(label || null)\n }\n\n if (prevProps.zIndex !== zIndex) {\n this.marker.setZIndex(zIndex || null)\n }\n\n if (prevProps.opacity !== opacity) {\n this.marker.setOpacity(opacity || null)\n }\n\n if (prevProps.map !== map) {\n this.marker.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n\n if (this.marker) {\n this.marker.setMap(null)\n }\n }\n\n attachMoveHandler() {\n const {api, onMove} = this.props\n if (this.eventHandlers.move) {\n this.eventHandlers.move.remove()\n }\n if (this.marker && onMove) {\n this.eventHandlers.move = api.event.addListener(this.marker, 'dragend', onMove)\n }\n }\n\n attachClickHandler() {\n const {api, onClick} = this.props\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n if (this.marker && onClick) {\n this.eventHandlers.click = api.event.addListener(this.marker, 'click', onClick)\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const PreviewImage = styled.img`\n width: 100%;\n height: auto;\n vertical-align: top;\n`\n\nexport const DialogInnerContainer = styled.div`\n height: 40rem;\n width: 50rem;\n`\n","import {GoogleMapsInputConfig} from './index'\n\nlet config: GoogleMapsInputConfig\n\nexport function getGeoConfig(): GoogleMapsInputConfig {\n return config as GoogleMapsInputConfig\n}\n\nexport function setGeoConfig(newConfig: GoogleMapsInputConfig): void {\n config = newConfig\n}\n","import * as React from 'react'\nimport {\n ArrayDiff,\n ObjectDiff,\n Diff,\n DiffProps as GenericDiffProps,\n DiffComponent,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ArrayDiff<Geopoint>>\n\nexport const GeopointArrayDiff: DiffComponent<ArrayDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof google.maps}) {\n const fromValue = (diff.fromValue || []).filter(hasCoordinates)\n const toValue = (diff.toValue || []).filter(hasCoordinates)\n if (fromValue.length === 0 && toValue.length === 0) {\n return null\n }\n\n const bounds = getBounds(fromValue, toValue, api)\n return (\n <GoogleMap\n api={api}\n location={bounds.getCenter().toJSON()}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n >\n {(map) => (\n <>\n {diff.items.map(({toIndex, diff: pointDiff}) => {\n if (!isChangeDiff(pointDiff)) {\n return null\n }\n\n return (\n <GeopointMove\n key={toIndex}\n api={api}\n map={map}\n diff={pointDiff}\n label={`${toIndex}`}\n />\n )\n })}\n </>\n )}\n </GoogleMap>\n )\n}\n\nfunction isChangeDiff(diff: Diff): diff is ObjectDiff<Geopoint> {\n return diff.action !== 'unchanged' && diff.type === 'object'\n}\n\nfunction hasCoordinates(point: Partial<Geopoint>): point is Geopoint {\n return typeof point.lat === 'number' && typeof point.lng === 'number'\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral[] | null | undefined,\n toValue: google.maps.LatLngLiteral[] | null | undefined,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n const bounds = new api.LatLngBounds()\n const points = [...(fromValue || []), ...(toValue || [])]\n points.forEach((point) => bounds.extend(point))\n return bounds\n}\n","import * as React from 'react'\nimport {useUserColor, ObjectDiff} from 'sanity/_unstable'\nimport {Marker} from '../map/Marker'\nimport {Arrow} from '../map/Arrow'\nimport {Geopoint} from '../types'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n diff: ObjectDiff<Geopoint>\n label?: string\n}\n\nexport function GeopointMove({diff, api, map, label}: Props) {\n const {fromValue: from, toValue: to} = diff\n const annotation = diff.isChanged ? diff.annotation : undefined\n const userColor = useUserColor(annotation ? annotation.author : null) || undefined\n const fromRef = React.useRef<google.maps.Marker>()\n const toRef = React.useRef<google.maps.Marker>()\n\n return (\n <>\n {from && (\n <Marker\n api={api}\n map={map}\n position={from}\n zIndex={0}\n opacity={0.55}\n markerRef={fromRef}\n color={userColor}\n />\n )}\n {from && to && <Arrow api={api} map={map} from={from} to={to} zIndex={1} color={userColor} />}\n {to && (\n <Marker\n api={api}\n map={map}\n position={to}\n zIndex={2}\n markerRef={toRef}\n label={label}\n color={userColor}\n />\n )}\n </>\n )\n}\n","import * as React from 'react'\nimport {LatLng} from '../types'\nimport {latLngAreEqual} from './util'\n\ninterface Props {\n api: typeof window.google.maps\n map: google.maps.Map\n from: LatLng\n to: LatLng\n color?: {background: string; border: string; text: string}\n zIndex?: number\n arrowRef?: React.MutableRefObject<google.maps.Polyline | undefined>\n onClick?: (event: google.maps.MapMouseEvent) => void\n}\n\nexport class Arrow extends React.PureComponent<Props> {\n line: google.maps.Polyline | undefined\n\n eventHandlers: {\n click?: google.maps.MapsEventListener\n } = {}\n\n componentDidMount() {\n const {from, to, api, map, zIndex, onClick, color, arrowRef} = this.props\n const lineSymbol = {\n path: api.SymbolPath.FORWARD_OPEN_ARROW,\n }\n\n this.line = new api.Polyline({\n map,\n zIndex,\n path: [from, to],\n icons: [{icon: lineSymbol, offset: '50%'}],\n strokeOpacity: 0.55,\n strokeColor: color ? color.text : 'black',\n })\n\n if (onClick) {\n this.eventHandlers.click = api.event.addListener(this.line, 'click', onClick)\n }\n\n if (arrowRef) {\n arrowRef.current = this.line\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.line) {\n return\n }\n\n const {from, to, map} = this.props\n if (!latLngAreEqual(prevProps.from, from) || !latLngAreEqual(prevProps.to, to)) {\n this.line.setPath([from, to])\n }\n\n if (prevProps.map !== map) {\n this.line.setMap(map)\n }\n }\n\n componentWillUnmount() {\n if (this.line) {\n this.line.setMap(null)\n }\n\n if (this.eventHandlers.click) {\n this.eventHandlers.click.remove()\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n render(): any {\n return null\n }\n}\n","import styled from 'styled-components'\n\nexport const RootContainer = styled.div`\n position: relative;\n min-height: 200px;\n\n &:empty {\n background-color: var(--card-skeleton-color-from);\n display: table;\n width: 100%;\n }\n\n &:empty:after {\n content: 'Missing/invalid data';\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n position: relative;\n }\n`\n","import * as React from 'react'\nimport {\n DiffComponent,\n ObjectDiff,\n DiffProps as GenericDiffProps,\n DiffTooltip,\n getAnnotationAtPath,\n} from 'sanity/_unstable'\nimport {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'\nimport {GoogleMap} from '../map/Map'\nimport {Geopoint} from '../types'\nimport {GeopointMove} from './GeopointMove'\nimport {RootContainer} from './GeopointFieldDiff.styles'\nimport {getGeoConfig} from '../global-workaround'\n\nexport type DiffProps = GenericDiffProps<ObjectDiff<Geopoint>>\n\nexport const GeopointFieldDiff: DiffComponent<ObjectDiff<Geopoint>> = ({diff, schemaType}) => {\n return (\n <RootContainer>\n <GoogleMapsLoadProxy config={getGeoConfig()}>\n {(api) => <GeopointDiff api={api} diff={diff} schemaType={schemaType} />}\n </GoogleMapsLoadProxy>\n </RootContainer>\n )\n}\n\nfunction GeopointDiff({api, diff}: DiffProps & {api: typeof window.google.maps}) {\n const {fromValue, toValue} = diff\n const annotation =\n getAnnotationAtPath(diff, ['lat']) ||\n getAnnotationAtPath(diff, ['lng']) ||\n getAnnotationAtPath(diff, [])\n\n const center = getCenter(diff, api)\n const bounds = fromValue && toValue ? getBounds(fromValue, toValue, api) : undefined\n\n return (\n <DiffTooltip annotations={annotation ? [annotation] : []} description={getAction(diff)}>\n <div>\n <GoogleMap\n api={api}\n location={center}\n mapTypeControl={false}\n controlSize={20}\n bounds={bounds}\n scrollWheel={false}\n >\n {(map) => <GeopointMove api={api} map={map} diff={diff} />}\n </GoogleMap>\n </div>\n </DiffTooltip>\n )\n}\n\nfunction getBounds(\n fromValue: google.maps.LatLngLiteral,\n toValue: google.maps.LatLngLiteral,\n api: typeof window.google.maps\n): google.maps.LatLngBounds {\n return new api.LatLngBounds().extend(fromValue).extend(toValue)\n}\n\nfunction getCenter(\n diff: DiffProps['diff'],\n api: typeof window.google.maps\n): google.maps.LatLngLiteral {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return getBounds(fromValue, toValue, api).getCenter().toJSON()\n }\n\n if (fromValue) {\n return fromValue\n }\n\n if (toValue) {\n return toValue\n }\n\n throw new Error('Neither a from or a to value present')\n}\n\nfunction getAction(diff: ObjectDiff<Geopoint>) {\n const {fromValue, toValue} = diff\n if (fromValue && toValue) {\n return 'Moved'\n } else if (fromValue) {\n return 'Removed'\n } else if (toValue) {\n return 'Added'\n }\n\n return 'Unchanged'\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../"}
@@ -1 +1 @@
1
- {"mappings":";;;AAGA,QAAQ,MAAM,CAAC;IACb,UAAU,MAAM;QACd,cAAc,EAAE,GAAG,CAAA;QACnB,+BAA+B,EAAE,GAAG,CAAA;KACrC;CACF;AGLD;IACE,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;IACE,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,mCAAoC,SAAQ,gBAAgB;IAC1D,aAAa,CAAC,EAAE,cAAc,WAAW,QAAQ,CAAC,CAAC,GAAG,qBAAqB,WAAW,QAAQ,CAAC,CAAC,CAAA;CACjG;AUYD,iCAAiC,iBAAiB,QAAQ,EAAE,kBAAkB,CAAC,GAAG;IAChF,SAAS,EAAE,qBAAqB,CAAA;CACjC,CAAA;AA+ID,6BAA4B;AIhK5B,qCAAwB,UAAiB,UAAU,QAAQ,CAAC,CAAC,CAAA;AAE7D,OAAO,MAAM,mBAAmB,cAAc,UAAU,QAAQ,CAAC,CAQhE,CAAA;ACVD,qCAAwB,UAAiB,WAAW,QAAQ,CAAC,CAAC,CAAA;AAE9D,OAAO,MAAM,mBAAmB,cAAc,WAAW,QAAQ,CAAC,CAQjE,CAAA;ACZD;IACE,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE;QAChB,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAED,OAAO,MAAM,+DAcX,CAAA","sources":["src/src/loader/loadGoogleMapsApi.ts","src/src/loader/LoadError.tsx","src/src/loader/GoogleMapsLoadProxy.tsx","src/src/types.ts","src/src/map/SearchInput.styles.tsx","src/src/map/SearchInput.tsx","src/src/map/util.ts","src/src/map/Map.styles.tsx","src/src/map/Map.tsx","src/src/map/Marker.tsx","src/src/input/GeopointSelect.tsx","src/src/input/GeopointInput.styles.tsx","src/src/global-workaround.ts","src/src/input/GeopointInput.tsx","src/src/map/Arrow.tsx","src/src/diff/GeopointMove.tsx","src/src/diff/GeopointFieldDiff.styles.tsx","src/src/diff/GeopointArrayDiff.tsx","src/src/diff/GeopointFieldDiff.tsx","src/src/index.tsx","src/index.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import React from 'react'\nimport {createPlugin, SchemaType} from 'sanity'\nimport GeopointInput, {GeopointInputProps} from './input/GeopointInput'\nimport {setGeoConfig} from './global-workaround'\nimport {Geopoint, GeopointSchemaType} from './types'\n\nexport {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'\nexport {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'\n\nexport type {LatLng, GeopointSchemaType, Geopoint} from './types'\nexport {GeopointInput}\nexport type {GeopointInputProps}\n\nexport interface GoogleMapsInputConfig {\n apiKey: string\n defaultZoom?: number\n defaultLocale?: string\n defaultLocation?: {\n lat: number\n lng: number\n }\n}\n\nexport const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {\n setGeoConfig(config)\n return {\n name: 'google-maps-input',\n form: {\n renderInput: (props) => {\n if (isGeopoint(props.schemaType)) {\n const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>\n return <GeopointInput {...castedProps} geoConfig={config} />\n }\n return undefined\n },\n },\n }\n})\n\nfunction isGeopoint(schemaType: SchemaType): schemaType is GeopointSchemaType {\n return isType('geopoint', schemaType)\n}\n\nfunction isType(name: string, schema?: SchemaType): boolean {\n if (schema?.name === name) {\n return true\n // eslint-disable-next-line no-negated-condition\n } else if (!schema?.name) {\n return false\n }\n return isType(name, schema?.type)\n}\n"],"names":[],"version":3,"file":"index.d.ts.map","sourceRoot":"../../"}
1
+ {"mappings":";;;AAGA,QAAQ,MAAM,CAAC;IACb,UAAU,MAAM;QACd,cAAc,EAAE,GAAG,CAAA;QACnB,+BAA+B,EAAE,GAAG,CAAA;KACrC;CACF;AGLD;IACE,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;IACE,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,mCAAoC,SAAQ,gBAAgB;IAC1D,aAAa,CAAC,EAAE,cAAc,WAAW,QAAQ,CAAC,CAAC,GAAG,qBAAqB,WAAW,QAAQ,CAAC,CAAC,CAAA;CACjG;AUYD,iCAAiC,iBAAiB,QAAQ,EAAE,kBAAkB,CAAC,GAAG;IAChF,SAAS,EAAE,qBAAqB,CAAA;CACjC,CAAA;AA6ID,6BAA4B;AI9J5B,qCAAwB,UAAiB,UAAU,QAAQ,CAAC,CAAC,CAAA;AAE7D,OAAO,MAAM,mBAAmB,cAAc,UAAU,QAAQ,CAAC,CAQhE,CAAA;ACVD,qCAAwB,UAAiB,WAAW,QAAQ,CAAC,CAAC,CAAA;AAE9D,OAAO,MAAM,mBAAmB,cAAc,WAAW,QAAQ,CAAC,CAQjE,CAAA;ACZD;IACE,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE;QAChB,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAED,OAAO,MAAM,+DAcX,CAAA","sources":["src/src/loader/loadGoogleMapsApi.ts","src/src/loader/LoadError.tsx","src/src/loader/GoogleMapsLoadProxy.tsx","src/src/types.ts","src/src/map/SearchInput.styles.tsx","src/src/map/SearchInput.tsx","src/src/map/util.ts","src/src/map/Map.styles.tsx","src/src/map/Map.tsx","src/src/map/Marker.tsx","src/src/input/GeopointSelect.tsx","src/src/input/GeopointInput.styles.tsx","src/src/global-workaround.ts","src/src/input/GeopointInput.tsx","src/src/map/Arrow.tsx","src/src/diff/GeopointMove.tsx","src/src/diff/GeopointFieldDiff.styles.tsx","src/src/diff/GeopointArrayDiff.tsx","src/src/diff/GeopointFieldDiff.tsx","src/src/index.tsx","src/index.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import React from 'react'\nimport {createPlugin, SchemaType} from 'sanity'\nimport GeopointInput, {GeopointInputProps} from './input/GeopointInput'\nimport {setGeoConfig} from './global-workaround'\nimport {GeopointSchemaType} from './types'\n\nexport {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'\nexport {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'\n\nexport type {LatLng, GeopointSchemaType, Geopoint} from './types'\nexport {GeopointInput}\nexport type {GeopointInputProps}\n\nexport interface GoogleMapsInputConfig {\n apiKey: string\n defaultZoom?: number\n defaultLocale?: string\n defaultLocation?: {\n lat: number\n lng: number\n }\n}\n\nexport const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {\n setGeoConfig(config)\n return {\n name: 'google-maps-input',\n form: {\n renderInput: (props) => {\n if (isGeopoint(props.schemaType)) {\n const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>\n return <GeopointInput {...castedProps} geoConfig={config} />\n }\n return undefined\n },\n },\n }\n})\n\nfunction isGeopoint(schemaType: SchemaType): schemaType is GeopointSchemaType {\n return isType('geopoint', schemaType)\n}\n\nfunction isType(name: string, schema?: SchemaType): boolean {\n if (schema?.name === name) {\n return true\n // eslint-disable-next-line no-negated-condition\n } else if (!schema?.name) {\n return false\n }\n return isType(name, schema?.type)\n}\n"],"names":[],"version":3,"file":"index.d.ts.map","sourceRoot":"../../"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/google-maps-input",
3
- "version": "3.0.0-studio-v3.1",
3
+ "version": "3.0.0-v3-studio.2",
4
4
  "description": "Sanity plugin providing input handlers for geo-related input types using Google Maps",
5
5
  "source": "./src/index.tsx",
6
6
  "exports": {
@@ -44,18 +44,19 @@
44
44
  "sanity-plugin"
45
45
  ],
46
46
  "dependencies": {
47
- "@sanity/icons": "^1.2.8",
48
- "@sanity/incompatible-plugin": "^0.0.1-studio-v3.1",
49
- "@sanity/ui": "^0.37.8",
47
+ "@sanity/icons": "^1.3.4",
48
+ "@sanity/incompatible-plugin": "^1.0.1",
49
+ "@sanity/ui": "^0.38.0",
50
50
  "lodash": "^4.17.21",
51
51
  "rxjs": "^6.5.3"
52
52
  },
53
53
  "devDependencies": {
54
- "@commitlint/cli": "^16.1.0",
55
- "@commitlint/config-conventional": "^15.0.0",
54
+ "@commitlint/cli": "^17.1.2",
55
+ "@commitlint/config-conventional": "^17.1.0",
56
56
  "@parcel/packager-ts": "^2.6.0",
57
57
  "@parcel/transformer-typescript-types": "^2.6.0",
58
- "@sanity/plugin-kit": "^0.0.1-studio-v3.4",
58
+ "@sanity/plugin-kit": "^1.0.1",
59
+ "@sanity/semantic-release-preset": "^2.0.1",
59
60
  "@types/google.maps": "^3.49.2",
60
61
  "@types/styled-components": "^5.1.25",
61
62
  "@typescript-eslint/eslint-plugin": "^5.12.0",
@@ -66,21 +67,21 @@
66
67
  "eslint-plugin-prettier": "4.0.0",
67
68
  "eslint-plugin-react": "^7.28.0",
68
69
  "eslint-plugin-react-hooks": "^4.5.0",
69
- "husky": "^7.0.0",
70
- "lint-staged": "^12.4.1",
70
+ "husky": "^8.0.1",
71
+ "lint-staged": "^13.0.3",
71
72
  "parcel": "^2.6.0",
72
73
  "prettier": "^2.6.2",
73
74
  "react": "^17.0.0",
74
75
  "react-dom": "^17.0.0",
75
76
  "rimraf": "^3.0.2",
76
- "sanity": "^2.30.1-purple-unicorn.964",
77
+ "sanity": "3.0.0-dev-preview.15",
77
78
  "styled-components": "^5.2.0",
78
- "typescript": "^4.7.3"
79
+ "typescript": "4.7.3"
79
80
  },
80
81
  "peerDependencies": {
81
82
  "react": "^17.0.0 || ^18.0.0",
82
83
  "react-dom": "^17.0.0 || ^18.0.0",
83
- "sanity": "purple-unicorn",
84
+ "sanity": "dev-preview",
84
85
  "styled-components": "^5.2.0"
85
86
  },
86
87
  "repository": {
package/src/index.tsx CHANGED
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import {createPlugin, SchemaType} from 'sanity'
3
3
  import GeopointInput, {GeopointInputProps} from './input/GeopointInput'
4
4
  import {setGeoConfig} from './global-workaround'
5
- import {Geopoint, GeopointSchemaType} from './types'
5
+ import {GeopointSchemaType} from './types'
6
6
 
7
7
  export {GeopointArrayDiff, type DiffProps as GeopointArrayDiffProps} from './diff/GeopointArrayDiff'
8
8
  export {GeopointFieldDiff, type DiffProps as GeopointFieldDiffProps} from './diff/GeopointFieldDiff'
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import {uniqueId} from 'lodash'
3
3
  import {Box, Button, Dialog, Grid} from '@sanity/ui'
4
4
  import {EditIcon, TrashIcon} from '@sanity/icons'
5
- import {ChangeIndicator, ChangeIndicatorCompareValueProvider} from 'sanity/_unstable'
5
+ import {ChangeIndicator} from 'sanity/_unstable'
6
6
  import {ObjectInputProps, set, setIfMissing, unset} from 'sanity/form'
7
7
  import {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'
8
8
  import {Geopoint, GeopointSchemaType, LatLng} from '../types'
@@ -86,7 +86,7 @@ class GeopointInput extends React.PureComponent<GeopointInputProps, InputState>
86
86
  }
87
87
 
88
88
  render() {
89
- const {value, readOnly, compareValue, geoConfig: config} = this.props
89
+ const {value, readOnly, geoConfig: config, path, changed, focused} = this.props
90
90
 
91
91
  const {modalOpen} = this.state
92
92
 
@@ -113,11 +113,9 @@ class GeopointInput extends React.PureComponent<GeopointInputProps, InputState>
113
113
  return (
114
114
  <>
115
115
  {value && (
116
- <ChangeIndicatorCompareValueProvider value={value} compareValue={compareValue}>
117
- <ChangeIndicator compareDeep>
118
- <PreviewImage src={getStaticImageUrl(value, config.apiKey)} alt="Map location" />
119
- </ChangeIndicator>
120
- </ChangeIndicatorCompareValueProvider>
116
+ <ChangeIndicator path={path} isChanged={changed} hasFocus={!!focused}>
117
+ <PreviewImage src={getStaticImageUrl(value, config.apiKey)} alt="Map location" />
118
+ </ChangeIndicator>
121
119
  )}
122
120
 
123
121
  {!readOnly && (