@corva/ui 3.71.0-9 → 3.72.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) 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/AttachFileButton/AttachFileButton.js +1 -1
  6. package/cjs-bundle/components/AttachFileButton/AttachFileButton.js.map +1 -1
  7. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.js +1 -1
  8. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.js.map +1 -1
  9. package/cjs-bundle/components/AttachmentPreview/AttachmentPreview.scss.js +1 -1
  10. package/cjs-bundle/components/AttachmentPreview/AttachmentRow.js +2 -0
  11. package/cjs-bundle/components/AttachmentPreview/AttachmentRow.js.map +1 -0
  12. package/cjs-bundle/components/AttachmentPreview/AttachmentTile.js +2 -0
  13. package/cjs-bundle/components/AttachmentPreview/AttachmentTile.js.map +1 -0
  14. package/cjs-bundle/components/AttachmentPreview/SortableAttachments.js +2 -0
  15. package/cjs-bundle/components/AttachmentPreview/SortableAttachments.js.map +1 -0
  16. package/cjs-bundle/components/AttachmentPreview/StoredAttachmentPreview.js +1 -1
  17. package/cjs-bundle/components/AttachmentPreview/StoredAttachmentPreview.js.map +1 -1
  18. package/cjs-bundle/components/AttachmentPreview/useStoredAttachments.js +2 -0
  19. package/cjs-bundle/components/AttachmentPreview/useStoredAttachments.js.map +1 -0
  20. package/cjs-bundle/components/BICOffsetPickerDialog/index.js +1 -1
  21. package/cjs-bundle/components/BICOffsetPickerDialog/index.js.map +1 -1
  22. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  23. package/cjs-bundle/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  24. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js +1 -1
  25. package/cjs-bundle/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  26. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  27. package/cjs-bundle/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  28. package/cjs-bundle/components/CommentCard/CommentCard.js +1 -1
  29. package/cjs-bundle/components/CommentCard/CommentCard.js.map +1 -1
  30. package/cjs-bundle/components/CommentCard/CommentCardReplies.js +1 -1
  31. package/cjs-bundle/components/CommentCard/CommentCardReplies.js.map +1 -1
  32. package/cjs-bundle/components/CommentCard/buildCommentReply.js +1 -1
  33. package/cjs-bundle/components/CommentCard/buildCommentReply.js.map +1 -1
  34. package/cjs-bundle/components/CommentComposer/CommentComposer.js +1 -1
  35. package/cjs-bundle/components/CommentComposer/CommentComposer.js.map +1 -1
  36. package/cjs-bundle/components/CommentComposer/CommentReplyInput.js +1 -1
  37. package/cjs-bundle/components/CommentComposer/CommentReplyInput.js.map +1 -1
  38. package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js +1 -1
  39. package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js.map +1 -1
  40. package/cjs-bundle/components/CommentInputNext/CommentInputNext.js +1 -1
  41. package/cjs-bundle/components/CommentInputNext/CommentInputNext.js.map +1 -1
  42. package/cjs-bundle/components/CommentInputNext/CommentInputNext.scss.js +1 -1
  43. package/cjs-bundle/components/CommentInputNext/useFileDrop.js +2 -0
  44. package/cjs-bundle/components/CommentInputNext/useFileDrop.js.map +1 -0
  45. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js +1 -1
  46. package/cjs-bundle/components/DocumentViewer/DocumentViewer.js.map +1 -1
  47. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  48. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  49. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  50. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  51. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  52. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  53. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  54. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  55. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  56. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  57. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  58. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  59. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  60. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  61. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  62. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  63. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  64. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  65. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  66. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  67. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  68. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  69. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  70. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  71. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  72. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  73. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  74. package/cjs-bundle/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  75. package/cjs-bundle/components/FeedCard/useActivityInteractions.js +1 -1
  76. package/cjs-bundle/components/FeedCard/useActivityInteractions.js.map +1 -1
  77. package/cjs-bundle/components/FeedCard/useFeedActivity.js +1 -1
  78. package/cjs-bundle/components/FeedCard/useFeedActivity.js.map +1 -1
  79. package/cjs-bundle/components/IconMenu/index.js +1 -1
  80. package/cjs-bundle/components/IconMenu/index.js.map +1 -1
  81. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  82. package/cjs-bundle/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  83. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  84. package/cjs-bundle/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  85. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  86. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  87. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  88. package/cjs-bundle/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  89. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  90. package/cjs-bundle/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  91. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  92. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  93. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  94. package/cjs-bundle/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  95. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  96. package/cjs-bundle/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  97. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  98. package/cjs-bundle/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  99. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
  100. package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
  101. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
  102. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
  103. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js +1 -1
  104. package/cjs-bundle/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  105. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  106. package/cjs-bundle/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
  107. package/cjs-bundle/components/index.js +1 -1
  108. package/cjs-bundle/componentsV2/AppContainer/AppContainer.scss.js +1 -1
  109. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.scss.js +1 -1
  110. package/cjs-bundle/componentsV2/AppHeader/V3/AppTitle/AppTitle.js +1 -1
  111. package/cjs-bundle/componentsV2/AppHeader/V3/AppTitle/AppTitle.js.map +1 -1
  112. package/cjs-bundle/componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js +1 -1
  113. package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js +1 -1
  114. package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
  115. package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.scss.js +1 -1
  116. package/cjs-bundle/componentsV2/Autocomplete/AutocompleteMenuItem.js +1 -1
  117. package/cjs-bundle/componentsV2/Autocomplete/AutocompleteMenuItem.js.map +1 -1
  118. package/cjs-bundle/componentsV2/Checkbox/Checkbox.js +1 -1
  119. package/cjs-bundle/componentsV2/Checkbox/Checkbox.js.map +1 -1
  120. package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.scss.js +1 -1
  121. package/cjs-bundle/componentsV2/Menu/Menu.scss.js +1 -1
  122. package/cjs-bundle/componentsV2/Menu/MenuDivider/MenuDivider.scss.js +1 -1
  123. package/cjs-bundle/componentsV2/Menu/MenuGroup/MenuGroup.js +1 -1
  124. package/cjs-bundle/componentsV2/Menu/MenuGroup/MenuGroup.js.map +1 -1
  125. package/cjs-bundle/componentsV2/Menu/MenuGroup/MenuGroup.scss.js +1 -1
  126. package/cjs-bundle/componentsV2/Menu/MenuItem/MenuItem.js +1 -1
  127. package/cjs-bundle/componentsV2/Menu/MenuItem/MenuItem.js.map +1 -1
  128. package/cjs-bundle/componentsV2/Menu/MenuItem/MenuItem.scss.js +1 -1
  129. package/cjs-bundle/componentsV2/PadModeSelect/PadModeSelect.scss.js +1 -1
  130. package/cjs-bundle/componentsV2/Paper/Paper.js +1 -1
  131. package/cjs-bundle/componentsV2/Paper/Paper.js.map +1 -1
  132. package/cjs-bundle/componentsV2/Paper/Paper.scss.js +1 -1
  133. package/cjs-bundle/componentsV2/Popover/Popover.js +1 -1
  134. package/cjs-bundle/componentsV2/Popover/Popover.js.map +1 -1
  135. package/cjs-bundle/componentsV2/Radio/Radio.js +1 -1
  136. package/cjs-bundle/componentsV2/Radio/Radio.js.map +1 -1
  137. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.js +2 -0
  138. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.js.map +1 -0
  139. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +2 -0
  140. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js.map +1 -0
  141. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.js +2 -0
  142. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.js.map +1 -0
  143. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +2 -0
  144. package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js.map +1 -0
  145. package/cjs-bundle/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
  146. package/cjs-bundle/componentsV2/Tabs/Tabs.js +1 -1
  147. package/cjs-bundle/componentsV2/Tabs/Tabs.js.map +1 -1
  148. package/cjs-bundle/componentsV2/Tabs/Tabs.scss.js +1 -1
  149. package/cjs-bundle/componentsV2/TemplatesControl/ShareModal/ShareModal.js +1 -1
  150. package/cjs-bundle/componentsV2/TemplatesControl/ShareModal/ShareModal.js.map +1 -1
  151. package/cjs-bundle/componentsV2/TemplatesControl/ShareModal/ShareModal.scss.js +1 -1
  152. package/cjs-bundle/componentsV2/TemplatesControl/TemplatesTreeMenuHeader/TemplatesTreeMenuHeader.scss.js +1 -1
  153. package/cjs-bundle/componentsV2/TemplatesControl/Toggle/Toggle.scss.js +1 -1
  154. package/cjs-bundle/config/theme/checkboxOverrides.js +1 -1
  155. package/cjs-bundle/config/theme/checkboxOverrides.js.map +1 -1
  156. package/cjs-bundle/config/theme/index.js +1 -1
  157. package/cjs-bundle/config/theme/index.js.map +1 -1
  158. package/cjs-bundle/config/theme/radioOverrides.js +1 -1
  159. package/cjs-bundle/config/theme/radioOverrides.js.map +1 -1
  160. package/cjs-bundle/constants/attachments.js +2 -0
  161. package/cjs-bundle/constants/attachments.js.map +1 -0
  162. package/cjs-bundle/constants/index.js +1 -1
  163. package/components/AddComment/Popover.js +1 -1
  164. package/components/AddComment/Popover.js.map +1 -1
  165. package/components/AddComment/components/Content.js +1 -1
  166. package/components/AddComment/components/Content.js.map +1 -1
  167. package/components/AttachFileButton/AttachFileButton.d.ts +2 -1
  168. package/components/AttachFileButton/AttachFileButton.d.ts.map +1 -1
  169. package/components/AttachFileButton/AttachFileButton.js +1 -1
  170. package/components/AttachFileButton/AttachFileButton.js.map +1 -1
  171. package/components/AttachmentPreview/AttachmentPreview.d.ts +4 -0
  172. package/components/AttachmentPreview/AttachmentPreview.d.ts.map +1 -1
  173. package/components/AttachmentPreview/AttachmentPreview.js +1 -1
  174. package/components/AttachmentPreview/AttachmentPreview.js.map +1 -1
  175. package/components/AttachmentPreview/AttachmentPreview.scss.js +1 -1
  176. package/components/AttachmentPreview/AttachmentPreview.types.d.ts +2 -0
  177. package/components/AttachmentPreview/AttachmentPreview.types.d.ts.map +1 -1
  178. package/components/AttachmentPreview/AttachmentRow.d.ts +5 -0
  179. package/components/AttachmentPreview/AttachmentRow.d.ts.map +1 -0
  180. package/components/AttachmentPreview/AttachmentRow.js +2 -0
  181. package/components/AttachmentPreview/AttachmentRow.js.map +1 -0
  182. package/components/AttachmentPreview/AttachmentTile.d.ts +9 -0
  183. package/components/AttachmentPreview/AttachmentTile.d.ts.map +1 -0
  184. package/components/AttachmentPreview/AttachmentTile.js +2 -0
  185. package/components/AttachmentPreview/AttachmentTile.js.map +1 -0
  186. package/components/AttachmentPreview/SortableAttachments.d.ts +8 -0
  187. package/components/AttachmentPreview/SortableAttachments.d.ts.map +1 -0
  188. package/components/AttachmentPreview/SortableAttachments.js +2 -0
  189. package/components/AttachmentPreview/SortableAttachments.js.map +1 -0
  190. package/components/AttachmentPreview/StoredAttachmentPreview.d.ts +3 -3
  191. package/components/AttachmentPreview/StoredAttachmentPreview.d.ts.map +1 -1
  192. package/components/AttachmentPreview/StoredAttachmentPreview.js +1 -1
  193. package/components/AttachmentPreview/StoredAttachmentPreview.js.map +1 -1
  194. package/components/AttachmentPreview/index.d.ts +3 -0
  195. package/components/AttachmentPreview/index.d.ts.map +1 -1
  196. package/components/AttachmentPreview/useStoredAttachments.d.ts +8 -0
  197. package/components/AttachmentPreview/useStoredAttachments.d.ts.map +1 -0
  198. package/components/AttachmentPreview/useStoredAttachments.js +2 -0
  199. package/components/AttachmentPreview/useStoredAttachments.js.map +1 -0
  200. package/components/BICOffsetPickerDialog/index.js +1 -1
  201. package/components/BICOffsetPickerDialog/index.js.map +1 -1
  202. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js +1 -1
  203. package/components/Casing/CasingTableV2/components/CasingJoints/Editor.js.map +1 -1
  204. package/components/Casing/CasingTableV2/components/Component.js +1 -1
  205. package/components/Casing/CasingTableV2/components/Component.js.map +1 -1
  206. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js +1 -1
  207. package/components/Casing/CasingTableV2/components/DrillPipe/Editor.js.map +1 -1
  208. package/components/CommentCard/CommentCard.d.ts.map +1 -1
  209. package/components/CommentCard/CommentCard.js +1 -1
  210. package/components/CommentCard/CommentCard.js.map +1 -1
  211. package/components/CommentCard/CommentCard.types.d.ts +5 -1
  212. package/components/CommentCard/CommentCard.types.d.ts.map +1 -1
  213. package/components/CommentCard/CommentCardReplies.js +1 -1
  214. package/components/CommentCard/CommentCardReplies.js.map +1 -1
  215. package/components/CommentCard/__tests__/buildCommentReply.test.d.ts +2 -0
  216. package/components/CommentCard/__tests__/buildCommentReply.test.d.ts.map +1 -0
  217. package/components/CommentCard/buildCommentReply.d.ts +15 -7
  218. package/components/CommentCard/buildCommentReply.d.ts.map +1 -1
  219. package/components/CommentCard/buildCommentReply.js +1 -1
  220. package/components/CommentCard/buildCommentReply.js.map +1 -1
  221. package/components/CommentComposer/CommentComposer.d.ts +8 -3
  222. package/components/CommentComposer/CommentComposer.d.ts.map +1 -1
  223. package/components/CommentComposer/CommentComposer.js +1 -1
  224. package/components/CommentComposer/CommentComposer.js.map +1 -1
  225. package/components/CommentComposer/CommentReplyInput.d.ts +6 -2
  226. package/components/CommentComposer/CommentReplyInput.d.ts.map +1 -1
  227. package/components/CommentComposer/CommentReplyInput.js +1 -1
  228. package/components/CommentComposer/CommentReplyInput.js.map +1 -1
  229. package/components/CommentComposer/useAttachmentUpload.d.ts +15 -6
  230. package/components/CommentComposer/useAttachmentUpload.d.ts.map +1 -1
  231. package/components/CommentComposer/useAttachmentUpload.js +1 -1
  232. package/components/CommentComposer/useAttachmentUpload.js.map +1 -1
  233. package/components/CommentInputNext/CommentInputNext.d.ts +6 -0
  234. package/components/CommentInputNext/CommentInputNext.d.ts.map +1 -1
  235. package/components/CommentInputNext/CommentInputNext.js +1 -1
  236. package/components/CommentInputNext/CommentInputNext.js.map +1 -1
  237. package/components/CommentInputNext/CommentInputNext.scss.js +1 -1
  238. package/components/CommentInputNext/useFileDrop.d.ts +17 -0
  239. package/components/CommentInputNext/useFileDrop.d.ts.map +1 -0
  240. package/components/CommentInputNext/useFileDrop.js +2 -0
  241. package/components/CommentInputNext/useFileDrop.js.map +1 -0
  242. package/components/DocumentViewer/DocumentViewer.js +1 -1
  243. package/components/DocumentViewer/DocumentViewer.js.map +1 -1
  244. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js +1 -1
  245. package/components/Drillstring/BHAComponentsTable/components/Agitator/Editor.js.map +1 -1
  246. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js +1 -1
  247. package/components/Drillstring/BHAComponentsTable/components/Bit/Editor.js.map +1 -1
  248. package/components/Drillstring/BHAComponentsTable/components/Component.js +1 -1
  249. package/components/Drillstring/BHAComponentsTable/components/Component.js.map +1 -1
  250. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js +1 -1
  251. package/components/Drillstring/BHAComponentsTable/components/DrillCollar/Editor.js.map +1 -1
  252. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js +1 -1
  253. package/components/Drillstring/BHAComponentsTable/components/DrillPipe/Editor.js.map +1 -1
  254. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js +1 -1
  255. package/components/Drillstring/BHAComponentsTable/components/Jar/Editor.js.map +1 -1
  256. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js +1 -1
  257. package/components/Drillstring/BHAComponentsTable/components/Lwd/Editor.js.map +1 -1
  258. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js +1 -1
  259. package/components/Drillstring/BHAComponentsTable/components/Mwd/Editor.js.map +1 -1
  260. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js +1 -1
  261. package/components/Drillstring/BHAComponentsTable/components/Pdm/Editor.js.map +1 -1
  262. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js +1 -1
  263. package/components/Drillstring/BHAComponentsTable/components/Rss/Editor.js.map +1 -1
  264. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js +1 -1
  265. package/components/Drillstring/BHAComponentsTable/components/Stabilizer/Editor.js.map +1 -1
  266. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js +1 -1
  267. package/components/Drillstring/BHAComponentsTable/components/Sub/Editor.js.map +1 -1
  268. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js +1 -1
  269. package/components/Drillstring/BHAComponentsTable/components/Ur/Editor.js.map +1 -1
  270. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js +1 -1
  271. package/components/Drillstring/BHAComponentsTable/components/shared/ConfirmationPopup.js.map +1 -1
  272. package/components/FeedCard/useActivityInteractions.d.ts +9 -2
  273. package/components/FeedCard/useActivityInteractions.d.ts.map +1 -1
  274. package/components/FeedCard/useActivityInteractions.js +1 -1
  275. package/components/FeedCard/useActivityInteractions.js.map +1 -1
  276. package/components/FeedCard/useFeedActivity.d.ts.map +1 -1
  277. package/components/FeedCard/useFeedActivity.js +1 -1
  278. package/components/FeedCard/useFeedActivity.js.map +1 -1
  279. package/components/IconMenu/index.d.ts +1 -1
  280. package/components/IconMenu/index.js +1 -1
  281. package/components/IconMenu/index.js.map +1 -1
  282. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js +1 -1
  283. package/components/OffsetWellPickerV2/components/Filter/ToggleMapButton.js.map +1 -1
  284. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js +1 -1
  285. package/components/OffsetWellPickerV2/components/Table/MetricsAddMenu.js.map +1 -1
  286. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js +1 -1
  287. package/components/OffsetWellPickerV3/components/CustomSelectionView/components/Table/MetricsAddMenu.js.map +1 -1
  288. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js +1 -1
  289. package/components/OffsetWellPickerV3/components/CustomSelectionView/index.js.map +1 -1
  290. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js +1 -1
  291. package/components/OffsetWellPickerV3/components/OffsetWellSelectionView/index.js.map +1 -1
  292. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js +1 -1
  293. package/components/OffsetWellPickerV3/components/TabSelection/ToggleMapButton.js.map +1 -1
  294. package/components/OffsetWellPickerV3/components/TabSelection/index.js +1 -1
  295. package/components/OffsetWellPickerV3/components/TabSelection/index.js.map +1 -1
  296. package/components/OffsetWellPickerV3/components/WellHubView/index.js +1 -1
  297. package/components/OffsetWellPickerV3/components/WellHubView/index.js.map +1 -1
  298. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js +1 -1
  299. package/components/OffsetWellPickerV3/components/shared/OffsetWellTableHead.js.map +1 -1
  300. package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js +1 -1
  301. package/components/OffsetWellPickerV5/components/Filter/components/CustomDateFields/CustomDateFields.js.map +1 -1
  302. package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js +1 -1
  303. package/components/OffsetWellPickerV5/components/OffsetWellPickerContent/OffsetWellPickerContent.js.map +1 -1
  304. package/components/PadOffsetsPicker/StagesSelector.js +1 -1
  305. package/components/PadOffsetsPicker/StagesSelector.js.map +1 -1
  306. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js +1 -1
  307. package/components/PadOffsetsPickerV2/PadOffsetsPickerV2.js.map +1 -1
  308. package/components/index.d.ts +2 -0
  309. package/components/index.d.ts.map +1 -1
  310. package/components/index.js +1 -1
  311. package/componentsV2/AppContainer/AppContainer.scss.js +1 -1
  312. package/componentsV2/AppHeader/V3/Actions/Actions.scss.js +1 -1
  313. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.d.ts.map +1 -1
  314. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.js +1 -1
  315. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.js.map +1 -1
  316. package/componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js +1 -1
  317. package/componentsV2/Autocomplete/Autocomplete.d.ts +5 -1
  318. package/componentsV2/Autocomplete/Autocomplete.d.ts.map +1 -1
  319. package/componentsV2/Autocomplete/Autocomplete.js +1 -1
  320. package/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
  321. package/componentsV2/Autocomplete/Autocomplete.scss.js +1 -1
  322. package/componentsV2/Autocomplete/AutocompleteMenuItem.d.ts +7 -3
  323. package/componentsV2/Autocomplete/AutocompleteMenuItem.d.ts.map +1 -1
  324. package/componentsV2/Autocomplete/AutocompleteMenuItem.js +1 -1
  325. package/componentsV2/Autocomplete/AutocompleteMenuItem.js.map +1 -1
  326. package/componentsV2/Autocomplete/AutocompleteNext.stories.d.ts.map +1 -1
  327. package/componentsV2/Checkbox/Checkbox.d.ts.map +1 -1
  328. package/componentsV2/Checkbox/Checkbox.js +1 -1
  329. package/componentsV2/Checkbox/Checkbox.js.map +1 -1
  330. package/componentsV2/ColorPicker/ColorPicker.scss.js +1 -1
  331. package/componentsV2/Menu/Menu.scss.js +1 -1
  332. package/componentsV2/Menu/Menu.stories.d.ts +1 -0
  333. package/componentsV2/Menu/Menu.stories.d.ts.map +1 -1
  334. package/componentsV2/Menu/MenuDivider/MenuDivider.scss.js +1 -1
  335. package/componentsV2/Menu/MenuGroup/MenuGroup.js +1 -1
  336. package/componentsV2/Menu/MenuGroup/MenuGroup.js.map +1 -1
  337. package/componentsV2/Menu/MenuGroup/MenuGroup.scss.js +1 -1
  338. package/componentsV2/Menu/MenuItem/MenuItem.d.ts +2 -0
  339. package/componentsV2/Menu/MenuItem/MenuItem.d.ts.map +1 -1
  340. package/componentsV2/Menu/MenuItem/MenuItem.js +1 -1
  341. package/componentsV2/Menu/MenuItem/MenuItem.js.map +1 -1
  342. package/componentsV2/Menu/MenuItem/MenuItem.scss.js +1 -1
  343. package/componentsV2/PadModeSelect/PadModeSelect.scss.js +1 -1
  344. package/componentsV2/Paper/Paper.d.ts.map +1 -1
  345. package/componentsV2/Paper/Paper.js +1 -1
  346. package/componentsV2/Paper/Paper.js.map +1 -1
  347. package/componentsV2/Paper/Paper.scss.js +1 -1
  348. package/componentsV2/Popover/Popover.d.ts.map +1 -1
  349. package/componentsV2/Popover/Popover.js +1 -1
  350. package/componentsV2/Popover/Popover.js.map +1 -1
  351. package/componentsV2/Radio/Radio.d.ts.map +1 -1
  352. package/componentsV2/Radio/Radio.js +1 -1
  353. package/componentsV2/Radio/Radio.js.map +1 -1
  354. package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.d.ts +5 -0
  355. package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.d.ts.map +1 -0
  356. package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.js +2 -0
  357. package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.js.map +1 -0
  358. package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +2 -0
  359. package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js.map +1 -0
  360. package/componentsV2/RadioAndCheckboxIcons/RadioIcon.d.ts +2 -0
  361. package/componentsV2/RadioAndCheckboxIcons/RadioIcon.d.ts.map +1 -0
  362. package/componentsV2/RadioAndCheckboxIcons/RadioIcon.js +2 -0
  363. package/componentsV2/RadioAndCheckboxIcons/RadioIcon.js.map +1 -0
  364. package/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +2 -0
  365. package/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js.map +1 -0
  366. package/componentsV2/RadioAndCheckboxIcons/index.d.ts +3 -0
  367. package/componentsV2/RadioAndCheckboxIcons/index.d.ts.map +1 -0
  368. package/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
  369. package/componentsV2/Tabs/Tabs.d.ts +1 -0
  370. package/componentsV2/Tabs/Tabs.d.ts.map +1 -1
  371. package/componentsV2/Tabs/Tabs.js +1 -1
  372. package/componentsV2/Tabs/Tabs.js.map +1 -1
  373. package/componentsV2/Tabs/Tabs.scss.js +1 -1
  374. package/componentsV2/Tabs/Tabs.stories.d.ts +1 -1
  375. package/componentsV2/Tabs/Tabs.stories.d.ts.map +1 -1
  376. package/componentsV2/TemplatesControl/ShareModal/ShareModal.d.ts.map +1 -1
  377. package/componentsV2/TemplatesControl/ShareModal/ShareModal.js +1 -1
  378. package/componentsV2/TemplatesControl/ShareModal/ShareModal.js.map +1 -1
  379. package/componentsV2/TemplatesControl/ShareModal/ShareModal.scss.js +1 -1
  380. package/componentsV2/TemplatesControl/TemplatesTreeMenuHeader/TemplatesTreeMenuHeader.scss.js +1 -1
  381. package/componentsV2/TemplatesControl/Toggle/Toggle.scss.js +1 -1
  382. package/config/theme/checkboxOverrides.d.ts +0 -9
  383. package/config/theme/checkboxOverrides.d.ts.map +1 -1
  384. package/config/theme/checkboxOverrides.js +1 -1
  385. package/config/theme/checkboxOverrides.js.map +1 -1
  386. package/config/theme/index.d.ts.map +1 -1
  387. package/config/theme/index.js +1 -1
  388. package/config/theme/index.js.map +1 -1
  389. package/config/theme/radioOverrides.d.ts +3 -15
  390. package/config/theme/radioOverrides.d.ts.map +1 -1
  391. package/config/theme/radioOverrides.js +1 -1
  392. package/config/theme/radioOverrides.js.map +1 -1
  393. package/constants/attachments.d.ts +2 -0
  394. package/constants/attachments.d.ts.map +1 -0
  395. package/constants/attachments.js +2 -0
  396. package/constants/attachments.js.map +1 -0
  397. package/constants/index.d.ts +2 -1
  398. package/constants/index.d.ts.map +1 -1
  399. package/constants/index.js +1 -1
  400. package/mcp-server/server.mjs +79 -11
  401. package/package.json +5 -1
  402. package/tsconfig.tsbuildinfo +1 -1
  403. package/cjs-bundle/components/AttachmentPreview/useStoredAttachment.js +0 -2
  404. package/cjs-bundle/components/AttachmentPreview/useStoredAttachment.js.map +0 -1
  405. package/components/AttachmentPreview/useStoredAttachment.js +0 -2
  406. package/components/AttachmentPreview/useStoredAttachment.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/regenerator";import{useState as i,useRef as l,useCallback as o,useEffect as u}from"react";import a from"react-s3-uploader/s3upload";import{getAttachmentKind as c}from"../AttachmentPreview/getAttachmentKind.js";import{getS3SignedUrl as s,getS3DownloadLink as p}from"../../clients/jsonApi/index.js";function f(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function d(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?f(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):f(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var v=function(e){return e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":"file"},m=function(e){return(e/1048576).toFixed(1)},g=function(r){var f,g=r.value,h=r.onChange,b=r.onError,y=r.maxSizeBytes,O=i(null),U=n(O,2),j=U[0],w=U[1],x=l(null),P=l(null),k=l(null),F=l(null),z=l(0),A=o((function(){k.current&&(URL.revokeObjectURL(k.current),k.current=null)}),[]),R=o((function(){var e;z.current+=1,null===(e=P.current)||void 0===e||e.abortUpload(),P.current=null}),[]);u((function(){return function(){return A()}}),[A]);var S=o((function(r){var n,i,l=z.current,o=function(){return z.current===l},u=function(e){o()&&(w((function(r){return r?d(d({},r),{},{isUploading:!1,error:e}):r})),null==b||b(e))};P.current=new a({files:[r],preprocess:function(e,r){return r(e)},onProgress:function(){},getSignedUrl:(i=e(t.mark((function e(r,n){var i;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,s(r.name,r.type);case 3:i=e.sent,F.current=i.file_name,n(d(d({},i),{},{signedUrl:i.signed_url})),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),u((null===e.t0||void 0===e.t0?void 0:e.t0.message)||"Failed to upload the file");case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),function(e,r){return i.apply(this,arguments)}),onFinishS3Put:(n=e(t.mark((function e(){var n,i,l;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=F.current,e.next=4,p(n);case 4:if(i=e.sent,l=i.url,o()){e.next=8;break}return e.abrupt("return");case 8:w((function(e){return e?d(d({},e),{},{isUploading:!1,error:null}):e})),null==b||b(null),h({url:l,name:n,size:r.size}),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(0),u((null===e.t0||void 0===e.t0?void 0:e.t0.message)||"Failed to upload the file");case 16:case"end":return e.stop()}}),e,null,[[0,13]])}))),function(){return n.apply(this,arguments)}),onError:function(e){return u(e||"Failed to upload the file")}})}),[h,b]),D=o((function(e){R(),A();var r="file"===v(e)?"":URL.createObjectURL(e);k.current=r||null;var n=!!y&&e.size>y,t=n?"File is too large (".concat(m(e.size)," MB). Maximum size is ").concat(m(y)," MB."):null;w({file:e,previewUrl:r,isUploading:!n,error:t}),t?null==b||b(t):(null==b||b(null),S(e))}),[R,A,y,b,S]),E=o((function(e){var r,n=null===(r=e.target.files)||void 0===r?void 0:r[0];x.current&&(x.current.value=""),n&&D(n)}),[D]),L=o((function(){var e;return null===(e=x.current)||void 0===e?void 0:e.click()}),[]),B=o((function(){R(),A(),w(null),null==b||b(null),h(null)}),[R,A,h,b]),M=o((function(){var e=null==j?void 0:j.file;e&&(R(),w(d(d({},j),{},{isUploading:!0,error:null})),null==b||b(null),S(e))}),[j,R,b,S]),T=!(null!=j&&j.isUploading||null!=j&&j.error);u((function(){!g&&j&&T&&(A(),w(null))}),[g,j,T,A]);var W=!j&&g?g.name:"",_=i(""),C=n(_,2),G=C[0],I=C[1];u((function(){var e=!0;return W?p(W,"inline").then((function(r){var n=r.url;e&&I(n)})).catch((function(){e&&I("")})):I(""),function(){e=!1}}),[W]);var K,q=[];j?q.push({id:"pending-attachment",name:j.file.name,src:j.previewUrl,kind:v(j.file),isUploading:j.isUploading,error:null!==(K=j.error)&&void 0!==K?K:void 0}):g&&G&&q.push({id:g.url,name:g.name,src:G,kind:c(g)});return{items:q,fileInputRef:x,openFileDialog:L,handleFileSelect:E,removeAttachment:B,handleRetry:M,isUploading:!(null==j||!j.isUploading),error:null!==(f=null==j?void 0:j.error)&&void 0!==f?f:null,hasAttachment:!!j||!!g}};export{g as useAttachmentUpload};
