@corva/ui 3.70.0-4 → 3.70.0-6

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 (49) hide show
  1. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.js +1 -1
  2. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.scss.js +1 -1
  3. package/cjs-bundle/components/BICOffsetPickerDialog/components/Map/Map.js +1 -1
  4. package/cjs-bundle/components/BICOffsetPickerDialog/components/Map/Map.js.map +1 -1
  5. package/cjs-bundle/components/NewCommentCursor/NewCommentCursor.js +1 -1
  6. package/cjs-bundle/components/NewCommentCursor/NewCommentCursor.scss.js +1 -1
  7. package/cjs-bundle/components/OffsetWellMap/OffsetWellMap.js +1 -1
  8. package/cjs-bundle/components/OffsetWellMap/OffsetWellMap.js.map +1 -1
  9. package/cjs-bundle/components/OffsetWellPickerV2/components/Map/Map.js +1 -1
  10. package/cjs-bundle/components/OffsetWellPickerV2/components/Map/Map.js.map +1 -1
  11. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js +1 -1
  12. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js.map +1 -1
  13. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.js +1 -1
  14. package/cjs-bundle/components/OffsetWellPickerV5/components/MapPreloader/MapPreloader.js +1 -1
  15. package/cjs-bundle/components/PinnableFilters/effects/index.js +1 -1
  16. package/cjs-bundle/components/PinnableFilters/effects/index.js.map +1 -1
  17. package/cjs-bundle/config/mapbox/index.js +1 -1
  18. package/cjs-bundle/config/mapbox/index.js.map +1 -1
  19. package/components/AttachmentPreview/AttachmentPreview.d.ts.map +1 -1
  20. package/components/AttachmentPreview/AttachmentPreview.js +1 -1
  21. package/components/AttachmentPreview/AttachmentPreview.scss.js +1 -1
  22. package/components/BICOffsetPickerDialog/components/Map/Map.d.ts.map +1 -1
  23. package/components/BICOffsetPickerDialog/components/Map/Map.js +1 -1
  24. package/components/BICOffsetPickerDialog/components/Map/Map.js.map +1 -1
  25. package/components/NewCommentCursor/NewCommentCursor.d.ts.map +1 -1
  26. package/components/NewCommentCursor/NewCommentCursor.js +1 -1
  27. package/components/NewCommentCursor/NewCommentCursor.scss.js +1 -1
  28. package/components/OffsetWellMap/OffsetWellMap.d.ts.map +1 -1
  29. package/components/OffsetWellMap/OffsetWellMap.js +1 -1
  30. package/components/OffsetWellMap/OffsetWellMap.js.map +1 -1
  31. package/components/OffsetWellPickerV2/components/Map/Map.d.ts.map +1 -1
  32. package/components/OffsetWellPickerV2/components/Map/Map.js +1 -1
  33. package/components/OffsetWellPickerV2/components/Map/Map.js.map +1 -1
  34. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.d.ts.map +1 -1
  35. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js +1 -1
  36. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js.map +1 -1
  37. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.d.ts.map +1 -1
  38. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.js +1 -1
  39. package/components/OffsetWellPickerV5/components/MapPreloader/MapPreloader.d.ts.map +1 -1
  40. package/components/OffsetWellPickerV5/components/MapPreloader/MapPreloader.js +1 -1
  41. package/components/PinnableFilters/effects/index.js +1 -1
  42. package/components/PinnableFilters/effects/index.js.map +1 -1
  43. package/config/mapbox/index.d.ts +1 -0
  44. package/config/mapbox/index.d.ts.map +1 -1
  45. package/config/mapbox/index.js +1 -1
  46. package/config/mapbox/index.js.map +1 -1
  47. package/mcp-server/server.mjs +11 -1
  48. package/package.json +1 -1
  49. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","sources":["../../../../../../../src/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js"],"sourcesContent":["import { createElement, memo, useRef, useEffect, useMemo, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { get, sortBy } from 'lodash';\n\nimport styles from './Map.css';\n\nimport { mapbox } from '~/utils';\nimport mapboxgl from '~/config/mapboxGl';\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\nconst { isValidCoordinates } = mapbox;\n\nconst DEFAULT_COORDS = [29.749907, -95.358421]; // TX coordinates\nconst RADIUS_CIRCLE_COLOR = '#03BCD4';\nconst METERS_IN_MILE = 1609.34;\nconst DEFAULT_SUBJECT_WELL_MARKER_SIZE = 10;\nconst DEFAULT_WELL_MARKER_SIZE = 5;\nconst OFFSET_WELL_COLOR = '#00FFFF';\n\nconst RADIUS_CIRCLE_ID = 'radius-circle';\nconst WELLS_ID = 'wells';\nconst EMPTY_FEATURE_COLLECTION = { type: 'FeatureCollection', features: [] };\n\nconst toLngLat = ([lat, lng]) => [lng, lat];\n\n// NOTE: mapbox-gl has no geographic-radius circle primitive, so approximate it with a polygon\nconst makeCirclePolygon = ([lat, lng], radiusMeters, points = 64) => {\n const ring = [];\n const distanceX = radiusMeters / (111320 * Math.cos((lat * Math.PI) / 180));\n const distanceY = radiusMeters / 110574;\n for (let i = 0; i <= points; i += 1) {\n const theta = (i / points) * (2 * Math.PI);\n ring.push([lng + distanceX * Math.cos(theta), lat + distanceY * Math.sin(theta)]);\n }\n return ring;\n};\n\n// eslint-disable-next-line no-unused-vars\nfunction WellsMap({\n open,\n subjectWell,\n wells,\n offsetWells,\n radius,\n formationColors,\n popUpFormatter,\n coordsDataPath,\n onAddOffsetWell,\n onDeleteOffsetWell,\n}) {\n const mapContainerRef = useRef(null);\n const mapRef = useRef();\n const radiusCircleBoundsRef = useRef(null);\n const markersBoundsRef = useRef(null);\n const popupRef = useRef(null);\n const prevWellsRef = useRef();\n const [isMapReady, setIsMapReady] = useState(false);\n\n const subjectWellCoords = useMemo(() => {\n return subjectWell && get(subjectWell, coordsDataPath);\n }, [subjectWell, coordsDataPath]);\n\n // NOTE: Initialize map\n useEffect(() => {\n if (!open || mapRef.current) return;\n\n mapRef.current = new mapboxgl.Map({\n container: mapContainerRef.current,\n style: 'mapbox://styles/mapbox/dark-v9',\n center: toLngLat(DEFAULT_COORDS),\n zoom: 1,\n attributionControl: false,\n scrollZoom: false,\n });\n\n mapRef.current.addControl(\n new mapboxgl.NavigationControl({ showCompass: false }),\n 'bottom-right'\n );\n\n // NOTE: Sources/layers can only be added once the style has loaded.\n // The radius circle layer is added first so well markers render above it (was bringToBack)\n mapRef.current.on('load', () => {\n mapRef.current.addSource(RADIUS_CIRCLE_ID, {\n type: 'geojson',\n data: EMPTY_FEATURE_COLLECTION,\n });\n mapRef.current.addLayer({\n id: RADIUS_CIRCLE_ID,\n type: 'fill',\n source: RADIUS_CIRCLE_ID,\n paint: {\n 'fill-color': RADIUS_CIRCLE_COLOR,\n 'fill-opacity': 0.2,\n },\n });\n\n mapRef.current.addSource(WELLS_ID, { type: 'geojson', data: EMPTY_FEATURE_COLLECTION });\n mapRef.current.addLayer({\n id: WELLS_ID,\n type: 'circle',\n source: WELLS_ID,\n layout: {\n 'circle-sort-key': ['get', 'sortKey'],\n },\n paint: {\n 'circle-radius': ['get', 'radius'],\n 'circle-color': ['get', 'color'],\n 'circle-opacity': ['get', 'opacity'],\n },\n });\n\n setIsMapReady(true);\n });\n }, [open]);\n\n useEffect(\n () => () => {\n if (mapRef.current) {\n mapRef.current.remove();\n mapRef.current = null;\n radiusCircleBoundsRef.current = null;\n markersBoundsRef.current = null;\n }\n },\n []\n );\n\n // NOTE: Radius circle\n useEffect(() => {\n if (!mapRef.current || !isMapReady || !open) {\n return;\n }\n\n if (!subjectWellCoords) {\n mapRef.current.getSource(RADIUS_CIRCLE_ID).setData(EMPTY_FEATURE_COLLECTION);\n radiusCircleBoundsRef.current = null;\n return;\n }\n\n const ring = makeCirclePolygon(subjectWellCoords, radius * METERS_IN_MILE);\n mapRef.current.getSource(RADIUS_CIRCLE_ID).setData({\n type: 'Feature',\n geometry: { type: 'Polygon', coordinates: [ring] },\n });\n radiusCircleBoundsRef.current = ring.reduce(\n (bounds, coord) => bounds.extend(coord),\n new mapboxgl.LngLatBounds()\n );\n }, [radius, subjectWellCoords, open, isMapReady]);\n\n // NOTE: Well markers\n useEffect(() => {\n if (!mapRef.current || !isMapReady || !open) {\n return undefined;\n }\n\n const prevWells = prevWellsRef.current;\n prevWellsRef.current = wells;\n\n const offsetWellIds = offsetWells.map(well => well.id);\n const sortedWells = sortBy(wells, well => offsetWellIds.includes(well.id));\n\n const features = [];\n const wellsById = {};\n const bounds = new mapboxgl.LngLatBounds();\n sortedWells.forEach(well => {\n const coords = get(well, coordsDataPath);\n\n if (coords && isValidCoordinates(coords)) {\n const isWellSubject = subjectWell && subjectWell.id === well.id;\n const isWellOffset = offsetWellIds.includes(well.id);\n const r = isWellSubject ? DEFAULT_SUBJECT_WELL_MARKER_SIZE : DEFAULT_WELL_MARKER_SIZE;\n const color =\n isWellSubject || isWellOffset\n ? OFFSET_WELL_COLOR\n : get(formationColors, well.formation, '#BDBDBD');\n const opacity = isWellSubject || isWellOffset ? 1 : 0.3;\n\n wellsById[well.id] = well;\n bounds.extend(toLngLat(coords));\n features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: toLngLat(coords) },\n // NOTE: sortKey keeps offset wells rendered on top (was sortedWells insertion order)\n properties: { wellId: well.id, radius: r, color, opacity, sortKey: isWellOffset ? 1 : 0 },\n });\n }\n });\n\n mapRef.current.getSource(WELLS_ID).setData({ type: 'FeatureCollection', features });\n markersBoundsRef.current = features.length ? bounds : null;\n\n const map = mapRef.current;\n let hoveredWellId = null;\n\n const handleMouseMove = e => {\n map.getCanvas().style.cursor = 'pointer';\n\n const well = wellsById[e.features[0].properties.wellId];\n if (!well || well.id === hoveredWellId) {\n return;\n }\n hoveredWellId = well.id;\n\n if (popUpFormatter) {\n // Container to put React generated content in.\n const popUpContainer = document.createElement('div');\n const popUpContent = createElement(popUpFormatter, {\n well,\n color: get(formationColors, well.formation, '#BDBDBD'),\n });\n // NOTE: Custom popup may have buttons\n ReactDOM.render(<>{popUpContent}</>, popUpContainer);\n\n if (!popupRef.current) {\n popupRef.current = new mapboxgl.Popup({ closeButton: false, maxWidth: 'none' });\n }\n popupRef.current\n .setLngLat(toLngLat(get(well, coordsDataPath)))\n .setDOMContent(popUpContainer)\n .addTo(map);\n }\n };\n\n const handleMouseLeave = () => {\n hoveredWellId = null;\n map.getCanvas().style.cursor = '';\n popupRef.current?.remove();\n };\n\n const handleClick = e => {\n const { wellId } = e.features[0].properties;\n const isWellSubject = subjectWell && subjectWell.id === wellId;\n const isWellOffset = offsetWellIds.includes(wellId);\n\n if (isWellOffset && !isWellSubject) {\n onDeleteOffsetWell(wellId);\n } else {\n onAddOffsetWell(wellId);\n }\n };\n\n map.on('mousemove', WELLS_ID, handleMouseMove);\n map.on('mouseleave', WELLS_ID, handleMouseLeave);\n map.on('click', WELLS_ID, handleClick);\n\n setTimeout(() => {\n if (mapRef.current && radiusCircleBoundsRef.current && wells !== prevWells) {\n mapRef.current.fitBounds(radiusCircleBoundsRef.current, { padding: 5 });\n }\n }, 500);\n\n return () => {\n map.off('mousemove', WELLS_ID, handleMouseMove);\n map.off('mouseleave', WELLS_ID, handleMouseLeave);\n map.off('click', WELLS_ID, handleClick);\n };\n }, [subjectWell, wells, offsetWells, open, isMapReady]);\n\n useEffect(() => {\n if (!open) return;\n\n setTimeout(() => {\n if (subjectWell) {\n if (mapRef.current && radiusCircleBoundsRef.current) {\n mapRef.current.fitBounds(radiusCircleBoundsRef.current, {\n padding: 5,\n });\n }\n } else if (mapRef.current && markersBoundsRef.current) {\n mapRef.current.fitBounds(markersBoundsRef.current);\n }\n }, 500);\n }, [radius, subjectWell, open, isMapReady]);\n\n return (\n <div className={styles.map}>\n <div className={styles.mapMain} ref={mapContainerRef} />\n </div>\n );\n}\n\nWellsMap.propTypes = {\n open: PropTypes.bool.isRequired,\n subjectWell: PropTypes.shape({\n id: PropTypes.number,\n formation: PropTypes.string,\n }),\n wells: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n offsetWells: PropTypes.arrayOf(PropTypes.shape({})),\n radius: PropTypes.number.isRequired,\n formationColors: PropTypes.shape({}).isRequired,\n popUpFormatter: PropTypes.func,\n coordsDataPath: PropTypes.string,\n onAddOffsetWell: PropTypes.func.isRequired,\n onDeleteOffsetWell: PropTypes.func.isRequired,\n};\n\nWellsMap.defaultProps = {\n subjectWell: null,\n popUpFormatter: null,\n coordsDataPath: 'settings.top_hole.coordinates',\n offsetWells: null,\n};\n\nexport default memo(WellsMap);\n"],"names":["isValidCoordinates","mapbox","DEFAULT_COORDS","EMPTY_FEATURE_COLLECTION","type","features","toLngLat","_ref","_ref2","_slicedToArray","lat","WellsMap","_ref5","open","subjectWell","wells","offsetWells","radius","formationColors","popUpFormatter","coordsDataPath","onAddOffsetWell","onDeleteOffsetWell","mapContainerRef","useRef","mapRef","radiusCircleBoundsRef","markersBoundsRef","popupRef","prevWellsRef","useState","_useState2","_useState","isMapReady","setIsMapReady","subjectWellCoords","useMemo","get","useEffect","current","mapboxgl","Map","container","style","center","zoom","attributionControl","scrollZoom","addControl","NavigationControl","showCompass","on","addSource","data","addLayer","id","source","paint","layout","remove","getSource","setData","ring","_ref3","radiusMeters","_ref4","lng","points","distanceX","Math","cos","PI","distanceY","i","theta","push","sin","makeCirclePolygon","geometry","coordinates","reduce","bounds","coord","extend","LngLatBounds","prevWells","offsetWellIds","map","well","sortedWells","sortBy","includes","wellsById","forEach","coords","isWellSubject","isWellOffset","r","color","formation","opacity","properties","wellId","sortKey","length","hoveredWellId","handleMouseMove","e","getCanvas","cursor","popUpContainer","document","createElement","popUpContent","ReactDOM","render","_jsx","_Fragment","children","Popup","closeButton","maxWidth","setLngLat","setDOMContent","addTo","handleMouseLeave","_popupRef$current","handleClick","setTimeout","fitBounds","padding","off","className","styles","mapMain","ref","propTypes","PropTypes","bool","isRequired","shape","number","string","arrayOf","func","defaultProps","memo"],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","sources":["../../../../../../../src/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js"],"sourcesContent":["import { createElement, memo, useRef, useEffect, useMemo, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { get, sortBy } from 'lodash';\n\nimport styles from './Map.css';\n\nimport { mapbox } from '~/utils';\nimport mapboxgl from '~/config/mapboxGl';\nimport { IS_MAPBOX_ENABLED } from '~/config/mapbox';\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\nconst { isValidCoordinates } = mapbox;\n\nconst DEFAULT_COORDS = [29.749907, -95.358421]; // TX coordinates\nconst RADIUS_CIRCLE_COLOR = '#03BCD4';\nconst METERS_IN_MILE = 1609.34;\nconst DEFAULT_SUBJECT_WELL_MARKER_SIZE = 10;\nconst DEFAULT_WELL_MARKER_SIZE = 5;\nconst OFFSET_WELL_COLOR = '#00FFFF';\n\nconst RADIUS_CIRCLE_ID = 'radius-circle';\nconst WELLS_ID = 'wells';\nconst EMPTY_FEATURE_COLLECTION = { type: 'FeatureCollection', features: [] };\n\nconst toLngLat = ([lat, lng]) => [lng, lat];\n\n// NOTE: mapbox-gl has no geographic-radius circle primitive, so approximate it with a polygon\nconst makeCirclePolygon = ([lat, lng], radiusMeters, points = 64) => {\n const ring = [];\n const distanceX = radiusMeters / (111320 * Math.cos((lat * Math.PI) / 180));\n const distanceY = radiusMeters / 110574;\n for (let i = 0; i <= points; i += 1) {\n const theta = (i / points) * (2 * Math.PI);\n ring.push([lng + distanceX * Math.cos(theta), lat + distanceY * Math.sin(theta)]);\n }\n return ring;\n};\n\n// eslint-disable-next-line no-unused-vars\nfunction WellsMap({\n open,\n subjectWell,\n wells,\n offsetWells,\n radius,\n formationColors,\n popUpFormatter,\n coordsDataPath,\n onAddOffsetWell,\n onDeleteOffsetWell,\n}) {\n const mapContainerRef = useRef(null);\n const mapRef = useRef();\n const radiusCircleBoundsRef = useRef(null);\n const markersBoundsRef = useRef(null);\n const popupRef = useRef(null);\n const prevWellsRef = useRef();\n const [isMapReady, setIsMapReady] = useState(false);\n\n const subjectWellCoords = useMemo(() => {\n return subjectWell && get(subjectWell, coordsDataPath);\n }, [subjectWell, coordsDataPath]);\n\n // NOTE: Initialize map\n useEffect(() => {\n if (!IS_MAPBOX_ENABLED || !open || mapRef.current) return;\n\n mapRef.current = new mapboxgl.Map({\n container: mapContainerRef.current,\n style: 'mapbox://styles/mapbox/dark-v9',\n center: toLngLat(DEFAULT_COORDS),\n zoom: 1,\n attributionControl: false,\n scrollZoom: false,\n });\n\n mapRef.current.addControl(\n new mapboxgl.NavigationControl({ showCompass: false }),\n 'bottom-right'\n );\n\n // NOTE: Sources/layers can only be added once the style has loaded.\n // The radius circle layer is added first so well markers render above it (was bringToBack)\n mapRef.current.on('load', () => {\n mapRef.current.addSource(RADIUS_CIRCLE_ID, {\n type: 'geojson',\n data: EMPTY_FEATURE_COLLECTION,\n });\n mapRef.current.addLayer({\n id: RADIUS_CIRCLE_ID,\n type: 'fill',\n source: RADIUS_CIRCLE_ID,\n paint: {\n 'fill-color': RADIUS_CIRCLE_COLOR,\n 'fill-opacity': 0.2,\n },\n });\n\n mapRef.current.addSource(WELLS_ID, { type: 'geojson', data: EMPTY_FEATURE_COLLECTION });\n mapRef.current.addLayer({\n id: WELLS_ID,\n type: 'circle',\n source: WELLS_ID,\n layout: {\n 'circle-sort-key': ['get', 'sortKey'],\n },\n paint: {\n 'circle-radius': ['get', 'radius'],\n 'circle-color': ['get', 'color'],\n 'circle-opacity': ['get', 'opacity'],\n },\n });\n\n setIsMapReady(true);\n });\n }, [open]);\n\n useEffect(\n () => () => {\n if (mapRef.current) {\n mapRef.current.remove();\n mapRef.current = null;\n radiusCircleBoundsRef.current = null;\n markersBoundsRef.current = null;\n }\n },\n []\n );\n\n // NOTE: Radius circle\n useEffect(() => {\n if (!mapRef.current || !isMapReady || !open) {\n return;\n }\n\n if (!subjectWellCoords) {\n mapRef.current.getSource(RADIUS_CIRCLE_ID).setData(EMPTY_FEATURE_COLLECTION);\n radiusCircleBoundsRef.current = null;\n return;\n }\n\n const ring = makeCirclePolygon(subjectWellCoords, radius * METERS_IN_MILE);\n mapRef.current.getSource(RADIUS_CIRCLE_ID).setData({\n type: 'Feature',\n geometry: { type: 'Polygon', coordinates: [ring] },\n });\n radiusCircleBoundsRef.current = ring.reduce(\n (bounds, coord) => bounds.extend(coord),\n new mapboxgl.LngLatBounds()\n );\n }, [radius, subjectWellCoords, open, isMapReady]);\n\n // NOTE: Well markers\n useEffect(() => {\n if (!mapRef.current || !isMapReady || !open) {\n return undefined;\n }\n\n const prevWells = prevWellsRef.current;\n prevWellsRef.current = wells;\n\n const offsetWellIds = offsetWells.map(well => well.id);\n const sortedWells = sortBy(wells, well => offsetWellIds.includes(well.id));\n\n const features = [];\n const wellsById = {};\n const bounds = new mapboxgl.LngLatBounds();\n sortedWells.forEach(well => {\n const coords = get(well, coordsDataPath);\n\n if (coords && isValidCoordinates(coords)) {\n const isWellSubject = subjectWell && subjectWell.id === well.id;\n const isWellOffset = offsetWellIds.includes(well.id);\n const r = isWellSubject ? DEFAULT_SUBJECT_WELL_MARKER_SIZE : DEFAULT_WELL_MARKER_SIZE;\n const color =\n isWellSubject || isWellOffset\n ? OFFSET_WELL_COLOR\n : get(formationColors, well.formation, '#BDBDBD');\n const opacity = isWellSubject || isWellOffset ? 1 : 0.3;\n\n wellsById[well.id] = well;\n bounds.extend(toLngLat(coords));\n features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: toLngLat(coords) },\n // NOTE: sortKey keeps offset wells rendered on top (was sortedWells insertion order)\n properties: { wellId: well.id, radius: r, color, opacity, sortKey: isWellOffset ? 1 : 0 },\n });\n }\n });\n\n mapRef.current.getSource(WELLS_ID).setData({ type: 'FeatureCollection', features });\n markersBoundsRef.current = features.length ? bounds : null;\n\n const map = mapRef.current;\n let hoveredWellId = null;\n\n const handleMouseMove = e => {\n map.getCanvas().style.cursor = 'pointer';\n\n const well = wellsById[e.features[0].properties.wellId];\n if (!well || well.id === hoveredWellId) {\n return;\n }\n hoveredWellId = well.id;\n\n if (popUpFormatter) {\n // Container to put React generated content in.\n const popUpContainer = document.createElement('div');\n const popUpContent = createElement(popUpFormatter, {\n well,\n color: get(formationColors, well.formation, '#BDBDBD'),\n });\n // NOTE: Custom popup may have buttons\n ReactDOM.render(<>{popUpContent}</>, popUpContainer);\n\n if (!popupRef.current) {\n popupRef.current = new mapboxgl.Popup({ closeButton: false, maxWidth: 'none' });\n }\n popupRef.current\n .setLngLat(toLngLat(get(well, coordsDataPath)))\n .setDOMContent(popUpContainer)\n .addTo(map);\n }\n };\n\n const handleMouseLeave = () => {\n hoveredWellId = null;\n map.getCanvas().style.cursor = '';\n popupRef.current?.remove();\n };\n\n const handleClick = e => {\n const { wellId } = e.features[0].properties;\n const isWellSubject = subjectWell && subjectWell.id === wellId;\n const isWellOffset = offsetWellIds.includes(wellId);\n\n if (isWellOffset && !isWellSubject) {\n onDeleteOffsetWell(wellId);\n } else {\n onAddOffsetWell(wellId);\n }\n };\n\n map.on('mousemove', WELLS_ID, handleMouseMove);\n map.on('mouseleave', WELLS_ID, handleMouseLeave);\n map.on('click', WELLS_ID, handleClick);\n\n setTimeout(() => {\n if (mapRef.current && radiusCircleBoundsRef.current && wells !== prevWells) {\n mapRef.current.fitBounds(radiusCircleBoundsRef.current, { padding: 5 });\n }\n }, 500);\n\n return () => {\n map.off('mousemove', WELLS_ID, handleMouseMove);\n map.off('mouseleave', WELLS_ID, handleMouseLeave);\n map.off('click', WELLS_ID, handleClick);\n };\n }, [subjectWell, wells, offsetWells, open, isMapReady]);\n\n useEffect(() => {\n if (!open) return;\n\n setTimeout(() => {\n if (subjectWell) {\n if (mapRef.current && radiusCircleBoundsRef.current) {\n mapRef.current.fitBounds(radiusCircleBoundsRef.current, {\n padding: 5,\n });\n }\n } else if (mapRef.current && markersBoundsRef.current) {\n mapRef.current.fitBounds(markersBoundsRef.current);\n }\n }, 500);\n }, [radius, subjectWell, open, isMapReady]);\n\n return (\n <div className={styles.map}>\n <div className={styles.mapMain} ref={mapContainerRef} />\n </div>\n );\n}\n\nWellsMap.propTypes = {\n open: PropTypes.bool.isRequired,\n subjectWell: PropTypes.shape({\n id: PropTypes.number,\n formation: PropTypes.string,\n }),\n wells: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n offsetWells: PropTypes.arrayOf(PropTypes.shape({})),\n radius: PropTypes.number.isRequired,\n formationColors: PropTypes.shape({}).isRequired,\n popUpFormatter: PropTypes.func,\n coordsDataPath: PropTypes.string,\n onAddOffsetWell: PropTypes.func.isRequired,\n onDeleteOffsetWell: PropTypes.func.isRequired,\n};\n\nWellsMap.defaultProps = {\n subjectWell: null,\n popUpFormatter: null,\n coordsDataPath: 'settings.top_hole.coordinates',\n offsetWells: null,\n};\n\nexport default memo(WellsMap);\n"],"names":["isValidCoordinates","mapbox","DEFAULT_COORDS","EMPTY_FEATURE_COLLECTION","type","features","toLngLat","_ref","_ref2","_slicedToArray","lat","WellsMap","_ref5","open","subjectWell","wells","offsetWells","radius","formationColors","popUpFormatter","coordsDataPath","onAddOffsetWell","onDeleteOffsetWell","mapContainerRef","useRef","mapRef","radiusCircleBoundsRef","markersBoundsRef","popupRef","prevWellsRef","useState","_useState2","_useState","isMapReady","setIsMapReady","subjectWellCoords","useMemo","get","useEffect","IS_MAPBOX_ENABLED","current","mapboxgl","Map","container","style","center","zoom","attributionControl","scrollZoom","addControl","NavigationControl","showCompass","on","addSource","data","addLayer","id","source","paint","layout","remove","getSource","setData","ring","_ref3","radiusMeters","_ref4","lng","points","distanceX","Math","cos","PI","distanceY","i","theta","push","sin","makeCirclePolygon","geometry","coordinates","reduce","bounds","coord","extend","LngLatBounds","prevWells","offsetWellIds","map","well","sortedWells","sortBy","includes","wellsById","forEach","coords","isWellSubject","isWellOffset","r","color","formation","opacity","properties","wellId","sortKey","length","hoveredWellId","handleMouseMove","e","getCanvas","cursor","popUpContainer","document","createElement","popUpContent","ReactDOM","render","_jsx","_Fragment","children","Popup","closeButton","maxWidth","setLngLat","setDOMContent","addTo","handleMouseLeave","_popupRef$current","handleClick","setTimeout","fitBounds","padding","off","className","styles","mapMain","ref","propTypes","PropTypes","bool","isRequired","shape","number","string","arrayOf","func","defaultProps","memo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetWellMap.d.ts","sourceRoot":"","sources":["../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.tsx"],"names":[],"mappings":"AAGA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AASlE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS1D,KAAK,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,kBAAkB,EAAE,CAClB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,EACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,KAC7C,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAE1E,eAAO,MAAM,aAAa,oHA6JxB,CAAC"}
1
+ {"version":3,"file":"OffsetWellMap.d.ts","sourceRoot":"","sources":["../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.tsx"],"names":[],"mappings":"AAGA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AASlE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS1D,KAAK,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,kBAAkB,EAAE,CAClB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,EACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,KAC7C,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAE1E,eAAO,MAAM,aAAa,oHAmKxB,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import{jsxs as o,jsx as s}from"react/jsx-runtime";import{forwardRef as l,useCallback as i}from"react";import t from"@vis.gl/react-mapbox";import a from"classnames";import"mapbox-gl/dist/mapbox-gl.css";import{MapLayers as n}from"./components/MapLayers/MapLayers.js";import{MapOverlayControls as r}from"./components/MapOverlayControls/MapOverlayControls.js";import{MapResizeVeil as d}from"./components/MapResizeVeil/MapResizeVeil.js";import{useFlyToWell as c}from"./hooks/useFlyToWell.js";import{useIsMapCompact as p}from"./hooks/useIsMapCompact.js";import{useMapResizeOnContainer as u}from"./hooks/useMapResizeOnContainer.js";import{useOffsetWellMapState as m}from"./hooks/useOffsetWellMapState.js";import{MapConfig as h}from"./constants.js";import g from"./OffsetWellMap.module.css.js";import{LoaderLinear as f}from"../../../../../componentsV2/LoaderLinear/LoaderLinear.js";import{MAP_BOX_ACCESS_TOKEN as v}from"../../../../../config/mapbox/index.js";import"../../../../../config/mapboxGl/index.js";import S from"mapbox-gl";function y(e,o){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);o&&(l=l.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),s.push.apply(s,l)}return s}function O(o){for(var s=1;s<arguments.length;s++){var l=null!=arguments[s]?arguments[s]:{};s%2?y(Object(l),!0).forEach((function(s){e(o,s,l[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(l)):y(Object(l)).forEach((function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(l,e))}))}return o}var w=l((function(e,l){var y=e.subjectWell,w=void 0===y?null:y,b=e.wells,M=e.offsetWellIds,R=e.handleChangeOffsetWell,C=e.onBatchSelectWells,W=e.activeWellId,j=e.isClickable,D=void 0===j||j,L=e.selectionZone,Z=e.onSelectionZoneConfirm,I=e.shouldRecenter,x=e.onRecenterComplete,P=e.isResizing,A=void 0!==P&&P,E=e.classes,T=void 0===E?{}:E,k=m({subjectWell:w,wells:b,offsetWellIds:M,handleChangeOffsetWell:R,onBatchSelectWells:C,activeWellId:null!=W?W:null,isClickable:D,selectionZone:L,onSelectionZoneConfirm:Z,shouldRecenter:I,onRecenterComplete:x});c(l,k.mapRef,b,k.isMapReady);var V=k.showRadiusInput&&null!==k.drawingRadiusMiles,G=p(),N=G.ref,z=G.isCompact&&V,J=u(k.mapRef,A),H=i((function(e){N(e),J(e)}),[N,J]);return o("div",{ref:H,className:a(g.mapView,T.root),children:[o(t,O(O({ref:k.mapRef},k.viewState),{},{onMove:k.handleMove,onMoveStart:k.handleMoveStart,onMoveEnd:k.handleMoveEnd,onResize:k.tileSafeOnResize,onLoad:k.handleMapLoad,mapboxAccessToken:v,mapLib:S,mapStyle:h.Styles[k.mapStyle],style:{borderRadius:"8px"},scrollZoom:!0,doubleClickZoom:!0,boxZoom:!1,attributionControl:!1,interactiveLayerIds:[h.LayerIds.WellsClusters,h.LayerIds.WellsUnclustered],onClick:k.handleMapClick,onMouseMove:k.handleMouseMove,onMouseLeave:k.handleMouseLeave,onDblClick:k.handleZoomInWithSync,onDragStart:k.handleDragStart,onDragEnd:k.handleDragEnd,onMouseDown:k.handleMouseDown,cursor:k.cursor,children:[(k.isTileLoading&&!k.isTooZoomedOut||k.isAllWellsLoading)&&s(f,{type:"fancy",size:"medium",className:g.mapLoader}),s(n,{wellsGeoJSON:k.wellsGeoJSON,highlightGeoJSON:k.highlightGeoJSON,activeHighlightGeoJSON:k.activeHighlightGeoJSON,loadingTilesGeoJSON:k.loadingTilesGeoJSON,hoveredWell:k.hoveredWell,mapStyle:k.mapStyle,isSatellite:k.isSatellite,clusterColorExpression:k.clusterColorExpression,isRadiusToolActive:k.isRadiusToolActive,radiusState:k.radiusState,radiusDrawingPreviewCircle:k.radiusDrawingPreviewCircle,isRadiusHoveringEdge:k.isRadiusHoveringEdge,isRadiusDrawingDragging:k.isRadiusDrawingDragging,showGhostZone:k.showGhostZone,selectionZone:L,isTooZoomedOut:k.isTooZoomedOut,isLoadAllWells:k.isLoadAllWells,isActiveWellIsSubjectWell:k.isActiveWellIsSubjectWell,isLassoActive:k.isLassoActive,isMapReady:k.isMapReady,polygonCoords:k.polygonCoords,drawRef:k.drawRef,handleDrawCreate:k.handleDrawCreate,handleDrawUpdate:k.handleDrawUpdate,handleDrawDelete:k.handleDrawDelete,handleModeChange:k.handleModeChange,handleSelectionChange:k.handleSelectionChange,subjectWellCoords:k.subjectWellCoords,subjectWell:w,handleSubjectWellMouseEnter:k.handleSubjectWellMouseEnter,handleSubjectWellMouseLeave:k.handleSubjectWellMouseLeave,hoveredCluster:k.hoveredCluster,tooltipAnchor:k.tooltipAnchor,tooltipOffset:k.tooltipOffset,isViewOnly:k.isViewOnly,isClickable:D})]})),s(d,{isResizing:A}),s(r,{showRadiusInput:k.showRadiusInput,drawingRadiusMiles:k.drawingRadiusMiles,setDrawingRadiusMiles:k.setDrawingRadiusMiles,isSatellite:k.isSatellite,handleZoomInWithSync:k.handleZoomInWithSync,handleZoomOutWithSync:k.handleZoomOutWithSync,handleResetZoom:k.handleResetZoom,canZoomIn:k.canZoomIn,canZoomOut:k.canZoomOut,isZoomReset:k.isZoomReset,isRadiusToolActive:k.isRadiusToolActive,handleRadiusToggle:k.handleRadiusToggle,isLassoActive:k.isLassoActive,handleLassoToggle:k.handleLassoToggle,distance:k.distance,mapStyle:k.mapStyle,setMapStyle:k.setMapStyle,isViewOnly:k.isViewOnly,hintsRef:k.hintsRef,hintsMode:k.hintsMode,areHintsCompact:z,boxState:k.boxState,isDrawing:k.isDrawing,drawingPointCount:k.drawingPointCount,isEditingPolygon:k.isEditingPolygon,isEditingVertices:k.isEditingVertices,hasValidPolygon:!!k.hasValidPolygon,effectiveZoomedOut:k.effectiveZoomedOut,isLoadAllWells:k.isLoadAllWells,lassoPhase:k.lassoState.phase,radiusPhase:k.radiusState.phase,wellsInBoxCount:k.wellsInBoxCount,toast:k.toast})]})}));w.displayName="OffsetWellMap";export{w as OffsetWellMap};
1
+ import e from"@babel/runtime/helpers/defineProperty";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{forwardRef as l,useCallback as i}from"react";import t from"@vis.gl/react-mapbox";import a from"classnames";import"mapbox-gl/dist/mapbox-gl.css";import{MapLayers as n}from"./components/MapLayers/MapLayers.js";import{MapOverlayControls as r}from"./components/MapOverlayControls/MapOverlayControls.js";import{MapResizeVeil as d}from"./components/MapResizeVeil/MapResizeVeil.js";import{useFlyToWell as c}from"./hooks/useFlyToWell.js";import{useIsMapCompact as p}from"./hooks/useIsMapCompact.js";import{useMapResizeOnContainer as m}from"./hooks/useMapResizeOnContainer.js";import{useOffsetWellMapState as u}from"./hooks/useOffsetWellMapState.js";import{MapConfig as h}from"./constants.js";import g from"./OffsetWellMap.module.css.js";import{LoaderLinear as f}from"../../../../../componentsV2/LoaderLinear/LoaderLinear.js";import{IS_MAPBOX_ENABLED as v,MAP_BOX_ACCESS_TOKEN as S}from"../../../../../config/mapbox/index.js";import"../../../../../config/mapboxGl/index.js";import y from"mapbox-gl";function O(e,o){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);o&&(l=l.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),s.push.apply(s,l)}return s}function w(o){for(var s=1;s<arguments.length;s++){var l=null!=arguments[s]?arguments[s]:{};s%2?O(Object(l),!0).forEach((function(s){e(o,s,l[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(l)):O(Object(l)).forEach((function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(l,e))}))}return o}var b=l((function(e,l){var O=e.subjectWell,b=void 0===O?null:O,M=e.wells,R=e.offsetWellIds,C=e.handleChangeOffsetWell,W=e.onBatchSelectWells,j=e.activeWellId,D=e.isClickable,L=void 0===D||D,Z=e.selectionZone,I=e.onSelectionZoneConfirm,x=e.shouldRecenter,P=e.onRecenterComplete,A=e.isResizing,E=void 0!==A&&A,T=e.classes,k=void 0===T?{}:T,N=u({subjectWell:b,wells:M,offsetWellIds:R,handleChangeOffsetWell:C,onBatchSelectWells:W,activeWellId:null!=j?j:null,isClickable:L,selectionZone:Z,onSelectionZoneConfirm:I,shouldRecenter:x,onRecenterComplete:P});c(l,N.mapRef,M,N.isMapReady);var V=N.showRadiusInput&&null!==N.drawingRadiusMiles,G=p(),z=G.ref,J=G.isCompact&&V,H=m(N.mapRef,E),B=i((function(e){z(e),H(e)}),[z,H]),U=a(g.mapView,k.root);return v?s("div",{ref:B,className:U,children:[s(t,w(w({ref:N.mapRef},N.viewState),{},{onMove:N.handleMove,onMoveStart:N.handleMoveStart,onMoveEnd:N.handleMoveEnd,onResize:N.tileSafeOnResize,onLoad:N.handleMapLoad,mapboxAccessToken:S,mapLib:y,mapStyle:h.Styles[N.mapStyle],style:{borderRadius:"8px"},scrollZoom:!0,doubleClickZoom:!0,boxZoom:!1,attributionControl:!1,interactiveLayerIds:[h.LayerIds.WellsClusters,h.LayerIds.WellsUnclustered],onClick:N.handleMapClick,onMouseMove:N.handleMouseMove,onMouseLeave:N.handleMouseLeave,onDblClick:N.handleZoomInWithSync,onDragStart:N.handleDragStart,onDragEnd:N.handleDragEnd,onMouseDown:N.handleMouseDown,cursor:N.cursor,children:[(N.isTileLoading&&!N.isTooZoomedOut||N.isAllWellsLoading)&&o(f,{type:"fancy",size:"medium",className:g.mapLoader}),o(n,{wellsGeoJSON:N.wellsGeoJSON,highlightGeoJSON:N.highlightGeoJSON,activeHighlightGeoJSON:N.activeHighlightGeoJSON,loadingTilesGeoJSON:N.loadingTilesGeoJSON,hoveredWell:N.hoveredWell,mapStyle:N.mapStyle,isSatellite:N.isSatellite,clusterColorExpression:N.clusterColorExpression,isRadiusToolActive:N.isRadiusToolActive,radiusState:N.radiusState,radiusDrawingPreviewCircle:N.radiusDrawingPreviewCircle,isRadiusHoveringEdge:N.isRadiusHoveringEdge,isRadiusDrawingDragging:N.isRadiusDrawingDragging,showGhostZone:N.showGhostZone,selectionZone:Z,isTooZoomedOut:N.isTooZoomedOut,isLoadAllWells:N.isLoadAllWells,isActiveWellIsSubjectWell:N.isActiveWellIsSubjectWell,isLassoActive:N.isLassoActive,isMapReady:N.isMapReady,polygonCoords:N.polygonCoords,drawRef:N.drawRef,handleDrawCreate:N.handleDrawCreate,handleDrawUpdate:N.handleDrawUpdate,handleDrawDelete:N.handleDrawDelete,handleModeChange:N.handleModeChange,handleSelectionChange:N.handleSelectionChange,subjectWellCoords:N.subjectWellCoords,subjectWell:b,handleSubjectWellMouseEnter:N.handleSubjectWellMouseEnter,handleSubjectWellMouseLeave:N.handleSubjectWellMouseLeave,hoveredCluster:N.hoveredCluster,tooltipAnchor:N.tooltipAnchor,tooltipOffset:N.tooltipOffset,isViewOnly:N.isViewOnly,isClickable:L})]})),o(d,{isResizing:E}),o(r,{showRadiusInput:N.showRadiusInput,drawingRadiusMiles:N.drawingRadiusMiles,setDrawingRadiusMiles:N.setDrawingRadiusMiles,isSatellite:N.isSatellite,handleZoomInWithSync:N.handleZoomInWithSync,handleZoomOutWithSync:N.handleZoomOutWithSync,handleResetZoom:N.handleResetZoom,canZoomIn:N.canZoomIn,canZoomOut:N.canZoomOut,isZoomReset:N.isZoomReset,isRadiusToolActive:N.isRadiusToolActive,handleRadiusToggle:N.handleRadiusToggle,isLassoActive:N.isLassoActive,handleLassoToggle:N.handleLassoToggle,distance:N.distance,mapStyle:N.mapStyle,setMapStyle:N.setMapStyle,isViewOnly:N.isViewOnly,hintsRef:N.hintsRef,hintsMode:N.hintsMode,areHintsCompact:J,boxState:N.boxState,isDrawing:N.isDrawing,drawingPointCount:N.drawingPointCount,isEditingPolygon:N.isEditingPolygon,isEditingVertices:N.isEditingVertices,hasValidPolygon:!!N.hasValidPolygon,effectiveZoomedOut:N.effectiveZoomedOut,isLoadAllWells:N.isLoadAllWells,lassoPhase:N.lassoState.phase,radiusPhase:N.radiusState.phase,wellsInBoxCount:N.wellsInBoxCount,toast:N.toast})]}):o("div",{className:U})}));b.displayName="OffsetWellMap";export{b as OffsetWellMap};
2
2
  //# sourceMappingURL=OffsetWellMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapPreloader.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV5/components/MapPreloader/MapPreloader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,OAAO,CAAC;AAEjC,OAAO,8BAA8B,CAAC;AAUtC;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,EAiBzB,CAAC"}
1
+ {"version":3,"file":"MapPreloader.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV5/components/MapPreloader/MapPreloader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,OAAO,CAAC;AAEjC,OAAO,8BAA8B,CAAC;AAUtC;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,EAmBzB,CAAC"}
@@ -1,2 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{memo as o}from"react";import e from"@vis.gl/react-mapbox";import"mapbox-gl/dist/mapbox-gl.css";import{MapConfig as r}from"../Map/OffsetWellMap/constants.js";import"../../stores/user-settings-store/UserSettingsStoreProvider.js";import{useUserSettingsStore as s}from"../../stores/user-settings-store/useUserSettingsStore.js";import"../../stores/user-settings-store/UserSettingsStoreContext.js";import i from"./MapPreloader.module.css.js";import{MAP_BOX_ACCESS_TOKEN as m}from"../../../../config/mapbox/index.js";import"../../../../config/mapboxGl/index.js";import a from"mapbox-gl";var n=o((function(){var o,n=null!==(o=s((function(t){return t.settings.mapStyle})))&&void 0!==o?o:"satellite";return t("div",{className:i.container,children:t(e,{mapboxAccessToken:m,mapLib:a,mapStyle:r.Styles[n],longitude:r.DefaultCoords.longitude,latitude:r.DefaultCoords.latitude,zoom:r.Zoom.Initial,interactive:!1,attributionControl:!1})})}));n.displayName="MapPreloader";export{n as MapPreloader};
1
+ import{jsx as t}from"react/jsx-runtime";import{memo as o}from"react";import e from"@vis.gl/react-mapbox";import"mapbox-gl/dist/mapbox-gl.css";import{MapConfig as r}from"../Map/OffsetWellMap/constants.js";import"../../stores/user-settings-store/UserSettingsStoreProvider.js";import{useUserSettingsStore as s}from"../../stores/user-settings-store/useUserSettingsStore.js";import"../../stores/user-settings-store/UserSettingsStoreContext.js";import i from"./MapPreloader.module.css.js";import{IS_MAPBOX_ENABLED as m,MAP_BOX_ACCESS_TOKEN as a}from"../../../../config/mapbox/index.js";import"../../../../config/mapboxGl/index.js";import n from"mapbox-gl";var l=o((function(){var o,l=null!==(o=s((function(t){return t.settings.mapStyle})))&&void 0!==o?o:"satellite";return m?t("div",{className:i.container,children:t(e,{mapboxAccessToken:a,mapLib:n,mapStyle:r.Styles[l],longitude:r.DefaultCoords.longitude,latitude:r.DefaultCoords.latitude,zoom:r.Zoom.Initial,interactive:!1,attributionControl:!1})}):null}));l.displayName="MapPreloader";export{l as MapPreloader};
2
2
  //# sourceMappingURL=MapPreloader.js.map
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import r from"@babel/runtime/helpers/slicedToArray";import{useState as t,useEffect as i,useRef as o}from"react";import n from"react-dom";import{isEqual as s}from"lodash";import{MuiThemeProvider as l}from"@material-ui/core/styles";import m from"../components/FiltersToggler.js";import{getStartComponent as u,getMiddleComponent as a,getEndComponents as p}from"../utils.js";import{LARGE_SIZE_LAYOUT as c,MEDIUM_SIZE_LAYOUT as h,SMALL_SIZE_LAYOUT as d}from"../constants.js";import{darkTheme as f}from"../../../config/theme/index.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/helpers/typeof";import"@babel/runtime/regenerator";import"highcharts";import"highcharts/highcharts-more";import"highcharts/modules/solid-gauge";import"highcharts/modules/heatmap";import"highcharts/modules/boost";import"highcharts/modules/exporting";import"highcharts/modules/xrange";import"highcharts/modules/dumbbell";import"highcharts/modules/pattern-fill";import"highcharts/modules/annotations";import"highcharts-multicolor-series";import"dompurify";import"@babel/runtime/helpers/createClass";import"@babel/runtime/helpers/classCallCheck";import"@babel/runtime/helpers/assertThisInitialized";import"@babel/runtime/helpers/inherits";import"@babel/runtime/helpers/possibleConstructorReturn";import"@babel/runtime/helpers/getPrototypeOf";import"@babel/runtime/helpers/toArray";import"@babel/runtime/helpers/toConsumableArray";import"../../../clients/subscriptions/constants.js";import"../../../clients/subscriptions.v1.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../config/extendNative.js";import{jsx as b}from"react/jsx-runtime";function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);r&&(i=i.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,i)}return t}function y(r){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?v(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function g(e,o,n,s){var l=t(null),m=r(l,2),f=m[0],b=m[1];return i((function(){if(s&&o){var r=u(e),t=a(e),i=p(e),l=r&&t&&!i,m=r&&!t&&i,f=r&&t&&i;if(r&&!t&&!i){var v=o[r.key];if(v<=s)return void b(c);if(v<=s/2)return void b(h)}else if(l||m){var y=o[r.key],g=l?o[t.key]:o[i.key];if(y+g<=s)return void b(c);if(n+g<=s)return void b(h)}else if(f){var j=o[r.key],O=o[t.key],k=o[i.key];if(j+O+k<=s)return void b(c);if(n+O+k<=s)return void b(h);if(n+k<=s)return void b(d)}b(d)}}),[o,s]),f}function j(n){var l=o(),m=t(null),u=r(m,2),a=u[0],p=u[1],c=o({}),h=n.filter((function(e){return!!e})),d=b("div",{ref:l,style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:h.map((function(e,r){return b("div",{"data-key":null==e?void 0:e.key,style:{position:"absolute"},children:e},r)}))});return i((function(){var r;if(!s(h,c.current)){var t=Array.from(null===(r=l.current)||void 0===r?void 0:r.childNodes).reduce((function(r,t){var i,o=null==t||null===(i=t.getAttribute)||void 0===i?void 0:i.call(t,"data-key"),n=null==t?void 0:t.getBoundingClientRect().width;return y(y({},r),{},e({},o,n))}),{});Object.values(t).length===h.length&&(s(a,t)||p(t)),c.current=h}})),{componentsWidth:a,hiddenElements:d}}function O(){var e=t(null),o=r(e,2),s=o[0],u=o[1];return i((function(){var e=document.createElement("div");e.style.position="absolute",e.style.visibility="hidden",document.body.appendChild(e),n.render(b(l,{theme:f,children:b(m,{})}),e,(function(){var r=e.getBoundingClientRect();e.remove(),u(r.width)}))}),[]),s}export{O as useAppFilterTogglerWidth,j as useComonentsWidth,g as useFilterLayout};
1
+ import e from"@babel/runtime/helpers/defineProperty";import r from"@babel/runtime/helpers/slicedToArray";import{useState as t,useEffect as i,useRef as o}from"react";import n from"react-dom";import{isEqual as s}from"lodash";import{MuiThemeProvider as l}from"@material-ui/core/styles";import m from"../components/FiltersToggler.js";import{getStartComponent as u,getMiddleComponent as a,getEndComponents as p}from"../utils.js";import{LARGE_SIZE_LAYOUT as c,MEDIUM_SIZE_LAYOUT as h,SMALL_SIZE_LAYOUT as d}from"../constants.js";import{darkTheme as f}from"../../../config/theme/index.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/helpers/typeof";import"@babel/runtime/regenerator";import"highcharts";import"highcharts/highcharts-more";import"highcharts/modules/solid-gauge";import"highcharts/modules/heatmap";import"highcharts/modules/boost";import"highcharts/modules/exporting";import"highcharts/modules/xrange";import"highcharts/modules/dumbbell";import"highcharts/modules/pattern-fill";import"highcharts/modules/annotations";import"highcharts-multicolor-series";import"dompurify";import"../../../config/mapbox/index.js";import"@babel/runtime/helpers/createClass";import"@babel/runtime/helpers/classCallCheck";import"@babel/runtime/helpers/assertThisInitialized";import"@babel/runtime/helpers/inherits";import"@babel/runtime/helpers/possibleConstructorReturn";import"@babel/runtime/helpers/getPrototypeOf";import"@babel/runtime/helpers/toArray";import"@babel/runtime/helpers/toConsumableArray";import"../../../clients/subscriptions/constants.js";import"../../../clients/subscriptions.v1.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../config/extendNative.js";import{jsx as b}from"react/jsx-runtime";function g(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);r&&(i=i.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,i)}return t}function v(r){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?g(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):g(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function y(e,o,n,s){var l=t(null),m=r(l,2),f=m[0],b=m[1];return i((function(){if(s&&o){var r=u(e),t=a(e),i=p(e),l=r&&t&&!i,m=r&&!t&&i,f=r&&t&&i;if(r&&!t&&!i){var g=o[r.key];if(g<=s)return void b(c);if(g<=s/2)return void b(h)}else if(l||m){var v=o[r.key],y=l?o[t.key]:o[i.key];if(v+y<=s)return void b(c);if(n+y<=s)return void b(h)}else if(f){var j=o[r.key],O=o[t.key],k=o[i.key];if(j+O+k<=s)return void b(c);if(n+O+k<=s)return void b(h);if(n+k<=s)return void b(d)}b(d)}}),[o,s]),f}function j(n){var l=o(),m=t(null),u=r(m,2),a=u[0],p=u[1],c=o({}),h=n.filter((function(e){return!!e})),d=b("div",{ref:l,style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:h.map((function(e,r){return b("div",{"data-key":null==e?void 0:e.key,style:{position:"absolute"},children:e},r)}))});return i((function(){var r;if(!s(h,c.current)){var t=Array.from(null===(r=l.current)||void 0===r?void 0:r.childNodes).reduce((function(r,t){var i,o=null==t||null===(i=t.getAttribute)||void 0===i?void 0:i.call(t,"data-key"),n=null==t?void 0:t.getBoundingClientRect().width;return v(v({},r),{},e({},o,n))}),{});Object.values(t).length===h.length&&(s(a,t)||p(t)),c.current=h}})),{componentsWidth:a,hiddenElements:d}}function O(){var e=t(null),o=r(e,2),s=o[0],u=o[1];return i((function(){var e=document.createElement("div");e.style.position="absolute",e.style.visibility="hidden",document.body.appendChild(e),n.render(b(l,{theme:f,children:b(m,{})}),e,(function(){var r=e.getBoundingClientRect();e.remove(),u(r.width)}))}),[]),s}export{O as useAppFilterTogglerWidth,j as useComonentsWidth,y as useFilterLayout};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/PinnableFilters/effects/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { isEqual } from 'lodash';\nimport { MuiThemeProvider } from '@material-ui/core/styles';\n\nimport FiltersToggler from '../components/FiltersToggler';\nimport { getEndComponents, getMiddleComponent, getStartComponent } from '../utils';\nimport { LARGE_SIZE_LAYOUT, MEDIUM_SIZE_LAYOUT, SMALL_SIZE_LAYOUT } from '../constants';\n\nimport { theme } from '~/config';\n\n// NOTE: Determine layout according to the width of elements\nexport function useFilterLayout(components, componentsWidth, appFilterTogglerWidth, appWidth) {\n const [layout, setLayout] = useState(null);\n\n useEffect(() => {\n if (!appWidth || !componentsWidth) {\n return;\n }\n\n const filtersComponent = getStartComponent(components);\n const goalComponent = getMiddleComponent(components);\n const switchComponent = getEndComponents(components);\n\n const hasFiltersOnly = filtersComponent && !goalComponent && !switchComponent;\n const hasFiltersAndGoals = filtersComponent && goalComponent && !switchComponent;\n const hasFiltersAndSwitch = filtersComponent && !goalComponent && switchComponent;\n const hasAll = filtersComponent && goalComponent && switchComponent;\n\n if (hasFiltersOnly) {\n const filtersWidth = componentsWidth[filtersComponent.key];\n\n if (filtersWidth <= appWidth) {\n setLayout(LARGE_SIZE_LAYOUT);\n return;\n }\n\n if (filtersWidth <= appWidth / 2) {\n setLayout(MEDIUM_SIZE_LAYOUT);\n return;\n }\n } else if (hasFiltersAndGoals || hasFiltersAndSwitch) {\n const startWidth = componentsWidth[filtersComponent.key];\n const endWidth = hasFiltersAndGoals\n ? componentsWidth[goalComponent.key]\n : componentsWidth[switchComponent.key];\n\n if (startWidth + endWidth <= appWidth) {\n setLayout(LARGE_SIZE_LAYOUT);\n return;\n }\n\n if (appFilterTogglerWidth + endWidth <= appWidth) {\n setLayout(MEDIUM_SIZE_LAYOUT);\n return;\n }\n } else if (hasAll) {\n const startWidth = componentsWidth[filtersComponent.key];\n const middleWidth = componentsWidth[goalComponent.key];\n const endWidth = componentsWidth[switchComponent.key];\n\n if (startWidth + middleWidth + endWidth <= appWidth) {\n setLayout(LARGE_SIZE_LAYOUT);\n return;\n }\n\n if (appFilterTogglerWidth + middleWidth + endWidth <= appWidth) {\n setLayout(MEDIUM_SIZE_LAYOUT);\n return;\n }\n\n if (appFilterTogglerWidth + endWidth <= appWidth) {\n setLayout(SMALL_SIZE_LAYOUT);\n return;\n }\n }\n\n setLayout(SMALL_SIZE_LAYOUT);\n }, [componentsWidth, appWidth]);\n\n return layout;\n}\n\n// NOTE: Calculate the width of child components here\nexport function useComonentsWidth(components) {\n // const widthRef = useRef({});\n const hiddenElementsRef = useRef();\n const [widthDict, setWidthDict] = useState(null);\n const prevComponentsRef = useRef({});\n\n const validComponents = components.filter(component => !!component);\n const hiddenElements = (\n <div\n ref={hiddenElementsRef}\n style={{ position: 'absolute', width: 0, height: 0, overflow: 'hidden' }}\n >\n {validComponents.map((component, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <div key={index} data-key={component?.key} style={{ position: 'absolute' }}>\n {component}\n </div>\n );\n })}\n </div>\n );\n\n // NOTE: Calcualte width of each components\n useEffect(() => {\n // NOTE: Don't calcuate width again\n if (isEqual(validComponents, prevComponentsRef.current)) {\n return;\n }\n\n const nodesArray = Array.from(hiddenElementsRef.current?.childNodes);\n const sizeMap = nodesArray.reduce((acc, node) => {\n const key = node?.getAttribute?.('data-key');\n const value = node?.getBoundingClientRect().width;\n\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n\n if (Object.values(sizeMap).length === validComponents.length) {\n if (!isEqual(widthDict, sizeMap)) {\n setWidthDict(sizeMap);\n }\n }\n\n prevComponentsRef.current = validComponents;\n });\n\n return { componentsWidth: widthDict, hiddenElements };\n}\n\n// NOTE: Calculate the width of Toggler Component\nexport function useAppFilterTogglerWidth() {\n const [width, setWidth] = useState(null);\n\n useEffect(() => {\n const element = document.createElement('div');\n element.style.position = 'absolute';\n element.style.visibility = 'hidden';\n document.body.appendChild(element);\n\n ReactDOM.render(\n <MuiThemeProvider theme={theme.darkTheme}>\n <FiltersToggler />\n </MuiThemeProvider>,\n element,\n () => {\n const dims = element.getBoundingClientRect();\n element.remove();\n setWidth(dims.width);\n }\n );\n }, []);\n\n return width;\n}\n"],"names":["useFilterLayout","components","componentsWidth","appFilterTogglerWidth","appWidth","useState","_useState2","_slicedToArray","_useState","layout","setLayout","useEffect","filtersComponent","getStartComponent","goalComponent","getMiddleComponent","switchComponent","getEndComponents","hasFiltersAndGoals","hasFiltersAndSwitch","hasAll","filtersWidth","key","LARGE_SIZE_LAYOUT","MEDIUM_SIZE_LAYOUT","startWidth","endWidth","middleWidth","SMALL_SIZE_LAYOUT","useComonentsWidth","hiddenElementsRef","useRef","_useState4","_useState3","widthDict","setWidthDict","prevComponentsRef","validComponents","filter","component","hiddenElements","_jsx","ref","style","position","width","height","overflow","children","map","index","_hiddenElementsRef$cu","isEqual","current","sizeMap","Array","from","childNodes","reduce","acc","node","_node$getAttribute","getAttribute","call","value","getBoundingClientRect","_objectSpread","_defineProperty","Object","values","length","useAppFilterTogglerWidth","_useState6","_useState5","setWidth","element","document","createElement","visibility","body","appendChild","ReactDOM","render","MuiThemeProvider","theme","FiltersToggler","dims","remove"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/PinnableFilters/effects/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { isEqual } from 'lodash';\nimport { MuiThemeProvider } from '@material-ui/core/styles';\n\nimport FiltersToggler from '../components/FiltersToggler';\nimport { getEndComponents, getMiddleComponent, getStartComponent } from '../utils';\nimport { LARGE_SIZE_LAYOUT, MEDIUM_SIZE_LAYOUT, SMALL_SIZE_LAYOUT } from '../constants';\n\nimport { theme } from '~/config';\n\n// NOTE: Determine layout according to the width of elements\nexport function useFilterLayout(components, componentsWidth, appFilterTogglerWidth, appWidth) {\n const [layout, setLayout] = useState(null);\n\n useEffect(() => {\n if (!appWidth || !componentsWidth) {\n return;\n }\n\n const filtersComponent = getStartComponent(components);\n const goalComponent = getMiddleComponent(components);\n const switchComponent = getEndComponents(components);\n\n const hasFiltersOnly = filtersComponent && !goalComponent && !switchComponent;\n const hasFiltersAndGoals = filtersComponent && goalComponent && !switchComponent;\n const hasFiltersAndSwitch = filtersComponent && !goalComponent && switchComponent;\n const hasAll = filtersComponent && goalComponent && switchComponent;\n\n if (hasFiltersOnly) {\n const filtersWidth = componentsWidth[filtersComponent.key];\n\n if (filtersWidth <= appWidth) {\n setLayout(LARGE_SIZE_LAYOUT);\n return;\n }\n\n if (filtersWidth <= appWidth / 2) {\n setLayout(MEDIUM_SIZE_LAYOUT);\n return;\n }\n } else if (hasFiltersAndGoals || hasFiltersAndSwitch) {\n const startWidth = componentsWidth[filtersComponent.key];\n const endWidth = hasFiltersAndGoals\n ? componentsWidth[goalComponent.key]\n : componentsWidth[switchComponent.key];\n\n if (startWidth + endWidth <= appWidth) {\n setLayout(LARGE_SIZE_LAYOUT);\n return;\n }\n\n if (appFilterTogglerWidth + endWidth <= appWidth) {\n setLayout(MEDIUM_SIZE_LAYOUT);\n return;\n }\n } else if (hasAll) {\n const startWidth = componentsWidth[filtersComponent.key];\n const middleWidth = componentsWidth[goalComponent.key];\n const endWidth = componentsWidth[switchComponent.key];\n\n if (startWidth + middleWidth + endWidth <= appWidth) {\n setLayout(LARGE_SIZE_LAYOUT);\n return;\n }\n\n if (appFilterTogglerWidth + middleWidth + endWidth <= appWidth) {\n setLayout(MEDIUM_SIZE_LAYOUT);\n return;\n }\n\n if (appFilterTogglerWidth + endWidth <= appWidth) {\n setLayout(SMALL_SIZE_LAYOUT);\n return;\n }\n }\n\n setLayout(SMALL_SIZE_LAYOUT);\n }, [componentsWidth, appWidth]);\n\n return layout;\n}\n\n// NOTE: Calculate the width of child components here\nexport function useComonentsWidth(components) {\n // const widthRef = useRef({});\n const hiddenElementsRef = useRef();\n const [widthDict, setWidthDict] = useState(null);\n const prevComponentsRef = useRef({});\n\n const validComponents = components.filter(component => !!component);\n const hiddenElements = (\n <div\n ref={hiddenElementsRef}\n style={{ position: 'absolute', width: 0, height: 0, overflow: 'hidden' }}\n >\n {validComponents.map((component, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <div key={index} data-key={component?.key} style={{ position: 'absolute' }}>\n {component}\n </div>\n );\n })}\n </div>\n );\n\n // NOTE: Calcualte width of each components\n useEffect(() => {\n // NOTE: Don't calcuate width again\n if (isEqual(validComponents, prevComponentsRef.current)) {\n return;\n }\n\n const nodesArray = Array.from(hiddenElementsRef.current?.childNodes);\n const sizeMap = nodesArray.reduce((acc, node) => {\n const key = node?.getAttribute?.('data-key');\n const value = node?.getBoundingClientRect().width;\n\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n\n if (Object.values(sizeMap).length === validComponents.length) {\n if (!isEqual(widthDict, sizeMap)) {\n setWidthDict(sizeMap);\n }\n }\n\n prevComponentsRef.current = validComponents;\n });\n\n return { componentsWidth: widthDict, hiddenElements };\n}\n\n// NOTE: Calculate the width of Toggler Component\nexport function useAppFilterTogglerWidth() {\n const [width, setWidth] = useState(null);\n\n useEffect(() => {\n const element = document.createElement('div');\n element.style.position = 'absolute';\n element.style.visibility = 'hidden';\n document.body.appendChild(element);\n\n ReactDOM.render(\n <MuiThemeProvider theme={theme.darkTheme}>\n <FiltersToggler />\n </MuiThemeProvider>,\n element,\n () => {\n const dims = element.getBoundingClientRect();\n element.remove();\n setWidth(dims.width);\n }\n );\n }, []);\n\n return width;\n}\n"],"names":["useFilterLayout","components","componentsWidth","appFilterTogglerWidth","appWidth","useState","_useState2","_slicedToArray","_useState","layout","setLayout","useEffect","filtersComponent","getStartComponent","goalComponent","getMiddleComponent","switchComponent","getEndComponents","hasFiltersAndGoals","hasFiltersAndSwitch","hasAll","filtersWidth","key","LARGE_SIZE_LAYOUT","MEDIUM_SIZE_LAYOUT","startWidth","endWidth","middleWidth","SMALL_SIZE_LAYOUT","useComonentsWidth","hiddenElementsRef","useRef","_useState4","_useState3","widthDict","setWidthDict","prevComponentsRef","validComponents","filter","component","hiddenElements","_jsx","ref","style","position","width","height","overflow","children","map","index","_hiddenElementsRef$cu","isEqual","current","sizeMap","Array","from","childNodes","reduce","acc","node","_node$getAttribute","getAttribute","call","value","getBoundingClientRect","_objectSpread","_defineProperty","Object","values","length","useAppFilterTogglerWidth","_useState6","_useState5","setWidth","element","document","createElement","visibility","body","appendChild","ReactDOM","render","MuiThemeProvider","theme","FiltersToggler","dims","remove"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export const MAP_BOX_ACCESS_TOKEN: "pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw";
2
+ export const IS_MAPBOX_ENABLED: boolean;
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/mapbox/index.js"],"names":[],"mappings":"AACA,mCACE,4FAA4F,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/mapbox/index.js"],"names":[],"mappings":"AACA,mCACE,4FAA4F,CAAC;AAI/F,wCAAiF"}
@@ -1,2 +1,2 @@
1
- var j="pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw";export{j as MAP_BOX_ACCESS_TOKEN};
1
+ var e="pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw",j="true"===process.env.REACT_APP_MAPBOX_ENABLED;export{j as IS_MAPBOX_ENABLED,e as MAP_BOX_ACCESS_TOKEN};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/config/mapbox/index.js"],"sourcesContent":["// NOTE: Access token from Jim Wang\nexport const MAP_BOX_ACCESS_TOKEN =\n 'pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw';\n"],"names":["MAP_BOX_ACCESS_TOKEN"],"mappings":"AACO,IAAMA,EACX"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/config/mapbox/index.js"],"sourcesContent":["// NOTE: Access token from Jim Wang\nexport const MAP_BOX_ACCESS_TOKEN =\n 'pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw';\n\n// Airgapped deployments cannot reach api.mapbox.com, so their maps must never mount.\n// The host app inlines this at its own build (corva-web-frontend maps VITE_ to REACT_APP_).\nexport const IS_MAPBOX_ENABLED = process.env.REACT_APP_MAPBOX_ENABLED === 'true';\n"],"names":["MAP_BOX_ACCESS_TOKEN","IS_MAPBOX_ENABLED","process","env","REACT_APP_MAPBOX_ENABLED"],"mappings":"AACO,IAAMA,EACX,6FAIWC,EAA6D,SAAzCC,QAAQC,IAAIC"}
@@ -231,7 +231,7 @@ const validateDsn = (dsn) => {
231
231
 
232
232
  const MCP_SERVER_VERSION = '1.4.0';
233
233
 
234
- var version = "3.70.0-4";
234
+ var version = "3.70.0-6";
235
235
 
236
236
  const CORVA_UI_VERSION = version;
237
237
 
@@ -9441,6 +9441,16 @@ var componentsV1Data = [
9441
9441
  name: "Default",
9442
9442
  description: "",
9443
9443
  code: "<div style={{ background: '#1c1c1c', padding: 24, width: 420 }}>\n <AttachmentPreview\n onRemove={() => {}}\n items={[\n { id: 1, name: 'log.png', kind: 'image', src: img },\n { id: 2, name: 'run.mp4', kind: 'video', src: img },\n { id: 3, name: 'Corva report.xls', kind: 'file' },\n { id: 4, name: 'notes.pdf', kind: 'file' },\n ]}\n />\n </div>"
9444
+ },
9445
+ {
9446
+ name: "Uploading",
9447
+ description: "",
9448
+ code: "<div style={{ background: '#1c1c1c', padding: 24, width: 420 }}>\n <AttachmentPreview\n onRemove={() => {}}\n items={[\n { id: 1, name: 'log.png', kind: 'image', src: img, isUploading: true },\n { id: 2, name: 'Corva report.xls', kind: 'file', isUploading: true },\n ]}\n />\n </div>"
9449
+ },
9450
+ {
9451
+ name: "Downloadable",
9452
+ description: "",
9453
+ code: "<div style={{ background: '#1c1c1c', padding: 24, width: 420 }}>\n <AttachmentPreview\n items={[\n { id: 1, name: 'Corva report.xls', kind: 'file', downloadUrl: img },\n { id: 2, name: 'notes.pdf', kind: 'file', downloadUrl: img },\n ]}\n />\n </div>"
9444
9454
  }
9445
9455
  ],
9446
9456
  sourceUrl: "https://github.com/corva-ai/corva-ui/blob/develop/src/componentsV2/AttachmentPreview/AttachmentPreview.tsx",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corva/ui",
3
- "version": "3.70.0-4",
3
+ "version": "3.70.0-6",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "description": "Shared components/utils for Corva ui projects",
6
6
  "keywords": [