@corva/ui 3.39.0-7 → 3.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/cjs-bundle/components/AddComment/Popover.js +1 -1
  2. package/cjs-bundle/components/AddComment/Popover.js.map +1 -1
  3. package/cjs-bundle/components/AddComment/components/Content.js +1 -1
  4. package/cjs-bundle/components/AddComment/components/Content.js.map +1 -1
  5. package/cjs-bundle/components/BICOffsetPickerDialog/index.js +1 -1
  6. package/cjs-bundle/components/BICOffsetPickerDialog/index.js.map +1 -1
  7. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  8. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  9. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js +1 -1
  10. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  11. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  12. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  13. package/cjs-bundle/components/CollapsableSidebar.js +1 -1
  14. package/cjs-bundle/components/CollapsableSidebar.js.map +1 -1
  15. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
  16. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  17. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js +1 -1
  18. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js.map +1 -1
  19. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  20. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  21. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  22. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  23. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  24. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  25. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  26. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  27. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  28. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  29. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  30. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  31. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  32. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  33. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  34. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  35. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  36. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  37. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  38. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  39. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  40. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  41. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  42. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  43. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  44. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  45. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  46. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  47. package/cjs-bundle/components/FeedItem/FeedItem.js +1 -1
  48. package/cjs-bundle/components/FeedItem/FeedItem.js.map +1 -1
  49. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  50. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  51. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  52. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  53. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  54. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  55. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  56. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  57. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  58. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  59. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  60. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  61. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  62. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  63. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  64. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  65. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  66. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  67. package/cjs-bundle/components/OffsetWellPickerV4/OffsetWellPickerV4.js +1 -1
  68. package/cjs-bundle/components/OffsetWellPickerV4/OffsetWellPickerV4.js.map +1 -1
  69. package/cjs-bundle/components/OffsetWellPickerV4/components/Filter/Filter.js +1 -1
  70. package/cjs-bundle/components/OffsetWellPickerV4/components/Filter/Filter.js.map +1 -1
  71. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js +1 -1
  72. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js.map +1 -1
  73. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
  74. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
  75. package/cjs-bundle/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js +1 -1
  76. package/cjs-bundle/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js.map +1 -1
  77. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
  78. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
  79. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/Filter.js +1 -1
  80. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/Filter.js.map +1 -1
  81. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
  82. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
  83. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js +1 -1
  84. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  85. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  86. package/cjs-bundle/componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js +1 -1
  87. package/cjs-bundle/componentsV2/WellArchivedMessage/WellArchivedMessage.js +1 -1
  88. package/cjs-bundle/componentsV2/index.js +1 -1
  89. package/components/AddComment/Popover.js +1 -1
  90. package/components/AddComment/Popover.js.map +1 -1
  91. package/components/AddComment/components/Content.js +1 -1
  92. package/components/AddComment/components/Content.js.map +1 -1
  93. package/components/BICOffsetPickerDialog/index.js +1 -1
  94. package/components/BICOffsetPickerDialog/index.js.map +1 -1
  95. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  96. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  97. package/components/Casing/CasingTableV2/components/Component.js +1 -1
  98. package/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  99. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  100. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  101. package/components/CollapsableSidebar.js +1 -1
  102. package/components/CollapsableSidebar.js.map +1 -1
  103. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
  104. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
  105. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  106. package/components/DocumentViewer/DocumentViewer.js +1 -1
  107. package/components/DocumentViewer/DocumentViewer.js.map +1 -1
  108. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  109. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  110. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  111. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  112. package/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  113. package/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  114. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  115. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  116. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  117. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  118. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  119. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  120. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  121. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  122. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  123. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  124. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  125. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  126. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  127. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  128. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  129. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  130. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  131. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  132. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  133. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  134. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  135. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  136. package/components/FeedItem/FeedItem.js +1 -1
  137. package/components/FeedItem/FeedItem.js.map +1 -1
  138. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  139. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  140. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  141. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  142. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  143. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  144. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  145. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  146. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  147. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  148. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  149. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  150. package/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  151. package/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  152. package/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  153. package/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  154. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  155. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  156. package/components/OffsetWellPickerV4/OffsetWellPickerV4.js +1 -1
  157. package/components/OffsetWellPickerV4/OffsetWellPickerV4.js.map +1 -1
  158. package/components/OffsetWellPickerV4/components/Filter/Filter.js +1 -1
  159. package/components/OffsetWellPickerV4/components/Filter/Filter.js.map +1 -1
  160. package/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js +1 -1
  161. package/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js.map +1 -1
  162. package/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
  163. package/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
  164. package/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js +1 -1
  165. package/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js.map +1 -1
  166. package/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
  167. package/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
  168. package/components/OffsetWellPickerV5/components/Filter/Filter.js +1 -1
  169. package/components/OffsetWellPickerV5/components/Filter/Filter.js.map +1 -1
  170. package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
  171. package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
  172. package/components/PadOffsetsPicker/StagesSelector.js +1 -1
  173. package/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  174. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  175. package/componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.d.ts +2 -1
  176. package/componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.d.ts.map +1 -1
  177. package/componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js +1 -1
  178. package/componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.stories.d.ts +1 -1
  179. package/componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.stories.d.ts.map +1 -1
  180. package/componentsV2/CompletionsOffsetWellPicker/index.d.ts +1 -1
  181. package/componentsV2/CompletionsOffsetWellPicker/index.d.ts.map +1 -1
  182. package/componentsV2/WellArchivedMessage/WellArchivedMessage.js +1 -1
  183. package/componentsV2/index.js +1 -1
  184. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/toConsumableArray";import o from"@babel/runtime/helpers/asyncToGenerator";import s from"@babel/runtime/helpers/slicedToArray";import n from"@babel/runtime/regenerator";import{useState as r,useRef as i,useMemo as p,useEffect as c,useCallback as m}from"react";import l from"classnames";import{uniqBy as a,uniq as d,sortBy as u,isEmpty as j}from"lodash";import{Replay as f}from"@material-ui/icons";import{Table as A,TableHead as C}from"@material-ui/core";import{useFetchWells as h}from"./effects/useFetchWells.js";import{useAdvancedWells as v}from"./effects/useAdvancedWells.js";import{useBicWells as S}from"./effects/useBicWells.js";import{useCompanyMetricKey as g}from"./effects/useCompanyMetricKey.js";import{useFilterOptions as V}from"./effects/useFilterOptions.js";import{useFilteredWells as I}from"./effects/useFilteredWells.js";import{useSortedWells as b}from"./effects/useSortedWells.js";import"./effects/useAssetsData.js";import{useTableColumns as P}from"./effects/useTableColumns.js";import{useCompanyProvider as D}from"./effects/useCompanyProvider.js";import{useCompanies as T}from"./effects/useCompanies.js";import{usePinnedWells as y}from"./effects/usePinnedWells.js";import{useSearchedWells as x}from"./effects/useSearchedWells.js";import{useFetchSubjectWell as W}from"./effects/useFetchSubjectWell.js";import"uuid";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../clients/jsonApi/index.js";import"../../clients/subscriptions/constants.js";import"../../clients/subscriptions.v1.js";import"../../clients/subscriptions/subscriptions-client.factory.js";import"../../clients/api/apiCore.js";import"../../clients/constants.js";import"../../clients/sso/auth0.js";import"../../clients/sso/oauth2.js";import"./api/shared/dataFormatter.js";import{fetchCompanyIdsByWellIds as F}from"./api/wells/fetchCompanyIdsByWellIds.js";import{DEFAULT_RADIUS_MILES as O,FilterType as B,ALL_SECTION_KEY as k,COMPANY_PROVIDERS_FOR_IDAS as M,ROWS_PER_PAGE as w,RESYNC_STATUS as L,MAX_OFFSET_SIZE as E}from"./constants.js";import{AppHeader as H}from"./components/AppHeader/AppHeader.js";import{Filter as N}from"./components/Filter/Filter.js";import{WellsMap as G}from"./components/Map/WellsMap.js";import{OffsetWellsTable as R}from"./components/OffsetWellsTable/OffsetWellsTable.js";import{OffsetWellsTableHead as q}from"./components/OffsetWellsTable/OffsetWellsTableHead.js";import{AdvancedSearch as z}from"./components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.js";import{SEARCH_CATEGORIES as U}from"./components/OffsetWellsTable/AdvancedSearch/constants.js";import{getCoordinatedWells as K}from"./utils/index.js";import{getIsImperial as Z}from"./utils/getIsImperial.js";import{usePickerPropsStore as _}from"./stores/picker-props-store/usePickerPropsStore.js";import{useFilterStore as X}from"./stores/filter-store/useFilterStore.js";import{useViewStore as J}from"./stores/view-store/useViewStore.js";import Q from"./OffsetWellPickerV5.module.css.js";import Y from"./components/OffsetWellsTable/OffsetWellsTable.module.css.js";import"../../utils/index.js";import{jsx as $,jsxs as ee}from"react/jsx-runtime";import"@material-ui/core/Snackbar";import"../Notifications/Toast.js";import"../Notifications/Notifications.scss.js";import{NotificationsContainer as te}from"../Notifications/NotificationsContainer.js";import oe from"../../styles/typography/index.js";import"../../styles/counter/counter.module.scss.js";import"../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"@icon-park/react/es/all";import"../../icons/IconParkProvider.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/Lasso.js";import"../../utils/mobileDetect.js";import"../IconButton/index.js";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import"../Modal/CorvaModal.css.js";import"../IconMenu/index.js";import"../StyledMenuItem/index.js";import"../AppIcon/AppIcon.js";import"../DevCenter/AppHeader/AppHeader.js";import"../DevCenter/AppSideBar/AppSideBar.js";import"../DevCenter/AppsDataProvider/AppsDataProvider.js";import"../DevCenter/DevCenterAppContainer/DevCenterAppContainer.js";import"../DevCenter/NavigationBar/NavigationBar.js";import"../DevCenter/SideBar/SideBar.js";import"../DevCenter/AppSettingsPopover/AppSettingsPopover.js";import"../DevCenter/AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"@babel/runtime/helpers/objectWithoutProperties";import"react-router";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js";import"../DevCenter/AppContext.js";import"../AssetEditor/index.js";import"../AssetEditorV2/index.js";import"../AppVersionsSelect/AppVersionsSelect.js";import se from"../LoadingIndicator/LoadingIndicator.js";import"../Typography.js";import"../RealTimeValuesSidebar/RealTimeSidebar.js";import"../CollapsableSidebar.js";import"../DateTimePicker/index.js";import"../DatePicker/index.js";import"../ErrorBoundary/ErrorBoundary.js";import"../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import"../Annotations/components/AnnotationsList/index.js";import"../Annotations/components/LastAnnotation/index.js";import"../Annotations/AnnotationsContext.js";import"../SlateFormattedText/SlateFormattedText.js";import"../SlateFormattedText/RenderElements.js";import"@babel/runtime/helpers/typeof";import"slate";import"../EmptyState/EmptyState.js";import"../ParameterCharts/ParameterCharts.js";import"../ParameterCharts/AddEditTrack.js";import"../ChartActionsList/ChartActionsList.js";import"../CopyToClipboard/CopyToClipboard.js";import"../AssetEditor/AssetEditorAutocomplete.js";import"../AssetEditor/SingleAssetEditor.js";import"react-color";import"../SettingEditors/ColorEditor/style.css.js";import"../SettingEditors/DropdownEditor/index.js";import"../SwitchControl/index.js";import"../ColorPicker/ColorPicker.js";import"../Chart/components/ChartButton.js";import"../Chart/components/ChartButtons.js";import"../Chart/components/ChartWrapper.js";import"../Chart/components/AxisDropdown.js";import"../Chart/components/ChartSelect.js";import"../Chart/components/buttons/DragToZoomButton.js";import"../Chart/components/buttons/ZoomInButton.js";import"../Chart/components/buttons/ZoomOutButton.js";import"../Chart/components/buttons/PanButton.js";import"../Chart/components/buttons/ResetZoomButton.js";import"../Chart/components/buttons/HideAxesButton.js";import"../Chart/components/buttons/ChartTypeButton.js";import"../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../TruncatedText/index.js";import"../MiddleTruncatedText/MiddleTruncatedText.js";import"../RangeSlider/constants.js";import"../RangeSlider/Input.css.js";import"../RangeSlider/RangeSlider.css.js";import"../AdvancedSlider/AdvancedSlider.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/RemoveAppButton.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js";import"../Breadcrumbs/index.js";import"../VirtualizedTable/index.js";import"../EmptyView/EmptyView.js";import"../EmptyView/EmptyAppView/EmptyAppView.js";import"../Button/components/Button/index.js";import"moment-timezone";import"../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../Button/components/LiveButton/styles.js";import"../ContextMenuItem/index.js";import"../FolderMenuItem/index.js";import"../EditableItem/EditableItem/index.js";import"../EditableItem/EditableItemWithBadge/index.js";import"../Checkbox/index.js";import"../FolderMenuItemWithLinks/index.js";import"../TextField/index.js";import"../Chip/index.js";import"../Counter/index.js";import"../AnchorsList/AnchorsList.js";import"../Select/index.js";import"../Select/SelectFilterBy.js";import"../CustomSelect/index.js";import"../Tabs/Tabs.js";import"../Tabs/Tab.js";import"../ResizableTable/ResizableTable.js";import"../GradientPicker/GradientPicker.js";import"../GradientManager/GradientList.js";import"@material-ui/icons/AddCircle";import"../GradientManager/GradientPreview/GradientPreview.js";import"../GradientManager/GradientSelect.styles.js";import"../GradientManager/GradientManager.styles.js";import"../Drillstring/BHASchematic.js";import"../Drillstring/BHATable/index.js";import"../Drillstring/BHAComponentIcon.js";import"../Drillstring/BHAComponentDetail/index.js";import"../Drillstring/BHATileIcon.js";import"../Drillstring/BHATile/BHATile.js";import"../Drillstring/BHAList/BHAList.js";import"../Drillstring/BHAComponentsTable/BHAComponentsTable.js";import"../Casing/CasingTable/index.js";import"../Casing/CasingComponentIcon.js";import"../Casing/CasingTileIcon.js";import"../Casing/CasingTableV2/CasingTableV2.js";import"../Casing/CasingTile/CasingTile.js";import"../DisabledSettingsMessage/DisabledSettingsMessage.js";import"../WellSummary/WellSummaryItemLabel.js";import"../WellSummary/WellSummaryItemTitle.js";import"../WellSummary/WellSummaryItemValue.js";import"../WellSummary/ActivitySummaryChart.js";import"../WellSummary/FracWirelineTimeChart.js";import"../BICOffsetPickerDialog/index.js";import"../OffsetWellButton/OffsetWellButton.js";import"../OffsetWellPickerV2/OffsetWellPickerDialog.js";import"../OffsetWellPickerV3/index.js";import"../OffsetWellChips/Chip.js";import"../OffsetWellChips/ChipsContainer.js";import"./OffsetWellPickerV5WithStore.js";import"../OffsetWellPickerV4/utils/apiCalls.js";import"../OffsetWellPickerV4/effects/useAdvancedWells.js";import"../OffsetWellPickerV4/constants.js";import"react-virtualized";import"../OffsetWellPickerV4/effects/useAssetsData.js";import"../../permissions/PermissionsContext.js";import"../../permissions/constants/index.js";import"../../permissions/withPermissionsHOC.js";import"../../permissions/ProvidePermissions.js";import"../OffsetWellPickerV4/components/AppHeader/AppHeader.js";import"../OffsetWellPickerV4/components/Toolbar/Toolbar.js";import"../OffsetWellPickerV4/components/Filter/Filter.js";import"../OffsetWellPickerV4/components/Map/WellsMap.js";import"../OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js";import"../OffsetWellPickerV4/components/OffsetWellsTable/AdvancedSearch/constants.js";import"../OffsetWellPickerV4/utils/index.js";import"../OffsetWellPickerV4/OffsetWellPickerV4.module.css.js";import"querystring";import"uuid/v1";import"jsona";import"../../utils/env.js";import"../StatusBadge/constants.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../constants/streamSourceType.js";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import{useGlobalOffsetWellsSync as ne}from"../../effects/useGlobalOffsetWellsSync.js";import"../OffsetWellMap/OffsetWellMap.js";import"../Toaster/Toaster.js";import"../ConfirmationDialog.js";import"../TextLink/index.js";import"../Avatar/index.js";import"../Template/TemplatePopover/index.js";import"../Template/TemplateSharingDialog/index.js";import"../MenuItem/index.js";import"../MiddleTruncate/MiddleTruncate.js";import"../PadModeSelect/PadModeSelect.js";import"../PinnableFilters/PinnableFilters.js";import"../HeaderLayout/HeaderLayout.js";import"../PadOffsetsPicker/PadOffsetsPicker.js";import"../PadOffsetsPicker/OffsetAssetChip.js";import"../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../PadOffsetsPicker/StagesSelector.js";import"../PadOffsetsPickerV2/PadOffsetsPickerV2.js";import"../Table/TableToolbar/TableToolbar.js";import"../Table/TableContainer/TableContainer.js";import"../Table/TableCell/TableCell.js";import"../Table/TablePagination/TablePagination.js";import"../Table/TablePaginationActions/TablePaginationActions.js";import"../Tooltip/ScrollableTooltip.js";import"../PriceInput/PriceInput.js";import"../LabelsCounter/LabelsCounter.js";import"../Stepper/Stepper.js";import"../Stepper/Step/Step.js";import"../Stepper/StepsWrapper.js";import"../Comment/CommentIcon/index.js";import"../FilesLoader/FilesLoader.js";import"../../componentsV2/FileIcon/icons/ArchiveFileIcon.js";import"../../componentsV2/FileIcon/icons/CSVFileIcon.js";import"../../componentsV2/FileIcon/icons/DocFileIcon.js";import"../../componentsV2/FileIcon/icons/EDMFileIcon.js";import"../../componentsV2/FileIcon/icons/ExcelFileIcon.js";import"../../componentsV2/FileIcon/icons/ImageFileIcon.js";import"../../componentsV2/FileIcon/icons/JsonFileIcon.js";import"../../componentsV2/FileIcon/icons/LasFileIcon.js";import"../../componentsV2/FileIcon/icons/OtherFileIcon.js";import"../../componentsV2/FileIcon/icons/PdfFileIcon.js";import"../../componentsV2/FileIcon/icons/PowerPointFileIcon.js";import"../../componentsV2/FileIcon/icons/TxtFileIcon.js";import"../../componentsV2/FileIcon/icons/UnknownFileIcon.js";import"../../componentsV2/FileIcon/icons/VideoFileIcon.js";import"../../componentsV2/FileIcon/icons/XmlFileIcon.js";import"../SearchInput/index.js";import"../FeedItem/FeedItem.js";import"../FeedItem/FeedItemEditProvider/FeedItemEditProvider.js";import"../PostInput/PostInput.js";import"../KeyboardDateTimePicker.js";import"../AddComment/Popover.js";import"../AddComment/Popup.js";import"../StageDesignVActual/ComparisonBar/ComparisonBar.js";import"../StageDesignVActual/ElementsComparison/ElementsComparison.js";import"../StageDesignVActual/ComparisonHeader.js";import"../StageDesignVActual/ComparisonRow.js";import"../EmbeddedApp/DevCenterEmbeddedApp.js";import"../EmbeddedApp/EmbeddedApp.js";import"../HelpCenter/HelpCenterIcon.js";import"../Autocomplete/Autocomplete.js";import"../DocumentViewer/DocumentViewer.js";import"../DevCenter/DevCenterAppContainer/components/AppActions/AppActions.css.js";import"../DevCenter/DevCenterAppContainer/components/AnnotationsButton/AnnotationsButton.js";import"../../componentsV2/Text/Text.js";import"../../componentsV2/Grid/Grid.js";import"../../componentsV2/Grid/Cell.js";import"../../componentsV2/Header/Header.scss.js";import{Button as re}from"../../componentsV2/Button/Button.js";import"../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as ie}from"../../componentsV2/Tooltip/Tooltip.js";import"../../componentsV2/Popover/Popover.js";import"../../componentsV2/Radio/Radio.js";import"../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../componentsV2/Checkbox/Checkbox.js";import"../../componentsV2/TextInput/TextInput.js";import"../../componentsV2/Label/Label.js";import"../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../componentsV2/TextLink/TextLink.js";import{LoaderCircular as pe}from"../../componentsV2/LoaderCircular/LoaderCircular.js";import"../../componentsV2/Chip/Chip.js";import"../../componentsV2/ChipAlert/ChipAlert.js";import"../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../componentsV2/Avatar/Avatar.js";import"../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../componentsV2/Paper/Paper.js";import"../../componentsV2/ModalWindow/ModalWindow.scss.js";import{Modal as ce}from"../../componentsV2/Modal/Modal.js";import"../../componentsV2/Menu/Menu.js";import"../../componentsV2/utils.js";import"../../componentsV2/Hint/Hint.scss.js";import"../../componentsV2/Counter/Counter.js";import"../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../componentsV2/Switch/Switch.js";import"../../componentsV2/Tabs/Tabs.js";import"../../componentsV2/EmptyState/EmptyState.scss.js";import"../../componentsV2/FileIcon/FileIcon.js";import"../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../componentsV2/FilesLoader/FilesLoader.scss.js";import"../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../componentsV2/Skeleton/Skeleton.scss.js";import"../../utils/main.js";import"../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../componentsV2/Stepper/Step/Step.scss.js";import"../../componentsV2/Stepper/Stepper.scss.js";import"../../componentsV2/ButtonLive/ButtonLive.js";import"../../componentsV2/ButtonText/ButtonText.js";import"../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../componentsV2/Accordion/Accordion.scss.js";import"../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../componentsV2/BadgeComment/BadgeComment.js";import"../../componentsV2/AppContainer/AppContainer.js";import"../../componentsV2/AppContainer/AppContainer.constants.js";import"../../componentsV2/AppFooter/AppFooter.js";import"../../componentsV2/AppHeader/AppHeader.constants.js";import"../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../componentsV2/AppHeader/AppAssets/utils.js";import"../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../types/shared/Completions.js";import"../PadModeSelect/types.js";import"lodash/flatten";import"lodash/partition";import"../../componentsV2/PadModeSelect/FracModeLabel/FracModeLabel.js";import"../../componentsV2/PadModeSelect/FracModeLabel/FracModeLabel.constants.js";import"../../componentsV2/PadModeSelect/WellStreamActivityStatus/WellStreamActivityStatus.scss.js";import"../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../componentsV2/PadModeSelect/PadModeSelect.scss.js";import"../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../utils/getSingleAsset.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../componentsV2/AppContainer/headerCommon.scss.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../componentsV2/AppHeader/V3/constants.scss.js";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../componentsV2/AppSettings/AppSettings.js";import"../../componentsV2/AppSettings/AppSettings.constants.js";import"../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../componentsV2/AppHeader/AppHeader.scss.js";import"../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../componentsV2/Autocomplete/Autocomplete.scss.js";import"../../componentsV2/Menu/MenuItem/MenuItem.js";import"../../componentsV2/Autocomplete/AutocompleteListBox.js";import"../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../componentsV2/DatePicker/DatePicker.js";import"../../componentsV2/DragHandle/DragHandle.js";import"../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js";import"../DevCenter/DevCenterAppContainer/components/AppInfoMessage/AppInfoMessage.js";import"../DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.js";import"../ColorPickerPalette/ColorPickerPalette.js";import"../Search/Search.js";import"../Search/components/Listbox.js";import"../Search/components/Paper.js";import"../Search/components/RecentSearches.js";import"../Search/components/Groups.js";import"../Search/components/SelectAllListItem.js";import"../StatusBadge/index.js";import"../Attachment/index.js";import"../EmojiIconButton.js";import"../FileUploadIconButton.js";import"../FilePreview/index.js";import"../FailedFileUploading.js";import"../UserMention/index.js";import"../CommentsInfo/index.js";import"../CommentInput/index.js";import"../Comment/index.js";import"../CommentLoader.js";import"../AssetNameLabel/AssetStatusBadge.js";import"../AssetEditorV2/components/PrimaryAssetSelect.js";import"../AssetEditorV2/components/SecondaryAssetSelect.js";import"../AssetEditorV2/components/SelectItem.js";import"../AssetEditorV2/components/MultipleAssetsToggle.js";import"../AssetEditorV2/components/PrimaryAssetSelectV2.js";import"../EChartsWrapper/EChartsWrapper.js";import"../AssetsMultipleSelector/AssetsMultipleSelector.js";import"@material-ui/icons/Close";import"@material-ui/icons/GetApp";import"../GoogleDocsViewer/index.js";import"../NewDocumentViewer/effects/useFileContent.js";import"../NewDocumentViewer/styles.js";import"../FilesLoaderV2/styles.js";import"../FilesDropzone/styles.js";import"../FilesProcessor/styles.js";import"../Hint/styles.js";import"@babel/runtime/helpers/taggedTemplateLiteral";import"fparser";import"../Formula/useFormulaStyles.js";import"../Formula/RootXIcon.js";import"../Formula/FormulaTextEditor.js";import"../Formula/CloseSuggestion.js";import"../Formula/SuggestionsMenu.js";import{showInfoNotification as me}from"../../utils/notificationToasts.js";function le(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,s)}return o}function ae(t){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?le(Object(s),!0).forEach((function(o){e(t,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):le(Object(s)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}))}return t}var de="OffsetWellPickerV5",ue=function(){var le,ue,je,fe=_((function(e){return e.open})),Ae=_((function(e){return e.isWDUser})),Ce=_((function(e){return e.defaultSubjectWell})),he=_((function(e){return e.currentUser})),ve=_((function(e){return e.offsetSettings})),Se=_((function(e){return e.isViewOnly})),ge=_((function(e){return e.onClose})),Ve=_((function(e){return e.onSave})),Ie=_((function(e){return e.maxOffsetSize})),be=_((function(e){return e.localMaxOffsetSize})),Pe=_((function(e){return e.syncAutoEnabled})),De=r(null),Te=s(De,2),ye=Te[0],xe=Te[1],We=Math.min(Ie+1,be+1,E+1),Fe=Math.min(Math.max(We,be+1),E+1),Oe=null==Ce?void 0:Ce.asset_id,Be=W(Oe),ke=s(Be,1)[0];ne(ve,Ve,Fe);var Me=J((function(e){return e.isFilterExpanded})),we=J((function(e){return e.isMapHidden})),Le=J((function(e){return e.isHScrollMoved})),Ee=J((function(e){return e.setIsHScrollMoved})),He=J((function(e){return e.isVScrollMoved})),Ne=J((function(e){return e.setIsVScrollMoved})),Ge=J((function(e){return e.isAdvancedSearchHidden})),Re=J((function(e){return e.setIsAdvancedSearchHidden})),qe=+(null==Ce?void 0:Ce.companyId)||+(null==he?void 0:he.company_id),ze=Oe>0,Ue=X((function(e){return e.filters})),Ke=X((function(e){return e.setFilters})),Ze=X((function(e){return e.resetFilters})),_e=null!==(le=X((function(e){return e.filters.radius})))&&void 0!==le?le:O,Xe=null!==(ue=X((function(e){return e.filters.selectionMode})))&&void 0!==ue?ue:"radius",Je=X((function(e){return e.filters.polygonCoords})),Qe=T({open:fe}),Ye=Qe.canViewCompanies,$e=Qe.companies,et=r([]),tt=s(et,2),ot=tt[0],st=tt[1],nt=r([]),rt=s(nt,2),it=rt[0],pt=rt[1],ct=i(new Set),mt=r([]),lt=s(mt,2),at=lt[0],dt=lt[1],ut=r(!1),jt=s(ut,2),ft=jt[0],At=jt[1],Ct=p((function(){return Ue[B.company]}),[Ue]);c((function(){var e=(null==ve?void 0:ve.selectedWellIds)||[];!fe||it.length>0||0===e.length||o(n.mark((function t(){var o;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,F(e);case 2:o=t.sent,pt(o);case 4:case"end":return t.stop()}}),t)})))()}),[fe,null==ve?void 0:ve.selectedWellIds,it.length]);var ht=p((function(){var e=ot.map((function(e){return e.companyId})).filter((function(e){return null!=e})),o=it||[];if(!Ye)return t(new Set((qe?[qe]:[]).concat(e,o)));if(void 0===Ct)return t(new Set((qe?[qe]:[]).concat(e,o)));if(Array.isArray(Ct)&&0===Ct.length)return null;var s=new Set(Ct);return qe&&s.add(qe),e.forEach((function(e){return s.add(e)})),o.forEach((function(e){return s.add(e)})),Array.from(s)}),[Ct,qe,Ye,ot,it]),vt=r((null==ve?void 0:ve.wellSection)||k),St=s(vt,2),gt=St[0],Vt=St[1],It=i(!0),bt=r(!0),Pt=s(bt,2),Dt=Pt[0],Tt=Pt[1],yt=Fe<=(null==ot?void 0:ot.length),xt=i(),Wt=r(!0),Ft=s(Wt,2),Ot=Ft[0],Bt=Ft[1];c((function(){if(fe&&yt&&me("App can’t process more than (".concat(Fe-1,") Offset Wells.")),!fe){var e,t,o=new Set(xt.current||[]);(null==ve||null===(e=ve.selectedWellIds)||void 0===e?void 0:e.length)===(null===(t=xt.current)||void 0===t?void 0:t.length)&&((null==ve?void 0:ve.selectedWellIds)||[]).every((function(e){return o.has(e)}))||(It.current=!0),xt.current=null==ve?void 0:ve.selectedWellIds}}),[yt,fe,ve,Fe]);var kt=h(ht,ke,_e,Xe,Je),Mt=s(kt,2),wt=Mt[0],Lt=Mt[1],Et=y(null==ve?void 0:ve.selectedWellIds),Ht=s(Et,2),Nt=Ht[0],Gt=Ht[1],Rt=x(),qt=s(Rt,3),zt=qt[0],Ut=qt[1],Kt=qt[2],Zt=p((function(){if(!wt)return null;var e=wt;if(null!=Nt&&Nt.length){var t=new Set(e.map((function(e){return e.id}))),o=Nt.filter((function(e){return!t.has(e.id)}));o.length>0&&(e=e.concat(o))}if(null!=zt&&zt.length){var s=new Set(e.map((function(e){return e.id}))),n=zt.filter((function(e){return!s.has(e.id)}));n.length>0&&(e=e.concat(n))}return ke&&!e.some((function(e){return e.id===ke.id}))&&(e=[ke].concat(e)),e}),[wt,ke,Nt,zt]),_t=D(qe),Xt=s(_t,1)[0],Jt=S(Oe,Zt),Qt=s(Jt,7),Yt=Qt[0],$t=Qt[1],eo=Qt[2],to=Qt[3],oo=Qt[4],so=Qt[5],no=Qt[6],ro=p((function(){return!!Yt&&Yt.some((function(e){return e.value!==k}))}),[Yt]);c((function(){Bt(!0),$t(null),to(null)}),[to,$t,Oe]);var io=g(qe,null==ve?void 0:ve.metricsKeys),po=s(io,2),co=po[0],mo=po[1],lo=v(qe,Zt,Yt,eo,Oe,co,fe),ao=s(lo,2),uo=ao[0],jo=ao[1],fo=p((function(){if(!uo||null==$e||!$e.length)return uo;var e={};return $e.forEach((function(t){e[t.id]=t.name})),uo.map((function(t){return ae(ae({},t),{},{companyName:e[t.companyId]||"Null"})}))}),[uo,$e]),Ao=p((function(){return ke?fo&&fo.find((function(e){return e.id===ke.id}))||ke:null}),[ke,fo]),Co=!(Lt||jo||Gt||Ut);c((function(){if(Co){var e,t=(e=o(n.mark((function e(){var t,o,s,r,i,p,c,m,l,a,d,u;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=void 0===(null==ve?void 0:ve.isSynced)||(null==ve?void 0:ve.isSynced),o=!0,!t){e.next=20;break}if(r=eo[k]||[],i=new Set(r),p=((null==ve?void 0:ve.selectedWellIds)||[]).every((function(e){return i.has(e)})),r.length===(null==ve||null===(s=ve.selectedWellIds)||void 0===s?void 0:s.length)&&p){e.next=17;break}return e.next=9,K(r,Oe);case 9:c=e.sent,m=c.slice(0,be+1).map((function(e){return e.id})),l=ae(ae({},ve),{},{subjectWellId:Oe,selectedWellIds:m,offsetWellsLimited:Fe<=m.length}),a=new Set(m),d=c.filter((function(e){return a.has(e.id)})),Ve(l,d),e.next=18;break;case 17:o=!1;case 18:e.next=21;break;case 20:o=!1;case 21:if(o){e.next=26;break}return e.next=24,K((null==ve?void 0:ve.selectedWellIds)||[],Oe);case 24:u=e.sent,Ve(ve,u);case 26:case"end":return e.stop()}}),e)}))),function(){return e.apply(this,arguments)});Pe&&Ot&&ve&&eo&&(t(),Bt(!1))}}),[ve,eo,Oe,Fe,Pe,Co,Ot,We,be,Ve]);var ho=V(fo,$e,Ye),vo=P(co,Ye,ro),So=I(fo,Ue,Je,_e),go=p((function(){return So?a(ot.concat(So),"id"):So}),[So,ot]);c((function(){if(So&&Co&&It.current){var e=new Set((null==ve?void 0:ve.selectedWellIds)||[]),t=fo.filter((function(t){return e.has(t.id)})),o=new Set(t.map((function(e){return e.id}))),s=ot.filter((function(t){return e.has(t.id)&&!o.has(t.id)}));t=t.concat(s),Ao&&(t=t.concat(Ao)),st(a(t,"id")),It.current=!1}}),[fo,So,null==ve?void 0:ve.selectedWellIds,Co,Ao,ot]),c((function(){if(null!=fo&&fo.length&&0!==ct.current.size){var e=ct.current,t=fo.filter((function(t){return e.has(t.id)}));if(t.length>0){var o=t.map((function(e){return e.id}));dt((function(e){return e.filter((function(e){return!o.includes(e)}))})),st((function(e){var o=t.slice(0,Math.max(0,Fe-e.length));return a(e.concat(o),"id")})),t.forEach((function(t){return e.delete(t.id)}))}}}),[fo,Fe]);var Vo,Io=b(Ao,go,ot,Tt),bo=s(Io,5),Po=bo[0],Do=bo[1],To=bo[2],yo=bo[3],xo=bo[4],Wo=m((Vo=o(n.mark((function e(t,o,s){var r,i,p,c,m,l,u,j;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s===U.well.name?r=o:(i=new Map,p=new Map,fo.forEach((function(e){i.set(e.id,e.rigName),p.has(e.rigName)||p.set(e.rigName,[]),p.get(e.rigName).push(e.id)})),r=o.flatMap((function(e){var t=i.get(e);return p.get(t)||[]}))),c=new Set(r),m=fo.filter((function(e){var t=e.id;return c.has(t)})),!(t&&m.length<r.length)){e.next=11;break}if(l=new Set(m.map((function(e){return e.id}))),!((u=r.filter((function(e){return!l.has(e)}))).length>0)){e.next=11;break}return dt((function(e){return e.concat(u)})),e.next=10,Kt(u);case 10:u.forEach((function(e){return ct.current.add(e)}));case 11:t?(j=m.slice(0,Math.min(m.length,Fe-ot.length))).length>0&&st((function(e){return a(e.concat(j),"id")})):st((function(e){return d(e.filter((function(e){var t=e.id;return!m.find((function(e){return e.id===t}))})))}));case 12:case"end":return e.stop()}}),e)}))),function(e,t,o){return Vo.apply(this,arguments)}),[fo,Fe,ot.length,Kt]),Fo=m((function(){Re(!0)}),[Re]),Oo=m((function(e){mo(e)}),[mo]),Bo=m((function(e,t){mo((function(o){return o.map((function(o){return o===e?t:o}))}))}),[mo]),ko=m((function(e,t){Do(e),yo(t)}),[Do,yo]),Mo=m((function(e,t){if(t){var o=(null==fo?void 0:fo.find((function(t){return t.id===e.id})))||e;st((function(e){return e.concat(o)}))}else st((function(t){return t.filter((function(t){return t.id!==e.id}))}))}),[fo]),wo=m((function(e){if(e){var t=Ao?So.concat(Ao):So,o=u(a(t,"id"),"distance");st(o.slice(0,Fe))}else st(Ao?[Ao]:[])}),[So,Ao,Fe]),Lo=m((function(e){st((function(t){var o=new Set(t.map((function(e){return e.id}))),s=e.filter((function(e){return!o.has(e.id)}));if(0===s.length)return t;var n=Fe-t.length,r=s.slice(0,n).map((function(e){return(null==fo?void 0:fo.find((function(t){return t.id===e.id})))||e}));return a(t.concat(r),"id")}))}),[fo,Fe]),Eo=m((function(e){if(eo){var t=new Set(eo[e]||[]),o=(null==fo?void 0:fo.filter((function(e){return t.has(e.id)})))||[],s=u(o,"distance");st(s.slice(0,We))}else st(Ao?[Ao]:[])}),[eo,We,Ao,fo]),Ho=m((function(e){Vt(e),Eo(e)}),[Eo]),No=p((function(){return ot.find((function(e){return e.id===Oe}))?ot.length-1:ot.length}),[ot,Oe]),Go=p((function(){if(!eo)return!1;var e=ot.map((function(e){return e.id})),t=eo[gt]||[];if(Math.min(t.length,We)!==e.length)return!1;var o=new Set(t);return e.every((function(e){return o.has(e)}))}),[eo,ot,gt,We]),Ro=p((function(){return!!Xt&&M.includes(Xt)}),[Xt]),qo=p((function(){return Ro?"IDAS generated offsets.":Ae?"Offset Selection App.":"WellHub."}),[Ro,Ae]),zo=m((function(){ge();var e=ot.map((function(e){return e.id})),t=ae(ae({},ve),{},{companyId:qe,subjectWellId:Oe,selectedWellIds:e,filters:Ue,metricsKeys:co,wellSection:gt,isSynced:Go,mapHidden:we,filterExpanded:Me,offsetWellsLimited:yt});Ve(t,ot)}),[ge,ot,ve,qe,Oe,Ue,co,gt,Go,we,Me,yt,Ve]);c((function(){ft&&0===ct.current.size&&(At(!1),zo())}),[ft,ot,zo]);var Uo=function(){var e=new Set((null==ve?void 0:ve.selectedWellIds)||[]),t=(fo||[]).filter((function(t){return e.has(t.id)}));if(null!=Nt&&Nt.length){var o=new Set(t.map((function(e){return e.id}))),s=Nt.filter((function(t){return e.has(t.id)&&!o.has(t.id)}));t=t.concat(s)}Ao&&(t=t.concat(Ao)),st(a(t,"id"));var n=ae(ae({},ve),{},{mapHidden:we,filterExpanded:Me});Ve(n),Ke(ae({},(null==ve?void 0:ve.filters)||{})),Vt((null==ve?void 0:ve.wellSection)||k),ge()},Ko=Dt||Lt,Zo=p((function(){return!!ze&&(!Ko&&(!Go||(!(j(Ue)||!Ue[B.sideTracks])||gt!==k)))}),[ze,Go,Ue,gt,Ko]),_o=m((function(){Ze(),Vt(k),Eo(k)}),[Ze,Eo]),Xo=!fo||!Yt||!xo,Jo=r(w),Qo=s(Jo,2),Yo=Qo[0],$o=Qo[1],es=r([]),ts=s(es,2),os=ts[0],ss=ts[1],ns=i();c((function(){if(xo){var e=xo.slice(0,Yo);ss(e)}}),[xo,Yo,Ao]),c((function(){if(ns.current){var e=ns.current.querySelector(".".concat(Y.wellNameFixed));e&&(Le?e.classList.remove(Y.noShadow):e.classList.add(Y.noShadow))}}),[Le,os]);var rs=p((function(){return a(os,"id")}),[os]),is=p((function(){var e=rs.filter((function(e){return e.checked}));return[e,rs.length!==e.length&&Boolean(e.length)&&!yt,e.length===rs.length||yt]}),[rs,yt]),ps=s(is,3),cs=ps[0],ms=ps[1],ls=ps[2],as=p((function(){return Z()}),[]);c((function(){oo===L.SUCCEEDED&&_o()}),[eo,_o,oo]);return $(ce,{open:fe,onClose:Uo,size:"fullscreen",className:Q.modalDialog,title:$(H,{totalCount:null!==(je=null==fo?void 0:fo.length)&&void 0!==je?je:0,selectedCount:No,maxOffsetWellNumber:Fe,isXtoProvider:Ro,resyncStatus:oo,setResyncStatus:so,metricsKeys:co,onChangeMetricsKeys:Oo}),actions:!Se&&ee("div",{className:Q.actionsWrapper,children:[!Xo&&Zo?$(ie,{placement:"bottom-start",title:"Reset to Synced Offsets in ".concat(Ae?"Offset App":"Wellhub"),children:$("div",{children:$(re,{"data-testid":"".concat(de,"_reset"),onClick:_o,color:"primary",startIcon:$(f,{}),children:"Reset to Defaults"})})}):ze&&ee("div",{children:[$("span",{className:l(oe.regular12,oe.colors.t6),children:"The offset list is being automatically populated by "}),$("span",{className:l(oe.medium12,oe.colors.t6),children:qo})]}),ee("div",{className:Q.buttonGap,children:[$(re,{"data-testid":"".concat(de,"_cancel"),onClick:Uo,color:"primary",children:"Cancel"}),ee(re,{"data-testid":"".concat(de,"_selectedWells"),variant:"contained",color:"primary",onClick:function(){ct.current.size>0?At(!0):zo()},disabled:ft,prefix:ft?$(pe,{size:16}):void 0,children:["Select (",No,")"]})]})]}),children:ee("div",{className:l(Q.offsetWellDialog),children:[$(te,{}),Xo?$(se,{}):ee("div",{className:l(Q.contentWrapper,e({},Q.contentBlocked,Ko)),children:[ee("div",{className:Q.columnsContainer,children:[!we&&fe&&$("div",{className:Q.leftColumn,children:$(G,{mapHidden:we,subjectWell:Ao,offsetWellIds:ot.map((function(e){return e.id})),wells:go,handleChangeOffsetWell:Mo,onBatchSelectWells:Lo,activeWellId:ye})}),ee("div",{className:Q.rightColumn,onScroll:function(e){e.target&&(Ge&&(e.target.scrollLeft=0,Re(!1)),e.target.scrollLeft<=5&&Le&&Ee(!1),e.target.scrollLeft>5&&!Le&&Ee(!0),e.target.scrollTop<=0&&He&&Ne(!1),e.target.scrollTop>0&&!He&&Ne(!0),e.target.scrollHeight!==e.target.offsetHeight&&Math.round(e.target.scrollTop+e.target.offsetHeight+2)>=e.target.scrollHeight&&Yo<xo.length&&$o((function(e){return e+w})))},children:[$(N,{isHidden:!Me,filterOptions:ho,wellSections:Yt,selectedWellSection:gt,subjectWell:Ao,assetCompanyId:qe,onChangeBicWells:Ho}),$("div",{className:Y.stickyTableWrapper,children:ee(A,{"aria-label":"ows table head",innerRef:ns,className:Y.stickyTable,children:[$(C,{children:$(q,{columnsWithDict:vo,metricsKeys:co,sortBy:Po,sortDirection:To,indeterminate:ms,isAllWellsSelected:ls,onChangeSort:ko,onUpdateMetricsKey:Bo,handleChangeAllOffsetWells:wo,wellNameStyle:Y.wellNameFixed,isImperial:as,isTaColumnVisible:!!no.length,isWellSectionColumnVisible:ro})}),Se&&$("div",{className:l(Q.topGradient,e({},Q.topGradientScrolled,He))})]})}),!Se&&ee("div",{className:l(Y.searchCellWrapper),children:[$("div",{className:Y.searchCell,children:$(z,{companyId:qe,subjectWellId:Oe,onChange:Wo,selectedWellIds:cs.map((function(e){return e.id})),onHideAdvancedSearch:Fo,loadingAssetIds:at})}),$("div",{className:l(Q.topGradient,e({},Q.topGradientScrolled,He))})]}),$(R,{isTableLoading:Ko,subjectWellId:Oe,columnsWithDict:vo,wells:os,metricsKeys:co,handleChangeOffsetWell:Mo,isLastWell:xo.length<=Yo,isLimitedOffsetWells:yt,maxOffsetWellNumber:Fe,wellSections:Yt,setActiveWellId:xe,taScores:no,isWellSectionColumnVisible:ro})]})]}),Se&&ze&&ee("div",{className:Q.viewOnlyInfoContainer,children:[$("span",{className:l(oe.regular12,oe.colors.t6),children:"The offset list is being automatically populated by "}),$("span",{className:l(oe.medium12,oe.colors.t6),children:qo})]})]})]})})};export{ue as OffsetWellPickerV5};
