@sanity/google-maps-input 3.0.0-v3-studio.3 → 3.0.0-v3-studio.5

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/lib/cjs/index.js CHANGED
@@ -4,8 +4,6 @@ var $dyHF6$sanity = require("sanity");
4
4
  var $dyHF6$lodash = require("lodash");
5
5
  var $dyHF6$sanityui = require("@sanity/ui");
6
6
  var $dyHF6$sanityicons = require("@sanity/icons");
7
- var $dyHF6$sanity_unstable = require("sanity/_unstable");
8
- var $dyHF6$sanityform = require("sanity/form");
9
7
  var $dyHF6$rxjs = require("rxjs");
10
8
  var $dyHF6$styledcomponents = require("styled-components");
11
9
 
@@ -32,7 +30,6 @@ $parcel$export(module.exports, "GeopointInput", () => $6c4d418093d85b71$export$2
32
30
 
33
31
 
34
32
 
35
-
36
33
  const $f83c917b838af6fc$var$callbackName = "___sanity_googleMapsApiCallback";
37
34
  const $f83c917b838af6fc$var$authFailureCallbackName = "gm_authFailure";
38
35
  const $f83c917b838af6fc$var$locale = typeof window !== "undefined" && window.navigator.language || "en";
@@ -519,20 +516,20 @@ class $6c4d418093d85b71$var$GeopointInput extends (0, ($parcel$interopDefault($d
519
516
  handleChange = (latLng)=>{
520
517
  const { schemaType: schemaType , onChange: onChange } = this.props;
521
518
  onChange([
522
- (0, $dyHF6$sanityform.setIfMissing)({
519
+ (0, $dyHF6$sanity.setIfMissing)({
523
520
  _type: schemaType.name
524
521
  }),
525
- (0, $dyHF6$sanityform.set)(latLng.lat(), [
522
+ (0, $dyHF6$sanity.set)(latLng.lat(), [
526
523
  "lat"
527
524
  ]),
528
- (0, $dyHF6$sanityform.set)(latLng.lng(), [
525
+ (0, $dyHF6$sanity.set)(latLng.lng(), [
529
526
  "lng"
530
527
  ]),
531
528
  ]);
532
529
  };
533
530
  handleClear = ()=>{
534
531
  const { onChange: onChange } = this.props;
535
- onChange((0, $dyHF6$sanityform.unset)());
532
+ onChange((0, $dyHF6$sanity.unset)());
536
533
  };
537
534
  render() {
538
535
  const { value: value , readOnly: readOnly , geoConfig: config , path: path , changed: changed , focused: focused } = this.props;
@@ -569,7 +566,7 @@ class $6c4d418093d85b71$var$GeopointInput extends (0, ($parcel$interopDefault($d
569
566
  });
570
567
  return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsxs)((0, $dyHF6$reactjsxruntime.Fragment), {
571
568
  children: [
572
- value && /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity_unstable.ChangeIndicator), {
569
+ value && /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity.ChangeIndicator), {
573
570
  path: path,
574
571
  isChanged: changed,
575
572
  hasFocus: !!focused,
@@ -688,7 +685,7 @@ class $2336979407935278$export$21b07c8f274aebd5 extends $dyHF6$react.PureCompone
688
685
  function $a4e9fc866b2a477c$export$f432217b31ec4a77({ diff: diff , api: api , map: map , label: label }) {
689
686
  const { fromValue: from , toValue: to } = diff;
690
687
  const annotation = diff.isChanged ? diff.annotation : undefined;
691
- const userColor = (0, $dyHF6$sanity_unstable.useUserColor)(annotation ? annotation.author : null) || undefined;
688
+ const userColor = (0, $dyHF6$sanity.useUserColor)(annotation ? annotation.author : null) || undefined;
692
689
  const fromRef = $dyHF6$react.useRef();
693
690
  const toRef = $dyHF6$react.useRef();
694
691
  return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsxs)((0, $dyHF6$reactjsxruntime.Fragment), {
@@ -821,14 +818,14 @@ const $59d44c8f30c12966$export$6b7bf6aeccd8ac3f = ({ diff: diff , schemaType: sc
821
818
  };
822
819
  function $59d44c8f30c12966$var$GeopointDiff({ api: api , diff: diff }) {
823
820
  const { fromValue: fromValue , toValue: toValue } = diff;
824
- const annotation = (0, $dyHF6$sanity_unstable.getAnnotationAtPath)(diff, [
821
+ const annotation = (0, $dyHF6$sanity.getAnnotationAtPath)(diff, [
825
822
  "lat"
826
- ]) || (0, $dyHF6$sanity_unstable.getAnnotationAtPath)(diff, [
823
+ ]) || (0, $dyHF6$sanity.getAnnotationAtPath)(diff, [
827
824
  "lng"
828
- ]) || (0, $dyHF6$sanity_unstable.getAnnotationAtPath)(diff, []);
825
+ ]) || (0, $dyHF6$sanity.getAnnotationAtPath)(diff, []);
829
826
  const center = $59d44c8f30c12966$var$getCenter(diff, api);
830
827
  const bounds = fromValue && toValue ? $59d44c8f30c12966$var$getBounds(fromValue, toValue, api) : undefined;
831
- return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity_unstable.DiffTooltip), {
828
+ return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $dyHF6$sanity.DiffTooltip), {
832
829
  annotations: annotation ? [
833
830
  annotation
834
831
  ] : [],
@@ -874,15 +871,17 @@ const $329a1cedcedb1349$export$626ae7d0cf8f9143 = (0, $dyHF6$sanity.createPlugin
874
871
  return {
875
872
  name: "google-maps-input",
876
873
  form: {
877
- renderInput: (props)=>{
878
- if ($329a1cedcedb1349$var$isGeopoint(props.schemaType)) {
879
- const castedProps = props;
880
- return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $6c4d418093d85b71$export$2e2bcd8739ae039), {
881
- ...castedProps,
882
- geoConfig: config
883
- });
874
+ components: {
875
+ input (props) {
876
+ if ($329a1cedcedb1349$var$isGeopoint(props.schemaType)) {
877
+ const castedProps = props;
878
+ return /*#__PURE__*/ (0, $dyHF6$reactjsxruntime.jsx)((0, $6c4d418093d85b71$export$2e2bcd8739ae039), {
879
+ ...castedProps,
880
+ geoConfig: config
881
+ });
882
+ }
883
+ return props.renderDefault(props);
884
884
  }
885
- return undefined;
886
885
  }
887
886
  }
888
887
  };
@@ -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 {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
+ {"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 components: {\n input(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 props.renderDefault(props)\n },\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 {ObjectInputProps, set, setIfMissing, unset, ChangeIndicator} from 'sanity'\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 {ArrayDiff, ObjectDiff, Diff, DiffProps as GenericDiffProps, DiffComponent} from 'sanity'\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'\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'\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
@@ -1,11 +1,9 @@
1
1
  import {jsx as $7XdDa$jsx, jsxs as $7XdDa$jsxs, Fragment as $7XdDa$Fragment} from "react/jsx-runtime";
2
2
  import $7XdDa$react, {createRef as $7XdDa$createRef, PureComponent as $7XdDa$PureComponent, useRef as $7XdDa$useRef} from "react";
3
- import {createPlugin as $7XdDa$createPlugin} from "sanity";
3
+ import {createPlugin as $7XdDa$createPlugin, setIfMissing as $7XdDa$setIfMissing, set as $7XdDa$set, unset as $7XdDa$unset, ChangeIndicator as $7XdDa$ChangeIndicator, useUserColor as $7XdDa$useUserColor, getAnnotationAtPath as $7XdDa$getAnnotationAtPath, DiffTooltip as $7XdDa$DiffTooltip} 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 {ChangeIndicator as $7XdDa$ChangeIndicator, useUserColor as $7XdDa$useUserColor, getAnnotationAtPath as $7XdDa$getAnnotationAtPath, DiffTooltip as $7XdDa$DiffTooltip} from "sanity/_unstable";
8
- import {setIfMissing as $7XdDa$setIfMissing, set as $7XdDa$set, unset as $7XdDa$unset} from "sanity/form";
9
7
  import {BehaviorSubject as $7XdDa$BehaviorSubject} from "rxjs";
10
8
  import $7XdDa$styledcomponents from "styled-components";
11
9
 
@@ -21,7 +19,6 @@ import $7XdDa$styledcomponents from "styled-components";
21
19
 
22
20
 
23
21
 
24
-
25
22
  const $f3e4d9113981c5e8$var$callbackName = "___sanity_googleMapsApiCallback";
26
23
  const $f3e4d9113981c5e8$var$authFailureCallbackName = "gm_authFailure";
27
24
  const $f3e4d9113981c5e8$var$locale = typeof window !== "undefined" && window.navigator.language || "en";
@@ -863,15 +860,17 @@ const $357f50a17451fe9f$export$626ae7d0cf8f9143 = (0, $7XdDa$createPlugin)((conf
863
860
  return {
864
861
  name: "google-maps-input",
865
862
  form: {
866
- renderInput: (props)=>{
867
- if ($357f50a17451fe9f$var$isGeopoint(props.schemaType)) {
868
- const castedProps = props;
869
- return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $aae6ff17d8424da8$export$2e2bcd8739ae039), {
870
- ...castedProps,
871
- geoConfig: config
872
- });
863
+ components: {
864
+ input (props) {
865
+ if ($357f50a17451fe9f$var$isGeopoint(props.schemaType)) {
866
+ const castedProps = props;
867
+ return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $aae6ff17d8424da8$export$2e2bcd8739ae039), {
868
+ ...castedProps,
869
+ geoConfig: config
870
+ });
871
+ }
872
+ return props.renderDefault(props);
873
873
  }
874
- return undefined;
875
874
  }
876
875
  }
877
876
  };
@@ -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 {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
+ {"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 components: {\n input(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 props.renderDefault(props)\n },\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 {ObjectInputProps, set, setIfMissing, unset, ChangeIndicator} from 'sanity'\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 {ArrayDiff, ObjectDiff, Diff, DiffProps as GenericDiffProps, DiffComponent} from 'sanity'\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'\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'\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,6 +1,4 @@
1
- import { DiffComponent, DiffComponentOptions, ObjectDiff, ArrayDiff, DiffProps } from "sanity/_unstable";
2
- import { ObjectSchemaType } from "sanity";
3
- import { ObjectInputProps } from "sanity/form";
1
+ import { DiffComponent, DiffComponentOptions, ObjectDiff, ObjectSchemaType, ObjectInputProps, ArrayDiff, DiffProps } from "sanity";
4
2
  declare global {
5
3
  interface Window {
6
4
  gm_authFailure: any;
@@ -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;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":"../../"}
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;AUWD,iCAAiC,iBAAiB,QAAQ,EAAE,kBAAkB,CAAC,GAAG;IAChF,SAAS,EAAE,qBAAqB,CAAA;CACjC,CAAA;AA6ID,6BAA4B;AInK5B,qCAAwB,UAAiB,UAAU,QAAQ,CAAC,CAAC,CAAA;AAE7D,OAAO,MAAM,mBAAmB,cAAc,UAAU,QAAQ,CAAC,CAQhE,CAAA;ACJD,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,+DAgBX,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 components: {\n input(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 props.renderDefault(props)\n },\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-v3-studio.3",
3
+ "version": "3.0.0-v3-studio.5",
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,11 +44,9 @@
44
44
  "sanity-plugin"
45
45
  ],
46
46
  "dependencies": {
47
- "@sanity/icons": "^1.3.4",
48
- "@sanity/incompatible-plugin": "^1.0.1",
49
- "@sanity/ui": "^0.38.0",
47
+ "@sanity/incompatible-plugin": "^1.0.4",
50
48
  "lodash": "^4.17.21",
51
- "rxjs": "^6.5.3"
49
+ "rxjs": "^6.6.7"
52
50
  },
53
51
  "devDependencies": {
54
52
  "@commitlint/cli": "^17.1.2",
@@ -63,7 +61,7 @@
63
61
  "@typescript-eslint/parser": "^5.12.0",
64
62
  "eslint": "^8.7.0",
65
63
  "eslint-config-prettier": "^8.3.0",
66
- "eslint-config-sanity": "^5.1.0",
64
+ "eslint-config-sanity": "^6.0.0",
67
65
  "eslint-plugin-prettier": "4.0.0",
68
66
  "eslint-plugin-react": "^7.28.0",
69
67
  "eslint-plugin-react-hooks": "^4.5.0",
@@ -71,18 +69,20 @@
71
69
  "lint-staged": "^13.0.3",
72
70
  "parcel": "^2.6.0",
73
71
  "prettier": "^2.6.2",
74
- "react": "^17.0.0",
75
- "react-dom": "^17.0.0",
72
+ "react": "^18.0.0",
73
+ "react-dom": "^18.0.0",
76
74
  "rimraf": "^3.0.2",
77
- "sanity": "3.0.0-dev-preview.17",
75
+ "sanity": "3.0.0-dev-preview.21",
78
76
  "styled-components": "^5.2.0",
79
77
  "typescript": "4.7.3"
80
78
  },
81
79
  "peerDependencies": {
82
- "react": "^17.0.0 || ^18.0.0",
83
- "react-dom": "^17.0.0 || ^18.0.0",
80
+ "@sanity/icons": "^1.3",
81
+ "@sanity/ui": "^0.38",
82
+ "react": "^18.0.0",
83
+ "react-dom": "^18.0.0",
84
84
  "sanity": "dev-preview",
85
- "styled-components": "^5.2.0"
85
+ "styled-components": "^5.2"
86
86
  },
87
87
  "repository": {
88
88
  "type": "git",
@@ -1,11 +1,5 @@
1
1
  import * as React from 'react'
2
- import {
3
- ArrayDiff,
4
- ObjectDiff,
5
- Diff,
6
- DiffProps as GenericDiffProps,
7
- DiffComponent,
8
- } from 'sanity/_unstable'
2
+ import {ArrayDiff, ObjectDiff, Diff, DiffProps as GenericDiffProps, DiffComponent} from 'sanity'
9
3
  import {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'
10
4
  import {GoogleMap} from '../map/Map'
11
5
  import {Geopoint} from '../types'
@@ -5,7 +5,7 @@ import {
5
5
  DiffProps as GenericDiffProps,
6
6
  DiffTooltip,
7
7
  getAnnotationAtPath,
8
- } from 'sanity/_unstable'
8
+ } from 'sanity'
9
9
  import {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'
10
10
  import {GoogleMap} from '../map/Map'
11
11
  import {Geopoint} from '../types'
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react'
2
- import {useUserColor, ObjectDiff} from 'sanity/_unstable'
2
+ import {useUserColor, ObjectDiff} from 'sanity'
3
3
  import {Marker} from '../map/Marker'
4
4
  import {Arrow} from '../map/Arrow'
5
5
  import {Geopoint} from '../types'
@@ -1,4 +1,4 @@
1
- import {DiffComponentResolver} from 'sanity/_unstable'
1
+ import {DiffComponentResolver} from 'sanity'
2
2
  import {GeopointFieldDiff} from './GeopointFieldDiff'
3
3
  import {GeopointArrayDiff} from './GeopointArrayDiff'
4
4
 
package/src/index.tsx CHANGED
@@ -26,12 +26,14 @@ export const googleMapsInput = createPlugin<GoogleMapsInputConfig>((config) => {
26
26
  return {
27
27
  name: 'google-maps-input',
28
28
  form: {
29
- renderInput: (props) => {
30
- if (isGeopoint(props.schemaType)) {
31
- const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>
32
- return <GeopointInput {...castedProps} geoConfig={config} />
33
- }
34
- return undefined
29
+ components: {
30
+ input(props) {
31
+ if (isGeopoint(props.schemaType)) {
32
+ const castedProps = props as unknown as Omit<GeopointInputProps, 'geoConfig'>
33
+ return <GeopointInput {...castedProps} geoConfig={config} />
34
+ }
35
+ return props.renderDefault(props)
36
+ },
35
37
  },
36
38
  },
37
39
  }
@@ -2,8 +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} from 'sanity/_unstable'
6
- import {ObjectInputProps, set, setIfMissing, unset} from 'sanity/form'
5
+ import {ObjectInputProps, set, setIfMissing, unset, ChangeIndicator} from 'sanity'
7
6
  import {GoogleMapsLoadProxy} from '../loader/GoogleMapsLoadProxy'
8
7
  import {Geopoint, GeopointSchemaType, LatLng} from '../types'
9
8
  import {GeopointSelect} from './GeopointSelect'
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import {DiffComponent, DiffComponentOptions, ObjectDiff} from 'sanity/_unstable'
1
+ import {DiffComponent, DiffComponentOptions, ObjectDiff} from 'sanity'
2
2
  import {ObjectSchemaType} from 'sanity'
3
3
 
4
4
  export interface LatLng {