1
+ import r from"@babel/runtime/helpers/toConsumableArray";import e from"@babel/runtime/helpers/asyncToGenerator";import n from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import i from"@babel/runtime/regenerator";import{useState as o,useRef as u,useCallback as l,useEffect as c}from"react";import a from"react-s3-uploader/s3upload";import{getAttachmentKind as f}from"../AttachmentPreview/getAttachmentKind.js";import{ACCEPTED_ATTACHMENT_TYPES as s}from"../AttachFileButton/AttachFileButton.js";import{getS3SignedUrl as d,getS3DownloadLink as p}from"../../clients/jsonApi/index.js";function v(r,e){var n=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.push.apply(n,t)}return n}function m(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?v(Object(t),!0).forEach((function(e){n(r,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}var h=10,g=function(r){return r.type.startsWith("image/")?"image":r.type.startsWith("video/")?"video":"file"},b=function(r){return(r/1048576).toFixed(1)},U=function(r){return{id:r.url,name:r.name,file:null,previewUrl:"",isUploading:!1,error:null,uploaded:r}},w=0,y=function(n){var v,h,y=n.value,O=n.onChange,j=n.onError,F=n.maxSizeBytes,x=n.maxFiles,k=void 0===x?10:x,P=n.accept,L=void 0===P?s:P,A=o([]),S=t(A,2),E=S[0],R=S[1],B=u(null),z=u(new Map),C=u(new Map),M=u([]),W=u(O),D=u(j);W.current=O,D.current=j;var T=u([]),_=l((function(r){var e=r(M.current);M.current=e,R(e),T.current=function(r){return r.map((function(r){return r.uploaded})).filter(Boolean)}(e),W.current(T.current)}),[]),G=l((function(r,e){return _((function(n){return n.map((function(n){return n.id===r?m(m({},n),e):n}))}))}),[_]),I=l((function(r){var e,n;null===(e=z.current.get(r))||void 0===e||e.abortUpload(),z.current.delete(r),C.current.set(r,(null!==(n=C.current.get(r))&&void 0!==n?n:0)+1)}),[]),K=l((function(r){null!=r&&r.previewUrl&&URL.revokeObjectURL(r.previewUrl)}),[]),Y=l((function(){var r,e,n;null===(r=D.current)||void 0===r||r.call(D,null!==(e=null===(n=M.current.find((function(r){return r.error})))||void 0===n?void 0:n.error)&&void 0!==e?e:null)}),[]);c((function(){return function(){z.current.forEach((function(r){return r.abortUpload()})),z.current.clear(),M.current.forEach((function(r){r.previewUrl&&URL.revokeObjectURL(r.previewUrl)}))}}),[]);var q=l((function(r,n){var t,o=(null!==(t=C.current.get(r))&&void 0!==t?t:0)+1;C.current.set(r,o);var u,l,c=function(){return C.current.get(r)===o},f=function(e){var n;c()&&(G(r,{isUploading:!1,error:e}),null===(n=D.current)||void 0===n||n.call(D,e))},s="",v=new a({files:[n],preprocess:function(r,e){return e(r)},onProgress:function(){},getSignedUrl:(l=e(i.mark((function r(e,n){var t;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,d(e.name,e.type);case 3:t=r.sent,s=t.file_name,n(m(m({},t),{},{signedUrl:t.signed_url})),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(0),f((null===r.t0||void 0===r.t0?void 0:r.t0.message)||"Failed to upload the file");case 11:case"end":return r.stop()}}),r,null,[[0,8]])}))),function(r,e){return l.apply(this,arguments)}),onFinishS3Put:(u=e(i.mark((function e(){var t,o;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,p(s);case 3:if(t=e.sent,o=t.url,c()){e.next=7;break}return e.abrupt("return");case 7:z.current.delete(r),G(r,{isUploading:!1,error:null,uploaded:{url:o,name:s,size:n.size}}),Y(),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(0),f((null===e.t0||void 0===e.t0?void 0:e.t0.message)||"Failed to upload the file");case 15:case"end":return e.stop()}}),e,null,[[0,12]])}))),function(){return u.apply(this,arguments)}),onError:function(r){return f(r||"Failed to upload the file")}});z.current.set(r,v)}),[G,Y]),H=l((function(e){var n,t,i,o,u=e.filter((function(r){return function(r,e){return e.split(",").map((function(r){return r.trim().toLowerCase()})).filter(Boolean).some((function(e){if(e.startsWith("."))return r.name.toLowerCase().endsWith(e);if(e.endsWith("/*")){var n=r.type.toLowerCase();return n?n.startsWith(e.slice(0,-1)):f({name:r.name})===e.slice(0,-1)}return r.type.toLowerCase()===e}))}(r,L)})),l=u.length<e.length?1===e.length?"That file type is not supported.":"Some files were skipped — unsupported file type.":null,c="You can attach up to ".concat(k," files."),a=k-M.current.length;if(!u.length||a<=0){var s;null===(s=D.current)||void 0===s||s.call(D,u.length?c:l)}else{var d=u.slice(0,a),p=d.map((function(r){var e=g(r),n=!!F&&r.size>F;return{id:"attachment-".concat(w+=1),name:r.name,file:r,previewUrl:"file"===e?"":URL.createObjectURL(r),isUploading:!n,error:n?"File is too large (".concat(b(r.size)," MB). Maximum size is ").concat(b(F)," MB."):null,uploaded:null}}));_((function(e){return[].concat(r(e),r(p))}));var v=u.length>d.length?c:null;null===(n=D.current)||void 0===n||n.call(D,null!==(t=null!==(i=null===(o=M.current.find((function(r){return r.error})))||void 0===o?void 0:o.error)&&void 0!==i?i:l)&&void 0!==t?t:v),p.filter((function(r){return!r.error})).forEach((function(r){return q(r.id,r.file)}))}}),[_,k,F,q,L]),J=l((function(r){var e,n=Array.from(null!==(e=r.target.files)&&void 0!==e?e:[]);B.current&&(B.current.value=""),n.length&&H(n)}),[H]),N=l((function(){var r;return null===(r=B.current)||void 0===r?void 0:r.click()}),[]),Q=l((function(r){var e=String(r);I(e),K(M.current.find((function(r){return r.id===e}))),_((function(r){return r.filter((function(r){return r.id!==e}))})),Y()}),[I,K,_,Y]),V=l((function(r){var e=String(r),n=M.current.find((function(r){return r.id===e}));null!=n&&n.file&&(I(e),G(e,{isUploading:!0,error:null}),Y(),q(e,n.file))}),[I,G,q,Y]),X=l((function(e){return _((function(n){var t=new Map(n.map((function(r){return[r.id,r]}))),i=e.map((function(r){return t.get(String(r))})).filter(Boolean),o=n.filter((function(r){return!e.some((function(e){return String(e)===r.id}))}));return[].concat(r(i),r(o))}))}),[_]),Z=l((function(){var r;M.current.forEach((function(r){I(r.id),K(r)})),_((function(){return[]})),null===(r=D.current)||void 0===r||r.call(D,null)}),[I,_,K]);c((function(){var r,e,n;(e=T.current,n=y,e.length===n.length&&e.every((function(r,e){return r.url===n[e].url})))||(M.current.forEach((function(r){I(r.id),r.previewUrl&&URL.revokeObjectURL(r.previewUrl)})),M.current=y.map(U),T.current=y,R(M.current),null===(r=D.current)||void 0===r||r.call(D,null))}),[y,I]);var $=o({}),rr=t($,2),er=rr[0],nr=rr[1],tr=u(er);tr.current=er;var ir=E.filter((function(r){return!r.file&&r.uploaded})).map((function(r){return r.uploaded.name})).join("|");return c((function(){var r=ir.split("|").filter((function(r){return r&&!(r in tr.current)}));if(r.length){var e=!0;return Promise.all(r.map((function(r){return p(r,"inline").then((function(e){var n=e.url;return[r,n]})).catch((function(e){return console.error('Failed to sign stored attachment "'.concat(r,'"'),e),[r,""]}))}))).then((function(r){e&&nr((function(e){return m(m({},e),Object.fromEntries(r))}))})),function(){e=!1}}}),[ir]),{items:E.reduce((function(r,e){var n;if(e.file)return r.push({id:e.id,name:e.name,src:e.previewUrl,kind:g(e.file),isUploading:e.isUploading,error:null!==(n=e.error)&&void 0!==n?n:void 0}),r;var t=e.uploaded,i=f(t),o=er[t.name];return"file"===i||o?(r.push({id:e.id,name:t.name,src:o,kind:i}),r):r}),[]),fileInputRef:B,openFileDialog:N,handleFileSelect:J,addFiles:H,removeAttachment:Q,handleRetry:V,reorderAttachments:X,clearAttachments:Z,isUploading:E.some((function(r){return r.isUploading})),error:null!==(v=null===(h=E.find((function(r){return r.error})))||void 0===h?void 0:h.error)&&void 0!==v?v:null,count:E.length,isFull:E.length>=k,maxFiles:k}};export{h as DEFAULT_MAX_ATTACHMENTS,y as useAttachmentUpload};
2
2
  //# sourceMappingURL=useAttachmentUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAttachmentUpload.js","sources":["../../../src/components/CommentComposer/useAttachmentUpload.ts"],"sourcesContent":["import { ChangeEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport S3Upload from 'react-s3-uploader/s3upload';\n\nimport type {\n AttachmentKind,\n AttachmentPreviewItem,\n} from '../AttachmentPreview/AttachmentPreview.types';\nimport { getAttachmentKind } from '../AttachmentPreview/getAttachmentKind';\n\nimport { getS3SignedUrl, getS3DownloadLink } from '~/clients/jsonApi';\n\nexport type UploadedAttachment = {\n url: string;\n name: string;\n size?: number;\n};\n\ntype UseAttachmentUploadOptions = {\n value: UploadedAttachment | null;\n onChange: (attachment: UploadedAttachment | null) => void;\n onError?: (message: string | null) => void;\n maxSizeBytes?: number;\n};\n\ntype PendingUpload = {\n file: File;\n previewUrl: string;\n isUploading: boolean;\n error: string | null;\n};\n\nconst PENDING_ITEM_ID = 'pending-attachment';\n\nconst getFileKind = (file: File): AttachmentKind => {\n if (file.type.startsWith('image/')) return 'image';\n if (file.type.startsWith('video/')) return 'video';\n return 'file';\n};\n\nconst formatMb = (bytes: number) => (bytes / (1024 * 1024)).toFixed(1);\n\nexport const useAttachmentUpload = ({\n value,\n onChange,\n onError,\n maxSizeBytes,\n}: UseAttachmentUploadOptions) => {\n const [pending, setPending] = useState<PendingUpload | null>(null);\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n const uploaderRef = useRef<S3Upload | null>(null);\n const previewUrlRef = useRef<string | null>(null);\n const storedKeyRef = useRef<string | null>(null);\n // Bumped per pick so a superseded upload can't write stale state.\n const sessionRef = useRef(0);\n\n const releasePreview = useCallback(() => {\n if (!previewUrlRef.current) return;\n URL.revokeObjectURL(previewUrlRef.current);\n previewUrlRef.current = null;\n }, []);\n\n const abortUpload = useCallback(() => {\n sessionRef.current += 1;\n uploaderRef.current?.abortUpload();\n uploaderRef.current = null;\n }, []);\n\n useEffect(() => () => releasePreview(), [releasePreview]);\n\n const startUpload = useCallback(\n (file: File) => {\n const session = sessionRef.current;\n const isCurrent = () => sessionRef.current === session;\n\n const fail = (message: string) => {\n if (!isCurrent()) return;\n setPending(prev => (prev ? { ...prev, isUploading: false, error: message } : prev));\n onError?.(message);\n };\n\n uploaderRef.current = new S3Upload({\n files: [file],\n preprocess: (target, next) => next(target),\n onProgress: () => {},\n getSignedUrl: async (target, callback) => {\n try {\n const data = await getS3SignedUrl(target.name, target.type);\n storedKeyRef.current = data.file_name;\n callback({ ...data, signedUrl: data.signed_url });\n } catch (e) {\n fail((e as Error)?.message || 'Failed to upload the file');\n }\n },\n onFinishS3Put: async () => {\n try {\n const key = storedKeyRef.current as string;\n const { url } = await getS3DownloadLink(key);\n if (!isCurrent()) return;\n\n setPending(prev => (prev ? { ...prev, isUploading: false, error: null } : prev));\n onError?.(null);\n onChange({ url, name: key, size: file.size });\n } catch (e) {\n fail((e as Error)?.message || 'Failed to upload the file');\n }\n },\n onError: message => fail(message || 'Failed to upload the file'),\n });\n },\n [onChange, onError]\n );\n\n const selectFile = useCallback(\n (file: File) => {\n abortUpload();\n releasePreview();\n\n const kind = getFileKind(file);\n const previewUrl = kind === 'file' ? '' : URL.createObjectURL(file);\n previewUrlRef.current = previewUrl || null;\n\n const isTooLarge = !!maxSizeBytes && file.size > maxSizeBytes;\n const sizeError = isTooLarge\n ? `File is too large (${formatMb(file.size)} MB). Maximum size is ${formatMb(\n maxSizeBytes as number\n )} MB.`\n : null;\n\n setPending({ file, previewUrl, isUploading: !isTooLarge, error: sizeError });\n\n if (sizeError) {\n onError?.(sizeError);\n return;\n }\n\n onError?.(null);\n startUpload(file);\n },\n [abortUpload, releasePreview, maxSizeBytes, onError, startUpload]\n );\n\n const handleFileSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files?.[0];\n // Reset the input so re-picking the same file still fires a change event.\n if (fileInputRef.current) fileInputRef.current.value = '';\n if (file) selectFile(file);\n },\n [selectFile]\n );\n\n const openFileDialog = useCallback(() => fileInputRef.current?.click(), []);\n\n const removeAttachment = useCallback(() => {\n abortUpload();\n releasePreview();\n setPending(null);\n onError?.(null);\n onChange(null);\n }, [abortUpload, releasePreview, onChange, onError]);\n\n const handleRetry = useCallback(() => {\n const file = pending?.file;\n if (!file) return;\n\n abortUpload();\n setPending({ ...(pending as PendingUpload), isUploading: true, error: null });\n onError?.(null);\n startUpload(file);\n }, [pending, abortUpload, onError, startUpload]);\n\n // Uploading / failed tiles outlive a cleared value so retries stay visible.\n const isIdle = !pending?.isUploading && !pending?.error;\n useEffect(() => {\n if (!value && pending && isIdle) {\n releasePreview();\n setPending(null);\n }\n }, [value, pending, isIdle, releasePreview]);\n\n // A stored url has expired by now, so re-sign it for the preview.\n const storedName = !pending && value ? value.name : '';\n const [storedSrc, setStoredSrc] = useState('');\n useEffect(() => {\n let isActive = true;\n\n if (!storedName) {\n setStoredSrc('');\n } else {\n getS3DownloadLink(storedName, 'inline')\n .then(({ url }: { url: string }) => {\n if (isActive) setStoredSrc(url);\n })\n .catch(() => {\n if (isActive) setStoredSrc('');\n });\n }\n\n return () => {\n isActive = false;\n };\n }, [storedName]);\n\n const items: AttachmentPreviewItem[] = [];\n // A finished upload keeps its local tile: the picked file name is what the user expects to see,\n // and the blob preview spares a re-sign round trip. Submitting clears `value`, which drops it.\n if (pending) {\n items.push({\n id: PENDING_ITEM_ID,\n name: pending.file.name,\n src: pending.previewUrl,\n kind: getFileKind(pending.file),\n isUploading: pending.isUploading,\n error: pending.error ?? undefined,\n });\n } else if (value && storedSrc) {\n items.push({\n id: value.url,\n name: value.name,\n src: storedSrc,\n kind: getAttachmentKind(value),\n });\n }\n\n return {\n items,\n fileInputRef,\n openFileDialog,\n handleFileSelect,\n removeAttachment,\n handleRetry,\n isUploading: !!pending?.isUploading,\n error: pending?.error ?? null,\n hasAttachment: !!pending || !!value,\n };\n};\n"],"names":["getFileKind","file","type","startsWith","formatMb","bytes","toFixed","useAttachmentUpload","_ref","_pending$error2","value","onChange","onError","maxSizeBytes","useState","_useState2","_slicedToArray","_useState","pending","setPending","fileInputRef","useRef","uploaderRef","previewUrlRef","storedKeyRef","sessionRef","releasePreview","useCallback","current","URL","revokeObjectURL","abortUpload","_uploaderRef$current","useEffect","startUpload","_onFinishS3Put","_getSignedUrl","session","isCurrent","fail","message","prev","isUploading","error","S3Upload","files","preprocess","target","next","onProgress","getSignedUrl","_asyncToGenerator","_regeneratorRuntime","mark","_callee","callback","data","wrap","_context","getS3SignedUrl","name","sent","file_name","signedUrl","signed_url","t0","stop","_x","_x2","apply","this","arguments","onFinishS3Put","_callee2","key","_yield$getS3DownloadL","url","_context2","getS3DownloadLink","abrupt","size","selectFile","previewUrl","createObjectURL","isTooLarge","sizeError","handleFileSelect","event","_event$target$files","openFileDialog","_fileInputRef$current","click","removeAttachment","handleRetry","isIdle","storedName","_useState4","_useState3","storedSrc","setStoredSrc","isActive","then","_ref2","catch","_pending$error","items","push","id","src","kind","undefined","getAttachmentKind","hasAttachment"],"mappings":"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"}
