@corva/ui 3.77.0-9 → 3.78.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/MCP_README.md +9 -6
  2. package/README.md +6 -0
  3. package/cjs-bundle/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
  4. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
  5. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
  6. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
  7. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
  8. package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
  9. package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
  10. package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js +1 -1
  11. package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js.map +1 -1
  12. package/cjs-bundle/components/AssetEditorV2/constants.js.map +1 -1
  13. package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js +2 -0
  14. package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
  15. package/cjs-bundle/components/AssetEditorV2/effects/index.js +1 -1
  16. package/cjs-bundle/components/AssetEditorV2/effects/index.js.map +1 -1
  17. package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
  18. package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
  19. package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
  20. package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
  21. package/cjs-bundle/components/AssetEditorV2/utils/index.js +1 -1
  22. package/cjs-bundle/components/AssetEditorV2/utils/index.js.map +1 -1
  23. package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js +1 -1
  24. package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js.map +1 -1
  25. package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js +1 -1
  26. package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js.map +1 -1
  27. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  28. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  29. package/cjs-bundle/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js +1 -1
  30. package/cjs-bundle/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js.map +1 -1
  31. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.js.map +1 -1
  32. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js +1 -1
  33. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js.map +1 -1
  34. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js +1 -1
  35. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js.map +1 -1
  36. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.module.css.js +1 -1
  37. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js +1 -1
  38. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js.map +1 -1
  39. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js +1 -1
  40. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js.map +1 -1
  41. package/cjs-bundle/components/OffsetWellPickerV5/constants.js +1 -1
  42. package/cjs-bundle/components/OffsetWellPickerV5/constants.js.map +1 -1
  43. package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js +1 -1
  44. package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js.map +1 -1
  45. package/cjs-bundle/components/OffsetWellPickerV5/stores/filter-store/types.js.map +1 -1
  46. package/cjs-bundle/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js +1 -1
  47. package/cjs-bundle/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js.map +1 -1
  48. package/cjs-bundle/components/Search/Search.js.map +1 -1
  49. package/cjs-bundle/config/mapbox/index.js +1 -1
  50. package/cjs-bundle/config/mapbox/index.js.map +1 -1
  51. package/cjs-bundle/hocs/withAssetEditorLockHOC.js +1 -1
  52. package/cjs-bundle/hocs/withAssetEditorLockHOC.js.map +1 -1
  53. package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts +2 -0
  54. package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts.map +1 -0
  55. package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts +2 -0
  56. package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts.map +1 -0
  57. package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts +17 -6
  58. package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts.map +1 -1
  59. package/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
  60. package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts +30 -39
  61. package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts.map +1 -1
  62. package/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
  63. package/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
  64. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts +4 -41
  65. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts.map +1 -1
  66. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
  67. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
  68. package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts +22 -18
  69. package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts.map +1 -1
  70. package/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
  71. package/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
  72. package/components/AssetEditorV2/components/SelectItem.d.ts +10 -1
  73. package/components/AssetEditorV2/components/SelectItem.d.ts.map +1 -1
  74. package/components/AssetEditorV2/components/SelectItem.js +1 -1
  75. package/components/AssetEditorV2/components/SelectItem.js.map +1 -1
  76. package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts +2 -0
  77. package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts.map +1 -0
  78. package/components/AssetEditorV2/components/__tests__/MultipleAssetsToggle.test.d.ts.map +1 -1
  79. package/components/AssetEditorV2/components/__tests__/SelectItem.test.d.ts.map +1 -1
  80. package/components/AssetEditorV2/components/index.d.ts.map +1 -1
  81. package/components/AssetEditorV2/constants.d.ts +2 -9
  82. package/components/AssetEditorV2/constants.d.ts.map +1 -1
  83. package/components/AssetEditorV2/constants.js.map +1 -1
  84. package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts +2 -0
  85. package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts.map +1 -0
  86. package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts +2 -0
  87. package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts.map +1 -0
  88. package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts +2 -0
  89. package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts.map +1 -0
  90. package/components/AssetEditorV2/effects/assetResponse.d.ts +4 -0
  91. package/components/AssetEditorV2/effects/assetResponse.d.ts.map +1 -0
  92. package/components/AssetEditorV2/effects/assetResponse.js +2 -0
  93. package/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
  94. package/components/AssetEditorV2/effects/index.d.ts +34 -28
  95. package/components/AssetEditorV2/effects/index.d.ts.map +1 -1
  96. package/components/AssetEditorV2/effects/index.js +1 -1
  97. package/components/AssetEditorV2/effects/index.js.map +1 -1
  98. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts +21 -17
  99. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts.map +1 -1
  100. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
  101. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
  102. package/components/AssetEditorV2/index.d.ts +36 -67
  103. package/components/AssetEditorV2/index.d.ts.map +1 -1
  104. package/components/AssetEditorV2/index.js +1 -1
  105. package/components/AssetEditorV2/index.js.map +1 -1
  106. package/components/AssetEditorV2/types.d.ts +82 -0
  107. package/components/AssetEditorV2/types.d.ts.map +1 -0
  108. package/components/AssetEditorV2/utils/__tests__/utils.test.d.ts.map +1 -1
  109. package/components/AssetEditorV2/utils/index.d.ts +23 -19
  110. package/components/AssetEditorV2/utils/index.d.ts.map +1 -1
  111. package/components/AssetEditorV2/utils/index.js +1 -1
  112. package/components/AssetEditorV2/utils/index.js.map +1 -1
  113. package/components/AttachmentLightbox/AttachmentDocument.d.ts.map +1 -1
  114. package/components/AttachmentLightbox/AttachmentDocument.js +1 -1
  115. package/components/AttachmentLightbox/AttachmentDocument.js.map +1 -1
  116. package/components/CommentComposer/__tests__/useAttachmentUpload.local.test.d.ts +2 -0
  117. package/components/CommentComposer/__tests__/useAttachmentUpload.local.test.d.ts.map +1 -0
  118. package/components/CommentComposer/useAttachmentUpload.d.ts.map +1 -1
  119. package/components/CommentComposer/useAttachmentUpload.js +1 -1
  120. package/components/CommentComposer/useAttachmentUpload.js.map +1 -1
  121. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.d.ts.map +1 -1
  122. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  123. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  124. package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.d.ts.map +1 -1
  125. package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js +1 -1
  126. package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js.map +1 -1
  127. package/components/Drillstring/BHAComponentDetail/constants.d.ts +2 -2
  128. package/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.d.ts +2 -0
  129. package/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.d.ts.map +1 -0
  130. package/components/OffsetWellPickerV4/effects/useCompanyMetricKey.d.ts.map +1 -1
  131. package/components/OffsetWellPickerV5/__tests__/constants.test.d.ts +2 -0
  132. package/components/OffsetWellPickerV5/__tests__/constants.test.d.ts.map +1 -0
  133. package/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.js.map +1 -1
  134. package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.d.ts +2 -1
  135. package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.d.ts.map +1 -1
  136. package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js +1 -1
  137. package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js.map +1 -1
  138. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.d.ts +3 -1
  139. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.d.ts.map +1 -1
  140. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js +1 -1
  141. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js.map +1 -1
  142. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.module.css.js +1 -1
  143. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.d.ts +2 -0
  144. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.d.ts.map +1 -0
  145. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.d.ts.map +1 -1
  146. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js +1 -1
  147. package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js.map +1 -1
  148. package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.d.ts +0 -1
  149. package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.d.ts.map +1 -1
  150. package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js +1 -1
  151. package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js.map +1 -1
  152. package/components/OffsetWellPickerV5/constants.d.ts +26 -3
  153. package/components/OffsetWellPickerV5/constants.d.ts.map +1 -1
  154. package/components/OffsetWellPickerV5/constants.js +1 -1
  155. package/components/OffsetWellPickerV5/constants.js.map +1 -1
  156. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useAdvancedWells.test.d.ts +2 -0
  157. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useAdvancedWells.test.d.ts.map +1 -0
  158. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useCompanyMetricKey.test.d.ts +2 -0
  159. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useCompanyMetricKey.test.d.ts.map +1 -0
  160. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.d.ts.map +1 -1
  161. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js +1 -1
  162. package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js.map +1 -1
  163. package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts +2 -1
  164. package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts.map +1 -1
  165. package/components/OffsetWellPickerV5/stores/filter-store/types.js.map +1 -1
  166. package/components/OffsetWellPickerV5/utils/__tests__/getTimestampByPeriod.test.d.ts +2 -0
  167. package/components/OffsetWellPickerV5/utils/__tests__/getTimestampByPeriod.test.d.ts.map +1 -0
  168. package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.d.ts +4 -0
  169. package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.d.ts.map +1 -1
  170. package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js +1 -1
  171. package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js.map +1 -1
  172. package/components/Search/Search.d.ts +6 -3
  173. package/components/Search/Search.d.ts.map +1 -1
  174. package/components/Search/Search.js.map +1 -1
  175. package/components/index.d.ts +1 -0
  176. package/components/index.d.ts.map +1 -1
  177. package/config/mapbox/index.d.ts.map +1 -1
  178. package/config/mapbox/index.js +1 -1
  179. package/config/mapbox/index.js.map +1 -1
  180. package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts +2 -0
  181. package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts.map +1 -0
  182. package/hocs/withAssetEditorLockHOC.d.ts +11 -1
  183. package/hocs/withAssetEditorLockHOC.d.ts.map +1 -1
  184. package/hocs/withAssetEditorLockHOC.js +1 -1
  185. package/hocs/withAssetEditorLockHOC.js.map +1 -1
  186. package/mcp-server/server.mjs +312 -73
  187. package/mcp-server/setup.mjs +129 -44
  188. package/package.json +3 -2
  189. package/tsconfig.tsbuildinfo +1 -1
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useState as i,useRef as n,useEffect as t}from"react";import{cloneDeep as e,debounce as c,noop as r,mapValues as m,keyBy as p}from"lodash";import{FormControl as a,InputLabel as l,Select as u,MenuItem as d}from"@material-ui/core";import{ArrowForward as j}from"@material-ui/icons";import g from"../../../../EmptyState/EmptyState.js";import{getIsSustainabilityApp as f}from"../../utils.js";import I from"./components/RemoveAppButton.js";import{SettingsAccordion as v}from"./components/SettingsAccordion.js";import{useStyles as h}from"./styles.js";import"@babel/runtime/helpers/objectWithoutProperties";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../../config/theme/index.js";import{jsxs as C,jsx as y,Fragment as b}from"react/jsx-runtime";import A from"../../../../../hocs/withAssetEditorLockHOC.js";import S from"../../../../ErrorBoundary/ErrorBoundary.js";import O from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import k from"../../../../Button/components/Button/index.js";import"moment-timezone";import"classnames";import"../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../../Button/components/LiveButton/styles.js";import"@icon-park/react/es/all";import"../../../../../icons/IconParkProvider.js";import"../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../icons/customIcons/icons/DragOne.js";import"../../../../../icons/customIcons/icons/Attention.js";import"../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../icons/customIcons/icons/Expand.js";import"../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../icons/customIcons/icons/Search.js";import"../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../icons/customIcons/icons/Radio.js";import"../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../icons/customIcons/icons/Pad.js";import"../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../icons/customIcons/icons/Global.js";import"../../../../../icons/customIcons/icons/Program.js";import"../../../../../icons/customIcons/icons/Rig.js";import"../../../../../icons/customIcons/icons/Well.js";import"../../../../../icons/customIcons/icons/Gap.js";import"../../../../../icons/customIcons/icons/Pin.js";import"../../../../../icons/customIcons/icons/PinOne.js";import"../../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../icons/customIcons/icons/Archive.js";import"../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../icons/customIcons/icons/Archived.js";import"../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../icons/customIcons/icons/Radius.js";import"../../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../../icons/customIcons/icons/Company.js";import"../../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../../icons/customIcons/icons/Connect.js";import"../../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../../icons/customIcons/icons/Feed.js";import"../../../../../icons/customIcons/icons/Prompt.js";import"../../../../../icons/customIcons/icons/Companies.js";import"../../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../../icons/customIcons/icons/Key.js";import"../../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../../icons/customIcons/icons/MappingManual.js";import"../../../../../icons/customIcons/icons/Mapping.js";import"../../../../../icons/customIcons/icons/Metrics.js";import"../../../../../icons/customIcons/icons/Drops.js";import"../../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../../icons/customIcons/icons/Template.js";import"../../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../../icons/customIcons/icons/NPT.js";import"../../../../../icons/customIcons/icons/GuidedFrac.js";import P from"../../../../Modal/Modal.js";import{DEV_CENTER_CLI_APP_ID as D}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENTS as E,SEGMENT_TO_ASSET_TYPE as N}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 x}from"../../../../../constants/assetTypes.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import w from"../../../../AssetEditorV2/index.js";import F from"../../../../AppVersionsSelect/AppVersionsSelect.js";import R from"../../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import B from"../../../../ConfirmationDialog.js";import"../../../../UserMention/utils/index.js";import"../../../../../utils/convert.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../utils/casing/validation.js";import"lodash/mean";import"../../../../../constants/streamSourceType.js";import"lodash/get";import"file-saver";import{getAppSegment as M}from"../../../../../utils/devcenter.js";import"../../../../../utils/drillstring/conversion.js";import"lodash/set";import"lodash/cloneDeep";import"@babel/runtime/helpers/toConsumableArray";import"lodash/isNumber";import"lodash/has";import"../../../../../utils/ga.js";import"../../../../../utils/goalsConfig/goalsConfig.js";import"../../../../../utils/lasParser.js";import"../../../../../utils/main.js";import"../../../../../utils/metrics/metricsConfig.js";import{isInsideNewMobileApp as T}from"../../../../../utils/mobileDetect.js";import"../../../../../utils/feed.js";import"../../../../../utils/reports.js";import{showSuccessNotification as V}from"../../../../../utils/notificationToasts.js";import"@babel/runtime/helpers/typeof";import"../../../../../utils/dashboardReports.js";import"../../../../../utils/env.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../../../../utils/jsonaDataFormatter.js";import"../../../../../utils/bha.js";import"jsona";import"../../../../../clients/jsonApi/index.js";import"../../../../../utils/charts/Styles.scss.js";import"../../../../../utils/getSingleAsset.js";import{AppIcon as L}from"../../../../AppIcon/AppIcon.js";import U from"../../../../../permissions/usePermissions.js";import{PERMISSIONS as G}from"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../permissions/PermissionsContext.js";import{HideInNativeApp as H}from"../../../../../componentsV2/HideInNativeApp/index.js";import{isReact18Host as _}from"../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants.js";function q(o,s){var i=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),i.push.apply(i,n)}return i}function z(s){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?q(Object(n),!0).forEach((function(i){o(s,i,n[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))}))}return s}var W="DC_appSettings",K=function(){return null},Z=A(w),J=w,Q=R,X=N,Y=function(){return null},$=function(A){var N,w,R,q,$,oo,so=A.AppSettingsComponent,io=void 0===so?Y:so,no=A.app,to=A.appData,eo=A.appName,co=A.currentUser,ro=A.disableAppAssetSelection,mo=void 0!==ro&&ro,po=A.isMultiRig,ao=A.isSettingsDialogHidden,lo=void 0!==ao&&ao,uo=A.layoutEnvironment,jo=A.onAppRemove,go=A.onCloneDashboard,fo=void 0===go?r:go,Io=A.onSettingsChange,vo=A.openIntercom,ho=A.rigId,Co=A.toggleAppSettingsDialog,yo=M(no),bo=i("string"==typeof yo?yo:E.DRILLING),Ao=s(bo,2),So=Ao[0],Oo=Ao[1],ko=i(!1),Po=s(ko,2),Do=Po[0],Eo=Po[1],No=i(!0),xo=s(No,2),wo=xo[0],Fo=xo[1],Ro=i(""),Bo=s(Ro,2),Mo=Bo[0],To=Bo[1],Vo=i((function(){var o,s,i=e(null!==(o=no.settings)&&void 0!==o?o:{}),n="string"==typeof i.package?i.package:void 0,t="string"==typeof(null===(s=no.package)||void 0===s?void 0:s.version)?no.package.version:void 0;return z(z({},i),{},{package:n||t})})),Lo=s(Vo,2),Uo=Lo[0],Go=Lo[1],Ho=n(ho),_o=n(null),qo=n(null),zo=U([G.getCanReadAppPackages(no.app.id)]),Wo=s(zo,1)[0],Ko=Wo.active,Zo=Wo.loading,Jo=Array.isArray(no.segment)?no.segment.filter((function(o){return"string"==typeof o})):[],Qo=Jo.length>1,Xo=So===E.COMPLETION,Yo=X[So],$o="asset"===(null==uo?void 0:uo.type),os=no.id===D,ss=f(null==no||null===(N=no.app)||void 0===N?void 0:N.id),is=!(mo||T||po||$o&&Xo),ns=!T&&!lo&&!!jo,ts=Zo||Ko||Boolean(null===(w=_o.current)||void 0===w?void 0:w.clientHeight),es=Boolean(null===(R=qo.current)||void 0===R?void 0:R.clientHeight),cs=ts&&es,rs=$o?Z:J,ms="string"==typeof no.app.app_key?no.app.app_key:null,ps="string"==typeof Uo.package?Uo.package:void 0,as=h({isCompletionApp:Xo,isSustainabilityApp:ss,isAccordionRequired:cs,isRemoveButtonVisible:ns}),ls=function(s,i){return Go((function(n){return z(z({},n),{},o({},s,i))}))},us=function(o){return Go((function(s){return z(z({},s),o)}))};t((function(){wo||Fo(!0)}),[wo]),t((function(){c(Eo,200)(!0)}),[]);var ds=C("div",{className:as.modalTitleContainer,children:[y(L,{className:as.appIcon,segment:[So],iconUrl:null==no||null===(q=no.app)||void 0===q||null===($=q.icon)||void 0===$?void 0:$.url,height:48,width:48}),C("div",{children:[y("div",{children:"".concat(eo," Settings")}),y(H,{children:C("div",{"data-testid":"".concat(W,"_appstoreLink"),className:as.appStoreButton,onClick:function(){var o,s;return window.open((s=null==no||null===(o=no.app)||void 0===o?void 0:o.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",y(j,{className:as.arrowIcon})]})})]})]}),js=C("div",{className:as.modalActions,children:[ns&&y(I,{appName:eo,onAppRemove:jo}),C("div",{children:[y(k,{"data-testid":"".concat(W,"_cancel"),variation:"secondary",onClick:Co,children:"Cancel"}),lo&&y(k,{variation:"primary",onClick:function(){return fo()},children:"Copy Dashboard"}),!lo&&y(k,{"data-testid":"".concat(W,"_save"),className:as.saveButton,variation:"primary",onClick:function(){if(Uo.package||os){if(is&&!$o){var o,s,i,n,t=null==Yo||null===(o=Yo.primaryAsset)||void 0===o||null===(s=o.assetType)||void 0===s?void 0:s.id,e=null==Yo||null===(i=Yo.primaryAsset)||void 0===i||null===(n=i.assetType)||void 0===n?void 0:n.label;if(t&&!Uo[t])return void To("Please select ".concat(e))}Io(Uo),V("Successfully saved"),Co()}else To("Please select app version")},children:"Save"})]})]});return y(P,{actions:js,closeIconClassName:as.closeIcon,contentContainerClassName:as.modalContainer,modalTitleClassName:as.modalTitle,onClose:Co,open:!0,title:ds,children:C(S,{ErrorView:O,openIntercom:vo,children:[y(B,{open:!!Mo,isShowCancel:!1,title:"Validation failed",text:Mo,handleOk:function(){return To("")},classes:{confirmation:as.confirmationText}}),lo&&y(Q,{}),!lo&&Do&&!es&&!ts&&y(g,{image:g.IMAGES.UnderConstruction,title:"No app settings"}),!lo&&C(b,{children:[C(v,{defaultExpanded:!0,className:as.assetAccordion,accordionDetailsRef:_o,isAccordionRequired:cs,summary:"Asset",children:[Qo&&C(a,{className:as.segmentSelector,children:[y(l,{children:"Segment"}),y(u,{value:So,onChange:function(o){var s=String(o.target.value);Ho.current=null,Fo(!1),Oo(s),Go(z(z({package:Uo.package,segment:s},m(p(x,"id"),(function(){return null}))),{},{assets:null}))},children:Jo.map((function(o){return y(d,{className:as.segmentMenuItem,value:o,children:o},o)}))})]}),is&&wo&&y(rs,{appKey:os?null:ms,appType:Yo,defaultValue:Ho.current,secondaryDefaultValue:+(null==to||null===(oo=to.well)||void 0===oo?void 0:oo.id),isHiddenTitle:!0,isNullable:$o,label:"Asset",onSettingsChange:us,settings:Uo}),y(F,{className:as.appVersionSelect,appId:no.app.id,value:ps,onChange:function(o,s,i){return i&&_()?us({package:o,react18AutoSwitchDisabled:!0}):ls("package",o)}})]}),y(S,{ErrorView:K,openIntercom:vo,children:y(v,{accordionDetailsRef:qo,className:as.accordion,defaultExpanded:!0,isAccordionRequired:cs,summary:"App Settings",children:io&&y(io,{app:no,appData:to,settings:Uo,onSettingChange:ls,onSettingsChange:us,layoutEnvironment:uo,currentUser:co})})})]})]})})};export{W as PAGE_NAME,$ as default};
1
+ import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useState as i,useRef as n,useEffect as t}from"react";import{cloneDeep as e,debounce as c,noop as r,mapValues as m,keyBy as p}from"lodash";import{FormControl as a,InputLabel as l,Select as u,MenuItem as d}from"@material-ui/core";import{ArrowForward as j}from"@material-ui/icons";import g from"../../../../EmptyState/EmptyState.js";import{getIsSustainabilityApp as f}from"../../utils.js";import I from"./components/RemoveAppButton.js";import{SettingsAccordion as v}from"./components/SettingsAccordion.js";import{useStyles as h}from"./styles.js";import"@babel/runtime/helpers/objectWithoutProperties";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../../config/theme/index.js";import{jsxs as C,jsx as y,Fragment as b}from"react/jsx-runtime";import A from"../../../../../hocs/withAssetEditorLockHOC.js";import S from"../../../../ErrorBoundary/ErrorBoundary.js";import O from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import k from"../../../../Button/components/Button/index.js";import"moment-timezone";import"classnames";import"../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../../Button/components/LiveButton/styles.js";import"@icon-park/react/es/all";import"../../../../../icons/IconParkProvider.js";import"../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../icons/customIcons/icons/DragOne.js";import"../../../../../icons/customIcons/icons/Attention.js";import"../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../icons/customIcons/icons/Expand.js";import"../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../icons/customIcons/icons/Search.js";import"../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../icons/customIcons/icons/Radio.js";import"../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../icons/customIcons/icons/Pad.js";import"../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../icons/customIcons/icons/Global.js";import"../../../../../icons/customIcons/icons/Program.js";import"../../../../../icons/customIcons/icons/Rig.js";import"../../../../../icons/customIcons/icons/Well.js";import"../../../../../icons/customIcons/icons/Gap.js";import"../../../../../icons/customIcons/icons/Pin.js";import"../../../../../icons/customIcons/icons/PinOne.js";import"../../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../icons/customIcons/icons/Archive.js";import"../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../icons/customIcons/icons/Archived.js";import"../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../icons/customIcons/icons/Radius.js";import"../../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../../icons/customIcons/icons/Company.js";import"../../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../../icons/customIcons/icons/Connect.js";import"../../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../../icons/customIcons/icons/Feed.js";import"../../../../../icons/customIcons/icons/Prompt.js";import"../../../../../icons/customIcons/icons/Companies.js";import"../../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../../icons/customIcons/icons/Key.js";import"../../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../../icons/customIcons/icons/MappingManual.js";import"../../../../../icons/customIcons/icons/Mapping.js";import"../../../../../icons/customIcons/icons/Metrics.js";import"../../../../../icons/customIcons/icons/Drops.js";import"../../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../../icons/customIcons/icons/Template.js";import"../../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../../icons/customIcons/icons/NPT.js";import"../../../../../icons/customIcons/icons/GuidedFrac.js";import P from"../../../../Modal/Modal.js";import{DEV_CENTER_CLI_APP_ID as D}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENTS as E,SEGMENT_TO_ASSET_TYPE as N}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 x}from"../../../../../constants/assetTypes.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import w from"../../../../AssetEditorV2/index.js";import F from"../../../../AppVersionsSelect/AppVersionsSelect.js";import R from"../../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import B from"../../../../ConfirmationDialog.js";import"../../../../UserMention/utils/index.js";import"../../../../../utils/convert.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../utils/casing/validation.js";import"lodash/mean";import"../../../../../constants/streamSourceType.js";import"lodash/get";import"file-saver";import{getAppSegment as M}from"../../../../../utils/devcenter.js";import"../../../../../utils/drillstring/conversion.js";import"lodash/set";import"lodash/cloneDeep";import"@babel/runtime/helpers/toConsumableArray";import"lodash/isNumber";import"lodash/has";import"../../../../../utils/ga.js";import"../../../../../utils/goalsConfig/goalsConfig.js";import"../../../../../utils/lasParser.js";import"../../../../../utils/main.js";import"../../../../../utils/metrics/metricsConfig.js";import{isInsideNewMobileApp as T}from"../../../../../utils/mobileDetect.js";import"../../../../../utils/feed.js";import"../../../../../utils/reports.js";import{showSuccessNotification as V}from"../../../../../utils/notificationToasts.js";import"@babel/runtime/helpers/typeof";import"../../../../../utils/dashboardReports.js";import"../../../../../utils/env.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../../../../utils/jsonaDataFormatter.js";import"../../../../../utils/bha.js";import"jsona";import"../../../../../clients/jsonApi/index.js";import"../../../../../utils/charts/Styles.scss.js";import"../../../../../utils/getSingleAsset.js";import{AppIcon as L}from"../../../../AppIcon/AppIcon.js";import U from"../../../../../permissions/usePermissions.js";import{PERMISSIONS as G}from"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../permissions/PermissionsContext.js";import{HideInNativeApp as H}from"../../../../../componentsV2/HideInNativeApp/index.js";import{isReact18Host as _}from"../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants.js";function q(o,s){var i=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),i.push.apply(i,n)}return i}function z(s){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?q(Object(n),!0).forEach((function(i){o(s,i,n[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))}))}return s}var W="DC_appSettings",K=function(){return null},Z=A(w),J=R,Q=N,X=function(){return null},Y=function(A){var N,R,q,Y,$,oo,so=A.AppSettingsComponent,io=void 0===so?X:so,no=A.app,to=A.appData,eo=A.appName,co=A.currentUser,ro=A.disableAppAssetSelection,mo=void 0!==ro&&ro,po=A.isMultiRig,ao=A.isSettingsDialogHidden,lo=void 0!==ao&&ao,uo=A.layoutEnvironment,jo=A.onAppRemove,go=A.onCloneDashboard,fo=void 0===go?r:go,Io=A.onSettingsChange,vo=A.openIntercom,ho=A.rigId,Co=A.toggleAppSettingsDialog,yo=M(no),bo=i("string"==typeof yo?yo:E.DRILLING),Ao=s(bo,2),So=Ao[0],Oo=Ao[1],ko=i(!1),Po=s(ko,2),Do=Po[0],Eo=Po[1],No=i(!0),xo=s(No,2),wo=xo[0],Fo=xo[1],Ro=i(""),Bo=s(Ro,2),Mo=Bo[0],To=Bo[1],Vo=i((function(){var o,s,i=e(null!==(o=no.settings)&&void 0!==o?o:{}),n="string"==typeof i.package?i.package:void 0,t="string"==typeof(null===(s=no.package)||void 0===s?void 0:s.version)?no.package.version:void 0;return z(z({},i),{},{package:n||t})})),Lo=s(Vo,2),Uo=Lo[0],Go=Lo[1],Ho=n(ho),_o=n(null),qo=n(null),zo=U([G.getCanReadAppPackages(no.app.id)]),Wo=s(zo,1)[0],Ko=Wo.active,Zo=Wo.loading,Jo=Array.isArray(no.segment)?no.segment.filter((function(o){return"string"==typeof o})):[],Qo=Jo.length>1,Xo=So===E.COMPLETION,Yo=Q[So],$o="asset"===(null==uo?void 0:uo.type),os=no.id===D,ss=f(null==no||null===(N=no.app)||void 0===N?void 0:N.id),is=!(mo||T||po||$o&&Xo),ns=!T&&!lo&&!!jo,ts=Zo||Ko||Boolean(null===(R=_o.current)||void 0===R?void 0:R.clientHeight),es=Boolean(null===(q=qo.current)||void 0===q?void 0:q.clientHeight),cs=ts&&es,rs=$o?Z:w,ms="string"==typeof no.app.app_key?no.app.app_key:null,ps="string"==typeof Uo.package?Uo.package:void 0,as=h({isCompletionApp:Xo,isSustainabilityApp:ss,isAccordionRequired:cs,isRemoveButtonVisible:ns}),ls=function(s,i){return Go((function(n){return z(z({},n),{},o({},s,i))}))},us=function(o){return Go((function(s){return z(z({},s),o)}))};t((function(){wo||Fo(!0)}),[wo]),t((function(){c(Eo,200)(!0)}),[]);var ds=C("div",{className:as.modalTitleContainer,children:[y(L,{className:as.appIcon,segment:[So],iconUrl:null==no||null===(Y=no.app)||void 0===Y||null===($=Y.icon)||void 0===$?void 0:$.url,height:48,width:48}),C("div",{children:[y("div",{children:"".concat(eo," Settings")}),y(H,{children:C("div",{"data-testid":"".concat(W,"_appstoreLink"),className:as.appStoreButton,onClick:function(){var o,s;return window.open((s=null==no||null===(o=no.app)||void 0===o?void 0:o.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",y(j,{className:as.arrowIcon})]})})]})]}),js=C("div",{className:as.modalActions,children:[ns&&y(I,{appName:eo,onAppRemove:jo}),C("div",{children:[y(k,{"data-testid":"".concat(W,"_cancel"),variation:"secondary",onClick:Co,children:"Cancel"}),lo&&y(k,{variation:"primary",onClick:function(){return fo()},children:"Copy Dashboard"}),!lo&&y(k,{"data-testid":"".concat(W,"_save"),className:as.saveButton,variation:"primary",onClick:function(){if(Uo.package||os){if(is&&!$o){var o,s,i,n,t=null==Yo||null===(o=Yo.primaryAsset)||void 0===o||null===(s=o.assetType)||void 0===s?void 0:s.id,e=null==Yo||null===(i=Yo.primaryAsset)||void 0===i||null===(n=i.assetType)||void 0===n?void 0:n.label;if(t&&!Uo[t])return void To("Please select ".concat(e))}Io(Uo),V("Successfully saved"),Co()}else To("Please select app version")},children:"Save"})]})]});return y(P,{actions:js,closeIconClassName:as.closeIcon,contentContainerClassName:as.modalContainer,modalTitleClassName:as.modalTitle,onClose:Co,open:!0,title:ds,children:C(S,{ErrorView:O,openIntercom:vo,children:[y(B,{open:!!Mo,isShowCancel:!1,title:"Validation failed",text:Mo,handleOk:function(){return To("")},classes:{confirmation:as.confirmationText}}),lo&&y(J,{}),!lo&&Do&&!es&&!ts&&y(g,{image:g.IMAGES.UnderConstruction,title:"No app settings"}),!lo&&C(b,{children:[C(v,{defaultExpanded:!0,className:as.assetAccordion,accordionDetailsRef:_o,isAccordionRequired:cs,summary:"Asset",children:[Qo&&C(a,{className:as.segmentSelector,children:[y(l,{children:"Segment"}),y(u,{value:So,onChange:function(o){var s=String(o.target.value);Ho.current=null,Fo(!1),Oo(s),Go(z(z({package:Uo.package,segment:s},m(p(x,"id"),(function(){return null}))),{},{assets:null}))},children:Jo.map((function(o){return y(d,{className:as.segmentMenuItem,value:o,children:o},o)}))})]}),is&&wo&&Yo&&y(rs,{appKey:os?null:ms,appType:Yo,defaultValue:Ho.current,secondaryDefaultValue:+(null==to||null===(oo=to.well)||void 0===oo?void 0:oo.id),isHiddenTitle:!0,isNullable:$o,label:"Asset",onSettingsChange:us,settings:Uo}),y(F,{className:as.appVersionSelect,appId:no.app.id,value:ps,onChange:function(o,s,i){return i&&_()?us({package:o,react18AutoSwitchDisabled:!0}):ls("package",o)}})]}),y(S,{ErrorView:K,openIntercom:vo,children:y(v,{accordionDetailsRef:qo,className:as.accordion,defaultExpanded:!0,isAccordionRequired:cs,summary:"App Settings",children:io&&y(io,{app:no,appData:to,settings:Uo,onSettingChange:ls,onSettingsChange:us,layoutEnvironment:uo,currentUser:co})})})]})]})})};export{W as PAGE_NAME,Y as default};
2
2
  //# sourceMappingURL=AppSettingsDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport type { SelectProps } from '@material-ui/core/Select';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport type {\n AppDataEntry,\n DevCenterAppResource,\n DevCenterCurrentUser,\n LayoutEnvironment,\n} from '../../types';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\nimport { HideInNativeApp } from '~/componentsV2/HideInNativeApp';\n// [REACT-18-MIGRATION-TAG] PLT-3099\nimport { isReact18Host } from '~/componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = (appId: number | string | undefined): string => `/app-store/app/${appId}`;\n\nconst AppSettingsErrorView = () => null;\n\nexport type AppSettings = {\n package?: string | null;\n padId?: number | string | null;\n segment?: string;\n} & Record<string, unknown>;\n\nexport type AppSettingsComponentProps = {\n app: DevCenterAppResource;\n appData: AppDataEntry;\n currentUser: DevCenterCurrentUser;\n layoutEnvironment?: LayoutEnvironment | null;\n onSettingChange: (name: string, value: unknown) => void;\n onSettingsChange: (settings: AppSettings) => void;\n settings: AppSettings;\n};\n\nexport type AppSettingsDialogProps = {\n AppSettingsComponent?: ComponentType<AppSettingsComponentProps> | null;\n app: DevCenterAppResource;\n appData: AppDataEntry;\n appName: string;\n currentUser: DevCenterCurrentUser;\n disableAppAssetSelection?: boolean;\n isMultiRig: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onSettingsChange: (settings: AppSettings) => void;\n openIntercom?: () => void;\n rigId?: number | string | null;\n toggleAppSettingsDialog: () => void;\n};\n\ntype AssetEditorAppType = {\n primaryAsset?: {\n assetType?: {\n id?: string;\n label?: string;\n };\n };\n};\n\ntype AssetEditorProps = {\n appKey: string | null;\n appType: AssetEditorAppType | undefined;\n defaultValue: number | string | null | undefined;\n secondaryDefaultValue: number;\n isHiddenTitle: boolean;\n isNullable: boolean;\n label: string;\n onSettingsChange: (settings: AppSettings) => void;\n settings: AppSettings;\n};\n\n/*\n * AS-KEEP — JavaScript boundary.\n *\n * `AssetEditorV2` and `DisabledSettingsMessage` are still `.js`. TypeScript infers their props\n * from `propTypes` alone and never reads `defaultProps`, so every defaulted prop comes back\n * required and the inferred type has no overlap with the subset this dialog supplies. Nothing\n * lower on the ladder reaches it: there is no value to narrow, no predicate to write, and\n * widening the contract would mean hand-writing a `.d.ts` for a module that is itself queued for\n * migration. The assertions stay here, at the boundary, and describe exactly what this dialog\n * passes — `AssetEditorProps` below is the real contract, checked at every call site.\n *\n * Delete both once `AssetEditorV2/index.js` and `DisabledSettingsMessage.js` are TypeScript.\n */\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor) as ComponentType<AssetEditorProps>;\n// TS cannot convert this one directly: with `defaultProps` ignored, the inferred type keeps\n// props this dialog never passes, so neither side overlaps. `unknown` is the only route.\nconst TypedAssetEditor = AssetEditor as unknown as ComponentType<AssetEditorProps>;\nconst OptionalDisabledSettingsMessage = DisabledSettingsMessage as ComponentType<{\n onCloneDashboard?: () => void;\n}>;\n\nconst ASSET_EDITOR_TYPES_BY_SEGMENT: Record<string, AssetEditorAppType> = SEGMENT_TO_ASSET_TYPE;\n\nconst DEFAULT_APP_SETTINGS_COMPONENT: ComponentType<AppSettingsComponentProps> = () => null;\n\nconst AppSettingsDialog: FC<AppSettingsDialogProps> = ({\n AppSettingsComponent = DEFAULT_APP_SETTINGS_COMPONENT,\n app,\n appData,\n appName,\n currentUser,\n disableAppAssetSelection = false,\n isMultiRig,\n isSettingsDialogHidden = false,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard = noop,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) => {\n const initialSegment = getAppSegment(app);\n\n const [appSegmentSetting, setAppSegmentSetting] = useState<string>(\n typeof initialSegment === 'string' ? initialSegment : SEGMENTS.DRILLING\n );\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [appSettings, setAppSettings] = useState<AppSettings>(() => {\n const settings: AppSettings = cloneDeep(app.settings ?? {});\n const settingsPackage = typeof settings.package === 'string' ? settings.package : undefined;\n const packageVersion =\n typeof app.package?.version === 'string' ? app.package.version : undefined;\n\n return {\n ...settings,\n package: settingsPackage || packageVersion,\n };\n });\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef<number | string | null | undefined>(rigId);\n const platformAppSettingsRef = useRef<HTMLDivElement | null>(null);\n const customAppSettingsRef = useRef<HTMLDivElement | null>(null);\n\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const appSegments = Array.isArray(app.segment)\n ? app.segment.filter((segment): segment is string => typeof segment === 'string')\n : [];\n const hasSegmentSelector = appSegments.length > 1;\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = ASSET_EDITOR_TYPES_BY_SEGMENT[appSegmentSetting];\n const isAssetPage = layoutEnvironment?.type === 'asset';\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const isAssetSelectorVisible =\n !disableAppAssetSelection &&\n !isInsideNewMobileApp &&\n !isMultiRig &&\n !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && !!onAppRemove;\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : TypedAssetEditor;\n const appKey = typeof app.app.app_key === 'string' ? app.app.app_key : null;\n const selectedPackage = typeof appSettings.package === 'string' ? appSettings.package : undefined;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const handleChangeAppSegment: SelectProps['onChange'] = event => {\n const nextSegment = String(event.target.value);\n\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const handleAppSettingChange = (name: string, value: unknown) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const handleAppSettingsChange = (newSettings: AppSettings) =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const handleSave = () => {\n if (!appSettings.package && !isCLIApp) {\n setValidationError('Please select app version');\n return;\n }\n\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset?.assetType?.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset?.assetType?.label;\n\n if (appTypeKey && !appSettings[appTypeKey]) {\n setValidationError(`Please select ${appTypeLabel}`);\n return;\n }\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n toggleAppSettingsDialog();\n };\n\n const handleAppVersionChange = (value: string, _appPackage: unknown, isUserChange: boolean) =>\n // [REACT-18-MIGRATION-TAG] PLT-3099: a genuine user pick on a React-18 host opts the app out\n // of the auto-switch; the auto-preselect must not (isUserChange).\n isUserChange && isReact18Host()\n ? handleAppSettingsChange({ package: value, react18AutoSwitchDisabled: true })\n : handleAppSettingChange('package', value);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle: ReactNode = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n <HideInNativeApp>\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n </HideInNativeApp>\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={handleSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <OptionalDisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {appSegments.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : appKey}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={handleAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={selectedPackage}\n onChange={handleAppVersionChange}\n />\n </SettingsAccordion>\n <ErrorBoundary ErrorView={AppSettingsErrorView} openIntercom={openIntercom}>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={handleAppSettingChange}\n onSettingsChange={handleAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AppSettingsErrorView","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","TypedAssetEditor","OptionalDisabledSettingsMessage","DisabledSettingsMessage","ASSET_EDITOR_TYPES_BY_SEGMENT","SEGMENT_TO_ASSET_TYPE","DEFAULT_APP_SETTINGS_COMPONENT","AppSettingsDialog","_ref","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","_ref$AppSettingsCompo","AppSettingsComponent","app","appData","appName","currentUser","_ref$disableAppAssetS","disableAppAssetSelection","isMultiRig","_ref$isSettingsDialog","isSettingsDialogHidden","layoutEnvironment","onAppRemove","_ref$onCloneDashboard","onCloneDashboard","noop","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","initialSegment","getAppSegment","_useState","useState","SEGMENTS","DRILLING","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","_useState8","_useState7","validationError","setValidationError","_app$settings","_app$package","settings","cloneDeep","settingsPackage","package","undefined","packageVersion","version","_objectSpread","_useState10","_useState9","appSettings","setAppSettings","defaultRigId","useRef","platformAppSettingsRef","customAppSettingsRef","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","appSegments","Array","isArray","segment","filter","hasSegmentSelector","length","isCompletionSegment","COMPLETION","assetEditorAppType","isAssetPage","type","isCLIApp","DEV_CENTER_CLI_APP_ID","isSustainabilityApp","getIsSustainabilityApp","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","AssetEditorComponent","appKey","app_key","selectedPackage","styles","useStyles","isCompletionApp","handleAppSettingChange","name","value","prevSettings","_defineProperty","handleAppSettingsChange","newSettings","useEffect","debounce","debouncedSetIsMounted","modalTitle","_jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","concat","HideInNativeApp","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","_assetEditorAppType$p","_assetEditorAppType$p2","_assetEditorAppType$p3","_assetEditorAppType$p4","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","event","nextSegment","String","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appType","defaultValue","secondaryDefaultValue","well","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","_appPackage","isUserChange","isReact18Host","react18AutoSwitchDisabled","accordion","onSettingChange"],"mappings":"k7SAsCO,IAAMA,EAAY,iBAInBC,EAAuB,WAAH,OAAS,IAAI,EAsEjCC,EAAsBC,EAAuBC,GAG7CC,EAAmBD,EACnBE,EAAkCC,EAIlCC,EAAoEC,EAEpEC,EAA2E,WAAH,OAAS,IAAI,EAErFC,EAAgD,SAgBhDC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAP,EAfJQ,qBAAAA,eAAuBV,EAA8BS,GACrDE,KAAAA,IACAC,KAAAA,QACAC,KAAAA,QACAC,KAAAA,YAAWC,GAAAb,EACXc,yBAAAA,gBAAgCD,GAChCE,KAAAA,WAAUC,GAAAhB,EACViB,uBAAAA,gBAA8BD,GAC9BE,KAAAA,kBACAC,KAAAA,YAAWC,GAAApB,EACXqB,iBAAAA,eAAmBC,EAAIF,GACvBG,KAAAA,iBACAC,KAAAA,aACAC,KAAAA,MACAC,KAAAA,wBAEMC,GAAiBC,EAAcnB,IAErCoB,GAAkDC,EACtB,iBAAnBH,GAA8BA,GAAiBI,EAASC,UAChEC,GAAAC,EAAAL,GAAA,GAFMM,GAAiBF,GAAA,GAAEG,GAAoBH,GAAA,GAGZH,GAAAA,GAAS,GAAMO,GAAAH,EAAAI,GAAA,GAA1CC,GAASF,GAAA,GAAEG,GAAYH,GAAA,GACgCP,GAAAA,GAAS,GAAKW,GAAAP,EAAAQ,GAAA,GAArEC,GAAuBF,GAAA,GAAEG,GAA0BH,GAAA,GACZX,GAAAA,EAAS,IAAGe,GAAAX,EAAAY,GAAA,GAAnDC,GAAeF,GAAA,GAAEG,GAAkBH,GAAA,GACJf,GAAAA,GAAsB,WAAM,IAAAmB,EAAAC,EAC1DC,EAAwBC,EAAsB,QAAZ3C,EAAAA,GAAI0C,gBAAQ,IAAAF,EAAAA,EAAI,CAAE,GACpDI,EAA8C,iBAArBF,EAASG,QAAuBH,EAASG,aAAUC,EAC5EC,EAC4B,yBAAhCN,EAAOzC,GAAI6C,4BAAJJ,EAAaO,SAAuBhD,GAAI6C,QAAQG,aAAUF,EAEnE,OAAAG,EAAAA,EAAA,CAAA,EACKP,GAAQ,CAAA,EAAA,CACXG,QAASD,GAAmBG,GAEhC,IAAEG,GAAAzB,EAAA0B,GAAA,GAVKC,GAAWF,GAAA,GAAEG,GAAcH,GAAA,GAc5BI,GAAeC,EAA2CvC,IAC1DwC,GAAyBD,EAA8B,MACvDE,GAAuBF,EAA8B,MAE3DG,GAAwEC,EAAe,CACrFC,EAAYC,sBAAsB7D,GAAIA,IAAI8D,MAC1CC,GAAAtC,EAAAiC,GAAA,GAAA,GAFeM,MAARC,OAAqCC,MAATC,QAI/BC,GAAcC,MAAMC,QAAQtE,GAAIuE,SAClCvE,GAAIuE,QAAQC,QAAO,SAACD,GAAO,MAA2C,iBAAZA,CAAoB,IAC9E,GACEE,GAAqBL,GAAYM,OAAS,EAC1CC,GAAsBjD,KAAsBJ,EAASsD,WACrDC,GAAqB1F,EAA8BuC,IACnDoD,GAA0C,WAA5BrE,cAAiB,EAAjBA,GAAmBsE,MACjCC,GAAWhF,GAAI8D,KAAOmB,EACtBC,GAAsBC,EAAuBnF,UAAA,QAAAA,EAAAA,GAAKA,WAAL,IAAAR,OAAAQ,EAAAR,EAAUsE,IAEvDsB,KACH/E,IACAgF,GACA/E,IACCwE,IAAeH,IACbW,IAAyBD,IAAyB7E,MAA4BE,GAE9E6E,GACJrB,IACAF,IACAwB,QAAQ,QAAAhC,EAAAA,GAAuBiC,eAAvB,IAAAhG,OAAA,EAAAA,EAAgCiG,cACpCC,GAAuBH,QAAoC,QAA5B/B,EAAAA,GAAqBgC,eAAO,IAAA/F,OAAA,EAA5BA,EAA8BgG,cAC7DE,GAAsBL,IAA0BI,GAEhDE,GAAuBf,GAAcjG,EAAsBG,EAC3D8G,GAAoC,iBAApB9F,GAAIA,IAAI+F,QAAuB/F,GAAIA,IAAI+F,QAAU,KACjEC,GAAiD,iBAAxB5C,GAAYP,QAAuBO,GAAYP,aAAUC,EAElFmD,GAASC,EAAU,CACvBC,gBAAiBxB,GACjBO,oBAAAA,GACAU,oBAAAA,GACAN,sBAAAA,KAmBIc,GAAyB,SAACC,EAAcC,GAAc,OAC1DjD,IAAe,SAAAkD,GAAY,OAAAtD,EAAAA,EAAA,CAAA,EACtBsD,GAAY,GAAAC,EAAA,CAAA,EACdH,EAAOC,GAAK,GACZ,EAECG,GAA0B,SAACC,GAAwB,OACvDrD,IAAe,SAAAkD,GAAY,OAAUA,EAAAA,EAAAA,CAAAA,EAAAA,GAAiBG,EAAW,GAAI,EA8BvEC,GAAU,WACHzE,IAAyBC,IAA2B,EAC3D,GAAG,CAACD,KAEJyE,GAAU,WACsBC,EAAS7E,GAAc,IACrD8E,EAAsB,EACvB,GAAE,IAEH,IAAMC,GACJC,EAAA,MAAA,CAAKC,UAAWf,GAAOgB,oBAAoBC,SAAA,CACzCC,EAACC,EAAO,CACNJ,UAAWf,GAAOoB,QAClB9C,QAAS,CAAC7C,IACV4F,QAAStH,UAAA,QAAAA,EAAAA,GAAKA,WAAL,IAAAL,GAAc,QAAdC,EAAAD,EAAU4H,YAAI,IAAA3H,OAAdI,EAAAJ,EAAgB4H,IACzBC,OAAQ,GACRC,MAAO,KAETX,EAAA,MAAA,CAAAG,SACE,CAAAC,EAAA,MAAA,CAAAD,SAAA,GAAAS,OAASzH,GAAO,eAChBiH,EAACS,EAAe,CAAAV,SACdH,EAAA,MAAA,CACE,cAAA,GAAAY,OAAgBhJ,EAAyB,iBACzCqI,UAAWf,GAAO4B,eAClBC,QAAS,WAAA,IAAAC,EAnPEC,EAmPF,OAAMC,OAAOC,MAnPXF,EAmP8BhI,UAAA,UAAAA,GAAKA,WAAL,IAAA+H,SAAAA,EAAUjE,GAnPN,kBAAA6D,OAA+BK,IAmPpB,OAAQ,EAAAd,SAAA,CAAA,oBAE/CC,EAACgB,EAAS,CAACnB,UAAWf,GAAOmC,uBAOlDC,GACJtB,EAAA,MAAA,CAAKC,UAAWf,GAAOoC,aAAanB,SACjC5B,CAAAA,IAAyB6B,EAACmB,EAAe,CAACpI,QAASA,GAASQ,YAAaA,KAC1EqG,EAAA,MAAA,CAAAG,SAAA,CACEC,EAACoB,EAAM,CACL,cAAA,GAAAZ,OAAgBhJ,EAAmB,WACnC6J,UAAU,YACVV,QAAS7G,GAAwBiG,SAAA,WAIlC1G,IACC2G,EAACoB,EAAM,CAACC,UAAU,UAAUV,QAAS,WAAA,OAAMlH,IAAmB,EAAAsG,SAAA,oBAI9D1G,IACA2G,EAACoB,EAAM,CACL,cAAA,GAAAZ,OAAgBhJ,EAAiB,SACjCqI,UAAWf,GAAOwC,WAClBD,UAAU,UACVV,QAlFS,WACjB,GAAK1E,GAAYP,SAAYmC,GAA7B,CAKA,GAAII,KAA2BN,GAAa,CAAA,IAAA4D,EAAAC,EAAAC,EAAAC,EACpCC,EAAajE,UAAA,QAAAA,EAAAA,GAAoBkE,oBAApB,IAAAL,GAA2C,QAA3CC,EAAAD,EAAkCM,iBAAS,IAAAL,OAA3C9D,EAAA8D,EAA6C7E,GAC1DmF,EAAepE,UAAA,QAAAA,EAAAA,GAAoBkE,oBAApB,IAAAH,GAA2C,QAA3CC,EAAAD,EAAkCI,iBAAS,IAAAH,OAA3ChE,EAAAgE,EAA6CK,MAElE,GAAIJ,IAAe1F,GAAY0F,GAE7B,YADAvG,GAAkB,iBAAAoF,OAAkBsB,GAGxC,CAEAnI,GAAiBsC,IACjB+F,EAAwB,sBACxBlI,IAdA,MAFEsB,GAAmB,8BAgFO2E,SAAA,eAS9B,OACEC,EAACiC,EAAK,CACJC,QAAShB,GACTiB,mBAAoBrD,GAAOsD,UAC3BC,0BAA2BvD,GAAOwD,eAClCC,oBAAqBzD,GAAOa,WAC5B6C,QAAS1I,GACTiH,MAAI,EACJ0B,MAAO9C,GAAWI,SAElBH,EAAC8C,EAAa,CAACC,UAAWC,EAAuBhJ,aAAcA,GAAamG,SAAA,CAC1EC,EAAC6C,EAAkB,CACjB9B,OAAQ5F,GACR2H,cAAc,EACdL,MAAM,oBACNM,KAAM5H,GACN6H,SAAU,WAAA,OAAM5H,GAAmB,GAAI,EACvC6H,QAAS,CAAEC,aAAcpE,GAAOqE,oBAEjC9J,IAA0B2G,EAAClI,EAA+B,CAAA,IACzDuB,IACAsB,KACC6D,KACAJ,IACC4B,EAACoD,EAAU,CAACC,MAAOD,EAAWE,OAAOC,kBAAmBd,MAAM,qBAEhEpJ,IACAuG,EAAA4D,EAAA,CAAAzD,SAAA,CACEH,EAAC6D,EAAiB,CAChBC,iBAAe,EACf7D,UAAWf,GAAO6E,eAClBC,oBAAqBvH,GACrBoC,oBAAqBA,GACrBoF,QAAQ,QAAO9D,SAEdzC,CAAAA,IACCsC,EAACkE,EAAW,CAACjE,UAAWf,GAAOiF,gBAAgBhE,SAAA,CAC7CC,EAACgE,EAAU,CAAAjE,SAAA,YACXC,EAACiE,EAAM,CAAC9E,MAAO5E,GAAmB2J,SA1JM,SAAAC,GACtD,IAAMC,EAAcC,OAAOF,EAAMG,OAAOnF,OAExChD,GAAamC,QAAU,KACvBtD,IAA2B,GAE3BR,GAAqB4J,GACrBlI,GAAcJ,EAAAA,EAAA,CACZJ,QAASO,GAAYP,QACrB0B,QAASgH,GAENG,EAAUC,EAAMC,EAAa,OAAO,WAAA,OAAM,SAAK,CAAA,EAAA,CAClDC,OAAQ,SA8IuE3E,SAChE9C,GAAY0H,KAAI,SAAAC,GAAW,OAC1B5E,EAAC6E,EAAQ,CACPhF,UAAWf,GAAOgG,gBAElB3F,MAAOyF,EAAY7E,SAElB6E,GAHIA,WASd3G,IAA0BlD,IACzBiF,EAACtB,GAAoB,CACnBC,OAAQd,GAAW,KAAOc,GAC1BoG,QAASrH,GACTsH,aAAc7I,GAAamC,QAC3B2G,wBAAwBnM,UAAa,QAANJ,GAAPI,GAASoM,YAAI,IAAAxM,QAAN,EAAPA,GAAeiE,IACvCwI,eAAa,EACbC,WAAYzH,GACZoE,MAAM,QACNpI,iBAAkB2F,GAClB/D,SAAUU,KAGd+D,EAACqF,EAAiB,CAChBxF,UAAWf,GAAOwG,iBAClBzE,MAAOhI,GAAIA,IAAI8D,GACfwC,MAAON,GACPqF,SA1IiB,SAAC/E,EAAeoG,EAAsBC,GAAqB,OAGxFA,GAAgBC,IACZnG,GAAwB,CAAE5D,QAASyD,EAAOuG,2BAA2B,IACrEzG,GAAuB,UAAWE,EAAM,OAwIpCa,EAAC0C,EAAa,CAACC,UAAWlL,EAAsBmC,aAAcA,GAAamG,SACzEC,EAACyD,EAAiB,CAChBG,oBAAqBtH,GACrBuD,UAAWf,GAAO6G,UAClBjC,iBAAe,EACfjF,oBAAqBA,GACrBoF,QAAQ,eAAc9D,SAErBnH,IACCoH,EAACpH,GAAoB,CACnBC,IAAKA,GACLC,QAASA,GACTyC,SAAUU,GACV2J,gBAAiB3G,GACjBtF,iBAAkB2F,GAClBhG,kBAAmBA,GACnBN,YAAaA,gBAUjC"}
