@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
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/toConsumableArray"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),a=require("lodash"),u=require("../utils/index.js");require("uuid"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment");var o=require("../../../clients/jsonApi/index.js");require("../../../clients/subscriptions/constants.js"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js"),require("../../../clients/api/rateLimiter.js");var c=require("../../../utils/jsonaDataFormatter.js"),l=require("../../AssetEditor/constants.js");require("../../../constants/goals.js"),require("../../../constants/segment.js"),require("../../../constants/alerts.js"),require("../../../constants/apps.js"),require("../../../constants/drillstring.js"),require("../../../constants/completion.js"),require("../../../constants/appPackages.js"),require("../../../constants/notifications.js"),require("../../../constants/feed.js"),require("../../../constants/bha.js");var p=require("../../../constants/assetTypes.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../constants/corvaCompanyId.js"),require("../../GradientManager/configuration/constants.js");var f=d(e),q=d(t),j=d(r),y=d(s),m=d(n);function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){f.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}exports.usePrimaryAssetSelectData=function(e){var t,r,s=e.appKey,n=e.assetType,d=e.company,f=e.groups,v=e.isRequiredAssetId,g=e.parentAssetId,h=e.parentAssetType,A=e.searchValue,P=e.assetFields,O=e.currentValue,E=e.setCurrentOption,S=e.scrollPage,R=e.onActiveAssetIdChange,_=e.isDrillingPlatformApp,x=i.useState([]),D=y.default(x,2),T=D[0],w=D[1],I=i.useState(!1),k=y.default(I,2),C=k[0],G=k[1],F=i.useRef(null),Y=i.useRef(null),z=i.useRef(null),M=i.useRef(null),V=n===p.ASSET_TYPES.pad.type?[].concat(j.default(P),["pad.active","pad.parent_frac_fleet_id"]):P,W=(t=q.default(m.default.mark((function e(t){var r,i,p,f,q,y,P,O=arguments;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=O.length>1&&void 0!==O[1]&&O[1],e.prev=1,i=(null==t?void 0:t.type)||n,G(!0),p={per_page:l.PER_PAGE,page:S},h&&g&&(p[h]=g),d&&"all"!==d&&(p.company=d),A&&(p.search=A),s&&(p.app_key=s),F.current=d,f=o.mapAssetGetRequest(i)(b(b({},u.getRequestOptions(i,V)),p)),e.next=13,f;case 13:q=e.sent,y=c.jsonaDataFormatter.deserialize(q),P=a.map(y,(function(e){return u.formatAsset({asset:e,group:null==t?void 0:t.name,isRequiredAssetId:v,isPrimaryAsset:!0,isDrillingPlatformApp:_})})).sort(u.sortAsset),F.current===d&&w(r?function(e){return a.uniqBy([].concat(j.default(e),j.default(P)),"id")}:P),e.next=22;break;case 19:e.prev=19,e.t0=e.catch(1),console.error(e.t0);case 22:return e.prev=22,G(!1),e.finish(22);case 25:case"end":return e.stop()}}),e,null,[[1,19,22,25]])}))),function(e){return t.apply(this,arguments)}),B=(r=q.default(m.default.mark((function e(){var t,r,s,i,l,d,f,q;return m.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.mapAssetGetRequest(n)(b(b({},u.getRequestOptions(n,V)),{},{ids:O}));case 2:if(t=e.sent,!a.isEmpty(t.data)){e.next=7;break}return e.next=6,o.getAssets(b(b({},u.getRequestOptions(n,V)),{},{ids:O}));case 6:t=e.sent;case 7:r=c.jsonaDataFormatter.deserialize(t),s=u.formatAsset({asset:r[0],isPrimaryAsset:!0,isRequiredAssetId:v,isDrillingPlatformApp:_}),E(s),n===p.ASSET_TYPES.rig.type?(f=_?Number(null===(i=t)||void 0===i||null===(l=i.included)||void 0===l||null===(d=l[0])||void 0===d?void 0:d.id):(null==s?void 0:s.activeWellId)||null,R(f)):n===p.ASSET_TYPES.intervention_unit.type&&(q=(null==s?void 0:s.activeWellId)||null,R(q));case 11:case"end":return e.stop()}}),e)}))),function(){return r.apply(this,arguments)});return i.useEffect((function(){d&&w([])}),[d]),i.useEffect((function(){var e=z.current!==A,t=M.current!==S,r=!e&&t&&S>1&&(M.current||0)<S;e&&(z.current=A),t&&(M.current=S),f?f.forEach((function(e){W(e,r)})):(n&&Y.current&&Y.current!==n&&w([]),Y.current=n,W(null,r))}),[n,h,g,d,s,null==f?void 0:f.length,A,S]),i.useEffect((function(){O&&B()}),[]),{assets:T,loading:C}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/toConsumableArray"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),u=require("lodash"),a=require("../constants.js"),o=require("../utils/index.js");require("uuid"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment");var c=require("../../../clients/jsonApi/index.js");require("../../../clients/subscriptions/constants.js"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js"),require("../../../clients/api/rateLimiter.js");var l=require("../../AssetEditor/constants.js");require("../../../constants/goals.js"),require("../../../constants/segment.js"),require("../../../constants/alerts.js"),require("../../../constants/apps.js"),require("../../../constants/drillstring.js"),require("../../../constants/completion.js"),require("../../../constants/appPackages.js"),require("../../../constants/notifications.js"),require("../../../constants/feed.js"),require("../../../constants/bha.js");var p=require("../../../constants/assetTypes.js");require("../../../constants/corvaCompanyId.js"),require("../../GradientManager/configuration/constants.js");var f=require("./assetResponse.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var q=d(e),j=d(t),y=d(r),v=d(s),b=d(n);function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){q.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}exports.usePrimaryAssetSelectData=function(e){var t=e.appKey,r=e.assetType,s=e.company,n=e.groups,d=e.isRequiredAssetId,q=e.parentAssetId,g=e.parentAssetType,A=e.searchValue,h=e.assetFields,P=void 0===h?[]:h,O=e.currentValue,E=e.setCurrentOption,R=e.scrollPage,S=e.onActiveAssetIdChange,T=e.isDrillingPlatformApp,_=i.useState([]),x=v.default(_,2),w=x[0],D=x[1],I=i.useState(!1),k=v.default(I,2),C=k[0],G=k[1],Y=i.useRef(null),F=i.useRef(null),z=i.useRef(null),L=i.useRef(null),M=r||a.DEFAULT_ASSET_TYPE,V=M===p.ASSET_TYPES.pad.type?[].concat(y.default(P),["pad.active","pad.parent_frac_fleet_id"]):P,W=function(){var e=j.default(b.default.mark((function e(r){var n,i,a,p,j,v=arguments;return b.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=v.length>1&&void 0!==v[1]&&v[1],e.prev=1,i=(null==r?void 0:r.type)||M,G(!0),a={per_page:l.PER_PAGE,page:R},g&&q&&(a[g]=q),s&&"all"!==s&&(a.company=s),A&&(a.search=A),t&&(a.app_key=t),Y.current=s,e.next=12,c.mapAssetGetRequest(i)(m(m({},o.getRequestOptions(i,V)),a));case 12:p=e.sent,j=f.deserializeAssetResponse(p).map((function(e){return o.formatAsset({asset:e,group:null==r?void 0:r.name,isRequiredAssetId:d,isPrimaryAsset:!0,isDrillingPlatformApp:T})})).filter(o.isAssetOption).sort(o.sortAsset),Y.current===s&&D(n?function(e){return u.uniqBy([].concat(y.default(e),y.default(j)),"id")}:j),e.next=20;break;case 17:e.prev=17,e.t0=e.catch(1),console.error(e.t0);case 20:return e.prev=20,G(!1),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[1,17,20,23]])})));return function(t){return e.apply(this,arguments)}}(),B=function(){var e=j.default(b.default.mark((function e(){var t,r,s;return b.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c.mapAssetGetRequest(M)(m(m({},o.getRequestOptions(M,V)),{},{ids:O}));case 2:if(t=e.sent,!u.isEmpty(f.getResponseData(t))){e.next=7;break}return e.next=6,c.getAssets(m(m({},o.getRequestOptions(M,V)),{},{ids:O}));case 6:t=e.sent;case 7:r=o.formatAsset({asset:f.deserializeAssetResponse(t)[0],isPrimaryAsset:!0,isRequiredAssetId:d,isDrillingPlatformApp:T}),E(r),M===p.ASSET_TYPES.rig.type?(s=T?f.getFirstIncludedId(t):(null==r?void 0:r.activeWellId)||null,S(s)):M===p.ASSET_TYPES.intervention_unit.type&&S((null==r?void 0:r.activeWellId)||null);case 10:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return i.useEffect((function(){s&&D([])}),[s]),i.useEffect((function(){var e=z.current!==A,t=L.current!==R,r=!e&&t&&R>1&&(L.current||0)<R;e&&(z.current=A),t&&(L.current=R),n?n.forEach((function(e){W(e,r)})):(F.current&&F.current!==M&&D([]),F.current=M,W(null,r))}),[r,g,q,s,t,null==n?void 0:n.length,A,R]),i.useEffect((function(){O&&B()}),[]),{assets:w,loading:C}};
2
2
  //# sourceMappingURL=usePrimaryAssetSelectData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePrimaryAssetSelectData.js","sources":["../../../../../src/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { isEmpty, map, uniqBy } from 'lodash';\n\nimport { formatAsset, getRequestOptions, sortAsset } from '../utils';\n\nimport { jsonApi } from '~/clients';\nimport { jsonaDataFormatter } from '~/utils/jsonaDataFormatter';\nimport { PER_PAGE } from '~/components/AssetEditor/constants';\nimport { ASSET_TYPES } from '~/constants';\n\nexport function usePrimaryAssetSelectData({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n parentAssetId,\n parentAssetType,\n searchValue,\n assetFields,\n currentValue,\n setCurrentOption,\n scrollPage,\n onActiveAssetIdChange,\n isDrillingPlatformApp,\n}) {\n const [assets, setAssets] = useState([]);\n const [loading, setLoading] = useState(false);\n const prevCompany = useRef(null);\n const prevAssetType = useRef(null);\n const prevSearchValue = useRef(null);\n const prevScrollPage = useRef(null);\n\n const assetFieldsByAssetType =\n assetType === ASSET_TYPES.pad.type\n ? [...assetFields, 'pad.active', 'pad.parent_frac_fleet_id']\n : assetFields;\n\n const loadAssets = async (group, shouldAppend = false) => {\n try {\n const currentAssetType = group?.type || assetType;\n setLoading(true);\n const requestParams = { per_page: PER_PAGE, page: scrollPage };\n if (parentAssetType && parentAssetId) requestParams[parentAssetType] = parentAssetId;\n if (company && company !== 'all') requestParams.company = company;\n if (searchValue) requestParams.search = searchValue;\n if (appKey) requestParams.app_key = appKey;\n\n prevCompany.current = company;\n const requestPromise = jsonApi.mapAssetGetRequest(currentAssetType)({\n ...getRequestOptions(currentAssetType, assetFieldsByAssetType),\n ...requestParams,\n });\n\n const response = await requestPromise;\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const responseAssets = map(deserializedResponse, asset =>\n formatAsset({\n asset,\n group: group?.name,\n isRequiredAssetId,\n isPrimaryAsset: true,\n isDrillingPlatformApp,\n })\n ).sort(sortAsset);\n\n if (prevCompany.current === company) {\n if (shouldAppend) {\n setAssets(prevState => uniqBy([...prevState, ...responseAssets], 'id'));\n } else {\n setAssets(responseAssets);\n }\n }\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n const loadCurrentOption = async () => {\n let response = await jsonApi.mapAssetGetRequest(assetType)({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n if (isEmpty(response.data)) {\n // NOTE: Try fetch current option from v2/assets\n response = await jsonApi.getAssets({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n }\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const formattedAsset = formatAsset({\n asset: deserializedResponse[0],\n isPrimaryAsset: true,\n isRequiredAssetId,\n isDrillingPlatformApp,\n });\n\n setCurrentOption(formattedAsset);\n if (assetType === ASSET_TYPES.rig.type) {\n const activeWellId = isDrillingPlatformApp\n ? Number(response?.included?.[0]?.id)\n : formattedAsset?.activeWellId || null;\n onActiveAssetIdChange(activeWellId);\n } else if (assetType === ASSET_TYPES.intervention_unit.type) {\n const activeWellId = formattedAsset?.activeWellId || null;\n onActiveAssetIdChange(activeWellId);\n }\n };\n\n useEffect(() => {\n if (company) {\n setAssets([]);\n }\n }, [company]);\n\n useEffect(() => {\n // Check if searchValue changed - if so, reset assets and don't append\n const searchValueChanged = prevSearchValue.current !== searchValue;\n const scrollPageChanged = prevScrollPage.current !== scrollPage;\n // Only append for pagination: searchValue didn't change AND scrollPage increased\n const isPagination =\n !searchValueChanged &&\n scrollPageChanged &&\n scrollPage > 1 &&\n (prevScrollPage.current || 0) < scrollPage;\n\n if (searchValueChanged) {\n prevSearchValue.current = searchValue;\n }\n if (scrollPageChanged) {\n prevScrollPage.current = scrollPage;\n }\n\n if (groups) {\n groups.forEach(group => {\n loadAssets(group, isPagination);\n });\n return;\n }\n if (!!assetType && !!prevAssetType.current && prevAssetType.current !== assetType) {\n setAssets([]);\n }\n prevAssetType.current = assetType;\n loadAssets(null, isPagination);\n }, [\n assetType,\n parentAssetType,\n parentAssetId,\n company,\n appKey,\n groups?.length,\n searchValue,\n scrollPage,\n ]);\n\n useEffect(() => {\n if (currentValue) {\n loadCurrentOption();\n }\n }, []);\n\n return { assets, loading };\n}\n"],"names":["_ref","_ref2","_ref3","appKey","assetType","company","groups","isRequiredAssetId","parentAssetId","parentAssetType","searchValue","assetFields","currentValue","setCurrentOption","scrollPage","onActiveAssetIdChange","isDrillingPlatformApp","useState","_useState2","_slicedToArray","_useState","assets","setAssets","_useState4","_useState3","loading","setLoading","prevCompany","useRef","prevAssetType","prevSearchValue","prevScrollPage","assetFieldsByAssetType","ASSET_TYPES","pad","type","concat","_toConsumableArray","loadAssets","_asyncToGenerator","_regeneratorRuntime","mark","group","shouldAppend","currentAssetType","requestParams","requestPromise","response","deserializedResponse","responseAssets","_args","arguments","wrap","_context","prev","next","per_page","PER_PAGE","page","search","app_key","current","jsonApi","_objectSpread","getRequestOptions","sent","jsonaDataFormatter","deserialize","map","asset","formatAsset","name","isPrimaryAsset","sort","sortAsset","prevState","uniqBy","t0","console","error","finish","stop","_callee","_x","apply","this","loadCurrentOption","_callee2","formattedAsset","_response","_response$included","_response$included$","activeWellId","_activeWellId","_context2","ids","isEmpty","data","getAssets","rig","Number","included","id","intervention_unit","useEffect","searchValueChanged","scrollPageChanged","isPagination","forEach","length"],"mappings":"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"}
1
+ {"version":3,"file":"usePrimaryAssetSelectData.js","sources":["../../../../../src/components/AssetEditorV2/effects/usePrimaryAssetSelectData.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { isEmpty, uniqBy } from 'lodash';\n\nimport { AssetGroup, AssetId, AssetOption, AssetSelection } from '../types';\nimport { DEFAULT_ASSET_TYPE } from '../constants';\nimport { formatAsset, getRequestOptions, isAssetOption, sortAsset } from '../utils';\n\nimport { jsonApi } from '~/clients';\nimport { PER_PAGE } from '~/components/AssetEditor/constants';\nimport { ASSET_TYPES } from '~/constants';\n\nimport { deserializeAssetResponse, getFirstIncludedId, getResponseData } from './assetResponse';\n\ntype QueryParams = Record<string, unknown>;\n\ntype UsePrimaryAssetSelectDataParams = {\n appKey?: string | null;\n assetType?: string | null;\n company?: AssetId | null;\n groups?: AssetGroup[];\n isRequiredAssetId?: boolean;\n parentAssetId?: AssetId | null;\n parentAssetType?: string | null;\n searchValue?: string;\n assetFields?: string[];\n currentValue?: AssetId | null;\n selectedGroup?: AssetGroup | null;\n setCurrentOption: (selection: AssetSelection) => void;\n scrollPage: number;\n onActiveAssetIdChange: (id: number | null) => void;\n isDrillingPlatformApp?: boolean;\n};\n\nexport const usePrimaryAssetSelectData = ({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n parentAssetId,\n parentAssetType,\n searchValue,\n assetFields = [],\n currentValue,\n setCurrentOption,\n scrollPage,\n onActiveAssetIdChange,\n isDrillingPlatformApp,\n}: UsePrimaryAssetSelectDataParams): { assets: AssetOption[]; loading: boolean } => {\n const [assets, setAssets] = useState<AssetOption[]>([]);\n const [loading, setLoading] = useState(false);\n const prevCompany = useRef<AssetId | null | undefined>(null);\n const prevAssetType = useRef<string | null>(null);\n const prevSearchValue = useRef<string | null | undefined>(null);\n const prevScrollPage = useRef<number | null>(null);\n const requestAssetType = assetType || DEFAULT_ASSET_TYPE;\n\n const assetFieldsByAssetType =\n requestAssetType === ASSET_TYPES.pad.type\n ? [...assetFields, 'pad.active', 'pad.parent_frac_fleet_id']\n : assetFields;\n\n const loadAssets = async (group?: AssetGroup | null, shouldAppend = false) => {\n try {\n const currentAssetType = group?.type || requestAssetType;\n setLoading(true);\n\n const requestParams: QueryParams = { per_page: PER_PAGE, page: scrollPage };\n\n if (parentAssetType && parentAssetId) requestParams[parentAssetType] = parentAssetId;\n if (company && company !== 'all') requestParams.company = company;\n if (searchValue) requestParams.search = searchValue;\n if (appKey) requestParams.app_key = appKey;\n\n prevCompany.current = company;\n\n const response: unknown = await jsonApi.mapAssetGetRequest(currentAssetType)({\n ...getRequestOptions(currentAssetType, assetFieldsByAssetType),\n ...requestParams,\n });\n\n const responseAssets = deserializeAssetResponse(response)\n .map(asset =>\n formatAsset({\n asset,\n group: group?.name,\n isRequiredAssetId,\n isPrimaryAsset: true,\n isDrillingPlatformApp,\n })\n )\n .filter(isAssetOption)\n .sort(sortAsset);\n\n if (prevCompany.current === company) {\n if (shouldAppend) {\n setAssets(prevState => uniqBy([...prevState, ...responseAssets], 'id'));\n } else {\n setAssets(responseAssets);\n }\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoading(false);\n }\n };\n\n const loadCurrentOption = async () => {\n let response: unknown = await jsonApi.mapAssetGetRequest(requestAssetType)({\n ...getRequestOptions(requestAssetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n\n if (isEmpty(getResponseData(response))) {\n // Try to fetch the current option from v2/assets.\n response = await jsonApi.getAssets({\n ...getRequestOptions(requestAssetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n }\n\n const formattedAsset = formatAsset({\n asset: deserializeAssetResponse(response)[0],\n isPrimaryAsset: true,\n isRequiredAssetId,\n isDrillingPlatformApp,\n });\n\n setCurrentOption(formattedAsset);\n\n if (requestAssetType === ASSET_TYPES.rig.type) {\n const activeWellId = isDrillingPlatformApp\n ? getFirstIncludedId(response)\n : formattedAsset?.activeWellId || null;\n\n onActiveAssetIdChange(activeWellId);\n } else if (requestAssetType === ASSET_TYPES.intervention_unit.type) {\n onActiveAssetIdChange(formattedAsset?.activeWellId || null);\n }\n };\n\n useEffect(() => {\n if (company) {\n setAssets([]);\n }\n }, [company]);\n\n useEffect(() => {\n // Reset assets instead of appending when the search value changes.\n const isSearchValueChanged = prevSearchValue.current !== searchValue;\n const isScrollPageChanged = prevScrollPage.current !== scrollPage;\n const isPagination =\n !isSearchValueChanged &&\n isScrollPageChanged &&\n scrollPage > 1 &&\n (prevScrollPage.current || 0) < scrollPage;\n\n if (isSearchValueChanged) {\n prevSearchValue.current = searchValue;\n }\n\n if (isScrollPageChanged) {\n prevScrollPage.current = scrollPage;\n }\n\n if (groups) {\n groups.forEach(group => {\n loadAssets(group, isPagination);\n });\n\n return;\n }\n\n if (prevAssetType.current && prevAssetType.current !== requestAssetType) {\n setAssets([]);\n }\n\n prevAssetType.current = requestAssetType;\n loadAssets(null, isPagination);\n }, [\n assetType,\n parentAssetType,\n parentAssetId,\n company,\n appKey,\n groups?.length,\n searchValue,\n scrollPage,\n ]);\n\n useEffect(() => {\n if (currentValue) {\n loadCurrentOption();\n }\n }, []);\n\n return { assets, loading };\n};\n"],"names":["_ref","appKey","assetType","company","groups","isRequiredAssetId","parentAssetId","parentAssetType","searchValue","_ref$assetFields","assetFields","currentValue","setCurrentOption","scrollPage","onActiveAssetIdChange","isDrillingPlatformApp","useState","_useState2","_slicedToArray","_useState","assets","setAssets","_useState4","_useState3","loading","setLoading","prevCompany","useRef","prevAssetType","prevSearchValue","prevScrollPage","requestAssetType","DEFAULT_ASSET_TYPE","assetFieldsByAssetType","ASSET_TYPES","pad","type","concat","_toConsumableArray","loadAssets","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","group","shouldAppend","currentAssetType","requestParams","response","responseAssets","_args","arguments","wrap","_context","prev","next","per_page","PER_PAGE","page","search","app_key","current","jsonApi","_objectSpread","getRequestOptions","sent","deserializeAssetResponse","map","asset","formatAsset","name","isPrimaryAsset","filter","isAssetOption","sort","sortAsset","prevState","uniqBy","t0","console","error","finish","stop","_callee","_x","apply","this","loadCurrentOption","_ref3","_callee2","formattedAsset","activeWellId","_context2","ids","isEmpty","getResponseData","getAssets","rig","getFirstIncludedId","intervention_unit","useEffect","isSearchValueChanged","isScrollPageChanged","isPagination","forEach","length"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),a=require("react"),r=require("prop-types"),l=require("lodash"),n=require("classnames"),i=require("@material-ui/core"),u=require("./components/PrimaryAssetSelect.js"),d=require("./components/SecondaryAssetSelect.js");require("./components/SelectItem.js");var o=require("./components/MultipleAssetsToggle.js"),c=require("./components/PrimaryAssetSelectV2.js"),p=require("./constants.js"),f=require("./utils/index.js");require("../../constants/goals.js");var y=require("../../constants/segment.js");require("../../constants/alerts.js"),require("../../constants/apps.js"),require("../../constants/drillstring.js"),require("../../constants/completion.js"),require("../../constants/appPackages.js"),require("../../constants/notifications.js"),require("../../constants/feed.js"),require("../../constants/bha.js");var A=require("../../constants/assetTypes.js");require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js");var m=require("react/jsx-runtime");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var S=g(e),b=g(t),v=g(s),T=g(r),j=g(n);function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function q(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?h(Object(s),!0).forEach((function(t){b.default(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):h(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var I=i.makeStyles({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),E=function(e){var t=e.appKey,s=e.appType,r=e.className,n=e.company,i=e.defaultValue,g=e.secondaryDefaultValue,T=e.disabled,h=e.isHiddenTitle,E=e.isNullable,P=e.label,_=e.onSettingsChange,C=e.primaryAssetFields,O=e.secondaryAssetFields,D=e.isExtendedSelect,F=e.isRequiredAssetId,N=e.settings,V=e.isVisibleMultipleAssetsToggle,x=e.assetsLimit,R=e.isDisabledSecondaryAssetSelect,w=e.isDrillingPlatformApp,G=e.secondaryAssetHelpText,L=e.onChange,Y=e.elementsClassNames,H=l.get(s,["primaryAsset","assetType","type"]),K=l.get(s,["primaryAsset","assetType","id"]),M=l.get(s,["primaryAsset","assetType","label"]),k=l.get(s,["primaryAsset","groups"]),U=l.get(s,["secondaryAsset"],!1),W=l.get(s,["secondaryAsset","assetType","type"]),z=l.get(s,["secondaryAsset","assetType","id"]),B=l.get(s,["secondaryAsset","assetType","label"]),J=l.get(N,K),Q=J?Number(J):null,X=l.get(N,z)?Number(l.get(N,z)):g||null,Z=a.useState({id:Q||i}),$=v.default(Z,2),ee=$[0],te=$[1],se=a.useState(X),ae=v.default(se,2),re=ae[0],le=ae[1],ne=a.useState(!1),ie=v.default(ne,2),ue=ie[0],de=ie[1],oe=a.useState(),ce=v.default(oe,2),pe=ce[0],fe=ce[1],ye=a.useState(!1),Ae=v.default(ye,2),me=Ae[0],ge=Ae[1],Se=a.useRef(!1),be=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];_.apply(void 0,t.concat([Se.current]))},ve=I(),Te=H===A.ASSET_TYPES.rig.type||H===A.ASSET_TYPES.intervention_unit.type?c:u,je=w&&null!=ee&&ee.assetId?null==ee?void 0:ee.assetId:null==ee?void 0:ee.id,he=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};te(t),le(null),de(!1);var s=(e={},b.default(e,K,null),b.default(e,z,null),b.default(e,"assets",null),e);be(s)},qe=U&&(me?Boolean(ee.length)&&!ue:(null==ee?void 0:ee.id)&&!ue);return a.useEffect((function(){l.isEmpty(N)&&he(me&&[])}),[N]),m.jsxs("div",{className:j.default(ve.main,r),children:[!h&&m.jsx("div",{className:j.default(ve.title,Y.title),children:"Asset"}),V&&m.jsx(o,{onChange:function(e){Se.current=!!e,ge(e),he(e&&[])},className:Y.multiAssetSwitch,checked:me}),m.jsx("div",{className:Y.primaryAssetSelect,children:m.jsx(Te,{appKey:t,assetType:H,company:n,currentOption:ee,currentValue:null==ee?void 0:ee.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:U,defaultValue:i,disableClearable:!E,disabled:T,isNullable:E,isRequiredAssetId:F,label:P,multiple:me,onChange:function(e){if(L({primary:e}),me)!function(e){var t,s;if(!(e.length>x)){var a=(null===(t=e[0])||void 0===t?void 0:t.group)===y.PAD_GROUP.name,r=(null===(s=e[0])||void 0===s?void 0:s.group)===y.FRAC_FLEET_GROUP.name,l=1===e.length&&a,n=1===e.length&&r;if(l?(de(!0),fe(y.PAD_GROUP)):n&&fe(y.FRAC_FLEET_GROUP),a){te(e);var i=null==e?void 0:e.reduce((function(e,t){var s=t.parentFracFleetId,a=t.id,r={fracFleetId:s,padId:a};return D&&(r.assetId=s,r.replacedPadId=a),s?[].concat(S.default(e),[r]):e}),[]);be({assets:i})}else{te(e);var u=e.reduce((function(e,t){var s=b.default({},"".concat(t.type,"Id"),t.id);return F&&(s.assetId=t.assetId),D&&(s.assetId=t.assetId||t.id),[].concat(S.default(e),[s])}),[]);be({assets:u})}}}(e);else{var t=e.id,s=e.type,a=e.parentFracFleetId;if(t)if(s!==A.ASSET_TYPES.pad.type){te(e),le(null);var r=b.default({},K,t);F&&(r.assetId=e.assetId),z&&(r[z]=null),be(r),de(!1)}else{var l;te(e),de(!0),le(t);var n=(l={},b.default(l,A.ASSET_TYPES.frac_fleet.id,Number(a)),b.default(l,A.ASSET_TYPES.pad.id,t),l);be(n)}}},setCurrentOption:te,selectedGroup:pe,onGroupChange:function(e){fe(e),he(me&&[])},onGroupReset:function(){fe(null),he(me&&[])},groups:k,onInputReset:he,onActiveAssetIdChange:function(e){te((function(t){return q(q({},t),{},{activeWellId:e})}))},isDrillingPlatformApp:w,assetFields:f.getPrimaryAssetFields(H,C,w)})}),qe&&m.jsxs("div",{className:Y.secondaryAssetSelect,children:[G,m.jsx(d.default,{assetFields:W===A.ASSET_TYPES.pad.type?[].concat(S.default(O),["pad.active","pad.current"]):O,activeWellId:null==ee?void 0:ee.activeWellId,appKey:t,assetType:W,company:n,currentValue:re,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:me?p.ACTIVE_ASSETS_ID:p.ACTIVE_ASSET_ID,disabled:me||R||T,isDrillingPlatformApp:w,isNullable:E,isRequiredAssetId:F,onChange:function(e){var t=e.id,s=e.assetId,a=e.name;L({secondary:{name:a}}),le(t);var r=t===p.ACTIVE_ASSET_ID?null:t,l=b.default({},z,r);F&&W===A.ASSET_TYPES.well.type?be(q(q({},l),{},{replacedAssetId:w?r:s})):be(l)},parentAssetId:je,parentAssetType:w?"parent_asset_id":H,primaryAssetLabel:M,secondaryAssetLabel:B})]})]})};E.defaultProps={assetsLimit:null,label:"Choose An Asset",isNullable:!1,defaultValue:void 0,secondaryDefaultValue:void 0,isHiddenTitle:!1,appKey:null,isVisibleMultipleAssetsToggle:!1,isDisabledSecondaryAssetSelect:!1,primaryAssetFields:[],secondaryAssetFields:[],secondaryAssetHelpText:null,onChange:l.noop,elementsClassNames:{}},E.propTypes={assetsLimit:T.default.number,settings:T.default.shape({}).isRequired,appType:T.default.shape({}).isRequired,defaultValue:T.default.any,secondaryDefaultValue:T.default.any,onSettingsChange:T.default.func.isRequired,label:T.default.string,isNullable:T.default.bool,isHiddenTitle:T.default.bool,appKey:T.default.string,isVisibleMultipleAssetsToggle:T.default.bool,isDisabledSecondaryAssetSelect:T.default.bool,primaryAssetFields:T.default.arrayOf(T.default.shape({})),secondaryAssetFields:T.default.arrayOf(T.default.shape({})),secondaryAssetHelpText:T.default.oneOfType([T.default.element,T.default.string]),onChange:T.default.func,elementsClassNames:T.default.shape({title:T.default.string,multiAssetSwitch:T.default.string,primaryAssetSelect:T.default.string,secondaryAssetSelect:T.default.string})},module.exports=E;
1
+ "use strict";var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),a=require("lodash"),n=require("classnames"),i=require("@material-ui/core");require("../../constants/goals.js");var l=require("../../constants/segment.js");require("../../constants/alerts.js"),require("../../constants/apps.js"),require("../../constants/drillstring.js"),require("../../constants/completion.js"),require("../../constants/appPackages.js"),require("../../constants/notifications.js"),require("../../constants/feed.js"),require("../../constants/bha.js");var u=require("../../constants/assetTypes.js");require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js");var o=require("./components/PrimaryAssetSelect.js"),d=require("./components/SecondaryAssetSelect.js");require("./components/SelectItem.js");var c=require("./components/MultipleAssetsToggle.js"),p=require("./components/PrimaryAssetSelectV2.js"),f=require("./constants.js"),y=require("./utils/index.js"),A=require("react/jsx-runtime");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=v(e),S=v(t),g=v(s),b=v(n);function j(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function T(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?j(Object(s),!0).forEach((function(t){S.default(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):j(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var I=i.makeStyles({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),E=[],P={};module.exports=function(e){var t,s=e.appKey,n=void 0===s?null:s,i=e.appType,v=e.className,j=e.company,q=e.defaultValue,h=void 0===q?null:q,_=e.secondaryDefaultValue,O=void 0===_?null:_,C=e.disabled,D=e.isHiddenTitle,F=void 0!==D&&D,x=e.isNullable,N=void 0!==x&&x,R=e.label,V=void 0===R?"Choose An Asset":R,w=e.onSettingsChange,G=e.primaryAssetFields,Y=void 0===G?E:G,L=e.secondaryAssetFields,k=void 0===L?E:L,U=e.isExtendedSelect,W=e.isRequiredAssetId,K=e.settings,M=e.isVisibleMultipleAssetsToggle,H=void 0!==M&&M,z=e.assetsLimit,B=void 0===z?null:z,J=e.isDisabledSecondaryAssetSelect,Q=void 0!==J&&J,X=e.isDrillingPlatformApp,Z=e.secondaryAssetHelpText,$=void 0===Z?null:Z,ee=e.onChange,te=void 0===ee?a.noop:ee,se=e.elementsClassNames,re=void 0===se?P:se,ae=i.primaryAsset.assetType,ne=null===(t=i.secondaryAsset)||void 0===t?void 0:t.assetType,ie=null==ae?void 0:ae.type,le=null==ae?void 0:ae.id,ue=null==ae?void 0:ae.label,oe=i.primaryAsset.groups,de=!!ne,ce=null==ne?void 0:ne.type,pe=null==ne?void 0:ne.id,fe=null==ne?void 0:ne.label,ye=le?K[le]:null,Ae=pe?K[pe]:null,ve=ye?Number(ye):null,me=Ae?Number(Ae):O||null,Se=r.useState({id:ve||h}),ge=g.default(Se,2),be=ge[0],je=ge[1],Te=r.useState(me),Ie=g.default(Te,2),Ee=Ie[0],Pe=Ie[1],qe=r.useState(!1),he=g.default(qe,2),_e=he[0],Oe=he[1],Ce=r.useState(null),De=g.default(Ce,2),Fe=De[0],xe=De[1],Ne=r.useState(!1),Re=g.default(Ne,2),Ve=Re[0],we=Re[1],Ge=r.useRef(!1),Ye=function(e){w(e,Ge.current)},Le=I(),ke=ie===u.ASSET_TYPES.rig.type||ie===u.ASSET_TYPES.intervention_unit.type?p:o,Ue=Array.isArray(be)?null:be,We=X&&null!=Ue&&Ue.assetId?Ue.assetId:null==Ue?void 0:Ue.id,Ke=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ge.current;je(e?[]:null),Pe(null),Oe(!1);var t={assets:null};le&&(t[le]=null),pe&&(t[pe]=null),Ye(t)},Me=de&&(Ve?Array.isArray(be)&&!!be.length&&!_e:(null==Ue?void 0:Ue.id)&&!_e);return r.useEffect((function(){a.isEmpty(K)&&Ke()}),[K]),A.jsxs("div",{className:v,children:[!F&&A.jsx("div",{className:b.default(Le.title,re.title),children:"Asset"}),H&&A.jsx(c,{onChange:function(e){Ge.current=!!e,we(e),Ke(e)},className:re.multiAssetSwitch,checked:Ve}),A.jsx("div",{className:re.primaryAssetSelect,children:A.jsx(ke,{appKey:n,assetType:ie,company:j,currentOption:be,currentValue:null==Ue?void 0:Ue.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:de,defaultValue:h,disableClearable:!N,disabled:C,isNullable:N,isRequiredAssetId:W,label:V,multiple:Ve,onChange:function(e){if(te({primary:e}),Ve)Array.isArray(e)&&function(e){var t,s;if(!(e.length>Number(B))){var r=(null===(t=e[0])||void 0===t?void 0:t.group)===l.PAD_GROUP.name,a=(null===(s=e[0])||void 0===s?void 0:s.group)===l.FRAC_FLEET_GROUP.name,n=1===e.length&&r,i=1===e.length&&a;if(n?(Oe(!0),xe(l.PAD_GROUP)):i&&xe(l.FRAC_FLEET_GROUP),r){je(e);var u=e.reduce((function(e,t){var s=t.parentFracFleetId,r=t.id,a={fracFleetId:s,padId:r};return U&&(a.assetId=s,a.replacedPadId=r),s?[].concat(m.default(e),[a]):e}),[]);Ye({assets:u})}else{je(e);var o=e.reduce((function(e,t){var s=S.default({},"".concat(t.type,"Id"),t.id);return W&&(s.assetId=t.assetId),U&&(s.assetId=t.assetId||t.id),[].concat(m.default(e),[s])}),[]);Ye({assets:o})}}}(e);else if(e&&!Array.isArray(e)&&le){var t=e.id,s=e.type,r=e.parentFracFleetId;if(t)if(s!==u.ASSET_TYPES.pad.type){je(e),Pe(null);var a=S.default({},le,t);W&&(a.assetId=e.assetId),pe&&(a[pe]=null),Ye(a),Oe(!1)}else{var n;je(e),Oe(!0),Pe(t);var i=(n={},S.default(n,u.ASSET_TYPES.frac_fleet.id,Number(r)),S.default(n,u.ASSET_TYPES.pad.id,t),n);Ye(i)}}},setCurrentOption:je,selectedGroup:Fe,onGroupChange:function(e){xe(e),Ke()},onGroupReset:function(){xe(null),Ke()},groups:oe,onInputReset:Ke,onActiveAssetIdChange:function(e){je((function(t){return Array.isArray(t)?t:T(T({},t),{},{activeWellId:e})}))},isDrillingPlatformApp:X,assetFields:y.getPrimaryAssetFields({primaryAssetType:ie,assetFields:Y,isDrillingPlatformApp:X})})}),Me&&A.jsxs("div",{className:re.secondaryAssetSelect,children:[$,A.jsx(d.default,{assetFields:ce===u.ASSET_TYPES.pad.type?[].concat(m.default(k),["pad.active","pad.current"]):k,activeWellId:null==Ue?void 0:Ue.activeWellId,appKey:n,assetType:ce,company:j,currentValue:Ee,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:Ve?f.ACTIVE_ASSETS_ID:f.ACTIVE_ASSET_ID,disabled:Ve||Q||C,isDrillingPlatformApp:X,isNullable:N,isRequiredAssetId:W,onChange:function(e){var t=e.id,s=e.assetId,r=e.name;if(pe){te({secondary:{name:r}}),Pe(t);var a=t===f.ACTIVE_ASSET_ID?null:t,n=S.default({},pe,a);W&&ce===u.ASSET_TYPES.well.type?Ye(T(T({},n),{},{replacedAssetId:X?a:s})):Ye(n)}},parentAssetId:We,parentAssetType:X?"parent_asset_id":ie,primaryAssetLabel:ue,secondaryAssetLabel:fe})]})]})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle,\n isNullable,\n label,\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields,\n secondaryAssetFields,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle,\n assetsLimit,\n isDisabledSecondaryAssetSelect,\n isDrillingPlatformApp,\n secondaryAssetHelpText,\n onChange,\n elementsClassNames,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const isSecondaryAssetPresent = get(appType, ['secondaryAsset'], false);\n\n const secondaryAssetType = get(appType, ['secondaryAsset', 'assetType', 'type']);\n const secondaryAssetIdType = get(appType, ['secondaryAsset', 'assetType', 'id']);\n const secondaryAssetLabel = get(appType, ['secondaryAsset', 'assetType', 'label']);\n\n const currentValue = get(settings, primaryAssetIdType);\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = get(settings, secondaryAssetIdType)\n ? Number(get(settings, secondaryAssetIdType))\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState({ id: initialPrimaryAssetId || defaultValue });\n\n const [secondaryAssetId, setSecondaryAssetId] = useState(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState();\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n const onSettingsChange = (...args) => {\n propsOnSettingsChange(...args, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ? PrimaryAssetSelectV2\n : PrimaryAssetSelect;\n\n const parentAssetId =\n isDrillingPlatformApp && primaryAsset?.assetId ? primaryAsset?.assetId : primaryAsset?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }) => {\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const secondaryAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: secondaryAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? secondaryAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = selected => {\n if (selected.length > assetsLimit) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected?.reduce((acc, { parentFracFleetId, id }) => {\n const settings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n settings.assetId = parentFracFleetId;\n settings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, settings] : acc;\n }, []);\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce((acc, asset) => {\n const settings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n settings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n settings.assetId = asset.assetId || asset.id;\n }\n return [...acc, settings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = selected => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n onMultipleAssetChange(selected);\n return;\n }\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (defaultValue = {}) => {\n setPrimaryAsset(defaultValue);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting = {\n [primaryAssetIdType]: null,\n [secondaryAssetIdType]: null,\n assets: null,\n };\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = checked => {\n isMultipleAssetsRef.current = !!checked;\n setIsMultipleAssets(checked);\n handlePrimaryAssetReset(checked && []);\n };\n\n const handleGroupChange = newGroup => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const secondaryAssetSelectIsVisible =\n isSecondaryAssetPresent &&\n (isMultipleAssets\n ? Boolean(primaryAsset.length) && !isPadSelectedAsPrimaryAsset\n : primaryAsset?.id && !isPadSelectedAsPrimaryAsset);\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset(isMultipleAssets && []);\n }\n }, [settings]);\n\n return (\n <div className={classNames(styles.main, className)}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n checked={isMultipleAssets}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryAsset?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n isSecondaryAssetPresent={isSecondaryAssetPresent}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(primaryAsset => ({ ...primaryAsset, activeWellId: activeAssetId }));\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields(\n primaryAssetType,\n primaryAssetFields,\n isDrillingPlatformApp\n )}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryAsset?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nAppSettingsAssetEditor.defaultProps = {\n assetsLimit: null,\n label: 'Choose An Asset',\n isNullable: false,\n defaultValue: undefined,\n secondaryDefaultValue: undefined,\n isHiddenTitle: false,\n appKey: null,\n isVisibleMultipleAssetsToggle: false,\n isDisabledSecondaryAssetSelect: false,\n primaryAssetFields: [],\n secondaryAssetFields: [],\n secondaryAssetHelpText: null,\n onChange: noop,\n elementsClassNames: {},\n};\n\nAppSettingsAssetEditor.propTypes = {\n assetsLimit: PropTypes.number,\n settings: PropTypes.shape({}).isRequired,\n appType: PropTypes.shape({}).isRequired,\n defaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n secondaryDefaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n onSettingsChange: PropTypes.func.isRequired,\n label: PropTypes.string,\n isNullable: PropTypes.bool,\n isHiddenTitle: PropTypes.bool,\n appKey: PropTypes.string,\n isVisibleMultipleAssetsToggle: PropTypes.bool,\n isDisabledSecondaryAssetSelect: PropTypes.bool,\n primaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetHelpText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n onChange: PropTypes.func,\n elementsClassNames: PropTypes.shape({\n title: PropTypes.string,\n multiAssetSwitch: PropTypes.string,\n primaryAssetSelect: PropTypes.string,\n secondaryAssetSelect: PropTypes.string,\n }),\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","AppSettingsAssetEditor","_ref","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","isHiddenTitle","isNullable","label","propsOnSettingsChange","onSettingsChange","primaryAssetFields","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","isVisibleMultipleAssetsToggle","assetsLimit","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","secondaryAssetHelpText","onChange","elementsClassNames","primaryAssetType","get","primaryAssetIdType","primaryAssetLabel","primaryAssetSelectGroups","isSecondaryAssetPresent","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","id","_useState2","_slicedToArray","primaryAsset","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState7","_useState8","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","_len","arguments","length","args","Array","_key","concat","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","type","intervention_unit","PrimaryAssetSelectV2","PrimaryAssetSelect","parentAssetId","assetId","handlePrimaryAssetReset","_assetSetting4","undefined","assetSetting","_defineProperty","secondaryAssetSelectIsVisible","Boolean","useEffect","isEmpty","_jsxs","classNames","main","children","_jsx","jsx","MultipleAssetsToggle","checked","multiAssetSwitch","primaryAssetSelect","assetType","currentOption","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","fracFleetId","padId","replacedPadId","assets","asset","onMultipleAssetChange","pad","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","groups","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","jsxs","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","defaultProps","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/index.tsx"],"sourcesContent":["import { FC, ReactNode, useEffect, useRef, useState } from 'react';\nimport { isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\nimport {\n AssetEditorAppType,\n AssetEditorChange,\n AssetGroup,\n AssetId,\n AssetOption,\n AssetSelection,\n AssetSelectionSettings,\n AssetSettings,\n AssetSettingsChangeHandler,\n AssetSettingsPatch,\n PrimaryAssetChange,\n SecondaryAssetChange,\n} from './types';\n\nexport type {\n AssetEditorAppType,\n AssetEditorChange,\n AssetSettings,\n AssetSettingsChangeHandler,\n AssetSettingsPatch,\n} from './types';\n\ntype AppSettingsAssetEditorProps = {\n appType: AssetEditorAppType;\n settings: AssetSettings;\n onSettingsChange: AssetSettingsChangeHandler;\n appKey?: string | null;\n className?: string;\n company?: AssetId | null;\n defaultValue?: AssetId | null;\n secondaryDefaultValue?: AssetId | null;\n disabled?: boolean;\n isHiddenTitle?: boolean;\n isNullable?: boolean;\n label?: string;\n primaryAssetFields?: string[];\n secondaryAssetFields?: string[];\n isExtendedSelect?: boolean;\n isRequiredAssetId?: boolean;\n isVisibleMultipleAssetsToggle?: boolean;\n assetsLimit?: number | null;\n isDisabledSecondaryAssetSelect?: boolean;\n isDrillingPlatformApp?: boolean;\n secondaryAssetHelpText?: ReactNode;\n onChange?: (change: AssetEditorChange) => void;\n elementsClassNames?: {\n title?: string;\n multiAssetSwitch?: string;\n primaryAssetSelect?: string;\n secondaryAssetSelect?: string;\n };\n /** @deprecated Retained for WorkflowEditRow compatibility; has no effect. */\n isWorkflowsEditModal?: boolean;\n};\n\nexport type AppSettingsAssetEditorV2Props = AppSettingsAssetEditorProps;\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\nconst DEFAULT_ASSET_FIELDS: string[] = [];\nconst DEFAULT_ELEMENT_CLASS_NAMES: NonNullable<AppSettingsAssetEditorProps['elementsClassNames']> =\n {};\n\nconst AppSettingsAssetEditor: FC<AppSettingsAssetEditorProps> = ({\n appKey = null,\n appType,\n className,\n company,\n defaultValue = null,\n secondaryDefaultValue = null,\n disabled,\n isHiddenTitle = false,\n isNullable = false,\n label = 'Choose An Asset',\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields = DEFAULT_ASSET_FIELDS,\n secondaryAssetFields = DEFAULT_ASSET_FIELDS,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle = false,\n assetsLimit = null,\n isDisabledSecondaryAssetSelect = false,\n isDrillingPlatformApp,\n secondaryAssetHelpText = null,\n onChange = noop,\n elementsClassNames = DEFAULT_ELEMENT_CLASS_NAMES,\n}) => {\n const primaryDescriptor = appType.primaryAsset.assetType;\n const secondaryDescriptor = appType.secondaryAsset?.assetType;\n const primaryAssetType = primaryDescriptor?.type;\n const primaryAssetIdType = primaryDescriptor?.id;\n const primaryAssetLabel = primaryDescriptor?.label;\n const primaryAssetSelectGroups = appType.primaryAsset.groups;\n const isSecondaryAssetPresent = !!secondaryDescriptor;\n const secondaryAssetType = secondaryDescriptor?.type;\n const secondaryAssetIdType = secondaryDescriptor?.id;\n const secondaryAssetLabel = secondaryDescriptor?.label;\n\n const currentValue = primaryAssetIdType ? settings[primaryAssetIdType] : null;\n const currentSecondaryValue = secondaryAssetIdType ? settings[secondaryAssetIdType] : null;\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = currentSecondaryValue\n ? Number(currentSecondaryValue)\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState<AssetSelection>({\n id: initialPrimaryAssetId || defaultValue,\n });\n const [secondaryAssetId, setSecondaryAssetId] = useState<AssetId | null>(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState<AssetGroup | null>(null);\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n\n const onSettingsChange = (settingsPatch: AssetSettingsPatch) => {\n propsOnSettingsChange(settingsPatch, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ? PrimaryAssetSelectV2\n : PrimaryAssetSelect;\n\n const primaryOption = Array.isArray(primaryAsset) ? null : primaryAsset;\n const parentAssetId =\n isDrillingPlatformApp && primaryOption?.assetId ? primaryOption.assetId : primaryOption?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }: SecondaryAssetChange) => {\n if (!secondaryAssetIdType) return;\n\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const selectedAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: selectedAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? selectedAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = (selected: AssetOption[]) => {\n // The legacy null limit allows no selections; explicit limits opt into multiple assets.\n if (selected.length > Number(assetsLimit)) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce<AssetSelectionSettings[]>(\n (acc, { parentFracFleetId, id }) => {\n const assetSettings: AssetSelectionSettings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n assetSettings.assetId = parentFracFleetId;\n assetSettings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, assetSettings] : acc;\n },\n []\n );\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce<AssetSelectionSettings[]>((acc, asset) => {\n const assetSettings: AssetSelectionSettings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n assetSettings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n assetSettings.assetId = asset.assetId || asset.id;\n }\n return [...acc, assetSettings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = (selected: PrimaryAssetChange) => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n if (Array.isArray(selected)) onMultipleAssetChange(selected);\n return;\n }\n\n if (!selected || Array.isArray(selected) || !primaryAssetIdType) return;\n\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting: AssetSettingsPatch = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (isMultiple = isMultipleAssetsRef.current) => {\n setPrimaryAsset(isMultiple ? [] : null);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting: AssetSettingsPatch = { assets: null };\n if (primaryAssetIdType) assetSetting[primaryAssetIdType] = null;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = (checked: boolean) => {\n isMultipleAssetsRef.current = !!checked;\n setIsMultipleAssets(checked);\n handlePrimaryAssetReset(checked);\n };\n\n const handleGroupChange = (newGroup: AssetGroup | null) => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset();\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset();\n };\n\n const secondaryAssetSelectIsVisible =\n isSecondaryAssetPresent &&\n (isMultipleAssets\n ? Array.isArray(primaryAsset) && !!primaryAsset.length && !isPadSelectedAsPrimaryAsset\n : primaryOption?.id && !isPadSelectedAsPrimaryAsset);\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset();\n }\n }, [settings]);\n\n return (\n <div className={className}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n checked={isMultipleAssets}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryOption?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n isSecondaryAssetPresent={isSecondaryAssetPresent}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(current =>\n Array.isArray(current) ? current : { ...current, activeWellId: activeAssetId }\n );\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields({\n primaryAssetType,\n assetFields: primaryAssetFields,\n isDrillingPlatformApp,\n })}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryOption?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","DEFAULT_ASSET_FIELDS","DEFAULT_ELEMENT_CLASS_NAMES","_ref","_appType$secondaryAss","_ref$appKey","appKey","appType","className","company","_ref$defaultValue","defaultValue","_ref$secondaryDefault","secondaryDefaultValue","disabled","_ref$isHiddenTitle","isHiddenTitle","_ref$isNullable","isNullable","_ref$label","label","propsOnSettingsChange","onSettingsChange","_ref$primaryAssetFiel","primaryAssetFields","_ref$secondaryAssetFi","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","_ref$isVisibleMultipl","isVisibleMultipleAssetsToggle","_ref$assetsLimit","assetsLimit","_ref$isDisabledSecond","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","_ref$secondaryAssetHe","secondaryAssetHelpText","_ref$onChange","onChange","noop","_ref$elementsClassNam","elementsClassNames","primaryDescriptor","primaryAsset","assetType","secondaryDescriptor","secondaryAsset","primaryAssetType","type","primaryAssetIdType","id","primaryAssetLabel","primaryAssetSelectGroups","groups","isSecondaryAssetPresent","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","currentSecondaryValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","_useState2","_slicedToArray","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState8","_useState7","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","settingsPatch","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","intervention_unit","PrimaryAssetSelectV2","PrimaryAssetSelect","primaryOption","Array","isArray","parentAssetId","assetId","handlePrimaryAssetReset","isMultiple","arguments","length","undefined","assetSetting","assets","secondaryAssetSelectIsVisible","useEffect","isEmpty","_jsxs","children","_jsx","classNames","jsx","MultipleAssetsToggle","checked","multiAssetSwitch","primaryAssetSelect","currentOption","concat","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","assetSettings","fracFleetId","padId","replacedPadId","asset","onMultipleAssetChange","pad","_defineProperty","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","jsxs","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","selectedAssetId","well","replacedAssetId","parentAssetType"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray");require("lodash");var t=require("../constants.js");require("../../../constants/goals.js"),require("../../../constants/segment.js"),require("../../../constants/alerts.js"),require("../../../constants/apps.js"),require("../../../constants/drillstring.js"),require("../../../constants/completion.js"),require("../../../constants/appPackages.js"),require("../../../constants/notifications.js"),require("../../../constants/feed.js"),require("../../../constants/bha.js");var r=require("../../../constants/assetTypes.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../constants/corvaCompanyId.js"),require("../../GradientManager/configuration/constants.js");var n=s(e);exports.formatAsset=function(e){var s=e.asset,n=e.group,a=void 0===n?null:n,i=e.activeWellId,l=void 0===i?null:i,o=e.isRequiredAssetId,u=e.isPrimaryAsset,c=e.isDrillingPlatformApp;if(!s)return null;var d,p,S,v={id:+s.assetId||+s.id,type:s.type,name:s.name};(o&&(v.id=+s.id,v.assetId=+s.assetId),a&&(v.group=a),s.type===r.ASSET_TYPES.rig.type)&&(v.activeWellId=Number(null===(d=s.activeWell)||void 0===d?void 0:d.id)||null,c&&(v.activeWellId=Number(null===(p=s.activeWell)||void 0===p?void 0:p.assetId)||null));"interventionUnit"===s.type&&(v.activeWellId=Number(null===(S=s.activeWell)||void 0===S?void 0:S.id)||null);return s.type!==r.ASSET_TYPES.well.type&&s.type!==t.DEFAULT_ASSET_TYPE||(v.status=Number(s.id)===l?t.ACTIVE_STATUS:null),s.type===r.ASSET_TYPES.pad.type&&(v.parentFracFleetId=s.parentFracFleetId,v.status=s.active&&s.current?t.ACTIVE_STATUS:null,u&&!s.parentFracFleetId&&(v.status=null)),v},exports.getPrimaryAssetFields=function(e,t,s){var a=n.default(t);return e!==r.ASSET_TYPES.rig.type&&e!==r.ASSET_TYPES.intervention_unit.type||a.push("".concat(e,".active_well")),s?[].concat(n.default(a),["rig.active_child"]):a},exports.getRequestOptions=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{sort:"name",order:"asc",fields:["".concat(e,".name"),"".concat(e,".status")].concat(n.default(t))}},exports.getSearchPlaceholder=function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=r?t.ASSET_TYPE_SEARCH_PLACEHOLDERS:t.ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;return s[e]||"Search..."},exports.sortAsset=function(e){return e.status===t.ACTIVE_STATUS?-1:1};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/typeof"),r=require("../constants.js");require("../../../constants/goals.js"),require("../../../constants/segment.js"),require("../../../constants/alerts.js"),require("../../../constants/apps.js"),require("../../../constants/drillstring.js"),require("../../../constants/completion.js"),require("../../../constants/appPackages.js"),require("../../../constants/notifications.js"),require("../../../constants/feed.js"),require("../../../constants/bha.js");var n=require("../../../constants/assetTypes.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../constants/corvaCompanyId.js"),require("lodash"),require("../../GradientManager/configuration/constants.js");var a=s(e),i=s(t),u=function(e){return"object"===i.default(e)&&null!==e&&!Array.isArray(e)},o=function(e){return"string"==typeof e?e:void 0},l=function(e,t){var r=e.activeWell;return u(r)?r[t]:void 0};exports.formatAsset=function(e){var t=e.asset,s=e.group,a=void 0===s?null:s,i=e.activeWellId,c=void 0===i?null:i,d=e.isRequiredAssetId,p=e.isPrimaryAsset,S=e.isDrillingPlatformApp;if(!u(t))return null;var f=o(t.type),A={id:Number(t.assetId)||Number(t.id),type:f,name:o(t.name)};return d&&(A.id=Number(t.id),A.assetId=Number(t.assetId)),a&&(A.group=a),f===n.ASSET_TYPES.rig.type&&(A.activeWellId=Number(l(t,"id"))||null,S&&(A.activeWellId=Number(l(t,"assetId"))||null)),"interventionUnit"===f&&(A.activeWellId=Number(l(t,"id"))||null),f!==n.ASSET_TYPES.well.type&&f!==r.DEFAULT_ASSET_TYPE||(A.status=Number(t.id)===c?r.ACTIVE_STATUS:null),f===n.ASSET_TYPES.pad.type&&(A.parentFracFleetId=function(e){if("number"==typeof e||"string"==typeof e||null===e)return e}(t.parentFracFleetId),A.status=t.active&&t.current?r.ACTIVE_STATUS:null,p&&!t.parentFracFleetId&&(A.status=null)),A},exports.getPrimaryAssetFields=function(e){var t=e.primaryAssetType,r=e.assetFields,s=e.isDrillingPlatformApp,i=a.default(r);return t!==n.ASSET_TYPES.rig.type&&t!==n.ASSET_TYPES.intervention_unit.type||i.push("".concat(t,".active_well")),s?[].concat(a.default(i),["rig.active_child"]):i},exports.getRequestOptions=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{sort:"name",order:"asc",fields:["".concat(e,".name"),"".concat(e,".status")].concat(a.default(t))}},exports.getSearchPlaceholder=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=t?r.ASSET_TYPE_SEARCH_PLACEHOLDERS:r.ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;return e&&n[e]||"Search..."},exports.isAssetOption=function(e){return Boolean(e)},exports.sortAsset=function(e){return e.status===r.ACTIVE_STATUS?-1:1};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/AssetEditorV2/utils/index.js"],"sourcesContent":["import { isEmpty } from 'lodash';\n\nimport {\n ACTIVE_STATUS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY,\n DEFAULT_ASSET_TYPE,\n} from '../constants';\n\nimport { ASSET_TYPES } from '~/constants';\n\nexport const mapAssetIdPath = assetType => {\n switch (assetType) {\n case 'rig':\n case 'well':\n return ['attributes', 'asset_id'];\n case 'frac_fleet':\n case 'pad':\n default:\n return ['id'];\n }\n};\n\nexport const getPadFracFleetId = (fracFleets = []) => {\n const currentFracFleet = fracFleets.find(fracFleet => fracFleet === fracFleet.current)?.id;\n const lastCurrentFracFleet = fracFleets.reduce((a, b) => {\n return new Date(a.lastCurrentAt) > new Date(b.lastCurrentAt) ? a : b;\n }, {});\n\n if (!isEmpty(currentFracFleet)) {\n return currentFracFleet.fracFleet?.id;\n }\n return lastCurrentFracFleet.fracFleet?.id;\n};\n\nexport const getRequestOptions = (assetType, assetFields = []) => ({\n sort: 'name',\n order: 'asc',\n fields: [`${assetType}.name`, `${assetType}.status`, ...assetFields],\n});\n\nexport const formatAsset = ({\n asset,\n group = null,\n activeWellId = null,\n isRequiredAssetId,\n isPrimaryAsset,\n isDrillingPlatformApp,\n}) => {\n if (!asset) return null;\n\n const formattedAsset = {\n id: +asset.assetId || +asset.id,\n type: asset.type,\n name: asset.name,\n };\n\n if (isRequiredAssetId) {\n formattedAsset.id = +asset.id;\n formattedAsset.assetId = +asset.assetId;\n }\n\n if (group) {\n formattedAsset.group = group;\n }\n if (asset.type === ASSET_TYPES.rig.type) {\n formattedAsset.activeWellId = Number(asset.activeWell?.id) || null;\n if (isDrillingPlatformApp) {\n formattedAsset.activeWellId = Number(asset.activeWell?.assetId) || null;\n }\n }\n // NOTE: we use deserializer which transform keys and values to camelCase\n if (asset.type === 'interventionUnit') {\n formattedAsset.activeWellId = Number(asset.activeWell?.id) || null;\n }\n if (asset.type === ASSET_TYPES.well.type || asset.type === DEFAULT_ASSET_TYPE) {\n formattedAsset.status = Number(asset.id) === activeWellId ? ACTIVE_STATUS : null;\n }\n if (asset.type === ASSET_TYPES.pad.type) {\n formattedAsset.parentFracFleetId = asset.parentFracFleetId;\n\n formattedAsset.status = asset.active && asset.current ? ACTIVE_STATUS : null;\n\n if (isPrimaryAsset && !asset.parentFracFleetId) {\n formattedAsset.status = null;\n }\n }\n return formattedAsset;\n};\n\nexport const sortAsset = curr => (curr.status === ACTIVE_STATUS ? -1 : 1);\n\nexport const getPrimaryAssetFields = (primaryAssetType, assetFields, isDrillingPlatformApp) => {\n const customAssetFields = [...assetFields];\n if (\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ) {\n customAssetFields.push(`${primaryAssetType}.active_well`);\n }\n\n if (isDrillingPlatformApp) return [...customAssetFields, 'rig.active_child'];\n\n return customAssetFields;\n};\n\nexport const getSearchPlaceholder = (assetType, isSecondaryAssetPresent = true) => {\n const assetPlacehoders = isSecondaryAssetPresent\n ? ASSET_TYPE_SEARCH_PLACEHOLDERS\n : ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;\n return assetPlacehoders[assetType] || 'Search...';\n};\n"],"names":["_ref","asset","_ref$group","group","_ref$activeWellId","activeWellId","isRequiredAssetId","isPrimaryAsset","isDrillingPlatformApp","_asset$activeWell","_asset$activeWell2","_asset$activeWell3","formattedAsset","id","assetId","type","name","ASSET_TYPES","rig","Number","activeWell","well","DEFAULT_ASSET_TYPE","status","ACTIVE_STATUS","pad","parentFracFleetId","active","current","primaryAssetType","assetFields","customAssetFields","intervention_unit","push","assetType","sort","order","fields","isSecondaryAssetPresent","assetPlacehoders","ASSET_TYPE_SEARCH_PLACEHOLDERS","ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY","curr"],"mappings":"o1BAyC2B,SAOrBA,GAAA,IANJC,IAAAA,MAAKC,EAAAF,EACLG,MAAAA,aAAQ,KAAID,EAAAE,EAAAJ,EACZK,aAAAA,aAAe,KAAID,EACnBE,IAAAA,kBACAC,IAAAA,eACAC,IAAAA,sBAEA,IAAKP,EAAO,OAAO,KAEnB,IAcyCQ,EAEZC,EAKUC,EArBjCC,EAAiB,CACrBC,IAAKZ,EAAMa,UAAYb,EAAMY,GAC7BE,KAAMd,EAAMc,KACZC,KAAMf,EAAMe,OAGVV,IACFM,EAAeC,IAAMZ,EAAMY,GAC3BD,EAAeE,SAAWb,EAAMa,SAG9BX,IACFS,EAAeT,MAAQA,GAErBF,EAAMc,OAASE,cAAYC,IAAIH,QACjCH,EAAeP,aAAec,OAAO,QAAAlB,EAAAA,EAAMmB,kBAAN,IAAAX,OAAA,EAAAA,EAAkBI,KAAO,KAC1DL,IACFI,EAAeP,aAAec,OAAO,QAAAlB,EAAAA,EAAMmB,kBAAN,IAAAV,OAAA,EAAAA,EAAkBI,UAAY,OAIpD,qBAAfb,EAAMc,OACRH,EAAeP,aAAec,OAAO,QAAAlB,EAAAA,EAAMmB,kBAAN,IAAAT,OAAA,EAAAA,EAAkBE,KAAO,MAchE,OAZIZ,EAAMc,OAASE,cAAYI,KAAKN,MAAQd,EAAMc,OAASO,uBACzDV,EAAeW,OAASJ,OAAOlB,EAAMY,MAAQR,EAAemB,EAAaA,cAAG,MAE1EvB,EAAMc,OAASE,cAAYQ,IAAIV,OACjCH,EAAec,kBAAoBzB,EAAMyB,kBAEzCd,EAAeW,OAAStB,EAAM0B,QAAU1B,EAAM2B,QAAUJ,EAAaA,cAAG,KAEpEjB,IAAmBN,EAAMyB,oBAC3Bd,EAAeW,OAAS,OAGrBX,CACT,gCAIqC,SAACiB,EAAkBC,EAAatB,GACnE,IAAMuB,EAAwBD,UAAAA,GAQ9B,OANED,IAAqBZ,EAAWA,YAACC,IAAIH,MACrCc,IAAqBZ,EAAWA,YAACe,kBAAkBjB,MAEnDgB,EAAkBE,KAAQJ,GAAAA,OAAAA,EAA+B,iBAGvDrB,EAAkCuB,GAAAA,OAAAA,EAAAA,QAAAA,IAAmB,qBAElDA,CACT,4BArEiC,SAACG,GAAS,IAAEJ,yDAAc,GAAE,MAAM,CACjEK,KAAM,OACNC,MAAO,MACPC,OAAYH,CAAAA,GAAAA,OAAAA,EAAqBA,SAAAA,GAAAA,OAAAA,+BAAuBJ,IACzD,+BAmEmC,SAACI,GAA8C,IAAnCI,6DACxCC,EAAmBD,EACrBE,EAA8BA,+BAC9BC,8CACJ,OAAOF,EAAiBL,IAAc,WACxC,oBArByB,SAAAQ,GAAI,OAAKA,EAAKnB,SAAWC,EAAaA,eAAI,EAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/AssetEditorV2/utils/index.ts"],"sourcesContent":["import {\n ACTIVE_STATUS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY,\n DEFAULT_ASSET_TYPE,\n} from '../constants';\nimport { AssetId, AssetOption } from '../types';\n\nimport { ASSET_TYPES } from '~/constants';\n\ntype FormatAssetParams = {\n asset: unknown;\n group?: string | null;\n activeWellId?: AssetId | null;\n isRequiredAssetId?: boolean;\n isPrimaryAsset?: boolean;\n isDrillingPlatformApp?: boolean;\n};\n\ntype GetPrimaryAssetFieldsParams = {\n primaryAssetType?: string | null;\n assetFields: string[];\n isDrillingPlatformApp?: boolean;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst getString = (value: unknown): string | undefined =>\n typeof value === 'string' ? value : undefined;\n\nconst getAssetId = (value: unknown): AssetId | null | undefined => {\n if (typeof value === 'number' || typeof value === 'string' || value === null) return value;\n\n return undefined;\n};\n\nconst getActiveWellValue = (asset: Record<string, unknown>, key: string): unknown => {\n const activeWell = asset.activeWell;\n\n return isRecord(activeWell) ? activeWell[key] : undefined;\n};\n\nexport const mapAssetIdPath = (assetType: string): string[] => {\n switch (assetType) {\n case 'rig':\n case 'well':\n return ['attributes', 'asset_id'];\n case 'frac_fleet':\n case 'pad':\n default:\n return ['id'];\n }\n};\n\nexport const getRequestOptions = (assetType: string, assetFields: string[] = []) => ({\n sort: 'name',\n order: 'asc',\n fields: [`${assetType}.name`, `${assetType}.status`, ...assetFields],\n});\n\nexport const formatAsset = ({\n asset,\n group = null,\n activeWellId = null,\n isRequiredAssetId,\n isPrimaryAsset,\n isDrillingPlatformApp,\n}: FormatAssetParams): AssetOption | null => {\n if (!isRecord(asset)) return null;\n\n const type = getString(asset.type);\n const formattedAsset: AssetOption = {\n id: Number(asset.assetId) || Number(asset.id),\n type,\n name: getString(asset.name),\n };\n\n if (isRequiredAssetId) {\n formattedAsset.id = Number(asset.id);\n formattedAsset.assetId = Number(asset.assetId);\n }\n\n if (group) {\n formattedAsset.group = group;\n }\n\n if (type === ASSET_TYPES.rig.type) {\n formattedAsset.activeWellId = Number(getActiveWellValue(asset, 'id')) || null;\n\n if (isDrillingPlatformApp) {\n formattedAsset.activeWellId = Number(getActiveWellValue(asset, 'assetId')) || null;\n }\n }\n\n // The deserializer transforms keys and values to camelCase.\n if (type === 'interventionUnit') {\n formattedAsset.activeWellId = Number(getActiveWellValue(asset, 'id')) || null;\n }\n\n if (type === ASSET_TYPES.well.type || type === DEFAULT_ASSET_TYPE) {\n formattedAsset.status = Number(asset.id) === activeWellId ? ACTIVE_STATUS : null;\n }\n\n if (type === ASSET_TYPES.pad.type) {\n formattedAsset.parentFracFleetId = getAssetId(asset.parentFracFleetId);\n formattedAsset.status = asset.active && asset.current ? ACTIVE_STATUS : null;\n\n if (isPrimaryAsset && !asset.parentFracFleetId) {\n formattedAsset.status = null;\n }\n }\n\n return formattedAsset;\n};\n\nexport const isAssetOption = (asset: AssetOption | null): asset is AssetOption => Boolean(asset);\n\nexport const sortAsset = (asset: AssetOption): number => (asset.status === ACTIVE_STATUS ? -1 : 1);\n\nexport const getPrimaryAssetFields = ({\n primaryAssetType,\n assetFields,\n isDrillingPlatformApp,\n}: GetPrimaryAssetFieldsParams): string[] => {\n const customAssetFields = [...assetFields];\n\n if (\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ) {\n customAssetFields.push(`${primaryAssetType}.active_well`);\n }\n\n if (isDrillingPlatformApp) return [...customAssetFields, 'rig.active_child'];\n\n return customAssetFields;\n};\n\nexport const getSearchPlaceholder = (\n assetType?: string | null,\n isSecondaryAssetPresent = true\n): string => {\n const assetPlaceholders = isSecondaryAssetPresent\n ? ASSET_TYPE_SEARCH_PLACEHOLDERS\n : ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;\n\n return (assetType && assetPlaceholders[assetType]) || 'Search...';\n};\n"],"names":["isRecord","value","_typeof","Array","isArray","getString","undefined","getActiveWellValue","asset","key","activeWell","_ref","_ref$group","group","_ref$activeWellId","activeWellId","isRequiredAssetId","isPrimaryAsset","isDrillingPlatformApp","type","formattedAsset","id","Number","assetId","name","ASSET_TYPES","rig","well","DEFAULT_ASSET_TYPE","status","ACTIVE_STATUS","pad","parentFracFleetId","getAssetId","active","current","_ref2","primaryAssetType","assetFields","customAssetFields","intervention_unit","push","assetType","sort","order","fields","isSecondaryAssetPresent","assetPlaceholders","ASSET_TYPE_SEARCH_PLACEHOLDERS","ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY","Boolean"],"mappings":"82BAyBMA,EAAW,SAACC,GAAc,MACb,WAAjBC,EAAOD,QAAAA,IAAgC,OAAVA,IAAmBE,MAAMC,QAAQH,EAAM,EAEhEI,EAAY,SAACJ,GAAc,MACd,iBAAVA,EAAqBA,OAAQK,CAAS,EAQzCC,EAAqB,SAACC,EAAgCC,GAC1D,IAAMC,EAAaF,EAAME,WAEzB,OAAOV,EAASU,GAAcA,EAAWD,QAAOH,CAClD,sBAoB2B,SAOkBK,GAAA,IAN3CH,IAAAA,MAAKI,EAAAD,EACLE,MAAAA,aAAQ,KAAID,EAAAE,EAAAH,EACZI,aAAAA,aAAe,KAAID,EACnBE,IAAAA,kBACAC,IAAAA,eACAC,IAAAA,sBAEA,IAAKlB,EAASQ,GAAQ,OAAO,KAE7B,IAAMW,EAAOd,EAAUG,EAAMW,MACvBC,EAA8B,CAClCC,GAAIC,OAAOd,EAAMe,UAAYD,OAAOd,EAAMa,IAC1CF,KAAAA,EACAK,KAAMnB,EAAUG,EAAMgB,OAsCxB,OAnCIR,IACFI,EAAeC,GAAKC,OAAOd,EAAMa,IACjCD,EAAeG,QAAUD,OAAOd,EAAMe,UAGpCV,IACFO,EAAeP,MAAQA,GAGrBM,IAASM,EAAAA,YAAYC,IAAIP,OAC3BC,EAAeL,aAAeO,OAAOf,EAAmBC,EAAO,QAAU,KAErEU,IACFE,EAAeL,aAAeO,OAAOf,EAAmBC,EAAO,aAAe,OAKrE,qBAATW,IACFC,EAAeL,aAAeO,OAAOf,EAAmBC,EAAO,QAAU,MAGvEW,IAASM,EAAAA,YAAYE,KAAKR,MAAQA,IAASS,EAAAA,qBAC7CR,EAAeS,OAASP,OAAOd,EAAMa,MAAQN,EAAee,EAAaA,cAAG,MAG1EX,IAASM,EAAAA,YAAYM,IAAIZ,OAC3BC,EAAeY,kBA1EA,SAAC/B,GAClB,GAAqB,iBAAVA,GAAuC,iBAAVA,GAAgC,OAAVA,EAAgB,OAAOA,CAGvF,CAsEuCgC,CAAWzB,EAAMwB,mBACpDZ,EAAeS,OAASrB,EAAM0B,QAAU1B,EAAM2B,QAAUL,EAAaA,cAAG,KAEpEb,IAAmBT,EAAMwB,oBAC3BZ,EAAeS,OAAS,OAIrBT,CACT,gCAMqC,SAIQgB,GAAA,IAH3CC,IAAAA,iBACAC,IAAAA,YACApB,IAAAA,sBAEMqB,EAAwBD,UAAAA,GAS9B,OANED,IAAqBZ,EAAWA,YAACC,IAAIP,MACrCkB,IAAqBZ,EAAWA,YAACe,kBAAkBrB,MAEnDoB,EAAkBE,KAAQJ,GAAAA,OAAAA,EAA+B,iBAGvDnB,EAAkCqB,GAAAA,OAAAA,EAAAA,QAAAA,IAAmB,qBAElDA,CACT,4BAlFiC,SAACG,GAAiB,IAAEJ,yDAAwB,GAAE,MAAM,CACnFK,KAAM,OACNC,MAAO,MACPC,OAAYH,CAAAA,GAAAA,OAAAA,EAAqBA,SAAAA,GAAAA,OAAAA,+BAAuBJ,IACzD,+BAgFmC,SAClCI,GAEW,IADXI,6DAEMC,EAAoBD,EACtBE,EAA8BA,+BAC9BC,8CAEJ,OAAQP,GAAaK,EAAkBL,IAAe,WACxD,wBAhC6B,SAAClC,GAAyB,OAA2B0C,QAAQ1C,EAAM,oBAEvE,SAACA,GAAkB,OAAcA,EAAMqB,SAAWC,EAAaA,eAAI,EAAI,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/toArray"),a=require("@babel/runtime/regenerator"),n=require("react"),i=require("../../componentsV2/FileIcon/FileIcon.js"),s=require("../../componentsV2/Button/Button.js"),c=require("../../componentsV2/LoaderCircular/LoaderCircular.js"),o=require("../NewDocumentViewer/components/TextViewer.js"),u=require("../NewDocumentViewer/components/CsvViewer.js"),l=require("../NewDocumentViewer/components/PdfViewer.js"),d=require("../NewDocumentViewer/utils.js"),f=require("./downloadAttachment.js"),m=require("./AttachmentLightbox.scss.js"),p=require("../../utils/fetchAttachment.js"),x=require("../../utils/fileExtension.js"),h=require("../../utils/main.js"),b=require("react/jsx-runtime");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var w=v(e),j=v(t),k=v(r),q=v(a),N={pdf:"pdf",csv:"table",xlsx:"table",txt:"text",json:"text"},g=function(e){var t=k.default(e),r=t[0],a=void 0===r?[]:r,n=t.slice(1),i=function(e){var t=new Map;return e.map((function(e,r){var a,n=e||"Column ".concat(r+1),i=null!==(a=t.get(n))&&void 0!==a?a:0;return t.set(n,i+1),i?"".concat(n," (").concat(i+1,")"):n}))}(a);return n.map((function(e){return Object.fromEntries(i.map((function(t,r){var a;return[t,null!==(a=e[r])&&void 0!==a?a:""]})))}))},L=function(){var e=j.default(q.default.mark((function e(t,r){var a,n;return q.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("pdf"!==r){e.next=7;break}return e.next=3,p.fetchAttachment(t);case 3:return e.next=5,e.sent.blob();case 5:return n=e.sent,e.abrupt("return",URL.createObjectURL(n.type?n:new Blob([n],{type:"application/pdf"})));case 7:if("csv"!==r){e.next=9;break}return e.abrupt("return",d.getCsvData(t));case 9:if("xlsx"!==r){e.next=24;break}return e.t0=g,e.next=13,d.getXlsxData(t);case 13:if(e.t2=a=e.sent,e.t1=null!==e.t2,!e.t1){e.next=17;break}e.t1=void 0!==a;case 17:if(!e.t1){e.next=21;break}e.t3=a,e.next=22;break;case 21:e.t3=[];case 22:return e.t4=e.t3,e.abrupt("return",(0,e.t0)(e.t4));case 24:return e.abrupt("return",d.getTextData(t));case 25:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),D=["pdf","text","table"];exports.AttachmentDocument=function(e){var t=e.item,r=h.default.getFileNameWithExtensionFromPath(t.name),a=x.getFileExtension(r),d=t.src||t.downloadUrl||"",p=N[a],v=function(e,t,r){var a=n.useState((function(){return{data:"",isLoading:!!e&&D.includes(r),hasFailed:!1}})),i=w.default(a,2),s=i[0],c=i[1];return n.useEffect((function(){if(e&&D.includes(r)){var a=!0;c({data:"",isLoading:!0,hasFailed:!1});var n="";return L(e,t).then((function(e){"pdf"===r&&(n=e),a?c({data:e,isLoading:!1,hasFailed:!1}):n&&URL.revokeObjectURL(n)})).catch((function(t){console.error('Failed to read attachment "'.concat(e,'"'),t),a&&c({data:"",isLoading:!1,hasFailed:!0})})),function(){a=!1,n&&URL.revokeObjectURL(n)}}c({data:"",isLoading:!1,hasFailed:!1})}),[e,t,r]),s}(d,a,p),k=v.data,g=v.isLoading,F=v.hasFailed;if(g)return b.jsx("div",{className:m.documentState,"data-testid":"attachment-preview-loading",children:b.jsx(c.LoaderCircular,{size:"medium"})});var V=!!d&&!F;if(V&&"pdf"===p)return b.jsx("div",{className:m.documentFrame,children:b.jsx(l.PdfViewer,{fileUrl:k,fileName:r})});if(V&&"table"===p)return b.jsx("div",{className:m.documentTable,children:b.jsx(u.CsvViewer,{fileData:k})});if(V&&"text"===p)return b.jsx("div",{className:m.documentText,children:b.jsx(o.TextViewer,{fileData:k})});var y=F||!d&&!!p;return b.jsxs("div",{className:m.documentState,"data-testid":"attachment-preview-fallback",children:[b.jsx(i.FileIcon,{name:r,size:48}),b.jsx("div",{className:m.fallbackName,children:r}),b.jsx("div",{className:m.fallbackHint,children:y?"This file could not be opened.":"No preview available for this file type."}),!(!t.downloadUrl&&!t.src)&&!t.hideDownload&&b.jsx("a",{href:t.downloadUrl||t.src,download:r,target:"_blank",rel:"noopener noreferrer",className:m.fallbackDownload,"data-testid":"attachment-preview-fallback-download",onClick:function(){var e=j.default(q.default.mark((function e(a){var n;return q.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.downloadUrl||t.src||"",a.preventDefault(),e.next=4,f.downloadAttachment(n,r);case 4:if(e.sent){e.next=6;break}f.openAttachmentInNewTab(n);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),children:b.jsx(s.Button,{type:"secondary",size:"medium",children:"Download"})})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/toArray"),a=require("@babel/runtime/regenerator"),n=require("react"),i=require("../../componentsV2/FileIcon/FileIcon.js"),s=require("../../componentsV2/Button/Button.js"),o=require("../../componentsV2/LoaderCircular/LoaderCircular.js"),c=require("../NewDocumentViewer/components/TextViewer.js"),u=require("../NewDocumentViewer/components/CsvViewer.js"),l=require("../NewDocumentViewer/components/PdfViewer.js"),d=require("../NewDocumentViewer/utils.js"),f=require("./downloadAttachment.js"),m=require("./AttachmentLightbox.scss.js"),p=require("../../utils/fetchAttachment.js"),x=require("../../utils/fileExtension.js"),h=require("../../utils/main.js"),b=require("react/jsx-runtime");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var w=v(e),j=v(t),k=v(r),q=v(a),N={pdf:"pdf",csv:"table",xlsx:"table",txt:"text",json:"text"},g=function(e){var t=k.default(e),r=t[0],a=void 0===r?[]:r,n=t.slice(1),i=function(e){var t=new Map;return e.map((function(e,r){var a,n=e||"Column ".concat(r+1),i=null!==(a=t.get(n))&&void 0!==a?a:0;return t.set(n,i+1),i?"".concat(n," (").concat(i+1,")"):n}))}(a);return n.map((function(e){return Object.fromEntries(i.map((function(t,r){var a;return[t,null!==(a=e[r])&&void 0!==a?a:""]})))}))},L=function(){var e=j.default(q.default.mark((function e(t,r){var a,n,i;return q.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("pdf"!==r){e.next=10;break}return e.next=3,p.fetchAttachment(t);case 3:if((n=e.sent).ok){e.next=6;break}throw new Error("Could not read the file (".concat(n.status,")"));case 6:return e.next=8,n.blob();case 8:return i=e.sent,e.abrupt("return",URL.createObjectURL("application/pdf"===i.type?i:new Blob([i],{type:"application/pdf"})));case 10:if("csv"!==r){e.next=12;break}return e.abrupt("return",d.getCsvData(t));case 12:if("xlsx"!==r){e.next=27;break}return e.t0=g,e.next=16,d.getXlsxData(t);case 16:if(e.t2=a=e.sent,e.t1=null!==e.t2,!e.t1){e.next=20;break}e.t1=void 0!==a;case 20:if(!e.t1){e.next=24;break}e.t3=a,e.next=25;break;case 24:e.t3=[];case 25:return e.t4=e.t3,e.abrupt("return",(0,e.t0)(e.t4));case 27:return e.abrupt("return",d.getTextData(t));case 28:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),D=["pdf","text","table"];exports.AttachmentDocument=function(e){var t=e.item,r=h.default.getFileNameWithExtensionFromPath(t.name),a=x.getFileExtension(r),d=t.src||t.downloadUrl||"",p=N[a],v=function(e,t,r){var a=n.useState((function(){return{data:"",isLoading:!!e&&D.includes(r),hasFailed:!1}})),i=w.default(a,2),s=i[0],o=i[1];return n.useEffect((function(){if(e&&D.includes(r)){var a=!0;o({data:"",isLoading:!0,hasFailed:!1});var n="";return L(e,t).then((function(e){"pdf"===r&&(n=e),a?o({data:e,isLoading:!1,hasFailed:!1}):n&&URL.revokeObjectURL(n)})).catch((function(t){console.error('Failed to read attachment "'.concat(e,'"'),t),a&&o({data:"",isLoading:!1,hasFailed:!0})})),function(){a=!1,n&&URL.revokeObjectURL(n)}}o({data:"",isLoading:!1,hasFailed:!1})}),[e,t,r]),s}(d,a,p),k=v.data,g=v.isLoading,F=v.hasFailed;if(g)return b.jsx("div",{className:m.documentState,"data-testid":"attachment-preview-loading",children:b.jsx(o.LoaderCircular,{size:"medium"})});var V=!!d&&!F;if(V&&"pdf"===p)return b.jsx("div",{className:m.documentFrame,children:b.jsx(l.PdfViewer,{fileUrl:k,fileName:r})});if(V&&"table"===p)return b.jsx("div",{className:m.documentTable,children:b.jsx(u.CsvViewer,{fileData:k})});if(V&&"text"===p)return b.jsx("div",{className:m.documentText,children:b.jsx(c.TextViewer,{fileData:k})});var y=F||!d&&!!p;return b.jsxs("div",{className:m.documentState,"data-testid":"attachment-preview-fallback",children:[b.jsx(i.FileIcon,{name:r,size:48}),b.jsx("div",{className:m.fallbackName,children:r}),b.jsx("div",{className:m.fallbackHint,children:y?"This file could not be opened.":"No preview available for this file type."}),!(!t.downloadUrl&&!t.src)&&!t.hideDownload&&b.jsx("a",{href:t.downloadUrl||t.src,download:r,target:"_blank",rel:"noopener noreferrer",className:m.fallbackDownload,"data-testid":"attachment-preview-fallback-download",onClick:function(){var e=j.default(q.default.mark((function e(a){var n;return q.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.downloadUrl||t.src||"",a.preventDefault(),e.next=4,f.downloadAttachment(n,r);case 4:if(e.sent){e.next=6;break}f.openAttachmentInNewTab(n);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),children:b.jsx(s.Button,{type:"secondary",size:"medium",children:"Download"})})]})};
2
2
  //# sourceMappingURL=AttachmentDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentDocument.js","sources":["../../../../src/components/AttachmentLightbox/AttachmentDocument.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { FileIcon } from '../../componentsV2/FileIcon';\nimport { Button } from '../../componentsV2/Button';\nimport { LoaderCircular } from '../../componentsV2/LoaderCircular';\nimport { CsvViewer, PdfViewer, TextViewer } from '../NewDocumentViewer/components';\nimport { getCsvData, getTextData, getXlsxData } from '../NewDocumentViewer/utils';\nimport type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport { downloadAttachment, openAttachmentInNewTab } from './downloadAttachment';\n\nimport styles from './AttachmentLightbox.scss';\n\nimport { fetchAttachment } from '~/utils/fetchAttachment';\nimport { getFileExtension } from '~/utils/fileExtension';\nimport utils from '~/utils/main';\n\nconst RENDERERS = {\n pdf: 'pdf',\n csv: 'table',\n xlsx: 'table',\n txt: 'text',\n json: 'text',\n} as const;\n\ntype Renderer = typeof RENDERERS[keyof typeof RENDERERS];\n\ntype TableRow = Record<string, unknown>;\n\n/** The table viewer keys cells off the first row, so every column needs its own name. */\nconst toColumnNames = (header: string[]): string[] => {\n const seen = new Map<string, number>();\n\n return header.map((column, index) => {\n const name = column || `Column ${index + 1}`;\n const taken = seen.get(name) ?? 0;\n\n seen.set(name, taken + 1);\n\n return taken ? `${name} (${taken + 1})` : name;\n });\n};\n\nconst toTableRows = (rows: string[][]): TableRow[] => {\n const [header = [], ...body] = rows;\n const columns = toColumnNames(header);\n\n return body.map(row =>\n Object.fromEntries(columns.map((column, index) => [column, row[index] ?? '']))\n );\n};\n\nconst fetchData = async (src: string, extension: string) => {\n if (extension === 'pdf') {\n // The host serves this as a download, which navigates a frame to `about:blank` and shows\n // nothing. Holding the bytes ourselves lets the viewer render them whatever it was sent as.\n const blob = await (await fetchAttachment(src)).blob();\n\n return URL.createObjectURL(blob.type ? blob : new Blob([blob], { type: 'application/pdf' }));\n }\n if (extension === 'csv') return getCsvData(src);\n if (extension === 'xlsx') return toTableRows((await getXlsxData(src)) ?? []);\n\n return getTextData(src);\n};\n\nconst NEEDS_DATA: Renderer[] = ['pdf', 'text', 'table'];\nconst useDocumentData = (src: string, extension: string, renderer?: Renderer) => {\n const [state, setState] = useState<{\n data: string | TableRow[];\n isLoading: boolean;\n hasFailed: boolean;\n }>(() => ({\n data: '',\n isLoading: !!src && NEEDS_DATA.includes(renderer as Renderer),\n hasFailed: false,\n }));\n\n useEffect(() => {\n if (!src || !NEEDS_DATA.includes(renderer as Renderer)) {\n setState({ data: '', isLoading: false, hasFailed: false });\n\n return undefined;\n }\n\n let isActive = true;\n setState({ data: '', isLoading: true, hasFailed: false });\n\n let objectUrl = '';\n\n fetchData(src, extension)\n .then(data => {\n if (renderer === 'pdf') objectUrl = data as string;\n\n if (isActive) {\n setState({ data: data as string | TableRow[], isLoading: false, hasFailed: false });\n } else if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n })\n .catch(error => {\n console.error(`Failed to read attachment \"${src}\"`, error);\n if (isActive) setState({ data: '', isLoading: false, hasFailed: true });\n });\n\n return () => {\n isActive = false;\n if (objectUrl) URL.revokeObjectURL(objectUrl);\n };\n }, [src, extension, renderer]);\n\n return state;\n};\n\nexport type AttachmentDocumentProps = {\n item: AttachmentPreviewItem;\n};\n\nexport const AttachmentDocument = ({ item }: AttachmentDocumentProps) => {\n const fileName = utils.getFileNameWithExtensionFromPath(item.name);\n const extension = getFileExtension(fileName);\n const src = item.src || item.downloadUrl || '';\n const renderer: Renderer | undefined = RENDERERS[extension as keyof typeof RENDERERS];\n\n const { data, isLoading, hasFailed } = useDocumentData(src, extension, renderer);\n\n if (isLoading) {\n return (\n <div className={styles.documentState} data-testid=\"attachment-preview-loading\">\n <LoaderCircular size=\"medium\" />\n </div>\n );\n }\n\n const isRenderable = !!src && !hasFailed;\n\n if (isRenderable && renderer === 'pdf') {\n return (\n <div className={styles.documentFrame}>\n <PdfViewer fileUrl={data as string} fileName={fileName} />\n </div>\n );\n }\n\n if (isRenderable && renderer === 'table') {\n return (\n <div className={styles.documentTable}>\n <CsvViewer fileData={data as TableRow[]} />\n </div>\n );\n }\n\n if (isRenderable && renderer === 'text') {\n return (\n <div className={styles.documentText}>\n <TextViewer fileData={data as string} />\n </div>\n );\n }\n\n const isUnopenable = hasFailed || (!src && !!renderer);\n\n return (\n <div className={styles.documentState} data-testid=\"attachment-preview-fallback\">\n <FileIcon name={fileName} size={48} />\n <div className={styles.fallbackName}>{fileName}</div>\n <div className={styles.fallbackHint}>\n {isUnopenable\n ? 'This file could not be opened.'\n : 'No preview available for this file type.'}\n </div>\n {!!(item.downloadUrl || item.src) && !item.hideDownload && (\n <a\n href={item.downloadUrl || item.src}\n download={fileName}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.fallbackDownload}\n data-testid=\"attachment-preview-fallback-download\"\n onClick={async event => {\n const url = item.downloadUrl || item.src || '';\n event.preventDefault();\n\n if (!(await downloadAttachment(url, fileName))) openAttachmentInNewTab(url);\n }}\n >\n <Button type=\"secondary\" size=\"medium\">\n Download\n </Button>\n </a>\n )}\n </div>\n );\n};\n"],"names":["RENDERERS","pdf","csv","xlsx","txt","json","toTableRows","rows","_rows","_toArray","_rows$","header","body","slice","columns","seen","Map","map","column","index","_seen$get","name","taken","get","set","concat","toColumnNames","row","Object","fromEntries","_row$index","fetchData","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","src","extension","_yield$getXlsxData","blob","wrap","_context","prev","next","fetchAttachment","sent","abrupt","URL","createObjectURL","type","Blob","getCsvData","t0","getXlsxData","t2","t1","t3","t4","getTextData","stop","_x","_x2","apply","this","arguments","NEEDS_DATA","_ref2","item","fileName","utils","getFileNameWithExtensionFromPath","getFileExtension","downloadUrl","renderer","_useDocumentData","_useState","useState","data","isLoading","includes","hasFailed","_useState2","_slicedToArray","state","setState","useEffect","isActive","objectUrl","then","revokeObjectURL","catch","error","console","useDocumentData","_jsx","className","styles","documentState","children","LoaderCircular","size","isRenderable","documentFrame","PdfViewer","fileUrl","documentTable","CsvViewer","fileData","documentText","TextViewer","isUnopenable","_jsxs","FileIcon","jsx","fallbackName","fallbackHint","hideDownload","href","download","target","rel","fallbackDownload","onClick","_ref3","event","url","_context2","preventDefault","downloadAttachment","openAttachmentInNewTab","_callee2","_x3","Button"],"mappings":"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"}
1
+ {"version":3,"file":"AttachmentDocument.js","sources":["../../../../src/components/AttachmentLightbox/AttachmentDocument.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { FileIcon } from '../../componentsV2/FileIcon';\nimport { Button } from '../../componentsV2/Button';\nimport { LoaderCircular } from '../../componentsV2/LoaderCircular';\nimport { CsvViewer, PdfViewer, TextViewer } from '../NewDocumentViewer/components';\nimport { getCsvData, getTextData, getXlsxData } from '../NewDocumentViewer/utils';\nimport type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport { downloadAttachment, openAttachmentInNewTab } from './downloadAttachment';\n\nimport styles from './AttachmentLightbox.scss';\n\nimport { fetchAttachment } from '~/utils/fetchAttachment';\nimport { getFileExtension } from '~/utils/fileExtension';\nimport utils from '~/utils/main';\n\nconst RENDERERS = {\n pdf: 'pdf',\n csv: 'table',\n xlsx: 'table',\n txt: 'text',\n json: 'text',\n} as const;\n\ntype Renderer = typeof RENDERERS[keyof typeof RENDERERS];\n\ntype TableRow = Record<string, unknown>;\n\n/** The table viewer keys cells off the first row, so every column needs its own name. */\nconst toColumnNames = (header: string[]): string[] => {\n const seen = new Map<string, number>();\n\n return header.map((column, index) => {\n const name = column || `Column ${index + 1}`;\n const taken = seen.get(name) ?? 0;\n\n seen.set(name, taken + 1);\n\n return taken ? `${name} (${taken + 1})` : name;\n });\n};\n\nconst toTableRows = (rows: string[][]): TableRow[] => {\n const [header = [], ...body] = rows;\n const columns = toColumnNames(header);\n\n return body.map(row =>\n Object.fromEntries(columns.map((column, index) => [column, row[index] ?? '']))\n );\n};\n\nconst PDF_MIME_TYPE = 'application/pdf';\n\nconst fetchData = async (src: string, extension: string) => {\n if (extension === 'pdf') {\n // The host serves this as a download, which navigates a frame to `about:blank` and shows\n // nothing. Holding the bytes ourselves lets the viewer render them whatever it was sent as.\n const response = await fetchAttachment(src);\n\n // A refused read answers with an XML error page; retyped below it would reach the viewer as\n // a \"pdf\" instead of the failure fallback.\n if (!response.ok) throw new Error(`Could not read the file (${response.status})`);\n\n const blob = await response.blob();\n\n // The frame renders a blob by its type alone: pipeline uploads (stage reports, PJRs) sit in\n // S3 as `application/octet-stream`, which the frame downloads instead of showing — so the\n // extension decides, not the header.\n return URL.createObjectURL(\n blob.type === PDF_MIME_TYPE ? blob : new Blob([blob], { type: PDF_MIME_TYPE })\n );\n }\n if (extension === 'csv') return getCsvData(src);\n if (extension === 'xlsx') return toTableRows((await getXlsxData(src)) ?? []);\n\n return getTextData(src);\n};\n\nconst NEEDS_DATA: Renderer[] = ['pdf', 'text', 'table'];\nconst useDocumentData = (src: string, extension: string, renderer?: Renderer) => {\n const [state, setState] = useState<{\n data: string | TableRow[];\n isLoading: boolean;\n hasFailed: boolean;\n }>(() => ({\n data: '',\n isLoading: !!src && NEEDS_DATA.includes(renderer as Renderer),\n hasFailed: false,\n }));\n\n useEffect(() => {\n if (!src || !NEEDS_DATA.includes(renderer as Renderer)) {\n setState({ data: '', isLoading: false, hasFailed: false });\n\n return undefined;\n }\n\n let isActive = true;\n setState({ data: '', isLoading: true, hasFailed: false });\n\n let objectUrl = '';\n\n fetchData(src, extension)\n .then(data => {\n if (renderer === 'pdf') objectUrl = data as string;\n\n if (isActive) {\n setState({ data: data as string | TableRow[], isLoading: false, hasFailed: false });\n } else if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n })\n .catch(error => {\n console.error(`Failed to read attachment \"${src}\"`, error);\n if (isActive) setState({ data: '', isLoading: false, hasFailed: true });\n });\n\n return () => {\n isActive = false;\n if (objectUrl) URL.revokeObjectURL(objectUrl);\n };\n }, [src, extension, renderer]);\n\n return state;\n};\n\nexport type AttachmentDocumentProps = {\n item: AttachmentPreviewItem;\n};\n\nexport const AttachmentDocument = ({ item }: AttachmentDocumentProps) => {\n const fileName = utils.getFileNameWithExtensionFromPath(item.name);\n const extension = getFileExtension(fileName);\n const src = item.src || item.downloadUrl || '';\n const renderer: Renderer | undefined = RENDERERS[extension as keyof typeof RENDERERS];\n\n const { data, isLoading, hasFailed } = useDocumentData(src, extension, renderer);\n\n if (isLoading) {\n return (\n <div className={styles.documentState} data-testid=\"attachment-preview-loading\">\n <LoaderCircular size=\"medium\" />\n </div>\n );\n }\n\n const isRenderable = !!src && !hasFailed;\n\n if (isRenderable && renderer === 'pdf') {\n return (\n <div className={styles.documentFrame}>\n <PdfViewer fileUrl={data as string} fileName={fileName} />\n </div>\n );\n }\n\n if (isRenderable && renderer === 'table') {\n return (\n <div className={styles.documentTable}>\n <CsvViewer fileData={data as TableRow[]} />\n </div>\n );\n }\n\n if (isRenderable && renderer === 'text') {\n return (\n <div className={styles.documentText}>\n <TextViewer fileData={data as string} />\n </div>\n );\n }\n\n const isUnopenable = hasFailed || (!src && !!renderer);\n\n return (\n <div className={styles.documentState} data-testid=\"attachment-preview-fallback\">\n <FileIcon name={fileName} size={48} />\n <div className={styles.fallbackName}>{fileName}</div>\n <div className={styles.fallbackHint}>\n {isUnopenable\n ? 'This file could not be opened.'\n : 'No preview available for this file type.'}\n </div>\n {!!(item.downloadUrl || item.src) && !item.hideDownload && (\n <a\n href={item.downloadUrl || item.src}\n download={fileName}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.fallbackDownload}\n data-testid=\"attachment-preview-fallback-download\"\n onClick={async event => {\n const url = item.downloadUrl || item.src || '';\n event.preventDefault();\n\n if (!(await downloadAttachment(url, fileName))) openAttachmentInNewTab(url);\n }}\n >\n <Button type=\"secondary\" size=\"medium\">\n Download\n </Button>\n </a>\n )}\n </div>\n );\n};\n"],"names":["RENDERERS","pdf","csv","xlsx","txt","json","toTableRows","rows","_rows","_toArray","_rows$","header","body","slice","columns","seen","Map","map","column","index","_seen$get","name","taken","get","set","concat","toColumnNames","row","Object","fromEntries","_row$index","fetchData","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","src","extension","_yield$getXlsxData","response","blob","wrap","_context","prev","next","fetchAttachment","sent","ok","Error","status","abrupt","URL","createObjectURL","type","Blob","getCsvData","t0","getXlsxData","t2","t1","t3","t4","getTextData","stop","_x","_x2","apply","this","arguments","NEEDS_DATA","_ref2","item","fileName","utils","getFileNameWithExtensionFromPath","getFileExtension","downloadUrl","renderer","_useDocumentData","_useState","useState","data","isLoading","includes","hasFailed","_useState2","_slicedToArray","state","setState","useEffect","isActive","objectUrl","then","revokeObjectURL","catch","error","console","useDocumentData","_jsx","className","styles","documentState","children","LoaderCircular","size","isRenderable","documentFrame","PdfViewer","fileUrl","documentTable","CsvViewer","fileData","documentText","TextViewer","isUnopenable","_jsxs","FileIcon","jsx","fallbackName","fallbackHint","hideDownload","href","download","target","rel","fallbackDownload","onClick","_ref3","event","url","_context2","preventDefault","downloadAttachment","openAttachmentInNewTab","_callee2","_x3","Button"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),r=require("@babel/runtime/helpers/asyncToGenerator"),n=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),u=require("@babel/runtime/regenerator"),i=require("react"),l=require("react-s3-uploader/s3upload"),a=require("../AttachmentPreview/getAttachmentKind.js"),o=require("../AttachFileButton/AttachFileButton.js"),c=require("../../clients/jsonApi/index.js"),f=require("../../utils/links.js"),s=require("../../utils/signedLinkCache.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(e),v=d(r),h=d(n),m=d(t),g=d(u),b=d(l);function k(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function U(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?k(Object(n),!0).forEach((function(r){h.default(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}var w=function(e){return e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":"file"},y=function(e){return(e/1048576).toFixed(1)},C=function(e){return{id:e.url,name:e.name,file:null,previewUrl:"",isUploading:!1,error:null,uploaded:e}},j=0,O=function(){return"attachment-".concat(j+=1)};exports.DEFAULT_MAX_ATTACHMENTS=10,exports.useAttachmentUpload=function(e){var r,n,t=e.value,u=e.onChange,l=e.onError,d=e.maxSizeBytes,h=e.maxFiles,k=void 0===h?10:h,j=e.accept,x=void 0===j?o.ACCEPTED_ATTACHMENT_TYPES:j,S=i.useState([]),A=m.default(S,2),E=A[0],L=A[1],F=i.useRef(null),R=i.useRef(new Map),P=i.useRef(new Map),q=i.useRef([]),z=i.useRef(u),T=i.useRef(l);z.current=u,T.current=l;var M=i.useRef([]),B=i.useCallback((function(e){var r=e(q.current);q.current=r,L(r),M.current=function(e){return e.map((function(e){return e.uploaded})).filter(Boolean)}(r),z.current(M.current)}),[]),D=i.useCallback((function(e,r){return B((function(n){return n.map((function(n){return n.id===e?U(U({},n),r):n}))}))}),[B]),N=i.useCallback((function(e){var r,n;null===(r=R.current.get(e))||void 0===r||r.abortUpload(),R.current.delete(e),P.current.set(e,(null!==(n=P.current.get(e))&&void 0!==n?n:0)+1)}),[]),_=i.useCallback((function(e){null!=e&&e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}),[]),W=i.useCallback((function(){var e,r,n;null===(e=T.current)||void 0===e||e.call(T,null!==(r=null===(n=q.current.find((function(e){return e.error})))||void 0===n?void 0:n.error)&&void 0!==r?r:null)}),[]);i.useEffect((function(){return function(){R.current.forEach((function(e){return e.abortUpload()})),R.current.clear(),q.current.forEach((function(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}))}}),[]);var Y=i.useCallback((function(e,r){var n,t=(null!==(n=P.current.get(e))&&void 0!==n?n:0)+1;P.current.set(e,t);var u,i,l=function(){return P.current.get(e)===t},a=function(r){var n;l()&&(D(e,{isUploading:!1,error:r}),null===(n=T.current)||void 0===n||n.call(T,r))},o="",f=new b.default({files:[r],preprocess:function(e,r){return r(e)},onProgress:function(){},getSignedUrl:(i=v.default(g.default.mark((function e(r,n){var t;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,c.getS3SignedUrl(r.name,r.type);case 3:t=e.sent,o=t.file_name,n(U(U({},t),{},{signedUrl:t.signed_url})),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),a((null===e.t0||void 0===e.t0?void 0:e.t0.message)||"Failed to upload the file");case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),function(e,r){return i.apply(this,arguments)}),onFinishS3Put:(u=v.default(g.default.mark((function n(){var t;return g.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,s.getSignedLink(o);case 3:if(t=n.sent,l()){n.next=6;break}return n.abrupt("return");case 6:R.current.delete(e),D(e,{isUploading:!1,error:null,uploaded:{url:t,name:o,size:r.size}}),W(),n.next=14;break;case 11:n.prev=11,n.t0=n.catch(0),a((null===n.t0||void 0===n.t0?void 0:n.t0.message)||"Failed to upload the file");case 14:case"end":return n.stop()}}),n,null,[[0,11]])}))),function(){return u.apply(this,arguments)}),onError:function(e){return a(e||"Failed to upload the file")}});R.current.set(e,f)}),[D,W]),I=i.useCallback((function(e){var r,n=f.getUrlFileName(e);n&&(q.current.length>=k?null===(r=T.current)||void 0===r||r.call(T,"You can attach up to ".concat(k," files.")):q.current.some((function(r){var n;return(null===(n=r.uploaded)||void 0===n?void 0:n.url)===e}))||B((function(r){return[].concat(p.default(r),[{id:O(),name:n,file:null,previewUrl:e,isUploading:!1,error:null,uploaded:{url:e,name:n}}])})))}),[B,k]),K=i.useCallback(function(){var e=v.default(g.default.mark((function e(r){var n,t,u,i,l,a,o,c,f,d,v;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u=r.filter((function(e,r,n){return!q.current.some((function(r){var n;return(null===(n=r.uploaded)||void 0===n?void 0:n.name)===e.fileName}))&&n.findIndex((function(r){return r.fileName===e.fileName}))===r})),u.length){e.next=3;break}return e.abrupt("return");case 3:if(!((i=k-q.current.length)<=0)){e.next=7;break}return null===(l=T.current)||void 0===l||l.call(T,"You can attach up to ".concat(k," files.")),e.abrupt("return");case 7:return a=u.slice(0,i),e.next=10,Promise.all(a.map((function(e){return s.getSignedLink(e.fileName).then((function(r){return{url:r,name:e.fileName,size:e.size}})).catch((function(){return null}))})));case 10:o=e.sent,c=o.filter(Boolean),f=0,c.length&&B((function(e){var r=c.slice(0,Math.max(k-e.length,0));return f=r.length,[].concat(p.default(e),p.default(r.map((function(e){return U(U({},C(e)),{},{id:O()})}))))})),d=o.length-c.length,v=u.length>a.length||f<c.length,null===(n=T.current)||void 0===n||n.call(T,d&&"Could not attach ".concat(1===d?"a file":"".concat(d," files")," from Wellhub.")||v&&"You can attach up to ".concat(k," files.")||(null===(t=q.current.find((function(e){return e.error})))||void 0===t?void 0:t.error)||null);case 17:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[B,k]),H=i.useCallback((function(e){var r,n,t,u,i=e.filter((function(e){return function(e,r){return r.split(",").map((function(e){return e.trim().toLowerCase()})).filter(Boolean).some((function(r){if(r.startsWith("."))return e.name.toLowerCase().endsWith(r);if(r.endsWith("/*")){var n=e.type.toLowerCase();return n?n.startsWith(r.slice(0,-1)):a.getAttachmentKind({name:e.name})===r.slice(0,-1)}return e.type.toLowerCase()===r}))}(e,x)})),l=i.length<e.length?1===e.length?"That file type is not supported.":"Some files were skipped — unsupported file type.":null,o="You can attach up to ".concat(k," files."),c=k-q.current.length;if(!i.length||c<=0){var f;null===(f=T.current)||void 0===f||f.call(T,i.length?o:l)}else{var s=i.slice(0,c),v=s.map((function(e){var r=w(e),n=!!d&&e.size>d;return{id:O(),name:e.name,file:e,previewUrl:"file"===r?"":URL.createObjectURL(e),isUploading:!n,error:n?"File is too large (".concat(y(e.size)," MB). Maximum size is ").concat(y(d)," MB."):null,uploaded:null}}));B((function(e){return[].concat(p.default(e),p.default(v))}));var h=i.length>s.length?o:null;null===(r=T.current)||void 0===r||r.call(T,null!==(n=null!==(t=null===(u=q.current.find((function(e){return e.error})))||void 0===u?void 0:u.error)&&void 0!==t?t:l)&&void 0!==n?n:h),v.filter((function(e){return!e.error})).forEach((function(e){return Y(e.id,e.file)}))}}),[B,k,d,Y,x]),G=i.useCallback((function(e){var r,n=Array.from(null!==(r=e.target.files)&&void 0!==r?r:[]);F.current&&(F.current.value=""),n.length&&H(n)}),[H]),X=i.useCallback((function(){var e;return null===(e=F.current)||void 0===e?void 0:e.click()}),[]),J=i.useCallback((function(e){var r=String(e);N(r),_(q.current.find((function(e){return e.id===r}))),B((function(e){return e.filter((function(e){return e.id!==r}))})),W()}),[N,_,B,W]),Q=i.useCallback((function(e){var r=String(e),n=q.current.find((function(e){return e.id===r}));null!=n&&n.file&&(N(r),D(r,{isUploading:!0,error:null}),W(),Y(r,n.file))}),[N,D,Y,W]),V=i.useCallback((function(e){return B((function(r){var n=new Map(r.map((function(e){return[e.id,e]}))),t=e.map((function(e){return n.get(String(e))})).filter(Boolean),u=r.filter((function(r){return!e.some((function(e){return String(e)===r.id}))}));return[].concat(p.default(t),p.default(u))}))}),[B]),Z=i.useCallback((function(){var e;q.current.forEach((function(e){N(e.id),_(e)})),B((function(){return[]})),null===(e=T.current)||void 0===e||e.call(T,null)}),[N,B,_]);i.useEffect((function(){var e,r,n;(r=M.current,n=t,r.length===n.length&&r.every((function(e,r){return e.url===n[r].url})))||(q.current.forEach((function(e){N(e.id),e.previewUrl&&URL.revokeObjectURL(e.previewUrl)})),q.current=t.map(C),M.current=t,L(q.current),null===(e=T.current)||void 0===e||e.call(T,null))}),[t,N]);var $=i.useState((function(){return t.reduce((function(e,r){var n=s.peekSignedLink(r.name,"inline");return n&&(e[r.name]=n),e}),{})})),ee=m.default($,2),re=ee[0],ne=ee[1],te=i.useRef(re);te.current=re;var ue=E.filter((function(e){return!e.file&&!e.previewUrl&&e.uploaded})).map((function(e){return e.uploaded.name})).join("|");return i.useEffect((function(){var e=ue.split("|").filter((function(e){return e&&!(e in te.current)}));if(e.length){var r=!0;return Promise.all(e.map((function(e){return s.getSignedLink(e,"inline").then((function(r){return[e,r]})).catch((function(r){return console.error('Failed to sign stored attachment "'.concat(e,'"'),r),[e,""]}))}))).then((function(e){r&&ne((function(r){return U(U({},r),Object.fromEntries(e))}))})),function(){r=!1}}}),[ue]),{items:E.reduce((function(e,r){var n;if(r.file)return e.push({id:r.id,name:r.name,src:r.previewUrl,kind:w(r.file),size:r.file.size,isUploading:r.isUploading,hideDownload:!0,error:null!==(n=r.error)&&void 0!==n?n:void 0}),e;var t=r.uploaded,u=a.getAttachmentKind(t),i=r.previewUrl||re[t.name];return"file"===u||i?(e.push({id:r.id,name:t.name,src:i,kind:u,size:t.size,hideDownload:!0}),e):e}),[]),fileInputRef:F,openFileDialog:X,handleFileSelect:G,addFiles:H,addLinkedImage:I,addStoredFiles:K,removeAttachment:J,handleRetry:Q,reorderAttachments:V,clearAttachments:Z,isUploading:E.some((function(e){return e.isUploading})),error:null!==(r=null===(n=E.find((function(e){return e.error})))||void 0===n?void 0:n.error)&&void 0!==r?r:null,count:E.length,isFull:E.length>=k,maxFiles:k}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),r=require("@babel/runtime/helpers/asyncToGenerator"),n=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),u=require("@babel/runtime/regenerator"),i=require("react"),l=require("react-s3-uploader/s3upload"),a=require("../AttachmentPreview/getAttachmentKind.js"),o=require("../AttachFileButton/AttachFileButton.js"),c=require("../../clients/jsonApi/index.js"),f=require("../../utils/links.js"),s=require("../../utils/signedLinkCache.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(e),v=d(r),h=d(n),m=d(t),g=d(u),b=d(l);function k(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function U(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?k(Object(n),!0).forEach((function(r){h.default(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}var w=function(e){return(e/1048576).toFixed(1)},y=function(e){return{id:e.url,name:e.name,file:null,previewUrl:"",isUploading:!1,error:null,uploaded:e}},C=0,j=function(){return"attachment-".concat(C+=1)};exports.DEFAULT_MAX_ATTACHMENTS=10,exports.useAttachmentUpload=function(e){var r,n,t=e.value,u=e.onChange,l=e.onError,d=e.maxSizeBytes,h=e.maxFiles,k=void 0===h?10:h,C=e.accept,O=void 0===C?o.ACCEPTED_ATTACHMENT_TYPES:C,x=i.useState([]),S=m.default(x,2),A=S[0],E=S[1],L=i.useRef(null),F=i.useRef(new Map),R=i.useRef(new Map),P=i.useRef([]),q=i.useRef(u),z=i.useRef(l);q.current=u,z.current=l;var T=i.useRef([]),M=i.useCallback((function(e){var r=e(P.current);P.current=r,E(r),T.current=function(e){return e.map((function(e){return e.uploaded})).filter(Boolean)}(r),q.current(T.current)}),[]),B=i.useCallback((function(e,r){return M((function(n){return n.map((function(n){return n.id===e?U(U({},n),r):n}))}))}),[M]),D=i.useCallback((function(e){var r,n;null===(r=F.current.get(e))||void 0===r||r.abortUpload(),F.current.delete(e),R.current.set(e,(null!==(n=R.current.get(e))&&void 0!==n?n:0)+1)}),[]),N=i.useCallback((function(e){null!=e&&e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}),[]),_=i.useCallback((function(){var e,r,n;null===(e=z.current)||void 0===e||e.call(z,null!==(r=null===(n=P.current.find((function(e){return e.error})))||void 0===n?void 0:n.error)&&void 0!==r?r:null)}),[]);i.useEffect((function(){return function(){F.current.forEach((function(e){return e.abortUpload()})),F.current.clear(),P.current.forEach((function(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}))}}),[]);var W=i.useCallback((function(e,r){var n,t=(null!==(n=R.current.get(e))&&void 0!==n?n:0)+1;R.current.set(e,t);var u,i,l=function(){return R.current.get(e)===t},a=function(r){var n;l()&&(B(e,{isUploading:!1,error:r}),null===(n=z.current)||void 0===n||n.call(z,r))},o="",f=new b.default({files:[r],preprocess:function(e,r){return r(e)},onProgress:function(){},getSignedUrl:(i=v.default(g.default.mark((function e(r,n){var t;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,c.getS3SignedUrl(r.name,r.type);case 3:t=e.sent,o=t.file_name,n(U(U({},t),{},{signedUrl:t.signed_url})),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),a((null===e.t0||void 0===e.t0?void 0:e.t0.message)||"Failed to upload the file");case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),function(e,r){return i.apply(this,arguments)}),onFinishS3Put:(u=v.default(g.default.mark((function n(){var t;return g.default.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,s.getSignedLink(o);case 3:if(t=n.sent,l()){n.next=6;break}return n.abrupt("return");case 6:F.current.delete(e),B(e,{isUploading:!1,error:null,uploaded:{url:t,name:o,size:r.size}}),_(),n.next=14;break;case 11:n.prev=11,n.t0=n.catch(0),a((null===n.t0||void 0===n.t0?void 0:n.t0.message)||"Failed to upload the file");case 14:case"end":return n.stop()}}),n,null,[[0,11]])}))),function(){return u.apply(this,arguments)}),onError:function(e){return a(e||"Failed to upload the file")}});F.current.set(e,f)}),[B,_]),Y=i.useCallback((function(e){var r,n=f.getUrlFileName(e);n&&(P.current.length>=k?null===(r=z.current)||void 0===r||r.call(z,"You can attach up to ".concat(k," files.")):P.current.some((function(r){var n;return(null===(n=r.uploaded)||void 0===n?void 0:n.url)===e}))||M((function(r){return[].concat(p.default(r),[{id:j(),name:n,file:null,previewUrl:e,isUploading:!1,error:null,uploaded:{url:e,name:n}}])})))}),[M,k]),I=i.useCallback(function(){var e=v.default(g.default.mark((function e(r){var n,t,u,i,l,a,o,c,f,d,v;return g.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u=r.filter((function(e,r,n){return!P.current.some((function(r){var n;return(null===(n=r.uploaded)||void 0===n?void 0:n.name)===e.fileName}))&&n.findIndex((function(r){return r.fileName===e.fileName}))===r})),u.length){e.next=3;break}return e.abrupt("return");case 3:if(!((i=k-P.current.length)<=0)){e.next=7;break}return null===(l=z.current)||void 0===l||l.call(z,"You can attach up to ".concat(k," files.")),e.abrupt("return");case 7:return a=u.slice(0,i),e.next=10,Promise.all(a.map((function(e){return s.getSignedLink(e.fileName).then((function(r){return{url:r,name:e.fileName,size:e.size}})).catch((function(){return null}))})));case 10:o=e.sent,c=o.filter(Boolean),f=0,c.length&&M((function(e){var r=c.slice(0,Math.max(k-e.length,0));return f=r.length,[].concat(p.default(e),p.default(r.map((function(e){return U(U({},y(e)),{},{id:j()})}))))})),d=o.length-c.length,v=u.length>a.length||f<c.length,null===(n=z.current)||void 0===n||n.call(z,d&&"Could not attach ".concat(1===d?"a file":"".concat(d," files")," from Wellhub.")||v&&"You can attach up to ".concat(k," files.")||(null===(t=P.current.find((function(e){return e.error})))||void 0===t?void 0:t.error)||null);case 17:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[M,k]),K=i.useCallback((function(e){var r,n,t,u,i=e.filter((function(e){return function(e,r){return r.split(",").map((function(e){return e.trim().toLowerCase()})).filter(Boolean).some((function(r){if(r.startsWith("."))return e.name.toLowerCase().endsWith(r);if(r.endsWith("/*")){var n=e.type.toLowerCase();return n?n.startsWith(r.slice(0,-1)):a.getAttachmentKind({name:e.name})===r.slice(0,-1)}return e.type.toLowerCase()===r}))}(e,O)})),l=i.length<e.length?1===e.length?"That file type is not supported.":"Some files were skipped — unsupported file type.":null,o="You can attach up to ".concat(k," files."),c=k-P.current.length;if(!i.length||c<=0){var f;null===(f=z.current)||void 0===f||f.call(z,i.length?o:l)}else{var s=i.slice(0,c),v=s.map((function(e){var r=!!d&&e.size>d;return{id:j(),name:e.name,file:e,previewUrl:URL.createObjectURL(e),isUploading:!r,error:r?"File is too large (".concat(w(e.size)," MB). Maximum size is ").concat(w(d)," MB."):null,uploaded:null}}));M((function(e){return[].concat(p.default(e),p.default(v))}));var h=i.length>s.length?o:null;null===(r=z.current)||void 0===r||r.call(z,null!==(n=null!==(t=null===(u=P.current.find((function(e){return e.error})))||void 0===u?void 0:u.error)&&void 0!==t?t:l)&&void 0!==n?n:h),v.filter((function(e){return!e.error})).forEach((function(e){return W(e.id,e.file)}))}}),[M,k,d,W,O]),H=i.useCallback((function(e){var r,n=Array.from(null!==(r=e.target.files)&&void 0!==r?r:[]);L.current&&(L.current.value=""),n.length&&K(n)}),[K]),G=i.useCallback((function(){var e;return null===(e=L.current)||void 0===e?void 0:e.click()}),[]),X=i.useCallback((function(e){var r=String(e);D(r),N(P.current.find((function(e){return e.id===r}))),M((function(e){return e.filter((function(e){return e.id!==r}))})),_()}),[D,N,M,_]),J=i.useCallback((function(e){var r=String(e),n=P.current.find((function(e){return e.id===r}));null!=n&&n.file&&(D(r),B(r,{isUploading:!0,error:null}),_(),W(r,n.file))}),[D,B,W,_]),Q=i.useCallback((function(e){return M((function(r){var n=new Map(r.map((function(e){return[e.id,e]}))),t=e.map((function(e){return n.get(String(e))})).filter(Boolean),u=r.filter((function(r){return!e.some((function(e){return String(e)===r.id}))}));return[].concat(p.default(t),p.default(u))}))}),[M]),V=i.useCallback((function(){var e;P.current.forEach((function(e){D(e.id),N(e)})),M((function(){return[]})),null===(e=z.current)||void 0===e||e.call(z,null)}),[D,M,N]);i.useEffect((function(){var e,r,n;(r=T.current,n=t,r.length===n.length&&r.every((function(e,r){return e.url===n[r].url})))||(P.current.forEach((function(e){D(e.id),e.previewUrl&&URL.revokeObjectURL(e.previewUrl)})),P.current=t.map(y),T.current=t,E(P.current),null===(e=z.current)||void 0===e||e.call(z,null))}),[t,D]);var Z=i.useState((function(){return t.reduce((function(e,r){var n=s.peekSignedLink(r.name,"inline");return n&&(e[r.name]=n),e}),{})})),$=m.default(Z,2),ee=$[0],re=$[1],ne=i.useRef(ee);ne.current=ee;var te=A.filter((function(e){return!e.file&&!e.previewUrl&&e.uploaded})).map((function(e){return e.uploaded.name})).join("|");return i.useEffect((function(){var e=te.split("|").filter((function(e){return e&&!(e in ne.current)}));if(e.length){var r=!0;return Promise.all(e.map((function(e){return s.getSignedLink(e,"inline").then((function(r){return[e,r]})).catch((function(r){return console.error('Failed to sign stored attachment "'.concat(e,'"'),r),[e,""]}))}))).then((function(e){r&&re((function(r){return U(U({},r),Object.fromEntries(e))}))})),function(){r=!1}}}),[te]),{items:A.reduce((function(e,r){var n,t;if(r.file)return e.push({id:r.id,name:r.name,src:r.previewUrl,kind:(t=r.file,t.type.startsWith("image/")?"image":t.type.startsWith("video/")?"video":"file"),size:r.file.size,isUploading:r.isUploading,hideDownload:!0,error:null!==(n=r.error)&&void 0!==n?n:void 0}),e;var u=r.uploaded,i=a.getAttachmentKind(u),l=r.previewUrl||ee[u.name];return"file"===i||l?(e.push({id:r.id,name:u.name,src:l,kind:i,size:u.size,hideDownload:!0}),e):e}),[]),fileInputRef:L,openFileDialog:G,handleFileSelect:H,addFiles:K,addLinkedImage:Y,addStoredFiles:I,removeAttachment:X,handleRetry:J,reorderAttachments:Q,clearAttachments:V,isUploading:A.some((function(e){return e.isUploading})),error:null!==(r=null===(n=A.find((function(e){return e.error})))||void 0===n?void 0:n.error)&&void 0!==r?r:null,count:A.length,isFull:A.length>=k,maxFiles:k}};
2
2
  //# sourceMappingURL=useAttachmentUpload.js.map