@corva/ui 3.77.0-9 → 3.78.0-0
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/MCP_README.md +9 -6
- package/README.md +6 -0
- package/cjs-bundle/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/constants.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js +2 -0
- package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
- package/cjs-bundle/components/AssetEditorV2/effects/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/index.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/utils/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/utils/index.js.map +1 -1
- package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js +1 -1
- package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js.map +1 -1
- package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js +1 -1
- package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js.map +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.module.css.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/constants.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/constants.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/stores/filter-store/types.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js.map +1 -1
- package/cjs-bundle/components/Search/Search.js.map +1 -1
- package/cjs-bundle/config/mapbox/index.js +1 -1
- package/cjs-bundle/config/mapbox/index.js.map +1 -1
- package/cjs-bundle/hocs/withAssetEditorLockHOC.js +1 -1
- package/cjs-bundle/hocs/withAssetEditorLockHOC.js.map +1 -1
- package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts +2 -0
- package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts.map +1 -0
- package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts +2 -0
- package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts.map +1 -0
- package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts +17 -6
- package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts.map +1 -1
- package/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts +30 -39
- package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts +4 -41
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
- package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts +22 -18
- package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts.map +1 -1
- package/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
- package/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
- package/components/AssetEditorV2/components/SelectItem.d.ts +10 -1
- package/components/AssetEditorV2/components/SelectItem.d.ts.map +1 -1
- package/components/AssetEditorV2/components/SelectItem.js +1 -1
- package/components/AssetEditorV2/components/SelectItem.js.map +1 -1
- package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts +2 -0
- package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts.map +1 -0
- package/components/AssetEditorV2/components/__tests__/MultipleAssetsToggle.test.d.ts.map +1 -1
- package/components/AssetEditorV2/components/__tests__/SelectItem.test.d.ts.map +1 -1
- package/components/AssetEditorV2/components/index.d.ts.map +1 -1
- package/components/AssetEditorV2/constants.d.ts +2 -9
- package/components/AssetEditorV2/constants.d.ts.map +1 -1
- package/components/AssetEditorV2/constants.js.map +1 -1
- package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts +2 -0
- package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts +2 -0
- package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts +2 -0
- package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/assetResponse.d.ts +4 -0
- package/components/AssetEditorV2/effects/assetResponse.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/assetResponse.js +2 -0
- package/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
- package/components/AssetEditorV2/effects/index.d.ts +34 -28
- package/components/AssetEditorV2/effects/index.d.ts.map +1 -1
- package/components/AssetEditorV2/effects/index.js +1 -1
- package/components/AssetEditorV2/effects/index.js.map +1 -1
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts +21 -17
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts.map +1 -1
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
- package/components/AssetEditorV2/index.d.ts +36 -67
- package/components/AssetEditorV2/index.d.ts.map +1 -1
- package/components/AssetEditorV2/index.js +1 -1
- package/components/AssetEditorV2/index.js.map +1 -1
- package/components/AssetEditorV2/types.d.ts +82 -0
- package/components/AssetEditorV2/types.d.ts.map +1 -0
- package/components/AssetEditorV2/utils/__tests__/utils.test.d.ts.map +1 -1
- package/components/AssetEditorV2/utils/index.d.ts +23 -19
- package/components/AssetEditorV2/utils/index.d.ts.map +1 -1
- package/components/AssetEditorV2/utils/index.js +1 -1
- package/components/AssetEditorV2/utils/index.js.map +1 -1
- package/components/AttachmentLightbox/AttachmentDocument.d.ts.map +1 -1
- package/components/AttachmentLightbox/AttachmentDocument.js +1 -1
- package/components/AttachmentLightbox/AttachmentDocument.js.map +1 -1
- package/components/CommentComposer/__tests__/useAttachmentUpload.local.test.d.ts +2 -0
- package/components/CommentComposer/__tests__/useAttachmentUpload.local.test.d.ts.map +1 -0
- package/components/CommentComposer/useAttachmentUpload.d.ts.map +1 -1
- package/components/CommentComposer/useAttachmentUpload.js +1 -1
- package/components/CommentComposer/useAttachmentUpload.js.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.d.ts.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
- package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.d.ts.map +1 -1
- package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js +1 -1
- package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js.map +1 -1
- package/components/Drillstring/BHAComponentDetail/constants.d.ts +2 -2
- package/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.d.ts +2 -0
- package/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV4/effects/useCompanyMetricKey.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/__tests__/constants.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/__tests__/constants.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.d.ts +2 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.d.ts +3 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.module.css.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.d.ts +0 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js.map +1 -1
- package/components/OffsetWellPickerV5/constants.d.ts +26 -3
- package/components/OffsetWellPickerV5/constants.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/constants.js +1 -1
- package/components/OffsetWellPickerV5/constants.js.map +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useAdvancedWells.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useAdvancedWells.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useCompanyMetricKey.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useCompanyMetricKey.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js.map +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts +2 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.js.map +1 -1
- package/components/OffsetWellPickerV5/utils/__tests__/getTimestampByPeriod.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/utils/__tests__/getTimestampByPeriod.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.d.ts +4 -0
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js +1 -1
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js.map +1 -1
- package/components/Search/Search.d.ts +6 -3
- package/components/Search/Search.d.ts.map +1 -1
- package/components/Search/Search.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.d.ts.map +1 -1
- package/config/mapbox/index.d.ts.map +1 -1
- package/config/mapbox/index.js +1 -1
- package/config/mapbox/index.js.map +1 -1
- package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts +2 -0
- package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts.map +1 -0
- package/hocs/withAssetEditorLockHOC.d.ts +11 -1
- package/hocs/withAssetEditorLockHOC.d.ts.map +1 -1
- package/hocs/withAssetEditorLockHOC.js +1 -1
- package/hocs/withAssetEditorLockHOC.js.map +1 -1
- package/mcp-server/server.mjs +312 -73
- package/mcp-server/setup.mjs +129 -44
- package/package.json +3 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricCell.js","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { Typography } from '@material-ui/core';\n\nimport styles from './MetricCell.module.css';\n\nimport { Skeleton } from '~/componentsV2/Skeleton';\nimport { convertValue } from '~/utils';\n\ntype MetricConfig = {\n key: string;\n unitType?: string;\n from?: string;\n to?: string;\n precision?: number;\n customConvert?: (value: number, config: { precision?: number }) => number;\n};\n\ntype MetricCellProps = {\n value: number | string | null | undefined;\n wellId: number;\n loadingWellIds: Set<number>;\n metric: MetricConfig | undefined;\n};\n\nconst getDisplayValue = (\n value: MetricCellProps['value'],\n metric: MetricConfig\n): number | string | null | undefined => {\n if (typeof value !== 'number') return value;\n\n if (metric.customConvert) {\n return metric.customConvert(value, { precision: metric.precision });\n }\n\n if (metric.unitType && metric.from) {\n return convertValue(value, metric.unitType, metric.from, metric.to);\n }\n\n return value;\n};\n\nconst MetricCellComponent = ({
|
|
1
|
+
{"version":3,"file":"MetricCell.js","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { Typography } from '@material-ui/core';\n\nimport styles from './MetricCell.module.css';\n\nimport { TextEndTruncated } from '~/componentsV2';\nimport { Skeleton } from '~/componentsV2/Skeleton';\nimport { convertValue } from '~/utils';\n\ntype MetricConfig = {\n key: string;\n unitType?: string;\n from?: string;\n to?: string;\n precision?: number;\n customConvert?: (value: number, config: { precision?: number }) => number;\n};\n\ntype MetricCellProps = {\n value: number | string | null | undefined;\n wellId: number;\n loadingWellIds: Set<number>;\n metric: MetricConfig | undefined;\n maxLines: number;\n};\n\nexport const TEXT_VALUE_TEST_ID = 'MetricCell_text';\n\nconst getDisplayValue = (\n value: MetricCellProps['value'],\n metric: MetricConfig\n): number | string | null | undefined => {\n if (typeof value !== 'number') return value;\n\n if (metric.customConvert) {\n return metric.customConvert(value, { precision: metric.precision });\n }\n\n if (metric.unitType && metric.from) {\n return convertValue(value, metric.unitType, metric.from, metric.to);\n }\n\n return value;\n};\n\nconst MetricCellComponent = ({\n value,\n wellId,\n loadingWellIds,\n metric,\n maxLines,\n}: MetricCellProps) => {\n if (!metric) {\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n —\n </Typography>\n );\n }\n\n // Show spinner only if THIS well is loading AND has no value\n const isLoading = loadingWellIds.has(wellId);\n\n if (isLoading && value === undefined) {\n return <Skeleton type=\"text\" width={50} height={16} />;\n }\n\n if (Number.isFinite(value) || (value && value !== 'Null')) {\n const displayValue = getDisplayValue(value, metric);\n\n if (typeof displayValue === 'string') {\n return (\n <TextEndTruncated\n testId={TEXT_VALUE_TEST_ID}\n maxLines={maxLines}\n className={styles.cellText}\n >\n {displayValue}\n </TextEndTruncated>\n );\n }\n\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n {displayValue}\n </Typography>\n );\n }\n\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n —\n </Typography>\n );\n};\n\nexport const MetricCell = memo(MetricCellComponent);\n\nMetricCell.displayName = 'MetricCell';\n"],"names":["MetricCell","memo","_ref","value","wellId","loadingWellIds","metric","maxLines","_jsx","Typography","variant","className","styles","cellData","children","has","undefined","Skeleton","type","width","height","Number","isFinite","displayValue","customConvert","precision","unitType","from","convertValue","to","getDisplayValue","TextEndTruncated","testId","cellText","displayName"],"mappings":"sniBA0BO,IAsEMA,EAAaC,EAAIA,MAnDF,SAMLC,GAAA,IALrBC,IAAAA,MACAC,IAAAA,OACAC,IAAAA,eACAC,IAAAA,OACAC,IAAAA,SAEA,IAAKD,EACH,OACEE,EAAAA,IAACC,EAAAA,WAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SAAA,MAS3D,GAFkBT,EAAeU,IAAIX,SAEVY,IAAVb,EACf,OAAOK,EAAAA,IAACS,EAAAA,SAAQ,CAACC,KAAK,OAAOC,MAAO,GAAIC,OAAQ,KAGlD,GAAIC,OAAOC,SAASnB,IAAWA,GAAmB,SAAVA,EAAmB,CACzD,IAAMoB,EAxCc,SACtBpB,EACAG,GAEA,MAAqB,iBAAVH,EAA2BA,EAElCG,EAAOkB,cACFlB,EAAOkB,cAAcrB,EAAO,CAAEsB,UAAWnB,EAAOmB,YAGrDnB,EAAOoB,UAAYpB,EAAOqB,KACrBC,EAAYA,aAACzB,EAAOG,EAAOoB,SAAUpB,EAAOqB,KAAMrB,EAAOuB,IAG3D1B,CACT,CAyByB2B,CAAgB3B,EAAOG,GAE5C,MAA4B,iBAAjBiB,EAEPf,EAAAA,IAACuB,EAAAA,iBAAgB,CACfC,OA/CwB,kBAgDxBzB,SAAUA,EACVI,UAAWC,EAAOqB,SAASnB,SAE1BS,IAMLf,EAAAA,IAACC,EAAAA,WAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SACpDS,GAGP,CAEA,OACEf,EAAAA,IAACC,EAAAA,WAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SAAA,KAI3D,IAIAd,EAAWkC,YAAc,6DAxES"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require('./../../../../../../ext-esm/style-inject/dist/style-inject.es.js')(".MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--palette-primary-text-1);display:-webkit-box;font-size:14px;font-weight:400;line-height:20px;overflow:hidden;overflow-wrap:break-word;white-space:normal}[data-dense=true] .MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:1}"),module.exports={cellData:"MetricCell-module_cellData__-Tlr-"};
|
|
1
|
+
"use strict";require('./../../../../../../ext-esm/style-inject/dist/style-inject.es.js')(".MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--palette-primary-text-1);display:-webkit-box;font-size:14px;font-weight:400;line-height:20px;overflow:hidden;overflow-wrap:break-word;white-space:normal}[data-dense=true] .MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:1}.MetricCell-module_cellText__v6uIg{color:var(--palette-primary-text-1);font-size:14px;font-weight:400;line-height:20px;overflow-wrap:break-word}"),module.exports={cellData:"MetricCell-module_cellData__-Tlr-",cellText:"MetricCell-module_cellText__v6uIg"};
|
|
2
2
|
//# sourceMappingURL=MetricCell.module.css.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),l=require("@babel/runtime/helpers/defineProperty"),s=require("react"),t=require("classnames"),a=require("lodash"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),l=require("@babel/runtime/helpers/defineProperty"),s=require("react"),t=require("classnames"),a=require("lodash"),r=require("@material-ui/core"),o=require("../../../../constants.js"),i=require("../../../../stores/view-store/useViewStore.js");require("../../../../viewport/ViewportProvider.js");var n=require("../../../../viewport/useViewType.js"),u=require("../../cells/WellNameCell/WellNameCell.js"),c=require("../../cells/StatusCell/StatusCell.js"),m=require("../../cells/CompanyCell/CompanyCell.js"),d=require("../../cells/RigCell/RigCell.js"),C=require("../../cells/InterventionAssetCell/InterventionAssetCell.js"),p=require("../../cells/PadNameCell/PadNameCell.js"),y=require("../../cells/FormationCell/FormationCell.js"),f=require("../../cells/DistanceCell/DistanceCell.js"),b=require("../../cells/TaScoreCell/TaScoreCell.js"),j=require("../../cells/DateCell/DateCell.js"),S=require("../../cells/MetricsCells/MetricsCells.js"),w=require("../../cells/WellSectionCell/WellSectionCell.js"),M=require("../../useRowMemoizedMaps.js"),x=require("../../useRowInteractions.js"),h=require("./OffsetWellsTableRow.module.css.js"),W=require("../../../../../../utils/index.js"),T=require("react/jsx-runtime");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=q(e),R=q(l),g=q(t),N=function(e,l){var s=a.get(e,o.ColumnType.distance);return"number"==typeof s&&Number.isFinite(s)?l?s:W.convertValue(s,"length","mi","km"):"—"},O=s.memo((function(e){var l=e.columnsWithDict,t=e.data,a=e.subjectWellId,W=e.metricsKeys,q=e.metricsColumns,O=e.handleChangeOffsetWell,I=e.wellNameStyle,L=e.isImperial,k=e.isLimitedOffsetWells,A=e.maxOffsetWellNumber,D=e.wellSections,V=e.setActiveWellId,P=e.onRowClick,E=e.taScores,F=e.isWellSectionColumnVisible,_=e.loadingWellIds,K=e.registerRow,z=n.useViewType().isMobile,B=i.useViewStore((function(e){return e.isWellNameExpand})),G=i.useViewStore((function(e){return e.dense}))&&!z,H=a===t.id,J=R.default({},h.subjectWellRow,H),Q=null==l?void 0:l.some((function(e){return e.key===o.ColumnType.company})),U=M.useRowMemoizedMaps({columnsWithDict:l,metricsColumns:q,taScores:E,wellSections:D}),X=U.columnsMap,Y=U.metricsMap,Z=U.taScoresMap,$=U.wellSectionsMap,ee=U.statusOptionsMap,le=x.useRowInteractions({data:t,isLimitedOffsetWells:k,maxOffsetWellNumber:A,metricsKeys:W,isWellSectionColumnVisible:F,hasLastInterventionAtColumn:X.has(o.ColumnType.lastInterventionAt),handleChangeOffsetWell:O,setActiveWellId:V,onRowClick:P,registerRow:K}),se=le.isViewOnly,te=le.isChecked,ae=le.rowRef,re=le.handleChangeCheckbox,oe=le.checkboxTooltipText,ie=le.lastCellColumn,ne=le.handleMouseEnter,ue=le.handleMouseLeave,ce=le.handleRowClick,me=G?1:2,de=t[o.ColumnType.name]||"—",Ce=s.useMemo((function(){return t[o.ColumnType.wellSection]}),[t]);return T.jsxs(r.TableRow,{ref:ae,"data-testid":"".concat("OffsetWellsTableRow","_row_").concat(de),"data-well-id":t.id,"data-dense":G?"true":void 0,className:g.default(h.bodyRow,R.default({},h.dense,G)),onClick:ce,onMouseEnter:ne,onMouseLeave:ue,children:[T.jsx(u.WellNameCell,{data:t,isSubjectWell:H,borderStyle:J,wellNameStyle:I,isWellNameExpand:B,columnsMap:X,checkboxTooltipText:oe,isViewOnly:se,isLimitedOffsetWells:k,isChecked:te,handleChangeCheckbox:re,wellName:de,maxLines:me}),T.jsx(c.StatusCell,{data:t,isSubjectWell:H,borderStyle:J,columnsMap:X,isMobile:z,statusOptionsMap:ee}),Q&&T.jsx(m.CompanyCell,{data:t,borderStyle:J,columnsMap:X,maxLines:me}),X.has(o.ColumnType.interventionAsset)&&T.jsx(C.InterventionAssetCell,{data:t,borderStyle:J,columnsMap:X,maxLines:me}),X.has(o.ColumnType.padName)&&T.jsx(p.PadNameCell,{data:t,borderStyle:J,columnsMap:X,maxLines:me}),X.has(o.ColumnType.formation)&&T.jsx(y.FormationCell,{data:t,borderStyle:J,columnsMap:X,maxLines:me}),X.has(o.ColumnType.rig)&&T.jsx(d.RigCell,{data:t,borderStyle:J,columnsMap:X,maxLines:me}),X.has(o.ColumnType.distance)&&T.jsx(f.DistanceCell,{borderStyle:J,columnsMap:X,formattedDistance:N(t,L)}),!!E.length&&T.jsx(b.TaScoreCell,{data:t,borderStyle:J,columnsMap:X,taScoresMap:Z}),T.jsx(j.DateCell,{columnType:o.ColumnType.lastDrillingAt,data:t,borderStyle:J,columnsMap:X,lastCellColumn:ie}),X.has(o.ColumnType.lastInterventionAt)&&T.jsx(j.DateCell,{columnType:o.ColumnType.lastInterventionAt,data:t,borderStyle:J,columnsMap:X,lastCellColumn:ie}),T.jsx(S.MetricsCells,{data:t,metricsKeys:W,metricsMap:Y,borderStyle:J,columnsMap:X,lastCellColumn:ie,loadingWellIds:_,maxLines:me}),F&&T.jsx(w.WellSectionCell,{borderStyle:J,columnsMap:X,wellSectionData:Ce,getSectionColor:function(e){var l=v.default(e,1)[0];return $.get(l)}})]})}));O.displayName="OffsetWellsTableRow",exports.OffsetWellsTableRow=O;
|
|
2
2
|
//# sourceMappingURL=OffsetWellsTableRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffsetWellsTableRow.js","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.tsx"],"sourcesContent":["import { memo, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { get } from 'lodash';\nimport { TableRow } from '@material-ui/core';\n\nimport { ColumnType } from '../../../../constants';\nimport { useViewStore } from '../../../../stores/view-store/useViewStore';\nimport { useViewType } from '../../../../viewport';\nimport type { WellSection, TaScore } from '../../../../hooks/useExternalOffsets';\nimport {\n WellNameCell,\n StatusCell,\n CompanyCell,\n RigCell,\n InterventionAssetCell,\n PadNameCell,\n FormationCell,\n DistanceCell,\n TaScoreCell,\n DateCell,\n MetricsCells,\n WellSectionCell,\n} from '../../cells';\nimport { useRowMemoizedMaps } from '../../useRowMemoizedMaps';\nimport { useRowInteractions } from '../../useRowInteractions';\n\nimport styles from './OffsetWellsTableRow.module.css';\n\nimport { convertValue } from '~/utils';\n\nconst PAGE_NAME = 'OffsetWellsTableRow';\n\ntype ColumnConfig = {\n key: string;\n flex: number;\n minWidth: number;\n};\n\ntype WellData = {\n id: number;\n checked?: boolean;\n name?: string;\n status?: string;\n [key: string]: unknown;\n};\n\ntype MetricConfig = {\n key: string;\n label?: string;\n unitType?: string;\n from?: string;\n to?: string;\n precision?: number;\n};\n\ntype OffsetWellsTableRowProps = {\n columnsWithDict: ColumnConfig[];\n data: WellData;\n subjectWellId: number | undefined;\n metricsKeys: string[];\n metricsColumns: MetricConfig[];\n handleChangeOffsetWell: (well: WellData, checked: boolean) => void;\n wellNameStyle: string;\n isImperial: boolean;\n isLimitedOffsetWells: boolean;\n maxOffsetWellNumber: number;\n wellSections: WellSection[] | null;\n setActiveWellId: (id: number | null) => void;\n onRowClick: (id: number) => void;\n taScores: TaScore[];\n isWellSectionColumnVisible: boolean;\n loadingWellIds: Set<number>;\n registerRow: (wellId: number, node: HTMLElement | null) => void;\n};\n\nconst formatDistance = (data: WellData, isImperial: boolean): number | string => {\n const value = get(data, ColumnType.distance);\n if (typeof value === 'number' && Number.isFinite(value)) {\n return isImperial ? value : convertValue(value, 'length', 'mi', 'km');\n }\n return '\\u2014';\n};\n\nconst OffsetWellsTableRowComponent = ({\n columnsWithDict,\n data,\n subjectWellId,\n metricsKeys,\n metricsColumns,\n handleChangeOffsetWell,\n wellNameStyle,\n isImperial,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n wellSections,\n setActiveWellId,\n onRowClick,\n taScores,\n isWellSectionColumnVisible,\n loadingWellIds,\n registerRow,\n}: OffsetWellsTableRowProps) => {\n const { isMobile } = useViewType();\n const isWellNameExpand = useViewStore(state => state.isWellNameExpand);\n const dense = useViewStore(state => state.dense);\n const isDense = dense && !isMobile;\n const isSubjectWell = subjectWellId === data.id;\n const borderStyle = { [styles.subjectWellRow]: isSubjectWell };\n const hasCompanyColumn = columnsWithDict?.some(col => col.key === ColumnType.company);\n\n const { columnsMap, metricsMap, taScoresMap, wellSectionsMap, statusOptionsMap } =\n useRowMemoizedMaps({ columnsWithDict, metricsColumns, taScores, wellSections });\n\n const {\n isViewOnly,\n isMapHidden,\n isChecked,\n rowRef,\n handleChangeCheckbox,\n checkboxTooltipText,\n lastCellColumn,\n handleMouseEnter,\n handleMouseLeave,\n handleRowClick,\n } = useRowInteractions({\n data,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n metricsKeys,\n isWellSectionColumnVisible,\n hasLastInterventionAtColumn: columnsMap.has(ColumnType.lastInterventionAt),\n handleChangeOffsetWell,\n setActiveWellId,\n onRowClick,\n registerRow,\n });\n\n const maxLines = isDense ? 1 : 2;\n const wellName = (data[ColumnType.name] as string) || '\\u2014';\n\n const getSectionColor = ([sectionName]: string[]) => {\n return wellSectionsMap.get(sectionName);\n };\n\n const wellSectionData = useMemo(() => {\n return data[ColumnType.wellSection] as string[] | undefined;\n }, [data]);\n\n return (\n <TableRow\n ref={rowRef}\n data-testid={`${PAGE_NAME}_row_${wellName}`}\n data-well-id={data.id}\n data-dense={isDense ? 'true' : undefined}\n className={classNames(styles.bodyRow, { [styles.dense]: isDense })}\n title={isMapHidden ? undefined : 'Click to show on map'}\n onClick={handleRowClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <WellNameCell\n data={data}\n isSubjectWell={isSubjectWell}\n borderStyle={borderStyle}\n wellNameStyle={wellNameStyle}\n isWellNameExpand={isWellNameExpand}\n columnsMap={columnsMap}\n checkboxTooltipText={checkboxTooltipText}\n isViewOnly={isViewOnly}\n isLimitedOffsetWells={isLimitedOffsetWells}\n isChecked={isChecked}\n handleChangeCheckbox={handleChangeCheckbox}\n wellName={wellName}\n maxLines={maxLines}\n />\n\n <StatusCell\n data={data}\n isSubjectWell={isSubjectWell}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n isMobile={isMobile}\n statusOptionsMap={statusOptionsMap}\n />\n\n {hasCompanyColumn && (\n <CompanyCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.interventionAsset) && (\n <InterventionAssetCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.padName) && (\n <PadNameCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.formation) && (\n <FormationCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.rig) && (\n <RigCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.distance) && (\n <DistanceCell\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n formattedDistance={formatDistance(data, isImperial)}\n />\n )}\n\n {!!taScores.length && (\n <TaScoreCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n taScoresMap={taScoresMap}\n />\n )}\n\n <DateCell\n columnType={ColumnType.lastDrillingAt}\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n lastCellColumn={lastCellColumn}\n />\n\n {columnsMap.has(ColumnType.lastInterventionAt) && (\n <DateCell\n columnType={ColumnType.lastInterventionAt}\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n lastCellColumn={lastCellColumn}\n />\n )}\n\n <MetricsCells\n data={data}\n metricsKeys={metricsKeys}\n metricsMap={metricsMap}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n lastCellColumn={lastCellColumn}\n loadingWellIds={loadingWellIds}\n />\n\n {isWellSectionColumnVisible && (\n <WellSectionCell\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n wellSectionData={wellSectionData}\n getSectionColor={getSectionColor}\n />\n )}\n </TableRow>\n );\n};\n\nexport const OffsetWellsTableRow = memo(OffsetWellsTableRowComponent);\n\nOffsetWellsTableRow.displayName = 'OffsetWellsTableRow';\n"],"names":["formatDistance","data","isImperial","value","get","ColumnType","distance","Number","isFinite","convertValue","OffsetWellsTableRow","memo","_ref","columnsWithDict","subjectWellId","metricsKeys","metricsColumns","handleChangeOffsetWell","wellNameStyle","isLimitedOffsetWells","maxOffsetWellNumber","wellSections","setActiveWellId","onRowClick","taScores","isWellSectionColumnVisible","loadingWellIds","registerRow","isMobile","useViewType","isWellNameExpand","useViewStore","state","isDense","dense","isSubjectWell","id","borderStyle","styles","subjectWellRow","hasCompanyColumn","some","col","key","company","_useRowMemoizedMaps","useRowMemoizedMaps","columnsMap","metricsMap","taScoresMap","wellSectionsMap","statusOptionsMap","_useRowInteractions","useRowInteractions","hasLastInterventionAtColumn","has","lastInterventionAt","isViewOnly","isMapHidden","isChecked","rowRef","handleChangeCheckbox","checkboxTooltipText","lastCellColumn","handleMouseEnter","handleMouseLeave","handleRowClick","maxLines","wellName","name","wellSectionData","useMemo","wellSection","_jsxs","TableRow","ref","PAGE_NAME","undefined","className","classNames","bodyRow","title","onClick","onMouseEnter","onMouseLeave","children","_jsx","WellNameCell","StatusCell","jsx","CompanyCell","interventionAsset","InterventionAssetCell","padName","PadNameCell","formation","FormationCell","rig","RigCell","DistanceCell","formattedDistance","length","TaScoreCell","DateCell","columnType","lastDrillingAt","MetricsCells","WellSectionCell","getSectionColor","_ref2","sectionName","_slicedToArray","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OffsetWellsTableRow.js","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.tsx"],"sourcesContent":["import { memo, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { get } from 'lodash';\nimport { TableRow } from '@material-ui/core';\n\nimport { ColumnType } from '../../../../constants';\nimport { useViewStore } from '../../../../stores/view-store/useViewStore';\nimport { useViewType } from '../../../../viewport';\nimport type { WellSection, TaScore } from '../../../../hooks/useExternalOffsets';\nimport {\n WellNameCell,\n StatusCell,\n CompanyCell,\n RigCell,\n InterventionAssetCell,\n PadNameCell,\n FormationCell,\n DistanceCell,\n TaScoreCell,\n DateCell,\n MetricsCells,\n WellSectionCell,\n} from '../../cells';\nimport { useRowMemoizedMaps } from '../../useRowMemoizedMaps';\nimport { useRowInteractions } from '../../useRowInteractions';\n\nimport styles from './OffsetWellsTableRow.module.css';\n\nimport { convertValue } from '~/utils';\n\nconst PAGE_NAME = 'OffsetWellsTableRow';\n\ntype ColumnConfig = {\n key: string;\n flex: number;\n minWidth: number;\n};\n\ntype WellData = {\n id: number;\n checked?: boolean;\n name?: string;\n status?: string;\n [key: string]: unknown;\n};\n\ntype MetricConfig = {\n key: string;\n label?: string;\n unitType?: string;\n from?: string;\n to?: string;\n precision?: number;\n};\n\ntype OffsetWellsTableRowProps = {\n columnsWithDict: ColumnConfig[];\n data: WellData;\n subjectWellId: number | undefined;\n metricsKeys: string[];\n metricsColumns: MetricConfig[];\n handleChangeOffsetWell: (well: WellData, checked: boolean) => void;\n wellNameStyle: string;\n isImperial: boolean;\n isLimitedOffsetWells: boolean;\n maxOffsetWellNumber: number;\n wellSections: WellSection[] | null;\n setActiveWellId: (id: number | null) => void;\n onRowClick: (id: number) => void;\n taScores: TaScore[];\n isWellSectionColumnVisible: boolean;\n loadingWellIds: Set<number>;\n registerRow: (wellId: number, node: HTMLElement | null) => void;\n};\n\nconst formatDistance = (data: WellData, isImperial: boolean): number | string => {\n const value = get(data, ColumnType.distance);\n if (typeof value === 'number' && Number.isFinite(value)) {\n return isImperial ? value : convertValue(value, 'length', 'mi', 'km');\n }\n return '\\u2014';\n};\n\nconst OffsetWellsTableRowComponent = ({\n columnsWithDict,\n data,\n subjectWellId,\n metricsKeys,\n metricsColumns,\n handleChangeOffsetWell,\n wellNameStyle,\n isImperial,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n wellSections,\n setActiveWellId,\n onRowClick,\n taScores,\n isWellSectionColumnVisible,\n loadingWellIds,\n registerRow,\n}: OffsetWellsTableRowProps) => {\n const { isMobile } = useViewType();\n const isWellNameExpand = useViewStore(state => state.isWellNameExpand);\n const dense = useViewStore(state => state.dense);\n const isDense = dense && !isMobile;\n const isSubjectWell = subjectWellId === data.id;\n const borderStyle = { [styles.subjectWellRow]: isSubjectWell };\n const hasCompanyColumn = columnsWithDict?.some(col => col.key === ColumnType.company);\n\n const { columnsMap, metricsMap, taScoresMap, wellSectionsMap, statusOptionsMap } =\n useRowMemoizedMaps({ columnsWithDict, metricsColumns, taScores, wellSections });\n\n const {\n isViewOnly,\n isChecked,\n rowRef,\n handleChangeCheckbox,\n checkboxTooltipText,\n lastCellColumn,\n handleMouseEnter,\n handleMouseLeave,\n handleRowClick,\n } = useRowInteractions({\n data,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n metricsKeys,\n isWellSectionColumnVisible,\n hasLastInterventionAtColumn: columnsMap.has(ColumnType.lastInterventionAt),\n handleChangeOffsetWell,\n setActiveWellId,\n onRowClick,\n registerRow,\n });\n\n const maxLines = isDense ? 1 : 2;\n const wellName = (data[ColumnType.name] as string) || '\\u2014';\n\n const getSectionColor = ([sectionName]: string[]) => {\n return wellSectionsMap.get(sectionName);\n };\n\n const wellSectionData = useMemo(() => {\n return data[ColumnType.wellSection] as string[] | undefined;\n }, [data]);\n\n return (\n <TableRow\n ref={rowRef}\n data-testid={`${PAGE_NAME}_row_${wellName}`}\n data-well-id={data.id}\n data-dense={isDense ? 'true' : undefined}\n className={classNames(styles.bodyRow, { [styles.dense]: isDense })}\n onClick={handleRowClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <WellNameCell\n data={data}\n isSubjectWell={isSubjectWell}\n borderStyle={borderStyle}\n wellNameStyle={wellNameStyle}\n isWellNameExpand={isWellNameExpand}\n columnsMap={columnsMap}\n checkboxTooltipText={checkboxTooltipText}\n isViewOnly={isViewOnly}\n isLimitedOffsetWells={isLimitedOffsetWells}\n isChecked={isChecked}\n handleChangeCheckbox={handleChangeCheckbox}\n wellName={wellName}\n maxLines={maxLines}\n />\n\n <StatusCell\n data={data}\n isSubjectWell={isSubjectWell}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n isMobile={isMobile}\n statusOptionsMap={statusOptionsMap}\n />\n\n {hasCompanyColumn && (\n <CompanyCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.interventionAsset) && (\n <InterventionAssetCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.padName) && (\n <PadNameCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.formation) && (\n <FormationCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.rig) && (\n <RigCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n maxLines={maxLines}\n />\n )}\n\n {columnsMap.has(ColumnType.distance) && (\n <DistanceCell\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n formattedDistance={formatDistance(data, isImperial)}\n />\n )}\n\n {!!taScores.length && (\n <TaScoreCell\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n taScoresMap={taScoresMap}\n />\n )}\n\n <DateCell\n columnType={ColumnType.lastDrillingAt}\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n lastCellColumn={lastCellColumn}\n />\n\n {columnsMap.has(ColumnType.lastInterventionAt) && (\n <DateCell\n columnType={ColumnType.lastInterventionAt}\n data={data}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n lastCellColumn={lastCellColumn}\n />\n )}\n\n <MetricsCells\n data={data}\n metricsKeys={metricsKeys}\n metricsMap={metricsMap}\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n lastCellColumn={lastCellColumn}\n loadingWellIds={loadingWellIds}\n maxLines={maxLines}\n />\n\n {isWellSectionColumnVisible && (\n <WellSectionCell\n borderStyle={borderStyle}\n columnsMap={columnsMap}\n wellSectionData={wellSectionData}\n getSectionColor={getSectionColor}\n />\n )}\n </TableRow>\n );\n};\n\nexport const OffsetWellsTableRow = memo(OffsetWellsTableRowComponent);\n\nOffsetWellsTableRow.displayName = 'OffsetWellsTableRow';\n"],"names":["formatDistance","data","isImperial","value","get","ColumnType","distance","Number","isFinite","convertValue","OffsetWellsTableRow","memo","_ref","columnsWithDict","subjectWellId","metricsKeys","metricsColumns","handleChangeOffsetWell","wellNameStyle","isLimitedOffsetWells","maxOffsetWellNumber","wellSections","setActiveWellId","onRowClick","taScores","isWellSectionColumnVisible","loadingWellIds","registerRow","isMobile","useViewType","isWellNameExpand","useViewStore","state","isDense","dense","isSubjectWell","id","borderStyle","styles","subjectWellRow","hasCompanyColumn","some","col","key","company","_useRowMemoizedMaps","useRowMemoizedMaps","columnsMap","metricsMap","taScoresMap","wellSectionsMap","statusOptionsMap","_useRowInteractions","useRowInteractions","hasLastInterventionAtColumn","has","lastInterventionAt","isViewOnly","isChecked","rowRef","handleChangeCheckbox","checkboxTooltipText","lastCellColumn","handleMouseEnter","handleMouseLeave","handleRowClick","maxLines","wellName","name","wellSectionData","useMemo","wellSection","_jsxs","TableRow","ref","PAGE_NAME","undefined","className","classNames","bodyRow","onClick","onMouseEnter","onMouseLeave","children","_jsx","WellNameCell","StatusCell","jsx","CompanyCell","interventionAsset","InterventionAssetCell","padName","PadNameCell","formation","FormationCell","rig","RigCell","DistanceCell","formattedDistance","length","TaScoreCell","DateCell","columnType","lastDrillingAt","MetricsCells","WellSectionCell","getSectionColor","_ref2","sectionName","_slicedToArray","displayName"],"mappings":"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"}
|
package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("react"),n=require("../../stores/picker-props-store/usePickerPropsStore.js"),r=require("../../stores/view-store/useViewStore.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("react"),n=require("../../stores/picker-props-store/usePickerPropsStore.js"),r=require("../../stores/view-store/useViewStore.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(e);exports.useRowInteractions=function(e){var i=e.data,s=e.isLimitedOffsetWells,l=e.maxOffsetWellNumber,c=e.metricsKeys,u=e.isWellSectionColumnVisible,a=e.hasLastInterventionAtColumn,f=e.handleChangeOffsetWell,d=e.setActiveWellId,h=e.onRowClick,p=e.registerRow,k=n.usePickerPropsStore((function(e){return e.isWDUser})),m=n.usePickerPropsStore((function(e){return e.isViewOnly})),w=r.useViewStore((function(e){return e.isMapHidden})),C=t.useState(i.checked),b=o.default(C,2),v=b[0],S=b[1],W=t.useCallback((function(e){p(i.id,e)}),[p,i.id]);t.useEffect((function(){S(i.checked)}),[i.checked]);var O=t.useMemo((function(){return m?"View only mode. To edit offsets, use ".concat(k?"Offset Well Selection app":"WellHub","."):s&&!i.checked?"App can't process more than (".concat(l-1,") Offset Wells."):""}),[m,s,i.checked,k,l]),y=t.useMemo((function(){return u?"wellSection":c.length>0?"lastMetric":a?"lastInterventionAt":"lastDrillingAt"}),[u,c.length,a]);return{isViewOnly:m,isChecked:v,rowRef:W,handleChangeCheckbox:function(e){f(i,e),S(e)},checkboxTooltipText:O,lastCellColumn:y,handleMouseEnter:function(){d(i.id)},handleMouseLeave:function(){d(null)},handleRowClick:function(){w||null==h||h(i.id)}}};
|
|
2
2
|
//# sourceMappingURL=useRowInteractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRowInteractions.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.ts"],"sourcesContent":["import { useCallback, useEffect, useState, useMemo } from 'react';\n\nimport { usePickerPropsStore } from '../../stores/picker-props-store/usePickerPropsStore';\nimport { useViewStore } from '../../stores/view-store/useViewStore';\n\ntype WellData = {\n id: number;\n checked?: boolean;\n name?: string;\n status?: string;\n [key: string]: unknown;\n};\n\ntype UseRowInteractionsParams = {\n data: WellData;\n isLimitedOffsetWells: boolean;\n maxOffsetWellNumber: number;\n metricsKeys: string[];\n isWellSectionColumnVisible: boolean;\n hasLastInterventionAtColumn: boolean;\n handleChangeOffsetWell: (well: WellData, checked: boolean) => void;\n setActiveWellId: (id: number | null) => void;\n onRowClick: (id: number) => void;\n registerRow: (wellId: number, node: HTMLElement | null) => void;\n};\n\nexport const useRowInteractions = ({\n data,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n metricsKeys,\n isWellSectionColumnVisible,\n hasLastInterventionAtColumn,\n handleChangeOffsetWell,\n setActiveWellId,\n onRowClick,\n registerRow,\n}: UseRowInteractionsParams) => {\n const isWDUser = usePickerPropsStore(state => state.isWDUser);\n const isViewOnly = usePickerPropsStore(state => state.isViewOnly);\n const isMapHidden = useViewStore(state => state.isMapHidden);\n const [isChecked, setIsChecked] = useState(data.checked);\n\n const rowRef = useCallback(\n (node: HTMLElement | null) => {\n registerRow(data.id, node);\n },\n [registerRow, data.id]\n );\n\n const handleChangeCheckbox = (checked: boolean) => {\n handleChangeOffsetWell(data, checked);\n setIsChecked(checked);\n };\n\n useEffect(() => {\n setIsChecked(data.checked);\n }, [data.checked]);\n\n const checkboxTooltipText = useMemo(() => {\n if (isViewOnly) {\n return `View only mode. To edit offsets, use ${\n isWDUser ? 'Offset Well Selection app' : 'WellHub'\n }.`;\n } else if (isLimitedOffsetWells && !data.checked) {\n return `App can't process more than (${maxOffsetWellNumber - 1}) Offset Wells.`;\n } else {\n return '';\n }\n }, [isViewOnly, isLimitedOffsetWells, data.checked, isWDUser, maxOffsetWellNumber]);\n\n const lastCellColumn = useMemo(() => {\n if (isWellSectionColumnVisible) {\n return 'wellSection';\n }\n\n if (metricsKeys.length > 0) {\n return 'lastMetric';\n }\n\n return hasLastInterventionAtColumn ? 'lastInterventionAt' : 'lastDrillingAt';\n }, [isWellSectionColumnVisible, metricsKeys.length, hasLastInterventionAtColumn]);\n\n const handleMouseEnter = () => {\n setActiveWellId(data.id);\n };\n\n const handleMouseLeave = () => {\n setActiveWellId(null);\n };\n\n const handleRowClick = () => {\n if (!isMapHidden) {\n onRowClick?.(data.id);\n }\n };\n\n return {\n isViewOnly,\n
|
|
1
|
+
{"version":3,"file":"useRowInteractions.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.ts"],"sourcesContent":["import { useCallback, useEffect, useState, useMemo } from 'react';\n\nimport { usePickerPropsStore } from '../../stores/picker-props-store/usePickerPropsStore';\nimport { useViewStore } from '../../stores/view-store/useViewStore';\n\ntype WellData = {\n id: number;\n checked?: boolean;\n name?: string;\n status?: string;\n [key: string]: unknown;\n};\n\ntype UseRowInteractionsParams = {\n data: WellData;\n isLimitedOffsetWells: boolean;\n maxOffsetWellNumber: number;\n metricsKeys: string[];\n isWellSectionColumnVisible: boolean;\n hasLastInterventionAtColumn: boolean;\n handleChangeOffsetWell: (well: WellData, checked: boolean) => void;\n setActiveWellId: (id: number | null) => void;\n onRowClick: (id: number) => void;\n registerRow: (wellId: number, node: HTMLElement | null) => void;\n};\n\nexport const useRowInteractions = ({\n data,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n metricsKeys,\n isWellSectionColumnVisible,\n hasLastInterventionAtColumn,\n handleChangeOffsetWell,\n setActiveWellId,\n onRowClick,\n registerRow,\n}: UseRowInteractionsParams) => {\n const isWDUser = usePickerPropsStore(state => state.isWDUser);\n const isViewOnly = usePickerPropsStore(state => state.isViewOnly);\n const isMapHidden = useViewStore(state => state.isMapHidden);\n const [isChecked, setIsChecked] = useState(data.checked);\n\n const rowRef = useCallback(\n (node: HTMLElement | null) => {\n registerRow(data.id, node);\n },\n [registerRow, data.id]\n );\n\n const handleChangeCheckbox = (checked: boolean) => {\n handleChangeOffsetWell(data, checked);\n setIsChecked(checked);\n };\n\n useEffect(() => {\n setIsChecked(data.checked);\n }, [data.checked]);\n\n const checkboxTooltipText = useMemo(() => {\n if (isViewOnly) {\n return `View only mode. To edit offsets, use ${\n isWDUser ? 'Offset Well Selection app' : 'WellHub'\n }.`;\n } else if (isLimitedOffsetWells && !data.checked) {\n return `App can't process more than (${maxOffsetWellNumber - 1}) Offset Wells.`;\n } else {\n return '';\n }\n }, [isViewOnly, isLimitedOffsetWells, data.checked, isWDUser, maxOffsetWellNumber]);\n\n const lastCellColumn = useMemo(() => {\n if (isWellSectionColumnVisible) {\n return 'wellSection';\n }\n\n if (metricsKeys.length > 0) {\n return 'lastMetric';\n }\n\n return hasLastInterventionAtColumn ? 'lastInterventionAt' : 'lastDrillingAt';\n }, [isWellSectionColumnVisible, metricsKeys.length, hasLastInterventionAtColumn]);\n\n const handleMouseEnter = () => {\n setActiveWellId(data.id);\n };\n\n const handleMouseLeave = () => {\n setActiveWellId(null);\n };\n\n const handleRowClick = () => {\n if (!isMapHidden) {\n onRowClick?.(data.id);\n }\n };\n\n return {\n isViewOnly,\n isChecked,\n rowRef,\n handleChangeCheckbox,\n checkboxTooltipText,\n lastCellColumn,\n handleMouseEnter,\n handleMouseLeave,\n handleRowClick,\n };\n};\n"],"names":["_ref","data","isLimitedOffsetWells","maxOffsetWellNumber","metricsKeys","isWellSectionColumnVisible","hasLastInterventionAtColumn","handleChangeOffsetWell","setActiveWellId","onRowClick","registerRow","isWDUser","usePickerPropsStore","state","isViewOnly","isMapHidden","useViewStore","_useState","useState","checked","_useState2","_slicedToArray","isChecked","setIsChecked","rowRef","useCallback","node","id","useEffect","checkboxTooltipText","useMemo","concat","lastCellColumn","length","handleChangeCheckbox","handleMouseEnter","handleMouseLeave","handleRowClick"],"mappings":"oXA0BkC,SAWFA,GAAA,IAV9BC,IAAAA,KACAC,IAAAA,qBACAC,IAAAA,oBACAC,IAAAA,YACAC,IAAAA,2BACAC,IAAAA,4BACAC,IAAAA,uBACAC,IAAAA,gBACAC,IAAAA,WACAC,IAAAA,YAEMC,EAAWC,uBAAoB,SAAAC,GAAK,OAAIA,EAAMF,YAC9CG,EAAaF,uBAAoB,SAAAC,GAAK,OAAIA,EAAMC,cAChDC,EAAcC,gBAAa,SAAAH,GAAK,OAAIA,EAAME,eAChDE,EAAkCC,EAAAA,SAASjB,EAAKkB,SAAQC,EAAAC,EAAAA,QAAAJ,EAAA,GAAjDK,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAExBI,EAASC,eACb,SAACC,GACChB,EAAYT,EAAK0B,GAAID,EACtB,GACD,CAAChB,EAAaT,EAAK0B,KAQrBC,EAAAA,WAAU,WACRL,EAAatB,EAAKkB,QACpB,GAAG,CAAClB,EAAKkB,UAET,IAAMU,EAAsBC,EAAAA,SAAQ,WAClC,OAAIhB,EACF,wCAAAiB,OACEpB,EAAW,4BAA8B,UAAS,KAE3CT,IAAyBD,EAAKkB,QACAhB,gCAAAA,OAAAA,EAAsB,EAAC,mBAEvD,EAEX,GAAG,CAACW,EAAYZ,EAAsBD,EAAKkB,QAASR,EAAUR,IAExD6B,EAAiBF,EAAAA,SAAQ,WAC7B,OAAIzB,EACK,cAGLD,EAAY6B,OAAS,EAChB,aAGF3B,EAA8B,qBAAuB,gBAC7D,GAAE,CAACD,EAA4BD,EAAY6B,OAAQ3B,IAgBpD,MAAO,CACLQ,WAAAA,EACAQ,UAAAA,EACAE,OAAAA,EACAU,qBAnD2B,SAACf,GAC5BZ,EAAuBN,EAAMkB,GAC7BI,EAAaJ,IAkDbU,oBAAAA,EACAG,eAAAA,EACAG,iBArBuB,WACvB3B,EAAgBP,EAAK0B,KAqBrBS,iBAlBuB,WACvB5B,EAAgB,OAkBhB6B,eAfqB,WAChBtB,GACHN,SAAAA,EAAaR,EAAK0B,KAexB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("lodash");require("../UserMention/utils/index.js"),require("@babel/runtime/helpers/defineProperty"),require("../../utils/convert.js"),require("../../constants/completion.js"),require("moment"),require("../../constants/alerts.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../utils/casing/validation.js"),require("@babel/runtime/helpers/slicedToArray"),require("lodash/mean"),require("../../constants/streamSourceType.js"),require("lodash/get"),require("file-saver"),require("query-string"),require("../../constants/goals.js"),require("../../constants/segment.js"),require("../../constants/apps.js"),require("../../constants/drillstring.js"),require("../../constants/appPackages.js"),require("../../constants/notifications.js"),require("../../constants/feed.js"),require("../../constants/bha.js"),require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js"),require("../../utils/drillstring/conversion.js"),require("lodash/set"),require("lodash/cloneDeep"),require("lodash/isNumber"),require("lodash/has"),require("../../utils/ga.js"),require("../../utils/goalsConfig/goalsConfig.js"),require("../../utils/lasParser.js"),require("../../utils/main.js");var r=require("../../utils/metrics/metricsConfig.js");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("lodash");require("../UserMention/utils/index.js"),require("@babel/runtime/helpers/defineProperty"),require("../../utils/convert.js"),require("../../constants/completion.js"),require("moment"),require("../../constants/alerts.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../utils/casing/validation.js"),require("@babel/runtime/helpers/slicedToArray"),require("lodash/mean"),require("../../constants/streamSourceType.js"),require("lodash/get"),require("file-saver"),require("query-string"),require("../../constants/goals.js"),require("../../constants/segment.js"),require("../../constants/apps.js"),require("../../constants/drillstring.js"),require("../../constants/appPackages.js"),require("../../constants/notifications.js"),require("../../constants/feed.js"),require("../../constants/bha.js"),require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js"),require("../../utils/drillstring/conversion.js"),require("lodash/set"),require("lodash/cloneDeep"),require("lodash/isNumber"),require("lodash/has"),require("../../utils/ga.js"),require("../../utils/goalsConfig/goalsConfig.js"),require("../../utils/lasParser.js"),require("../../utils/main.js");var r=require("../../utils/metrics/metricsConfig.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../utils/mobileDetect.js"),require("../../utils/feed.js"),require("../../utils/reports.js"),require("moment-timezone"),require("@babel/runtime/helpers/typeof"),require("../../utils/dashboardReports.js"),require("../../utils/env.js"),require("file-extension"),require("image-extensions"),require("video-extensions"),require("../../utils/jsonaDataFormatter.js"),require("../../utils/bha.js"),require("jsona"),require("../../clients/jsonApi/index.js"),require("@babel/runtime/helpers/objectWithoutProperties"),require("classnames"),require("../../utils/charts/Styles.scss.js"),require("../../utils/getSingleAsset.js");var s=a(e),i=r,l=[i.mud_type.key],n={status:"status",company:"companyId",rig:"rigName",program:"programName",basin:"basin",county:"county",area:"area",formation:"formation",stringDesign:"stringDesign",interventionAsset:"interventionAsset",padName:"padName",radius:"radius",period:"period",sideTracks:"sideTracks",drillingWells:"drillingWells",activeInterventionWells:"activeInterventionWells",timeRangeFrom:"timeRangeFrom",timeRangeTo:"timeRangeTo"},o=[{value:n.company,label:"Company"},{value:n.program,label:"Program/BU"},{value:n.rig,label:"Rig"},{value:n.basin,label:"Basin"},{value:n.county,label:"County"},{value:n.area,label:"Area"},{value:n.formation,label:"Target Formation"},{value:n.stringDesign,label:"String Design"},{value:n.interventionAsset,label:"Intervention Asset"},{value:n.padName,label:"Pad"},{value:n.status,label:"Status"}],u={unknown:"unknown",idle:"idle",active:"active",paused:"paused",complete:"complete"},p=[{value:u.unknown,color:"#FFFFFF"},{value:u.idle,color:"#ADADFF"},{value:u.active,color:"#A8FF3D"},{value:u.paused,color:"#FFF66C"},{value:u.complete,color:"#76C2FF"}],m={name:"name",status:"status",company:"companyName",rig:"rigName",interventionAsset:"interventionAsset",padName:"padName",formation:"formation",distance:"distance",taScore:"TA",lastDrillingAt:"lastDrillingAt",lastInterventionAt:"lastInterventionAt",metrics:"metrics",wellSection:"wellSection"},c=[{type:m.name,label:"Well Name",key:m.name,minWidth:[280,197,197,186],flex:3},{type:m.status,label:"",key:m.status,minWidth:[40,40,40,30],flex:0},{type:m.company,label:"Company",key:m.company,minWidth:[180,140,140,93],flex:2},{type:m.interventionAsset,label:"Intervention Asset",key:m.interventionAsset,minWidth:[200,150,150,100],flex:2},{type:m.padName,label:"Pad",key:m.padName,minWidth:[160,130,130,90],flex:1.5},{type:m.formation,label:"Formation",key:m.formation,minWidth:[160,130,130,90],flex:1.5},{type:m.rig,label:"Rig",key:m.rig,minWidth:[220,140,140,93],flex:2},{type:m.distance,label:"Distance",key:m.distance,minWidth:[160,160,122,93],flex:1},{type:m.taScore,label:"TA",key:m.taScore,minWidth:[90,90,75,70],flex:1},{type:m.lastDrillingAt,label:"Date",key:m.lastDrillingAt,minWidth:[140,140,108,98],flex:1.5},{type:m.lastInterventionAt,label:"Last Intervention At",key:m.lastInterventionAt,minWidth:[180,160,128,108],flex:1.5},{type:m.metrics,label:"",key:"",minWidth:[0,212,141,141],flex:2},{type:m.wellSection,label:"Well Section",key:m.wellSection,minWidth:[180,131,131,97],flex:1.5}],d={key:"stringDesign",label:"String Design"},_=[d.key],g=t.sortBy([d,i.hole_depth,i.hole_depth_change,i.hole_depth_change_lateral,i.drilled_feet_rotary,i.drilled_feet_slide,i.rop_gross,i.rop,i.rop_rotary,i.rop_slide,i.drilled_feet_rotary_percentage,i.drilled_feet_slide_percentage,i.on_bottom_percentage,i.cost_per_ft,i.cost_per_lat_ft,i.feet_per_day,i.target_formation,i.mud_type,i.total_time].concat(s.default("production"!==process.env.REACT_APP_ENVIRONMENT?[i.npt,i.circulating_time,i.spud_to_rig_release_time,i.spud_to_total_depth_time]:[])),"label");exports.ALL_SECTION_KEY="all",exports.ALL_SECTION_LABEL="All",exports.COMPANY_PROVIDERS_FOR_IDAS=["xto"],exports.ColumnType=m,exports.DEFAULT_RADIUS_KM=40,exports.DEFAULT_RADIUS_MILES=25,exports.EXPANDED_WELL_NAME_WIDTH=450,exports.FilterOptions=o,exports.FilterType=n,exports.H_SCROLL_THRESHOLD=5,exports.LEAVE_TOUCH_DELAY=1e4,exports.MAX_MANUAL_METRICS_COUNT=5,exports.METRICS_LIST=g,exports.MapLayout={width:{default:600,min:314,max:900},minContentWidth:400,columnsGap:16,hintsStashBreakpoint:480},exports.NonConvertableMetrics=l,exports.OBJECTIVE_PERIOD_LIST=[{value:"all",label:"All"},{value:"last12h",label:"Last 12 hrs"},{value:"last24h",label:"Last 24 hrs"},{value:"last7d",label:"Last 7 days"},{value:"lastMonth",label:"Last Month"},{value:"last6Months",label:"Last 6 months"},{value:"yearToDate",label:"Year to Date"},{value:"last1Year",label:"Last 1 Year"},{value:"custom",label:"Custom"}],exports.ROWS_PER_PAGE=50,exports.STRING_DESIGN_METRIC=d,exports.SortDirection={ASC:"ASC",DESC:"DESC"},exports.StatusOptions=p,exports.TableColumns=c,exports.WELL_ATTRIBUTE_METRICS=_,exports.WellSectionColors=["#6EACFF","#69B919","#E95DAF","#A77DFF","#77FFC1","#018EFE","#FF5D7E","#B9E310","#FFD111","#24BB8E","#C426F3"],exports.WellStatus=u;
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/components/OffsetWellPickerV5/constants.ts"],"sourcesContent":["import { sortBy } from 'lodash';\n\nimport { metricsUtils } from '~/utils';\n\nexport const DEFAULT_RADIUS_MILES = 25;\nexport const DEFAULT_RADIUS_KM = 40;\n\nexport const ALL_SECTION_KEY = 'all';\nexport const ALL_SECTION_LABEL = 'All';\nexport const EXPANDED_WELL_NAME_WIDTH = 450;\nexport const ROWS_PER_PAGE = 50;\n// Horizontal scroll (px) past which the sticky well-name column casts its shadow.\nexport const H_SCROLL_THRESHOLD = 5;\nexport const LEAVE_TOUCH_DELAY = 10000;\nexport const COMPANY_PROVIDERS_FOR_IDAS = ['xto'] as const;\nconst metrics = metricsUtils.default;\n\nexport const NonConvertableMetrics = [metrics.mud_type.key] as const;\n\nexport const FilterType = {\n status: 'status',\n company: 'companyId',\n rig: 'rigName',\n program: 'programName',\n basin: 'basin',\n county: 'county',\n area: 'area',\n formation: 'formation',\n stringDesign: 'stringDesign',\n interventionAsset: 'interventionAsset',\n padName: 'padName',\n radius: 'radius',\n period: 'period',\n sideTracks: 'sideTracks',\n drillingWells: 'drillingWells',\n activeInterventionWells: 'activeInterventionWells',\n timeRangeFrom: 'timeRangeFrom',\n timeRangeTo: 'timeRangeTo',\n} as const;\n\nexport const FilterOptions = [\n {\n value: FilterType.company,\n label: 'Company',\n },\n {\n value: FilterType.program,\n label: 'Program/BU',\n },\n {\n value: FilterType.rig,\n label: 'Rig',\n },\n {\n value: FilterType.basin,\n label: 'Basin',\n },\n {\n value: FilterType.county,\n label: 'County',\n },\n {\n value: FilterType.area,\n label: 'Area',\n },\n {\n value: FilterType.formation,\n label: 'Target Formation',\n },\n {\n value: FilterType.stringDesign,\n label: 'String Design',\n },\n {\n value: FilterType.interventionAsset,\n label: 'Intervention Asset',\n },\n {\n value: FilterType.padName,\n label: 'Pad',\n },\n {\n value: FilterType.status,\n label: 'Status',\n },\n] as const;\n\nexport const WellStatus = {\n unknown: 'unknown',\n idle: 'idle',\n active: 'active',\n paused: 'paused',\n complete: 'complete',\n} as const;\n\nexport const StatusOptions = [\n { value: WellStatus.unknown, color: '#FFFFFF' },\n { value: WellStatus.idle, color: '#ADADFF' },\n { value: WellStatus.active, color: '#A8FF3D' },\n { value: WellStatus.paused, color: '#FFF66C' },\n { value: WellStatus.complete, color: '#76C2FF' },\n] as const;\n\nexport const ColumnType = {\n name: 'name',\n status: 'status',\n company: 'companyName',\n rig: 'rigName',\n interventionAsset: 'interventionAsset',\n padName: 'padName',\n formation: 'formation',\n distance: 'distance',\n taScore: 'TA',\n lastDrillingAt: 'lastDrillingAt',\n lastInterventionAt: 'lastInterventionAt',\n metrics: 'metrics',\n wellSection: 'wellSection',\n} as const;\n\nexport const TableColumns = [\n {\n type: ColumnType.name,\n label: 'Well Name',\n key: ColumnType.name,\n minWidth: [280, 197, 197, 186] as const,\n flex: 3,\n },\n {\n type: ColumnType.status,\n label: '',\n key: ColumnType.status,\n minWidth: [40, 40, 40, 30] as const,\n flex: 0,\n },\n {\n type: ColumnType.company,\n label: 'Company',\n key: ColumnType.company,\n minWidth: [180, 140, 140, 93] as const,\n flex: 2,\n },\n {\n type: ColumnType.interventionAsset,\n label: 'Intervention Asset',\n key: ColumnType.interventionAsset,\n minWidth: [200, 150, 150, 100] as const,\n flex: 2,\n },\n {\n type: ColumnType.padName,\n label: 'Pad',\n key: ColumnType.padName,\n minWidth: [160, 130, 130, 90] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.formation,\n label: 'Formation',\n key: ColumnType.formation,\n minWidth: [160, 130, 130, 90] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.rig,\n label: 'Rig',\n key: ColumnType.rig,\n minWidth: [220, 140, 140, 93] as const,\n flex: 2,\n },\n {\n type: ColumnType.distance,\n label: 'Distance',\n key: ColumnType.distance,\n minWidth: [160, 160, 122, 93] as const,\n flex: 1,\n },\n {\n type: ColumnType.taScore,\n label: 'TA',\n key: ColumnType.taScore,\n minWidth: [90, 90, 75, 70] as const,\n flex: 1,\n },\n {\n type: ColumnType.lastDrillingAt,\n label: 'Date',\n key: ColumnType.lastDrillingAt,\n minWidth: [140, 140, 108, 98] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.lastInterventionAt,\n label: 'Last Intervention At',\n key: ColumnType.lastInterventionAt,\n minWidth: [180, 160, 128, 108] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.metrics,\n label: '',\n key: '',\n minWidth: [0, 212, 141, 141] as const,\n flex: 2,\n },\n {\n type: ColumnType.wellSection,\n label: 'Well Section',\n key: ColumnType.wellSection,\n minWidth: [180, 131, 131, 97] as const,\n flex: 1.5,\n },\n];\n\nexport const OBJECTIVE_PERIOD_LIST = [\n { value: 'all', label: 'All' },\n { value: 'last12h', label: 'Last 12 hrs' },\n { value: 'last24h', label: 'Last 24 hrs' },\n { value: 'last7d', label: 'Last 7 days' },\n { value: 'lastMonth', label: 'Last Month' },\n { value: 'custom', label: 'Custom' },\n] as const;\n\n/**\n * Max metrics a user can manually pick in the Settings checklist.\n * Excludes the segment's always-present default metric, so the total number of\n * metric columns is `MAX_MANUAL_METRICS_COUNT + 1` when a default exists.\n */\nexport const MAX_MANUAL_METRICS_COUNT = 2;\n\nexport const METRICS_LIST = sortBy(\n [\n metrics.hole_depth,\n metrics.hole_depth_change,\n metrics.hole_depth_change_lateral,\n metrics.drilled_feet_rotary,\n metrics.drilled_feet_slide,\n metrics.rop_gross,\n metrics.rop,\n metrics.rop_rotary,\n metrics.rop_slide,\n metrics.drilled_feet_rotary_percentage,\n metrics.drilled_feet_slide_percentage,\n metrics.on_bottom_percentage,\n metrics.cost_per_ft,\n metrics.cost_per_lat_ft,\n metrics.feet_per_day,\n metrics.target_formation,\n metrics.mud_type,\n metrics.total_time,\n ...(process.env.REACT_APP_ENVIRONMENT !== 'production'\n ? [\n metrics.npt,\n metrics.circulating_time,\n metrics.spud_to_rig_release_time,\n metrics.spud_to_total_depth_time,\n ]\n : []),\n ],\n 'label'\n);\n\nexport const WellSectionColors = [\n '#6EACFF',\n '#69B919',\n '#E95DAF',\n '#A77DFF',\n '#77FFC1',\n '#018EFE',\n '#FF5D7E',\n '#B9E310',\n '#FFD111',\n '#24BB8E',\n '#C426F3',\n] as const;\n\n// --- Resizable map ---\n// Layout for the draggable map/content split (px). Width bounds are configurable; tune\n// min/max on large monitors. `mapWidth` is persisted per user (see view-store /\n// user-settings-store).\n//\n// `minContentWidth` and `columnsGap` mirror values authored in\n// `OffsetWellPickerV5.module.css` (`.rightColumn { min-width: 400px }` and\n// `.columnsContainer { gap: 16px }`); they exist here only for the effective-max clamp\n// math and must stay in sync with the CSS. `hintsStashBreakpoint` is the map width at/below\n// which the top-right hints collapse into an icon + dropdown stash — but only while the top-left\n// radius input is also visible (they compete for the same horizontal band). With the radius input\n// hidden the hints stay expanded down to the map's min width.\nexport const MapLayout = {\n width: {\n default: 600,\n min: 314,\n max: 900, // ~1.5× default — largest the map should grow on a big modal\n },\n minContentWidth: 400,\n columnsGap: 16,\n hintsStashBreakpoint: 480,\n} as const;\n\nexport const DEFAULT_METRICS_KEY = 'hole_depth_change';\n\nexport type SortDirectionType = 'ASC' | 'DESC';\n\nexport type SortDirectionStatic = {\n ASC: 'ASC';\n DESC: 'DESC';\n};\n\nexport const SortDirection: SortDirectionStatic = { ASC: 'ASC', DESC: 'DESC' };\n"],"names":["metrics","metricsUtils","NonConvertableMetrics","mud_type","key","FilterType","status","company","rig","program","basin","county","area","formation","stringDesign","interventionAsset","padName","radius","period","sideTracks","drillingWells","activeInterventionWells","timeRangeFrom","timeRangeTo","FilterOptions","value","label","WellStatus","unknown","idle","active","paused","complete","StatusOptions","color","ColumnType","name","distance","taScore","lastDrillingAt","lastInterventionAt","wellSection","TableColumns","type","minWidth","flex","METRICS_LIST","sortBy","hole_depth","hole_depth_change","hole_depth_change_lateral","drilled_feet_rotary","drilled_feet_slide","rop_gross","rop","rop_rotary","rop_slide","drilled_feet_rotary_percentage","drilled_feet_slide_percentage","on_bottom_percentage","cost_per_ft","cost_per_lat_ft","feet_per_day","target_formation","total_time","process","env","REACT_APP_ENVIRONMENT","npt","circulating_time","spud_to_rig_release_time","spud_to_total_depth_time","width","default","min","max","minContentWidth","columnsGap","hintsStashBreakpoint","ASC","DESC"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/OffsetWellPickerV5/constants.ts"],"sourcesContent":["import { sortBy } from 'lodash';\n\nimport { metricsUtils } from '~/utils';\n\nexport const DEFAULT_RADIUS_MILES = 25;\nexport const DEFAULT_RADIUS_KM = 40;\n\nexport const ALL_SECTION_KEY = 'all';\nexport const ALL_SECTION_LABEL = 'All';\nexport const EXPANDED_WELL_NAME_WIDTH = 450;\nexport const ROWS_PER_PAGE = 50;\n// Horizontal scroll (px) past which the sticky well-name column casts its shadow.\nexport const H_SCROLL_THRESHOLD = 5;\nexport const LEAVE_TOUCH_DELAY = 10000;\nexport const COMPANY_PROVIDERS_FOR_IDAS = ['xto'] as const;\nconst metrics = metricsUtils.default;\n\nexport const NonConvertableMetrics = [metrics.mud_type.key] as const;\n\nexport const FilterType = {\n status: 'status',\n company: 'companyId',\n rig: 'rigName',\n program: 'programName',\n basin: 'basin',\n county: 'county',\n area: 'area',\n formation: 'formation',\n stringDesign: 'stringDesign',\n interventionAsset: 'interventionAsset',\n padName: 'padName',\n radius: 'radius',\n period: 'period',\n sideTracks: 'sideTracks',\n drillingWells: 'drillingWells',\n activeInterventionWells: 'activeInterventionWells',\n timeRangeFrom: 'timeRangeFrom',\n timeRangeTo: 'timeRangeTo',\n} as const;\n\nexport const FilterOptions = [\n {\n value: FilterType.company,\n label: 'Company',\n },\n {\n value: FilterType.program,\n label: 'Program/BU',\n },\n {\n value: FilterType.rig,\n label: 'Rig',\n },\n {\n value: FilterType.basin,\n label: 'Basin',\n },\n {\n value: FilterType.county,\n label: 'County',\n },\n {\n value: FilterType.area,\n label: 'Area',\n },\n {\n value: FilterType.formation,\n label: 'Target Formation',\n },\n {\n value: FilterType.stringDesign,\n label: 'String Design',\n },\n {\n value: FilterType.interventionAsset,\n label: 'Intervention Asset',\n },\n {\n value: FilterType.padName,\n label: 'Pad',\n },\n {\n value: FilterType.status,\n label: 'Status',\n },\n] as const;\n\nexport const WellStatus = {\n unknown: 'unknown',\n idle: 'idle',\n active: 'active',\n paused: 'paused',\n complete: 'complete',\n} as const;\n\nexport const StatusOptions = [\n { value: WellStatus.unknown, color: '#FFFFFF' },\n { value: WellStatus.idle, color: '#ADADFF' },\n { value: WellStatus.active, color: '#A8FF3D' },\n { value: WellStatus.paused, color: '#FFF66C' },\n { value: WellStatus.complete, color: '#76C2FF' },\n] as const;\n\nexport const ColumnType = {\n name: 'name',\n status: 'status',\n company: 'companyName',\n rig: 'rigName',\n interventionAsset: 'interventionAsset',\n padName: 'padName',\n formation: 'formation',\n distance: 'distance',\n taScore: 'TA',\n lastDrillingAt: 'lastDrillingAt',\n lastInterventionAt: 'lastInterventionAt',\n metrics: 'metrics',\n wellSection: 'wellSection',\n} as const;\n\nexport const TableColumns = [\n {\n type: ColumnType.name,\n label: 'Well Name',\n key: ColumnType.name,\n minWidth: [280, 197, 197, 186] as const,\n flex: 3,\n },\n {\n type: ColumnType.status,\n label: '',\n key: ColumnType.status,\n minWidth: [40, 40, 40, 30] as const,\n flex: 0,\n },\n {\n type: ColumnType.company,\n label: 'Company',\n key: ColumnType.company,\n minWidth: [180, 140, 140, 93] as const,\n flex: 2,\n },\n {\n type: ColumnType.interventionAsset,\n label: 'Intervention Asset',\n key: ColumnType.interventionAsset,\n minWidth: [200, 150, 150, 100] as const,\n flex: 2,\n },\n {\n type: ColumnType.padName,\n label: 'Pad',\n key: ColumnType.padName,\n minWidth: [160, 130, 130, 90] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.formation,\n label: 'Formation',\n key: ColumnType.formation,\n minWidth: [160, 130, 130, 90] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.rig,\n label: 'Rig',\n key: ColumnType.rig,\n minWidth: [220, 140, 140, 93] as const,\n flex: 2,\n },\n {\n type: ColumnType.distance,\n label: 'Distance',\n key: ColumnType.distance,\n minWidth: [160, 160, 122, 93] as const,\n flex: 1,\n },\n {\n type: ColumnType.taScore,\n label: 'TA',\n key: ColumnType.taScore,\n minWidth: [90, 90, 75, 70] as const,\n flex: 1,\n },\n {\n type: ColumnType.lastDrillingAt,\n label: 'Date',\n key: ColumnType.lastDrillingAt,\n minWidth: [140, 140, 108, 98] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.lastInterventionAt,\n label: 'Last Intervention At',\n key: ColumnType.lastInterventionAt,\n minWidth: [180, 160, 128, 108] as const,\n flex: 1.5,\n },\n {\n type: ColumnType.metrics,\n label: '',\n key: '',\n minWidth: [0, 212, 141, 141] as const,\n flex: 2,\n },\n {\n type: ColumnType.wellSection,\n label: 'Well Section',\n key: ColumnType.wellSection,\n minWidth: [180, 131, 131, 97] as const,\n flex: 1.5,\n },\n];\n\nexport const OBJECTIVE_PERIOD_LIST = [\n { value: 'all', label: 'All' },\n { value: 'last12h', label: 'Last 12 hrs' },\n { value: 'last24h', label: 'Last 24 hrs' },\n { value: 'last7d', label: 'Last 7 days' },\n { value: 'lastMonth', label: 'Last Month' },\n { value: 'last6Months', label: 'Last 6 months' },\n { value: 'yearToDate', label: 'Year to Date' },\n { value: 'last1Year', label: 'Last 1 Year' },\n { value: 'custom', label: 'Custom' },\n] as const;\n\n/**\n * Max metrics a user can manually pick in the Settings checklist.\n * Excludes the segment's always-present default metric, so the total number of\n * metric columns is `MAX_MANUAL_METRICS_COUNT + 1` when a default exists.\n */\nexport const MAX_MANUAL_METRICS_COUNT = 5;\n\n/**\n * Pseudo-metric: selectable, capped and rendered like a metric, but its value is the well's\n * `stringDesign` attribute, not a `corva/metrics` record. Kept local so the shared metrics\n * config stays a list of real metrics.\n */\nexport const STRING_DESIGN_METRIC = { key: 'stringDesign', label: 'String Design' } as const;\n\n/** Metric keys read from well attributes — never requested from the metrics API. */\nexport const WELL_ATTRIBUTE_METRICS: readonly string[] = [STRING_DESIGN_METRIC.key];\n\nexport const METRICS_LIST = sortBy(\n [\n STRING_DESIGN_METRIC,\n metrics.hole_depth,\n metrics.hole_depth_change,\n metrics.hole_depth_change_lateral,\n metrics.drilled_feet_rotary,\n metrics.drilled_feet_slide,\n metrics.rop_gross,\n metrics.rop,\n metrics.rop_rotary,\n metrics.rop_slide,\n metrics.drilled_feet_rotary_percentage,\n metrics.drilled_feet_slide_percentage,\n metrics.on_bottom_percentage,\n metrics.cost_per_ft,\n metrics.cost_per_lat_ft,\n metrics.feet_per_day,\n metrics.target_formation,\n metrics.mud_type,\n metrics.total_time,\n ...(process.env.REACT_APP_ENVIRONMENT !== 'production'\n ? [\n metrics.npt,\n metrics.circulating_time,\n metrics.spud_to_rig_release_time,\n metrics.spud_to_total_depth_time,\n ]\n : []),\n ],\n 'label'\n);\n\nexport const WellSectionColors = [\n '#6EACFF',\n '#69B919',\n '#E95DAF',\n '#A77DFF',\n '#77FFC1',\n '#018EFE',\n '#FF5D7E',\n '#B9E310',\n '#FFD111',\n '#24BB8E',\n '#C426F3',\n] as const;\n\n// --- Resizable map ---\n// Layout for the draggable map/content split (px). Width bounds are configurable; tune\n// min/max on large monitors. `mapWidth` is persisted per user (see view-store /\n// user-settings-store).\n//\n// `minContentWidth` and `columnsGap` mirror values authored in\n// `OffsetWellPickerV5.module.css` (`.rightColumn { min-width: 400px }` and\n// `.columnsContainer { gap: 16px }`); they exist here only for the effective-max clamp\n// math and must stay in sync with the CSS. `hintsStashBreakpoint` is the map width at/below\n// which the top-right hints collapse into an icon + dropdown stash — but only while the top-left\n// radius input is also visible (they compete for the same horizontal band). With the radius input\n// hidden the hints stay expanded down to the map's min width.\nexport const MapLayout = {\n width: {\n default: 600,\n min: 314,\n max: 900, // ~1.5× default — largest the map should grow on a big modal\n },\n minContentWidth: 400,\n columnsGap: 16,\n hintsStashBreakpoint: 480,\n} as const;\n\nexport const DEFAULT_METRICS_KEY = 'hole_depth_change';\n\nexport type SortDirectionType = 'ASC' | 'DESC';\n\nexport type SortDirectionStatic = {\n ASC: 'ASC';\n DESC: 'DESC';\n};\n\nexport const SortDirection: SortDirectionStatic = { ASC: 'ASC', DESC: 'DESC' };\n"],"names":["metrics","metricsUtils","NonConvertableMetrics","mud_type","key","FilterType","status","company","rig","program","basin","county","area","formation","stringDesign","interventionAsset","padName","radius","period","sideTracks","drillingWells","activeInterventionWells","timeRangeFrom","timeRangeTo","FilterOptions","value","label","WellStatus","unknown","idle","active","paused","complete","StatusOptions","color","ColumnType","name","distance","taScore","lastDrillingAt","lastInterventionAt","wellSection","TableColumns","type","minWidth","flex","STRING_DESIGN_METRIC","WELL_ATTRIBUTE_METRICS","METRICS_LIST","sortBy","hole_depth","hole_depth_change","hole_depth_change_lateral","drilled_feet_rotary","drilled_feet_slide","rop_gross","rop","rop_rotary","rop_slide","drilled_feet_rotary_percentage","drilled_feet_slide_percentage","on_bottom_percentage","cost_per_ft","cost_per_lat_ft","feet_per_day","target_formation","total_time","process","env","REACT_APP_ENVIRONMENT","npt","circulating_time","spud_to_rig_release_time","spud_to_total_depth_time","width","default","min","max","minContentWidth","columnsGap","hintsStashBreakpoint","ASC","DESC"],"mappings":"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"}
|
package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),u=require("react"),i=require("lodash");require("@babel/runtime/helpers/toConsumableArray"),require("uuid"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../../clients/jsonApi/index.js"),require("../../../../clients/subscriptions/constants.js"),require("../../../../clients/subscriptions.v1.js"),require("../../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../../clients/api/apiCore.js"),require("../../../../clients/constants.js"),require("../../../../clients/sso/auth0.js"),require("../../../../clients/sso/oauth2.js"),require("../../../../clients/api/rateLimiter.js");var s=require("../../constants.js");require("../../api/shared/dataFormatter.js");var a=require("../../api/metrics/fetchMetricsData.js"),c=require("../../stores/picker-props-store/usePickerPropsStore.js"),o=require("../../segment-config/index.js"),l=require("./wellTransformations.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=f(e),d=f(r),b=f(t),m=f(n);function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function j(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?v(Object(t),!0).forEach((function(r){d.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var q=function(e){return Number.isFinite(e)?parseFloat(e.toFixed(2)):null};exports.useAdvancedWells=function(e,r,t,n,f,v){var h=c.usePickerPropsStore((function(e){return e.segment})),g=o.getSegmentConfig(h).metricsCollection,y=u.useState(null),O=b.default(y,2),w=O[0],P=O[1],S=u.useState(!1),x=b.default(S,2),k=x[0],E=x[1],
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),u=require("react"),i=require("lodash");require("@babel/runtime/helpers/toConsumableArray"),require("uuid"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../../clients/jsonApi/index.js"),require("../../../../clients/subscriptions/constants.js"),require("../../../../clients/subscriptions.v1.js"),require("../../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../../clients/api/apiCore.js"),require("../../../../clients/constants.js"),require("../../../../clients/sso/auth0.js"),require("../../../../clients/sso/oauth2.js"),require("../../../../clients/api/rateLimiter.js");var s=require("../../constants.js");require("../../api/shared/dataFormatter.js");var a=require("../../api/metrics/fetchMetricsData.js"),c=require("../../stores/picker-props-store/usePickerPropsStore.js"),o=require("../../segment-config/index.js"),l=require("./wellTransformations.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=f(e),d=f(r),b=f(t),m=f(n);function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function j(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?v(Object(t),!0).forEach((function(r){d.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var q=function(e){return Number.isFinite(e)?parseFloat(e.toFixed(2)):null};exports.useAdvancedWells=function(e,r,t,n,f,v){var h=c.usePickerPropsStore((function(e){return e.segment})),g=o.getSegmentConfig(h).metricsCollection,y=u.useState(null),O=b.default(y,2),w=O[0],P=O[1],S=u.useState(!1),x=b.default(S,2),k=x[0],E=x[1],M=u.useState(new Set),A=b.default(M,2),C=A[0],T=A[1],D=u.useRef({}),R=f.filter((function(e){return!s.WELL_ATTRIBUTE_METRICS.includes(e)})).join(),_=u.useMemo((function(){return R?R.split(","):[]}),[R]),F=u.useRef(_),I=u.useRef(g),B=u.useRef(null),L=u.useMemo((function(){return v&&e?l.transformWells(e,n,r,t):null}),[e,n,r,t,v]);return u.useEffect((function(){if(!L||!v)return E(!1),void T(new Set);var e=L.map((function(e){return j(j({},e),D.current[e.id]||{})}));P(e),E(!0),B.current&&B.current.abort();var r=new AbortController;B.current=r;var t=function(){var e=p.default(m.default.mark((function e(){var t,n,u,c,o,l,f,v,h,y,O;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t=[],n=!i.isEqual(F.current,_),u=I.current!==g,n||u?(t=L.map((function(e){return e.id})),D.current={},F.current=_,I.current=g):t=L.filter((function(e){return!D.current[e.id]})).map((function(e){return e.id})),t.length>0&&T(new Set(t)),!(t.length>0&&_.length>0)){e.next=20;break}return c=new Map(L.filter((function(e){return t.includes(e.id)})).map((function(e){return[e.id,e]}))),o=i.groupBy(Array.from(c.values()).filter((function(e){return e.companyId})),"companyId"),l=Object.entries(o).map(function(){var e=p.default(m.default.mark((function e(t){var n,u,i,s;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=b.default(t,2),u=n[0],i=n[1],s=i.map((function(e){return e.id})),e.abrupt("return",a.fetchMetricsData(Number(u),s,_,r.signal,g));case 3:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}()),e.next=12,Promise.all(l);case 12:if(f=e.sent,!r.signal.aborted){e.next=15;break}return e.abrupt("return");case 15:v=f.flat(),h={},y=i.groupBy(v,"asset_id"),t.forEach((function(e){var r,t=null===(r=y[e])||void 0===r?void 0:r.reduce((function(e,r){var t=i.get(r,"data.value"),n=i.get(r,"data.key");return j(j({},e),{},d.default({},n,s.NonConvertableMetrics.includes(n)?t:q(t)))}),{});h[e]=t||{}})),D.current=j(j({},D.current),h);case 20:O=L.map((function(e){return j(j({},e),D.current[e.id]||{})})),P((function(e){return i.isEqual(O,e)?e:O})),E(!1),T(new Set),e.next=29;break;case 26:e.prev=26,e.t0=e.catch(0),r.signal.aborted||(console.error("Error fetching metrics data:",e.t0),P(L),E(!1),T(new Set));case 29:case"end":return e.stop()}}),e,null,[[0,26]])})));return function(){return e.apply(this,arguments)}}();return t(),function(){B.current&&(B.current.abort(),B.current=null)}}),[L,_,v,g]),[w,k,L,C]};
|
|
2
2
|
//# sourceMappingURL=useAdvancedWells.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAdvancedWells.js","sources":["../../../../../../src/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.ts"],"sourcesContent":["import { useState, useEffect, useRef, useMemo } from 'react';\nimport { get, groupBy, isEqual } from 'lodash';\n\nimport { fetchMetricsData } from '../../api';\nimport type { FetchedOffsetWell } from '../../api/shared/types';\nimport { NonConvertableMetrics } from '../../constants';\nimport { usePickerPropsStore } from '../../stores/picker-props-store/usePickerPropsStore';\nimport { getSegmentConfig } from '../../segment-config';\nimport type { WellSection, OffsetWellsBySection } from '../useExternalOffsets';\n\nimport { transformWells } from './wellTransformations';\n\nexport type TransformedWell = FetchedOffsetWell & {\n distance?: number;\n wellSection?: string[];\n};\n\ntype MetricsCache = Record<number, Record<string, unknown>>;\n\nconst parseMetricValue = (value: number): number | null =>\n Number.isFinite(value) ? parseFloat(value.toFixed(2)) : null;\n\nexport const useAdvancedWells = (\n rawWells: FetchedOffsetWell[] | null,\n wellSections: WellSection[] | null,\n offsetWellsBySection: OffsetWellsBySection | null,\n subjectWellId: number | null,\n metricsKeys: string[],\n open: boolean | undefined\n): [TransformedWell[] | null, boolean, TransformedWell[] | null, Set<number>] => {\n const segment = usePickerPropsStore(state => state.segment);\n const { metricsCollection } = getSegmentConfig(segment);\n\n const [wells, setWells] = useState<TransformedWell[] | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [loadingWellIds, setLoadingWellIds] = useState<Set<number>>(new Set());\n const fetchedDataCache = useRef<MetricsCache>({});\n const previousMetricsKeys = useRef(metricsKeys);\n const previousCollection = useRef(metricsCollection);\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const transformedWells = useMemo((): TransformedWell[] | null => {\n if (!open || !rawWells) return null;\n\n return transformWells(rawWells, subjectWellId, wellSections, offsetWellsBySection);\n }, [rawWells, subjectWellId, wellSections, offsetWellsBySection, open]);\n\n useEffect(() => {\n if (!transformedWells || !open) {\n setIsLoading(false);\n setLoadingWellIds(new Set());\n return undefined;\n }\n\n // Immediately set wells with transformed data AND cached metrics\n // This preserves existing metric values while new wells load\n const wellsWithCachedMetrics = transformedWells.map(well => ({\n ...well,\n ...(fetchedDataCache.current[well.id] || {}),\n }));\n setWells(wellsWithCachedMetrics);\n setIsLoading(true);\n\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n const abortController = new AbortController();\n\n abortControllerRef.current = abortController;\n\n const fetchAndUpdateMetrics = async () => {\n try {\n let wellIdsToFetch: number[] = [];\n const metricsKeysChanged = !isEqual(previousMetricsKeys.current, metricsKeys);\n const collectionChanged = previousCollection.current !== metricsCollection;\n\n if (metricsKeysChanged || collectionChanged) {\n wellIdsToFetch = transformedWells.map(well => well.id);\n fetchedDataCache.current = {};\n previousMetricsKeys.current = metricsKeys;\n previousCollection.current = metricsCollection;\n } else {\n // Only fetch metrics for wells not in cache\n wellIdsToFetch = transformedWells\n .filter(well => !fetchedDataCache.current[well.id])\n .map(well => well.id);\n }\n\n // Track which wells are loading\n if (wellIdsToFetch.length > 0) {\n setLoadingWellIds(new Set(wellIdsToFetch));\n }\n\n if (wellIdsToFetch.length > 0 && metricsKeys.length > 0) {\n // Group wells to fetch by their company ID\n const wellsToFetchById = new Map(\n transformedWells\n .filter(well => wellIdsToFetch.includes(well.id))\n .map(well => [well.id, well] as const)\n );\n const wellsByCompany = groupBy(\n Array.from(wellsToFetchById.values()).filter(well => well.companyId),\n 'companyId'\n );\n\n // Fetch metrics for each company in parallel\n const metricsPromises = Object.entries(wellsByCompany).map(\n async ([compId, companyWells]) => {\n const companyWellIds = companyWells.map(w => w.id);\n\n return fetchMetricsData(\n Number(compId),\n companyWellIds,\n metricsKeys,\n abortController.signal,\n metricsCollection\n );\n }\n );\n\n const allRecords = await Promise.all(metricsPromises);\n\n if (abortController.signal.aborted) {\n return;\n }\n\n const records = allRecords.flat();\n const wellsMetrics: MetricsCache = {};\n const recordsPerAsset = groupBy(records, 'asset_id');\n\n wellIdsToFetch.forEach(wellId => {\n const wellMetrics = recordsPerAsset[wellId]?.reduce<Record<string, unknown>>(\n (acc, record) => {\n const value = get(record, 'data.value') as number;\n const key = get(record, 'data.key') as string;\n\n return {\n ...acc,\n [key]: NonConvertableMetrics.includes(key) ? value : parseMetricValue(value),\n };\n },\n {}\n );\n\n wellsMetrics[wellId] = wellMetrics || {};\n });\n\n fetchedDataCache.current = {\n ...fetchedDataCache.current,\n ...wellsMetrics,\n };\n }\n\n const result = transformedWells.map(well => ({\n ...well,\n ...(fetchedDataCache.current[well.id] || {}),\n }));\n\n setWells(prevWells => (isEqual(result, prevWells) ? prevWells : result));\n setIsLoading(false);\n setLoadingWellIds(new Set());\n } catch (error) {\n if (!abortController.signal.aborted) {\n console.error('Error fetching metrics data:', error);\n setWells(transformedWells);\n setIsLoading(false);\n setLoadingWellIds(new Set());\n }\n }\n };\n\n fetchAndUpdateMetrics();\n\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n };\n }, [transformedWells, metricsKeys, open, metricsCollection]);\n\n return [wells, isLoading, transformedWells, loadingWellIds];\n};\n"],"names":["parseMetricValue","value","Number","isFinite","parseFloat","toFixed","rawWells","wellSections","offsetWellsBySection","subjectWellId","metricsKeys","open","segment","usePickerPropsStore","state","metricsCollection","getSegmentConfig","useState","_useState2","_slicedToArray","_useState","wells","setWells","_useState4","_useState3","isLoading","setIsLoading","_useState5","Set","_useState6","loadingWellIds","setLoadingWellIds","fetchedDataCache","useRef","previousMetricsKeys","previousCollection","abortControllerRef","transformedWells","useMemo","transformWells","useEffect","wellsWithCachedMetrics","map","well","_objectSpread","current","id","abort","abortController","AbortController","fetchAndUpdateMetrics","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","wellIdsToFetch","metricsKeysChanged","collectionChanged","wellsToFetchById","wellsByCompany","metricsPromises","allRecords","records","wellsMetrics","recordsPerAsset","result","wrap","_context2","prev","next","isEqual","filter","length","Map","includes","groupBy","Array","from","values","companyId","Object","entries","_ref3","_callee","_ref2","_ref4","compId","companyWells","companyWellIds","_context","w","abrupt","fetchMetricsData","signal","stop","_x","apply","this","arguments","Promise","all","sent","aborted","flat","forEach","wellId","_recordsPerAsset$well","wellMetrics","reduce","acc","record","get","key","NonConvertableMetrics","prevWells","t0","console","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAdvancedWells.js","sources":["../../../../../../src/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.ts"],"sourcesContent":["import { useState, useEffect, useRef, useMemo } from 'react';\nimport { get, groupBy, isEqual } from 'lodash';\n\nimport { fetchMetricsData } from '../../api';\nimport type { FetchedOffsetWell } from '../../api/shared/types';\nimport { NonConvertableMetrics, WELL_ATTRIBUTE_METRICS } from '../../constants';\nimport { usePickerPropsStore } from '../../stores/picker-props-store/usePickerPropsStore';\nimport { getSegmentConfig } from '../../segment-config';\nimport type { WellSection, OffsetWellsBySection } from '../useExternalOffsets';\n\nimport { transformWells } from './wellTransformations';\n\nexport type TransformedWell = FetchedOffsetWell & {\n distance?: number;\n wellSection?: string[];\n};\n\ntype MetricsCache = Record<number, Record<string, unknown>>;\n\nconst parseMetricValue = (value: number): number | null =>\n Number.isFinite(value) ? parseFloat(value.toFixed(2)) : null;\n\nexport const useAdvancedWells = (\n rawWells: FetchedOffsetWell[] | null,\n wellSections: WellSection[] | null,\n offsetWellsBySection: OffsetWellsBySection | null,\n subjectWellId: number | null,\n metricsKeys: string[],\n open: boolean | undefined\n): [TransformedWell[] | null, boolean, TransformedWell[] | null, Set<number>] => {\n const segment = usePickerPropsStore(state => state.segment);\n const { metricsCollection } = getSegmentConfig(segment);\n\n const [wells, setWells] = useState<TransformedWell[] | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [loadingWellIds, setLoadingWellIds] = useState<Set<number>>(new Set());\n const fetchedDataCache = useRef<MetricsCache>({});\n\n // Only these keys exist in the metrics collection. Keyed by content, so toggling a\n // well-attribute metric neither refetches nor drops the cached metrics.\n const apiMetricsKeysSignature = metricsKeys\n .filter(key => !WELL_ATTRIBUTE_METRICS.includes(key))\n .join();\n const apiMetricsKeys = useMemo(\n () => (apiMetricsKeysSignature ? apiMetricsKeysSignature.split(',') : []),\n [apiMetricsKeysSignature]\n );\n\n const previousMetricsKeys = useRef(apiMetricsKeys);\n const previousCollection = useRef(metricsCollection);\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const transformedWells = useMemo((): TransformedWell[] | null => {\n if (!open || !rawWells) return null;\n\n return transformWells(rawWells, subjectWellId, wellSections, offsetWellsBySection);\n }, [rawWells, subjectWellId, wellSections, offsetWellsBySection, open]);\n\n useEffect(() => {\n if (!transformedWells || !open) {\n setIsLoading(false);\n setLoadingWellIds(new Set());\n return undefined;\n }\n\n // Immediately set wells with transformed data AND cached metrics\n // This preserves existing metric values while new wells load\n const wellsWithCachedMetrics = transformedWells.map(well => ({\n ...well,\n ...(fetchedDataCache.current[well.id] || {}),\n }));\n setWells(wellsWithCachedMetrics);\n setIsLoading(true);\n\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n const abortController = new AbortController();\n\n abortControllerRef.current = abortController;\n\n const fetchAndUpdateMetrics = async () => {\n try {\n let wellIdsToFetch: number[] = [];\n const metricsKeysChanged = !isEqual(previousMetricsKeys.current, apiMetricsKeys);\n const collectionChanged = previousCollection.current !== metricsCollection;\n\n if (metricsKeysChanged || collectionChanged) {\n wellIdsToFetch = transformedWells.map(well => well.id);\n fetchedDataCache.current = {};\n previousMetricsKeys.current = apiMetricsKeys;\n previousCollection.current = metricsCollection;\n } else {\n // Only fetch metrics for wells not in cache\n wellIdsToFetch = transformedWells\n .filter(well => !fetchedDataCache.current[well.id])\n .map(well => well.id);\n }\n\n // Track which wells are loading\n if (wellIdsToFetch.length > 0) {\n setLoadingWellIds(new Set(wellIdsToFetch));\n }\n\n if (wellIdsToFetch.length > 0 && apiMetricsKeys.length > 0) {\n // Group wells to fetch by their company ID\n const wellsToFetchById = new Map(\n transformedWells\n .filter(well => wellIdsToFetch.includes(well.id))\n .map(well => [well.id, well] as const)\n );\n const wellsByCompany = groupBy(\n Array.from(wellsToFetchById.values()).filter(well => well.companyId),\n 'companyId'\n );\n\n // Fetch metrics for each company in parallel\n const metricsPromises = Object.entries(wellsByCompany).map(\n async ([compId, companyWells]) => {\n const companyWellIds = companyWells.map(w => w.id);\n\n return fetchMetricsData(\n Number(compId),\n companyWellIds,\n apiMetricsKeys,\n abortController.signal,\n metricsCollection\n );\n }\n );\n\n const allRecords = await Promise.all(metricsPromises);\n\n if (abortController.signal.aborted) {\n return;\n }\n\n const records = allRecords.flat();\n const wellsMetrics: MetricsCache = {};\n const recordsPerAsset = groupBy(records, 'asset_id');\n\n wellIdsToFetch.forEach(wellId => {\n const wellMetrics = recordsPerAsset[wellId]?.reduce<Record<string, unknown>>(\n (acc, record) => {\n const value = get(record, 'data.value') as number;\n const key = get(record, 'data.key') as string;\n\n return {\n ...acc,\n [key]: NonConvertableMetrics.includes(key) ? value : parseMetricValue(value),\n };\n },\n {}\n );\n\n wellsMetrics[wellId] = wellMetrics || {};\n });\n\n fetchedDataCache.current = {\n ...fetchedDataCache.current,\n ...wellsMetrics,\n };\n }\n\n const result = transformedWells.map(well => ({\n ...well,\n ...(fetchedDataCache.current[well.id] || {}),\n }));\n\n setWells(prevWells => (isEqual(result, prevWells) ? prevWells : result));\n setIsLoading(false);\n setLoadingWellIds(new Set());\n } catch (error) {\n if (!abortController.signal.aborted) {\n console.error('Error fetching metrics data:', error);\n setWells(transformedWells);\n setIsLoading(false);\n setLoadingWellIds(new Set());\n }\n }\n };\n\n fetchAndUpdateMetrics();\n\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n };\n }, [transformedWells, apiMetricsKeys, open, metricsCollection]);\n\n return [wells, isLoading, transformedWells, loadingWellIds];\n};\n"],"names":["parseMetricValue","value","Number","isFinite","parseFloat","toFixed","rawWells","wellSections","offsetWellsBySection","subjectWellId","metricsKeys","open","segment","usePickerPropsStore","state","metricsCollection","getSegmentConfig","useState","_useState2","_slicedToArray","_useState","wells","setWells","_useState4","_useState3","isLoading","setIsLoading","_useState5","Set","_useState6","loadingWellIds","setLoadingWellIds","fetchedDataCache","useRef","apiMetricsKeysSignature","filter","key","WELL_ATTRIBUTE_METRICS","includes","join","apiMetricsKeys","useMemo","split","previousMetricsKeys","previousCollection","abortControllerRef","transformedWells","transformWells","useEffect","wellsWithCachedMetrics","map","well","_objectSpread","current","id","abort","abortController","AbortController","fetchAndUpdateMetrics","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","wellIdsToFetch","metricsKeysChanged","collectionChanged","wellsToFetchById","wellsByCompany","metricsPromises","allRecords","records","wellsMetrics","recordsPerAsset","result","wrap","_context2","prev","next","isEqual","length","Map","groupBy","Array","from","values","companyId","Object","entries","_ref3","_callee","_ref2","_ref4","compId","companyWells","companyWellIds","_context","w","abrupt","fetchMetricsData","signal","stop","_x","apply","this","arguments","Promise","all","sent","aborted","flat","forEach","wellId","_recordsPerAsset$well","wellMetrics","reduce","acc","record","get","NonConvertableMetrics","prevWells","t0","console","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../../src/components/OffsetWellPickerV5/stores/filter-store/types.ts"],"sourcesContent":["import type { FetchedOffsetWell } from '../../api/shared/types';\nimport type { Company } from '../company-safeguard/CompanySafeguardContext';\n\nexport type PeriodType =
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../src/components/OffsetWellPickerV5/stores/filter-store/types.ts"],"sourcesContent":["import type { FetchedOffsetWell } from '../../api/shared/types';\nimport type { OBJECTIVE_PERIOD_LIST } from '../../constants';\nimport type { Company } from '../company-safeguard/CompanySafeguardContext';\n\nexport type PeriodType = typeof OBJECTIVE_PERIOD_LIST[number]['value'];\n\nexport type SelectionMode = 'radius' | 'lasso';\nexport type FilterMutationSource = 'manual_ui' | 'system' | 'external_sync';\n\n/** Mirrors `PickerSegment` in OffsetWellPickerV5.types (kept here to avoid circular imports). */\nexport type PickerSegmentId = 'drilling' | 'intervention';\n\nexport type PolygonCoord = {\n latitude: number;\n longitude: number;\n};\n\nexport type FilterState = {\n status?: string[];\n companyId?: number[];\n rigName?: string[];\n programName?: string[];\n basin?: string[];\n county?: string[];\n area?: string[];\n formation?: string[];\n stringDesign?: string[];\n interventionAsset?: string[];\n padName?: string[];\n period?: PeriodType;\n sideTracks?: boolean;\n drillingWells?: boolean;\n interventionWells?: boolean;\n activeInterventionWells?: boolean;\n timeRangeFrom?: number;\n timeRangeTo?: number;\n selectionMode?: SelectionMode;\n polygonCoords?: PolygonCoord[];\n radius?: number;\n hasUserConfirmedAllCompaniesLoadAll?: boolean;\n showHiddenWells?: boolean;\n};\n\nexport const BASE_DEFAULT_FILTERS: FilterState = {\n showHiddenWells: false,\n};\n\n/**\n * Keys representing map selection state (not filter criteria).\n * These are preserved during filter resets and excluded from default-state comparisons.\n */\nexport const SELECTION_FILTER_KEYS = ['selectionMode', 'radius', 'polygonCoords'] as const;\n\nexport type FilterStoreDataSources = {\n wells: FetchedOffsetWell[] | null;\n companies: Company[];\n canViewCompanies: boolean;\n isAllWellsLoaded: boolean;\n isLoadAllWells: boolean;\n segment: PickerSegmentId;\n};\n\nexport type FilterStore = FilterStoreDataSources & {\n filters: FilterState;\n defaultFilters: FilterState;\n tempFilters: Partial<FilterState>;\n lastFilterMutationSource: FilterMutationSource;\n filterMutationSeq: number;\n setFilter: (\n key: keyof FilterState,\n value: FilterState[keyof FilterState],\n source?: FilterMutationSource\n ) => void;\n setFilters: (filters: FilterState, source?: FilterMutationSource) => void;\n clearFilters: (source?: FilterMutationSource) => void;\n resetFilters: (source?: FilterMutationSource) => void;\n resetFilterCriteria: (source?: FilterMutationSource) => void;\n hasActiveFilters: () => boolean;\n setTempFilter: (key: keyof FilterState, value: FilterState[keyof FilterState]) => void;\n clearTempFilter: (key: keyof FilterState) => void;\n clearAllTempFilters: () => void;\n commitTempFilter: (key: keyof FilterState) => void;\n setSelectionMode: (mode: SelectionMode) => void;\n setPolygonCoords: (coords: PolygonCoord[] | undefined) => void;\n setRadius: (radius: number) => void;\n pruneAllCascades: () => void;\n};\n\nexport type FilterStoreProps = {\n filters?: FilterState;\n defaultFilters?: FilterState;\n canViewCompanies?: boolean;\n};\n\nexport type SetWithMutation = (\n updates: Partial<Pick<FilterStore, 'filters' | 'tempFilters'>>,\n source: FilterMutationSource\n) => void;\n"],"names":["showHiddenWells"],"mappings":"iGA2CiD,CAC/CA,iBAAiB,iCAOkB,CAAC,gBAAiB,SAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}Object.defineProperty(exports,"__esModule",{value:!0});var n=t(require("moment")),r={last12h:function(t){return t.clone().subtract(12,"hours")},last24h:function(t){return t.clone().subtract(24,"hours")},last7d:function(t){return t.clone().subtract(7,"days")},lastMonth:function(t){return t.clone().subtract(1,"month")},last6Months:function(t){return t.clone().subtract(6,"months")},yearToDate:function(t){return t.clone().startOf("year")},last1Year:function(t){return t.clone().subtract(1,"year")}};exports.getTimestampByPeriod=function(t,e,u){if("custom"===t)return[null!=e?e:null,null!=u?u:null];if(void 0!==t&&function(t){return Object.prototype.hasOwnProperty.call(r,t)}(t)){var o=n.default();return[r[t](o).unix(),o.unix()]}return[null,null]};
|
|
2
2
|
//# sourceMappingURL=getTimestampByPeriod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTimestampByPeriod.js","sources":["../../../../../src/components/OffsetWellPickerV5/utils/getTimestampByPeriod.ts"],"sourcesContent":["import moment from 'moment';\n\nimport {
|
|
1
|
+
{"version":3,"file":"getTimestampByPeriod.js","sources":["../../../../../src/components/OffsetWellPickerV5/utils/getTimestampByPeriod.ts"],"sourcesContent":["import moment from 'moment';\nimport type { Moment } from 'moment';\n\nimport type { PeriodType } from '../stores/filter-store/types';\n\ntype RelativePeriod = Exclude<PeriodType, 'all' | 'custom'>;\n\n/**\n * Start-of-range resolvers for the rolling/relative period options.\n * All are computed from `now` in the effective moment timezone (the app may call\n * `moment.tz.setDefault`), so \"Year to Date\" means Jan 1 00:00 of that zone, not UTC.\n * Month/year subtraction uses moment's documented end-of-month clamping\n * (Aug 31 − 6 months → Feb 29 / Feb 28).\n */\nconst RELATIVE_PERIOD_START: Record<RelativePeriod, (now: Moment) => Moment> = {\n last12h: now => now.clone().subtract(12, 'hours'),\n last24h: now => now.clone().subtract(24, 'hours'),\n last7d: now => now.clone().subtract(7, 'days'),\n lastMonth: now => now.clone().subtract(1, 'month'),\n last6Months: now => now.clone().subtract(6, 'months'),\n yearToDate: now => now.clone().startOf('year'),\n last1Year: now => now.clone().subtract(1, 'year'),\n};\n\nconst isRelativePeriod = (period: string): period is RelativePeriod =>\n Object.prototype.hasOwnProperty.call(RELATIVE_PERIOD_START, period);\n\n/**\n * Resolves a period option to a `[start, end]` pair of unix seconds.\n * Returns `[null, null]` for `'all'`, `undefined`, or any unknown value.\n */\nexport const getTimestampByPeriod = (\n period: string | undefined,\n customFrom: number | undefined,\n customTo: number | undefined\n): [number | null, number | null] => {\n if (period === 'custom') {\n return [customFrom ?? null, customTo ?? null];\n }\n\n if (period !== undefined && isRelativePeriod(period)) {\n const now = moment();\n\n return [RELATIVE_PERIOD_START[period](now).unix(), now.unix()];\n }\n\n return [null, null];\n};\n"],"names":["RELATIVE_PERIOD_START","last12h","now","clone","subtract","last24h","last7d","lastMonth","last6Months","yearToDate","startOf","last1Year","period","customFrom","customTo","undefined","Object","prototype","hasOwnProperty","call","isRelativePeriod","moment","unix"],"mappings":"uKAcMA,EAAyE,CAC7EC,QAAS,SAAAC,GAAG,OAAIA,EAAIC,QAAQC,SAAS,GAAI,QAAQ,EACjDC,QAAS,SAAAH,GAAG,OAAIA,EAAIC,QAAQC,SAAS,GAAI,QAAQ,EACjDE,OAAQ,SAAAJ,GAAG,OAAIA,EAAIC,QAAQC,SAAS,EAAG,OAAO,EAC9CG,UAAW,SAAAL,GAAG,OAAIA,EAAIC,QAAQC,SAAS,EAAG,QAAQ,EAClDI,YAAa,SAAAN,GAAG,OAAIA,EAAIC,QAAQC,SAAS,EAAG,SAAS,EACrDK,WAAY,SAAAP,GAAG,OAAIA,EAAIC,QAAQO,QAAQ,OAAO,EAC9CC,UAAW,SAAAT,GAAG,OAAIA,EAAIC,QAAQC,SAAS,EAAG,OAAO,gCAUf,SAClCQ,EACAC,EACAC,GAEA,GAAe,WAAXF,EACF,MAAO,CAACC,QAAAA,EAAc,KAAMC,QAAAA,EAAY,MAG1C,QAAeC,IAAXH,GAhBmB,SAACA,GAAc,OACtCI,OAAOC,UAAUC,eAAeC,KAAKnB,EAAuBY,EAAO,CAevCQ,CAAiBR,GAAS,CACpD,IAAMV,EAAMmB,EAAAA,UAEZ,MAAO,CAACrB,EAAsBY,GAAQV,GAAKoB,OAAQpB,EAAIoB,OACzD,CAEA,MAAO,CAAC,KAAM,KAChB"}
|