1
+ {"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport type { SelectProps } from '@material-ui/core/Select';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport type {\n AppDataEntry,\n DevCenterAppResource,\n DevCenterCurrentUser,\n LayoutEnvironment,\n} from '../../types';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor, { AssetEditorAppType } from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\nimport { HideInNativeApp } from '~/componentsV2/HideInNativeApp';\n// [REACT-18-MIGRATION-TAG] PLT-3099\nimport { isReact18Host } from '~/componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = (appId: number | string | undefined): string => `/app-store/app/${appId}`;\n\nconst AppSettingsErrorView = () => null;\n\nexport type AppSettings = {\n package?: string | null;\n padId?: number | string | null;\n segment?: string;\n} & Record<string, unknown>;\n\nexport type AppSettingsComponentProps = {\n app: DevCenterAppResource;\n appData: AppDataEntry;\n currentUser: DevCenterCurrentUser;\n layoutEnvironment?: LayoutEnvironment | null;\n onSettingChange: (name: string, value: unknown) => void;\n onSettingsChange: (settings: AppSettings) => void;\n settings: AppSettings;\n};\n\nexport type AppSettingsDialogProps = {\n AppSettingsComponent?: ComponentType<AppSettingsComponentProps> | null;\n app: DevCenterAppResource;\n appData: AppDataEntry;\n appName: string;\n currentUser: DevCenterCurrentUser;\n disableAppAssetSelection?: boolean;\n isMultiRig: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onSettingsChange: (settings: AppSettings) => void;\n openIntercom?: () => void;\n rigId?: number | string | null;\n toggleAppSettingsDialog: () => void;\n};\n\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\n/*\n * AS-KEEP — DisabledSettingsMessage is still JavaScript and declares a required\n * onCloneDashboard callback, although its rendering supports an omitted callback.\n * Remove this assertion when that component is migrated to TypeScript.\n */\nconst OptionalDisabledSettingsMessage = DisabledSettingsMessage as ComponentType<{\n onCloneDashboard?: () => void;\n}>;\n\nconst ASSET_EDITOR_TYPES_BY_SEGMENT: Partial<Record<string, AssetEditorAppType>> =\n SEGMENT_TO_ASSET_TYPE;\n\nconst DEFAULT_APP_SETTINGS_COMPONENT: ComponentType<AppSettingsComponentProps> = () => null;\n\nconst AppSettingsDialog: FC<AppSettingsDialogProps> = ({\n AppSettingsComponent = DEFAULT_APP_SETTINGS_COMPONENT,\n app,\n appData,\n appName,\n currentUser,\n disableAppAssetSelection = false,\n isMultiRig,\n isSettingsDialogHidden = false,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard = noop,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) => {\n const initialSegment = getAppSegment(app);\n\n const [appSegmentSetting, setAppSegmentSetting] = useState<string>(\n typeof initialSegment === 'string' ? initialSegment : SEGMENTS.DRILLING\n );\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [appSettings, setAppSettings] = useState<AppSettings>(() => {\n const settings: AppSettings = cloneDeep(app.settings ?? {});\n const settingsPackage = typeof settings.package === 'string' ? settings.package : undefined;\n const packageVersion =\n typeof app.package?.version === 'string' ? app.package.version : undefined;\n\n return {\n ...settings,\n package: settingsPackage || packageVersion,\n };\n });\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef<number | string | null | undefined>(rigId);\n const platformAppSettingsRef = useRef<HTMLDivElement | null>(null);\n const customAppSettingsRef = useRef<HTMLDivElement | null>(null);\n\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const appSegments = Array.isArray(app.segment)\n ? app.segment.filter((segment): segment is string => typeof segment === 'string')\n : [];\n const hasSegmentSelector = appSegments.length > 1;\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = ASSET_EDITOR_TYPES_BY_SEGMENT[appSegmentSetting];\n const isAssetPage = layoutEnvironment?.type === 'asset';\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const isAssetSelectorVisible =\n !disableAppAssetSelection &&\n !isInsideNewMobileApp &&\n !isMultiRig &&\n !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && !!onAppRemove;\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n const appKey = typeof app.app.app_key === 'string' ? app.app.app_key : null;\n const selectedPackage = typeof appSettings.package === 'string' ? appSettings.package : undefined;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const handleChangeAppSegment: SelectProps['onChange'] = event => {\n const nextSegment = String(event.target.value);\n\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const handleAppSettingChange = (name: string, value: unknown) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const handleAppSettingsChange = (newSettings: AppSettings) =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const handleSave = () => {\n if (!appSettings.package && !isCLIApp) {\n setValidationError('Please select app version');\n return;\n }\n\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset?.assetType?.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset?.assetType?.label;\n\n if (appTypeKey && !appSettings[appTypeKey]) {\n setValidationError(`Please select ${appTypeLabel}`);\n return;\n }\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n toggleAppSettingsDialog();\n };\n\n const handleAppVersionChange = (value: string, _appPackage: unknown, isUserChange: boolean) =>\n // [REACT-18-MIGRATION-TAG] PLT-3099: a genuine user pick on a React-18 host opts the app out\n // of the auto-switch; the auto-preselect must not (isUserChange).\n isUserChange && isReact18Host()\n ? handleAppSettingsChange({ package: value, react18AutoSwitchDisabled: true })\n : handleAppSettingChange('package', value);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle: ReactNode = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n <HideInNativeApp>\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n </HideInNativeApp>\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={handleSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <OptionalDisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {appSegments.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && assetEditorAppType && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : appKey}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={handleAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={selectedPackage}\n onChange={handleAppVersionChange}\n />\n </SettingsAccordion>\n <ErrorBoundary ErrorView={AppSettingsErrorView} openIntercom={openIntercom}>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={handleAppSettingChange}\n onSettingsChange={handleAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AppSettingsErrorView","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","OptionalDisabledSettingsMessage","DisabledSettingsMessage","ASSET_EDITOR_TYPES_BY_SEGMENT","SEGMENT_TO_ASSET_TYPE","DEFAULT_APP_SETTINGS_COMPONENT","AppSettingsDialog","_ref","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","_ref$AppSettingsCompo","AppSettingsComponent","app","appData","appName","currentUser","_ref$disableAppAssetS","disableAppAssetSelection","isMultiRig","_ref$isSettingsDialog","isSettingsDialogHidden","layoutEnvironment","onAppRemove","_ref$onCloneDashboard","onCloneDashboard","noop","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","initialSegment","getAppSegment","_useState","useState","SEGMENTS","DRILLING","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","_useState8","_useState7","validationError","setValidationError","_app$settings","_app$package","settings","cloneDeep","settingsPackage","package","undefined","packageVersion","version","_objectSpread","_useState10","_useState9","appSettings","setAppSettings","defaultRigId","useRef","platformAppSettingsRef","customAppSettingsRef","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","appSegments","Array","isArray","segment","filter","hasSegmentSelector","length","isCompletionSegment","COMPLETION","assetEditorAppType","isAssetPage","type","isCLIApp","DEV_CENTER_CLI_APP_ID","isSustainabilityApp","getIsSustainabilityApp","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","AssetEditorComponent","appKey","app_key","selectedPackage","styles","useStyles","isCompletionApp","handleAppSettingChange","name","value","prevSettings","_defineProperty","handleAppSettingsChange","newSettings","useEffect","debounce","debouncedSetIsMounted","modalTitle","_jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","concat","HideInNativeApp","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","_assetEditorAppType$p","_assetEditorAppType$p2","_assetEditorAppType$p3","_assetEditorAppType$p4","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","event","nextSegment","String","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appType","defaultValue","secondaryDefaultValue","well","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","_appPackage","isUserChange","isReact18Host","react18AutoSwitchDisabled","accordion","onSettingChange"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalLink.d.ts","sourceRoot":"","sources":["../../../../../src/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAOnC,wBAAgB,aAAa,CAAC,KAAK,KAAA,+BA0ClC;yBA1Ce,aAAa"}
1
+ {"version":3,"file":"UniversalLink.d.ts","sourceRoot":"","sources":["../../../../../src/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAOnC,wBAAgB,aAAa,CAAC,KAAK,KAAA,+BAmDlC;yBAnDe,aAAa"}
@@ -1,2 +1,2 @@
1
- import r from"classnames";import{Link as e}from"react-router-dom";import t from"prop-types";import{noop as o}from"lodash";import{useDevCenterRouter as i}from"../effects/useDevCenterRouter.js";import n from"./UniversalLink.css.js";import{jsx as a}from"react/jsx-runtime";function s(t){var o=t.href,s=void 0===o?null:o,d=t.children,m=t.className,c=void 0===m?null:m,p=t["data-testid"],f=void 0===p?"UniversalLink":p,u=t.onClick,h=void 0===u?l:u,v=i();return v?a("a",{href:s||null,children:a("button",{"data-testid":f,tabIndex:"0",role:"link",className:r(n.buttonLink,c),onClick:function(r){s&&(r.stopPropagation(),h(r),r.metaKey||r.ctrlKey?window.open(s,"_blank"):v.push(s))},children:d})}):a(e,{"data-testid":f,to:s,className:c,children:d})}s.propTypes={href:t.any,children:t.node.isRequired,className:t.string,onClick:t.func,"data-testid":t.string};var l=o;export{s as UniversalLink};
1
+ import e from"classnames";import{Link as t}from"react-router-dom";import r from"prop-types";import{noop as i}from"lodash";import{useDevCenterRouter as o}from"../effects/useDevCenterRouter.js";import n from"./UniversalLink.css.js";import{jsx as a}from"react/jsx-runtime";function s(r){var i=r.href,s=void 0===i?null:i,d=r.children,c=r.className,m=void 0===c?null:c,p=r["data-testid"],f=void 0===p?"UniversalLink":p,u=r.onClick,h=void 0===u?l:u,v=o();return v?a("a",{href:s||null,children:a("button",{"data-testid":f,tabIndex:"0",role:"link",className:e(n.buttonLink,m),onClick:function(e){s&&(e.stopPropagation(),h(e),e.metaKey||e.ctrlKey?window.open(s,"_blank"):v.push(s))},children:d})}):s?a(t,{"data-testid":f,to:s,className:m,children:d}):a("span",{"data-testid":f,className:m,children:d})}s.propTypes={href:r.any,children:r.node.isRequired,className:r.string,onClick:r.func,"data-testid":r.string};var l=i;export{s as UniversalLink};
2
2
  //# sourceMappingURL=UniversalLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalLink.js","sources":["../../../../../src/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js"],"sourcesContent":["import classNames from 'classnames';\nimport { Link as ReactRouterLink } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { noop } from 'lodash';\n\nimport { useDevCenterRouter } from '../effects/useDevCenterRouter';\n\nimport styles from './UniversalLink.css';\n\nexport function UniversalLink(props) {\n const {\n href = null,\n children,\n className = null,\n 'data-testid': dataTestId = 'UniversalLink',\n onClick = DEFAULT_UNIVERSAL_LINK_ON_CLICK,\n } = props;\n const devCenterRouter = useDevCenterRouter();\n\n if (devCenterRouter) {\n return (\n // NOTE: \"a\" element is needed to drag chip to tab bar while clicks are handled by button onClick handler\n <a href={href || null}>\n <button\n data-testid={dataTestId}\n tabIndex=\"0\"\n role=\"link\"\n className={classNames(styles.buttonLink, className)}\n onClick={e => {\n if (href) {\n e.stopPropagation();\n onClick(e);\n if (e.metaKey || e.ctrlKey) {\n window.open(href, '_blank');\n } else {\n devCenterRouter.push(href);\n }\n }\n }}\n >\n {children}\n </button>\n </a>\n );\n }\n\n return (\n <ReactRouterLink data-testid={dataTestId} to={href} className={className}>\n {children}\n </ReactRouterLink>\n );\n}\n\nUniversalLink.propTypes = {\n href: PropTypes.any,\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n onClick: PropTypes.func,\n 'data-testid': PropTypes.string,\n};\n\nconst DEFAULT_UNIVERSAL_LINK_ON_CLICK = noop;\n"],"names":["UniversalLink","props","href","_props$href","children","_props$className","className","_props$dataTestid","dataTestId","_props$onClick","onClick","DEFAULT_UNIVERSAL_LINK_ON_CLICK","devCenterRouter","useDevCenterRouter","_jsx","tabIndex","role","classNames","styles","buttonLink","e","stopPropagation","metaKey","ctrlKey","window","open","push","ReactRouterLink","to","propTypes","PropTypes","any","node","isRequired","string","func","noop"],"mappings":"8QASO,SAASA,EAAcC,GAC5B,IAMIA,EAAAA,EALFC,KAAAA,aAAO,KAAIC,EACXC,EAIEH,EAJFG,SAAQC,EAINJ,EAHFK,UAAAA,aAAY,KAAID,EAAAE,EAGdN,EAFF,eAAeO,aAAa,gBAAeD,EAAAE,EAEzCR,EADFS,QAAAA,aAAUC,EAA+BF,EAErCG,EAAkBC,IAExB,OAAID,EAGAE,EAAA,IAAA,CAAGZ,KAAMA,GAAQ,KAAKE,SACpBU,EAAA,SAAA,CACE,cAAaN,EACbO,SAAS,IACTC,KAAK,OACLV,UAAWW,EAAWC,EAAOC,WAAYb,GACzCI,QAAS,SAAAU,GACHlB,IACFkB,EAAEC,kBACFX,EAAQU,GACJA,EAAEE,SAAWF,EAAEG,QACjBC,OAAOC,KAAKvB,EAAM,UAElBU,EAAgBc,KAAKxB,GAGzB,EAAAE,SAEDA,MAOPU,EAACa,EAAe,CAAC,cAAanB,EAAYoB,GAAI1B,EAAMI,UAAWA,EAAUF,SACtEA,GAGP,CAEAJ,EAAc6B,UAAY,CACxB3B,KAAM4B,EAAUC,IAChB3B,SAAU0B,EAAUE,KAAKC,WACzB3B,UAAWwB,EAAUI,OACrBxB,QAASoB,EAAUK,KACnB,cAAeL,EAAUI,QAG3B,IAAMvB,EAAkCyB"}
1
+ {"version":3,"file":"UniversalLink.js","sources":["../../../../../src/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js"],"sourcesContent":["import classNames from 'classnames';\nimport { Link as ReactRouterLink } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { noop } from 'lodash';\n\nimport { useDevCenterRouter } from '../effects/useDevCenterRouter';\n\nimport styles from './UniversalLink.css';\n\nexport function UniversalLink(props) {\n const {\n href = null,\n children,\n className = null,\n 'data-testid': dataTestId = 'UniversalLink',\n onClick = DEFAULT_UNIVERSAL_LINK_ON_CLICK,\n } = props;\n const devCenterRouter = useDevCenterRouter();\n\n if (devCenterRouter) {\n return (\n // NOTE: \"a\" element is needed to drag chip to tab bar while clicks are handled by button onClick handler\n <a href={href || null}>\n <button\n data-testid={dataTestId}\n tabIndex=\"0\"\n role=\"link\"\n className={classNames(styles.buttonLink, className)}\n onClick={e => {\n if (href) {\n e.stopPropagation();\n onClick(e);\n if (e.metaKey || e.ctrlKey) {\n window.open(href, '_blank');\n } else {\n devCenterRouter.push(href);\n }\n }\n }}\n >\n {children}\n </button>\n </a>\n );\n }\n\n // react-router's Link pushes `to` verbatim on click, so a null one throws there\n if (!href) {\n return (\n <span data-testid={dataTestId} className={className}>\n {children}\n </span>\n );\n }\n\n return (\n <ReactRouterLink data-testid={dataTestId} to={href} className={className}>\n {children}\n </ReactRouterLink>\n );\n}\n\nUniversalLink.propTypes = {\n href: PropTypes.any,\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n onClick: PropTypes.func,\n 'data-testid': PropTypes.string,\n};\n\nconst DEFAULT_UNIVERSAL_LINK_ON_CLICK = noop;\n"],"names":["UniversalLink","props","href","_props$href","children","_props$className","className","_props$dataTestid","dataTestId","_props$onClick","onClick","DEFAULT_UNIVERSAL_LINK_ON_CLICK","devCenterRouter","useDevCenterRouter","_jsx","tabIndex","role","classNames","styles","buttonLink","e","stopPropagation","metaKey","ctrlKey","window","open","push","ReactRouterLink","to","propTypes","PropTypes","any","node","isRequired","string","func","noop"],"mappings":"8QASO,SAASA,EAAcC,GAC5B,IAMIA,EAAAA,EALFC,KAAAA,aAAO,KAAIC,EACXC,EAIEH,EAJFG,SAAQC,EAINJ,EAHFK,UAAAA,aAAY,KAAID,EAAAE,EAGdN,EAFF,eAAeO,aAAa,gBAAeD,EAAAE,EAEzCR,EADFS,QAAAA,aAAUC,EAA+BF,EAErCG,EAAkBC,IAExB,OAAID,EAGAE,EAAA,IAAA,CAAGZ,KAAMA,GAAQ,KAAKE,SACpBU,EAAA,SAAA,CACE,cAAaN,EACbO,SAAS,IACTC,KAAK,OACLV,UAAWW,EAAWC,EAAOC,WAAYb,GACzCI,QAAS,SAAAU,GACHlB,IACFkB,EAAEC,kBACFX,EAAQU,GACJA,EAAEE,SAAWF,EAAEG,QACjBC,OAAOC,KAAKvB,EAAM,UAElBU,EAAgBc,KAAKxB,GAGzB,EAAAE,SAEDA,MAOJF,EASHY,EAACa,EAAe,CAAC,cAAanB,EAAYoB,GAAI1B,EAAMI,UAAWA,EAAUF,SACtEA,IARDU,EAAA,OAAA,CAAM,cAAaN,EAAYF,UAAWA,EAAUF,SACjDA,GAUT,CAEAJ,EAAc6B,UAAY,CACxB3B,KAAM4B,EAAUC,IAChB3B,SAAU0B,EAAUE,KAAKC,WACzB3B,UAAWwB,EAAUI,OACrBxB,QAASoB,EAAUK,KACnB,cAAeL,EAAUI,QAG3B,IAAMvB,EAAkCyB"}
@@ -106,10 +106,10 @@ export declare const BHA_COMPONENT_TYPES: ({
106
106
  })[];
107
107
  })[];
