@corva/ui 3.74.0-0 → 3.74.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/cjs-bundle/components/AddComment/Popover.js +1 -1
  2. package/cjs-bundle/components/AddComment/Popover.js.map +1 -1
  3. package/cjs-bundle/components/AddComment/components/Content.js +1 -1
  4. package/cjs-bundle/components/AddComment/components/Content.js.map +1 -1
  5. package/cjs-bundle/components/AssetEditor/AssetEditorAutocomplete.js +1 -1
  6. package/cjs-bundle/components/AssetEditor/AssetEditorAutocomplete.js.map +1 -1
  7. package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
  8. package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
  9. package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js +2 -0
  10. package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js.map +1 -0
  11. package/cjs-bundle/components/AttachmentLightbox/AttachmentLightbox.js +1 -1
  12. package/cjs-bundle/components/AttachmentLightbox/AttachmentLightbox.js.map +1 -1
  13. package/cjs-bundle/components/AttachmentLightbox/AttachmentLightbox.scss.js +1 -1
  14. package/cjs-bundle/components/AttachmentLightbox/AttachmentPreviewPane.js +2 -0
  15. package/cjs-bundle/components/AttachmentLightbox/AttachmentPreviewPane.js.map +1 -0
  16. package/cjs-bundle/components/AttachmentLightbox/copyImageToClipboard.js +2 -0
  17. package/cjs-bundle/components/AttachmentLightbox/copyImageToClipboard.js.map +1 -0
  18. package/cjs-bundle/components/AttachmentLightbox/downloadAttachment.js +2 -0
  19. package/cjs-bundle/components/AttachmentLightbox/downloadAttachment.js.map +1 -0
  20. package/cjs-bundle/components/AttachmentLightbox/useAttachmentLightbox.js +1 -1
  21. package/cjs-bundle/components/AttachmentLightbox/useAttachmentLightbox.js.map +1 -1
  22. package/cjs-bundle/components/AttachmentLightbox/useZoomPan.js +2 -0
  23. package/cjs-bundle/components/AttachmentLightbox/useZoomPan.js.map +1 -0
  24. package/cjs-bundle/components/AttachmentPreview/AttachmentActionsMenu.js +2 -0
  25. package/cjs-bundle/components/AttachmentPreview/AttachmentActionsMenu.js.map +1 -0
  26. package/cjs-bundle/components/AttachmentPreview/AttachmentDownloadLink.js +2 -0
  27. package/cjs-bundle/components/AttachmentPreview/AttachmentDownloadLink.js.map +1 -0
  28. package/cjs-bundle/components/AttachmentPreview/AttachmentImage.js +2 -0
  29. package/cjs-bundle/components/AttachmentPreview/AttachmentImage.js.map +1 -0
  30. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.js +1 -1
  31. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.js.map +1 -1
  32. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.scss.js +1 -1
  33. package/cjs-bundle/components/AttachmentPreview/AttachmentRow.js +1 -1
  34. package/cjs-bundle/components/AttachmentPreview/AttachmentRow.js.map +1 -1
  35. package/cjs-bundle/components/AttachmentPreview/AttachmentTile.js +1 -1
  36. package/cjs-bundle/components/AttachmentPreview/AttachmentTile.js.map +1 -1
  37. package/cjs-bundle/components/AttachmentPreview/useStoredAttachment.js +2 -0
  38. package/cjs-bundle/components/AttachmentPreview/useStoredAttachment.js.map +1 -0
  39. package/cjs-bundle/components/AttachmentPreview/useStoredAttachments.js +1 -1
  40. package/cjs-bundle/components/AttachmentPreview/useStoredAttachments.js.map +1 -1
  41. package/cjs-bundle/components/BICOffsetPickerDialog/index.js +1 -1
  42. package/cjs-bundle/components/BICOffsetPickerDialog/index.js.map +1 -1
  43. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  44. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  45. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js +1 -1
  46. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  47. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  48. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  49. package/cjs-bundle/components/CommentCard/CommentCard.js +1 -1
  50. package/cjs-bundle/components/CommentCard/CommentCard.js.map +1 -1
  51. package/cjs-bundle/components/CommentCard/CommentMenu.js +1 -1
  52. package/cjs-bundle/components/CommentCard/CommentMenu.js.map +1 -1
  53. package/cjs-bundle/components/CommentComposer/CommentComposer.js +1 -1
  54. package/cjs-bundle/components/CommentComposer/CommentComposer.js.map +1 -1
  55. package/cjs-bundle/components/CommentComposer/CommentReplyInput.js +1 -1
  56. package/cjs-bundle/components/CommentComposer/CommentReplyInput.js.map +1 -1
  57. package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js +1 -1
  58. package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js.map +1 -1
  59. package/cjs-bundle/components/CommentInputNext/CommentInputNext.js +1 -1
  60. package/cjs-bundle/components/CommentInputNext/CommentInputNext.js.map +1 -1
  61. package/cjs-bundle/components/CommentInputNext/useFilePaste.js +2 -0
  62. package/cjs-bundle/components/CommentInputNext/useFilePaste.js.map +1 -0
  63. package/cjs-bundle/components/DevCenter/AppsDataProvider/AppsDataProvider.js +1 -1
  64. package/cjs-bundle/components/DevCenter/AppsDataProvider/AppsDataProvider.js.map +1 -1
  65. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js +1 -1
  66. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js.map +1 -1
  67. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  68. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  69. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  70. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  71. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  72. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  73. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  74. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  75. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  76. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  77. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  78. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  79. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  80. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  81. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  82. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  83. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  84. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  85. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  86. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  87. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  88. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  89. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  90. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  91. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  92. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  93. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  94. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  95. package/cjs-bundle/components/IconMenu/index.js +1 -1
  96. package/cjs-bundle/components/IconMenu/index.js.map +1 -1
  97. package/cjs-bundle/components/KeyboardDateTimePicker.js +1 -1
  98. package/cjs-bundle/components/KeyboardDateTimePicker.js.map +1 -1
  99. package/cjs-bundle/components/LinkedText/LinkedText.js +2 -0
  100. package/cjs-bundle/components/LinkedText/LinkedText.js.map +1 -0
  101. package/cjs-bundle/components/LinkedText/LinkedText.scss.js +2 -0
  102. package/cjs-bundle/components/LinkedText/LinkedText.scss.js.map +1 -0
  103. package/cjs-bundle/components/NewDocumentViewer/utils.js +1 -1
  104. package/cjs-bundle/components/NewDocumentViewer/utils.js.map +1 -1
  105. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  106. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  107. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  108. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  109. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  110. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  111. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  112. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  113. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  114. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  115. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  116. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  117. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  118. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  119. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  120. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  121. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  122. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  123. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
  124. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
  125. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
  126. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
  127. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js +1 -1
  128. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  129. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  130. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
  131. package/cjs-bundle/components/PostInput/PostInput.js +1 -1
  132. package/cjs-bundle/components/PostInput/PostInput.js.map +1 -1
  133. package/cjs-bundle/components/UserMention/constants.js +1 -1
  134. package/cjs-bundle/components/UserMention/constants.js.map +1 -1
  135. package/cjs-bundle/components/UserMention/index.js +1 -1
  136. package/cjs-bundle/components/UserMention/index.js.map +1 -1
  137. package/cjs-bundle/components/index.js +1 -1
  138. package/cjs-bundle/componentsV2/ButtonIcon/ButtonIcon.js +1 -1
  139. package/cjs-bundle/componentsV2/ButtonIcon/ButtonIcon.js.map +1 -1
  140. package/cjs-bundle/componentsV2/ButtonIcon/ButtonIcon.scss.js +1 -1
  141. package/cjs-bundle/componentsV2/Modal/Modal.js +1 -1
  142. package/cjs-bundle/componentsV2/Modal/Modal.js.map +1 -1
  143. package/cjs-bundle/componentsV2/Modal/constants.js +2 -0
  144. package/cjs-bundle/componentsV2/Modal/constants.js.map +1 -0
  145. package/cjs-bundle/effects/useOutsideClick.js +1 -1
  146. package/cjs-bundle/effects/useOutsideClick.js.map +1 -1
  147. package/cjs-bundle/utils/fetchAttachment.js +2 -0
  148. package/cjs-bundle/utils/fetchAttachment.js.map +1 -0
  149. package/cjs-bundle/utils/links.js +2 -0
  150. package/cjs-bundle/utils/links.js.map +1 -0
  151. package/components/AddComment/Popover.js +1 -1
  152. package/components/AddComment/Popover.js.map +1 -1
  153. package/components/AddComment/components/Content.js +1 -1
  154. package/components/AddComment/components/Content.js.map +1 -1
  155. package/components/AssetEditor/AssetEditorAutocomplete.d.ts +96 -13
  156. package/components/AssetEditor/AssetEditorAutocomplete.d.ts.map +1 -1
  157. package/components/AssetEditor/AssetEditorAutocomplete.js +1 -1
  158. package/components/AssetEditor/AssetEditorAutocomplete.js.map +1 -1
  159. package/components/AssetEditorV2/index.d.ts +28 -12
  160. package/components/AssetEditorV2/index.d.ts.map +1 -1
  161. package/components/AssetEditorV2/index.js +1 -1
  162. package/components/AssetEditorV2/index.js.map +1 -1
  163. package/components/AttachmentLightbox/AttachmentDocument.d.ts +6 -0
  164. package/components/AttachmentLightbox/AttachmentDocument.d.ts.map +1 -0
  165. package/components/AttachmentLightbox/AttachmentDocument.js +2 -0
  166. package/components/AttachmentLightbox/AttachmentDocument.js.map +1 -0
  167. package/components/AttachmentLightbox/AttachmentLightbox.d.ts +9 -8
  168. package/components/AttachmentLightbox/AttachmentLightbox.d.ts.map +1 -1
  169. package/components/AttachmentLightbox/AttachmentLightbox.js +1 -1
  170. package/components/AttachmentLightbox/AttachmentLightbox.js.map +1 -1
  171. package/components/AttachmentLightbox/AttachmentLightbox.scss.js +1 -1
  172. package/components/AttachmentLightbox/AttachmentPreviewPane.d.ts +9 -0
  173. package/components/AttachmentLightbox/AttachmentPreviewPane.d.ts.map +1 -0
  174. package/components/AttachmentLightbox/AttachmentPreviewPane.js +2 -0
  175. package/components/AttachmentLightbox/AttachmentPreviewPane.js.map +1 -0
  176. package/components/AttachmentLightbox/__tests__/AttachmentDocument.test.d.ts +2 -0
  177. package/components/AttachmentLightbox/__tests__/AttachmentDocument.test.d.ts.map +1 -0
  178. package/components/AttachmentLightbox/__tests__/AttachmentLightbox.test.d.ts +2 -0
  179. package/components/AttachmentLightbox/__tests__/AttachmentLightbox.test.d.ts.map +1 -0
  180. package/components/AttachmentLightbox/__tests__/copyImageToClipboard.test.d.ts +2 -0
  181. package/components/AttachmentLightbox/__tests__/copyImageToClipboard.test.d.ts.map +1 -0
  182. package/components/AttachmentLightbox/__tests__/downloadAttachment.test.d.ts +2 -0
  183. package/components/AttachmentLightbox/__tests__/downloadAttachment.test.d.ts.map +1 -0
  184. package/components/AttachmentLightbox/__tests__/useZoomPan.test.d.ts +2 -0
  185. package/components/AttachmentLightbox/__tests__/useZoomPan.test.d.ts.map +1 -0
  186. package/components/AttachmentLightbox/copyImageToClipboard.d.ts +4 -0
  187. package/components/AttachmentLightbox/copyImageToClipboard.d.ts.map +1 -0
  188. package/components/AttachmentLightbox/copyImageToClipboard.js +2 -0
  189. package/components/AttachmentLightbox/copyImageToClipboard.js.map +1 -0
  190. package/components/AttachmentLightbox/downloadAttachment.d.ts +10 -0
  191. package/components/AttachmentLightbox/downloadAttachment.d.ts.map +1 -0
  192. package/components/AttachmentLightbox/downloadAttachment.js +2 -0
  193. package/components/AttachmentLightbox/downloadAttachment.js.map +1 -0
  194. package/components/AttachmentLightbox/useAttachmentLightbox.d.ts +6 -2
  195. package/components/AttachmentLightbox/useAttachmentLightbox.d.ts.map +1 -1
  196. package/components/AttachmentLightbox/useAttachmentLightbox.js +1 -1
  197. package/components/AttachmentLightbox/useAttachmentLightbox.js.map +1 -1
  198. package/components/AttachmentLightbox/useZoomPan.d.ts +29 -0
  199. package/components/AttachmentLightbox/useZoomPan.d.ts.map +1 -0
  200. package/components/AttachmentLightbox/useZoomPan.js +2 -0
  201. package/components/AttachmentLightbox/useZoomPan.js.map +1 -0
  202. package/components/AttachmentPreview/AttachmentActionsMenu.d.ts +16 -0
  203. package/components/AttachmentPreview/AttachmentActionsMenu.d.ts.map +1 -0
  204. package/components/AttachmentPreview/AttachmentActionsMenu.js +2 -0
  205. package/components/AttachmentPreview/AttachmentActionsMenu.js.map +1 -0
  206. package/components/AttachmentPreview/AttachmentDownloadLink.d.ts +11 -0
  207. package/components/AttachmentPreview/AttachmentDownloadLink.d.ts.map +1 -0
  208. package/components/AttachmentPreview/AttachmentDownloadLink.js +2 -0
  209. package/components/AttachmentPreview/AttachmentDownloadLink.js.map +1 -0
  210. package/components/AttachmentPreview/AttachmentImage.d.ts +12 -0
  211. package/components/AttachmentPreview/AttachmentImage.d.ts.map +1 -0
  212. package/components/AttachmentPreview/AttachmentImage.js +2 -0
  213. package/components/AttachmentPreview/AttachmentImage.js.map +1 -0
  214. package/components/AttachmentPreview/AttachmentPreview.d.ts.map +1 -1
  215. package/components/AttachmentPreview/AttachmentPreview.js +1 -1
  216. package/components/AttachmentPreview/AttachmentPreview.js.map +1 -1
  217. package/components/AttachmentPreview/AttachmentPreview.scss.js +1 -1
  218. package/components/AttachmentPreview/AttachmentPreview.types.d.ts +7 -0
  219. package/components/AttachmentPreview/AttachmentPreview.types.d.ts.map +1 -1
  220. package/components/AttachmentPreview/AttachmentRow.d.ts +7 -3
  221. package/components/AttachmentPreview/AttachmentRow.d.ts.map +1 -1
  222. package/components/AttachmentPreview/AttachmentRow.js +1 -1
  223. package/components/AttachmentPreview/AttachmentRow.js.map +1 -1
  224. package/components/AttachmentPreview/AttachmentTile.d.ts +5 -1
  225. package/components/AttachmentPreview/AttachmentTile.d.ts.map +1 -1
  226. package/components/AttachmentPreview/AttachmentTile.js +1 -1
  227. package/components/AttachmentPreview/AttachmentTile.js.map +1 -1
  228. package/components/AttachmentPreview/__tests__/AttachmentActionsMenu.test.d.ts +2 -0
  229. package/components/AttachmentPreview/__tests__/AttachmentActionsMenu.test.d.ts.map +1 -0
  230. package/components/AttachmentPreview/__tests__/AttachmentDownloadLink.test.d.ts +2 -0
  231. package/components/AttachmentPreview/__tests__/AttachmentDownloadLink.test.d.ts.map +1 -0
  232. package/components/AttachmentPreview/__tests__/AttachmentImage.test.d.ts +2 -0
  233. package/components/AttachmentPreview/__tests__/AttachmentImage.test.d.ts.map +1 -0
  234. package/components/AttachmentPreview/__tests__/AttachmentTile.test.d.ts +2 -0
  235. package/components/AttachmentPreview/__tests__/AttachmentTile.test.d.ts.map +1 -0
  236. package/components/AttachmentPreview/__tests__/useStoredAttachments.test.d.ts +2 -0
  237. package/components/AttachmentPreview/__tests__/useStoredAttachments.test.d.ts.map +1 -0
  238. package/components/AttachmentPreview/useStoredAttachment.d.ts +8 -0
  239. package/components/AttachmentPreview/useStoredAttachment.d.ts.map +1 -1
  240. package/components/AttachmentPreview/useStoredAttachment.js +2 -0
  241. package/components/AttachmentPreview/useStoredAttachment.js.map +1 -0
  242. package/components/AttachmentPreview/useStoredAttachments.d.ts +1 -1
  243. package/components/AttachmentPreview/useStoredAttachments.d.ts.map +1 -1
  244. package/components/AttachmentPreview/useStoredAttachments.js +1 -1
  245. package/components/AttachmentPreview/useStoredAttachments.js.map +1 -1
  246. package/components/BICOffsetPickerDialog/index.js +1 -1
  247. package/components/BICOffsetPickerDialog/index.js.map +1 -1
  248. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  249. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  250. package/components/Casing/CasingTableV2/components/Component.js +1 -1
  251. package/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  252. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  253. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  254. package/components/CommentCard/CommentCard.d.ts.map +1 -1
  255. package/components/CommentCard/CommentCard.js +1 -1
  256. package/components/CommentCard/CommentCard.js.map +1 -1
  257. package/components/CommentCard/CommentCard.types.d.ts +2 -0
  258. package/components/CommentCard/CommentCard.types.d.ts.map +1 -1
  259. package/components/CommentCard/CommentMenu.d.ts.map +1 -1
  260. package/components/CommentCard/CommentMenu.js +1 -1
  261. package/components/CommentCard/CommentMenu.js.map +1 -1
  262. package/components/CommentComposer/CommentComposer.d.ts.map +1 -1
  263. package/components/CommentComposer/CommentComposer.js +1 -1
  264. package/components/CommentComposer/CommentComposer.js.map +1 -1
  265. package/components/CommentComposer/CommentReplyInput.d.ts.map +1 -1
  266. package/components/CommentComposer/CommentReplyInput.js +1 -1
  267. package/components/CommentComposer/CommentReplyInput.js.map +1 -1
  268. package/components/CommentComposer/__tests__/useAttachmentUpload.linked.test.d.ts +2 -0
  269. package/components/CommentComposer/__tests__/useAttachmentUpload.linked.test.d.ts.map +1 -0
  270. package/components/CommentComposer/useAttachmentUpload.d.ts +1 -0
  271. package/components/CommentComposer/useAttachmentUpload.d.ts.map +1 -1
  272. package/components/CommentComposer/useAttachmentUpload.js +1 -1
  273. package/components/CommentComposer/useAttachmentUpload.js.map +1 -1
  274. package/components/CommentInputNext/CommentInputNext.d.ts +2 -0
  275. package/components/CommentInputNext/CommentInputNext.d.ts.map +1 -1
  276. package/components/CommentInputNext/CommentInputNext.js +1 -1
  277. package/components/CommentInputNext/CommentInputNext.js.map +1 -1
  278. package/components/CommentInputNext/__tests__/useFilePaste.test.d.ts +2 -0
  279. package/components/CommentInputNext/__tests__/useFilePaste.test.d.ts.map +1 -0
  280. package/components/CommentInputNext/useFilePaste.d.ts +17 -0
  281. package/components/CommentInputNext/useFilePaste.d.ts.map +1 -0
  282. package/components/CommentInputNext/useFilePaste.js +2 -0
  283. package/components/CommentInputNext/useFilePaste.js.map +1 -0
  284. package/components/DevCenter/AppsDataProvider/AppsDataProvider.d.ts +5 -1
  285. package/components/DevCenter/AppsDataProvider/AppsDataProvider.d.ts.map +1 -1
  286. package/components/DevCenter/AppsDataProvider/AppsDataProvider.js +1 -1
  287. package/components/DevCenter/AppsDataProvider/AppsDataProvider.js.map +1 -1
  288. package/components/DocumentViewer/DocumentViewer.js +1 -1
  289. package/components/DocumentViewer/DocumentViewer.js.map +1 -1
  290. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  291. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  292. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  293. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  294. package/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  295. package/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  296. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  297. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  298. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  299. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  300. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  301. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  302. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  303. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  304. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  305. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  306. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  307. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  308. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  309. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  310. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  311. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  312. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  313. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  314. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  315. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  316. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  317. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  318. package/components/IconMenu/index.d.ts +67 -21
  319. package/components/IconMenu/index.d.ts.map +1 -1
  320. package/components/IconMenu/index.js +1 -1
  321. package/components/IconMenu/index.js.map +1 -1
  322. package/components/KeyboardDateTimePicker.d.ts +6 -7
  323. package/components/KeyboardDateTimePicker.d.ts.map +1 -1
  324. package/components/KeyboardDateTimePicker.js +1 -1
  325. package/components/KeyboardDateTimePicker.js.map +1 -1
  326. package/components/LinkedText/LinkedText.d.ts +17 -0
  327. package/components/LinkedText/LinkedText.d.ts.map +1 -0
  328. package/components/LinkedText/LinkedText.js +2 -0
  329. package/components/LinkedText/LinkedText.js.map +1 -0
  330. package/components/LinkedText/LinkedText.scss.js +2 -0
  331. package/components/LinkedText/LinkedText.scss.js.map +1 -0
  332. package/components/LinkedText/__tests__/LinkedText.test.d.ts +2 -0
  333. package/components/LinkedText/__tests__/LinkedText.test.d.ts.map +1 -0
  334. package/components/LinkedText/index.d.ts +2 -0
  335. package/components/LinkedText/index.d.ts.map +1 -0
  336. package/components/NewDocumentViewer/utils.d.ts.map +1 -1
  337. package/components/NewDocumentViewer/utils.js +1 -1
  338. package/components/NewDocumentViewer/utils.js.map +1 -1
  339. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  340. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  341. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  342. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  343. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  344. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  345. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  346. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  347. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  348. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  349. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  350. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  351. package/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  352. package/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  353. package/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  354. package/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  355. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  356. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  357. package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
  358. package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
  359. package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
  360. package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
  361. package/components/PadOffsetsPicker/StagesSelector.js +1 -1
  362. package/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  363. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  364. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
  365. package/components/PostInput/PostInput.d.ts +20 -10
  366. package/components/PostInput/PostInput.d.ts.map +1 -1
  367. package/components/PostInput/PostInput.js +1 -1
  368. package/components/PostInput/PostInput.js.map +1 -1
  369. package/components/UserMention/__tests__/highlightLinks.test.d.ts +2 -0
  370. package/components/UserMention/__tests__/highlightLinks.test.d.ts.map +1 -0
  371. package/components/UserMention/constants.d.ts +1 -0
  372. package/components/UserMention/constants.d.ts.map +1 -1
  373. package/components/UserMention/constants.js +1 -1
  374. package/components/UserMention/constants.js.map +1 -1
  375. package/components/UserMention/index.js +1 -1
  376. package/components/UserMention/index.js.map +1 -1
  377. package/components/index.d.ts +2 -0
  378. package/components/index.d.ts.map +1 -1
  379. package/components/index.js +1 -1
  380. package/componentsV2/ButtonIcon/ButtonIcon.d.ts +2 -0
  381. package/componentsV2/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  382. package/componentsV2/ButtonIcon/ButtonIcon.js +1 -1
  383. package/componentsV2/ButtonIcon/ButtonIcon.js.map +1 -1
  384. package/componentsV2/ButtonIcon/ButtonIcon.scss.js +1 -1
  385. package/componentsV2/ButtonIcon/ButtonIcon.stories.d.ts +1 -0
  386. package/componentsV2/ButtonIcon/ButtonIcon.stories.d.ts.map +1 -1
  387. package/componentsV2/Modal/Modal.d.ts.map +1 -1
  388. package/componentsV2/Modal/Modal.js +1 -1
  389. package/componentsV2/Modal/Modal.js.map +1 -1
  390. package/componentsV2/Modal/constants.d.ts +3 -0
  391. package/componentsV2/Modal/constants.d.ts.map +1 -0
  392. package/componentsV2/Modal/constants.js +2 -0
  393. package/componentsV2/Modal/constants.js.map +1 -0
  394. package/effects/__tests__/useOutsideClick.test.d.ts.map +1 -1
  395. package/effects/useOutsideClick.d.ts.map +1 -1
  396. package/effects/useOutsideClick.js +1 -1
  397. package/effects/useOutsideClick.js.map +1 -1
  398. package/mcp-server/server.mjs +35 -9
  399. package/package.json +1 -1
  400. package/tsconfig.tsbuildinfo +1 -1
  401. package/utils/__tests__/fetchAttachment.test.d.ts +2 -0
  402. package/utils/__tests__/fetchAttachment.test.d.ts.map +1 -0
  403. package/utils/__tests__/links.test.d.ts +2 -0
  404. package/utils/__tests__/links.test.d.ts.map +1 -0
  405. package/utils/fetchAttachment.d.ts +3 -0
  406. package/utils/fetchAttachment.d.ts.map +1 -0
  407. package/utils/fetchAttachment.js +2 -0
  408. package/utils/fetchAttachment.js.map +1 -0
  409. package/utils/links.d.ts +14 -0
  410. package/utils/links.d.ts.map +1 -0
  411. package/utils/links.js +2 -0
  412. package/utils/links.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AssetEditorV2/index.js"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;wCAoBH,EAC9B,MAAa,EACb,OAAO,EACP,SAAS,EACT,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,QAAQ,EACR,aAAqB,EACrB,UAAkB,EAClB,KAAyB,EACzB,gBAAgB,EAAE,qBAAqB,EACvC,kBAA2E,EAC3E,oBAA+E,EAC/E,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,6BAAqC,EACrC,WAAkB,EAClB,8BAAsC,EACtC,qBAAqB,EACrB,sBAA6B,EAC7B,QAAsD,EACtD,kBAA2E,GAC5E;;;;;;;;;;;;;;;;;;;;;;;;CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;eA8Rc,sBAAsB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AssetEditorV2/index.js"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;wCAoBH,EAC9B,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,KAAK,EACL,gBAAgB,EAAE,qBAAqB,EACvC,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,6BAA6B,EAC7B,WAAW,EACX,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,kBAAkB,GACnB;;;;;;;;;;;;;;;;;;;;;;;;CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA0Sc,sBAAsB"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/toConsumableArray";import t from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useState as r,useRef as n,useEffect as a}from"react";import i from"prop-types";import{get as o,isEmpty as l,noop as p}from"lodash";import d from"classnames";import{makeStyles as c}from"@material-ui/core";import u from"./components/PrimaryAssetSelect.js";import m from"./components/SecondaryAssetSelect.js";import"./components/SelectItem.js";import y from"./components/MultipleAssetsToggle.js";import f from"./components/PrimaryAssetSelectV2.js";import{ACTIVE_ASSETS_ID as g,ACTIVE_ASSET_ID as v}from"./constants.js";import{getPrimaryAssetFields as A}from"./utils/index.js";import"../../constants/goals.js";import{PAD_GROUP as b,FRAC_FLEET_GROUP as h}from"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import{ASSET_TYPES as j}from"../../constants/assetTypes.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import{jsxs as I,jsx as S}from"react/jsx-runtime";function O(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 s=1;s<arguments.length;s++){var r=null!=arguments[s]?arguments[s]:{};s%2?O(Object(r),!0).forEach((function(s){t(e,s,r[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var C=c({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),P=function(i){var p=i.appKey,c=void 0===p?null:p,O=i.appType,P=i.className,w=i.company,x=i.defaultValue,R=i.secondaryDefaultValue,_=i.disabled,q=i.isHiddenTitle,E=void 0!==q&&q,G=i.isNullable,H=void 0!==G&&G,K=i.label,L=void 0===K?"Choose An Asset":K,M=i.onSettingsChange,W=i.primaryAssetFields,k=void 0===W?N:W,z=i.secondaryAssetFields,B=void 0===z?D:z,J=i.isExtendedSelect,Q=i.isRequiredAssetId,U=i.settings,X=i.isVisibleMultipleAssetsToggle,Y=void 0!==X&&X,Z=i.assetsLimit,$=void 0===Z?null:Z,ee=i.isDisabledSecondaryAssetSelect,te=void 0!==ee&&ee,se=i.isDrillingPlatformApp,re=i.secondaryAssetHelpText,ne=void 0===re?null:re,ae=i.onChange,ie=void 0===ae?F:ae,oe=i.elementsClassNames,le=void 0===oe?V:oe,pe=o(O,["primaryAsset","assetType","type"]),de=o(O,["primaryAsset","assetType","id"]),ce=o(O,["primaryAsset","assetType","label"]),ue=o(O,["primaryAsset","groups"]),me=o(O,["secondaryAsset"],!1),ye=o(O,["secondaryAsset","assetType","type"]),fe=o(O,["secondaryAsset","assetType","id"]),ge=o(O,["secondaryAsset","assetType","label"]),ve=o(U,de),Ae=ve?Number(ve):null,be=o(U,fe)?Number(o(U,fe)):R||null,he=r({id:Ae||x}),je=s(he,2),Ie=je[0],Se=je[1],Oe=r(be),Te=s(Oe,2),Ce=Te[0],Pe=Te[1],Ne=r(!1),De=s(Ne,2),Fe=De[0],Ve=De[1],we=r(),xe=s(we,2),Re=xe[0],_e=xe[1],qe=r(!1),Ee=s(qe,2),Ge=Ee[0],He=Ee[1],Ke=n(!1),Le=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];M.apply(void 0,t.concat([Ke.current]))},Me=C(),We=pe===j.rig.type||pe===j.intervention_unit.type?f:u,ke=se&&null!=Ie&&Ie.assetId?null==Ie?void 0:Ie.assetId:null==Ie?void 0:Ie.id,ze=function(){var e,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Se(s),Pe(null),Ve(!1);var r=(t(e={},de,null),t(e,fe,null),t(e,"assets",null),e);Le(r)},Be=me&&(Ge?Boolean(Ie.length)&&!Fe:(null==Ie?void 0:Ie.id)&&!Fe);return a((function(){l(U)&&ze(Ge&&[])}),[U]),I("div",{className:d(Me.main,P),children:[!E&&S("div",{className:d(Me.title,le.title),children:"Asset"}),Y&&S(y,{onChange:function(e){Ke.current=!!e,He(e),ze(e&&[])},className:le.multiAssetSwitch,checked:Ge}),S("div",{className:le.primaryAssetSelect,children:S(We,{appKey:c,assetType:pe,company:w,currentOption:Ie,currentValue:null==Ie?void 0:Ie.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:me,defaultValue:x,disableClearable:!H,disabled:_,isNullable:H,isRequiredAssetId:Q,label:L,multiple:Ge,onChange:function(s){if(ie({primary:s}),Ge)!function(s){var r,n;if(!(s.length>$)){var a=(null===(r=s[0])||void 0===r?void 0:r.group)===b.name,i=(null===(n=s[0])||void 0===n?void 0:n.group)===h.name,o=1===s.length&&a,l=1===s.length&&i;if(o?(Ve(!0),_e(b)):l&&_e(h),a){Se(s);var p=null==s?void 0:s.reduce((function(t,s){var r=s.parentFracFleetId,n=s.id,a={fracFleetId:r,padId:n};return J&&(a.assetId=r,a.replacedPadId=n),r?[].concat(e(t),[a]):t}),[]);Le({assets:p})}else{Se(s);var d=s.reduce((function(s,r){var n=t({},"".concat(r.type,"Id"),r.id);return Q&&(n.assetId=r.assetId),J&&(n.assetId=r.assetId||r.id),[].concat(e(s),[n])}),[]);Le({assets:d})}}}(s);else{var r=s.id,n=s.type,a=s.parentFracFleetId;if(r)if(n!==j.pad.type){Se(s),Pe(null);var i=t({},de,r);Q&&(i.assetId=s.assetId),fe&&(i[fe]=null),Le(i),Ve(!1)}else{var o;Se(s),Ve(!0),Pe(r);var l=(t(o={},j.frac_fleet.id,Number(a)),t(o,j.pad.id,r),o);Le(l)}}},setCurrentOption:Se,selectedGroup:Re,onGroupChange:function(e){_e(e),ze(Ge&&[])},onGroupReset:function(){_e(null),ze(Ge&&[])},groups:ue,onInputReset:ze,onActiveAssetIdChange:function(e){Se((function(t){return T(T({},t),{},{activeWellId:e})}))},isDrillingPlatformApp:se,assetFields:A(pe,k,se)})}),Be&&I("div",{className:le.secondaryAssetSelect,children:[ne,S(m,{assetFields:ye===j.pad.type?[].concat(e(B),["pad.active","pad.current"]):B,activeWellId:null==Ie?void 0:Ie.activeWellId,appKey:c,assetType:ye,company:w,currentValue:Ce,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:Ge?g:v,disabled:Ge||te||_,isDrillingPlatformApp:se,isNullable:H,isRequiredAssetId:Q,onChange:function(e){var s=e.id,r=e.assetId,n=e.name;ie({secondary:{name:n}}),Pe(s);var a=s===v?null:s,i=t({},fe,a);Q&&ye===j.well.type?Le(T(T({},i),{},{replacedAssetId:se?a:r})):Le(i)},parentAssetId:ke,parentAssetType:se?"parent_asset_id":pe,primaryAssetLabel:ce,secondaryAssetLabel:ge})]})]})},N=[],D=[],F=p,V={};P.propTypes={assetsLimit:i.number,settings:i.shape({}).isRequired,appType:i.shape({}).isRequired,defaultValue:i.any,secondaryDefaultValue:i.any,onSettingsChange:i.func.isRequired,label:i.string,isNullable:i.bool,isHiddenTitle:i.bool,appKey:i.string,isVisibleMultipleAssetsToggle:i.bool,isDisabledSecondaryAssetSelect:i.bool,primaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetHelpText:i.oneOfType([i.element,i.string]),onChange:i.func,elementsClassNames:i.shape({title:i.string,multiAssetSwitch:i.string,primaryAssetSelect:i.string,secondaryAssetSelect:i.string})};export{P as default};
1
+ import e from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import{useState as a,useRef as r,useEffect as n}from"react";import i from"prop-types";import{get as l,isEmpty as o,noop as p}from"lodash";import c from"classnames";import{makeStyles as d}from"@material-ui/core";import u from"./components/PrimaryAssetSelect.js";import m from"./components/SecondaryAssetSelect.js";import"./components/SelectItem.js";import y from"./components/MultipleAssetsToggle.js";import f from"./components/PrimaryAssetSelectV2.js";import{ACTIVE_ASSETS_ID as g,ACTIVE_ASSET_ID as A}from"./constants.js";import{getPrimaryAssetFields as b}from"./utils/index.js";import"../../constants/goals.js";import{PAD_GROUP as v,FRAC_FLEET_GROUP as h}from"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import{ASSET_TYPES as j}from"../../constants/assetTypes.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import{jsxs as I,jsx as S}from"react/jsx-runtime";function T(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);s&&(a=a.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),t.push.apply(t,a)}return t}function O(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?T(Object(a),!0).forEach((function(t){s(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):T(Object(a)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(a,s))}))}return e}var C=d({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),P=function(i){var p=i.appKey,d=i.appType,T=i.className,P=i.company,N=i.defaultValue,D=i.secondaryDefaultValue,V=i.disabled,F=i.isHiddenTitle,w=i.isNullable,x=i.label,R=i.onSettingsChange,_=i.primaryAssetFields,q=i.secondaryAssetFields,E=i.isExtendedSelect,H=i.isRequiredAssetId,K=i.settings,L=i.isVisibleMultipleAssetsToggle,M=i.assetsLimit,G=i.isDisabledSecondaryAssetSelect,W=i.isDrillingPlatformApp,k=i.secondaryAssetHelpText,z=i.onChange,B=i.elementsClassNames,J=l(d,["primaryAsset","assetType","type"]),Q=l(d,["primaryAsset","assetType","id"]),U=l(d,["primaryAsset","assetType","label"]),X=l(d,["primaryAsset","groups"]),Y=l(d,["secondaryAsset"],!1),Z=l(d,["secondaryAsset","assetType","type"]),$=l(d,["secondaryAsset","assetType","id"]),ee=l(d,["secondaryAsset","assetType","label"]),se=l(K,Q),te=se?Number(se):null,ae=l(K,$)?Number(l(K,$)):D||null,re=a({id:te||N}),ne=t(re,2),ie=ne[0],le=ne[1],oe=a(ae),pe=t(oe,2),ce=pe[0],de=pe[1],ue=a(!1),me=t(ue,2),ye=me[0],fe=me[1],ge=a(),Ae=t(ge,2),be=Ae[0],ve=Ae[1],he=a(!1),je=t(he,2),Ie=je[0],Se=je[1],Te=r(!1),Oe=function(){for(var e=arguments.length,s=new Array(e),t=0;t<e;t++)s[t]=arguments[t];R.apply(void 0,s.concat([Te.current]))},Ce=C(),Pe=J===j.rig.type||J===j.intervention_unit.type?f:u,Ne=W&&null!=ie&&ie.assetId?null==ie?void 0:ie.assetId:null==ie?void 0:ie.id,De=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};le(t),de(null),fe(!1);var a=(s(e={},Q,null),s(e,$,null),s(e,"assets",null),e);Oe(a)},Ve=Y&&(Ie?Boolean(ie.length)&&!ye:(null==ie?void 0:ie.id)&&!ye);return n((function(){o(K)&&De(Ie&&[])}),[K]),I("div",{className:c(Ce.main,T),children:[!F&&S("div",{className:c(Ce.title,B.title),children:"Asset"}),L&&S(y,{onChange:function(e){Te.current=!!e,Se(e),De(e&&[])},className:B.multiAssetSwitch,checked:Ie}),S("div",{className:B.primaryAssetSelect,children:S(Pe,{appKey:p,assetType:J,company:P,currentOption:ie,currentValue:null==ie?void 0:ie.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:Y,defaultValue:N,disableClearable:!w,disabled:V,isNullable:w,isRequiredAssetId:H,label:x,multiple:Ie,onChange:function(t){if(z({primary:t}),Ie)!function(t){var a,r;if(!(t.length>M)){var n=(null===(a=t[0])||void 0===a?void 0:a.group)===v.name,i=(null===(r=t[0])||void 0===r?void 0:r.group)===h.name,l=1===t.length&&n,o=1===t.length&&i;if(l?(fe(!0),ve(v)):o&&ve(h),n){le(t);var p=null==t?void 0:t.reduce((function(s,t){var a=t.parentFracFleetId,r=t.id,n={fracFleetId:a,padId:r};return E&&(n.assetId=a,n.replacedPadId=r),a?[].concat(e(s),[n]):s}),[]);Oe({assets:p})}else{le(t);var c=t.reduce((function(t,a){var r=s({},"".concat(a.type,"Id"),a.id);return H&&(r.assetId=a.assetId),E&&(r.assetId=a.assetId||a.id),[].concat(e(t),[r])}),[]);Oe({assets:c})}}}(t);else{var a=t.id,r=t.type,n=t.parentFracFleetId;if(a)if(r!==j.pad.type){le(t),de(null);var i=s({},Q,a);H&&(i.assetId=t.assetId),$&&(i[$]=null),Oe(i),fe(!1)}else{var l;le(t),fe(!0),de(a);var o=(s(l={},j.frac_fleet.id,Number(n)),s(l,j.pad.id,a),l);Oe(o)}}},setCurrentOption:le,selectedGroup:be,onGroupChange:function(e){ve(e),De(Ie&&[])},onGroupReset:function(){ve(null),De(Ie&&[])},groups:X,onInputReset:De,onActiveAssetIdChange:function(e){le((function(s){return O(O({},s),{},{activeWellId:e})}))},isDrillingPlatformApp:W,assetFields:b(J,_,W)})}),Ve&&I("div",{className:B.secondaryAssetSelect,children:[k,S(m,{assetFields:Z===j.pad.type?[].concat(e(q),["pad.active","pad.current"]):q,activeWellId:null==ie?void 0:ie.activeWellId,appKey:p,assetType:Z,company:P,currentValue:ce,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:Ie?g:A,disabled:Ie||G||V,isDrillingPlatformApp:W,isNullable:w,isRequiredAssetId:H,onChange:function(e){var t=e.id,a=e.assetId,r=e.name;z({secondary:{name:r}}),de(t);var n=t===A?null:t,i=s({},$,n);H&&Z===j.well.type?Oe(O(O({},i),{},{replacedAssetId:W?n:a})):Oe(i)},parentAssetId:Ne,parentAssetType:W?"parent_asset_id":J,primaryAssetLabel:U,secondaryAssetLabel:ee})]})]})};P.defaultProps={assetsLimit:null,label:"Choose An Asset",isNullable:!1,defaultValue:void 0,secondaryDefaultValue:void 0,isHiddenTitle:!1,appKey:null,isVisibleMultipleAssetsToggle:!1,isDisabledSecondaryAssetSelect:!1,primaryAssetFields:[],secondaryAssetFields:[],secondaryAssetHelpText:null,onChange:p,elementsClassNames:{}},P.propTypes={assetsLimit:i.number,settings:i.shape({}).isRequired,appType:i.shape({}).isRequired,defaultValue:i.any,secondaryDefaultValue:i.any,onSettingsChange:i.func.isRequired,label:i.string,isNullable:i.bool,isHiddenTitle:i.bool,appKey:i.string,isVisibleMultipleAssetsToggle:i.bool,isDisabledSecondaryAssetSelect:i.bool,primaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetFields:i.arrayOf(i.shape({})),secondaryAssetHelpText:i.oneOfType([i.element,i.string]),onChange:i.func,elementsClassNames:i.shape({title:i.string,multiAssetSwitch:i.string,primaryAssetSelect:i.string,secondaryAssetSelect:i.string})};export{P as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey = null,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle = false,\n isNullable = false,\n label = 'Choose An Asset',\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields = DEFAULT_APP_SETTINGS_ASSET_EDITOR_PRIMARY_ASSET_FIELDS,\n secondaryAssetFields = DEFAULT_APP_SETTINGS_ASSET_EDITOR_SECONDARY_ASSET_FIELDS,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle = false,\n assetsLimit = null,\n isDisabledSecondaryAssetSelect = false,\n isDrillingPlatformApp,\n secondaryAssetHelpText = null,\n onChange = DEFAULT_APP_SETTINGS_ASSET_EDITOR_ON_CHANGE,\n elementsClassNames = DEFAULT_APP_SETTINGS_ASSET_EDITOR_ELEMENTS_CLASS_NAMES,\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\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_PRIMARY_ASSET_FIELDS = [];\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_SECONDARY_ASSET_FIELDS = [];\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_ON_CHANGE = noop;\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_ELEMENTS_CLASS_NAMES = {};\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","_ref$appKey","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","_ref$isHiddenTitle","isHiddenTitle","_ref$isNullable","isNullable","_ref$label","label","propsOnSettingsChange","onSettingsChange","_ref$primaryAssetFiel","primaryAssetFields","DEFAULT_APP_SETTINGS_ASSET_EDITOR_PRIMARY_ASSET_FIELDS","_ref$secondaryAssetFi","secondaryAssetFields","DEFAULT_APP_SETTINGS_ASSET_EDITOR_SECONDARY_ASSET_FIELDS","isExtendedSelect","isRequiredAssetId","settings","_ref$isVisibleMultipl","isVisibleMultipleAssetsToggle","_ref$assetsLimit","assetsLimit","_ref$isDisabledSecond","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","_ref$secondaryAssetHe","secondaryAssetHelpText","_ref$onChange","onChange","DEFAULT_APP_SETTINGS_ASSET_EDITOR_ON_CHANGE","_ref$elementsClassNam","elementsClassNames","DEFAULT_APP_SETTINGS_ASSET_EDITOR_ELEMENTS_CLASS_NAMES","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","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","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle,\n isNullable,\n label,\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields,\n secondaryAssetFields,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle,\n assetsLimit,\n isDisabledSecondaryAssetSelect,\n isDrillingPlatformApp,\n secondaryAssetHelpText,\n onChange,\n elementsClassNames,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const 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","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","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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"}
@@ -0,0 +1,6 @@
1
+ import type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';
2
+ export type AttachmentDocumentProps = {
3
+ item: AttachmentPreviewItem;
4
+ };
5
+ export declare const AttachmentDocument: ({ item }: AttachmentDocumentProps) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=AttachmentDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentDocument.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/AttachmentDocument.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AA2G1F,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,uBAAuB,4CA2EnE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import e from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/toArray";import n from"@babel/runtime/regenerator";import{useState as a,useEffect as o}from"react";import{FileIcon as i}from"../../componentsV2/FileIcon/FileIcon.js";import{Button as c}from"../../componentsV2/Button/Button.js";import{LoaderCircular as s}from"../../componentsV2/LoaderCircular/LoaderCircular.js";import{TextViewer as l}from"../NewDocumentViewer/components/TextViewer.js";import{CsvViewer as m}from"../NewDocumentViewer/components/CsvViewer.js";import{PdfViewer as u}from"../NewDocumentViewer/components/PdfViewer.js";import{getTextData as d,getXlsxData as f,getCsvData as p}from"../NewDocumentViewer/utils.js";import{openAttachmentInNewTab as b,downloadAttachment as v}from"./downloadAttachment.js";import h from"./AttachmentLightbox.scss.js";import{fetchAttachment as w}from"../../utils/fetchAttachment.js";import{getFileExtension as x}from"../../utils/fileExtension.js";import j from"../../utils/main.js";import{jsx as k,jsxs as N}from"react/jsx-runtime";var L={pdf:"pdf",csv:"table",xlsx:"table",txt:"text",json:"text"},g=function(e){var t=r(e),n=t[0],a=void 0===n?[]:n,o=t.slice(1),i=function(e){var t=new Map;return e.map((function(e,r){var n,a=e||"Column ".concat(r+1),o=null!==(n=t.get(a))&&void 0!==n?n:0;return t.set(a,o+1),o?"".concat(a," (").concat(o+1,")"):a}))}(a);return o.map((function(e){return Object.fromEntries(i.map((function(t,r){var n;return[t,null!==(n=e[r])&&void 0!==n?n:""]})))}))},F=function(){var e=t(n.mark((function e(t,r){var a,o;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("pdf"!==r){e.next=7;break}return e.next=3,w(t);case 3:return e.next=5,e.sent.blob();case 5:return o=e.sent,e.abrupt("return",URL.createObjectURL(o.type?o:new Blob([o],{type:"application/pdf"})));case 7:if("csv"!==r){e.next=9;break}return e.abrupt("return",p(t));case 9:if("xlsx"!==r){e.next=24;break}return e.t0=g,e.next=13,f(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(t));case 25:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),U=["pdf","text","table"],y=function(r){var d=r.item,f=j.getFileNameWithExtensionFromPath(d.name),p=x(f),w=d.src||d.downloadUrl||"",g=L[p],y=function(t,r,n){var i=a((function(){return{data:"",isLoading:!!t&&U.includes(n),hasFailed:!1}})),c=e(i,2),s=c[0],l=c[1];return o((function(){if(t&&U.includes(n)){var e=!0;l({data:"",isLoading:!0,hasFailed:!1});var a="";return F(t,r).then((function(t){"pdf"===n&&(a=t),e?l({data:t,isLoading:!1,hasFailed:!1}):a&&URL.revokeObjectURL(a)})).catch((function(r){console.error('Failed to read attachment "'.concat(t,'"'),r),e&&l({data:"",isLoading:!1,hasFailed:!0})})),function(){e=!1,a&&URL.revokeObjectURL(a)}}l({data:"",isLoading:!1,hasFailed:!1})}),[t,r,n]),s}(w,p,g),V=y.data,D=y.isLoading,R=y.hasFailed;if(D)return k("div",{className:h.documentState,"data-testid":"attachment-preview-loading",children:k(s,{size:"medium"})});var T=!!w&&!R;if(T&&"pdf"===g)return k("div",{className:h.documentFrame,children:k(u,{fileUrl:V,fileName:f})});if(T&&"table"===g)return k("div",{className:h.documentTable,children:k(m,{fileData:V})});if(T&&"text"===g)return k("div",{className:h.documentText,children:k(l,{fileData:V})});var A=R||!w&&!!g;return N("div",{className:h.documentState,"data-testid":"attachment-preview-fallback",children:[k(i,{name:f,size:48}),k("div",{className:h.fallbackName,children:f}),k("div",{className:h.fallbackHint,children:A?"This file could not be opened.":"No preview available for this file type."}),!(!d.downloadUrl&&!d.src)&&k("a",{href:d.downloadUrl||d.src,download:f,target:"_blank",rel:"noopener noreferrer",className:h.fallbackDownload,"data-testid":"attachment-preview-fallback-download",onClick:function(){var e=t(n.mark((function e(t){var r;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=d.downloadUrl||d.src||"",t.preventDefault(),e.next=4,v(r,f);case 4:if(e.sent){e.next=6;break}b(r);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),children:k(c,{type:"secondary",size:"medium",children:"Download"})})]})};export{y as AttachmentDocument};
2
+ //# sourceMappingURL=AttachmentDocument.js.map
@@ -0,0 +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) && (\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","AttachmentDocument","_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","fallbackName","fallbackHint","href","download","target","rel","fallbackDownload","onClick","_ref3","event","url","_context2","preventDefault","downloadAttachment","openAttachmentInNewTab","_callee2","_x3","Button"],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import type { AttachmentKind } from '../AttachmentPreview/AttachmentPreview.types';
2
- export type LightboxAttachment = {
3
- src: string;
4
- name?: string;
5
- kind?: AttachmentKind;
6
- };
1
+ import { ReactNode } from 'react';
2
+ import type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';
7
3
  export type AttachmentLightboxProps = {
4
+ items: AttachmentPreviewItem[];
8
5
  /** `null` keeps the lightbox closed. */
9
- attachment: LightboxAttachment | null;
6
+ activeId: AttachmentPreviewItem['id'] | null;
7
+ onActiveIdChange: (id: AttachmentPreviewItem['id']) => void;
10
8
  onClose: () => void;
9
+ /** Adds "Share file" to the overflow menu. */
10
+ onShare?: (item: AttachmentPreviewItem) => void;
11
+ title?: ReactNode;
11
12
  testId?: string;
12
13
  };
13
- export declare const AttachmentLightbox: ({ attachment, onClose, testId }: AttachmentLightboxProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const AttachmentLightbox: ({ items, activeId, onActiveIdChange, onClose, onShare, title, testId, }: AttachmentLightboxProps) => import("react/jsx-runtime").JSX.Element;
14
15
  //# sourceMappingURL=AttachmentLightbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentLightbox.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/AttachmentLightbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAInF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,wCAAwC;IACxC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,oCAAqC,uBAAuB,4CAmB1F,CAAC"}
1
+ {"version":3,"file":"AttachmentLightbox.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/AttachmentLightbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,OAAO,CAAC;AAK1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAQ1F,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,wCAAwC;IACxC,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7C,gBAAgB,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,4EAQ5B,uBAAuB,4CAqFzB,CAAC"}
@@ -1,2 +1,2 @@
1
- import{Dialog as t}from"@material-ui/core";import a from"./AttachmentLightbox.scss.js";import{jsxs as e,jsx as o}from"react/jsx-runtime";var r=function(r){var s,i=r.attachment,n=r.onClose,m=r.testId;return e(t,{open:!!i,onClose:n,maxWidth:!1,classes:{paper:a.paper},"data-testid":m,children:[!i&&o("span",{}),"video"===(null==i?void 0:i.kind)&&o("video",{src:i.src,className:a.media,controls:!0,autoPlay:!0,playsInline:!0}),!!i&&"video"!==i.kind&&o("img",{src:i.src,alt:null!==(s=i.name)&&void 0!==s?s:"Attachment",className:a.media})]})};export{r as AttachmentLightbox};
1
+ import{useCallback as o,useEffect as s}from"react";import{Modal as c}from"../../componentsV2/Modal/Modal.js";import{ButtonIcon as i}from"../../componentsV2/ButtonIcon/ButtonIcon.js";import{AttachmentRow as n}from"../AttachmentPreview/AttachmentRow.js";import{AttachmentPreviewPane as t}from"./AttachmentPreviewPane.js";import m from"./AttachmentLightbox.scss.js";import{LeftIcon as r,RightIcon as e}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/CloudDelete.js";import"../../icons/customIcons/icons/Lasso.js";import"../../icons/customIcons/icons/Radius.js";import"../../icons/customIcons/icons/ErrorOps.js";import"../../icons/customIcons/icons/DataTypeOps.js";import"../../icons/customIcons/icons/FalsePositiveOps.js";import"../../icons/customIcons/icons/CalibrationOps.js";import"../../icons/customIcons/icons/CriticalOps.js";import"../../icons/customIcons/icons/Company.js";import"../../icons/customIcons/icons/ArchiveOne.js";import"../../icons/customIcons/icons/ParseBotFusion.js";import"../../icons/customIcons/icons/Connect.js";import"../../icons/customIcons/icons/PuzzleOne.js";import"../../icons/customIcons/icons/Feed.js";import"../../icons/customIcons/icons/Prompt.js";import"../../icons/customIcons/icons/Companies.js";import"../../icons/customIcons/icons/ClipboardAi.js";import"../../icons/customIcons/icons/Key.js";import"../../icons/customIcons/icons/AtSignCrossed.js";import"../../icons/customIcons/icons/MappingManual.js";import"../../icons/customIcons/icons/Mapping.js";import"../../icons/customIcons/icons/Metrics.js";import"../../icons/customIcons/icons/Drops.js";import"../../icons/customIcons/icons/ClipboardSearch.js";import"../../icons/customIcons/icons/Template.js";import"../../icons/customIcons/icons/ClipboardMetrics.js";import"../../icons/customIcons/icons/ClipboardBuilder.js";import"../../icons/customIcons/icons/UnitConversion.js";import"../../icons/customIcons/icons/NPT.js";import"../../icons/customIcons/icons/GuidedFrac.js";import{jsxs as p,jsx as u}from"react/jsx-runtime";var a=function(a){var I=a.items,l=a.activeId,j=a.onActiveIdChange,d=a.onClose,h=a.onShare,v=a.title,C=void 0===v?"Files":v,f=a.testId,b=I.findIndex((function(o){return o.id===l})),g=-1===b?void 0:I[b],A=o((function(o){var s=I[b+o];s&&j(s.id)}),[I,b,j]);s((function(){if(g){var o=function(o){if(!o.defaultPrevented){var s=o.target;"function"==typeof(null==s?void 0:s.closest)&&s.closest('video, audio, input, textarea, [role="menu"]')||("ArrowLeft"===o.key&&A(-1),"ArrowRight"===o.key&&A(1))}};return document.addEventListener("keydown",o),function(){return document.removeEventListener("keydown",o)}}}),[g,A]);var F=I.length>1?p("div",{className:m.strip,children:[u(i,{size:"large",ariaLabel:"Previous attachment",disabled:b<=0,onClick:function(){return A(-1)},testId:"attachment-lightbox-prev",children:u(r,{})}),u(n,{items:I,selectedId:null!=l?l:void 0,hideActions:!0,onItemClick:function(o){return j(o.id)},className:m.stripRow,testId:"attachment-lightbox-strip"}),u(i,{size:"large",ariaLabel:"Next attachment",disabled:-1===b||b>=I.length-1,onClick:function(){return A(1)},testId:"attachment-lightbox-next",children:u(e,{})})]}):void 0;return u(c,{open:!!g,size:"fullscreen",title:C,onClose:d,actions:F,testId:f,children:!!g&&u(t,{item:g,onShare:h})})};export{a as AttachmentLightbox};
2
2
  //# sourceMappingURL=AttachmentLightbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentLightbox.js","sources":["../../../src/components/AttachmentLightbox/AttachmentLightbox.tsx"],"sourcesContent":["import { Dialog } from '@material-ui/core';\n\nimport type { AttachmentKind } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport styles from './AttachmentLightbox.scss';\n\nexport type LightboxAttachment = {\n src: string;\n name?: string;\n kind?: AttachmentKind;\n};\n\nexport type AttachmentLightboxProps = {\n /** `null` keeps the lightbox closed. */\n attachment: LightboxAttachment | null;\n onClose: () => void;\n testId?: string;\n};\n\nexport const AttachmentLightbox = ({ attachment, onClose, testId }: AttachmentLightboxProps) => (\n <Dialog\n open={!!attachment}\n onClose={onClose}\n maxWidth={false}\n classes={{ paper: styles.paper }}\n data-testid={testId}\n >\n {!attachment && <span />}\n\n {attachment?.kind === 'video' && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video src={attachment.src} className={styles.media} controls autoPlay playsInline />\n )}\n\n {!!attachment && attachment.kind !== 'video' && (\n <img src={attachment.src} alt={attachment.name ?? 'Attachment'} className={styles.media} />\n )}\n </Dialog>\n);\n"],"names":["AttachmentLightbox","_ref","_attachment$name","attachment","onClose","testId","_jsxs","Dialog","open","maxWidth","classes","paper","styles","children","_jsx","kind","src","className","media","controls","autoPlay","playsInline","alt","name"],"mappings":"yIAmBaA,IAAAA,EAAqB,SAAHC,GAAA,IAAAC,EAAMC,IAAAA,WAAYC,IAAAA,QAASC,IAAAA,OAAM,OAC9DC,EAACC,EAAM,CACLC,OAAQL,EACRC,QAASA,EACTK,UAAU,EACVC,QAAS,CAAEC,MAAOC,EAAOD,OACzB,cAAaN,EAAOQ,SAAA,EAElBV,GAAcW,EAAA,OAAA,CAAA,GAEM,WAArBX,aAAAA,EAAAA,EAAYY,OAEXD,EAAA,QAAA,CAAOE,IAAKb,EAAWa,IAAKC,UAAWL,EAAOM,MAAOC,UAAQ,EAACC,UAAQ,EAACC,aAAW,MAGjFlB,GAAkC,UAApBA,EAAWY,MAC1BD,EAAA,MAAA,CAAKE,IAAKb,EAAWa,IAAKM,YAAKnB,EAAAA,EAAWoB,oBAAQ,aAAcN,UAAWL,EAAOM,UAE7E"}
1
+ {"version":3,"file":"AttachmentLightbox.js","sources":["../../../src/components/AttachmentLightbox/AttachmentLightbox.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect } from 'react';\n\nimport { Modal } from '../../componentsV2/Modal';\nimport { ButtonIcon } from '../../componentsV2/ButtonIcon';\nimport { AttachmentRow } from '../AttachmentPreview/AttachmentRow';\nimport type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport { AttachmentPreviewPane } from './AttachmentPreviewPane';\n\nimport styles from './AttachmentLightbox.scss';\n\nimport { LeftIcon, RightIcon } from '~/icons';\n\nexport type AttachmentLightboxProps = {\n items: AttachmentPreviewItem[];\n /** `null` keeps the lightbox closed. */\n activeId: AttachmentPreviewItem['id'] | null;\n onActiveIdChange: (id: AttachmentPreviewItem['id']) => void;\n onClose: () => void;\n /** Adds \"Share file\" to the overflow menu. */\n onShare?: (item: AttachmentPreviewItem) => void;\n title?: ReactNode;\n testId?: string;\n};\n\nexport const AttachmentLightbox = ({\n items,\n activeId,\n onActiveIdChange,\n onClose,\n onShare,\n title = 'Files',\n testId,\n}: AttachmentLightboxProps) => {\n const activeIndex = items.findIndex(item => item.id === activeId);\n const active = activeIndex === -1 ? undefined : items[activeIndex];\n\n const step = useCallback(\n (delta: number) => {\n const next = items[activeIndex + delta];\n\n if (next) onActiveIdChange(next.id);\n },\n [items, activeIndex, onActiveIdChange]\n );\n\n useEffect(() => {\n if (!active) return undefined;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // A focused <video> seeks with the arrows; only steer when nothing nearer claims the key.\n if (event.defaultPrevented) return;\n\n // With nothing focused the target is the document, which has no `closest`.\n const target = event.target as Element | null;\n\n if (\n typeof target?.closest === 'function' &&\n target.closest('video, audio, input, textarea, [role=\"menu\"]')\n ) {\n return;\n }\n\n if (event.key === 'ArrowLeft') step(-1);\n if (event.key === 'ArrowRight') step(1);\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [active, step]);\n\n const strip =\n items.length > 1 ? (\n <div className={styles.strip}>\n <ButtonIcon\n size=\"large\"\n ariaLabel=\"Previous attachment\"\n disabled={activeIndex <= 0}\n onClick={() => step(-1)}\n testId=\"attachment-lightbox-prev\"\n >\n <LeftIcon />\n </ButtonIcon>\n\n <AttachmentRow\n items={items}\n selectedId={activeId ?? undefined}\n hideActions\n onItemClick={item => onActiveIdChange(item.id)}\n className={styles.stripRow}\n testId=\"attachment-lightbox-strip\"\n />\n\n <ButtonIcon\n size=\"large\"\n ariaLabel=\"Next attachment\"\n disabled={activeIndex === -1 || activeIndex >= items.length - 1}\n onClick={() => step(1)}\n testId=\"attachment-lightbox-next\"\n >\n <RightIcon />\n </ButtonIcon>\n </div>\n ) : undefined;\n\n return (\n <Modal\n open={!!active}\n size=\"fullscreen\"\n title={title}\n onClose={onClose}\n actions={strip}\n testId={testId}\n >\n {!!active && <AttachmentPreviewPane item={active} onShare={onShare} />}\n </Modal>\n );\n};\n"],"names":["AttachmentLightbox","_ref","items","activeId","onActiveIdChange","onClose","onShare","_ref$title","title","testId","activeIndex","findIndex","item","id","active","undefined","step","useCallback","delta","next","useEffect","handleKeyDown","event","defaultPrevented","target","closest","key","document","addEventListener","removeEventListener","strip","length","_jsxs","className","styles","children","_jsx","ButtonIcon","size","ariaLabel","disabled","onClick","LeftIcon","AttachmentRow","selectedId","hideActions","onItemClick","stripRow","RightIcon","Modal","open","actions","AttachmentPreviewPane"],"mappings":"qjIAyBaA,IAAAA,EAAqB,SAQHC,GAAA,IAP7BC,IAAAA,MACAC,IAAAA,SACAC,IAAAA,iBACAC,IAAAA,QACAC,IAAAA,QAAOC,EAAAN,EACPO,MAAAA,aAAQ,QAAOD,EACfE,IAAAA,OAEMC,EAAcR,EAAMS,WAAU,SAAAC,GAAI,OAAIA,EAAKC,KAAOV,KAClDW,GAA0B,IAAjBJ,OAAqBK,EAAYb,EAAMQ,GAEhDM,EAAOC,GACX,SAACC,GACC,IAAMC,EAAOjB,EAAMQ,EAAcQ,GAE7BC,GAAMf,EAAiBe,EAAKN,GACjC,GACD,CAACX,EAAOQ,EAAaN,IAGvBgB,GAAU,WACR,GAAKN,EAAL,CAEA,IAAMO,EAAgB,SAACC,GAErB,IAAIA,EAAMC,iBAAV,CAGA,IAAMC,EAASF,EAAME,OAGQ,mBAApBA,aAAM,EAANA,EAAQC,UACfD,EAAOC,QAAQ,kDAKC,cAAdH,EAAMI,KAAqBV,GAAM,GACnB,eAAdM,EAAMI,KAAsBV,EAAK,GAbT,GAkB9B,OAFAW,SAASC,iBAAiB,UAAWP,GAE9B,WAAA,OAAMM,SAASE,oBAAoB,UAAWR,EAAc,CAtBtC,CAuB/B,GAAG,CAACP,EAAQE,IAEZ,IAAMc,EACJ5B,EAAM6B,OAAS,EACbC,EAAA,MAAA,CAAKC,UAAWC,EAAOJ,MAAMK,SAAA,CAC3BC,EAACC,EAAU,CACTC,KAAK,QACLC,UAAU,sBACVC,SAAU9B,GAAe,EACzB+B,QAAS,WAAA,OAAMzB,GAAM,EAAG,EACxBP,OAAO,2BAA0B0B,SAEjCC,EAACM,EAAQ,MAGXN,EAACO,EAAa,CACZzC,MAAOA,EACP0C,WAAYzC,QAAAA,OAAYY,EACxB8B,aAAW,EACXC,YAAa,SAAAlC,GAAI,OAAIR,EAAiBQ,EAAKC,GAAI,EAC/CoB,UAAWC,EAAOa,SAClBtC,OAAO,8BAGT2B,EAACC,EAAU,CACTC,KAAK,QACLC,UAAU,kBACVC,UAA2B,IAAjB9B,GAAsBA,GAAeR,EAAM6B,OAAS,EAC9DU,QAAS,WAAA,OAAMzB,EAAK,EAAG,EACvBP,OAAO,2BAA0B0B,SAEjCC,EAACY,EAAS,cAGZjC,EAEN,OACEqB,EAACa,EAAK,CACJC,OAAQpC,EACRwB,KAAK,aACL9B,MAAOA,EACPH,QAASA,EACT8C,QAASrB,EACTrB,OAAQA,EAAO0B,WAEZrB,GAAUsB,EAACgB,EAAqB,CAACxC,KAAME,EAAQR,QAASA,KAGjE"}
@@ -1,2 +1,2 @@
1
- import t from'./../../ext-esm/style-inject/dist/style-inject.es.js';var a={paper:"AttachmentLightbox_paper__sWaTp",media:"AttachmentLightbox_media__CElIX"};t(".AttachmentLightbox_paper__sWaTp{background:transparent;box-shadow:none;margin:0}.AttachmentLightbox_media__CElIX{display:block;max-height:90vh;max-width:90vw}");export{a as default};
1
+ import t from'./../../ext-esm/style-inject/dist/style-inject.es.js';var e={spacing:"8",strip:"AttachmentLightbox_strip__6Ahrc",stripRow:"AttachmentLightbox_stripRow__uue68",pane:"AttachmentLightbox_pane__KzcgJ",paneHeader:"AttachmentLightbox_paneHeader__Z6qqZ",paneName:"AttachmentLightbox_paneName__wHaha",paneFileName:"AttachmentLightbox_paneFileName__Ans-0",paneFileSize:"AttachmentLightbox_paneFileSize__kHpFZ",paneActions:"AttachmentLightbox_paneActions__HYZPg",paneActionLink:"AttachmentLightbox_paneActionLink__ij8qw",paneViewport:"AttachmentLightbox_paneViewport__eNxCs",paneViewportPannable:"AttachmentLightbox_paneViewportPannable__aioSN",paneViewportPanning:"AttachmentLightbox_paneViewportPanning__ZN5R3",paneZoomBox:"AttachmentLightbox_paneZoomBox__Z1Ccd",paneMedia:"AttachmentLightbox_paneMedia__nXjJ0",paneZoomControls:"AttachmentLightbox_paneZoomControls__y7ImM",paneZoomButton:"AttachmentLightbox_paneZoomButton__kndeG",documentFrame:"AttachmentLightbox_documentFrame__-AP36",documentTable:"AttachmentLightbox_documentTable__vMkX5",documentText:"AttachmentLightbox_documentText__Tn8b7",documentState:"AttachmentLightbox_documentState__h-iDd",fallbackName:"AttachmentLightbox_fallbackName__JO0HH",fallbackHint:"AttachmentLightbox_fallbackHint__tPWNV",fallbackDownload:"AttachmentLightbox_fallbackDownload__Noq5-"};t(".AttachmentLightbox_strip__6Ahrc{align-items:center;display:flex;flex:1;gap:8px;justify-content:center;min-width:0}.AttachmentLightbox_stripRow__uue68.AttachmentLightbox_stripRow__uue68{flex:0 1 auto;gap:8px;justify-content:flex-start}.AttachmentLightbox_pane__KzcgJ{background:rgb(from var(--palette-primary-text-1) r g b/.02);border-radius:8px;display:flex;flex-direction:column;height:100%;padding:8px 16px 16px;position:relative}.AttachmentLightbox_paneHeader__Z6qqZ{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:4px 0}.AttachmentLightbox_paneName__wHaha{display:flex;flex-direction:column;justify-content:center;min-width:0}.AttachmentLightbox_paneFileName__Ans-0{color:var(--palette-primary-text-1);font-size:16px;font-weight:500;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AttachmentLightbox_paneFileSize__kHpFZ{color:var(--palette-primary-text-6);font-size:12px;line-height:16px}.AttachmentLightbox_paneActions__HYZPg{align-items:center;display:flex;flex-shrink:0;gap:8px}.AttachmentLightbox_paneActionLink__ij8qw{color:inherit;display:inline-flex;text-decoration:none}.AttachmentLightbox_paneViewport__eNxCs{display:flex;flex:1;margin-top:8px;min-height:0;overflow:auto}.AttachmentLightbox_paneViewportPannable__aioSN{cursor:grab}.AttachmentLightbox_paneViewportPanning__ZN5R3{cursor:grabbing;user-select:none}.AttachmentLightbox_paneZoomBox__Z1Ccd{display:flex;flex:none;height:calc(100%*var(--attachment-zoom, 1));width:calc(100%*var(--attachment-zoom, 1))}.AttachmentLightbox_paneMedia__nXjJ0{-webkit-user-drag:none;border-radius:8px;height:100%;object-fit:contain;user-select:none;width:100%}.AttachmentLightbox_paneZoomControls__y7ImM{bottom:8px;display:flex;flex-direction:column;gap:8px;position:absolute;right:8px;z-index:2}.AttachmentLightbox_paneZoomButton__kndeG{display:inline-flex}.AttachmentLightbox_documentFrame__-AP36,.AttachmentLightbox_documentTable__vMkX5,.AttachmentLightbox_documentText__Tn8b7{border-radius:8px;height:100%;overflow:auto;position:relative;width:100%}.AttachmentLightbox_documentText__Tn8b7{color:var(--palette-primary-text-1);font-size:14px;line-height:20px;padding:16px}.AttachmentLightbox_documentText__Tn8b7 pre{font-family:inherit;margin:0;white-space:pre-wrap;word-break:break-word}.AttachmentLightbox_documentTable__vMkX5{color:var(--palette-primary-text-1)}.AttachmentLightbox_documentState__h-iDd{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:center;margin:auto;padding:24px;text-align:center}.AttachmentLightbox_fallbackName__JO0HH{color:var(--palette-primary-text-1);font-size:16px;line-height:22px;margin-top:8px;word-break:break-word}.AttachmentLightbox_fallbackHint__tPWNV{color:var(--palette-primary-text-6);font-size:14px;line-height:20px;margin-bottom:8px}.AttachmentLightbox_fallbackDownload__Noq5-{text-decoration:none}");export{e as default};
2
2
  //# sourceMappingURL=AttachmentLightbox.scss.js.map
@@ -0,0 +1,9 @@
1
+ import type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';
2
+ export type AttachmentPreviewPaneProps = {
3
+ item: AttachmentPreviewItem;
4
+ /** Adds "Share file" to the overflow menu. */
5
+ onShare?: (item: AttachmentPreviewItem) => void;
6
+ };
7
+ /** Zoom is media-only — document viewers scroll and zoom on their own. */
8
+ export declare const AttachmentPreviewPane: ({ item, onShare }: AttachmentPreviewPaneProps) => import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=AttachmentPreviewPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewPane.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/AttachmentPreviewPane.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAW1F,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,sBAAuB,0BAA0B,4CAsHlF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import o from"@babel/runtime/helpers/defineProperty";import{useRef as s}from"react";import c from"classnames";import{ButtonIcon as i}from"../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as n}from"../../componentsV2/Tooltip/Tooltip.js";import{AttachmentActionsMenu as t}from"../AttachmentPreview/AttachmentActionsMenu.js";import{AttachmentImage as e}from"../AttachmentPreview/AttachmentImage.js";import{AttachmentDownloadLink as m}from"../AttachmentPreview/AttachmentDownloadLink.js";import{AttachmentDocument as r}from"./AttachmentDocument.js";import{useZoomPan as a}from"./useZoomPan.js";import p from"./AttachmentLightbox.scss.js";import{PlusIcon as l,MinusIcon as u}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/CloudDelete.js";import"../../icons/customIcons/icons/Lasso.js";import"../../icons/customIcons/icons/Radius.js";import"../../icons/customIcons/icons/ErrorOps.js";import"../../icons/customIcons/icons/DataTypeOps.js";import"../../icons/customIcons/icons/FalsePositiveOps.js";import"../../icons/customIcons/icons/CalibrationOps.js";import"../../icons/customIcons/icons/CriticalOps.js";import"../../icons/customIcons/icons/Company.js";import"../../icons/customIcons/icons/ArchiveOne.js";import"../../icons/customIcons/icons/ParseBotFusion.js";import"../../icons/customIcons/icons/Connect.js";import"../../icons/customIcons/icons/PuzzleOne.js";import"../../icons/customIcons/icons/Feed.js";import"../../icons/customIcons/icons/Prompt.js";import"../../icons/customIcons/icons/Companies.js";import"../../icons/customIcons/icons/ClipboardAi.js";import"../../icons/customIcons/icons/Key.js";import"../../icons/customIcons/icons/AtSignCrossed.js";import"../../icons/customIcons/icons/MappingManual.js";import"../../icons/customIcons/icons/Mapping.js";import"../../icons/customIcons/icons/Metrics.js";import"../../icons/customIcons/icons/Drops.js";import"../../icons/customIcons/icons/ClipboardSearch.js";import"../../icons/customIcons/icons/Template.js";import"../../icons/customIcons/icons/ClipboardMetrics.js";import"../../icons/customIcons/icons/ClipboardBuilder.js";import"../../icons/customIcons/icons/UnitConversion.js";import"../../icons/customIcons/icons/NPT.js";import"../../icons/customIcons/icons/GuidedFrac.js";import{formatFileSize as j}from"../../utils/formatFileSize.js";import d from"../../utils/main.js";import{jsxs as I,jsx as h}from"react/jsx-runtime";function f(o,s){var c=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),c.push.apply(c,i)}return c}function v(s){for(var c=1;c<arguments.length;c++){var i=null!=arguments[c]?arguments[c]:{};c%2?f(Object(i),!0).forEach((function(c){o(s,c,i[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):f(Object(i)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(i,o))}))}return s}var b=function(o){var f,b=o.item,O=o.onShare,P=s(null),g=null!==(f=b.kind)&&void 0!==f?f:"file",C="image"===g||"video"===g,y=a({canZoom:C,canPan:"image"===g,resetKey:b.id}),w=y.viewportRef,A=y.zoom,F=y.zoomIn,N=y.zoomOut,z=y.canZoomIn,k=y.canZoomOut,Z=y.isPannable,D=y.isPanning,M=y.panHandlers,S=d.getFileNameWithExtensionFromPath(b.name),x=b.downloadUrl||b.src;return I("div",{className:p.pane,"data-testid":"attachment-preview-pane",children:[I("div",{className:p.paneHeader,children:[I("div",{className:p.paneName,children:[h("div",{className:p.paneFileName,title:S,children:S}),void 0!==b.size&&h("div",{className:p.paneFileSize,children:j(b.size)})]}),I("div",{className:p.paneActions,children:[!!x&&h(m,{url:x,fileName:S,className:p.paneActionLink,testId:"attachment-preview-download"}),h(t,{item:b,onShare:O,imageRef:P})]})]}),h("div",v(v({className:c(p.paneViewport,Z&&p.paneViewportPannable,D&&p.paneViewportPanning),ref:w},M),{},{children:I("div",{className:p.paneZoomBox,style:{"--attachment-zoom":A},"data-testid":"attachment-preview-zoom-box",children:["image"===g&&h(e,{ref:P,src:b.src,alt:S,className:p.paneMedia,draggable:!1}),"video"===g&&h("video",{src:b.src,className:p.paneMedia,controls:!0,autoPlay:!0,playsInline:!0}),"file"===g&&h(r,{item:b},b.id)]})})),C&&I("div",{className:p.paneZoomControls,children:[h(n,{title:"Zoom in",placement:"left",children:h("span",{className:p.paneZoomButton,children:h(i,{size:"small",type:"tertiaryBg",ariaLabel:"Zoom in",disabled:!z,onClick:F,testId:"attachment-preview-zoom-in",children:h(l,{})})})}),h(n,{title:"Zoom out",placement:"left",children:h("span",{className:p.paneZoomButton,children:h(i,{size:"small",type:"tertiaryBg",ariaLabel:"Zoom out",disabled:!k,onClick:N,testId:"attachment-preview-zoom-out",children:h(u,{})})})})]})]})};export{b as AttachmentPreviewPane};
2
+ //# sourceMappingURL=AttachmentPreviewPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewPane.js","sources":["../../../src/components/AttachmentLightbox/AttachmentPreviewPane.tsx"],"sourcesContent":["import { CSSProperties, useRef } from 'react';\nimport classNames from 'classnames';\n\nimport { ButtonIcon } from '../../componentsV2/ButtonIcon';\nimport { Tooltip } from '../../componentsV2/Tooltip';\nimport { AttachmentActionsMenu } from '../AttachmentPreview/AttachmentActionsMenu';\nimport { AttachmentImage } from '../AttachmentPreview/AttachmentImage';\nimport { AttachmentDownloadLink } from '../AttachmentPreview/AttachmentDownloadLink';\nimport type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport { AttachmentDocument } from './AttachmentDocument';\nimport { useZoomPan } from './useZoomPan';\n\nimport styles from './AttachmentLightbox.scss';\n\nimport { MinusIcon, PlusIcon } from '~/icons';\nimport { formatFileSize } from '~/utils/formatFileSize';\nimport utils from '~/utils/main';\n\nexport type AttachmentPreviewPaneProps = {\n item: AttachmentPreviewItem;\n /** Adds \"Share file\" to the overflow menu. */\n onShare?: (item: AttachmentPreviewItem) => void;\n};\n\n/** Zoom is media-only — document viewers scroll and zoom on their own. */\nexport const AttachmentPreviewPane = ({ item, onShare }: AttachmentPreviewPaneProps) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const kind = item.kind ?? 'file';\n const isMedia = kind === 'image' || kind === 'video';\n\n const {\n viewportRef,\n zoom,\n zoomIn,\n zoomOut,\n canZoomIn,\n canZoomOut,\n isPannable,\n isPanning,\n panHandlers,\n // Panning a zoomed <video> would swallow its own controls, so only images get the drag.\n } = useZoomPan({ canZoom: isMedia, canPan: kind === 'image', resetKey: item.id });\n\n const fileName = utils.getFileNameWithExtensionFromPath(item.name);\n const downloadUrl = item.downloadUrl || item.src;\n\n return (\n <div className={styles.pane} data-testid=\"attachment-preview-pane\">\n <div className={styles.paneHeader}>\n <div className={styles.paneName}>\n <div className={styles.paneFileName} title={fileName}>\n {fileName}\n </div>\n {item.size !== undefined && (\n <div className={styles.paneFileSize}>{formatFileSize(item.size)}</div>\n )}\n </div>\n\n <div className={styles.paneActions}>\n {!!downloadUrl && (\n <AttachmentDownloadLink\n url={downloadUrl}\n fileName={fileName}\n className={styles.paneActionLink}\n testId=\"attachment-preview-download\"\n />\n )}\n\n <AttachmentActionsMenu item={item} onShare={onShare} imageRef={imageRef} />\n </div>\n </div>\n\n <div\n className={classNames(\n styles.paneViewport,\n isPannable && styles.paneViewportPannable,\n isPanning && styles.paneViewportPanning\n )}\n ref={viewportRef}\n {...panHandlers}\n >\n <div\n className={styles.paneZoomBox}\n style={{ '--attachment-zoom': zoom } as CSSProperties}\n data-testid=\"attachment-preview-zoom-box\"\n >\n {kind === 'image' && (\n <AttachmentImage\n ref={imageRef}\n src={item.src}\n alt={fileName}\n className={styles.paneMedia}\n draggable={false}\n />\n )}\n\n {kind === 'video' && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video src={item.src} className={styles.paneMedia} controls autoPlay playsInline />\n )}\n\n {/* Keyed: a kept-alive instance would pair the previous file's data with the new\n renderer for one render. */}\n {kind === 'file' && <AttachmentDocument key={item.id} item={item} />}\n </div>\n </div>\n\n {isMedia && (\n <div className={styles.paneZoomControls}>\n {/* A disabled button fires no events, so the tooltip listens on a wrapper instead. */}\n <Tooltip title=\"Zoom in\" placement=\"left\">\n <span className={styles.paneZoomButton}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n ariaLabel=\"Zoom in\"\n disabled={!canZoomIn}\n onClick={zoomIn}\n testId=\"attachment-preview-zoom-in\"\n >\n <PlusIcon />\n </ButtonIcon>\n </span>\n </Tooltip>\n\n <Tooltip title=\"Zoom out\" placement=\"left\">\n <span className={styles.paneZoomButton}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n ariaLabel=\"Zoom out\"\n disabled={!canZoomOut}\n onClick={zoomOut}\n testId=\"attachment-preview-zoom-out\"\n >\n <MinusIcon />\n </ButtonIcon>\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n );\n};\n"],"names":["AttachmentPreviewPane","_ref","_item$kind","item","onShare","imageRef","useRef","kind","isMedia","_useZoomPan","useZoomPan","canZoom","canPan","resetKey","id","viewportRef","zoom","zoomIn","zoomOut","canZoomIn","canZoomOut","isPannable","isPanning","panHandlers","fileName","utils","getFileNameWithExtensionFromPath","name","downloadUrl","src","_jsxs","className","styles","pane","children","paneHeader","paneName","_jsx","paneFileName","title","undefined","size","paneFileSize","formatFileSize","paneActions","AttachmentDownloadLink","url","paneActionLink","testId","AttachmentActionsMenu","_objectSpread","classNames","paneViewport","paneViewportPannable","paneViewportPanning","ref","paneZoomBox","style","AttachmentImage","alt","paneMedia","draggable","controls","autoPlay","playsInline","AttachmentDocument","paneZoomControls","Tooltip","placement","paneZoomButton","ButtonIcon","type","ariaLabel","disabled","onClick","PlusIcon","MinusIcon"],"mappings":"g/JA0BaA,IAAAA,EAAwB,SAAmDC,GAAA,IAAAC,EAAhDC,IAAAA,KAAMC,IAAAA,QACtCC,EAAWC,EAAyB,MACpCC,UAAOJ,EAAAA,EAAKI,oBAAQ,OACpBC,EAAmB,UAATD,GAA6B,UAATA,EAEpCE,EAWIC,EAAW,CAAEC,QAASH,EAASI,OAAiB,UAATL,EAAkBM,SAAUV,EAAKW,KAV1EC,IAAAA,YACAC,IAAAA,KACAC,IAAAA,OACAC,IAAAA,QACAC,IAAAA,UACAC,IAAAA,WACAC,IAAAA,WACAC,IAAAA,UACAC,IAAAA,YAIIC,EAAWC,EAAMC,iCAAiCvB,EAAKwB,MACvDC,EAAczB,EAAKyB,aAAezB,EAAK0B,IAE7C,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAOC,KAAM,cAAY,0BAAyBC,SAChE,CAAAJ,EAAA,MAAA,CAAKC,UAAWC,EAAOG,WAAWD,SAChC,CAAAJ,EAAA,MAAA,CAAKC,UAAWC,EAAOI,SAASF,SAC9B,CAAAG,EAAA,MAAA,CAAKN,UAAWC,EAAOM,aAAcC,MAAOf,EAASU,SAClDV,SAEYgB,IAAdrC,EAAKsC,MACJJ,EAAA,MAAA,CAAKN,UAAWC,EAAOU,aAAaR,SAAES,EAAexC,EAAKsC,WAI9DX,EAAA,MAAA,CAAKC,UAAWC,EAAOY,YAAYV,SAAA,GAC9BN,GACDS,EAACQ,EAAsB,CACrBC,IAAKlB,EACLJ,SAAUA,EACVO,UAAWC,EAAOe,eAClBC,OAAO,gCAIXX,EAACY,EAAqB,CAAC9C,KAAMA,EAAMC,QAASA,EAASC,SAAUA,UAInEgC,EAAA,MAAAa,EAAAA,EAAA,CACEnB,UAAWoB,EACTnB,EAAOoB,aACP/B,GAAcW,EAAOqB,qBACrB/B,GAAaU,EAAOsB,qBAEtBC,IAAKxC,GACDQ,GAAW,GAAA,CAAAW,SAEfJ,EAAA,MAAA,CACEC,UAAWC,EAAOwB,YAClBC,MAAO,CAAE,oBAAqBzC,GAC9B,cAAY,8BAA6BkB,SAAA,CAE/B,UAAT3B,GACC8B,EAACqB,EAAe,CACdH,IAAKlD,EACLwB,IAAK1B,EAAK0B,IACV8B,IAAKnC,EACLO,UAAWC,EAAO4B,UAClBC,WAAW,IAIL,UAATtD,GAEC8B,EAAA,QAAA,CAAOR,IAAK1B,EAAK0B,IAAKE,UAAWC,EAAO4B,UAAWE,UAAQ,EAACC,UAAQ,EAACC,aAAW,IAKxE,SAATzD,GAAmB8B,EAAC4B,EAAkB,CAAe9D,KAAMA,GAAfA,EAAKW,UAIrDN,GACCsB,EAAA,MAAA,CAAKC,UAAWC,EAAOkC,iBAAiBhC,SAAA,CAEtCG,EAAC8B,EAAO,CAAC5B,MAAM,UAAU6B,UAAU,OAAMlC,SACvCG,EAAA,OAAA,CAAMN,UAAWC,EAAOqC,eAAenC,SACrCG,EAACiC,EAAU,CACT7B,KAAK,QACL8B,KAAK,aACLC,UAAU,UACVC,UAAWtD,EACXuD,QAASzD,EACT+B,OAAO,6BAA4Bd,SAEnCG,EAACsC,EAAQ,UAKftC,EAAC8B,EAAO,CAAC5B,MAAM,WAAW6B,UAAU,OAAMlC,SACxCG,EAAA,OAAA,CAAMN,UAAWC,EAAOqC,eAAenC,SACrCG,EAACiC,EAAU,CACT7B,KAAK,QACL8B,KAAK,aACLC,UAAU,WACVC,UAAWrD,EACXsD,QAASxD,EACT8B,OAAO,8BAA6Bd,SAEpCG,EAACuC,EAAS,eAQ1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AttachmentDocument.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentDocument.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentLightbox/__tests__/AttachmentDocument.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AttachmentLightbox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentLightbox.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentLightbox/__tests__/AttachmentLightbox.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=copyImageToClipboard.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyImageToClipboard.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentLightbox/__tests__/copyImageToClipboard.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloadAttachment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadAttachment.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentLightbox/__tests__/downloadAttachment.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useZoomPan.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useZoomPan.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentLightbox/__tests__/useZoomPan.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare const getCanCopyImages: () => boolean;
2
+ /** Copies the pixels already on screen when the page may read them, else fetches the bytes. */
3
+ export declare const copyImageToClipboard: (src: string, image?: HTMLImageElement | null) => Promise<boolean>;
4
+ //# sourceMappingURL=copyImageToClipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyImageToClipboard.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/copyImageToClipboard.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,gBAAgB,eACyC,CAAC;AAQvE,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,QAC1B,MAAM,UACH,gBAAgB,GAAG,IAAI,KAC9B,OAAO,CAAC,OAAO,CAsBjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import r from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/regenerator";import{fetchAttachment as e}from"../../utils/fetchAttachment.js";var n=function(r,t,e){var n=document.createElement("canvas");n.width=t,n.height=e;var a=n.getContext("2d");if(!a)throw new Error("Could not get a 2d canvas context");return a.drawImage(r,0,0),new Promise((function(r,t){n.toBlob((function(e){return e?r(e):t(new Error("Could not encode the image"))}),"image/png")}))},a=function(){var e=r(t.mark((function r(e){var a;return t.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,createImageBitmap(e);case 2:return a=r.sent,r.abrupt("return",n(a,a.width,a.height));case 4:case"end":return r.stop()}}),r)})));return function(r){return e.apply(this,arguments)}}(),u=function(){var e=r(t.mark((function r(e){return t.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",n(e,e.naturalWidth,e.naturalHeight));case 1:case"end":return r.stop()}}),r)})));return function(r){return e.apply(this,arguments)}}(),o=function(){var n=r(t.mark((function r(n){var u,o;return t.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e(n);case 2:if((u=r.sent).ok){r.next=5;break}throw new Error("Could not read the image (".concat(u.status,")"));case 5:return r.next=7,u.blob();case 7:return o=r.sent,r.abrupt("return","image/png"===o.type?o:a(o));case 9:case"end":return r.stop()}}),r)})));return function(r){return n.apply(this,arguments)}}(),c=function(){var r;return"undefined"!=typeof ClipboardItem&&!(null===(r=navigator.clipboard)||void 0===r||!r.write)},i=function(r){return navigator.clipboard.write([new ClipboardItem({"image/png":r})])},p=function(r){return!(null==r||!r.complete||!r.naturalWidth)},s=function(){var e=r(t.mark((function r(e,n){return t.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(c()){r.next=2;break}return r.abrupt("return",!1);case 2:if(!p(n)){r.next=11;break}return r.prev=3,r.next=6,i(u(n));case 6:return r.abrupt("return",!0);case 9:r.prev=9,r.t0=r.catch(3);case 11:if(e){r.next=13;break}return r.abrupt("return",!1);case 13:return r.prev=13,r.next=16,i(o(e));case 16:return r.abrupt("return",!0);case 19:return r.prev=19,r.t1=r.catch(13),console.error('Failed to copy attachment "'.concat(e,'" to the clipboard'),r.t1),r.abrupt("return",!1);case 23:case"end":return r.stop()}}),r,null,[[3,9],[13,19]])})));return function(r,t){return e.apply(this,arguments)}}();export{s as copyImageToClipboard,c as getCanCopyImages};
2
+ //# sourceMappingURL=copyImageToClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyImageToClipboard.js","sources":["../../../src/components/AttachmentLightbox/copyImageToClipboard.ts"],"sourcesContent":["import { fetchAttachment } from '~/utils/fetchAttachment';\n\nconst toPng = (source: CanvasImageSource, width: number, height: number): Promise<Blob> => {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n const context = canvas.getContext('2d');\n\n if (!context) throw new Error('Could not get a 2d canvas context');\n\n context.drawImage(source, 0, 0);\n\n return new Promise((resolve, reject) => {\n // Throws for an image the page was not allowed to read, which is the tainted-canvas signal.\n canvas.toBlob(\n encoded => (encoded ? resolve(encoded) : reject(new Error('Could not encode the image'))),\n 'image/png'\n );\n });\n};\n\nconst encodeAsPng = async (blob: Blob): Promise<Blob> => {\n const bitmap = await createImageBitmap(blob);\n\n return toPng(bitmap, bitmap.width, bitmap.height);\n};\n\nconst pngFromElement = async (image: HTMLImageElement): Promise<Blob> =>\n toPng(image, image.naturalWidth, image.naturalHeight);\n\n// Chrome only accepts PNG on the clipboard, so anything else is re-encoded.\nconst fetchAsPng = async (src: string): Promise<Blob> => {\n const response = await fetchAttachment(src);\n\n if (!response.ok) throw new Error(`Could not read the image (${response.status})`);\n\n const blob = await response.blob();\n\n return blob.type === 'image/png' ? blob : encodeAsPng(blob);\n};\n\nexport const getCanCopyImages = () =>\n typeof ClipboardItem !== 'undefined' && !!navigator.clipboard?.write;\n\nconst write = (png: Promise<Blob>) =>\n // A promise, not an awaited blob: Safari requires the write inside the user gesture.\n navigator.clipboard.write([new ClipboardItem({ 'image/png': png })]);\n\nconst isReady = (image?: HTMLImageElement | null) => !!image?.complete && !!image.naturalWidth;\n\n/** Copies the pixels already on screen when the page may read them, else fetches the bytes. */\nexport const copyImageToClipboard = async (\n src: string,\n image?: HTMLImageElement | null\n): Promise<boolean> => {\n if (!getCanCopyImages()) return false;\n\n if (isReady(image)) {\n try {\n await write(pngFromElement(image as HTMLImageElement));\n\n return true;\n } catch {}\n }\n\n if (!src) return false;\n\n try {\n await write(fetchAsPng(src));\n\n return true;\n } catch (error) {\n console.error(`Failed to copy attachment \"${src}\" to the clipboard`, error);\n\n return false;\n }\n};\n"],"names":["toPng","source","width","height","canvas","document","createElement","context","getContext","Error","drawImage","Promise","resolve","reject","toBlob","encoded","encodeAsPng","_ref","_asyncToGenerator","_regeneratorRuntime","mark","blob","bitmap","wrap","_context","prev","next","createImageBitmap","sent","stop","_callee","_x","apply","this","arguments","pngFromElement","_ref2","image","_context2","naturalWidth","naturalHeight","_callee2","_x2","fetchAsPng","_ref3","src","response","_context3","fetchAttachment","ok","concat","status","type","_callee3","_x3","getCanCopyImages","_navigator$clipboard","ClipboardItem","navigator","clipboard","write","png","isReady","complete","copyImageToClipboard","_ref4","_callee4","_context4","abrupt","t0","t1","console","error","_x4","_x5"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `download` is ignored cross-origin, where a plain link navigates the app away instead. Fetching
3
+ * the bytes and handing the browser a blob url saves under the right name wherever the file lives.
4
+ */
5
+ export declare const downloadAttachment: (url: string, fileName: string) => Promise<boolean>;
6
+ /** Stored data, not a literal: an unchecked `javascript:` url would run on open. */
7
+ export declare const openAttachmentInNewTab: (url: string) => void;
8
+ /** Saves the file, falling back to a tab when the bytes cannot be read. */
9
+ export declare const saveAttachment: (url: string, fileName: string) => Promise<void>;
10
+ //# sourceMappingURL=downloadAttachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadAttachment.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/downloadAttachment.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAe,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,OAAO,CAwBvF,CAAC;AAIF,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,QAAS,MAAM,KAAG,IAapD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,QAAe,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAEhF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/regenerator";import{fetchAttachment as t}from"../../utils/fetchAttachment.js";var n=function(){var n=e(r.mark((function e(n,o){var a,c,u;return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return",!1);case 2:return e.prev=2,e.next=5,t(n);case 5:if((a=e.sent).ok){e.next=8;break}throw new Error("Could not read the file (".concat(a.status,")"));case 8:return e.t0=URL,e.next=11,a.blob();case 11:return e.t1=e.sent,c=e.t0.createObjectURL.call(e.t0,e.t1),(u=document.createElement("a")).href=c,u.download=o,document.body.appendChild(u),u.click(),u.remove(),URL.revokeObjectURL(c),e.abrupt("return",!0);case 23:return e.prev=23,e.t2=e.catch(2),console.error('Failed to download "'.concat(n,'"'),e.t2),e.abrupt("return",!1);case 27:case"end":return e.stop()}}),e,null,[[2,23]])})));return function(e,r){return n.apply(this,arguments)}}(),o=["http:","https:","blob:"],a=function(e){if(e)try{var r=new URL(e,window.location.href).protocol;if(!o.includes(r))throw new Error("Refusing to open a ".concat(r," url"));window.open(e,"_blank","noopener")}catch(r){console.error('Failed to open "'.concat(e,'"'),r)}},c=function(){var t=e(r.mark((function e(t,o){return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n(t,o);case 2:if(e.sent){e.next=4;break}a(t);case 4:case"end":return e.stop()}}),e)})));return function(e,r){return t.apply(this,arguments)}}();export{n as downloadAttachment,a as openAttachmentInNewTab,c as saveAttachment};
2
+ //# sourceMappingURL=downloadAttachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadAttachment.js","sources":["../../../src/components/AttachmentLightbox/downloadAttachment.ts"],"sourcesContent":["import { fetchAttachment } from '~/utils/fetchAttachment';\n\n/**\n * `download` is ignored cross-origin, where a plain link navigates the app away instead. Fetching\n * the bytes and handing the browser a blob url saves under the right name wherever the file lives.\n */\nexport const downloadAttachment = async (url: string, fileName: string): Promise<boolean> => {\n if (!url) return false;\n\n try {\n const response = await fetchAttachment(url);\n\n if (!response.ok) throw new Error(`Could not read the file (${response.status})`);\n\n const blobUrl = URL.createObjectURL(await response.blob());\n const link = document.createElement('a');\n\n link.href = blobUrl;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n link.remove();\n URL.revokeObjectURL(blobUrl);\n\n return true;\n } catch (error) {\n console.error(`Failed to download \"${url}\"`, error);\n\n return false;\n }\n};\n\nconst SAFE_SCHEMES = ['http:', 'https:', 'blob:'];\n\n/** Stored data, not a literal: an unchecked `javascript:` url would run on open. */\nexport const openAttachmentInNewTab = (url: string): void => {\n // An empty one resolves to the page itself, passes the check below, and opens a blank tab.\n if (!url) return;\n\n try {\n const { protocol } = new URL(url, window.location.href);\n\n if (!SAFE_SCHEMES.includes(protocol)) throw new Error(`Refusing to open a ${protocol} url`);\n\n window.open(url, '_blank', 'noopener');\n } catch (error) {\n console.error(`Failed to open \"${url}\"`, error);\n }\n};\n\n/** Saves the file, falling back to a tab when the bytes cannot be read. */\nexport const saveAttachment = async (url: string, fileName: string): Promise<void> => {\n if (!(await downloadAttachment(url, fileName))) openAttachmentInNewTab(url);\n};\n"],"names":["downloadAttachment","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","fileName","response","blobUrl","link","wrap","_context","prev","next","abrupt","fetchAttachment","sent","ok","Error","concat","status","t0","URL","blob","t1","createObjectURL","call","document","createElement","href","download","body","appendChild","click","remove","revokeObjectURL","t2","console","error","stop","_x","_x2","apply","this","arguments","SAFE_SCHEMES","openAttachmentInNewTab","protocol","window","location","includes","open","saveAttachment","_ref2","_callee2","_context2","_x3","_x4"],"mappings":"sKAMaA,EAAkB,WAAA,IAAGC,EAAAC,EAAAC,EAAAC,MAAA,SAAAC,EAAOC,EAAaC,GAAgB,IAAAC,EAAAC,EAAAC,EAAA,OAAAP,EAAAQ,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,GAC/DR,EAAG,CAAAM,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,UAAS,GAAK,KAAA,EAAA,OAAAH,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGGE,EAAgBV,GAAI,KAAA,EAA7B,IAARE,EAAQI,EAAAK,MAEAC,GAAE,CAAAN,EAAAE,KAAA,EAAA,KAAA,CAAA,MAAQ,IAAIK,MAAK,4BAAAC,OAA6BZ,EAASa,OAAU,MAAA,KAAA,EAE9D,OAF8DT,EAAAU,GAEjEC,IAAGX,EAAAE,KAAA,GAAuBN,EAASgB,OAAM,KAAA,GAQ5B,OAR4BZ,EAAAa,GAAAb,EAAAK,KAAnDR,OAAciB,gBAAeC,KAAAf,EAAAU,GAAAV,EAAAa,KAC7Bf,EAAOkB,SAASC,cAAc,MAE/BC,KAAOrB,EACZC,EAAKqB,SAAWxB,EAChBqB,SAASI,KAAKC,YAAYvB,GAC1BA,EAAKwB,QACLxB,EAAKyB,SACLZ,IAAIa,gBAAgB3B,GAASG,EAAAG,OAAA,UAEtB,GAAI,KAAA,GAEyC,OAFzCH,EAAAC,KAAA,GAAAD,EAAAyB,GAAAzB,EAAA,MAAA,GAEX0B,QAAQC,MAA6BjC,uBAAAA,OAAAA,EAAc,KAAAM,EAAAyB,IAACzB,EAAAG,OAAA,UAE7C,GAAK,KAAA,GAAA,IAAA,MAAA,OAAAH,EAAA4B,OAAA,GAAAnC,EAAA,KAAA,CAAA,CAAA,EAAA,KAEf,KAAA,OAAA,SAxB8BoC,EAAAC,GAAA,OAAAzC,EAAA0C,MAAAC,KAAAC,UAAA,CAAA,CAAA,GA0BzBC,EAAe,CAAC,QAAS,SAAU,SAG5BC,EAAyB,SAACzC,GAErC,GAAKA,EAEL,IACE,IAAQ0C,EAAa,IAAIzB,IAAIjB,EAAK2C,OAAOC,SAASpB,MAA1CkB,SAER,IAAKF,EAAaK,SAASH,GAAW,MAAM,IAAI7B,MAAK,sBAAAC,OAAuB4B,EAAe,SAE3FC,OAAOG,KAAK9C,EAAK,SAAU,WAG7B,CAFE,MAAOiC,GACPD,QAAQC,MAAK,mBAAAnB,OAAoBd,EAAG,KAAKiC,EAC3C,CACF,EAGac,EAAc,WAAA,IAAGC,EAAApD,EAAAC,EAAAC,MAAA,SAAAmD,EAAOjD,EAAaC,GAAgB,OAAAJ,EAAAQ,MAAA,SAAA6C,GAAA,OAAA,OAAAA,EAAA3C,KAAA2C,EAAA1C,MAAA,KAAA,EAAA,OAAA0C,EAAA1C,KAAA,EACpDd,EAAmBM,EAAKC,GAAS,KAAA,EAAA,GAAAiD,EAAAvC,KAAA,CAAAuC,EAAA1C,KAAA,EAAA,KAAA,CAAGiC,EAAuBzC,GAAK,KAAA,EAAA,IAAA,MAAA,OAAAkD,EAAAhB,OAAA,GAAAe,EAC7E,KAAA,OAAA,SAF0BE,EAAAC,GAAA,OAAAJ,EAAAX,MAAAC,KAAAC,UAAA,CAAA,CAAA"}
@@ -1,6 +1,10 @@
1
1
  import type { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';
2
- /** Images and videos open in the lightbox; documents are left to their download link. */
3
- export declare const useAttachmentLightbox: () => {
2
+ export type UseAttachmentLightboxOptions = {
3
+ /** Adds "Share file" to the overflow menu. */
4
+ onShare?: (item: AttachmentPreviewItem) => void;
5
+ };
6
+ /** Wires attachments to the preview modal; a kind with no renderer shows a download card. */
7
+ export declare const useAttachmentLightbox: (items: AttachmentPreviewItem[], { onShare }?: UseAttachmentLightboxOptions) => {
4
8
  openAttachment: (item: AttachmentPreviewItem) => void;
5
9
  lightbox: import("react/jsx-runtime").JSX.Element;
6
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useAttachmentLightbox.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/useAttachmentLightbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAI1F,yFAAyF;AACzF,eAAO,MAAM,qBAAqB;2BAGF,qBAAqB;;CAYpD,CAAC"}
1
+ {"version":3,"file":"useAttachmentLightbox.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentLightbox/useAttachmentLightbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAI1F,MAAM,MAAM,4BAA4B,GAAG;IACzC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,qBAAqB,UACzB,qBAAqB,EAAE,gBACjB,4BAA4B;2BAIX,qBAAqB;;CAgBpD,CAAC"}
@@ -1,2 +1,2 @@
1
- import r from"@babel/runtime/helpers/slicedToArray";import{useState as t}from"react";import{AttachmentLightbox as n}from"./AttachmentLightbox.js";import{jsx as e}from"react/jsx-runtime";var o=function(){var o=t(null),i=r(o,2),m=i[0],a=i[1];return{openAttachment:function(r){("image"===r.kind||"video"===r.kind)&&r.src&&a({src:r.src,name:r.name,kind:r.kind})},lightbox:e(n,{attachment:m,onClose:function(){return a(null)}})}};export{o as useAttachmentLightbox};
1
+ import r from"@babel/runtime/helpers/slicedToArray";import{useState as t}from"react";import{AttachmentLightbox as o}from"./AttachmentLightbox.js";import{jsx as e}from"react/jsx-runtime";var n=function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=i.onShare,m=t(null),l=r(m,2),c=l[0],h=l[1],u=function(r){r.isUploading||r.error||h(r.id)};return{openAttachment:u,lightbox:e(o,{items:n,activeId:c,onActiveIdChange:h,onClose:function(){return h(null)},onShare:a})}};export{n as useAttachmentLightbox};
2
2
  //# sourceMappingURL=useAttachmentLightbox.js.map