@corva/ui 3.79.0-0 → 3.79.0-2

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 (415) 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/AssetEditor/AssetEditorAutocomplete.js +1 -1
  6. package/cjs-bundle/components/AssetEditor/AssetEditorAutocomplete.js.map +1 -1
  7. package/cjs-bundle/components/AssetEditorV2/components/MultipleAssetsToggle.js +1 -1
  8. package/cjs-bundle/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
  9. package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js +1 -1
  10. package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js.map +1 -1
  11. package/cjs-bundle/components/BICOffsetPickerDialog/components/WellSection/AssetSearch.js +1 -1
  12. package/cjs-bundle/components/BICOffsetPickerDialog/components/WellSection/AssetSearch.js.map +1 -1
  13. package/cjs-bundle/components/BICOffsetPickerDialog/components/WellSection/SectionItem.js +1 -1
  14. package/cjs-bundle/components/BICOffsetPickerDialog/components/WellSection/SectionItem.js.map +1 -1
  15. package/cjs-bundle/components/BICOffsetPickerDialog/components/WellSection/index.js +1 -1
  16. package/cjs-bundle/components/BICOffsetPickerDialog/components/WellSection/index.js.map +1 -1
  17. package/cjs-bundle/components/BICOffsetPickerDialog/index.js +1 -1
  18. package/cjs-bundle/components/BICOffsetPickerDialog/index.js.map +1 -1
  19. package/cjs-bundle/components/Casing/CasingTable/CasingComponent.js +1 -1
  20. package/cjs-bundle/components/Casing/CasingTable/CasingComponent.js.map +1 -1
  21. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  22. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  23. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js +1 -1
  24. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  25. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  26. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  27. package/cjs-bundle/components/Casing/CasingTableV2/components/EditComponentDialog.js +1 -1
  28. package/cjs-bundle/components/Casing/CasingTableV2/components/EditComponentDialog.js.map +1 -1
  29. package/cjs-bundle/components/CollapsableSidebar.js +1 -1
  30. package/cjs-bundle/components/CollapsableSidebar.js.map +1 -1
  31. package/cjs-bundle/components/DevCenter/AppsDataProvider/AppsDataProvider.js +1 -1
  32. package/cjs-bundle/components/DevCenter/AppsDataProvider/AppsDataProvider.js.map +1 -1
  33. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/constants.js.map +1 -1
  34. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/dataResolvers.js +1 -1
  35. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/dataResolvers.js.map +1 -1
  36. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/useAppsData.js +1 -1
  37. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/useAppsData.js.map +1 -1
  38. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/utils.js +1 -1
  39. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/utils.js.map +1 -1
  40. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
  41. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  42. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  43. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  44. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js +1 -1
  45. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js.map +1 -1
  46. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/DevCenterAppDialogs.js.map +1 -1
  47. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.js.map +1 -1
  48. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js +1 -1
  49. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js.map +1 -1
  50. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/LegacyAppActions.js +1 -1
  51. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/LegacyAppActions.js.map +1 -1
  52. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/constants.js +1 -1
  53. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/constants.js.map +1 -1
  54. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js +1 -1
  55. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js.map +1 -1
  56. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useDevCenterAppProps.js.map +1 -1
  57. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/getAppDataEntryFromContext.js +2 -0
  58. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/getAppDataEntryFromContext.js.map +1 -0
  59. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
  60. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
  61. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js +1 -1
  62. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js.map +1 -1
  63. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  64. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  65. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  66. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  67. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  68. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  69. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  70. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  71. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  72. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  73. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/EditComponentDialog.js +1 -1
  74. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/EditComponentDialog.js.map +1 -1
  75. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  76. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  77. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  78. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  79. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  80. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  81. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  82. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  83. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  84. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  85. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  86. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  87. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  88. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  89. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  90. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  91. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/CancelButton.js +1 -1
  92. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/CancelButton.js.map +1 -1
  93. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  94. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  95. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ExpandCollapseButton.js +1 -1
  96. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ExpandCollapseButton.js.map +1 -1
  97. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/MoreButton.js +1 -1
  98. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/MoreButton.js.map +1 -1
  99. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/SaveButton.js +1 -1
  100. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/SaveButton.js.map +1 -1
  101. package/cjs-bundle/components/Drillstring/BHATable/BHAComponent.js +1 -1
  102. package/cjs-bundle/components/Drillstring/BHATable/BHAComponent.js.map +1 -1
  103. package/cjs-bundle/components/FeedItem/FeedItem.js +1 -1
  104. package/cjs-bundle/components/FeedItem/FeedItem.js.map +1 -1
  105. package/cjs-bundle/components/IconMenu/index.js +1 -1
  106. package/cjs-bundle/components/IconMenu/index.js.map +1 -1
  107. package/cjs-bundle/components/OffsetWellChips/Chip.js +1 -1
  108. package/cjs-bundle/components/OffsetWellChips/Chip.js.map +1 -1
  109. package/cjs-bundle/components/OffsetWellMap/OffsetWellMap.js +1 -1
  110. package/cjs-bundle/components/OffsetWellMap/OffsetWellMap.js.map +1 -1
  111. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js +1 -1
  112. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js.map +1 -1
  113. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js +1 -1
  114. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js.map +1 -1
  115. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  116. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  117. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  118. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  119. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/index.js +1 -1
  120. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/index.js.map +1 -1
  121. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/AssetSearch.js +1 -1
  122. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/AssetSearch.js.map +1 -1
  123. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  124. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  125. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  126. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  127. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  128. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  129. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  130. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  131. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  132. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  133. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  134. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  135. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  136. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  137. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableRows.js +1 -1
  138. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableRows.js.map +1 -1
  139. package/cjs-bundle/components/OffsetWellPickerV3/index.js +1 -1
  140. package/cjs-bundle/components/OffsetWellPickerV3/index.js.map +1 -1
  141. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
  142. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
  143. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
  144. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
  145. package/cjs-bundle/components/PadOffsetsPicker/OffsetAssetChip.js +1 -1
  146. package/cjs-bundle/components/PadOffsetsPicker/OffsetAssetChip.js.map +1 -1
  147. package/cjs-bundle/components/PadOffsetsPicker/OffsetAssetsListExpander.js +1 -1
  148. package/cjs-bundle/components/PadOffsetsPicker/OffsetAssetsListExpander.js.map +1 -1
  149. package/cjs-bundle/components/PadOffsetsPicker/PadOffsetsPicker.js +1 -1
  150. package/cjs-bundle/components/PadOffsetsPicker/PadOffsetsPicker.js.map +1 -1
  151. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js +1 -1
  152. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  153. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  154. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
  155. package/cjs-bundle/components/Search/Search.js +1 -1
  156. package/cjs-bundle/components/Search/Search.js.map +1 -1
  157. package/cjs-bundle/components/StatusBadge/components/DQAccordionDetailsContent.js +1 -1
  158. package/cjs-bundle/components/StatusBadge/components/DQAccordionDetailsContent.js.map +1 -1
  159. package/cjs-bundle/components/Template/TemplatePopover/index.js +1 -1
  160. package/cjs-bundle/components/Template/TemplatePopover/index.js.map +1 -1
  161. package/cjs-bundle/components/VirtualizedTable/VirtualizedTable.js +1 -1
  162. package/cjs-bundle/components/VirtualizedTable/VirtualizedTable.js.map +1 -1
  163. package/cjs-bundle/hocs/withAssetEditorLockHOC.js +1 -1
  164. package/cjs-bundle/hocs/withAssetEditorLockHOC.js.map +1 -1
  165. package/components/AddComment/Popover.js +1 -1
  166. package/components/AddComment/Popover.js.map +1 -1
  167. package/components/AddComment/components/Content.js +1 -1
  168. package/components/AddComment/components/Content.js.map +1 -1
  169. package/components/AssetEditor/AssetEditorAutocomplete.js +1 -1
  170. package/components/AssetEditor/AssetEditorAutocomplete.js.map +1 -1
  171. package/components/AssetEditorV2/components/MultipleAssetsToggle.js +1 -1
  172. package/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
  173. package/components/AssetEditorV2/components/SelectItem.d.ts.map +1 -1
  174. package/components/AssetEditorV2/components/SelectItem.js +1 -1
  175. package/components/AssetEditorV2/components/SelectItem.js.map +1 -1
  176. package/components/BICOffsetPickerDialog/components/WellSection/AssetSearch.js +1 -1
  177. package/components/BICOffsetPickerDialog/components/WellSection/AssetSearch.js.map +1 -1
  178. package/components/BICOffsetPickerDialog/components/WellSection/SectionItem.js +1 -1
  179. package/components/BICOffsetPickerDialog/components/WellSection/SectionItem.js.map +1 -1
  180. package/components/BICOffsetPickerDialog/components/WellSection/index.js +1 -1
  181. package/components/BICOffsetPickerDialog/components/WellSection/index.js.map +1 -1
  182. package/components/BICOffsetPickerDialog/index.js +1 -1
  183. package/components/BICOffsetPickerDialog/index.js.map +1 -1
  184. package/components/Casing/CasingTable/CasingComponent.js +1 -1
  185. package/components/Casing/CasingTable/CasingComponent.js.map +1 -1
  186. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  187. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  188. package/components/Casing/CasingTableV2/components/Component.js +1 -1
  189. package/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  190. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  191. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  192. package/components/Casing/CasingTableV2/components/EditComponentDialog.d.ts.map +1 -1
  193. package/components/Casing/CasingTableV2/components/EditComponentDialog.js +1 -1
  194. package/components/Casing/CasingTableV2/components/EditComponentDialog.js.map +1 -1
  195. package/components/CollapsableSidebar.js +1 -1
  196. package/components/CollapsableSidebar.js.map +1 -1
  197. package/components/DevCenter/AppsDataProvider/AppsDataProvider.d.ts +3 -21
  198. package/components/DevCenter/AppsDataProvider/AppsDataProvider.d.ts.map +1 -1
  199. package/components/DevCenter/AppsDataProvider/AppsDataProvider.js +1 -1
  200. package/components/DevCenter/AppsDataProvider/AppsDataProvider.js.map +1 -1
  201. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/assetDashboard/wellAssetDashboard/appWithDefaultSettings.d.ts +22 -2
  202. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/assetDashboard/wellAssetDashboard/appWithDefaultSettings.d.ts.map +1 -1
  203. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/completion/appWithFracFleetId.d.ts +23 -2
  204. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/completion/appWithFracFleetId.d.ts.map +1 -1
  205. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/completion/appWithPadId.d.ts +20 -2
  206. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/completion/appWithPadId.d.ts.map +1 -1
  207. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/drilling/appWithActiveWellId.d.ts +27 -2
  208. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/drilling/appWithActiveWellId.d.ts.map +1 -1
  209. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/drilling/appWithRigId.d.ts +49 -3
  210. package/components/DevCenter/AppsDataProvider/effects/__tests__/mocks/generalDashboard/drilling/appWithRigId.d.ts.map +1 -1
  211. package/components/DevCenter/AppsDataProvider/effects/__tests__/utils.test.d.ts +2 -0
  212. package/components/DevCenter/AppsDataProvider/effects/__tests__/utils.test.d.ts.map +1 -0
  213. package/components/DevCenter/AppsDataProvider/effects/constants.d.ts +2 -7
  214. package/components/DevCenter/AppsDataProvider/effects/constants.d.ts.map +1 -1
  215. package/components/DevCenter/AppsDataProvider/effects/constants.js.map +1 -1
  216. package/components/DevCenter/AppsDataProvider/effects/dataResolvers.d.ts +14 -10
  217. package/components/DevCenter/AppsDataProvider/effects/dataResolvers.d.ts.map +1 -1
  218. package/components/DevCenter/AppsDataProvider/effects/dataResolvers.js +1 -1
  219. package/components/DevCenter/AppsDataProvider/effects/dataResolvers.js.map +1 -1
  220. package/components/DevCenter/AppsDataProvider/effects/index.d.ts.map +1 -1
  221. package/components/DevCenter/AppsDataProvider/effects/useAppsData.d.ts +5 -5
  222. package/components/DevCenter/AppsDataProvider/effects/useAppsData.d.ts.map +1 -1
  223. package/components/DevCenter/AppsDataProvider/effects/useAppsData.js +1 -1
  224. package/components/DevCenter/AppsDataProvider/effects/useAppsData.js.map +1 -1
  225. package/components/DevCenter/AppsDataProvider/effects/utils.d.ts +33 -54
  226. package/components/DevCenter/AppsDataProvider/effects/utils.d.ts.map +1 -1
  227. package/components/DevCenter/AppsDataProvider/effects/utils.js +1 -1
  228. package/components/DevCenter/AppsDataProvider/effects/utils.js.map +1 -1
  229. package/components/DevCenter/AppsDataProvider/index.d.ts +1 -0
  230. package/components/DevCenter/AppsDataProvider/index.d.ts.map +1 -1
  231. package/components/DevCenter/AppsDataProvider/types.d.ts +216 -0
  232. package/components/DevCenter/AppsDataProvider/types.d.ts.map +1 -0
  233. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
  234. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
  235. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  236. package/components/DevCenter/DevCenterAppContainer/__tests__/getAppDataEntryFromContext.test.d.ts +2 -0
  237. package/components/DevCenter/DevCenterAppContainer/__tests__/getAppDataEntryFromContext.test.d.ts.map +1 -0
  238. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.d.ts.map +1 -1
  239. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  240. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  241. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js +1 -1
  242. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js.map +1 -1
  243. package/components/DevCenter/DevCenterAppContainer/components/DevCenterAppDialogs.d.ts +1 -1
  244. package/components/DevCenter/DevCenterAppContainer/components/DevCenterAppDialogs.d.ts.map +1 -1
  245. package/components/DevCenter/DevCenterAppContainer/components/DevCenterAppDialogs.js.map +1 -1
  246. package/components/DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.d.ts +5 -3
  247. package/components/DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.d.ts.map +1 -1
  248. package/components/DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.js.map +1 -1
  249. package/components/DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js +1 -1
  250. package/components/DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js.map +1 -1
  251. package/components/DevCenter/DevCenterAppContainer/components/LegacyAppActions.js +1 -1
  252. package/components/DevCenter/DevCenterAppContainer/components/LegacyAppActions.js.map +1 -1
  253. package/components/DevCenter/DevCenterAppContainer/constants.d.ts +0 -2
  254. package/components/DevCenter/DevCenterAppContainer/constants.d.ts.map +1 -1
  255. package/components/DevCenter/DevCenterAppContainer/constants.js +1 -1
  256. package/components/DevCenter/DevCenterAppContainer/constants.js.map +1 -1
  257. package/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.d.ts +1 -1
  258. package/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.d.ts.map +1 -1
  259. package/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js +1 -1
  260. package/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js.map +1 -1
  261. package/components/DevCenter/DevCenterAppContainer/effects/useDevCenterAppProps.d.ts +7 -1
  262. package/components/DevCenter/DevCenterAppContainer/effects/useDevCenterAppProps.d.ts.map +1 -1
  263. package/components/DevCenter/DevCenterAppContainer/effects/useDevCenterAppProps.js.map +1 -1
  264. package/components/DevCenter/DevCenterAppContainer/getAppDataEntryFromContext.d.ts +12 -0
  265. package/components/DevCenter/DevCenterAppContainer/getAppDataEntryFromContext.d.ts.map +1 -0
  266. package/components/DevCenter/DevCenterAppContainer/getAppDataEntryFromContext.js +2 -0
  267. package/components/DevCenter/DevCenterAppContainer/getAppDataEntryFromContext.js.map +1 -0
  268. package/components/DevCenter/DevCenterAppContainer/types.d.ts +1 -6
  269. package/components/DevCenter/DevCenterAppContainer/types.d.ts.map +1 -1
  270. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
  271. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
  272. package/components/DocumentViewer/DocumentViewer.js +1 -1
  273. package/components/DocumentViewer/DocumentViewer.js.map +1 -1
  274. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  275. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  276. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  277. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  278. package/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  279. package/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  280. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  281. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  282. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  283. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  284. package/components/Drillstring/BHAComponentsTable/components/EditComponentDialog.d.ts.map +1 -1
  285. package/components/Drillstring/BHAComponentsTable/components/EditComponentDialog.js +1 -1
  286. package/components/Drillstring/BHAComponentsTable/components/EditComponentDialog.js.map +1 -1
  287. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  288. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  289. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  290. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  291. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  292. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  293. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  294. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  295. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  296. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  297. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  298. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  299. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  300. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  301. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  302. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  303. package/components/Drillstring/BHAComponentsTable/components/shared/CancelButton.js +1 -1
  304. package/components/Drillstring/BHAComponentsTable/components/shared/CancelButton.js.map +1 -1
  305. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  306. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  307. package/components/Drillstring/BHAComponentsTable/components/shared/ExpandCollapseButton.d.ts.map +1 -1
  308. package/components/Drillstring/BHAComponentsTable/components/shared/ExpandCollapseButton.js +1 -1
  309. package/components/Drillstring/BHAComponentsTable/components/shared/ExpandCollapseButton.js.map +1 -1
  310. package/components/Drillstring/BHAComponentsTable/components/shared/MoreButton.js +1 -1
  311. package/components/Drillstring/BHAComponentsTable/components/shared/MoreButton.js.map +1 -1
  312. package/components/Drillstring/BHAComponentsTable/components/shared/SaveButton.js +1 -1
  313. package/components/Drillstring/BHAComponentsTable/components/shared/SaveButton.js.map +1 -1
  314. package/components/Drillstring/BHATable/BHAComponent.js +1 -1
  315. package/components/Drillstring/BHATable/BHAComponent.js.map +1 -1
  316. package/components/FeedItem/FeedItem.js +1 -1
  317. package/components/FeedItem/FeedItem.js.map +1 -1
  318. package/components/IconMenu/index.js +1 -1
  319. package/components/IconMenu/index.js.map +1 -1
  320. package/components/OffsetWellChips/Chip.js +1 -1
  321. package/components/OffsetWellChips/Chip.js.map +1 -1
  322. package/components/OffsetWellMap/OffsetWellMap.d.ts.map +1 -1
  323. package/components/OffsetWellMap/OffsetWellMap.js +1 -1
  324. package/components/OffsetWellMap/OffsetWellMap.js.map +1 -1
  325. package/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js +1 -1
  326. package/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js.map +1 -1
  327. package/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.d.ts.map +1 -1
  328. package/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js +1 -1
  329. package/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js.map +1 -1
  330. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.d.ts.map +1 -1
  331. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  332. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  333. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  334. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  335. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/index.js +1 -1
  336. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/index.js.map +1 -1
  337. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/AssetSearch.d.ts.map +1 -1
  338. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/AssetSearch.js +1 -1
  339. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/AssetSearch.js.map +1 -1
  340. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  341. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  342. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  343. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  344. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  345. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  346. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.d.ts.map +1 -1
  347. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  348. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  349. package/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  350. package/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  351. package/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  352. package/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  353. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  354. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  355. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableRows.js +1 -1
  356. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableRows.js.map +1 -1
  357. package/components/OffsetWellPickerV3/index.js +1 -1
  358. package/components/OffsetWellPickerV3/index.js.map +1 -1
  359. package/components/OffsetWellPickerV4/OffsetWellPickerV4.d.ts.map +1 -1
  360. package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
  361. package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
  362. package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
  363. package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
  364. package/components/PadOffsetsPicker/OffsetAssetChip.js +1 -1
  365. package/components/PadOffsetsPicker/OffsetAssetChip.js.map +1 -1
  366. package/components/PadOffsetsPicker/OffsetAssetsListExpander.d.ts.map +1 -1
  367. package/components/PadOffsetsPicker/OffsetAssetsListExpander.js +1 -1
  368. package/components/PadOffsetsPicker/OffsetAssetsListExpander.js.map +1 -1
  369. package/components/PadOffsetsPicker/PadOffsetsPicker.js +1 -1
  370. package/components/PadOffsetsPicker/PadOffsetsPicker.js.map +1 -1
  371. package/components/PadOffsetsPicker/StagesSelector.js +1 -1
  372. package/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  373. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  374. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
  375. package/components/Search/Search.js +1 -1
  376. package/components/Search/Search.js.map +1 -1
  377. package/components/StatusBadge/components/DQAccordionDetailsContent.d.ts.map +1 -1
  378. package/components/StatusBadge/components/DQAccordionDetailsContent.js +1 -1
  379. package/components/StatusBadge/components/DQAccordionDetailsContent.js.map +1 -1
  380. package/components/Template/TemplatePopover/index.d.ts.map +1 -1
  381. package/components/Template/TemplatePopover/index.js +1 -1
  382. package/components/Template/TemplatePopover/index.js.map +1 -1
  383. package/components/VirtualizedTable/VirtualizedTable.d.ts.map +1 -1
  384. package/components/VirtualizedTable/VirtualizedTable.js +1 -1
  385. package/components/VirtualizedTable/VirtualizedTable.js.map +1 -1
  386. package/hocs/withAssetEditorLockHOC.d.ts.map +1 -1
  387. package/hocs/withAssetEditorLockHOC.js +1 -1
  388. package/hocs/withAssetEditorLockHOC.js.map +1 -1
  389. package/mcp-server/server.mjs +6 -6
  390. package/package.json +1 -1
  391. package/tsconfig.tsbuildinfo +1 -1
  392. package/cjs-bundle/ext-esm/@material-ui/icons/esm/ExpandLess.js +0 -2
  393. package/cjs-bundle/ext-esm/@material-ui/icons/esm/ExpandLess.js.map +0 -1
  394. package/cjs-bundle/ext-esm/@material-ui/icons/esm/ExpandMore.js +0 -2
  395. package/cjs-bundle/ext-esm/@material-ui/icons/esm/ExpandMore.js.map +0 -1
  396. package/cjs-bundle/ext-esm/@material-ui/icons/esm/Map.js +0 -2
  397. package/cjs-bundle/ext-esm/@material-ui/icons/esm/Map.js.map +0 -1
  398. package/cjs-bundle/ext-esm/@material-ui/icons/esm/UnfoldLess.js +0 -2
  399. package/cjs-bundle/ext-esm/@material-ui/icons/esm/UnfoldLess.js.map +0 -1
  400. package/cjs-bundle/ext-esm/@material-ui/icons/esm/UnfoldMore.js +0 -2
  401. package/cjs-bundle/ext-esm/@material-ui/icons/esm/UnfoldMore.js.map +0 -1
  402. package/cjs-bundle/ext-esm/@material-ui/icons/esm/utils/createSvgIcon.js +0 -2
  403. package/cjs-bundle/ext-esm/@material-ui/icons/esm/utils/createSvgIcon.js.map +0 -1
  404. package/ext-esm/@material-ui/icons/esm/ExpandLess.js +0 -2
  405. package/ext-esm/@material-ui/icons/esm/ExpandLess.js.map +0 -1
  406. package/ext-esm/@material-ui/icons/esm/ExpandMore.js +0 -2
  407. package/ext-esm/@material-ui/icons/esm/ExpandMore.js.map +0 -1
  408. package/ext-esm/@material-ui/icons/esm/Map.js +0 -2
  409. package/ext-esm/@material-ui/icons/esm/Map.js.map +0 -1
  410. package/ext-esm/@material-ui/icons/esm/UnfoldLess.js +0 -2
  411. package/ext-esm/@material-ui/icons/esm/UnfoldLess.js.map +0 -1
  412. package/ext-esm/@material-ui/icons/esm/UnfoldMore.js +0 -2
  413. package/ext-esm/@material-ui/icons/esm/UnfoldMore.js.map +0 -1
  414. package/ext-esm/@material-ui/icons/esm/utils/createSvgIcon.js +0 -2
  415. package/ext-esm/@material-ui/icons/esm/utils/createSvgIcon.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FeedItem.js","sources":["../../../src/components/FeedItem/FeedItem.js"],"sourcesContent":["import { Divider, makeStyles, Paper, Typography } from '@material-ui/core';\nimport grey from '@material-ui/core/colors/grey';\nimport classNames from 'classnames';\nimport { includes, noop, startCase } from 'lodash';\nimport { useRef, useState } from 'react';\n\nimport { useDevCenterRouter } from '../DevCenter';\n\nimport Actions from './components/Actions';\nimport CompletionDateTimestamp from './components/CompletionDateTimestamp';\nimport Content from './components/Content';\nimport CreatedAt from './components/CreatedAt';\nimport FeedComments from './components/FeedComments';\nimport Icon from './components/Icon';\nimport Reactions from './components/Reactions';\nimport RigAndWell from './components/RigAndWell';\nimport TypeAndAssetTitle from './components/TypeAndAssetTitle';\n\nimport styles from './FeedItem.css';\n\nimport { deleteFeedItem, toggleFeedItemLike } from '~/clients/jsonApi';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { useIsInsideIsolatedDcApp } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport ErrorBoundary from '~/components/ErrorBoundary';\nimport LoadingIndicator from '~/components/LoadingIndicator';\nimport { OPEN_ALERT_DETAILS_ID_STORAGE_KEY } from '~/constants/alerts';\nimport { FEED_ITEM_TYPES, FEED_ITEM_TYPES_BY_KEY } from '~/constants/feed';\nimport { showSuccessNotification } from '~/utils';\nimport utils from '~/utils/main';\nimport { isNativeDetected } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'FeedPo';\n\nconst useStyles = makeStyles(theme => ({\n paperRoot: {\n position: 'relative',\n marginBottom: 10,\n paddingBottom: 16,\n backgroundColor: ({ isInsideDcApp }) =>\n isInsideDcApp ? 'rgba(65, 65, 65, 0.9)' : theme.palette.background.b8,\n width: ({ isInsideDcApp }) => (isInsideDcApp ? 360 : '100%'),\n boxShadow: ({ isInsideDcApp }) =>\n isInsideDcApp &&\n '0px 8px 10px rgba(0, 0, 0, 0.14), 0px 3px 14px rgba(0, 0, 0, 0.12), 0px 5px 5px rgba(0, 0, 0, 0.2)',\n },\n clickablePaperRoot: {\n '&:hover': {\n filter: 'brightness(90%)',\n transition: 'filter 0.3s',\n },\n },\n headerDividerRoot: {\n margin: '8px 0 8px 0',\n backgroundColor: '#595959',\n },\n dateTimestamp: {\n color: theme.palette.primary.text6,\n '& span': {\n color: theme.palette.primary.contrastText,\n },\n },\n}));\n\n/**\n * @typedef {object} ActivityItem\n * @property {number} id\n * @property {string} type\n * @property {Record<string, any>} [context]\n * @property {Array<'update' | 'destroy' | 'like'>} [allowed_actions]\n * @property {number} [company_id]\n * @property {number} [asset_id] is not received from the back but have to be provided while saving activities\n * @property {any} [rig]\n * @property {any} [well]\n * @property {string} [updated_at]\n * @property {any} [segment]\n * @property {boolean} [liked]\n * @property {any[]} [likes]\n * @property {number} [likes_count]\n * @property {any[]} [mentioned_users]\n */\n\n/**\n * @param {object} props\n * @param {ActivityItem} props.feedItem\n * @param {string[]} [props.editableFeedItemTypes]\n * @param {(feedItemId: number) => void} [props.removeFeedItem] called after a feed item was removed by a user\n * @param {(feedItem: ActivityItem) => void} [props.enterEditMode] called when a used clicks \"Edit\" menu item\n * @param {any} [props.router] used for alert navigation by host applications\n * @param {any} props.currentUser used to display Avatar and to determine the ability to edit comments\n * @param {any} [props.appData] passed to body Template\n * @param {Record<string, any>} [props.customFeedItemTypeTemplates]\n * @param {string} [props.paperClassName]\n * @param {any} [props.getFeedItemMessage] used only to create a data-testid attribute\n * @param {(feedItem: ActivityItem) => void} [props.onFeedItemClick]\n * used to override built-in navigation for clickable alert feed items\n * @param {ReactNode} [props.extraActions] additional action nodes rendered inside the reactions/actions row, after the built-in like and comment buttons\n */\nfunction FeedItem({\n feedItem,\n editableFeedItemTypes = [FEED_ITEM_TYPES.POST],\n removeFeedItem = noop,\n enterEditMode = noop,\n router,\n currentUser,\n appData,\n customFeedItemTypeTemplates = {},\n paperClassName,\n getFeedItemMessage = ({ context }) => context?.post?.body || context?.dvd_comment?.body,\n onFeedItemClick,\n extraActions,\n ...props\n}) {\n const canDeleteFeedItem = includes(feedItem.allowed_actions, 'destroy');\n\n const isInsideDcApp = useIsInsideIsolatedDcApp();\n const classes = useStyles({ isInsideDcApp });\n const [isLoading, setIsLoading] = useState(false);\n const [openCommentInput, setOpenCommentInput] = useState(true);\n const [openCommentList, setOpenCommentList] = useState(true);\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false);\n\n const isPost = feedItem.type === FEED_ITEM_TYPES_BY_KEY.post.type;\n const isEditableItem = editableFeedItemTypes.includes(feedItem.type);\n\n const isGeosteering = feedItem.type === FEED_ITEM_TYPES_BY_KEY.geosteering_comments.type;\n const isRecommended =\n isGeosteering && feedItem.context?.geosteering_comments?.data?.isRecommendation;\n\n const typeCategory = FEED_ITEM_TYPES_BY_KEY[feedItem.type]?.category || 'post';\n\n const userFullName = utils.getUserFullName(feedItem.user);\n const typeLabel = FEED_ITEM_TYPES_BY_KEY[feedItem.type]?.showCreatorToLabel\n ? userFullName\n : FEED_ITEM_TYPES_BY_KEY[feedItem.type]?.label || startCase(feedItem.type);\n\n const feedItemSourceLink =\n feedItem.type === FEED_ITEM_TYPES_BY_KEY.alert.type && `/alerts/${feedItem.context?.alert?.id}`;\n\n const isFeedItemClickable =\n feedItem.type === FEED_ITEM_TYPES_BY_KEY.alert.type && feedItemSourceLink;\n\n const handleDeleteFeedItem = async () => {\n setIsLoading(true);\n\n try {\n await deleteFeedItem(feedItem.id);\n } catch (e) {\n return;\n } finally {\n setIsLoading(false);\n }\n\n showSuccessNotification('Item was deleted');\n\n removeFeedItem(feedItem.id);\n };\n\n const isBeingLikedRef = useRef(false);\n\n const handleToggleLike = async () => {\n if (!isBeingLikedRef.current) {\n const feedItemId = feedItem.id;\n isBeingLikedRef.current = true;\n try {\n await toggleFeedItemLike(feedItemId); // NOTE: Received through subscription\n } catch (e) {\n // NOTE: Do nothing\n }\n isBeingLikedRef.current = false;\n }\n };\n\n const handleEditMenuItem = () => {\n enterEditMode(feedItem);\n };\n\n const handleDeleteMenuItem = () => {\n setOpenDeleteDialog(true);\n };\n\n const copyFeedItemLink = () => {\n const feedId = feedItem.id;\n const text = `${window.location.host}/feed/${feedId}`;\n\n utils.copyToClipboard(text);\n };\n\n const handleDelete = () => {\n handleDeleteFeedItem();\n };\n\n const devCenterRouter = useDevCenterRouter();\n\n const handleMainContainerClick = () => {\n if (!isFeedItemClickable) return;\n\n if (onFeedItemClick) {\n onFeedItemClick(feedItem);\n return;\n }\n\n const alertRouter = router || devCenterRouter;\n\n if (alertRouter) {\n alertRouter.push(feedItemSourceLink);\n return;\n }\n\n localStorage.setItem(OPEN_ALERT_DETAILS_ID_STORAGE_KEY, feedItem.context.alert.id);\n };\n\n const getRigName = feedItem => {\n const isRigBasedItem = !!feedItem.rig;\n return isRigBasedItem ? feedItem.rig?.name : feedItem.well?.parent_asset?.name;\n };\n\n return (\n <Paper\n data-testid={`${PAGE_NAME}_post_${getFeedItemMessage(feedItem)}_rigName_${getRigName(\n feedItem\n )}`}\n className={classNames(classes.paperRoot, paperClassName, {\n [classes.clickablePaperRoot]: isFeedItemClickable,\n [styles.hideOverflow]: isLoading,\n })}\n elevation={0}\n >\n <div\n onClick={handleMainContainerClick}\n className={classNames(styles.mainContainer, {\n [styles.mainContainerClickable]: isFeedItemClickable,\n [styles.mainContainerNative]: isNativeDetected,\n })}\n >\n <Icon\n feedItem={feedItem}\n classes={classes}\n displayName={userFullName}\n isRecommended={isRecommended}\n currentUser={currentUser}\n />\n <div\n className={classNames(styles.mainContainerTop, {\n [styles.mainContainerTopNative]: isNativeDetected,\n })}\n >\n <div className={styles.mainContainerTopLine}>\n <TypeAndAssetTitle\n feedItem={feedItem}\n userFullName={userFullName}\n typeLabel={typeLabel}\n classes={classes}\n isPost={isPost}\n />\n <div className={styles.mainContainerTopMenu}>\n <CreatedAt feedItem={feedItem} classes={classes} />\n\n <Actions\n data-testid={`${PAGE_NAME}_actionsDropdown`}\n isPost={isPost}\n isEditableItem={isEditableItem}\n canDeleteFeedItem={canDeleteFeedItem}\n handleEditMenuItem={handleEditMenuItem}\n handleDeleteMenuItem={handleDeleteMenuItem}\n copyFeedItemLink={copyFeedItemLink}\n feedItem={feedItem}\n currentUser={currentUser}\n />\n </div>\n </div>\n\n <RigAndWell feedItem={feedItem} isPost={isPost} />\n </div>\n <Divider className={classes.headerDividerRoot} />\n <CompletionDateTimestamp feedItem={feedItem} />\n <ErrorBoundary ErrorView={() => <Typography>Feed Item loading failed</Typography>}>\n <Content\n feedItem={feedItem}\n appData={appData}\n customFeedItemTypeTemplates={customFeedItemTypeTemplates}\n currentUser={currentUser}\n onFeedItemClick={onFeedItemClick}\n {...props}\n />\n </ErrorBoundary>\n </div>\n <Reactions\n feedItem={feedItem}\n handleToggleLike={handleToggleLike}\n setOpenCommentInput={setOpenCommentInput}\n setOpenCommentList={setOpenCommentList}\n openCommentInput={openCommentInput}\n openCommentList={openCommentList}\n currentUser={currentUser}\n extraActions={extraActions}\n />\n <FeedComments\n openCommentInput={openCommentInput}\n openCommentList={openCommentList}\n feedItem={feedItem}\n currentUser={currentUser}\n />\n {isLoading && ( // NOTE: Avoids feed item height change\n <div className={styles.loadingContainer} style={{ backgroundColor: grey[800] }}>\n <LoadingIndicator />\n </div>\n )}\n {openDeleteDialog && (\n <ConfirmationDialog\n open={openDeleteDialog}\n title={`Delete ${typeCategory}`}\n text={`Are you sure you want to delete ${typeCategory} and all attachments?`}\n handleClose={() => setOpenDeleteDialog(false)}\n handleOk={handleDelete}\n okText=\"Delete\"\n />\n )}\n </Paper>\n );\n}\n\nexport default FeedItem;\n"],"names":["useStyles","makeStyles","theme","paperRoot","position","marginBottom","paddingBottom","backgroundColor","_ref","isInsideDcApp","palette","background","b8","width","_ref2","boxShadow","_ref3","clickablePaperRoot","filter","transition","headerDividerRoot","margin","dateTimestamp","color","primary","text6","contrastText","FeedItem","_ref4","_feedItem$context","_feedItem$context$geo","_feedItem$context$geo2","_FEED_ITEM_TYPES_BY_K","_FEED_ITEM_TYPES_BY_K2","_FEED_ITEM_TYPES_BY_K3","_feedItem$context2","_feedItem$context2$al","_classNames","_classNames2","_ref6","_ref7","feedItem","_ref4$editableFeedIte","editableFeedItemTypes","FEED_ITEM_TYPES","POST","_ref4$removeFeedItem","removeFeedItem","noop","_ref4$enterEditMode","enterEditMode","router","currentUser","appData","_ref4$customFeedItemT","customFeedItemTypeTemplates","paperClassName","_ref4$getFeedItemMess","getFeedItemMessage","_ref5","_context$post","_context$dvd_comment","context","post","body","dvd_comment","onFeedItemClick","extraActions","props","_objectWithoutProperties","_excluded","canDeleteFeedItem","includes","allowed_actions","useIsInsideIsolatedDcApp","classes","useState","_useState2","_slicedToArray","_useState","isLoading","setIsLoading","_useState4","_useState3","openCommentInput","setOpenCommentInput","_useState6","_useState5","openCommentList","setOpenCommentList","_useState8","_useState7","openDeleteDialog","setOpenDeleteDialog","isPost","type","FEED_ITEM_TYPES_BY_KEY","isEditableItem","isRecommended","geosteering_comments","data","isRecommendation","typeCategory","category","userFullName","utils","getUserFullName","user","typeLabel","showCreatorToLabel","label","startCase","feedItemSourceLink","alert","id","isFeedItemClickable","handleDeleteFeedItem","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","deleteFeedItem","t0","abrupt","finish","showSuccessNotification","stop","apply","this","arguments","isBeingLikedRef","useRef","handleToggleLike","_callee2","feedItemId","_context2","current","toggleFeedItemLike","devCenterRouter","useDevCenterRouter","_jsxs","Paper","PAGE_NAME","concat","_feedItem$rig","_feedItem$well","_feedItem$well$parent","rig","name","well","parent_asset","getRigName","className","classNames","styles","hideOverflow","elevation","children","onClick","alertRouter","push","localStorage","setItem","OPEN_ALERT_DETAILS_ID_STORAGE_KEY","mainContainer","mainContainerClickable","mainContainerNative","isNativeDetected","_jsx","Icon","displayName","mainContainerTop","mainContainerTopNative","mainContainerTopLine","TypeAndAssetTitle","mainContainerTopMenu","CreatedAt","Actions","handleEditMenuItem","handleDeleteMenuItem","copyFeedItemLink","feedId","text","window","location","host","copyToClipboard","RigAndWell","Divider","CompletionDateTimestamp","ErrorBoundary","ErrorView","Typography","Content","_objectSpread","Reactions","FeedComments","loadingContainer","style","grey","LoadingIndicator","ConfirmationDialog","open","title","handleClose","handleOk","okText"],"mappings":"y1kBA+BA,IAEMA,EAAYC,GAAW,SAAAC,GAAK,MAAK,CACrCC,UAAW,CACTC,SAAU,WACVC,aAAc,GACdC,cAAe,GACfC,gBAAiB,SAAAC,GAAgB,SAAbC,cACF,wBAA0BP,EAAMQ,QAAQC,WAAWC,EAAE,EACvEC,MAAO,SAAAC,GAAgB,SAAbL,cAAqC,IAAM,MAAO,EAC5DM,UAAW,SAAAC,GAAgB,SAAbP,eAEZ,oGAAoG,GAExGQ,mBAAoB,CAClB,UAAW,CACTC,OAAQ,kBACRC,WAAY,gBAGhBC,kBAAmB,CACjBC,OAAQ,cACRd,gBAAiB,WAEnBe,cAAe,CACbC,MAAOrB,EAAMQ,QAAQc,QAAQC,MAC7B,SAAU,CACRF,MAAOrB,EAAMQ,QAAQc,QAAQE,eAGlC,IAoCD,SAASC,EAcNC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA8B4BC,GAkBJC,GA7DzBC,KAAAA,SAAQC,GAAAd,EACRe,sBAAAA,QAAwB,IAAAD,GAAA,CAACE,EAAgBC,MAAKH,GAAAI,GAAAlB,EAC9CmB,eAAAA,eAAiBC,EAAIF,GAAAG,GAAArB,EACrBsB,cAAAA,eAAgBF,EAAIC,GACpBE,KAAAA,OACAC,KAAAA,YACAC,KAAAA,QAAOC,GAAA1B,EACP2B,4BAAAA,QAA2B,IAAAD,GAAG,CAAE,EAAAA,GAChCE,KAAAA,eAAcC,GAAA7B,EACd8B,mBAAAA,QAAqB,IAAAD,GAAA,SAAAE,GAAA,IAAAC,EAAAC,EAAGC,IAAAA,QAAO,OAAOA,SAAA,UAAAA,EAASC,YAAT,IAAAH,SAAAA,EAAeI,QAAQF,SAAA,QAAOD,EAAPC,EAASG,mBAAT,IAAAJ,OAAO,EAAPA,EAAsBG,KAAI,EAAAP,GACvFS,KAAAA,gBACAC,KAAAA,aACGC,GAAKC,EAAAzC,EAAA0C,GAEFC,GAAoBC,EAAS/B,GAASgC,gBAAiB,WAEvDhE,GAAgBiE,IAChBC,GAAU3E,EAAU,CAAES,cAAAA,KACMmE,GAAAA,GAAS,GAAMC,GAAAC,EAAAC,GAAA,GAA1CC,GAASH,GAAA,GAAEI,GAAYJ,GAAA,GACkBD,GAAAA,GAAS,GAAKM,GAAAJ,EAAAK,GAAA,GAAvDC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GACEN,GAAAA,GAAS,GAAKU,GAAAR,EAAAS,GAAA,GAArDC,GAAeF,GAAA,GAAEG,GAAkBH,GAAA,GACMV,GAAAA,GAAS,GAAMc,GAAAZ,EAAAa,GAAA,GAAxDC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAEtCI,GAASrD,GAASsD,OAASC,EAAuBjC,KAAKgC,KACvDE,GAAiBtD,GAAsB6B,SAAS/B,GAASsD,MAGzDG,GADgBzD,GAASsD,OAASC,EAAuBG,qBAAqBJ,OAEjE,QAAJlE,EAAIY,GAASqB,eAAT,IAAAjC,GAAA,QAAAC,EAAAD,EAAkBsE,4BAAlB,IAAArE,GAA4C,QAA5CC,EAAAD,EAAwCsE,YAAI,IAAArE,OAA5C,EAAAA,EAA8CsE,kBAE3DC,IAAoD,QAArCN,EAAAA,EAAuBvD,GAASsD,aAAK,IAAA/D,OAAA,EAArCA,EAAuCuE,WAAY,OAElEC,GAAeC,EAAMC,gBAAgBjE,GAASkE,MAC9CC,GAAiD,QAArCZ,EAAAA,EAAuBvD,GAASsD,aAAK,IAAA9D,GAArCA,EAAuC4E,mBACrDL,IACA,QAAAR,EAAAA,EAAuBvD,GAASsD,aAAhC,IAAA7D,OAAA,EAAAA,EAAuC4E,QAASC,EAAUtE,GAASsD,MAEjEiB,GACJvE,GAASsD,OAASC,EAAuBiB,MAAMlB,MAAmBtD,WAAAA,OAAgB,QAAhBA,EAAAA,GAASqB,eAAO,IAAA3B,GAAO,QAAPC,EAAhBD,EAAkB8E,aAAK,IAAA7E,OAAP,EAAhBA,EAAyB8E,IAEvFC,GACJ1E,GAASsD,OAASC,EAAuBiB,MAAMlB,MAAQiB,GAEnDI,IAAuB7E,GAAA8E,EAAAC,EAAAC,MAAA,SAAAC,IAAA,OAAAF,EAAAG,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EACR,OAAnB3C,IAAa,GAAMyC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGXC,EAAepF,GAASyE,IAAG,KAAA,EAAAQ,EAAAE,KAAA,EAAA,MAAA,KAAA,EAAA,OAAAF,EAAAC,KAAA,EAAAD,EAAAI,GAAAJ,EAAA,MAAA,GAAAA,EAAAK,OAAA,UAAA,KAAA,EAIb,OAJaL,EAAAC,KAAA,EAIjC1C,IAAa,GAAOyC,EAAAM,OAAA,GAAA,KAAA,GAGtBC,EAAwB,oBAExBlF,GAAeN,GAASyE,IAAI,KAAA,GAAA,IAAA,MAAA,OAAAQ,EAAAQ,OAAA,GAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA,KAC7B,KAAA,WAdyB,OAAAjF,GAAA4F,MAAAC,KAAAC,UAAA,GAgBpBC,GAAkBC,GAAO,GAEzBC,IAAmBhG,GAAA6E,EAAAC,EAAAC,MAAA,SAAAkB,IAAA,IAAAC,EAAA,OAAApB,EAAAG,MAAA,SAAAkB,GAAA,OAAA,OAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,KAAA,EAAA,GAClBU,GAAgBM,QAAO,CAAAD,EAAAf,KAAA,GAAA,KAAA,CAEK,OADzBc,EAAajG,GAASyE,GAC5BoB,GAAgBM,SAAU,EAAKD,EAAAhB,KAAA,EAAAgB,EAAAf,KAAA,EAEvBiB,EAAmBH,GAAW,KAAA,EAAAC,EAAAf,KAAA,GAAA,MAAA,KAAA,EAAAe,EAAAhB,KAAA,EAAAgB,EAAAb,GAAAa,EAAA,MAAA,GAAA,KAAA,GAItCL,GAAgBM,SAAU,EAAM,KAAA,GAAA,IAAA,MAAA,OAAAD,EAAAT,OAAA,GAAAO,EAAA,KAAA,CAAA,CAAA,EAAA,IAEnC,KAAA,WAXqB,OAAAjG,GAAA2F,MAAAC,KAAAC,UAAA,GAgChBS,GAAkBC,IAyBxB,OACEC,EAACC,EAAK,CACJ,cAAgBC,GAAAA,OA3LJ,SA2LsBxF,UAAAA,OAAAA,GAAmBjB,IAAS,aAAA0G,OAP/C,SAAA1G,GAAY,IAAA2G,EAAAC,EAAAC,EAE7B,QADyB7G,EAAS8G,YACV9G,EAAAA,EAAS8G,wBAATH,EAAcI,KAAoB,QAAb/G,EAAAA,EAASgH,YAAI,IAAAJ,GAAc,QAAdC,EAAbD,EAAeK,oBAAY,IAAAJ,OAAd,EAAbA,EAA6BE,KAKEG,CACxElH,KAEFmH,UAAWC,EAAWlF,GAAQxE,UAAWqD,IACtCmB,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,GAAQ1D,mBAAqBkG,IAC7B2C,EAAAA,EAAAA,EAAOC,aAAe/E,IACtB3C,IACH2H,UAAW,EAAEC,SAEb,CAAAjB,EAAA,MAAA,CACEkB,QAnC2B,WAC/B,GAAK/C,GAEL,GAAIjD,GACFA,GAAgBzB,QADlB,CAKA,IAAM0H,EAAchH,IAAU2F,GAE1BqB,EACFA,EAAYC,KAAKpD,IAInBqD,aAAaC,QAAQC,EAAmC9H,GAASqB,QAAQmD,MAAMC,GAT/E,GA8BI0C,UAAWC,EAAWC,EAAOU,wBAC1BV,EAAOW,uBAAyBtD,IAChC2C,EAAAA,EAAAA,EAAOY,oBAAsBC,GAC7BrI,IAAA2H,SAAA,CAEHW,EAACC,EAAI,CACHpI,SAAUA,GACVkC,QAASA,GACTmG,YAAatE,GACbN,cAAeA,GACf9C,YAAaA,KAEf4F,EAAA,MAAA,CACEY,UAAWC,EAAWC,EAAOiB,iBAC1BjB,EAAAA,CAAAA,EAAAA,EAAOkB,uBAAyBL,IAChCV,SAEH,CAAAjB,EAAA,MAAA,CAAKY,UAAWE,EAAOmB,qBAAqBhB,SAAA,CAC1CW,EAACM,EAAiB,CAChBzI,SAAUA,GACV+D,aAAcA,GACdI,UAAWA,GACXjC,QAASA,GACTmB,OAAQA,KAEVkD,EAAA,MAAA,CAAKY,UAAWE,EAAOqB,qBAAqBlB,SAAA,CAC1CW,EAACQ,EAAS,CAAC3I,SAAUA,GAAUkC,QAASA,KAExCiG,EAACS,EAAO,CACN,cAAA,GAAAlC,OAnOE,SAmO0C,oBAC5CrD,OAAQA,GACRG,eAAgBA,GAChB1B,kBAAmBA,GACnB+G,mBA1Fa,WACzBpI,GAAcT,KA0FF8I,qBAvFe,WAC3B1F,IAAoB,IAuFR2F,iBApFW,WACvB,IAAMC,EAAShJ,GAASyE,GAClBwE,YAAUC,OAAOC,SAASC,KAAaJ,UAAAA,OAAAA,GAE7ChF,EAAMqF,gBAAgBJ,IAiFVjJ,SAAUA,GACVW,YAAaA,WAKnBwH,EAACmB,EAAU,CAACtJ,SAAUA,GAAUqD,OAAQA,QAE1C8E,EAACoB,EAAO,CAACpC,UAAWjF,GAAQvD,oBAC5BwJ,EAACqB,EAAuB,CAACxJ,SAAUA,KACnCmI,EAACsB,EAAa,CAACC,UAAW,WAAA,OAAMvB,EAACwB,EAAU,CAAAnC,SAAA,4BAAuC,EAAAA,SAChFW,EAACyB,EAAOC,EAAA,CACN7J,SAAUA,GACVY,QAASA,GACTE,4BAA6BA,GAC7BH,YAAaA,GACbc,gBAAiBA,IACbE,UAIVwG,EAAC2B,EAAS,CACR9J,SAAUA,GACV+F,iBAAkBA,GAClBnD,oBAAqBA,GACrBI,mBAAoBA,GACpBL,iBAAkBA,GAClBI,gBAAiBA,GACjBpC,YAAaA,GACbe,aAAcA,KAEhByG,EAAC4B,EAAY,CACXpH,iBAAkBA,GAClBI,gBAAiBA,GACjB/C,SAAUA,GACVW,YAAaA,KAEd4B,IACC4F,EAAA,MAAA,CAAKhB,UAAWE,EAAO2C,iBAAkBC,MAAO,CAAEnM,gBAAiBoM,EAAK,MAAO1C,SAC7EW,EAACgC,EAAgB,MAGpBhH,IACCgF,EAACiC,EAAkB,CACjBC,KAAMlH,GACNmH,MAAK,UAAA5D,OAAY7C,IACjBoF,KAAI,mCAAAvC,OAAqC7C,GAAoC,yBAC7E0G,YAAa,WAAA,OAAMnH,IAAoB,EAAO,EAC9CoH,SA9Ha,WACnB7F,MA8HM8F,OAAO,aAKjB"}
1
+ {"version":3,"file":"FeedItem.js","sources":["../../../src/components/FeedItem/FeedItem.js"],"sourcesContent":["import { Divider, makeStyles, Paper, Typography } from '@material-ui/core';\nimport grey from '@material-ui/core/colors/grey';\nimport classNames from 'classnames';\nimport { includes, noop, startCase } from 'lodash';\nimport { useRef, useState } from 'react';\n\nimport { useDevCenterRouter } from '../DevCenter';\n\nimport Actions from './components/Actions';\nimport CompletionDateTimestamp from './components/CompletionDateTimestamp';\nimport Content from './components/Content';\nimport CreatedAt from './components/CreatedAt';\nimport FeedComments from './components/FeedComments';\nimport Icon from './components/Icon';\nimport Reactions from './components/Reactions';\nimport RigAndWell from './components/RigAndWell';\nimport TypeAndAssetTitle from './components/TypeAndAssetTitle';\n\nimport styles from './FeedItem.css';\n\nimport { deleteFeedItem, toggleFeedItemLike } from '~/clients/jsonApi';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { useIsInsideIsolatedDcApp } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport ErrorBoundary from '~/components/ErrorBoundary';\nimport LoadingIndicator from '~/components/LoadingIndicator';\nimport { OPEN_ALERT_DETAILS_ID_STORAGE_KEY } from '~/constants/alerts';\nimport { FEED_ITEM_TYPES, FEED_ITEM_TYPES_BY_KEY } from '~/constants/feed';\nimport { showSuccessNotification } from '~/utils';\nimport utils from '~/utils/main';\nimport { isNativeDetected } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'FeedPo';\n\nconst useStyles = makeStyles(theme => ({\n paperRoot: {\n position: 'relative',\n marginBottom: 10,\n paddingBottom: 16,\n backgroundColor: ({ isInsideDcApp }) =>\n isInsideDcApp ? 'rgba(65, 65, 65, 0.9)' : theme.palette.background.b8,\n width: ({ isInsideDcApp }) => (isInsideDcApp ? 360 : '100%'),\n boxShadow: ({ isInsideDcApp }) =>\n isInsideDcApp &&\n '0px 8px 10px rgba(0, 0, 0, 0.14), 0px 3px 14px rgba(0, 0, 0, 0.12), 0px 5px 5px rgba(0, 0, 0, 0.2)',\n },\n clickablePaperRoot: {\n '&:hover': {\n filter: 'brightness(90%)',\n transition: 'filter 0.3s',\n },\n },\n headerDividerRoot: {\n margin: '8px 0 8px 0',\n backgroundColor: '#595959',\n },\n dateTimestamp: {\n color: theme.palette.primary.text6,\n '& span': {\n color: theme.palette.primary.contrastText,\n },\n },\n}));\n\n/**\n * @typedef {object} ActivityItem\n * @property {number} id\n * @property {string} type\n * @property {Record<string, any>} [context]\n * @property {Array<'update' | 'destroy' | 'like'>} [allowed_actions]\n * @property {number} [company_id]\n * @property {number} [asset_id] is not received from the back but have to be provided while saving activities\n * @property {any} [rig]\n * @property {any} [well]\n * @property {string} [updated_at]\n * @property {any} [segment]\n * @property {boolean} [liked]\n * @property {any[]} [likes]\n * @property {number} [likes_count]\n * @property {any[]} [mentioned_users]\n */\n\n/**\n * @param {object} props\n * @param {ActivityItem} props.feedItem\n * @param {string[]} [props.editableFeedItemTypes]\n * @param {(feedItemId: number) => void} [props.removeFeedItem] called after a feed item was removed by a user\n * @param {(feedItem: ActivityItem) => void} [props.enterEditMode] called when a used clicks \"Edit\" menu item\n * @param {any} [props.router] used for alert navigation by host applications\n * @param {any} props.currentUser used to display Avatar and to determine the ability to edit comments\n * @param {any} [props.appData] passed to body Template\n * @param {Record<string, any>} [props.customFeedItemTypeTemplates]\n * @param {string} [props.paperClassName]\n * @param {any} [props.getFeedItemMessage] used only to create a data-testid attribute\n * @param {(feedItem: ActivityItem) => void} [props.onFeedItemClick]\n * used to override built-in navigation for clickable alert feed items\n * @param {ReactNode} [props.extraActions] additional action nodes rendered inside the reactions/actions row, after the built-in like and comment buttons\n */\nfunction FeedItem({\n feedItem,\n editableFeedItemTypes = [FEED_ITEM_TYPES.POST],\n removeFeedItem = noop,\n enterEditMode = noop,\n router,\n currentUser,\n appData,\n customFeedItemTypeTemplates = {},\n paperClassName,\n getFeedItemMessage = ({ context }) => context?.post?.body || context?.dvd_comment?.body,\n onFeedItemClick,\n extraActions,\n ...props\n}) {\n const canDeleteFeedItem = includes(feedItem.allowed_actions, 'destroy');\n\n const isInsideDcApp = useIsInsideIsolatedDcApp();\n const classes = useStyles({ isInsideDcApp });\n const [isLoading, setIsLoading] = useState(false);\n const [openCommentInput, setOpenCommentInput] = useState(true);\n const [openCommentList, setOpenCommentList] = useState(true);\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false);\n\n const isPost = feedItem.type === FEED_ITEM_TYPES_BY_KEY.post.type;\n const isEditableItem = editableFeedItemTypes.includes(feedItem.type);\n\n const isGeosteering = feedItem.type === FEED_ITEM_TYPES_BY_KEY.geosteering_comments.type;\n const isRecommended =\n isGeosteering && feedItem.context?.geosteering_comments?.data?.isRecommendation;\n\n const typeCategory = FEED_ITEM_TYPES_BY_KEY[feedItem.type]?.category || 'post';\n\n const userFullName = utils.getUserFullName(feedItem.user);\n const typeLabel = FEED_ITEM_TYPES_BY_KEY[feedItem.type]?.showCreatorToLabel\n ? userFullName\n : FEED_ITEM_TYPES_BY_KEY[feedItem.type]?.label || startCase(feedItem.type);\n\n const feedItemSourceLink =\n feedItem.type === FEED_ITEM_TYPES_BY_KEY.alert.type && `/alerts/${feedItem.context?.alert?.id}`;\n\n const isFeedItemClickable =\n feedItem.type === FEED_ITEM_TYPES_BY_KEY.alert.type && feedItemSourceLink;\n\n const handleDeleteFeedItem = async () => {\n setIsLoading(true);\n\n try {\n await deleteFeedItem(feedItem.id);\n } catch (e) {\n return;\n } finally {\n setIsLoading(false);\n }\n\n showSuccessNotification('Item was deleted');\n\n removeFeedItem(feedItem.id);\n };\n\n const isBeingLikedRef = useRef(false);\n\n const handleToggleLike = async () => {\n if (!isBeingLikedRef.current) {\n const feedItemId = feedItem.id;\n isBeingLikedRef.current = true;\n try {\n await toggleFeedItemLike(feedItemId); // NOTE: Received through subscription\n } catch (e) {\n // NOTE: Do nothing\n }\n isBeingLikedRef.current = false;\n }\n };\n\n const handleEditMenuItem = () => {\n enterEditMode(feedItem);\n };\n\n const handleDeleteMenuItem = () => {\n setOpenDeleteDialog(true);\n };\n\n const copyFeedItemLink = () => {\n const feedId = feedItem.id;\n const text = `${window.location.host}/feed/${feedId}`;\n\n utils.copyToClipboard(text);\n };\n\n const handleDelete = () => {\n handleDeleteFeedItem();\n };\n\n const devCenterRouter = useDevCenterRouter();\n\n const handleMainContainerClick = () => {\n if (!isFeedItemClickable) return;\n\n if (onFeedItemClick) {\n onFeedItemClick(feedItem);\n return;\n }\n\n const alertRouter = router || devCenterRouter;\n\n if (alertRouter) {\n alertRouter.push(feedItemSourceLink);\n return;\n }\n\n localStorage.setItem(OPEN_ALERT_DETAILS_ID_STORAGE_KEY, feedItem.context.alert.id);\n };\n\n const getRigName = feedItem => {\n const isRigBasedItem = !!feedItem.rig;\n return isRigBasedItem ? feedItem.rig?.name : feedItem.well?.parent_asset?.name;\n };\n\n return (\n <Paper\n data-testid={`${PAGE_NAME}_post_${getFeedItemMessage(feedItem)}_rigName_${getRigName(\n feedItem\n )}`}\n className={classNames(classes.paperRoot, paperClassName, {\n [classes.clickablePaperRoot]: isFeedItemClickable,\n [styles.hideOverflow]: isLoading,\n })}\n elevation={0}\n >\n <div\n onClick={handleMainContainerClick}\n className={classNames(styles.mainContainer, {\n [styles.mainContainerClickable]: isFeedItemClickable,\n [styles.mainContainerNative]: isNativeDetected,\n })}\n >\n <Icon\n feedItem={feedItem}\n classes={classes}\n displayName={userFullName}\n isRecommended={isRecommended}\n currentUser={currentUser}\n />\n <div\n className={classNames(styles.mainContainerTop, {\n [styles.mainContainerTopNative]: isNativeDetected,\n })}\n >\n <div className={styles.mainContainerTopLine}>\n <TypeAndAssetTitle\n feedItem={feedItem}\n userFullName={userFullName}\n typeLabel={typeLabel}\n classes={classes}\n isPost={isPost}\n />\n <div className={styles.mainContainerTopMenu}>\n <CreatedAt feedItem={feedItem} classes={classes} />\n\n <Actions\n data-testid={`${PAGE_NAME}_actionsDropdown`}\n isPost={isPost}\n isEditableItem={isEditableItem}\n canDeleteFeedItem={canDeleteFeedItem}\n handleEditMenuItem={handleEditMenuItem}\n handleDeleteMenuItem={handleDeleteMenuItem}\n copyFeedItemLink={copyFeedItemLink}\n feedItem={feedItem}\n currentUser={currentUser}\n />\n </div>\n </div>\n\n <RigAndWell feedItem={feedItem} isPost={isPost} />\n </div>\n <Divider className={classes.headerDividerRoot} />\n <CompletionDateTimestamp feedItem={feedItem} />\n <ErrorBoundary ErrorView={() => <Typography>Feed Item loading failed</Typography>}>\n <Content\n feedItem={feedItem}\n appData={appData}\n customFeedItemTypeTemplates={customFeedItemTypeTemplates}\n currentUser={currentUser}\n onFeedItemClick={onFeedItemClick}\n {...props}\n />\n </ErrorBoundary>\n </div>\n <Reactions\n feedItem={feedItem}\n handleToggleLike={handleToggleLike}\n setOpenCommentInput={setOpenCommentInput}\n setOpenCommentList={setOpenCommentList}\n openCommentInput={openCommentInput}\n openCommentList={openCommentList}\n currentUser={currentUser}\n extraActions={extraActions}\n />\n <FeedComments\n openCommentInput={openCommentInput}\n openCommentList={openCommentList}\n feedItem={feedItem}\n currentUser={currentUser}\n />\n {isLoading && ( // NOTE: Avoids feed item height change\n <div className={styles.loadingContainer} style={{ backgroundColor: grey[800] }}>\n <LoadingIndicator />\n </div>\n )}\n {openDeleteDialog && (\n <ConfirmationDialog\n open={openDeleteDialog}\n title={`Delete ${typeCategory}`}\n text={`Are you sure you want to delete ${typeCategory} and all attachments?`}\n handleClose={() => setOpenDeleteDialog(false)}\n handleOk={handleDelete}\n okText=\"Delete\"\n />\n )}\n </Paper>\n );\n}\n\nexport default FeedItem;\n"],"names":["useStyles","makeStyles","theme","paperRoot","position","marginBottom","paddingBottom","backgroundColor","_ref","isInsideDcApp","palette","background","b8","width","_ref2","boxShadow","_ref3","clickablePaperRoot","filter","transition","headerDividerRoot","margin","dateTimestamp","color","primary","text6","contrastText","FeedItem","_ref4","_feedItem$context","_feedItem$context$geo","_feedItem$context$geo2","_FEED_ITEM_TYPES_BY_K","_FEED_ITEM_TYPES_BY_K2","_FEED_ITEM_TYPES_BY_K3","_feedItem$context2","_feedItem$context2$al","_classNames","_classNames2","_ref6","_ref7","feedItem","_ref4$editableFeedIte","editableFeedItemTypes","FEED_ITEM_TYPES","POST","_ref4$removeFeedItem","removeFeedItem","noop","_ref4$enterEditMode","enterEditMode","router","currentUser","appData","_ref4$customFeedItemT","customFeedItemTypeTemplates","paperClassName","_ref4$getFeedItemMess","getFeedItemMessage","_ref5","_context$post","_context$dvd_comment","context","post","body","dvd_comment","onFeedItemClick","extraActions","props","_objectWithoutProperties","_excluded","canDeleteFeedItem","includes","allowed_actions","useIsInsideIsolatedDcApp","classes","useState","_useState2","_slicedToArray","_useState","isLoading","setIsLoading","_useState4","_useState3","openCommentInput","setOpenCommentInput","_useState6","_useState5","openCommentList","setOpenCommentList","_useState8","_useState7","openDeleteDialog","setOpenDeleteDialog","isPost","type","FEED_ITEM_TYPES_BY_KEY","isEditableItem","isRecommended","geosteering_comments","data","isRecommendation","typeCategory","category","userFullName","utils","getUserFullName","user","typeLabel","showCreatorToLabel","label","startCase","feedItemSourceLink","alert","id","isFeedItemClickable","handleDeleteFeedItem","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","deleteFeedItem","t0","abrupt","finish","showSuccessNotification","stop","apply","this","arguments","isBeingLikedRef","useRef","handleToggleLike","_callee2","feedItemId","_context2","current","toggleFeedItemLike","devCenterRouter","useDevCenterRouter","_jsxs","Paper","PAGE_NAME","concat","_feedItem$rig","_feedItem$well","_feedItem$well$parent","rig","name","well","parent_asset","getRigName","className","classNames","styles","hideOverflow","elevation","children","onClick","alertRouter","push","localStorage","setItem","OPEN_ALERT_DETAILS_ID_STORAGE_KEY","mainContainer","mainContainerClickable","mainContainerNative","isNativeDetected","_jsx","Icon","displayName","mainContainerTop","mainContainerTopNative","mainContainerTopLine","TypeAndAssetTitle","mainContainerTopMenu","CreatedAt","Actions","handleEditMenuItem","handleDeleteMenuItem","copyFeedItemLink","feedId","text","window","location","host","copyToClipboard","RigAndWell","Divider","CompletionDateTimestamp","ErrorBoundary","ErrorView","Typography","Content","_objectSpread","Reactions","FeedComments","loadingContainer","style","grey","LoadingIndicator","ConfirmationDialog","open","title","handleClose","handleOk","okText"],"mappings":"06kBA+BA,IAEMA,EAAYC,GAAW,SAAAC,GAAK,MAAK,CACrCC,UAAW,CACTC,SAAU,WACVC,aAAc,GACdC,cAAe,GACfC,gBAAiB,SAAAC,GAAgB,SAAbC,cACF,wBAA0BP,EAAMQ,QAAQC,WAAWC,EAAE,EACvEC,MAAO,SAAAC,GAAgB,SAAbL,cAAqC,IAAM,MAAO,EAC5DM,UAAW,SAAAC,GAAgB,SAAbP,eAEZ,oGAAoG,GAExGQ,mBAAoB,CAClB,UAAW,CACTC,OAAQ,kBACRC,WAAY,gBAGhBC,kBAAmB,CACjBC,OAAQ,cACRd,gBAAiB,WAEnBe,cAAe,CACbC,MAAOrB,EAAMQ,QAAQc,QAAQC,MAC7B,SAAU,CACRF,MAAOrB,EAAMQ,QAAQc,QAAQE,eAGlC,IAoCD,SAASC,EAcNC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA8B4BC,GAkBJC,GA7DzBC,KAAAA,SAAQC,GAAAd,EACRe,sBAAAA,QAAwB,IAAAD,GAAA,CAACE,EAAgBC,MAAKH,GAAAI,GAAAlB,EAC9CmB,eAAAA,eAAiBC,EAAIF,GAAAG,GAAArB,EACrBsB,cAAAA,eAAgBF,EAAIC,GACpBE,KAAAA,OACAC,KAAAA,YACAC,KAAAA,QAAOC,GAAA1B,EACP2B,4BAAAA,QAA2B,IAAAD,GAAG,CAAE,EAAAA,GAChCE,KAAAA,eAAcC,GAAA7B,EACd8B,mBAAAA,QAAqB,IAAAD,GAAA,SAAAE,GAAA,IAAAC,EAAAC,EAAGC,IAAAA,QAAO,OAAOA,SAAA,UAAAA,EAASC,YAAT,IAAAH,SAAAA,EAAeI,QAAQF,SAAA,QAAOD,EAAPC,EAASG,mBAAT,IAAAJ,OAAO,EAAPA,EAAsBG,KAAI,EAAAP,GACvFS,KAAAA,gBACAC,KAAAA,aACGC,GAAKC,EAAAzC,EAAA0C,GAEFC,GAAoBC,EAAS/B,GAASgC,gBAAiB,WAEvDhE,GAAgBiE,IAChBC,GAAU3E,EAAU,CAAES,cAAAA,KACMmE,GAAAA,GAAS,GAAMC,GAAAC,EAAAC,GAAA,GAA1CC,GAASH,GAAA,GAAEI,GAAYJ,GAAA,GACkBD,GAAAA,GAAS,GAAKM,GAAAJ,EAAAK,GAAA,GAAvDC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GACEN,GAAAA,GAAS,GAAKU,GAAAR,EAAAS,GAAA,GAArDC,GAAeF,GAAA,GAAEG,GAAkBH,GAAA,GACMV,GAAAA,GAAS,GAAMc,GAAAZ,EAAAa,GAAA,GAAxDC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAEtCI,GAASrD,GAASsD,OAASC,EAAuBjC,KAAKgC,KACvDE,GAAiBtD,GAAsB6B,SAAS/B,GAASsD,MAGzDG,GADgBzD,GAASsD,OAASC,EAAuBG,qBAAqBJ,OAEjE,QAAJlE,EAAIY,GAASqB,eAAT,IAAAjC,GAAA,QAAAC,EAAAD,EAAkBsE,4BAAlB,IAAArE,GAA4C,QAA5CC,EAAAD,EAAwCsE,YAAI,IAAArE,OAA5C,EAAAA,EAA8CsE,kBAE3DC,IAAoD,QAArCN,EAAAA,EAAuBvD,GAASsD,aAAK,IAAA/D,OAAA,EAArCA,EAAuCuE,WAAY,OAElEC,GAAeC,EAAMC,gBAAgBjE,GAASkE,MAC9CC,GAAiD,QAArCZ,EAAAA,EAAuBvD,GAASsD,aAAK,IAAA9D,GAArCA,EAAuC4E,mBACrDL,IACA,QAAAR,EAAAA,EAAuBvD,GAASsD,aAAhC,IAAA7D,OAAA,EAAAA,EAAuC4E,QAASC,EAAUtE,GAASsD,MAEjEiB,GACJvE,GAASsD,OAASC,EAAuBiB,MAAMlB,MAAmBtD,WAAAA,OAAgB,QAAhBA,EAAAA,GAASqB,eAAO,IAAA3B,GAAO,QAAPC,EAAhBD,EAAkB8E,aAAK,IAAA7E,OAAP,EAAhBA,EAAyB8E,IAEvFC,GACJ1E,GAASsD,OAASC,EAAuBiB,MAAMlB,MAAQiB,GAEnDI,IAAuB7E,GAAA8E,EAAAC,EAAAC,MAAA,SAAAC,IAAA,OAAAF,EAAAG,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EACR,OAAnB3C,IAAa,GAAMyC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGXC,EAAepF,GAASyE,IAAG,KAAA,EAAAQ,EAAAE,KAAA,EAAA,MAAA,KAAA,EAAA,OAAAF,EAAAC,KAAA,EAAAD,EAAAI,GAAAJ,EAAA,MAAA,GAAAA,EAAAK,OAAA,UAAA,KAAA,EAIb,OAJaL,EAAAC,KAAA,EAIjC1C,IAAa,GAAOyC,EAAAM,OAAA,GAAA,KAAA,GAGtBC,EAAwB,oBAExBlF,GAAeN,GAASyE,IAAI,KAAA,GAAA,IAAA,MAAA,OAAAQ,EAAAQ,OAAA,GAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA,KAC7B,KAAA,WAdyB,OAAAjF,GAAA4F,MAAAC,KAAAC,UAAA,GAgBpBC,GAAkBC,GAAO,GAEzBC,IAAmBhG,GAAA6E,EAAAC,EAAAC,MAAA,SAAAkB,IAAA,IAAAC,EAAA,OAAApB,EAAAG,MAAA,SAAAkB,GAAA,OAAA,OAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,KAAA,EAAA,GAClBU,GAAgBM,QAAO,CAAAD,EAAAf,KAAA,GAAA,KAAA,CAEK,OADzBc,EAAajG,GAASyE,GAC5BoB,GAAgBM,SAAU,EAAKD,EAAAhB,KAAA,EAAAgB,EAAAf,KAAA,EAEvBiB,EAAmBH,GAAW,KAAA,EAAAC,EAAAf,KAAA,GAAA,MAAA,KAAA,EAAAe,EAAAhB,KAAA,EAAAgB,EAAAb,GAAAa,EAAA,MAAA,GAAA,KAAA,GAItCL,GAAgBM,SAAU,EAAM,KAAA,GAAA,IAAA,MAAA,OAAAD,EAAAT,OAAA,GAAAO,EAAA,KAAA,CAAA,CAAA,EAAA,IAEnC,KAAA,WAXqB,OAAAjG,GAAA2F,MAAAC,KAAAC,UAAA,GAgChBS,GAAkBC,IAyBxB,OACEC,EAACC,EAAK,CACJ,cAAgBC,GAAAA,OA3LJ,SA2LsBxF,UAAAA,OAAAA,GAAmBjB,IAAS,aAAA0G,OAP/C,SAAA1G,GAAY,IAAA2G,EAAAC,EAAAC,EAE7B,QADyB7G,EAAS8G,YACV9G,EAAAA,EAAS8G,wBAATH,EAAcI,KAAoB,QAAb/G,EAAAA,EAASgH,YAAI,IAAAJ,GAAc,QAAdC,EAAbD,EAAeK,oBAAY,IAAAJ,OAAd,EAAbA,EAA6BE,KAKEG,CACxElH,KAEFmH,UAAWC,EAAWlF,GAAQxE,UAAWqD,IACtCmB,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,GAAQ1D,mBAAqBkG,IAC7B2C,EAAAA,EAAAA,EAAOC,aAAe/E,IACtB3C,IACH2H,UAAW,EAAEC,SAEb,CAAAjB,EAAA,MAAA,CACEkB,QAnC2B,WAC/B,GAAK/C,GAEL,GAAIjD,GACFA,GAAgBzB,QADlB,CAKA,IAAM0H,EAAchH,IAAU2F,GAE1BqB,EACFA,EAAYC,KAAKpD,IAInBqD,aAAaC,QAAQC,EAAmC9H,GAASqB,QAAQmD,MAAMC,GAT/E,GA8BI0C,UAAWC,EAAWC,EAAOU,wBAC1BV,EAAOW,uBAAyBtD,IAChC2C,EAAAA,EAAAA,EAAOY,oBAAsBC,GAC7BrI,IAAA2H,SAAA,CAEHW,EAACC,EAAI,CACHpI,SAAUA,GACVkC,QAASA,GACTmG,YAAatE,GACbN,cAAeA,GACf9C,YAAaA,KAEf4F,EAAA,MAAA,CACEY,UAAWC,EAAWC,EAAOiB,iBAC1BjB,EAAAA,CAAAA,EAAAA,EAAOkB,uBAAyBL,IAChCV,SAEH,CAAAjB,EAAA,MAAA,CAAKY,UAAWE,EAAOmB,qBAAqBhB,SAAA,CAC1CW,EAACM,EAAiB,CAChBzI,SAAUA,GACV+D,aAAcA,GACdI,UAAWA,GACXjC,QAASA,GACTmB,OAAQA,KAEVkD,EAAA,MAAA,CAAKY,UAAWE,EAAOqB,qBAAqBlB,SAAA,CAC1CW,EAACQ,EAAS,CAAC3I,SAAUA,GAAUkC,QAASA,KAExCiG,EAACS,EAAO,CACN,cAAA,GAAAlC,OAnOE,SAmO0C,oBAC5CrD,OAAQA,GACRG,eAAgBA,GAChB1B,kBAAmBA,GACnB+G,mBA1Fa,WACzBpI,GAAcT,KA0FF8I,qBAvFe,WAC3B1F,IAAoB,IAuFR2F,iBApFW,WACvB,IAAMC,EAAShJ,GAASyE,GAClBwE,YAAUC,OAAOC,SAASC,KAAaJ,UAAAA,OAAAA,GAE7ChF,EAAMqF,gBAAgBJ,IAiFVjJ,SAAUA,GACVW,YAAaA,WAKnBwH,EAACmB,EAAU,CAACtJ,SAAUA,GAAUqD,OAAQA,QAE1C8E,EAACoB,EAAO,CAACpC,UAAWjF,GAAQvD,oBAC5BwJ,EAACqB,EAAuB,CAACxJ,SAAUA,KACnCmI,EAACsB,EAAa,CAACC,UAAW,WAAA,OAAMvB,EAACwB,EAAU,CAAAnC,SAAA,4BAAuC,EAAAA,SAChFW,EAACyB,EAAOC,EAAA,CACN7J,SAAUA,GACVY,QAASA,GACTE,4BAA6BA,GAC7BH,YAAaA,GACbc,gBAAiBA,IACbE,UAIVwG,EAAC2B,EAAS,CACR9J,SAAUA,GACV+F,iBAAkBA,GAClBnD,oBAAqBA,GACrBI,mBAAoBA,GACpBL,iBAAkBA,GAClBI,gBAAiBA,GACjBpC,YAAaA,GACbe,aAAcA,KAEhByG,EAAC4B,EAAY,CACXpH,iBAAkBA,GAClBI,gBAAiBA,GACjB/C,SAAUA,GACVW,YAAaA,KAEd4B,IACC4F,EAAA,MAAA,CAAKhB,UAAWE,EAAO2C,iBAAkBC,MAAO,CAAEnM,gBAAiBoM,EAAK,MAAO1C,SAC7EW,EAACgC,EAAgB,MAGpBhH,IACCgF,EAACiC,EAAkB,CACjBC,KAAMlH,GACNmH,MAAK,UAAA5D,OAAY7C,IACjBoF,KAAI,mCAAAvC,OAAqC7C,GAAoC,yBAC7E0G,YAAa,WAAA,OAAMnH,IAAoB,EAAO,EAC9CoH,SA9Ha,WACnB7F,MA8HM8F,OAAO,aAKjB"}
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/defineProperty";import e from"@babel/runtime/helpers/slicedToArray";import{useState as r,useEffect as t}from"react";import n from"prop-types";import{withStyles as i,Tooltip as a,Menu as s}from"@material-ui/core";import{MoreVert as p}from"@material-ui/icons";import l from"../IconButton/index.js";import{jsx as c,jsxs as u,Fragment as d}from"react/jsx-runtime";function m(o,e){var r=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.push.apply(r,t)}return r}function h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?m(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}))}return e}function f(o){var n=o.classes,i=o["data-testid"],p=o.iconButtonStyle,l=o.color,m=o.disableRipple,f=o.className,b=o.IconElement,g=o.IconButtonComponent,O=o.disabled,y=o.iconButtonProps,P=o.children,v=o.anchorOrigin,j=o.transformOrigin,B=o.marginThreshold,T=o.menuProps,C=o.tooltipProps,w=o.paperClassName,I=r(null),N=e(I,2),R=N[0],x=N[1],D=!!R,E=r(!1),S=e(E,2),k=S[0],z=S[1];t((function(){var o;return D&&setTimeout((function(){o=z(D)}),500),function(){o&&clearTimeout(o)}}),[D]);var M=function(o){o.stopPropagation(),x(null),z(!1)},A=c(g,h(h({"aria-label":"IconMenu","aria-owns":D?"icon-menu":void 0,"aria-haspopup":"true","data-testid":i,onClick:function(o){o.stopPropagation(),o.preventDefault(),x(o.currentTarget)},classes:{root:n.iconButton},className:f,style:p,color:l,disableRipple:m,disabled:O},y),{},{children:b}));return u(d,{children:[C?c(a,h(h({},C),{},{children:A})):A,c(s,h(h({id:"icon-menu",anchorEl:R,open:D,MenuListProps:{"data-testid":"".concat(i,"Dropdown")},disableAutoFocus:!k,autoFocus:k,onClose:M,onClick:M,anchorOrigin:v,transformOrigin:j,classes:{paper:n.paper},elevation:0,marginThreshold:B,PaperProps:{className:n[w]}},T),{},{children:P}))]})}f.propTypes={children:n.oneOfType([n.string,n.node,n.array]),classes:n.shape({iconButton:n.string,paper:n.string}),className:n.string,color:n.string,IconElement:n.element,IconButtonComponent:n.any,iconButtonStyle:n.shape({}),anchorOrigin:n.shape({horizontal:n.oneOf(["left","center","right"]),vertical:n.oneOf(["top","center","bottom"])}),transformOrigin:n.shape({horizontal:n.oneOf(["left","center","right"]),vertical:n.oneOf(["top","center","bottom"])}),disableRipple:n.bool,"data-testid":n.string,marginThreshold:n.number,disabled:n.bool,tooltipProps:n.shape({}),menuProps:n.shape({}),iconButtonProps:n.shape({}),paperClassName:n.string},f.defaultProps={children:void 0,classes:{},className:void 0,color:void 0,"data-testid":void 0,IconElement:c(p,{}),iconButtonStyle:void 0,IconButtonComponent:l,disableRipple:!1,anchorOrigin:{horizontal:"right",vertical:"top"},transformOrigin:{horizontal:"right",vertical:"bottom"},marginThreshold:void 0,disabled:!1,tooltipProps:void 0,menuProps:{},iconButtonProps:{},paperClassName:""};var b=i((function(o){return{iconButton:{borderRadius:8,padding:"10px",color:o.palette.primary.text6,"&:hover":{color:o.palette.primary.text1,backgroundColor:"rgba(255, 255, 255, 0.16)"},"& .MuiTouchRipple-child":{borderRadius:8}},paper:{}}}))(f);export{b as default};
1
+ import o from"@babel/runtime/helpers/defineProperty";import e from"@babel/runtime/helpers/slicedToArray";import{useState as r,useEffect as t}from"react";import n from"prop-types";import{withStyles as i,Tooltip as a,Menu as s}from"@material-ui/core";import p from"@material-ui/icons/MoreVert";import l from"../IconButton/index.js";import{jsx as c,jsxs as u,Fragment as d}from"react/jsx-runtime";function m(o,e){var r=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.push.apply(r,t)}return r}function h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?m(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}))}return e}function f(o){var n=o.classes,i=o["data-testid"],p=o.iconButtonStyle,l=o.color,m=o.disableRipple,f=o.className,b=o.IconElement,g=o.IconButtonComponent,O=o.disabled,y=o.iconButtonProps,P=o.children,v=o.anchorOrigin,j=o.transformOrigin,B=o.marginThreshold,T=o.menuProps,C=o.tooltipProps,w=o.paperClassName,I=r(null),N=e(I,2),R=N[0],x=N[1],D=!!R,E=r(!1),S=e(E,2),k=S[0],z=S[1];t((function(){var o;return D&&setTimeout((function(){o=z(D)}),500),function(){o&&clearTimeout(o)}}),[D]);var M=function(o){o.stopPropagation(),x(null),z(!1)},A=c(g,h(h({"aria-label":"IconMenu","aria-owns":D?"icon-menu":void 0,"aria-haspopup":"true","data-testid":i,onClick:function(o){o.stopPropagation(),o.preventDefault(),x(o.currentTarget)},classes:{root:n.iconButton},className:f,style:p,color:l,disableRipple:m,disabled:O},y),{},{children:b}));return u(d,{children:[C?c(a,h(h({},C),{},{children:A})):A,c(s,h(h({id:"icon-menu",anchorEl:R,open:D,MenuListProps:{"data-testid":"".concat(i,"Dropdown")},disableAutoFocus:!k,autoFocus:k,onClose:M,onClick:M,anchorOrigin:v,transformOrigin:j,classes:{paper:n.paper},elevation:0,marginThreshold:B,PaperProps:{className:n[w]}},T),{},{children:P}))]})}f.propTypes={children:n.oneOfType([n.string,n.node,n.array]),classes:n.shape({iconButton:n.string,paper:n.string}),className:n.string,color:n.string,IconElement:n.element,IconButtonComponent:n.any,iconButtonStyle:n.shape({}),anchorOrigin:n.shape({horizontal:n.oneOf(["left","center","right"]),vertical:n.oneOf(["top","center","bottom"])}),transformOrigin:n.shape({horizontal:n.oneOf(["left","center","right"]),vertical:n.oneOf(["top","center","bottom"])}),disableRipple:n.bool,"data-testid":n.string,marginThreshold:n.number,disabled:n.bool,tooltipProps:n.shape({}),menuProps:n.shape({}),iconButtonProps:n.shape({}),paperClassName:n.string},f.defaultProps={children:void 0,classes:{},className:void 0,color:void 0,"data-testid":void 0,IconElement:c(p,{}),iconButtonStyle:void 0,IconButtonComponent:l,disableRipple:!1,anchorOrigin:{horizontal:"right",vertical:"top"},transformOrigin:{horizontal:"right",vertical:"bottom"},marginThreshold:void 0,disabled:!1,tooltipProps:void 0,menuProps:{},iconButtonProps:{},paperClassName:""};var b=i((function(o){return{iconButton:{borderRadius:8,padding:"10px",color:o.palette.primary.text6,"&:hover":{color:o.palette.primary.text1,backgroundColor:"rgba(255, 255, 255, 0.16)"},"& .MuiTouchRipple-child":{borderRadius:8}},paper:{}}}))(f);export{b as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/IconMenu/index.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu, withStyles, Tooltip } from '@material-ui/core';\nimport { MoreVert } from '@material-ui/icons';\n\nimport IconButton from '../IconButton';\n\nconst muiStyles = theme => ({\n iconButton: {\n borderRadius: 8,\n padding: '10px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n backgroundColor: 'rgba(255, 255, 255, 0.16)',\n },\n '& .MuiTouchRipple-child': {\n borderRadius: 8,\n },\n },\n paper: {},\n});\n\nfunction IconMenu({\n classes,\n // IconButtonComponentProps\n 'data-testid': testId,\n iconButtonStyle,\n color,\n disableRipple,\n className,\n IconElement,\n IconButtonComponent,\n disabled,\n iconButtonProps,\n // MenuProps\n children,\n anchorOrigin,\n transformOrigin,\n marginThreshold,\n menuProps,\n // Tooltip\n tooltipProps,\n paperClassName,\n}) {\n const [anchorEl, setAnchorEl] = useState(null);\n const isOpen = !!anchorEl;\n\n /*\n A fix of the issue: https://corvaqa.atlassian.net/browse/DC-3713\n\n When Material Menu is rendered, at first it's displayed at the top of the container\n and only then moves to the anchor element. When the focus is enabled, and the element is\n inside of an iframe but outside the view - browsers scroll the page to it. Because of this, we set focus in async\n manner, to wait for correct position - and then set focus.\n\n https://github.dev/mui/material-ui/blob/v4.x/packages/material-ui/src/Popover/Popover.js#L323-L331\n */\n const [isMenuAutofocus, setIsMenuAutofocus] = useState(false);\n useEffect(() => {\n let timerId;\n\n if (isOpen) {\n setTimeout(() => {\n timerId = setIsMenuAutofocus(isOpen);\n // Why 500? The lower delay doesn't actually work, so this is the lowest value I could get to make it work\n }, 500);\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId);\n }\n };\n }, [isOpen]);\n\n const handleClose = event => {\n event.stopPropagation();\n setAnchorEl(null);\n setIsMenuAutofocus(false);\n };\n const handleOpen = event => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const iconButtonElement = (\n <IconButtonComponent\n aria-label=\"IconMenu\"\n aria-owns={isOpen ? 'icon-menu' : undefined}\n aria-haspopup=\"true\"\n data-testid={testId}\n onClick={handleOpen}\n classes={{ root: classes.iconButton }}\n className={className}\n style={iconButtonStyle}\n color={color}\n disableRipple={disableRipple}\n disabled={disabled}\n {...iconButtonProps}\n >\n {IconElement}\n </IconButtonComponent>\n );\n\n return (\n <>\n {tooltipProps ? <Tooltip {...tooltipProps}>{iconButtonElement}</Tooltip> : iconButtonElement}\n <Menu\n id=\"icon-menu\"\n anchorEl={anchorEl}\n open={isOpen}\n MenuListProps={{ 'data-testid': `${testId}Dropdown` }}\n disableAutoFocus={!isMenuAutofocus}\n autoFocus={isMenuAutofocus}\n onClose={handleClose}\n onClick={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n classes={{ paper: classes.paper }}\n elevation={0}\n marginThreshold={marginThreshold}\n PaperProps={{\n className: classes[paperClassName],\n }}\n {...menuProps}\n >\n {children}\n </Menu>\n </>\n );\n}\n\nIconMenu.propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.array]),\n classes: PropTypes.shape({\n iconButton: PropTypes.string,\n paper: PropTypes.string,\n }),\n className: PropTypes.string,\n color: PropTypes.string,\n IconElement: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n IconButtonComponent: PropTypes.any,\n iconButtonStyle: PropTypes.shape({}),\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'center', 'right']),\n vertical: PropTypes.oneOf(['top', 'center', 'bottom']),\n }),\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'center', 'right']),\n vertical: PropTypes.oneOf(['top', 'center', 'bottom']),\n }),\n disableRipple: PropTypes.bool,\n 'data-testid': PropTypes.string,\n marginThreshold: PropTypes.number,\n disabled: PropTypes.bool,\n tooltipProps: PropTypes.shape({}),\n menuProps: PropTypes.shape({}),\n iconButtonProps: PropTypes.shape({}),\n paperClassName: PropTypes.string,\n};\n\nIconMenu.defaultProps = {\n children: undefined,\n classes: {},\n className: undefined,\n color: undefined,\n 'data-testid': undefined,\n IconElement: <MoreVert />,\n iconButtonStyle: undefined,\n IconButtonComponent: IconButton,\n disableRipple: false,\n anchorOrigin: { horizontal: 'right', vertical: 'top' },\n transformOrigin: { horizontal: 'right', vertical: 'bottom' },\n marginThreshold: undefined,\n disabled: false,\n tooltipProps: undefined,\n menuProps: {},\n iconButtonProps: {},\n paperClassName: '',\n};\n\nexport default withStyles(muiStyles)(IconMenu);\n"],"names":["IconMenu","_ref","classes","testId","iconButtonStyle","color","disableRipple","className","IconElement","IconButtonComponent","disabled","iconButtonProps","children","anchorOrigin","transformOrigin","marginThreshold","menuProps","tooltipProps","paperClassName","useState","_useState2","_slicedToArray","_useState","anchorEl","setAnchorEl","isOpen","_useState4","_useState3","isMenuAutofocus","setIsMenuAutofocus","useEffect","timerId","setTimeout","clearTimeout","handleClose","event","stopPropagation","iconButtonElement","_jsx","_objectSpread","undefined","onClick","preventDefault","currentTarget","root","iconButton","style","_jsxs","_Fragment","Tooltip","Menu","id","open","MenuListProps","disableAutoFocus","autoFocus","onClose","paper","elevation","PaperProps","propTypes","PropTypes","oneOfType","string","node","array","shape","element","any","horizontal","oneOf","vertical","bool","number","defaultProps","MoreVert","IconButton","index","withStyles","theme","borderRadius","padding","palette","primary","text6","text1","backgroundColor"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/IconMenu/index.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu, withStyles, Tooltip } from '@material-ui/core';\nimport MoreVert from '@material-ui/icons/MoreVert';\n\nimport IconButton from '../IconButton';\n\nconst muiStyles = theme => ({\n iconButton: {\n borderRadius: 8,\n padding: '10px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n backgroundColor: 'rgba(255, 255, 255, 0.16)',\n },\n '& .MuiTouchRipple-child': {\n borderRadius: 8,\n },\n },\n paper: {},\n});\n\nfunction IconMenu({\n classes,\n // IconButtonComponentProps\n 'data-testid': testId,\n iconButtonStyle,\n color,\n disableRipple,\n className,\n IconElement,\n IconButtonComponent,\n disabled,\n iconButtonProps,\n // MenuProps\n children,\n anchorOrigin,\n transformOrigin,\n marginThreshold,\n menuProps,\n // Tooltip\n tooltipProps,\n paperClassName,\n}) {\n const [anchorEl, setAnchorEl] = useState(null);\n const isOpen = !!anchorEl;\n\n /*\n A fix of the issue: https://corvaqa.atlassian.net/browse/DC-3713\n\n When Material Menu is rendered, at first it's displayed at the top of the container\n and only then moves to the anchor element. When the focus is enabled, and the element is\n inside of an iframe but outside the view - browsers scroll the page to it. Because of this, we set focus in async\n manner, to wait for correct position - and then set focus.\n\n https://github.dev/mui/material-ui/blob/v4.x/packages/material-ui/src/Popover/Popover.js#L323-L331\n */\n const [isMenuAutofocus, setIsMenuAutofocus] = useState(false);\n useEffect(() => {\n let timerId;\n\n if (isOpen) {\n setTimeout(() => {\n timerId = setIsMenuAutofocus(isOpen);\n // Why 500? The lower delay doesn't actually work, so this is the lowest value I could get to make it work\n }, 500);\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId);\n }\n };\n }, [isOpen]);\n\n const handleClose = event => {\n event.stopPropagation();\n setAnchorEl(null);\n setIsMenuAutofocus(false);\n };\n const handleOpen = event => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const iconButtonElement = (\n <IconButtonComponent\n aria-label=\"IconMenu\"\n aria-owns={isOpen ? 'icon-menu' : undefined}\n aria-haspopup=\"true\"\n data-testid={testId}\n onClick={handleOpen}\n classes={{ root: classes.iconButton }}\n className={className}\n style={iconButtonStyle}\n color={color}\n disableRipple={disableRipple}\n disabled={disabled}\n {...iconButtonProps}\n >\n {IconElement}\n </IconButtonComponent>\n );\n\n return (\n <>\n {tooltipProps ? <Tooltip {...tooltipProps}>{iconButtonElement}</Tooltip> : iconButtonElement}\n <Menu\n id=\"icon-menu\"\n anchorEl={anchorEl}\n open={isOpen}\n MenuListProps={{ 'data-testid': `${testId}Dropdown` }}\n disableAutoFocus={!isMenuAutofocus}\n autoFocus={isMenuAutofocus}\n onClose={handleClose}\n onClick={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n classes={{ paper: classes.paper }}\n elevation={0}\n marginThreshold={marginThreshold}\n PaperProps={{\n className: classes[paperClassName],\n }}\n {...menuProps}\n >\n {children}\n </Menu>\n </>\n );\n}\n\nIconMenu.propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.array]),\n classes: PropTypes.shape({\n iconButton: PropTypes.string,\n paper: PropTypes.string,\n }),\n className: PropTypes.string,\n color: PropTypes.string,\n IconElement: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n IconButtonComponent: PropTypes.any,\n iconButtonStyle: PropTypes.shape({}),\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'center', 'right']),\n vertical: PropTypes.oneOf(['top', 'center', 'bottom']),\n }),\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'center', 'right']),\n vertical: PropTypes.oneOf(['top', 'center', 'bottom']),\n }),\n disableRipple: PropTypes.bool,\n 'data-testid': PropTypes.string,\n marginThreshold: PropTypes.number,\n disabled: PropTypes.bool,\n tooltipProps: PropTypes.shape({}),\n menuProps: PropTypes.shape({}),\n iconButtonProps: PropTypes.shape({}),\n paperClassName: PropTypes.string,\n};\n\nIconMenu.defaultProps = {\n children: undefined,\n classes: {},\n className: undefined,\n color: undefined,\n 'data-testid': undefined,\n IconElement: <MoreVert />,\n iconButtonStyle: undefined,\n IconButtonComponent: IconButton,\n disableRipple: false,\n anchorOrigin: { horizontal: 'right', vertical: 'top' },\n transformOrigin: { horizontal: 'right', vertical: 'bottom' },\n marginThreshold: undefined,\n disabled: false,\n tooltipProps: undefined,\n menuProps: {},\n iconButtonProps: {},\n paperClassName: '',\n};\n\nexport default withStyles(muiStyles)(IconMenu);\n"],"names":["IconMenu","_ref","classes","testId","iconButtonStyle","color","disableRipple","className","IconElement","IconButtonComponent","disabled","iconButtonProps","children","anchorOrigin","transformOrigin","marginThreshold","menuProps","tooltipProps","paperClassName","useState","_useState2","_slicedToArray","_useState","anchorEl","setAnchorEl","isOpen","_useState4","_useState3","isMenuAutofocus","setIsMenuAutofocus","useEffect","timerId","setTimeout","clearTimeout","handleClose","event","stopPropagation","iconButtonElement","_jsx","_objectSpread","undefined","onClick","preventDefault","currentTarget","root","iconButton","style","_jsxs","_Fragment","Tooltip","Menu","id","open","MenuListProps","disableAutoFocus","autoFocus","onClose","paper","elevation","PaperProps","propTypes","PropTypes","oneOfType","string","node","array","shape","element","any","horizontal","oneOf","vertical","bool","number","defaultProps","MoreVert","IconButton","index","withStyles","theme","borderRadius","padding","palette","primary","text6","text1","backgroundColor"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import t from"@babel/runtime/helpers/slicedToArray";import{useState as o}from"react";import{makeStyles as e,Tooltip as i,Chip as r}from"@material-ui/core";import{Close as l}from"@material-ui/icons";import a from"../MiddleTruncate/MiddleTruncate.js";import n from"../../utils/main.js";import c from"./icons/SubjectIcon.js";import{jsxs as s,jsx as m,Fragment as d}from"react/jsx-runtime";var p=e((function(t){return{chipRoot:{position:"relative",height:30,padding:"7px 12px",fontSize:12,color:t.palette.primary.text6,margin:"2px 4px","&:hover":{cursor:"pointer",backgroundColor:"rgba(255, 255, 255, 0.1)",color:t.palette.primary.contrastText}},root:{width:"100%",display:"flex",alignItems:"center"},label:{padding:0},mark:{marginRight:4,width:8,height:8,borderRadius:8},subject:{display:"flex",marginRight:4},closeIcon:{fontSize:"1rem",marginLeft:"4px"},closeArea:{position:"absolute",top:0,right:0,width:32,height:30},tooltip:{marginTop:"8px"},titleContainer:{display:"flex",alignItems:"center"}}})),u=function(e){var u=e.title,h=e.onClick,f=void 0===h?null:h,g=e.markColor,b=void 0===g?null:g,v=e.isSubject,x=e.rigName,k=void 0===x?null:x,C=e.maxWidth,j=void 0===C?200:C,y=e.wellId,N=e.onRemoveOffsetWell,R=void 0===N?null:N,S=e.isShowMark,T=void 0===S||S,w=o(null),I=t(w,2),M=I[0],W=I[1],z=p({isShowMark:T}),A=!!M,F=k?"".concat(u," | ").concat(k):u,L=b||"#".concat(n.getColorFromString(u)),O=s("div",{className:z.root,children:[m(i,{title:A?F:null!=k?k:"",classes:{popper:z.tooltip},children:s("div",{className:z.titleContainer,children:[m("span",v?{className:z.subject,children:m(c,{})}:{style:{backgroundColor:L,display:T?"block":"none"},className:z.mark}),m(a,{onTruncate:function(t){W(t)},truncatedText:M,maxWidth:j,children:u})]})}),!v&&!!R&&s(d,{children:[m(l,{className:z.closeIcon}),m(i,{title:"Remove",classes:{popper:z.tooltip},children:m("div",{className:z.closeArea,onClick:function(t){t.stopPropagation(),R&&R(y)}})})]})]});return m(r,{"data-not-migrated-MuiChip":!0,variant:"outlined",size:"medium",label:O,classes:{root:z.chipRoot,label:z.label},onClick:function(t){return f&&f(t,y)},"data-testid":"".concat(u,"_offsetWellChip")})};export{u as default};
1
+ import o from"@babel/runtime/helpers/slicedToArray";import{useState as t}from"react";import{makeStyles as e,Tooltip as i,Chip as r}from"@material-ui/core";import l from"@material-ui/icons/Close";import a from"../MiddleTruncate/MiddleTruncate.js";import n from"../../utils/main.js";import c from"./icons/SubjectIcon.js";import{jsxs as s,jsx as m,Fragment as d}from"react/jsx-runtime";var p=e((function(o){return{chipRoot:{position:"relative",height:30,padding:"7px 12px",fontSize:12,color:o.palette.primary.text6,margin:"2px 4px","&:hover":{cursor:"pointer",backgroundColor:"rgba(255, 255, 255, 0.1)",color:o.palette.primary.contrastText}},root:{width:"100%",display:"flex",alignItems:"center"},label:{padding:0},mark:{marginRight:4,width:8,height:8,borderRadius:8},subject:{display:"flex",marginRight:4},closeIcon:{fontSize:"1rem",marginLeft:"4px"},closeArea:{position:"absolute",top:0,right:0,width:32,height:30},tooltip:{marginTop:"8px"},titleContainer:{display:"flex",alignItems:"center"}}})),u=function(e){var u=e.title,h=e.onClick,f=void 0===h?null:h,g=e.markColor,b=void 0===g?null:g,v=e.isSubject,x=e.rigName,C=void 0===x?null:x,k=e.maxWidth,j=void 0===k?200:k,y=e.wellId,N=e.onRemoveOffsetWell,R=void 0===N?null:N,S=e.isShowMark,T=void 0===S||S,w=t(null),I=o(w,2),M=I[0],W=I[1],z=p({isShowMark:T}),A=!!M,F=C?"".concat(u," | ").concat(C):u,L=b||"#".concat(n.getColorFromString(u)),O=s("div",{className:z.root,children:[m(i,{title:A?F:null!=C?C:"",classes:{popper:z.tooltip},children:s("div",{className:z.titleContainer,children:[m("span",v?{className:z.subject,children:m(c,{})}:{style:{backgroundColor:L,display:T?"block":"none"},className:z.mark}),m(a,{onTruncate:function(o){W(o)},truncatedText:M,maxWidth:j,children:u})]})}),!v&&!!R&&s(d,{children:[m(l,{className:z.closeIcon}),m(i,{title:"Remove",classes:{popper:z.tooltip},children:m("div",{className:z.closeArea,onClick:function(o){o.stopPropagation(),R&&R(y)}})})]})]});return m(r,{"data-not-migrated-MuiChip":!0,variant:"outlined",size:"medium",label:O,classes:{root:z.chipRoot,label:z.label},onClick:function(o){return f&&f(o,y)},"data-testid":"".concat(u,"_offsetWellChip")})};export{u as default};
2
2
  //# sourceMappingURL=Chip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.js","sources":["../../../src/components/OffsetWellChips/Chip.tsx"],"sourcesContent":["import { type MouseEvent, useState } from 'react';\nimport { Chip, Tooltip, makeStyles } from '@material-ui/core';\nimport { Close } from '@material-ui/icons';\nimport MiddleTruncate from '../MiddleTruncate';\nimport { ChipProps } from './types';\nimport utils from '~/utils/main';\nimport SubjectIcon from './icons/SubjectIcon';\n\nconst useStyles = makeStyles(theme => ({\n chipRoot: {\n position: 'relative',\n height: 30,\n padding: '7px 12px',\n fontSize: 12,\n color: theme.palette.primary.text6,\n margin: '2px 4px',\n '&:hover': {\n cursor: 'pointer',\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n color: theme.palette.primary.contrastText,\n },\n },\n root: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n label: {\n padding: 0,\n },\n mark: {\n marginRight: 4,\n width: 8,\n height: 8,\n borderRadius: 8,\n },\n subject: {\n display: 'flex',\n marginRight: 4,\n },\n closeIcon: {\n fontSize: '1rem',\n marginLeft: '4px',\n },\n closeArea: {\n position: 'absolute',\n top: 0,\n right: 0,\n width: 32,\n height: 30,\n },\n tooltip: {\n marginTop: '8px',\n },\n titleContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n}));\n\nconst OffsetWellChip = <T extends unknown>({\n title,\n onClick = null,\n markColor = null,\n isSubject,\n rigName = null,\n maxWidth = 200,\n wellId,\n onRemoveOffsetWell = null,\n isShowMark = true,\n}: ChipProps<T>): JSX.Element => {\n const [truncatedText, setTruncatedText] = useState<string | null>(null);\n\n const styles = useStyles({\n isShowMark,\n });\n const isTruncated = !!truncatedText;\n const fullTooltip = rigName ? `${title} | ${rigName}` : title;\n\n const handleTruncatedText = (truncatedText: string) => {\n setTruncatedText(truncatedText);\n };\n\n const handleRemoveWell = (e: MouseEvent) => {\n e.stopPropagation();\n if (onRemoveOffsetWell) onRemoveOffsetWell(wellId);\n };\n\n const markBackgroundColor = markColor || `#${utils.getColorFromString(title)}`;\n\n const label = (\n <div className={styles.root}>\n <Tooltip\n title={isTruncated ? fullTooltip : rigName ?? ''}\n classes={{ popper: styles.tooltip }}\n >\n <div className={styles.titleContainer}>\n {isSubject ? (\n <span className={styles.subject}>\n <SubjectIcon />\n </span>\n ) : (\n <span\n style={{\n backgroundColor: markBackgroundColor,\n display: isShowMark ? 'block' : 'none',\n }}\n className={styles.mark}\n />\n )}\n <MiddleTruncate\n onTruncate={handleTruncatedText}\n truncatedText={truncatedText}\n maxWidth={maxWidth}\n >\n {title}\n </MiddleTruncate>\n </div>\n </Tooltip>\n {!isSubject && !!onRemoveOffsetWell && (\n <>\n <Close className={styles.closeIcon} />\n <Tooltip title=\"Remove\" classes={{ popper: styles.tooltip }}>\n <div className={styles.closeArea} onClick={handleRemoveWell}></div>\n </Tooltip>\n </>\n )}\n </div>\n );\n\n return (\n <Chip\n data-not-migrated-MuiChip\n variant=\"outlined\"\n size=\"medium\"\n label={label}\n classes={{ root: styles.chipRoot, label: styles.label }}\n onClick={e => onClick && onClick(e, wellId)}\n data-testid={`${title}_offsetWellChip`}\n />\n );\n};\n\nexport default OffsetWellChip;\n"],"names":["useStyles","makeStyles","theme","chipRoot","position","height","padding","fontSize","color","palette","primary","text6","margin","cursor","backgroundColor","contrastText","root","width","display","alignItems","label","mark","marginRight","borderRadius","subject","closeIcon","marginLeft","closeArea","top","right","tooltip","marginTop","titleContainer","OffsetWellChip","_ref","title","_ref$onClick","onClick","_ref$markColor","markColor","isSubject","_ref$rigName","rigName","_ref$maxWidth","maxWidth","wellId","_ref$onRemoveOffsetWe","onRemoveOffsetWell","_ref$isShowMark","isShowMark","useState","_useState2","_slicedToArray","_useState","truncatedText","setTruncatedText","styles","isTruncated","fullTooltip","concat","markBackgroundColor","utils","getColorFromString","_jsxs","className","children","_jsx","Tooltip","classes","popper","SubjectIcon","style","MiddleTruncate","onTruncate","_Fragment","Close","e","stopPropagation","Chip","variant","size"],"mappings":"kYAQA,IAAMA,EAAYC,GAAW,SAAAC,GAAK,MAAK,CACrCC,SAAU,CACRC,SAAU,WACVC,OAAQ,GACRC,QAAS,WACTC,SAAU,GACVC,MAAON,EAAMO,QAAQC,QAAQC,MAC7BC,OAAQ,UACR,UAAW,CACTC,OAAQ,UACRC,gBAAiB,2BACjBN,MAAON,EAAMO,QAAQC,QAAQK,eAGjCC,KAAM,CACJC,MAAO,OACPC,QAAS,OACTC,WAAY,UAEdC,MAAO,CACLd,QAAS,GAEXe,KAAM,CACJC,YAAa,EACbL,MAAO,EACPZ,OAAQ,EACRkB,aAAc,GAEhBC,QAAS,CACPN,QAAS,OACTI,YAAa,GAEfG,UAAW,CACTlB,SAAU,OACVmB,WAAY,OAEdC,UAAW,CACTvB,SAAU,WACVwB,IAAK,EACLC,MAAO,EACPZ,MAAO,GACPZ,OAAQ,IAEVyB,QAAS,CACPC,UAAW,OAEbC,eAAgB,CACdd,QAAS,OACTC,WAAY,UAEf,IAEKc,EAAiB,SAUUC,GAAA,IAT/BC,IAAAA,MAAKC,EAAAF,EACLG,QAAAA,aAAU,KAAID,EAAAE,EAAAJ,EACdK,UAAAA,aAAY,KAAID,EAChBE,IAAAA,UAASC,EAAAP,EACTQ,QAAAA,aAAU,KAAID,EAAAE,EAAAT,EACdU,SAAAA,aAAW,IAAGD,EACdE,IAAAA,OAAMC,EAAAZ,EACNa,mBAAAA,aAAqB,KAAID,EAAAE,EAAAd,EACzBe,WAAAA,cAAiBD,EAEyBE,EAAAA,EAAwB,MAAKC,EAAAC,EAAAC,EAAA,GAAhEC,EAAaH,EAAA,GAAEI,EAAgBJ,EAAA,GAEhCK,EAASxD,EAAU,CACvBiD,WAAAA,IAEIQ,IAAgBH,EAChBI,EAAchB,EAAO,GAAAiB,OAAMxB,EAAWO,OAAAA,OAAAA,GAAYP,EAWlDyB,EAAsBrB,GAAiBsB,IAAAA,OAAAA,EAAMC,mBAAmB3B,IAEhEf,EACJ2C,EAAA,MAAA,CAAKC,UAAWR,EAAOxC,KAAKiD,SAAA,CAC1BC,EAACC,EAAO,CACNhC,MAAOsB,EAAcC,EAAchB,QAAAA,EAAW,GAC9C0B,QAAS,CAAEC,OAAQb,EAAO1B,SAAUmC,SAEpCF,EAAA,MAAA,CAAKC,UAAWR,EAAOxB,eAAeiC,SAAA,CAElCC,EAAA,OADD1B,EACC,CAAMwB,UAAWR,EAAOhC,QAAQyC,SAC9BC,EAACI,EAAW,KAGd,CACEC,MAAO,CACLzD,gBAAiB8C,EACjB1C,QAAS+B,EAAa,QAAU,QAElCe,UAAWR,EAAOnC,OAGtB6C,EAACM,EAAc,CACbC,WAhCkB,SAACnB,GAC3BC,EAAiBD,IAgCTA,cAAeA,EACfV,SAAUA,EAASqB,SAElB9B,UAILK,KAAeO,GACfgB,EAAAW,EAAA,CAAAT,SAAA,CACEC,EAACS,EAAK,CAACX,UAAWR,EAAO/B,YACzByC,EAACC,EAAO,CAAChC,MAAM,SAASiC,QAAS,CAAEC,OAAQb,EAAO1B,SAAUmC,SAC1DC,EAAA,MAAA,CAAKF,UAAWR,EAAO7B,UAAWU,QAxCnB,SAACuC,GACxBA,EAAEC,kBACE9B,GAAoBA,EAAmBF,cA6C7C,OACEqB,EAACY,EAAI,CACH,6BAAyB,EACzBC,QAAQ,WACRC,KAAK,SACL5D,MAAOA,EACPgD,QAAS,CAAEpD,KAAMwC,EAAOrD,SAAUiB,MAAOoC,EAAOpC,OAChDiB,QAAS,SAAAuC,GAAC,OAAIvC,GAAWA,EAAQuC,EAAG/B,EAAQ,EAC5C,cAAA,GAAAc,OAAgBxB,EAAK,oBAG3B"}
1
+ {"version":3,"file":"Chip.js","sources":["../../../src/components/OffsetWellChips/Chip.tsx"],"sourcesContent":["import { type MouseEvent, useState } from 'react';\nimport { Chip, Tooltip, makeStyles } from '@material-ui/core';\nimport Close from '@material-ui/icons/Close';\nimport MiddleTruncate from '../MiddleTruncate';\nimport { ChipProps } from './types';\nimport utils from '~/utils/main';\nimport SubjectIcon from './icons/SubjectIcon';\n\nconst useStyles = makeStyles(theme => ({\n chipRoot: {\n position: 'relative',\n height: 30,\n padding: '7px 12px',\n fontSize: 12,\n color: theme.palette.primary.text6,\n margin: '2px 4px',\n '&:hover': {\n cursor: 'pointer',\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n color: theme.palette.primary.contrastText,\n },\n },\n root: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n label: {\n padding: 0,\n },\n mark: {\n marginRight: 4,\n width: 8,\n height: 8,\n borderRadius: 8,\n },\n subject: {\n display: 'flex',\n marginRight: 4,\n },\n closeIcon: {\n fontSize: '1rem',\n marginLeft: '4px',\n },\n closeArea: {\n position: 'absolute',\n top: 0,\n right: 0,\n width: 32,\n height: 30,\n },\n tooltip: {\n marginTop: '8px',\n },\n titleContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n}));\n\nconst OffsetWellChip = <T extends unknown>({\n title,\n onClick = null,\n markColor = null,\n isSubject,\n rigName = null,\n maxWidth = 200,\n wellId,\n onRemoveOffsetWell = null,\n isShowMark = true,\n}: ChipProps<T>): JSX.Element => {\n const [truncatedText, setTruncatedText] = useState<string | null>(null);\n\n const styles = useStyles({\n isShowMark,\n });\n const isTruncated = !!truncatedText;\n const fullTooltip = rigName ? `${title} | ${rigName}` : title;\n\n const handleTruncatedText = (truncatedText: string) => {\n setTruncatedText(truncatedText);\n };\n\n const handleRemoveWell = (e: MouseEvent) => {\n e.stopPropagation();\n if (onRemoveOffsetWell) onRemoveOffsetWell(wellId);\n };\n\n const markBackgroundColor = markColor || `#${utils.getColorFromString(title)}`;\n\n const label = (\n <div className={styles.root}>\n <Tooltip\n title={isTruncated ? fullTooltip : rigName ?? ''}\n classes={{ popper: styles.tooltip }}\n >\n <div className={styles.titleContainer}>\n {isSubject ? (\n <span className={styles.subject}>\n <SubjectIcon />\n </span>\n ) : (\n <span\n style={{\n backgroundColor: markBackgroundColor,\n display: isShowMark ? 'block' : 'none',\n }}\n className={styles.mark}\n />\n )}\n <MiddleTruncate\n onTruncate={handleTruncatedText}\n truncatedText={truncatedText}\n maxWidth={maxWidth}\n >\n {title}\n </MiddleTruncate>\n </div>\n </Tooltip>\n {!isSubject && !!onRemoveOffsetWell && (\n <>\n <Close className={styles.closeIcon} />\n <Tooltip title=\"Remove\" classes={{ popper: styles.tooltip }}>\n <div className={styles.closeArea} onClick={handleRemoveWell}></div>\n </Tooltip>\n </>\n )}\n </div>\n );\n\n return (\n <Chip\n data-not-migrated-MuiChip\n variant=\"outlined\"\n size=\"medium\"\n label={label}\n classes={{ root: styles.chipRoot, label: styles.label }}\n onClick={e => onClick && onClick(e, wellId)}\n data-testid={`${title}_offsetWellChip`}\n />\n );\n};\n\nexport default OffsetWellChip;\n"],"names":["useStyles","makeStyles","theme","chipRoot","position","height","padding","fontSize","color","palette","primary","text6","margin","cursor","backgroundColor","contrastText","root","width","display","alignItems","label","mark","marginRight","borderRadius","subject","closeIcon","marginLeft","closeArea","top","right","tooltip","marginTop","titleContainer","OffsetWellChip","_ref","title","_ref$onClick","onClick","_ref$markColor","markColor","isSubject","_ref$rigName","rigName","_ref$maxWidth","maxWidth","wellId","_ref$onRemoveOffsetWe","onRemoveOffsetWell","_ref$isShowMark","isShowMark","useState","_useState2","_slicedToArray","_useState","truncatedText","setTruncatedText","styles","isTruncated","fullTooltip","concat","markBackgroundColor","utils","getColorFromString","_jsxs","className","children","_jsx","Tooltip","classes","popper","SubjectIcon","style","MiddleTruncate","onTruncate","_Fragment","Close","e","stopPropagation","Chip","variant","size"],"mappings":"+XAQA,IAAMA,EAAYC,GAAW,SAAAC,GAAK,MAAK,CACrCC,SAAU,CACRC,SAAU,WACVC,OAAQ,GACRC,QAAS,WACTC,SAAU,GACVC,MAAON,EAAMO,QAAQC,QAAQC,MAC7BC,OAAQ,UACR,UAAW,CACTC,OAAQ,UACRC,gBAAiB,2BACjBN,MAAON,EAAMO,QAAQC,QAAQK,eAGjCC,KAAM,CACJC,MAAO,OACPC,QAAS,OACTC,WAAY,UAEdC,MAAO,CACLd,QAAS,GAEXe,KAAM,CACJC,YAAa,EACbL,MAAO,EACPZ,OAAQ,EACRkB,aAAc,GAEhBC,QAAS,CACPN,QAAS,OACTI,YAAa,GAEfG,UAAW,CACTlB,SAAU,OACVmB,WAAY,OAEdC,UAAW,CACTvB,SAAU,WACVwB,IAAK,EACLC,MAAO,EACPZ,MAAO,GACPZ,OAAQ,IAEVyB,QAAS,CACPC,UAAW,OAEbC,eAAgB,CACdd,QAAS,OACTC,WAAY,UAEf,IAEKc,EAAiB,SAUUC,GAAA,IAT/BC,IAAAA,MAAKC,EAAAF,EACLG,QAAAA,aAAU,KAAID,EAAAE,EAAAJ,EACdK,UAAAA,aAAY,KAAID,EAChBE,IAAAA,UAASC,EAAAP,EACTQ,QAAAA,aAAU,KAAID,EAAAE,EAAAT,EACdU,SAAAA,aAAW,IAAGD,EACdE,IAAAA,OAAMC,EAAAZ,EACNa,mBAAAA,aAAqB,KAAID,EAAAE,EAAAd,EACzBe,WAAAA,cAAiBD,EAEyBE,EAAAA,EAAwB,MAAKC,EAAAC,EAAAC,EAAA,GAAhEC,EAAaH,EAAA,GAAEI,EAAgBJ,EAAA,GAEhCK,EAASxD,EAAU,CACvBiD,WAAAA,IAEIQ,IAAgBH,EAChBI,EAAchB,EAAO,GAAAiB,OAAMxB,EAAWO,OAAAA,OAAAA,GAAYP,EAWlDyB,EAAsBrB,GAAiBsB,IAAAA,OAAAA,EAAMC,mBAAmB3B,IAEhEf,EACJ2C,EAAA,MAAA,CAAKC,UAAWR,EAAOxC,KAAKiD,SAAA,CAC1BC,EAACC,EAAO,CACNhC,MAAOsB,EAAcC,EAAchB,QAAAA,EAAW,GAC9C0B,QAAS,CAAEC,OAAQb,EAAO1B,SAAUmC,SAEpCF,EAAA,MAAA,CAAKC,UAAWR,EAAOxB,eAAeiC,SAAA,CAElCC,EAAA,OADD1B,EACC,CAAMwB,UAAWR,EAAOhC,QAAQyC,SAC9BC,EAACI,EAAW,KAGd,CACEC,MAAO,CACLzD,gBAAiB8C,EACjB1C,QAAS+B,EAAa,QAAU,QAElCe,UAAWR,EAAOnC,OAGtB6C,EAACM,EAAc,CACbC,WAhCkB,SAACnB,GAC3BC,EAAiBD,IAgCTA,cAAeA,EACfV,SAAUA,EAASqB,SAElB9B,UAILK,KAAeO,GACfgB,EAAAW,EAAA,CAAAT,SAAA,CACEC,EAACS,EAAK,CAACX,UAAWR,EAAO/B,YACzByC,EAACC,EAAO,CAAChC,MAAM,SAASiC,QAAS,CAAEC,OAAQb,EAAO1B,SAAUmC,SAC1DC,EAAA,MAAA,CAAKF,UAAWR,EAAO7B,UAAWU,QAxCnB,SAACuC,GACxBA,EAAEC,kBACE9B,GAAoBA,EAAmBF,cA6C7C,OACEqB,EAACY,EAAI,CACH,6BAAyB,EACzBC,QAAQ,WACRC,KAAK,SACL5D,MAAOA,EACPgD,QAAS,CAAEpD,KAAMwC,EAAOrD,SAAUiB,MAAOoC,EAAOpC,OAChDiB,QAAS,SAAAuC,GAAC,OAAIvC,GAAWA,EAAQuC,EAAG/B,EAAQ,EAC5C,cAAA,GAAAc,OAAgBxB,EAAK,oBAG3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetWellMap.d.ts","sourceRoot":"","sources":["../../../src/components/OffsetWellMap/OffsetWellMap.js"],"names":[],"mappings":"AAKA,OAAO,8BAA8B,CAAC;AA6DtC,0EAA0E;AAC1E,QAAA,MAAM,aAAa,EADR,KAAK,CAAC,EAAE,CAAC,OAAO,sBAAsB,EAAE,kBAAkB,CAwcpE,CAAC;eAEa,aAAa"}
1
+ {"version":3,"file":"OffsetWellMap.d.ts","sourceRoot":"","sources":["../../../src/components/OffsetWellMap/OffsetWellMap.js"],"names":[],"mappings":"AAMA,OAAO,8BAA8B,CAAC;AA6DtC,0EAA0E;AAC1E,QAAA,MAAM,aAAa,EADR,KAAK,CAAC,EAAE,CAAC,OAAO,sBAAsB,EAAE,kBAAkB,CAwcpE,CAAC;eAEa,aAAa"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import{useMemo as r,useRef as o,useState as i,useEffect as l,createElement as n}from"react";import{get as s}from"lodash";import c from"classnames";import{Tooltip as a}from"@material-ui/core";import{Add as u,Remove as m}from"@material-ui/icons";import"mapbox-gl/dist/mapbox-gl.css";import{usePreviousWells as d}from"./effects/usePreviousWells.js";import{WellTooltip as p}from"./WellTooltip.js";import{getAllFormations as f}from"./utils.js";import v from"./OffsetWellMap.module.css.js";import"../../config/mapboxGl/index.js";import{IS_MAPBOX_ENABLED as h}from"../../config/mapbox/index.js";import"../UserMention/utils/index.js";import"../../utils/convert.js";import"../../constants/completion.js";import"moment";import"../../constants/alerts.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../utils/casing/validation.js";import"lodash/mean";import"../../constants/streamSourceType.js";import"lodash/get";import"file-saver";import"query-string";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/apps.js";import"../../constants/drillstring.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"../../utils/drillstring/conversion.js";import"lodash/set";import"lodash/cloneDeep";import"@babel/runtime/helpers/toConsumableArray";import"lodash/isNumber";import"lodash/has";import"../../utils/ga.js";import"../../utils/goalsConfig/goalsConfig.js";import"../../utils/lasParser.js";import"../../utils/main.js";import{isValidCoordinates as g}from"../../utils/mapbox.js";import"../../utils/metrics/metricsConfig.js";import"../../utils/mobileDetect.js";import"../../utils/feed.js";import"../../utils/reports.js";import"moment-timezone";import"@babel/runtime/helpers/typeof";import"../../utils/dashboardReports.js";import"../../utils/env.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../utils/jsonaDataFormatter.js";import"../../utils/bha.js";import"jsona";import"../../clients/jsonApi/index.js";import"@babel/runtime/helpers/objectWithoutProperties";import"../../utils/charts/Styles.scss.js";import"../../utils/getSingleAsset.js";import{createAdaptiveRoot as j}from"../../utils/createAdaptiveRoot.js";import{jsx as y,jsxs as b,Fragment as w}from"react/jsx-runtime";import W from"mapbox-gl";var C=[29.749907,-95.358421],x={type:"FeatureCollection",features:[]},D=["==",["id"],-1],F=function(e){var r=t(e,2),o=r[0];return[r[1],o]},M=function(e,r){for(var o=t(e,2),i=o[0],l=o[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:64,s=r/(111320*Math.cos(i*Math.PI/180)),c=r/110574,a=[],u=0;u<=n;u+=1){var m=u/n*2*Math.PI;a.push([l+s*Math.cos(m),i+c*Math.sin(m)])}return{type:"Polygon",coordinates:[a]}},B=function(B){var L=B.isViewOnly,S=B.subjectWell,O=void 0===S?null:S,P=B.wells,k=B.offsetWellIds,z=B.radius,I=B.handleChanageOffsetWell,T=B.handleChangeOffsetWell,Z=void 0===T?I:T,E=B.activeWellId,N=B.isClickable,A=void 0===N||N,G=B.classes,R=void 0===G?{}:G,V=r((function(){return O&&s(O,"topHole.coordinates")}),[O]),q=r((function(){return f(P)}),[P]),H=o(),U=o(),J=o(),K=o(null),Q=o(null),X=o(),Y=o(new Map),$=o(null),_=o(null),ee=o(null),te=i(!1),re=t(te,2),oe=re[0],ie=re[1],le=(null==O?void 0:O.id)===E,ne=d(P),se=i(!1),ce=t(se,2),ae=ce[0],ue=ce[1],me=i(3),de=t(me,2),pe=de[0],fe=de[1];l((function(){if(h){var e=new W.Map({container:H.current,style:"mapbox://styles/mapbox/dark-v9",center:F(C),zoom:3,maxZoom:18,attributionControl:!1,scrollZoom:!1,doubleClickZoom:!1});return U.current=e,e.on("zoomend",(function(){return fe(Math.round(e.getZoom()))})),e.on("load",(function(){e.addSource("radius-circle",{type:"geojson",data:x}),e.addLayer({id:"radius-circle-fill",type:"fill",source:"radius-circle",paint:{"fill-color":"#03BCD4","fill-opacity":.2}}),e.addSource("wells",{type:"geojson",data:x}),e.addLayer({id:"wells-halo",type:"circle",source:"wells",filter:["==",["get","isOffsetWell"],!0],paint:{"circle-radius":12,"circle-color":["get","color"],"circle-opacity":.08}}),e.addLayer({id:"wells-circle",type:"circle",source:"wells",layout:{"circle-sort-key":["get","order"]},paint:{"circle-radius":5,"circle-color":["get","color"],"circle-opacity":["get","opacity"]}}),e.addLayer({id:"wells-active-highlight",type:"circle",source:"wells",filter:["==",["get","isActive"],!0],paint:{"circle-radius":12,"circle-color":["get","color"],"circle-opacity":.24}}),e.addLayer({id:"wells-hover-highlight",type:"circle",source:"wells",filter:D,paint:{"circle-radius":["case",["get","isSubjectWell"],5,12],"circle-color":["case",["get","isSubjectWell"],"#63EFFF",["get","color"]],"circle-opacity":.24}}),ue(!0)})),function(){var t;null===(t=ee.current)||void 0===t||t.unmount(),ee.current=null,e.remove(),U.current=null,J.current=null,X.current=null,K.current=null,Q.current=null}}}),[]),l((function(){var e,r,o,i,l,n;K.current=V&&z?(e=1609.34*z,r=t(V,2),o=r[0],i=r[1],l=e/(111320*Math.cos(o*Math.PI/180)),[[i-l,o-(n=e/110574)],[i+l,o+n]]):null;var s=U.current;s&&ae&&s.getSource("radius-circle").setData(V&&z?{type:"Feature",properties:{},geometry:M(V,1609.34*z)}:x)}),[z,V,ae]);var ve=function(e,t,r,o){var i;null===(i=ee.current)||void 0===i||i.unmount();var l=document.createElement("div"),c=n(p(),{isViewOnly:L,well:e,color:s(q,e.formation,"#BDBDBD"),isOffsetWell:t,isSubjectWell:r,isClickable:A});ee.current=j(l),ee.current.render(y(w,{children:c})),J.current||(J.current=new W.Popup({closeButton:!1,offset:12})),J.current.setLngLat(F(o)).setDOMContent(l).addTo(U.current)};l((function(){var e=U.current;e&&ae&&e.setPaintProperty("wells-circle","circle-color",oe?["case",["get","isSubjectWell"],"#63EFFF",["get","color"]]:["get","color"])}),[oe,ae]),l((function(){var e;if(P&&k){null===(e=J.current)||void 0===e||e.remove();var t=[],r=[];P.forEach((function(e){e.id!==(null==O?void 0:O.id)&&(k.includes(e.id)?t.push(e):r.push(e))}));var o=[].concat(r,t,[O]),i=[],l=new W.LngLatBounds;Y.current.clear(),$.current=null,o.forEach((function(e,t){var r,o=null==e||null===(r=e.topHole)||void 0===r?void 0:r.coordinates;if(o&&g(o)){var n=(null==O?void 0:O.id)===e.id,c=k.includes(e.id)&&!n,a=n?"#03BCD4":s(q,e.formation,"#BDBDBD"),u=c?.7:.3;i.push({type:"Feature",id:t,geometry:{type:"Point",coordinates:F(o)},properties:{color:a,opacity:n?1:u,isSubjectWell:n,isOffsetWell:c,isActive:e.id===E&&!le,order:t}}),Y.current.set(t,{well:e,coords:o,isOffsetWell:c,isSubjectWell:n}),n&&($.current=t),l.extend(F(o))}})),Q.current=i.length?l:null;var n=U.current;if(n&&ae){n.getSource("wells").setData({type:"FeatureCollection",features:i}),n.setFilter("wells-hover-highlight",D),_.current=null;var c=function(e){var t,r=null===(t=e.features)||void 0===t?void 0:t[0];if(r&&_.current!==r.id){var o=Y.current.get(r.id);o&&(_.current=r.id,n.getCanvas().style.cursor="pointer",n.setFilter("wells-hover-highlight",["==",["id"],r.id]),ve(o.well,o.isOffsetWell,o.isSubjectWell,o.coords),o.isSubjectWell&&ie(!0))}},a=function(e){var t;if(null==e||!e.point||!n.queryRenderedFeatures(e.point,{layers:["wells-circle","wells-hover-highlight"]}).length){var r=null!==_.current&&_.current===$.current;_.current=null,n.getCanvas().style.cursor="",n.setFilter("wells-hover-highlight",D),null===(t=J.current)||void 0===t||t.remove(),r&&ie(!1)}},u=function(e){var t,r;if(!L){var o=Y.current.get(null===(t=e.features)||void 0===t||null===(r=t[0])||void 0===r?void 0:r.id);o&&Z(o.well,!o.isOffsetWell)}};return n.on("mousemove","wells-circle",c),n.on("mouseleave","wells-circle",a),n.on("mouseleave","wells-hover-highlight",a),n.on("click","wells-circle",u),setTimeout((function(){z<3e3&&U.current&&K.current&&P!==ne&&U.current.fitBounds(K.current,{padding:5})}),500),function(){n.off("mousemove","wells-circle",c),n.off("mouseleave","wells-circle",a),n.off("mouseleave","wells-hover-highlight",a),n.off("click","wells-circle",u)}}}}),[O,P,k,E,ae]),l((function(){var e=U.current;if(X.current&&(X.current.remove(),X.current=null),e&&V){var r=oe||le,o=document.createElement("img");o.src=r?"/static/media/5e9c4959259cb12c11b2c5eaf27eb3ad.svg":"/static/media/9efe5882f31d2f22bd57af92069d0a3e.svg";var i=t(r?[70,20]:[62,12],2),l=i[0],n=i[1],s=t(r?[35,29]:[31,25],2),c=s[0],a=s[1];o.width=l,o.height=n,o.addEventListener("mouseover",(function(){ie(!0),null!==$.current&&e.getLayer("wells-hover-highlight")&&(_.current=$.current,e.setFilter("wells-hover-highlight",["==",["id"],$.current])),ve(O,!1,!0,V)})),o.addEventListener("mouseout",(function(){var t;_.current=null,e.getLayer("wells-hover-highlight")&&e.setFilter("wells-hover-highlight",D),null===(t=J.current)||void 0===t||t.remove(),ie(!1)})),X.current=new W.Marker({element:o,anchor:"center",offset:[l/2-c,n/2-a]}).setLngLat(F(V)).addTo(e)}}),[oe,V,z,O,le]),l((function(){var e;z>3e3?null===(e=U.current)||void 0===e||e.setZoom(1):setTimeout((function(){O?U.current&&K.current&&z&&U.current.fitBounds(K.current,{padding:5}):U.current&&Q.current&&U.current.fitBounds(Q.current),V&&U.current&&U.current.easeTo({center:F(V),duration:700})}),500)}),[z,O,V]);var he=function(){var e;null===(e=U.current)||void 0===e||e.setZoom(pe+1)};return y("div",{className:c(v.mapView,R.root),children:y("div",{className:c(v.mapMain,R.map),ref:H,onDoubleClick:he,children:b("div",{className:v.zoomGroup,children:[y(a,{title:pe<18?"Zoom in":"",placement:"left",children:y("div",{className:c(v.zoomButton,e({},v.zoomDisabled,18===pe)),onClick:he,children:y(u,{className:v.zoomInOutIcon})})}),y(a,{title:pe>1?"Zoom out":"",placement:"left",children:y("div",{className:c(v.zoomButton,e({},v.zoomDisabled,1===pe)),onClick:function(){var e;pe>1&&(null===(e=U.current)||void 0===e||e.setZoom(pe-1))},children:y(m,{className:v.zoomInOutIcon})})})]})})})};export{B as default};
1
+ import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import{useMemo as r,useRef as o,useState as i,useEffect as l,createElement as n}from"react";import{get as s}from"lodash";import c from"classnames";import{Tooltip as a}from"@material-ui/core";import u from"@material-ui/icons/Add";import m from"@material-ui/icons/Remove";import"mapbox-gl/dist/mapbox-gl.css";import{usePreviousWells as d}from"./effects/usePreviousWells.js";import{WellTooltip as p}from"./WellTooltip.js";import{getAllFormations as f}from"./utils.js";import v from"./OffsetWellMap.module.css.js";import"../../config/mapboxGl/index.js";import{IS_MAPBOX_ENABLED as h}from"../../config/mapbox/index.js";import"../UserMention/utils/index.js";import"../../utils/convert.js";import"../../constants/completion.js";import"moment";import"../../constants/alerts.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../utils/casing/validation.js";import"lodash/mean";import"../../constants/streamSourceType.js";import"lodash/get";import"file-saver";import"query-string";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/apps.js";import"../../constants/drillstring.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"../../utils/drillstring/conversion.js";import"lodash/set";import"lodash/cloneDeep";import"@babel/runtime/helpers/toConsumableArray";import"lodash/isNumber";import"lodash/has";import"../../utils/ga.js";import"../../utils/goalsConfig/goalsConfig.js";import"../../utils/lasParser.js";import"../../utils/main.js";import{isValidCoordinates as g}from"../../utils/mapbox.js";import"../../utils/metrics/metricsConfig.js";import"../../utils/mobileDetect.js";import"../../utils/feed.js";import"../../utils/reports.js";import"moment-timezone";import"@babel/runtime/helpers/typeof";import"../../utils/dashboardReports.js";import"../../utils/env.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../utils/jsonaDataFormatter.js";import"../../utils/bha.js";import"jsona";import"../../clients/jsonApi/index.js";import"@babel/runtime/helpers/objectWithoutProperties";import"../../utils/charts/Styles.scss.js";import"../../utils/getSingleAsset.js";import{createAdaptiveRoot as j}from"../../utils/createAdaptiveRoot.js";import{jsx as y,jsxs as b,Fragment as w}from"react/jsx-runtime";import W from"mapbox-gl";var C=[29.749907,-95.358421],x={type:"FeatureCollection",features:[]},D=["==",["id"],-1],F=function(e){var r=t(e,2),o=r[0];return[r[1],o]},M=function(e,r){for(var o=t(e,2),i=o[0],l=o[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:64,s=r/(111320*Math.cos(i*Math.PI/180)),c=r/110574,a=[],u=0;u<=n;u+=1){var m=u/n*2*Math.PI;a.push([l+s*Math.cos(m),i+c*Math.sin(m)])}return{type:"Polygon",coordinates:[a]}},B=function(B){var L=B.isViewOnly,S=B.subjectWell,O=void 0===S?null:S,P=B.wells,k=B.offsetWellIds,z=B.radius,I=B.handleChanageOffsetWell,T=B.handleChangeOffsetWell,Z=void 0===T?I:T,A=B.activeWellId,E=B.isClickable,N=void 0===E||E,G=B.classes,R=void 0===G?{}:G,V=r((function(){return O&&s(O,"topHole.coordinates")}),[O]),q=r((function(){return f(P)}),[P]),H=o(),U=o(),J=o(),K=o(null),Q=o(null),X=o(),Y=o(new Map),$=o(null),_=o(null),ee=o(null),te=i(!1),re=t(te,2),oe=re[0],ie=re[1],le=(null==O?void 0:O.id)===A,ne=d(P),se=i(!1),ce=t(se,2),ae=ce[0],ue=ce[1],me=i(3),de=t(me,2),pe=de[0],fe=de[1];l((function(){if(h){var e=new W.Map({container:H.current,style:"mapbox://styles/mapbox/dark-v9",center:F(C),zoom:3,maxZoom:18,attributionControl:!1,scrollZoom:!1,doubleClickZoom:!1});return U.current=e,e.on("zoomend",(function(){return fe(Math.round(e.getZoom()))})),e.on("load",(function(){e.addSource("radius-circle",{type:"geojson",data:x}),e.addLayer({id:"radius-circle-fill",type:"fill",source:"radius-circle",paint:{"fill-color":"#03BCD4","fill-opacity":.2}}),e.addSource("wells",{type:"geojson",data:x}),e.addLayer({id:"wells-halo",type:"circle",source:"wells",filter:["==",["get","isOffsetWell"],!0],paint:{"circle-radius":12,"circle-color":["get","color"],"circle-opacity":.08}}),e.addLayer({id:"wells-circle",type:"circle",source:"wells",layout:{"circle-sort-key":["get","order"]},paint:{"circle-radius":5,"circle-color":["get","color"],"circle-opacity":["get","opacity"]}}),e.addLayer({id:"wells-active-highlight",type:"circle",source:"wells",filter:["==",["get","isActive"],!0],paint:{"circle-radius":12,"circle-color":["get","color"],"circle-opacity":.24}}),e.addLayer({id:"wells-hover-highlight",type:"circle",source:"wells",filter:D,paint:{"circle-radius":["case",["get","isSubjectWell"],5,12],"circle-color":["case",["get","isSubjectWell"],"#63EFFF",["get","color"]],"circle-opacity":.24}}),ue(!0)})),function(){var t;null===(t=ee.current)||void 0===t||t.unmount(),ee.current=null,e.remove(),U.current=null,J.current=null,X.current=null,K.current=null,Q.current=null}}}),[]),l((function(){var e,r,o,i,l,n;K.current=V&&z?(e=1609.34*z,r=t(V,2),o=r[0],i=r[1],l=e/(111320*Math.cos(o*Math.PI/180)),[[i-l,o-(n=e/110574)],[i+l,o+n]]):null;var s=U.current;s&&ae&&s.getSource("radius-circle").setData(V&&z?{type:"Feature",properties:{},geometry:M(V,1609.34*z)}:x)}),[z,V,ae]);var ve=function(e,t,r,o){var i;null===(i=ee.current)||void 0===i||i.unmount();var l=document.createElement("div"),c=n(p(),{isViewOnly:L,well:e,color:s(q,e.formation,"#BDBDBD"),isOffsetWell:t,isSubjectWell:r,isClickable:N});ee.current=j(l),ee.current.render(y(w,{children:c})),J.current||(J.current=new W.Popup({closeButton:!1,offset:12})),J.current.setLngLat(F(o)).setDOMContent(l).addTo(U.current)};l((function(){var e=U.current;e&&ae&&e.setPaintProperty("wells-circle","circle-color",oe?["case",["get","isSubjectWell"],"#63EFFF",["get","color"]]:["get","color"])}),[oe,ae]),l((function(){var e;if(P&&k){null===(e=J.current)||void 0===e||e.remove();var t=[],r=[];P.forEach((function(e){e.id!==(null==O?void 0:O.id)&&(k.includes(e.id)?t.push(e):r.push(e))}));var o=[].concat(r,t,[O]),i=[],l=new W.LngLatBounds;Y.current.clear(),$.current=null,o.forEach((function(e,t){var r,o=null==e||null===(r=e.topHole)||void 0===r?void 0:r.coordinates;if(o&&g(o)){var n=(null==O?void 0:O.id)===e.id,c=k.includes(e.id)&&!n,a=n?"#03BCD4":s(q,e.formation,"#BDBDBD"),u=c?.7:.3;i.push({type:"Feature",id:t,geometry:{type:"Point",coordinates:F(o)},properties:{color:a,opacity:n?1:u,isSubjectWell:n,isOffsetWell:c,isActive:e.id===A&&!le,order:t}}),Y.current.set(t,{well:e,coords:o,isOffsetWell:c,isSubjectWell:n}),n&&($.current=t),l.extend(F(o))}})),Q.current=i.length?l:null;var n=U.current;if(n&&ae){n.getSource("wells").setData({type:"FeatureCollection",features:i}),n.setFilter("wells-hover-highlight",D),_.current=null;var c=function(e){var t,r=null===(t=e.features)||void 0===t?void 0:t[0];if(r&&_.current!==r.id){var o=Y.current.get(r.id);o&&(_.current=r.id,n.getCanvas().style.cursor="pointer",n.setFilter("wells-hover-highlight",["==",["id"],r.id]),ve(o.well,o.isOffsetWell,o.isSubjectWell,o.coords),o.isSubjectWell&&ie(!0))}},a=function(e){var t;if(null==e||!e.point||!n.queryRenderedFeatures(e.point,{layers:["wells-circle","wells-hover-highlight"]}).length){var r=null!==_.current&&_.current===$.current;_.current=null,n.getCanvas().style.cursor="",n.setFilter("wells-hover-highlight",D),null===(t=J.current)||void 0===t||t.remove(),r&&ie(!1)}},u=function(e){var t,r;if(!L){var o=Y.current.get(null===(t=e.features)||void 0===t||null===(r=t[0])||void 0===r?void 0:r.id);o&&Z(o.well,!o.isOffsetWell)}};return n.on("mousemove","wells-circle",c),n.on("mouseleave","wells-circle",a),n.on("mouseleave","wells-hover-highlight",a),n.on("click","wells-circle",u),setTimeout((function(){z<3e3&&U.current&&K.current&&P!==ne&&U.current.fitBounds(K.current,{padding:5})}),500),function(){n.off("mousemove","wells-circle",c),n.off("mouseleave","wells-circle",a),n.off("mouseleave","wells-hover-highlight",a),n.off("click","wells-circle",u)}}}}),[O,P,k,A,ae]),l((function(){var e=U.current;if(X.current&&(X.current.remove(),X.current=null),e&&V){var r=oe||le,o=document.createElement("img");o.src=r?"/static/media/5e9c4959259cb12c11b2c5eaf27eb3ad.svg":"/static/media/9efe5882f31d2f22bd57af92069d0a3e.svg";var i=t(r?[70,20]:[62,12],2),l=i[0],n=i[1],s=t(r?[35,29]:[31,25],2),c=s[0],a=s[1];o.width=l,o.height=n,o.addEventListener("mouseover",(function(){ie(!0),null!==$.current&&e.getLayer("wells-hover-highlight")&&(_.current=$.current,e.setFilter("wells-hover-highlight",["==",["id"],$.current])),ve(O,!1,!0,V)})),o.addEventListener("mouseout",(function(){var t;_.current=null,e.getLayer("wells-hover-highlight")&&e.setFilter("wells-hover-highlight",D),null===(t=J.current)||void 0===t||t.remove(),ie(!1)})),X.current=new W.Marker({element:o,anchor:"center",offset:[l/2-c,n/2-a]}).setLngLat(F(V)).addTo(e)}}),[oe,V,z,O,le]),l((function(){var e;z>3e3?null===(e=U.current)||void 0===e||e.setZoom(1):setTimeout((function(){O?U.current&&K.current&&z&&U.current.fitBounds(K.current,{padding:5}):U.current&&Q.current&&U.current.fitBounds(Q.current),V&&U.current&&U.current.easeTo({center:F(V),duration:700})}),500)}),[z,O,V]);var he=function(){var e;null===(e=U.current)||void 0===e||e.setZoom(pe+1)};return y("div",{className:c(v.mapView,R.root),children:y("div",{className:c(v.mapMain,R.map),ref:H,onDoubleClick:he,children:b("div",{className:v.zoomGroup,children:[y(a,{title:pe<18?"Zoom in":"",placement:"left",children:y("div",{className:c(v.zoomButton,e({},v.zoomDisabled,18===pe)),onClick:he,children:y(u,{className:v.zoomInOutIcon})})}),y(a,{title:pe>1?"Zoom out":"",placement:"left",children:y("div",{className:c(v.zoomButton,e({},v.zoomDisabled,1===pe)),onClick:function(){var e;pe>1&&(null===(e=U.current)||void 0===e||e.setZoom(pe-1))},children:y(m,{className:v.zoomInOutIcon})})})]})})})};export{B as default};
2
2
  //# sourceMappingURL=OffsetWellMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetWellMap.js","sources":["../../../src/components/OffsetWellMap/OffsetWellMap.js"],"sourcesContent":["import { createElement, useRef, useEffect, useState, useMemo } from 'react';\nimport { get } from 'lodash';\nimport classNames from 'classnames';\nimport { Tooltip } from '@material-ui/core';\nimport { Add as ZoomInIcon, Remove as ZoomOutIcon } from '@material-ui/icons';\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\nimport SubjectWellIcon from './CustomIcon/SubjectWellIcon.svg';\nimport SubjectHighlightWellIcon from './CustomIcon/SubjectHighlightWellIcon.svg';\nimport { usePreviousWells } from './effects';\nimport { WellTooltip } from './WellTooltip';\nimport { getAllFormations } from './utils';\n\nimport styles from './OffsetWellMap.module.css';\n\nimport mapboxgl from '~/config/mapboxGl';\nimport { IS_MAPBOX_ENABLED } from '~/config/mapbox';\nimport { mapbox } from '~/utils';\nimport { createAdaptiveRoot } from '~/utils/createAdaptiveRoot';\n\nconst DEFAULT_COORDS = [29.749907, -95.358421];\nconst WELL_MARKER_SIZE = 5;\nconst HIGHLIGHT_MARKER_SIZE = 12;\nconst OFFSET_WELL_COLOR = '#03BCD4';\nconst RADIUS_CIRCLE_COLOR = '#03BCD4';\nconst HIGHLIGHT_WELL_COLOR = '#63EFFF';\nconst METERS_IN_MILE = 1609.34;\nconst ZOOM_INIT_VALUE = 3;\nconst ZOOM_MAX_VALUE = 18;\nconst ZOOM_MIN_VALUE = 1;\nconst MAX_RADIUS = 3000;\n\nconst RADIUS_SOURCE_ID = 'radius-circle';\nconst RADIUS_LAYER_ID = 'radius-circle-fill';\nconst WELLS_SOURCE_ID = 'wells';\nconst WELLS_HALO_LAYER_ID = 'wells-halo';\nconst WELLS_LAYER_ID = 'wells-circle';\nconst WELLS_ACTIVE_LAYER_ID = 'wells-active-highlight';\nconst WELLS_HOVER_LAYER_ID = 'wells-hover-highlight';\nconst EMPTY_FEATURE_COLLECTION = { type: 'FeatureCollection', features: [] };\nconst NO_HOVER_FILTER = ['==', ['id'], -1];\n\n// NOTE: Props keep the Leaflet [lat, lng] convention; mapbox-gl expects [lng, lat]\nconst toLngLat = ([lat, lng]) => [lng, lat];\n\n// NOTE: mapbox-gl circle layers are pixel-radius, so approximate the meter radius with a polygon\nconst makeCirclePolygon = ([lat, lng], radiusMeters, points = 64) => {\n const degreesLng = radiusMeters / (111320 * Math.cos((lat * Math.PI) / 180));\n const degreesLat = radiusMeters / 110574;\n const ring = [];\n for (let i = 0; i <= points; i += 1) {\n const theta = (i / points) * 2 * Math.PI;\n ring.push([lng + degreesLng * Math.cos(theta), lat + degreesLat * Math.sin(theta)]);\n }\n return { type: 'Polygon', coordinates: [ring] };\n};\n\nconst getCircleBounds = ([lat, lng], radiusMeters) => {\n const degreesLng = radiusMeters / (111320 * Math.cos((lat * Math.PI) / 180));\n const degreesLat = radiusMeters / 110574;\n return [\n [lng - degreesLng, lat - degreesLat],\n [lng + degreesLng, lat + degreesLat],\n ];\n};\n\n/** @type {React.FC<import('./OffsetWellMapProps').OffsetWellMapProps>} */\nconst OffsetWellMap = ({\n isViewOnly,\n subjectWell = null,\n wells,\n offsetWellIds,\n radius,\n handleChanageOffsetWell,\n handleChangeOffsetWell = handleChanageOffsetWell,\n activeWellId,\n isClickable = true,\n classes = {},\n}) => {\n const subjectWellCoords = useMemo(() => {\n return subjectWell && get(subjectWell, 'topHole.coordinates');\n }, [subjectWell]);\n const formationColors = useMemo(() => getAllFormations(wells), [wells]);\n\n const containerRef = useRef();\n const mapRef = useRef();\n const popupRef = useRef();\n const radiusBoundsRef = useRef(null);\n const wellsBoundsRef = useRef(null);\n const subjectIconRef = useRef();\n const wellByFeatureIdRef = useRef(new Map());\n const subjectFeatureIdRef = useRef(null);\n const hoveredFeatureIdRef = useRef(null);\n const tooltipRootRef = useRef(null);\n const [isSubjectWellHovered, setIsSubjectWellHovered] = useState(false);\n const isActiveWellIsSubjectWell = subjectWell?.id === activeWellId;\n const prevWells = usePreviousWells(wells);\n const [isMapReady, setIsMapReady] = useState(false);\n const [zoom, setZoom] = useState(ZOOM_INIT_VALUE);\n\n // NOTE: Initialize map\n useEffect(() => {\n if (!IS_MAPBOX_ENABLED) return undefined;\n\n const map = new mapboxgl.Map({\n container: containerRef.current,\n style: 'mapbox://styles/mapbox/dark-v9',\n center: toLngLat(DEFAULT_COORDS),\n zoom: ZOOM_INIT_VALUE,\n // NOTE: keep the zoom buttons' disable logic (zoom === ZOOM_MAX_VALUE) reachable\n maxZoom: ZOOM_MAX_VALUE,\n attributionControl: false,\n scrollZoom: false,\n doubleClickZoom: false,\n });\n mapRef.current = map;\n\n // NOTE: GL zoom is fractional where Leaflet was integer\n map.on('zoomend', () => setZoom(Math.round(map.getZoom())));\n\n // NOTE: Sources/layers can only be added after the style loads\n map.on('load', () => {\n map.addSource(RADIUS_SOURCE_ID, { type: 'geojson', data: EMPTY_FEATURE_COLLECTION });\n map.addLayer({\n id: RADIUS_LAYER_ID,\n type: 'fill',\n source: RADIUS_SOURCE_ID,\n paint: {\n 'fill-color': RADIUS_CIRCLE_COLOR,\n 'fill-opacity': 0.2,\n },\n });\n\n map.addSource(WELLS_SOURCE_ID, { type: 'geojson', data: EMPTY_FEATURE_COLLECTION });\n map.addLayer({\n id: WELLS_HALO_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n filter: ['==', ['get', 'isOffsetWell'], true],\n paint: {\n 'circle-radius': HIGHLIGHT_MARKER_SIZE,\n 'circle-color': ['get', 'color'],\n 'circle-opacity': 0.08,\n },\n });\n map.addLayer({\n id: WELLS_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n layout: {\n 'circle-sort-key': ['get', 'order'],\n },\n paint: {\n 'circle-radius': WELL_MARKER_SIZE,\n 'circle-color': ['get', 'color'],\n 'circle-opacity': ['get', 'opacity'],\n },\n });\n map.addLayer({\n id: WELLS_ACTIVE_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n filter: ['==', ['get', 'isActive'], true],\n paint: {\n 'circle-radius': HIGHLIGHT_MARKER_SIZE,\n 'circle-color': ['get', 'color'],\n 'circle-opacity': 0.24,\n },\n });\n map.addLayer({\n id: WELLS_HOVER_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n filter: NO_HOVER_FILTER,\n paint: {\n 'circle-radius': [\n 'case',\n ['get', 'isSubjectWell'],\n WELL_MARKER_SIZE,\n HIGHLIGHT_MARKER_SIZE,\n ],\n 'circle-color': [\n 'case',\n ['get', 'isSubjectWell'],\n HIGHLIGHT_WELL_COLOR,\n ['get', 'color'],\n ],\n 'circle-opacity': 0.24,\n },\n });\n\n setIsMapReady(true);\n });\n\n return () => {\n tooltipRootRef.current?.unmount();\n tooltipRootRef.current = null;\n\n map.remove();\n mapRef.current = null;\n popupRef.current = null;\n subjectIconRef.current = null;\n radiusBoundsRef.current = null;\n wellsBoundsRef.current = null;\n };\n }, []);\n\n // NOTE: Radius circle\n useEffect(() => {\n radiusBoundsRef.current =\n subjectWellCoords && radius\n ? getCircleBounds(subjectWellCoords, radius * METERS_IN_MILE)\n : null;\n\n const map = mapRef.current;\n if (!map || !isMapReady) {\n return;\n }\n\n map.getSource(RADIUS_SOURCE_ID).setData(\n subjectWellCoords && radius\n ? {\n type: 'Feature',\n properties: {},\n geometry: makeCirclePolygon(subjectWellCoords, radius * METERS_IN_MILE),\n }\n : EMPTY_FEATURE_COLLECTION\n );\n }, [radius, subjectWellCoords, isMapReady]);\n\n const showTooltip = (well, isOffsetWell, isSubjectWell, coords) => {\n tooltipRootRef.current?.unmount();\n\n const popUpContainer = document.createElement('div');\n const popUpContent = createElement(WellTooltip(), {\n isViewOnly,\n well,\n color: get(formationColors, well.formation, '#BDBDBD'),\n isOffsetWell,\n isSubjectWell,\n isClickable,\n });\n tooltipRootRef.current = createAdaptiveRoot(popUpContainer);\n tooltipRootRef.current.render(<>{popUpContent}</>);\n if (!popupRef.current) {\n popupRef.current = new mapboxgl.Popup({\n closeButton: false,\n offset: HIGHLIGHT_MARKER_SIZE,\n });\n }\n popupRef.current\n .setLngLat(toLngLat(coords))\n .setDOMContent(popUpContainer)\n .addTo(mapRef.current);\n };\n\n // NOTE: Subject well hover swaps the subject marker color\n useEffect(() => {\n const map = mapRef.current;\n if (!map || !isMapReady) {\n return;\n }\n\n map.setPaintProperty(\n WELLS_LAYER_ID,\n 'circle-color',\n isSubjectWellHovered\n ? ['case', ['get', 'isSubjectWell'], HIGHLIGHT_WELL_COLOR, ['get', 'color']]\n : ['get', 'color']\n );\n }, [isSubjectWellHovered, isMapReady]);\n\n // NOTE: Well markers\n useEffect(() => {\n if (!wells || !offsetWellIds) {\n return undefined;\n }\n\n popupRef.current?.remove();\n\n const offsetWells = [];\n const unSelectedWells = [];\n wells.forEach(well => {\n if (well.id !== subjectWell?.id) {\n if (offsetWellIds.includes(well.id)) {\n offsetWells.push(well);\n } else {\n unSelectedWells.push(well);\n }\n }\n });\n const sortedWells = [...unSelectedWells, ...offsetWells, subjectWell];\n\n const features = [];\n const wellsBounds = new mapboxgl.LngLatBounds();\n wellByFeatureIdRef.current.clear();\n subjectFeatureIdRef.current = null;\n sortedWells.forEach((well, index) => {\n const coords = well?.topHole?.coordinates;\n\n if (coords && mapbox.isValidCoordinates(coords)) {\n const isSubjectWell = subjectWell?.id === well.id;\n const isOffsetWell = offsetWellIds.includes(well.id) && !isSubjectWell;\n const color = isSubjectWell\n ? OFFSET_WELL_COLOR\n : get(formationColors, well.formation, '#BDBDBD');\n const opacity = isOffsetWell ? 0.7 : 0.3;\n\n features.push({\n type: 'Feature',\n id: index,\n geometry: { type: 'Point', coordinates: toLngLat(coords) },\n properties: {\n color,\n opacity: isSubjectWell ? 1 : opacity,\n isSubjectWell,\n isOffsetWell,\n isActive: well.id === activeWellId && !isActiveWellIsSubjectWell,\n order: index,\n },\n });\n wellByFeatureIdRef.current.set(index, { well, coords, isOffsetWell, isSubjectWell });\n if (isSubjectWell) {\n subjectFeatureIdRef.current = index;\n }\n wellsBounds.extend(toLngLat(coords));\n }\n });\n wellsBoundsRef.current = features.length ? wellsBounds : null;\n\n const map = mapRef.current;\n if (!map || !isMapReady) {\n return undefined;\n }\n\n map.getSource(WELLS_SOURCE_ID).setData({ type: 'FeatureCollection', features });\n map.setFilter(WELLS_HOVER_LAYER_ID, NO_HOVER_FILTER);\n hoveredFeatureIdRef.current = null;\n\n const handleMouseMove = e => {\n const feature = e.features?.[0];\n if (!feature || hoveredFeatureIdRef.current === feature.id) {\n return;\n }\n const entry = wellByFeatureIdRef.current.get(feature.id);\n if (!entry) {\n return;\n }\n\n hoveredFeatureIdRef.current = feature.id;\n map.getCanvas().style.cursor = 'pointer';\n\n // Highlight\n map.setFilter(WELLS_HOVER_LAYER_ID, ['==', ['id'], feature.id]);\n showTooltip(entry.well, entry.isOffsetWell, entry.isSubjectWell, entry.coords);\n if (entry.isSubjectWell) {\n setIsSubjectWellHovered(true);\n }\n };\n\n const handleMouseLeave = e => {\n // NOTE: Leaflet cleared hover on leaving the ENLARGED highlight marker, so keep the\n // hover while the cursor is still over the hover halo (or another well marker)\n if (\n e?.point &&\n map.queryRenderedFeatures(e.point, { layers: [WELLS_LAYER_ID, WELLS_HOVER_LAYER_ID] })\n .length\n ) {\n return;\n }\n const wasSubjectWell =\n hoveredFeatureIdRef.current !== null &&\n hoveredFeatureIdRef.current === subjectFeatureIdRef.current;\n hoveredFeatureIdRef.current = null;\n map.getCanvas().style.cursor = '';\n map.setFilter(WELLS_HOVER_LAYER_ID, NO_HOVER_FILTER);\n popupRef.current?.remove();\n if (wasSubjectWell) {\n setIsSubjectWellHovered(false);\n }\n };\n\n const handleClick = e => {\n if (isViewOnly) return;\n const entry = wellByFeatureIdRef.current.get(e.features?.[0]?.id);\n if (!entry) {\n return;\n }\n handleChangeOffsetWell(entry.well, !entry.isOffsetWell);\n };\n\n map.on('mousemove', WELLS_LAYER_ID, handleMouseMove);\n map.on('mouseleave', WELLS_LAYER_ID, handleMouseLeave);\n map.on('mouseleave', WELLS_HOVER_LAYER_ID, handleMouseLeave);\n map.on('click', WELLS_LAYER_ID, handleClick);\n\n setTimeout(() => {\n if (radius < MAX_RADIUS && mapRef.current && radiusBoundsRef.current && wells !== prevWells) {\n mapRef.current.fitBounds(radiusBoundsRef.current, { padding: 5 });\n }\n }, 500);\n\n return () => {\n map.off('mousemove', WELLS_LAYER_ID, handleMouseMove);\n map.off('mouseleave', WELLS_LAYER_ID, handleMouseLeave);\n map.off('mouseleave', WELLS_HOVER_LAYER_ID, handleMouseLeave);\n map.off('click', WELLS_LAYER_ID, handleClick);\n };\n }, [subjectWell, wells, offsetWellIds, activeWellId, isMapReady]);\n\n // NOTE: Subject Well Icon\n\n useEffect(() => {\n const map = mapRef.current;\n\n if (subjectIconRef.current) {\n subjectIconRef.current.remove();\n subjectIconRef.current = null;\n }\n\n if (!map || !subjectWellCoords) return;\n\n const isHighlighted = isSubjectWellHovered || isActiveWellIsSubjectWell;\n const icon = document.createElement('img');\n icon.src = isHighlighted ? SubjectHighlightWellIcon : SubjectWellIcon;\n const [iconWidth, iconHeight] = isHighlighted ? [70, 20] : [62, 12];\n const [anchorX, anchorY] = isHighlighted ? [35, 29] : [31, 25];\n icon.width = iconWidth;\n icon.height = iconHeight;\n\n icon.addEventListener('mouseover', () => {\n setIsSubjectWellHovered(true);\n\n // Highlight\n if (subjectFeatureIdRef.current !== null && map.getLayer(WELLS_HOVER_LAYER_ID)) {\n hoveredFeatureIdRef.current = subjectFeatureIdRef.current;\n map.setFilter(WELLS_HOVER_LAYER_ID, ['==', ['id'], subjectFeatureIdRef.current]);\n }\n showTooltip(subjectWell, false, true, subjectWellCoords);\n });\n\n icon.addEventListener('mouseout', () => {\n hoveredFeatureIdRef.current = null;\n if (map.getLayer(WELLS_HOVER_LAYER_ID)) {\n map.setFilter(WELLS_HOVER_LAYER_ID, NO_HOVER_FILTER);\n }\n popupRef.current?.remove();\n setIsSubjectWellHovered(false);\n });\n\n subjectIconRef.current = new mapboxgl.Marker({\n element: icon,\n anchor: 'center',\n // NOTE: Leaflet anchored the icon at [anchorX, anchorY] from its top-left corner\n offset: [iconWidth / 2 - anchorX, iconHeight / 2 - anchorY],\n })\n .setLngLat(toLngLat(subjectWellCoords))\n .addTo(map);\n }, [isSubjectWellHovered, subjectWellCoords, radius, subjectWell, isActiveWellIsSubjectWell]);\n\n // NOTE: Map Update\n useEffect(() => {\n if (radius > MAX_RADIUS) {\n mapRef.current?.setZoom(1);\n return;\n }\n setTimeout(() => {\n if (subjectWell) {\n if (mapRef.current && radiusBoundsRef.current && radius) {\n mapRef.current.fitBounds(radiusBoundsRef.current, { padding: 5 });\n }\n } else if (mapRef.current && wellsBoundsRef.current) {\n mapRef.current.fitBounds(wellsBoundsRef.current);\n }\n if (subjectWellCoords && mapRef.current) {\n mapRef.current.easeTo({ center: toLngLat(subjectWellCoords), duration: 700 });\n }\n }, 500);\n }, [radius, subjectWell, subjectWellCoords]);\n\n const handleZoomIn = () => {\n mapRef.current?.setZoom(zoom + 1);\n };\n\n const handleZoomOut = () => {\n if (zoom > 1) {\n mapRef.current?.setZoom(zoom - 1);\n }\n };\n\n return (\n <div className={classNames(styles.mapView, classes.root)}>\n <div\n className={classNames(styles.mapMain, classes.map)}\n ref={containerRef}\n onDoubleClick={handleZoomIn}\n >\n <div className={styles.zoomGroup}>\n <Tooltip title={zoom < ZOOM_MAX_VALUE ? 'Zoom in' : ''} placement=\"left\">\n <div\n className={classNames(styles.zoomButton, {\n [styles.zoomDisabled]: zoom === ZOOM_MAX_VALUE,\n })}\n onClick={handleZoomIn}\n >\n <ZoomInIcon className={styles.zoomInOutIcon} />\n </div>\n </Tooltip>\n <Tooltip title={zoom > ZOOM_MIN_VALUE ? 'Zoom out' : ''} placement=\"left\">\n <div\n className={classNames(styles.zoomButton, {\n [styles.zoomDisabled]: zoom === ZOOM_MIN_VALUE,\n })}\n onClick={handleZoomOut}\n >\n <ZoomOutIcon className={styles.zoomInOutIcon} />\n </div>\n </Tooltip>\n </div>\n </div>\n </div>\n );\n};\n\nexport default OffsetWellMap;\n"],"names":["DEFAULT_COORDS","EMPTY_FEATURE_COLLECTION","type","features","NO_HOVER_FILTER","toLngLat","_ref","_ref2","_slicedToArray","lat","makeCirclePolygon","_ref3","radiusMeters","_ref4","lng","points","degreesLng","Math","cos","PI","degreesLat","ring","i","theta","push","sin","coordinates","OffsetWellMap","_ref7","isViewOnly","_ref7$subjectWell","subjectWell","wells","offsetWellIds","radius","handleChanageOffsetWell","_ref7$handleChangeOff","handleChangeOffsetWell","activeWellId","_ref7$isClickable","isClickable","_ref7$classes","classes","subjectWellCoords","useMemo","get","formationColors","getAllFormations","containerRef","useRef","mapRef","popupRef","radiusBoundsRef","wellsBoundsRef","subjectIconRef","wellByFeatureIdRef","Map","subjectFeatureIdRef","hoveredFeatureIdRef","tooltipRootRef","useState","_useState2","_useState","isSubjectWellHovered","setIsSubjectWellHovered","isActiveWellIsSubjectWell","id","prevWells","usePreviousWells","_useState4","_useState3","isMapReady","setIsMapReady","_useState6","_useState5","zoom","setZoom","useEffect","IS_MAPBOX_ENABLED","map","mapboxgl","container","current","style","center","maxZoom","attributionControl","scrollZoom","doubleClickZoom","on","round","getZoom","addSource","data","addLayer","source","paint","filter","layout","_tooltipRootRef$curre","unmount","remove","_ref6","getSource","setData","properties","geometry","showTooltip","well","isOffsetWell","isSubjectWell","coords","_tooltipRootRef$curre2","popUpContainer","document","createElement","popUpContent","WellTooltip","color","formation","createAdaptiveRoot","render","_jsx","_Fragment","children","Popup","closeButton","offset","setLngLat","setDOMContent","addTo","setPaintProperty","_popupRef$current","offsetWells","unSelectedWells","forEach","includes","sortedWells","wellsBounds","LngLatBounds","clear","index","_well$topHole","topHole","mapbox","opacity","isActive","order","set","extend","length","setFilter","handleMouseMove","e","_e$features","feature","entry","getCanvas","cursor","handleMouseLeave","_popupRef$current2","point","queryRenderedFeatures","layers","wasSubjectWell","handleClick","_e$features2","_e$features2$","setTimeout","fitBounds","padding","off","isHighlighted","icon","src","_ref9","iconWidth","iconHeight","_ref11","anchorX","anchorY","width","height","addEventListener","getLayer","_popupRef$current3","Marker","element","anchor","_mapRef$current","easeTo","duration","handleZoomIn","_mapRef$current2","className","classNames","styles","mapView","root","mapMain","ref","onDoubleClick","_jsxs","zoomGroup","Tooltip","title","placement","zoomButton","_defineProperty","zoomDisabled","onClick","ZoomInIcon","zoomInOutIcon","_mapRef$current3","ZoomOutIcon"],"mappings":"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"}
1
+ {"version":3,"file":"OffsetWellMap.js","sources":["../../../src/components/OffsetWellMap/OffsetWellMap.js"],"sourcesContent":["import { createElement, useRef, useEffect, useState, useMemo } from 'react';\nimport { get } from 'lodash';\nimport classNames from 'classnames';\nimport { Tooltip } from '@material-ui/core';\nimport ZoomInIcon from '@material-ui/icons/Add';\nimport ZoomOutIcon from '@material-ui/icons/Remove';\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\nimport SubjectWellIcon from './CustomIcon/SubjectWellIcon.svg';\nimport SubjectHighlightWellIcon from './CustomIcon/SubjectHighlightWellIcon.svg';\nimport { usePreviousWells } from './effects';\nimport { WellTooltip } from './WellTooltip';\nimport { getAllFormations } from './utils';\n\nimport styles from './OffsetWellMap.module.css';\n\nimport mapboxgl from '~/config/mapboxGl';\nimport { IS_MAPBOX_ENABLED } from '~/config/mapbox';\nimport { mapbox } from '~/utils';\nimport { createAdaptiveRoot } from '~/utils/createAdaptiveRoot';\n\nconst DEFAULT_COORDS = [29.749907, -95.358421];\nconst WELL_MARKER_SIZE = 5;\nconst HIGHLIGHT_MARKER_SIZE = 12;\nconst OFFSET_WELL_COLOR = '#03BCD4';\nconst RADIUS_CIRCLE_COLOR = '#03BCD4';\nconst HIGHLIGHT_WELL_COLOR = '#63EFFF';\nconst METERS_IN_MILE = 1609.34;\nconst ZOOM_INIT_VALUE = 3;\nconst ZOOM_MAX_VALUE = 18;\nconst ZOOM_MIN_VALUE = 1;\nconst MAX_RADIUS = 3000;\n\nconst RADIUS_SOURCE_ID = 'radius-circle';\nconst RADIUS_LAYER_ID = 'radius-circle-fill';\nconst WELLS_SOURCE_ID = 'wells';\nconst WELLS_HALO_LAYER_ID = 'wells-halo';\nconst WELLS_LAYER_ID = 'wells-circle';\nconst WELLS_ACTIVE_LAYER_ID = 'wells-active-highlight';\nconst WELLS_HOVER_LAYER_ID = 'wells-hover-highlight';\nconst EMPTY_FEATURE_COLLECTION = { type: 'FeatureCollection', features: [] };\nconst NO_HOVER_FILTER = ['==', ['id'], -1];\n\n// NOTE: Props keep the Leaflet [lat, lng] convention; mapbox-gl expects [lng, lat]\nconst toLngLat = ([lat, lng]) => [lng, lat];\n\n// NOTE: mapbox-gl circle layers are pixel-radius, so approximate the meter radius with a polygon\nconst makeCirclePolygon = ([lat, lng], radiusMeters, points = 64) => {\n const degreesLng = radiusMeters / (111320 * Math.cos((lat * Math.PI) / 180));\n const degreesLat = radiusMeters / 110574;\n const ring = [];\n for (let i = 0; i <= points; i += 1) {\n const theta = (i / points) * 2 * Math.PI;\n ring.push([lng + degreesLng * Math.cos(theta), lat + degreesLat * Math.sin(theta)]);\n }\n return { type: 'Polygon', coordinates: [ring] };\n};\n\nconst getCircleBounds = ([lat, lng], radiusMeters) => {\n const degreesLng = radiusMeters / (111320 * Math.cos((lat * Math.PI) / 180));\n const degreesLat = radiusMeters / 110574;\n return [\n [lng - degreesLng, lat - degreesLat],\n [lng + degreesLng, lat + degreesLat],\n ];\n};\n\n/** @type {React.FC<import('./OffsetWellMapProps').OffsetWellMapProps>} */\nconst OffsetWellMap = ({\n isViewOnly,\n subjectWell = null,\n wells,\n offsetWellIds,\n radius,\n handleChanageOffsetWell,\n handleChangeOffsetWell = handleChanageOffsetWell,\n activeWellId,\n isClickable = true,\n classes = {},\n}) => {\n const subjectWellCoords = useMemo(() => {\n return subjectWell && get(subjectWell, 'topHole.coordinates');\n }, [subjectWell]);\n const formationColors = useMemo(() => getAllFormations(wells), [wells]);\n\n const containerRef = useRef();\n const mapRef = useRef();\n const popupRef = useRef();\n const radiusBoundsRef = useRef(null);\n const wellsBoundsRef = useRef(null);\n const subjectIconRef = useRef();\n const wellByFeatureIdRef = useRef(new Map());\n const subjectFeatureIdRef = useRef(null);\n const hoveredFeatureIdRef = useRef(null);\n const tooltipRootRef = useRef(null);\n const [isSubjectWellHovered, setIsSubjectWellHovered] = useState(false);\n const isActiveWellIsSubjectWell = subjectWell?.id === activeWellId;\n const prevWells = usePreviousWells(wells);\n const [isMapReady, setIsMapReady] = useState(false);\n const [zoom, setZoom] = useState(ZOOM_INIT_VALUE);\n\n // NOTE: Initialize map\n useEffect(() => {\n if (!IS_MAPBOX_ENABLED) return undefined;\n\n const map = new mapboxgl.Map({\n container: containerRef.current,\n style: 'mapbox://styles/mapbox/dark-v9',\n center: toLngLat(DEFAULT_COORDS),\n zoom: ZOOM_INIT_VALUE,\n // NOTE: keep the zoom buttons' disable logic (zoom === ZOOM_MAX_VALUE) reachable\n maxZoom: ZOOM_MAX_VALUE,\n attributionControl: false,\n scrollZoom: false,\n doubleClickZoom: false,\n });\n mapRef.current = map;\n\n // NOTE: GL zoom is fractional where Leaflet was integer\n map.on('zoomend', () => setZoom(Math.round(map.getZoom())));\n\n // NOTE: Sources/layers can only be added after the style loads\n map.on('load', () => {\n map.addSource(RADIUS_SOURCE_ID, { type: 'geojson', data: EMPTY_FEATURE_COLLECTION });\n map.addLayer({\n id: RADIUS_LAYER_ID,\n type: 'fill',\n source: RADIUS_SOURCE_ID,\n paint: {\n 'fill-color': RADIUS_CIRCLE_COLOR,\n 'fill-opacity': 0.2,\n },\n });\n\n map.addSource(WELLS_SOURCE_ID, { type: 'geojson', data: EMPTY_FEATURE_COLLECTION });\n map.addLayer({\n id: WELLS_HALO_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n filter: ['==', ['get', 'isOffsetWell'], true],\n paint: {\n 'circle-radius': HIGHLIGHT_MARKER_SIZE,\n 'circle-color': ['get', 'color'],\n 'circle-opacity': 0.08,\n },\n });\n map.addLayer({\n id: WELLS_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n layout: {\n 'circle-sort-key': ['get', 'order'],\n },\n paint: {\n 'circle-radius': WELL_MARKER_SIZE,\n 'circle-color': ['get', 'color'],\n 'circle-opacity': ['get', 'opacity'],\n },\n });\n map.addLayer({\n id: WELLS_ACTIVE_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n filter: ['==', ['get', 'isActive'], true],\n paint: {\n 'circle-radius': HIGHLIGHT_MARKER_SIZE,\n 'circle-color': ['get', 'color'],\n 'circle-opacity': 0.24,\n },\n });\n map.addLayer({\n id: WELLS_HOVER_LAYER_ID,\n type: 'circle',\n source: WELLS_SOURCE_ID,\n filter: NO_HOVER_FILTER,\n paint: {\n 'circle-radius': [\n 'case',\n ['get', 'isSubjectWell'],\n WELL_MARKER_SIZE,\n HIGHLIGHT_MARKER_SIZE,\n ],\n 'circle-color': [\n 'case',\n ['get', 'isSubjectWell'],\n HIGHLIGHT_WELL_COLOR,\n ['get', 'color'],\n ],\n 'circle-opacity': 0.24,\n },\n });\n\n setIsMapReady(true);\n });\n\n return () => {\n tooltipRootRef.current?.unmount();\n tooltipRootRef.current = null;\n\n map.remove();\n mapRef.current = null;\n popupRef.current = null;\n subjectIconRef.current = null;\n radiusBoundsRef.current = null;\n wellsBoundsRef.current = null;\n };\n }, []);\n\n // NOTE: Radius circle\n useEffect(() => {\n radiusBoundsRef.current =\n subjectWellCoords && radius\n ? getCircleBounds(subjectWellCoords, radius * METERS_IN_MILE)\n : null;\n\n const map = mapRef.current;\n if (!map || !isMapReady) {\n return;\n }\n\n map.getSource(RADIUS_SOURCE_ID).setData(\n subjectWellCoords && radius\n ? {\n type: 'Feature',\n properties: {},\n geometry: makeCirclePolygon(subjectWellCoords, radius * METERS_IN_MILE),\n }\n : EMPTY_FEATURE_COLLECTION\n );\n }, [radius, subjectWellCoords, isMapReady]);\n\n const showTooltip = (well, isOffsetWell, isSubjectWell, coords) => {\n tooltipRootRef.current?.unmount();\n\n const popUpContainer = document.createElement('div');\n const popUpContent = createElement(WellTooltip(), {\n isViewOnly,\n well,\n color: get(formationColors, well.formation, '#BDBDBD'),\n isOffsetWell,\n isSubjectWell,\n isClickable,\n });\n tooltipRootRef.current = createAdaptiveRoot(popUpContainer);\n tooltipRootRef.current.render(<>{popUpContent}</>);\n if (!popupRef.current) {\n popupRef.current = new mapboxgl.Popup({\n closeButton: false,\n offset: HIGHLIGHT_MARKER_SIZE,\n });\n }\n popupRef.current\n .setLngLat(toLngLat(coords))\n .setDOMContent(popUpContainer)\n .addTo(mapRef.current);\n };\n\n // NOTE: Subject well hover swaps the subject marker color\n useEffect(() => {\n const map = mapRef.current;\n if (!map || !isMapReady) {\n return;\n }\n\n map.setPaintProperty(\n WELLS_LAYER_ID,\n 'circle-color',\n isSubjectWellHovered\n ? ['case', ['get', 'isSubjectWell'], HIGHLIGHT_WELL_COLOR, ['get', 'color']]\n : ['get', 'color']\n );\n }, [isSubjectWellHovered, isMapReady]);\n\n // NOTE: Well markers\n useEffect(() => {\n if (!wells || !offsetWellIds) {\n return undefined;\n }\n\n popupRef.current?.remove();\n\n const offsetWells = [];\n const unSelectedWells = [];\n wells.forEach(well => {\n if (well.id !== subjectWell?.id) {\n if (offsetWellIds.includes(well.id)) {\n offsetWells.push(well);\n } else {\n unSelectedWells.push(well);\n }\n }\n });\n const sortedWells = [...unSelectedWells, ...offsetWells, subjectWell];\n\n const features = [];\n const wellsBounds = new mapboxgl.LngLatBounds();\n wellByFeatureIdRef.current.clear();\n subjectFeatureIdRef.current = null;\n sortedWells.forEach((well, index) => {\n const coords = well?.topHole?.coordinates;\n\n if (coords && mapbox.isValidCoordinates(coords)) {\n const isSubjectWell = subjectWell?.id === well.id;\n const isOffsetWell = offsetWellIds.includes(well.id) && !isSubjectWell;\n const color = isSubjectWell\n ? OFFSET_WELL_COLOR\n : get(formationColors, well.formation, '#BDBDBD');\n const opacity = isOffsetWell ? 0.7 : 0.3;\n\n features.push({\n type: 'Feature',\n id: index,\n geometry: { type: 'Point', coordinates: toLngLat(coords) },\n properties: {\n color,\n opacity: isSubjectWell ? 1 : opacity,\n isSubjectWell,\n isOffsetWell,\n isActive: well.id === activeWellId && !isActiveWellIsSubjectWell,\n order: index,\n },\n });\n wellByFeatureIdRef.current.set(index, { well, coords, isOffsetWell, isSubjectWell });\n if (isSubjectWell) {\n subjectFeatureIdRef.current = index;\n }\n wellsBounds.extend(toLngLat(coords));\n }\n });\n wellsBoundsRef.current = features.length ? wellsBounds : null;\n\n const map = mapRef.current;\n if (!map || !isMapReady) {\n return undefined;\n }\n\n map.getSource(WELLS_SOURCE_ID).setData({ type: 'FeatureCollection', features });\n map.setFilter(WELLS_HOVER_LAYER_ID, NO_HOVER_FILTER);\n hoveredFeatureIdRef.current = null;\n\n const handleMouseMove = e => {\n const feature = e.features?.[0];\n if (!feature || hoveredFeatureIdRef.current === feature.id) {\n return;\n }\n const entry = wellByFeatureIdRef.current.get(feature.id);\n if (!entry) {\n return;\n }\n\n hoveredFeatureIdRef.current = feature.id;\n map.getCanvas().style.cursor = 'pointer';\n\n // Highlight\n map.setFilter(WELLS_HOVER_LAYER_ID, ['==', ['id'], feature.id]);\n showTooltip(entry.well, entry.isOffsetWell, entry.isSubjectWell, entry.coords);\n if (entry.isSubjectWell) {\n setIsSubjectWellHovered(true);\n }\n };\n\n const handleMouseLeave = e => {\n // NOTE: Leaflet cleared hover on leaving the ENLARGED highlight marker, so keep the\n // hover while the cursor is still over the hover halo (or another well marker)\n if (\n e?.point &&\n map.queryRenderedFeatures(e.point, { layers: [WELLS_LAYER_ID, WELLS_HOVER_LAYER_ID] })\n .length\n ) {\n return;\n }\n const wasSubjectWell =\n hoveredFeatureIdRef.current !== null &&\n hoveredFeatureIdRef.current === subjectFeatureIdRef.current;\n hoveredFeatureIdRef.current = null;\n map.getCanvas().style.cursor = '';\n map.setFilter(WELLS_HOVER_LAYER_ID, NO_HOVER_FILTER);\n popupRef.current?.remove();\n if (wasSubjectWell) {\n setIsSubjectWellHovered(false);\n }\n };\n\n const handleClick = e => {\n if (isViewOnly) return;\n const entry = wellByFeatureIdRef.current.get(e.features?.[0]?.id);\n if (!entry) {\n return;\n }\n handleChangeOffsetWell(entry.well, !entry.isOffsetWell);\n };\n\n map.on('mousemove', WELLS_LAYER_ID, handleMouseMove);\n map.on('mouseleave', WELLS_LAYER_ID, handleMouseLeave);\n map.on('mouseleave', WELLS_HOVER_LAYER_ID, handleMouseLeave);\n map.on('click', WELLS_LAYER_ID, handleClick);\n\n setTimeout(() => {\n if (radius < MAX_RADIUS && mapRef.current && radiusBoundsRef.current && wells !== prevWells) {\n mapRef.current.fitBounds(radiusBoundsRef.current, { padding: 5 });\n }\n }, 500);\n\n return () => {\n map.off('mousemove', WELLS_LAYER_ID, handleMouseMove);\n map.off('mouseleave', WELLS_LAYER_ID, handleMouseLeave);\n map.off('mouseleave', WELLS_HOVER_LAYER_ID, handleMouseLeave);\n map.off('click', WELLS_LAYER_ID, handleClick);\n };\n }, [subjectWell, wells, offsetWellIds, activeWellId, isMapReady]);\n\n // NOTE: Subject Well Icon\n\n useEffect(() => {\n const map = mapRef.current;\n\n if (subjectIconRef.current) {\n subjectIconRef.current.remove();\n subjectIconRef.current = null;\n }\n\n if (!map || !subjectWellCoords) return;\n\n const isHighlighted = isSubjectWellHovered || isActiveWellIsSubjectWell;\n const icon = document.createElement('img');\n icon.src = isHighlighted ? SubjectHighlightWellIcon : SubjectWellIcon;\n const [iconWidth, iconHeight] = isHighlighted ? [70, 20] : [62, 12];\n const [anchorX, anchorY] = isHighlighted ? [35, 29] : [31, 25];\n icon.width = iconWidth;\n icon.height = iconHeight;\n\n icon.addEventListener('mouseover', () => {\n setIsSubjectWellHovered(true);\n\n // Highlight\n if (subjectFeatureIdRef.current !== null && map.getLayer(WELLS_HOVER_LAYER_ID)) {\n hoveredFeatureIdRef.current = subjectFeatureIdRef.current;\n map.setFilter(WELLS_HOVER_LAYER_ID, ['==', ['id'], subjectFeatureIdRef.current]);\n }\n showTooltip(subjectWell, false, true, subjectWellCoords);\n });\n\n icon.addEventListener('mouseout', () => {\n hoveredFeatureIdRef.current = null;\n if (map.getLayer(WELLS_HOVER_LAYER_ID)) {\n map.setFilter(WELLS_HOVER_LAYER_ID, NO_HOVER_FILTER);\n }\n popupRef.current?.remove();\n setIsSubjectWellHovered(false);\n });\n\n subjectIconRef.current = new mapboxgl.Marker({\n element: icon,\n anchor: 'center',\n // NOTE: Leaflet anchored the icon at [anchorX, anchorY] from its top-left corner\n offset: [iconWidth / 2 - anchorX, iconHeight / 2 - anchorY],\n })\n .setLngLat(toLngLat(subjectWellCoords))\n .addTo(map);\n }, [isSubjectWellHovered, subjectWellCoords, radius, subjectWell, isActiveWellIsSubjectWell]);\n\n // NOTE: Map Update\n useEffect(() => {\n if (radius > MAX_RADIUS) {\n mapRef.current?.setZoom(1);\n return;\n }\n setTimeout(() => {\n if (subjectWell) {\n if (mapRef.current && radiusBoundsRef.current && radius) {\n mapRef.current.fitBounds(radiusBoundsRef.current, { padding: 5 });\n }\n } else if (mapRef.current && wellsBoundsRef.current) {\n mapRef.current.fitBounds(wellsBoundsRef.current);\n }\n if (subjectWellCoords && mapRef.current) {\n mapRef.current.easeTo({ center: toLngLat(subjectWellCoords), duration: 700 });\n }\n }, 500);\n }, [radius, subjectWell, subjectWellCoords]);\n\n const handleZoomIn = () => {\n mapRef.current?.setZoom(zoom + 1);\n };\n\n const handleZoomOut = () => {\n if (zoom > 1) {\n mapRef.current?.setZoom(zoom - 1);\n }\n };\n\n return (\n <div className={classNames(styles.mapView, classes.root)}>\n <div\n className={classNames(styles.mapMain, classes.map)}\n ref={containerRef}\n onDoubleClick={handleZoomIn}\n >\n <div className={styles.zoomGroup}>\n <Tooltip title={zoom < ZOOM_MAX_VALUE ? 'Zoom in' : ''} placement=\"left\">\n <div\n className={classNames(styles.zoomButton, {\n [styles.zoomDisabled]: zoom === ZOOM_MAX_VALUE,\n })}\n onClick={handleZoomIn}\n >\n <ZoomInIcon className={styles.zoomInOutIcon} />\n </div>\n </Tooltip>\n <Tooltip title={zoom > ZOOM_MIN_VALUE ? 'Zoom out' : ''} placement=\"left\">\n <div\n className={classNames(styles.zoomButton, {\n [styles.zoomDisabled]: zoom === ZOOM_MIN_VALUE,\n })}\n onClick={handleZoomOut}\n >\n <ZoomOutIcon className={styles.zoomInOutIcon} />\n </div>\n </Tooltip>\n </div>\n </div>\n </div>\n );\n};\n\nexport default OffsetWellMap;\n"],"names":["DEFAULT_COORDS","EMPTY_FEATURE_COLLECTION","type","features","NO_HOVER_FILTER","toLngLat","_ref","_ref2","_slicedToArray","lat","makeCirclePolygon","_ref3","radiusMeters","_ref4","lng","points","degreesLng","Math","cos","PI","degreesLat","ring","i","theta","push","sin","coordinates","OffsetWellMap","_ref7","isViewOnly","_ref7$subjectWell","subjectWell","wells","offsetWellIds","radius","handleChanageOffsetWell","_ref7$handleChangeOff","handleChangeOffsetWell","activeWellId","_ref7$isClickable","isClickable","_ref7$classes","classes","subjectWellCoords","useMemo","get","formationColors","getAllFormations","containerRef","useRef","mapRef","popupRef","radiusBoundsRef","wellsBoundsRef","subjectIconRef","wellByFeatureIdRef","Map","subjectFeatureIdRef","hoveredFeatureIdRef","tooltipRootRef","useState","_useState2","_useState","isSubjectWellHovered","setIsSubjectWellHovered","isActiveWellIsSubjectWell","id","prevWells","usePreviousWells","_useState4","_useState3","isMapReady","setIsMapReady","_useState6","_useState5","zoom","setZoom","useEffect","IS_MAPBOX_ENABLED","map","mapboxgl","container","current","style","center","maxZoom","attributionControl","scrollZoom","doubleClickZoom","on","round","getZoom","addSource","data","addLayer","source","paint","filter","layout","_tooltipRootRef$curre","unmount","remove","_ref6","getSource","setData","properties","geometry","showTooltip","well","isOffsetWell","isSubjectWell","coords","_tooltipRootRef$curre2","popUpContainer","document","createElement","popUpContent","WellTooltip","color","formation","createAdaptiveRoot","render","_jsx","_Fragment","children","Popup","closeButton","offset","setLngLat","setDOMContent","addTo","setPaintProperty","_popupRef$current","offsetWells","unSelectedWells","forEach","includes","sortedWells","wellsBounds","LngLatBounds","clear","index","_well$topHole","topHole","mapbox","opacity","isActive","order","set","extend","length","setFilter","handleMouseMove","e","_e$features","feature","entry","getCanvas","cursor","handleMouseLeave","_popupRef$current2","point","queryRenderedFeatures","layers","wasSubjectWell","handleClick","_e$features2","_e$features2$","setTimeout","fitBounds","padding","off","isHighlighted","icon","src","_ref9","iconWidth","iconHeight","_ref11","anchorX","anchorY","width","height","addEventListener","getLayer","_popupRef$current3","Marker","element","anchor","_mapRef$current","easeTo","duration","handleZoomIn","_mapRef$current2","className","classNames","styles","mapView","root","mapMain","ref","onDoubleClick","_jsxs","zoomGroup","Tooltip","title","placement","zoomButton","_defineProperty","zoomDisabled","onClick","ZoomInIcon","zoomInOutIcon","_mapRef$current3","ZoomOutIcon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"prop-types";import{withStyles as t,Tooltip as i}from"@material-ui/core";import{InfoOutlined as n}from"@material-ui/icons";import{Switch as o}from"../../../../componentsV2/Switch/Switch.js";import{jsxs as r,jsx as l}from"react/jsx-runtime";function a(e){var t=e.value,a=e.onChange,s=e.classes,p=e["data-testid"],c=void 0===p?"NonEngineeredWellsSwitch":p;return r("div",{className:s.nonEngineeredWrapper,children:[l(o,{testId:c,onLabel:"Include Non-Verified Reference Wells",checked:t,onChange:function(e){a(e)},size:"small",className:s.formControl}),l(i,{title:r("div",{className:s.tooltipContent,children:[l("span",{children:"Non-Verified Reference Wells have minimal data and are used for displaying drilling parameters only."}),l("span",{children:"Metrics & models from these wells can be inaccurate."})]}),placement:"bottom-start",classes:{tooltip:s.infoTooltip},children:l(n,{fontSize:"small",className:s.infoIcon})})]})}a.propTypes={value:e.bool.isRequired,onChange:e.func.isRequired,classes:e.shape({}).isRequired,"data-testid":e.string};var s=t((function(e){return{formControl:{display:"flex",alignItems:"flex-end",height:"100%"},nonEngineeredWrapper:{display:"flex",height:"56px",alignItems:"flex-end",marginLeft:"8px"},infoIcon:{marginLeft:"8px",marginBottom:"12px",fontSize:"13px",color:e.palette.primary.text6,"&:hover":{color:e.palette.primary.text1}},infoTooltip:{fontSize:"12px",lineHeight:"16px",letterSpacing:"0.4px",color:e.palette.primary.text1,minWidth:"314px"},tooltipContent:{display:"flex",flexDirection:"column"}}}))(a);export{s as default};
1
+ import e from"prop-types";import{withStyles as t,Tooltip as i}from"@material-ui/core";import n from"@material-ui/icons/InfoOutlined";import{Switch as o}from"../../../../componentsV2/Switch/Switch.js";import{jsxs as r,jsx as l}from"react/jsx-runtime";function a(e){var t=e.value,a=e.onChange,s=e.classes,p=e["data-testid"],c=void 0===p?"NonEngineeredWellsSwitch":p;return r("div",{className:s.nonEngineeredWrapper,children:[l(o,{testId:c,onLabel:"Include Non-Verified Reference Wells",checked:t,onChange:function(e){a(e)},size:"small",className:s.formControl}),l(i,{title:r("div",{className:s.tooltipContent,children:[l("span",{children:"Non-Verified Reference Wells have minimal data and are used for displaying drilling parameters only."}),l("span",{children:"Metrics & models from these wells can be inaccurate."})]}),placement:"bottom-start",classes:{tooltip:s.infoTooltip},children:l(n,{fontSize:"small",className:s.infoIcon})})]})}a.propTypes={value:e.bool.isRequired,onChange:e.func.isRequired,classes:e.shape({}).isRequired,"data-testid":e.string};var s=t((function(e){return{formControl:{display:"flex",alignItems:"flex-end",height:"100%"},nonEngineeredWrapper:{display:"flex",height:"56px",alignItems:"flex-end",marginLeft:"8px"},infoIcon:{marginLeft:"8px",marginBottom:"12px",fontSize:"13px",color:e.palette.primary.text6,"&:hover":{color:e.palette.primary.text1}},infoTooltip:{fontSize:"12px",lineHeight:"16px",letterSpacing:"0.4px",color:e.palette.primary.text1,minWidth:"314px"},tooltipContent:{display:"flex",flexDirection:"column"}}}))(a);export{s as default};
2
2
  //# sourceMappingURL=NonEngineeredWellsSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NonEngineeredWellsSwitch.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { withStyles, Tooltip } from '@material-ui/core';\nimport { InfoOutlined as InfoOutlinedIcon } from '@material-ui/icons';\n\nimport { Switch } from '~/componentsV2/Switch';\n\nconst muiStyles = theme => ({\n formControl: {\n display: 'flex',\n alignItems: 'flex-end',\n height: '100%',\n },\n nonEngineeredWrapper: {\n display: 'flex',\n height: '56px',\n alignItems: 'flex-end',\n marginLeft: '8px',\n },\n infoIcon: {\n marginLeft: '8px',\n marginBottom: '12px',\n fontSize: '13px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n },\n },\n infoTooltip: {\n fontSize: '12px',\n lineHeight: '16px',\n letterSpacing: '0.4px',\n color: theme.palette.primary.text1,\n minWidth: '314px',\n },\n tooltipContent: {\n display: 'flex',\n flexDirection: 'column',\n },\n});\n\nfunction NonEngineeredWellsSwitch({\n value,\n onChange,\n classes,\n 'data-testid': dataTestId = 'NonEngineeredWellsSwitch',\n}) {\n const handleChangeValue = checked => {\n onChange(checked);\n };\n\n return (\n <div className={classes.nonEngineeredWrapper}>\n <Switch\n testId={dataTestId}\n onLabel=\"Include Non-Verified Reference Wells\"\n checked={value}\n onChange={handleChangeValue}\n size=\"small\"\n className={classes.formControl}\n />\n <Tooltip\n title={\n <div className={classes.tooltipContent}>\n <span>\n Non-Verified Reference Wells have minimal data and are used for displaying drilling\n parameters only.\n </span>\n <span>Metrics & models from these wells can be inaccurate.</span>\n </div>\n }\n placement=\"bottom-start\"\n classes={{\n tooltip: classes.infoTooltip,\n }}\n >\n <InfoOutlinedIcon fontSize=\"small\" className={classes.infoIcon} />\n </Tooltip>\n </div>\n );\n}\n\nNonEngineeredWellsSwitch.propTypes = {\n value: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.shape({}).isRequired,\n 'data-testid': PropTypes.string,\n};\n\nexport default withStyles(muiStyles)(NonEngineeredWellsSwitch);\n"],"names":["NonEngineeredWellsSwitch","_ref","value","onChange","classes","_ref$dataTestid","dataTestId","_jsxs","className","nonEngineeredWrapper","children","_jsx","Switch","testId","onLabel","checked","size","formControl","Tooltip","title","tooltipContent","placement","tooltip","infoTooltip","InfoOutlinedIcon","fontSize","infoIcon","propTypes","PropTypes","bool","isRequired","func","shape","string","NonEngineeredWellsSwitch$1","withStyles","theme","display","alignItems","height","marginLeft","marginBottom","color","palette","primary","text6","text1","lineHeight","letterSpacing","minWidth","flexDirection"],"mappings":"6PAwCA,SAASA,EAKNC,GAAA,IAJDC,IAAAA,MACAC,IAAAA,SACAC,IAAAA,QAAOC,EAAAJ,EACP,eAAeK,aAAa,2BAA0BD,EAMtD,OACEE,EAAA,MAAA,CAAKC,UAAWJ,EAAQK,qBAAqBC,SAAA,CAC3CC,EAACC,EAAM,CACLC,OAAQP,EACRQ,QAAQ,uCACRC,QAASb,EACTC,SAVoB,SAAAY,GACxBZ,EAASY,IAULC,KAAK,QACLR,UAAWJ,EAAQa,cAErBN,EAACO,EAAO,CACNC,MACEZ,EAAA,MAAA,CAAKC,UAAWJ,EAAQgB,eAAeV,SACrC,CAAAC,EAAA,OAAA,CAAAD,SAAA,yGAIAC,EAAA,OAAA,CAAAD,SAAA,4DAGJW,UAAU,eACVjB,QAAS,CACPkB,QAASlB,EAAQmB,aACjBb,SAEFC,EAACa,EAAgB,CAACC,SAAS,QAAQjB,UAAWJ,EAAQsB,eAI9D,CAEA1B,EAAyB2B,UAAY,CACnCzB,MAAO0B,EAAUC,KAAKC,WACtB3B,SAAUyB,EAAUG,KAAKD,WACzB1B,QAASwB,EAAUI,MAAM,CAAA,GAAIF,WAC7B,cAAeF,EAAUK,QAG3B,IAAAC,EAAeC,GAlFG,SAAAC,GAAK,MAAK,CAC1BnB,YAAa,CACXoB,QAAS,OACTC,WAAY,WACZC,OAAQ,QAEV9B,qBAAsB,CACpB4B,QAAS,OACTE,OAAQ,OACRD,WAAY,WACZE,WAAY,OAEdd,SAAU,CACRc,WAAY,MACZC,aAAc,OACdhB,SAAU,OACViB,MAAON,EAAMO,QAAQC,QAAQC,MAC7B,UAAW,CACTH,MAAON,EAAMO,QAAQC,QAAQE,QAGjCvB,YAAa,CACXE,SAAU,OACVsB,WAAY,OACZC,cAAe,QACfN,MAAON,EAAMO,QAAQC,QAAQE,MAC7BG,SAAU,SAEZ7B,eAAgB,CACdiB,QAAS,OACTa,cAAe,UAElB,GAkDcf,CAAsBnC"}
1
+ {"version":3,"file":"NonEngineeredWellsSwitch.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { withStyles, Tooltip } from '@material-ui/core';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\n\nimport { Switch } from '~/componentsV2/Switch';\n\nconst muiStyles = theme => ({\n formControl: {\n display: 'flex',\n alignItems: 'flex-end',\n height: '100%',\n },\n nonEngineeredWrapper: {\n display: 'flex',\n height: '56px',\n alignItems: 'flex-end',\n marginLeft: '8px',\n },\n infoIcon: {\n marginLeft: '8px',\n marginBottom: '12px',\n fontSize: '13px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n },\n },\n infoTooltip: {\n fontSize: '12px',\n lineHeight: '16px',\n letterSpacing: '0.4px',\n color: theme.palette.primary.text1,\n minWidth: '314px',\n },\n tooltipContent: {\n display: 'flex',\n flexDirection: 'column',\n },\n});\n\nfunction NonEngineeredWellsSwitch({\n value,\n onChange,\n classes,\n 'data-testid': dataTestId = 'NonEngineeredWellsSwitch',\n}) {\n const handleChangeValue = checked => {\n onChange(checked);\n };\n\n return (\n <div className={classes.nonEngineeredWrapper}>\n <Switch\n testId={dataTestId}\n onLabel=\"Include Non-Verified Reference Wells\"\n checked={value}\n onChange={handleChangeValue}\n size=\"small\"\n className={classes.formControl}\n />\n <Tooltip\n title={\n <div className={classes.tooltipContent}>\n <span>\n Non-Verified Reference Wells have minimal data and are used for displaying drilling\n parameters only.\n </span>\n <span>Metrics & models from these wells can be inaccurate.</span>\n </div>\n }\n placement=\"bottom-start\"\n classes={{\n tooltip: classes.infoTooltip,\n }}\n >\n <InfoOutlinedIcon fontSize=\"small\" className={classes.infoIcon} />\n </Tooltip>\n </div>\n );\n}\n\nNonEngineeredWellsSwitch.propTypes = {\n value: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.shape({}).isRequired,\n 'data-testid': PropTypes.string,\n};\n\nexport default withStyles(muiStyles)(NonEngineeredWellsSwitch);\n"],"names":["NonEngineeredWellsSwitch","_ref","value","onChange","classes","_ref$dataTestid","dataTestId","_jsxs","className","nonEngineeredWrapper","children","_jsx","Switch","testId","onLabel","checked","size","formControl","Tooltip","title","tooltipContent","placement","tooltip","infoTooltip","InfoOutlinedIcon","fontSize","infoIcon","propTypes","PropTypes","bool","isRequired","func","shape","string","NonEngineeredWellsSwitch$1","withStyles","theme","display","alignItems","height","marginLeft","marginBottom","color","palette","primary","text6","text1","lineHeight","letterSpacing","minWidth","flexDirection"],"mappings":"0PAwCA,SAASA,EAKNC,GAAA,IAJDC,IAAAA,MACAC,IAAAA,SACAC,IAAAA,QAAOC,EAAAJ,EACP,eAAeK,aAAa,2BAA0BD,EAMtD,OACEE,EAAA,MAAA,CAAKC,UAAWJ,EAAQK,qBAAqBC,SAAA,CAC3CC,EAACC,EAAM,CACLC,OAAQP,EACRQ,QAAQ,uCACRC,QAASb,EACTC,SAVoB,SAAAY,GACxBZ,EAASY,IAULC,KAAK,QACLR,UAAWJ,EAAQa,cAErBN,EAACO,EAAO,CACNC,MACEZ,EAAA,MAAA,CAAKC,UAAWJ,EAAQgB,eAAeV,SACrC,CAAAC,EAAA,OAAA,CAAAD,SAAA,yGAIAC,EAAA,OAAA,CAAAD,SAAA,4DAGJW,UAAU,eACVjB,QAAS,CACPkB,QAASlB,EAAQmB,aACjBb,SAEFC,EAACa,EAAgB,CAACC,SAAS,QAAQjB,UAAWJ,EAAQsB,eAI9D,CAEA1B,EAAyB2B,UAAY,CACnCzB,MAAO0B,EAAUC,KAAKC,WACtB3B,SAAUyB,EAAUG,KAAKD,WACzB1B,QAASwB,EAAUI,MAAM,CAAA,GAAIF,WAC7B,cAAeF,EAAUK,QAG3B,IAAAC,EAAeC,GAlFG,SAAAC,GAAK,MAAK,CAC1BnB,YAAa,CACXoB,QAAS,OACTC,WAAY,WACZC,OAAQ,QAEV9B,qBAAsB,CACpB4B,QAAS,OACTE,OAAQ,OACRD,WAAY,WACZE,WAAY,OAEdd,SAAU,CACRc,WAAY,MACZC,aAAc,OACdhB,SAAU,OACViB,MAAON,EAAMO,QAAQC,QAAQC,MAC7B,UAAW,CACTH,MAAON,EAAMO,QAAQC,QAAQE,QAGjCvB,YAAa,CACXE,SAAU,OACVsB,WAAY,OACZC,cAAe,QACfN,MAAON,EAAMO,QAAQC,QAAQE,MAC7BG,SAAU,SAEZ7B,eAAgB,CACdiB,QAAS,OACTa,cAAe,UAElB,GAkDcf,CAAsBnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleFiltersButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAInC,QAAA,MAAM,mBAAmB;;;;;;;;;CAWxB,CAAC"}
1
+ {"version":3,"file":"ToggleFiltersButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAKnC,QAAA,MAAM,mBAAmB;;;;;;;;;CAWxB,CAAC"}
@@ -1,2 +1,2 @@
1
- import{memo as r}from"react";import e from"prop-types";import{Button as o}from"@material-ui/core";import{jsx as i}from"react/jsx-runtime";import t from'./../../../../ext-esm/@material-ui/icons/esm/ExpandMore.js';import s from'./../../../../ext-esm/@material-ui/icons/esm/ExpandLess.js';var m=function(r){var e=r.filtersHidden,m=r.onToggleFilters;return i("div",{children:i(o,{endIcon:i(e?t:s,{}),onClick:m,children:"Filters"})})};m.propTypes={filtersHidden:e.bool.isRequired,onToggleFilters:e.func.isRequired};var n=r(m);export{n as default};
1
+ import{memo as r}from"react";import i from"prop-types";import{Button as e}from"@material-ui/core";import o from"@material-ui/icons/ExpandMore";import t from"@material-ui/icons/ExpandLess";import{jsx as n}from"react/jsx-runtime";var m=function(r){var i=r.filtersHidden,m=r.onToggleFilters;return n("div",{children:n(e,{endIcon:n(i?o:t,{}),onClick:m,children:"Filters"})})};m.propTypes={filtersHidden:i.bool.isRequired,onToggleFilters:i.func.isRequired};var a=r(m);export{a as default};
2
2
  //# sourceMappingURL=ToggleFiltersButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uJAAuJ,4DAA+D,cAAc,4DAA+D;"}
1
+ {"version":3,"file":"ToggleFiltersButton.js","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/ToggleFiltersButton.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\nconst ToggleFiltersButton = ({ filtersHidden, onToggleFilters }) => {\n return (\n <div>\n <Button\n endIcon={filtersHidden ? <ExpandMoreIcon /> : <ExpandLessIcon />}\n onClick={onToggleFilters}\n >\n Filters\n </Button>\n </div>\n );\n};\n\nToggleFiltersButton.propTypes = {\n filtersHidden: PropTypes.bool.isRequired,\n onToggleFilters: PropTypes.func.isRequired,\n};\n\nexport default memo(ToggleFiltersButton);\n"],"names":["ToggleFiltersButton","_ref","filtersHidden","onToggleFilters","_jsx","children","Button","endIcon","ExpandMoreIcon","ExpandLessIcon","onClick","propTypes","PropTypes","bool","isRequired","func","memo"],"mappings":"oOAMA,IAAMA,EAAsB,SAAwCC,GAAA,IAArCC,IAAAA,cAAeC,IAAAA,gBAC5C,OACEC,EAAA,MAAA,CAAAC,SACED,EAACE,EAAM,CACLC,QAAyBH,EAAhBF,EAAiBM,EAAqBC,EAAJ,CAAA,GAC3CC,QAASP,EAAgBE,SAAA,aAMjC,EAEAL,EAAoBW,UAAY,CAC9BT,cAAeU,EAAUC,KAAKC,WAC9BX,gBAAiBS,EAAUG,KAAKD,YAGlC,IAAeE,EAAAA,EAAKhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleMapButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AA2BnC,QAAA,MAAM,eAAe;;;;;;;;;CA2BpB,CAAC"}
1
+ {"version":3,"file":"ToggleMapButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAyBnC,QAAA,MAAM,eAAe;;;;;;;;;CA2BpB,CAAC"}