108
108
  export declare const BHA_GENERAL_FIELD_TYPES: ({
109
+ unit?: undefined;
109
110
  name: string;
110
111
  label: string;
111
112
  cond?: undefined;
112
- unit?: undefined;
113
113
  col_size?: undefined;
114
114
  family?: undefined;
115
115
  } | {
@@ -134,8 +134,8 @@ export declare const BHA_GENERAL_FIELD_TYPES: ({
134
134
  col_size: number;
135
135
  family?: undefined;
136
136
  } | {
137
- cond?: undefined;
138
137
  unit?: undefined;
138
+ cond?: undefined;
139
139
  name: string;
140
140
  label: string;
141
141
  col_size: number;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useCompanyMetricKey.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCompanyMetricKey.test.d.ts","sourceRoot":"","sources":["../../../../../src/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.js"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"useCompanyMetricKey.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV4/effects/useCompanyMetricKey.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAC;AAQ5C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAJlC,MAIkC,EAAE,gBAAgB,EAHpD,MAAM,EAG8C,GAFlD,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAgCjD"}
1
+ {"version":3,"file":"useCompanyMetricKey.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV4/effects/useCompanyMetricKey.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAC;AAe5C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAJlC,MAIkC,EAAE,gBAAgB,EAHpD,MAAM,EAG8C,GAFlD,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAgCjD"}
@@ -0,0 +1,2 @@
1
+ declare const loadConstants: (environment: string) => typeof import('../constants');
2
+ //# sourceMappingURL=constants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV5/__tests__/constants.test.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,aAAa,gBAAiB,MAAM,KAAG,cAAc,cAAc,CAoBxE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PeriodFilterSelect.js","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.tsx"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { OBJECTIVE_PERIOD_LIST } from '../../../../constants';\nimport { useIsAllWellsLoading } from '../../../../hooks/useIsAllWellsLoading';\nimport type { PeriodType } from '../../../../stores/filter-store/types';\n\nimport { AutocompleteNext, TextInputNext } from '~/componentsV2';\n\ntype PeriodOption = {\n id: string;\n title: string;\n};\n\ntype PeriodFilterSelectProps = {\n value: PeriodType | null;\n onChange: (value: PeriodType | null) => void;\n testId?: string;\n dropdownClassName?: string;\n};\n\nexport const PeriodFilterSelect = ({\n value,\n onChange,\n testId,\n dropdownClassName,\n}: PeriodFilterSelectProps) => {\n const disabled = useIsAllWellsLoading();\n const options: PeriodOption[] = OBJECTIVE_PERIOD_LIST.map(item => ({\n id: item.value,\n title: item.label,\n }));\n\n const handleChange = useCallback(\n (selectedOption: PeriodOption | undefined) => {\n if (!selectedOption) {\n return;\n }\n\n if (selectedOption.id === 'all') {\n onChange(null);\n } else {\n onChange(selectedOption.id as PeriodType);\n }\n },\n [onChange]\n );\n\n return (\n <AutocompleteNext\n label={\n <TextInputNext.Label infoTooltip=\"Based on the latest data received from the drilling stream\">\n Date\n </TextInputNext.Label>\n }\n options={options}\n value={disabled ? undefined : value ?? 'all'}\n onChange={handleChange}\n clearable={false}\n testId={testId}\n dropdownClassName={dropdownClassName}\n disabled={disabled}\n placeholder={disabled ? 'All' : undefined}\n />\n );\n};\n\nPeriodFilterSelect.displayName = 'PeriodFilterSelect';\n"],"names":["PeriodFilterSelect","_ref","value","onChange","testId","dropdownClassName","disabled","useIsAllWellsLoading","options","OBJECTIVE_PERIOD_LIST","map","item","id","title","label","handleChange","useCallback","selectedOption","_jsx","AutocompleteNext","TextInputNext","Label","infoTooltip","children","undefined","clearable","placeholder","displayName"],"mappings":"6riBAoBaA,IAAAA,EAAqB,SAKHC,GAAA,IAJ7BC,IAAAA,MACAC,IAAAA,SACAC,IAAAA,OACAC,IAAAA,kBAEMC,EAAWC,IACXC,EAA0BC,EAAsBC,KAAI,SAAAC,GAAI,MAAK,CACjEC,GAAID,EAAKT,MACTW,MAAOF,EAAKG,MACb,IAEKC,EAAeC,GACnB,SAACC,GACMA,IAIqB,QAAtBA,EAAeL,GACjBT,EAAS,MAETA,EAASc,EAAeL,IAE5B,GACA,CAACT,IAGH,OACEe,EAACC,EAAgB,CACfL,MACEI,EAACE,EAAcC,MAAK,CAACC,YAAY,6DAA4DC,SAAA,SAI/Ff,QAASA,EACTN,MAAOI,OAAWkB,EAAYtB,QAAAA,EAAS,MACvCC,SAAUY,EACVU,WAAW,EACXrB,OAAQA,EACRC,kBAAmBA,EACnBC,SAAUA,EACVoB,YAAapB,EAAW,WAAQkB,GAGtC,EAEAxB,EAAmB2B,YAAc"}
1
+ {"version":3,"file":"PeriodFilterSelect.js","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.tsx"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { OBJECTIVE_PERIOD_LIST } from '../../../../constants';\nimport { useIsAllWellsLoading } from '../../../../hooks/useIsAllWellsLoading';\nimport type { PeriodType } from '../../../../stores/filter-store/types';\n\nimport { AutocompleteNext, TextInputNext } from '~/componentsV2';\n\ntype PeriodOption = {\n id: PeriodType;\n title: string;\n};\n\ntype PeriodFilterSelectProps = {\n value: PeriodType | null;\n onChange: (value: PeriodType | null) => void;\n testId?: string;\n dropdownClassName?: string;\n};\n\nexport const PeriodFilterSelect = ({\n value,\n onChange,\n testId,\n dropdownClassName,\n}: PeriodFilterSelectProps) => {\n const disabled = useIsAllWellsLoading();\n const options: PeriodOption[] = OBJECTIVE_PERIOD_LIST.map(item => ({\n id: item.value,\n title: item.label,\n }));\n\n const handleChange = useCallback(\n (selectedOption: PeriodOption | undefined) => {\n if (!selectedOption) {\n return;\n }\n\n if (selectedOption.id === 'all') {\n onChange(null);\n } else {\n onChange(selectedOption.id);\n }\n },\n [onChange]\n );\n\n return (\n <AutocompleteNext\n label={\n <TextInputNext.Label infoTooltip=\"Based on the latest data received from the drilling stream\">\n Date\n </TextInputNext.Label>\n }\n options={options}\n value={disabled ? undefined : value ?? 'all'}\n onChange={handleChange}\n clearable={false}\n testId={testId}\n dropdownClassName={dropdownClassName}\n disabled={disabled}\n placeholder={disabled ? 'All' : undefined}\n />\n );\n};\n\nPeriodFilterSelect.displayName = 'PeriodFilterSelect';\n"],"names":["PeriodFilterSelect","_ref","value","onChange","testId","dropdownClassName","disabled","useIsAllWellsLoading","options","OBJECTIVE_PERIOD_LIST","map","item","id","title","label","handleChange","useCallback","selectedOption","_jsx","AutocompleteNext","TextInputNext","Label","infoTooltip","children","undefined","clearable","placeholder","displayName"],"mappings":"6riBAoBaA,IAAAA,EAAqB,SAKHC,GAAA,IAJ7BC,IAAAA,MACAC,IAAAA,SACAC,IAAAA,OACAC,IAAAA,kBAEMC,EAAWC,IACXC,EAA0BC,EAAsBC,KAAI,SAAAC,GAAI,MAAK,CACjEC,GAAID,EAAKT,MACTW,MAAOF,EAAKG,MACb,IAEKC,EAAeC,GACnB,SAACC,GACMA,IAIqB,QAAtBA,EAAeL,GACjBT,EAAS,MAETA,EAASc,EAAeL,IAE5B,GACA,CAACT,IAGH,OACEe,EAACC,EAAgB,CACfL,MACEI,EAACE,EAAcC,MAAK,CAACC,YAAY,6DAA4DC,SAAA,SAI/Ff,QAASA,EACTN,MAAOI,OAAWkB,EAAYtB,QAAAA,EAAS,MACvCC,SAAUY,EACVU,WAAW,EACXrB,OAAQA,EACRC,kBAAmBA,EACnBC,SAAUA,EACVoB,YAAapB,EAAW,WAAQkB,GAGtC,EAEAxB,EAAmB2B,YAAc"}
@@ -7,7 +7,8 @@ type MetricsCellsProps = {
7
7
  columnsMap: ColumnsMap;
8
8
  lastCellColumn: string;
9
9
  loadingWellIds: Set<number>;
10
+ maxLines: number;
10
11
  };
11
- export declare const MetricsCells: ({ data, metricsKeys, metricsMap, borderStyle, columnsMap, lastCellColumn, loadingWellIds, }: MetricsCellsProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const MetricsCells: ({ data, metricsKeys, metricsMap, borderStyle, columnsMap, lastCellColumn, loadingWellIds, maxLines, }: MetricsCellsProps) => import("react/jsx-runtime").JSX.Element;
12
13
  export {};
13
14
  //# sourceMappingURL=MetricsCells.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsCells.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKhF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,YAAY,gGAQtB,iBAAiB,4CA8BnB,CAAC"}
1
+ {"version":3,"file":"MetricsCells.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKhF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY,0GAStB,iBAAiB,4CA+BnB,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import{get as l}from"lodash";import t from"classnames";import{TableCell as o}from"@material-ui/core";import{MetricCell as r}from"../../components/MetricCell/MetricCell.js";import{PAGE_NAME as i}from"../types.js";import m from"../../components/OffsetWellsTableRow/OffsetWellsTableRow.module.css.js";import{jsx as s,Fragment as a}from"react/jsx-runtime";var n=function(n){var d=n.data,c=n.metricsKeys,f=n.metricsMap,p=n.borderStyle,u=n.columnsMap,v=n.lastCellColumn,h=n.loadingWellIds;return s(a,{children:c.map((function(a,n){var y,b,g=f.get(a),C=g?l(d,g.key):void 0;return s(o,{"data-testid":"".concat(i,"_").concat(a),className:t(m.bodyCell,p,e({},m.lastCell,"lastMetric"===v&&n===c.length-1)),style:{minWidth:(null===(y=u.get(a))||void 0===y?void 0:y.minWidth)||0,flex:(null===(b=u.get(a))||void 0===b?void 0:b.flex)||0},children:s(r,{value:C,wellId:d.id,loadingWellIds:h,metric:g})},a)}))})};export{n as MetricsCells};
1
+ import e from"@babel/runtime/helpers/defineProperty";import{get as l}from"lodash";import t from"classnames";import{TableCell as o}from"@material-ui/core";import{MetricCell as r}from"../../components/MetricCell/MetricCell.js";import{PAGE_NAME as i}from"../types.js";import m from"../../components/OffsetWellsTableRow/OffsetWellsTableRow.module.css.js";import{jsx as s,Fragment as a}from"react/jsx-runtime";var n=function(n){var d=n.data,c=n.metricsKeys,f=n.metricsMap,p=n.borderStyle,u=n.columnsMap,v=n.lastCellColumn,h=n.loadingWellIds,y=n.maxLines;return s(a,{children:c.map((function(a,n){var b,g,x=f.get(a),C=x?l(d,x.key):void 0;return s(o,{"data-testid":"".concat(i,"_").concat(a),className:t(m.bodyCell,p,e({},m.lastCell,"lastMetric"===v&&n===c.length-1)),style:{minWidth:(null===(b=u.get(a))||void 0===b?void 0:b.minWidth)||0,flex:(null===(g=u.get(a))||void 0===g?void 0:g.flex)||0},children:s(r,{value:C,wellId:d.id,loadingWellIds:h,metric:x,maxLines:y})},a)}))})};export{n as MetricsCells};
2
2
  //# sourceMappingURL=MetricsCells.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsCells.js","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.tsx"],"sourcesContent":["import { get } from 'lodash';\nimport classNames from 'classnames';\nimport { TableCell } from '@material-ui/core';\n\nimport { MetricCell } from '../../components/MetricCell';\nimport type { WellData, MetricConfig, BorderStyle, ColumnsMap } from '../types';\nimport { PAGE_NAME } from '../types';\n\nimport styles from '../../components/OffsetWellsTableRow/OffsetWellsTableRow.module.css';\n\ntype MetricsCellsProps = {\n data: WellData;\n metricsKeys: string[];\n metricsMap: Map<string, MetricConfig>;\n borderStyle: BorderStyle;\n columnsMap: ColumnsMap;\n lastCellColumn: string;\n loadingWellIds: Set<number>;\n};\n\nexport const MetricsCells = ({\n data,\n metricsKeys,\n metricsMap,\n borderStyle,\n columnsMap,\n lastCellColumn,\n loadingWellIds,\n}: MetricsCellsProps) => (\n <>\n {metricsKeys.map((metricsKey, index) => {\n const metric = metricsMap.get(metricsKey);\n const value = metric\n ? (get(data, metric.key) as number | string | null | undefined)\n : undefined;\n\n return (\n <TableCell\n data-testid={`${PAGE_NAME}_${metricsKey}`}\n key={metricsKey}\n className={classNames(styles.bodyCell, borderStyle, {\n [styles.lastCell]: lastCellColumn === 'lastMetric' && index === metricsKeys.length - 1,\n })}\n style={{\n minWidth: columnsMap.get(metricsKey)?.minWidth || 0,\n flex: columnsMap.get(metricsKey)?.flex || 0,\n }}\n >\n <MetricCell\n value={value}\n wellId={data.id}\n loadingWellIds={loadingWellIds}\n metric={metric}\n />\n </TableCell>\n );\n })}\n </>\n);\n"],"names":["MetricsCells","_ref","data","metricsKeys","metricsMap","borderStyle","columnsMap","lastCellColumn","loadingWellIds","_jsx","_Fragment","children","map","metricsKey","index","_columnsMap$get","_columnsMap$get2","metric","get","value","key","undefined","TableCell","PAGE_NAME","className","classNames","styles","bodyCell","lastCell","length","style","minWidth","flex","MetricCell","wellId","id"],"mappings":"qZAoBaA,IAAAA,EAAe,SAAHC,GAAA,IACvBC,IAAAA,KACAC,IAAAA,YACAC,IAAAA,WACAC,IAAAA,YACAC,IAAAA,WACAC,IAAAA,eACAC,IAAAA,eAAc,OAEdC,EAAAC,EAAA,CAAAC,SACGR,EAAYS,KAAI,SAACC,EAAYC,GAAU,IAAAC,EAAAC,EAChCC,EAASb,EAAWc,IAAIL,GACxBM,EAAQF,EACTC,EAAIhB,EAAMe,EAAOG,UAClBC,EAEJ,OACEZ,EAACa,EAAS,CACR,cAAgBC,GAAAA,OAAAA,EAAaV,KAAAA,OAAAA,GAE7BW,UAAWC,EAAWC,EAAOC,SAAUtB,EACpCqB,EAAAA,GAAAA,EAAOE,SAA8B,eAAnBrB,GAAmCO,IAAUX,EAAY0B,OAAS,IAEvFC,MAAO,CACLC,UAAU,QAAAhB,EAAAT,EAAWY,IAAIL,UAAf,IAAAE,OAAA,EAAAA,EAA4BgB,WAAY,EAClDC,MAAgC,QAA1B1B,EAAAA,EAAWY,IAAIL,UAAW,IAAAG,OAAA,EAA1BA,EAA4BgB,OAAQ,GAC1CrB,SAEFF,EAACwB,EAAU,CACTd,MAAOA,EACPe,OAAQhC,EAAKiC,GACb3B,eAAgBA,EAChBS,OAAQA,KAbLJ,OAkBV"}
1
+ {"version":3,"file":"MetricsCells.js","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.tsx"],"sourcesContent":["import { get } from 'lodash';\nimport classNames from 'classnames';\nimport { TableCell } from '@material-ui/core';\n\nimport { MetricCell } from '../../components/MetricCell';\nimport type { WellData, MetricConfig, BorderStyle, ColumnsMap } from '../types';\nimport { PAGE_NAME } from '../types';\n\nimport styles from '../../components/OffsetWellsTableRow/OffsetWellsTableRow.module.css';\n\ntype MetricsCellsProps = {\n data: WellData;\n metricsKeys: string[];\n metricsMap: Map<string, MetricConfig>;\n borderStyle: BorderStyle;\n columnsMap: ColumnsMap;\n lastCellColumn: string;\n loadingWellIds: Set<number>;\n maxLines: number;\n};\n\nexport const MetricsCells = ({\n data,\n metricsKeys,\n metricsMap,\n borderStyle,\n columnsMap,\n lastCellColumn,\n loadingWellIds,\n maxLines,\n}: MetricsCellsProps) => (\n <>\n {metricsKeys.map((metricsKey, index) => {\n const metric = metricsMap.get(metricsKey);\n const value = metric\n ? (get(data, metric.key) as number | string | null | undefined)\n : undefined;\n\n return (\n <TableCell\n data-testid={`${PAGE_NAME}_${metricsKey}`}\n key={metricsKey}\n className={classNames(styles.bodyCell, borderStyle, {\n [styles.lastCell]: lastCellColumn === 'lastMetric' && index === metricsKeys.length - 1,\n })}\n style={{\n minWidth: columnsMap.get(metricsKey)?.minWidth || 0,\n flex: columnsMap.get(metricsKey)?.flex || 0,\n }}\n >\n <MetricCell\n value={value}\n wellId={data.id}\n loadingWellIds={loadingWellIds}\n metric={metric}\n maxLines={maxLines}\n />\n </TableCell>\n );\n })}\n </>\n);\n"],"names":["MetricsCells","_ref","data","metricsKeys","metricsMap","borderStyle","columnsMap","lastCellColumn","loadingWellIds","maxLines","_jsx","_Fragment","children","map","metricsKey","index","_columnsMap$get","_columnsMap$get2","metric","get","value","key","undefined","TableCell","PAGE_NAME","className","classNames","styles","bodyCell","lastCell","length","style","minWidth","flex","MetricCell","wellId","id"],"mappings":"qZAqBaA,IAAAA,EAAe,SAAHC,GAAA,IACvBC,IAAAA,KACAC,IAAAA,YACAC,IAAAA,WACAC,IAAAA,YACAC,IAAAA,WACAC,IAAAA,eACAC,IAAAA,eACAC,IAAAA,SAAQ,OAERC,EAAAC,EAAA,CAAAC,SACGT,EAAYU,KAAI,SAACC,EAAYC,GAAU,IAAAC,EAAAC,EAChCC,EAASd,EAAWe,IAAIL,GACxBM,EAAQF,EACTC,EAAIjB,EAAMgB,EAAOG,UAClBC,EAEJ,OACEZ,EAACa,EAAS,CACR,cAAgBC,GAAAA,OAAAA,EAAaV,KAAAA,OAAAA,GAE7BW,UAAWC,EAAWC,EAAOC,SAAUvB,EACpCsB,EAAAA,GAAAA,EAAOE,SAA8B,eAAnBtB,GAAmCQ,IAAUZ,EAAY2B,OAAS,IAEvFC,MAAO,CACLC,UAAU,QAAAhB,EAAAV,EAAWa,IAAIL,UAAf,IAAAE,OAAA,EAAAA,EAA4BgB,WAAY,EAClDC,MAAgC,QAA1B3B,EAAAA,EAAWa,IAAIL,UAAW,IAAAG,OAAA,EAA1BA,EAA4BgB,OAAQ,GAC1CrB,SAEFF,EAACwB,EAAU,CACTd,MAAOA,EACPe,OAAQjC,EAAKkC,GACb5B,eAAgBA,EAChBU,OAAQA,EACRT,SAAUA,KAdPK,OAmBV"}
@@ -13,8 +13,10 @@ type MetricCellProps = {
13
13
  wellId: number;
14
14
  loadingWellIds: Set<number>;
15
15
  metric: MetricConfig | undefined;
16
+ maxLines: number;
16
17
  };
17
- declare const MetricCellComponent: ({ value, wellId, loadingWellIds, metric }: MetricCellProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const TEXT_VALUE_TEST_ID = "MetricCell_text";
19
+ declare const MetricCellComponent: ({ value, wellId, loadingWellIds, metric, maxLines, }: MetricCellProps) => import("react/jsx-runtime").JSX.Element;
18
20
  export declare const MetricCell: import("react").MemoExoticComponent<typeof MetricCellComponent>;
19
21
  export {};
20
22
  //# sourceMappingURL=MetricCell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricCell.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.tsx"],"names":[],"mappings":"AAQA,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAC3E,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC,CAAC;AAmBF,QAAA,MAAM,mBAAmB,8CAA+C,eAAe,4CA+BtF,CAAC;AAEF,eAAO,MAAM,UAAU,iEAA4B,CAAC"}
1
+ {"version":3,"file":"MetricCell.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.tsx"],"names":[],"mappings":"AASA,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAC3E,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAmBpD,QAAA,MAAM,mBAAmB,yDAMtB,eAAe,4CA2CjB,CAAC;AAEF,eAAO,MAAM,UAAU,iEAA4B,CAAC"}
@@ -1,2 +1,2 @@
1
- import{memo as e}from"react";import{Typography as r}from"@material-ui/core";import t from"./MetricCell.module.css.js";import{Skeleton as i}from"../../../../../../componentsV2/Skeleton/Skeleton.js";import{convertValue as o}from"../../../../../../utils/index.js";import{jsx as a}from"react/jsx-runtime";var l=e((function(e){var l=e.value,n=e.wellId,m=e.loadingWellIds,c=e.metric;if(!c)return a(r,{variant:"body2",className:t.cellData,children:"—"});if(m.has(n)&&void 0===l)return a(i,{type:"text",width:50,height:16});if(Number.isFinite(l)||l&&"Null"!==l){var s=function(e,r){return"number"!=typeof e?e:r.customConvert?r.customConvert(e,{precision:r.precision}):r.unitType&&r.from?o(e,r.unitType,r.from,r.to):e}(l,c);return a(r,{variant:"body2",className:t.cellData,children:s})}return a(r,{variant:"body2",className:t.cellData,children:"—"})}));l.displayName="MetricCell";export{l as MetricCell};
1
+ import{memo as o}from"react";import{Typography as s}from"@material-ui/core";import t from"./MetricCell.module.css.js";import"../../../../../../componentsV2/Text/Text.js";import"../../../../../../componentsV2/Grid/Grid.js";import"../../../../../../componentsV2/Grid/Cell.js";import"@babel/runtime/helpers/defineProperty";import"classnames";import"../../../../../../componentsV2/Header/Header.scss.js";import{jsx as n}from"react/jsx-runtime";import"../../../../../../componentsV2/Button/Button.js";import"../../../../../../componentsV2/ButtonIcon/ButtonIcon.js";import"@babel/runtime/helpers/objectWithoutProperties";import"../../../../../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import"../../../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"../../../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"@babel/runtime/helpers/slicedToArray";import"uuid";import"../../../../../../componentsV2/Tooltip/Tooltip.scss.js";import"../../../../../../componentsV2/Popover/Popover.js";import"../../../../../../componentsV2/PopoverPanel/PopoverPanel.js";import"../../../../../../componentsV2/Radio/Radio.js";import"../../../../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../../../../componentsV2/Checkbox/Checkbox.js";import"@babel/runtime/helpers/toConsumableArray";import"../../../../../../componentsV2/TextInput/TextInput.js";import"../../../../../../componentsV2/TextInputNext/TextInputNext.js";import"../../../../../../componentsV2/TextArea/TextArea.js";import"../../../../../../componentsV2/Label/Label.js";import{TextEndTruncated as e}from"../../../../../../componentsV2/TextEndTruncated/TextEndTruncated.js";import"lodash";import"../../../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../../../../../componentsV2/TextLink/TextLink.js";import"../../../../../../componentsV2/Chip/Chip.js";import"../../../../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../../../../componentsV2/Avatar/Avatar.js";import"../../../../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../../../../componentsV2/Paper/Paper.js";import"../../../../../../componentsV2/ModalWindow/ModalWindow.js";import"../../../../../../componentsV2/Modal/Modal.scss.js";import"../../../../../../componentsV2/Menu/Menu.js";import"../../../../../../componentsV2/utils.js";import"@icon-park/react/es/all";import"../../../../../../icons/IconParkProvider.js";import"../../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../../icons/customIcons/icons/DragOne.js";import"../../../../../../icons/customIcons/icons/Attention.js";import"../../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../../icons/customIcons/icons/Expand.js";import"../../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../../icons/customIcons/icons/Search.js";import"../../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../../icons/customIcons/icons/Radio.js";import"../../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../../icons/customIcons/icons/Pad.js";import"../../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../../icons/customIcons/icons/Global.js";import"../../../../../../icons/customIcons/icons/Program.js";import"../../../../../../icons/customIcons/icons/Rig.js";import"../../../../../../icons/customIcons/icons/Well.js";import"../../../../../../icons/customIcons/icons/Gap.js";import"../../../../../../icons/customIcons/icons/Pin.js";import"../../../../../../icons/customIcons/icons/PinOne.js";import"../../../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../../icons/customIcons/icons/Archive.js";import"../../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../../icons/customIcons/icons/Archived.js";import"../../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../../icons/customIcons/icons/Radius.js";import"../../../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../../../icons/customIcons/icons/Company.js";import"../../../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../../../icons/customIcons/icons/Connect.js";import"../../../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../../../icons/customIcons/icons/Feed.js";import"../../../../../../icons/customIcons/icons/Prompt.js";import"../../../../../../icons/customIcons/icons/Companies.js";import"../../../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../../../icons/customIcons/icons/Key.js";import"../../../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../../../icons/customIcons/icons/MappingManual.js";import"../../../../../../icons/customIcons/icons/Mapping.js";import"../../../../../../icons/customIcons/icons/Metrics.js";import"../../../../../../icons/customIcons/icons/Drops.js";import"../../../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../../../icons/customIcons/icons/Template.js";import"../../../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../../../icons/customIcons/icons/NPT.js";import"../../../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../../../componentsV2/Hint/Hint.scss.js";import"../../../../../../componentsV2/Counter/Counter.js";import"../../../../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../../../../componentsV2/TemplatesControl/utils.js";import"../../../../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../../../../componentsV2/TemplatesControl/Store/utils.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../../componentsV2/TemplatesControl/types.js";import{convertValue as i}from"../../../../../../utils/index.js";import"../../../../../../clients/jsonApi/index.js";import"../../../../../../permissions/PermissionsContext.js";import"../../../../../../permissions/constants/index.js";import"../../../../../../permissions/withPermissionsHOC.js";import"../../../../../../permissions/ProvidePermissions.js";import"../../../../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../../../../componentsV2/Switch/Switch.js";import"../../../../../../componentsV2/Tabs/Tabs.js";import"../../../../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../../../../componentsV2/FileIcon/FileIcon.js";import"../../../../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../../../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import{Skeleton as c}from"../../../../../../componentsV2/Skeleton/Skeleton.js";import"../../../../../../utils/main.js";import"../../../../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../../../../componentsV2/Stepper/Stepper.scss.js";import"../../../../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../../../../componentsV2/ButtonText/ButtonText.js";import"../../../../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../../../../componentsV2/Accordion/Accordion.scss.js";import"../../../../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../../../../componentsV2/AppContainer/AppContainer.js";import"../../../../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../../../../componentsV2/AppFooter/AppFooter.js";import"query-string";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"../../../../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../../../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../../../../../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router-dom";import"../../../../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../../../../PadModeSelect/PadModeSelect.js";import"../../../../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../../../../constants/streamSourceType.js";import"../../../../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../../../../utils/mobileDetect.js";import"../../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"moment";import"../../../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../../../../AppIcon/AppIcon.js";import"../../../../../../utils/getSingleAsset.js";import"../../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../../../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../../../../../clients/subscriptions.v1.js";import"../../../../../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../../../../../utils/env.js";import"../../../../../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../../../../../clients/api/apiCore.js";import"../../../../../../clients/constants.js";import"../../../../../../clients/sso/auth0.js";import"../../../../../../clients/sso/oauth2.js";import"../../../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../../../../../componentsV2/AppPanel/AppPanelsContext.js";import"../../../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../../../../componentsV2/ChartAxisExtreme/ChartAxisExtreme.scss.js";import"highcharts";import"../../../../../../componentsV2/ChartAxisExtreme/ChartAxisExtremeDragTracker.js";import"../../../../../../componentsV2/Autocomplete/Autocomplete.js";import"../../../../../../componentsV2/Select/Select.js";import"../../../../../../componentsV2/AppPanel/AppPanel.js";import"../../../../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../../../../componentsV2/DatePicker/DatePicker.js";import"../../../../../../componentsV2/DragHandle/DragHandle.js";import"../../../../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../../../../componentsV2/Slider/constants.js";import"../../../../../../componentsV2/Slider/components/SliderThumb.js";import"../../../../../../componentsV2/Slider/Slider.scss.js";import"../../../../../../componentsV2/SliderAdvanced/SliderAdvanced.js";import"react-color";import"../../../../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../../../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../../../../../componentsV2/ColorPicker/ColorPicker.scss.js";import"../../../../../../componentsV2/ChartHelper/ChartHelper.scss.js";import"../../../../../../componentsV2/Hotkey/Hotkey.js";import"@tanstack/react-query";import"../../../../../../componentsV2/InterventionEventSelector/useInterventionUnitEvents.js";import"../../../../../../componentsV2/InterventionEventSelector/InterventionEventSelector.scss.js";var r="MetricCell_text",p=o((function(o){var r=o.value,p=o.wellId,m=o.loadingWellIds,a=o.metric,l=o.maxLines;if(!a)return n(s,{variant:"body2",className:t.cellData,children:"—"});if(m.has(p)&&void 0===r)return n(c,{type:"text",width:50,height:16});if(Number.isFinite(r)||r&&"Null"!==r){var j=function(o,s){return"number"!=typeof o?o:s.customConvert?s.customConvert(o,{precision:s.precision}):s.unitType&&s.from?i(o,s.unitType,s.from,s.to):o}(r,a);return"string"==typeof j?n(e,{testId:"MetricCell_text",maxLines:l,className:t.cellText,children:j}):n(s,{variant:"body2",className:t.cellData,children:j})}return n(s,{variant:"body2",className:t.cellData,children:"—"})}));p.displayName="MetricCell";export{p as MetricCell,r as TEXT_VALUE_TEST_ID};
2
2
  //# sourceMappingURL=MetricCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricCell.js","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { Typography } from '@material-ui/core';\n\nimport styles from './MetricCell.module.css';\n\nimport { Skeleton } from '~/componentsV2/Skeleton';\nimport { convertValue } from '~/utils';\n\ntype MetricConfig = {\n key: string;\n unitType?: string;\n from?: string;\n to?: string;\n precision?: number;\n customConvert?: (value: number, config: { precision?: number }) => number;\n};\n\ntype MetricCellProps = {\n value: number | string | null | undefined;\n wellId: number;\n loadingWellIds: Set<number>;\n metric: MetricConfig | undefined;\n};\n\nconst getDisplayValue = (\n value: MetricCellProps['value'],\n metric: MetricConfig\n): number | string | null | undefined => {\n if (typeof value !== 'number') return value;\n\n if (metric.customConvert) {\n return metric.customConvert(value, { precision: metric.precision });\n }\n\n if (metric.unitType && metric.from) {\n return convertValue(value, metric.unitType, metric.from, metric.to);\n }\n\n return value;\n};\n\nconst MetricCellComponent = ({ value, wellId, loadingWellIds, metric }: MetricCellProps) => {\n if (!metric) {\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n —\n </Typography>\n );\n }\n\n // Show spinner only if THIS well is loading AND has no value\n const isLoading = loadingWellIds.has(wellId);\n\n if (isLoading && value === undefined) {\n return <Skeleton type=\"text\" width={50} height={16} />;\n }\n\n if (Number.isFinite(value) || (value && value !== 'Null')) {\n const displayValue = getDisplayValue(value, metric);\n\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n {displayValue}\n </Typography>\n );\n }\n\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n —\n </Typography>\n );\n};\n\nexport const MetricCell = memo(MetricCellComponent);\n\nMetricCell.displayName = 'MetricCell';\n"],"names":["MetricCell","memo","_ref","value","wellId","loadingWellIds","metric","_jsx","Typography","variant","className","styles","cellData","children","has","undefined","Skeleton","type","width","height","Number","isFinite","displayValue","customConvert","precision","unitType","from","convertValue","to","getDisplayValue","displayName"],"mappings":"6SAwBA,IAkDaA,EAAaC,GAjCE,SAAgEC,GAAA,IAA7DC,IAAAA,MAAOC,IAAAA,OAAQC,IAAAA,eAAgBC,IAAAA,OAC5D,IAAKA,EACH,OACEC,EAACC,EAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SAAA,MAS3D,GAFkBR,EAAeS,IAAIV,SAEVW,IAAVZ,EACf,OAAOI,EAACS,EAAQ,CAACC,KAAK,OAAOC,MAAO,GAAIC,OAAQ,KAGlD,GAAIC,OAAOC,SAASlB,IAAWA,GAAmB,SAAVA,EAAmB,CACzD,IAAMmB,EAlCc,SACtBnB,EACAG,GAEA,MAAqB,iBAAVH,EAA2BA,EAElCG,EAAOiB,cACFjB,EAAOiB,cAAcpB,EAAO,CAAEqB,UAAWlB,EAAOkB,YAGrDlB,EAAOmB,UAAYnB,EAAOoB,KACrBC,EAAaxB,EAAOG,EAAOmB,SAAUnB,EAAOoB,KAAMpB,EAAOsB,IAG3DzB,CACT,CAmByB0B,CAAgB1B,EAAOG,GAE5C,OACEC,EAACC,EAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SACpDS,GAGP,CAEA,OACEf,EAACC,EAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SAAA,KAI3D,IAIAb,EAAW8B,YAAc"}
1
+ {"version":3,"file":"MetricCell.js","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { Typography } from '@material-ui/core';\n\nimport styles from './MetricCell.module.css';\n\nimport { TextEndTruncated } from '~/componentsV2';\nimport { Skeleton } from '~/componentsV2/Skeleton';\nimport { convertValue } from '~/utils';\n\ntype MetricConfig = {\n key: string;\n unitType?: string;\n from?: string;\n to?: string;\n precision?: number;\n customConvert?: (value: number, config: { precision?: number }) => number;\n};\n\ntype MetricCellProps = {\n value: number | string | null | undefined;\n wellId: number;\n loadingWellIds: Set<number>;\n metric: MetricConfig | undefined;\n maxLines: number;\n};\n\nexport const TEXT_VALUE_TEST_ID = 'MetricCell_text';\n\nconst getDisplayValue = (\n value: MetricCellProps['value'],\n metric: MetricConfig\n): number | string | null | undefined => {\n if (typeof value !== 'number') return value;\n\n if (metric.customConvert) {\n return metric.customConvert(value, { precision: metric.precision });\n }\n\n if (metric.unitType && metric.from) {\n return convertValue(value, metric.unitType, metric.from, metric.to);\n }\n\n return value;\n};\n\nconst MetricCellComponent = ({\n value,\n wellId,\n loadingWellIds,\n metric,\n maxLines,\n}: MetricCellProps) => {\n if (!metric) {\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n —\n </Typography>\n );\n }\n\n // Show spinner only if THIS well is loading AND has no value\n const isLoading = loadingWellIds.has(wellId);\n\n if (isLoading && value === undefined) {\n return <Skeleton type=\"text\" width={50} height={16} />;\n }\n\n if (Number.isFinite(value) || (value && value !== 'Null')) {\n const displayValue = getDisplayValue(value, metric);\n\n if (typeof displayValue === 'string') {\n return (\n <TextEndTruncated\n testId={TEXT_VALUE_TEST_ID}\n maxLines={maxLines}\n className={styles.cellText}\n >\n {displayValue}\n </TextEndTruncated>\n );\n }\n\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n {displayValue}\n </Typography>\n );\n }\n\n return (\n <Typography variant=\"body2\" className={styles.cellData}>\n —\n </Typography>\n );\n};\n\nexport const MetricCell = memo(MetricCellComponent);\n\nMetricCell.displayName = 'MetricCell';\n"],"names":["TEXT_VALUE_TEST_ID","MetricCell","memo","_ref","value","wellId","loadingWellIds","metric","maxLines","_jsx","Typography","variant","className","styles","cellData","children","has","undefined","Skeleton","type","width","height","Number","isFinite","displayValue","customConvert","precision","unitType","from","convertValue","to","getDisplayValue","TextEndTruncated","testId","cellText","displayName"],"mappings":"o2gBA0BO,IAAMA,EAAqB,kBAsErBC,EAAaC,GAnDE,SAMLC,GAAA,IALrBC,IAAAA,MACAC,IAAAA,OACAC,IAAAA,eACAC,IAAAA,OACAC,IAAAA,SAEA,IAAKD,EACH,OACEE,EAACC,EAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SAAA,MAS3D,GAFkBT,EAAeU,IAAIX,SAEVY,IAAVb,EACf,OAAOK,EAACS,EAAQ,CAACC,KAAK,OAAOC,MAAO,GAAIC,OAAQ,KAGlD,GAAIC,OAAOC,SAASnB,IAAWA,GAAmB,SAAVA,EAAmB,CACzD,IAAMoB,EAxCc,SACtBpB,EACAG,GAEA,MAAqB,iBAAVH,EAA2BA,EAElCG,EAAOkB,cACFlB,EAAOkB,cAAcrB,EAAO,CAAEsB,UAAWnB,EAAOmB,YAGrDnB,EAAOoB,UAAYpB,EAAOqB,KACrBC,EAAazB,EAAOG,EAAOoB,SAAUpB,EAAOqB,KAAMrB,EAAOuB,IAG3D1B,CACT,CAyByB2B,CAAgB3B,EAAOG,GAE5C,MAA4B,iBAAjBiB,EAEPf,EAACuB,EAAgB,CACfC,OA/CwB,kBAgDxBzB,SAAUA,EACVI,UAAWC,EAAOqB,SAASnB,SAE1BS,IAMLf,EAACC,EAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SACpDS,GAGP,CAEA,OACEf,EAACC,EAAU,CAACC,QAAQ,QAAQC,UAAWC,EAAOC,SAASC,SAAA,KAI3D,IAIAd,EAAWkC,YAAc"}
@@ -1,2 +1,2 @@
1
- import e from'./../../../../../../ext-esm/style-inject/dist/style-inject.es.js';var l={cellData:"MetricCell-module_cellData__-Tlr-"};e(".MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--palette-primary-text-1);display:-webkit-box;font-size:14px;font-weight:400;line-height:20px;overflow:hidden;overflow-wrap:break-word;white-space:normal}[data-dense=true] .MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:1}");export{l as default};
1
+ import e from'./../../../../../../ext-esm/style-inject/dist/style-inject.es.js';var l={cellData:"MetricCell-module_cellData__-Tlr-",cellText:"MetricCell-module_cellText__v6uIg"};e(".MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--palette-primary-text-1);display:-webkit-box;font-size:14px;font-weight:400;line-height:20px;overflow:hidden;overflow-wrap:break-word;white-space:normal}[data-dense=true] .MetricCell-module_cellData__-Tlr-{-webkit-line-clamp:1}.MetricCell-module_cellText__v6uIg{color:var(--palette-primary-text-1);font-size:14px;font-weight:400;line-height:20px;overflow-wrap:break-word}");export{l as default};
2
2
  //# sourceMappingURL=MetricCell.module.css.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MetricCell.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricCell.test.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.tsx"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetWellsTableRow.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAwBjF,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,sBAAsB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,0BAA0B,EAAE,OAAO,CAAC;IACpC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACjE,CAAC;AAUF,QAAA,MAAM,4BAA4B,uRAkB/B,wBAAwB,4CAwL1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,0EAAqC,CAAC"}
1
+ {"version":3,"file":"OffsetWellsTableRow.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAwBjF,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,sBAAsB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,0BAA0B,EAAE,OAAO,CAAC;IACpC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACjE,CAAC;AAUF,QAAA,MAAM,4BAA4B,uRAkB/B,wBAAwB,4CAuL1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,0EAAqC,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/slicedToArray";import l from"@babel/runtime/helpers/defineProperty";import{memo as t,useMemo as o}from"react";import s from"classnames";import{get as r}from"lodash";import{TableRow as a}from"@material-ui/core";import{ColumnType as i}from"../../../../constants.js";import{useViewStore as n}from"../../../../stores/view-store/useViewStore.js";import"../../../../viewport/ViewportProvider.js";import{useViewType as m}from"../../../../viewport/useViewType.js";import{WellNameCell as c}from"../../cells/WellNameCell/WellNameCell.js";import{StatusCell as d}from"../../cells/StatusCell/StatusCell.js";import{CompanyCell as p}from"../../cells/CompanyCell/CompanyCell.js";import{RigCell as u}from"../../cells/RigCell/RigCell.js";import{InterventionAssetCell as f}from"../../cells/InterventionAssetCell/InterventionAssetCell.js";import{PadNameCell as C}from"../../cells/PadNameCell/PadNameCell.js";import{FormationCell as b}from"../../cells/FormationCell/FormationCell.js";import{DistanceCell as S}from"../../cells/DistanceCell/DistanceCell.js";import{TaScoreCell as h}from"../../cells/TaScoreCell/TaScoreCell.js";import{DateCell as w}from"../../cells/DateCell/DateCell.js";import{MetricsCells as y}from"../../cells/MetricsCells/MetricsCells.js";import{WellSectionCell as M}from"../../cells/WellSectionCell/WellSectionCell.js";import{useRowMemoizedMaps as W}from"../../useRowMemoizedMaps.js";import{useRowInteractions as j}from"../../useRowInteractions.js";import v from"./OffsetWellsTableRow.module.css.js";import{convertValue as x}from"../../../../../../utils/index.js";import{jsxs as g,jsx as N}from"react/jsx-runtime";var R=function(e,l){var t=r(e,i.distance);return"number"==typeof t&&Number.isFinite(t)?l?t:x(t,"length","mi","km"):"—"},O=t((function(t){var r=t.columnsWithDict,x=t.data,O=t.subjectWellId,k=t.metricsKeys,I=t.metricsColumns,T=t.handleChangeOffsetWell,L=t.wellNameStyle,A=t.isImperial,D=t.isLimitedOffsetWells,V=t.maxOffsetWellNumber,E=t.wellSections,P=t.setActiveWellId,F=t.onRowClick,K=t.taScores,_=t.isWellSectionColumnVisible,z=t.loadingWellIds,H=t.registerRow,q=m().isMobile,B=n((function(e){return e.isWellNameExpand})),G=n((function(e){return e.dense}))&&!q,J=O===x.id,Q=l({},v.subjectWellRow,J),U=null==r?void 0:r.some((function(e){return e.key===i.company})),X=W({columnsWithDict:r,metricsColumns:I,taScores:K,wellSections:E}),Y=X.columnsMap,Z=X.metricsMap,$=X.taScoresMap,ee=X.wellSectionsMap,le=X.statusOptionsMap,te=j({data:x,isLimitedOffsetWells:D,maxOffsetWellNumber:V,metricsKeys:k,isWellSectionColumnVisible:_,hasLastInterventionAtColumn:Y.has(i.lastInterventionAt),handleChangeOffsetWell:T,setActiveWellId:P,onRowClick:F,registerRow:H}),oe=te.isViewOnly,se=te.isMapHidden,re=te.isChecked,ae=te.rowRef,ie=te.handleChangeCheckbox,ne=te.checkboxTooltipText,me=te.lastCellColumn,ce=te.handleMouseEnter,de=te.handleMouseLeave,pe=te.handleRowClick,ue=G?1:2,fe=x[i.name]||"—",Ce=o((function(){return x[i.wellSection]}),[x]);return g(a,{ref:ae,"data-testid":"".concat("OffsetWellsTableRow","_row_").concat(fe),"data-well-id":x.id,"data-dense":G?"true":void 0,className:s(v.bodyRow,l({},v.dense,G)),title:se?void 0:"Click to show on map",onClick:pe,onMouseEnter:ce,onMouseLeave:de,children:[N(c,{data:x,isSubjectWell:J,borderStyle:Q,wellNameStyle:L,isWellNameExpand:B,columnsMap:Y,checkboxTooltipText:ne,isViewOnly:oe,isLimitedOffsetWells:D,isChecked:re,handleChangeCheckbox:ie,wellName:fe,maxLines:ue}),N(d,{data:x,isSubjectWell:J,borderStyle:Q,columnsMap:Y,isMobile:q,statusOptionsMap:le}),U&&N(p,{data:x,borderStyle:Q,columnsMap:Y,maxLines:ue}),Y.has(i.interventionAsset)&&N(f,{data:x,borderStyle:Q,columnsMap:Y,maxLines:ue}),Y.has(i.padName)&&N(C,{data:x,borderStyle:Q,columnsMap:Y,maxLines:ue}),Y.has(i.formation)&&N(b,{data:x,borderStyle:Q,columnsMap:Y,maxLines:ue}),Y.has(i.rig)&&N(u,{data:x,borderStyle:Q,columnsMap:Y,maxLines:ue}),Y.has(i.distance)&&N(S,{borderStyle:Q,columnsMap:Y,formattedDistance:R(x,A)}),!!K.length&&N(h,{data:x,borderStyle:Q,columnsMap:Y,taScoresMap:$}),N(w,{columnType:i.lastDrillingAt,data:x,borderStyle:Q,columnsMap:Y,lastCellColumn:me}),Y.has(i.lastInterventionAt)&&N(w,{columnType:i.lastInterventionAt,data:x,borderStyle:Q,columnsMap:Y,lastCellColumn:me}),N(y,{data:x,metricsKeys:k,metricsMap:Z,borderStyle:Q,columnsMap:Y,lastCellColumn:me,loadingWellIds:z}),_&&N(M,{borderStyle:Q,columnsMap:Y,wellSectionData:Ce,getSectionColor:function(l){var t=e(l,1)[0];return ee.get(t)}})]})}));O.displayName="OffsetWellsTableRow";export{O as OffsetWellsTableRow};
1
+ import e from"@babel/runtime/helpers/slicedToArray";import l from"@babel/runtime/helpers/defineProperty";import{memo as t,useMemo as o}from"react";import s from"classnames";import{get as r}from"lodash";import{TableRow as a}from"@material-ui/core";import{ColumnType as i}from"../../../../constants.js";import{useViewStore as n}from"../../../../stores/view-store/useViewStore.js";import"../../../../viewport/ViewportProvider.js";import{useViewType as m}from"../../../../viewport/useViewType.js";import{WellNameCell as c}from"../../cells/WellNameCell/WellNameCell.js";import{StatusCell as d}from"../../cells/StatusCell/StatusCell.js";import{CompanyCell as p}from"../../cells/CompanyCell/CompanyCell.js";import{RigCell as u}from"../../cells/RigCell/RigCell.js";import{InterventionAssetCell as f}from"../../cells/InterventionAssetCell/InterventionAssetCell.js";import{PadNameCell as C}from"../../cells/PadNameCell/PadNameCell.js";import{FormationCell as b}from"../../cells/FormationCell/FormationCell.js";import{DistanceCell as S}from"../../cells/DistanceCell/DistanceCell.js";import{TaScoreCell as h}from"../../cells/TaScoreCell/TaScoreCell.js";import{DateCell as y}from"../../cells/DateCell/DateCell.js";import{MetricsCells as w}from"../../cells/MetricsCells/MetricsCells.js";import{WellSectionCell as M}from"../../cells/WellSectionCell/WellSectionCell.js";import{useRowMemoizedMaps as W}from"../../useRowMemoizedMaps.js";import{useRowInteractions as j}from"../../useRowInteractions.js";import v from"./OffsetWellsTableRow.module.css.js";import{convertValue as x}from"../../../../../../utils/index.js";import{jsxs as g,jsx as N}from"react/jsx-runtime";var R=function(e,l){var t=r(e,i.distance);return"number"==typeof t&&Number.isFinite(t)?l?t:x(t,"length","mi","km"):"—"},O=t((function(t){var r=t.columnsWithDict,x=t.data,O=t.subjectWellId,I=t.metricsKeys,L=t.metricsColumns,T=t.handleChangeOffsetWell,k=t.wellNameStyle,A=t.isImperial,D=t.isLimitedOffsetWells,V=t.maxOffsetWellNumber,E=t.wellSections,P=t.setActiveWellId,F=t.onRowClick,K=t.taScores,_=t.isWellSectionColumnVisible,z=t.loadingWellIds,q=t.registerRow,B=m().isMobile,G=n((function(e){return e.isWellNameExpand})),H=n((function(e){return e.dense}))&&!B,J=O===x.id,Q=l({},v.subjectWellRow,J),U=null==r?void 0:r.some((function(e){return e.key===i.company})),X=W({columnsWithDict:r,metricsColumns:L,taScores:K,wellSections:E}),Y=X.columnsMap,Z=X.metricsMap,$=X.taScoresMap,ee=X.wellSectionsMap,le=X.statusOptionsMap,te=j({data:x,isLimitedOffsetWells:D,maxOffsetWellNumber:V,metricsKeys:I,isWellSectionColumnVisible:_,hasLastInterventionAtColumn:Y.has(i.lastInterventionAt),handleChangeOffsetWell:T,setActiveWellId:P,onRowClick:F,registerRow:q}),oe=te.isViewOnly,se=te.isChecked,re=te.rowRef,ae=te.handleChangeCheckbox,ie=te.checkboxTooltipText,ne=te.lastCellColumn,me=te.handleMouseEnter,ce=te.handleMouseLeave,de=te.handleRowClick,pe=H?1:2,ue=x[i.name]||"—",fe=o((function(){return x[i.wellSection]}),[x]);return g(a,{ref:re,"data-testid":"".concat("OffsetWellsTableRow","_row_").concat(ue),"data-well-id":x.id,"data-dense":H?"true":void 0,className:s(v.bodyRow,l({},v.dense,H)),onClick:de,onMouseEnter:me,onMouseLeave:ce,children:[N(c,{data:x,isSubjectWell:J,borderStyle:Q,wellNameStyle:k,isWellNameExpand:G,columnsMap:Y,checkboxTooltipText:ie,isViewOnly:oe,isLimitedOffsetWells:D,isChecked:se,handleChangeCheckbox:ae,wellName:ue,maxLines:pe}),N(d,{data:x,isSubjectWell:J,borderStyle:Q,columnsMap:Y,isMobile:B,statusOptionsMap:le}),U&&N(p,{data:x,borderStyle:Q,columnsMap:Y,maxLines:pe}),Y.has(i.interventionAsset)&&N(f,{data:x,borderStyle:Q,columnsMap:Y,maxLines:pe}),Y.has(i.padName)&&N(C,{data:x,borderStyle:Q,columnsMap:Y,maxLines:pe}),Y.has(i.formation)&&N(b,{data:x,borderStyle:Q,columnsMap:Y,maxLines:pe}),Y.has(i.rig)&&N(u,{data:x,borderStyle:Q,columnsMap:Y,maxLines:pe}),Y.has(i.distance)&&N(S,{borderStyle:Q,columnsMap:Y,formattedDistance:R(x,A)}),!!K.length&&N(h,{data:x,borderStyle:Q,columnsMap:Y,taScoresMap:$}),N(y,{columnType:i.lastDrillingAt,data:x,borderStyle:Q,columnsMap:Y,lastCellColumn:ne}),Y.has(i.lastInterventionAt)&&N(y,{columnType:i.lastInterventionAt,data:x,borderStyle:Q,columnsMap:Y,lastCellColumn:ne}),N(w,{data:x,metricsKeys:I,metricsMap:Z,borderStyle:Q,columnsMap:Y,lastCellColumn:ne,loadingWellIds:z,maxLines:pe}),_&&N(M,{borderStyle:Q,columnsMap:Y,wellSectionData:fe,getSectionColor:function(l){var t=e(l,1)[0];return ee.get(t)}})]})}));O.displayName="OffsetWellsTableRow";export{O as OffsetWellsTableRow};
2
2
  //# sourceMappingURL=OffsetWellsTableRow.js.map