1
+ {"version":3,"file":"useAttachmentUpload.js","sources":["../../../src/components/CommentComposer/useAttachmentUpload.ts"],"sourcesContent":["import { ChangeEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport S3Upload from 'react-s3-uploader/s3upload';\n\nimport type {\n AttachmentKind,\n AttachmentPreviewItem,\n} from '../AttachmentPreview/AttachmentPreview.types';\nimport { getAttachmentKind } from '../AttachmentPreview/getAttachmentKind';\nimport { ACCEPTED_ATTACHMENT_TYPES } from '../AttachFileButton';\n\nimport { getS3SignedUrl, getS3DownloadLink } from '~/clients/jsonApi';\n\nexport type UploadedAttachment = {\n url: string;\n name: string;\n size?: number;\n};\n\ntype UseAttachmentUploadOptions = {\n value: UploadedAttachment[];\n onChange: (attachments: UploadedAttachment[]) => void;\n onError?: (message: string | null) => void;\n maxSizeBytes?: number;\n maxFiles?: number;\n /** Mirrors the file input's `accept`; also gates drag-and-drop. */\n accept?: string;\n};\n\n/** A picked or already-stored file, in the order the user arranged it. */\ntype Entry = {\n id: string;\n name: string;\n /** Set while the file is local; cleared entries come from `value`. */\n file: File | null;\n previewUrl: string;\n isUploading: boolean;\n error: string | null;\n uploaded: UploadedAttachment | null;\n};\n\nexport const DEFAULT_MAX_ATTACHMENTS = 10;\n\n/** Same rules the file input enforces via `accept`, so drag-and-drop can't smuggle a type past it. */\nconst isAcceptedType = (file: File, accept: string) =>\n accept\n .split(',')\n .map(rule => rule.trim().toLowerCase())\n .filter(Boolean)\n .some(rule => {\n if (rule.startsWith('.')) return file.name.toLowerCase().endsWith(rule);\n if (rule.endsWith('/*')) {\n const type = file.type.toLowerCase();\n if (type) return type.startsWith(rule.slice(0, -1));\n\n return getAttachmentKind({ name: file.name }) === rule.slice(0, -1);\n }\n\n return file.type.toLowerCase() === rule;\n });\n\nconst getFileKind = (file: File): AttachmentKind => {\n if (file.type.startsWith('image/')) return 'image';\n if (file.type.startsWith('video/')) return 'video';\n return 'file';\n};\n\nconst formatMb = (bytes: number) => (bytes / (1024 * 1024)).toFixed(1);\n\nconst getUploaded = (entries: Entry[]) =>\n entries.map(entry => entry.uploaded).filter(Boolean) as UploadedAttachment[];\n\nconst isSameList = (a: UploadedAttachment[], b: UploadedAttachment[]) =>\n a.length === b.length && a.every((item, index) => item.url === b[index].url);\n\nconst toStoredEntry = (attachment: UploadedAttachment): Entry => ({\n id: attachment.url,\n name: attachment.name,\n file: null,\n previewUrl: '',\n isUploading: false,\n error: null,\n uploaded: attachment,\n});\n\nlet entrySeq = 0;\nconst nextEntryId = () => {\n entrySeq += 1;\n return `attachment-${entrySeq}`;\n};\n\nexport const useAttachmentUpload = ({\n value,\n onChange,\n onError,\n maxSizeBytes,\n maxFiles = DEFAULT_MAX_ATTACHMENTS,\n accept = ACCEPTED_ATTACHMENT_TYPES,\n}: UseAttachmentUploadOptions) => {\n const [entries, setEntries] = useState<Entry[]>([]);\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n const uploadersRef = useRef(new Map<string, S3Upload>());\n // Bumped per attempt so a superseded upload can't write state for a restarted entry.\n const sessionsRef = useRef(new Map<string, number>());\n // Mutations are driven from async upload callbacks, so the latest list lives in a ref.\n const entriesRef = useRef<Entry[]>([]);\n const onChangeRef = useRef(onChange);\n const onErrorRef = useRef(onError);\n\n onChangeRef.current = onChange;\n onErrorRef.current = onError;\n\n // What we last handed the parent. A `value` that still matches it is our own change echoing\n // back; anything else is a parent-driven reset we must adopt.\n const emittedRef = useRef<UploadedAttachment[]>([]);\n\n const commit = useCallback((updater: (prev: Entry[]) => Entry[]) => {\n const next = updater(entriesRef.current);\n entriesRef.current = next;\n setEntries(next);\n emittedRef.current = getUploaded(next);\n onChangeRef.current(emittedRef.current);\n }, []);\n\n const patchEntry = useCallback(\n (id: string, patch: Partial<Entry>) =>\n commit(prev => prev.map(entry => (entry.id === id ? { ...entry, ...patch } : entry))),\n [commit]\n );\n\n const abortUpload = useCallback((id: string) => {\n uploadersRef.current.get(id)?.abortUpload();\n uploadersRef.current.delete(id);\n // Bump, never delete: deleting would let the next attempt reuse session 1, so a callback\n // still in flight from the aborted attempt would pass `isCurrent` and clobber it.\n sessionsRef.current.set(id, (sessionsRef.current.get(id) ?? 0) + 1);\n }, []);\n\n const releasePreview = useCallback((entry?: Entry) => {\n if (entry?.previewUrl) URL.revokeObjectURL(entry.previewUrl);\n }, []);\n\n // The banner is shared by every tile, so recompute it rather than clear it — one file\n // succeeding must not hide a sibling that is still failing.\n const syncError = useCallback(() => {\n onErrorRef.current?.(entriesRef.current.find(entry => entry.error)?.error ?? null);\n }, []);\n\n useEffect(\n () => () => {\n uploadersRef.current.forEach(uploader => uploader.abortUpload());\n uploadersRef.current.clear();\n entriesRef.current.forEach(entry => {\n if (entry.previewUrl) URL.revokeObjectURL(entry.previewUrl);\n });\n },\n []\n );\n\n const startUpload = useCallback(\n (id: string, file: File) => {\n const session = (sessionsRef.current.get(id) ?? 0) + 1;\n sessionsRef.current.set(id, session);\n // A superseded upload must not write state for an entry that is gone or restarted.\n const isCurrent = () => sessionsRef.current.get(id) === session;\n\n const fail = (message: string) => {\n if (!isCurrent()) return;\n patchEntry(id, { isUploading: false, error: message });\n onErrorRef.current?.(message);\n };\n\n let storedKey = '';\n\n const uploader = new S3Upload({\n files: [file],\n preprocess: (target: File, next: (file: File) => void) => next(target),\n onProgress: () => {},\n getSignedUrl: async (\n target: File,\n callback: (data: { signedUrl: string; [key: string]: unknown }) => void\n ) => {\n try {\n const data = await getS3SignedUrl(target.name, target.type);\n storedKey = data.file_name;\n callback({ ...data, signedUrl: data.signed_url });\n } catch (e) {\n fail((e as Error)?.message || 'Failed to upload the file');\n }\n },\n onFinishS3Put: async () => {\n try {\n const { url } = await getS3DownloadLink(storedKey);\n if (!isCurrent()) return;\n\n uploadersRef.current.delete(id);\n patchEntry(id, {\n isUploading: false,\n error: null,\n uploaded: { url, name: storedKey, size: file.size },\n });\n syncError();\n } catch (e) {\n fail((e as Error)?.message || 'Failed to upload the file');\n }\n },\n onError: (message: string) => fail(message || 'Failed to upload the file'),\n });\n\n uploadersRef.current.set(id, uploader);\n },\n [patchEntry, syncError]\n );\n\n const addFiles = useCallback(\n (files: File[]) => {\n const supported = files.filter(file => isAcceptedType(file, accept));\n const skipped = supported.length < files.length;\n // One banner, one message: report the most actionable reason once, at the end. Reporting\n // as we go would let a later call overwrite an earlier warning on a mixed drop.\n const unsupported = skipped\n ? (files.length === 1 && 'That file type is not supported.') ||\n 'Some files were skipped — unsupported file type.'\n : null;\n const tooMany = `You can attach up to ${maxFiles} files.`;\n\n const room = maxFiles - entriesRef.current.length;\n if (!supported.length || room <= 0) {\n onErrorRef.current?.(supported.length ? tooMany : unsupported);\n return;\n }\n\n const accepted = supported.slice(0, room);\n const added: Entry[] = accepted.map(file => {\n const kind = getFileKind(file);\n const isTooLarge = !!maxSizeBytes && file.size > maxSizeBytes;\n\n return {\n id: nextEntryId(),\n name: file.name,\n file,\n previewUrl: kind === 'file' ? '' : URL.createObjectURL(file),\n isUploading: !isTooLarge,\n error: isTooLarge\n ? `File is too large (${formatMb(file.size)} MB). Maximum size is ${formatMb(\n maxSizeBytes as number\n )} MB.`\n : null,\n uploaded: null,\n };\n });\n\n commit(prev => [...prev, ...added]);\n\n const overflow = supported.length > accepted.length ? tooMany : null;\n onErrorRef.current?.(\n entriesRef.current.find(entry => entry.error)?.error ?? unsupported ?? overflow\n );\n\n added\n .filter(entry => !entry.error)\n .forEach(entry => startUpload(entry.id, entry.file as File));\n },\n [commit, maxFiles, maxSizeBytes, startUpload, accept]\n );\n\n const handleFileSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const files = Array.from(event.target.files ?? []);\n // Reset the input so re-picking the same file still fires a change event.\n if (fileInputRef.current) fileInputRef.current.value = '';\n if (files.length) addFiles(files);\n },\n [addFiles]\n );\n\n const openFileDialog = useCallback(() => fileInputRef.current?.click(), []);\n\n const removeAttachment = useCallback(\n (id: AttachmentPreviewItem['id']) => {\n const key = String(id);\n abortUpload(key);\n releasePreview(entriesRef.current.find(entry => entry.id === key));\n commit(prev => prev.filter(entry => entry.id !== key));\n syncError();\n },\n [abortUpload, releasePreview, commit, syncError]\n );\n\n const handleRetry = useCallback(\n (id: AttachmentPreviewItem['id']) => {\n const key = String(id);\n const entry = entriesRef.current.find(item => item.id === key);\n if (!entry?.file) return;\n\n abortUpload(key);\n patchEntry(key, { isUploading: true, error: null });\n syncError();\n startUpload(key, entry.file);\n },\n [abortUpload, patchEntry, startUpload, syncError]\n );\n\n const reorderAttachments = useCallback(\n (orderedIds: AttachmentPreviewItem['id'][]) =>\n commit(prev => {\n const byId = new Map(prev.map(entry => [entry.id, entry]));\n const reordered = orderedIds.map(id => byId.get(String(id))).filter(Boolean) as Entry[];\n // Unlisted ids (a race with a removal) keep their place at the end.\n const missing = prev.filter(entry => !orderedIds.some(id => String(id) === entry.id));\n return [...reordered, ...missing];\n }),\n [commit]\n );\n\n const clearAttachments = useCallback(() => {\n entriesRef.current.forEach(entry => {\n abortUpload(entry.id);\n releasePreview(entry);\n });\n commit(() => []);\n onErrorRef.current?.(null);\n }, [abortUpload, commit, releasePreview]);\n\n // Adopt a value we didn't produce — an edit form's initial attachments, or a parent-side reset.\n // Compared against what we emitted, not against the current entries: a failed-only or\n // mid-upload list emits `[]` too, and treating that as \"in sync\" would strand those tiles\n // on screen and let a late upload write itself back into freshly reset parent state.\n useEffect(() => {\n if (isSameList(emittedRef.current, value)) return;\n\n entriesRef.current.forEach(entry => {\n abortUpload(entry.id);\n if (entry.previewUrl) URL.revokeObjectURL(entry.previewUrl);\n });\n entriesRef.current = value.map(toStoredEntry);\n emittedRef.current = value;\n setEntries(entriesRef.current);\n onErrorRef.current?.(null);\n }, [value, abortUpload]);\n\n // A stored url has expired by now, so re-sign it for the preview.\n const [storedSrcs, setStoredSrcs] = useState<Record<string, string>>({});\n const storedSrcsRef = useRef(storedSrcs);\n storedSrcsRef.current = storedSrcs;\n\n const storedNames = entries\n .filter(entry => !entry.file && entry.uploaded)\n .map(entry => (entry.uploaded as UploadedAttachment).name)\n .join('|');\n\n useEffect(() => {\n const pending = storedNames.split('|').filter(name => name && !(name in storedSrcsRef.current));\n if (!pending.length) return undefined;\n\n let isActive = true;\n Promise.all(\n pending.map(name =>\n getS3DownloadLink(name, 'inline')\n .then(({ url }: { url: string }) => [name, url] as const)\n .catch(error => {\n console.error(`Failed to sign stored attachment \"${name}\"`, error);\n\n return [name, ''] as const;\n })\n )\n ).then(resolved => {\n if (isActive) setStoredSrcs(prev => ({ ...prev, ...Object.fromEntries(resolved) }));\n });\n\n return () => {\n isActive = false;\n };\n }, [storedNames]);\n\n const items = entries.reduce<AttachmentPreviewItem[]>((acc, entry) => {\n if (entry.file) {\n acc.push({\n id: entry.id,\n name: entry.name,\n src: entry.previewUrl,\n kind: getFileKind(entry.file),\n isUploading: entry.isUploading,\n error: entry.error ?? undefined,\n });\n return acc;\n }\n\n const stored = entry.uploaded as UploadedAttachment;\n const kind = getAttachmentKind(stored);\n const src = storedSrcs[stored.name];\n // A thumbnail without its signed url would paint as a broken image, so hold it back.\n if (kind !== 'file' && !src) return acc;\n\n acc.push({ id: entry.id, name: stored.name, src, kind });\n return acc;\n }, []);\n\n return {\n items,\n fileInputRef,\n openFileDialog,\n handleFileSelect,\n addFiles,\n removeAttachment,\n handleRetry,\n reorderAttachments,\n clearAttachments,\n isUploading: entries.some(entry => entry.isUploading),\n error: entries.find(entry => entry.error)?.error ?? null,\n count: entries.length,\n isFull: entries.length >= maxFiles,\n maxFiles,\n };\n};\n"],"names":["DEFAULT_MAX_ATTACHMENTS","getFileKind","file","type","startsWith","formatMb","bytes","toFixed","toStoredEntry","attachment","id","url","name","previewUrl","isUploading","error","uploaded","entrySeq","useAttachmentUpload","_ref","_entries$find$error","_entries$find","value","onChange","onError","maxSizeBytes","_ref$maxFiles","maxFiles","_ref$accept","accept","ACCEPTED_ATTACHMENT_TYPES","useState","_useState2","_slicedToArray","_useState","entries","setEntries","fileInputRef","useRef","uploadersRef","Map","sessionsRef","entriesRef","onChangeRef","onErrorRef","current","emittedRef","commit","useCallback","updater","next","map","entry","filter","Boolean","getUploaded","patchEntry","patch","prev","abortUpload","_uploadersRef$current","_sessionsRef$current$","get","delete","set","releasePreview","URL","revokeObjectURL","syncError","_onErrorRef$current","_entriesRef$current$f","_entriesRef$current$f2","find","useEffect","forEach","uploader","clear","startUpload","_sessionsRef$current$2","session","_onFinishS3Put","_getSignedUrl","isCurrent","fail","message","_onErrorRef$current2","storedKey","S3Upload","files","preprocess","target","onProgress","getSignedUrl","_asyncToGenerator","_regeneratorRuntime","mark","_callee","callback","_data","wrap","_context","getS3SignedUrl","data","sent","file_name","signedUrl","signed_url","t0","stop","_x","_x2","apply","this","arguments","onFinishS3Put","_callee2","_yield$getS3DownloadL","_context2","getS3DownloadLink","abrupt","size","addFiles","_onErrorRef$current4","_ref2","_entriesRef$current$f3","_entriesRef$current$f4","supported","split","rule","trim","toLowerCase","some","endsWith","slice","getAttachmentKind","isAcceptedType","unsupported","length","tooMany","room","_onErrorRef$current3","accepted","added","kind","isTooLarge","concat","createObjectURL","overflow","handleFileSelect","event","_event$target$files","Array","from","openFileDialog","_fileInputRef$current","click","removeAttachment","key","String","handleRetry","item","reorderAttachments","orderedIds","byId","reordered","missing","clearAttachments","_onErrorRef$current5","_onErrorRef$current6","a","b","every","index","_useState3","_useState4","storedSrcs","setStoredSrcs","storedSrcsRef","storedNames","join","pending","isActive","Promise","all","then","_ref3","catch","console","resolved","_objectSpread","Object","fromEntries","items","reduce","acc","_entry$error","push","src","undefined","stored","count","isFull"],"mappings":"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"}
@@ -5,6 +5,7 @@ export type CommentInputProps = {
5
5
  value?: string;
6
6
  onChange?: (value: string) => void;
7
7
  onSubmit?: (value: string) => void;
8
+ onCancel?: () => void;
8
9
  disabled?: boolean;
9
10
  autoFocus?: boolean;
10
11
  minRows?: number;
@@ -21,6 +22,11 @@ export type CommentInputProps = {
21
22
  attachments?: AttachmentPreviewItem[];
22
23
  onAttachmentRemove?: (id: AttachmentPreviewItem['id']) => void;
23
24
  onAttachmentRetry?: (id: AttachmentPreviewItem['id']) => void;
25
+ /** Enables drag-to-reorder on the attachment strip. */
26
+ onAttachmentReorder?: (orderedIds: AttachmentPreviewItem['id'][]) => void;
27
+ /** Enables dropping files from the desktop onto the composer. */
28
+ onFilesDrop?: (files: File[]) => void;
29
+ dropLabel?: string;
24
30
  /** Extra content in the attachment area, e.g. an upload-error banner. */
25
31
  attachmentSlot?: ReactNode;
26
32
  toolbar?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"CommentInputNext.d.ts","sourceRoot":"","sources":["../../../src/components/CommentInputNext/CommentInputNext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAMV,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAIrF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACtC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/D,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9D,yEAAyE;IACzE,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,eAAO,MAAM,YAAY,8GA6KxB,CAAC"}
1
+ {"version":3,"file":"CommentInputNext.d.ts","sourceRoot":"","sources":["../../../src/components/CommentInputNext/CommentInputNext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAMV,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAMrF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACtC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/D,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9D,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1E,iEAAiE;IACjE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,eAAO,MAAM,YAAY,8GAmMxB,CAAC"}
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/slicedToArray";import{forwardRef as s,useState as c,useRef as i,useCallback as n,useLayoutEffect as t}from"react";import e from"classnames";import{ButtonIcon as m}from"../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as r}from"../../componentsV2/Tooltip/Tooltip.js";import{ArrowUpIcon as a}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{AttachmentPreview as l}from"../AttachmentPreview/AttachmentPreview.js";import"file-extension";import"image-extensions";import"video-extensions";import"@material-ui/core";import"../AttachmentLightbox/AttachmentLightbox.scss.js";import{jsxs as p,jsx as u,Fragment as d}from"react/jsx-runtime";import"../../clients/jsonApi/index.js";import j from"./CommentInputNext.scss.js";var I=s((function(s,I){var h=s.placeholder,v=void 0===h?"Add a comment":h,f=s.value,b=s.onChange,C=s.onSubmit,g=s.disabled,A=s.autoFocus,x=s.minRows,F=void 0===x?1:x,N=s.maxRows,y=s.field,O=s.canSubmit,R=s.bare,P=s.leading,M=s.trailing,S=s.sendTooltip,k=void 0===S?"Send":S,w=s.attachments,D=s.onAttachmentRemove,T=s.onAttachmentRetry,E=s.attachmentSlot,B=s.toolbar,G=s.footer,L=s.embedded,U=s.className,z=s.testId,K=void 0!==f,q=c(""),H=o(q,2),V=H[0],W=H[1],Y=K?f:V,Z=null!=N?N:R?12:8,J=i(null),Q=n((function(o){if(J.current=o,o){var s=o;s.style.height="auto";var c=20*Z;s.style.height="".concat(Math.min(s.scrollHeight,c),"px"),s.style.overflowY=s.scrollHeight>c?"auto":"hidden"}}),[Z]);t((function(){y||Q(J.current)}),[Y,y,Q]);var X=(null!=O?O:!!Y.trim())&&!g,$=function(){X&&(null==C||C(Y.trim()),K||y||W(""))},_=null!=y?y:u("textarea",{ref:Q,className:j.input,rows:F,placeholder:v,value:Y,disabled:g,autoFocus:A,onChange:function(o){var s;s=o.target.value,K||W(s),null==b||b(s),Q(o.target)},onKeyDown:function(o){"Enter"!==o.key||o.shiftKey||(o.preventDefault(),$())}}),oo=null!=M?M:u(r,{title:k,children:u("span",{className:j.send,children:u(m,{size:R?"xs":"small",type:"primary",disabled:!X,onClick:$,testId:"comment-input-send",children:u(a,{})})})}),so=((null==w?void 0:w.length)||E)&&p("div",{className:j.attachment,children:[null!=w&&w.length?u(l,{items:w,onRemove:D,onRetry:T}):null,E]});return R?u("div",{ref:I,"data-testid":z,className:e(j.rootBare,U),children:p("div",{className:j.fieldRow,children:[P&&u("div",{className:j.leading,children:P}),p("div",{className:e(j.field,!!so&&j.fieldExpanded,g&&j.fieldDisabled),children:[p("div",{className:j.fieldMain,children:[_,so]}),B&&u("div",{className:j.bareToolbar,children:B}),oo]})]})}):p("div",{ref:I,"data-testid":z,className:e(j.root,L&&j.rootEmbedded,U),children:[p("div",{className:j.inputPanel,children:[_,so,p("div",{className:j.toolbarRow,children:[u("div",{className:j.toolbar,children:B}),oo]})]}),G&&p(d,{children:[u("div",{className:j.divider}),u("div",{className:j.metaShare,children:G})]})]})}));export{I as CommentInput};
1
+ import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{forwardRef as i,useState as c,useRef as n,useCallback as t,useLayoutEffect as e}from"react";import r from"classnames";import{ButtonIcon as m}from"../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as a}from"../../componentsV2/Tooltip/Tooltip.js";import{ArrowUpIcon as l}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{AttachmentPreview as p}from"../AttachmentPreview/AttachmentPreview.js";import"../../componentsV2/FileIcon/FileIcon.js";import"@material-ui/core";import{jsxs as u,jsx as d,Fragment as j}from"react/jsx-runtime";import"../AttachmentPreview/AttachmentPreview.scss.js";import"../../utils/main.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../clients/jsonApi/index.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import{useFileDrop as I}from"./useFileDrop.js";import h from"./CommentInputNext.scss.js";function v(o,s){var i=Object.keys(o);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(o);s&&(c=c.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),i.push.apply(i,c)}return i}function b(s){for(var i=1;i<arguments.length;i++){var c=null!=arguments[i]?arguments[i]:{};i%2?v(Object(c),!0).forEach((function(i){o(s,i,c[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(c)):v(Object(c)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(c,o))}))}return s}var f=i((function(o,i){var v=o.placeholder,f=void 0===v?"Add a comment":v,g=o.value,O=o.onChange,y=o.onSubmit,C=o.onCancel,P=o.disabled,F=o.autoFocus,A=o.minRows,N=void 0===A?1:A,D=o.maxRows,w=o.field,x=o.canSubmit,R=o.bare,S=o.leading,k=o.trailing,E=o.sendTooltip,M=void 0===E?"Send":E,T=o.attachments,B=o.onAttachmentRemove,G=o.onAttachmentRetry,U=o.onAttachmentReorder,z=o.onFilesDrop,H=o.dropLabel,K=void 0===H?"Drop files here":H,L=o.attachmentSlot,V=o.toolbar,q=o.footer,W=o.embedded,Y=o.className,Z=o.testId,J=I(P?void 0:z),Q=J.isDragging,X=J.dropHandlers,$=Q&&d("div",{className:h.dropOverlay,children:K}),_=void 0!==g,oo=c(""),so=s(oo,2),io=so[0],co=so[1],no=_?g:io,to=null!=D?D:R?12:8,eo=n(null),ro=t((function(o){if(eo.current=o,o){var s=o;s.style.height="auto";var i=20*to;s.style.height="".concat(Math.min(s.scrollHeight,i),"px"),s.style.overflowY=s.scrollHeight>i?"auto":"hidden"}}),[to]);e((function(){w||ro(eo.current)}),[no,w,ro]);var mo=(null!=x?x:!!no.trim())&&!P,ao=function(){mo&&(null==y||y(no.trim()),_||w||co(""))},lo=null!=w?w:d("textarea",{ref:ro,className:h.input,rows:N,placeholder:f,value:no,disabled:P,autoFocus:F,onChange:function(o){var s;s=o.target.value,_||co(s),null==O||O(s),ro(o.target)},onKeyDown:function(o){if("Escape"===o.key&&C)return o.preventDefault(),void C();"Enter"!==o.key||o.shiftKey||(o.preventDefault(),ao())}}),po=null!=k?k:d(a,{title:M,children:d("span",{className:h.send,children:d(m,{size:R?"xs":"small",type:"primary",disabled:!mo,onClick:ao,testId:"comment-input-send",children:d(l,{})})})}),uo=((null==T?void 0:T.length)||L)&&u("div",{className:h.attachment,children:[null!=T&&T.length?d(p,{items:T,onRemove:B,onRetry:G,onReorder:U}):null,L]});return u("div",R?b(b({ref:i,"data-testid":Z,className:r(h.rootBare,Y)},X),{},{children:[$,u("div",{className:h.fieldRow,children:[S&&d("div",{className:h.leading,children:S}),u("div",{className:r(h.field,!!uo&&h.fieldExpanded,P&&h.fieldDisabled),children:[u("div",{className:h.fieldMain,children:[lo,uo]}),V&&d("div",{className:h.bareToolbar,children:V}),po]})]})]}):b(b({ref:i,"data-testid":Z,className:r(h.root,W&&h.rootEmbedded,Y)},X),{},{children:[$,u("div",{className:h.inputPanel,children:[lo,uo,u("div",{className:h.toolbarRow,children:[d("div",{className:h.toolbar,children:V}),po]})]}),q&&u(j,{children:[d("div",{className:h.divider}),d("div",{className:h.metaShare,children:q})]})]}))}));export{f as CommentInput};
2
2
  //# sourceMappingURL=CommentInputNext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentInputNext.js","sources":["../../../src/components/CommentInputNext/CommentInputNext.tsx"],"sourcesContent":["import {\n forwardRef,\n KeyboardEvent,\n ReactNode,\n useState,\n useCallback,\n useRef,\n useLayoutEffect,\n ChangeEvent,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { ButtonIcon } from '../../componentsV2/ButtonIcon';\nimport { Tooltip } from '../../componentsV2/Tooltip';\nimport { ArrowUpIcon } from '../../icons';\nimport { AttachmentPreview } from '../AttachmentPreview';\nimport { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport styles from './CommentInputNext.scss';\n\nexport type CommentInputProps = {\n placeholder?: string;\n value?: string;\n onChange?: (value: string) => void;\n onSubmit?: (value: string) => void;\n disabled?: boolean;\n autoFocus?: boolean;\n minRows?: number;\n maxRows?: number;\n\n /** Editable control rendered in place of the built-in textarea. */\n field?: ReactNode;\n canSubmit?: boolean;\n /** Drop the outer surface so the field sits flush, for the in-card reply input. */\n bare?: boolean;\n\n leading?: ReactNode;\n /** Replaces the default send button. */\n trailing?: ReactNode;\n sendTooltip?: string;\n\n attachments?: AttachmentPreviewItem[];\n onAttachmentRemove?: (id: AttachmentPreviewItem['id']) => void;\n onAttachmentRetry?: (id: AttachmentPreviewItem['id']) => void;\n /** Extra content in the attachment area, e.g. an upload-error banner. */\n attachmentSlot?: ReactNode;\n toolbar?: ReactNode;\n footer?: ReactNode;\n /** Render flush inside a host surface: no background, full-width divider. */\n embedded?: boolean;\n\n className?: string;\n testId?: string;\n};\n\nconst LINE_HEIGHT_PX = 20;\nconst DEFAULT_MAX_ROWS = 8;\nconst BARE_MAX_ROWS = 12;\n\nexport const CommentInput = forwardRef<HTMLDivElement, CommentInputProps>(\n (\n {\n placeholder = 'Add a comment',\n value,\n onChange,\n onSubmit,\n disabled,\n autoFocus,\n minRows = 1,\n maxRows,\n field,\n canSubmit,\n bare,\n leading,\n trailing,\n sendTooltip = 'Send',\n attachments,\n onAttachmentRemove,\n onAttachmentRetry,\n attachmentSlot,\n toolbar,\n footer,\n embedded,\n className,\n testId,\n },\n ref\n ) => {\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState('');\n const text = isControlled ? value : internalValue;\n\n // The bare reply field has no toolbar row, so text may fill the whole box.\n const rowsCap = maxRows ?? (bare ? BARE_MAX_ROWS : DEFAULT_MAX_ROWS);\n\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n const resize = useCallback(\n (el: HTMLTextAreaElement | null) => {\n textareaRef.current = el;\n if (!el) return;\n const node = el;\n node.style.height = 'auto';\n const maxHeight = rowsCap * LINE_HEIGHT_PX;\n node.style.height = `${Math.min(node.scrollHeight, maxHeight)}px`;\n node.style.overflowY = node.scrollHeight > maxHeight ? 'auto' : 'hidden';\n },\n [rowsCap]\n );\n\n // The ref callback won't fire for a prop-driven value change.\n useLayoutEffect(() => {\n if (!field) resize(textareaRef.current);\n }, [text, field, resize]);\n\n const setText = (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n };\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n setText(event.target.value);\n resize(event.target);\n };\n\n const canSend = (canSubmit ?? !!text.trim()) && !disabled;\n\n const submit = () => {\n if (!canSend) return;\n onSubmit?.(text.trim());\n if (!isControlled && !field) setInternalValue('');\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n submit();\n }\n };\n\n const editor = field ?? (\n <textarea\n ref={resize}\n className={styles.input}\n rows={minRows}\n placeholder={placeholder}\n value={text}\n disabled={disabled}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n );\n\n const sendButton = trailing ?? (\n // A disabled button fires no events, so the tooltip needs its own target.\n <Tooltip title={sendTooltip}>\n <span className={styles.send}>\n <ButtonIcon\n size={bare ? 'xs' : 'small'}\n type=\"primary\"\n disabled={!canSend}\n onClick={submit}\n testId=\"comment-input-send\"\n >\n <ArrowUpIcon />\n </ButtonIcon>\n </span>\n </Tooltip>\n );\n\n const attachmentArea = (attachments?.length || attachmentSlot) && (\n <div className={styles.attachment}>\n {attachments?.length ? (\n <AttachmentPreview\n items={attachments}\n onRemove={onAttachmentRemove}\n onRetry={onAttachmentRetry}\n />\n ) : null}\n {attachmentSlot}\n </div>\n );\n\n if (bare) {\n return (\n <div ref={ref} data-testid={testId} className={classNames(styles.rootBare, className)}>\n <div className={styles.fieldRow}>\n {leading && <div className={styles.leading}>{leading}</div>}\n <div\n className={classNames(\n styles.field,\n !!attachmentArea && styles.fieldExpanded,\n disabled && styles.fieldDisabled\n )}\n >\n <div className={styles.fieldMain}>\n {editor}\n {attachmentArea}\n </div>\n {toolbar && <div className={styles.bareToolbar}>{toolbar}</div>}\n {sendButton}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={classNames(styles.root, embedded && styles.rootEmbedded, className)}\n >\n <div className={styles.inputPanel}>\n {editor}\n {attachmentArea}\n <div className={styles.toolbarRow}>\n <div className={styles.toolbar}>{toolbar}</div>\n {sendButton}\n </div>\n </div>\n\n {footer && (\n <>\n <div className={styles.divider} />\n <div className={styles.metaShare}>{footer}</div>\n </>\n )}\n </div>\n );\n }\n);\n"],"names":["CommentInput","forwardRef","_ref","ref","_ref$placeholder","placeholder","value","onChange","onSubmit","disabled","autoFocus","_ref$minRows","minRows","maxRows","field","canSubmit","bare","leading","trailing","_ref$sendTooltip","sendTooltip","attachments","onAttachmentRemove","onAttachmentRetry","attachmentSlot","toolbar","footer","embedded","className","testId","isControlled","undefined","useState","_useState2","_slicedToArray","_useState","internalValue","setInternalValue","text","rowsCap","textareaRef","useRef","resize","useCallback","el","current","node","style","height","maxHeight","Math","min","scrollHeight","overflowY","useLayoutEffect","canSend","trim","submit","editor","_jsx","styles","input","rows","event","next","target","onKeyDown","key","shiftKey","preventDefault","sendButton","Tooltip","title","children","send","ButtonIcon","size","type","onClick","ArrowUpIcon","attachmentArea","length","_jsxs","attachment","AttachmentPreview","items","onRemove","onRetry","classNames","rootBare","fieldRow","fieldExpanded","fieldDisabled","fieldMain","bareToolbar","root","rootEmbedded","inputPanel","toolbarRow","_Fragment","divider","metaShare"],"mappings":"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"}
1
+ {"version":3,"file":"CommentInputNext.js","sources":["../../../src/components/CommentInputNext/CommentInputNext.tsx"],"sourcesContent":["import {\n forwardRef,\n KeyboardEvent,\n ReactNode,\n useState,\n useCallback,\n useRef,\n useLayoutEffect,\n ChangeEvent,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { ButtonIcon } from '../../componentsV2/ButtonIcon';\nimport { Tooltip } from '../../componentsV2/Tooltip';\nimport { ArrowUpIcon } from '../../icons';\nimport { AttachmentPreview } from '../AttachmentPreview';\nimport { AttachmentPreviewItem } from '../AttachmentPreview/AttachmentPreview.types';\n\nimport { useFileDrop } from './useFileDrop';\n\nimport styles from './CommentInputNext.scss';\n\nexport type CommentInputProps = {\n placeholder?: string;\n value?: string;\n onChange?: (value: string) => void;\n onSubmit?: (value: string) => void;\n onCancel?: () => void;\n disabled?: boolean;\n autoFocus?: boolean;\n minRows?: number;\n maxRows?: number;\n\n /** Editable control rendered in place of the built-in textarea. */\n field?: ReactNode;\n canSubmit?: boolean;\n /** Drop the outer surface so the field sits flush, for the in-card reply input. */\n bare?: boolean;\n\n leading?: ReactNode;\n /** Replaces the default send button. */\n trailing?: ReactNode;\n sendTooltip?: string;\n\n attachments?: AttachmentPreviewItem[];\n onAttachmentRemove?: (id: AttachmentPreviewItem['id']) => void;\n onAttachmentRetry?: (id: AttachmentPreviewItem['id']) => void;\n /** Enables drag-to-reorder on the attachment strip. */\n onAttachmentReorder?: (orderedIds: AttachmentPreviewItem['id'][]) => void;\n /** Enables dropping files from the desktop onto the composer. */\n onFilesDrop?: (files: File[]) => void;\n dropLabel?: string;\n /** Extra content in the attachment area, e.g. an upload-error banner. */\n attachmentSlot?: ReactNode;\n toolbar?: ReactNode;\n footer?: ReactNode;\n /** Render flush inside a host surface: no background, full-width divider. */\n embedded?: boolean;\n\n className?: string;\n testId?: string;\n};\n\nconst LINE_HEIGHT_PX = 20;\nconst DEFAULT_MAX_ROWS = 8;\nconst BARE_MAX_ROWS = 12;\n\nexport const CommentInput = forwardRef<HTMLDivElement, CommentInputProps>(\n (\n {\n placeholder = 'Add a comment',\n value,\n onChange,\n onSubmit,\n onCancel,\n disabled,\n autoFocus,\n minRows = 1,\n maxRows,\n field,\n canSubmit,\n bare,\n leading,\n trailing,\n sendTooltip = 'Send',\n attachments,\n onAttachmentRemove,\n onAttachmentRetry,\n onAttachmentReorder,\n onFilesDrop,\n dropLabel = 'Drop files here',\n attachmentSlot,\n toolbar,\n footer,\n embedded,\n className,\n testId,\n },\n ref\n ) => {\n const { isDragging, dropHandlers } = useFileDrop(disabled ? undefined : onFilesDrop);\n const dropOverlay = isDragging && <div className={styles.dropOverlay}>{dropLabel}</div>;\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState('');\n const text = isControlled ? value : internalValue;\n\n // The bare reply field has no toolbar row, so text may fill the whole box.\n const rowsCap = maxRows ?? (bare ? BARE_MAX_ROWS : DEFAULT_MAX_ROWS);\n\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n const resize = useCallback(\n (el: HTMLTextAreaElement | null) => {\n textareaRef.current = el;\n if (!el) return;\n const node = el;\n node.style.height = 'auto';\n const maxHeight = rowsCap * LINE_HEIGHT_PX;\n node.style.height = `${Math.min(node.scrollHeight, maxHeight)}px`;\n node.style.overflowY = node.scrollHeight > maxHeight ? 'auto' : 'hidden';\n },\n [rowsCap]\n );\n\n // The ref callback won't fire for a prop-driven value change.\n useLayoutEffect(() => {\n if (!field) resize(textareaRef.current);\n }, [text, field, resize]);\n\n const setText = (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n };\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n setText(event.target.value);\n resize(event.target);\n };\n\n const canSend = (canSubmit ?? !!text.trim()) && !disabled;\n\n const submit = () => {\n if (!canSend) return;\n onSubmit?.(text.trim());\n if (!isControlled && !field) setInternalValue('');\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (event.key === 'Escape' && onCancel) {\n event.preventDefault();\n onCancel();\n return;\n }\n\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n submit();\n }\n };\n\n const editor = field ?? (\n <textarea\n ref={resize}\n className={styles.input}\n rows={minRows}\n placeholder={placeholder}\n value={text}\n disabled={disabled}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n );\n\n const sendButton = trailing ?? (\n // A disabled button fires no events, so the tooltip needs its own target.\n <Tooltip title={sendTooltip}>\n <span className={styles.send}>\n <ButtonIcon\n size={bare ? 'xs' : 'small'}\n type=\"primary\"\n disabled={!canSend}\n onClick={submit}\n testId=\"comment-input-send\"\n >\n <ArrowUpIcon />\n </ButtonIcon>\n </span>\n </Tooltip>\n );\n\n const attachmentArea = (attachments?.length || attachmentSlot) && (\n <div className={styles.attachment}>\n {attachments?.length ? (\n <AttachmentPreview\n items={attachments}\n onRemove={onAttachmentRemove}\n onRetry={onAttachmentRetry}\n onReorder={onAttachmentReorder}\n />\n ) : null}\n {attachmentSlot}\n </div>\n );\n\n if (bare) {\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={classNames(styles.rootBare, className)}\n {...dropHandlers}\n >\n {dropOverlay}\n <div className={styles.fieldRow}>\n {leading && <div className={styles.leading}>{leading}</div>}\n <div\n className={classNames(\n styles.field,\n !!attachmentArea && styles.fieldExpanded,\n disabled && styles.fieldDisabled\n )}\n >\n <div className={styles.fieldMain}>\n {editor}\n {attachmentArea}\n </div>\n {toolbar && <div className={styles.bareToolbar}>{toolbar}</div>}\n {sendButton}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={classNames(styles.root, embedded && styles.rootEmbedded, className)}\n {...dropHandlers}\n >\n {dropOverlay}\n <div className={styles.inputPanel}>\n {editor}\n {attachmentArea}\n <div className={styles.toolbarRow}>\n <div className={styles.toolbar}>{toolbar}</div>\n {sendButton}\n </div>\n </div>\n\n {footer && (\n <>\n <div className={styles.divider} />\n <div className={styles.metaShare}>{footer}</div>\n </>\n )}\n </div>\n );\n }\n);\n"],"names":["CommentInput","forwardRef","_ref","ref","_ref$placeholder","placeholder","value","onChange","onSubmit","onCancel","disabled","autoFocus","_ref$minRows","minRows","maxRows","field","canSubmit","bare","leading","trailing","_ref$sendTooltip","sendTooltip","attachments","onAttachmentRemove","onAttachmentRetry","onAttachmentReorder","onFilesDrop","_ref$dropLabel","dropLabel","attachmentSlot","toolbar","footer","embedded","className","testId","_useFileDrop","useFileDrop","undefined","isDragging","dropHandlers","dropOverlay","_jsx","styles","children","isControlled","useState","_useState2","_slicedToArray","_useState","internalValue","setInternalValue","text","rowsCap","textareaRef","useRef","resize","useCallback","el","current","node","style","height","maxHeight","Math","min","scrollHeight","overflowY","useLayoutEffect","canSend","trim","submit","editor","input","rows","event","next","target","onKeyDown","key","preventDefault","shiftKey","sendButton","Tooltip","title","send","ButtonIcon","size","type","onClick","ArrowUpIcon","attachmentArea","length","_jsxs","attachment","AttachmentPreview","items","onRemove","onRetry","onReorder","_objectSpread","classNames","rootBare","fieldRow","fieldExpanded","fieldDisabled","fieldMain","bareToolbar","root","rootEmbedded","inputPanel","toolbarRow","_Fragment","divider","metaShare"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from'./../../ext-esm/style-inject/dist/style-inject.es.js';var t={spacing:"8",root:"CommentInputNext_root__5uxKl",inputPanel:"CommentInputNext_inputPanel__4KOFc",rootEmbedded:"CommentInputNext_rootEmbedded__-LyQl",toolbarRow:"CommentInputNext_toolbarRow__L8xXu",divider:"CommentInputNext_divider__LWp-3",metaShare:"CommentInputNext_metaShare__yJ8GZ",rootBare:"CommentInputNext_rootBare__lxyYY",fieldRow:"CommentInputNext_fieldRow__Rqcbr",leading:"CommentInputNext_leading__yDBbV",field:"CommentInputNext_field__OpnOp",fieldExpanded:"CommentInputNext_fieldExpanded__w1omA",fieldDisabled:"CommentInputNext_fieldDisabled__g3aIT",bareToolbar:"CommentInputNext_bareToolbar__nFQP-",fieldMain:"CommentInputNext_fieldMain__Rs8-Y",attachment:"CommentInputNext_attachment__2EDgL",input:"CommentInputNext_input__w6b1c",toolbar:"CommentInputNext_toolbar__Zs2OG",send:"CommentInputNext_send__p248I"};e(".CommentInputNext_root__5uxKl{background:var(--palette-background-b-6);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.CommentInputNext_inputPanel__4KOFc{display:flex;flex-direction:column;gap:8px;padding:12px 12px 8px}.CommentInputNext_rootEmbedded__-LyQl{background:transparent;border-radius:0;overflow:visible}.CommentInputNext_toolbarRow__L8xXu{align-items:center;display:flex;justify-content:space-between;width:100%}.CommentInputNext_divider__LWp-3{background:var(--palette-background-b-4);height:1px}.CommentInputNext_metaShare__yJ8GZ{color:var(--palette-primary-text-6);padding:8px 12px}.CommentInputNext_metaShare__yJ8GZ,.CommentInputNext_rootBare__lxyYY{display:flex;flex-direction:column;gap:8px}.CommentInputNext_fieldRow__Rqcbr{align-items:flex-start;display:flex;gap:8px}.CommentInputNext_leading__yDBbV{flex-shrink:0}.CommentInputNext_field__OpnOp{align-items:flex-end;background:rgb(from var(--palette-primary-text-1) r g b/.04);border:1px solid rgb(from var(--palette-primary-text-1) r g b/.04);border-radius:8px;display:flex;flex:1 0 0;gap:8px;max-height:256px;min-height:36px;min-width:0;overflow:hidden;padding:6px 8px}.CommentInputNext_field__OpnOp:focus-within{border-color:var(--palette-primary-main)}.CommentInputNext_fieldExpanded__w1omA{max-height:none;overflow:visible}.CommentInputNext_fieldDisabled__g3aIT{opacity:.6}.CommentInputNext_bareToolbar__nFQP-{align-items:center;color:var(--palette-primary-text-6);display:flex;flex-shrink:0}.CommentInputNext_fieldMain__Rs8-Y{flex:1 0 0;min-width:0}.CommentInputNext_attachment__2EDgL,.CommentInputNext_fieldMain__Rs8-Y{display:flex;flex-direction:column;gap:8px}.CommentInputNext_input__w6b1c{background:transparent;border:none;color:var(--palette-primary-text-1);font:inherit;font-size:14px;line-height:20px;outline:none;resize:none;width:100%}.CommentInputNext_input__w6b1c::placeholder{color:var(--palette-primary-text-9)}.CommentInputNext_input__w6b1c:disabled{cursor:not-allowed}.CommentInputNext_toolbar__Zs2OG{align-items:center;color:var(--palette-primary-text-6);display:flex;gap:4px;margin-left:-4px}.CommentInputNext_send__p248I{flex-shrink:0}");export{t as default};
1
+ import e from'./../../ext-esm/style-inject/dist/style-inject.es.js';var t={spacing:"8",root:"CommentInputNext_root__5uxKl",dropOverlay:"CommentInputNext_dropOverlay__E5Riv",inputPanel:"CommentInputNext_inputPanel__4KOFc",rootEmbedded:"CommentInputNext_rootEmbedded__-LyQl",toolbarRow:"CommentInputNext_toolbarRow__L8xXu",divider:"CommentInputNext_divider__LWp-3",metaShare:"CommentInputNext_metaShare__yJ8GZ",rootBare:"CommentInputNext_rootBare__lxyYY",fieldRow:"CommentInputNext_fieldRow__Rqcbr",leading:"CommentInputNext_leading__yDBbV",field:"CommentInputNext_field__OpnOp",fieldExpanded:"CommentInputNext_fieldExpanded__w1omA",fieldDisabled:"CommentInputNext_fieldDisabled__g3aIT",bareToolbar:"CommentInputNext_bareToolbar__nFQP-",fieldMain:"CommentInputNext_fieldMain__Rs8-Y",attachment:"CommentInputNext_attachment__2EDgL",input:"CommentInputNext_input__w6b1c",toolbar:"CommentInputNext_toolbar__Zs2OG",send:"CommentInputNext_send__p248I"};e(".CommentInputNext_root__5uxKl{background:var(--palette-background-b-6);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;position:relative}.CommentInputNext_dropOverlay__E5Riv{align-items:center;background:rgb(from var(--palette-primary-main) r g b/.1);border:1px dashed var(--palette-primary-main);border-radius:inherit;color:var(--palette-primary-main);display:flex;font-size:14px;inset:0;justify-content:center;line-height:20px;pointer-events:none;position:absolute;z-index:5}.CommentInputNext_inputPanel__4KOFc{display:flex;flex-direction:column;gap:8px;padding:12px 12px 8px}.CommentInputNext_rootEmbedded__-LyQl{background:transparent;border-radius:0;overflow:visible}.CommentInputNext_toolbarRow__L8xXu{align-items:center;display:flex;justify-content:space-between;width:100%}.CommentInputNext_divider__LWp-3{background:var(--palette-background-b-4);height:1px}.CommentInputNext_metaShare__yJ8GZ{color:var(--palette-primary-text-6);display:flex;flex-direction:column;gap:8px;padding:8px 12px}.CommentInputNext_rootBare__lxyYY{display:flex;flex-direction:column;gap:8px;position:relative}.CommentInputNext_fieldRow__Rqcbr{align-items:flex-start;display:flex;gap:8px}.CommentInputNext_leading__yDBbV{flex-shrink:0}.CommentInputNext_field__OpnOp{align-items:flex-end;background:rgb(from var(--palette-primary-text-1) r g b/.04);border:1px solid rgb(from var(--palette-primary-text-1) r g b/.04);border-radius:8px;display:flex;flex:1 0 0;gap:8px;max-height:256px;min-height:36px;min-width:0;overflow:hidden;padding:6px 8px}.CommentInputNext_field__OpnOp:focus-within{border-color:var(--palette-primary-main)}.CommentInputNext_fieldExpanded__w1omA{max-height:none;overflow:visible}.CommentInputNext_fieldDisabled__g3aIT{opacity:.6}.CommentInputNext_bareToolbar__nFQP-{align-items:center;color:var(--palette-primary-text-6);display:flex;flex-shrink:0}.CommentInputNext_fieldMain__Rs8-Y{flex:1 0 0;min-width:0}.CommentInputNext_attachment__2EDgL,.CommentInputNext_fieldMain__Rs8-Y{display:flex;flex-direction:column;gap:8px}.CommentInputNext_input__w6b1c{background:transparent;border:none;color:var(--palette-primary-text-1);font:inherit;font-size:14px;line-height:20px;outline:none;resize:none;width:100%}.CommentInputNext_input__w6b1c::placeholder{color:var(--palette-primary-text-9)}.CommentInputNext_input__w6b1c:disabled{cursor:not-allowed}.CommentInputNext_toolbar__Zs2OG{align-items:center;color:var(--palette-primary-text-6);display:flex;gap:4px;margin-left:-4px}.CommentInputNext_send__p248I{flex-shrink:0}");export{t as default};
2
2
  //# sourceMappingURL=CommentInputNext.scss.js.map
@@ -0,0 +1,17 @@
1
+ import { DragEvent } from 'react';
2
+ type DropHandlers = {
3
+ onDragEnter: (event: DragEvent) => void;
4
+ onDragOver: (event: DragEvent) => void;
5
+ onDragLeave: (event: DragEvent) => void;
6
+ onDrop: (event: DragEvent) => void;
7
+ };
8
+ /**
9
+ * Drop-files-from-the-desktop for a composer surface. Returns no handlers when `onFiles`
10
+ * is absent, so a caller that can't accept files never intercepts the drag.
11
+ */
12
+ export declare const useFileDrop: (onFiles?: (files: File[]) => void) => {
13
+ isDragging: boolean;
14
+ dropHandlers: DropHandlers | undefined;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=useFileDrop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileDrop.d.ts","sourceRoot":"","sources":["../../../src/components/CommentInputNext/useFileDrop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0C,MAAM,OAAO,CAAC;AAE1E,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,WAAW,aAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI;;;CA+C5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import r from"@babel/runtime/helpers/slicedToArray";import{useState as n,useRef as e,useCallback as t,useMemo as o}from"react";var u=function(r){var n,e;return null===(n=r.dataTransfer)||void 0===n||null===(e=n.types)||void 0===e?void 0:e.includes("Files")},a=function(a){var i=n(!1),l=r(i,2),f=l[0],v=l[1],c=e(0),d=t((function(r){u(r)&&(r.preventDefault(),c.current+=1,v(!0))}),[]),p=t((function(r){u(r)&&r.preventDefault()}),[]),s=t((function(r){u(r)&&(r.preventDefault(),c.current-=1,c.current<=0&&(c.current=0,v(!1)))}),[]),D=t((function(r){var n,e;if(u(r)){r.preventDefault(),c.current=0,v(!1);var t=Array.from(null!==(n=null===(e=r.dataTransfer)||void 0===e?void 0:e.files)&&void 0!==n?n:[]);t.length&&(null==a||a(t))}}),[a]),g=o((function(){return a?{onDragEnter:d,onDragOver:p,onDragLeave:s,onDrop:D}:void 0}),[a,d,p,s,D]);return{isDragging:f&&!!a,dropHandlers:g}};export{a as useFileDrop};
2
+ //# sourceMappingURL=useFileDrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileDrop.js","sources":["../../../src/components/CommentInputNext/useFileDrop.ts"],"sourcesContent":["import { DragEvent, useCallback, useMemo, useRef, useState } from 'react';\n\ntype DropHandlers = {\n onDragEnter: (event: DragEvent) => void;\n onDragOver: (event: DragEvent) => void;\n onDragLeave: (event: DragEvent) => void;\n onDrop: (event: DragEvent) => void;\n};\n\nconst hasFiles = (event: DragEvent) => event.dataTransfer?.types?.includes('Files');\n\n/**\n * Drop-files-from-the-desktop for a composer surface. Returns no handlers when `onFiles`\n * is absent, so a caller that can't accept files never intercepts the drag.\n */\nexport const useFileDrop = (onFiles?: (files: File[]) => void) => {\n const [isDragging, setIsDragging] = useState(false);\n // dragenter/leave fire again for every nested child crossed, so count instead of toggling.\n const depth = useRef(0);\n\n const onDragEnter = useCallback((event: DragEvent) => {\n if (!hasFiles(event)) return;\n event.preventDefault();\n depth.current += 1;\n setIsDragging(true);\n }, []);\n\n const onDragOver = useCallback((event: DragEvent) => {\n if (!hasFiles(event)) return;\n // Without this the browser navigates to the dropped file instead of firing onDrop.\n event.preventDefault();\n }, []);\n\n const onDragLeave = useCallback((event: DragEvent) => {\n if (!hasFiles(event)) return;\n event.preventDefault();\n depth.current -= 1;\n if (depth.current <= 0) {\n depth.current = 0;\n setIsDragging(false);\n }\n }, []);\n\n const onDrop = useCallback(\n (event: DragEvent) => {\n if (!hasFiles(event)) return;\n event.preventDefault();\n depth.current = 0;\n setIsDragging(false);\n\n const files = Array.from(event.dataTransfer?.files ?? []);\n if (files.length) onFiles?.(files);\n },\n [onFiles]\n );\n\n const dropHandlers: DropHandlers | undefined = useMemo(\n () => (onFiles ? { onDragEnter, onDragOver, onDragLeave, onDrop } : undefined),\n [onFiles, onDragEnter, onDragOver, onDragLeave, onDrop]\n );\n\n return { isDragging: isDragging && !!onFiles, dropHandlers };\n};\n"],"names":["hasFiles","event","_event$dataTransfer","_event$dataTransfer$t","dataTransfer","types","includes","useFileDrop","onFiles","useState","_useState2","_slicedToArray","_useState","isDragging","setIsDragging","depth","useRef","onDragEnter","useCallback","preventDefault","current","onDragOver","onDragLeave","onDrop","_event$dataTransfer$f","_event$dataTransfer2","files","Array","from","length","dropHandlers","useMemo","undefined"],"mappings":"+HASA,IAAMA,EAAW,SAACC,GAAgB,IAAAC,EAAAC,EAAA,OAAK,QAAAF,EAAAA,EAAMG,oBAAN,IAAAF,GAAyB,QAAzBC,EAAAD,EAAoBG,aAAK,IAAAF,OAAzB,EAAAA,EAA2BG,SAAS,QAAQ,EAMtEC,EAAc,SAACC,GAC1B,IAAoCC,EAAAA,GAAS,GAAMC,EAAAC,EAAAC,EAAA,GAA5CC,EAAUH,EAAA,GAAEI,EAAaJ,EAAA,GAE1BK,EAAQC,EAAO,GAEfC,EAAcC,GAAY,SAACjB,GAC1BD,EAASC,KACdA,EAAMkB,iBACNJ,EAAMK,SAAW,EACjBN,GAAc,GACf,GAAE,IAEGO,EAAaH,GAAY,SAACjB,GACzBD,EAASC,IAEdA,EAAMkB,gBACP,GAAE,IAEGG,EAAcJ,GAAY,SAACjB,GAC1BD,EAASC,KACdA,EAAMkB,iBACNJ,EAAMK,SAAW,EACbL,EAAMK,SAAW,IACnBL,EAAMK,QAAU,EAChBN,GAAc,IAEjB,GAAE,IAEGS,EAASL,GACb,SAACjB,GAAqB,IAAAuB,EAAAC,EACpB,GAAKzB,EAASC,GAAd,CACAA,EAAMkB,iBACNJ,EAAMK,QAAU,EAChBN,GAAc,GAEd,IAAMY,EAAQC,MAAMC,KAA8B,QAAzB3B,EAAA,QAAAA,EAAAA,EAAMG,oBAAN,IAAAqB,OAAA,EAAAA,EAAoBC,aAAK,IAAAF,EAAAA,EAAI,IAClDE,EAAMG,SAAQrB,SAAAA,EAAUkB,GANN,CAOxB,GACA,CAAClB,IAGGsB,EAAyCC,GAC7C,WAAA,OAAOvB,EAAU,CAAES,YAAAA,EAAaI,WAAAA,EAAYC,YAAAA,EAAaC,OAAAA,QAAWS,CAAS,GAC7E,CAACxB,EAASS,EAAaI,EAAYC,EAAaC,IAGlD,MAAO,CAAEV,WAAYA,KAAgBL,EAASsB,aAAAA,EAChD"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/helpers/slicedToArray";import{useState as t,createRef as s,useCallback as i,useEffect as n}from"react";import r from"prop-types";import p from"classnames";import{Modal as m,Typography as c,IconButton as a}from"@material-ui/core";import l from"@material-ui/icons/Close";import d from"@material-ui/icons/GetApp";import{useStyles as j}from"./styles.js";import"../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"@babel/runtime/helpers/objectWithoutProperties";import"lodash";import"../Modal/CorvaModal.scss.js";import"@icon-park/react/es/all";import{jsx as u,jsxs as C}from"react/jsx-runtime";import"../../icons/IconParkProvider.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/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"../../utils/mobileDetect.js";import"../IconButton/index.js";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import"uuid";import"../IconMenu/index.js";import"../StyledMenuItem/index.js";import"../AppIcon/AppIcon.js";import"../DevCenter/AppHeader/AppHeader.js";import"../DevCenter/AppSideBar/AppSideBar.js";import"../DevCenter/AppsDataProvider/AppsDataProvider.js";import"@material-ui/icons";import"../DevCenter/AppContext.js";import"../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router-dom";import"query-string";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../utils/index.js";import"../DevCenter/DevCenterAppContainer/components/AppActions/AppActions.css.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/RemoveAppButton.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js";import"../DevCenter/DevCenterAppContainer/components/AnnotationsButton/AnnotationsButton.js";import"../../componentsV2/Text/Text.js";import"../../componentsV2/Grid/Grid.js";import"../../componentsV2/Grid/Cell.js";import"../../componentsV2/Header/Header.scss.js";import"../../componentsV2/Button/Button.js";import"../../componentsV2/ButtonIcon/ButtonIcon.js";import"../../componentsV2/Tooltip/Tooltip.scss.js";import"../../componentsV2/Popover/Popover.js";import"../../componentsV2/PopoverPanel/PopoverPanel.js";import"../../componentsV2/Radio/Radio.js";import"../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../componentsV2/Checkbox/Checkbox.js";import"@babel/runtime/helpers/toConsumableArray";import"../../componentsV2/TextInput/TextInput.js";import"../../componentsV2/TextInputNext/TextInputNext.js";import"../../componentsV2/Label/Label.js";import"../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../componentsV2/TextLink/TextLink.js";import"../../componentsV2/Chip/Chip.js";import"../../componentsV2/ChipAlert/ChipAlert.js";import"../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../componentsV2/Avatar/Avatar.js";import"../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../componentsV2/Paper/Paper.js";import"../../componentsV2/ModalWindow/ModalWindow.js";import"../../componentsV2/Modal/Modal.scss.js";import"../../componentsV2/Menu/Menu.js";import"../../componentsV2/utils.js";import"../../componentsV2/Hint/Hint.scss.js";import"../../componentsV2/Counter/Counter.js";import"../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../componentsV2/TemplatesControl/utils.js";import"../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../componentsV2/TemplatesControl/Store/utils.js";import"../../componentsV2/TemplatesControl/types.js";import"../../clients/jsonApi/index.js";import"../../permissions/PermissionsContext.js";import"../../permissions/constants/index.js";import"../../permissions/withPermissionsHOC.js";import"../../permissions/ProvidePermissions.js";import"../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../componentsV2/Switch/Switch.js";import"../../componentsV2/Tabs/Tabs.js";import"../../componentsV2/EmptyState/EmptyState.scss.js";import"../../componentsV2/FileIcon/FileIcon.js";import"../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../componentsV2/FilesLoader/FilesLoader.scss.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../componentsV2/Skeleton/Skeleton.scss.js";import"../../utils/main.js";import"../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../componentsV2/Stepper/Step/Step.scss.js";import"../../componentsV2/Stepper/Stepper.scss.js";import"../../componentsV2/ButtonLive/ButtonLive.js";import"../../componentsV2/ButtonText/ButtonText.js";import"../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../componentsV2/Accordion/Accordion.scss.js";import"../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../componentsV2/BadgeComment/BadgeComment.js";import"../../componentsV2/AppContainer/AppContainer.js";import"../../componentsV2/AppContainer/AppContainer.constants.js";import"../../componentsV2/AppFooter/AppFooter.js";import"immutable";import"../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../componentsV2/AppHeader/AppHeader.constants.js";import"../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../componentsV2/AppHeader/AppAssets/utils.js";import"../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../PadModeSelect/PadModeSelect.js";import"../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../constants/streamSourceType.js";import"../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"moment";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../utils/getSingleAsset.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../clients/subscriptions.v1.js";import"../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../utils/env.js";import"../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../clients/api/apiCore.js";import"../../clients/constants.js";import"../../clients/sso/auth0.js";import"../../clients/sso/oauth2.js";import"../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../componentsV2/AppSettings/AppSettings.js";import"../../componentsV2/AppSettings/AppSettings.constants.js";import"../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../componentsV2/AppHeader/AppHeader.scss.js";import"../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../componentsV2/Autocomplete/Autocomplete.js";import"../../componentsV2/Select/Select.js";import"../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../componentsV2/DatePicker/DatePicker.js";import"../../componentsV2/DragHandle/DragHandle.js";import"../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../componentsV2/Slider/constants.js";import"../../componentsV2/Slider/components/SliderThumb.js";import"../../componentsV2/Slider/Slider.scss.js";import"../../componentsV2/SliderAdvanced/SliderAdvanced.js";import"react-color";import"../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../componentsV2/ColorPicker/ColorPicker.scss.js";import"../../componentsV2/ChartHelper/ChartHelper.scss.js";import"../../componentsV2/Hotkey/Hotkey.js";import"../DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js";import"../DevCenter/DevCenterAppContainer/components/AppInfoMessage/AppInfoMessage.js";import"../DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.js";import"../DevCenter/DevCenterAppContainer/components/RestoreAppSizeButton/index.js";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.scss.js";import"../DevCenter/DevCenterAppContainer/DevCenterAppContainer.scss.js";import"../Icons/AnnotationIcon.js";import"../Annotations/components/AnnotationsList/index.js";import"../Annotations/components/LastAnnotation/index.js";import"../Annotations/AnnotationsContext.js";import"../Toaster/Toaster.js";import"../HelpCenter/HelpCenterIcon.js";import"../DevCenter/NavigationBar/NavigationBar.js";import"../DevCenter/SideBar/SideBar.js";import"../DevCenter/AppSettingsPopover/AppSettingsPopover.js";import"../DevCenter/AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js";import"../AssetEditor/index.js";import"../AssetEditorV2/index.js";import"../AppVersionsSelect/AppVersionsSelect.js";import I from"../LoadingIndicator/LoadingIndicator.js";import"../Typography.js";import"../RealTimeValuesSidebar/RealTimeSidebar.js";import"../CollapsableSidebar.js";import"../DateTimePicker/index.js";import"../DatePicker/index.js";import"../ErrorBoundary/ErrorBoundary.js";import"../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import"../SlateFormattedText/SlateFormattedText.js";import"../SlateFormattedText/RenderElements.js";import"slate";import"../EmptyState/EmptyState.js";import"../ParameterCharts/ParameterCharts.js";import"../ParameterCharts/AddEditTrack.js";import"../ChartActionsList/ChartActionsList.js";import"../CopyToClipboard/CopyToClipboard.js";import"../AssetEditor/AssetEditorAutocomplete.js";import"../AssetEditor/SingleAssetEditor.js";import"../SettingEditors/ColorEditor/style.css.js";import"../SettingEditors/DropdownEditor/index.js";import"../SwitchControl/index.js";import"../ColorPicker/ColorPicker.js";import"../Chart/components/ChartButton.js";import"../Chart/components/ChartButtons.js";import"../Chart/components/ChartWrapper.js";import"../Chart/components/AxisDropdown.js";import"../Chart/components/ChartSelect.js";import"../Chart/components/buttons/DragToZoomButton.js";import"../Chart/components/buttons/ZoomInButton.js";import"../Chart/components/buttons/ZoomOutButton.js";import"../Chart/components/buttons/PanButton.js";import"../Chart/components/buttons/ResetZoomButton.js";import"../Chart/components/buttons/HideAxesButton.js";import"../Chart/components/buttons/ChartTypeButton.js";import"../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../TruncatedText/index.js";import"../MiddleTruncatedText/MiddleTruncatedText.js";import"../RangeSlider/constants.js";import"../RangeSlider/Input.css.js";import"../RangeSlider/RangeSlider.css.js";import"../AdvancedSlider/AdvancedSlider.js";import"../Breadcrumbs/index.js";import"../VirtualizedTable/index.js";import"../EmptyView/EmptyView.js";import"../EmptyView/EmptyAppView/EmptyAppView.js";import"../Button/components/Button/index.js";import"moment-timezone";import"../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../Button/components/LiveButton/styles.js";import"../ContextMenuItem/index.js";import"../FolderMenuItem/index.js";import"../EditableItem/EditableItem/index.js";import"../EditableItem/EditableItemWithBadge/index.js";import"../Checkbox/index.js";import"../FolderMenuItemWithLinks/index.js";import"../TextField/index.js";import"../Chip/index.js";import"../Counter/index.js";import"../AnchorsList/AnchorsList.js";import"../Select/index.js";import"../Select/SelectFilterBy.js";import"../CustomSelect/index.js";import"../Tabs/Tabs.js";import"../Tabs/Tab.js";import"../ResizableTable/ResizableTable.js";import"../GradientPicker/GradientPicker.js";import"@babel/runtime/helpers/classCallCheck";import"@babel/runtime/helpers/createClass";import"@material-ui/icons/AddCircle";import"../GradientManager/GradientPreview/GradientPreview.js";import"../GradientManager/GradientSelect.styles.js";import"../GradientManager/GradientManager.styles.js";import"../Drillstring/BHASchematic.js";import"../Drillstring/BHATable/index.js";import"../Drillstring/BHAComponentIcon.js";import"../Drillstring/BHAComponentDetail/index.js";import"../Drillstring/BHATileIcon.js";import"../Drillstring/BHATile/BHATile.js";import"../Drillstring/BHAList/BHAList.js";import"../Drillstring/BHAComponentsTable/BHAComponentsTable.js";import"../Casing/CasingTable/index.js";import"../Casing/CasingComponentIcon.js";import"../Casing/CasingTileIcon.js";import"../Casing/CasingTableV2/CasingTableV2.js";import"../Casing/CasingTile/CasingTile.js";import"../DisabledSettingsMessage/DisabledSettingsMessage.js";import"../WellSummary/WellSummaryItemLabel.js";import"../WellSummary/WellSummaryItemTitle.js";import"../WellSummary/WellSummaryItemValue.js";import"../WellSummary/ActivitySummaryChart.js";import"../WellSummary/FracWirelineTimeChart.js";import"../BICOffsetPickerDialog/index.js";import"../OffsetWellButton/OffsetWellButton.js";import"../OffsetWellPickerV2/OffsetWellPickerDialog.js";import"../OffsetWellPickerV3/index.js";import"../OffsetWellChips/Chip.js";import"../OffsetWellChips/ChipsContainer.js";import"../OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/OffsetWellPickerV5WithStore.js";import"../OffsetWellMap/OffsetWellMap.js";import"@material-ui/core/Snackbar";import"../Notifications/Toast.js";import"../Notifications/Notifications.scss.js";import"../ConfirmationDialog.js";import"../TextLink/index.js";import"../Avatar/index.js";import"../Template/TemplatePopover/index.js";import"../Template/TemplateSharingDialog/index.js";import"../MenuItem/index.js";import"../MiddleTruncate/MiddleTruncate.js";import"../PinnableFilters/PinnableFilters.js";import"../HeaderLayout/HeaderLayout.js";import"../PadOffsetsPicker/PadOffsetsPicker.js";import"../PadOffsetsPicker/OffsetAssetChip.js";import"../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../PadOffsetsPicker/StagesSelector.js";import"../PadOffsetsPickerV2/PadOffsetsPickerV2.js";import"../Table/TableToolbar/TableToolbar.js";import"../Table/TableContainer/TableContainer.js";import"../Table/TableCell/TableCell.js";import"../Table/TablePagination/TablePagination.js";import"../Table/TablePaginationActions/TablePaginationActions.js";import"../Tooltip/ScrollableTooltip.js";import"../PriceInput/PriceInput.js";import"../LabelsCounter/LabelsCounter.js";import"../Stepper/Stepper.js";import"../Stepper/Step/Step.js";import"../Stepper/StepsWrapper.js";import"../Comment/CommentIcon/index.js";import"../FilesLoader/FilesLoader.js";import"../../componentsV2/FileIcon/icons/ArchiveFileIcon.js";import"../../componentsV2/FileIcon/icons/CSVFileIcon.js";import"../../componentsV2/FileIcon/icons/DocFileIcon.js";import"../../componentsV2/FileIcon/icons/EDMFileIcon.js";import"../../componentsV2/FileIcon/icons/ExcelFileIcon.js";import"../../componentsV2/FileIcon/icons/ImageFileIcon.js";import"../../componentsV2/FileIcon/icons/JsonFileIcon.js";import"../../componentsV2/FileIcon/icons/LasFileIcon.js";import"../../componentsV2/FileIcon/icons/OtherFileIcon.js";import"../../componentsV2/FileIcon/icons/PdfFileIcon.js";import"../../componentsV2/FileIcon/icons/PowerPointFileIcon.js";import"../../componentsV2/FileIcon/icons/TxtFileIcon.js";import"../../componentsV2/FileIcon/icons/UnknownFileIcon.js";import"../../componentsV2/FileIcon/icons/VideoFileIcon.js";import"../../componentsV2/FileIcon/icons/XmlFileIcon.js";import"../SearchInput/index.js";import"../FeedItem/FeedItem.js";import"../FeedItem/FeedItemEditProvider/FeedItemEditProvider.js";import"../PostInput/PostInput.js";import"../KeyboardDateTimePicker.js";import"../AddComment/Popover.js";import"../AddComment/Popup.js";import"../StageDesignVActual/ComparisonBar/ComparisonBar.js";import"../StageDesignVActual/ElementsComparison/ElementsComparison.js";import"../StageDesignVActual/ComparisonHeader.js";import"../StageDesignVActual/ComparisonRow.js";import"../EmbeddedApp/DevCenterEmbeddedApp.js";import"../EmbeddedApp/EmbeddedApp.js";import"../Autocomplete/Autocomplete.js";import"../ColorPickerPalette/ColorPickerPalette.js";import"../Search/Search.js";import"../Search/components/Listbox.js";import"../Search/components/Paper.js";import"../Search/components/RecentSearches.js";import"../Search/components/Groups.js";import"../Search/components/SelectAllListItem.js";import"../StatusBadge/index.js";import"../Attachment/index.js";import"../EmojiIconButton.js";import"../FileUploadIconButton.js";import"../FilePreview/index.js";import"../FailedFileUploading.js";import"../UserMention/index.js";import"../CommentsInfo/index.js";import"../CommentInput/index.js";import"../Comment/index.js";import"../CommentLoader.js";import"../AssetNameLabel/AssetStatusBadge.js";import"../AssetEditorV2/components/PrimaryAssetSelect.js";import"../AssetEditorV2/components/SecondaryAssetSelect.js";import"../AssetEditorV2/components/SelectItem.js";import"../AssetEditorV2/components/MultipleAssetsToggle.js";import"../AssetEditorV2/components/PrimaryAssetSelectV2.js";import"../EChartsWrapper/EChartsWrapper.js";import"../AssetsMultipleSelector/AssetsMultipleSelector.js";import"../GoogleDocsViewer/index.js";import"../NewDocumentViewer/effects/useFileContent.js";import"../NewDocumentViewer/styles.js";import"../FilesLoaderV2/styles.js";import"../FilesDropzone/styles.js";import"../FilesProcessor/styles.js";import"../Hint/styles.js";import"@babel/runtime/helpers/taggedTemplateLiteral";import"fparser";import"../Formula/useFormulaStyles.js";import"../Formula/RootXIcon.js";import"../Formula/FormulaTextEditor.js";import"../Formula/CloseSuggestion.js";import"../Formula/SuggestionsMenu.js";import"../CommentCard/CommentCard.js";import"@material-ui/icons/AlternateEmail";import"../AttachFileButton/AttachFileButton.scss.js";import"../CommentInputNext/CommentInputNext.js";import"../UserMention/utils/index.js";import"react-s3-uploader/s3upload";import"../CommentComposer/CommentMetaLine.scss.js";import"@material-ui/icons/ArrowDropDown";import"@material-ui/icons/Search";import"../CommentComposer/ChatChannelSelector.scss.js";import"../CommentComposer/ShareToChatRow.scss.js";import"../CommentComposer/CommentComposer.scss.js";import"../CommentPin/CommentPin.js";import"../FeedCard/FeedCard.js";import"../FeedItemCard/FeedItemCard.js";import"../NewCommentCursor/NewCommentCursor.js";import"../FeedItem/feedItemTypes/AlertFeedItem.js";import"../FeedItem/feedItemTypes/PostFeedItem.js";import"../FeedItem/feedItemTypes/GeosteeringFeedItem.js";import"../FeedItem/feedItemTypes/DrillingOperationalNoteFeedItem.js";import"../FeedItem/feedItemTypes/DrillingOperationSummaryFeedItem.js";import"../FeedItem/feedItemTypes/DrillingDailyCostFeedItem.js";import"../FeedItem/feedItemTypes/DocumentFeedItem.js";import"../FeedItem/feedItemTypes/DrillerMemoFeedItem.js";import"../FeedItem/feedItemTypes/NptFeedItem.js";import"../FeedItem/feedItemTypes/SurveyStationFeedItem/index.js";import"../FeedItem/feedItemTypes/LessonsLearnedFeedItem/index.js";import"../FeedItem/feedItemTypes/TracesMemoFeedItem.js";import"../FeedItem/feedItemTypes/DepthCommentFeedItem.js";import"../FeedItem/feedItemTypes/CompletionOperationalNoteFeedItem.js";import"../FeedItem/feedItemTypes/CompletionOperationSummaryFeedItem.js";import"../FeedItem/feedItemTypes/CompletionDailyCostFeedItem.js";import"../FeedItem/feedItemTypes/CompletionDocumentFeedItem.js";import"../FeedItem/feedItemTypes/CompletionNptFeedItem.js";import"../FeedItem/feedItemTypes/StageOverviewFeedItem/index.js";import"../FeedItem/feedItemTypes/AppAnnotationFeedItem/index.js";import"../FeedItem/feedItemTypes/WellPlanFeedItem/index.js";import"../FeedItem/feedItemTypes/FluidReportFeedItem.js";import"../FeedItem/feedItemTypes/BhaFeedItem/BhaFeedItem.js";import"../FeedItem/feedItemTypes/DvDCommentFeedItem.js";import"../FeedItem/feedItemTypes/PCCommentFeedItem.js";import"../FeedItem/feedItemTypes/HookloadCommentFeedItem.js";import"../FeedItem/feedItemTypes/NptLessonsCommentFeedItem.js";import"../FeedItem/feedItemTypes/GenericDataCommentFeedItem.js";var A=function(r){var A=r.open,V=r.fileUrl,S=r.fileSize,F=r.fileName,T=r.webviewType,g=r.onClose,D=t(!0),v=o(D,2),h=v[0],f=v[1],P=t(!1),b=o(P,2),x=b[0],y=b[1],B=s(null),k=s(null),L=j(),E=i((function(){return"office"===T?"https://view.officeapps.live.com/op/embed.aspx?src=".concat(window.encodeURIComponent(V)):"https://docs.google.com/viewer?url=".concat(encodeURIComponent(V),"&embedded=true")}),[V]),w=function(){k.current&&(k.current.src=E(),k.current.contentWindow.location.reload())},M=function(){B.current&&clearInterval(B.current),f(!1)};return n((function(){f(!0),y(!1);var e=S&&S>=1048576?S/1048576*1e4:1e4;return B&&A&&(clearInterval(B.current),B.current=setInterval(w,e)),function(){clearInterval(B.current)}}),[V,A]),u(m,{open:A,onClose:g,onContextMenu:function(e){return e.stopPropagation()},children:C("div",{className:L.cDocsViewer,children:[C("div",{className:L.cDocsViewerToolbar,children:[u(c,{children:F}),C("div",{children:[u(a,{size:"small",className:L.cDocsViewerToolbarIconButton,children:u("a",{download:!0,href:V,target:"_blank",rel:"noopener noreferrer",children:u(d,{fontSize:"small"})})}),u(a,{size:"small",onClick:g,className:L.cDocsViewerToolbarIconButton,children:u(l,{fontSize:"small"})})]})]}),h&&u("div",{className:L.cDocsViewerFrame,children:u(I,{white:!1})}),x?u("div",{className:L.cDocsViewerFrame,children:u(c,{variant:"body2",className:L.cDocsViewerFrameFailed,children:"Loading failed"})}):u("iframe",{className:p(L.cDocsViewerFrame,e({},L.cDocsViewerFrameHidden,h)),title:V,src:E(),onLoad:M,onError:function(){M(),y(!0)},ref:k})]})})};A.propTypes={open:r.bool.isRequired,fileUrl:r.string.isRequired,webviewType:r.oneOf(["google","office"]),fileName:r.string,fileSize:r.number,onClose:r.func.isRequired,classes:r.shape({}).isRequired},A.defaultProps={fileName:void 0,fileSize:void 0,webviewType:"google"};export{A as default};
1
+ import e from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/helpers/slicedToArray";import{useState as t,createRef as s,useCallback as i,useEffect as n}from"react";import r from"prop-types";import p from"classnames";import{Modal as m,Typography as c,IconButton as a}from"@material-ui/core";import l from"@material-ui/icons/Close";import d from"@material-ui/icons/GetApp";import{useStyles as j}from"./styles.js";import"../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"@babel/runtime/helpers/objectWithoutProperties";import"lodash";import"../Modal/CorvaModal.scss.js";import"@icon-park/react/es/all";import{jsx as u,jsxs as C}from"react/jsx-runtime";import"../../icons/IconParkProvider.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/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"../../utils/mobileDetect.js";import"../IconButton/index.js";import"../../constants/goals.js";import"../../constants/segment.js";import"../../constants/alerts.js";import"../../constants/apps.js";import"../../constants/drillstring.js";import"../../constants/completion.js";import"../../constants/appPackages.js";import"../../constants/notifications.js";import"../../constants/feed.js";import"../../constants/bha.js";import"../../constants/corvaCompanyId.js";import"../GradientManager/configuration/constants.js";import"uuid";import"../IconMenu/index.js";import"../StyledMenuItem/index.js";import"../AppIcon/AppIcon.js";import"../DevCenter/AppHeader/AppHeader.js";import"../DevCenter/AppSideBar/AppSideBar.js";import"../DevCenter/AppsDataProvider/AppsDataProvider.js";import"@material-ui/icons";import"../DevCenter/AppContext.js";import"../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router-dom";import"query-string";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../utils/index.js";import"../DevCenter/DevCenterAppContainer/components/AppActions/AppActions.css.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/RemoveAppButton.js";import"../DevCenter/DevCenterAppContainer/components/AppSettingsDialog/components/SettingsAccordion.js";import"../DevCenter/DevCenterAppContainer/components/AnnotationsButton/AnnotationsButton.js";import"../../componentsV2/Text/Text.js";import"../../componentsV2/Grid/Grid.js";import"../../componentsV2/Grid/Cell.js";import"../../componentsV2/Header/Header.scss.js";import"../../componentsV2/Button/Button.js";import"../../componentsV2/ButtonIcon/ButtonIcon.js";import"../../componentsV2/Tooltip/Tooltip.scss.js";import"../../componentsV2/Popover/Popover.js";import"../../componentsV2/PopoverPanel/PopoverPanel.js";import"../../componentsV2/Radio/Radio.js";import"../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../componentsV2/Checkbox/Checkbox.js";import"@babel/runtime/helpers/toConsumableArray";import"../../componentsV2/TextInput/TextInput.js";import"../../componentsV2/TextInputNext/TextInputNext.js";import"../../componentsV2/Label/Label.js";import"../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../componentsV2/TextLink/TextLink.js";import"../../componentsV2/Chip/Chip.js";import"../../componentsV2/ChipAlert/ChipAlert.js";import"../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../componentsV2/Avatar/Avatar.js";import"../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../componentsV2/Paper/Paper.js";import"../../componentsV2/ModalWindow/ModalWindow.js";import"../../componentsV2/Modal/Modal.scss.js";import"../../componentsV2/Menu/Menu.js";import"../../componentsV2/utils.js";import"../../componentsV2/Hint/Hint.scss.js";import"../../componentsV2/Counter/Counter.js";import"../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../componentsV2/TemplatesControl/utils.js";import"../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../componentsV2/TemplatesControl/Store/utils.js";import"../../componentsV2/TemplatesControl/types.js";import"../../clients/jsonApi/index.js";import"../../permissions/PermissionsContext.js";import"../../permissions/constants/index.js";import"../../permissions/withPermissionsHOC.js";import"../../permissions/ProvidePermissions.js";import"../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../componentsV2/Switch/Switch.js";import"../../componentsV2/Tabs/Tabs.js";import"../../componentsV2/EmptyState/EmptyState.scss.js";import"../../componentsV2/FileIcon/FileIcon.js";import"../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../componentsV2/FilesLoader/FilesLoader.scss.js";import"file-extension";import"image-extensions";import"video-extensions";import"../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../componentsV2/Skeleton/Skeleton.scss.js";import"../../utils/main.js";import"../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../componentsV2/Stepper/Step/Step.scss.js";import"../../componentsV2/Stepper/Stepper.scss.js";import"../../componentsV2/ButtonLive/ButtonLive.js";import"../../componentsV2/ButtonText/ButtonText.js";import"../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../componentsV2/Accordion/Accordion.scss.js";import"../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../componentsV2/BadgeComment/BadgeComment.js";import"../../componentsV2/AppContainer/AppContainer.js";import"../../componentsV2/AppContainer/AppContainer.constants.js";import"../../componentsV2/AppFooter/AppFooter.js";import"immutable";import"../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../componentsV2/AppHeader/AppHeader.constants.js";import"../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../componentsV2/AppHeader/AppAssets/utils.js";import"../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../PadModeSelect/PadModeSelect.js";import"../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../constants/streamSourceType.js";import"../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"moment";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../utils/getSingleAsset.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../clients/subscriptions.v1.js";import"../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../utils/env.js";import"../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../clients/api/apiCore.js";import"../../clients/constants.js";import"../../clients/sso/auth0.js";import"../../clients/sso/oauth2.js";import"../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../componentsV2/AppSettings/AppSettings.js";import"../../componentsV2/AppSettings/AppSettings.constants.js";import"../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../componentsV2/AppHeader/AppHeader.scss.js";import"../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../componentsV2/Autocomplete/Autocomplete.js";import"../../componentsV2/Select/Select.js";import"../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../componentsV2/DatePicker/DatePicker.js";import"../../componentsV2/DragHandle/DragHandle.js";import"../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../componentsV2/Slider/constants.js";import"../../componentsV2/Slider/components/SliderThumb.js";import"../../componentsV2/Slider/Slider.scss.js";import"../../componentsV2/SliderAdvanced/SliderAdvanced.js";import"react-color";import"../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../componentsV2/ColorPicker/ColorPicker.scss.js";import"../../componentsV2/ChartHelper/ChartHelper.scss.js";import"../../componentsV2/Hotkey/Hotkey.js";import"../DevCenter/DevCenterAppContainer/components/FullscreenButton/FullscreenButton.js";import"../DevCenter/DevCenterAppContainer/components/AppInfoMessage/AppInfoMessage.js";import"../DevCenter/DevCenterAppContainer/components/DevCenterAppView/DevCenterAppView.js";import"../DevCenter/DevCenterAppContainer/components/RestoreAppSizeButton/index.js";import"../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchButton.scss.js";import"../DevCenter/DevCenterAppContainer/DevCenterAppContainer.scss.js";import"../Icons/AnnotationIcon.js";import"../Annotations/components/AnnotationsList/index.js";import"../Annotations/components/LastAnnotation/index.js";import"../Annotations/AnnotationsContext.js";import"../Toaster/Toaster.js";import"../HelpCenter/HelpCenterIcon.js";import"../DevCenter/NavigationBar/NavigationBar.js";import"../DevCenter/SideBar/SideBar.js";import"../DevCenter/AppSettingsPopover/AppSettingsPopover.js";import"../DevCenter/AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js";import"../DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js";import"../AssetEditor/index.js";import"../AssetEditorV2/index.js";import"../AppVersionsSelect/AppVersionsSelect.js";import I from"../LoadingIndicator/LoadingIndicator.js";import"../Typography.js";import"../RealTimeValuesSidebar/RealTimeSidebar.js";import"../CollapsableSidebar.js";import"../DateTimePicker/index.js";import"../DatePicker/index.js";import"../ErrorBoundary/ErrorBoundary.js";import"../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import"../SlateFormattedText/SlateFormattedText.js";import"../SlateFormattedText/RenderElements.js";import"slate";import"../EmptyState/EmptyState.js";import"../ParameterCharts/ParameterCharts.js";import"../ParameterCharts/AddEditTrack.js";import"../ChartActionsList/ChartActionsList.js";import"../CopyToClipboard/CopyToClipboard.js";import"../AssetEditor/AssetEditorAutocomplete.js";import"../AssetEditor/SingleAssetEditor.js";import"../SettingEditors/ColorEditor/style.css.js";import"../SettingEditors/DropdownEditor/index.js";import"../SwitchControl/index.js";import"../ColorPicker/ColorPicker.js";import"../Chart/components/ChartButton.js";import"../Chart/components/ChartButtons.js";import"../Chart/components/ChartWrapper.js";import"../Chart/components/AxisDropdown.js";import"../Chart/components/ChartSelect.js";import"../Chart/components/buttons/DragToZoomButton.js";import"../Chart/components/buttons/ZoomInButton.js";import"../Chart/components/buttons/ZoomOutButton.js";import"../Chart/components/buttons/PanButton.js";import"../Chart/components/buttons/ResetZoomButton.js";import"../Chart/components/buttons/HideAxesButton.js";import"../Chart/components/buttons/ChartTypeButton.js";import"../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../TruncatedText/index.js";import"../MiddleTruncatedText/MiddleTruncatedText.js";import"../RangeSlider/constants.js";import"../RangeSlider/Input.css.js";import"../RangeSlider/RangeSlider.css.js";import"../AdvancedSlider/AdvancedSlider.js";import"../Breadcrumbs/index.js";import"../VirtualizedTable/index.js";import"../EmptyView/EmptyView.js";import"../EmptyView/EmptyAppView/EmptyAppView.js";import"../Button/components/Button/index.js";import"moment-timezone";import"../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../Button/components/LiveButton/styles.js";import"../ContextMenuItem/index.js";import"../FolderMenuItem/index.js";import"../EditableItem/EditableItem/index.js";import"../EditableItem/EditableItemWithBadge/index.js";import"../Checkbox/index.js";import"../FolderMenuItemWithLinks/index.js";import"../TextField/index.js";import"../Chip/index.js";import"../Counter/index.js";import"../AnchorsList/AnchorsList.js";import"../Select/index.js";import"../Select/SelectFilterBy.js";import"../CustomSelect/index.js";import"../Tabs/Tabs.js";import"../Tabs/Tab.js";import"../ResizableTable/ResizableTable.js";import"../GradientPicker/GradientPicker.js";import"@babel/runtime/helpers/classCallCheck";import"@babel/runtime/helpers/createClass";import"@material-ui/icons/AddCircle";import"../GradientManager/GradientPreview/GradientPreview.js";import"../GradientManager/GradientSelect.styles.js";import"../GradientManager/GradientManager.styles.js";import"../Drillstring/BHASchematic.js";import"../Drillstring/BHATable/index.js";import"../Drillstring/BHAComponentIcon.js";import"../Drillstring/BHAComponentDetail/index.js";import"../Drillstring/BHATileIcon.js";import"../Drillstring/BHATile/BHATile.js";import"../Drillstring/BHAList/BHAList.js";import"../Drillstring/BHAComponentsTable/BHAComponentsTable.js";import"../Casing/CasingTable/index.js";import"../Casing/CasingComponentIcon.js";import"../Casing/CasingTileIcon.js";import"../Casing/CasingTableV2/CasingTableV2.js";import"../Casing/CasingTile/CasingTile.js";import"../DisabledSettingsMessage/DisabledSettingsMessage.js";import"../WellSummary/WellSummaryItemLabel.js";import"../WellSummary/WellSummaryItemTitle.js";import"../WellSummary/WellSummaryItemValue.js";import"../WellSummary/ActivitySummaryChart.js";import"../WellSummary/FracWirelineTimeChart.js";import"../BICOffsetPickerDialog/index.js";import"../OffsetWellButton/OffsetWellButton.js";import"../OffsetWellPickerV2/OffsetWellPickerDialog.js";import"../OffsetWellPickerV3/index.js";import"../OffsetWellChips/Chip.js";import"../OffsetWellChips/ChipsContainer.js";import"../OffsetWellPickerV5/components/OffsetWellPickerV5WithStore/OffsetWellPickerV5WithStore.js";import"../OffsetWellMap/OffsetWellMap.js";import"@material-ui/core/Snackbar";import"../Notifications/Toast.js";import"../Notifications/Notifications.scss.js";import"../ConfirmationDialog.js";import"../TextLink/index.js";import"../Avatar/index.js";import"../Template/TemplatePopover/index.js";import"../Template/TemplateSharingDialog/index.js";import"../MenuItem/index.js";import"../MiddleTruncate/MiddleTruncate.js";import"../PinnableFilters/PinnableFilters.js";import"../HeaderLayout/HeaderLayout.js";import"../PadOffsetsPicker/PadOffsetsPicker.js";import"../PadOffsetsPicker/OffsetAssetChip.js";import"../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../PadOffsetsPicker/StagesSelector.js";import"../PadOffsetsPickerV2/PadOffsetsPickerV2.js";import"../Table/TableToolbar/TableToolbar.js";import"../Table/TableContainer/TableContainer.js";import"../Table/TableCell/TableCell.js";import"../Table/TablePagination/TablePagination.js";import"../Table/TablePaginationActions/TablePaginationActions.js";import"../Tooltip/ScrollableTooltip.js";import"../PriceInput/PriceInput.js";import"../LabelsCounter/LabelsCounter.js";import"../Stepper/Stepper.js";import"../Stepper/Step/Step.js";import"../Stepper/StepsWrapper.js";import"../Comment/CommentIcon/index.js";import"../FilesLoader/FilesLoader.js";import"../../componentsV2/FileIcon/icons/ArchiveFileIcon.js";import"../../componentsV2/FileIcon/icons/CSVFileIcon.js";import"../../componentsV2/FileIcon/icons/DocFileIcon.js";import"../../componentsV2/FileIcon/icons/EDMFileIcon.js";import"../../componentsV2/FileIcon/icons/ExcelFileIcon.js";import"../../componentsV2/FileIcon/icons/ImageFileIcon.js";import"../../componentsV2/FileIcon/icons/JsonFileIcon.js";import"../../componentsV2/FileIcon/icons/LasFileIcon.js";import"../../componentsV2/FileIcon/icons/OtherFileIcon.js";import"../../componentsV2/FileIcon/icons/PdfFileIcon.js";import"../../componentsV2/FileIcon/icons/PowerPointFileIcon.js";import"../../componentsV2/FileIcon/icons/TxtFileIcon.js";import"../../componentsV2/FileIcon/icons/UnknownFileIcon.js";import"../../componentsV2/FileIcon/icons/VideoFileIcon.js";import"../../componentsV2/FileIcon/icons/XmlFileIcon.js";import"../SearchInput/index.js";import"../FeedItem/FeedItem.js";import"../FeedItem/FeedItemEditProvider/FeedItemEditProvider.js";import"../PostInput/PostInput.js";import"../KeyboardDateTimePicker.js";import"../AddComment/Popover.js";import"../AddComment/Popup.js";import"../StageDesignVActual/ComparisonBar/ComparisonBar.js";import"../StageDesignVActual/ElementsComparison/ElementsComparison.js";import"../StageDesignVActual/ComparisonHeader.js";import"../StageDesignVActual/ComparisonRow.js";import"../EmbeddedApp/DevCenterEmbeddedApp.js";import"../EmbeddedApp/EmbeddedApp.js";import"../Autocomplete/Autocomplete.js";import"../ColorPickerPalette/ColorPickerPalette.js";import"../Search/Search.js";import"../Search/components/Listbox.js";import"../Search/components/Paper.js";import"../Search/components/RecentSearches.js";import"../Search/components/Groups.js";import"../Search/components/SelectAllListItem.js";import"../StatusBadge/index.js";import"../Attachment/index.js";import"../EmojiIconButton.js";import"../FileUploadIconButton.js";import"../FilePreview/index.js";import"../FailedFileUploading.js";import"../UserMention/index.js";import"../CommentsInfo/index.js";import"../CommentInput/index.js";import"../Comment/index.js";import"../CommentLoader.js";import"../AssetNameLabel/AssetStatusBadge.js";import"../AssetEditorV2/components/PrimaryAssetSelect.js";import"../AssetEditorV2/components/SecondaryAssetSelect.js";import"../AssetEditorV2/components/SelectItem.js";import"../AssetEditorV2/components/MultipleAssetsToggle.js";import"../AssetEditorV2/components/PrimaryAssetSelectV2.js";import"../EChartsWrapper/EChartsWrapper.js";import"../AssetsMultipleSelector/AssetsMultipleSelector.js";import"../GoogleDocsViewer/index.js";import"../NewDocumentViewer/effects/useFileContent.js";import"../NewDocumentViewer/styles.js";import"../FilesLoaderV2/styles.js";import"../FilesDropzone/styles.js";import"../FilesProcessor/styles.js";import"../Hint/styles.js";import"@babel/runtime/helpers/taggedTemplateLiteral";import"fparser";import"../Formula/useFormulaStyles.js";import"../Formula/RootXIcon.js";import"../Formula/FormulaTextEditor.js";import"../Formula/CloseSuggestion.js";import"../Formula/SuggestionsMenu.js";import"../CommentCard/CommentCard.js";import"@material-ui/icons/AlternateEmail";import"../AttachFileButton/AttachFileButton.scss.js";import"../CommentInputNext/CommentInputNext.js";import"../UserMention/utils/index.js";import"react-s3-uploader/s3upload";import"../CommentComposer/CommentMetaLine.scss.js";import"@material-ui/icons/ArrowDropDown";import"@material-ui/icons/Search";import"../CommentComposer/ChatChannelSelector.scss.js";import"../CommentComposer/ShareToChatRow.scss.js";import"../CommentComposer/CommentComposer.scss.js";import"../AttachmentPreview/AttachmentPreview.js";import"../AttachmentPreview/AttachmentPreview.scss.js";import"../CommentPin/CommentPin.js";import"../FeedCard/FeedCard.js";import"../FeedItemCard/FeedItemCard.js";import"../NewCommentCursor/NewCommentCursor.js";import"../FeedItem/feedItemTypes/AlertFeedItem.js";import"../FeedItem/feedItemTypes/PostFeedItem.js";import"../FeedItem/feedItemTypes/GeosteeringFeedItem.js";import"../FeedItem/feedItemTypes/DrillingOperationalNoteFeedItem.js";import"../FeedItem/feedItemTypes/DrillingOperationSummaryFeedItem.js";import"../FeedItem/feedItemTypes/DrillingDailyCostFeedItem.js";import"../FeedItem/feedItemTypes/DocumentFeedItem.js";import"../FeedItem/feedItemTypes/DrillerMemoFeedItem.js";import"../FeedItem/feedItemTypes/NptFeedItem.js";import"../FeedItem/feedItemTypes/SurveyStationFeedItem/index.js";import"../FeedItem/feedItemTypes/LessonsLearnedFeedItem/index.js";import"../FeedItem/feedItemTypes/TracesMemoFeedItem.js";import"../FeedItem/feedItemTypes/DepthCommentFeedItem.js";import"../FeedItem/feedItemTypes/CompletionOperationalNoteFeedItem.js";import"../FeedItem/feedItemTypes/CompletionOperationSummaryFeedItem.js";import"../FeedItem/feedItemTypes/CompletionDailyCostFeedItem.js";import"../FeedItem/feedItemTypes/CompletionDocumentFeedItem.js";import"../FeedItem/feedItemTypes/CompletionNptFeedItem.js";import"../FeedItem/feedItemTypes/StageOverviewFeedItem/index.js";import"../FeedItem/feedItemTypes/AppAnnotationFeedItem/index.js";import"../FeedItem/feedItemTypes/WellPlanFeedItem/index.js";import"../FeedItem/feedItemTypes/FluidReportFeedItem.js";import"../FeedItem/feedItemTypes/BhaFeedItem/BhaFeedItem.js";import"../FeedItem/feedItemTypes/DvDCommentFeedItem.js";import"../FeedItem/feedItemTypes/PCCommentFeedItem.js";import"../FeedItem/feedItemTypes/HookloadCommentFeedItem.js";import"../FeedItem/feedItemTypes/NptLessonsCommentFeedItem.js";import"../FeedItem/feedItemTypes/GenericDataCommentFeedItem.js";var A=function(r){var A=r.open,V=r.fileUrl,S=r.fileSize,F=r.fileName,T=r.webviewType,g=r.onClose,v=t(!0),D=o(v,2),h=D[0],P=D[1],f=t(!1),b=o(f,2),x=b[0],y=b[1],B=s(null),k=s(null),L=j(),w=i((function(){return"office"===T?"https://view.officeapps.live.com/op/embed.aspx?src=".concat(window.encodeURIComponent(V)):"https://docs.google.com/viewer?url=".concat(encodeURIComponent(V),"&embedded=true")}),[V]),E=function(){k.current&&(k.current.src=w(),k.current.contentWindow.location.reload())},M=function(){B.current&&clearInterval(B.current),P(!1)};return n((function(){P(!0),y(!1);var e=S&&S>=1048576?S/1048576*1e4:1e4;return B&&A&&(clearInterval(B.current),B.current=setInterval(E,e)),function(){clearInterval(B.current)}}),[V,A]),u(m,{open:A,onClose:g,onContextMenu:function(e){return e.stopPropagation()},children:C("div",{className:L.cDocsViewer,children:[C("div",{className:L.cDocsViewerToolbar,children:[u(c,{children:F}),C("div",{children:[u(a,{size:"small",className:L.cDocsViewerToolbarIconButton,children:u("a",{download:!0,href:V,target:"_blank",rel:"noopener noreferrer",children:u(d,{fontSize:"small"})})}),u(a,{size:"small",onClick:g,className:L.cDocsViewerToolbarIconButton,children:u(l,{fontSize:"small"})})]})]}),h&&u("div",{className:L.cDocsViewerFrame,children:u(I,{white:!1})}),x?u("div",{className:L.cDocsViewerFrame,children:u(c,{variant:"body2",className:L.cDocsViewerFrameFailed,children:"Loading failed"})}):u("iframe",{className:p(L.cDocsViewerFrame,e({},L.cDocsViewerFrameHidden,h)),title:V,src:w(),onLoad:M,onError:function(){M(),y(!0)},ref:k})]})})};A.propTypes={open:r.bool.isRequired,fileUrl:r.string.isRequired,webviewType:r.oneOf(["google","office"]),fileName:r.string,fileSize:r.number,onClose:r.func.isRequired,classes:r.shape({}).isRequired},A.defaultProps={fileName:void 0,fileSize:void 0,webviewType:"google"};export{A as default};
2
2
  //# sourceMappingURL=DocumentViewer.js.map