1
+ import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/toConsumableArray";import o from"@babel/runtime/helpers/asyncToGenerator";import s from"@babel/runtime/helpers/slicedToArray";import n from"@babel/runtime/regenerator";import{useState as r,useRef as i,useMemo as p,useEffect as c,useCallback as m}from"react";import l from"classnames";import{uniqBy as a,uniq as d,sortBy as u,isEmpty as j}from"lodash";import{Replay as f}from"@material-ui/icons";import{Table as C,TableHead as A}from"@material-ui/core";import{useFetchWells as h}from"./effects/useFetchWells.js";import{useAdvancedWells as v}from"./effects/useAdvancedWells.js";import{useBicWells as S}from"./effects/useBicWells.js";import{useCompanyMetricKey as g}from"./effects/useCompanyMetricKey.js";import{useFilterOptions as V}from"./effects/useFilterOptions.js";import{useFilteredWells as I}from"./effects/useFilteredWells.js";import{useSortedWells as b}from"./effects/useSortedWells.js";import"./effects/useAssetsData.js";import{useTableColumns as P}from"./effects/useTableColumns.js";import{useCompanyProvider as D}from"./effects/useCompanyProvider.js";import{useCompanies as T}from"./effects/useCompanies.js";import{usePinnedWells as x}from"./effects/usePinnedWells.js";import{useSearchedWells as y}from"./effects/useSearchedWells.js";import{useFetchSubjectWell as W}from"./effects/useFetchSubjectWell.js";import"uuid";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../clients/jsonApi/index.js";import"../../clients/subscriptions/constants.js";import"../../clients/subscriptions.v1.js";import"../../clients/subscriptions/subscriptions-client.factory.js";import"../../clients/api/apiCore.js";import"../../clients/constants.js";import"../../clients/sso/auth0.js";import"../../clients/sso/oauth2.js";import"./api/shared/dataFormatter.js";import{fetchCompanyIdsByWellIds as F}from"./api/wells/fetchCompanyIdsByWellIds.js";import{DEFAULT_RADIUS_MILES as B,FilterType as O,ALL_SECTION_KEY as k,COMPANY_PROVIDERS_FOR_IDAS as M,ROWS_PER_PAGE as w,RESYNC_STATUS as L,MAX_OFFSET_SIZE as E}from"./constants.js";import{AppHeader as H}from"./components/AppHeader/AppHeader.js";import{Filter as N}from"./components/Filter/Filter.js";import{WellsMap as G}from"./components/Map/WellsMap.js";import{OffsetWellsTable as R}from"./components/OffsetWellsTable/OffsetWellsTable.js";import{OffsetWellsTableHead as q}from"./components/OffsetWellsTable/OffsetWellsTableHead.js";import{AdvancedSearch as z}from"./components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.js";import{SEARCH_CATEGORIES as U}from"./components/OffsetWellsTable/AdvancedSearch/constants.js";import{getCoordinatedWells as K}from"./utils/index.js";import{getIsImperial as Z}from"./utils/getIsImperial.js";import{usePickerPropsStore as _}from"./stores/picker-props-store/usePickerPropsStore.js";import{useFilterStore as X}from"./stores/filter-store/useFilterStore.js";import{useViewStore as J}from"./stores/view-store/useViewStore.js";import Q from"./OffsetWellPickerV5.module.css.js";import Y from"./components/OffsetWellsTable/OffsetWellsTable.module.css.js";import"../../utils/index.js";import{jsx as $,jsxs as ee}from"react/jsx-runtime";import"@material-ui/core/Snackbar";import"../Notifications/Toast.js";import"../Notifications/Notifications.scss.js";import{NotificationsContainer as te}from"../Notifications/NotificationsContainer.js";import oe from"../../styles/typography/index.js";import"../../styles/counter/counter.module.scss.js";import"../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"@icon-park/react/es/all";import"../../icons/IconParkProvider.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/Lasso.js";import"../../utils/mobileDetect.js";import"../IconButton/index.js";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import"../Modal/CorvaModal.css.js";import"../IconMenu/index.js";import"../StyledMenuItem/index.js";import"../AppIcon/AppIcon.js";import"../DevCenter/AppHeader/AppHeader.js";import"../DevCenter/AppSideBar/AppSideBar.js";import"../DevCenter/AppsDataProvider/AppsDataProvider.js";import"../DevCenter/AppContext.js";import"../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"@babel/runtime/helpers/objectWithoutProperties";import"react-router";import"../DevCenter/DevCenterAppContainer/components/AppActions/AppActions.css.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/RemoveAppButton.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js";import"../DevCenter/DevCenterAppContainer/components/AnnotationsButton/AnnotationsButton.js";import"../../componentsV2/Text/Text.js";import"../../componentsV2/Grid/Grid.js";import"../../componentsV2/Grid/Cell.js";import"../../componentsV2/Header/Header.scss.js";import{Button as se}from"../../componentsV2/Button/Button.js";import"../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as ne}from"../../componentsV2/Tooltip/Tooltip.js";import"../../componentsV2/Popover/Popover.js";import"../../componentsV2/Radio/Radio.js";import"../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../componentsV2/Checkbox/Checkbox.js";import"../../componentsV2/TextInput/TextInput.js";import"../../componentsV2/Label/Label.js";import"../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../componentsV2/TextLink/TextLink.js";import{LoaderCircular as re}from"../../componentsV2/LoaderCircular/LoaderCircular.js";import"../../componentsV2/Chip/Chip.js";import"../../componentsV2/ChipAlert/ChipAlert.js";import"../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../componentsV2/Avatar/Avatar.js";import"../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../componentsV2/Paper/Paper.js";import"../../componentsV2/ModalWindow/ModalWindow.scss.js";import{Modal as ie}from"../../componentsV2/Modal/Modal.js";import"../../componentsV2/Menu/Menu.js";import"../../componentsV2/utils.js";import"../../componentsV2/Hint/Hint.scss.js";import"../../componentsV2/Counter/Counter.js";import"../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../componentsV2/Switch/Switch.js";import"../../componentsV2/Tabs/Tabs.js";import"../../componentsV2/EmptyState/EmptyState.scss.js";import"../../componentsV2/FileIcon/FileIcon.js";import"../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../componentsV2/FilesLoader/FilesLoader.scss.js";import"../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../componentsV2/Skeleton/Skeleton.scss.js";import"../../utils/main.js";import"../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../componentsV2/Stepper/Step/Step.scss.js";import"../../componentsV2/Stepper/Stepper.scss.js";import"../../componentsV2/ButtonLive/ButtonLive.js";import"../../componentsV2/ButtonText/ButtonText.js";import"../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../componentsV2/Accordion/Accordion.scss.js";import"../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../componentsV2/BadgeComment/BadgeComment.js";import"../../componentsV2/AppContainer/AppContainer.js";import"../../componentsV2/AppContainer/AppContainer.constants.js";import"../../componentsV2/AppFooter/AppFooter.js";import"../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../componentsV2/AppHeader/AppHeader.constants.js";import"../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../componentsV2/AppHeader/AppAssets/utils.js";import"../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../PadModeSelect/PadModeSelect.js";import"../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../constants/streamSourceType.js";import"../../types/shared/Completions.js";import"../PadModeSelect/types.js";import"lodash/flatten";import"lodash/partition";import"../../componentsV2/PadModeSelect/FracModeLabel/FracModeLabel.js";import"../../componentsV2/PadModeSelect/FracModeLabel/FracModeLabel.constants.js";import"../../componentsV2/PadModeSelect/WellStreamActivityStatus/WellStreamActivityStatus.scss.js";import"../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../componentsV2/PadModeSelect/PadModeSelect.scss.js";import"querystring";import"uuid/v1";import"jsona";import"../../utils/env.js";import"../StatusBadge/constants.js";import"lodash/isEmpty";import"lodash/sortBy";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{useGlobalOffsetWellsSync as pe}from"../../effects/useGlobalOffsetWellsSync.js";import"../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../utils/getSingleAsset.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../componentsV2/AppContainer/headerCommon.scss.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../componentsV2/AppSettings/AppSettings.js";import"../../componentsV2/AppSettings/AppSettings.constants.js";import"../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../componentsV2/AppHeader/AppHeader.scss.js";import"../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../componentsV2/Autocomplete/Autocomplete.scss.js";import"../../componentsV2/Menu/MenuItem/MenuItem.js";import"../../componentsV2/Autocomplete/AutocompleteListBox.js";import"../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../componentsV2/DatePicker/DatePicker.js";import"../../componentsV2/DragHandle/DragHandle.js";import"../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js";import"../DevCenter/DevCenterAppContainer/components/AppInfoMessage/AppInfoMessage.js";import"../DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.js";import"../DevCenter/DevCenterAppContainer/components/RestoreAppSizeButton/index.js";import"rollbar";import"@rollbar/react";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.scss.js";import"../DevCenter/DevCenterAppContainer/DevCenterAppContainer.css.js";import"../Icons/AnnotationIcon.js";import"../Annotations/components/AnnotationsList/index.js";import"../Annotations/components/LastAnnotation/index.js";import"../Annotations/AnnotationsContext.js";import"../Toaster/Toaster.js";import"../HelpCenter/HelpCenterIcon.js";import"../DevCenter/NavigationBar/NavigationBar.js";import"../DevCenter/SideBar/SideBar.js";import"../DevCenter/AppSettingsPopover/AppSettingsPopover.js";import"../DevCenter/AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js";import"../AssetEditor/index.js";import"../AssetEditorV2/index.js";import"../AppVersionsSelect/AppVersionsSelect.js";import ce from"../LoadingIndicator/LoadingIndicator.js";import"../Typography.js";import"../RealTimeValuesSidebar/RealTimeSidebar.js";import"../CollapsableSidebar.js";import"../DateTimePicker/index.js";import"../DatePicker/index.js";import"../ErrorBoundary/ErrorBoundary.js";import"../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import"../SlateFormattedText/SlateFormattedText.js";import"../SlateFormattedText/RenderElements.js";import"slate";import"../EmptyState/EmptyState.js";import"../ParameterCharts/ParameterCharts.js";import"../ParameterCharts/AddEditTrack.js";import"../ChartActionsList/ChartActionsList.js";import"../CopyToClipboard/CopyToClipboard.js";import"../AssetEditor/AssetEditorAutocomplete.js";import"../AssetEditor/SingleAssetEditor.js";import"react-color";import"../SettingEditors/ColorEditor/style.css.js";import"../SettingEditors/DropdownEditor/index.js";import"../SwitchControl/index.js";import"../ColorPicker/ColorPicker.js";import"../Chart/components/ChartButton.js";import"../Chart/components/ChartButtons.js";import"../Chart/components/ChartWrapper.js";import"../Chart/components/AxisDropdown.js";import"../Chart/components/ChartSelect.js";import"../Chart/components/buttons/DragToZoomButton.js";import"../Chart/components/buttons/ZoomInButton.js";import"../Chart/components/buttons/ZoomOutButton.js";import"../Chart/components/buttons/PanButton.js";import"../Chart/components/buttons/ResetZoomButton.js";import"../Chart/components/buttons/HideAxesButton.js";import"../Chart/components/buttons/ChartTypeButton.js";import"../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../TruncatedText/index.js";import"../MiddleTruncatedText/MiddleTruncatedText.js";import"../RangeSlider/constants.js";import"../RangeSlider/Input.css.js";import"../RangeSlider/RangeSlider.css.js";import"../AdvancedSlider/AdvancedSlider.js";import"../Breadcrumbs/index.js";import"../VirtualizedTable/index.js";import"../EmptyView/EmptyView.js";import"../EmptyView/EmptyAppView/EmptyAppView.js";import"../Button/components/Button/index.js";import"moment-timezone";import"../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../Button/components/LiveButton/styles.js";import"../ContextMenuItem/index.js";import"../FolderMenuItem/index.js";import"../EditableItem/EditableItem/index.js";import"../EditableItem/EditableItemWithBadge/index.js";import"../Checkbox/index.js";import"../FolderMenuItemWithLinks/index.js";import"../TextField/index.js";import"../Chip/index.js";import"../Counter/index.js";import"../AnchorsList/AnchorsList.js";import"../Select/index.js";import"../Select/SelectFilterBy.js";import"../CustomSelect/index.js";import"../Tabs/Tabs.js";import"../Tabs/Tab.js";import"../ResizableTable/ResizableTable.js";import"../GradientPicker/GradientPicker.js";import"../GradientManager/GradientList.js";import"@material-ui/icons/AddCircle";import"../GradientManager/GradientPreview/GradientPreview.js";import"../GradientManager/GradientSelect.styles.js";import"../GradientManager/GradientManager.styles.js";import"../Drillstring/BHASchematic.js";import"../Drillstring/BHATable/index.js";import"../Drillstring/BHAComponentIcon.js";import"../Drillstring/BHAComponentDetail/index.js";import"../Drillstring/BHATileIcon.js";import"../Drillstring/BHATile/BHATile.js";import"../Drillstring/BHAList/BHAList.js";import"../Drillstring/BHAComponentsTable/BHAComponentsTable.js";import"../Casing/CasingTable/index.js";import"../Casing/CasingComponentIcon.js";import"../Casing/CasingTileIcon.js";import"../Casing/CasingTableV2/CasingTableV2.js";import"../Casing/CasingTile/CasingTile.js";import"../DisabledSettingsMessage/DisabledSettingsMessage.js";import"../WellSummary/WellSummaryItemLabel.js";import"../WellSummary/WellSummaryItemTitle.js";import"../WellSummary/WellSummaryItemValue.js";import"../WellSummary/ActivitySummaryChart.js";import"../WellSummary/FracWirelineTimeChart.js";import"../BICOffsetPickerDialog/index.js";import"../OffsetWellButton/OffsetWellButton.js";import"../OffsetWellPickerV2/OffsetWellPickerDialog.js";import"../OffsetWellPickerV3/index.js";import"../OffsetWellChips/Chip.js";import"../OffsetWellChips/ChipsContainer.js";import"./OffsetWellPickerV5WithStore.js";import"../OffsetWellPickerV4/utils/apiCalls.js";import"../OffsetWellPickerV4/effects/useAdvancedWells.js";import"../OffsetWellPickerV4/constants.js";import"react-virtualized";import"../OffsetWellPickerV4/effects/useAssetsData.js";import"../../permissions/PermissionsContext.js";import"../../permissions/constants/index.js";import"../../permissions/withPermissionsHOC.js";import"../../permissions/ProvidePermissions.js";import"../OffsetWellPickerV4/components/AppHeader/AppHeader.js";import"../OffsetWellPickerV4/components/Toolbar/Toolbar.js";import"../OffsetWellPickerV4/components/Filter/Filter.js";import"../OffsetWellPickerV4/components/Map/WellsMap.js";import"../OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js";import"../OffsetWellPickerV4/components/OffsetWellsTable/AdvancedSearch/constants.js";import"../OffsetWellPickerV4/utils/index.js";import"../OffsetWellPickerV4/OffsetWellPickerV4.module.css.js";import"../OffsetWellMap/OffsetWellMap.js";import"../ConfirmationDialog.js";import"../TextLink/index.js";import"../Avatar/index.js";import"../Template/TemplatePopover/index.js";import"../Template/TemplateSharingDialog/index.js";import"../MenuItem/index.js";import"../MiddleTruncate/MiddleTruncate.js";import"../PinnableFilters/PinnableFilters.js";import"../HeaderLayout/HeaderLayout.js";import"../PadOffsetsPicker/PadOffsetsPicker.js";import"../PadOffsetsPicker/OffsetAssetChip.js";import"../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../PadOffsetsPicker/StagesSelector.js";import"../PadOffsetsPickerV2/PadOffsetsPickerV2.js";import"../Table/TableToolbar/TableToolbar.js";import"../Table/TableContainer/TableContainer.js";import"../Table/TableCell/TableCell.js";import"../Table/TablePagination/TablePagination.js";import"../Table/TablePaginationActions/TablePaginationActions.js";import"../Tooltip/ScrollableTooltip.js";import"../PriceInput/PriceInput.js";import"../LabelsCounter/LabelsCounter.js";import"../Stepper/Stepper.js";import"../Stepper/Step/Step.js";import"../Stepper/StepsWrapper.js";import"../Comment/CommentIcon/index.js";import"../FilesLoader/FilesLoader.js";import"../../componentsV2/FileIcon/icons/ArchiveFileIcon.js";import"../../componentsV2/FileIcon/icons/CSVFileIcon.js";import"../../componentsV2/FileIcon/icons/DocFileIcon.js";import"../../componentsV2/FileIcon/icons/EDMFileIcon.js";import"../../componentsV2/FileIcon/icons/ExcelFileIcon.js";import"../../componentsV2/FileIcon/icons/ImageFileIcon.js";import"../../componentsV2/FileIcon/icons/JsonFileIcon.js";import"../../componentsV2/FileIcon/icons/LasFileIcon.js";import"../../componentsV2/FileIcon/icons/OtherFileIcon.js";import"../../componentsV2/FileIcon/icons/PdfFileIcon.js";import"../../componentsV2/FileIcon/icons/PowerPointFileIcon.js";import"../../componentsV2/FileIcon/icons/TxtFileIcon.js";import"../../componentsV2/FileIcon/icons/UnknownFileIcon.js";import"../../componentsV2/FileIcon/icons/VideoFileIcon.js";import"../../componentsV2/FileIcon/icons/XmlFileIcon.js";import"../SearchInput/index.js";import"../FeedItem/FeedItem.js";import"../FeedItem/FeedItemEditProvider/FeedItemEditProvider.js";import"../PostInput/PostInput.js";import"../KeyboardDateTimePicker.js";import"../AddComment/Popover.js";import"../AddComment/Popup.js";import"../StageDesignVActual/ComparisonBar/ComparisonBar.js";import"../StageDesignVActual/ElementsComparison/ElementsComparison.js";import"../StageDesignVActual/ComparisonHeader.js";import"../StageDesignVActual/ComparisonRow.js";import"../EmbeddedApp/DevCenterEmbeddedApp.js";import"../EmbeddedApp/EmbeddedApp.js";import"../Autocomplete/Autocomplete.js";import"../DocumentViewer/DocumentViewer.js";import"../ColorPickerPalette/ColorPickerPalette.js";import"../Search/Search.js";import"../Search/components/Listbox.js";import"../Search/components/Paper.js";import"../Search/components/RecentSearches.js";import"../Search/components/Groups.js";import"../Search/components/SelectAllListItem.js";import"../StatusBadge/index.js";import"../Attachment/index.js";import"../EmojiIconButton.js";import"../FileUploadIconButton.js";import"../FilePreview/index.js";import"../FailedFileUploading.js";import"../UserMention/index.js";import"../CommentsInfo/index.js";import"../CommentInput/index.js";import"../Comment/index.js";import"../CommentLoader.js";import"../AssetNameLabel/AssetStatusBadge.js";import"../AssetEditorV2/components/PrimaryAssetSelect.js";import"../AssetEditorV2/components/SecondaryAssetSelect.js";import"../AssetEditorV2/components/SelectItem.js";import"../AssetEditorV2/components/MultipleAssetsToggle.js";import"../AssetEditorV2/components/PrimaryAssetSelectV2.js";import"../EChartsWrapper/EChartsWrapper.js";import"../AssetsMultipleSelector/AssetsMultipleSelector.js";import"@material-ui/icons/Close";import"@material-ui/icons/GetApp";import"../GoogleDocsViewer/index.js";import"../NewDocumentViewer/effects/useFileContent.js";import"../NewDocumentViewer/styles.js";import"../FilesLoaderV2/styles.js";import"../FilesDropzone/styles.js";import"../FilesProcessor/styles.js";import"../Hint/styles.js";import"@babel/runtime/helpers/taggedTemplateLiteral";import"fparser";import"../Formula/useFormulaStyles.js";import"../Formula/RootXIcon.js";import"../Formula/FormulaTextEditor.js";import"../Formula/CloseSuggestion.js";import"../Formula/SuggestionsMenu.js";import{showInfoNotification as me}from"../../utils/notificationToasts.js";function le(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,s)}return o}function ae(t){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?le(Object(s),!0).forEach((function(o){e(t,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):le(Object(s)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}))}return t}var de="OffsetWellPickerV5",ue=function(){var le,ue,je,fe=_((function(e){return e.open})),Ce=_((function(e){return e.isWDUser})),Ae=_((function(e){return e.defaultSubjectWell})),he=_((function(e){return e.currentUser})),ve=_((function(e){return e.offsetSettings})),Se=_((function(e){return e.isViewOnly})),ge=_((function(e){return e.onClose})),Ve=_((function(e){return e.onSave})),Ie=_((function(e){return e.maxOffsetSize})),be=_((function(e){return e.localMaxOffsetSize})),Pe=_((function(e){return e.syncAutoEnabled})),De=r(null),Te=s(De,2),xe=Te[0],ye=Te[1],We=Math.min(Ie+1,be+1,E+1),Fe=Math.min(Math.max(We,be+1),E+1),Be=null==Ae?void 0:Ae.asset_id,Oe=W(Be),ke=s(Oe,1)[0];pe(ve,Ve,Fe);var Me=J((function(e){return e.isFilterExpanded})),we=J((function(e){return e.isMapHidden})),Le=J((function(e){return e.isHScrollMoved})),Ee=J((function(e){return e.setIsHScrollMoved})),He=J((function(e){return e.isVScrollMoved})),Ne=J((function(e){return e.setIsVScrollMoved})),Ge=J((function(e){return e.isAdvancedSearchHidden})),Re=J((function(e){return e.setIsAdvancedSearchHidden})),qe=+(null==Ae?void 0:Ae.companyId)||+(null==he?void 0:he.company_id),ze=Be>0,Ue=X((function(e){return e.filters})),Ke=X((function(e){return e.setFilters})),Ze=X((function(e){return e.resetFilters})),_e=null!==(le=X((function(e){return e.filters.radius})))&&void 0!==le?le:B,Xe=null!==(ue=X((function(e){return e.filters.selectionMode})))&&void 0!==ue?ue:"radius",Je=X((function(e){return e.filters.polygonCoords})),Qe=T({open:fe}),Ye=Qe.canViewCompanies,$e=Qe.companies,et=r([]),tt=s(et,2),ot=tt[0],st=tt[1],nt=r([]),rt=s(nt,2),it=rt[0],pt=rt[1],ct=i(new Set),mt=r([]),lt=s(mt,2),at=lt[0],dt=lt[1],ut=r(!1),jt=s(ut,2),ft=jt[0],Ct=jt[1],At=p((function(){return Ue[O.company]}),[Ue]);c((function(){var e=(null==ve?void 0:ve.selectedWellIds)||[];!fe||it.length>0||0===e.length||o(n.mark((function t(){var o;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,F(e);case 2:o=t.sent,pt(o);case 4:case"end":return t.stop()}}),t)})))()}),[fe,null==ve?void 0:ve.selectedWellIds,it.length]);var ht=p((function(){var e=ot.map((function(e){return e.companyId})).filter((function(e){return null!=e})),o=it||[];if(!Ye)return t(new Set((qe?[qe]:[]).concat(e,o)));if(void 0===At)return t(new Set((qe?[qe]:[]).concat(e,o)));if(Array.isArray(At)&&0===At.length)return null;var s=new Set(At);return qe&&s.add(qe),e.forEach((function(e){return s.add(e)})),o.forEach((function(e){return s.add(e)})),Array.from(s)}),[At,qe,Ye,ot,it]),vt=r((null==ve?void 0:ve.wellSection)||k),St=s(vt,2),gt=St[0],Vt=St[1],It=i(!0),bt=r(!0),Pt=s(bt,2),Dt=Pt[0],Tt=Pt[1],xt=Fe<=(null==ot?void 0:ot.length),yt=i(),Wt=r(!0),Ft=s(Wt,2),Bt=Ft[0],Ot=Ft[1];c((function(){if(fe&&xt&&me("App can’t process more than (".concat(Fe-1,") Offset Wells.")),!fe){var e,t,o=new Set(yt.current||[]);(null==ve||null===(e=ve.selectedWellIds)||void 0===e?void 0:e.length)===(null===(t=yt.current)||void 0===t?void 0:t.length)&&((null==ve?void 0:ve.selectedWellIds)||[]).every((function(e){return o.has(e)}))||(It.current=!0),yt.current=null==ve?void 0:ve.selectedWellIds}}),[xt,fe,ve,Fe]);var kt=h(ht,ke,_e,Xe,Je),Mt=s(kt,2),wt=Mt[0],Lt=Mt[1],Et=x(null==ve?void 0:ve.selectedWellIds),Ht=s(Et,2),Nt=Ht[0],Gt=Ht[1],Rt=y(),qt=s(Rt,3),zt=qt[0],Ut=qt[1],Kt=qt[2],Zt=p((function(){if(!wt)return null;var e=wt;if(null!=Nt&&Nt.length){var t=new Set(e.map((function(e){return e.id}))),o=Nt.filter((function(e){return!t.has(e.id)}));o.length>0&&(e=e.concat(o))}if(null!=zt&&zt.length){var s=new Set(e.map((function(e){return e.id}))),n=zt.filter((function(e){return!s.has(e.id)}));n.length>0&&(e=e.concat(n))}return ke&&!e.some((function(e){return e.id===ke.id}))&&(e=[ke].concat(e)),e}),[wt,ke,Nt,zt]),_t=D(qe),Xt=s(_t,1)[0],Jt=S(Be,Zt),Qt=s(Jt,7),Yt=Qt[0],$t=Qt[1],eo=Qt[2],to=Qt[3],oo=Qt[4],so=Qt[5],no=Qt[6],ro=p((function(){return!!Yt&&Yt.some((function(e){return e.value!==k}))}),[Yt]);c((function(){Ot(!0),$t(null),to(null)}),[to,$t,Be]);var io=g(qe,null==ve?void 0:ve.metricsKeys),po=s(io,2),co=po[0],mo=po[1],lo=v(qe,Zt,Yt,eo,Be,co,fe),ao=s(lo,2),uo=ao[0],jo=ao[1],fo=p((function(){if(!uo||null==$e||!$e.length)return uo;var e={};return $e.forEach((function(t){e[t.id]=t.name})),uo.map((function(t){return ae(ae({},t),{},{companyName:e[t.companyId]||"Null"})}))}),[uo,$e]),Co=p((function(){return ke?fo&&fo.find((function(e){return e.id===ke.id}))||ke:null}),[ke,fo]),Ao=!(Lt||jo||Gt||Ut);c((function(){if(Ao){var e,t=(e=o(n.mark((function e(){var t,o,s,r,i,p,c,m,l,a,d,u;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=void 0===(null==ve?void 0:ve.isSynced)||(null==ve?void 0:ve.isSynced),o=!0,!t){e.next=20;break}if(r=eo[k]||[],i=new Set(r),p=((null==ve?void 0:ve.selectedWellIds)||[]).every((function(e){return i.has(e)})),r.length===(null==ve||null===(s=ve.selectedWellIds)||void 0===s?void 0:s.length)&&p){e.next=17;break}return e.next=9,K(r,Be);case 9:c=e.sent,m=c.slice(0,be+1).map((function(e){return e.id})),l=ae(ae({},ve),{},{subjectWellId:Be,selectedWellIds:m,offsetWellsLimited:Fe<=m.length}),a=new Set(m),d=c.filter((function(e){return a.has(e.id)})),Ve(l,d),e.next=18;break;case 17:o=!1;case 18:e.next=21;break;case 20:o=!1;case 21:if(o){e.next=26;break}return e.next=24,K((null==ve?void 0:ve.selectedWellIds)||[],Be);case 24:u=e.sent,Ve(ve,u);case 26:case"end":return e.stop()}}),e)}))),function(){return e.apply(this,arguments)});Pe&&Bt&&ve&&eo&&(t(),Ot(!1))}}),[ve,eo,Be,Fe,Pe,Ao,Bt,We,be,Ve]);var ho=V(fo,$e,Ye),vo=P(co,Ye,ro),So=I(fo,Ue,Je,_e),go=p((function(){return So?a(ot.concat(So),"id"):So}),[So,ot]);c((function(){if(So&&Ao&&It.current){var e=new Set((null==ve?void 0:ve.selectedWellIds)||[]),t=fo.filter((function(t){return e.has(t.id)})),o=new Set(t.map((function(e){return e.id}))),s=ot.filter((function(t){return e.has(t.id)&&!o.has(t.id)}));t=t.concat(s),Co&&(t=t.concat(Co)),st(a(t,"id")),It.current=!1}}),[fo,So,null==ve?void 0:ve.selectedWellIds,Ao,Co,ot]),c((function(){if(null!=fo&&fo.length&&0!==ct.current.size){var e=ct.current,t=fo.filter((function(t){return e.has(t.id)}));if(t.length>0){var o=t.map((function(e){return e.id}));dt((function(e){return e.filter((function(e){return!o.includes(e)}))})),st((function(e){var o=t.slice(0,Math.max(0,Fe-e.length));return a(e.concat(o),"id")})),t.forEach((function(t){return e.delete(t.id)}))}}}),[fo,Fe]);var Vo,Io=b(Co,go,ot,Tt),bo=s(Io,5),Po=bo[0],Do=bo[1],To=bo[2],xo=bo[3],yo=bo[4],Wo=m((Vo=o(n.mark((function e(t,o,s){var r,i,p,c,m,l,u,j;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s===U.well.name?r=o:(i=new Map,p=new Map,fo.forEach((function(e){i.set(e.id,e.rigName),p.has(e.rigName)||p.set(e.rigName,[]),p.get(e.rigName).push(e.id)})),r=o.flatMap((function(e){var t=i.get(e);return p.get(t)||[]}))),c=new Set(r),m=fo.filter((function(e){var t=e.id;return c.has(t)})),!(t&&m.length<r.length)){e.next=11;break}if(l=new Set(m.map((function(e){return e.id}))),!((u=r.filter((function(e){return!l.has(e)}))).length>0)){e.next=11;break}return dt((function(e){return e.concat(u)})),e.next=10,Kt(u);case 10:u.forEach((function(e){return ct.current.add(e)}));case 11:t?(j=m.slice(0,Math.min(m.length,Fe-ot.length))).length>0&&st((function(e){return a(e.concat(j),"id")})):st((function(e){return d(e.filter((function(e){var t=e.id;return!m.find((function(e){return e.id===t}))})))}));case 12:case"end":return e.stop()}}),e)}))),function(e,t,o){return Vo.apply(this,arguments)}),[fo,Fe,ot.length,Kt]),Fo=m((function(){Re(!0)}),[Re]),Bo=m((function(e){mo(e)}),[mo]),Oo=m((function(e,t){mo((function(o){return o.map((function(o){return o===e?t:o}))}))}),[mo]),ko=m((function(e,t){Do(e),xo(t)}),[Do,xo]),Mo=m((function(e,t){if(t){var o=(null==fo?void 0:fo.find((function(t){return t.id===e.id})))||e;st((function(e){return e.concat(o)}))}else st((function(t){return t.filter((function(t){return t.id!==e.id}))}))}),[fo]),wo=m((function(e){if(e){var t=Co?So.concat(Co):So,o=u(a(t,"id"),"distance");st(o.slice(0,Fe))}else st(Co?[Co]:[])}),[So,Co,Fe]),Lo=m((function(e){st((function(t){var o=new Set(t.map((function(e){return e.id}))),s=e.filter((function(e){return!o.has(e.id)}));if(0===s.length)return t;var n=Fe-t.length,r=s.slice(0,n).map((function(e){return(null==fo?void 0:fo.find((function(t){return t.id===e.id})))||e}));return a(t.concat(r),"id")}))}),[fo,Fe]),Eo=m((function(e){if(eo){var t=new Set(eo[e]||[]),o=(null==fo?void 0:fo.filter((function(e){return t.has(e.id)})))||[],s=u(o,"distance");st(s.slice(0,We))}else st(Co?[Co]:[])}),[eo,We,Co,fo]),Ho=m((function(e){Vt(e),Eo(e)}),[Eo]),No=p((function(){return ot.find((function(e){return e.id===Be}))?ot.length-1:ot.length}),[ot,Be]),Go=p((function(){if(!eo)return!1;var e=ot.map((function(e){return e.id})),t=eo[gt]||[];if(Math.min(t.length,We)!==e.length)return!1;var o=new Set(t);return e.every((function(e){return o.has(e)}))}),[eo,ot,gt,We]),Ro=p((function(){return!!Xt&&M.includes(Xt)}),[Xt]),qo=p((function(){return Ro?"IDAS generated offsets.":Ce?"Offset Selection App.":"WellHub."}),[Ro,Ce]),zo=m((function(){ge();var e=ot.map((function(e){return e.id})),t=ae(ae({},ve),{},{companyId:qe,subjectWellId:Be,selectedWellIds:e,filters:Ue,metricsKeys:co,wellSection:gt,isSynced:Go,mapHidden:we,filterExpanded:Me,offsetWellsLimited:xt});Ve(t,ot)}),[ge,ot,ve,qe,Be,Ue,co,gt,Go,we,Me,xt,Ve]);c((function(){ft&&0===ct.current.size&&(Ct(!1),zo())}),[ft,ot,zo]);var Uo=function(){var e=new Set((null==ve?void 0:ve.selectedWellIds)||[]),t=(fo||[]).filter((function(t){return e.has(t.id)}));if(null!=Nt&&Nt.length){var o=new Set(t.map((function(e){return e.id}))),s=Nt.filter((function(t){return e.has(t.id)&&!o.has(t.id)}));t=t.concat(s)}Co&&(t=t.concat(Co)),st(a(t,"id"));var n=ae(ae({},ve),{},{mapHidden:we,filterExpanded:Me});Ve(n),Ke(ae({},(null==ve?void 0:ve.filters)||{})),Vt((null==ve?void 0:ve.wellSection)||k),ge()},Ko=Dt||Lt,Zo=p((function(){return!!ze&&(!Ko&&(!Go||(!(j(Ue)||!Ue[O.sideTracks])||gt!==k)))}),[ze,Go,Ue,gt,Ko]),_o=m((function(){Ze(),Vt(k),Eo(k)}),[Ze,Eo]),Xo=!fo||!Yt||!yo,Jo=r(w),Qo=s(Jo,2),Yo=Qo[0],$o=Qo[1],es=r([]),ts=s(es,2),os=ts[0],ss=ts[1],ns=i();c((function(){if(yo){var e=yo.slice(0,Yo);ss(e)}}),[yo,Yo,Co]),c((function(){if(ns.current){var e=ns.current.querySelector(".".concat(Y.wellNameFixed));e&&(Le?e.classList.remove(Y.noShadow):e.classList.add(Y.noShadow))}}),[Le,os]);var rs=p((function(){return a(os,"id")}),[os]),is=p((function(){var e=rs.filter((function(e){return e.checked}));return[e,rs.length!==e.length&&Boolean(e.length)&&!xt,e.length===rs.length||xt]}),[rs,xt]),ps=s(is,3),cs=ps[0],ms=ps[1],ls=ps[2],as=p((function(){return Z()}),[]);c((function(){oo===L.SUCCEEDED&&_o()}),[eo,_o,oo]);return $(ie,{open:fe,onClose:Uo,size:"fullscreen",className:Q.modalDialog,title:$(H,{totalCount:null!==(je=null==fo?void 0:fo.length)&&void 0!==je?je:0,selectedCount:No,maxOffsetWellNumber:Fe,isXtoProvider:Ro,resyncStatus:oo,setResyncStatus:so,metricsKeys:co,onChangeMetricsKeys:Bo}),actions:!Se&&ee("div",{className:Q.actionsWrapper,children:[!Xo&&Zo?$(ne,{placement:"bottom-start",title:"Reset to Synced Offsets in ".concat(Ce?"Offset App":"Wellhub"),children:$("div",{children:$(se,{"data-testid":"".concat(de,"_reset"),onClick:_o,color:"primary",startIcon:$(f,{}),children:"Reset to Defaults"})})}):ze&&ee("div",{children:[$("span",{className:l(oe.regular12,oe.colors.t6),children:"The offset list is being automatically populated by "}),$("span",{className:l(oe.medium12,oe.colors.t6),children:qo})]}),ee("div",{className:Q.buttonGap,children:[$(se,{"data-testid":"".concat(de,"_cancel"),onClick:Uo,color:"primary",children:"Cancel"}),ee(se,{"data-testid":"".concat(de,"_selectedWells"),variant:"contained",color:"primary",onClick:function(){ct.current.size>0?Ct(!0):zo()},disabled:ft,prefix:ft?$(re,{size:16}):void 0,children:["Select (",No,")"]})]})]}),children:ee("div",{className:l(Q.offsetWellDialog),children:[$(te,{}),Xo?$(ce,{}):ee("div",{className:l(Q.contentWrapper,e({},Q.contentBlocked,Ko)),children:[ee("div",{className:Q.columnsContainer,children:[!we&&fe&&$("div",{className:Q.leftColumn,children:$(G,{mapHidden:we,subjectWell:Co,offsetWellIds:ot.map((function(e){return e.id})),wells:go,handleChangeOffsetWell:Mo,onBatchSelectWells:Lo,activeWellId:xe})}),ee("div",{className:Q.rightColumn,onScroll:function(e){e.target&&(Ge&&(e.target.scrollLeft=0,Re(!1)),e.target.scrollLeft<=5&&Le&&Ee(!1),e.target.scrollLeft>5&&!Le&&Ee(!0),e.target.scrollTop<=0&&He&&Ne(!1),e.target.scrollTop>0&&!He&&Ne(!0),e.target.scrollHeight!==e.target.offsetHeight&&Math.round(e.target.scrollTop+e.target.offsetHeight+2)>=e.target.scrollHeight&&Yo<yo.length&&$o((function(e){return e+w})))},children:[$(N,{isHidden:!Me,filterOptions:ho,wellSections:Yt,selectedWellSection:gt,subjectWell:Co,assetCompanyId:qe,onChangeBicWells:Ho}),$("div",{className:Y.stickyTableWrapper,children:ee(C,{"aria-label":"ows table head",innerRef:ns,className:Y.stickyTable,children:[$(A,{children:$(q,{columnsWithDict:vo,metricsKeys:co,sortBy:Po,sortDirection:To,indeterminate:ms,isAllWellsSelected:ls,onChangeSort:ko,onUpdateMetricsKey:Oo,handleChangeAllOffsetWells:wo,wellNameStyle:Y.wellNameFixed,isImperial:as,isTaColumnVisible:!!no.length,isWellSectionColumnVisible:ro})}),Se&&$("div",{className:l(Q.topGradient,e({},Q.topGradientScrolled,He))})]})}),!Se&&ee("div",{className:l(Y.searchCellWrapper),children:[$("div",{className:Y.searchCell,children:$(z,{companyId:qe,subjectWellId:Be,onChange:Wo,selectedWellIds:cs.map((function(e){return e.id})),onHideAdvancedSearch:Fo,loadingAssetIds:at})}),$("div",{className:l(Q.topGradient,e({},Q.topGradientScrolled,He))})]}),$(R,{isTableLoading:Ko,subjectWellId:Be,columnsWithDict:vo,wells:os,metricsKeys:co,handleChangeOffsetWell:Mo,isLastWell:yo.length<=Yo,isLimitedOffsetWells:xt,maxOffsetWellNumber:Fe,wellSections:Yt,setActiveWellId:ye,taScores:no,isWellSectionColumnVisible:ro})]})]}),Se&&ze&&ee("div",{className:Q.viewOnlyInfoContainer,children:[$("span",{className:l(oe.regular12,oe.colors.t6),children:"The offset list is being automatically populated by "}),$("span",{className:l(oe.medium12,oe.colors.t6),children:qo})]})]})]})})};export{ue as OffsetWellPickerV5};
2
2
  //# sourceMappingURL=OffsetWellPickerV5.js.map
