@corva/ui 3.17.0-9 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +0 -1
  2. package/cjs-bundle/clients/subscriptions/constants.js +1 -1
  3. package/cjs-bundle/components/AddComment/Popover.js +1 -1
  4. package/cjs-bundle/components/AddComment/Popover.js.map +1 -1
  5. package/cjs-bundle/components/AddComment/components/Content.js +1 -1
  6. package/cjs-bundle/components/AddComment/components/Content.js.map +1 -1
  7. package/cjs-bundle/components/AppVersionsSelect/AppVersionsSelect.js +1 -1
  8. package/cjs-bundle/components/AppVersionsSelect/AppVersionsSelect.js.map +1 -1
  9. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
  10. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
  11. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
  12. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
  13. package/cjs-bundle/components/AssetEditorV2/effects/index.js +1 -1
  14. package/cjs-bundle/components/AssetEditorV2/effects/index.js.map +1 -1
  15. package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
  16. package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
  17. package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
  18. package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
  19. package/cjs-bundle/components/AssetEditorV2/utils/index.js +1 -1
  20. package/cjs-bundle/components/AssetEditorV2/utils/index.js.map +1 -1
  21. package/cjs-bundle/components/Attachment/index.js +1 -1
  22. package/cjs-bundle/components/Attachment/index.js.map +1 -1
  23. package/cjs-bundle/components/BICOffsetPickerDialog/index.js +1 -1
  24. package/cjs-bundle/components/BICOffsetPickerDialog/index.js.map +1 -1
  25. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  26. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  27. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js +1 -1
  28. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  29. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  30. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  31. package/cjs-bundle/components/CollapsableSidebar.js +1 -1
  32. package/cjs-bundle/components/CollapsableSidebar.js.map +1 -1
  33. package/cjs-bundle/components/DevCenter/AppHeader/AppHeader.js +1 -1
  34. package/cjs-bundle/components/DevCenter/AppHeader/AppHeader.js.map +1 -1
  35. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/utils.js +1 -1
  36. package/cjs-bundle/components/DevCenter/AppsDataProvider/effects/utils.js.map +1 -1
  37. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
  38. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  39. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  40. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  41. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.js +1 -1
  42. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/NonPriorityMenus/NonPriorityMenus.js +1 -1
  43. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/PriorityMenus/PriorityMenus.js +1 -1
  44. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/PriorityMenus/PriorityMenus.js.map +1 -1
  45. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js +1 -1
  46. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js.map +1 -1
  47. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js +1 -1
  48. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js.map +1 -1
  49. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
  50. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
  51. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/utils/dashboardCapturing.js +2 -0
  52. package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/utils/dashboardCapturing.js.map +1 -0
  53. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js +1 -1
  54. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js.map +1 -1
  55. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  56. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  57. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  58. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  59. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  60. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  61. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  62. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  63. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  64. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  65. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  66. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  67. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  68. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  69. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  70. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  71. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  72. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  73. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  74. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  75. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  76. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  77. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  78. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  79. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  80. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  81. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  82. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  83. package/cjs-bundle/components/FeedItem/FeedItem.js +1 -1
  84. package/cjs-bundle/components/FeedItem/FeedItem.js.map +1 -1
  85. package/cjs-bundle/components/FeedItem/components/FeedComments.js +1 -1
  86. package/cjs-bundle/components/FeedItem/components/FeedComments.js.map +1 -1
  87. package/cjs-bundle/components/ImageViewer/index.js +1 -1
  88. package/cjs-bundle/components/ImageViewer/index.js.map +1 -1
  89. package/cjs-bundle/components/Modal/CorvaModal.js +1 -1
  90. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js +1 -1
  91. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js.map +1 -1
  92. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/SidetrackSwitch.js +1 -1
  93. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/SidetrackSwitch.js.map +1 -1
  94. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  95. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  96. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  97. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  98. package/cjs-bundle/components/OffsetWellPickerV2/effects/index.js +1 -1
  99. package/cjs-bundle/components/OffsetWellPickerV2/effects/index.js.map +1 -1
  100. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/SidetrackSwitch.js +1 -1
  101. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/SidetrackSwitch.js.map +1 -1
  102. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  103. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  104. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js +1 -1
  105. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js.map +1 -1
  106. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  107. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  108. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  109. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  110. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  111. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  112. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  113. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  114. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  115. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  116. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  117. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  118. package/cjs-bundle/components/OffsetWellPickerV4/OffsetWellPickerV4.js +1 -1
  119. package/cjs-bundle/components/OffsetWellPickerV4/OffsetWellPickerV4.js.map +1 -1
  120. package/cjs-bundle/components/OffsetWellPickerV4/components/Filter/Filter.js +1 -1
  121. package/cjs-bundle/components/OffsetWellPickerV4/components/Filter/Filter.js.map +1 -1
  122. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js +1 -1
  123. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js.map +1 -1
  124. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js +1 -1
  125. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js.map +1 -1
  126. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
  127. package/cjs-bundle/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
  128. package/cjs-bundle/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js +1 -1
  129. package/cjs-bundle/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js.map +1 -1
  130. package/cjs-bundle/components/OffsetWellPickerV4/effects/useCompanyMetricKey.js +1 -1
  131. package/cjs-bundle/components/OffsetWellPickerV4/effects/useCompanyMetricKey.js.map +1 -1
  132. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js +1 -1
  133. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  134. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  135. package/cjs-bundle/components/Popover/Popover.js +1 -1
  136. package/cjs-bundle/components/Popper/Popper.js +1 -1
  137. package/cjs-bundle/components/RealTimeValuesSidebar/SidebarFooter.js +1 -1
  138. package/cjs-bundle/components/WellSummary/WellSummaryItemValue.js +1 -1
  139. package/cjs-bundle/components/WellSummary/WellSummaryItemValue.js.map +1 -1
  140. package/cjs-bundle/components/WellSummary/effects/useWellSummaryData.js +1 -1
  141. package/cjs-bundle/components/WellSummary/effects/useWellSummaryData.js.map +1 -1
  142. package/cjs-bundle/componentsV2/AppCommonsProvider/AppCommonsProvider.js +1 -1
  143. package/cjs-bundle/componentsV2/AppCommonsProvider/utils.js +2 -0
  144. package/cjs-bundle/componentsV2/AppCommonsProvider/utils.js.map +1 -0
  145. package/cjs-bundle/componentsV2/AppFooter/DqPopover/DqPopover.js +1 -1
  146. package/cjs-bundle/componentsV2/AppHeader/AppAssets/utils.js +1 -1
  147. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  148. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  149. package/cjs-bundle/componentsV2/AppHeader/V3/AppTitle/AppTitle.js +1 -1
  150. package/cjs-bundle/componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js +1 -1
  151. package/cjs-bundle/componentsV2/AppHeader/V3/AssetSelector/AssetSelector.js +1 -1
  152. package/cjs-bundle/componentsV2/AppHeader/V3/SettingsPopover/SettingsPopover.js +1 -1
  153. package/cjs-bundle/componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js +1 -1
  154. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  155. package/cjs-bundle/componentsV2/AppSettings/AppSettings.js +1 -1
  156. package/cjs-bundle/componentsV2/AppSettings/AppSettingsPinningContext.js +1 -1
  157. package/cjs-bundle/componentsV2/LoaderLinear/LoaderLinear.js +1 -1
  158. package/cjs-bundle/componentsV2/LoaderLinear/LoaderLinear.scss.js +1 -1
  159. package/cjs-bundle/componentsV2/PadModeSelect/PadModeSelect.js +1 -1
  160. package/cjs-bundle/constants/alerts.js +1 -1
  161. package/cjs-bundle/constants/alerts.js.map +1 -1
  162. package/cjs-bundle/constants/corvaCompanyId.js +1 -1
  163. package/cjs-bundle/constants/corvaCompanyId.js.map +1 -1
  164. package/cjs-bundle/constants/index.js +1 -1
  165. package/cjs-bundle/testing/AppTestWrapper/AppTestWrapper.js +1 -1
  166. package/cjs-bundle/utils/devcenter.js +1 -1
  167. package/cjs-bundle/utils/devcenter.js.map +1 -1
  168. package/cjs-bundle/utils/notificationToasts.js +1 -1
  169. package/cjs-bundle/utils/notificationToasts.js.map +1 -1
  170. package/clients/subscriptions/constants.d.ts.map +1 -1
  171. package/clients/subscriptions/constants.js +1 -1
  172. package/components/AddComment/Popover.js +1 -1
  173. package/components/AddComment/Popover.js.map +1 -1
  174. package/components/AddComment/components/Content.js +1 -1
  175. package/components/AddComment/components/Content.js.map +1 -1
  176. package/components/AppVersionsSelect/AppVersionsSelect.js +1 -1
  177. package/components/AppVersionsSelect/AppVersionsSelect.js.map +1 -1
  178. package/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
  179. package/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
  180. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
  181. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
  182. package/components/AssetEditorV2/effects/index.js +1 -1
  183. package/components/AssetEditorV2/effects/index.js.map +1 -1
  184. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
  185. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
  186. package/components/AssetEditorV2/index.js +1 -1
  187. package/components/AssetEditorV2/index.js.map +1 -1
  188. package/components/AssetEditorV2/utils/index.js +1 -1
  189. package/components/AssetEditorV2/utils/index.js.map +1 -1
  190. package/components/Attachment/index.js +1 -1
  191. package/components/Attachment/index.js.map +1 -1
  192. package/components/BICOffsetPickerDialog/index.js +1 -1
  193. package/components/BICOffsetPickerDialog/index.js.map +1 -1
  194. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  195. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  196. package/components/Casing/CasingTableV2/components/Component.js +1 -1
  197. package/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  198. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  199. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  200. package/components/CollapsableSidebar.js +1 -1
  201. package/components/CollapsableSidebar.js.map +1 -1
  202. package/components/DevCenter/AppHeader/AppHeader.js +1 -1
  203. package/components/DevCenter/AppHeader/AppHeader.js.map +1 -1
  204. package/components/DevCenter/AppsDataProvider/effects/utils.js +1 -1
  205. package/components/DevCenter/AppsDataProvider/effects/utils.js.map +1 -1
  206. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
  207. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
  208. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  209. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  210. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  211. package/components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.js +1 -1
  212. package/components/DevCenter/DevCenterAppContainer/components/NonPriorityMenus/NonPriorityMenus.js +1 -1
  213. package/components/DevCenter/DevCenterAppContainer/components/PriorityMenus/PriorityMenus.js +1 -1
  214. package/components/DevCenter/DevCenterAppContainer/components/PriorityMenus/PriorityMenus.js.map +1 -1
  215. package/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js +1 -1
  216. package/components/DevCenter/DevCenterAppContainer/effects/useAnnotationsData.js.map +1 -1
  217. package/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js +1 -1
  218. package/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js.map +1 -1
  219. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map +1 -1
  220. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
  221. package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
  222. package/components/DevCenter/IsolatedDevCenterAppContainer/utils/dashboardCapturing.d.ts +2 -0
  223. package/components/DevCenter/IsolatedDevCenterAppContainer/utils/dashboardCapturing.d.ts.map +1 -0
  224. package/components/DevCenter/IsolatedDevCenterAppContainer/utils/dashboardCapturing.js +2 -0
  225. package/components/DevCenter/IsolatedDevCenterAppContainer/utils/dashboardCapturing.js.map +1 -0
  226. package/components/DocumentViewer/DocumentViewer.js +1 -1
  227. package/components/DocumentViewer/DocumentViewer.js.map +1 -1
  228. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  229. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  230. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  231. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  232. package/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  233. package/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  234. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  235. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  236. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  237. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  238. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  239. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  240. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  241. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  242. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  243. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  244. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  245. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  246. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  247. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  248. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  249. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  250. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  251. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  252. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  253. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  254. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  255. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  256. package/components/FeedItem/FeedItem.js +1 -1
  257. package/components/FeedItem/FeedItem.js.map +1 -1
  258. package/components/FeedItem/components/FeedComments.js +1 -1
  259. package/components/FeedItem/components/FeedComments.js.map +1 -1
  260. package/components/ImageViewer/index.js +1 -1
  261. package/components/ImageViewer/index.js.map +1 -1
  262. package/components/Modal/CorvaModal.js +1 -1
  263. package/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js +1 -1
  264. package/components/OffsetWellPickerV2/components/Filter/NonEngineeredWellsSwitch.js.map +1 -1
  265. package/components/OffsetWellPickerV2/components/Filter/SidetrackSwitch.js +1 -1
  266. package/components/OffsetWellPickerV2/components/Filter/SidetrackSwitch.js.map +1 -1
  267. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  268. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  269. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  270. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  271. package/components/OffsetWellPickerV2/effects/index.js +1 -1
  272. package/components/OffsetWellPickerV2/effects/index.js.map +1 -1
  273. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/SidetrackSwitch.js +1 -1
  274. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Filter/SidetrackSwitch.js.map +1 -1
  275. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  276. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  277. package/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js +1 -1
  278. package/components/OffsetWellPickerV3/components/CustomSelectionView/effects/index.js.map +1 -1
  279. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  280. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  281. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  282. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  283. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  284. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  285. package/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  286. package/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  287. package/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  288. package/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  289. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  290. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  291. package/components/OffsetWellPickerV4/OffsetWellPickerV4.js +1 -1
  292. package/components/OffsetWellPickerV4/OffsetWellPickerV4.js.map +1 -1
  293. package/components/OffsetWellPickerV4/components/Filter/Filter.js +1 -1
  294. package/components/OffsetWellPickerV4/components/Filter/Filter.js.map +1 -1
  295. package/components/OffsetWellPickerV4/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js +1 -1
  296. package/components/OffsetWellPickerV4/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js.map +1 -1
  297. package/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js +1 -1
  298. package/components/OffsetWellPickerV4/components/OffsetWellsTable/MetricsSettingMenu.js.map +1 -1
  299. package/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
  300. package/components/OffsetWellPickerV4/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
  301. package/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js +1 -1
  302. package/components/OffsetWellPickerV4/components/Toolbar/Toolbar.js.map +1 -1
  303. package/components/OffsetWellPickerV4/effects/useCompanyMetricKey.js +1 -1
  304. package/components/OffsetWellPickerV4/effects/useCompanyMetricKey.js.map +1 -1
  305. package/components/PadOffsetsPicker/StagesSelector.js +1 -1
  306. package/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  307. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  308. package/components/Popover/Popover.js +1 -1
  309. package/components/Popper/Popper.js +1 -1
  310. package/components/RealTimeValuesSidebar/SidebarFooter.js +1 -1
  311. package/components/WellSummary/WellSummaryItemValue.js +1 -1
  312. package/components/WellSummary/WellSummaryItemValue.js.map +1 -1
  313. package/components/WellSummary/effects/useWellSummaryData.js +1 -1
  314. package/components/WellSummary/effects/useWellSummaryData.js.map +1 -1
  315. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts +1 -0
  316. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts.map +1 -1
  317. package/componentsV2/AppCommonsProvider/AppCommonsProvider.d.ts +1 -3
  318. package/componentsV2/AppCommonsProvider/AppCommonsProvider.d.ts.map +1 -1
  319. package/componentsV2/AppCommonsProvider/AppCommonsProvider.js +1 -1
  320. package/componentsV2/AppCommonsProvider/utils.d.ts +44 -0
  321. package/componentsV2/AppCommonsProvider/utils.d.ts.map +1 -0
  322. package/componentsV2/AppCommonsProvider/utils.js +2 -0
  323. package/componentsV2/AppCommonsProvider/utils.js.map +1 -0
  324. package/componentsV2/AppFooter/DqPopover/DqPopover.js +1 -1
  325. package/componentsV2/AppHeader/AppAssets/utils.js +1 -1
  326. package/componentsV2/AppHeader/V3/Actions/Actions.d.ts.map +1 -1
  327. package/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  328. package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts +2 -2
  329. package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts.map +1 -1
  330. package/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  331. package/componentsV2/AppHeader/V3/AppHeaderV3.stories.d.ts +1 -0
  332. package/componentsV2/AppHeader/V3/AppHeaderV3.stories.d.ts.map +1 -1
  333. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.d.ts.map +1 -1
  334. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.js +1 -1
  335. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js +1 -1
  336. package/componentsV2/AppHeader/V3/AssetSelector/AssetSelector.js +1 -1
  337. package/componentsV2/AppHeader/V3/SettingsPopover/SettingsPopover.js +1 -1
  338. package/componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js +1 -1
  339. package/componentsV2/AppHeader/V3/useResponsivity.d.ts +3 -1
  340. package/componentsV2/AppHeader/V3/useResponsivity.d.ts.map +1 -1
  341. package/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  342. package/componentsV2/AppSettings/AppSettings.js +1 -1
  343. package/componentsV2/AppSettings/AppSettingsPinningContext.d.ts +1 -0
  344. package/componentsV2/AppSettings/AppSettingsPinningContext.d.ts.map +1 -1
  345. package/componentsV2/AppSettings/AppSettingsPinningContext.js +1 -1
  346. package/componentsV2/LoaderLinear/LoaderLinear.d.ts +3 -1
  347. package/componentsV2/LoaderLinear/LoaderLinear.d.ts.map +1 -1
  348. package/componentsV2/LoaderLinear/LoaderLinear.js +1 -1
  349. package/componentsV2/LoaderLinear/LoaderLinear.scss.js +1 -1
  350. package/componentsV2/LoaderLinear/LoaderLinear.stories.d.ts +2 -0
  351. package/componentsV2/LoaderLinear/LoaderLinear.stories.d.ts.map +1 -1
  352. package/componentsV2/PadModeSelect/PadModeSelect.js +1 -1
  353. package/constants/alerts.d.ts.map +1 -1
  354. package/constants/alerts.js +1 -1
  355. package/constants/alerts.js.map +1 -1
  356. package/constants/corvaCompanyId.d.ts +3 -1
  357. package/constants/corvaCompanyId.d.ts.map +1 -1
  358. package/constants/corvaCompanyId.js +1 -1
  359. package/constants/corvaCompanyId.js.map +1 -1
  360. package/constants/index.d.ts +3 -1
  361. package/constants/index.d.ts.map +1 -1
  362. package/constants/index.js +1 -1
  363. package/package.json +1 -1
  364. package/testing/AppTestWrapper/AppTestWrapper.d.ts +2 -1
  365. package/testing/AppTestWrapper/AppTestWrapper.d.ts.map +1 -1
  366. package/testing/AppTestWrapper/AppTestWrapper.js +1 -1
  367. package/utils/devcenter.js +1 -1
  368. package/utils/devcenter.js.map +1 -1
  369. package/utils/notificationToasts.d.ts.map +1 -1
  370. package/utils/notificationToasts.js +1 -1
  371. package/utils/notificationToasts.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"usePrimaryAssetSelectData.js","sources":["../../../../src/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { isEmpty, map, uniqBy } from 'lodash';\n\nimport { formatAsset, getRequestOptions, sortAsset } from '../utils';\n\nimport { jsonApi } from '~/clients';\nimport { jsonaDataFormatter } from '~/utils/jsonaDataFormatter';\nimport { PER_PAGE } from '~/components/AssetEditor/constants';\nimport { ASSET_TYPES } from '~/constants';\n\nexport function usePrimaryAssetSelectData({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n parentAssetId,\n parentAssetType,\n searchValue,\n assetFields,\n currentValue,\n setCurrentOption,\n scrollPage,\n onActiveAssetIdChange,\n isDrillingPlatformApp,\n}) {\n const [assets, setAssets] = useState([]);\n const [loading, setLoading] = useState(false);\n const prevCompany = useRef(null);\n\n const assetFieldsByAssetType =\n assetType === ASSET_TYPES.pad.type\n ? [...assetFields, 'pad.active', 'pad.parent_frac_fleet_id']\n : assetFields;\n\n const loadAssets = async group => {\n try {\n const currentAssetType = group?.type || assetType;\n setLoading(true);\n const requestParams = { per_page: PER_PAGE, page: scrollPage };\n if (parentAssetType && parentAssetId) requestParams[parentAssetType] = parentAssetId;\n if (company && company !== 'all') requestParams.company = company;\n if (searchValue) requestParams.search = searchValue;\n if (appKey) requestParams.app_key = appKey;\n\n prevCompany.current = company;\n const requestPromise = jsonApi.mapAssetGetRequest(currentAssetType)({\n ...getRequestOptions(currentAssetType, assetFieldsByAssetType),\n ...requestParams,\n });\n\n const response = await requestPromise;\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const responseAssets = map(deserializedResponse, asset =>\n formatAsset({\n asset,\n group: group?.name,\n isRequiredAssetId,\n isPrimaryAsset: true,\n isDrillingPlatformApp,\n })\n ).sort(sortAsset);\n\n if (prevCompany.current === company) {\n setAssets(prevState => uniqBy([...prevState, ...responseAssets], 'id'));\n }\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n const loadCurrentOption = async () => {\n let response = await jsonApi.mapAssetGetRequest(assetType)({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n if (isEmpty(response.data)) {\n // NOTE: Try fetch current option from v2/assets\n response = await jsonApi.getAssets({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n }\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const formattedAsset = formatAsset({\n asset: deserializedResponse[0],\n isPrimaryAsset: true,\n isRequiredAssetId,\n isDrillingPlatformApp,\n });\n\n setCurrentOption(formattedAsset);\n if (assetType === ASSET_TYPES.rig.type) {\n const activeWellId = isDrillingPlatformApp\n ? Number(response?.included?.[0]?.id)\n : formattedAsset?.activeWellId || null;\n onActiveAssetIdChange(activeWellId);\n }\n };\n\n useEffect(() => {\n if (company) {\n setAssets([]);\n }\n }, [company]);\n\n useEffect(() => {\n if (groups) {\n groups.forEach(group => {\n loadAssets(group);\n });\n return;\n }\n loadAssets();\n }, [\n assetType,\n parentAssetType,\n parentAssetId,\n company,\n appKey,\n groups?.length,\n searchValue,\n scrollPage,\n ]);\n\n useEffect(() => {\n if (currentValue) {\n loadCurrentOption();\n }\n }, []);\n\n return { assets, loading };\n}\n"],"names":["usePrimaryAssetSelectData","_ref","_ref2","_ref3","appKey","assetType","company","groups","isRequiredAssetId","parentAssetId","parentAssetType","searchValue","assetFields","currentValue","setCurrentOption","scrollPage","onActiveAssetIdChange","isDrillingPlatformApp","useState","_useState2","_slicedToArray","_useState","assets","setAssets","_useState4","_useState3","loading","setLoading","prevCompany","useRef","assetFieldsByAssetType","ASSET_TYPES","pad","type","concat","_toConsumableArray","loadAssets","_asyncToGenerator","_regeneratorRuntime","mark","group","currentAssetType","requestParams","requestPromise","response","deserializedResponse","responseAssets","wrap","_context","prev","next","per_page","PER_PAGE","page","search","app_key","current","jsonApi","_objectSpread","getRequestOptions","sent","jsonaDataFormatter","deserialize","map","asset","formatAsset","name","isPrimaryAsset","sort","sortAsset","prevState","uniqBy","t0","console","error","finish","stop","_callee","_x","apply","this","arguments","loadCurrentOption","_callee2","formattedAsset","_response","_response$included","_response$included$","activeWellId","_context2","ids","isEmpty","data","rig","Number","included","id","useEffect","forEach","length"],"mappings":"mpEAUO,SAASA,EAebC,GAAA,IAUeC,EAuCUC,EA/D1BC,IAAAA,OACAC,IAAAA,UACAC,IAAAA,QACAC,IAAAA,OACAC,IAAAA,kBACAC,IAAAA,cACAC,IAAAA,gBACAC,IAAAA,YACAC,IAAAA,YACAC,IAAAA,aACAC,IAAAA,iBACAC,IAAAA,WACAC,IAAAA,sBACAC,IAAAA,sBAE4BC,EAAAA,EAAS,IAAGC,EAAAC,EAAAC,EAAA,GAAjCC,EAAMH,EAAA,GAAEI,EAASJ,EAAA,GACMD,EAAAA,GAAS,GAAMM,EAAAJ,EAAAK,EAAA,GAAtCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GACpBI,EAAcC,EAAO,MAErBC,EACJzB,IAAc0B,EAAYC,IAAIC,KAAI,GAAAC,OAAAC,EAC1BvB,GAAa,CAAA,aAAc,6BAC/BA,EAEAwB,GAAUlC,EAAAmC,EAAAC,EAAAC,MAAG,WAAMC,GAAK,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAR,EAAAS,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAcxB,OAdwBF,EAAAC,KAAA,EAEpBR,GAAmBD,eAAAA,EAAOP,OAAQ5B,EACxCsB,GAAW,GACLe,EAAgB,CAAES,SAAUC,EAAUC,KAAMtC,GAC9CL,GAAmBD,IAAeiC,EAAchC,GAAmBD,GACnEH,GAAuB,QAAZA,IAAmBoC,EAAcpC,QAAUA,GACtDK,IAAa+B,EAAcY,OAAS3C,GACpCP,IAAQsC,EAAca,QAAUnD,GAEpCwB,EAAY4B,QAAUlD,EAChBqC,EAAiBc,EAA2BhB,EAA3BgB,CAA4CC,EAAAA,EAAA,CAAA,EAC9DC,EAAkBlB,EAAkBX,IACpCY,IACHM,EAAAE,KAAA,GAEqBP,EAAc,KAAA,GAA/BC,EAAQI,EAAAY,KACRf,EAAuBgB,EAAmBC,YAAYlB,GAEtDE,EAAiBiB,EAAIlB,GAAsB,SAAAmB,GAAK,OACpDC,EAAY,CACVD,MAAAA,EACAxB,MAAOA,aAAAA,EAAAA,EAAO0B,KACd1D,kBAAAA,EACA2D,gBAAgB,EAChBlD,sBAAAA,GACA,IACFmD,KAAKC,GAEHzC,EAAY4B,UAAYlD,GAC1BiB,GAAU,SAAA+C,GAAS,OAAIC,EAAWD,GAAAA,OAAAA,EAAAA,KAAcxB,IAAiB,SAClEE,EAAAE,KAAA,GAAA,MAAA,KAAA,GAAAF,EAAAC,KAAA,GAAAD,EAAAwB,GAAAxB,EAAA,MAAA,GAEDyB,QAAQC,MAAQ1B,EAAAwB,IAAC,KAAA,GAEC,OAFDxB,EAAAC,KAAA,GAEjBtB,GAAW,GAAOqB,EAAA2B,OAAA,IAAA,KAAA,GAAA,IAAA,MAAA,OAAA3B,EAAA4B,OAAA,GAAAC,EAAA,KAAA,CAAA,CAAA,EAAA,GAAA,GAAA,KAErB,KAAA,SArCeC,GAAA,OAAA5E,EAAA6E,MAAAC,KAAAC,UAAA,GAuCVC,GAAoB/E,EAAAkC,EAAAC,EAAAC,MAAA,SAAA4C,IAAA,IAAAvC,EAAAC,EAAAuC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAlD,EAAAS,MAAA,SAAA0C,GAAA,OAAA,OAAAA,EAAAxC,KAAAwC,EAAAvC,MAAA,KAAA,EAAA,OAAAuC,EAAAvC,KAAA,EACHO,EAA2BpD,EAA3BoD,CAChBE,EAAAA,EAAAA,GAAAA,EAAkBtD,EAAWyB,IAAuB,CAAA,EAAA,CACvD4D,IAAK7E,KACL,KAAA,EAHU,GAAR+B,EAAQ6C,EAAA7B,MAIR+B,EAAQ/C,EAASgD,MAAK,CAAAH,EAAAvC,KAAA,EAAA,KAAA,CAAA,OAAAuC,EAAAvC,KAAA,EAEPO,EAAiBC,EAAAA,EAAA,CAAA,EAC7BC,EAAkBtD,EAAWyB,IAAuB,GAAA,CACvD4D,IAAK7E,KACL,KAAA,EAHF+B,EAAQ6C,EAAA7B,KAAA,KAAA,EAKJf,EAAuBgB,EAAmBC,YAAYlB,GAEtDwC,EAAiBnB,EAAY,CACjCD,MAAOnB,EAAqB,GAC5BsB,gBAAgB,EAChB3D,kBAAAA,EACAS,sBAAAA,IAGFH,EAAiBsE,GACb/E,IAAc0B,EAAY8D,IAAI5D,OAC1BuD,EAAevE,EACjB6E,OAAe,QAATT,EAACzC,SAAQ,IAAAyC,GAAR,QAAQC,EAARD,EAAUU,gBAAV,IAAAT,GAAA,QAAAC,EAAAD,EAAqB,UAArB,IAAAC,OAAQ,EAARA,EAAyBS,KAChCZ,aAAc,EAAdA,EAAgBI,eAAgB,KACpCxE,EAAsBwE,IACvB,KAAA,GAAA,IAAA,MAAA,OAAAC,EAAAb,OAAA,GAAAO,EACF,KAAA,WA5BsB,OAAAhF,EAAA4E,MAAAC,KAAAC,UAAA,GA6DvB,OA/BAgB,GAAU,WACJ3F,GACFiB,EAAU,GAEd,GAAG,CAACjB,IAEJ2F,GAAU,WACJ1F,EACFA,EAAO2F,SAAQ,SAAA1D,GACbJ,EAAWI,EACb,IAGFJ,MACC,CACD/B,EACAK,EACAD,EACAH,EACAF,EACAG,aAAAA,EAAAA,EAAQ4F,OACRxF,EACAI,IAGFkF,GAAU,WACJpF,GACFqE,GAEH,GAAE,IAEI,CAAE5D,OAAAA,EAAQI,QAAAA,EACnB"}
