@corva/ui 3.38.0 → 3.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
  2. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
  3. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.module.css.js +1 -1
  4. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.js +1 -1
  5. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.module.css.js +1 -1
  6. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.js +2 -0
  7. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.js.map +1 -0
  8. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.module.css.js +2 -0
  9. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/DrawControl/DrawControl.js +1 -1
  10. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapControls/MapControls.js +1 -1
  11. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.js +2 -0
  12. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.js.map +1 -0
  13. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.module.css.js +2 -0
  14. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.module.css.js.map +1 -0
  15. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/CursorIcon.js +2 -0
  16. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/CursorIcon.js.map +1 -0
  17. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.js +2 -0
  18. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.js.map +1 -0
  19. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.module.css.js +2 -0
  20. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.module.css.js.map +1 -0
  21. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.js +2 -0
  22. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.js.map +1 -0
  23. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.module.css.js +2 -0
  24. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.module.css.js.map +1 -0
  25. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/RadiusInput/RadiusInput.js +1 -1
  26. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/RadiusInput/RadiusInput.module.css.js +1 -1
  27. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.js +1 -1
  28. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.module.css.js +2 -0
  29. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.module.css.js.map +1 -0
  30. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/WellTooltip/WellTooltip.module.css.js +1 -1
  31. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.js +1 -1
  32. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.js +2 -0
  33. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.js.map +1 -0
  34. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useElementSize.js +2 -0
  35. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useElementSize.js.map +1 -0
  36. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoKeyboardHandlers.js +2 -0
  37. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoKeyboardHandlers.js.map +1 -0
  38. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoSelection.js +1 -1
  39. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useTooltipAnchor.js +2 -0
  40. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useTooltipAnchor.js.map +1 -0
  41. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.js +1 -1
  42. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/WellsMap.js +1 -1
  43. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.module.css.js +1 -1
  44. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTableHead.module.css.js +1 -1
  45. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTableRow.module.css.js +1 -1
  46. package/cjs-bundle/components/OffsetWellPickerV5/stores/view-store/createViewStore.js +1 -1
  47. package/components/OffsetWellPickerV5/OffsetWellPickerV5.d.ts.map +1 -1
  48. package/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
  49. package/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
  50. package/components/OffsetWellPickerV5/OffsetWellPickerV5.module.css.js +1 -1
  51. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.d.ts +3 -0
  52. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.d.ts.map +1 -1
  53. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.js +1 -1
  54. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.module.css.js +1 -1
  55. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.d.ts +14 -0
  56. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.d.ts.map +1 -0
  57. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.js +2 -0
  58. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.js.map +1 -0
  59. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.module.css.js +2 -0
  60. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/index.d.ts +2 -0
  61. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/index.d.ts.map +1 -0
  62. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/DrawControl/DrawControl.d.ts +3 -1
  63. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/DrawControl/DrawControl.d.ts.map +1 -1
  64. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/DrawControl/DrawControl.js +1 -1
  65. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapControls/MapControls.d.ts.map +1 -1
  66. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapControls/MapControls.js +1 -1
  67. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.d.ts +15 -0
  68. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.d.ts.map +1 -0
  69. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.js +2 -0
  70. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.js.map +1 -0
  71. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.module.css.js +2 -0
  72. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.module.css.js.map +1 -0
  73. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/CursorIcon.d.ts +8 -0
  74. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/CursorIcon.d.ts.map +1 -0
  75. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/CursorIcon.js +2 -0
  76. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/CursorIcon.js.map +1 -0
  77. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.d.ts +12 -0
  78. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.d.ts.map +1 -0
  79. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.js +2 -0
  80. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.js.map +1 -0
  81. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.module.css.js +2 -0
  82. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/HintItem.module.css.js.map +1 -0
  83. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.d.ts +7 -0
  84. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.d.ts.map +1 -0
  85. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.js +2 -0
  86. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.js.map +1 -0
  87. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.module.css.js +2 -0
  88. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/KeyboardKey.module.css.js.map +1 -0
  89. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/index.d.ts +4 -0
  90. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/components/index.d.ts.map +1 -0
  91. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/index.d.ts +2 -0
  92. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/{LassoTip → MapHints}/index.d.ts.map +1 -1
  93. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/RadiusInput/RadiusInput.d.ts.map +1 -1
  94. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/RadiusInput/RadiusInput.js +1 -1
  95. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/RadiusInput/RadiusInput.module.css.js +1 -1
  96. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.d.ts +0 -1
  97. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.d.ts.map +1 -1
  98. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.js +1 -1
  99. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.module.css.js +2 -0
  100. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/SubjectWellMarker/SubjectWellMarker.module.css.js.map +1 -0
  101. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/WellTooltip/WellTooltip.module.css.js +1 -1
  102. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.d.ts +12 -0
  103. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.d.ts.map +1 -1
  104. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.js +1 -1
  105. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/index.d.ts +4 -0
  106. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/index.d.ts.map +1 -1
  107. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.d.ts +28 -0
  108. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.d.ts.map +1 -0
  109. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.js +2 -0
  110. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.js.map +1 -0
  111. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useElementSize.d.ts +8 -0
  112. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useElementSize.d.ts.map +1 -0
  113. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useElementSize.js +2 -0
  114. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useElementSize.js.map +1 -0
  115. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoKeyboardHandlers.d.ts +12 -0
  116. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoKeyboardHandlers.d.ts.map +1 -0
  117. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoKeyboardHandlers.js +2 -0
  118. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoKeyboardHandlers.js.map +1 -0
  119. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoSelection.d.ts +5 -1
  120. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoSelection.d.ts.map +1 -1
  121. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useLassoSelection.js +1 -1
  122. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useTooltipAnchor.d.ts +36 -0
  123. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useTooltipAnchor.d.ts.map +1 -0
  124. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useTooltipAnchor.js +2 -0
  125. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useTooltipAnchor.js.map +1 -0
  126. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.d.ts.map +1 -1
  127. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.js +1 -1
  128. package/components/OffsetWellPickerV5/components/Map/WellsMap.d.ts +3 -0
  129. package/components/OffsetWellPickerV5/components/Map/WellsMap.d.ts.map +1 -1
  130. package/components/OffsetWellPickerV5/components/Map/WellsMap.js +1 -1
  131. package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.module.css.js +1 -1
  132. package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTableHead.module.css.js +1 -1
  133. package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTableRow.module.css.js +1 -1
  134. package/components/OffsetWellPickerV5/stores/view-store/createViewStore.d.ts +2 -0
  135. package/components/OffsetWellPickerV5/stores/view-store/createViewStore.d.ts.map +1 -1
  136. package/components/OffsetWellPickerV5/stores/view-store/createViewStore.js +1 -1
  137. package/package.json +1 -1
  138. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.js +0 -2
  139. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.js.map +0 -1
  140. package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.module.css.js +0 -2
  141. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.d.ts +0 -13
  142. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.d.ts.map +0 -1
  143. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.js +0 -2
  144. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.js.map +0 -1
  145. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/LassoTip.module.css.js +0 -2
  146. package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/LassoTip/index.d.ts +0 -2
  147. /package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/{LassoTip/LassoTip.module.css.js.map → BoxSelectionOverlay/BoxSelectionOverlay.module.css.js.map} +0 -0
  148. /package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/{LassoTip/LassoTip.module.css.js.map → BoxSelectionOverlay/BoxSelectionOverlay.module.css.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetWellPickerV5.js","sources":["../../../src/components/OffsetWellPickerV5/OffsetWellPickerV5.js"],"sourcesContent":["import { useState, useEffect, useRef, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { isEmpty, uniq, uniqBy, sortBy as sortArray } from 'lodash';\nimport { Replay as ReplayIcon } from '@material-ui/icons';\nimport { Table, TableHead } from '@material-ui/core';\n\nimport {\n useAdvancedWells,\n useBicWells,\n useFilterOptions,\n useCompanyMetricKey,\n useFilteredWells,\n useSortedWells,\n useTableColumns,\n useCompanyProvider,\n useCompanies,\n usePinnedWells,\n useSearchedWells,\n} from './effects';\nimport { useFetchWells } from './effects/useFetchWells';\nimport { useFetchSubjectWell } from './effects/useFetchSubjectWell';\nimport { fetchCompanyIdsByWellIds } from './api';\nimport { AppHeader } from './components/AppHeader';\nimport { Filter } from './components/Filter';\nimport { WellsMap } from './components/Map';\nimport { OffsetWellsTable } from './components/OffsetWellsTable';\nimport { OffsetWellsTableHead } from './components/OffsetWellsTable/OffsetWellsTableHead';\nimport { AdvancedSearch } from './components/OffsetWellsTable/AdvancedSearch';\nimport {\n ALL_SECTION_KEY,\n COMPANY_PROVIDERS_FOR_IDAS,\n FilterType,\n MAX_OFFSET_SIZE,\n ROWS_PER_PAGE,\n RESYNC_STATUS,\n DEFAULT_RADIUS_MILES,\n} from './constants';\nimport { SEARCH_CATEGORIES } from './components/OffsetWellsTable/AdvancedSearch/constants';\nimport { getCoordinatedWells } from './utils';\nimport { getIsImperial } from './utils/getIsImperial';\nimport { usePickerPropsStore } from './stores/picker-props-store/usePickerPropsStore';\nimport { useFilterStore } from './stores/filter-store/useFilterStore';\nimport { useViewStore } from './stores/view-store/useViewStore';\n\nimport styles from './OffsetWellPickerV5.module.css';\nimport offsetTableStyles from './components/OffsetWellsTable/OffsetWellsTable.module.css';\n\nimport { showInfoNotification } from '~/utils';\nimport { NotificationsContainer } from '~/components/Notifications';\nimport { typography } from '~/styles';\nimport { LoadingIndicator } from '~/components';\nimport { Button, LoaderCircular, Modal, Tooltip } from '~/componentsV2';\nimport { useGlobalOffsetWellsSync } from '~/effects';\n\nconst PAGE_NAME = 'OffsetWellPickerV5';\n\nexport const OffsetWellPickerV5 = () => {\n const open = usePickerPropsStore(state => state.open);\n const isWDUser = usePickerPropsStore(state => state.isWDUser);\n const defaultSubjectWell = usePickerPropsStore(state => state.defaultSubjectWell);\n const currentUser = usePickerPropsStore(state => state.currentUser);\n const offsetSettings = usePickerPropsStore(state => state.offsetSettings);\n const isViewOnly = usePickerPropsStore(state => state.isViewOnly);\n const onClose = usePickerPropsStore(state => state.onClose);\n const onSave = usePickerPropsStore(state => state.onSave);\n const offsetSize = usePickerPropsStore(state => state.maxOffsetSize);\n const localMaxOffsetSize = usePickerPropsStore(state => state.localMaxOffsetSize);\n const syncAutoEnabled = usePickerPropsStore(state => state.syncAutoEnabled);\n\n const [activeWellId, setActiveWellId] = useState(null);\n const maxOffsetSize = Math.min(offsetSize + 1, localMaxOffsetSize + 1, MAX_OFFSET_SIZE + 1);\n const maxOffsetWellNumber = Math.min(\n Math.max(maxOffsetSize, localMaxOffsetSize + 1),\n MAX_OFFSET_SIZE + 1\n );\n\n const subjectWellId = defaultSubjectWell?.asset_id;\n\n // Fetch complete subject well data with coordinates\n const [fetchedSubjectWell] = useFetchSubjectWell(subjectWellId);\n\n useGlobalOffsetWellsSync(offsetSettings, onSave, maxOffsetWellNumber);\n\n const isFilterExpanded = useViewStore(state => state.isFilterExpanded);\n const isMapHidden = useViewStore(state => state.isMapHidden);\n const isHScrollMoved = useViewStore(state => state.isHScrollMoved);\n const setIsHScrollMoved = useViewStore(state => state.setIsHScrollMoved);\n const isAdvancedSearchHidden = useViewStore(state => state.isAdvancedSearchHidden);\n const setIsAdvancedSearchHidden = useViewStore(state => state.setIsAdvancedSearchHidden);\n\n const assetCompanyId = +defaultSubjectWell?.companyId || +currentUser?.company_id;\n const hasValidAssetId = subjectWellId > 0;\n const filters = useFilterStore(state => state.filters);\n const setFilters = useFilterStore(state => state.setFilters);\n const resetFilters = useFilterStore(state => state.resetFilters);\n const radiusFilter = useFilterStore(state => state.filters.radius) ?? DEFAULT_RADIUS_MILES;\n const selectionMode = useFilterStore(state => state.filters.selectionMode) ?? 'radius';\n const polygonCoords = useFilterStore(state => state.filters.polygonCoords);\n const { canViewCompanies, companies } = useCompanies({ open });\n const [selectedWells, setSelectedWells] = useState([]);\n const [preselectedCompanyIds, setPreselectedCompanyIds] = useState([]);\n\n // Track wells being selected via search that need to wait for enrichment\n const pendingSearchSelectionRef = useRef(new Set());\n\n // Track asset IDs currently being fetched (for loading spinner in search dropdown)\n const [loadingAssetIds, setLoadingAssetIds] = useState([]);\n\n // Track if save is waiting for pending wells to be enriched\n const [isSavePending, setIsSavePending] = useState(false);\n\n const companyFilter = useMemo(() => filters[FilterType.company], [filters]);\n\n // Bootstrap: ensure companies of pre-selected wells (from settings) are fetched after refresh\n useEffect(() => {\n const selectedIds = offsetSettings?.selectedWellIds || [];\n if (!open || preselectedCompanyIds.length > 0 || selectedIds.length === 0) return;\n (async () => {\n const ids = await fetchCompanyIdsByWellIds(selectedIds);\n setPreselectedCompanyIds(ids);\n })();\n }, [open, offsetSettings?.selectedWellIds, preselectedCompanyIds.length]);\n\n // Compute which companies to fetch wells from\n const companyIdsToFetch = useMemo(() => {\n // Always include companies of selected wells so they remain visible\n const selectedWellCompanyIds = selectedWells\n .map(well => well.companyId)\n .filter(id => id != null);\n const bootstrapCompanyIds = preselectedCompanyIds || [];\n\n // If user can't view companies, use default behavior (fetch from user's company only)\n if (!canViewCompanies) {\n const baseIds = assetCompanyId ? [assetCompanyId] : [];\n\n return [...new Set(baseIds.concat(selectedWellCompanyIds, bootstrapCompanyIds))];\n }\n\n // If no company filter set at all, default to subject well's company (initial state)\n if (companyFilter === undefined) {\n const baseIds = assetCompanyId ? [assetCompanyId] : [];\n\n return [...new Set(baseIds.concat(selectedWellCompanyIds, bootstrapCompanyIds))];\n }\n // If company filter is empty array, user cleared it = fetch all companies\n if (Array.isArray(companyFilter) && companyFilter.length === 0) {\n return null; // null means fetch from all companies\n }\n // If company filter has values, always include subject well's company + selected wells' companies\n const allIdsSet = new Set(companyFilter);\n if (assetCompanyId) {\n allIdsSet.add(assetCompanyId);\n }\n selectedWellCompanyIds.forEach(id => allIdsSet.add(id));\n bootstrapCompanyIds.forEach(id => allIdsSet.add(id));\n return Array.from(allIdsSet);\n }, [companyFilter, assetCompanyId, canViewCompanies, selectedWells, preselectedCompanyIds]);\n const [selectedWellSection, setSelectedWellSection] = useState(\n offsetSettings?.wellSection || ALL_SECTION_KEY\n );\n const initLoading = useRef(true);\n const [isTableLoading, setIsTableLoading] = useState(true);\n\n const isLimitedOffsetWells = maxOffsetWellNumber <= selectedWells?.length;\n\n /** @type {ReturnType<typeof useRef<number[]>>} */\n const prevSelectedWellIds = useRef();\n const [appLoading, setAppLoading] = useState(true);\n\n useEffect(() => {\n if (open && isLimitedOffsetWells) {\n showInfoNotification(\n `App can’t process more than (${maxOffsetWellNumber - 1}) Offset Wells.`\n );\n }\n // NOTE: Refresh when the offset well changes externally\n if (!open) {\n const prevIdsSet = new Set(prevSelectedWellIds.current || []);\n const isNotChanged =\n offsetSettings?.selectedWellIds?.length === prevSelectedWellIds.current?.length &&\n (offsetSettings?.selectedWellIds || []).every(id => prevIdsSet.has(id));\n if (!isNotChanged) {\n initLoading.current = true;\n }\n prevSelectedWellIds.current = offsetSettings?.selectedWellIds;\n }\n // TODO: Check reference stability. Initially had only isLimitedOffsetWells, open, offsetSettings.\n }, [isLimitedOffsetWells, open, offsetSettings, maxOffsetWellNumber]);\n\n // NOTE: Fetch wells based on company filter, coordinate bounds, or polygon if subject well exists\n const [rawWells, areRawWellsLoading] = useFetchWells(\n companyIdsToFetch,\n fetchedSubjectWell,\n radiusFilter,\n selectionMode,\n polygonCoords\n );\n\n // NOTE: Fetch pinned wells independently of radius\n const [pinnedWells, arePinnedWellsLoading] = usePinnedWells(offsetSettings?.selectedWellIds);\n\n // NOTE: Fetch wells selected via search that are outside current bounds\n const [searchedWells, areSearchedWellsLoading, fetchSearchedWells] = useSearchedWells();\n\n // NOTE: Ensure subject well, pinned wells and searched wells are always in rawWells for enrichment pipeline\n const rawWellsWithSubject = useMemo(() => {\n if (!rawWells) {\n return null;\n }\n\n let result = rawWells;\n\n if (pinnedWells?.length) {\n const existingIds = new Set(result.map(w => w.id));\n const missingPinned = pinnedWells.filter(w => !existingIds.has(w.id));\n\n if (missingPinned.length > 0) {\n result = result.concat(missingPinned);\n }\n }\n\n // Merge searched wells (wells added via search that are outside bounds)\n if (searchedWells?.length) {\n const existingIds = new Set(result.map(w => w.id));\n const missingSearched = searchedWells.filter(w => !existingIds.has(w.id));\n\n if (missingSearched.length > 0) {\n result = result.concat(missingSearched);\n }\n }\n\n if (fetchedSubjectWell && !result.some(w => w.id === fetchedSubjectWell.id)) {\n result = [fetchedSubjectWell].concat(result);\n }\n\n return result;\n }, [rawWells, fetchedSubjectWell, pinnedWells, searchedWells]);\n\n const [companyProvider] = useCompanyProvider(assetCompanyId);\n\n const [\n wellSections,\n setWellSections,\n bicWells,\n setBicWells,\n resyncStatus,\n setResyncStatus,\n taScores,\n ] = useBicWells(subjectWellId, rawWellsWithSubject);\n\n const isWellSectionColumnVisible = useMemo(() => {\n if (!wellSections) {\n return false;\n }\n\n return wellSections.some(section => section.value !== ALL_SECTION_KEY);\n }, [wellSections]);\n\n useEffect(() => {\n setAppLoading(true);\n setWellSections(null);\n setBicWells(null);\n // TODO: Check reference stability. Initially had only subjectWellId.\n }, [setBicWells, setWellSections, subjectWellId]);\n\n const [metricsKeys, setMetricsKeys] = useCompanyMetricKey(\n assetCompanyId,\n offsetSettings?.metricsKeys\n );\n\n // NOTE: Calculate wells with coordinates, metrics and well section name\n const [wellsWithoutCompanyName, areAdvancedWellsLoading] = useAdvancedWells(\n assetCompanyId,\n rawWellsWithSubject,\n wellSections,\n bicWells,\n subjectWellId,\n metricsKeys,\n open\n );\n\n // NOTE: Add company names to wells for display\n const wells = useMemo(() => {\n if (!wellsWithoutCompanyName || !companies?.length) return wellsWithoutCompanyName;\n\n const companyMap = {};\n companies.forEach(company => {\n companyMap[company.id] = company.name;\n });\n\n return wellsWithoutCompanyName.map(well => ({\n ...well,\n companyName: companyMap[well.companyId] || 'Null',\n }));\n }, [wellsWithoutCompanyName, companies]);\n\n // NOTE: Derive enriched subject well from the enrichment pipeline (includes company name)\n const subjectWell = useMemo(() => {\n if (!fetchedSubjectWell) {\n return null;\n }\n\n if (!wells) {\n return fetchedSubjectWell;\n }\n\n const enrichedSubjectWell = wells.find(w => w.id === fetchedSubjectWell.id);\n\n return enrichedSubjectWell || fetchedSubjectWell;\n }, [fetchedSubjectWell, wells]);\n\n const isAllWellsLoaded =\n !areRawWellsLoading &&\n !areAdvancedWellsLoading &&\n !arePinnedWellsLoading &&\n !areSearchedWellsLoading;\n\n useEffect(() => {\n if (!isAllWellsLoaded) {\n return;\n }\n\n const syncOffsetWells = async () => {\n const isSynced = typeof offsetSettings?.isSynced === 'undefined' || offsetSettings?.isSynced;\n\n let offsetWellsChanged = true;\n\n if (isSynced) {\n const bicWellIds = bicWells[ALL_SECTION_KEY] || [];\n const bicWellIdsSet = new Set(bicWellIds);\n const isMatched = (offsetSettings?.selectedWellIds || []).every(wellId =>\n bicWellIdsSet.has(wellId)\n );\n\n // if well hub or offset selection app be changed\n if (bicWellIds.length !== offsetSettings?.selectedWellIds?.length || !isMatched) {\n const wellsByDistance = await getCoordinatedWells(bicWellIds, subjectWellId);\n const selectedWellIds = wellsByDistance\n .slice(0, localMaxOffsetSize + 1)\n .map(well => well.id);\n const newOffsetSetting = {\n ...offsetSettings,\n subjectWellId,\n selectedWellIds,\n offsetWellsLimited: maxOffsetWellNumber <= selectedWellIds.length,\n };\n const selectedWellIdsSet = new Set(selectedWellIds);\n const offsetWells = wellsByDistance.filter(well => selectedWellIdsSet.has(well.id));\n\n onSave(newOffsetSetting, offsetWells);\n } else {\n offsetWellsChanged = false;\n }\n } else {\n offsetWellsChanged = false;\n }\n\n if (!offsetWellsChanged) {\n const offsetWells = await getCoordinatedWells(\n offsetSettings?.selectedWellIds || [],\n subjectWellId\n );\n onSave(offsetSettings, offsetWells);\n }\n };\n\n if (syncAutoEnabled && appLoading && offsetSettings && bicWells) {\n syncOffsetWells();\n setAppLoading(false);\n }\n // TODO: Check reference stability. Initially had only offsetSettings, bicWells, subjectWellId, maxOffsetWellNumber, syncAutoEnabled\n }, [\n offsetSettings,\n bicWells,\n subjectWellId,\n maxOffsetWellNumber,\n syncAutoEnabled,\n isAllWellsLoaded,\n appLoading,\n maxOffsetSize,\n localMaxOffsetSize,\n onSave,\n ]);\n\n const filterOptions = useFilterOptions(wells, companies, canViewCompanies);\n\n // NOTE: Table columns with metrics\n const columnsWithDict = useTableColumns(\n metricsKeys,\n canViewCompanies,\n isWellSectionColumnVisible\n );\n // NOTE: Filter wells\n const filteredWells = useFilteredWells(wells, filters, polygonCoords, radiusFilter);\n\n // NOTE: Include selected wells from other companies so they can be deselected\n const wellsToDisplay = useMemo(() => {\n if (!filteredWells) {\n return filteredWells;\n }\n\n // Ensure ALL selected wells are displayed (at top via useSortedWells)\n // regardless of current company filter\n return uniqBy(selectedWells.concat(filteredWells), 'id');\n }, [filteredWells, selectedWells]);\n\n useEffect(() => {\n if (!filteredWells || !isAllWellsLoaded) {\n return;\n }\n\n if (initLoading.current) {\n const selectedIdsSet = new Set(offsetSettings?.selectedWellIds || []);\n\n let data = wells.filter(well => selectedIdsSet.has(well.id));\n\n // Preserve existing selectedWells not in wells array (may have been fetched by usePinnedWells)\n const dataIds = new Set(data.map(w => w.id));\n const preserved = selectedWells.filter(w => selectedIdsSet.has(w.id) && !dataIds.has(w.id));\n\n data = data.concat(preserved);\n\n if (subjectWell) {\n data = data.concat(subjectWell);\n }\n\n setSelectedWells(uniqBy(data, 'id'));\n initLoading.current = false;\n }\n }, [\n wells,\n filteredWells,\n offsetSettings?.selectedWellIds,\n isAllWellsLoaded,\n subjectWell,\n selectedWells,\n ]);\n\n // NOTE: Add pending search selections once wells are enriched\n useEffect(() => {\n if (!wells?.length || pendingSearchSelectionRef.current.size === 0) {\n return;\n }\n\n const pendingIds = pendingSearchSelectionRef.current;\n const enrichedWells = wells.filter(w => pendingIds.has(w.id));\n\n if (enrichedWells.length > 0) {\n setSelectedWells(prev => {\n const limited = enrichedWells.slice(0, Math.max(0, maxOffsetWellNumber - prev.length));\n\n return uniqBy(prev.concat(limited), 'id');\n });\n enrichedWells.forEach(w => pendingIds.delete(w.id));\n }\n }, [wells, maxOffsetWellNumber]);\n\n // NOTE: Sort wells\n const [sortBy, setSortBy, sortDirection, setSortDirection, sortedWells] = useSortedWells(\n subjectWell,\n wellsToDisplay,\n selectedWells,\n setIsTableLoading\n );\n\n // NOTE: Add advanced wells\n const handleAddRemoveAssets = useCallback(\n async (isAdding, newAssets, assetType) => {\n let addingWellIds;\n\n if (assetType === SEARCH_CATEGORIES.well.name) {\n addingWellIds = newAssets;\n } else {\n // Build lookup maps once for O(1) access\n const wellIdToRigName = new Map();\n const rigNameToWellIds = new Map();\n wells.forEach(well => {\n wellIdToRigName.set(well.id, well.rigName);\n if (!rigNameToWellIds.has(well.rigName)) {\n rigNameToWellIds.set(well.rigName, []);\n }\n rigNameToWellIds.get(well.rigName).push(well.id);\n });\n\n addingWellIds = newAssets.flatMap(assetId => {\n const rigName = wellIdToRigName.get(assetId);\n\n return rigNameToWellIds.get(rigName) || [];\n });\n }\n\n const addingWellIdsSet = new Set(addingWellIds);\n const addingWells = wells.filter(({ id }) => addingWellIdsSet.has(id));\n\n // Fetch missing wells (outside bounds) when adding via search\n // These will be added to selectedWells via effect once enriched\n if (isAdding && addingWells.length < addingWellIds.length) {\n const foundIds = new Set(addingWells.map(w => w.id));\n const missingIds = addingWellIds.filter(id => !foundIds.has(id));\n\n if (missingIds.length > 0) {\n // Show loading spinner in search dropdown\n setLoadingAssetIds(prev => prev.concat(missingIds));\n\n // Trigger fetch to add wells to enrichment pipeline\n await fetchSearchedWells(missingIds);\n\n // Clear loading state\n setLoadingAssetIds(prev => prev.filter(id => !missingIds.includes(id)));\n\n // Store as pending - effect will add enriched wells to selectedWells\n missingIds.forEach(id => pendingSearchSelectionRef.current.add(id));\n }\n }\n\n if (isAdding) {\n // Only add wells that are already enriched (in wells array)\n const limitedWells = addingWells.slice(\n 0,\n Math.min(addingWells.length, maxOffsetWellNumber - selectedWells.length)\n );\n if (limitedWells.length > 0) {\n setSelectedWells(selectedWells => uniqBy(selectedWells.concat(limitedWells), 'id'));\n }\n } else {\n setSelectedWells(selectedWells =>\n uniq(selectedWells.filter(({ id }) => !addingWells.find(well => well.id === id)))\n );\n }\n },\n // TODO: Check reference stability. Initially had wells, selectedWells\n [wells, maxOffsetWellNumber, selectedWells.length, fetchSearchedWells]\n );\n\n const handleHideAdvancedSearch = useCallback(() => {\n setIsAdvancedSearchHidden(true);\n }, [setIsAdvancedSearchHidden]);\n\n // NOTE: Change metrics keys\n const handleChangeMetricsKeys = useCallback(\n newMetricsKeys => {\n setMetricsKeys(newMetricsKeys);\n },\n [setMetricsKeys]\n );\n\n const handleUpdateMetricsKey = useCallback(\n (key, newValue) => {\n setMetricsKeys(prevKeys => prevKeys.map(item => (item === key ? newValue : item)));\n },\n [setMetricsKeys]\n );\n\n const handleChangeSortBy = useCallback(\n (sortKey, sortDirection) => {\n setSortBy(sortKey);\n setSortDirection(sortDirection);\n },\n [setSortBy, setSortDirection]\n );\n\n // NOTE: Check and Uncheck one offset well\n const handleChangeOffsetWell = useCallback(\n (well, checked) => {\n if (checked) {\n const enrichedWell = wells?.find(w => w.id === well.id) || well;\n setSelectedWells(prevWells => prevWells.concat(enrichedWell));\n } else {\n setSelectedWells(prevWells => prevWells.filter(item => item.id !== well.id));\n }\n },\n [wells]\n );\n\n // NOTE: Select and Unselect All wells\n const handleChangeAllOffsetWells = useCallback(\n checked => {\n if (checked) {\n const data = subjectWell ? filteredWells.concat(subjectWell) : filteredWells;\n const sortedData = sortArray(uniqBy(data, 'id'), 'distance');\n setSelectedWells(sortedData.slice(0, maxOffsetWellNumber));\n } else {\n setSelectedWells(subjectWell ? [subjectWell] : []);\n }\n },\n [filteredWells, subjectWell, maxOffsetWellNumber]\n );\n\n // NOTE: Well Section change filter\n const updateSelectedWellsBySection = useCallback(\n section => {\n if (bicWells) {\n const sectionWellIdsSet = new Set(bicWells[section] || []);\n const sectionWells = wells?.filter(well => sectionWellIdsSet.has(well.id)) || [];\n const limitedWells = sortArray(sectionWells, 'distance');\n setSelectedWells(limitedWells.slice(0, maxOffsetSize));\n } else {\n setSelectedWells(subjectWell ? [subjectWell] : []);\n }\n },\n [bicWells, maxOffsetSize, subjectWell, wells]\n );\n\n const handleChangeWellSection = useCallback(\n section => {\n setSelectedWellSection(section);\n updateSelectedWellsBySection(section);\n },\n [updateSelectedWellsBySection]\n );\n\n // NOTE: Get Selected wells count\n const selectedWellsCount = useMemo(() => {\n if (selectedWells.find(well => well.id === subjectWellId)) {\n return selectedWells.length - 1;\n }\n return selectedWells.length;\n }, [selectedWells, subjectWellId]);\n\n // NOTE: Save offset setting\n const isSynced = useMemo(() => {\n if (!bicWells) return false;\n const selectedWellIds = selectedWells.map(({ id }) => id);\n const owsWellIds = bicWells[selectedWellSection] || [];\n const owsWellIdsLength = Math.min(owsWellIds.length, maxOffsetSize);\n\n if (owsWellIdsLength !== selectedWellIds.length) {\n return false;\n }\n const owsWellIdsSet = new Set(owsWellIds);\n return selectedWellIds.every(id => owsWellIdsSet.has(id));\n }, [bicWells, selectedWells, selectedWellSection, maxOffsetSize]);\n\n const isXtoProvider = useMemo(() => {\n return companyProvider ? COMPANY_PROVIDERS_FOR_IDAS.includes(companyProvider) : false;\n }, [companyProvider]);\n\n const offsetLabel = useMemo(() => {\n if (isXtoProvider) {\n return 'IDAS generated offsets.';\n }\n\n return isWDUser ? 'Offset Selection App.' : 'WellHub.';\n }, [isXtoProvider, isWDUser]);\n\n const performSave = useCallback(() => {\n onClose();\n\n const selectedIds = selectedWells.map(({ id }) => id);\n\n const newOffsetSetting = {\n ...offsetSettings,\n companyId: assetCompanyId,\n subjectWellId,\n selectedWellIds: selectedIds,\n filters,\n metricsKeys,\n wellSection: selectedWellSection,\n isSynced,\n mapHidden: isMapHidden,\n filterExpanded: isFilterExpanded,\n offsetWellsLimited: isLimitedOffsetWells,\n };\n onSave(newOffsetSetting, selectedWells);\n }, [\n onClose,\n selectedWells,\n offsetSettings,\n assetCompanyId,\n subjectWellId,\n filters,\n metricsKeys,\n selectedWellSection,\n isSynced,\n isMapHidden,\n isFilterExpanded,\n isLimitedOffsetWells,\n onSave,\n ]);\n\n // NOTE: Complete pending save once all wells are enriched\n useEffect(() => {\n if (!isSavePending) {\n return;\n }\n\n // Check if all pending wells have been enriched (moved to selectedWells)\n if (pendingSearchSelectionRef.current.size === 0) {\n setIsSavePending(false);\n performSave();\n }\n }, [isSavePending, selectedWells, performSave]);\n\n const handleSave = () => {\n if (pendingSearchSelectionRef.current.size > 0) {\n // Wells still pending enrichment - wait for them\n setIsSavePending(true);\n return;\n }\n\n performSave();\n };\n\n const handleCancel = () => {\n const selectedIdsSet = new Set(offsetSettings?.selectedWellIds || []);\n let data = (wells || []).filter(well => selectedIdsSet.has(well.id));\n\n if (pinnedWells?.length) {\n const dataIds = new Set(data.map(w => w.id));\n const preserved = pinnedWells.filter(w => selectedIdsSet.has(w.id) && !dataIds.has(w.id));\n\n data = data.concat(preserved);\n }\n\n if (subjectWell) {\n data = data.concat(subjectWell);\n }\n\n setSelectedWells(uniqBy(data, 'id'));\n\n const newOffsetSetting = {\n ...offsetSettings,\n mapHidden: isMapHidden,\n filterExpanded: isFilterExpanded,\n };\n onSave(newOffsetSetting);\n setFilters({\n ...(offsetSettings?.filters || {}),\n });\n setSelectedWellSection(offsetSettings?.wellSection || ALL_SECTION_KEY);\n onClose();\n };\n\n const isTableFullLoading = isTableLoading || areRawWellsLoading;\n\n // NOTE: Reset processing\n const isResetVisible = useMemo(() => {\n if (!hasValidAssetId) return false;\n if (isTableFullLoading) return false;\n if (!isSynced) return true;\n if (!isEmpty(filters) && filters[FilterType.sideTracks]) return true;\n if (selectedWellSection !== ALL_SECTION_KEY) return true;\n return false;\n }, [hasValidAssetId, isSynced, filters, selectedWellSection, isTableFullLoading]);\n\n const handleReset = useCallback(() => {\n resetFilters();\n setSelectedWellSection(ALL_SECTION_KEY);\n updateSelectedWellsBySection(ALL_SECTION_KEY);\n }, [resetFilters, updateSelectedWellsBySection]);\n\n const isLoading = !wells || !wellSections || !sortedWells;\n\n // NOTE: Well Name shadow\n const [tableRowsCount, setTableRowsCount] = useState(ROWS_PER_PAGE);\n const [tableWells, setTableWells] = useState([]);\n const headTableRef = useRef();\n\n useEffect(() => {\n if (!sortedWells) return;\n\n const wells = sortedWells.slice(0, tableRowsCount);\n setTableWells(wells);\n }, [sortedWells, tableRowsCount, subjectWell]);\n\n // NOTE: Remove shadow from header column\n useEffect(() => {\n if (!headTableRef.current) return;\n const headColumn = headTableRef.current.querySelector(`.${offsetTableStyles.wellNameFixed}`);\n if (!headColumn) return;\n if (!isHScrollMoved) {\n headColumn.classList.add(offsetTableStyles.noShadow);\n } else {\n headColumn.classList.remove(offsetTableStyles.noShadow);\n }\n }, [isHScrollMoved, tableWells]);\n\n // Calculations for table header and search - moved from OffsetWellsTable\n const uniqTableWells = useMemo(() => uniqBy(tableWells, 'id'), [tableWells]);\n\n const [selectedTableWells, indeterminate, isAllWellsSelected] = useMemo(() => {\n const selectedTableWells = uniqTableWells.filter(well => well.checked);\n const indeterminate =\n uniqTableWells.length !== selectedTableWells.length &&\n Boolean(selectedTableWells.length) &&\n !isLimitedOffsetWells;\n const isAllWellsSelected =\n selectedTableWells.length === uniqTableWells.length || isLimitedOffsetWells;\n\n return [selectedTableWells, indeterminate, isAllWellsSelected];\n }, [uniqTableWells, isLimitedOffsetWells]);\n\n const isImperial = useMemo(() => getIsImperial(), []);\n\n useEffect(() => {\n if (resyncStatus === RESYNC_STATUS.SUCCEEDED) {\n handleReset();\n }\n // TODO: Check reference stability. Initially had only bicWells\n }, [bicWells, handleReset, resyncStatus]);\n\n const handleScroll = e => {\n if (!e.target) return;\n\n if (isAdvancedSearchHidden) {\n e.target.scrollLeft = 0;\n setIsAdvancedSearchHidden(false);\n }\n\n // Check if H-Scroll is visible\n if (e.target.scrollLeft <= 5 && isHScrollMoved) {\n setIsHScrollMoved(false);\n }\n if (e.target.scrollLeft > 5 && !isHScrollMoved) {\n setIsHScrollMoved(true);\n }\n\n // Check if scroll has reached top or bottom\n if (e.target.scrollHeight === e.target.offsetHeight) return;\n\n const currentScrollBottom = Math.round(e.target.scrollTop + e.target.offsetHeight + 2);\n\n if (currentScrollBottom >= e.target.scrollHeight && tableRowsCount < sortedWells.length) {\n setTableRowsCount(count => count + ROWS_PER_PAGE);\n }\n };\n\n return (\n <Modal\n open={open}\n onClose={handleCancel}\n size=\"fullscreen\"\n className={styles.modalDialog}\n title={\n <AppHeader\n totalCount={wells?.length ?? 0}\n selectedCount={selectedWellsCount}\n maxOffsetWellNumber={maxOffsetWellNumber}\n isXtoProvider={isXtoProvider}\n resyncStatus={resyncStatus}\n setResyncStatus={setResyncStatus}\n metricsKeys={metricsKeys}\n onChangeMetricsKeys={handleChangeMetricsKeys}\n />\n }\n actions={\n !isViewOnly && (\n <div className={styles.actionsWrapper}>\n {!isLoading && isResetVisible ? (\n <Tooltip\n placement=\"bottom-start\"\n title={`Reset to Synced Offsets in ${isWDUser ? 'Offset App' : 'Wellhub'}`}\n >\n <div>\n <Button\n data-testid={`${PAGE_NAME}_reset`}\n onClick={handleReset}\n color=\"primary\"\n startIcon={<ReplayIcon />}\n >\n Reset to Defaults\n </Button>\n </div>\n </Tooltip>\n ) : (\n hasValidAssetId && (\n <div>\n <span className={classNames(typography.regular12, typography.colors.t6)}>\n The offset list is being automatically populated by&nbsp;\n </span>\n <span className={classNames(typography.medium12, typography.colors.t6)}>\n {offsetLabel}\n </span>\n </div>\n )\n )}\n <div className={styles.buttonGap}>\n <Button data-testid={`${PAGE_NAME}_cancel`} onClick={handleCancel} color=\"primary\">\n Cancel\n </Button>\n <Button\n data-testid={`${PAGE_NAME}_selectedWells`}\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSave}\n disabled={isSavePending}\n prefix={isSavePending ? <LoaderCircular size={16} /> : undefined}\n >\n Select ({selectedWellsCount})\n </Button>\n </div>\n </div>\n )\n }\n >\n <div className={classNames(styles.offsetWellDialog)}>\n <NotificationsContainer />\n {!isLoading ? (\n <div\n className={classNames(styles.contentWrapper, {\n [styles.contentBlocked]: isTableFullLoading,\n })}\n >\n <div className={styles.columnsContainer}>\n {!isMapHidden && open && (\n <div className={styles.leftColumn}>\n <WellsMap\n mapHidden={isMapHidden}\n subjectWell={subjectWell}\n offsetWellIds={selectedWells.map(({ id }) => id)}\n wells={wellsToDisplay}\n handleChangeOffsetWell={handleChangeOffsetWell}\n activeWellId={activeWellId}\n />\n </div>\n )}\n <div className={styles.rightColumn} onScroll={handleScroll}>\n <Filter\n isHidden={!isFilterExpanded}\n filterOptions={filterOptions}\n wellSections={wellSections}\n selectedWellSection={selectedWellSection}\n subjectWell={subjectWell}\n assetCompanyId={assetCompanyId}\n onChangeBicWells={handleChangeWellSection}\n />\n <div className={offsetTableStyles.stickyTable}>\n <Table aria-label=\"ows table head\" innerRef={headTableRef}>\n <TableHead>\n <OffsetWellsTableHead\n columnsWithDict={columnsWithDict}\n metricsKeys={metricsKeys}\n sortBy={sortBy}\n sortDirection={sortDirection}\n indeterminate={indeterminate}\n isAllWellsSelected={isAllWellsSelected}\n onChangeSort={handleChangeSortBy}\n onUpdateMetricsKey={handleUpdateMetricsKey}\n handleChangeAllOffsetWells={handleChangeAllOffsetWells}\n wellNameStyle={offsetTableStyles.wellNameFixed}\n isImperial={isImperial}\n isTaColumnVisible={!!taScores.length}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n />\n </TableHead>\n {isViewOnly && <div className={styles.topGradient} />}\n </Table>\n </div>\n\n {!isViewOnly && (\n <div className={classNames(offsetTableStyles.searchCellWrapper)}>\n <div className={offsetTableStyles.searchCell}>\n <AdvancedSearch\n companyId={assetCompanyId}\n subjectWellId={subjectWellId}\n onChange={handleAddRemoveAssets}\n selectedWellIds={selectedTableWells.map(({ id }) => id)}\n onHideAdvancedSearch={handleHideAdvancedSearch}\n loadingAssetIds={loadingAssetIds}\n />\n </div>\n <div className={styles.topGradient} />\n </div>\n )}\n\n <OffsetWellsTable\n isTableLoading={isTableFullLoading}\n subjectWellId={subjectWellId}\n columnsWithDict={columnsWithDict}\n wells={tableWells}\n metricsKeys={metricsKeys}\n handleChangeOffsetWell={handleChangeOffsetWell}\n isLastWell={sortedWells.length <= tableRowsCount}\n isLimitedOffsetWells={isLimitedOffsetWells}\n maxOffsetWellNumber={maxOffsetWellNumber}\n wellSections={wellSections}\n setActiveWellId={setActiveWellId}\n taScores={taScores}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n />\n </div>\n </div>\n {isViewOnly && hasValidAssetId && (\n <div className={styles.viewOnlyInfoContainer}>\n <span className={classNames(typography.regular12, typography.colors.t6)}>\n The offset list is being automatically populated by&nbsp;\n </span>\n <span className={classNames(typography.medium12, typography.colors.t6)}>\n {offsetLabel}\n </span>\n </div>\n )}\n </div>\n ) : (\n <LoadingIndicator />\n )}\n </div>\n </Modal>\n );\n};\n"],"names":["PAGE_NAME","OffsetWellPickerV5","_useFilterStore","_useFilterStore2","_wells$length","open","usePickerPropsStore","state","isWDUser","defaultSubjectWell","currentUser","offsetSettings","isViewOnly","onClose","onSave","offsetSize","maxOffsetSize","localMaxOffsetSize","syncAutoEnabled","useState","_useState2","_slicedToArray","_useState","activeWellId","setActiveWellId","Math","min","MAX_OFFSET_SIZE","maxOffsetWellNumber","max","subjectWellId","asset_id","useFetchSubjectWell","fetchedSubjectWell","_useFetchSubjectWell","useGlobalOffsetWellsSync","isFilterExpanded","useViewStore","isMapHidden","isHScrollMoved","setIsHScrollMoved","isAdvancedSearchHidden","setIsAdvancedSearchHidden","assetCompanyId","companyId","company_id","hasValidAssetId","filters","useFilterStore","setFilters","resetFilters","radiusFilter","radius","DEFAULT_RADIUS_MILES","selectionMode","polygonCoords","_useCompanies","useCompanies","canViewCompanies","companies","_useState4","_useState3","selectedWells","setSelectedWells","_useState6","_useState5","preselectedCompanyIds","setPreselectedCompanyIds","pendingSearchSelectionRef","useRef","Set","_useState8","_useState7","loadingAssetIds","setLoadingAssetIds","_useState10","_useState9","isSavePending","setIsSavePending","companyFilter","useMemo","FilterType","company","useEffect","selectedIds","selectedWellIds","length","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ids","wrap","_context","prev","next","fetchCompanyIdsByWellIds","sent","stop","companyIdsToFetch","selectedWellCompanyIds","map","well","filter","id","bootstrapCompanyIds","_toConsumableArray","concat","undefined","Array","isArray","allIdsSet","add","forEach","from","_useState11","wellSection","ALL_SECTION_KEY","_useState12","selectedWellSection","setSelectedWellSection","initLoading","_useState14","_useState13","isTableLoading","setIsTableLoading","isLimitedOffsetWells","prevSelectedWellIds","_useState16","_useState15","appLoading","setAppLoading","showInfoNotification","_offsetSettings$selec","_prevSelectedWellIds$","prevIdsSet","current","every","has","useFetchWells","_useFetchWells2","_useFetchWells","rawWells","areRawWellsLoading","usePinnedWells","_usePinnedWells2","_usePinnedWells","pinnedWells","arePinnedWellsLoading","_useSearchedWells","useSearchedWells","_useSearchedWells2","searchedWells","areSearchedWellsLoading","fetchSearchedWells","rawWellsWithSubject","result","existingIds","w","missingPinned","missingSearched","some","useCompanyProvider","companyProvider","_useCompanyProvider","_useBicWells","useBicWells","_useBicWells2","wellSections","setWellSections","bicWells","setBicWells","resyncStatus","setResyncStatus","taScores","isWellSectionColumnVisible","section","value","useCompanyMetricKey","metricsKeys","_useCompanyMetricKey2","_useCompanyMetricKey","setMetricsKeys","_useAdvancedWells","useAdvancedWells","_useAdvancedWells2","wellsWithoutCompanyName","areAdvancedWellsLoading","wells","companyMap","name","_objectSpread","companyName","subjectWell","find","isAllWellsLoaded","_ref2","syncOffsetWells","_callee2","isSynced","offsetWellsChanged","_offsetSettings$selec2","bicWellIds","bicWellIdsSet","isMatched","wellsByDistance","newOffsetSetting","selectedWellIdsSet","offsetWells","_offsetWells","_context2","wellId","getCoordinatedWells","slice","offsetWellsLimited","apply","this","arguments","filterOptions","useFilterOptions","columnsWithDict","useTableColumns","filteredWells","useFilteredWells","wellsToDisplay","uniqBy","selectedIdsSet","data","dataIds","preserved","size","pendingIds","enrichedWells","limited","delete","_ref3","useSortedWells","_useSortedWells2","_useSortedWells","sortBy","setSortBy","sortDirection","setSortDirection","sortedWells","handleAddRemoveAssets","useCallback","isAdding","newAssets","assetType","addingWellIds","wellIdToRigName","rigNameToWellIds","addingWellIdsSet","addingWells","foundIds","missingIds","limitedWells","_context3","SEARCH_CATEGORIES","Map","set","rigName","get","push","flatMap","assetId","_ref4","includes","uniq","_ref5","_callee3","_x","_x2","_x3","handleHideAdvancedSearch","handleChangeMetricsKeys","newMetricsKeys","handleUpdateMetricsKey","key","newValue","prevKeys","item","handleChangeSortBy","sortKey","handleChangeOffsetWell","checked","enrichedWell","prevWells","handleChangeAllOffsetWells","sortedData","sortArray","updateSelectedWellsBySection","sectionWellIdsSet","sectionWells","handleChangeWellSection","selectedWellsCount","_ref6","owsWellIds","owsWellIdsSet","isXtoProvider","COMPANY_PROVIDERS_FOR_IDAS","offsetLabel","performSave","_ref7","mapHidden","filterExpanded","handleCancel","isTableFullLoading","isResetVisible","isEmpty","sideTracks","handleReset","isLoading","ROWS_PER_PAGE","_useState18","_useState17","tableRowsCount","setTableRowsCount","_useState20","_useState19","tableWells","setTableWells","headTableRef","headColumn","querySelector","offsetTableStyles","wellNameFixed","classList","remove","noShadow","uniqTableWells","selectedTableWells","Boolean","_useMemo2","_useMemo","indeterminate","isAllWellsSelected","isImperial","getIsImperial","RESYNC_STATUS","SUCCEEDED","_jsx","Modal","className","styles","modalDialog","title","AppHeader","totalCount","selectedCount","onChangeMetricsKeys","actions","_jsxs","actionsWrapper","children","Tooltip","placement","Button","onClick","color","startIcon","ReplayIcon","classNames","typography","regular12","colors","t6","medium12","buttonGap","variant","disabled","prefix","LoaderCircular","offsetWellDialog","NotificationsContainer","LoadingIndicator","contentWrapper","contentBlocked","columnsContainer","leftColumn","WellsMap","offsetWellIds","_ref8","rightColumn","onScroll","e","target","scrollLeft","scrollHeight","offsetHeight","round","scrollTop","count","Filter","isHidden","onChangeBicWells","stickyTable","Table","innerRef","TableHead","OffsetWellsTableHead","onChangeSort","onUpdateMetricsKey","wellNameStyle","isTaColumnVisible","topGradient","searchCellWrapper","searchCell","AdvancedSearch","onChange","_ref9","onHideAdvancedSearch","OffsetWellsTable","isLastWell","viewOnlyInfoContainer"],"mappings":"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"}
1
+ {"version":3,"file":"OffsetWellPickerV5.js","sources":["../../../src/components/OffsetWellPickerV5/OffsetWellPickerV5.js"],"sourcesContent":["import { useState, useEffect, useRef, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { isEmpty, uniq, uniqBy, sortBy as sortArray } from 'lodash';\nimport { Replay as ReplayIcon } from '@material-ui/icons';\nimport { Table, TableHead } from '@material-ui/core';\n\nimport {\n useAdvancedWells,\n useBicWells,\n useFilterOptions,\n useCompanyMetricKey,\n useFilteredWells,\n useSortedWells,\n useTableColumns,\n useCompanyProvider,\n useCompanies,\n usePinnedWells,\n useSearchedWells,\n} from './effects';\nimport { useFetchWells } from './effects/useFetchWells';\nimport { useFetchSubjectWell } from './effects/useFetchSubjectWell';\nimport { fetchCompanyIdsByWellIds } from './api';\nimport { AppHeader } from './components/AppHeader';\nimport { Filter } from './components/Filter';\nimport { WellsMap } from './components/Map';\nimport { OffsetWellsTable } from './components/OffsetWellsTable';\nimport { OffsetWellsTableHead } from './components/OffsetWellsTable/OffsetWellsTableHead';\nimport { AdvancedSearch } from './components/OffsetWellsTable/AdvancedSearch';\nimport {\n ALL_SECTION_KEY,\n COMPANY_PROVIDERS_FOR_IDAS,\n FilterType,\n MAX_OFFSET_SIZE,\n ROWS_PER_PAGE,\n RESYNC_STATUS,\n DEFAULT_RADIUS_MILES,\n} from './constants';\nimport { SEARCH_CATEGORIES } from './components/OffsetWellsTable/AdvancedSearch/constants';\nimport { getCoordinatedWells } from './utils';\nimport { getIsImperial } from './utils/getIsImperial';\nimport { usePickerPropsStore } from './stores/picker-props-store/usePickerPropsStore';\nimport { useFilterStore } from './stores/filter-store/useFilterStore';\nimport { useViewStore } from './stores/view-store/useViewStore';\n\nimport styles from './OffsetWellPickerV5.module.css';\nimport offsetTableStyles from './components/OffsetWellsTable/OffsetWellsTable.module.css';\n\nimport { showInfoNotification } from '~/utils';\nimport { NotificationsContainer } from '~/components/Notifications';\nimport { typography } from '~/styles';\nimport { LoadingIndicator } from '~/components';\nimport { Button, LoaderCircular, Modal, Tooltip } from '~/componentsV2';\nimport { useGlobalOffsetWellsSync } from '~/effects';\n\nconst PAGE_NAME = 'OffsetWellPickerV5';\n\nexport const OffsetWellPickerV5 = () => {\n const open = usePickerPropsStore(state => state.open);\n const isWDUser = usePickerPropsStore(state => state.isWDUser);\n const defaultSubjectWell = usePickerPropsStore(state => state.defaultSubjectWell);\n const currentUser = usePickerPropsStore(state => state.currentUser);\n const offsetSettings = usePickerPropsStore(state => state.offsetSettings);\n const isViewOnly = usePickerPropsStore(state => state.isViewOnly);\n const onClose = usePickerPropsStore(state => state.onClose);\n const onSave = usePickerPropsStore(state => state.onSave);\n const offsetSize = usePickerPropsStore(state => state.maxOffsetSize);\n const localMaxOffsetSize = usePickerPropsStore(state => state.localMaxOffsetSize);\n const syncAutoEnabled = usePickerPropsStore(state => state.syncAutoEnabled);\n\n const [activeWellId, setActiveWellId] = useState(null);\n const maxOffsetSize = Math.min(offsetSize + 1, localMaxOffsetSize + 1, MAX_OFFSET_SIZE + 1);\n const maxOffsetWellNumber = Math.min(\n Math.max(maxOffsetSize, localMaxOffsetSize + 1),\n MAX_OFFSET_SIZE + 1\n );\n\n const subjectWellId = defaultSubjectWell?.asset_id;\n\n // Fetch complete subject well data with coordinates\n const [fetchedSubjectWell] = useFetchSubjectWell(subjectWellId);\n\n useGlobalOffsetWellsSync(offsetSettings, onSave, maxOffsetWellNumber);\n\n const isFilterExpanded = useViewStore(state => state.isFilterExpanded);\n const isMapHidden = useViewStore(state => state.isMapHidden);\n const isHScrollMoved = useViewStore(state => state.isHScrollMoved);\n const setIsHScrollMoved = useViewStore(state => state.setIsHScrollMoved);\n const isVScrollMoved = useViewStore(state => state.isVScrollMoved);\n const setIsVScrollMoved = useViewStore(state => state.setIsVScrollMoved);\n const isAdvancedSearchHidden = useViewStore(state => state.isAdvancedSearchHidden);\n const setIsAdvancedSearchHidden = useViewStore(state => state.setIsAdvancedSearchHidden);\n\n const assetCompanyId = +defaultSubjectWell?.companyId || +currentUser?.company_id;\n const hasValidAssetId = subjectWellId > 0;\n const filters = useFilterStore(state => state.filters);\n const setFilters = useFilterStore(state => state.setFilters);\n const resetFilters = useFilterStore(state => state.resetFilters);\n const radiusFilter = useFilterStore(state => state.filters.radius) ?? DEFAULT_RADIUS_MILES;\n const selectionMode = useFilterStore(state => state.filters.selectionMode) ?? 'radius';\n const polygonCoords = useFilterStore(state => state.filters.polygonCoords);\n const { canViewCompanies, companies } = useCompanies({ open });\n const [selectedWells, setSelectedWells] = useState([]);\n const [preselectedCompanyIds, setPreselectedCompanyIds] = useState([]);\n\n // Track wells being selected via search that need to wait for enrichment\n const pendingSearchSelectionRef = useRef(new Set());\n\n // Track asset IDs currently being fetched (for loading spinner in search dropdown)\n const [loadingAssetIds, setLoadingAssetIds] = useState([]);\n\n // Track if save is waiting for pending wells to be enriched\n const [isSavePending, setIsSavePending] = useState(false);\n\n const companyFilter = useMemo(() => filters[FilterType.company], [filters]);\n\n // Bootstrap: ensure companies of pre-selected wells (from settings) are fetched after refresh\n useEffect(() => {\n const selectedIds = offsetSettings?.selectedWellIds || [];\n if (!open || preselectedCompanyIds.length > 0 || selectedIds.length === 0) return;\n (async () => {\n const ids = await fetchCompanyIdsByWellIds(selectedIds);\n setPreselectedCompanyIds(ids);\n })();\n }, [open, offsetSettings?.selectedWellIds, preselectedCompanyIds.length]);\n\n // Compute which companies to fetch wells from\n const companyIdsToFetch = useMemo(() => {\n // Always include companies of selected wells so they remain visible\n const selectedWellCompanyIds = selectedWells\n .map(well => well.companyId)\n .filter(id => id != null);\n const bootstrapCompanyIds = preselectedCompanyIds || [];\n\n // If user can't view companies, use default behavior (fetch from user's company only)\n if (!canViewCompanies) {\n const baseIds = assetCompanyId ? [assetCompanyId] : [];\n\n return [...new Set(baseIds.concat(selectedWellCompanyIds, bootstrapCompanyIds))];\n }\n\n // If no company filter set at all, default to subject well's company (initial state)\n if (companyFilter === undefined) {\n const baseIds = assetCompanyId ? [assetCompanyId] : [];\n\n return [...new Set(baseIds.concat(selectedWellCompanyIds, bootstrapCompanyIds))];\n }\n // If company filter is empty array, user cleared it = fetch all companies\n if (Array.isArray(companyFilter) && companyFilter.length === 0) {\n return null; // null means fetch from all companies\n }\n // If company filter has values, always include subject well's company + selected wells' companies\n const allIdsSet = new Set(companyFilter);\n if (assetCompanyId) {\n allIdsSet.add(assetCompanyId);\n }\n selectedWellCompanyIds.forEach(id => allIdsSet.add(id));\n bootstrapCompanyIds.forEach(id => allIdsSet.add(id));\n return Array.from(allIdsSet);\n }, [companyFilter, assetCompanyId, canViewCompanies, selectedWells, preselectedCompanyIds]);\n const [selectedWellSection, setSelectedWellSection] = useState(\n offsetSettings?.wellSection || ALL_SECTION_KEY\n );\n const initLoading = useRef(true);\n const [isTableLoading, setIsTableLoading] = useState(true);\n\n const isLimitedOffsetWells = maxOffsetWellNumber <= selectedWells?.length;\n\n /** @type {ReturnType<typeof useRef<number[]>>} */\n const prevSelectedWellIds = useRef();\n const [appLoading, setAppLoading] = useState(true);\n\n useEffect(() => {\n if (open && isLimitedOffsetWells) {\n showInfoNotification(\n `App can’t process more than (${maxOffsetWellNumber - 1}) Offset Wells.`\n );\n }\n // NOTE: Refresh when the offset well changes externally\n if (!open) {\n const prevIdsSet = new Set(prevSelectedWellIds.current || []);\n const isNotChanged =\n offsetSettings?.selectedWellIds?.length === prevSelectedWellIds.current?.length &&\n (offsetSettings?.selectedWellIds || []).every(id => prevIdsSet.has(id));\n if (!isNotChanged) {\n initLoading.current = true;\n }\n prevSelectedWellIds.current = offsetSettings?.selectedWellIds;\n }\n // TODO: Check reference stability. Initially had only isLimitedOffsetWells, open, offsetSettings.\n }, [isLimitedOffsetWells, open, offsetSettings, maxOffsetWellNumber]);\n\n // NOTE: Fetch wells based on company filter, coordinate bounds, or polygon if subject well exists\n const [rawWells, areRawWellsLoading] = useFetchWells(\n companyIdsToFetch,\n fetchedSubjectWell,\n radiusFilter,\n selectionMode,\n polygonCoords\n );\n\n // NOTE: Fetch pinned wells independently of radius\n const [pinnedWells, arePinnedWellsLoading] = usePinnedWells(offsetSettings?.selectedWellIds);\n\n // NOTE: Fetch wells selected via search that are outside current bounds\n const [searchedWells, areSearchedWellsLoading, fetchSearchedWells] = useSearchedWells();\n\n // NOTE: Ensure subject well, pinned wells and searched wells are always in rawWells for enrichment pipeline\n const rawWellsWithSubject = useMemo(() => {\n if (!rawWells) {\n return null;\n }\n\n let result = rawWells;\n\n if (pinnedWells?.length) {\n const existingIds = new Set(result.map(w => w.id));\n const missingPinned = pinnedWells.filter(w => !existingIds.has(w.id));\n\n if (missingPinned.length > 0) {\n result = result.concat(missingPinned);\n }\n }\n\n // Merge searched wells (wells added via search that are outside bounds)\n if (searchedWells?.length) {\n const existingIds = new Set(result.map(w => w.id));\n const missingSearched = searchedWells.filter(w => !existingIds.has(w.id));\n\n if (missingSearched.length > 0) {\n result = result.concat(missingSearched);\n }\n }\n\n if (fetchedSubjectWell && !result.some(w => w.id === fetchedSubjectWell.id)) {\n result = [fetchedSubjectWell].concat(result);\n }\n\n return result;\n }, [rawWells, fetchedSubjectWell, pinnedWells, searchedWells]);\n\n const [companyProvider] = useCompanyProvider(assetCompanyId);\n\n const [\n wellSections,\n setWellSections,\n bicWells,\n setBicWells,\n resyncStatus,\n setResyncStatus,\n taScores,\n ] = useBicWells(subjectWellId, rawWellsWithSubject);\n\n const isWellSectionColumnVisible = useMemo(() => {\n if (!wellSections) {\n return false;\n }\n\n return wellSections.some(section => section.value !== ALL_SECTION_KEY);\n }, [wellSections]);\n\n useEffect(() => {\n setAppLoading(true);\n setWellSections(null);\n setBicWells(null);\n // TODO: Check reference stability. Initially had only subjectWellId.\n }, [setBicWells, setWellSections, subjectWellId]);\n\n const [metricsKeys, setMetricsKeys] = useCompanyMetricKey(\n assetCompanyId,\n offsetSettings?.metricsKeys\n );\n\n // NOTE: Calculate wells with coordinates, metrics and well section name\n const [wellsWithoutCompanyName, areAdvancedWellsLoading] = useAdvancedWells(\n assetCompanyId,\n rawWellsWithSubject,\n wellSections,\n bicWells,\n subjectWellId,\n metricsKeys,\n open\n );\n\n // NOTE: Add company names to wells for display\n const wells = useMemo(() => {\n if (!wellsWithoutCompanyName || !companies?.length) return wellsWithoutCompanyName;\n\n const companyMap = {};\n companies.forEach(company => {\n companyMap[company.id] = company.name;\n });\n\n return wellsWithoutCompanyName.map(well => ({\n ...well,\n companyName: companyMap[well.companyId] || 'Null',\n }));\n }, [wellsWithoutCompanyName, companies]);\n\n // NOTE: Derive enriched subject well from the enrichment pipeline (includes company name)\n const subjectWell = useMemo(() => {\n if (!fetchedSubjectWell) {\n return null;\n }\n\n if (!wells) {\n return fetchedSubjectWell;\n }\n\n const enrichedSubjectWell = wells.find(w => w.id === fetchedSubjectWell.id);\n\n return enrichedSubjectWell || fetchedSubjectWell;\n }, [fetchedSubjectWell, wells]);\n\n const isAllWellsLoaded =\n !areRawWellsLoading &&\n !areAdvancedWellsLoading &&\n !arePinnedWellsLoading &&\n !areSearchedWellsLoading;\n\n useEffect(() => {\n if (!isAllWellsLoaded) {\n return;\n }\n\n const syncOffsetWells = async () => {\n const isSynced = typeof offsetSettings?.isSynced === 'undefined' || offsetSettings?.isSynced;\n\n let offsetWellsChanged = true;\n\n if (isSynced) {\n const bicWellIds = bicWells[ALL_SECTION_KEY] || [];\n const bicWellIdsSet = new Set(bicWellIds);\n const isMatched = (offsetSettings?.selectedWellIds || []).every(wellId =>\n bicWellIdsSet.has(wellId)\n );\n\n // if well hub or offset selection app be changed\n if (bicWellIds.length !== offsetSettings?.selectedWellIds?.length || !isMatched) {\n const wellsByDistance = await getCoordinatedWells(bicWellIds, subjectWellId);\n const selectedWellIds = wellsByDistance\n .slice(0, localMaxOffsetSize + 1)\n .map(well => well.id);\n const newOffsetSetting = {\n ...offsetSettings,\n subjectWellId,\n selectedWellIds,\n offsetWellsLimited: maxOffsetWellNumber <= selectedWellIds.length,\n };\n const selectedWellIdsSet = new Set(selectedWellIds);\n const offsetWells = wellsByDistance.filter(well => selectedWellIdsSet.has(well.id));\n\n onSave(newOffsetSetting, offsetWells);\n } else {\n offsetWellsChanged = false;\n }\n } else {\n offsetWellsChanged = false;\n }\n\n if (!offsetWellsChanged) {\n const offsetWells = await getCoordinatedWells(\n offsetSettings?.selectedWellIds || [],\n subjectWellId\n );\n onSave(offsetSettings, offsetWells);\n }\n };\n\n if (syncAutoEnabled && appLoading && offsetSettings && bicWells) {\n syncOffsetWells();\n setAppLoading(false);\n }\n // TODO: Check reference stability. Initially had only offsetSettings, bicWells, subjectWellId, maxOffsetWellNumber, syncAutoEnabled\n }, [\n offsetSettings,\n bicWells,\n subjectWellId,\n maxOffsetWellNumber,\n syncAutoEnabled,\n isAllWellsLoaded,\n appLoading,\n maxOffsetSize,\n localMaxOffsetSize,\n onSave,\n ]);\n\n const filterOptions = useFilterOptions(wells, companies, canViewCompanies);\n\n // NOTE: Table columns with metrics\n const columnsWithDict = useTableColumns(\n metricsKeys,\n canViewCompanies,\n isWellSectionColumnVisible\n );\n // NOTE: Filter wells\n const filteredWells = useFilteredWells(wells, filters, polygonCoords, radiusFilter);\n\n // NOTE: Include selected wells from other companies so they can be deselected\n const wellsToDisplay = useMemo(() => {\n if (!filteredWells) {\n return filteredWells;\n }\n\n // Ensure ALL selected wells are displayed (at top via useSortedWells)\n // regardless of current company filter\n return uniqBy(selectedWells.concat(filteredWells), 'id');\n }, [filteredWells, selectedWells]);\n\n useEffect(() => {\n if (!filteredWells || !isAllWellsLoaded) {\n return;\n }\n\n if (initLoading.current) {\n const selectedIdsSet = new Set(offsetSettings?.selectedWellIds || []);\n\n let data = wells.filter(well => selectedIdsSet.has(well.id));\n\n // Preserve existing selectedWells not in wells array (may have been fetched by usePinnedWells)\n const dataIds = new Set(data.map(w => w.id));\n const preserved = selectedWells.filter(w => selectedIdsSet.has(w.id) && !dataIds.has(w.id));\n\n data = data.concat(preserved);\n\n if (subjectWell) {\n data = data.concat(subjectWell);\n }\n\n setSelectedWells(uniqBy(data, 'id'));\n initLoading.current = false;\n }\n }, [\n wells,\n filteredWells,\n offsetSettings?.selectedWellIds,\n isAllWellsLoaded,\n subjectWell,\n selectedWells,\n ]);\n\n // NOTE: Add pending search selections once wells are enriched\n useEffect(() => {\n if (!wells?.length || pendingSearchSelectionRef.current.size === 0) {\n return;\n }\n\n const pendingIds = pendingSearchSelectionRef.current;\n const enrichedWells = wells.filter(w => pendingIds.has(w.id));\n\n if (enrichedWells.length > 0) {\n // Clear loading state for wells being added (spinner → checked checkbox)\n const enrichedIds = enrichedWells.map(w => w.id);\n setLoadingAssetIds(prev => prev.filter(id => !enrichedIds.includes(id)));\n\n setSelectedWells(prev => {\n const limited = enrichedWells.slice(0, Math.max(0, maxOffsetWellNumber - prev.length));\n\n return uniqBy(prev.concat(limited), 'id');\n });\n enrichedWells.forEach(w => pendingIds.delete(w.id));\n }\n }, [wells, maxOffsetWellNumber]);\n\n // NOTE: Sort wells\n const [sortBy, setSortBy, sortDirection, setSortDirection, sortedWells] = useSortedWells(\n subjectWell,\n wellsToDisplay,\n selectedWells,\n setIsTableLoading\n );\n\n // NOTE: Add advanced wells\n const handleAddRemoveAssets = useCallback(\n async (isAdding, newAssets, assetType) => {\n let addingWellIds;\n\n if (assetType === SEARCH_CATEGORIES.well.name) {\n addingWellIds = newAssets;\n } else {\n // Build lookup maps once for O(1) access\n const wellIdToRigName = new Map();\n const rigNameToWellIds = new Map();\n wells.forEach(well => {\n wellIdToRigName.set(well.id, well.rigName);\n if (!rigNameToWellIds.has(well.rigName)) {\n rigNameToWellIds.set(well.rigName, []);\n }\n rigNameToWellIds.get(well.rigName).push(well.id);\n });\n\n addingWellIds = newAssets.flatMap(assetId => {\n const rigName = wellIdToRigName.get(assetId);\n\n return rigNameToWellIds.get(rigName) || [];\n });\n }\n\n const addingWellIdsSet = new Set(addingWellIds);\n const addingWells = wells.filter(({ id }) => addingWellIdsSet.has(id));\n\n // Fetch missing wells (outside bounds) when adding via search\n // These will be added to selectedWells via effect once enriched\n if (isAdding && addingWells.length < addingWellIds.length) {\n const foundIds = new Set(addingWells.map(w => w.id));\n const missingIds = addingWellIds.filter(id => !foundIds.has(id));\n\n if (missingIds.length > 0) {\n // Show loading spinner in search dropdown\n setLoadingAssetIds(prev => prev.concat(missingIds));\n\n // Trigger fetch to add wells to enrichment pipeline\n await fetchSearchedWells(missingIds);\n\n // Store as pending - effect will add enriched wells to selectedWells\n // NOTE: loadingAssetIds is cleared in the effect when wells are actually selected\n missingIds.forEach(id => pendingSearchSelectionRef.current.add(id));\n }\n }\n\n if (isAdding) {\n // Only add wells that are already enriched (in wells array)\n const limitedWells = addingWells.slice(\n 0,\n Math.min(addingWells.length, maxOffsetWellNumber - selectedWells.length)\n );\n if (limitedWells.length > 0) {\n setSelectedWells(selectedWells => uniqBy(selectedWells.concat(limitedWells), 'id'));\n }\n } else {\n setSelectedWells(selectedWells =>\n uniq(selectedWells.filter(({ id }) => !addingWells.find(well => well.id === id)))\n );\n }\n },\n // TODO: Check reference stability. Initially had wells, selectedWells\n [wells, maxOffsetWellNumber, selectedWells.length, fetchSearchedWells]\n );\n\n const handleHideAdvancedSearch = useCallback(() => {\n setIsAdvancedSearchHidden(true);\n }, [setIsAdvancedSearchHidden]);\n\n // NOTE: Change metrics keys\n const handleChangeMetricsKeys = useCallback(\n newMetricsKeys => {\n setMetricsKeys(newMetricsKeys);\n },\n [setMetricsKeys]\n );\n\n const handleUpdateMetricsKey = useCallback(\n (key, newValue) => {\n setMetricsKeys(prevKeys => prevKeys.map(item => (item === key ? newValue : item)));\n },\n [setMetricsKeys]\n );\n\n const handleChangeSortBy = useCallback(\n (sortKey, sortDirection) => {\n setSortBy(sortKey);\n setSortDirection(sortDirection);\n },\n [setSortBy, setSortDirection]\n );\n\n // NOTE: Check and Uncheck one offset well\n const handleChangeOffsetWell = useCallback(\n (well, checked) => {\n if (checked) {\n const enrichedWell = wells?.find(w => w.id === well.id) || well;\n setSelectedWells(prevWells => prevWells.concat(enrichedWell));\n } else {\n setSelectedWells(prevWells => prevWells.filter(item => item.id !== well.id));\n }\n },\n [wells]\n );\n\n // NOTE: Select and Unselect All wells\n const handleChangeAllOffsetWells = useCallback(\n checked => {\n if (checked) {\n const data = subjectWell ? filteredWells.concat(subjectWell) : filteredWells;\n const sortedData = sortArray(uniqBy(data, 'id'), 'distance');\n setSelectedWells(sortedData.slice(0, maxOffsetWellNumber));\n } else {\n setSelectedWells(subjectWell ? [subjectWell] : []);\n }\n },\n [filteredWells, subjectWell, maxOffsetWellNumber]\n );\n\n // NOTE: Batch select wells (from map box selection)\n const handleBatchSelectWells = useCallback(\n wellsToSelect => {\n setSelectedWells(prevWells => {\n const currentIds = new Set(prevWells.map(w => w.id));\n const newWells = wellsToSelect.filter(w => !currentIds.has(w.id));\n\n if (newWells.length === 0) {\n return prevWells;\n }\n\n const availableSlots = maxOffsetWellNumber - prevWells.length;\n const limitedWells = newWells.slice(0, availableSlots);\n\n const enrichedWells = limitedWells.map(w => wells?.find(fw => fw.id === w.id) || w);\n\n return uniqBy(prevWells.concat(enrichedWells), 'id');\n });\n },\n [wells, maxOffsetWellNumber]\n );\n\n // NOTE: Well Section change filter\n const updateSelectedWellsBySection = useCallback(\n section => {\n if (bicWells) {\n const sectionWellIdsSet = new Set(bicWells[section] || []);\n const sectionWells = wells?.filter(well => sectionWellIdsSet.has(well.id)) || [];\n const limitedWells = sortArray(sectionWells, 'distance');\n setSelectedWells(limitedWells.slice(0, maxOffsetSize));\n } else {\n setSelectedWells(subjectWell ? [subjectWell] : []);\n }\n },\n [bicWells, maxOffsetSize, subjectWell, wells]\n );\n\n const handleChangeWellSection = useCallback(\n section => {\n setSelectedWellSection(section);\n updateSelectedWellsBySection(section);\n },\n [updateSelectedWellsBySection]\n );\n\n // NOTE: Get Selected wells count\n const selectedWellsCount = useMemo(() => {\n if (selectedWells.find(well => well.id === subjectWellId)) {\n return selectedWells.length - 1;\n }\n return selectedWells.length;\n }, [selectedWells, subjectWellId]);\n\n // NOTE: Save offset setting\n const isSynced = useMemo(() => {\n if (!bicWells) return false;\n const selectedWellIds = selectedWells.map(({ id }) => id);\n const owsWellIds = bicWells[selectedWellSection] || [];\n const owsWellIdsLength = Math.min(owsWellIds.length, maxOffsetSize);\n\n if (owsWellIdsLength !== selectedWellIds.length) {\n return false;\n }\n const owsWellIdsSet = new Set(owsWellIds);\n return selectedWellIds.every(id => owsWellIdsSet.has(id));\n }, [bicWells, selectedWells, selectedWellSection, maxOffsetSize]);\n\n const isXtoProvider = useMemo(() => {\n return companyProvider ? COMPANY_PROVIDERS_FOR_IDAS.includes(companyProvider) : false;\n }, [companyProvider]);\n\n const offsetLabel = useMemo(() => {\n if (isXtoProvider) {\n return 'IDAS generated offsets.';\n }\n\n return isWDUser ? 'Offset Selection App.' : 'WellHub.';\n }, [isXtoProvider, isWDUser]);\n\n const performSave = useCallback(() => {\n onClose();\n\n const selectedIds = selectedWells.map(({ id }) => id);\n\n const newOffsetSetting = {\n ...offsetSettings,\n companyId: assetCompanyId,\n subjectWellId,\n selectedWellIds: selectedIds,\n filters,\n metricsKeys,\n wellSection: selectedWellSection,\n isSynced,\n mapHidden: isMapHidden,\n filterExpanded: isFilterExpanded,\n offsetWellsLimited: isLimitedOffsetWells,\n };\n onSave(newOffsetSetting, selectedWells);\n }, [\n onClose,\n selectedWells,\n offsetSettings,\n assetCompanyId,\n subjectWellId,\n filters,\n metricsKeys,\n selectedWellSection,\n isSynced,\n isMapHidden,\n isFilterExpanded,\n isLimitedOffsetWells,\n onSave,\n ]);\n\n // NOTE: Complete pending save once all wells are enriched\n useEffect(() => {\n if (!isSavePending) {\n return;\n }\n\n // Check if all pending wells have been enriched (moved to selectedWells)\n if (pendingSearchSelectionRef.current.size === 0) {\n setIsSavePending(false);\n performSave();\n }\n }, [isSavePending, selectedWells, performSave]);\n\n const handleSave = () => {\n if (pendingSearchSelectionRef.current.size > 0) {\n // Wells still pending enrichment - wait for them\n setIsSavePending(true);\n return;\n }\n\n performSave();\n };\n\n const handleCancel = () => {\n const selectedIdsSet = new Set(offsetSettings?.selectedWellIds || []);\n let data = (wells || []).filter(well => selectedIdsSet.has(well.id));\n\n if (pinnedWells?.length) {\n const dataIds = new Set(data.map(w => w.id));\n const preserved = pinnedWells.filter(w => selectedIdsSet.has(w.id) && !dataIds.has(w.id));\n\n data = data.concat(preserved);\n }\n\n if (subjectWell) {\n data = data.concat(subjectWell);\n }\n\n setSelectedWells(uniqBy(data, 'id'));\n\n const newOffsetSetting = {\n ...offsetSettings,\n mapHidden: isMapHidden,\n filterExpanded: isFilterExpanded,\n };\n onSave(newOffsetSetting);\n setFilters({\n ...(offsetSettings?.filters || {}),\n });\n setSelectedWellSection(offsetSettings?.wellSection || ALL_SECTION_KEY);\n onClose();\n };\n\n const isTableFullLoading = isTableLoading || areRawWellsLoading;\n\n // NOTE: Reset processing\n const isResetVisible = useMemo(() => {\n if (!hasValidAssetId) return false;\n if (isTableFullLoading) return false;\n if (!isSynced) return true;\n if (!isEmpty(filters) && filters[FilterType.sideTracks]) return true;\n if (selectedWellSection !== ALL_SECTION_KEY) return true;\n return false;\n }, [hasValidAssetId, isSynced, filters, selectedWellSection, isTableFullLoading]);\n\n const handleReset = useCallback(() => {\n resetFilters();\n setSelectedWellSection(ALL_SECTION_KEY);\n updateSelectedWellsBySection(ALL_SECTION_KEY);\n }, [resetFilters, updateSelectedWellsBySection]);\n\n const isLoading = !wells || !wellSections || !sortedWells;\n\n // NOTE: Well Name shadow\n const [tableRowsCount, setTableRowsCount] = useState(ROWS_PER_PAGE);\n const [tableWells, setTableWells] = useState([]);\n const headTableRef = useRef();\n\n useEffect(() => {\n if (!sortedWells) return;\n\n const wells = sortedWells.slice(0, tableRowsCount);\n setTableWells(wells);\n }, [sortedWells, tableRowsCount, subjectWell]);\n\n // NOTE: Remove shadow from header column\n useEffect(() => {\n if (!headTableRef.current) return;\n const headColumn = headTableRef.current.querySelector(`.${offsetTableStyles.wellNameFixed}`);\n if (!headColumn) return;\n if (!isHScrollMoved) {\n headColumn.classList.add(offsetTableStyles.noShadow);\n } else {\n headColumn.classList.remove(offsetTableStyles.noShadow);\n }\n }, [isHScrollMoved, tableWells]);\n\n // Calculations for table header and search - moved from OffsetWellsTable\n const uniqTableWells = useMemo(() => uniqBy(tableWells, 'id'), [tableWells]);\n\n const [selectedTableWells, indeterminate, isAllWellsSelected] = useMemo(() => {\n const selectedTableWells = uniqTableWells.filter(well => well.checked);\n const indeterminate =\n uniqTableWells.length !== selectedTableWells.length &&\n Boolean(selectedTableWells.length) &&\n !isLimitedOffsetWells;\n const isAllWellsSelected =\n selectedTableWells.length === uniqTableWells.length || isLimitedOffsetWells;\n\n return [selectedTableWells, indeterminate, isAllWellsSelected];\n }, [uniqTableWells, isLimitedOffsetWells]);\n\n const isImperial = useMemo(() => getIsImperial(), []);\n\n useEffect(() => {\n if (resyncStatus === RESYNC_STATUS.SUCCEEDED) {\n handleReset();\n }\n // TODO: Check reference stability. Initially had only bicWells\n }, [bicWells, handleReset, resyncStatus]);\n\n const handleScroll = e => {\n if (!e.target) return;\n\n if (isAdvancedSearchHidden) {\n e.target.scrollLeft = 0;\n setIsAdvancedSearchHidden(false);\n }\n\n // Check if H-Scroll is visible\n if (e.target.scrollLeft <= 5 && isHScrollMoved) {\n setIsHScrollMoved(false);\n }\n if (e.target.scrollLeft > 5 && !isHScrollMoved) {\n setIsHScrollMoved(true);\n }\n\n // Check if V-Scroll is visible\n if (e.target.scrollTop <= 0 && isVScrollMoved) {\n setIsVScrollMoved(false);\n }\n if (e.target.scrollTop > 0 && !isVScrollMoved) {\n setIsVScrollMoved(true);\n }\n\n // Check if scroll has reached top or bottom\n if (e.target.scrollHeight === e.target.offsetHeight) return;\n\n const currentScrollBottom = Math.round(e.target.scrollTop + e.target.offsetHeight + 2);\n\n if (currentScrollBottom >= e.target.scrollHeight && tableRowsCount < sortedWells.length) {\n setTableRowsCount(count => count + ROWS_PER_PAGE);\n }\n };\n\n return (\n <Modal\n open={open}\n onClose={handleCancel}\n size=\"fullscreen\"\n className={styles.modalDialog}\n title={\n <AppHeader\n totalCount={wells?.length ?? 0}\n selectedCount={selectedWellsCount}\n maxOffsetWellNumber={maxOffsetWellNumber}\n isXtoProvider={isXtoProvider}\n resyncStatus={resyncStatus}\n setResyncStatus={setResyncStatus}\n metricsKeys={metricsKeys}\n onChangeMetricsKeys={handleChangeMetricsKeys}\n />\n }\n actions={\n !isViewOnly && (\n <div className={styles.actionsWrapper}>\n {!isLoading && isResetVisible ? (\n <Tooltip\n placement=\"bottom-start\"\n title={`Reset to Synced Offsets in ${isWDUser ? 'Offset App' : 'Wellhub'}`}\n >\n <div>\n <Button\n data-testid={`${PAGE_NAME}_reset`}\n onClick={handleReset}\n color=\"primary\"\n startIcon={<ReplayIcon />}\n >\n Reset to Defaults\n </Button>\n </div>\n </Tooltip>\n ) : (\n hasValidAssetId && (\n <div>\n <span className={classNames(typography.regular12, typography.colors.t6)}>\n The offset list is being automatically populated by&nbsp;\n </span>\n <span className={classNames(typography.medium12, typography.colors.t6)}>\n {offsetLabel}\n </span>\n </div>\n )\n )}\n <div className={styles.buttonGap}>\n <Button data-testid={`${PAGE_NAME}_cancel`} onClick={handleCancel} color=\"primary\">\n Cancel\n </Button>\n <Button\n data-testid={`${PAGE_NAME}_selectedWells`}\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSave}\n disabled={isSavePending}\n prefix={isSavePending ? <LoaderCircular size={16} /> : undefined}\n >\n Select ({selectedWellsCount})\n </Button>\n </div>\n </div>\n )\n }\n >\n <div className={classNames(styles.offsetWellDialog)}>\n <NotificationsContainer />\n {!isLoading ? (\n <div\n className={classNames(styles.contentWrapper, {\n [styles.contentBlocked]: isTableFullLoading,\n })}\n >\n <div className={styles.columnsContainer}>\n {!isMapHidden && open && (\n <div className={styles.leftColumn}>\n <WellsMap\n mapHidden={isMapHidden}\n subjectWell={subjectWell}\n offsetWellIds={selectedWells.map(({ id }) => id)}\n wells={wellsToDisplay}\n handleChangeOffsetWell={handleChangeOffsetWell}\n onBatchSelectWells={handleBatchSelectWells}\n activeWellId={activeWellId}\n />\n </div>\n )}\n <div className={styles.rightColumn} onScroll={handleScroll}>\n <Filter\n isHidden={!isFilterExpanded}\n filterOptions={filterOptions}\n wellSections={wellSections}\n selectedWellSection={selectedWellSection}\n subjectWell={subjectWell}\n assetCompanyId={assetCompanyId}\n onChangeBicWells={handleChangeWellSection}\n />\n <div className={offsetTableStyles.stickyTableWrapper}>\n <Table\n aria-label=\"ows table head\"\n innerRef={headTableRef}\n className={offsetTableStyles.stickyTable}\n >\n <TableHead>\n <OffsetWellsTableHead\n columnsWithDict={columnsWithDict}\n metricsKeys={metricsKeys}\n sortBy={sortBy}\n sortDirection={sortDirection}\n indeterminate={indeterminate}\n isAllWellsSelected={isAllWellsSelected}\n onChangeSort={handleChangeSortBy}\n onUpdateMetricsKey={handleUpdateMetricsKey}\n handleChangeAllOffsetWells={handleChangeAllOffsetWells}\n wellNameStyle={offsetTableStyles.wellNameFixed}\n isImperial={isImperial}\n isTaColumnVisible={!!taScores.length}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n />\n </TableHead>\n {isViewOnly && (\n <div\n className={classNames(styles.topGradient, {\n [styles.topGradientScrolled]: isVScrollMoved,\n })}\n />\n )}\n </Table>\n </div>\n\n {!isViewOnly && (\n <div className={classNames(offsetTableStyles.searchCellWrapper)}>\n <div className={offsetTableStyles.searchCell}>\n <AdvancedSearch\n companyId={assetCompanyId}\n subjectWellId={subjectWellId}\n onChange={handleAddRemoveAssets}\n selectedWellIds={selectedTableWells.map(({ id }) => id)}\n onHideAdvancedSearch={handleHideAdvancedSearch}\n loadingAssetIds={loadingAssetIds}\n />\n </div>\n <div\n className={classNames(styles.topGradient, {\n [styles.topGradientScrolled]: isVScrollMoved,\n })}\n />\n </div>\n )}\n\n <OffsetWellsTable\n isTableLoading={isTableFullLoading}\n subjectWellId={subjectWellId}\n columnsWithDict={columnsWithDict}\n wells={tableWells}\n metricsKeys={metricsKeys}\n handleChangeOffsetWell={handleChangeOffsetWell}\n isLastWell={sortedWells.length <= tableRowsCount}\n isLimitedOffsetWells={isLimitedOffsetWells}\n maxOffsetWellNumber={maxOffsetWellNumber}\n wellSections={wellSections}\n setActiveWellId={setActiveWellId}\n taScores={taScores}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n />\n </div>\n </div>\n {isViewOnly && hasValidAssetId && (\n <div className={styles.viewOnlyInfoContainer}>\n <span className={classNames(typography.regular12, typography.colors.t6)}>\n The offset list is being automatically populated by&nbsp;\n </span>\n <span className={classNames(typography.medium12, typography.colors.t6)}>\n {offsetLabel}\n </span>\n </div>\n )}\n </div>\n ) : (\n <LoadingIndicator />\n )}\n </div>\n </Modal>\n );\n};\n"],"names":["PAGE_NAME","OffsetWellPickerV5","_useFilterStore","_useFilterStore2","_wells$length","open","usePickerPropsStore","state","isWDUser","defaultSubjectWell","currentUser","offsetSettings","isViewOnly","onClose","onSave","offsetSize","maxOffsetSize","localMaxOffsetSize","syncAutoEnabled","useState","_useState2","_slicedToArray","_useState","activeWellId","setActiveWellId","Math","min","MAX_OFFSET_SIZE","maxOffsetWellNumber","max","subjectWellId","asset_id","useFetchSubjectWell","fetchedSubjectWell","_useFetchSubjectWell","useGlobalOffsetWellsSync","isFilterExpanded","useViewStore","isMapHidden","isHScrollMoved","setIsHScrollMoved","isVScrollMoved","setIsVScrollMoved","isAdvancedSearchHidden","setIsAdvancedSearchHidden","assetCompanyId","companyId","company_id","hasValidAssetId","filters","useFilterStore","setFilters","resetFilters","radiusFilter","radius","DEFAULT_RADIUS_MILES","selectionMode","polygonCoords","_useCompanies","useCompanies","canViewCompanies","companies","_useState4","_useState3","selectedWells","setSelectedWells","_useState6","_useState5","preselectedCompanyIds","setPreselectedCompanyIds","pendingSearchSelectionRef","useRef","Set","_useState8","_useState7","loadingAssetIds","setLoadingAssetIds","_useState10","_useState9","isSavePending","setIsSavePending","companyFilter","useMemo","FilterType","company","useEffect","selectedIds","selectedWellIds","length","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ids","wrap","_context","prev","next","fetchCompanyIdsByWellIds","sent","stop","companyIdsToFetch","selectedWellCompanyIds","map","well","filter","id","bootstrapCompanyIds","_toConsumableArray","concat","undefined","Array","isArray","allIdsSet","add","forEach","from","_useState11","wellSection","ALL_SECTION_KEY","_useState12","selectedWellSection","setSelectedWellSection","initLoading","_useState14","_useState13","isTableLoading","setIsTableLoading","isLimitedOffsetWells","prevSelectedWellIds","_useState16","_useState15","appLoading","setAppLoading","showInfoNotification","_offsetSettings$selec","_prevSelectedWellIds$","prevIdsSet","current","every","has","useFetchWells","_useFetchWells2","_useFetchWells","rawWells","areRawWellsLoading","usePinnedWells","_usePinnedWells2","_usePinnedWells","pinnedWells","arePinnedWellsLoading","_useSearchedWells","useSearchedWells","_useSearchedWells2","searchedWells","areSearchedWellsLoading","fetchSearchedWells","rawWellsWithSubject","result","existingIds","w","missingPinned","missingSearched","some","useCompanyProvider","companyProvider","_useCompanyProvider","_useBicWells","useBicWells","_useBicWells2","wellSections","setWellSections","bicWells","setBicWells","resyncStatus","setResyncStatus","taScores","isWellSectionColumnVisible","section","value","useCompanyMetricKey","metricsKeys","_useCompanyMetricKey2","_useCompanyMetricKey","setMetricsKeys","_useAdvancedWells","useAdvancedWells","_useAdvancedWells2","wellsWithoutCompanyName","areAdvancedWellsLoading","wells","companyMap","name","_objectSpread","companyName","subjectWell","find","isAllWellsLoaded","_ref2","syncOffsetWells","_callee2","isSynced","offsetWellsChanged","_offsetSettings$selec2","bicWellIds","bicWellIdsSet","isMatched","wellsByDistance","newOffsetSetting","selectedWellIdsSet","offsetWells","_offsetWells","_context2","wellId","getCoordinatedWells","slice","offsetWellsLimited","apply","this","arguments","filterOptions","useFilterOptions","columnsWithDict","useTableColumns","filteredWells","useFilteredWells","wellsToDisplay","uniqBy","selectedIdsSet","data","dataIds","preserved","size","pendingIds","enrichedWells","enrichedIds","includes","limited","delete","_ref3","useSortedWells","_useSortedWells2","_useSortedWells","sortBy","setSortBy","sortDirection","setSortDirection","sortedWells","handleAddRemoveAssets","useCallback","isAdding","newAssets","assetType","addingWellIds","wellIdToRigName","rigNameToWellIds","addingWellIdsSet","addingWells","foundIds","missingIds","limitedWells","_context3","SEARCH_CATEGORIES","Map","set","rigName","get","push","flatMap","assetId","_ref4","uniq","_ref5","_callee3","_x","_x2","_x3","handleHideAdvancedSearch","handleChangeMetricsKeys","newMetricsKeys","handleUpdateMetricsKey","key","newValue","prevKeys","item","handleChangeSortBy","sortKey","handleChangeOffsetWell","checked","enrichedWell","prevWells","handleChangeAllOffsetWells","sortedData","sortArray","handleBatchSelectWells","wellsToSelect","currentIds","newWells","availableSlots","fw","updateSelectedWellsBySection","sectionWellIdsSet","sectionWells","handleChangeWellSection","selectedWellsCount","_ref6","owsWellIds","owsWellIdsSet","isXtoProvider","COMPANY_PROVIDERS_FOR_IDAS","offsetLabel","performSave","_ref7","mapHidden","filterExpanded","handleCancel","isTableFullLoading","isResetVisible","isEmpty","sideTracks","handleReset","isLoading","ROWS_PER_PAGE","_useState18","_useState17","tableRowsCount","setTableRowsCount","_useState20","_useState19","tableWells","setTableWells","headTableRef","headColumn","querySelector","offsetTableStyles","wellNameFixed","classList","remove","noShadow","uniqTableWells","selectedTableWells","Boolean","_useMemo2","_useMemo","indeterminate","isAllWellsSelected","isImperial","getIsImperial","RESYNC_STATUS","SUCCEEDED","_jsx","Modal","className","styles","modalDialog","title","AppHeader","totalCount","selectedCount","onChangeMetricsKeys","actions","_jsxs","actionsWrapper","children","Tooltip","placement","Button","onClick","color","startIcon","ReplayIcon","classNames","typography","regular12","colors","t6","medium12","buttonGap","variant","disabled","prefix","LoaderCircular","offsetWellDialog","NotificationsContainer","LoadingIndicator","contentWrapper","contentBlocked","columnsContainer","leftColumn","WellsMap","offsetWellIds","_ref8","onBatchSelectWells","rightColumn","onScroll","e","target","scrollLeft","scrollTop","scrollHeight","offsetHeight","round","count","Filter","isHidden","onChangeBicWells","stickyTableWrapper","Table","innerRef","stickyTable","TableHead","OffsetWellsTableHead","onChangeSort","onUpdateMetricsKey","wellNameStyle","isTaColumnVisible","topGradient","_defineProperty","topGradientScrolled","searchCellWrapper","searchCell","AdvancedSearch","onChange","_ref9","onHideAdvancedSearch","OffsetWellsTable","isLastWell","viewOnlyInfoContainer"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from'./../../ext-esm/style-inject/dist/style-inject.es.js';var l={modalDialog:"OffsetWellPickerV5-module_modalDialog__TPNiQ",offsetWellDialog:"OffsetWellPickerV5-module_offsetWellDialog__youB7",viewOnlyTitleLabel:"OffsetWellPickerV5-module_viewOnlyTitleLabel__6ZNFz",contentWrapper:"OffsetWellPickerV5-module_contentWrapper__uxyLq",content:"OffsetWellPickerV5-module_content__DQ90A",contentBlocked:"OffsetWellPickerV5-module_contentBlocked__68j-Q",modalActions:"OffsetWellPickerV5-module_modalActions__xVi-m",actionsWrapper:"OffsetWellPickerV5-module_actionsWrapper__HZU9D",buttonGap:"OffsetWellPickerV5-module_buttonGap__SuS-N",totalLabel:"OffsetWellPickerV5-module_totalLabel__-wg4s",selectedLabel:"OffsetWellPickerV5-module_selectedLabel__IkDFC",countValue:"OffsetWellPickerV5-module_countValue__qfrHh",maxOffsetSize:"OffsetWellPickerV5-module_maxOffsetSize__s7TGK",resetButtonMobile:"OffsetWellPickerV5-module_resetButtonMobile__jtcOI",infoIconContainer:"OffsetWellPickerV5-module_infoIconContainer__u-3f-",viewOnlyInfoContainer:"OffsetWellPickerV5-module_viewOnlyInfoContainer__2PBz0",infoIcon:"OffsetWellPickerV5-module_infoIcon__WMGgx",topGradient:"OffsetWellPickerV5-module_topGradient__B6Sk6",columnsContainer:"OffsetWellPickerV5-module_columnsContainer__PE9E1",leftColumn:"OffsetWellPickerV5-module_leftColumn__o-gOj",rightColumn:"OffsetWellPickerV5-module_rightColumn__Dm2ja"};e('.OffsetWellPickerV5-module_modalDialog__TPNiQ{max-height:100%!important;max-width:1900px!important;position:relative;width:100%!important}.OffsetWellPickerV5-module_offsetWellDialog__youB7{display:flex;flex-direction:column;height:100%;max-height:100%;position:relative}.OffsetWellPickerV5-module_viewOnlyTitleLabel__6ZNFz{color:var(--palette-primary-text-6);font-size:16px!important;line-height:140.6%!important;margin-bottom:16px!important;margin-left:40px!important}.OffsetWellPickerV5-module_contentWrapper__uxyLq{display:flex;flex-direction:column;height:100%;position:relative}.OffsetWellPickerV5-module_content__DQ90A{display:flex;flex:1;flex-direction:column;position:relative}.OffsetWellPickerV5-module_contentBlocked__68j-Q{overflow:hidden}.OffsetWellPickerV5-module_content__DQ90A::-webkit-scrollbar-corner{background-color:transparent}.OffsetWellPickerV5-module_content__DQ90A::-webkit-scrollbar{width:16px}.OffsetWellPickerV5-module_content__DQ90A::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:hsla(240,2%,65%,.722);border:5px solid rgba(0,0,0,.01);border-radius:10px}.OffsetWellPickerV5-module_modalActions__xVi-m{box-shadow:none;justify-content:flex-end}.OffsetWellPickerV5-module_actionsWrapper__HZU9D{align-items:center;display:flex;flex:1;justify-content:space-between}.OffsetWellPickerV5-module_buttonGap__SuS-N{display:flex;gap:16px;margin-left:auto}.OffsetWellPickerV5-module_totalLabel__-wg4s{color:var(--palette-primary-text-6)}.OffsetWellPickerV5-module_selectedLabel__IkDFC{color:var(--palette-primary-text-6);padding-left:16px}.OffsetWellPickerV5-module_countValue__qfrHh{color:var(--palette-primary-text-1);padding-left:8px}.OffsetWellPickerV5-module_maxOffsetSize__s7TGK{color:var(--palette-primary-text-6);cursor:default;padding-left:4px}.OffsetWellPickerV5-module_resetButtonMobile__jtcOI{max-height:40px;max-width:40px;min-height:40px;min-width:40px!important}.OffsetWellPickerV5-module_infoIconContainer__u-3f-{height:40px}.OffsetWellPickerV5-module_viewOnlyInfoContainer__2PBz0{padding:24px 40px 0}.OffsetWellPickerV5-module_infoIcon__WMGgx{color:#dadada;height:40px!important;padding:10px;width:40px!important}.OffsetWellPickerV5-module_topGradient__B6Sk6{background-color:#333;border:none!important;flex-shrink:0;height:16px!important;left:0;padding:0!important;position:relative;right:0;width:100%;z-index:3}.OffsetWellPickerV5-module_topGradient__B6Sk6:after{background-image:linear-gradient(180deg,#333,rgba(51,51,51,0));bottom:-12px;content:"";height:16px;left:0;pointer-events:none;position:absolute;right:0}.OffsetWellPickerV5-module_columnsContainer__PE9E1{display:flex;flex:1;flex-direction:row;gap:16px;max-height:100%;min-height:0}.OffsetWellPickerV5-module_leftColumn__o-gOj{display:flex;flex:1 1 0;flex-direction:column;isolation:isolate;max-width:600px;min-width:400px}.OffsetWellPickerV5-module_rightColumn__Dm2ja{display:flex;flex:1 1 0;flex-direction:column;isolation:isolate;min-height:0;min-width:0;overflow:auto;position:relative}.OffsetWellPickerV5-module_rightColumn__Dm2ja::-webkit-scrollbar-corner{background-color:transparent}.OffsetWellPickerV5-module_rightColumn__Dm2ja::-webkit-scrollbar{width:16px}.OffsetWellPickerV5-module_rightColumn__Dm2ja::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:hsla(240,2%,65%,.722);border:5px solid rgba(0,0,0,.01);border-radius:10px}');export{l as default};
1
+ import e from'./../../ext-esm/style-inject/dist/style-inject.es.js';var l={modalDialog:"OffsetWellPickerV5-module_modalDialog__TPNiQ",offsetWellDialog:"OffsetWellPickerV5-module_offsetWellDialog__youB7",viewOnlyTitleLabel:"OffsetWellPickerV5-module_viewOnlyTitleLabel__6ZNFz",contentWrapper:"OffsetWellPickerV5-module_contentWrapper__uxyLq",content:"OffsetWellPickerV5-module_content__DQ90A",contentBlocked:"OffsetWellPickerV5-module_contentBlocked__68j-Q",modalActions:"OffsetWellPickerV5-module_modalActions__xVi-m",actionsWrapper:"OffsetWellPickerV5-module_actionsWrapper__HZU9D",buttonGap:"OffsetWellPickerV5-module_buttonGap__SuS-N",totalLabel:"OffsetWellPickerV5-module_totalLabel__-wg4s",selectedLabel:"OffsetWellPickerV5-module_selectedLabel__IkDFC",countValue:"OffsetWellPickerV5-module_countValue__qfrHh",maxOffsetSize:"OffsetWellPickerV5-module_maxOffsetSize__s7TGK",resetButtonMobile:"OffsetWellPickerV5-module_resetButtonMobile__jtcOI",infoIconContainer:"OffsetWellPickerV5-module_infoIconContainer__u-3f-",viewOnlyInfoContainer:"OffsetWellPickerV5-module_viewOnlyInfoContainer__2PBz0",infoIcon:"OffsetWellPickerV5-module_infoIcon__WMGgx",topGradient:"OffsetWellPickerV5-module_topGradient__B6Sk6",topGradientScrolled:"OffsetWellPickerV5-module_topGradientScrolled__XyH0-",columnsContainer:"OffsetWellPickerV5-module_columnsContainer__PE9E1",leftColumn:"OffsetWellPickerV5-module_leftColumn__o-gOj",rightColumn:"OffsetWellPickerV5-module_rightColumn__Dm2ja"};e('.OffsetWellPickerV5-module_modalDialog__TPNiQ{max-height:100%!important;max-width:1900px!important;position:relative;width:100%!important}.OffsetWellPickerV5-module_offsetWellDialog__youB7{display:flex;flex-direction:column;height:100%;max-height:100%;position:relative}.OffsetWellPickerV5-module_viewOnlyTitleLabel__6ZNFz{color:var(--palette-primary-text-6);font-size:16px!important;line-height:140.6%!important;margin-bottom:16px!important;margin-left:40px!important}.OffsetWellPickerV5-module_contentWrapper__uxyLq{display:flex;flex-direction:column;height:100%;position:relative}.OffsetWellPickerV5-module_content__DQ90A{display:flex;flex:1;flex-direction:column;position:relative}.OffsetWellPickerV5-module_contentBlocked__68j-Q{overflow:hidden}.OffsetWellPickerV5-module_content__DQ90A::-webkit-scrollbar-corner{background-color:transparent}.OffsetWellPickerV5-module_content__DQ90A::-webkit-scrollbar{width:16px}.OffsetWellPickerV5-module_content__DQ90A::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:hsla(240,2%,65%,.722);border:5px solid rgba(0,0,0,.01);border-radius:10px}.OffsetWellPickerV5-module_modalActions__xVi-m{box-shadow:none;justify-content:flex-end}.OffsetWellPickerV5-module_actionsWrapper__HZU9D{align-items:center;display:flex;flex:1;justify-content:space-between}.OffsetWellPickerV5-module_buttonGap__SuS-N{display:flex;gap:16px;margin-left:auto}.OffsetWellPickerV5-module_totalLabel__-wg4s{color:var(--palette-primary-text-6)}.OffsetWellPickerV5-module_selectedLabel__IkDFC{color:var(--palette-primary-text-6);padding-left:16px}.OffsetWellPickerV5-module_countValue__qfrHh{color:var(--palette-primary-text-1);padding-left:8px}.OffsetWellPickerV5-module_maxOffsetSize__s7TGK{color:var(--palette-primary-text-6);cursor:default;padding-left:4px}.OffsetWellPickerV5-module_resetButtonMobile__jtcOI{max-height:40px;max-width:40px;min-height:40px;min-width:40px!important}.OffsetWellPickerV5-module_infoIconContainer__u-3f-{height:40px}.OffsetWellPickerV5-module_viewOnlyInfoContainer__2PBz0{padding:24px 40px 0}.OffsetWellPickerV5-module_infoIcon__WMGgx{color:#dadada;height:40px!important;padding:10px;width:40px!important}.OffsetWellPickerV5-module_topGradient__B6Sk6{background-color:var(--palette-background-b-6);border:none!important;flex-shrink:0;height:16px!important;left:0;padding:0!important;position:relative;right:0;width:100%;z-index:3}.OffsetWellPickerV5-module_topGradient__B6Sk6:after{bottom:-12px;content:"";height:16px;left:0;pointer-events:none;position:absolute;right:0}.OffsetWellPickerV5-module_topGradientScrolled__XyH0-:after{background-image:linear-gradient(180deg,var(--palette-background-b-6) 0,rgba(51,51,51,0) 100%)}.OffsetWellPickerV5-module_columnsContainer__PE9E1{display:flex;flex:1;flex-direction:row;gap:16px;max-height:100%;min-height:0}.OffsetWellPickerV5-module_leftColumn__o-gOj{display:flex;flex:1 1 0;flex-direction:column;isolation:isolate;max-width:600px;min-width:400px}.OffsetWellPickerV5-module_rightColumn__Dm2ja{display:flex;flex:1 1 0;flex-direction:column;isolation:isolate;min-height:0;min-width:0;overflow:auto;position:relative}.OffsetWellPickerV5-module_rightColumn__Dm2ja::-webkit-scrollbar-corner{background-color:transparent}.OffsetWellPickerV5-module_rightColumn__Dm2ja::-webkit-scrollbar{width:16px}.OffsetWellPickerV5-module_rightColumn__Dm2ja::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:hsla(240,2%,65%,.722);border:5px solid rgba(0,0,0,.01);border-radius:10px}');export{l as default};
2
2
  //# sourceMappingURL=OffsetWellPickerV5.module.css.js.map
@@ -8,6 +8,9 @@ export type OffsetWellMapProps = {
8
8
  handleChangeOffsetWell: (well?: {
9
9
  id: number;
10
10
  }, isSelected?: boolean) => void;
11
+ onBatchSelectWells: (wells: {
12
+ id: number;
13
+ }[]) => void;
11
14
  activeWellId?: number | null;
12
15
  isClickable?: boolean;
13
16
  classes?: {
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetWellMap.d.ts","sourceRoot":"","sources":["../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AAG9E,OAAO,8BAA8B,CAAC;AAyBtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA6chD,CAAC"}
1
+ {"version":3,"file":"OffsetWellMap.d.ts","sourceRoot":"","sources":["../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AAG9E,OAAO,8BAA8B,CAAC;AA+BtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,kBAAkB,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAqhBhD,CAAC"}
@@ -1,2 +1,2 @@
1
- import{__assign as e}from'./../../../../../ext-esm/tslib/tslib.es6.js';import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useRef as i,useState as l,useCallback as r,useMemo as s,useEffect as n}from"react";import a,{Source as c,Layer as d,Popup as u}from"react-map-gl/mapbox";import p from"classnames";import"mapbox-gl/dist/mapbox-gl.css";import{usePickerPropsStore as f}from"../../../stores/picker-props-store/usePickerPropsStore.js";import{useViewStore as m}from"../../../stores/view-store/useViewStore.js";import{useFilterStore as g}from"../../../stores/filter-store/useFilterStore.js";import{DEFAULT_RADIUS_MILES as h}from"../../../constants.js";import{getStatusColor as v}from"./utils/getStatusColor.js";import{RadiusInput as y}from"./components/RadiusInput/RadiusInput.js";import{MapControls as S}from"./components/MapControls/MapControls.js";import{WellTooltip as j}from"./components/WellTooltip/WellTooltip.js";import{SubjectWellMarker as W}from"./components/SubjectWellMarker/SubjectWellMarker.js";import{LayerSwitcher as w}from"./components/LayerSwitcher/LayerSwitcher.js";import{LassoTip as C}from"./components/LassoTip/LassoTip.js";import{DrawControl as b}from"./components/DrawControl/DrawControl.js";import{ScaleIndicator as M}from"./components/ScaleIndicator/ScaleIndicator.js";import{useMapViewState as k}from"./hooks/useMapViewState.js";import{useRadiusCircle as O}from"./hooks/useRadiusCircle.js";import{useMapBounds as D}from"./hooks/useMapBounds.js";import{useWellMarkers as I}from"./hooks/useWellMarkers.js";import{useTooltip as L}from"./hooks/useTooltip.js";import{useLassoSelection as R}from"./hooks/useLassoSelection.js";import{createPolygonGeoJSON as N}from"./utils/polygonCoords.js";import{toCoordinates as P}from"./utils/toCoordinates.js";import{MapConfig as T}from"./constants.js";import Z from"./OffsetWellMap.module.css.js";import{MAP_BOX_ACCESS_TOKEN as x}from"../../../../../config/mapbox/index.js";var G=function(G){var H,J,V=G.subjectWell,E=void 0===V?null:V,z=G.wells,A=G.offsetWellIds,F=G.handleChangeOffsetWell,B=G.activeWellId,U=G.isClickable,_=void 0===U||U,q=G.classes,K=void 0===q?{}:q,Q=f((function(e){return e.isViewOnly})),X=null!==(H=g((function(e){return e.filters.radius})))&&void 0!==H?H:h,Y=g((function(e){return e.setRadius})),$=null!==(J=g((function(e){return e.filters.selectionMode})))&&void 0!==J?J:"radius",ee=g((function(e){return e.filters.polygonCoords})),oe=g((function(e){return e.setSelectionMode})),te=g((function(e){return e.setPolygonCoords})),ie=m((function(e){return e.mapStyle})),le=m((function(e){return e.setMapStyle})),re="lasso"===$,se=ee&&ee.length>=3,ne="satellite"===ie,ae=i(null),ce=l(!1),de=ce[0],ue=ce[1],pe=l(!1),fe=pe[0],me=pe[1],ge=l(!1),he=ge[0],ve=ge[1],ye=r((function(){me(!0)}),[]),Se=s((function(){var e,o=null===(e=null==E?void 0:E.topHole)||void 0===e?void 0:e.coordinates;return o?P(o):null}),[E]),je=k(ae,Se),We=je.viewState,we=je.distance,Ce=je.handleMove,be=je.handleZoomIn,Me=je.handleZoomOut,ke=je.canZoomIn,Oe=je.canZoomOut,De=(null==E?void 0:E.id)===B,Ie=r((function(e){return Y(e)}),[Y]),Le=r((function(){re?((!ee||ee.length<3)&&te(void 0),oe("radius")):oe("lasso")}),[re,ee,oe,te]),Re=r((function(e){te(e)}),[te]),Ne=R({mapRef:ae,isActive:re,onPolygonChange:Re}),Pe=Ne.isDrawing,Te=Ne.drawingPointCount,Ze=Ne.isEditingPolygon,xe=Ne.isEditingVertices,Ge=Ne.drawRef,He=Ne.handleDrawCreate,Je=Ne.handleDrawUpdate,Ve=Ne.handleDrawDelete,Ee=Ne.handleModeChange,ze=Ne.handleSelectionChange,Ae=L(),Fe=Ae.hoveredWell,Be=Ae.showTooltip,Ue=Ae.hideTooltip,_e=r((function(){return ve(!0)}),[]),qe=r((function(){return ve(!1)}),[]),Ke=s((function(){return re?Fe?"pointer":void 0:he?"grabbing":Fe?"pointer":"grab"}),[re,Fe,he]),Qe=O({subjectWellCoords:Se,radiusMiles:X}).circleGeoJSON,Xe=s((function(){return re&&ee?N(ee):null}),[re,ee]),Ye=I({wells:z,offsetWellIds:A,activeWellId:null!=B?B:null,subjectWell:E,mapStyle:ie}),$e=Ye.wellsGeoJSON,eo=Ye.highlightGeoJSON,oo=Ye.activeHighlightGeoJSON;D({mapRef:ae,circleGeoJSON:Qe,polygonGeoJSON:Xe,selectionMode:$,wellsGeoJSON:$e,subjectWell:E,subjectWellCoords:Se,radius:X,isMapReady:fe}),n((function(){var e,o=ae.current;if(B&&o&&fe){var t=z.find((function(e){return e.id===B}));if(t){var i=null===(e=t.topHole)||void 0===e?void 0:e.coordinates;if(i){var l=i[0],r=i[1],s=o.getBounds();return s&&!s.contains([r,l])&&o.easeTo({center:[r,l],duration:300}),function(){null==o||o.stop()}}}}}),[B,z,fe]);var to=r((function(e){var o;if(!Q){var t=e.features;if(null==t?void 0:t.length){var i=t[0];if((null===(o=i.layer)||void 0===o?void 0:o.id)===T.LayerIds.Wells){var l=i.properties;if(l){var r=l.isOffsetWell,s={id:l.id,name:l.name,formation:l.formation,totalDepth:l.totalDepth,rigReleaseDate:l.rigReleaseDate};F(s,!r)}}}}}),[Q,F]),io=r((function(e){var o=e.features;if(null==o?void 0:o.length){var t=o[0],i=t.properties;if(i&&"Point"===t.geometry.type){var l=t.geometry.coordinates,r=l[0],s={latitude:l[1],longitude:r},n={id:i.id,name:i.name,formation:i.formation,status:i.status,totalDepth:i.totalDepth,rigReleaseDate:i.rigReleaseDate};Be({well:n,isOffsetWell:i.isOffsetWell,isSubjectWell:i.isSubjectWell,coords:s})}}else Ue()}),[Be,Ue]),lo=r((function(){Ue()}),[Ue]),ro=r((function(){ue(!0),E&&Se&&Be({well:E,isOffsetWell:!1,isSubjectWell:!0,coords:Se})}),[E,Se,Be]),so=r((function(){ue(!1),Ue()}),[Ue]);return o("div",{className:p(Z.mapView,K.root),children:[o(a,e({ref:ae},We,{onMove:Ce,onLoad:ye,mapboxAccessToken:x,mapStyle:T.Styles[ie],style:{borderRadius:"8px"},scrollZoom:!0,doubleClickZoom:!0,attributionControl:!1,interactiveLayerIds:[T.LayerIds.Wells],onClick:to,onMouseMove:io,onMouseLeave:lo,onDblClick:be,onDragStart:_e,onDragEnd:qe,cursor:Ke,children:[t(c,{id:"wells",type:"geojson",data:$e,children:t(d,{id:T.LayerIds.Wells,type:"circle",paint:{"circle-radius":T.Markers.WellSize,"circle-color":["get","color"],"circle-stroke-color":["coalesce",["get","strokeColor"],"transparent"],"circle-stroke-width":["get","strokeWidth"]}})}),(!re||!se)&&Qe&&t(c,{id:"radius-circle",type:"geojson",data:Qe,children:t(d,{id:"radius-circle-fill",type:"fill",paint:{"fill-color":T.Colors.RadiusCircle,"fill-opacity":.08}})}),eo.features.length>0&&t(c,{id:"well-highlights",type:"geojson",data:eo,children:t(d,{id:"well-highlights-layer",type:"circle",paint:{"circle-radius":T.Markers.HighlightSize,"circle-color":["get","color"],"circle-opacity":.16}})}),oo&&!De&&t(c,{id:"active-highlight",type:"geojson",data:oo,children:t(d,{id:"active-highlight-layer",type:"circle",paint:{"circle-radius":T.Markers.HighlightSize,"circle-color":["get","color"],"circle-opacity":["case",["get","isOffsetWell"],.24,.08]}})}),t(c,{id:"hover-highlight",type:"geojson",data:{type:"FeatureCollection",features:Fe&&!Fe.isSubjectWell?[{type:"Feature",geometry:{type:"Point",coordinates:[Fe.coords.longitude,Fe.coords.latitude]},properties:{color:v({status:Fe.well.status,mapStyle:ie,state:"hovered",isSubjectWell:!1}).fill,isOffsetWell:Fe.isOffsetWell}}]:[]},children:t(d,{id:"hover-highlight-layer",type:"circle",paint:{"circle-radius":T.Markers.HighlightSize,"circle-color":["get","color"],"circle-opacity":["case",["get","isOffsetWell"],.24,.08]}})}),re&&fe&&t(b,{initialPolygon:ee,onDrawCreate:He,onDrawUpdate:Je,onDrawDelete:Ve,onModeChange:Ee,onSelectionChange:ze,drawRef:Ge}),Se&&E&&t(W,{coordinates:Se,isHighlighted:de||De,onMouseEnter:ro,onMouseLeave:so}),Fe&&t(u,{longitude:Fe.coords.longitude,latitude:Fe.coords.latitude,closeButton:!1,closeOnClick:!1,anchor:"bottom",offset:15,className:Z.popup,children:t(j,{well:Fe.well,isOffsetWell:Fe.isOffsetWell,isSubjectWell:Fe.isSubjectWell,isViewOnly:Q,isClickable:_})})]})),t(y,{radius:X,editable:!!E,isLassoActive:re,isSatellite:ne,onChange:Ie,className:Z.radiusFilter}),t(S,{onZoomIn:be,onZoomOut:Me,canZoomIn:ke,canZoomOut:Oe,isLassoActive:re,onLassoToggle:Le,isSatellite:ne,className:Z.mapControls}),t(M,{distance:we,className:Z.scaleIndicator}),t(w,{mapStyle:ie,onChange:le,className:Z.layerSwitcher}),re&&t(C,{isDrawing:Pe,pointCount:Te,isEditingPolygon:Ze,isEditingVertices:xe,hasPolygon:!!se,isSatellite:ne,className:Z.lassoTip})]})};export{G as OffsetWellMap};
1
+ import{__assign as e}from'./../../../../../ext-esm/tslib/tslib.es6.js';import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useRef as i,useState as l,useCallback as r,useMemo as s,useEffect as n}from"react";import a,{Source as c,Layer as d,Popup as u}from"react-map-gl/mapbox";import p from"classnames";import"mapbox-gl/dist/mapbox-gl.css";import{usePickerPropsStore as m}from"../../../stores/picker-props-store/usePickerPropsStore.js";import{useViewStore as f}from"../../../stores/view-store/useViewStore.js";import{useFilterStore as h}from"../../../stores/filter-store/useFilterStore.js";import{DEFAULT_RADIUS_MILES as g}from"../../../constants.js";import{getStatusColor as v}from"./utils/getStatusColor.js";import{RadiusInput as y}from"./components/RadiusInput/RadiusInput.js";import{MapControls as S}from"./components/MapControls/MapControls.js";import{WellTooltip as j}from"./components/WellTooltip/WellTooltip.js";import{SubjectWellMarker as w}from"./components/SubjectWellMarker/SubjectWellMarker.js";import{LayerSwitcher as W}from"./components/LayerSwitcher/LayerSwitcher.js";import{DrawControl as b}from"./components/DrawControl/DrawControl.js";import{ScaleIndicator as C}from"./components/ScaleIndicator/ScaleIndicator.js";import{BoxSelectionOverlay as k}from"./components/BoxSelectionOverlay/BoxSelectionOverlay.js";import{MapHints as M}from"./components/MapHints/MapHints.js";import{useMapViewState as O}from"./hooks/useMapViewState.js";import{useRadiusCircle as D}from"./hooks/useRadiusCircle.js";import{useMapBounds as x}from"./hooks/useMapBounds.js";import{useWellMarkers as I}from"./hooks/useWellMarkers.js";import{useTooltip as P}from"./hooks/useTooltip.js";import{useTooltipAnchor as R,TOOLTIP_DIMENSIONS as L}from"./hooks/useTooltipAnchor.js";import{useLassoSelection as N}from"./hooks/useLassoSelection.js";import{useLassoKeyboardHandlers as A}from"./hooks/useLassoKeyboardHandlers.js";import{useBoxSelection as H}from"./hooks/useBoxSelection.js";import{useElementSize as B}from"./hooks/useElementSize.js";import{createPolygonGeoJSON as Z}from"./utils/polygonCoords.js";import{toCoordinates as E}from"./utils/toCoordinates.js";import{MapConfig as T}from"./constants.js";import V from"./OffsetWellMap.module.css.js";import{MAP_BOX_ACCESS_TOKEN as G}from"../../../../../config/mapbox/index.js";var J=function(J){var z,F,U,K,_,q=J.subjectWell,Q=void 0===q?null:q,X=J.wells,Y=J.offsetWellIds,$=J.handleChangeOffsetWell,ee=J.onBatchSelectWells,oe=J.activeWellId,te=J.isClickable,ie=void 0===te||te,le=J.classes,re=void 0===le?{}:le,se=m((function(e){return e.isViewOnly})),ne=null!==(z=h((function(e){return e.filters.radius})))&&void 0!==z?z:g,ae=h((function(e){return e.setRadius})),ce=null!==(F=h((function(e){return e.filters.selectionMode})))&&void 0!==F?F:"radius",de=h((function(e){return e.filters.polygonCoords})),ue=h((function(e){return e.setSelectionMode})),pe=h((function(e){return e.setPolygonCoords})),me=f((function(e){return e.mapStyle})),fe=f((function(e){return e.setMapStyle})),he="lasso"===ce,ge=de&&de.length>=3,ve="satellite"===me,ye=i(null),Se=i(null),je=l(!1),we=je[0],We=je[1],be=l(!1),Ce=be[0],ke=be[1],Me=l(!1),Oe=Me[0],De=Me[1],xe=r((function(){ke(!0)}),[]),Ie=s((function(){var e,o=null===(e=null==Q?void 0:Q.topHole)||void 0===e?void 0:e.coordinates;return o?E(o):null}),[Q]),Pe=O(ye,Ie),Re=Pe.viewState,Le=Pe.distance,Ne=Pe.handleMove,Ae=Pe.handleZoomIn,He=Pe.handleZoomOut,Be=Pe.canZoomIn,Ze=Pe.canZoomOut,Ee=(null==Q?void 0:Q.id)===oe,Te=r((function(e){return ae(e)}),[ae]),Ve=r((function(){he?((!de||de.length<3)&&pe(void 0),ue("radius")):ue("lasso")}),[he,de,ue,pe]),Ge=r((function(e){pe(e)}),[pe]),Je=N({mapRef:ye,isActive:he,hasInitialPolygon:!!ge,onPolygonChange:Ge}),ze=Je.isDrawing,Fe=Je.drawingPointCount,Ue=Je.isEditingPolygon,Ke=Je.isEditingVertices,_e=Je.drawRef,qe=Je.handleDrawCreate,Qe=Je.handleDrawUpdate,Xe=Je.handleDrawDelete,Ye=Je.handleModeChange,$e=Je.handleSelectionChange,eo=Je.discardDrawing,oo=Je.completeDrawing,to=Je.deletePolygon;A({isLassoActive:he,isDrawing:ze,drawingPointCount:Fe,isEditingPolygon:Ue,discardDrawing:eo,completeDrawing:oo,deletePolygon:to});var io=null!==(U=null==Q?void 0:Q.id)&&void 0!==U?U:null,lo=H({mapRef:ye,isEnabled:!se&&Ce,offsetWellIds:Y,subjectWellId:io,onBatchSelectWells:ee}),ro=lo.boxState,so=lo.wellsInBoxCount,no=lo.isShiftHeld,ao=P(),co=ao.hoveredWell,uo=ao.showTooltip,po=ao.hideTooltip,mo=B(Se),fo=mo.width,ho=mo.height,go=R({mapRef:ye,coords:null!==(K=null==co?void 0:co.coords)&&void 0!==K?K:null,isSubjectWell:null!==(_=null==co?void 0:co.isSubjectWell)&&void 0!==_&&_,isViewOnly:se,isClickable:ie,hintsWidth:fo,hintsHeight:ho}),vo=go.anchor,yo=go.offset,So=r((function(){return De(!0)}),[]),jo=r((function(){return De(!1)}),[]),wo=s((function(){return no&&!ro.isActive||ro.isActive?"crosshair":he?co?"pointer":void 0:Oe?"grabbing":co?"pointer":"grab"}),[no,ro.isActive,he,co,Oe]),Wo=D({subjectWellCoords:Ie,radiusMiles:ne}).circleGeoJSON,bo=s((function(){return he&&de?Z(de):null}),[he,de]),Co=I({wells:X,offsetWellIds:Y,activeWellId:null!=oe?oe:null,subjectWell:Q,mapStyle:me}),ko=Co.wellsGeoJSON,Mo=Co.highlightGeoJSON,Oo=Co.activeHighlightGeoJSON;x({mapRef:ye,circleGeoJSON:Wo,polygonGeoJSON:bo,selectionMode:ce,wellsGeoJSON:ko,subjectWell:Q,subjectWellCoords:Ie,radius:ne,isMapReady:Ce}),n((function(){var e,o=ye.current;if(oe&&o&&Ce){var t=X.find((function(e){return e.id===oe}));if(t){var i=null===(e=t.topHole)||void 0===e?void 0:e.coordinates;if(i){var l=i[0],r=i[1],s=o.getBounds();return s&&!s.contains([r,l])&&o.easeTo({center:[r,l],duration:300}),function(){null==o||o.stop()}}}}}),[oe,X,Ce]);var Do=r((function(e){var o;if(!se){var t=e.features;if(null==t?void 0:t.length){var i=t[0];if((null===(o=i.layer)||void 0===o?void 0:o.id)===T.LayerIds.Wells){var l=i.properties;if(l){var r=l.isOffsetWell,s={id:l.id,name:l.name,formation:l.formation,totalDepth:l.totalDepth,rigReleaseDate:l.rigReleaseDate};$(s,!r)}}}}}),[se,$]),xo=r((function(e){var o=e.features;if(null==o?void 0:o.length){var t=o[0],i=t.properties;if(i&&"Point"===t.geometry.type){var l=t.geometry.coordinates,r=l[0],s={latitude:l[1],longitude:r},n={id:i.id,name:i.name,formation:i.formation,status:i.status,totalDepth:i.totalDepth,rigReleaseDate:i.rigReleaseDate};uo({well:n,isOffsetWell:i.isOffsetWell,isSubjectWell:i.isSubjectWell,coords:s})}}else we||po()}),[uo,po,we]),Io=r((function(){po()}),[po]),Po=r((function(){We(!0),Q&&Ie&&uo({well:Q,isOffsetWell:!1,isSubjectWell:!0,coords:Ie})}),[Q,Ie,uo]),Ro=r((function(){We(!1),po()}),[po]);return o("div",{className:p(V.mapView,re.root),children:[o(a,e({ref:ye},Re,{onMove:Ne,onLoad:xe,mapboxAccessToken:G,mapStyle:T.Styles[me],style:{borderRadius:"8px"},scrollZoom:!0,doubleClickZoom:!0,boxZoom:!1,attributionControl:!1,interactiveLayerIds:[T.LayerIds.Wells],onClick:Do,onMouseMove:xo,onMouseLeave:Io,onDblClick:Ae,onDragStart:So,onDragEnd:jo,cursor:wo,children:[t(c,{id:"wells",type:"geojson",data:ko,children:t(d,{id:T.LayerIds.Wells,type:"circle",paint:{"circle-radius":T.Markers.WellSize,"circle-color":["get","color"],"circle-stroke-color":["coalesce",["get","strokeColor"],"transparent"],"circle-stroke-width":["get","strokeWidth"]}})}),(!he||!ge)&&Wo&&o(c,{id:"radius-circle",type:"geojson",data:Wo,children:[t(d,{id:"radius-circle-fill",type:"fill",paint:{"fill-color":T.SelectionColors[me].fill,"fill-opacity":1}}),t(d,{id:"radius-circle-stroke",type:"line",paint:{"line-color":T.SelectionColors[me].border,"line-width":T.SelectionColors[me].borderWidth}})]}),Mo.features.length>0&&t(c,{id:"well-highlights",type:"geojson",data:Mo,children:t(d,{id:"well-highlights-layer",type:"circle",paint:{"circle-radius":T.Markers.HighlightSize,"circle-color":["get","color"],"circle-opacity":.16}})}),Oo&&!Ee&&t(c,{id:"active-highlight",type:"geojson",data:Oo,children:t(d,{id:"active-highlight-layer",type:"circle",paint:{"circle-radius":T.Markers.HighlightSize,"circle-color":["get","color"],"circle-opacity":["case",["get","isOffsetWell"],.24,.08]}})}),t(c,{id:"hover-highlight",type:"geojson",data:{type:"FeatureCollection",features:co&&!co.isSubjectWell?[{type:"Feature",geometry:{type:"Point",coordinates:[co.coords.longitude,co.coords.latitude]},properties:{color:v({status:co.well.status,mapStyle:me,state:"hovered",isSubjectWell:!1}).fill,isOffsetWell:co.isOffsetWell}}]:[]},children:t(d,{id:"hover-highlight-layer",type:"circle",paint:{"circle-radius":T.Markers.HighlightSize,"circle-color":["get","color"],"circle-opacity":["case",["get","isOffsetWell"],.24,.08]}})}),he&&Ce&&t(b,{mapStyle:me,initialPolygon:de,onDrawCreate:qe,onDrawUpdate:Qe,onDrawDelete:Xe,onModeChange:Ye,onSelectionChange:$e,drawRef:_e},me),Ie&&Q&&t(w,{coordinates:Ie,onMouseEnter:Po,onMouseLeave:Ro}),co&&t(u,{longitude:co.coords.longitude,latitude:co.coords.latitude,closeButton:!1,closeOnClick:!1,anchor:vo,offset:yo,maxWidth:"".concat(L.maxWidth,"px"),className:V.popup,children:t(j,{well:co.well,isOffsetWell:co.isOffsetWell,isSubjectWell:co.isSubjectWell,isViewOnly:se,isClickable:ie})})]})),t(y,{radius:ne,editable:!!Q,isLassoActive:he,isSatellite:ve,onChange:Te,className:V.radiusFilter}),t(S,{onZoomIn:Ae,onZoomOut:He,canZoomIn:Be,canZoomOut:Ze,isLassoActive:he,onLassoToggle:Ve,isSatellite:ve,className:V.mapControls}),t(C,{distance:Le,className:V.scaleIndicator}),t(W,{mapStyle:me,onChange:fe,className:V.layerSwitcher}),!se&&t(M,{ref:Se,mode:!he||ro.isActive||no?"box":"lasso",isBoxActive:ro.isActive,isDrawing:ze,pointCount:Fe,isEditingPolygon:Ue,isEditingVertices:Ke,hasPolygon:!!ge,showBoxSelectionHint:!se,isSatellite:ve,className:V.mapHints}),ro.isActive&&t(k,{startPoint:ro.startPoint,endPoint:ro.endPoint,wellsCount:so,isSatellite:ve})]})};export{J as OffsetWellMap};
2
2
  //# sourceMappingURL=OffsetWellMap.js.map
@@ -1,2 +1,2 @@
1
- import e from'./../../../../../ext-esm/style-inject/dist/style-inject.es.js';var l={mapView:"OffsetWellMap-module_mapView__28QGE",mapMain:"OffsetWellMap-module_mapMain__0Qczi",radiusFilter:"OffsetWellMap-module_radiusFilter__i7bnt",mapControls:"OffsetWellMap-module_mapControls__jYI9E",scaleIndicator:"OffsetWellMap-module_scaleIndicator__6N1ds",layerSwitcher:"OffsetWellMap-module_layerSwitcher__5KWj3",lassoTip:"OffsetWellMap-module_lassoTip__zXnhW",popup:"OffsetWellMap-module_popup__5ryjD"};e(".OffsetWellMap-module_mapView__28QGE{isolation:isolate;position:relative;width:100%}.OffsetWellMap-module_mapMain__0Qczi{background-color:var(--palette-background-b-9);border:1px solid var(--palette-background-b-9);border-radius:4px;flex:100;height:200px;position:relative;width:100%}.OffsetWellMap-module_radiusFilter__i7bnt{left:8px;position:absolute;top:8px;z-index:10}.OffsetWellMap-module_mapControls__jYI9E{bottom:8px;position:absolute;right:8px;z-index:10}.OffsetWellMap-module_scaleIndicator__6N1ds{bottom:8px;position:absolute;right:48px;z-index:10}.OffsetWellMap-module_layerSwitcher__5KWj3{bottom:8px;left:8px;position:absolute;z-index:10}.OffsetWellMap-module_lassoTip__zXnhW{position:absolute;right:8px;top:8px;z-index:10}.OffsetWellMap-module_mapView__28QGE .mapboxgl-ctrl-attrib,.OffsetWellMap-module_mapView__28QGE .mapboxgl-ctrl-logo{display:none}.OffsetWellMap-module_mapView__28QGE .mapboxgl-canvas:focus{outline:none}.OffsetWellMap-module_popup__5ryjD .mapboxgl-popup-content{background-color:transparent;box-shadow:none;padding:0}.OffsetWellMap-module_mapView__28QGE .mapbox-gl-draw_ctrl-draw-btn.mapbox-gl-draw_trash,.OffsetWellMap-module_popup__5ryjD .mapboxgl-popup-tip{display:none}");export{l as default};
1
+ import e from'./../../../../../ext-esm/style-inject/dist/style-inject.es.js';var l={mapView:"OffsetWellMap-module_mapView__28QGE",mapMain:"OffsetWellMap-module_mapMain__0Qczi",radiusFilter:"OffsetWellMap-module_radiusFilter__i7bnt",mapControls:"OffsetWellMap-module_mapControls__jYI9E",scaleIndicator:"OffsetWellMap-module_scaleIndicator__6N1ds",layerSwitcher:"OffsetWellMap-module_layerSwitcher__5KWj3",mapHints:"OffsetWellMap-module_mapHints__e-67F",popup:"OffsetWellMap-module_popup__5ryjD"};e(".OffsetWellMap-module_mapView__28QGE{isolation:isolate;position:relative;width:100%}.OffsetWellMap-module_mapMain__0Qczi{background-color:var(--palette-background-b-9);border:1px solid var(--palette-background-b-9);border-radius:4px;flex:100;height:200px;position:relative;width:100%}.OffsetWellMap-module_radiusFilter__i7bnt{left:8px;position:absolute;top:8px;z-index:10}.OffsetWellMap-module_mapControls__jYI9E{bottom:8px;position:absolute;right:8px;z-index:10}.OffsetWellMap-module_scaleIndicator__6N1ds{bottom:8px;position:absolute;right:48px;z-index:10}.OffsetWellMap-module_layerSwitcher__5KWj3{bottom:8px;left:8px;position:absolute;z-index:10}.OffsetWellMap-module_mapHints__e-67F{position:absolute;right:8px;top:8px;z-index:10}.OffsetWellMap-module_mapView__28QGE .mapboxgl-ctrl-attrib,.OffsetWellMap-module_mapView__28QGE .mapboxgl-ctrl-logo{display:none}.OffsetWellMap-module_mapView__28QGE .mapboxgl-canvas:focus{outline:none}.OffsetWellMap-module_popup__5ryjD .mapboxgl-popup-content{background-color:transparent;box-shadow:none;padding:0}.OffsetWellMap-module_popup__5ryjD .mapboxgl-popup-tip{display:none}");export{l as default};
2
2
  //# sourceMappingURL=OffsetWellMap.module.css.js.map
@@ -0,0 +1,14 @@
1
+ import { FC } from 'react';
2
+ type Point = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ type BoxSelectionOverlayProps = {
7
+ startPoint: Point | null;
8
+ endPoint: Point | null;
9
+ wellsCount: number;
10
+ isSatellite?: boolean;
11
+ };
12
+ export declare const BoxSelectionOverlay: FC<BoxSelectionOverlayProps>;
13
+ export {};
14
+ //# sourceMappingURL=BoxSelectionOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxSelectionOverlay.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/BoxSelectionOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAKpC,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,KAAK,wBAAwB,GAAG;IAC9B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAqC5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{useMemo as e}from"react";import l from"classnames";import r from"./BoxSelectionOverlay.module.css.js";var a=function(a){var i=a.startPoint,n=a.endPoint,o=a.wellsCount,s=a.isSatellite,m=void 0!==s&&s,c=e((function(){return i&&n?{left:Math.min(i.x,n.x),top:Math.min(i.y,n.y),width:Math.abs(n.x-i.x),height:Math.abs(n.y-i.y)}:null}),[i,n]);if(!c)return null;var u=1===o?"1 well":"".concat(o," wells");return t("div",{className:l(r.boxOverlay,m&&r.satellite),style:c,children:o>0&&t("div",{className:l(r.countBadge,m&&r.satellite),children:u})})};export{a as BoxSelectionOverlay};
2
+ //# sourceMappingURL=BoxSelectionOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxSelectionOverlay.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import e from'./../../../../../../../ext-esm/style-inject/dist/style-inject.es.js';var o={boxOverlay:"BoxSelectionOverlay-module_boxOverlay__askuQ",satellite:"BoxSelectionOverlay-module_satellite__3geTN",countBadge:"BoxSelectionOverlay-module_countBadge__xl9OV"};e(".BoxSelectionOverlay-module_boxOverlay__askuQ{background:rgba(3,188,212,.08);border:1px dashed #03bcd4;pointer-events:none;position:absolute;z-index:100}.BoxSelectionOverlay-module_boxOverlay__askuQ.BoxSelectionOverlay-module_satellite__3geTN{background:rgba(255,193,7,.08);border:2px dashed #ffe679}.BoxSelectionOverlay-module_countBadge__xl9OV{backdrop-filter:blur(2px);background:hsla(0,0%,100%,.08);border-radius:8px;bottom:-28px;color:var(--palette-primary-text-1);font-size:12px;left:50%;padding:4px 8px;position:absolute;transform:translateX(-50%);white-space:nowrap}.BoxSelectionOverlay-module_countBadge__xl9OV.BoxSelectionOverlay-module_satellite__3geTN{background:rgba(65,65,65,.64)}");export{o as default};
2
+ //# sourceMappingURL=BoxSelectionOverlay.module.css.js.map
@@ -0,0 +1,2 @@
1
+ export { BoxSelectionOverlay } from './BoxSelectionOverlay';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/BoxSelectionOverlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { MutableRefObject } from 'react';
2
2
  import MapboxDraw from '@mapbox/mapbox-gl-draw';
3
3
  import type { PolygonCoord } from '../../../../../stores/filter-store/types';
4
+ import { MapStyleValue } from '../../constants';
4
5
  import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css';
5
6
  type DrawControlProps = {
7
+ mapStyle: MapStyleValue;
6
8
  initialPolygon?: PolygonCoord[];
7
9
  onDrawCreate: (e: {
8
10
  features: GeoJSON.Feature[];
@@ -20,7 +22,7 @@ type DrawControlProps = {
20
22
  drawRef: MutableRefObject<MapboxDraw | null>;
21
23
  };
22
24
  export declare const DrawControl: {
23
- ({ initialPolygon, onDrawCreate, onDrawUpdate, onDrawDelete, onModeChange, onSelectionChange, drawRef, }: DrawControlProps): null;
25
+ ({ mapStyle, initialPolygon, onDrawCreate, onDrawUpdate, onDrawDelete, onModeChange, onSelectionChange, drawRef, }: DrawControlProps): null;
24
26
  displayName: string;
25
27
  };
26
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"DrawControl.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/DrawControl/DrawControl.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAe,MAAM,OAAO,CAAC;AAEzE,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAG7E,OAAO,gDAAgD,CAAC;AAqDxD,KAAK,gBAAgB,GAAG;IACtB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CAC9C,CAAC;AAUF,eAAO,MAAM,WAAW;8GAQrB,gBAAgB,GAAG,IAAI;;CAgIzB,CAAC"}
1
+ {"version":3,"file":"DrawControl.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/DrawControl/DrawControl.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAe,MAAM,OAAO,CAAC;AAEzE,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAE7E,OAAO,EAAa,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,gDAAgD,CAAC;AAyDxD,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CAC9C,CAAC;AAUF,eAAO,MAAM,WAAW;wHASrB,gBAAgB,GAAG,IAAI;;CA6HzB,CAAC"}
@@ -1,2 +1,2 @@
1
- import{__spreadArray as e}from'./../../../../../../../ext-esm/tslib/tslib.es6.js';import{useRef as t,useCallback as r,useEffect as n}from"react";import{useControl as o}from"react-map-gl/mapbox";import l from"@mapbox/mapbox-gl-draw";import{convertApiCoordsToGeoJSON as a}from"../../utils/polygonCoords.js";import"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css";var i=[{id:"gl-draw-polygon-fill",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"rgba(3, 188, 212, 0.08)","fill-opacity":1}},{id:"gl-draw-lines",type:"line",filter:["any",["==","$type","LineString"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#03BCD4","line-dasharray":["case",["==",["get","active"],"true"],[2,2],[1,0]],"line-width":1}},{id:"gl-draw-vertex-outer",type:"circle",filter:["all",["==","$type","Point"],["==","meta","vertex"],["!=","mode","simple_select"]],paint:{"circle-radius":4,"circle-color":"#FFFFFF","circle-stroke-color":"#03BCD4","circle-stroke-width":1}},{id:"gl-draw-midpoint",type:"circle",filter:["all",["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#03BCD4"}}],c=function(c){var d=c.initialPolygon,u=c.onDrawCreate,p=c.onDrawUpdate,g=c.onDrawDelete,s=c.onModeChange,f=c.onSelectionChange,m=c.drawRef,h=t(!1),w=t({create:null,update:null,delete:null,modeChange:null,selectionChange:null}),y=r((function(e){var t=e.map.getMap();w.current.create=function(e){u(e)},w.current.update=function(e){p(e)},w.current.delete=function(){g()},w.current.modeChange=function(e){s(e)},w.current.selectionChange=function(e){f(e)},t.on("draw.create",w.current.create),t.on("draw.update",w.current.update),t.on("draw.delete",w.current.delete),t.on("draw.modechange",w.current.modeChange),t.on("draw.selectionchange",w.current.selectionChange)}),[u,p,g,s,f]),C=r((function(e){var t=e.map.getMap(),r=w.current;r.create&&t.off("draw.create",r.create),r.update&&t.off("draw.update",r.update),r.delete&&t.off("draw.delete",r.delete),r.modeChange&&t.off("draw.modechange",r.modeChange),r.selectionChange&&t.off("draw.selectionchange",r.selectionChange),w.current={create:null,update:null,delete:null,modeChange:null,selectionChange:null},m.current=null}),[m]),b=o((function(){return new l({displayControlsDefault:!1,controls:{polygon:!1,trash:!0},defaultMode:"simple_select",styles:i})}),y,C,{position:"top-right"});return n((function(){m.current=b}),[b,m]),n((function(){if(b&&!h.current)if(h.current=!0,d&&d.length>=3){var t=a(d),r=t[0],n=t[t.length-1],o=r[0]===n[0]&&r[1]===n[1]?t:e(e([],t,!0),[r],!1);b.add({type:"Feature",geometry:{type:"Polygon",coordinates:[o]},properties:{}})}else b.changeMode("draw_polygon")}),[b,d]),null};c.displayName="DrawControl";export{c as DrawControl};
1
+ import{__spreadArray as e}from'./../../../../../../../ext-esm/tslib/tslib.es6.js';import{useRef as r,useCallback as t,useEffect as n}from"react";import{useControl as o}from"react-map-gl/mapbox";import l from"@mapbox/mapbox-gl-draw";import{convertApiCoordsToGeoJSON as a}from"../../utils/polygonCoords.js";import{MapConfig as i}from"../../constants.js";import"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css";var c=function(e){var r=i.SelectionColors[e];return[{id:"gl-draw-polygon-fill",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":r.fill,"fill-opacity":1}},{id:"gl-draw-lines",type:"line",filter:["any",["==","$type","LineString"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":r.border,"line-dasharray":["case",["==",["get","active"],"true"],[2,2],[1,0]],"line-width":r.borderWidth}},{id:"gl-draw-vertex-outer",type:"circle",filter:["all",["==","$type","Point"],["==","meta","vertex"],["!=","mode","simple_select"]],paint:{"circle-radius":4,"circle-color":"#000000","circle-stroke-color":r.border,"circle-stroke-width":r.borderWidth}},{id:"gl-draw-midpoint",type:"circle",filter:["all",["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":r.border}}]},d=function(i){var d=i.mapStyle,u=i.initialPolygon,p=i.onDrawCreate,s=i.onDrawUpdate,g=i.onDrawDelete,f=i.onModeChange,m=i.onSelectionChange,h=i.drawRef,y=r(!1),w=r({create:null,update:null,delete:null,modeChange:null,selectionChange:null}),C=t((function(e){var r=e.map.getMap();w.current.create=function(e){p(e)},w.current.update=function(e){s(e)},w.current.delete=function(){g()},w.current.modeChange=function(e){f(e)},w.current.selectionChange=function(e){m(e)},r.on("draw.create",w.current.create),r.on("draw.update",w.current.update),r.on("draw.delete",w.current.delete),r.on("draw.modechange",w.current.modeChange),r.on("draw.selectionchange",w.current.selectionChange)}),[p,s,g,f,m]),b=t((function(e){var r=e.map.getMap(),t=w.current;t.create&&r.off("draw.create",t.create),t.update&&r.off("draw.update",t.update),t.delete&&r.off("draw.delete",t.delete),t.modeChange&&r.off("draw.modechange",t.modeChange),t.selectionChange&&r.off("draw.selectionchange",t.selectionChange),w.current={create:null,update:null,delete:null,modeChange:null,selectionChange:null},h.current=null}),[h]),v=o((function(){return new l({displayControlsDefault:!1,defaultMode:"simple_select",styles:c(d),keybindings:!1})}),C,b,{position:"top-right"});return n((function(){h.current=v}),[v,h]),n((function(){if(v&&!y.current)if(y.current=!0,u&&u.length>=3){var r=a(u),t=r[0],n=r[r.length-1],o=t[0]===n[0]&&t[1]===n[1]?r:e(e([],r,!0),[t],!1);v.add({type:"Feature",geometry:{type:"Polygon",coordinates:[o]},properties:{}})}else v.changeMode("draw_polygon")}),[v,u]),null};d.displayName="DrawControl";export{d as DrawControl};
2
2
  //# sourceMappingURL=DrawControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapControls.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapControls/MapControls.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQ3B,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAiC5C,CAAC"}
1
+ {"version":3,"file":"MapControls.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapControls/MapControls.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQ3B,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAqC5C,CAAC"}