@corva/ui 3.75.0-13 → 3.75.0-14
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/cjs-bundle/components/AddComment/Popover.js +1 -1
- package/cjs-bundle/components/AddComment/Popover.js.map +1 -1
- package/cjs-bundle/components/AddComment/components/Content.js +1 -1
- package/cjs-bundle/components/AddComment/components/Content.js.map +1 -1
- package/cjs-bundle/components/BICOffsetPickerDialog/components/Map/Map.js +1 -1
- package/cjs-bundle/components/BICOffsetPickerDialog/components/Map/Map.js.map +1 -1
- package/cjs-bundle/components/BICOffsetPickerDialog/index.js +1 -1
- package/cjs-bundle/components/BICOffsetPickerDialog/index.js.map +1 -1
- package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
- package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
- package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js +1 -1
- package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js.map +1 -1
- package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
- package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
- package/cjs-bundle/components/DocumentViewer/DocumentViewer.js +1 -1
- package/cjs-bundle/components/DocumentViewer/DocumentViewer.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
- package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
- package/cjs-bundle/components/OffsetWellMap/OffsetWellMap.js +1 -1
- package/cjs-bundle/components/OffsetWellMap/OffsetWellMap.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/components/Map/Map.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/components/Map/Map.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/effects/index.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV2/effects/index.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useMapTooltipState.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useMapTooltipState.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useSelectionToolOrchestration.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useSelectionToolOrchestration.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/utils/well-markers-utils.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/utils/well-markers-utils.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/components/CompanySafeguardWrapper/CompanySafeguardWrapper.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/components/CompanySafeguardWrapper/CompanySafeguardWrapper.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/wellTransformations.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/wellTransformations.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/utils/getCoordinatedWells.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/utils/getCoordinatedWells.js.map +1 -1
- package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js +1 -1
- package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
- package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
- package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
- package/cjs-bundle/componentsV2/CompletionsOffsetWellPicker/hooks/usePadsByRadius.js +1 -1
- package/cjs-bundle/componentsV2/CompletionsOffsetWellPicker/hooks/usePadsByRadius.js.map +1 -1
- package/components/AddComment/Popover.js +1 -1
- package/components/AddComment/Popover.js.map +1 -1
- package/components/AddComment/components/Content.js +1 -1
- package/components/AddComment/components/Content.js.map +1 -1
- package/components/BICOffsetPickerDialog/components/Map/Map.d.ts.map +1 -1
- package/components/BICOffsetPickerDialog/components/Map/Map.js +1 -1
- package/components/BICOffsetPickerDialog/components/Map/Map.js.map +1 -1
- package/components/BICOffsetPickerDialog/index.js +1 -1
- package/components/BICOffsetPickerDialog/index.js.map +1 -1
- package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
- package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
- package/components/Casing/CasingTableV2/components/Component.js +1 -1
- package/components/Casing/CasingTableV2/components/Component.js.map +1 -1
- package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
- package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
- package/components/DocumentViewer/DocumentViewer.js +1 -1
- package/components/DocumentViewer/DocumentViewer.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
- package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
- package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
- package/components/OffsetWellMap/OffsetWellMap.d.ts.map +1 -1
- package/components/OffsetWellMap/OffsetWellMap.js +1 -1
- package/components/OffsetWellMap/OffsetWellMap.js.map +1 -1
- package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
- package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
- package/components/OffsetWellPickerV2/components/Map/Map.d.ts.map +1 -1
- package/components/OffsetWellPickerV2/components/Map/Map.js +1 -1
- package/components/OffsetWellPickerV2/components/Map/Map.js.map +1 -1
- package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
- package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
- package/components/OffsetWellPickerV2/effects/index.d.ts.map +1 -1
- package/components/OffsetWellPickerV2/effects/index.js +1 -1
- package/components/OffsetWellPickerV2/effects/index.js.map +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.d.ts.map +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js.map +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.d.ts.map +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js.map +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
- package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
- package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
- package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
- package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
- package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
- package/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
- package/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
- package/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
- package/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
- package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
- package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
- package/components/OffsetWellPickerV4/effects/useAdvancedWells.d.ts.map +1 -1
- package/components/OffsetWellPickerV4/utils/index.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
- package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useMapTooltipState.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useMapTooltipState.js.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useSelectionToolOrchestration.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useSelectionToolOrchestration.js.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/utils/well-markers-utils.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/utils/well-markers-utils.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/utils/well-markers-utils.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/components/CompanySafeguardWrapper/CompanySafeguardWrapper.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/components/CompanySafeguardWrapper/CompanySafeguardWrapper.js.map +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/wellTransformations.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/wellTransformations.js +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/wellTransformations.js.map +1 -1
- package/components/OffsetWellPickerV5/utils/getCoordinatedWells.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/utils/getCoordinatedWells.js +1 -1
- package/components/OffsetWellPickerV5/utils/getCoordinatedWells.js.map +1 -1
- package/components/PadOffsetsPicker/StagesSelector.js +1 -1
- package/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
- package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
- package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
- package/componentsV2/CompletionsOffsetWellPicker/hooks/usePadsByRadius.d.ts.map +1 -1
- package/componentsV2/CompletionsOffsetWellPicker/hooks/usePadsByRadius.js +1 -1
- package/componentsV2/CompletionsOffsetWellPicker/hooks/usePadsByRadius.js.map +1 -1
- package/mcp-server/server.mjs +4 -4
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Map/Map.js"],"sourcesContent":["import { createElement, memo, useRef, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, sortBy } from 'lodash';\nimport { MuiThemeProvider } from '@material-ui/core/styles';\n\nimport styles from './Map.css';\n\nimport { mapbox } from '~/utils';\nimport { createAdaptiveRoot } from '~/utils/createAdaptiveRoot';\nimport { theme } from '~/config';\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 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';\nconst COLORS = [\n '#FF00FF',\n '#F5BD80',\n '#FF0000',\n '#0080FF',\n '#FF8000',\n '#58ACFA',\n '#FA58F4',\n '#40FF00',\n '#4B8A08',\n '#40FF00',\n '#D8F781',\n];\n\nconst DEFAULT_COORDS = [29.749907, -95.358421]; // TX coordinates\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 subjectWell = null,\n wells,\n offsetWells = null,\n radius,\n subjectWellMarkerSize = DEFAULT_WELLS_MAP_SUBJECT_WELL_MARKER_SIZE,\n wellMarkerSize = DEFAULT_WELLS_MAP_WELL_MARKER_SIZE,\n popUpFormatter = null,\n coordsDataPath = 'settings.top_hole.coordinates',\n}) {\n const mapContainerRef = useRef(null);\n const mapRef = useRef(null);\n const radiusCircleBoundsRef = useRef(null);\n const markersBoundsRef = useRef(null);\n const popupRef = useRef(null);\n const tooltipRootRef = useRef(null);\n const tooltipContainerRef = useRef(null);\n const prevWellsRef = useRef();\n const [isMapReady, setIsMapReady] = useState(false);\n\n const restWells = useMemo(() => {\n return wells.filter(well => !subjectWell || subjectWell.id !== well.id);\n }, [subjectWell, wells]);\n\n const subjectWellCoords = useMemo(() => {\n return subjectWell && get(subjectWell, coordsDataPath);\n }, [subjectWell, coordsDataPath]);\n\n // NOTE: Get well marker colors according to its target formation\n const [formations, colorDict] = useMemo(() => {\n // NOTE: Determine well marker colors\n const restFormations = [];\n let hasNullFormation = false;\n\n restWells.forEach(well => {\n if (well.formation === 'Null') {\n hasNullFormation = true;\n } else if (\n (!subjectWell || subjectWell.formation !== well.formation) &&\n !restFormations.includes(well.formation)\n ) {\n restFormations.push(well.formation);\n }\n });\n\n const sortedFormations = subjectWell\n ? [subjectWell.formation].concat(sortBy(restFormations))\n : sortBy(restFormations);\n\n if (hasNullFormation && !sortedFormations.includes('Null')) {\n sortedFormations.push('Null');\n }\n\n const colors = sortedFormations.reduce(\n (result, item, idx) => ({\n ...result,\n [item]: COLORS[idx % COLORS.length],\n }),\n {}\n );\n\n return [sortedFormations, colors];\n }, [subjectWell, restWells]);\n\n // NOTE: Initialize map\n useEffect(() => {\n if (!IS_MAPBOX_ENABLED) return undefined;\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 paint: {\n 'circle-radius': ['get', 'radius'],\n 'circle-color': ['get', 'color'],\n 'circle-opacity': ['get', 'opacity'],\n },\n });\n\n setIsMapReady(true);\n });\n\n const map = mapRef.current;\n return () => {\n tooltipRootRef.current?.unmount();\n tooltipRootRef.current = null;\n tooltipContainerRef.current = null;\n\n map.remove();\n mapRef.current = null;\n radiusCircleBoundsRef.current = null;\n markersBoundsRef.current = null;\n };\n }, []);\n\n // NOTE: Radius circle\n useEffect(() => {\n if (!mapRef.current || !isMapReady) {\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, isMapReady]);\n\n // NOTE: Well markers\n useEffect(() => {\n if (!mapRef.current || !isMapReady) {\n return undefined;\n }\n\n const prevWells = prevWellsRef.current;\n prevWellsRef.current = wells;\n\n popupRef.current?.remove();\n\n const offsetWellIds = offsetWells.map(well => well.id);\n\n const features = [];\n const wellsById = {};\n const bounds = new mapboxgl.LngLatBounds();\n wells.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 ? subjectWellMarkerSize : wellMarkerSize;\n const color = isWellSubject || isWellOffset ? OFFSET_WELL_COLOR : colorDict[well.formation];\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 properties: { wellId: well.id, radius: r, color, opacity },\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 const popUpContent = createElement(popUpFormatter, {\n well,\n color: colorDict[well.formation],\n });\n // NOTE: Custom popup may have buttons. Reuse a single container/root and update its content.\n if (!tooltipContainerRef.current) {\n tooltipContainerRef.current = document.createElement('div');\n tooltipRootRef.current = createAdaptiveRoot(tooltipContainerRef.current);\n }\n tooltipRootRef.current.render(\n <MuiThemeProvider theme={theme.darkTheme}>{popUpContent}</MuiThemeProvider>\n );\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(tooltipContainerRef.current)\n .addTo(map);\n }\n };\n\n const handleMouseLeave = () => {\n hoveredWellId = null;\n map.getCanvas().style.cursor = '';\n };\n\n map.on('mousemove', WELLS_ID, handleMouseMove);\n map.on('mouseleave', WELLS_ID, handleMouseLeave);\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 };\n }, [subjectWell, wells, offsetWells, colorDict, isMapReady]);\n\n useEffect(() => {\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, isMapReady]);\n\n return (\n <div className={styles.map}>\n <div className={styles.mapMain} ref={mapContainerRef} />\n\n <div className={styles.mapFooter}>\n {offsetWells && (\n <div className={styles.mapFooterItem}>\n <div\n className={styles.mapFooterItemSquare}\n style={{ backgroundColor: OFFSET_WELL_COLOR }}\n />\n <div className={styles.mapFooterItemLabel}>Selected Offset Wells</div>\n </div>\n )}\n\n {formations.map(item => (\n <div className={styles.mapFooterItem} key={item}>\n <div\n className={styles.mapFooterItemSquare}\n style={{ backgroundColor: colorDict[item] }}\n />\n <div className={styles.mapFooterItemLabel}>{item}</div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nWellsMap.propTypes = {\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 subjectWellMarkerSize: PropTypes.number,\n wellMarkerSize: PropTypes.number,\n popUpFormatter: PropTypes.func,\n coordsDataPath: PropTypes.string,\n};\n\nconst DEFAULT_WELLS_MAP_SUBJECT_WELL_MARKER_SIZE = DEFAULT_SUBJECT_WELL_MARKER_SIZE;\nconst DEFAULT_WELLS_MAP_WELL_MARKER_SIZE = DEFAULT_WELL_MARKER_SIZE;\n\nexport default memo(WellsMap);\n"],"names":["isValidCoordinates","mapbox","COLORS","DEFAULT_COORDS","EMPTY_FEATURE_COLLECTION","type","features","toLngLat","_ref","_ref2","_slicedToArray","lat","WellsMap","_ref5","_ref5$subjectWell","subjectWell","wells","_ref5$offsetWells","offsetWells","radius","_ref5$subjectWellMark","subjectWellMarkerSize","DEFAULT_WELLS_MAP_SUBJECT_WELL_MARKER_SIZE","_ref5$wellMarkerSize","wellMarkerSize","DEFAULT_WELLS_MAP_WELL_MARKER_SIZE","_ref5$popUpFormatter","popUpFormatter","_ref5$coordsDataPath","coordsDataPath","mapContainerRef","useRef","mapRef","radiusCircleBoundsRef","markersBoundsRef","popupRef","tooltipRootRef","tooltipContainerRef","prevWellsRef","useState","_useState2","_useState","isMapReady","setIsMapReady","restWells","useMemo","filter","well","id","subjectWellCoords","get","restFormations","hasNullFormation","forEach","formation","includes","push","sortedFormations","concat","sortBy","colors","reduce","result","item","idx","length","_useMemo2","_useMemo","formations","colorDict","useEffect","IS_MAPBOX_ENABLED","current","mapboxgl","Map","container","style","center","zoom","attributionControl","scrollZoom","addControl","NavigationControl","showCompass","on","addSource","data","addLayer","source","paint","map","_tooltipRootRef$curre","unmount","remove","getSource","setData","ring","_ref3","radiusMeters","_ref4","lng","points","distanceX","Math","cos","PI","distanceY","i","theta","sin","makeCirclePolygon","geometry","coordinates","bounds","coord","extend","LngLatBounds","_popupRef$current","prevWells","offsetWellIds","wellsById","coords","isWellSubject","isWellOffset","r","color","opacity","properties","wellId","hoveredWellId","handleMouseMove","e","getCanvas","cursor","popUpContent","createElement","document","createAdaptiveRoot","render","_jsx","MuiThemeProvider","theme","children","Popup","closeButton","maxWidth","setLngLat","setDOMContent","addTo","handleMouseLeave","setTimeout","fitBounds","padding","off","_jsxs","className","styles","mapMain","ref","mapFooter","mapFooterItem","mapFooterItemSquare","backgroundColor","mapFooterItemLabel","propTypes","PropTypes","shape","number","string","arrayOf","isRequired","func","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Map.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Map/Map.js"],"sourcesContent":["import { createElement, memo, useRef, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, sortBy } from 'lodash';\nimport { MuiThemeProvider } from '@material-ui/core/styles';\n\nimport styles from './Map.css';\n\nimport { mapbox } from '~/utils';\nimport { createAdaptiveRoot } from '~/utils/createAdaptiveRoot';\nimport { theme } from '~/config';\nimport mapboxgl from '~/config/mapboxGl';\nimport { IS_MAPBOX_ENABLED } from '~/config/mapbox';\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\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';\nconst COLORS = [\n '#FF00FF',\n '#F5BD80',\n '#FF0000',\n '#0080FF',\n '#FF8000',\n '#58ACFA',\n '#FA58F4',\n '#40FF00',\n '#4B8A08',\n '#40FF00',\n '#D8F781',\n];\n\nconst DEFAULT_COORDS = [29.749907, -95.358421]; // TX coordinates\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 subjectWell = null,\n wells,\n offsetWells = null,\n radius,\n subjectWellMarkerSize = DEFAULT_WELLS_MAP_SUBJECT_WELL_MARKER_SIZE,\n wellMarkerSize = DEFAULT_WELLS_MAP_WELL_MARKER_SIZE,\n popUpFormatter = null,\n coordsDataPath = 'settings.top_hole.coordinates',\n}) {\n const mapContainerRef = useRef(null);\n const mapRef = useRef(null);\n const radiusCircleBoundsRef = useRef(null);\n const markersBoundsRef = useRef(null);\n const popupRef = useRef(null);\n const tooltipRootRef = useRef(null);\n const tooltipContainerRef = useRef(null);\n const prevWellsRef = useRef();\n const [isMapReady, setIsMapReady] = useState(false);\n\n const restWells = useMemo(() => {\n return wells.filter(well => !subjectWell || subjectWell.id !== well.id);\n }, [subjectWell, wells]);\n\n const subjectWellCoords = useMemo(() => {\n return subjectWell && get(subjectWell, coordsDataPath);\n }, [subjectWell, coordsDataPath]);\n\n // NOTE: Get well marker colors according to its target formation\n const [formations, colorDict] = useMemo(() => {\n // NOTE: Determine well marker colors\n const restFormations = [];\n let hasNullFormation = false;\n\n restWells.forEach(well => {\n if (well.formation === 'Null') {\n hasNullFormation = true;\n } else if (\n (!subjectWell || subjectWell.formation !== well.formation) &&\n !restFormations.includes(well.formation)\n ) {\n restFormations.push(well.formation);\n }\n });\n\n const sortedFormations = subjectWell\n ? [subjectWell.formation].concat(sortBy(restFormations))\n : sortBy(restFormations);\n\n if (hasNullFormation && !sortedFormations.includes('Null')) {\n sortedFormations.push('Null');\n }\n\n const colors = sortedFormations.reduce(\n (result, item, idx) => ({\n ...result,\n [item]: COLORS[idx % COLORS.length],\n }),\n {}\n );\n\n return [sortedFormations, colors];\n }, [subjectWell, restWells]);\n\n // NOTE: Initialize map\n useEffect(() => {\n if (!IS_MAPBOX_ENABLED) return undefined;\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 paint: {\n 'circle-radius': ['get', 'radius'],\n 'circle-color': ['get', 'color'],\n 'circle-opacity': ['get', 'opacity'],\n },\n });\n\n setIsMapReady(true);\n });\n\n const map = mapRef.current;\n return () => {\n tooltipRootRef.current?.unmount();\n tooltipRootRef.current = null;\n tooltipContainerRef.current = null;\n\n map.remove();\n mapRef.current = null;\n radiusCircleBoundsRef.current = null;\n markersBoundsRef.current = null;\n };\n }, []);\n\n // NOTE: Radius circle\n useEffect(() => {\n if (!mapRef.current || !isMapReady) {\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, isMapReady]);\n\n // NOTE: Well markers\n useEffect(() => {\n if (!mapRef.current || !isMapReady) {\n return undefined;\n }\n\n const prevWells = prevWellsRef.current;\n prevWellsRef.current = wells;\n\n popupRef.current?.remove();\n\n const offsetWellIds = offsetWells.map(well => well.id);\n\n const features = [];\n const wellsById = {};\n const bounds = new mapboxgl.LngLatBounds();\n wells.forEach(well => {\n const coords = get(well, coordsDataPath);\n\n if (coords && mapbox.isValidCoordinates(coords)) {\n const isWellSubject = subjectWell && subjectWell.id === well.id;\n const isWellOffset = offsetWellIds.includes(well.id);\n const r = isWellSubject ? subjectWellMarkerSize : wellMarkerSize;\n const color = isWellSubject || isWellOffset ? OFFSET_WELL_COLOR : colorDict[well.formation];\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 properties: { wellId: well.id, radius: r, color, opacity },\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 const popUpContent = createElement(popUpFormatter, {\n well,\n color: colorDict[well.formation],\n });\n // NOTE: Custom popup may have buttons. Reuse a single container/root and update its content.\n if (!tooltipContainerRef.current) {\n tooltipContainerRef.current = document.createElement('div');\n tooltipRootRef.current = createAdaptiveRoot(tooltipContainerRef.current);\n }\n tooltipRootRef.current.render(\n <MuiThemeProvider theme={theme.darkTheme}>{popUpContent}</MuiThemeProvider>\n );\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(tooltipContainerRef.current)\n .addTo(map);\n }\n };\n\n const handleMouseLeave = () => {\n hoveredWellId = null;\n map.getCanvas().style.cursor = '';\n };\n\n map.on('mousemove', WELLS_ID, handleMouseMove);\n map.on('mouseleave', WELLS_ID, handleMouseLeave);\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 };\n }, [subjectWell, wells, offsetWells, colorDict, isMapReady]);\n\n useEffect(() => {\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, isMapReady]);\n\n return (\n <div className={styles.map}>\n <div className={styles.mapMain} ref={mapContainerRef} />\n\n <div className={styles.mapFooter}>\n {offsetWells && (\n <div className={styles.mapFooterItem}>\n <div\n className={styles.mapFooterItemSquare}\n style={{ backgroundColor: OFFSET_WELL_COLOR }}\n />\n <div className={styles.mapFooterItemLabel}>Selected Offset Wells</div>\n </div>\n )}\n\n {formations.map(item => (\n <div className={styles.mapFooterItem} key={item}>\n <div\n className={styles.mapFooterItemSquare}\n style={{ backgroundColor: colorDict[item] }}\n />\n <div className={styles.mapFooterItemLabel}>{item}</div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nWellsMap.propTypes = {\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 subjectWellMarkerSize: PropTypes.number,\n wellMarkerSize: PropTypes.number,\n popUpFormatter: PropTypes.func,\n coordsDataPath: PropTypes.string,\n};\n\nconst DEFAULT_WELLS_MAP_SUBJECT_WELL_MARKER_SIZE = DEFAULT_SUBJECT_WELL_MARKER_SIZE;\nconst DEFAULT_WELLS_MAP_WELL_MARKER_SIZE = DEFAULT_WELL_MARKER_SIZE;\n\nexport default memo(WellsMap);\n"],"names":["COLORS","DEFAULT_COORDS","EMPTY_FEATURE_COLLECTION","type","features","toLngLat","_ref","_ref2","_slicedToArray","lat","WellsMap","_ref5","_ref5$subjectWell","subjectWell","wells","_ref5$offsetWells","offsetWells","radius","_ref5$subjectWellMark","subjectWellMarkerSize","DEFAULT_WELLS_MAP_SUBJECT_WELL_MARKER_SIZE","_ref5$wellMarkerSize","wellMarkerSize","DEFAULT_WELLS_MAP_WELL_MARKER_SIZE","_ref5$popUpFormatter","popUpFormatter","_ref5$coordsDataPath","coordsDataPath","mapContainerRef","useRef","mapRef","radiusCircleBoundsRef","markersBoundsRef","popupRef","tooltipRootRef","tooltipContainerRef","prevWellsRef","useState","_useState2","_useState","isMapReady","setIsMapReady","restWells","useMemo","filter","well","id","subjectWellCoords","get","restFormations","hasNullFormation","forEach","formation","includes","push","sortedFormations","concat","sortBy","colors","reduce","result","item","idx","length","_useMemo2","_useMemo","formations","colorDict","useEffect","IS_MAPBOX_ENABLED","current","mapboxgl","Map","container","style","center","zoom","attributionControl","scrollZoom","addControl","NavigationControl","showCompass","on","addSource","data","addLayer","source","paint","map","_tooltipRootRef$curre","unmount","remove","getSource","setData","ring","_ref3","radiusMeters","_ref4","lng","points","distanceX","Math","cos","PI","distanceY","i","theta","sin","makeCirclePolygon","geometry","coordinates","bounds","coord","extend","LngLatBounds","_popupRef$current","prevWells","offsetWellIds","wellsById","coords","mapbox","isValidCoordinates","isWellSubject","isWellOffset","r","color","opacity","properties","wellId","hoveredWellId","handleMouseMove","e","getCanvas","cursor","popUpContent","createElement","document","createAdaptiveRoot","render","_jsx","MuiThemeProvider","theme","children","Popup","closeButton","maxWidth","setLngLat","setDOMContent","addTo","handleMouseLeave","setTimeout","fitBounds","padding","off","_jsxs","className","styles","mapMain","ref","mapFooter","mapFooterItem","mapFooterItemSquare","backgroundColor","mapFooterItemLabel","propTypes","PropTypes","shape","number","string","arrayOf","isRequired","func","memo"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/slicedToArray";import{useState as o,useEffect as t}from"react";import s from"prop-types";import{Menu as i,MenuItem as n,Checkbox as r,ListItemText as p}from"@material-ui/core";import m from"@material-ui/icons/Settings";import{withStyles as c}from"@material-ui/core/styles";import{isEqual as a}from"lodash";import{METRICS_LIST as l,MAX_METRICS_COUNT as d}from"../../constants.js";import"@babel/runtime/helpers/defineProperty";import"../../../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import"../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"@babel/runtime/helpers/objectWithoutProperties";import"classnames";import"../../../Modal/CorvaModal.scss.js";import"@icon-park/react/es/all";import{jsxs as j,Fragment as u,jsx as C}from"react/jsx-runtime";import"../../../../icons/IconParkProvider.js";import"../../../../icons/customIcons/icons/AddMessage.js";import"../../../../icons/customIcons/icons/DragOne.js";import"../../../../icons/customIcons/icons/Attention.js";import"../../../../icons/customIcons/icons/Collapse.js";import"../../../../icons/customIcons/icons/Dashboard.js";import"../../../../icons/customIcons/icons/Expand.js";import"../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../icons/customIcons/icons/Search.js";import"../../../../icons/customIcons/icons/SearchOne.js";import"../../../../icons/customIcons/icons/Wellhub.js";import"../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../icons/customIcons/icons/Checkbox.js";import"../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../icons/customIcons/icons/Radio.js";import"../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../icons/customIcons/icons/MoreApp.js";import"../../../../icons/customIcons/icons/Pad.js";import"../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../icons/customIcons/icons/FracFleet.js";import"../../../../icons/customIcons/icons/Global.js";import"../../../../icons/customIcons/icons/Program.js";import"../../../../icons/customIcons/icons/Rig.js";import"../../../../icons/customIcons/icons/Well.js";import"../../../../icons/customIcons/icons/Gap.js";import"../../../../icons/customIcons/icons/Pin.js";import"../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../icons/customIcons/icons/Archive.js";import"../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../icons/customIcons/icons/Unarchive.js";import"../../../../icons/customIcons/icons/Archived.js";import"../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../icons/customIcons/icons/Lasso.js";import"../../../../icons/customIcons/icons/Radius.js";import"../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../icons/customIcons/icons/Company.js";import"../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../icons/customIcons/icons/Connect.js";import"../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../icons/customIcons/icons/Feed.js";import"../../../../icons/customIcons/icons/Prompt.js";import"../../../../icons/customIcons/icons/Companies.js";import"../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../icons/customIcons/icons/Key.js";import"../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../icons/customIcons/icons/MappingManual.js";import"../../../../icons/customIcons/icons/Mapping.js";import"../../../../icons/customIcons/icons/Metrics.js";import"../../../../icons/customIcons/icons/Drops.js";import"../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../icons/customIcons/icons/Template.js";import"../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../icons/customIcons/icons/NPT.js";import"../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../utils/mobileDetect.js";import I from"../../../IconButton/index.js";import"../../../../constants/goals.js";import"../../../../constants/segment.js";import"../../../../constants/alerts.js";import"../../../../constants/apps.js";import"../../../../constants/drillstring.js";import"../../../../constants/completion.js";import"../../../../constants/appPackages.js";import"../../../../constants/notifications.js";import"../../../../constants/feed.js";import"../../../../constants/bha.js";import"../../../../constants/corvaCompanyId.js";import"../../../GradientManager/configuration/constants.js";import"uuid";import"../../../IconMenu/index.js";import"../../../StyledMenuItem/index.js";import"../../../AppIcon/AppIcon.js";import"../../../DevCenter/AppHeader/AppHeader.js";import"../../../DevCenter/AppSideBar/AppSideBar.js";import"../../../DevCenter/AppsDataProvider/AppsDataProvider.js";import"../../../DevCenter/AppContext.js";import"../../../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../../../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router-dom";import"query-string";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../utils/index.js";import"@material-ui/icons";import"../../../EmptyState/EmptyState.js";import"../../../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/RemoveAppButton.js";import"../../../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js";import"../../../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/styles.js";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../config/theme/index.js";import"../../../../hocs/withAssetEditorLockHOC.js";import"../../../ErrorBoundary/ErrorBoundary.js";import"../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import"../../../Button/components/Button/index.js";import"moment-timezone";import"../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../Button/components/LiveButton/styles.js";import"../../../AssetEditorV2/index.js";import"../../../AppVersionsSelect/AppVersionsSelect.js";import"../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import"../../../ConfirmationDialog.js";import"immutable";import"../../../../permissions/PermissionsContext.js";import"../../../../permissions/constants/index.js";import"../../../../permissions/withPermissionsHOC.js";import"../../../../clients/jsonApi/index.js";import"../../../../permissions/ProvidePermissions.js";import"../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants.js";import"../../../Annotations/components/AnnotationsList/index.js";import"../../../Annotations/components/LastAnnotation/index.js";import"../../../Annotations/AnnotationsContext.js";import"../../../../componentsV2/AppContainer/AppContainer.js";import"../../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../../componentsV2/Text/Text.js";import"../../../../componentsV2/Header/Header.scss.js";import"../../../../componentsV2/Tooltip/Tooltip.scss.js";import"../../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../../componentsV2/Chip/Chip.js";import"../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../../PadModeSelect/PadModeSelect.js";import"../../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../../constants/streamSourceType.js";import"../../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../../componentsV2/utils.js";import"../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"../../../../componentsV2/Button/Button.js";import"../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../../componentsV2/Popover/Popover.js";import"@babel/runtime/helpers/toConsumableArray";import"../../../../componentsV2/Accordion/Accordion.scss.js";import"../../../../componentsV2/ButtonIcon/ButtonIcon.js";import"../../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../../../componentsV2/Menu/Menu.js";import"../../../../componentsV2/ModalWindow/ModalWindow.js";import"../../../../componentsV2/Modal/Modal.scss.js";import"../../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../../utils/getSingleAsset.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../../componentsV2/TextInput/TextInput.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../../../clients/subscriptions.v1.js";import"../../../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../../../utils/env.js";import"../../../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../../../clients/api/apiCore.js";import"../../../../clients/constants.js";import"../../../../clients/sso/auth0.js";import"../../../../clients/sso/oauth2.js";import"../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../../componentsV2/AppSettings/AppSettings.js";import"../../../../componentsV2/AppSettings/AppSettings.constants.js";import"../../../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../DevCenter/DevCenterAppContainer/components/DevCenterAppView/components/ChooseAssetButton.js";import"../../../DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.scss.js";import"../../../DevCenter/DevCenterAppContainer/components/AppActions/AppActions.css.js";import"../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.scss.js";import"../../../../componentsV2/Grid/Grid.js";import"../../../../componentsV2/Grid/Cell.js";import"../../../../componentsV2/PopoverPanel/PopoverPanel.js";import"../../../../componentsV2/Radio/Radio.js";import"../../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../../componentsV2/Checkbox/Checkbox.js";import"../../../../componentsV2/TextInputNext/TextInputNext.js";import"../../../../componentsV2/TextArea/TextArea.js";import"../../../../componentsV2/Label/Label.js";import"../../../../componentsV2/TextLink/TextLink.js";import"../../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../../componentsV2/Avatar/Avatar.js";import"../../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../../componentsV2/Paper/Paper.js";import"../../../../componentsV2/Hint/Hint.scss.js";import"../../../../componentsV2/Counter/Counter.js";import"../../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../../componentsV2/TemplatesControl/utils.js";import"../../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../../componentsV2/TemplatesControl/Store/utils.js";import"../../../../componentsV2/TemplatesControl/types.js";import"../../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../../componentsV2/Switch/Switch.js";import"../../../../componentsV2/Tabs/Tabs.js";import"../../../../componentsV2/FileIcon/FileIcon.js";import"../../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../../../componentsV2/Skeleton/Skeleton.scss.js";import"../../../../utils/main.js";import"../../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../../componentsV2/Stepper/Stepper.scss.js";import"../../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../../componentsV2/ButtonText/ButtonText.js";import"../../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../../componentsV2/AppFooter/AppFooter.js";import"../../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../../componentsV2/ChartAxisExtreme/ChartAxisExtreme.scss.js";import"highcharts";import"../../../../componentsV2/ChartAxisExtreme/ChartAxisExtremeDragTracker.js";import"../../../../componentsV2/Autocomplete/Autocomplete.js";import"../../../../componentsV2/Select/Select.js";import"../../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../../componentsV2/DatePicker/DatePicker.js";import"../../../../componentsV2/DragHandle/DragHandle.js";import"../../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../../componentsV2/Slider/constants.js";import"../../../../componentsV2/Slider/components/SliderThumb.js";import"../../../../componentsV2/Slider/Slider.scss.js";import"../../../../componentsV2/SliderAdvanced/SliderAdvanced.js";import"react-color";import"../../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../../../componentsV2/ColorPicker/ColorPicker.scss.js";import"../../../../componentsV2/ChartHelper/ChartHelper.scss.js";import"../../../../componentsV2/Hotkey/Hotkey.js";import"@tanstack/react-query";import"../../../../componentsV2/InterventionEventSelector/useInterventionUnitEvents.js";import"../../../../componentsV2/InterventionEventSelector/InterventionEventSelector.scss.js";import"../../../DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.css.js";import"../../../Icons/AnnotationIcon.js";import"../../../HelpCenter/HelpCenterIcon.js";import"../../../DevCenter/DevCenterAppContainer/components/RestoreAppSizeButton/RestoreAppSizeButton.css.js";import"../../../DevCenter/DevCenterAppContainer/DevCenterAppContainer.scss.js";import"../../../Toaster/Toaster.js";import"../../../DevCenter/NavigationBar/NavigationBar.js";import"../../../DevCenter/SideBar/SideBar.js";import"../../../DevCenter/AppSettingsPopover/AppSettingsPopover.js";import"../../../DevCenter/AppFilterPanelLayout/AppFilterPanelLayout.js";import"../../../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js";import"../../../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js";import"../../../AssetEditor/index.js";import"../../../LoadingIndicator/LoadingIndicator.js";import"../../../Typography.js";import"../../../RealTimeValuesSidebar/RealTimeSidebar.js";import"../../../CollapsableSidebar.js";import"../../../DateTimePicker/index.js";import"../../../DatePicker/index.js";import"../../../SlateFormattedText/SlateFormattedText.js";import"../../../SlateFormattedText/RenderElements.js";import"slate";import"../../../ParameterCharts/ParameterCharts.js";import"../../../ParameterCharts/AddEditTrack.js";import"../../../ChartActionsList/ChartActionsList.js";import"../../../CopyToClipboard/CopyToClipboard.js";import"../../../AssetEditor/AssetEditorAutocomplete.js";import"../../../AssetEditor/SingleAssetEditor.js";import"../../../SettingEditors/ColorEditor/style.css.js";import"../../../SettingEditors/DropdownEditor/index.js";import"../../../SwitchControl/index.js";import"../../../ColorPicker/ColorPicker.js";import"../../../Chart/components/ChartButton.js";import"../../../Chart/components/ChartButtons.js";import"../../../Chart/components/ChartWrapper.js";import"../../../Chart/components/AxisDropdown.js";import"../../../Chart/components/ChartSelect.js";import"../../../Chart/ChartWrapperContext.js";import"../../../Chart/effects/useChartModifier.js";import"../../../Chart/components/buttons/HideAxesButton.js";import"../../../Chart/components/buttons/ChartTypeButton.js";import"../../../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../../../TruncatedText/index.js";import"../../../MiddleTruncatedText/MiddleTruncatedText.js";import"../../../RangeSlider/constants.js";import"../../../RangeSlider/Input.css.js";import"../../../RangeSlider/RangeSlider.css.js";import"../../../AdvancedSlider/AdvancedSlider.js";import"../../../Breadcrumbs/index.js";import"../../../VirtualizedTable/index.js";import"../../../EmptyView/EmptyView.js";import"../../../EmptyView/EmptyAppView/EmptyAppView.js";import"../../../ContextMenuItem/index.js";import"../../../FolderMenuItem/index.js";import"../../../EditableItem/EditableItem/index.js";import"../../../EditableItem/EditableItemWithBadge/index.js";import"../../../Checkbox/index.js";import"../../../FolderMenuItemWithLinks/index.js";import"../../../TextField/index.js";import"../../../Chip/index.js";import"../../../Counter/index.js";import"../../../AnchorsList/AnchorsList.js";import"../../../Select/index.js";import"../../../Select/SelectFilterBy.js";import"../../../CustomSelect/index.js";import"../../../Tabs/Tabs.js";import"../../../Tabs/Tab.js";import"../../../ResizableTable/ResizableTable.js";import"../../../GradientPicker/GradientPicker.js";import"@babel/runtime/helpers/classCallCheck";import"@babel/runtime/helpers/createClass";import"../../../GradientManager/GradientPreview/GradientPreview.js";import"../../../GradientManager/GradientSelect.scss.js";import"../../../GradientManager/GradientManager.styles.js";import"../../../Drillstring/BHASchematic.js";import"../../../Drillstring/BHATable/index.js";import"../../../Drillstring/BHAComponentIcon.js";import"../../../Drillstring/BHAComponentDetail/index.js";import"../../../Drillstring/BHATileIcon.js";import"../../../Drillstring/BHATile/BHATile.js";import"../../../Drillstring/BHAList/BHAList.js";import"../../../Drillstring/BHAComponentsTable/BHAComponentsTable.js";import"../../../Casing/CasingTable/index.js";import"../../../Casing/CasingComponentIcon.js";import"../../../Casing/CasingTileIcon.js";import"../../../Casing/CasingTableV2/CasingTableV2.js";import"../../../Casing/CasingTile/CasingTile.js";import"../../../WellSummary/WellSummaryItemLabel.js";import"../../../WellSummary/WellSummaryItemTitle.js";import"../../../WellSummary/WellSummaryItemValue.js";import"../../../WellSummary/ActivitySummaryChart.js";import"../../../WellSummary/FracWirelineTimeChart.js";import"../../../BICOffsetPickerDialog/index.js";import"../../../OffsetWellButton/OffsetWellButton.js";import"../../OffsetWellPickerDialog.js";import"../../../OffsetWellPickerV3/index.js";import"../../../OffsetWellChips/Chip.js";import"../../../OffsetWellChips/ChipsContainer.js";import"../../../OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/OffsetWellPickerV5WithStore.js";import"../../../OffsetWellMap/OffsetWellMap.js";import"@material-ui/core/Snackbar";import"../../../Notifications/Toast.js";import"../../../Notifications/Notifications.scss.js";import"../../../TextLink/index.js";import"../../../Avatar/index.js";import"../../../Template/TemplatePopover/index.js";import"../../../Template/TemplateSharingDialog/index.js";import"../../../MenuItem/index.js";import"../../../MiddleTruncate/MiddleTruncate.js";import"../../../PinnableFilters/PinnableFilters.js";import"../../../HeaderLayout/HeaderLayout.js";import"../../../PadOffsetsPicker/PadOffsetsPicker.js";import"../../../PadOffsetsPicker/OffsetAssetChip.js";import"../../../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../../../PadOffsetsPicker/StagesSelector.js";import"../../../PadOffsetsPickerV2/PadOffsetsPickerV2.js";import"../../../Table/TableToolbar/TableToolbar.js";import"../../../Table/TableContainer/TableContainer.js";import"../../../Table/TableCell/TableCell.js";import"../../../Table/TablePagination/TablePagination.js";import"../../../Table/TablePaginationActions/TablePaginationActions.js";import"../../../Tooltip/ScrollableTooltip.js";import"../../../PriceInput/PriceInput.js";import"../../../LabelsCounter/LabelsCounter.js";import"../../../Stepper/Stepper.js";import"../../../Stepper/Step/Step.js";import"../../../Stepper/StepsWrapper.js";import"../../../Comment/CommentIcon/index.js";import"../../../FilesLoader/FilesLoader.js";import"../../../../componentsV2/FileIcon/icons/ArchiveFileIcon.js";import"../../../../componentsV2/FileIcon/icons/CSVFileIcon.js";import"../../../../componentsV2/FileIcon/icons/DocFileIcon.js";import"../../../../componentsV2/FileIcon/icons/EDMFileIcon.js";import"../../../../componentsV2/FileIcon/icons/ExcelFileIcon.js";import"../../../../componentsV2/FileIcon/icons/ImageFileIcon.js";import"../../../../componentsV2/FileIcon/icons/JsonFileIcon.js";import"../../../../componentsV2/FileIcon/icons/LasFileIcon.js";import"../../../../componentsV2/FileIcon/icons/OtherFileIcon.js";import"../../../../componentsV2/FileIcon/icons/PdfFileIcon.js";import"../../../../componentsV2/FileIcon/icons/PowerPointFileIcon.js";import"../../../../componentsV2/FileIcon/icons/TxtFileIcon.js";import"../../../../componentsV2/FileIcon/icons/UnknownFileIcon.js";import"../../../../componentsV2/FileIcon/icons/VideoFileIcon.js";import"../../../../componentsV2/FileIcon/icons/XmlFileIcon.js";import"../../../SearchInput/index.js";import"../../../FeedItem/FeedItem.js";import"../../../FeedItem/FeedItemEditProvider/FeedItemEditProvider.js";import"../../../PostInput/PostInput.js";import"../../../KeyboardDateTimePicker.js";import"../../../AddComment/Popover.js";import"../../../AddComment/Popup.js";import"../../../StageDesignVActual/ComparisonBar/ComparisonBar.js";import"../../../StageDesignVActual/ElementsComparison/ElementsComparison.js";import"../../../StageDesignVActual/ComparisonHeader.js";import"../../../StageDesignVActual/ComparisonRow.js";import"../../../EmbeddedApp/DevCenterEmbeddedApp.js";import"../../../EmbeddedApp/EmbeddedApp.js";import"../../../Autocomplete/Autocomplete.js";import"../../../DocumentViewer/DocumentViewer.js";import"../../../ColorPickerPalette/ColorPickerPalette.js";import"../../../Search/Search.js";import"../../../Search/components/Listbox.js";import"../../../Search/components/Paper.js";import"../../../Search/components/RecentSearches.js";import"../../../Search/components/Groups.js";import"../../../Search/components/SelectAllListItem.js";import"../../../StatusBadge/index.js";import"../../../Attachment/index.js";import"../../../EmojiIconButton.js";import"../../../FileUploadIconButton.js";import"../../../FilePreview/index.js";import"../../../FailedFileUploading.js";import"../../../UserMention/index.js";import"../../../CommentsInfo/index.js";import"../../../CommentInput/index.js";import"../../../Comment/index.js";import"../../../CommentLoader.js";import"../../../AssetNameLabel/AssetStatusBadge.js";import"../../../AssetEditorV2/components/PrimaryAssetSelect.js";import"../../../AssetEditorV2/components/SecondaryAssetSelect.js";import"../../../AssetEditorV2/components/SelectItem.js";import"../../../AssetEditorV2/components/MultipleAssetsToggle.js";import"../../../AssetEditorV2/components/PrimaryAssetSelectV2.js";import"../../../EChartsWrapper/EChartsWrapper.js";import"../../../AssetsMultipleSelector/AssetsMultipleSelector.js";import"@material-ui/icons/Close";import"@material-ui/icons/GetApp";import"../../../GoogleDocsViewer/index.js";import"../../../NewDocumentViewer/effects/useFileContent.js";import"../../../NewDocumentViewer/styles.js";import"../../../FilesLoaderV2/styles.js";import"../../../FilesDropzone/styles.js";import"../../../FilesProcessor/styles.js";import"../../../Hint/styles.js";import"@babel/runtime/helpers/taggedTemplateLiteral";import"fparser";import"../../../Formula/useFormulaStyles.js";import"../../../Formula/RootXIcon.js";import"../../../Formula/FormulaTextEditor.js";import"../../../Formula/CloseSuggestion.js";import"../../../Formula/SuggestionsMenu.js";import"../../../CommentCard/CommentCard.js";import"@material-ui/icons/AlternateEmail";import"../../../AttachFileButton/AttachFileButton.scss.js";import"../../../CommentInputNext/CommentInputNext.js";import"../../../UserMention/utils/index.js";import"react-s3-uploader/s3upload";import"../../../CommentComposer/CommentMetaLine.scss.js";import"../../../CommentComposer/ChatChannelSelector.scss.js";import"../../../CommentComposer/ShareToChatRow.scss.js";import"../../../CommentComposer/CommentComposer.scss.js";import"../../../AttachmentPreview/AttachmentPreview.js";import"../../../AttachmentPreview/AttachmentImage.js";import"../../../AttachmentPreview/AttachmentPreview.scss.js";import"../../../CommentPin/CommentPin.js";import"../../../FeedCard/FeedCard.js";import"../../../FeedItemCard/FeedItemCard.js";import"../../../NewCommentCursor/NewCommentCursor.js";import"../../../LinkedText/LinkedText.js";import"../../../FeedItem/feedItemTypes/AlertFeedItem.js";import"../../../FeedItem/feedItemTypes/PostFeedItem.js";import"../../../FeedItem/feedItemTypes/GeosteeringFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillingOperationalNoteFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillingOperationSummaryFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillingDailyCostFeedItem.js";import"../../../FeedItem/feedItemTypes/DocumentFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillerMemoFeedItem.js";import"../../../FeedItem/feedItemTypes/NptFeedItem.js";import"../../../FeedItem/feedItemTypes/SurveyStationFeedItem/index.js";import"../../../FeedItem/feedItemTypes/LessonsLearnedFeedItem/index.js";import"../../../FeedItem/feedItemTypes/TracesMemoFeedItem.js";import"../../../FeedItem/feedItemTypes/DepthCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionOperationalNoteFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionOperationSummaryFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionDailyCostFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionDocumentFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionNptFeedItem.js";import"../../../FeedItem/feedItemTypes/StageOverviewFeedItem/index.js";import"../../../FeedItem/feedItemTypes/AppAnnotationFeedItem/index.js";import"../../../FeedItem/feedItemTypes/WellPlanFeedItem/index.js";import"../../../FeedItem/feedItemTypes/FluidReportFeedItem.js";import"../../../FeedItem/feedItemTypes/BhaFeedItem/BhaFeedItem.js";import"../../../FeedItem/feedItemTypes/DvDCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/PCCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/HookloadCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/NptLessonsCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/GenericDataCommentFeedItem.js";function A(s){var c=s.metricsKeys,A=s.onChange,V=s.classes,S=s["data-testid"],h=void 0===S?"MetricsSelect":S,g=o([]),T=e(g,2),F=T[0],v=T[1],D=o(null),P=e(D,2),x=P[0],f=P[1];t((function(){v(c)}),[c]);return j(u,{children:[C(I,{"data-testid":"".concat(h,"_addMetrics"),tooltipProps:{title:"Add Metric"},size:"small",onClick:function(e){f(e.currentTarget)},children:C(m,{size:"small"})}),C(i,{id:"simple-menu",anchorEl:x,getContentAnchorEl:null,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"right"},PaperProps:{style:{maxHeight:"300px",backgroundColor:"#414141"}},keepMounted:!0,open:Boolean(x),onClose:function(){f(null),a(F,c)||A(F)},children:l.map((function(e){return j(n,{disabled:F.length===d&&!F.includes(e.key),onClick:function(){return o=e.key,void(F.includes(o)?v((function(e){return e.filter((function(e){return e!==o}))})):v((function(e){return e.concat(o)})));var o},children:[C(r,{"data-testid":"".concat(h,"_checkbox_").concat(e.key),checked:F.includes(e.key),className:V.checkBox}),C(p,{primary:e.label,classes:{primary:V.listItemPrimaryText}})]},e.key)}))})]})}A.propTypes={metricsKeys:s.arrayOf(s.string).isRequired,onChange:s.func.isRequired,classes:s.shape({}).isRequired,"data-testid":s.string};var V=c({listItemPrimaryText:{color:"#fff",fontSize:"14px"},checkBox:{color:"grey",padding:"5px"}})(A);export{V as default};
|
|
1
|
+
import e from"@babel/runtime/helpers/slicedToArray";import{useState as o,useEffect as t}from"react";import s from"prop-types";import{Menu as i,MenuItem as n,Checkbox as r,ListItemText as p}from"@material-ui/core";import m from"@material-ui/icons/Settings";import{withStyles as c}from"@material-ui/core/styles";import{isEqual as a}from"lodash";import{METRICS_LIST as l,MAX_METRICS_COUNT as d}from"../../constants.js";import"@babel/runtime/helpers/defineProperty";import"../../../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import"../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"@babel/runtime/helpers/objectWithoutProperties";import"classnames";import"../../../Modal/CorvaModal.scss.js";import"@icon-park/react/es/all";import{jsxs as j,Fragment as u,jsx as C}from"react/jsx-runtime";import"../../../../icons/IconParkProvider.js";import"../../../../icons/customIcons/icons/AddMessage.js";import"../../../../icons/customIcons/icons/DragOne.js";import"../../../../icons/customIcons/icons/Attention.js";import"../../../../icons/customIcons/icons/Collapse.js";import"../../../../icons/customIcons/icons/Dashboard.js";import"../../../../icons/customIcons/icons/Expand.js";import"../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../icons/customIcons/icons/Search.js";import"../../../../icons/customIcons/icons/SearchOne.js";import"../../../../icons/customIcons/icons/Wellhub.js";import"../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../icons/customIcons/icons/Checkbox.js";import"../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../icons/customIcons/icons/Radio.js";import"../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../icons/customIcons/icons/MoreApp.js";import"../../../../icons/customIcons/icons/Pad.js";import"../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../icons/customIcons/icons/FracFleet.js";import"../../../../icons/customIcons/icons/Global.js";import"../../../../icons/customIcons/icons/Program.js";import"../../../../icons/customIcons/icons/Rig.js";import"../../../../icons/customIcons/icons/Well.js";import"../../../../icons/customIcons/icons/Gap.js";import"../../../../icons/customIcons/icons/Pin.js";import"../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../icons/customIcons/icons/Archive.js";import"../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../icons/customIcons/icons/Unarchive.js";import"../../../../icons/customIcons/icons/Archived.js";import"../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../icons/customIcons/icons/Lasso.js";import"../../../../icons/customIcons/icons/Radius.js";import"../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../icons/customIcons/icons/Company.js";import"../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../icons/customIcons/icons/Connect.js";import"../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../icons/customIcons/icons/Feed.js";import"../../../../icons/customIcons/icons/Prompt.js";import"../../../../icons/customIcons/icons/Companies.js";import"../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../icons/customIcons/icons/Key.js";import"../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../icons/customIcons/icons/MappingManual.js";import"../../../../icons/customIcons/icons/Mapping.js";import"../../../../icons/customIcons/icons/Metrics.js";import"../../../../icons/customIcons/icons/Drops.js";import"../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../icons/customIcons/icons/Template.js";import"../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../icons/customIcons/icons/NPT.js";import"../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../utils/mobileDetect.js";import I from"../../../IconButton/index.js";import"../../../../constants/goals.js";import"../../../../constants/segment.js";import"../../../../constants/alerts.js";import"../../../../constants/apps.js";import"../../../../constants/drillstring.js";import"../../../../constants/completion.js";import"../../../../constants/appPackages.js";import"../../../../constants/notifications.js";import"../../../../constants/feed.js";import"../../../../constants/bha.js";import"../../../../constants/corvaCompanyId.js";import"../../../GradientManager/configuration/constants.js";import"uuid";import"../../../IconMenu/index.js";import"../../../StyledMenuItem/index.js";import"../../../AppIcon/AppIcon.js";import"../../../DevCenter/AppHeader/AppHeader.js";import"../../../DevCenter/AppSideBar/AppSideBar.js";import"../../../DevCenter/AppsDataProvider/AppsDataProvider.js";import"../../../DevCenter/AppContext.js";import"../../../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../../../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router-dom";import"query-string";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../utils/index.js";import"@material-ui/icons";import"../../../EmptyState/EmptyState.js";import"../../../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/RemoveAppButton.js";import"../../../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js";import"../../../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/styles.js";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../config/theme/index.js";import"../../../../hocs/withAssetEditorLockHOC.js";import"../../../ErrorBoundary/ErrorBoundary.js";import"../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import"../../../Button/components/Button/index.js";import"moment-timezone";import"../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../Button/components/LiveButton/styles.js";import"../../../AssetEditorV2/index.js";import"../../../AppVersionsSelect/AppVersionsSelect.js";import"../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import"../../../ConfirmationDialog.js";import"immutable";import"../../../../permissions/PermissionsContext.js";import"../../../../permissions/constants/index.js";import"../../../../permissions/withPermissionsHOC.js";import"../../../../clients/jsonApi/index.js";import"../../../../permissions/ProvidePermissions.js";import"../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants.js";import"../../../Annotations/components/AnnotationsList/index.js";import"../../../Annotations/components/LastAnnotation/index.js";import"../../../Annotations/AnnotationsContext.js";import"../../../../componentsV2/AppContainer/AppContainer.js";import"../../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../../componentsV2/Text/Text.js";import"../../../../componentsV2/Header/Header.scss.js";import"../../../../componentsV2/Tooltip/Tooltip.scss.js";import"../../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../../componentsV2/Chip/Chip.js";import"../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../../PadModeSelect/PadModeSelect.js";import"../../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../../constants/streamSourceType.js";import"../../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../../componentsV2/utils.js";import"../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"../../../../componentsV2/Button/Button.js";import"../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../../componentsV2/Popover/Popover.js";import"@babel/runtime/helpers/toConsumableArray";import"../../../../componentsV2/Accordion/Accordion.scss.js";import"../../../../componentsV2/ButtonIcon/ButtonIcon.js";import"../../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../../../componentsV2/Menu/Menu.js";import"../../../../componentsV2/ModalWindow/ModalWindow.js";import"../../../../componentsV2/Modal/Modal.scss.js";import"../../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../../utils/getSingleAsset.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../../componentsV2/TextInput/TextInput.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../../../clients/subscriptions.v1.js";import"../../../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../../../utils/env.js";import"../../../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../../../clients/api/apiCore.js";import"../../../../clients/constants.js";import"../../../../clients/sso/auth0.js";import"../../../../clients/sso/oauth2.js";import"../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../../componentsV2/AppSettings/AppSettings.js";import"../../../../componentsV2/AppSettings/AppSettings.constants.js";import"../../../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../DevCenter/DevCenterAppContainer/components/DevCenterAppView/components/ChooseAssetButton.js";import"../../../DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.scss.js";import"../../../DevCenter/DevCenterAppContainer/components/AppActions/AppActions.css.js";import"../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.scss.js";import"../../../../componentsV2/Grid/Grid.js";import"../../../../componentsV2/Grid/Cell.js";import"../../../../componentsV2/PopoverPanel/PopoverPanel.js";import"../../../../componentsV2/Radio/Radio.js";import"../../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../../componentsV2/Checkbox/Checkbox.js";import"../../../../componentsV2/TextInputNext/TextInputNext.js";import"../../../../componentsV2/TextArea/TextArea.js";import"../../../../componentsV2/Label/Label.js";import"../../../../componentsV2/TextLink/TextLink.js";import"../../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../../componentsV2/Avatar/Avatar.js";import"../../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../../componentsV2/Paper/Paper.js";import"../../../../componentsV2/Hint/Hint.scss.js";import"../../../../componentsV2/Counter/Counter.js";import"../../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../../componentsV2/TemplatesControl/utils.js";import"../../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../../componentsV2/TemplatesControl/Store/utils.js";import"../../../../componentsV2/TemplatesControl/types.js";import"../../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../../componentsV2/Switch/Switch.js";import"../../../../componentsV2/Tabs/Tabs.js";import"../../../../componentsV2/FileIcon/FileIcon.js";import"../../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../../../componentsV2/Skeleton/Skeleton.scss.js";import"../../../../utils/main.js";import"../../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../../componentsV2/Stepper/Stepper.scss.js";import"../../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../../componentsV2/ButtonText/ButtonText.js";import"../../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../../componentsV2/AppFooter/AppFooter.js";import"../../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../../componentsV2/ChartAxisExtreme/ChartAxisExtreme.scss.js";import"highcharts";import"../../../../componentsV2/ChartAxisExtreme/ChartAxisExtremeDragTracker.js";import"../../../../componentsV2/Autocomplete/Autocomplete.js";import"../../../../componentsV2/Select/Select.js";import"../../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../../componentsV2/DatePicker/DatePicker.js";import"../../../../componentsV2/DragHandle/DragHandle.js";import"../../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../../componentsV2/Slider/constants.js";import"../../../../componentsV2/Slider/components/SliderThumb.js";import"../../../../componentsV2/Slider/Slider.scss.js";import"../../../../componentsV2/SliderAdvanced/SliderAdvanced.js";import"react-color";import"../../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../../../componentsV2/ColorPicker/ColorPicker.scss.js";import"../../../../componentsV2/ChartHelper/ChartHelper.scss.js";import"../../../../componentsV2/Hotkey/Hotkey.js";import"@tanstack/react-query";import"../../../../componentsV2/InterventionEventSelector/useInterventionUnitEvents.js";import"../../../../componentsV2/InterventionEventSelector/InterventionEventSelector.scss.js";import"../../../DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.css.js";import"../../../Icons/AnnotationIcon.js";import"../../../HelpCenter/HelpCenterIcon.js";import"../../../DevCenter/DevCenterAppContainer/components/RestoreAppSizeButton/RestoreAppSizeButton.css.js";import"../../../DevCenter/DevCenterAppContainer/DevCenterAppContainer.scss.js";import"../../../Toaster/Toaster.js";import"../../../DevCenter/NavigationBar/NavigationBar.js";import"../../../DevCenter/SideBar/SideBar.js";import"../../../DevCenter/AppSettingsPopover/AppSettingsPopover.js";import"../../../DevCenter/AppFilterPanelLayout/AppFilterPanelLayout.js";import"../../../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js";import"../../../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js";import"../../../AssetEditor/index.js";import"../../../LoadingIndicator/LoadingIndicator.js";import"../../../Typography.js";import"../../../RealTimeValuesSidebar/RealTimeSidebar.js";import"../../../CollapsableSidebar.js";import"../../../DateTimePicker/index.js";import"../../../DatePicker/index.js";import"../../../SlateFormattedText/SlateFormattedText.js";import"../../../SlateFormattedText/RenderElements.js";import"slate";import"../../../ParameterCharts/ParameterCharts.js";import"../../../ParameterCharts/AddEditTrack.js";import"../../../ChartActionsList/ChartActionsList.js";import"../../../CopyToClipboard/CopyToClipboard.js";import"../../../AssetEditor/AssetEditorAutocomplete.js";import"../../../AssetEditor/SingleAssetEditor.js";import"../../../SettingEditors/ColorEditor/style.css.js";import"../../../SettingEditors/DropdownEditor/index.js";import"../../../SwitchControl/index.js";import"../../../ColorPicker/ColorPicker.js";import"../../../Chart/components/ChartButton.js";import"../../../Chart/components/ChartButtons.js";import"../../../Chart/components/ChartWrapper.js";import"../../../Chart/components/AxisDropdown.js";import"../../../Chart/components/ChartSelect.js";import"../../../Chart/ChartWrapperContext.js";import"../../../Chart/effects/useChartModifier.js";import"../../../Chart/components/buttons/HideAxesButton.js";import"../../../Chart/components/buttons/ChartTypeButton.js";import"../../../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../../../TruncatedText/index.js";import"../../../MiddleTruncatedText/MiddleTruncatedText.js";import"../../../RangeSlider/constants.js";import"../../../RangeSlider/Input.css.js";import"../../../RangeSlider/RangeSlider.css.js";import"../../../AdvancedSlider/AdvancedSlider.js";import"../../../Breadcrumbs/index.js";import"../../../VirtualizedTable/index.js";import"../../../EmptyView/EmptyView.js";import"../../../EmptyView/EmptyAppView/EmptyAppView.js";import"../../../ContextMenuItem/index.js";import"../../../FolderMenuItem/index.js";import"../../../EditableItem/EditableItem/index.js";import"../../../EditableItem/EditableItemWithBadge/index.js";import"../../../Checkbox/index.js";import"../../../FolderMenuItemWithLinks/index.js";import"../../../TextField/index.js";import"../../../Chip/index.js";import"../../../Counter/index.js";import"../../../AnchorsList/AnchorsList.js";import"../../../Select/index.js";import"../../../Select/SelectFilterBy.js";import"../../../CustomSelect/index.js";import"../../../Tabs/Tabs.js";import"../../../Tabs/Tab.js";import"../../../ResizableTable/ResizableTable.js";import"../../../GradientPicker/GradientPicker.js";import"@babel/runtime/helpers/classCallCheck";import"@babel/runtime/helpers/createClass";import"../../../GradientManager/GradientPreview/GradientPreview.js";import"../../../GradientManager/GradientSelect.scss.js";import"../../../GradientManager/GradientManager.styles.js";import"../../../Drillstring/BHASchematic.js";import"../../../Drillstring/BHATable/index.js";import"../../../Drillstring/BHAComponentIcon.js";import"../../../Drillstring/BHAComponentDetail/index.js";import"../../../Drillstring/BHATileIcon.js";import"../../../Drillstring/BHATile/BHATile.js";import"../../../Drillstring/BHAList/BHAList.js";import"../../../Drillstring/BHAComponentsTable/BHAComponentsTable.js";import"../../../Casing/CasingTable/index.js";import"../../../Casing/CasingComponentIcon.js";import"../../../Casing/CasingTileIcon.js";import"../../../Casing/CasingTableV2/CasingTableV2.js";import"../../../Casing/CasingTile/CasingTile.js";import"../../../WellSummary/WellSummaryItemLabel.js";import"../../../WellSummary/WellSummaryItemTitle.js";import"../../../WellSummary/WellSummaryItemValue.js";import"../../../WellSummary/ActivitySummaryChart.js";import"../../../WellSummary/FracWirelineTimeChart.js";import"../../../BICOffsetPickerDialog/index.js";import"../../../OffsetWellButton/OffsetWellButton.js";import"../../OffsetWellPickerDialog.js";import"../../../OffsetWellPickerV3/index.js";import"../../../OffsetWellChips/Chip.js";import"../../../OffsetWellChips/ChipsContainer.js";import"../../../OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/OffsetWellPickerV5WithStore.js";import"mapbox-gl/dist/mapbox-gl.css";import"@material-ui/icons/Info";import"@material-ui/icons/Block";import"../../../OffsetWellMap/WellTooltip.module.css.js";import"../../../OffsetWellMap/OffsetWellMap.module.css.js";import"../../../../config/mapboxGl/index.js";import"../../../../config/mapbox/index.js";import"react-dom";import"@material-ui/core/Snackbar";import"../../../Notifications/Toast.js";import"../../../Notifications/Notifications.scss.js";import"../../../TextLink/index.js";import"../../../Avatar/index.js";import"../../../Template/TemplatePopover/index.js";import"../../../Template/TemplateSharingDialog/index.js";import"../../../MenuItem/index.js";import"../../../MiddleTruncate/MiddleTruncate.js";import"../../../PinnableFilters/PinnableFilters.js";import"../../../HeaderLayout/HeaderLayout.js";import"../../../PadOffsetsPicker/PadOffsetsPicker.js";import"../../../PadOffsetsPicker/OffsetAssetChip.js";import"../../../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../../../PadOffsetsPicker/StagesSelector.js";import"../../../PadOffsetsPickerV2/PadOffsetsPickerV2.js";import"../../../Table/TableToolbar/TableToolbar.js";import"../../../Table/TableContainer/TableContainer.js";import"../../../Table/TableCell/TableCell.js";import"../../../Table/TablePagination/TablePagination.js";import"../../../Table/TablePaginationActions/TablePaginationActions.js";import"../../../Tooltip/ScrollableTooltip.js";import"../../../PriceInput/PriceInput.js";import"../../../LabelsCounter/LabelsCounter.js";import"../../../Stepper/Stepper.js";import"../../../Stepper/Step/Step.js";import"../../../Stepper/StepsWrapper.js";import"../../../Comment/CommentIcon/index.js";import"../../../FilesLoader/FilesLoader.js";import"../../../../componentsV2/FileIcon/icons/ArchiveFileIcon.js";import"../../../../componentsV2/FileIcon/icons/CSVFileIcon.js";import"../../../../componentsV2/FileIcon/icons/DocFileIcon.js";import"../../../../componentsV2/FileIcon/icons/EDMFileIcon.js";import"../../../../componentsV2/FileIcon/icons/ExcelFileIcon.js";import"../../../../componentsV2/FileIcon/icons/ImageFileIcon.js";import"../../../../componentsV2/FileIcon/icons/JsonFileIcon.js";import"../../../../componentsV2/FileIcon/icons/LasFileIcon.js";import"../../../../componentsV2/FileIcon/icons/OtherFileIcon.js";import"../../../../componentsV2/FileIcon/icons/PdfFileIcon.js";import"../../../../componentsV2/FileIcon/icons/PowerPointFileIcon.js";import"../../../../componentsV2/FileIcon/icons/TxtFileIcon.js";import"../../../../componentsV2/FileIcon/icons/UnknownFileIcon.js";import"../../../../componentsV2/FileIcon/icons/VideoFileIcon.js";import"../../../../componentsV2/FileIcon/icons/XmlFileIcon.js";import"../../../SearchInput/index.js";import"../../../FeedItem/FeedItem.js";import"../../../FeedItem/FeedItemEditProvider/FeedItemEditProvider.js";import"../../../PostInput/PostInput.js";import"../../../KeyboardDateTimePicker.js";import"../../../AddComment/Popover.js";import"../../../AddComment/Popup.js";import"../../../StageDesignVActual/ComparisonBar/ComparisonBar.js";import"../../../StageDesignVActual/ElementsComparison/ElementsComparison.js";import"../../../StageDesignVActual/ComparisonHeader.js";import"../../../StageDesignVActual/ComparisonRow.js";import"../../../EmbeddedApp/DevCenterEmbeddedApp.js";import"../../../EmbeddedApp/EmbeddedApp.js";import"../../../Autocomplete/Autocomplete.js";import"../../../DocumentViewer/DocumentViewer.js";import"../../../ColorPickerPalette/ColorPickerPalette.js";import"../../../Search/Search.js";import"../../../Search/components/Listbox.js";import"../../../Search/components/Paper.js";import"../../../Search/components/RecentSearches.js";import"../../../Search/components/Groups.js";import"../../../Search/components/SelectAllListItem.js";import"../../../StatusBadge/index.js";import"../../../Attachment/index.js";import"../../../EmojiIconButton.js";import"../../../FileUploadIconButton.js";import"../../../FilePreview/index.js";import"../../../FailedFileUploading.js";import"../../../UserMention/index.js";import"../../../CommentsInfo/index.js";import"../../../CommentInput/index.js";import"../../../Comment/index.js";import"../../../CommentLoader.js";import"../../../AssetNameLabel/AssetStatusBadge.js";import"../../../AssetEditorV2/components/PrimaryAssetSelect.js";import"../../../AssetEditorV2/components/SecondaryAssetSelect.js";import"../../../AssetEditorV2/components/SelectItem.js";import"../../../AssetEditorV2/components/MultipleAssetsToggle.js";import"../../../AssetEditorV2/components/PrimaryAssetSelectV2.js";import"../../../EChartsWrapper/EChartsWrapper.js";import"../../../AssetsMultipleSelector/AssetsMultipleSelector.js";import"@material-ui/icons/Close";import"@material-ui/icons/GetApp";import"../../../GoogleDocsViewer/index.js";import"../../../NewDocumentViewer/effects/useFileContent.js";import"../../../NewDocumentViewer/styles.js";import"../../../FilesLoaderV2/styles.js";import"../../../FilesDropzone/styles.js";import"../../../FilesProcessor/styles.js";import"../../../Hint/styles.js";import"@babel/runtime/helpers/taggedTemplateLiteral";import"fparser";import"../../../Formula/useFormulaStyles.js";import"../../../Formula/RootXIcon.js";import"../../../Formula/FormulaTextEditor.js";import"../../../Formula/CloseSuggestion.js";import"../../../Formula/SuggestionsMenu.js";import"../../../CommentCard/CommentCard.js";import"@material-ui/icons/AlternateEmail";import"../../../AttachFileButton/AttachFileButton.scss.js";import"../../../CommentInputNext/CommentInputNext.js";import"../../../UserMention/utils/index.js";import"react-s3-uploader/s3upload";import"../../../CommentComposer/CommentMetaLine.scss.js";import"../../../CommentComposer/ChatChannelSelector.scss.js";import"../../../CommentComposer/ShareToChatRow.scss.js";import"../../../CommentComposer/CommentComposer.scss.js";import"../../../AttachmentPreview/AttachmentPreview.js";import"../../../AttachmentPreview/AttachmentImage.js";import"../../../AttachmentPreview/AttachmentPreview.scss.js";import"../../../CommentPin/CommentPin.js";import"../../../FeedCard/FeedCard.js";import"../../../FeedItemCard/FeedItemCard.js";import"../../../NewCommentCursor/NewCommentCursor.js";import"../../../LinkedText/LinkedText.js";import"../../../FeedItem/feedItemTypes/AlertFeedItem.js";import"../../../FeedItem/feedItemTypes/PostFeedItem.js";import"../../../FeedItem/feedItemTypes/GeosteeringFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillingOperationalNoteFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillingOperationSummaryFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillingDailyCostFeedItem.js";import"../../../FeedItem/feedItemTypes/DocumentFeedItem.js";import"../../../FeedItem/feedItemTypes/DrillerMemoFeedItem.js";import"../../../FeedItem/feedItemTypes/NptFeedItem.js";import"../../../FeedItem/feedItemTypes/SurveyStationFeedItem/index.js";import"../../../FeedItem/feedItemTypes/LessonsLearnedFeedItem/index.js";import"../../../FeedItem/feedItemTypes/TracesMemoFeedItem.js";import"../../../FeedItem/feedItemTypes/DepthCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionOperationalNoteFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionOperationSummaryFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionDailyCostFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionDocumentFeedItem.js";import"../../../FeedItem/feedItemTypes/CompletionNptFeedItem.js";import"../../../FeedItem/feedItemTypes/StageOverviewFeedItem/index.js";import"../../../FeedItem/feedItemTypes/AppAnnotationFeedItem/index.js";import"../../../FeedItem/feedItemTypes/WellPlanFeedItem/index.js";import"../../../FeedItem/feedItemTypes/FluidReportFeedItem.js";import"../../../FeedItem/feedItemTypes/BhaFeedItem/BhaFeedItem.js";import"../../../FeedItem/feedItemTypes/DvDCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/PCCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/HookloadCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/NptLessonsCommentFeedItem.js";import"../../../FeedItem/feedItemTypes/GenericDataCommentFeedItem.js";function A(s){var c=s.metricsKeys,A=s.onChange,V=s.classes,S=s["data-testid"],g=void 0===S?"MetricsSelect":S,h=o([]),T=e(h,2),F=T[0],v=T[1],D=o(null),P=e(D,2),x=P[0],f=P[1];t((function(){v(c)}),[c]);return j(u,{children:[C(I,{"data-testid":"".concat(g,"_addMetrics"),tooltipProps:{title:"Add Metric"},size:"small",onClick:function(e){f(e.currentTarget)},children:C(m,{size:"small"})}),C(i,{id:"simple-menu",anchorEl:x,getContentAnchorEl:null,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"right"},PaperProps:{style:{maxHeight:"300px",backgroundColor:"#414141"}},keepMounted:!0,open:Boolean(x),onClose:function(){f(null),a(F,c)||A(F)},children:l.map((function(e){return j(n,{disabled:F.length===d&&!F.includes(e.key),onClick:function(){return o=e.key,void(F.includes(o)?v((function(e){return e.filter((function(e){return e!==o}))})):v((function(e){return e.concat(o)})));var o},children:[C(r,{"data-testid":"".concat(g,"_checkbox_").concat(e.key),checked:F.includes(e.key),className:V.checkBox}),C(p,{primary:e.label,classes:{primary:V.listItemPrimaryText}})]},e.key)}))})]})}A.propTypes={metricsKeys:s.arrayOf(s.string).isRequired,onChange:s.func.isRequired,classes:s.shape({}).isRequired,"data-testid":s.string};var V=c({listItemPrimaryText:{color:"#fff",fontSize:"14px"},checkBox:{color:"grey",padding:"5px"}})(A);export{V as default};
|
|
2
2
|
//# sourceMappingURL=MetricsAddMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsAddMenu.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu, MenuItem, Checkbox, ListItemText } from '@material-ui/core';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { withStyles } from '@material-ui/core/styles';\nimport { isEqual } from 'lodash';\n\nimport { METRICS_LIST, MAX_METRICS_COUNT } from '../../constants';\n\nimport { IconButton as IconButtonComponent } from '~/components';\n\nconst muiStyles = {\n listItemPrimaryText: {\n color: '#fff',\n fontSize: '14px',\n },\n checkBox: {\n color: 'grey',\n padding: '5px',\n },\n};\n\nfunction MetricsAddMenu({\n metricsKeys,\n onChange,\n classes,\n 'data-testid': dataTestId = 'MetricsSelect',\n}) {\n const [selectedKeys, setSelectedKeys] = useState([]);\n const [anchorEl, setAnchorEl] = useState(null);\n\n useEffect(() => {\n // NOTE: If there are >=2 columns, metrics keys can be duplicated\n setSelectedKeys(metricsKeys);\n }, [metricsKeys]);\n\n const handleClick = event => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n if (!isEqual(selectedKeys, metricsKeys)) {\n onChange(selectedKeys);\n }\n };\n\n const handleChangeMetrics = newKey => {\n if (selectedKeys.includes(newKey)) {\n setSelectedKeys(prevKeys => prevKeys.filter(key => key !== newKey));\n } else {\n setSelectedKeys(prevKeys => prevKeys.concat(newKey));\n }\n };\n\n return (\n <>\n <IconButtonComponent\n data-testid={`${dataTestId}_addMetrics`}\n tooltipProps={{ title: 'Add Metric' }}\n size=\"small\"\n onClick={handleClick}\n >\n <SettingsIcon size=\"small\" />\n </IconButtonComponent>\n\n <Menu\n id=\"simple-menu\"\n anchorEl={anchorEl}\n getContentAnchorEl={null}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n PaperProps={{\n style: {\n maxHeight: '300px',\n backgroundColor: '#414141',\n },\n }}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n {METRICS_LIST.map(item => (\n <MenuItem\n disabled={selectedKeys.length === MAX_METRICS_COUNT && !selectedKeys.includes(item.key)}\n key={item.key}\n onClick={() => handleChangeMetrics(item.key)}\n >\n <Checkbox\n data-testid={`${dataTestId}_checkbox_${item.key}`}\n checked={selectedKeys.includes(item.key)}\n className={classes.checkBox}\n />\n <ListItemText primary={item.label} classes={{ primary: classes.listItemPrimaryText }} />\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n}\n\nMetricsAddMenu.propTypes = {\n metricsKeys: PropTypes.arrayOf(PropTypes.string).isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.shape({}).isRequired,\n 'data-testid': PropTypes.string,\n};\n\nexport default withStyles(muiStyles)(MetricsAddMenu);\n"],"names":["MetricsAddMenu","_ref","metricsKeys","onChange","classes","_ref$dataTestid","dataTestId","useState","_useState2","_slicedToArray","_useState","selectedKeys","setSelectedKeys","_useState4","_useState3","anchorEl","setAnchorEl","useEffect","_jsxs","_Fragment","children","_jsx","IconButtonComponent","concat","tooltipProps","title","size","onClick","event","currentTarget","SettingsIcon","Menu","id","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","style","maxHeight","backgroundColor","keepMounted","open","Boolean","onClose","isEqual","METRICS_LIST","map","item","MenuItem","disabled","length","MAX_METRICS_COUNT","includes","key","newKey","prevKeys","filter","Checkbox","checked","className","checkBox","ListItemText","primary","label","listItemPrimaryText","propTypes","PropTypes","arrayOf","string","isRequired","func","shape","MetricsAddMenu$1","withStyles","color","fontSize","padding"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetricsAddMenu.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu, MenuItem, Checkbox, ListItemText } from '@material-ui/core';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { withStyles } from '@material-ui/core/styles';\nimport { isEqual } from 'lodash';\n\nimport { METRICS_LIST, MAX_METRICS_COUNT } from '../../constants';\n\nimport { IconButton as IconButtonComponent } from '~/components';\n\nconst muiStyles = {\n listItemPrimaryText: {\n color: '#fff',\n fontSize: '14px',\n },\n checkBox: {\n color: 'grey',\n padding: '5px',\n },\n};\n\nfunction MetricsAddMenu({\n metricsKeys,\n onChange,\n classes,\n 'data-testid': dataTestId = 'MetricsSelect',\n}) {\n const [selectedKeys, setSelectedKeys] = useState([]);\n const [anchorEl, setAnchorEl] = useState(null);\n\n useEffect(() => {\n // NOTE: If there are >=2 columns, metrics keys can be duplicated\n setSelectedKeys(metricsKeys);\n }, [metricsKeys]);\n\n const handleClick = event => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n if (!isEqual(selectedKeys, metricsKeys)) {\n onChange(selectedKeys);\n }\n };\n\n const handleChangeMetrics = newKey => {\n if (selectedKeys.includes(newKey)) {\n setSelectedKeys(prevKeys => prevKeys.filter(key => key !== newKey));\n } else {\n setSelectedKeys(prevKeys => prevKeys.concat(newKey));\n }\n };\n\n return (\n <>\n <IconButtonComponent\n data-testid={`${dataTestId}_addMetrics`}\n tooltipProps={{ title: 'Add Metric' }}\n size=\"small\"\n onClick={handleClick}\n >\n <SettingsIcon size=\"small\" />\n </IconButtonComponent>\n\n <Menu\n id=\"simple-menu\"\n anchorEl={anchorEl}\n getContentAnchorEl={null}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n PaperProps={{\n style: {\n maxHeight: '300px',\n backgroundColor: '#414141',\n },\n }}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n {METRICS_LIST.map(item => (\n <MenuItem\n disabled={selectedKeys.length === MAX_METRICS_COUNT && !selectedKeys.includes(item.key)}\n key={item.key}\n onClick={() => handleChangeMetrics(item.key)}\n >\n <Checkbox\n data-testid={`${dataTestId}_checkbox_${item.key}`}\n checked={selectedKeys.includes(item.key)}\n className={classes.checkBox}\n />\n <ListItemText primary={item.label} classes={{ primary: classes.listItemPrimaryText }} />\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n}\n\nMetricsAddMenu.propTypes = {\n metricsKeys: PropTypes.arrayOf(PropTypes.string).isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.shape({}).isRequired,\n 'data-testid': PropTypes.string,\n};\n\nexport default withStyles(muiStyles)(MetricsAddMenu);\n"],"names":["MetricsAddMenu","_ref","metricsKeys","onChange","classes","_ref$dataTestid","dataTestId","useState","_useState2","_slicedToArray","_useState","selectedKeys","setSelectedKeys","_useState4","_useState3","anchorEl","setAnchorEl","useEffect","_jsxs","_Fragment","children","_jsx","IconButtonComponent","concat","tooltipProps","title","size","onClick","event","currentTarget","SettingsIcon","Menu","id","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","style","maxHeight","backgroundColor","keepMounted","open","Boolean","onClose","isEqual","METRICS_LIST","map","item","MenuItem","disabled","length","MAX_METRICS_COUNT","includes","key","newKey","prevKeys","filter","Checkbox","checked","className","checkBox","ListItemText","primary","label","listItemPrimaryText","propTypes","PropTypes","arrayOf","string","isRequired","func","shape","MetricsAddMenu$1","withStyles","color","fontSize","padding"],"mappings":"2r8BAsBA,SAASA,EAKNC,GAAA,IAJDC,IAAAA,YACAC,IAAAA,SACAC,IAAAA,QAAOC,EAAAJ,EACP,eAAeK,aAAa,gBAAeD,EAEHE,EAAAA,EAAS,IAAGC,EAAAC,EAAAC,EAAA,GAA7CC,EAAYH,EAAA,GAAEI,EAAeJ,EAAA,GACJD,EAAAA,EAAS,MAAKM,EAAAJ,EAAAK,EAAA,GAAvCC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAE5BI,GAAU,WAERL,EAAgBV,EAClB,GAAG,CAACA,IAqBJ,OACEgB,EAAAC,EAAA,CAAAC,SAAA,CACEC,EAACC,EAAmB,CAClB,cAAA,GAAAC,OAAgBjB,EAAwB,eACxCkB,aAAc,CAAEC,MAAO,cACvBC,KAAK,QACLC,QAzBc,SAAAC,GAClBZ,EAAYY,EAAMC,gBAwBOT,SAErBC,EAACS,EAAY,CAACJ,KAAK,YAGrBL,EAACU,EAAI,CACHC,GAAG,cACHjB,SAAUA,EACVkB,mBAAoB,KACpBC,aAAc,CACZC,SAAU,MACVC,WAAY,SAEdC,gBAAiB,CACfF,SAAU,SACVC,WAAY,SAEdE,WAAY,CACVC,MAAO,CACLC,UAAW,QACXC,gBAAiB,YAGrBC,aAAW,EACXC,KAAMC,QAAQ7B,GACd8B,QA9Cc,WAClB7B,EAAY,MACP8B,EAAQnC,EAAcT,IACzBC,EAASQ,IA2CcS,SAEpB2B,EAAaC,KAAI,SAAAC,GAAI,OACpB/B,EAACgC,EAAQ,CACPC,SAAUxC,EAAayC,SAAWC,IAAsB1C,EAAa2C,SAASL,EAAKM,KAEnF5B,QAAS,WAAA,OA7CS6B,EA6CiBP,EAAKM,SA5C5C5C,EAAa2C,SAASE,GACxB5C,GAAgB,SAAA6C,GAAQ,OAAIA,EAASC,QAAO,SAAAH,GAAG,OAAIA,IAAQC,QAE3D5C,GAAgB,SAAA6C,GAAQ,OAAIA,EAASlC,OAAOiC,OAJpB,IAAAA,CA6C2B,EAAApC,SAAA,CAE7CC,EAACsC,EAAQ,CACP,cAAA,GAAApC,OAAgBjB,EAAU,cAAAiB,OAAa0B,EAAKM,KAC5CK,QAASjD,EAAa2C,SAASL,EAAKM,KACpCM,UAAWzD,EAAQ0D,WAErBzC,EAAC0C,EAAY,CAACC,QAASf,EAAKgB,MAAO7D,QAAS,CAAE4D,QAAS5D,EAAQ8D,yBAR1DjB,EAAKM,YActB,CAEAvD,EAAemE,UAAY,CACzBjE,YAAakE,EAAUC,QAAQD,EAAUE,QAAQC,WACjDpE,SAAUiE,EAAUI,KAAKD,WACzBnE,QAASgE,EAAUK,MAAM,CAAA,GAAIF,WAC7B,cAAeH,EAAUE,QAG3B,IAAAI,EAAeC,EAvGG,CAChBT,oBAAqB,CACnBU,MAAO,OACPC,SAAU,QAEZf,SAAU,CACRc,MAAO,OACPE,QAAS,QAgGEH,CAAsB3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV2/effects/index.js"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV2/effects/index.js"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,wBAAgB,WAAW,CAAC,KAAK,KAAA,aAMhC;AAED,wBAAgB,YAAY,CAAC,gBAAgB,KAAA,EAAE,gBAAgB,KAAA,EAAE,SAAS,KAAA,WAqBzE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,KAAA,QAmB5C;AAED,wBAAgB,QAAQ,CAAC,SAAS,KAAA,EAAE,qBAAqB,KAAA,QAcxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,KAAA,EAAE,WAAW,KAAA,QA8BpD;AAED,wBAAgB,cAAc,CAAC,MAAM,KAAA,EAAE,QAAQ,KAAA,EAAE,eAAe,KAAA,QAqB/D;AAED,wBAAgB,cAAc,CAAC,SAAS,KAAA,EAAE,KAAK,KAAA,sBAgF9C;AAED,wBAAgB,cAAc,CAAC,MAAM,KAAA,EAAE,uBAAuB,KAAA,EAAE,kBAAkB,KAAA,QAgBjF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/slicedToArray";import e from"@babel/runtime/regenerator";import{useState as o,useEffect as i,useRef as s}from"react";import{get as a}from"lodash";import{fetchCompanies as c,fetchCompanyGoals as u,fetchWells as f,fetchMetricsData as p}from"../utils/apiCalls.js";import{METRICS_KEYS as l}from"../constants.js";import{mapbox as m}from"../../../utils/index.js";import{BENCHMARK_METRIC_GOAL as h}from"../../../constants/goals.js";import"../../../constants/segment.js";import"../../../constants/alerts.js";import"../../../constants/apps.js";import"../../../constants/drillstring.js";import"../../../constants/completion.js";import"../../../constants/appPackages.js";import"../../../constants/notifications.js";import"../../../constants/feed.js";import"../../../constants/bha.js";import"../../../constants/corvaCompanyId.js";import"../../GradientManager/configuration/constants.js";export{default as useBidirectionalFiltering}from"./biDirectionalFiltering.js";import{getCompanyGoalSetting as
|
|
1
|
+
import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/slicedToArray";import e from"@babel/runtime/regenerator";import{useState as o,useEffect as i,useRef as s}from"react";import{get as a}from"lodash";import{fetchCompanies as c,fetchCompanyGoals as u,fetchWells as f,fetchMetricsData as p}from"../utils/apiCalls.js";import{METRICS_KEYS as l}from"../constants.js";import{mapbox as m}from"../../../utils/index.js";import{BENCHMARK_METRIC_GOAL as h}from"../../../constants/goals.js";import"../../../constants/segment.js";import"../../../constants/alerts.js";import"../../../constants/apps.js";import"../../../constants/drillstring.js";import"../../../constants/completion.js";import"../../../constants/appPackages.js";import"../../../constants/notifications.js";import"../../../constants/feed.js";import"../../../constants/bha.js";import"../../../constants/corvaCompanyId.js";import"../../GradientManager/configuration/constants.js";export{default as useBidirectionalFiltering}from"./biDirectionalFiltering.js";import{getCompanyGoalSetting as d}from"../../../utils/goals.js";function v(t,n){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),r.push.apply(r,e)}return r}function b(n){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?v(Object(e),!0).forEach((function(r){t(n,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):v(Object(e)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))}))}return n}function j(t,s,a){var u=o([]),f=r(u,2),p=f[0],l=f[1];return i((function(){function r(){return(r=n(e.mark((function n(){var r;return e.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t){n.next=3;break}return l([]),n.abrupt("return");case 3:return n.next=5,c();case 5:r=n.sent,s&&(r=r.filter((function(t){return t.id===a}))),l(r);case 8:case"end":return n.stop()}}),n)})))).apply(this,arguments)}!function(){r.apply(this,arguments)}()}),[t]),p}function y(t){var s=o(null),a=r(s,2),c=a[0],f=a[1];return i((function(){function r(){return(r=n(e.mark((function n(){var r,o;return e.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u(t);case 2:r=n.sent,o=d(r,h),f(o);case 5:case"end":return n.stop()}}),n)})))).apply(this,arguments)}f(null),function(){r.apply(this,arguments)}()}),[t]),c}function g(t,s){var a=o(null),c=r(a,2),u=c[0],p=c[1];return i((function(){function r(){return(r=n(e.mark((function n(){var r;return e.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!t){n.next=6;break}return n.next=3,f(t,s);case 3:n.t0=n.sent,n.next=7;break;case 6:n.t0=null;case 7:r=n.t0,p(r);case 9:case"end":return n.stop()}}),n)})))).apply(this,arguments)}p(null),function(){r.apply(this,arguments)}()}),[t]),u}function O(t,n){var e=o(null),s=r(e,2),a=s[0],c=s[1];return i((function(){if(t){var r=n&&m.getAssetV2Coordinates(n,"topHole");if(r){var e=[];t.forEach((function(t){var n=m.getAssetV2Coordinates(t,"topHole");if(n){var o=parseFloat(m.getDistanceByCoordinates(r,n));e.push(b(b({},t),{},{distance:o}))}else e.push(t)})),c(e)}else c(t)}else c(t)}),[t,n]),a}function w(t,n,e){var s=o(null),a=r(s,2),c=a[0],u=a[1];return i((function(){if(n){var t=[];n.forEach((function(n){e.includes(n.id)&&n.is_usable&&t.push(n)})),u(t)}else u(null)}),[t,n,e]),c}function x(t,c){var u=s({}),f=o(!0),m=r(f,2),h=m[0],d=m[1],v=o(null),j=r(v,2),y=j[0],g=j[1];return i((function(){function r(){return(r=n(e.mark((function n(r){var o,i,s,f;return e.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,p(t,r);case 2:o=n.sent,i=new Map,o.forEach((function(t){var n,r=a(t,"asset_id"),e=a(t,"data.key");i.has(r)||i.set(r,new Map),null===(n=i.get(r))||void 0===n||n.set(e,t)})),s={},r.forEach((function(t){var n={},r=i.get(t);l.forEach((function(t){var e=null==r?void 0:r.get(t),o=a(e,"data.value");n[t]=Number.isFinite(o)?parseFloat(o).toFixed(2):null})),s[t]=n})),u.current=b(b({},u.current),s),f=[],c.forEach((function(t){f.push(b(b({},t),u.current[t.id]))})),d(!1),g(f);case 12:case"end":return n.stop()}}),n)})))).apply(this,arguments)}if(c)if(0!==c.length){var o=[];c.forEach((function(t){u.current[t.id]||o.push(t.id)})),d(!0),function(t){r.apply(this,arguments)}(o)}else g([]);else g(null)}),[c]),[h,y]}function k(t,n,r){var e=s(!1);i((function(){if(n){if(e.current){var o=[];n.forEach((function(n){n.distance<=t&&o.push(n.id)})),r(o)}e.current=!0}}),[t,n])}export{j as useCompanies,y as useCompanyMetricKey,x as useMetricsData,w as useOffsetWells,k as useRadiusWells,g as useWells,O as useWellsWithCoords};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/OffsetWellPickerV2/effects/index.js"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\nimport { get } from 'lodash';\n\nimport { fetchWells, fetchCompanies, fetchMetricsData, fetchCompanyGoals } from '../utils/apiCalls';\nimport { METRICS_KEYS } from '../constants';\n\nimport { mapbox, goals } from '~/utils';\nimport { goals as goalsConstants } from '~/constants';\n\nexport { default as useBidirectionalFiltering } from './biDirectionalFiltering';\n\nconst { getAssetV2Coordinates, getDistanceByCoordinates } = mapbox;\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function useCompanies(canViewCompanies, isAdvancedSearch, companyId) {\n const [companies, setCompanies] = useState([]);\n\n useEffect(() => {\n async function handleFetchCompanies() {\n if (!canViewCompanies) {\n setCompanies([]);\n return;\n }\n\n let data = await fetchCompanies();\n if (isAdvancedSearch) {\n data = data.filter(item => item.id === companyId);\n }\n setCompanies(data);\n }\n\n handleFetchCompanies();\n }, [canViewCompanies]);\n\n return companies;\n}\n\nexport function useCompanyMetricKey(companyId) {\n const [metricKey, setMetricKey] = useState(null);\n\n useEffect(() => {\n async function handleFetchCompanyMetric() {\n const companyGoals = await fetchCompanyGoals(companyId);\n const companyMetricKey = goals.getCompanyGoalSetting(\n companyGoals,\n goalsConstants.BENCHMARK_METRIC_GOAL\n );\n\n setMetricKey(companyMetricKey);\n }\n\n setMetricKey(null);\n handleFetchCompanyMetric();\n }, [companyId]);\n\n return metricKey;\n}\n\nexport function useWells(companyId, addWellsUsabilityInfo) {\n const [wells, setWells] = useState(null);\n\n useEffect(() => {\n async function handleFetchWells() {\n const data = companyId ? await fetchWells(companyId, addWellsUsabilityInfo) : null;\n setWells(data);\n }\n\n setWells(null);\n handleFetchWells();\n }, [companyId]);\n\n return wells;\n}\n\nexport function useWellsWithCoords(wells, subjectWell) {\n const [wellsWithCoords, setWellsWithCoords] = useState(null);\n\n useEffect(() => {\n if (!wells) {\n setWellsWithCoords(wells);\n return;\n }\n\n const subjectWellCoord = subjectWell && getAssetV2Coordinates(subjectWell, 'topHole');\n\n if (!subjectWellCoord) {\n setWellsWithCoords(wells);\n return;\n }\n const result = [];\n wells.forEach(well => {\n const coord = getAssetV2Coordinates(well, 'topHole');\n if (coord) {\n const distance = parseFloat(getDistanceByCoordinates(subjectWellCoord, coord));\n result.push({ ...well, distance });\n } else {\n result.push(well);\n }\n });\n\n setWellsWithCoords(result);\n }, [wells, subjectWell]);\n\n return wellsWithCoords;\n}\n\nexport function useOffsetWells(radius, allWells, selectedWellIds) {\n const [offsetWells, setOffsetWells] = useState(null);\n\n useEffect(() => {\n if (!allWells) {\n // still loading...\n setOffsetWells(null);\n return;\n }\n\n const result = [];\n // NOTE: Add selected wells\n allWells.forEach(well => {\n if (selectedWellIds.includes(well.id) && well.is_usable) {\n result.push(well);\n }\n });\n\n setOffsetWells(result);\n }, [radius, allWells, selectedWellIds]);\n return offsetWells;\n}\n\nexport function useMetricsData(companyId, wells) {\n const fetchedData = useRef({});\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(null);\n\n useEffect(() => {\n async function handleFetchMetricsData(wellIdsToFetch) {\n const records = await fetchMetricsData(companyId, wellIdsToFetch);\n\n // Build index: asset_id -> { metricKey -> record }\n const recordsByWell = new Map();\n\n records.forEach(item => {\n const wellId = get(item, 'asset_id');\n const key = get(item, 'data.key');\n\n if (!recordsByWell.has(wellId)) {\n recordsByWell.set(wellId, new Map());\n }\n\n recordsByWell.get(wellId)?.set(key, item);\n });\n\n const wellsMetrics = {};\n wellIdsToFetch.forEach(wellId => {\n const wellMetrics = {};\n const wellRecordMap = recordsByWell.get(wellId);\n\n METRICS_KEYS.forEach(metricsKey => {\n const record = wellRecordMap?.get(metricsKey);\n const value = get(record, 'data.value');\n wellMetrics[metricsKey] = Number.isFinite(value) ? parseFloat(value).toFixed(2) : null;\n });\n\n wellsMetrics[wellId] = wellMetrics;\n });\n\n // NOTE: Store previous fetching result\n fetchedData.current = {\n ...fetchedData.current,\n ...wellsMetrics,\n };\n\n const result = [];\n wells.forEach(well => {\n result.push({\n ...well,\n ...fetchedData.current[well.id],\n });\n });\n\n setLoading(false);\n setData(result);\n }\n\n if (!wells) {\n // still loading...\n setData(null);\n return;\n }\n\n if (wells.length === 0) {\n setData([]);\n return;\n }\n\n // NOTE: Make api calls for only missing wells\n const missingWellIds = [];\n wells.forEach(well => {\n if (!fetchedData.current[well.id]) {\n missingWellIds.push(well.id);\n }\n });\n\n setLoading(true);\n handleFetchMetricsData(missingWellIds);\n }, [wells]);\n\n return [loading, data];\n}\n\nexport function useRadiusWells(radius, filteredWellsWithCoords, setSelectedWellIds) {\n const initLoadingRef = useRef(false);\n useEffect(() => {\n if (filteredWellsWithCoords) {\n if (initLoadingRef.current) {\n const radiusWellIds = [];\n filteredWellsWithCoords.forEach(well => {\n if (well.distance <= radius) {\n radiusWellIds.push(well.id);\n }\n });\n setSelectedWellIds(radiusWellIds);\n }\n initLoadingRef.current = true;\n }\n }, [radius, filteredWellsWithCoords]);\n}\n"],"names":["getAssetV2Coordinates","mapbox","getDistanceByCoordinates","useCompanies","canViewCompanies","isAdvancedSearch","companyId","useState","_useState2","_slicedToArray","_useState","companies","setCompanies","useEffect","_handleFetchCompanies","_asyncToGenerator","_regeneratorRuntime","mark","_callee","data","wrap","_context","prev","next","abrupt","fetchCompanies","sent","filter","item","id","stop","apply","this","arguments","handleFetchCompanies","useCompanyMetricKey","_useState4","_useState3","metricKey","setMetricKey","_handleFetchCompanyMetric","_callee2","companyGoals","companyMetricKey","_context2","fetchCompanyGoals","goals","goalsConstants","handleFetchCompanyMetric","useWells","addWellsUsabilityInfo","_useState6","_useState5","wells","setWells","_handleFetchWells","_callee3","_context3","fetchWells","t0","handleFetchWells","useWellsWithCoords","subjectWell","_useState8","_useState7","wellsWithCoords","setWellsWithCoords","subjectWellCoord","result","forEach","well","coord","distance","parseFloat","push","_objectSpread","useOffsetWells","radius","allWells","selectedWellIds","_useState10","_useState9","offsetWells","setOffsetWells","includes","is_usable","useMetricsData","fetchedData","useRef","_useState12","_useState11","loading","setLoading","_useState14","_useState13","setData","_handleFetchMetricsData","wellIdsToFetch","records","recordsByWell","wellsMetrics","_context4","fetchMetricsData","Map","_recordsByWell$get","wellId","get","key","has","set","wellMetrics","wellRecordMap","METRICS_KEYS","metricsKey","record","value","Number","isFinite","toFixed","current","_callee4","length","missingWellIds","_x","handleFetchMetricsData","useRadiusWells","filteredWellsWithCoords","setSelectedWellIds","initLoadingRef","radiusWellIds"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/OffsetWellPickerV2/effects/index.js"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\nimport { get } from 'lodash';\n\nimport { fetchWells, fetchCompanies, fetchMetricsData, fetchCompanyGoals } from '../utils/apiCalls';\nimport { METRICS_KEYS } from '../constants';\n\nimport { mapbox, goals } from '~/utils';\nimport { goals as goalsConstants } from '~/constants';\n\nexport { default as useBidirectionalFiltering } from './biDirectionalFiltering';\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function useCompanies(canViewCompanies, isAdvancedSearch, companyId) {\n const [companies, setCompanies] = useState([]);\n\n useEffect(() => {\n async function handleFetchCompanies() {\n if (!canViewCompanies) {\n setCompanies([]);\n return;\n }\n\n let data = await fetchCompanies();\n if (isAdvancedSearch) {\n data = data.filter(item => item.id === companyId);\n }\n setCompanies(data);\n }\n\n handleFetchCompanies();\n }, [canViewCompanies]);\n\n return companies;\n}\n\nexport function useCompanyMetricKey(companyId) {\n const [metricKey, setMetricKey] = useState(null);\n\n useEffect(() => {\n async function handleFetchCompanyMetric() {\n const companyGoals = await fetchCompanyGoals(companyId);\n const companyMetricKey = goals.getCompanyGoalSetting(\n companyGoals,\n goalsConstants.BENCHMARK_METRIC_GOAL\n );\n\n setMetricKey(companyMetricKey);\n }\n\n setMetricKey(null);\n handleFetchCompanyMetric();\n }, [companyId]);\n\n return metricKey;\n}\n\nexport function useWells(companyId, addWellsUsabilityInfo) {\n const [wells, setWells] = useState(null);\n\n useEffect(() => {\n async function handleFetchWells() {\n const data = companyId ? await fetchWells(companyId, addWellsUsabilityInfo) : null;\n setWells(data);\n }\n\n setWells(null);\n handleFetchWells();\n }, [companyId]);\n\n return wells;\n}\n\nexport function useWellsWithCoords(wells, subjectWell) {\n const [wellsWithCoords, setWellsWithCoords] = useState(null);\n\n useEffect(() => {\n if (!wells) {\n setWellsWithCoords(wells);\n return;\n }\n\n const subjectWellCoord = subjectWell && mapbox.getAssetV2Coordinates(subjectWell, 'topHole');\n\n if (!subjectWellCoord) {\n setWellsWithCoords(wells);\n return;\n }\n const result = [];\n wells.forEach(well => {\n const coord = mapbox.getAssetV2Coordinates(well, 'topHole');\n if (coord) {\n const distance = parseFloat(mapbox.getDistanceByCoordinates(subjectWellCoord, coord));\n result.push({ ...well, distance });\n } else {\n result.push(well);\n }\n });\n\n setWellsWithCoords(result);\n }, [wells, subjectWell]);\n\n return wellsWithCoords;\n}\n\nexport function useOffsetWells(radius, allWells, selectedWellIds) {\n const [offsetWells, setOffsetWells] = useState(null);\n\n useEffect(() => {\n if (!allWells) {\n // still loading...\n setOffsetWells(null);\n return;\n }\n\n const result = [];\n // NOTE: Add selected wells\n allWells.forEach(well => {\n if (selectedWellIds.includes(well.id) && well.is_usable) {\n result.push(well);\n }\n });\n\n setOffsetWells(result);\n }, [radius, allWells, selectedWellIds]);\n return offsetWells;\n}\n\nexport function useMetricsData(companyId, wells) {\n const fetchedData = useRef({});\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(null);\n\n useEffect(() => {\n async function handleFetchMetricsData(wellIdsToFetch) {\n const records = await fetchMetricsData(companyId, wellIdsToFetch);\n\n // Build index: asset_id -> { metricKey -> record }\n const recordsByWell = new Map();\n\n records.forEach(item => {\n const wellId = get(item, 'asset_id');\n const key = get(item, 'data.key');\n\n if (!recordsByWell.has(wellId)) {\n recordsByWell.set(wellId, new Map());\n }\n\n recordsByWell.get(wellId)?.set(key, item);\n });\n\n const wellsMetrics = {};\n wellIdsToFetch.forEach(wellId => {\n const wellMetrics = {};\n const wellRecordMap = recordsByWell.get(wellId);\n\n METRICS_KEYS.forEach(metricsKey => {\n const record = wellRecordMap?.get(metricsKey);\n const value = get(record, 'data.value');\n wellMetrics[metricsKey] = Number.isFinite(value) ? parseFloat(value).toFixed(2) : null;\n });\n\n wellsMetrics[wellId] = wellMetrics;\n });\n\n // NOTE: Store previous fetching result\n fetchedData.current = {\n ...fetchedData.current,\n ...wellsMetrics,\n };\n\n const result = [];\n wells.forEach(well => {\n result.push({\n ...well,\n ...fetchedData.current[well.id],\n });\n });\n\n setLoading(false);\n setData(result);\n }\n\n if (!wells) {\n // still loading...\n setData(null);\n return;\n }\n\n if (wells.length === 0) {\n setData([]);\n return;\n }\n\n // NOTE: Make api calls for only missing wells\n const missingWellIds = [];\n wells.forEach(well => {\n if (!fetchedData.current[well.id]) {\n missingWellIds.push(well.id);\n }\n });\n\n setLoading(true);\n handleFetchMetricsData(missingWellIds);\n }, [wells]);\n\n return [loading, data];\n}\n\nexport function useRadiusWells(radius, filteredWellsWithCoords, setSelectedWellIds) {\n const initLoadingRef = useRef(false);\n useEffect(() => {\n if (filteredWellsWithCoords) {\n if (initLoadingRef.current) {\n const radiusWellIds = [];\n filteredWellsWithCoords.forEach(well => {\n if (well.distance <= radius) {\n radiusWellIds.push(well.id);\n }\n });\n setSelectedWellIds(radiusWellIds);\n }\n initLoadingRef.current = true;\n }\n }, [radius, filteredWellsWithCoords]);\n}\n"],"names":["useCompanies","canViewCompanies","isAdvancedSearch","companyId","useState","_useState2","_slicedToArray","_useState","companies","setCompanies","useEffect","_handleFetchCompanies","_asyncToGenerator","_regeneratorRuntime","mark","_callee","data","wrap","_context","prev","next","abrupt","fetchCompanies","sent","filter","item","id","stop","apply","this","arguments","handleFetchCompanies","useCompanyMetricKey","_useState4","_useState3","metricKey","setMetricKey","_handleFetchCompanyMetric","_callee2","companyGoals","companyMetricKey","_context2","fetchCompanyGoals","goals","goalsConstants","handleFetchCompanyMetric","useWells","addWellsUsabilityInfo","_useState6","_useState5","wells","setWells","_handleFetchWells","_callee3","_context3","fetchWells","t0","handleFetchWells","useWellsWithCoords","subjectWell","_useState8","_useState7","wellsWithCoords","setWellsWithCoords","subjectWellCoord","mapbox","getAssetV2Coordinates","result","forEach","well","coord","distance","parseFloat","getDistanceByCoordinates","push","_objectSpread","useOffsetWells","radius","allWells","selectedWellIds","_useState10","_useState9","offsetWells","setOffsetWells","includes","is_usable","useMetricsData","fetchedData","useRef","_useState12","_useState11","loading","setLoading","_useState14","_useState13","setData","_handleFetchMetricsData","wellIdsToFetch","records","recordsByWell","wellsMetrics","_context4","fetchMetricsData","Map","_recordsByWell$get","wellId","get","key","has","set","wellMetrics","wellRecordMap","METRICS_KEYS","metricsKey","record","value","Number","isFinite","toFixed","current","_callee4","length","missingWellIds","_x","handleFetchMetricsData","useRadiusWells","filteredWellsWithCoords","setSelectedWellIds","initLoadingRef","radiusWellIds"],"mappings":"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"}
|
package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js"],"names":[],"mappings":"AAUA,OAAO,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV3/components/CustomSelectionView/components/Map/Map.js"],"names":[],"mappings":"AAUA,OAAO,8BAA8B,CAAC;AA4BtC,iBAAS,QAAQ,CAAC,EAChB,IAAI,EACJ,WAAkB,EAClB,KAAK,EACL,WAAkB,EAClB,MAAM,EACN,eAAe,EACf,cAAqB,EACrB,cAAgD,EAChD,eAAe,EACf,kBAAkB,GACnB;;;;;;;;;;;CAAA,+BAgPA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import r from"@babel/runtime/helpers/slicedToArray";import{memo as e,useRef as t,useState as n,useMemo as o,useEffect as u,createElement as i}from"react";import l from"prop-types";import{get as c,sortBy as a}from"lodash";import s from"./Map.css.js";import{mapbox as d}from"../../../../../../utils/index.js";import{createAdaptiveRoot as f}from"../../../../../../utils/createAdaptiveRoot.js";import"../../../../../../config/mapboxGl/index.js";import{IS_MAPBOX_ENABLED as p}from"../../../../../../config/mapbox/index.js";import"mapbox-gl/dist/mapbox-gl.css";import{jsx as m,Fragment as v}from"react/jsx-runtime";import y from"mapbox-gl";var g=
|
|
1
|
+
import r from"@babel/runtime/helpers/slicedToArray";import{memo as e,useRef as t,useState as n,useMemo as o,useEffect as u,createElement as i}from"react";import l from"prop-types";import{get as c,sortBy as a}from"lodash";import s from"./Map.css.js";import{mapbox as d}from"../../../../../../utils/index.js";import{createAdaptiveRoot as f}from"../../../../../../utils/createAdaptiveRoot.js";import"../../../../../../config/mapboxGl/index.js";import{IS_MAPBOX_ENABLED as p}from"../../../../../../config/mapbox/index.js";import"mapbox-gl/dist/mapbox-gl.css";import{jsx as m,Fragment as v}from"react/jsx-runtime";import y from"mapbox-gl";var g=[29.749907,-95.358421],h={type:"FeatureCollection",features:[]},w=function(e){var t=r(e,2),n=t[0];return[t[1],n]};function b(e){var l=e.open,b=e.subjectWell,x=void 0===b?null:b,D=e.wells,B=e.offsetWells,C=void 0===B?null:B,j=e.radius,F=e.formationColors,M=e.popUpFormatter,W=void 0===M?null:M,L=e.coordsDataPath,O=void 0===L?"settings.top_hole.coordinates":L,P=e.onAddOffsetWell,R=e.onDeleteOffsetWell,q=t(null),I=t(),S=t(null),T=t(null),k=t(null),A=t(null),N=t(null),E=t(),K=n(!1),U=r(K,2),z=U[0],G=U[1],V=o((function(){return x&&c(x,O)}),[x,O]);return u((function(){p&&l&&!I.current&&(I.current=new y.Map({container:q.current,style:"mapbox://styles/mapbox/dark-v9",center:w(g),zoom:1,attributionControl:!1,scrollZoom:!1}),I.current.addControl(new y.NavigationControl({showCompass:!1}),"bottom-right"),I.current.on("load",(function(){I.current.addSource("radius-circle",{type:"geojson",data:h}),I.current.addLayer({id:"radius-circle",type:"fill",source:"radius-circle",paint:{"fill-color":"#03BCD4","fill-opacity":.2}}),I.current.addSource("wells",{type:"geojson",data:h}),I.current.addLayer({id:"wells",type:"circle",source:"wells",layout:{"circle-sort-key":["get","sortKey"]},paint:{"circle-radius":["get","radius"],"circle-color":["get","color"],"circle-opacity":["get","opacity"]}}),G(!0)})))}),[l]),u((function(){return function(){var r;null===(r=A.current)||void 0===r||r.unmount(),A.current=null,N.current=null,I.current&&(I.current.remove(),I.current=null,S.current=null,T.current=null)}}),[]),u((function(){if(I.current&&z&&l){if(!V)return I.current.getSource("radius-circle").setData(h),void(S.current=null);var e=function(e,t){for(var n=r(e,2),o=n[0],u=n[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:64,l=[],c=t/(111320*Math.cos(o*Math.PI/180)),a=t/110574,s=0;s<=i;s+=1){var d=s/i*(2*Math.PI);l.push([u+c*Math.cos(d),o+a*Math.sin(d)])}return l}(V,1609.34*j);I.current.getSource("radius-circle").setData({type:"Feature",geometry:{type:"Polygon",coordinates:[e]}}),S.current=e.reduce((function(r,e){return r.extend(e)}),new y.LngLatBounds)}}),[j,V,l,z]),u((function(){if(I.current&&z&&l){var r=E.current;E.current=D;var e=C.map((function(r){return r.id})),t=a(D,(function(r){return e.includes(r.id)})),n=[],o={},u=new y.LngLatBounds;t.forEach((function(r){var t=c(r,O);if(t&&d.isValidCoordinates(t)){var i=x&&x.id===r.id,l=e.includes(r.id),a=i?10:5,s=i||l?"#00FFFF":c(F,r.formation,"#BDBDBD"),f=i||l?1:.3;o[r.id]=r,u.extend(w(t)),n.push({type:"Feature",geometry:{type:"Point",coordinates:w(t)},properties:{wellId:r.id,radius:a,color:s,opacity:f,sortKey:l?1:0}})}})),I.current.getSource("wells").setData({type:"FeatureCollection",features:n}),T.current=n.length?u:null;var s=I.current,p=null,g=function(r){s.getCanvas().style.cursor="pointer";var e=o[r.features[0].properties.wellId];if(e&&e.id!==p&&(p=e.id,W)){var t=i(W,{well:e,color:c(F,e.formation,"#BDBDBD")});N.current||(N.current=document.createElement("div"),A.current=f(N.current)),A.current.render(m(v,{children:t})),k.current||(k.current=new y.Popup({closeButton:!1,maxWidth:"none"})),k.current.setLngLat(w(c(e,O))).setDOMContent(N.current).addTo(s)}},h=function(){var r;p=null,s.getCanvas().style.cursor="",null===(r=k.current)||void 0===r||r.remove()},b=function(r){var t=r.features[0].properties.wellId,n=x&&x.id===t;e.includes(t)&&!n?R(t):P(t)};return s.on("mousemove","wells",g),s.on("mouseleave","wells",h),s.on("click","wells",b),setTimeout((function(){I.current&&S.current&&D!==r&&I.current.fitBounds(S.current,{padding:5})}),500),function(){s.off("mousemove","wells",g),s.off("mouseleave","wells",h),s.off("click","wells",b)}}}),[x,D,C,l,z]),u((function(){l&&setTimeout((function(){x?I.current&&S.current&&I.current.fitBounds(S.current,{padding:5}):I.current&&T.current&&I.current.fitBounds(T.current)}),500)}),[j,x,l,z]),m("div",{className:s.map,children:m("div",{className:s.mapMain,ref:q})})}b.propTypes={open:l.bool.isRequired,subjectWell:l.shape({id:l.number,formation:l.string}),wells:l.arrayOf(l.shape({})).isRequired,offsetWells:l.arrayOf(l.shape({})),radius:l.number.isRequired,formationColors:l.shape({}).isRequired,popUpFormatter:l.func,coordsDataPath:l.string,onAddOffsetWell:l.func.isRequired,onDeleteOffsetWell:l.func.isRequired};var x=e(b);export{x as default};
|
|
2
2
|
//# sourceMappingURL=Map.js.map
|