@@ -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 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":"26yBAsDA,IAAMA,GAAY,qBAELC,GAAqB,WAAM,IAAAC,GAAAC,GAAAC,GAChCC,GAAOC,GAAoB,SAAAC,GAAK,OAAIA,EAAMF,QAC1CG,GAAWF,GAAoB,SAAAC,GAAK,OAAIA,EAAMC,YAC9CC,GAAqBH,GAAoB,SAAAC,GAAK,OAAIA,EAAME,sBACxDC,GAAcJ,GAAoB,SAAAC,GAAK,OAAIA,EAAMG,eACjDC,GAAiBL,GAAoB,SAAAC,GAAK,OAAIA,EAAMI,kBACpDC,GAAaN,GAAoB,SAAAC,GAAK,OAAIA,EAAMK,cAChDC,GAAUP,GAAoB,SAAAC,GAAK,OAAIA,EAAMM,WAC7CC,GAASR,GAAoB,SAAAC,GAAK,OAAIA,EAAMO,UAC5CC,GAAaT,GAAoB,SAAAC,GAAK,OAAIA,EAAMS,iBAChDC,GAAqBX,GAAoB,SAAAC,GAAK,OAAIA,EAAMU,sBACxDC,GAAkBZ,GAAoB,SAAAC,GAAK,OAAIA,EAAMW,mBAEnBC,GAAAA,EAAS,MAAKC,GAAAC,EAAAC,GAAA,GAA/CC,GAAYH,GAAA,GAAEI,GAAeJ,GAAA,GAC9BJ,GAAgBS,KAAKC,IAAIX,GAAa,EAAGE,GAAqB,EAAGU,EAAkB,GACnFC,GAAsBH,KAAKC,IAC/BD,KAAKI,IAAIb,GAAeC,GAAqB,GAC7CU,EAAkB,GAGdG,GAAgBrB,cAAAA,EAAAA,GAAoBsB,SAGbC,GAAAA,EAAoBF,IAA1CG,GAAwDZ,EAAAa,GAAA,GAAtC,GAEzBC,GAAyBxB,GAAgBG,GAAQc,IAEjD,IAAMQ,GAAmBC,GAAa,SAAA9B,GAAK,OAAIA,EAAM6B,oBAC/CE,GAAcD,GAAa,SAAA9B,GAAK,OAAIA,EAAM+B,eAC1CC,GAAiBF,GAAa,SAAA9B,GAAK,OAAIA,EAAMgC,kBAC7CC,GAAoBH,GAAa,SAAA9B,GAAK,OAAIA,EAAMiC,qBAChDC,GAAiBJ,GAAa,SAAA9B,GAAK,OAAIA,EAAMkC,kBAC7CC,GAAoBL,GAAa,SAAA9B,GAAK,OAAIA,EAAMmC,qBAChDC,GAAyBN,GAAa,SAAA9B,GAAK,OAAIA,EAAMoC,0BACrDC,GAA4BP,GAAa,SAAA9B,GAAK,OAAIA,EAAMqC,6BAExDC,KAAkBpC,gBAAAA,GAAoBqC,cAAcpC,cAAAA,EAAAA,GAAaqC,YACjEC,GAAkBlB,GAAgB,EAClCmB,GAAUC,GAAe,SAAA3C,GAAK,OAAIA,EAAM0C,WACxCE,GAAaD,GAAe,SAAA3C,GAAK,OAAIA,EAAM4C,cAC3CC,GAAeF,GAAe,SAAA3C,GAAK,OAAIA,EAAM6C,gBAC7CC,WAAYnD,GAAGgD,GAAe,SAAA3C,GAAK,OAAIA,EAAM0C,QAAQK,MAAM,qBAAKC,EAChEC,WAAarD,GAAG+C,GAAe,SAAA3C,GAAK,OAAIA,EAAM0C,QAAQO,aAAa,qBAAK,SACxEC,GAAgBP,GAAe,SAAA3C,GAAK,OAAIA,EAAM0C,QAAQQ,iBAC5DC,GAAwCC,EAAa,CAAEtD,KAAAA,KAA/CuD,MAAAA,iBAAkBC,MAAAA,UACgB1C,GAAAA,EAAS,IAAG2C,GAAAzC,EAAA0C,GAAA,GAA/CC,GAAaF,GAAA,GAAEG,GAAgBH,GAAA,GACoB3C,GAAAA,EAAS,IAAG+C,GAAA7C,EAAA8C,GAAA,GAA/DC,GAAqBF,GAAA,GAAEG,GAAwBH,GAAA,GAGhDI,GAA4BC,EAAO,IAAIC,KAGCrD,GAAAA,EAAS,IAAGsD,GAAApD,EAAAqD,GAAA,GAAnDC,GAAeF,GAAA,GAAEG,GAAkBH,GAAA,GAGAtD,GAAAA,GAAS,GAAM0D,GAAAxD,EAAAyD,GAAA,GAAlDC,GAAaF,GAAA,GAAEG,GAAgBH,GAAA,GAEhCI,GAAgBC,GAAQ,WAAA,OAAMjC,GAAQkC,EAAWC,WAAU,CAACnC,KAGlEoC,GAAU,WACR,IAAMC,GAAc3E,cAAc,EAAdA,GAAgB4E,kBAAmB,IAClDlF,IAAQ+D,GAAsBoB,OAAS,GAA4B,IAAvBF,EAAYE,QAC7DC,EAACC,EAAAC,MAAA,SAAAC,IAAA,IAAAC,EAAA,OAAAH,EAAAI,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EACmBC,EAAyBZ,GAAY,KAAA,EAAjDO,EAAGE,EAAAI,KACT9B,GAAyBwB,GAAK,KAAA,EAAA,IAAA,MAAA,OAAAE,EAAAK,OAAA,GAAAR,EAC/B,IAHDH,EAID,GAAE,CAACpF,GAAMM,cAAc,EAAdA,GAAgB4E,gBAAiBnB,GAAsBoB,SAGjE,IAAMa,GAAoBnB,GAAQ,WAEhC,IAAMoB,EAAyBtC,GAC5BuC,KAAI,SAAAC,GAAI,OAAIA,EAAK1D,SAAS,IAC1B2D,QAAO,SAAAC,GAAE,OAAU,MAANA,KACVC,EAAsBvC,IAAyB,GAGrD,IAAKR,GAGH,OAAWgD,EAAA,IAAIpC,KAFC3B,GAAiB,CAACA,IAAkB,IAEzBgE,OAAOP,EAAwBK,KAI5D,QAAsBG,IAAlB7B,GAGF,OAAW2B,EAAA,IAAIpC,KAFC3B,GAAiB,CAACA,IAAkB,IAEzBgE,OAAOP,EAAwBK,KAG5D,GAAII,MAAMC,QAAQ/B,KAA2C,IAAzBA,GAAcO,OAChD,OAAO,KAGT,IAAMyB,EAAY,IAAIzC,IAAIS,IAM1B,OALIpC,IACFoE,EAAUC,IAAIrE,IAEhByD,EAAuBa,SAAQ,SAAAT,GAAE,OAAIO,EAAUC,IAAIR,MACnDC,EAAoBQ,SAAQ,SAAAT,GAAE,OAAIO,EAAUC,IAAIR,MACzCK,MAAMK,KAAKH,EACpB,GAAG,CAAChC,GAAepC,GAAgBe,GAAkBI,GAAeI,KACpEiD,GAAsDlG,GACpDR,cAAAA,EAAAA,GAAgB2G,cAAeC,GAChCC,GAAAnG,EAAAgG,GAAA,GAFMI,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAG5CG,GAAcpD,GAAO,GACiBpD,GAAAA,GAAS,GAAKyG,GAAAvG,EAAAwG,GAAA,GAAnDC,GAAcF,GAAA,GAAEG,GAAiBH,GAAA,GAElCI,GAAuBpG,KAAuBoC,cAAa,EAAbA,GAAewB,QAG7DyC,GAAsB1D,IACQpD,GAAAA,GAAS,GAAK+G,GAAA7G,EAAA8G,GAAA,GAA3CC,GAAUF,GAAA,GAAEG,GAAaH,GAAA,GAEhC7C,GAAU,WAOR,GANIhF,IAAQ2H,IACVM,GACkC1G,gCAAAA,OAAAA,GAAsB,EACvD,qBAGEvB,GAAM,CAAA,IAAAkI,EAAAC,EACHC,EAAa,IAAIjE,IAAIyD,GAAoBS,SAAW,KAExD/H,kBAAAA,EAAAA,GAAgB4E,kCAAhB5E,EAAA4H,EAAiC/C,WAAsC,QAA3ByC,EAAAA,GAAoBS,eAAO,IAAAF,OAAA,EAA3BA,EAA6BhD,WACxE7E,cAAAA,EAAAA,GAAgB4E,kBAAmB,IAAIoD,OAAM,SAAAjC,GAAE,OAAI+B,EAAWG,IAAIlC,QAEnEiB,GAAYe,SAAU,GAExBT,GAAoBS,QAAU/H,cAAc,EAAdA,GAAgB4E,eAChD,CAED,GAAE,CAACyC,GAAsB3H,GAAMM,GAAgBiB,KAGhD,IAAuCiH,GAAAA,EACrCxC,GACApE,GACAoB,GACAG,GACAC,IACDqF,GAAAzH,EAAA0H,GAAA,GANMC,GAAQF,GAAA,GAAEG,GAAkBH,GAAA,GASUI,GAAAA,EAAevI,cAAAA,EAAAA,GAAgB4E,iBAAgB4D,GAAA9H,EAAA+H,GAAA,GAArFC,GAAWF,GAAA,GAAEG,GAAqBH,GAAA,GAGzCI,GAAqEC,IAAkBC,GAAApI,EAAAkI,GAAA,GAAhFG,GAAaD,GAAA,GAAEE,GAAuBF,GAAA,GAAEG,GAAkBH,GAAA,GAG3DI,GAAsB3E,GAAQ,WAClC,IAAK8D,GACH,OAAO,KAGT,IAAIc,EAASd,GAEb,GAAIK,UAAAA,GAAa7D,OAAQ,CACvB,IAAMuE,EAAc,IAAIvF,IAAIsF,EAAOvD,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,EAAE,KAC1CuD,EAAgBZ,GAAY5C,QAAO,SAAAuD,GAAC,OAAKD,EAAYnB,IAAIoB,EAAEtD,OAE7DuD,EAAczE,OAAS,IACzBsE,EAASA,EAAOjD,OAAOoD,GAE3B,CAGA,GAAIP,UAAAA,GAAelE,OAAQ,CACzB,IAAMuE,EAAc,IAAIvF,IAAIsF,EAAOvD,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,EAAE,KAC1CwD,EAAkBR,GAAcjD,QAAO,SAAAuD,GAAC,OAAKD,EAAYnB,IAAIoB,EAAEtD,OAEjEwD,EAAgB1E,OAAS,IAC3BsE,EAASA,EAAOjD,OAAOqD,GAE3B,CAMA,OAJIjI,KAAuB6H,EAAOK,MAAK,SAAAH,GAAC,OAAIA,EAAEtD,KAAOzE,GAAmByE,EAAE,MACxEoD,EAAS,CAAC7H,IAAoB4E,OAAOiD,IAGhCA,CACR,GAAE,CAACd,GAAU/G,GAAoBoH,GAAaK,KAErBU,GAAAA,EAAmBvH,IAAtCwH,GAAqDhJ,EAAAiJ,GAAA,GAAtC,GAEtBC,GAQIC,EAAY1I,GAAe+H,IAAoBY,GAAApJ,EAAAkJ,GAAA,GAPjDG,GAAYD,GAAA,GACZE,GAAeF,GAAA,GACfG,GAAQH,GAAA,GACRI,GAAWJ,GAAA,GACXK,GAAYL,GAAA,GACZM,GAAeN,GAAA,GACfO,GAAQP,GAAA,GAGJQ,GAA6B/F,GAAQ,WACzC,QAAKwF,IAIEA,GAAaP,MAAK,SAAAe,GAAO,OAAIA,EAAQC,QAAU5D,IACxD,GAAG,CAACmD,KAEJrF,GAAU,WACRgD,IAAc,GACdsC,GAAgB,MAChBE,GAAY,KAEb,GAAE,CAACA,GAAaF,GAAiB7I,KAElC,IAAsCsJ,GAAAA,EACpCvI,GACAlC,cAAAA,EAAAA,GAAgB0K,aACjBC,GAAAjK,EAAAkK,GAAA,GAHMF,GAAWC,GAAA,GAAEE,GAAcF,GAAA,GAMlCG,GAA2DC,EACzD7I,GACAgH,GACAa,GACAE,GACA9I,GACAuJ,GACAhL,IACDsL,GAAAtK,EAAAoK,GAAA,GARMG,GAAuBD,GAAA,GAAEE,GAAuBF,GAAA,GAWjDG,GAAQ5G,GAAQ,WACpB,IAAK0G,IAA4B/H,WAAAA,GAAW2B,OAAQ,OAAOoG,GAE3D,IAAMG,EAAa,CAAA,EAKnB,OAJAlI,GAAUsD,SAAQ,SAAA/B,GAChB2G,EAAW3G,EAAQsB,IAAMtB,EAAQ4G,IACnC,IAEOJ,GAAwBrF,KAAI,SAAAC,GAAI,OAAAyF,GAAAA,GAAA,CAAA,EAClCzF,GAAI,CAAA,EAAA,CACP0F,YAAaH,EAAWvF,EAAK1D,YAAc,QAAM,GAErD,GAAG,CAAC8I,GAAyB/H,KAGvBsI,GAAcjH,GAAQ,WAC1B,OAAKjD,GAIA6J,IAIuBA,GAAMM,MAAK,SAAApC,GAAC,OAAIA,EAAEtD,KAAOzE,GAAmByE,OAH/DzE,GAJA,IAUX,GAAG,CAACA,GAAoB6J,KAElBO,KACHpD,IACA4C,IACAvC,IACAK,IAEHtE,GAAU,WACR,GAAKgH,GAAL,CAIA,IAAwBC,EAAlBC,GAAkBD,EAAA7G,EAAAC,EAAAC,MAAA,SAAA6G,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAxH,EAAAyH,EAAAC,EAAAC,EAAAC,EAAA,OAAAzH,EAAAI,MAAA,SAAAsH,GAAA,OAAA,OAAAA,EAAApH,KAAAoH,EAAAnH,MAAA,KAAA,EAGO,GAFvBwG,OAA+C,KAA7B9L,cAAc,EAAdA,GAAgB8L,YAA4B9L,cAAAA,EAAAA,GAAgB8L,UAEhFC,GAAqB,GAErBD,EAAQ,CAAAW,EAAAnH,KAAA,GAAA,KAAA,CAOV,GANM2G,EAAahC,GAASrD,IAAoB,GAC1CsF,EAAgB,IAAIrI,IAAIoI,GACxBE,IAAanM,cAAAA,EAAAA,GAAgB4E,kBAAmB,IAAIoD,OAAM,SAAA0E,GAAM,OACpER,EAAcjE,IAAIyE,EAAO,IAIvBT,EAAWpH,UAAW7E,UAAA,QAAcgM,EAAdhM,GAAgB4E,uBAAhB,IAAAoH,OAAc,EAAdA,EAAiCnH,SAAWsH,EAAS,CAAAM,EAAAnH,KAAA,GAAA,KAAA,CAAA,OAAAmH,EAAAnH,KAAA,EAC/CqH,EAAoBV,EAAY9K,IAAc,KAAA,EAAtEiL,EAAeK,EAAAjH,KACfZ,EAAkBwH,EACrBQ,MAAM,EAAGtM,GAAqB,GAC9BsF,KAAI,SAAAC,GAAI,OAAIA,EAAKE,MACdsG,WACDrM,IAAc,CAAA,EAAA,CACjBmB,cAAAA,GACAyD,gBAAAA,EACAiI,mBAAoB5L,IAAuB2D,EAAgBC,SAEvDyH,EAAqB,IAAIzI,IAAIe,GAC7B2H,EAAcH,EAAgBtG,QAAO,SAAAD,GAAI,OAAIyG,EAAmBrE,IAAIpC,EAAKE,OAE/E5F,GAAOkM,EAAkBE,GAAaE,EAAAnH,KAAA,GAAA,MAAA,KAAA,GAEtCyG,GAAqB,EAAM,KAAA,GAAAU,EAAAnH,KAAA,GAAA,MAAA,KAAA,GAG7ByG,GAAqB,EAAM,KAAA,GAAA,GAGxBA,EAAkB,CAAAU,EAAAnH,KAAA,GAAA,KAAA,CAAA,OAAAmH,EAAAnH,KAAA,GACKqH,GACxB3M,cAAc,EAAdA,GAAgB4E,kBAAmB,GACnCzD,IACD,KAAA,GAHKoL,EAAWE,EAAAjH,KAIjBrF,GAAOH,GAAgBuM,GAAa,KAAA,GAAA,IAAA,MAAA,OAAAE,EAAAhH,OAAA,GAAAoG,EAEvC,KAAA,WA1CoB,OAAAF,EAAAmB,MAAAC,KAAAC,UAAA,GA4CjBzM,IAAmBkH,IAAczH,IAAkBiK,KACrD2B,IACAlE,IAAc,GAhDhB,CAmDD,GAAE,CACD1H,GACAiK,GACA9I,GACAF,GACAV,GACAmL,GACAjE,GACApH,GACAC,GACAH,KAGF,IAAM8M,GAAgBC,EAAiB/B,GAAOjI,GAAWD,IAGnDkK,GAAkBC,EACtB1C,GACAzH,GACAqH,IAGI+C,GAAgBC,EAAiBnC,GAAO7I,GAASQ,GAAeJ,IAGhE6K,GAAiBhJ,GAAQ,WAC7B,OAAK8I,GAMEG,EAAOnK,GAAc6C,OAAOmH,IAAgB,MAL1CA,EAMX,GAAG,CAACA,GAAehK,KAEnBqB,GAAU,WACR,GAAK2I,IAAkB3B,IAInB1E,GAAYe,QAAS,CACvB,IAAM0F,EAAiB,IAAI5J,KAAI7D,gBAAAA,GAAgB4E,kBAAmB,IAE9D8I,EAAOvC,GAAMrF,QAAO,SAAAD,GAAI,OAAI4H,EAAexF,IAAIpC,EAAKE,OAGlD4H,EAAU,IAAI9J,IAAI6J,EAAK9H,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,EAAE,KACpC6H,EAAYvK,GAAcyC,QAAO,SAAAuD,GAAC,OAAIoE,EAAexF,IAAIoB,EAAEtD,MAAQ4H,EAAQ1F,IAAIoB,EAAEtD,OAEvF2H,EAAOA,EAAKxH,OAAO0H,GAEfpC,KACFkC,EAAOA,EAAKxH,OAAOsF,KAGrBlI,GAAiBkK,EAAOE,EAAM,OAC9B1G,GAAYe,SAAU,CACxB,IACC,CACDoD,GACAkC,GACArN,cAAc,EAAdA,GAAgB4E,gBAChB8G,GACAF,GACAnI,KAIFqB,GAAU,WACR,GAAKyG,UAAAA,GAAOtG,QAAqD,IAA3ClB,GAA0BoE,QAAQ8F,KAAxD,CAIA,IAAMC,EAAanK,GAA0BoE,QACvCgG,EAAgB5C,GAAMrF,QAAO,SAAAuD,GAAC,OAAIyE,EAAW7F,IAAIoB,EAAEtD,OAEzD,GAAIgI,EAAclJ,OAAS,EAAG,CAE5B,IAAMmJ,EAAcD,EAAcnI,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,MAC7C9B,IAAmB,SAAAoB,GAAI,OAAIA,EAAKS,QAAO,SAAAC,GAAE,OAAKiI,EAAYC,SAASlI,SAEnEzC,IAAiB,SAAA+B,GACf,IAAM6I,EAAUH,EAAcnB,MAAM,EAAG9L,KAAKI,IAAI,EAAGD,GAAsBoE,EAAKR,SAE9E,OAAO2I,EAAOnI,EAAKa,OAAOgI,GAAU,KACtC,IACAH,EAAcvH,SAAQ,SAAA6C,GAAC,OAAIyE,EAAWK,OAAO9E,EAAEtD,MACjD,CAhBA,CAiBF,GAAG,CAACoF,GAAOlK,KAGX,IAQyCmN,GARiCC,GAAAA,EACxE7C,GACA+B,GACAlK,GACA+D,IACDkH,GAAA5N,EAAA6N,GAAA,GALMC,GAAMF,GAAA,GAAEG,GAASH,GAAA,GAAEI,GAAaJ,GAAA,GAAEK,GAAgBL,GAAA,GAAEM,GAAWN,GAAA,GAQhEO,GAAwBC,GAAWV,GAAAtJ,EAAAC,EAAAC,MACvC,SAAO+J,EAAAA,EAAUC,EAAWC,GAAS,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA1K,EAAAI,MAAA,SAAAuK,GAAA,OAAA,OAAAA,EAAArK,KAAAqK,EAAApK,MAAA,KAAA,EA4BnC,GAzBI2J,IAAcU,EAAkB9J,KAAKwF,KACvC6D,EAAgBF,GAGVG,EAAkB,IAAIS,IACtBR,EAAmB,IAAIQ,IAC7BzE,GAAM3E,SAAQ,SAAAX,GACZsJ,EAAgBU,IAAIhK,EAAKE,GAAIF,EAAKiK,SAC7BV,EAAiBnH,IAAIpC,EAAKiK,UAC7BV,EAAiBS,IAAIhK,EAAKiK,QAAS,IAErCV,EAAiBW,IAAIlK,EAAKiK,SAASE,KAAKnK,EAAKE,GAC/C,IAEAmJ,EAAgBF,EAAUiB,SAAQ,SAAAC,GAChC,IAAMJ,EAAUX,EAAgBY,IAAIG,GAEpC,OAAOd,EAAiBW,IAAID,IAAY,EAC1C,KAGIT,EAAmB,IAAIxL,IAAIqL,GAC3BI,EAAcnE,GAAMrF,QAAO,SAAAqK,GAAA,IAAGpK,IAAAA,GAAE,OAAOsJ,EAAiBpH,IAAIlC,EAAG,MAIjEgJ,GAAYO,EAAYzK,OAASqK,EAAcrK,QAAM,CAAA6K,EAAApK,KAAA,GAAA,KAAA,CAES,GAD1DiK,EAAW,IAAI1L,IAAIyL,EAAY1J,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,EAAE,QAC5CyJ,EAAaN,EAAcpJ,QAAO,SAAAC,GAAE,OAAKwJ,EAAStH,IAAIlC,OAE7ClB,OAAS,GAAC,CAAA6K,EAAApK,KAAA,GAAA,KAAA,CAIvB,OAFArB,IAAmB,SAAAoB,GAAI,OAAIA,EAAKa,OAAOsJ,MAEvCE,EAAApK,KAAA,GACM2D,GAAmBuG,GAAW,KAAA,GAIpCA,EAAWhJ,SAAQ,SAAAT,GAAE,OAAIpC,GAA0BoE,QAAQxB,IAAIR,MAAK,KAAA,GAIpEgJ,GAEIU,EAAeH,EAAY1C,MAC/B,EACA9L,KAAKC,IAAIuO,EAAYzK,OAAQ5D,GAAsBoC,GAAcwB,UAElDA,OAAS,GACxBvB,IAAiB,SAAAD,GAAa,OAAImK,EAAOnK,EAAc6C,OAAOuJ,GAAe,SAG/EnM,IAAiB,SAAAD,GAAa,OAC5B+M,EAAK/M,EAAcyC,QAAO,SAAAuK,GAAA,IAAGtK,IAAAA,GAAE,OAAQuJ,EAAY7D,MAAK,SAAA5F,GAAI,OAAIA,EAAKE,KAAOA,IAAG,QAElF,KAAA,GAAA,IAAA,MAAA,OAAA2J,EAAAjK,OAAA,GAAA6K,EACF,KAAA,SAAAC,EAAAC,EAAAC,GAAA,OAAArC,GAAAtB,MAAAC,KAAAC,UAAA,GAED,CAAC7B,GAAOlK,GAAqBoC,GAAcwB,OAAQoE,KAG/CyH,GAA2B5B,GAAY,WAC3C7M,IAA0B,EAC5B,GAAG,CAACA,KAGE0O,GAA0B7B,GAC9B,SAAA8B,GACE/F,GAAe+F,EACjB,GACA,CAAC/F,KAGGgG,GAAyB/B,GAC7B,SAACgC,EAAKC,GACJlG,IAAe,SAAAmG,GAAQ,OAAIA,EAASpL,KAAI,SAAAqL,GAAI,OAAKA,IAASH,EAAMC,EAAWE,CAAI,MACjF,GACA,CAACpG,KAGGqG,GAAqBpC,GACzB,SAACqC,EAASzC,GACRD,GAAU0C,GACVxC,GAAiBD,EACnB,GACA,CAACD,GAAWE,KAIRyC,GAAyBtC,GAC7B,SAACjJ,EAAMwL,GACL,GAAIA,EAAS,CACX,IAAMC,GAAenG,cAAAA,EAAAA,GAAOM,MAAK,SAAApC,GAAC,OAAIA,EAAEtD,KAAOF,EAAKE,EAAE,MAAKF,EAC3DvC,IAAiB,SAAAiO,GAAS,OAAIA,EAAUrL,OAAOoL,KACjD,MACEhO,IAAiB,SAAAiO,GAAS,OAAIA,EAAUzL,QAAO,SAAAmL,GAAI,OAAIA,EAAKlL,KAAOF,EAAKE,QAE5E,GACA,CAACoF,KAIGqG,GAA6B1C,GACjC,SAAAuC,GACE,GAAIA,EAAS,CACX,IAAM3D,EAAOlC,GAAc6B,GAAcnH,OAAOsF,IAAe6B,GACzDoE,EAAaC,EAAUlE,EAAOE,EAAM,MAAO,YACjDpK,GAAiBmO,EAAW7E,MAAM,EAAG3L,IACvC,MACEqC,GAAiBkI,GAAc,CAACA,IAAe,GAElD,GACD,CAAC6B,GAAe7B,GAAavK,KAIzB0Q,GAAyB7C,GAC7B,SAAA8C,GACEtO,IAAiB,SAAAiO,GACf,IAAMM,EAAa,IAAIhO,IAAI0N,EAAU3L,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,EAAE,KAC5C+L,EAAWF,EAAc9L,QAAO,SAAAuD,GAAC,OAAKwI,EAAW5J,IAAIoB,EAAEtD,OAE7D,GAAwB,IAApB+L,EAASjN,OACX,OAAO0M,EAGT,IAAMQ,EAAiB9Q,GAAsBsQ,EAAU1M,OAGjDkJ,EAFe+D,EAASlF,MAAM,EAAGmF,GAEJnM,KAAI,SAAAyD,GAAC,OAAI8B,cAAK,EAALA,GAAOM,MAAK,SAAAuG,GAAE,OAAIA,EAAGjM,KAAOsD,EAAEtD,EAAE,MAAKsD,KAEjF,OAAOmE,EAAO+D,EAAUrL,OAAO6H,GAAgB,KACjD,GACF,GACA,CAAC5C,GAAOlK,KAIJgR,GAA+BnD,GACnC,SAAAvE,GACE,GAAIN,GAAU,CACZ,IAAMiI,EAAoB,IAAIrO,IAAIoG,GAASM,IAAY,IACjD4H,GAAehH,cAAAA,EAAAA,GAAOrF,QAAO,SAAAD,GAAI,OAAIqM,EAAkBjK,IAAIpC,EAAKE,GAAG,MAAK,GACxE0J,EAAeiC,EAAUS,EAAc,YAC7C7O,GAAiBmM,EAAa7C,MAAM,EAAGvM,IACzC,MACEiD,GAAiBkI,GAAc,CAACA,IAAe,GAElD,GACD,CAACvB,GAAU5J,GAAemL,GAAaL,KAGnCiH,GAA0BtD,GAC9B,SAAAvE,GACExD,GAAuBwD,GACvB0H,GAA6B1H,EAC/B,GACA,CAAC0H,KAIGI,GAAqB9N,GAAQ,WACjC,OAAIlB,GAAcoI,MAAK,SAAA5F,GAAI,OAAIA,EAAKE,KAAO5E,EAAa,IAC/CkC,GAAcwB,OAAS,EAEzBxB,GAAcwB,MACvB,GAAG,CAACxB,GAAelC,KAGb2K,GAAWvH,GAAQ,WACvB,IAAK0F,GAAU,OAAO,EACtB,IAAMrF,EAAkBvB,GAAcuC,KAAI,SAAA0M,GAAK,SAAFvM,MACvCwM,EAAatI,GAASnD,KAAwB,GAGpD,GAFyBhG,KAAKC,IAAIwR,EAAW1N,OAAQxE,MAE5BuE,EAAgBC,OACvC,OAAO,EAET,IAAM2N,EAAgB,IAAI3O,IAAI0O,GAC9B,OAAO3N,EAAgBoD,OAAM,SAAAjC,GAAE,OAAIyM,EAAcvK,IAAIlC,KACtD,GAAE,CAACkE,GAAU5G,GAAeyD,GAAqBzG,KAE5CoS,GAAgBlO,GAAQ,WAC5B,QAAOmF,IAAkBgJ,EAA2BzE,SAASvE,GAC/D,GAAG,CAACA,KAEEiJ,GAAcpO,GAAQ,WAC1B,OAAIkO,GACK,0BAGF5S,GAAW,wBAA0B,UAC9C,GAAG,CAAC4S,GAAe5S,KAEb+S,GAAc9D,GAAY,WAC9B5O,KAEA,IAAMyE,EAActB,GAAcuC,KAAI,SAAAiN,GAAK,SAAF9M,MAEnCsG,WACDrM,IAAc,GAAA,CACjBmC,UAAWD,GACXf,cAAAA,GACAyD,gBAAiBD,EACjBrC,QAAAA,GACAoI,YAAAA,GACA/D,YAAaG,GACbgF,SAAAA,GACAgH,UAAWnR,GACXoR,eAAgBtR,GAChBoL,mBAAoBxF,KAEtBlH,GAAOkM,EAAkBhJ,GAC3B,GAAG,CACDnD,GACAmD,GACArD,GACAkC,GACAf,GACAmB,GACAoI,GACA5D,GACAgF,GACAnK,GACAF,GACA4F,GACAlH,KAIFuE,GAAU,WACHN,IAK0C,IAA3CT,GAA0BoE,QAAQ8F,OACpCxJ,IAAiB,GACjBuO,KAEH,GAAE,CAACxO,GAAef,GAAeuP,KAElC,IAUMI,GAAe,WACnB,IAAMvF,EAAiB,IAAI5J,KAAI7D,gBAAAA,GAAgB4E,kBAAmB,IAC9D8I,GAAQvC,IAAS,IAAIrF,QAAO,SAAAD,GAAI,OAAI4H,EAAexF,IAAIpC,EAAKE,OAEhE,GAAI2C,UAAAA,GAAa7D,OAAQ,CACvB,IAAM8I,EAAU,IAAI9J,IAAI6J,EAAK9H,KAAI,SAAAyD,GAAC,OAAIA,EAAEtD,EAAE,KACpC6H,EAAYlF,GAAY5C,QAAO,SAAAuD,GAAC,OAAIoE,EAAexF,IAAIoB,EAAEtD,MAAQ4H,EAAQ1F,IAAIoB,EAAEtD,OAErF2H,EAAOA,EAAKxH,OAAO0H,EACrB,CAEIpC,KACFkC,EAAOA,EAAKxH,OAAOsF,KAGrBlI,GAAiBkK,EAAOE,EAAM,OAE9B,IAAMrB,WACDrM,IAAc,GAAA,CACjB8S,UAAWnR,GACXoR,eAAgBtR,KAElBtB,GAAOkM,GACP7J,GACM8I,GAAA,CAAA,GAAAtL,cAAc,EAAdA,GAAgBsC,UAAW,CAAA,IAEjCyE,IAAuB/G,cAAAA,EAAAA,GAAgB2G,cAAeC,GACtD1G,MAGI+S,GAAqB9L,IAAkBmB,GAGvC4K,GAAiB3O,GAAQ,WAC7B,QAAKlC,MACD4Q,MACCnH,OACAqH,EAAQ7Q,MAAYA,GAAQkC,EAAW4O,cACxCtM,KAAwBF,IAE9B,GAAG,CAACvE,GAAiByJ,GAAUxJ,GAASwE,GAAqBmM,KAEvDI,GAAcvE,GAAY,WAC9BrM,KACAsE,GAAuBH,GACvBqL,GAA6BrL,EAC/B,GAAG,CAACnE,GAAcwP,KAEZqB,IAAanI,KAAUpB,KAAiB6E,GAGFpO,GAAAA,EAAS+S,GAAcC,GAAA9S,EAAA+S,GAAA,GAA5DC,GAAcF,GAAA,GAAEG,GAAiBH,GAAA,GACJhT,GAAAA,EAAS,IAAGoT,GAAAlT,EAAAmT,GAAA,GAAzCC,GAAUF,GAAA,GAAEG,GAAaH,GAAA,GAC1BI,GAAepQ,IAErBc,GAAU,WACR,GAAKkK,GAAL,CAEA,IAAMzD,EAAQyD,GAAYhC,MAAM,EAAG8G,IACnCK,GAAc5I,EAHI,CAInB,GAAE,CAACyD,GAAa8E,GAAgBlI,KAGjC9G,GAAU,WACR,GAAKsP,GAAajM,QAAlB,CACA,IAAMkM,EAAaD,GAAajM,QAAQmM,cAAkBC,IAAAA,OAAAA,EAAkBC,gBACvEH,IACArS,GAGHqS,EAAWI,UAAUC,OAAOH,EAAkBI,UAF9CN,EAAWI,UAAU9N,IAAI4N,EAAkBI,UAJlB,CAQ7B,GAAG,CAAC3S,GAAgBkS,KAGpB,IAAMU,GAAiBjQ,GAAQ,WAAA,OAAMiJ,EAAOsG,GAAY,QAAO,CAACA,KAEAvP,GAAAA,GAAQ,WACtE,IAAMkQ,EAAqBD,GAAe1O,QAAO,SAAAD,GAAI,OAAIA,EAAKwL,WAQ9D,MAAO,CAACoD,EANND,GAAe3P,SAAW4P,EAAmB5P,QAC7C6P,QAAQD,EAAmB5P,UAC1BwC,GAEDoN,EAAmB5P,SAAW2P,GAAe3P,QAAUwC,GAG3D,GAAG,CAACmN,GAAgBnN,KAAsBsN,GAAAjU,EAAAkU,GAAA,GAVnCH,GAAkBE,GAAA,GAAEE,GAAaF,GAAA,GAAEG,GAAkBH,GAAA,GAYtDI,GAAaxQ,GAAQ,WAAA,OAAMyQ,GAAe,GAAE,IAElDtQ,GAAU,WACJyF,KAAiB8K,EAAcC,WACjC7B,IAGH,GAAE,CAACpJ,GAAUoJ,GAAalJ,KAoC3B,OACEgL,EAACC,GAAK,CACJ1V,KAAMA,GACNQ,QAAS8S,GACTnF,KAAK,aACLwH,UAAWC,EAAOC,YAClBC,MACEL,EAACM,EAAS,CACRC,WAAyB,QAAfjW,GAAE0L,gBAAAA,GAAOtG,cAAM,IAAApF,GAAAA,GAAI,EAC7BkW,cAAetD,GACfpR,oBAAqBA,GACrBwR,cAAeA,GACftI,aAAcA,GACdC,gBAAiBA,GACjBM,YAAaA,GACbkL,oBAAqBjF,KAGzBkF,SACG5V,IACC6V,GAAA,MAAA,CAAKT,UAAWC,EAAOS,eAAeC,SAAA,EAClC1C,IAAaJ,GACbiC,EAACc,GAAO,CACNC,UAAU,eACVV,2CAAqC3V,GAAW,aAAe,WAAYmW,SAE3Eb,EAAA,MAAA,CAAAa,SACEb,EAACgB,GAAM,CACL,cAAA,GAAAjQ,OAAgB7G,GAAkB,UAClC+W,QAAS/C,GACTgD,MAAM,UACNC,UAAWnB,EAACoB,EAAc,IAAAP,SAAA,0BAOhC3T,IACEyT,GAAA,MAAA,CAAAE,SACE,CAAAb,EAAA,OAAA,CAAME,UAAWmB,EAAWC,GAAWC,UAAWD,GAAWE,OAAOC,IAAIZ,SAAA,yDAGxEb,EAAA,OAAA,CAAME,UAAWmB,EAAWC,GAAWI,SAAUJ,GAAWE,OAAOC,IAAIZ,SACpErD,QAKTmD,GAAA,MAAA,CAAKT,UAAWC,EAAOwB,UAAUd,SAAA,CAC/Bb,EAACgB,GAAM,CAAC,cAAA,GAAAjQ,OAAgB7G,GAAmB,WAAC+W,QAASpD,GAAcqD,MAAM,UAASL,SAAA,WAGlFF,GAACK,GAAM,CACL,cAAA,GAAAjQ,OAAgB7G,GAA0B,kBAC1C0X,QAAQ,YACRV,MAAM,UACND,QAvMK,WACbzS,GAA0BoE,QAAQ8F,KAAO,EAE3CxJ,IAAiB,GAInBuO,MAiMYoE,SAAU5S,GACV6S,OAAQ7S,GAAgB+Q,EAAC+B,GAAc,CAACrJ,KAAM,UAAS1H,EAAU6P,SAAA,CAAA,WAExD3D,GAAkB,aAKpC2D,SAEDF,GAAA,MAAA,CAAKT,UAAWmB,EAAWlB,EAAO6B,kBAAkBnB,SAAA,CAClDb,EAACiC,GAAsB,CAAA,GACrB9D,GAgHA6B,EAACkC,GACF,CAAA,GAhHCvB,GAAA,MAAA,CACET,UAAWmB,EAAWlB,EAAOgC,eAC1BhC,EAAAA,CAAAA,EAAAA,EAAOiC,eAAiBtE,KACxB+C,SAEH,CAAAF,GAAA,MAAA,CAAKT,UAAWC,EAAOkC,iBAAiBxB,SAAA,EACpCrU,IAAejC,IACfyV,EAAA,MAAA,CAAKE,UAAWC,EAAOmC,WAAWzB,SAChCb,EAACuC,EAAQ,CACP5E,UAAWnR,GACX6J,YAAaA,GACbmM,cAAetU,GAAcuC,KAAI,SAAAgS,GAAK,SAAF7R,MACpCoF,MAAOoC,GACP6D,uBAAwBA,GACxByG,mBAAoBlG,GACpB/Q,aAAcA,OAIpBkV,GAAA,MAAA,CAAKT,UAAWC,EAAOwC,YAAaC,SA5H3B,SAAAC,GACdA,EAAEC,SAEHjW,KACFgW,EAAEC,OAAOC,WAAa,EACtBjW,IAA0B,IAIxB+V,EAAEC,OAAOC,YAAc,GAAKtW,IAC9BC,IAAkB,GAEhBmW,EAAEC,OAAOC,WAAa,IAAMtW,IAC9BC,IAAkB,GAIhBmW,EAAEC,OAAOE,WAAa,GAAKrW,IAC7BC,IAAkB,GAEhBiW,EAAEC,OAAOE,UAAY,IAAMrW,IAC7BC,IAAkB,GAIhBiW,EAAEC,OAAOG,eAAiBJ,EAAEC,OAAOI,cAEXvX,KAAKwX,MAAMN,EAAEC,OAAOE,UAAYH,EAAEC,OAAOI,aAAe,IAEzDL,EAAEC,OAAOG,cAAgB1E,GAAiB9E,GAAY/J,QAC/E8O,IAAkB,SAAA4E,GAAK,OAAIA,EAAQhF,OA8FgCyC,SAAA,CACzDb,EAACqD,EAAM,CACLC,UAAWhX,GACXwL,cAAeA,GACflD,aAAcA,GACdjD,oBAAqBA,GACrB0E,YAAaA,GACbtJ,eAAgBA,GAChBwW,iBAAkBtG,KAEpB+C,EAAA,MAAA,CAAKE,UAAWlB,EAAkBwE,mBAAmB3C,SACnDF,GAAC8C,EAAK,CACJ,aAAW,iBACXC,SAAU7E,GACVqB,UAAWlB,EAAkB2E,YAAY9C,SAAA,CAEzCb,EAAC4D,EAAS,CAAA/C,SACRb,EAAC6D,EAAoB,CACnB7L,gBAAiBA,GACjBzC,YAAaA,GACb8D,OAAQA,GACRE,cAAeA,GACfmG,cAAeA,GACfC,mBAAoBA,GACpBmE,aAAc/H,GACdgI,mBAAoBrI,GACpBW,2BAA4BA,GAC5B2H,cAAehF,EAAkBC,cACjCW,WAAYA,GACZqE,oBAAqB/O,GAASxF,OAC9ByF,2BAA4BA,OAG/BrK,IACCkV,EAAA,MAAA,CACEE,UAAWmB,EAAWlB,EAAO+D,YAAWC,EAAA,CAAA,EACrChE,EAAOiE,oBAAsBzX,aAOtC7B,IACA6V,GAAA,MAAA,CAAKT,UAAWmB,EAAWrC,EAAkBqF,mBAAmBxD,SAC9D,CAAAb,EAAA,MAAA,CAAKE,UAAWlB,EAAkBsF,WAAWzD,SAC3Cb,EAACuE,EAAc,CACbvX,UAAWD,GACXf,cAAeA,GACfwY,SAAU9K,GACVjK,gBAAiB6P,GAAmB7O,KAAI,SAAAgU,GAAK,SAAF7T,MAC3C8T,qBAAsBnJ,GACtB1M,gBAAiBA,OAGrBmR,EAAA,MAAA,CACEE,UAAWmB,EAAWlB,EAAO+D,YAAWC,EAAA,CAAA,EACrChE,EAAOiE,oBAAsBzX,UAMtCqT,EAAC2E,EAAgB,CACf3S,eAAgB8L,GAChB9R,cAAeA,GACfgM,gBAAiBA,GACjBhC,MAAO2I,GACPpJ,YAAaA,GACb0G,uBAAwBA,GACxB2I,WAAYnL,GAAY/J,QAAU6O,GAClCrM,qBAAsBA,GACtBpG,oBAAqBA,GACrB8I,aAAcA,GACdlJ,gBAAiBA,GACjBwJ,SAAUA,GACVC,2BAA4BA,WAIjCrK,IAAcoC,IACbyT,GAAA,MAAA,CAAKT,UAAWC,EAAO0E,sBAAsBhE,SAC3C,CAAAb,EAAA,OAAA,CAAME,UAAWmB,EAAWC,GAAWC,UAAWD,GAAWE,OAAOC,IAAIZ,SAAA,yDAGxEb,EAAA,OAAA,CAAME,UAAWmB,EAAWC,GAAWI,SAAUJ,GAAWE,OAAOC,IAAIZ,SACpErD,eAWnB"}
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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"}