1
+ {"version":3,"file":"usePrimaryAssetSelectData.js","sources":["../../../../src/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { isEmpty, map, uniqBy } from 'lodash';\n\nimport { formatAsset, getRequestOptions, sortAsset } from '../utils';\n\nimport { jsonApi } from '~/clients';\nimport { jsonaDataFormatter } from '~/utils/jsonaDataFormatter';\nimport { PER_PAGE } from '~/components/AssetEditor/constants';\nimport { ASSET_TYPES } from '~/constants';\n\nexport function usePrimaryAssetSelectData({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n parentAssetId,\n parentAssetType,\n searchValue,\n assetFields,\n currentValue,\n setCurrentOption,\n scrollPage,\n onActiveAssetIdChange,\n isDrillingPlatformApp,\n}) {\n const [assets, setAssets] = useState([]);\n const [loading, setLoading] = useState(false);\n const prevCompany = useRef(null);\n\n const assetFieldsByAssetType =\n assetType === ASSET_TYPES.pad.type\n ? [...assetFields, 'pad.active', 'pad.parent_frac_fleet_id']\n : assetFields;\n\n const loadAssets = async group => {\n try {\n const currentAssetType = group?.type || assetType;\n setLoading(true);\n const requestParams = { per_page: PER_PAGE, page: scrollPage };\n if (parentAssetType && parentAssetId) requestParams[parentAssetType] = parentAssetId;\n if (company && company !== 'all') requestParams.company = company;\n if (searchValue) requestParams.search = searchValue;\n if (appKey) requestParams.app_key = appKey;\n\n prevCompany.current = company;\n const requestPromise = jsonApi.mapAssetGetRequest(currentAssetType)({\n ...getRequestOptions(currentAssetType, assetFieldsByAssetType),\n ...requestParams,\n });\n\n const response = await requestPromise;\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const responseAssets = map(deserializedResponse, asset =>\n formatAsset({\n asset,\n group: group?.name,\n isRequiredAssetId,\n isPrimaryAsset: true,\n isDrillingPlatformApp,\n })\n ).sort(sortAsset);\n\n if (prevCompany.current === company) {\n setAssets(prevState => uniqBy([...prevState, ...responseAssets], 'id'));\n }\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n const loadCurrentOption = async () => {\n let response = await jsonApi.mapAssetGetRequest(assetType)({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n if (isEmpty(response.data)) {\n // NOTE: Try fetch current option from v2/assets\n response = await jsonApi.getAssets({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n }\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const formattedAsset = formatAsset({\n asset: deserializedResponse[0],\n isPrimaryAsset: true,\n isRequiredAssetId,\n isDrillingPlatformApp,\n });\n\n setCurrentOption(formattedAsset);\n if (assetType === ASSET_TYPES.rig.type) {\n const activeWellId = isDrillingPlatformApp\n ? Number(response?.included?.[0]?.id)\n : formattedAsset?.activeWellId || null;\n onActiveAssetIdChange(activeWellId);\n }\n };\n\n useEffect(() => {\n if (company) {\n setAssets([]);\n }\n }, [company]);\n\n useEffect(() => {\n if (groups) {\n groups.forEach(group => {\n loadAssets(group);\n });\n return;\n }\n loadAssets();\n }, [\n assetType,\n parentAssetType,\n parentAssetId,\n company,\n appKey,\n groups?.length,\n searchValue,\n scrollPage,\n ]);\n\n useEffect(() => {\n if (currentValue) {\n loadCurrentOption();\n }\n }, []);\n\n return { assets, loading };\n}\n"],"names":["usePrimaryAssetSelectData","_ref","_ref2","_ref3","appKey","assetType","company","groups","isRequiredAssetId","parentAssetId","parentAssetType","searchValue","assetFields","currentValue","setCurrentOption","scrollPage","onActiveAssetIdChange","isDrillingPlatformApp","useState","_useState2","_slicedToArray","_useState","assets","setAssets","_useState4","_useState3","loading","setLoading","prevCompany","useRef","assetFieldsByAssetType","ASSET_TYPES","pad","type","concat","_toConsumableArray","loadAssets","_asyncToGenerator","_regeneratorRuntime","mark","group","currentAssetType","requestParams","requestPromise","response","deserializedResponse","responseAssets","wrap","_context","prev","next","per_page","PER_PAGE","page","search","app_key","current","jsonApi","_objectSpread","getRequestOptions","sent","jsonaDataFormatter","deserialize","map","asset","formatAsset","name","isPrimaryAsset","sort","sortAsset","prevState","uniqBy","t0","console","error","finish","stop","_callee","_x","apply","this","arguments","loadCurrentOption","_callee2","formattedAsset","_response","_response$included","_response$included$","activeWellId","_context2","ids","isEmpty","data","rig","Number","included","id","useEffect","forEach","length"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import{useState as a,useRef as r,useEffect as n}from"react";import i from"prop-types";import{get as l,isEmpty as o,noop as p}from"lodash";import c from"classnames";import{makeStyles as d}from"@material-ui/core";import u from"./components/PrimaryAssetSelect.js";import m from"./components/SecondaryAssetSelect.js";import"./components/SelectItem.js";import y from"./components/MultipleAssetsToggle.js";import f from"./components/PrimaryAssetSelectV2.js";import{ACTIVE_ASSETS_ID as g,ACTIVE_ASSET_ID as A}from"./constants.js";import{getPrimaryAssetFields as b}from"./utils/index.js";import"../../constants/goals.js";import{PAD_GROUP as v,FRAC_FLEET_GROUP as h}from"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import{ASSET_TYPES as j}from"../../constants/assetTypes.js";import"../../utils/env.js";import"../GradientManager/configuration/constants.js";import{jsxs as I,jsx as S}from"react/jsx-runtime";function T(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);s&&(a=a.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),t.push.apply(t,a)}return t}function O(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?T(Object(a),!0).forEach((function(t){s(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):T(Object(a)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(a,s))}))}return e}var C=d({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),N=function(i){var p=i.appKey,d=i.appType,T=i.className,N=i.company,P=i.defaultValue,D=i.secondaryDefaultValue,V=i.disabled,F=i.isHiddenTitle,w=i.isNullable,x=i.label,R=i.onSettingsChange,_=i.primaryAssetFields,q=i.secondaryAssetFields,E=i.isExtendedSelect,H=i.isRequiredAssetId,k=i.settings,K=i.isVisibleMultipleAssetsToggle,L=i.assetsLimit,M=i.isDisabledSecondaryAssetSelect,G=i.isDrillingPlatformApp,W=i.secondaryAssetHelpText,z=i.onChange,B=i.elementsClassNames,J=l(d,["primaryAsset","assetType","type"]),Q=l(d,["primaryAsset","assetType","id"]),U=l(d,["primaryAsset","assetType","label"]),X=l(d,["primaryAsset","groups"]),Y=l(d,["secondaryAsset","assetType","type"]),Z=l(d,["secondaryAsset","assetType","id"]),$=l(d,["secondaryAsset","assetType","label"]),ee=l(k,Q),se=ee?Number(ee):null,te=l(k,Z)?Number(l(k,Z)):D||null,ae=a({id:se||P}),re=t(ae,2),ne=re[0],ie=re[1],le=a(te),oe=t(le,2),pe=oe[0],ce=oe[1],de=a(!1),ue=t(de,2),me=ue[0],ye=ue[1],fe=a(),ge=t(fe,2),Ae=ge[0],be=ge[1],ve=a(!1),he=t(ve,2),je=he[0],Ie=he[1],Se=r(!1),Te=function(){for(var e=arguments.length,s=new Array(e),t=0;t<e;t++)s[t]=arguments[t];R.apply(void 0,s.concat([Se.current]))},Oe=C(),Ce=J===j.rig.type?f:u,Ne=G&&null!=ne&&ne.assetId?null==ne?void 0:ne.assetId:null==ne?void 0:ne.id,Pe=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ie(t),ce(null),ye(!1);var a=(s(e={},Q,null),s(e,Z,null),s(e,"assets",null),e);Te(a)},De=je?Boolean(ne.length)&&!me:(null==ne?void 0:ne.id)&&!me;return n((function(){o(k)&&Pe(je&&[])}),[k]),I("div",{className:c(Oe.main,T),children:[!F&&S("div",{className:c(Oe.title,B.title),children:"Asset"}),K&&S(y,{onChange:function(e){var s=e.target;Se.current=!!s.checked,Ie(s.checked),Pe(s.checked&&[])},className:B.multiAssetSwitch}),S("div",{className:B.primaryAssetSelect,children:S(Ce,{appKey:p,assetType:J,company:N,currentOption:ne,currentValue:null==ne?void 0:ne.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),defaultValue:P,disableClearable:!w,disabled:V,isNullable:w,isRequiredAssetId:H,label:x,multiple:je,onChange:function(t){if(z({primary:t}),je)!function(t){var a,r;if(!(t.length>L)){var n=(null===(a=t[0])||void 0===a?void 0:a.group)===v.name,i=(null===(r=t[0])||void 0===r?void 0:r.group)===h.name,l=1===t.length&&n,o=1===t.length&&i;if(l?(ye(!0),be(v)):o&&be(h),n){ie(t);var p=null==t?void 0:t.reduce((function(s,t){var a=t.parentFracFleetId,r=t.id,n={fracFleetId:a,padId:r};return E&&(n.assetId=a,n.replacedPadId=r),a?[].concat(e(s),[n]):s}),[]);Te({assets:p})}else{ie(t);var c=t.reduce((function(t,a){var r=s({},"".concat(a.type,"Id"),a.id);return H&&(r.assetId=a.assetId),E&&(r.assetId=a.assetId||a.id),[].concat(e(t),[r])}),[]);Te({assets:c})}}}(t);else{var a=t.id,r=t.type,n=t.parentFracFleetId;if(a)if(r!==j.pad.type){ie(t),ce(null);var i=s({},Q,a);H&&(i.assetId=t.assetId),Z&&(i[Z]=null),Te(i),ye(!1)}else{var l;ie(t),ye(!0),ce(a);var o=(s(l={},j.frac_fleet.id,Number(n)),s(l,j.pad.id,a),l);Te(o)}}},setCurrentOption:ie,selectedGroup:Ae,onGroupChange:function(e){be(e),Pe(je&&[])},onGroupReset:function(){be(null),Pe(je&&[])},groups:X,onInputReset:Pe,onActiveAssetIdChange:function(e){ie((function(s){return O(O({},s),{},{activeWellId:e})}))},isDrillingPlatformApp:G,assetFields:b(J,_,G)})}),De&&I("div",{className:B.secondaryAssetSelect,children:[W,S(m,{assetFields:Y===j.pad.type?[].concat(e(q),["pad.active","pad.current"]):q,activeWellId:null==ne?void 0:ne.activeWellId,appKey:p,assetType:Y,company:N,currentValue:pe,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:je?g:A,disabled:je||M||V,isDrillingPlatformApp:G,isNullable:w,isRequiredAssetId:H,onChange:function(e){var t=e.id,a=e.assetId,r=e.name;z({secondary:{name:r}}),ce(t);var n=t===A?null:t,i=s({},Z,n);H&&Y===j.well.type?Te(O(O({},i),{},{replacedAssetId:G?n:a})):Te(i)},parentAssetId:Ne,parentAssetType:G?"parent_asset_id":J,primaryAssetLabel:U,secondaryAssetLabel:$})]})]})};N.defaultProps={assetsLimit:null,label:"Choose An Asset",isNullable:!1,defaultValue:void 0,secondaryDefaultValue:void 0,isHiddenTitle:!1,appKey:null,isVisibleMultipleAssetsToggle:!1,isDisabledSecondaryAssetSelect:!1,primaryAssetFields:[],secondaryAssetFields:[],secondaryAssetHelpText:null,onChange:p,elementsClassNames:{}},N.propTypes={assetsLimit:i.number,settings:i.shape({}).isRequired,appType:i.shape({}).isRequired,defaultValue:i.any,secondaryDefaultValue:i.any,onSettingsChange:i.func.isRequired,label:i.string,isNullable:i.bool,isHiddenTitle:i.bool,appKey:i.string,isVisibleMultipleAssetsToggle:i.bool,isDisabledSecondaryAssetSelect:i.bool,primaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetHelpText:i.oneOfType([i.element,i.string]),onChange:i.func,elementsClassNames:i.shape({title:i.string,multiAssetSwitch:i.string,primaryAssetSelect:i.string,secondaryAssetSelect:i.string})};export{N as default};
1
+ import e from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import{useState as a,useRef as r,useEffect as n}from"react";import i from"prop-types";import{get as l,isEmpty as o,noop as p}from"lodash";import c from"classnames";import{makeStyles as d}from"@material-ui/core";import u from"./components/PrimaryAssetSelect.js";import m from"./components/SecondaryAssetSelect.js";import"./components/SelectItem.js";import y from"./components/MultipleAssetsToggle.js";import f from"./components/PrimaryAssetSelectV2.js";import{ACTIVE_ASSETS_ID as g,ACTIVE_ASSET_ID as A}from"./constants.js";import{getPrimaryAssetFields as b}from"./utils/index.js";import"../../constants/goals.js";import{PAD_GROUP as v,FRAC_FLEET_GROUP as h}from"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import{ASSET_TYPES as j}from"../../constants/assetTypes.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import{jsxs as I,jsx as S}from"react/jsx-runtime";function T(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);s&&(a=a.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),t.push.apply(t,a)}return t}function O(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?T(Object(a),!0).forEach((function(t){s(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):T(Object(a)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(a,s))}))}return e}var C=d({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),N=function(i){var p=i.appKey,d=i.appType,T=i.className,N=i.company,P=i.defaultValue,D=i.secondaryDefaultValue,V=i.disabled,F=i.isHiddenTitle,w=i.isNullable,x=i.label,R=i.onSettingsChange,_=i.primaryAssetFields,q=i.secondaryAssetFields,E=i.isExtendedSelect,H=i.isRequiredAssetId,k=i.settings,K=i.isVisibleMultipleAssetsToggle,L=i.assetsLimit,M=i.isDisabledSecondaryAssetSelect,G=i.isDrillingPlatformApp,W=i.secondaryAssetHelpText,z=i.onChange,B=i.elementsClassNames,J=l(d,["primaryAsset","assetType","type"]),Q=l(d,["primaryAsset","assetType","id"]),U=l(d,["primaryAsset","assetType","label"]),X=l(d,["primaryAsset","groups"]),Y=l(d,["secondaryAsset","assetType","type"]),Z=l(d,["secondaryAsset","assetType","id"]),$=l(d,["secondaryAsset","assetType","label"]),ee=l(k,Q),se=ee?Number(ee):null,te=l(k,Z)?Number(l(k,Z)):D||null,ae=a({id:se||P}),re=t(ae,2),ne=re[0],ie=re[1],le=a(te),oe=t(le,2),pe=oe[0],ce=oe[1],de=a(!1),ue=t(de,2),me=ue[0],ye=ue[1],fe=a(),ge=t(fe,2),Ae=ge[0],be=ge[1],ve=a(!1),he=t(ve,2),je=he[0],Ie=he[1],Se=r(!1),Te=function(){for(var e=arguments.length,s=new Array(e),t=0;t<e;t++)s[t]=arguments[t];R.apply(void 0,s.concat([Se.current]))},Oe=C(),Ce=J===j.rig.type?f:u,Ne=G&&null!=ne&&ne.assetId?null==ne?void 0:ne.assetId:null==ne?void 0:ne.id,Pe=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ie(t),ce(null),ye(!1);var a=(s(e={},Q,null),s(e,Z,null),s(e,"assets",null),e);Te(a)},De=je?Boolean(ne.length)&&!me:(null==ne?void 0:ne.id)&&!me;return n((function(){o(k)&&Pe(je&&[])}),[k]),I("div",{className:c(Oe.main,T),children:[!F&&S("div",{className:c(Oe.title,B.title),children:"Asset"}),K&&S(y,{onChange:function(e){var s=e.target;Se.current=!!s.checked,Ie(s.checked),Pe(s.checked&&[])},className:B.multiAssetSwitch}),S("div",{className:B.primaryAssetSelect,children:S(Ce,{appKey:p,assetType:J,company:N,currentOption:ne,currentValue:null==ne?void 0:ne.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),defaultValue:P,disableClearable:!w,disabled:V,isNullable:w,isRequiredAssetId:H,label:x,multiple:je,onChange:function(t){if(z({primary:t}),je)!function(t){var a,r;if(!(t.length>L)){var n=(null===(a=t[0])||void 0===a?void 0:a.group)===v.name,i=(null===(r=t[0])||void 0===r?void 0:r.group)===h.name,l=1===t.length&&n,o=1===t.length&&i;if(l?(ye(!0),be(v)):o&&be(h),n){ie(t);var p=null==t?void 0:t.reduce((function(s,t){var a=t.parentFracFleetId,r=t.id,n={fracFleetId:a,padId:r};return E&&(n.assetId=a,n.replacedPadId=r),a?[].concat(e(s),[n]):s}),[]);Te({assets:p})}else{ie(t);var c=t.reduce((function(t,a){var r=s({},"".concat(a.type,"Id"),a.id);return H&&(r.assetId=a.assetId),E&&(r.assetId=a.assetId||a.id),[].concat(e(t),[r])}),[]);Te({assets:c})}}}(t);else{var a=t.id,r=t.type,n=t.parentFracFleetId;if(a)if(r!==j.pad.type){ie(t),ce(null);var i=s({},Q,a);H&&(i.assetId=t.assetId),Z&&(i[Z]=null),Te(i),ye(!1)}else{var l;ie(t),ye(!0),ce(a);var o=(s(l={},j.frac_fleet.id,Number(n)),s(l,j.pad.id,a),l);Te(o)}}},setCurrentOption:ie,selectedGroup:Ae,onGroupChange:function(e){be(e),Pe(je&&[])},onGroupReset:function(){be(null),Pe(je&&[])},groups:X,onInputReset:Pe,onActiveAssetIdChange:function(e){ie((function(s){return O(O({},s),{},{activeWellId:e})}))},isDrillingPlatformApp:G,assetFields:b(J,_,G)})}),De&&I("div",{className:B.secondaryAssetSelect,children:[W,S(m,{assetFields:Y===j.pad.type?[].concat(e(q),["pad.active","pad.current"]):q,activeWellId:null==ne?void 0:ne.activeWellId,appKey:p,assetType:Y,company:N,currentValue:pe,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:je?g:A,disabled:je||M||V,isDrillingPlatformApp:G,isNullable:w,isRequiredAssetId:H,onChange:function(e){var t=e.id,a=e.assetId,r=e.name;z({secondary:{name:r}}),ce(t);var n=t===A?null:t,i=s({},Z,n);H&&Y===j.well.type?Te(O(O({},i),{},{replacedAssetId:G?n:a})):Te(i)},parentAssetId:Ne,parentAssetType:G?"parent_asset_id":J,primaryAssetLabel:U,secondaryAssetLabel:$})]})]})};N.defaultProps={assetsLimit:null,label:"Choose An Asset",isNullable:!1,defaultValue:void 0,secondaryDefaultValue:void 0,isHiddenTitle:!1,appKey:null,isVisibleMultipleAssetsToggle:!1,isDisabledSecondaryAssetSelect:!1,primaryAssetFields:[],secondaryAssetFields:[],secondaryAssetHelpText:null,onChange:p,elementsClassNames:{}},N.propTypes={assetsLimit:i.number,settings:i.shape({}).isRequired,appType:i.shape({}).isRequired,defaultValue:i.any,secondaryDefaultValue:i.any,onSettingsChange:i.func.isRequired,label:i.string,isNullable:i.bool,isHiddenTitle:i.bool,appKey:i.string,isVisibleMultipleAssetsToggle:i.bool,isDisabledSecondaryAssetSelect:i.bool,primaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetHelpText:i.oneOfType([i.element,i.string]),onChange:i.func,elementsClassNames:i.shape({title:i.string,multiAssetSwitch:i.string,primaryAssetSelect:i.string,secondaryAssetSelect:i.string})};export{N as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle,\n isNullable,\n label,\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields,\n secondaryAssetFields,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle,\n assetsLimit,\n isDisabledSecondaryAssetSelect,\n isDrillingPlatformApp,\n secondaryAssetHelpText,\n onChange,\n elementsClassNames,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const secondaryAssetType = get(appType, ['secondaryAsset', 'assetType', 'type']);\n const secondaryAssetIdType = get(appType, ['secondaryAsset', 'assetType', 'id']);\n const secondaryAssetLabel = get(appType, ['secondaryAsset', 'assetType', 'label']);\n\n const currentValue = get(settings, primaryAssetIdType);\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = get(settings, secondaryAssetIdType)\n ? Number(get(settings, secondaryAssetIdType))\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState({ id: initialPrimaryAssetId || defaultValue });\n\n const [secondaryAssetId, setSecondaryAssetId] = useState(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState();\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n const onSettingsChange = (...args) => {\n propsOnSettingsChange(...args, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ? PrimaryAssetSelectV2 : PrimaryAssetSelect;\n\n const parentAssetId =\n isDrillingPlatformApp && primaryAsset?.assetId ? primaryAsset?.assetId : primaryAsset?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }) => {\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const secondaryAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: secondaryAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? secondaryAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = selected => {\n if (selected.length > assetsLimit) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected?.reduce((acc, { parentFracFleetId, id }) => {\n const settings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n settings.assetId = parentFracFleetId;\n settings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, settings] : acc;\n }, []);\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce((acc, asset) => {\n const settings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n settings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n settings.assetId = asset.assetId || asset.id;\n }\n return [...acc, settings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = selected => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n onMultipleAssetChange(selected);\n return;\n }\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (defaultValue = {}) => {\n setPrimaryAsset(defaultValue);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting = {\n [primaryAssetIdType]: null,\n [secondaryAssetIdType]: null,\n assets: null,\n };\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = ({ target }) => {\n isMultipleAssetsRef.current = !!target.checked;\n setIsMultipleAssets(target.checked);\n handlePrimaryAssetReset(target.checked && []);\n };\n\n const handleGroupChange = newGroup => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const secondaryAssetSelectIsVisible = isMultipleAssets\n ? Boolean(primaryAsset.length) && !isPadSelectedAsPrimaryAsset\n : primaryAsset?.id && !isPadSelectedAsPrimaryAsset;\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset(isMultipleAssets && []);\n }\n }, [settings]);\n\n return (\n <div className={classNames(styles.main, className)}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryAsset?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(primaryAsset => ({ ...primaryAsset, activeWellId: activeAssetId }));\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields(\n primaryAssetType,\n primaryAssetFields,\n isDrillingPlatformApp\n )}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryAsset?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nAppSettingsAssetEditor.defaultProps = {\n assetsLimit: null,\n label: 'Choose An Asset',\n isNullable: false,\n defaultValue: undefined,\n secondaryDefaultValue: undefined,\n isHiddenTitle: false,\n appKey: null,\n isVisibleMultipleAssetsToggle: false,\n isDisabledSecondaryAssetSelect: false,\n primaryAssetFields: [],\n secondaryAssetFields: [],\n secondaryAssetHelpText: null,\n onChange: noop,\n elementsClassNames: {},\n};\n\nAppSettingsAssetEditor.propTypes = {\n assetsLimit: PropTypes.number,\n settings: PropTypes.shape({}).isRequired,\n appType: PropTypes.shape({}).isRequired,\n defaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n secondaryDefaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n onSettingsChange: PropTypes.func.isRequired,\n label: PropTypes.string,\n isNullable: PropTypes.bool,\n isHiddenTitle: PropTypes.bool,\n appKey: PropTypes.string,\n isVisibleMultipleAssetsToggle: PropTypes.bool,\n isDisabledSecondaryAssetSelect: PropTypes.bool,\n primaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetHelpText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n onChange: PropTypes.func,\n elementsClassNames: PropTypes.shape({\n title: PropTypes.string,\n multiAssetSwitch: PropTypes.string,\n primaryAssetSelect: PropTypes.string,\n secondaryAssetSelect: PropTypes.string,\n }),\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","AppSettingsAssetEditor","_ref","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","isHiddenTitle","isNullable","label","propsOnSettingsChange","onSettingsChange","primaryAssetFields","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","isVisibleMultipleAssetsToggle","assetsLimit","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","secondaryAssetHelpText","onChange","elementsClassNames","primaryAssetType","get","primaryAssetIdType","primaryAssetLabel","primaryAssetSelectGroups","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","id","_useState2","_slicedToArray","primaryAsset","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState7","_useState8","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","_len","arguments","length","args","Array","_key","concat","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","type","PrimaryAssetSelectV2","PrimaryAssetSelect","parentAssetId","assetId","handlePrimaryAssetReset","_assetSetting4","undefined","assetSetting","_defineProperty","secondaryAssetSelectIsVisible","Boolean","useEffect","isEmpty","_jsxs","classNames","main","children","_jsx","MultipleAssetsToggle","_ref4","target","checked","multiAssetSwitch","primaryAssetSelect","assetType","currentOption","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","fracFleetId","padId","replacedPadId","assets","asset","onMultipleAssetChange","pad","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","groups","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","defaultProps","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle,\n isNullable,\n label,\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields,\n secondaryAssetFields,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle,\n assetsLimit,\n isDisabledSecondaryAssetSelect,\n isDrillingPlatformApp,\n secondaryAssetHelpText,\n onChange,\n elementsClassNames,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const secondaryAssetType = get(appType, ['secondaryAsset', 'assetType', 'type']);\n const secondaryAssetIdType = get(appType, ['secondaryAsset', 'assetType', 'id']);\n const secondaryAssetLabel = get(appType, ['secondaryAsset', 'assetType', 'label']);\n\n const currentValue = get(settings, primaryAssetIdType);\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = get(settings, secondaryAssetIdType)\n ? Number(get(settings, secondaryAssetIdType))\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState({ id: initialPrimaryAssetId || defaultValue });\n\n const [secondaryAssetId, setSecondaryAssetId] = useState(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState();\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n const onSettingsChange = (...args) => {\n propsOnSettingsChange(...args, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ? PrimaryAssetSelectV2 : PrimaryAssetSelect;\n\n const parentAssetId =\n isDrillingPlatformApp && primaryAsset?.assetId ? primaryAsset?.assetId : primaryAsset?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }) => {\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const secondaryAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: secondaryAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? secondaryAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = selected => {\n if (selected.length > assetsLimit) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected?.reduce((acc, { parentFracFleetId, id }) => {\n const settings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n settings.assetId = parentFracFleetId;\n settings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, settings] : acc;\n }, []);\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce((acc, asset) => {\n const settings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n settings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n settings.assetId = asset.assetId || asset.id;\n }\n return [...acc, settings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = selected => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n onMultipleAssetChange(selected);\n return;\n }\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (defaultValue = {}) => {\n setPrimaryAsset(defaultValue);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting = {\n [primaryAssetIdType]: null,\n [secondaryAssetIdType]: null,\n assets: null,\n };\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = ({ target }) => {\n isMultipleAssetsRef.current = !!target.checked;\n setIsMultipleAssets(target.checked);\n handlePrimaryAssetReset(target.checked && []);\n };\n\n const handleGroupChange = newGroup => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const secondaryAssetSelectIsVisible = isMultipleAssets\n ? Boolean(primaryAsset.length) && !isPadSelectedAsPrimaryAsset\n : primaryAsset?.id && !isPadSelectedAsPrimaryAsset;\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset(isMultipleAssets && []);\n }\n }, [settings]);\n\n return (\n <div className={classNames(styles.main, className)}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryAsset?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(primaryAsset => ({ ...primaryAsset, activeWellId: activeAssetId }));\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields(\n primaryAssetType,\n primaryAssetFields,\n isDrillingPlatformApp\n )}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryAsset?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nAppSettingsAssetEditor.defaultProps = {\n assetsLimit: null,\n label: 'Choose An Asset',\n isNullable: false,\n defaultValue: undefined,\n secondaryDefaultValue: undefined,\n isHiddenTitle: false,\n appKey: null,\n isVisibleMultipleAssetsToggle: false,\n isDisabledSecondaryAssetSelect: false,\n primaryAssetFields: [],\n secondaryAssetFields: [],\n secondaryAssetHelpText: null,\n onChange: noop,\n elementsClassNames: {},\n};\n\nAppSettingsAssetEditor.propTypes = {\n assetsLimit: PropTypes.number,\n settings: PropTypes.shape({}).isRequired,\n appType: PropTypes.shape({}).isRequired,\n defaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n secondaryDefaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n onSettingsChange: PropTypes.func.isRequired,\n label: PropTypes.string,\n isNullable: PropTypes.bool,\n isHiddenTitle: PropTypes.bool,\n appKey: PropTypes.string,\n isVisibleMultipleAssetsToggle: PropTypes.bool,\n isDisabledSecondaryAssetSelect: PropTypes.bool,\n primaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetHelpText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n onChange: PropTypes.func,\n elementsClassNames: PropTypes.shape({\n title: PropTypes.string,\n multiAssetSwitch: PropTypes.string,\n primaryAssetSelect: PropTypes.string,\n secondaryAssetSelect: PropTypes.string,\n }),\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","AppSettingsAssetEditor","_ref","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","isHiddenTitle","isNullable","label","propsOnSettingsChange","onSettingsChange","primaryAssetFields","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","isVisibleMultipleAssetsToggle","assetsLimit","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","secondaryAssetHelpText","onChange","elementsClassNames","primaryAssetType","get","primaryAssetIdType","primaryAssetLabel","primaryAssetSelectGroups","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","id","_useState2","_slicedToArray","primaryAsset","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState7","_useState8","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","_len","arguments","length","args","Array","_key","concat","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","type","PrimaryAssetSelectV2","PrimaryAssetSelect","parentAssetId","assetId","handlePrimaryAssetReset","_assetSetting4","undefined","assetSetting","_defineProperty","secondaryAssetSelectIsVisible","Boolean","useEffect","isEmpty","_jsxs","classNames","main","children","_jsx","MultipleAssetsToggle","_ref4","target","checked","multiAssetSwitch","primaryAssetSelect","assetType","currentOption","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","fracFleetId","padId","replacedPadId","assets","asset","onMultipleAssetChange","pad","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","groups","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","defaultProps","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"83DAcA,IAAMA,EAAYC,EAAW,CAC3BC,MAAO,CAAEC,WAAY,IAAKC,SAAU,GAAIC,OAAQ,iBAM5CC,EAAyB,SAwBzBC,GAAA,IAvBJC,IAAAA,OACAC,IAAAA,QACAC,IAAAA,UACAC,IAAAA,QACAC,IAAAA,aACAC,IAAAA,sBACAC,IAAAA,SACAC,IAAAA,cACAC,IAAAA,WACAC,IAAAA,MACkBC,IAAlBC,iBACAC,IAAAA,mBACAC,IAAAA,qBACAC,IAAAA,iBACAC,IAAAA,kBACAC,IAAAA,SACAC,IAAAA,8BACAC,IAAAA,YACAC,IAAAA,+BACAC,IAAAA,sBACAC,IAAAA,uBACAC,IAAAA,SACAC,IAAAA,mBAEMC,EAAmBC,EAAIxB,EAAS,CAAC,eAAgB,YAAa,SAC9DyB,EAAqBD,EAAIxB,EAAS,CAAC,eAAgB,YAAa,OAChE0B,EAAoBF,EAAIxB,EAAS,CAAC,eAAgB,YAAa,UAC/D2B,EAA2BH,EAAIxB,EAAS,CAAC,eAAgB,WAEzD4B,EAAqBJ,EAAIxB,EAAS,CAAC,iBAAkB,YAAa,SAClE6B,EAAuBL,EAAIxB,EAAS,CAAC,iBAAkB,YAAa,OACpE8B,EAAsBN,EAAIxB,EAAS,CAAC,iBAAkB,YAAa,UAEnE+B,GAAeP,EAAIT,EAAUU,GAC7BO,GAAwBD,GAAeE,OAAOF,IAAgB,KAC9DG,GAA0BV,EAAIT,EAAUc,GAC1CI,OAAOT,EAAIT,EAAUc,IACrBzB,GAAyB,KAC7B+B,GAAwCC,EAAS,CAAEC,GAAIL,IAAyB7B,IAAemC,GAAAC,EAAAJ,GAAA,GAAxFK,GAAYF,GAAA,GAAEG,GAAeH,GAAA,GAEYF,GAAAA,EAASF,IAAwBQ,GAAAH,EAAAI,GAAA,GAA1EC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAC0BN,GAAAA,GAAS,GAAMU,GAAAP,EAAAQ,GAAA,GAA9EC,GAA2BF,GAAA,GAAEG,GAA8BH,GAAA,GAClEI,GAA0Cd,IAAUe,GAAAZ,EAAAW,GAAA,GAA7CE,GAAaD,GAAA,GAAEE,GAAgBF,GAAA,GACUf,GAAAA,GAAS,GAAMkB,GAAAf,EAAAgB,GAAA,GAAxDC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GACtCI,GAAsBC,GAAO,GAC7BjD,GAAmB,WAAa,IAAA,IAAAkD,EAAAC,UAAAC,OAATC,EAAI,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAC/BxD,eAAyBsD,EAAIG,OAAA,CAAER,GAAoBS,YAG/CC,GAAS7E,IAET8E,GACJ9C,IAAqB+C,EAAYC,IAAIC,KAAOC,EAAuBC,EAE/DC,GACJxD,SAAyBqB,IAAAA,GAAcoC,QAAUpC,cAAY,EAAZA,GAAcoC,QAAUpC,cAAY,EAAZA,GAAcH,GAoGnFwC,GAA0B,WAAuB,IAAAC,EAAtB3E,EAAe0D,UAAAC,OAAA,QAAAiB,IAAAlB,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC9CpB,GAAgBtC,GAChB0C,GAAoB,MAEpBI,IAA+B,GAC/B,IAAM+B,GACHvD,EAAAA,EAAAA,GAAAA,EAAqB,MACrBI,EAAAA,EAAAA,EAAuB,MAChBoD,EAAAH,EAAA,SAAA,MACTA,GACDpE,GAAiBsE,IAmBbE,GAAgC1B,GAClC2B,QAAQ3C,GAAasB,UAAYd,IACjCR,cAAY,EAAZA,GAAcH,MAAOW,GAQzB,OANAoC,GAAU,WACJC,EAAQtE,IACV8D,GAAwBrB,IAAoB,GAEhD,GAAG,CAACzC,IAGFuE,EAAA,MAAA,CAAKrF,UAAWsF,EAAWnB,GAAOoB,KAAMvF,GAAWwF,SAChD,EAACnF,GACAoF,EAAA,MAAA,CAAKzF,UAAWsF,EAAWnB,GAAO3E,MAAO6B,EAAmB7B,OAAOgG,SAAA,UAEpEzE,GACC0E,EAACC,EAAoB,CACnBtE,SAjC2B,SAAgBuE,GAAA,IAAbC,IAAAA,OACpCnC,GAAoBS,UAAY0B,EAAOC,QACvCrC,GAAoBoC,EAAOC,SAC3BjB,GAAwBgB,EAAOC,SAAW,KA+BpC7F,UAAWqB,EAAmByE,mBAGlCL,EAAA,MAAA,CAAKzF,UAAWqB,EAAmB0E,mBAAmBP,SACpDC,EAACrB,GAA2B,CAC1BtE,OAAQA,EACRkG,UAAW1E,EACXrB,QAASA,EACTgG,cAAe1D,GACfT,aAAcS,cAAAA,EAAAA,GAAcH,GAC5B,cAAA,GAAA6B,OAxNQ,4BAwNmD,mCAC3D/D,aAAcA,EACdgG,kBAAmB5F,EACnBF,SAAUA,EACVE,WAAYA,EACZO,kBAAmBA,EACnBN,MAAOA,EACP4F,SAAU5C,GACVnC,SA9FqB,SAAAgF,GAE3B,GADAhF,EAAS,CAAEiF,QAASD,IAChB7C,IAtDwB,SAAA6C,GAAY,IAAAE,EAAAC,EACxC,KAAIH,EAASvC,OAAS7C,GAAtB,CAEA,IAAMwF,GAA2B,QAAXJ,EAAAA,EAAS,UAAE,IAAAE,OAAA,EAAXA,EAAaG,SAAUC,EAAUC,KACjDC,GAAiC,QAAXR,EAAAA,EAAS,UAAE,IAAAG,OAAA,EAAXA,EAAaE,SAAUI,EAAiBF,KAC9DG,EAAyC,IAApBV,EAASvC,QAAgB2C,EAC9CO,EAA+C,IAApBX,EAASvC,QAAgB+C,EAS1D,GAPIE,GACF9D,IAA+B,GAC/BI,GAAiBsD,IACRK,GACT3D,GAAiByD,GAGfL,EAAJ,CACEhE,GAAgB4D,GAChB,IAAMY,EAAgBZ,aAAQ,EAARA,EAAUa,QAAO,SAACC,EAAmCC,GAAA,IAA5BC,IAAAA,kBAAmBhF,IAAAA,GAC1DtB,EAAW,CACfuG,YAAaD,EACbE,MAAOlF,GAOT,OAJIxB,IACFE,EAAS6D,QAAUyC,EACnBtG,EAASyG,cAAgBnF,GAEpBgF,EAAwBF,GAAAA,OAAAA,EAAAA,GAAKpG,CAAAA,IAAYoG,CACjD,GAAE,IAEHzG,GAAiB,CACf+G,OAAQR,GAGZ,KAnBA,CAqBAxE,GAAgB4D,GAChB,IAAMY,EAAgBZ,EAASa,QAAO,SAACC,EAAKO,GAC1C,IAAM3G,iBAAiB2G,EAAMlD,KAAWkD,MAAAA,EAAMrF,IAO9C,OANIvB,IACFC,EAAS6D,QAAU8C,EAAM9C,SAEvB/D,IACFE,EAAS6D,QAAU8C,EAAM9C,SAAW8C,EAAMrF,IAEjC8E,GAAAA,OAAAA,EAAAA,IAAKpG,GACjB,GAAE,IACHL,GAAiB,CACf+G,OAAQR,GAdV,CAjCmC,EAsDjCU,CAAsBtB,OADxB,CAIA,IAAQhE,EAAgCgE,EAAhChE,GAAImC,EAA4B6B,EAA5B7B,KAAM6C,EAAsBhB,EAAtBgB,kBAClB,GAAKhF,EACL,GAAImC,IAASF,EAAYsD,IAAIpD,KAA7B,CAYA/B,GAAgB4D,GAChBxD,GAAoB,MACpB,IAAMmC,EAAYC,EAAA,CAAA,EAAMxD,EAAqBY,GACzCvB,IAAmBkE,EAAaJ,QAAUyB,EAASzB,SACnD/C,IAAsBmD,EAAanD,GAAwB,MAC/DnB,GAAiBsE,GACjB/B,IAA+B,EAR/B,KAVA,CAAmC,IAAA4E,EACjCpF,GAAgB4D,GAChBpD,IAA+B,GAC/BJ,GAAoBR,GACpB,IAAM2C,UACHV,EAAYwD,WAAWzF,GAAKJ,OAAOoF,IAAkBpC,EAAA4C,EACrDvD,EAAYsD,IAAIvF,GAAKA,GACvBwF,GACDnH,GAAiBsE,EAEnB,CAbA,GA0FM+C,iBAAkBtF,GAClBW,cAAeA,GACf4E,cAjDkB,SAAAC,GACxB5E,GAAiB4E,GACjBpD,GAAwBrB,IAAoB,KAgDtC0E,aA7CiB,WACvB7E,GAAiB,MACjBwB,GAAwBrB,IAAoB,KA4CtC2E,OAAQxG,EACRyG,aAAcvD,GACdwD,sBAAuB,SAAAC,GACrB7F,IAAgB,SAAAD,GAAY,OAAA+F,EAAAA,EAAA,CAAA,EAAU/F,GAAY,CAAA,EAAA,CAAEgG,aAAcF,GAAa,GAC/E,EACFnH,sBAAuBA,EACvBsH,YAAaC,EACXnH,EACAZ,EACAQ,OAIL+D,IACCI,EAAA,MAAA,CAAKrF,UAAWqB,EAAmBqH,qBAAqBlD,SACrDrE,CAAAA,EACDsE,EAACkD,EAAoB,CACnBH,YACE7G,IAAuB0C,EAAYsD,IAAIpD,KAAI,GAAAN,OAAA2E,EACnCjI,GAAsB,CAAA,aAAc,gBACxCA,EAEN4H,aAAchG,cAAAA,EAAAA,GAAcgG,aAC5BzI,OAAQA,EACRkG,UAAWrE,EACX1B,QAASA,EACT6B,aAAca,GACd,cAAA,GAAAsB,OAhQM,4BAgQ4C,0BAClD/D,aAAcqD,GAAmBsF,EAAmBC,EACpD1I,SAAUmD,IAAoBtC,GAAkCb,EAChEc,sBAAuBA,EACvBZ,WAAYA,EACZO,kBAAmBA,EACnBO,SAzMqB,SAA2B2H,GAAA,IAAxB3G,IAAAA,GAAIuC,IAAAA,QAASgC,IAAAA,KAC7CvF,EAAS,CAAE4H,UAAW,CAAErC,KAAAA,KACxB/D,GAAoBR,GACpB,IAAMO,EAAmBP,IAAO0G,EAAkB,KAAO1G,EACnD6G,EAAajE,EAAA,CAAA,EAAMpD,EAAuBe,GAE5C9B,GAAqBc,IAAuB0C,EAAY6E,KAAK3E,KAC/D9D,UACKwI,GAAa,CAAA,EAAA,CAChBE,gBAAiBjI,EAAwByB,EAAmBgC,KAKhElE,GAAiBwI,IA4LTvE,cAAeA,GACf0E,gBAAiBlI,EAvQL,kBAuQ+CI,EAC3DG,kBAAmBA,EACnBI,oBAAqBA,SAMjC,EAEAjC,EAAuByJ,aAAe,CACpCrI,YAAa,KACbT,MAAO,kBACPD,YAAY,EACZJ,kBAAc4E,EACd3E,2BAAuB2E,EACvBzE,eAAe,EACfP,OAAQ,KACRiB,+BAA+B,EAC/BE,gCAAgC,EAChCP,mBAAoB,GACpBC,qBAAsB,GACtBQ,uBAAwB,KACxBC,SAAUkI,EACVjI,mBAAoB,CAAC,GAGvBzB,EAAuB2J,UAAY,CACjCvI,YAAawI,EAAUC,OACvB3I,SAAU0I,EAAUE,MAAM,CAAA,GAAIC,WAC9B5J,QAASyJ,EAAUE,MAAM,CAAA,GAAIC,WAC7BzJ,aAAcsJ,EAAUI,IACxBzJ,sBAAuBqJ,EAAUI,IACjCnJ,iBAAkB+I,EAAUK,KAAKF,WACjCpJ,MAAOiJ,EAAUM,OACjBxJ,WAAYkJ,EAAUO,KACtB1J,cAAemJ,EAAUO,KACzBjK,OAAQ0J,EAAUM,OAClB/I,8BAA+ByI,EAAUO,KACzC9I,+BAAgCuI,EAAUO,KAC1CrJ,mBAAoB8I,EAAUQ,QAAQR,EAAUE,MAAM,CAAE,IACxD/I,qBAAsB6I,EAAUQ,QAAQR,EAAUE,MAAM,CAAE,IAC1DvI,uBAAwBqI,EAAUS,UAAU,CAACT,EAAUU,QAASV,EAAUM,SAC1E1I,SAAUoI,EAAUK,KACpBxI,mBAAoBmI,EAAUE,MAAM,CAClClK,MAAOgK,EAAUM,OACjBhE,iBAAkB0D,EAAUM,OAC5B/D,mBAAoByD,EAAUM,OAC9BpB,qBAAsBc,EAAUM"}
@@ -1,2 +1,2 @@
1
- import t from"@babel/runtime/helpers/toConsumableArray";import"lodash";import{DEFAULT_ASSET_TYPE as s,ACTIVE_STATUS as e}from"../constants.js";import"../../../constants/goals.js";import"../../../constants/segment.js";import"../../../constants/alerts.js";import"../../../constants/apps.js";import"../../../constants/drillstring.js";import"../../../constants/completion.js";import"../../../constants/appPackages.js";import"../../../constants/notifications.js";import"../../../constants/feed.js";import"../../../constants/bha.js";import{ASSET_TYPES as n}from"../../../constants/assetTypes.js";import"../../../utils/env.js";import"../../GradientManager/configuration/constants.js";var a=function(s){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{sort:"name",order:"asc",fields:["".concat(s,".name"),"".concat(s,".status")].concat(t(e))}},r=function(t){var a=t.asset,r=t.group,i=void 0===r?null:r,o=t.activeWellId,l=void 0===o?null:o,c=t.isRequiredAssetId,p=t.isPrimaryAsset,u=t.isDrillingPlatformApp;if(!a)return null;var d,m,v={id:+a.assetId||+a.id,type:a.type,name:a.name};(c&&(v.id=+a.id,v.assetId=+a.assetId),i&&(v.group=i),a.type===n.rig.type)&&(v.activeWellId=Number(null===(d=a.activeWell)||void 0===d?void 0:d.id)||null,u&&(v.activeWellId=Number(null===(m=a.activeWell)||void 0===m?void 0:m.assetId)||null));return a.type!==n.well.type&&a.type!==s||(v.status=Number(a.id)===l?e:null),a.type===n.pad.type&&(v.parentFracFleetId=a.parentFracFleetId,v.status=a.active&&a.current?e:null,p&&!a.parentFracFleetId&&(v.status=null)),v},i=function(t){return t.status===e?-1:1},o=function(s,e,a){var r=s===n.rig.type?[].concat(t(e),["rig.active_well"]):e;return a?[].concat(t(r),["rig.active_child"]):r};export{r as formatAsset,o as getPrimaryAssetFields,a as getRequestOptions,i as sortAsset};
1
+ import t from"@babel/runtime/helpers/toConsumableArray";import"lodash";import{DEFAULT_ASSET_TYPE as s,ACTIVE_STATUS as n}from"../constants.js";import"../../../constants/goals.js";import"../../../constants/segment.js";import"../../../constants/alerts.js";import"../../../constants/apps.js";import"../../../constants/drillstring.js";import"../../../constants/completion.js";import"../../../constants/appPackages.js";import"../../../constants/notifications.js";import"../../../constants/feed.js";import"../../../constants/bha.js";import{ASSET_TYPES as e}from"../../../constants/assetTypes.js";import"../../../constants/corvaCompanyId.js";import"../../GradientManager/configuration/constants.js";var a=function(s){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{sort:"name",order:"asc",fields:["".concat(s,".name"),"".concat(s,".status")].concat(t(n))}},r=function(t){var a=t.asset,r=t.group,o=void 0===r?null:r,i=t.activeWellId,l=void 0===i?null:i,c=t.isRequiredAssetId,p=t.isPrimaryAsset,d=t.isDrillingPlatformApp;if(!a)return null;var u,m,v={id:+a.assetId||+a.id,type:a.type,name:a.name};(c&&(v.id=+a.id,v.assetId=+a.assetId),o&&(v.group=o),a.type===e.rig.type)&&(v.activeWellId=Number(null===(u=a.activeWell)||void 0===u?void 0:u.id)||null,d&&(v.activeWellId=Number(null===(m=a.activeWell)||void 0===m?void 0:m.assetId)||null));return a.type!==e.well.type&&a.type!==s||(v.status=Number(a.id)===l?n:null),a.type===e.pad.type&&(v.parentFracFleetId=a.parentFracFleetId,v.status=a.active&&a.current?n:null,p&&!a.parentFracFleetId&&(v.status=null)),v},o=function(t){return t.status===n?-1:1},i=function(s,n,a){var r=s===e.rig.type?[].concat(t(n),["rig.active_well"]):n;return a?[].concat(t(r),["rig.active_child"]):r};export{r as formatAsset,i as getPrimaryAssetFields,a as getRequestOptions,o as sortAsset};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/utils/index.js"],"sourcesContent":["import { isEmpty } from 'lodash';\n\nimport { ACTIVE_STATUS, DEFAULT_ASSET_TYPE } from '../constants';\n\nimport { ASSET_TYPES } from '~/constants';\n\nexport const mapAssetIdPath = assetType => {\n switch (assetType) {\n case 'rig':\n case 'well':\n return ['attributes', 'asset_id'];\n case 'frac_fleet':\n case 'pad':\n default:\n return ['id'];\n }\n};\n\nexport const getPadFracFleetId = (fracFleets = []) => {\n const currentFracFleet = fracFleets.find(fracFleet => fracFleet === fracFleet.current)?.id;\n const lastCurrentFracFleet = fracFleets.reduce((a, b) => {\n return new Date(a.lastCurrentAt) > new Date(b.lastCurrentAt) ? a : b;\n }, {});\n\n if (!isEmpty(currentFracFleet)) {\n return currentFracFleet.fracFleet?.id;\n }\n return lastCurrentFracFleet.fracFleet?.id;\n};\n\nexport const getRequestOptions = (assetType, assetFields = []) => ({\n sort: 'name',\n order: 'asc',\n fields: [`${assetType}.name`, `${assetType}.status`, ...assetFields],\n});\n\nexport const formatAsset = ({\n asset,\n group = null,\n activeWellId = null,\n isRequiredAssetId,\n isPrimaryAsset,\n isDrillingPlatformApp,\n}) => {\n if (!asset) return null;\n const formattedAsset = {\n id: +asset.assetId || +asset.id,\n type: asset.type,\n name: asset.name,\n };\n\n if (isRequiredAssetId) {\n formattedAsset.id = +asset.id;\n formattedAsset.assetId = +asset.assetId;\n }\n\n if (group) {\n formattedAsset.group = group;\n }\n if (asset.type === ASSET_TYPES.rig.type) {\n formattedAsset.activeWellId = Number(asset.activeWell?.id) || null;\n if (isDrillingPlatformApp) {\n formattedAsset.activeWellId = Number(asset.activeWell?.assetId) || null;\n }\n }\n if (asset.type === ASSET_TYPES.well.type || asset.type === DEFAULT_ASSET_TYPE) {\n formattedAsset.status = Number(asset.id) === activeWellId ? ACTIVE_STATUS : null;\n }\n if (asset.type === ASSET_TYPES.pad.type) {\n formattedAsset.parentFracFleetId = asset.parentFracFleetId;\n\n formattedAsset.status = asset.active && asset.current ? ACTIVE_STATUS : null;\n\n if (isPrimaryAsset && !asset.parentFracFleetId) {\n formattedAsset.status = null;\n }\n }\n return formattedAsset;\n};\n\nexport const sortAsset = curr => (curr.status === ACTIVE_STATUS ? -1 : 1);\n\nexport const getPrimaryAssetFields = (primaryAssetType, assetFields, isDrillingPlatformApp) => {\n const customAssetFields =\n primaryAssetType === ASSET_TYPES.rig.type ? [...assetFields, 'rig.active_well'] : assetFields;\n\n if (isDrillingPlatformApp) return [...customAssetFields, 'rig.active_child'];\n\n return customAssetFields;\n};\n"],"names":["getRequestOptions","assetType","assetFields","sort","order","fields","formatAsset","_ref","asset","_ref$group","group","_ref$activeWellId","activeWellId","isRequiredAssetId","isPrimaryAsset","isDrillingPlatformApp","_asset$activeWell","_asset$activeWell2","formattedAsset","id","assetId","type","name","ASSET_TYPES","rig","Number","activeWell","well","DEFAULT_ASSET_TYPE","status","ACTIVE_STATUS","pad","parentFracFleetId","active","current","sortAsset","curr","getPrimaryAssetFields","primaryAssetType","customAssetFields"],"mappings":"yqBA8BaA,EAAoB,SAACC,GAAS,IAAEC,yDAAc,GAAE,MAAM,CACjEC,KAAM,OACNC,MAAO,MACPC,OAAYJ,CAAAA,GAAAA,OAAAA,EAAqBA,SAAAA,GAAAA,OAAAA,uBAAuBC,IACzD,EAEYI,EAAc,SAOrBC,GAAA,IANJC,IAAAA,MAAKC,EAAAF,EACLG,MAAAA,aAAQ,KAAID,EAAAE,EAAAJ,EACZK,aAAAA,aAAe,KAAID,EACnBE,IAAAA,kBACAC,IAAAA,eACAC,IAAAA,sBAEA,IAAKP,EAAO,OAAO,KACnB,IAcyCQ,EAEZC,EAhBvBC,EAAiB,CACrBC,IAAKX,EAAMY,UAAYZ,EAAMW,GAC7BE,KAAMb,EAAMa,KACZC,KAAMd,EAAMc,OAGVT,IACFK,EAAeC,IAAMX,EAAMW,GAC3BD,EAAeE,SAAWZ,EAAMY,SAG9BV,IACFQ,EAAeR,MAAQA,GAErBF,EAAMa,OAASE,EAAYC,IAAIH,QACjCH,EAAeN,aAAea,OAAO,QAAAjB,EAAAA,EAAMkB,kBAAN,IAAAV,OAAA,EAAAA,EAAkBG,KAAO,KAC1DJ,IACFG,EAAeN,aAAea,OAAO,QAAAjB,EAAAA,EAAMkB,kBAAN,IAAAT,OAAA,EAAAA,EAAkBG,UAAY,OAevE,OAZIZ,EAAMa,OAASE,EAAYI,KAAKN,MAAQb,EAAMa,OAASO,IACzDV,EAAeW,OAASJ,OAAOjB,EAAMW,MAAQP,EAAekB,EAAgB,MAE1EtB,EAAMa,OAASE,EAAYQ,IAAIV,OACjCH,EAAec,kBAAoBxB,EAAMwB,kBAEzCd,EAAeW,OAASrB,EAAMyB,QAAUzB,EAAM0B,QAAUJ,EAAgB,KAEpEhB,IAAmBN,EAAMwB,oBAC3Bd,EAAeW,OAAS,OAGrBX,CACT,EAEaiB,EAAY,SAAAC,GAAI,OAAKA,EAAKP,SAAWC,GAAiB,EAAI,CAAC,EAE3DO,EAAwB,SAACC,EAAkBpC,EAAaa,GACnE,IAAMwB,EACJD,IAAqBf,EAAYC,IAAIH,KAAWnB,GAAAA,OAAAA,EAAAA,GAAa,CAAA,oBAAqBA,EAEpF,OAAIa,EAAkCwB,GAAAA,OAAAA,EAAAA,IAAmB,qBAElDA,CACT"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/utils/index.js"],"sourcesContent":["import { isEmpty } from 'lodash';\n\nimport { ACTIVE_STATUS, DEFAULT_ASSET_TYPE } from '../constants';\n\nimport { ASSET_TYPES } from '~/constants';\n\nexport const mapAssetIdPath = assetType => {\n switch (assetType) {\n case 'rig':\n case 'well':\n return ['attributes', 'asset_id'];\n case 'frac_fleet':\n case 'pad':\n default:\n return ['id'];\n }\n};\n\nexport const getPadFracFleetId = (fracFleets = []) => {\n const currentFracFleet = fracFleets.find(fracFleet => fracFleet === fracFleet.current)?.id;\n const lastCurrentFracFleet = fracFleets.reduce((a, b) => {\n return new Date(a.lastCurrentAt) > new Date(b.lastCurrentAt) ? a : b;\n }, {});\n\n if (!isEmpty(currentFracFleet)) {\n return currentFracFleet.fracFleet?.id;\n }\n return lastCurrentFracFleet.fracFleet?.id;\n};\n\nexport const getRequestOptions = (assetType, assetFields = []) => ({\n sort: 'name',\n order: 'asc',\n fields: [`${assetType}.name`, `${assetType}.status`, ...assetFields],\n});\n\nexport const formatAsset = ({\n asset,\n group = null,\n activeWellId = null,\n isRequiredAssetId,\n isPrimaryAsset,\n isDrillingPlatformApp,\n}) => {\n if (!asset) return null;\n const formattedAsset = {\n id: +asset.assetId || +asset.id,\n type: asset.type,\n name: asset.name,\n };\n\n if (isRequiredAssetId) {\n formattedAsset.id = +asset.id;\n formattedAsset.assetId = +asset.assetId;\n }\n\n if (group) {\n formattedAsset.group = group;\n }\n if (asset.type === ASSET_TYPES.rig.type) {\n formattedAsset.activeWellId = Number(asset.activeWell?.id) || null;\n if (isDrillingPlatformApp) {\n formattedAsset.activeWellId = Number(asset.activeWell?.assetId) || null;\n }\n }\n if (asset.type === ASSET_TYPES.well.type || asset.type === DEFAULT_ASSET_TYPE) {\n formattedAsset.status = Number(asset.id) === activeWellId ? ACTIVE_STATUS : null;\n }\n if (asset.type === ASSET_TYPES.pad.type) {\n formattedAsset.parentFracFleetId = asset.parentFracFleetId;\n\n formattedAsset.status = asset.active && asset.current ? ACTIVE_STATUS : null;\n\n if (isPrimaryAsset && !asset.parentFracFleetId) {\n formattedAsset.status = null;\n }\n }\n return formattedAsset;\n};\n\nexport const sortAsset = curr => (curr.status === ACTIVE_STATUS ? -1 : 1);\n\nexport const getPrimaryAssetFields = (primaryAssetType, assetFields, isDrillingPlatformApp) => {\n const customAssetFields =\n primaryAssetType === ASSET_TYPES.rig.type ? [...assetFields, 'rig.active_well'] : assetFields;\n\n if (isDrillingPlatformApp) return [...customAssetFields, 'rig.active_child'];\n\n return customAssetFields;\n};\n"],"names":["getRequestOptions","assetType","assetFields","sort","order","fields","formatAsset","_ref","asset","_ref$group","group","_ref$activeWellId","activeWellId","isRequiredAssetId","isPrimaryAsset","isDrillingPlatformApp","_asset$activeWell","_asset$activeWell2","formattedAsset","id","assetId","type","name","ASSET_TYPES","rig","Number","activeWell","well","DEFAULT_ASSET_TYPE","status","ACTIVE_STATUS","pad","parentFracFleetId","active","current","sortAsset","curr","getPrimaryAssetFields","primaryAssetType","customAssetFields"],"mappings":"wrBA8BaA,EAAoB,SAACC,GAAS,IAAEC,yDAAc,GAAE,MAAM,CACjEC,KAAM,OACNC,MAAO,MACPC,OAAYJ,CAAAA,GAAAA,OAAAA,EAAqBA,SAAAA,GAAAA,OAAAA,uBAAuBC,IACzD,EAEYI,EAAc,SAOrBC,GAAA,IANJC,IAAAA,MAAKC,EAAAF,EACLG,MAAAA,aAAQ,KAAID,EAAAE,EAAAJ,EACZK,aAAAA,aAAe,KAAID,EACnBE,IAAAA,kBACAC,IAAAA,eACAC,IAAAA,sBAEA,IAAKP,EAAO,OAAO,KACnB,IAcyCQ,EAEZC,EAhBvBC,EAAiB,CACrBC,IAAKX,EAAMY,UAAYZ,EAAMW,GAC7BE,KAAMb,EAAMa,KACZC,KAAMd,EAAMc,OAGVT,IACFK,EAAeC,IAAMX,EAAMW,GAC3BD,EAAeE,SAAWZ,EAAMY,SAG9BV,IACFQ,EAAeR,MAAQA,GAErBF,EAAMa,OAASE,EAAYC,IAAIH,QACjCH,EAAeN,aAAea,OAAO,QAAAjB,EAAAA,EAAMkB,kBAAN,IAAAV,OAAA,EAAAA,EAAkBG,KAAO,KAC1DJ,IACFG,EAAeN,aAAea,OAAO,QAAAjB,EAAAA,EAAMkB,kBAAN,IAAAT,OAAA,EAAAA,EAAkBG,UAAY,OAevE,OAZIZ,EAAMa,OAASE,EAAYI,KAAKN,MAAQb,EAAMa,OAASO,IACzDV,EAAeW,OAASJ,OAAOjB,EAAMW,MAAQP,EAAekB,EAAgB,MAE1EtB,EAAMa,OAASE,EAAYQ,IAAIV,OACjCH,EAAec,kBAAoBxB,EAAMwB,kBAEzCd,EAAeW,OAASrB,EAAMyB,QAAUzB,EAAM0B,QAAUJ,EAAgB,KAEpEhB,IAAmBN,EAAMwB,oBAC3Bd,EAAeW,OAAS,OAGrBX,CACT,EAEaiB,EAAY,SAAAC,GAAI,OAAKA,EAAKP,SAAWC,GAAiB,EAAI,CAAC,EAE3DO,EAAwB,SAACC,EAAkBpC,EAAaa,GACnE,IAAMwB,EACJD,IAAqBf,EAAYC,IAAIH,KAAWnB,GAAAA,OAAAA,EAAAA,GAAa,CAAA,oBAAqBA,EAEpF,OAAIa,EAAkCwB,GAAAA,OAAAA,EAAAA,IAAmB,qBAElDA,CACT"}
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/slicedToArray";import{useState as t,useCallback as e}from"react";import s from"prop-types";import i from"react-player";import n from"classnames";import{withStyles as a}from"@material-ui/core/styles";import{Typography as c}from"@material-ui/core";import r from"@material-ui/icons/Image";import m from"@material-ui/icons/Fullscreen";import l from"@material-ui/core/colors/grey";import p from"../NewDocumentViewer/NewDocumentViewer.js";import{UnavailableFileIcon as d}from"../NewDocumentViewer/icons/UnavailableFileIcon.js";import u from"./styles.css.js";import h from"../FileTypeIcon.js";import f from"../ImageViewer/index.js";import j from"../IconButton/index.js";import{isNativeDetected as g}from"../../utils/mobileDetect.js";import{getIsImage as I,getIsVideo as v}from"../../utils/fileExtension.js";import{getIsPreviewUnavailable as b}from"../../utils/filePreview.js";import{DownloadIcon as N}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/helpers/defineProperty";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"lodash";import"../../clients/subscriptions.v1.js";import"../../clients/jsonApi/index.js";import"../../clients/subscriptions/subscriptions-client.factory.js";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import"../../utils/env.js";import"../GradientManager/configuration/constants.js";import w from"../../effects/useSignedURL.js";import"../../utils/index.js";import"uuid";import"jsona";import"../StatusBadge/constants.js";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../clients/api/apiCore.js";import"../../clients/constants.js";import"../../clients/sso/auth0.js";import"../../clients/sso/oauth2.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../constants/streamSourceType.js";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{jsx as x,jsxs as y,Fragment as C}from"react/jsx-runtime";import"../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import F from"../../utils/main.js";var A=l[200],P=l[400],W={label:"small",value:135},D={label:"medium",value:300},S={fileImage:function(o,t){return{maxWidth:"100%",borderRadius:4,overflow:"hidden",maxHeight:t===W.label?W.value:D.value,display:o?"initial":"none",cursor:"pointer"}},fileDownloadWrapper:{padding:"10px 10px 10px 5px",border:"1px solid #616161",borderRadius:3,maxWidth:500,width:"75%"},imagePlaceholder:{position:"relative",backgroundColor:A,borderRadius:3,marginTop:10,height:135,width:135}},z=function(o){var t=w(o.attachmentFileName)||o.attachmentUrl;return y(C,{children:[y("div",{onClick:o.openLightbox,className:u.cAttachmentImg,children:[x("img",{"data-testid":"".concat("Attachment","_image"),src:t,style:S.fileImage(o.imageIsLoaded,o.size),alt:"Attachment",onLoad:o.setImageIsLoaded}),x("div",{"data-testid":"".concat("Attachment","_button"),className:u.cAttachmentImgPreviwBtn,children:x(m,{})})]}),!o.imageIsLoaded&&x("div",{style:S.imagePlaceholder,children:x(r,{"data-testid":"".concat("Attachment","_placeholder"),className:o.classes.imageIconRoot,htmlColor:P,fontSize:"large"})}),o.lightboxIsOpen&&x(f,{mainSrc:t,imagePadding:50,onAfterOpen:o.handleLightboxOpen,onCloseRequest:o.handleLightboxClose})]})},R=function(o){var t=F.getFileNameWithExtensionFromPath(o.displayName||o.attachmentUrl),e=w(o.attachmentFileName),s=b(t);return y("div",{className:u.cAttachmentFileWrapper,children:[y("div",{className:n(u.cAttachmentFileDownloadWrapper,s&&o.classes.disabledPreview),style:S.fileDownloadWrapper,onClick:function(){s||o.openPreview()},children:[s?x(d,{className:o.classes.unavailableFileIcon}):x(h,{fileName:o.displayName||o.attachmentUrl,className:u.cAttachmentFileDownloadWrapperFileIcon,size:o.small?25:50}),y("div",{className:o.classes.titleContainer,children:[s&&x("div",{className:o.classes.caption,children:"Preview unavailable"}),x("div",{"data-testid":"".concat("Attachment","_name"),className:n(u.cAttachmentFileDownloadWrapperFileName,s&&o.classes.fileName),children:x(c,{variant:"subtitle2",noWrap:!0,className:o.classes.unavailableFileName,children:t})})]}),x(p,{fileUrl:e,classes:{root:o.classes.dialogRoot,paper:g?o.classes.nativeDialog:o.classes.dialog},fileName:t,fileSize:o.attachmentSize,onClose:o.closePreview,open:o.previewIsOpen})]}),x("a",{download:o.displayName,href:e,className:u.cAttachmentFileDownloadWrapperForm,children:x(j,{"data-testid":"".concat("Attachment","_downloadButton"),className:o.classes.downloadIcon,type:"submit",children:x(N,{size:24,className:o.classes.downloadIcon})})})]})};function L(s){var n=t(!1),a=o(n,2),c=a[0],r=a[1],m=t(!1),l=o(m,2),p=l[0],d=l[1],h=t(!1),f=o(h,2),j=f[0],b=f[1],N=s.displayName||s.attachmentUrl||s.fileName,y=I(N),C=v(N),F=w(!s.attachmentUrl&&s.fileName),A=s.attachmentUrl||F,P=e((function(o){return o.preventDefault()}),[]);return y?x("div",{className:u.cAttachment,children:x(z,{size:s.size,openLightbox:function(){return d(!0)},attachmentFileName:s.fileName,attachmentUrl:s.attachmentUrl,setImageIsLoaded:function(){return r(!0)},imageIsLoaded:c,lightboxIsOpen:p,handleLightboxOpen:function(){g&&document.documentElement.addEventListener("touchmove",P,{passive:!1})},handleLightboxClose:function(){g&&document.documentElement.removeEventListener("touchmove",P),d(!1)},classes:s.classes})}):C&&i.canPlay(A)?x("div",{className:u.cAttachment,children:x(i,{"data-testid":"".concat("Attachment","_player"),className:u.cAttachmentReactPlayer,url:A,config:{file:{attributes:{preload:"metadata"}}},controls:!0,height:s.size===W.label?W.value:D.value,width:null})}):x("div",{className:u.cAttachment,children:x(R,{attachmentUrl:A,attachmentFileName:s.fileName,attachmentSize:s.attachmentSize,displayName:s.displayName,openPreview:function(){return b(!0)},closePreview:function(o){o.stopPropagation(),b(!1)},previewIsOpen:j,classes:s.classes,small:s.small})})}L.propTypes={attachmentUrl:s.string.isRequired,attachmentSize:s.number,displayName:s.string,fileName:s.string,size:s.oneOf([W.label,D.label]),classes:s.shape({}).isRequired,small:s.bool},L.defaultProps={displayName:null,fileName:null,attachmentSize:void 0,size:D.label,small:!1};var U=a((function(o){return{imageIconRoot:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"},dialog:{width:"95%",height:"95%",maxWidth:"100%",position:"relative"},nativeDialog:{width:"100%",height:"100%",maxWidth:"100%",maxHeight:"100%",margin:0},dialogRoot:{backgroundColor:"rgba(0, 0, 0, 0.85)"},fileName:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",fontWeight:400},downloadIcon:{color:o.palette.primary.text3},disabledPreview:{backgroundColor:o.palette.primary.text9},unavailableFileIcon:{marginRight:12,minWidth:32},titleContainer:{display:"flex",flexDirection:"column",width:"100%"},caption:{fontSize:12,fontWeight:400,width:"fit-content"},unavailableFileName:{fontSize:12,fontWeight:400}}}))(L);export{U as default};
1
+ import o from"@babel/runtime/helpers/slicedToArray";import{useState as t,useCallback as e}from"react";import s from"prop-types";import i from"react-player";import n from"classnames";import{withStyles as a}from"@material-ui/core/styles";import{Typography as c}from"@material-ui/core";import r from"@material-ui/icons/Image";import m from"@material-ui/icons/Fullscreen";import l from"@material-ui/core/colors/grey";import p from"../NewDocumentViewer/NewDocumentViewer.js";import{UnavailableFileIcon as d}from"../NewDocumentViewer/icons/UnavailableFileIcon.js";import u from"./styles.css.js";import h from"../FileTypeIcon.js";import f from"../ImageViewer/index.js";import j from"../IconButton/index.js";import{isNativeDetected as g}from"../../utils/mobileDetect.js";import{getIsImage as I,getIsVideo as v}from"../../utils/fileExtension.js";import{getIsPreviewUnavailable as b}from"../../utils/filePreview.js";import{DownloadIcon as N}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/helpers/defineProperty";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"lodash";import"../../clients/subscriptions.v1.js";import"../../clients/jsonApi/index.js";import"../../clients/subscriptions/subscriptions-client.factory.js";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import w from"../../effects/useSignedURL.js";import"../../utils/index.js";import"uuid";import"jsona";import"../../utils/env.js";import"../StatusBadge/constants.js";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../clients/api/apiCore.js";import"../../clients/constants.js";import"../../clients/sso/auth0.js";import"../../clients/sso/oauth2.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../constants/streamSourceType.js";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{jsx as x,jsxs as y,Fragment as C}from"react/jsx-runtime";import"../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import F from"../../utils/main.js";var A=l[200],P=l[400],W={label:"small",value:135},D={label:"medium",value:300},S={fileImage:function(o,t){return{maxWidth:"100%",borderRadius:4,overflow:"hidden",maxHeight:t===W.label?W.value:D.value,display:o?"initial":"none",cursor:"pointer"}},fileDownloadWrapper:{padding:"10px 10px 10px 5px",border:"1px solid #616161",borderRadius:3,maxWidth:500,width:"75%"},imagePlaceholder:{position:"relative",backgroundColor:A,borderRadius:3,marginTop:10,height:135,width:135}},z=function(o){var t=w(o.attachmentFileName)||o.attachmentUrl;return y(C,{children:[y("div",{onClick:o.openLightbox,className:u.cAttachmentImg,children:[x("img",{"data-testid":"".concat("Attachment","_image"),src:t,style:S.fileImage(o.imageIsLoaded,o.size),alt:"Attachment",onLoad:o.setImageIsLoaded}),x("div",{"data-testid":"".concat("Attachment","_button"),className:u.cAttachmentImgPreviwBtn,children:x(m,{})})]}),!o.imageIsLoaded&&x("div",{style:S.imagePlaceholder,children:x(r,{"data-testid":"".concat("Attachment","_placeholder"),className:o.classes.imageIconRoot,htmlColor:P,fontSize:"large"})}),o.lightboxIsOpen&&x(f,{mainSrc:t,imagePadding:50,onAfterOpen:o.handleLightboxOpen,onCloseRequest:o.handleLightboxClose})]})},R=function(o){var t=F.getFileNameWithExtensionFromPath(o.displayName||o.attachmentUrl),e=w(o.attachmentFileName),s=b(t);return y("div",{className:u.cAttachmentFileWrapper,children:[y("div",{className:n(u.cAttachmentFileDownloadWrapper,s&&o.classes.disabledPreview),style:S.fileDownloadWrapper,onClick:function(){s||o.openPreview()},children:[s?x(d,{className:o.classes.unavailableFileIcon}):x(h,{fileName:o.displayName||o.attachmentUrl,className:u.cAttachmentFileDownloadWrapperFileIcon,size:o.small?25:50}),y("div",{className:o.classes.titleContainer,children:[s&&x("div",{className:o.classes.caption,children:"Preview unavailable"}),x("div",{"data-testid":"".concat("Attachment","_name"),className:n(u.cAttachmentFileDownloadWrapperFileName,s&&o.classes.fileName),children:x(c,{variant:"subtitle2",noWrap:!0,className:o.classes.unavailableFileName,children:t})})]}),x(p,{fileUrl:e,classes:{root:o.classes.dialogRoot,paper:g?o.classes.nativeDialog:o.classes.dialog},fileName:t,fileSize:o.attachmentSize,onClose:o.closePreview,open:o.previewIsOpen})]}),x("a",{download:o.displayName,href:e,className:u.cAttachmentFileDownloadWrapperForm,children:x(j,{"data-testid":"".concat("Attachment","_downloadButton"),className:o.classes.downloadIcon,type:"submit",children:x(N,{size:24,className:o.classes.downloadIcon})})})]})};function L(s){var n=t(!1),a=o(n,2),c=a[0],r=a[1],m=t(!1),l=o(m,2),p=l[0],d=l[1],h=t(!1),f=o(h,2),j=f[0],b=f[1],N=s.displayName||s.attachmentUrl||s.fileName,y=I(N),C=v(N),F=w(!s.attachmentUrl&&s.fileName),A=s.attachmentUrl||F,P=e((function(o){return o.preventDefault()}),[]);return y?x("div",{className:u.cAttachment,children:x(z,{size:s.size,openLightbox:function(){return d(!0)},attachmentFileName:s.fileName,attachmentUrl:s.attachmentUrl,setImageIsLoaded:function(){return r(!0)},imageIsLoaded:c,lightboxIsOpen:p,handleLightboxOpen:function(){g&&document.documentElement.addEventListener("touchmove",P,{passive:!1})},handleLightboxClose:function(){g&&document.documentElement.removeEventListener("touchmove",P),d(!1)},classes:s.classes})}):C&&i.canPlay(A)?x("div",{className:u.cAttachment,children:x(i,{"data-testid":"".concat("Attachment","_player"),className:u.cAttachmentReactPlayer,url:A,config:{file:{attributes:{preload:"metadata"}}},controls:!0,height:s.size===W.label?W.value:D.value,width:null})}):x("div",{className:u.cAttachment,children:x(R,{attachmentUrl:A,attachmentFileName:s.fileName,attachmentSize:s.attachmentSize,displayName:s.displayName,openPreview:function(){return b(!0)},closePreview:function(o){o.stopPropagation(),b(!1)},previewIsOpen:j,classes:s.classes,small:s.small})})}L.propTypes={attachmentUrl:s.string.isRequired,attachmentSize:s.number,displayName:s.string,fileName:s.string,size:s.oneOf([W.label,D.label]),classes:s.shape({}).isRequired,small:s.bool},L.defaultProps={displayName:null,fileName:null,attachmentSize:void 0,size:D.label,small:!1};var U=a((function(o){return{imageIconRoot:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"},dialog:{width:"95%",height:"95%",maxWidth:"100%",position:"relative"},nativeDialog:{width:"100%",height:"100%",maxWidth:"100%",maxHeight:"100%",margin:0},dialogRoot:{backgroundColor:"rgba(0, 0, 0, 0.85)"},fileName:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",fontWeight:400},downloadIcon:{color:o.palette.primary.text3},disabledPreview:{backgroundColor:o.palette.primary.text9},unavailableFileIcon:{marginRight:12,minWidth:32},titleContainer:{display:"flex",flexDirection:"column",width:"100%"},caption:{fontSize:12,fontWeight:400,width:"fit-content"},unavailableFileName:{fontSize:12,fontWeight:400}}}))(L);export{U as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Attachment/index.js"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactPlayer from 'react-player';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Typography } from '@material-ui/core';\nimport ImageIcon from '@material-ui/icons/Image';\nimport FullSizeIcon from '@material-ui/icons/Fullscreen';\nimport grey from '@material-ui/core/colors/grey';\n\nimport { NewDocumentViewer } from '../NewDocumentViewer';\nimport { UnavailableFileIcon } from '../NewDocumentViewer/icons/UnavailableFileIcon';\n\nimport styles from './styles.css';\n\nimport FileTypeIcon from '~components/FileTypeIcon';\nimport ImageViewer from '~components/ImageViewer';\nimport IconButton from '~components/IconButton';\nimport { isNativeDetected } from '~/utils/mobileDetect';\nimport { getIsVideo, getIsImage } from '~/utils/fileExtension';\nimport { getIsPreviewUnavailable } from '~/utils/filePreview';\nimport { DownloadIcon } from '~/icons';\nimport { useSignedURL } from '~/effects';\nimport utils from '~utils/main'; // question here\n\nconst PAGE_NAME = 'Attachment';\n\nconst grey200 = grey[200];\nconst grey400 = grey[400];\n\nconst SIZES = {\n small: { label: 'small', value: 135 },\n medium: { label: 'medium', value: 300 },\n};\n\nconst style = {\n fileImage: (imageIsLoaded, size) => ({\n maxWidth: '100%',\n borderRadius: 4,\n overflow: 'hidden',\n // NOTE: Makes one-line comment with image fits into comments container. Equals to\n // imagePlaceholder height\n maxHeight: size === SIZES.small.label ? SIZES.small.value : SIZES.medium.value,\n display: imageIsLoaded ? 'initial' : 'none',\n cursor: 'pointer',\n }),\n fileDownloadWrapper: {\n padding: '10px 10px 10px 5px',\n border: `1px solid #616161`,\n borderRadius: 3,\n maxWidth: 500, // NOTE: Corresponds to react-player max width\n width: '75%',\n },\n imagePlaceholder: {\n position: 'relative',\n backgroundColor: grey200,\n borderRadius: 3,\n marginTop: 10,\n height: 135,\n width: 135,\n },\n};\n\nconst muiStyles = theme => ({\n imageIconRoot: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n },\n dialog: {\n width: '95%',\n height: '95%',\n maxWidth: '100%',\n position: 'relative',\n },\n nativeDialog: {\n width: '100%',\n height: '100%',\n maxWidth: '100%',\n maxHeight: '100%',\n margin: 0,\n },\n dialogRoot: {\n // NOTE: Make background color similar to lightbox\n backgroundColor: 'rgba(0, 0, 0, 0.85)',\n },\n fileName: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n fontWeight: 400,\n },\n downloadIcon: {\n color: theme.palette.primary.text3,\n },\n disabledPreview: {\n backgroundColor: theme.palette.primary.text9,\n },\n unavailableFileIcon: {\n marginRight: 12,\n minWidth: 32,\n },\n titleContainer: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n caption: {\n fontSize: 12,\n fontWeight: 400,\n width: 'fit-content',\n },\n unavailableFileName: {\n fontSize: 12,\n fontWeight: 400,\n },\n});\n\n/* eslint-disable react/prop-types */\nconst ImageAttachment = props => {\n const downloadLink = useSignedURL(props.attachmentFileName) || props.attachmentUrl;\n return (\n <>\n <div onClick={props.openLightbox} className={styles.cAttachmentImg}>\n <img\n data-testid={`${PAGE_NAME}_image`}\n src={downloadLink}\n style={style.fileImage(props.imageIsLoaded, props.size)}\n alt=\"Attachment\"\n onLoad={props.setImageIsLoaded}\n />\n <div data-testid={`${PAGE_NAME}_button`} className={styles.cAttachmentImgPreviwBtn}>\n <FullSizeIcon />\n </div>\n </div>\n\n {!props.imageIsLoaded && (\n <div style={style.imagePlaceholder}>\n <ImageIcon\n data-testid={`${PAGE_NAME}_placeholder`}\n className={props.classes.imageIconRoot}\n htmlColor={grey400}\n fontSize=\"large\"\n />\n </div>\n )}\n\n {props.lightboxIsOpen && (\n <ImageViewer\n mainSrc={downloadLink}\n imagePadding={50}\n onAfterOpen={props.handleLightboxOpen}\n onCloseRequest={props.handleLightboxClose}\n />\n )}\n </>\n );\n};\n\nconst FileAttachment = props => {\n const fileName = utils.getFileNameWithExtensionFromPath(props.displayName || props.attachmentUrl);\n const fileUrl = useSignedURL(props.attachmentFileName);\n\n const isPreviewUnavailable = getIsPreviewUnavailable(fileName);\n\n const handleFilePreviewOpen = () => {\n if (isPreviewUnavailable) return;\n props.openPreview();\n };\n\n return (\n <div className={styles.cAttachmentFileWrapper}>\n <div\n className={classNames(\n styles.cAttachmentFileDownloadWrapper,\n isPreviewUnavailable && props.classes.disabledPreview\n )}\n style={style.fileDownloadWrapper}\n onClick={handleFilePreviewOpen}\n >\n {isPreviewUnavailable ? (\n <UnavailableFileIcon className={props.classes.unavailableFileIcon} />\n ) : (\n <FileTypeIcon\n fileName={props.displayName || props.attachmentUrl}\n className={styles.cAttachmentFileDownloadWrapperFileIcon}\n size={props.small ? 25 : 50}\n />\n )}\n <div className={props.classes.titleContainer}>\n {isPreviewUnavailable && <div className={props.classes.caption}>Preview unavailable</div>}\n <div\n data-testid={`${PAGE_NAME}_name`}\n className={classNames(\n styles.cAttachmentFileDownloadWrapperFileName,\n isPreviewUnavailable && props.classes.fileName\n )}\n >\n <Typography variant=\"subtitle2\" noWrap className={props.classes.unavailableFileName}>\n {fileName}\n </Typography>\n </div>\n </div>\n <NewDocumentViewer\n fileUrl={fileUrl}\n classes={{\n root: props.classes.dialogRoot,\n paper: isNativeDetected ? props.classes.nativeDialog : props.classes.dialog,\n }}\n fileName={fileName}\n fileSize={props.attachmentSize}\n onClose={props.closePreview}\n open={props.previewIsOpen}\n />\n </div>\n <a\n download={props.displayName}\n href={fileUrl}\n className={styles.cAttachmentFileDownloadWrapperForm}\n >\n <IconButton\n data-testid={`${PAGE_NAME}_downloadButton`}\n className={props.classes.downloadIcon}\n type=\"submit\"\n >\n <DownloadIcon size={24} className={props.classes.downloadIcon} />\n </IconButton>\n </a>\n </div>\n );\n};\n\n/* eslint-enable react/prop-types */\n\nfunction Attachment(props) {\n const [isImageLoaded, setIsImageLoaded] = useState(false);\n const [isLightboxOpen, setIsLightboxOpen] = useState(false);\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const fileName = props.displayName || props.attachmentUrl || props.fileName;\n const isImage = getIsImage(fileName);\n const isVideo = getIsVideo(fileName);\n\n // Don't fetch download link if attachmentUrl is provided\n const downloadLink = useSignedURL(!props.attachmentUrl && props.fileName);\n const attachmentUrl = props.attachmentUrl || downloadLink;\n const preventIOSScroll = useCallback(e => e.preventDefault(), []);\n\n // NOTE: iOS WebView has a bug when background content of React Modal is scrollable\n // Source: https://github.com/reactjs/react-modal/issues/369\n const handleLightboxOpen = () => {\n if (isNativeDetected) {\n // document.documentElement.style.overflowY = 'hidden';\n document.documentElement.addEventListener('touchmove', preventIOSScroll, {\n passive: false,\n });\n }\n };\n\n const handleLightboxClose = () => {\n if (isNativeDetected) {\n // document.documentElement.style.overflowY = 'visible';\n document.documentElement.removeEventListener('touchmove', preventIOSScroll);\n }\n setIsLightboxOpen(false);\n };\n\n const openLightbox = () => setIsLightboxOpen(true);\n const setImageLoaded = () => setIsImageLoaded(true);\n const openPreview = () => setIsPreviewOpen(true);\n const closePreview = e => {\n e.stopPropagation();\n setIsPreviewOpen(false);\n };\n\n if (isImage)\n return (\n <div className={styles.cAttachment}>\n <ImageAttachment\n size={props.size}\n openLightbox={openLightbox}\n attachmentFileName={props.fileName}\n attachmentUrl={props.attachmentUrl}\n setImageIsLoaded={setImageLoaded}\n imageIsLoaded={isImageLoaded}\n lightboxIsOpen={isLightboxOpen}\n handleLightboxOpen={handleLightboxOpen}\n handleLightboxClose={handleLightboxClose}\n classes={props.classes}\n />\n </div>\n );\n\n if (isVideo && ReactPlayer.canPlay(attachmentUrl))\n return (\n <div className={styles.cAttachment}>\n <ReactPlayer\n data-testid={`${PAGE_NAME}_player`}\n className={styles.cAttachmentReactPlayer}\n url={attachmentUrl}\n config={{ file: { attributes: { preload: 'metadata' } } }}\n controls\n height={props.size === SIZES.small.label ? SIZES.small.value : SIZES.medium.value}\n width={null}\n />\n </div>\n );\n\n return (\n <div className={styles.cAttachment}>\n <FileAttachment\n attachmentUrl={attachmentUrl}\n attachmentFileName={props.fileName}\n attachmentSize={props.attachmentSize}\n displayName={props.displayName}\n openPreview={openPreview}\n closePreview={closePreview}\n previewIsOpen={isPreviewOpen}\n classes={props.classes}\n small={props.small}\n />\n </div>\n );\n}\n\nAttachment.propTypes = {\n attachmentUrl: PropTypes.string.isRequired,\n attachmentSize: PropTypes.number,\n displayName: PropTypes.string,\n fileName: PropTypes.string,\n size: PropTypes.oneOf([SIZES.small.label, SIZES.medium.label]),\n classes: PropTypes.shape({}).isRequired,\n small: PropTypes.bool,\n};\n\nAttachment.defaultProps = {\n displayName: null,\n fileName: null,\n attachmentSize: undefined,\n size: SIZES.medium.label,\n small: false,\n};\n\nexport default withStyles(muiStyles)(Attachment);\n"],"names":["grey200","grey","grey400","SIZES","label","value","style","fileImage","imageIsLoaded","size","maxWidth","borderRadius","overflow","maxHeight","display","cursor","fileDownloadWrapper","padding","border","width","imagePlaceholder","position","backgroundColor","marginTop","height","ImageAttachment","props","downloadLink","useSignedURL","attachmentFileName","attachmentUrl","_jsxs","_Fragment","children","onClick","openLightbox","className","styles","cAttachmentImg","_jsx","concat","src","alt","onLoad","setImageIsLoaded","cAttachmentImgPreviwBtn","FullSizeIcon","ImageIcon","classes","imageIconRoot","htmlColor","fontSize","lightboxIsOpen","ImageViewer","mainSrc","imagePadding","onAfterOpen","handleLightboxOpen","onCloseRequest","handleLightboxClose","FileAttachment","fileName","utils","getFileNameWithExtensionFromPath","displayName","fileUrl","isPreviewUnavailable","getIsPreviewUnavailable","cAttachmentFileWrapper","classNames","cAttachmentFileDownloadWrapper","disabledPreview","openPreview","UnavailableFileIcon","unavailableFileIcon","FileTypeIcon","cAttachmentFileDownloadWrapperFileIcon","small","titleContainer","caption","cAttachmentFileDownloadWrapperFileName","Typography","variant","noWrap","unavailableFileName","NewDocumentViewer","root","dialogRoot","paper","isNativeDetected","nativeDialog","dialog","fileSize","attachmentSize","onClose","closePreview","open","previewIsOpen","download","href","cAttachmentFileDownloadWrapperForm","IconButton","downloadIcon","type","DownloadIcon","Attachment","useState","_useState2","_slicedToArray","_useState","isImageLoaded","setIsImageLoaded","_useState4","_useState3","isLightboxOpen","setIsLightboxOpen","_useState6","_useState5","isPreviewOpen","setIsPreviewOpen","isImage","getIsImage","isVideo","getIsVideo","preventIOSScroll","useCallback","e","preventDefault","cAttachment","document","documentElement","addEventListener","passive","removeEventListener","ReactPlayer","canPlay","cAttachmentReactPlayer","url","config","file","attributes","preload","controls","stopPropagation","propTypes","PropTypes","string","isRequired","number","oneOf","shape","bool","defaultProps","undefined","Attachment$1","withStyles","theme","top","left","transform","margin","whiteSpace","textOverflow","fontWeight","color","palette","primary","text3","text9","marginRight","minWidth","flexDirection"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Attachment/index.js"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactPlayer from 'react-player';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Typography } from '@material-ui/core';\nimport ImageIcon from '@material-ui/icons/Image';\nimport FullSizeIcon from '@material-ui/icons/Fullscreen';\nimport grey from '@material-ui/core/colors/grey';\n\nimport { NewDocumentViewer } from '../NewDocumentViewer';\nimport { UnavailableFileIcon } from '../NewDocumentViewer/icons/UnavailableFileIcon';\n\nimport styles from './styles.css';\n\nimport FileTypeIcon from '~components/FileTypeIcon';\nimport ImageViewer from '~components/ImageViewer';\nimport IconButton from '~components/IconButton';\nimport { isNativeDetected } from '~/utils/mobileDetect';\nimport { getIsVideo, getIsImage } from '~/utils/fileExtension';\nimport { getIsPreviewUnavailable } from '~/utils/filePreview';\nimport { DownloadIcon } from '~/icons';\nimport { useSignedURL } from '~/effects';\nimport utils from '~utils/main'; // question here\n\nconst PAGE_NAME = 'Attachment';\n\nconst grey200 = grey[200];\nconst grey400 = grey[400];\n\nconst SIZES = {\n small: { label: 'small', value: 135 },\n medium: { label: 'medium', value: 300 },\n};\n\nconst style = {\n fileImage: (imageIsLoaded, size) => ({\n maxWidth: '100%',\n borderRadius: 4,\n overflow: 'hidden',\n // NOTE: Makes one-line comment with image fits into comments container. Equals to\n // imagePlaceholder height\n maxHeight: size === SIZES.small.label ? SIZES.small.value : SIZES.medium.value,\n display: imageIsLoaded ? 'initial' : 'none',\n cursor: 'pointer',\n }),\n fileDownloadWrapper: {\n padding: '10px 10px 10px 5px',\n border: `1px solid #616161`,\n borderRadius: 3,\n maxWidth: 500, // NOTE: Corresponds to react-player max width\n width: '75%',\n },\n imagePlaceholder: {\n position: 'relative',\n backgroundColor: grey200,\n borderRadius: 3,\n marginTop: 10,\n height: 135,\n width: 135,\n },\n};\n\nconst muiStyles = theme => ({\n imageIconRoot: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n },\n dialog: {\n width: '95%',\n height: '95%',\n maxWidth: '100%',\n position: 'relative',\n },\n nativeDialog: {\n width: '100%',\n height: '100%',\n maxWidth: '100%',\n maxHeight: '100%',\n margin: 0,\n },\n dialogRoot: {\n // NOTE: Make background color similar to lightbox\n backgroundColor: 'rgba(0, 0, 0, 0.85)',\n },\n fileName: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n fontWeight: 400,\n },\n downloadIcon: {\n color: theme.palette.primary.text3,\n },\n disabledPreview: {\n backgroundColor: theme.palette.primary.text9,\n },\n unavailableFileIcon: {\n marginRight: 12,\n minWidth: 32,\n },\n titleContainer: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n caption: {\n fontSize: 12,\n fontWeight: 400,\n width: 'fit-content',\n },\n unavailableFileName: {\n fontSize: 12,\n fontWeight: 400,\n },\n});\n\n/* eslint-disable react/prop-types */\nconst ImageAttachment = props => {\n const downloadLink = useSignedURL(props.attachmentFileName) || props.attachmentUrl;\n return (\n <>\n <div onClick={props.openLightbox} className={styles.cAttachmentImg}>\n <img\n data-testid={`${PAGE_NAME}_image`}\n src={downloadLink}\n style={style.fileImage(props.imageIsLoaded, props.size)}\n alt=\"Attachment\"\n onLoad={props.setImageIsLoaded}\n />\n <div data-testid={`${PAGE_NAME}_button`} className={styles.cAttachmentImgPreviwBtn}>\n <FullSizeIcon />\n </div>\n </div>\n\n {!props.imageIsLoaded && (\n <div style={style.imagePlaceholder}>\n <ImageIcon\n data-testid={`${PAGE_NAME}_placeholder`}\n className={props.classes.imageIconRoot}\n htmlColor={grey400}\n fontSize=\"large\"\n />\n </div>\n )}\n\n {props.lightboxIsOpen && (\n <ImageViewer\n mainSrc={downloadLink}\n imagePadding={50}\n onAfterOpen={props.handleLightboxOpen}\n onCloseRequest={props.handleLightboxClose}\n />\n )}\n </>\n );\n};\n\nconst FileAttachment = props => {\n const fileName = utils.getFileNameWithExtensionFromPath(props.displayName || props.attachmentUrl);\n const fileUrl = useSignedURL(props.attachmentFileName);\n\n const isPreviewUnavailable = getIsPreviewUnavailable(fileName);\n\n const handleFilePreviewOpen = () => {\n if (isPreviewUnavailable) return;\n props.openPreview();\n };\n\n return (\n <div className={styles.cAttachmentFileWrapper}>\n <div\n className={classNames(\n styles.cAttachmentFileDownloadWrapper,\n isPreviewUnavailable && props.classes.disabledPreview\n )}\n style={style.fileDownloadWrapper}\n onClick={handleFilePreviewOpen}\n >\n {isPreviewUnavailable ? (\n <UnavailableFileIcon className={props.classes.unavailableFileIcon} />\n ) : (\n <FileTypeIcon\n fileName={props.displayName || props.attachmentUrl}\n className={styles.cAttachmentFileDownloadWrapperFileIcon}\n size={props.small ? 25 : 50}\n />\n )}\n <div className={props.classes.titleContainer}>\n {isPreviewUnavailable && <div className={props.classes.caption}>Preview unavailable</div>}\n <div\n data-testid={`${PAGE_NAME}_name`}\n className={classNames(\n styles.cAttachmentFileDownloadWrapperFileName,\n isPreviewUnavailable && props.classes.fileName\n )}\n >\n <Typography variant=\"subtitle2\" noWrap className={props.classes.unavailableFileName}>\n {fileName}\n </Typography>\n </div>\n </div>\n <NewDocumentViewer\n fileUrl={fileUrl}\n classes={{\n root: props.classes.dialogRoot,\n paper: isNativeDetected ? props.classes.nativeDialog : props.classes.dialog,\n }}\n fileName={fileName}\n fileSize={props.attachmentSize}\n onClose={props.closePreview}\n open={props.previewIsOpen}\n />\n </div>\n <a\n download={props.displayName}\n href={fileUrl}\n className={styles.cAttachmentFileDownloadWrapperForm}\n >\n <IconButton\n data-testid={`${PAGE_NAME}_downloadButton`}\n className={props.classes.downloadIcon}\n type=\"submit\"\n >\n <DownloadIcon size={24} className={props.classes.downloadIcon} />\n </IconButton>\n </a>\n </div>\n );\n};\n\n/* eslint-enable react/prop-types */\n\nfunction Attachment(props) {\n const [isImageLoaded, setIsImageLoaded] = useState(false);\n const [isLightboxOpen, setIsLightboxOpen] = useState(false);\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const fileName = props.displayName || props.attachmentUrl || props.fileName;\n const isImage = getIsImage(fileName);\n const isVideo = getIsVideo(fileName);\n\n // Don't fetch download link if attachmentUrl is provided\n const downloadLink = useSignedURL(!props.attachmentUrl && props.fileName);\n const attachmentUrl = props.attachmentUrl || downloadLink;\n const preventIOSScroll = useCallback(e => e.preventDefault(), []);\n\n // NOTE: iOS WebView has a bug when background content of React Modal is scrollable\n // Source: https://github.com/reactjs/react-modal/issues/369\n const handleLightboxOpen = () => {\n if (isNativeDetected) {\n // document.documentElement.style.overflowY = 'hidden';\n document.documentElement.addEventListener('touchmove', preventIOSScroll, {\n passive: false,\n });\n }\n };\n\n const handleLightboxClose = () => {\n if (isNativeDetected) {\n // document.documentElement.style.overflowY = 'visible';\n document.documentElement.removeEventListener('touchmove', preventIOSScroll);\n }\n setIsLightboxOpen(false);\n };\n\n const openLightbox = () => setIsLightboxOpen(true);\n const setImageLoaded = () => setIsImageLoaded(true);\n const openPreview = () => setIsPreviewOpen(true);\n const closePreview = e => {\n e.stopPropagation();\n setIsPreviewOpen(false);\n };\n\n if (isImage)\n return (\n <div className={styles.cAttachment}>\n <ImageAttachment\n size={props.size}\n openLightbox={openLightbox}\n attachmentFileName={props.fileName}\n attachmentUrl={props.attachmentUrl}\n setImageIsLoaded={setImageLoaded}\n imageIsLoaded={isImageLoaded}\n lightboxIsOpen={isLightboxOpen}\n handleLightboxOpen={handleLightboxOpen}\n handleLightboxClose={handleLightboxClose}\n classes={props.classes}\n />\n </div>\n );\n\n if (isVideo && ReactPlayer.canPlay(attachmentUrl))\n return (\n <div className={styles.cAttachment}>\n <ReactPlayer\n data-testid={`${PAGE_NAME}_player`}\n className={styles.cAttachmentReactPlayer}\n url={attachmentUrl}\n config={{ file: { attributes: { preload: 'metadata' } } }}\n controls\n height={props.size === SIZES.small.label ? SIZES.small.value : SIZES.medium.value}\n width={null}\n />\n </div>\n );\n\n return (\n <div className={styles.cAttachment}>\n <FileAttachment\n attachmentUrl={attachmentUrl}\n attachmentFileName={props.fileName}\n attachmentSize={props.attachmentSize}\n displayName={props.displayName}\n openPreview={openPreview}\n closePreview={closePreview}\n previewIsOpen={isPreviewOpen}\n classes={props.classes}\n small={props.small}\n />\n </div>\n );\n}\n\nAttachment.propTypes = {\n attachmentUrl: PropTypes.string.isRequired,\n attachmentSize: PropTypes.number,\n displayName: PropTypes.string,\n fileName: PropTypes.string,\n size: PropTypes.oneOf([SIZES.small.label, SIZES.medium.label]),\n classes: PropTypes.shape({}).isRequired,\n small: PropTypes.bool,\n};\n\nAttachment.defaultProps = {\n displayName: null,\n fileName: null,\n attachmentSize: undefined,\n size: SIZES.medium.label,\n small: false,\n};\n\nexport default withStyles(muiStyles)(Attachment);\n"],"names":["grey200","grey","grey400","SIZES","label","value","style","fileImage","imageIsLoaded","size","maxWidth","borderRadius","overflow","maxHeight","display","cursor","fileDownloadWrapper","padding","border","width","imagePlaceholder","position","backgroundColor","marginTop","height","ImageAttachment","props","downloadLink","useSignedURL","attachmentFileName","attachmentUrl","_jsxs","_Fragment","children","onClick","openLightbox","className","styles","cAttachmentImg","_jsx","concat","src","alt","onLoad","setImageIsLoaded","cAttachmentImgPreviwBtn","FullSizeIcon","ImageIcon","classes","imageIconRoot","htmlColor","fontSize","lightboxIsOpen","ImageViewer","mainSrc","imagePadding","onAfterOpen","handleLightboxOpen","onCloseRequest","handleLightboxClose","FileAttachment","fileName","utils","getFileNameWithExtensionFromPath","displayName","fileUrl","isPreviewUnavailable","getIsPreviewUnavailable","cAttachmentFileWrapper","classNames","cAttachmentFileDownloadWrapper","disabledPreview","openPreview","UnavailableFileIcon","unavailableFileIcon","FileTypeIcon","cAttachmentFileDownloadWrapperFileIcon","small","titleContainer","caption","cAttachmentFileDownloadWrapperFileName","Typography","variant","noWrap","unavailableFileName","NewDocumentViewer","root","dialogRoot","paper","isNativeDetected","nativeDialog","dialog","fileSize","attachmentSize","onClose","closePreview","open","previewIsOpen","download","href","cAttachmentFileDownloadWrapperForm","IconButton","downloadIcon","type","DownloadIcon","Attachment","useState","_useState2","_slicedToArray","_useState","isImageLoaded","setIsImageLoaded","_useState4","_useState3","isLightboxOpen","setIsLightboxOpen","_useState6","_useState5","isPreviewOpen","setIsPreviewOpen","isImage","getIsImage","isVideo","getIsVideo","preventIOSScroll","useCallback","e","preventDefault","cAttachment","document","documentElement","addEventListener","passive","removeEventListener","ReactPlayer","canPlay","cAttachmentReactPlayer","url","config","file","attributes","preload","controls","stopPropagation","propTypes","PropTypes","string","isRequired","number","oneOf","shape","bool","defaultProps","undefined","Attachment$1","withStyles","theme","top","left","transform","margin","whiteSpace","textOverflow","fontWeight","color","palette","primary","text3","text9","marginRight","minWidth","flexDirection"],"mappings":"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"}