@performant-software/geospatial 2.2.23-beta.6 → 2.2.23-beta.7

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.
Files changed (118) hide show
  1. package/build/index.js +2 -0
  2. package/build/index.js.map +1 -0
  3. package/build/main.css +127 -0
  4. package/dist/index.cjs14.js +1 -1
  5. package/dist/index.cjs15.js +1 -1
  6. package/dist/index.cjs16.js +1 -1
  7. package/dist/index.cjs17.js +1 -1
  8. package/dist/index.cjs19.js +1 -1
  9. package/dist/index.cjs243.js +1 -1
  10. package/dist/index.cjs245.js +1 -1
  11. package/dist/index.cjs250.js +1 -1
  12. package/dist/index.cjs253.js +1 -1
  13. package/dist/index.cjs256.js +1 -1
  14. package/dist/index.cjs256.js.map +1 -1
  15. package/dist/index.cjs257.js +1 -1
  16. package/dist/index.cjs257.js.map +1 -1
  17. package/dist/index.cjs258.js +1 -1
  18. package/dist/index.cjs258.js.map +1 -1
  19. package/dist/index.cjs52.js +1 -1
  20. package/dist/index.cjs59.js +1 -1
  21. package/dist/index.cjs6.js +1 -1
  22. package/dist/index.cjs6.js.map +1 -1
  23. package/dist/index.cjs60.js +9 -1
  24. package/dist/index.cjs60.js.map +1 -1
  25. package/dist/index.cjs61.js +19 -1
  26. package/dist/index.cjs61.js.map +1 -1
  27. package/dist/index.cjs62.js +1 -9
  28. package/dist/index.cjs62.js.map +1 -1
  29. package/dist/index.cjs63.js +1 -19
  30. package/dist/index.cjs63.js.map +1 -1
  31. package/dist/index.cjs67.js +1 -1
  32. package/dist/index.cjs67.js.map +1 -1
  33. package/dist/index.cjs68.js +1 -1
  34. package/dist/index.cjs68.js.map +1 -1
  35. package/dist/index.cjs69.js +1 -1
  36. package/dist/index.cjs69.js.map +1 -1
  37. package/dist/index.cjs70.js +1 -1
  38. package/dist/index.cjs70.js.map +1 -1
  39. package/dist/index.cjs71.js +1 -1
  40. package/dist/index.cjs71.js.map +1 -1
  41. package/dist/index.cjs72.js +1 -1
  42. package/dist/index.cjs72.js.map +1 -1
  43. package/dist/index.cjs73.js +1 -1
  44. package/dist/index.cjs73.js.map +1 -1
  45. package/dist/index.cjs74.js +1 -1
  46. package/dist/index.cjs74.js.map +1 -1
  47. package/dist/index.cjs75.js +1 -1
  48. package/dist/index.cjs75.js.map +1 -1
  49. package/dist/index.cjs76.js +1 -1
  50. package/dist/index.cjs76.js.map +1 -1
  51. package/dist/index.cjs77.js +1 -1
  52. package/dist/index.cjs77.js.map +1 -1
  53. package/dist/index.cjs78.js +1 -1
  54. package/dist/index.cjs78.js.map +1 -1
  55. package/dist/index.cjs79.js +1 -1
  56. package/dist/index.cjs79.js.map +1 -1
  57. package/dist/index.cjs80.js +1 -1
  58. package/dist/index.cjs80.js.map +1 -1
  59. package/dist/index.es14.js +2 -2
  60. package/dist/index.es15.js +8 -8
  61. package/dist/index.es16.js +1 -1
  62. package/dist/index.es17.js +3 -3
  63. package/dist/index.es19.js +1 -1
  64. package/dist/index.es243.js +1 -1
  65. package/dist/index.es245.js +1 -1
  66. package/dist/index.es250.js +1 -1
  67. package/dist/index.es253.js +1 -1
  68. package/dist/index.es256.js +2 -15
  69. package/dist/index.es256.js.map +1 -1
  70. package/dist/index.es257.js +4 -2
  71. package/dist/index.es257.js.map +1 -1
  72. package/dist/index.es258.js +15 -4
  73. package/dist/index.es258.js.map +1 -1
  74. package/dist/index.es52.js +4 -4
  75. package/dist/index.es59.js +2 -6
  76. package/dist/index.es59.js.map +1 -1
  77. package/dist/index.es6.js +19 -19
  78. package/dist/index.es6.js.map +1 -1
  79. package/dist/index.es60.js +30 -2
  80. package/dist/index.es60.js.map +1 -1
  81. package/dist/index.es61.js +602 -2
  82. package/dist/index.es61.js.map +1 -1
  83. package/dist/index.es62.js +5 -29
  84. package/dist/index.es62.js.map +1 -1
  85. package/dist/index.es63.js +2 -602
  86. package/dist/index.es63.js.map +1 -1
  87. package/dist/index.es67.js +54 -27
  88. package/dist/index.es67.js.map +1 -1
  89. package/dist/index.es68.js +47 -56
  90. package/dist/index.es68.js.map +1 -1
  91. package/dist/index.es69.js +37 -46
  92. package/dist/index.es69.js.map +1 -1
  93. package/dist/index.es70.js +11 -38
  94. package/dist/index.es70.js.map +1 -1
  95. package/dist/index.es71.js +13 -10
  96. package/dist/index.es71.js.map +1 -1
  97. package/dist/index.es72.js +29 -14
  98. package/dist/index.es72.js.map +1 -1
  99. package/dist/index.es73.js +14 -29
  100. package/dist/index.es73.js.map +1 -1
  101. package/dist/index.es74.js +12 -13
  102. package/dist/index.es74.js.map +1 -1
  103. package/dist/index.es75.js +12 -13
  104. package/dist/index.es75.js.map +1 -1
  105. package/dist/index.es76.js +2 -51
  106. package/dist/index.es76.js.map +1 -1
  107. package/dist/index.es77.js +2 -65
  108. package/dist/index.es77.js.map +1 -1
  109. package/dist/index.es78.js +27 -10
  110. package/dist/index.es78.js.map +1 -1
  111. package/dist/index.es79.js +51 -2
  112. package/dist/index.es79.js.map +1 -1
  113. package/dist/index.es80.js +65 -2
  114. package/dist/index.es80.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/components/LocationMarkers.js +11 -1
  117. package/types/components/LocationMarker.js.flow +82 -0
  118. package/types/components/LocationMarkers.js.flow +11 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es79.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.es79.js","sources":["../../../node_modules/react-map-gl/dist/esm/components/layer.js"],"sourcesContent":["import { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { MapContext } from './map';\nimport assert from '../utils/assert';\nimport { deepEqual } from '../utils/deep-equal';\n/* eslint-disable complexity, max-statements */\nfunction updateLayer(map, id, props, prevProps) {\n assert(props.id === prevProps.id, 'layer id changed');\n assert(props.type === prevProps.type, 'layer type changed');\n if (props.type === 'custom' || prevProps.type === 'custom') {\n return;\n }\n const { layout = {}, paint = {}, filter, minzoom, maxzoom, beforeId } = props;\n if (beforeId !== prevProps.beforeId) {\n map.moveLayer(id, beforeId);\n }\n if (layout !== prevProps.layout) {\n const prevLayout = prevProps.layout || {};\n for (const key in layout) {\n if (!deepEqual(layout[key], prevLayout[key])) {\n map.setLayoutProperty(id, key, layout[key]);\n }\n }\n for (const key in prevLayout) {\n if (!layout.hasOwnProperty(key)) {\n map.setLayoutProperty(id, key, undefined);\n }\n }\n }\n if (paint !== prevProps.paint) {\n const prevPaint = prevProps.paint || {};\n for (const key in paint) {\n if (!deepEqual(paint[key], prevPaint[key])) {\n map.setPaintProperty(id, key, paint[key]);\n }\n }\n for (const key in prevPaint) {\n if (!paint.hasOwnProperty(key)) {\n map.setPaintProperty(id, key, undefined);\n }\n }\n }\n if (!deepEqual(filter, prevProps.filter)) {\n map.setFilter(id, filter);\n }\n if (minzoom !== prevProps.minzoom || maxzoom !== prevProps.maxzoom) {\n map.setLayerZoomRange(id, minzoom, maxzoom);\n }\n}\nfunction createLayer(map, id, props) {\n // @ts-ignore\n if (map.style && map.style._loaded && (!('source' in props) || map.getSource(props.source))) {\n const options = { ...props, id };\n delete options.beforeId;\n // @ts-ignore\n map.addLayer(options, props.beforeId);\n }\n}\n/* eslint-enable complexity, max-statements */\nlet layerCounter = 0;\nfunction Layer(props) {\n const map = useContext(MapContext).map.getMap();\n const propsRef = useRef(props);\n const [, setStyleLoaded] = useState(0);\n const id = useMemo(() => props.id || `jsx-layer-${layerCounter++}`, []);\n useEffect(() => {\n if (map) {\n const forceUpdate = () => setStyleLoaded(version => version + 1);\n map.on('styledata', forceUpdate);\n forceUpdate();\n return () => {\n map.off('styledata', forceUpdate);\n // @ts-ignore\n if (map.style && map.style._loaded && map.getLayer(id)) {\n map.removeLayer(id);\n }\n };\n }\n return undefined;\n }, [map]);\n // @ts-ignore\n const layer = map && map.style && map.getLayer(id);\n if (layer) {\n try {\n updateLayer(map, id, props, propsRef.current);\n }\n catch (error) {\n console.warn(error); // eslint-disable-line\n }\n }\n else {\n createLayer(map, id, props);\n }\n // Store last rendered props\n propsRef.current = props;\n return null;\n}\nexport default Layer;\n//# sourceMappingURL=layer.js.map"],"names":["updateLayer","map","id","props","prevProps","assert","layout","paint","filter","minzoom","maxzoom","beforeId","prevLayout","key","deepEqual","prevPaint","createLayer","options","layerCounter","Layer","useContext","MapContext","propsRef","useRef","setStyleLoaded","useState","useMemo","useEffect","forceUpdate","version","error"],"mappings":";;;;AAKA,SAASA,EAAYC,GAAKC,GAAIC,GAAOC,GAAW;AAG5C,MAFAC,EAAOF,EAAM,OAAOC,EAAU,IAAI,kBAAkB,GACpDC,EAAOF,EAAM,SAASC,EAAU,MAAM,oBAAoB,GACtDD,EAAM,SAAS,YAAYC,EAAU,SAAS;AAC9C;AAEE,QAAA,EAAE,QAAAE,IAAS,IAAI,OAAAC,IAAQ,CAAC,GAAG,QAAAC,GAAQ,SAAAC,GAAS,SAAAC,GAAS,UAAAC,EAAa,IAAAR;AAIpE,MAHAQ,MAAaP,EAAU,YACnBH,EAAA,UAAUC,GAAIS,CAAQ,GAE1BL,MAAWF,EAAU,QAAQ;AACvB,UAAAQ,IAAaR,EAAU,UAAU;AACvC,eAAWS,KAAOP;AACV,MAACQ,EAAUR,EAAOO,CAAG,GAAGD,EAAWC,CAAG,CAAC,KACvCZ,EAAI,kBAAkBC,GAAIW,GAAKP,EAAOO,CAAG,CAAC;AAGlD,eAAWA,KAAOD;AACd,MAAKN,EAAO,eAAeO,CAAG,KACtBZ,EAAA,kBAAkBC,GAAIW,GAAK,MAAS;AAAA,EAGpD;AACI,MAAAN,MAAUH,EAAU,OAAO;AACrB,UAAAW,IAAYX,EAAU,SAAS;AACrC,eAAWS,KAAON;AACV,MAACO,EAAUP,EAAMM,CAAG,GAAGE,EAAUF,CAAG,CAAC,KACrCZ,EAAI,iBAAiBC,GAAIW,GAAKN,EAAMM,CAAG,CAAC;AAGhD,eAAWA,KAAOE;AACd,MAAKR,EAAM,eAAeM,CAAG,KACrBZ,EAAA,iBAAiBC,GAAIW,GAAK,MAAS;AAAA,EAGnD;AACA,EAAKC,EAAUN,GAAQJ,EAAU,MAAM,KAC/BH,EAAA,UAAUC,GAAIM,CAAM,IAExBC,MAAYL,EAAU,WAAWM,MAAYN,EAAU,YACnDH,EAAA,kBAAkBC,GAAIO,GAASC,CAAO;AAElD;AACA,SAASM,EAAYf,GAAKC,GAAIC,GAAO;AAEjC,MAAIF,EAAI,SAASA,EAAI,MAAM,YAAY,EAAE,YAAYE,MAAUF,EAAI,UAAUE,EAAM,MAAM,IAAI;AACzF,UAAMc,IAAU,EAAE,GAAGd,GAAO,IAAAD,EAAG;AAC/B,WAAOe,EAAQ,UAEXhB,EAAA,SAASgB,GAASd,EAAM,QAAQ;AAAA,EACxC;AACJ;AAEA,IAAIe,IAAe;AACnB,SAASC,EAAMhB,GAAO;AAClB,QAAMF,IAAMmB,EAAWC,CAAU,EAAE,IAAI,OAAO,GACxCC,IAAWC,EAAOpB,CAAK,GACvB,GAAGqB,CAAc,IAAIC,EAAS,CAAC,GAC/BvB,IAAKwB,EAAQ,MAAMvB,EAAM,MAAM,aAAae,GAAc,IAAI,CAAA,CAAE;AAkBtE,MAjBAS,EAAU,MAAM;AACZ,QAAI1B,GAAK;AACL,YAAM2B,IAAc,MAAMJ,EAAe,CAAAK,MAAWA,IAAU,CAAC;AAC3D,aAAA5B,EAAA,GAAG,aAAa2B,CAAW,GACnBA,KACL,MAAM;AACL,QAAA3B,EAAA,IAAI,aAAa2B,CAAW,GAE5B3B,EAAI,SAASA,EAAI,MAAM,WAAWA,EAAI,SAASC,CAAE,KACjDD,EAAI,YAAYC,CAAE;AAAA,MACtB;AAAA,IAER;AAAA,EACO,GACR,CAACD,CAAG,CAAC,GAEMA,KAAOA,EAAI,SAASA,EAAI,SAASC,CAAE;AAEzC,QAAA;AACA,MAAAF,EAAYC,GAAKC,GAAIC,GAAOmB,EAAS,OAAO;AAAA,aAEzCQ,GAAO;AACV,cAAQ,KAAKA,CAAK;AAAA,IACtB;AAAA;AAGY,IAAAd,EAAAf,GAAKC,GAAIC,CAAK;AAG9B,SAAAmB,EAAS,UAAUnB,GACZ;AACX;","x_google_ignoreList":[0]}
@@ -1,5 +1,68 @@
1
- var e = {};
1
+ import * as u from "react";
2
+ import { useContext as f, useRef as y, useState as m, useMemo as g, useEffect as S, cloneElement as h } from "react";
3
+ import { MapContext as C } from "./index.es67.js";
4
+ import s from "./index.es204.js";
5
+ import { deepEqual as v } from "./index.es203.js";
6
+ let x = 0;
7
+ function U(t, e, a) {
8
+ if (t.style && t.style._loaded) {
9
+ const n = { ...a };
10
+ return delete n.id, delete n.children, t.addSource(e, n), t.getSource(e);
11
+ }
12
+ return null;
13
+ }
14
+ function b(t, e, a) {
15
+ s(e.id === a.id, "source id changed"), s(e.type === a.type, "source type changed");
16
+ let n = "", r = 0;
17
+ for (const o in e)
18
+ o !== "children" && o !== "id" && !v(a[o], e[o]) && (n = o, r++);
19
+ if (!r)
20
+ return;
21
+ const l = e.type;
22
+ if (l === "geojson")
23
+ t.setData(e.data);
24
+ else if (l === "image")
25
+ t.updateImage({
26
+ url: e.url,
27
+ coordinates: e.coordinates
28
+ });
29
+ else if ("setCoordinates" in t && r === 1 && n === "coordinates")
30
+ t.setCoordinates(e.coordinates);
31
+ else if ("setUrl" in t)
32
+ switch (n) {
33
+ case "url":
34
+ t.setUrl(e.url);
35
+ break;
36
+ case "tiles":
37
+ t.setTiles(e.tiles);
38
+ break;
39
+ }
40
+ else
41
+ console.warn(`Unable to update <Source> prop: ${n}`);
42
+ }
43
+ function R(t) {
44
+ const e = f(C).map.getMap(), a = y(t), [, n] = m(0), r = g(() => t.id || `jsx-source-${x++}`, []);
45
+ S(() => {
46
+ if (e) {
47
+ const o = () => setTimeout(() => n((i) => i + 1), 0);
48
+ return e.on("styledata", o), o(), () => {
49
+ var i;
50
+ if (e.off("styledata", o), e.style && e.style._loaded && e.getSource(r)) {
51
+ const c = (i = e.getStyle()) === null || i === void 0 ? void 0 : i.layers;
52
+ if (c)
53
+ for (const d of c)
54
+ d.source === r && e.removeLayer(d.id);
55
+ e.removeSource(r);
56
+ }
57
+ };
58
+ }
59
+ }, [e]);
60
+ let l = e && e.style && e.getSource(r);
61
+ return l ? b(l, t, a.current) : l = U(e, r, t), a.current = t, l && u.Children.map(t.children, (o) => o && h(o, {
62
+ source: r
63
+ })) || null;
64
+ }
2
65
  export {
3
- e as __exports
66
+ R as default
4
67
  };
5
68
  //# sourceMappingURL=index.es80.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es80.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.es80.js","sources":["../../../node_modules/react-map-gl/dist/esm/components/source.js"],"sourcesContent":["import * as React from 'react';\nimport { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { cloneElement } from 'react';\nimport { MapContext } from './map';\nimport assert from '../utils/assert';\nimport { deepEqual } from '../utils/deep-equal';\nlet sourceCounter = 0;\nfunction createSource(map, id, props) {\n // @ts-ignore\n if (map.style && map.style._loaded) {\n const options = { ...props };\n delete options.id;\n delete options.children;\n // @ts-ignore\n map.addSource(id, options);\n return map.getSource(id);\n }\n return null;\n}\n/* eslint-disable complexity */\nfunction updateSource(source, props, prevProps) {\n assert(props.id === prevProps.id, 'source id changed');\n assert(props.type === prevProps.type, 'source type changed');\n let changedKey = '';\n let changedKeyCount = 0;\n for (const key in props) {\n if (key !== 'children' && key !== 'id' && !deepEqual(prevProps[key], props[key])) {\n changedKey = key;\n changedKeyCount++;\n }\n }\n if (!changedKeyCount) {\n return;\n }\n const type = props.type;\n if (type === 'geojson') {\n source.setData(props.data);\n }\n else if (type === 'image') {\n source.updateImage({\n url: props.url,\n coordinates: props.coordinates\n });\n }\n else if ('setCoordinates' in source && changedKeyCount === 1 && changedKey === 'coordinates') {\n source.setCoordinates(props.coordinates);\n }\n else if ('setUrl' in source) {\n // Added in 1.12.0:\n // vectorTileSource.setTiles\n // vectorTileSource.setUrl\n switch (changedKey) {\n case 'url':\n source.setUrl(props.url);\n break;\n case 'tiles':\n source.setTiles(props.tiles);\n break;\n default:\n }\n }\n else {\n // eslint-disable-next-line\n console.warn(`Unable to update <Source> prop: ${changedKey}`);\n }\n}\n/* eslint-enable complexity */\nfunction Source(props) {\n const map = useContext(MapContext).map.getMap();\n const propsRef = useRef(props);\n const [, setStyleLoaded] = useState(0);\n const id = useMemo(() => props.id || `jsx-source-${sourceCounter++}`, []);\n useEffect(() => {\n if (map) {\n /* global setTimeout */\n const forceUpdate = () => setTimeout(() => setStyleLoaded(version => version + 1), 0);\n map.on('styledata', forceUpdate);\n forceUpdate();\n return () => {\n var _a;\n map.off('styledata', forceUpdate);\n // @ts-ignore\n if (map.style && map.style._loaded && map.getSource(id)) {\n // Parent effects are destroyed before child ones, see\n // https://github.com/facebook/react/issues/16728\n // Source can only be removed after all child layers are removed\n const allLayers = (_a = map.getStyle()) === null || _a === void 0 ? void 0 : _a.layers;\n if (allLayers) {\n for (const layer of allLayers) {\n // @ts-ignore (2339) source does not exist on all layer types\n if (layer.source === id) {\n map.removeLayer(layer.id);\n }\n }\n }\n map.removeSource(id);\n }\n };\n }\n return undefined;\n }, [map]);\n // @ts-ignore\n let source = map && map.style && map.getSource(id);\n if (source) {\n updateSource(source, props, propsRef.current);\n }\n else {\n source = createSource(map, id, props);\n }\n propsRef.current = props;\n return ((source &&\n React.Children.map(props.children, child => child &&\n cloneElement(child, {\n source: id\n }))) ||\n null);\n}\nexport default Source;\n//# sourceMappingURL=source.js.map"],"names":["sourceCounter","createSource","map","id","props","options","updateSource","source","prevProps","assert","changedKey","changedKeyCount","key","deepEqual","type","Source","useContext","MapContext","propsRef","useRef","setStyleLoaded","useState","useMemo","useEffect","forceUpdate","version","_a","allLayers","layer","React","child","cloneElement"],"mappings":";;;;;AAMA,IAAIA,IAAgB;AACpB,SAASC,EAAaC,GAAKC,GAAIC,GAAO;AAElC,MAAIF,EAAI,SAASA,EAAI,MAAM,SAAS;AAC1B,UAAAG,IAAU,EAAE,GAAGD;AACrB,kBAAOC,EAAQ,IACf,OAAOA,EAAQ,UAEXH,EAAA,UAAUC,GAAIE,CAAO,GAClBH,EAAI,UAAUC,CAAE;AAAA,EAC3B;AACO,SAAA;AACX;AAEA,SAASG,EAAaC,GAAQH,GAAOI,GAAW;AAC5C,EAAAC,EAAOL,EAAM,OAAOI,EAAU,IAAI,mBAAmB,GACrDC,EAAOL,EAAM,SAASI,EAAU,MAAM,qBAAqB;AAC3D,MAAIE,IAAa,IACbC,IAAkB;AACtB,aAAWC,KAAOR;AACd,IAAIQ,MAAQ,cAAcA,MAAQ,QAAQ,CAACC,EAAUL,EAAUI,CAAG,GAAGR,EAAMQ,CAAG,CAAC,MAC9DF,IAAAE,GACbD;AAGR,MAAI,CAACA;AACD;AAEJ,QAAMG,IAAOV,EAAM;AACnB,MAAIU,MAAS;AACF,IAAAP,EAAA,QAAQH,EAAM,IAAI;AAAA,WAEpBU,MAAS;AACd,IAAAP,EAAO,YAAY;AAAA,MACf,KAAKH,EAAM;AAAA,MACX,aAAaA,EAAM;AAAA,IAAA,CACtB;AAAA,WAEI,oBAAoBG,KAAUI,MAAoB,KAAKD,MAAe;AACpE,IAAAH,EAAA,eAAeH,EAAM,WAAW;AAAA,WAElC,YAAYG;AAIjB,YAAQG,GAAY;AAAA,MAChB,KAAK;AACM,QAAAH,EAAA,OAAOH,EAAM,GAAG;AACvB;AAAA,MACJ,KAAK;AACM,QAAAG,EAAA,SAASH,EAAM,KAAK;AAC3B;AAAA,IAER;AAAA;AAIQ,YAAA,KAAK,mCAAmCM,CAAU,EAAE;AAEpE;AAEA,SAASK,EAAOX,GAAO;AACnB,QAAMF,IAAMc,EAAWC,CAAU,EAAE,IAAI,OAAO,GACxCC,IAAWC,EAAOf,CAAK,GACvB,GAAGgB,CAAc,IAAIC,EAAS,CAAC,GAC/BlB,IAAKmB,EAAQ,MAAMlB,EAAM,MAAM,cAAcJ,GAAe,IAAI,CAAA,CAAE;AACxE,EAAAuB,EAAU,MAAM;AACZ,QAAIrB,GAAK;AAEC,YAAAsB,IAAc,MAAM,WAAW,MAAMJ,EAAe,CAAWK,MAAAA,IAAU,CAAC,GAAG,CAAC;AAChF,aAAAvB,EAAA,GAAG,aAAasB,CAAW,GACnBA,KACL,MAAM;AACL,YAAAE;AAGA,YAFAxB,EAAA,IAAI,aAAasB,CAAW,GAE5BtB,EAAI,SAASA,EAAI,MAAM,WAAWA,EAAI,UAAUC,CAAE,GAAG;AAI/C,gBAAAwB,KAAaD,IAAKxB,EAAI,SAAA,OAAgB,QAAQwB,MAAO,SAAS,SAASA,EAAG;AAChF,cAAIC;AACA,uBAAWC,KAASD;AAEZ,cAAAC,EAAM,WAAWzB,KACbD,EAAA,YAAY0B,EAAM,EAAE;AAIpC,UAAA1B,EAAI,aAAaC,CAAE;AAAA,QACvB;AAAA,MAAA;AAAA,IAER;AAAA,EACO,GACR,CAACD,CAAG,CAAC;AAER,MAAIK,IAASL,KAAOA,EAAI,SAASA,EAAI,UAAUC,CAAE;AACjD,SAAII,IACaD,EAAAC,GAAQH,GAAOc,EAAS,OAAO,IAGnCX,IAAAN,EAAaC,GAAKC,GAAIC,CAAK,GAExCc,EAAS,UAAUd,GACVG,KACLsB,EAAM,SAAS,IAAIzB,EAAM,UAAU,CAAA0B,MAASA,KACxCC,EAAaD,GAAO;AAAA,IAChB,QAAQ3B;AAAA,EAAA,CACX,CAAC,KACN;AACR;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@performant-software/geospatial",
3
- "version": "2.2.23-beta.6",
3
+ "version": "2.2.23-beta.7",
4
4
  "description": "A package of components for all things map-related.",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.cjs.js",
@@ -99,6 +99,16 @@ const LocationMarkers = (props: Props) => {
99
99
  */
100
100
  const data = useMemo(() => (_.isEmpty(props.data) ? null : props.data), [props.data]);
101
101
 
102
+ const cluster = useMemo(() => {
103
+ if (!props.cluster) {
104
+ return false;
105
+ }
106
+
107
+ console.log(data);
108
+
109
+ return true;
110
+ }, [data, props.cluster]);
111
+
102
112
  /**
103
113
  * Sets the bounding box on the map.
104
114
  */
@@ -125,7 +135,7 @@ const LocationMarkers = (props: Props) => {
125
135
  />
126
136
  )}
127
137
  <GeoJSONLayer
128
- cluster={props.cluster}
138
+ cluster={cluster}
129
139
  clusterMaxZoom={props.clusterMaxZoom}
130
140
  clusterMinPoints={props.clusterMinPoints}
131
141
  clusterProperties={props.clusterProperties}
@@ -0,0 +1,82 @@
1
+ // @flow
2
+
3
+ import { MixedGeoJSONLayer, PulsingMarkerLayer, useMap } from '@peripleo/maplibre';
4
+ import React, { useEffect } from 'react';
5
+ import { DEFAULT_FILL_STYLE, DEFAULT_POINT_STYLE, DEFAULT_STROKE_STYLE } from '../utils/MapStyles';
6
+ import MapUtils from '../utils/Map';
7
+
8
+ type Props = {
9
+ /**
10
+ * If `true`, the point marker will display with a pulsing animation.
11
+ */
12
+ animate?: boolean,
13
+
14
+ /**
15
+ * The number of miles to buffer the GeoJSON data.
16
+ */
17
+ buffer: number,
18
+
19
+ /**
20
+ * The GeoJSON data representing the location.
21
+ */
22
+ data: { [key: string]: any },
23
+
24
+ /**
25
+ * GeoJSON layer fill style.
26
+ */
27
+ fillStyle?: { [key: string]: any },
28
+
29
+ /**
30
+ * GeoJSON layer point style.
31
+ */
32
+ pointStyle?: { [key: string]: any },
33
+
34
+ /**
35
+ * GeoJSON layer stroke style
36
+ */
37
+ strokeStyle?: { [key: string]: any }
38
+ };
39
+
40
+ const DEFAULT_BUFFER = 2;
41
+
42
+ /**
43
+ * This component renders a location marker to be used in a Peripleo context.
44
+ */
45
+ const LocationMarker = (props: Props) => {
46
+ const map = useMap();
47
+
48
+ /**
49
+ * Sets the bounding box on the map.
50
+ */
51
+ useEffect(() => {
52
+ if (map && props.data) {
53
+ const boundingBox = MapUtils.getBoundingBox(props.data, props.buffer);
54
+ map.fitBounds(boundingBox);
55
+ }
56
+ }, [map, props.buffer, props.data]);
57
+
58
+ return (
59
+ <>
60
+ { props.animate && (
61
+ <PulsingMarkerLayer
62
+ data={props.data}
63
+ />
64
+ )}
65
+ <MixedGeoJSONLayer
66
+ data={props.data}
67
+ fillStyle={props.fillStyle}
68
+ strokeStyle={props.strokeStyle}
69
+ pointStyle={props.pointStyle}
70
+ />
71
+ </>
72
+ );
73
+ };
74
+
75
+ LocationMarker.defaultProps = {
76
+ buffer: DEFAULT_BUFFER,
77
+ fillStyle: DEFAULT_FILL_STYLE,
78
+ pointStyle: DEFAULT_POINT_STYLE,
79
+ strokeStyle: DEFAULT_STROKE_STYLE
80
+ };
81
+
82
+ export default LocationMarker;
@@ -99,6 +99,16 @@ const LocationMarkers = (props: Props) => {
99
99
  */
100
100
  const data = useMemo(() => (_.isEmpty(props.data) ? null : props.data), [props.data]);
101
101
 
102
+ const cluster = useMemo(() => {
103
+ if (!props.cluster) {
104
+ return false;
105
+ }
106
+
107
+ console.log(data);
108
+
109
+ return true;
110
+ }, [data, props.cluster]);
111
+
102
112
  /**
103
113
  * Sets the bounding box on the map.
104
114
  */
@@ -125,7 +135,7 @@ const LocationMarkers = (props: Props) => {
125
135
  />
126
136
  )}
127
137
  <GeoJSONLayer
128
- cluster={props.cluster}
138
+ cluster={cluster}
129
139
  clusterMaxZoom={props.clusterMaxZoom}
130
140
  clusterMinPoints={props.clusterMinPoints}
131
141
  clusterProperties={props.clusterProperties}