@atlaskit/media-viewer 54.8.21 → 54.8.23

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 (538) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/dist/cjs/ArchiveViewerError.js +28 -0
  3. package/dist/cjs/DownloadButton.js +39 -0
  4. package/dist/cjs/DownloadButtonProps.js +5 -0
  5. package/dist/cjs/DownloadItem.js +66 -0
  6. package/dist/cjs/DownloadItemProps.js +5 -0
  7. package/dist/cjs/ErrorViewDownloadButton.js +31 -0
  8. package/dist/cjs/ItemViewerBase.js +523 -0
  9. package/dist/cjs/MediaViewerError.js +35 -0
  10. package/dist/cjs/ToolbarDownloadButton.js +35 -0
  11. package/dist/cjs/analytics/events/operational/createDownloadFailedEventPayload.js +40 -0
  12. package/dist/cjs/analytics/events/operational/createDownloadSucceededEventPayload.js +31 -0
  13. package/dist/cjs/analytics/events/operational/download.js +1 -57
  14. package/dist/cjs/analytics/events/operational/loadFailed.js +10 -7
  15. package/dist/cjs/analytics/events/operational/previewTooLarge.js +4 -4
  16. package/dist/cjs/analytics/events/operational/previewUnsupported.js +2 -2
  17. package/dist/cjs/analytics/events/operational/zipEntryLoadFailed.js +10 -8
  18. package/dist/cjs/analytics/events/operational/zipEntryLoadSucceeded.js +4 -4
  19. package/dist/cjs/analytics/events/ui/createNavigatedEvent.js +22 -0
  20. package/dist/cjs/analytics/events/ui/downloadButtonClicked.js +2 -2
  21. package/dist/cjs/analytics/events/ui/failedPreviewDownloadButtonClicked.js +4 -4
  22. package/dist/cjs/analytics/events/ui/inputFromSource.js +12 -0
  23. package/dist/cjs/analytics/events/ui/navigated.js +1 -23
  24. package/dist/cjs/analytics/fireAnalytics.js +13 -0
  25. package/dist/cjs/analytics/getFileAttributes.js +33 -0
  26. package/dist/cjs/analytics/index.js +1 -45
  27. package/dist/cjs/analytics/ufoExperiences.js +1 -1
  28. package/dist/cjs/buildImgErrorDiagnostics.js +50 -0
  29. package/dist/cjs/buildVideoErrorDiagnostics.js +66 -0
  30. package/dist/cjs/classifyFailedSrc.js +25 -0
  31. package/dist/cjs/components/{media-viewer.js → media-viewer-base.js} +4 -20
  32. package/dist/cjs/components/media-viewer-error-boundary.js +2 -2
  33. package/dist/cjs/components/media-viewer-with-media-client.js +23 -0
  34. package/dist/cjs/createItemDownloader.js +37 -0
  35. package/dist/cjs/download.js +4 -174
  36. package/dist/cjs/downloadIcon.js +14 -0
  37. package/dist/cjs/errorMessage.js +14 -22
  38. package/dist/cjs/errorMessageWithAnalytics.js +13 -0
  39. package/dist/cjs/errors.js +1 -212
  40. package/dist/cjs/getErrorDetail.js +18 -0
  41. package/dist/cjs/getErrorMessageFromError.js +15 -0
  42. package/dist/cjs/getPrimaryErrorReason.js +10 -0
  43. package/dist/cjs/getRequestMetadata.js +14 -0
  44. package/dist/cjs/getSecondaryErrorReason.js +17 -0
  45. package/dist/cjs/header.js +23 -23
  46. package/dist/cjs/headerWithIntl.js +9 -0
  47. package/dist/cjs/isArchiveViewerError.js +10 -0
  48. package/dist/cjs/isExternalImageItem.js +10 -0
  49. package/dist/cjs/isFileStateItem.js +10 -0
  50. package/dist/cjs/isMediaViewerError.js +10 -0
  51. package/dist/cjs/item-viewer.js +5 -521
  52. package/dist/cjs/list.js +2 -2
  53. package/dist/cjs/media-viewer.js +10 -10
  54. package/dist/cjs/navigation.js +6 -6
  55. package/dist/cjs/noop.js +7 -0
  56. package/dist/cjs/useDownloadButtonDisabledProps.js +18 -0
  57. package/dist/cjs/utils/extractArchiveFolderName.js +10 -0
  58. package/dist/cjs/utils/getFolderParent.js +15 -0
  59. package/dist/cjs/utils/getFormattedFolderName.js +18 -0
  60. package/dist/cjs/utils/getMediaTypeFromFilename.js +12 -0
  61. package/dist/cjs/utils/getMimeTypeFromFilename.js +18 -0
  62. package/dist/cjs/utils/getSelectedIndex.js +14 -0
  63. package/dist/cjs/utils/isMacPrivateFile.js +9 -0
  64. package/dist/cjs/utils/isSameIdentifier.js +16 -0
  65. package/dist/cjs/utils/rejectAfter.js +47 -0
  66. package/dist/cjs/viewers/archiveSidebar/archive-download-button-wrapper.compiled.css +19 -0
  67. package/dist/cjs/viewers/archiveSidebar/archive-download-button-wrapper.js +32 -0
  68. package/dist/cjs/viewers/archiveSidebar/archive-download-button.js +3 -2
  69. package/dist/cjs/viewers/archiveSidebar/archive-item-viewer-wrapper.compiled.css +4 -0
  70. package/dist/cjs/viewers/archiveSidebar/archive-item-viewer-wrapper.js +22 -0
  71. package/dist/cjs/viewers/archiveSidebar/archive-layout.compiled.css +3 -0
  72. package/dist/cjs/viewers/archiveSidebar/archive-layout.js +21 -0
  73. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.compiled.css +4 -0
  74. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.js +22 -0
  75. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-folder-entry.js +16 -12
  76. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-folder-wrapper.compiled.css +6 -0
  77. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-folder-wrapper.js +22 -0
  78. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-header.js +5 -3
  79. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-renderer.js +6 -6
  80. package/dist/cjs/viewers/archiveSidebar/archive-sidebar.js +12 -8
  81. package/dist/cjs/viewers/archiveSidebar/archive-viewer-base.js +398 -0
  82. package/dist/cjs/viewers/archiveSidebar/archive-viewer-wrapper.compiled.css +7 -0
  83. package/dist/cjs/viewers/archiveSidebar/archive-viewer-wrapper.js +24 -0
  84. package/dist/cjs/viewers/archiveSidebar/archive.js +5 -424
  85. package/dist/cjs/viewers/archiveSidebar/archiveViewerLoader.js +4 -4
  86. package/dist/cjs/viewers/archiveSidebar/disabled-archive-download-button-wrapper.compiled.css +8 -0
  87. package/dist/cjs/viewers/archiveSidebar/disabled-archive-download-button-wrapper.js +21 -0
  88. package/dist/cjs/viewers/archiveSidebar/get-archive-entries-from-file-state.js +51 -0
  89. package/dist/cjs/viewers/archiveSidebar/separator.compiled.css +7 -0
  90. package/dist/cjs/viewers/archiveSidebar/separator.js +19 -0
  91. package/dist/cjs/viewers/archiveSidebar/sidebar-header-entry.compiled.css +9 -0
  92. package/dist/cjs/viewers/archiveSidebar/sidebar-header-entry.js +20 -0
  93. package/dist/cjs/viewers/archiveSidebar/sidebar-header-icon.compiled.css +4 -0
  94. package/dist/cjs/viewers/archiveSidebar/sidebar-header-icon.js +20 -0
  95. package/dist/cjs/viewers/archiveSidebar/sidebar-header-wrapper.compiled.css +3 -0
  96. package/dist/cjs/viewers/archiveSidebar/sidebar-header-wrapper.js +20 -0
  97. package/dist/cjs/viewers/archiveSidebar/sidebar-item-wrapper.compiled.css +1 -0
  98. package/dist/cjs/viewers/archiveSidebar/sidebar-item-wrapper.js +20 -0
  99. package/dist/cjs/viewers/archiveSidebar/styleWrappers.compiled.css +1 -57
  100. package/dist/cjs/viewers/archiveSidebar/styleWrappers.js +4 -111
  101. package/dist/cjs/viewers/audio.js +12 -12
  102. package/dist/cjs/viewers/base-viewer.js +6 -6
  103. package/dist/cjs/viewers/codeViewer/CodeRendererAdvanced/CodeRendererAdvanced.js +3 -3
  104. package/dist/cjs/viewers/codeViewer/CodeViewRenderer-2.js +12 -0
  105. package/dist/cjs/viewers/codeViewer/CodeViewRenderer.compiled.css +8 -0
  106. package/dist/cjs/viewers/codeViewer/CodeViewRenderer.js +132 -0
  107. package/dist/cjs/viewers/codeViewer/CodeViewWrapper.js +13 -0
  108. package/dist/cjs/viewers/codeViewer/CodeViewerHeaderBar-2.js +12 -0
  109. package/dist/cjs/viewers/codeViewer/CodeViewerHeaderBar.compiled.css +2 -0
  110. package/dist/cjs/viewers/codeViewer/CodeViewerHeaderBar.js +19 -0
  111. package/dist/cjs/viewers/codeViewer/codeViewerRenderer-compiled.compiled.css +1 -10
  112. package/dist/cjs/viewers/codeViewer/codeViewerRenderer-compiled.js +5 -127
  113. package/dist/cjs/viewers/codeViewer/codeViewerRenderer.js +1 -15
  114. package/dist/cjs/viewers/codeViewer/formatMessage.js +20 -0
  115. package/dist/cjs/viewers/codeViewer/getFormat.js +23 -0
  116. package/dist/cjs/viewers/codeViewer/getMsgDate.js +14 -0
  117. package/dist/cjs/viewers/codeViewer/index.js +16 -15
  118. package/dist/cjs/viewers/codeViewer/lineCount.js +10 -0
  119. package/dist/cjs/viewers/codeViewer/{msg-parser.js → msgToText.js} +4 -38
  120. package/dist/cjs/viewers/codeViewer/normaliseLineBreaks.js +9 -0
  121. package/dist/cjs/viewers/codeViewer/parseHeaders.js +18 -0
  122. package/dist/cjs/viewers/codeViewer/util.js +1 -27
  123. package/dist/cjs/viewers/customViewer/customViewer.js +2 -2
  124. package/dist/cjs/viewers/doc/DocViewer.js +234 -0
  125. package/dist/cjs/viewers/doc/doc-viewer.js +7 -230
  126. package/dist/cjs/viewers/doc/index.js +7 -7
  127. package/dist/cjs/viewers/image/index.js +13 -12
  128. package/dist/cjs/viewers/image/interactive-img-component.js +299 -0
  129. package/dist/cjs/viewers/image/interactive-img.js +4 -300
  130. package/dist/cjs/viewers/image/zoom-level-after-resize.js +12 -0
  131. package/dist/cjs/viewers/svg/clientRectangle.js +12 -0
  132. package/dist/cjs/viewers/svg/index.js +16 -14
  133. package/dist/cjs/viewers/svg/naturalSizeRectangle.js +16 -0
  134. package/dist/cjs/viewers/svg/zoomLevelAfterResize.js +12 -0
  135. package/dist/cjs/viewers/video.js +12 -11
  136. package/dist/cjs/zoomControls.js +9 -9
  137. package/dist/es2019/ArchiveViewerError.js +9 -0
  138. package/dist/es2019/DownloadButton.js +29 -0
  139. package/dist/es2019/DownloadButtonProps.js +1 -0
  140. package/dist/es2019/DownloadItem.js +54 -0
  141. package/dist/es2019/DownloadItemProps.js +1 -0
  142. package/dist/es2019/ErrorViewDownloadButton.js +25 -0
  143. package/dist/es2019/ItemViewerBase.js +435 -0
  144. package/dist/es2019/MediaViewerError.js +15 -0
  145. package/dist/es2019/ToolbarDownloadButton.js +29 -0
  146. package/dist/es2019/analytics/events/operational/createDownloadFailedEventPayload.js +35 -0
  147. package/dist/es2019/analytics/events/operational/createDownloadSucceededEventPayload.js +26 -0
  148. package/dist/es2019/analytics/events/operational/download.js +1 -57
  149. package/dist/es2019/analytics/events/operational/loadFailed.js +5 -2
  150. package/dist/es2019/analytics/events/operational/previewTooLarge.js +2 -2
  151. package/dist/es2019/analytics/events/operational/previewUnsupported.js +1 -1
  152. package/dist/es2019/analytics/events/operational/zipEntryLoadFailed.js +5 -3
  153. package/dist/es2019/analytics/events/operational/zipEntryLoadSucceeded.js +2 -2
  154. package/dist/es2019/analytics/events/ui/createNavigatedEvent.js +14 -0
  155. package/dist/es2019/analytics/events/ui/downloadButtonClicked.js +1 -1
  156. package/dist/es2019/analytics/events/ui/failedPreviewDownloadButtonClicked.js +2 -2
  157. package/dist/es2019/analytics/events/ui/inputFromSource.js +6 -0
  158. package/dist/es2019/analytics/events/ui/navigated.js +1 -19
  159. package/dist/es2019/analytics/fireAnalytics.js +7 -0
  160. package/dist/es2019/analytics/getFileAttributes.js +31 -0
  161. package/dist/es2019/analytics/index.js +1 -45
  162. package/dist/es2019/analytics/ufoExperiences.js +1 -1
  163. package/dist/es2019/buildImgErrorDiagnostics.js +34 -0
  164. package/dist/es2019/buildVideoErrorDiagnostics.js +50 -0
  165. package/dist/es2019/classifyFailedSrc.js +19 -0
  166. package/dist/es2019/components/{media-viewer.js → media-viewer-base.js} +2 -18
  167. package/dist/es2019/components/media-viewer-error-boundary.js +1 -1
  168. package/dist/es2019/components/media-viewer-with-media-client.js +16 -0
  169. package/dist/es2019/createItemDownloader.js +22 -0
  170. package/dist/es2019/download.js +2 -161
  171. package/dist/es2019/downloadIcon.js +7 -0
  172. package/dist/es2019/errorMessage.js +8 -16
  173. package/dist/es2019/errorMessageWithAnalytics.js +7 -0
  174. package/dist/es2019/errors.js +1 -167
  175. package/dist/es2019/getErrorDetail.js +13 -0
  176. package/dist/es2019/getErrorMessageFromError.js +7 -0
  177. package/dist/es2019/getPrimaryErrorReason.js +4 -0
  178. package/dist/es2019/getRequestMetadata.js +9 -0
  179. package/dist/es2019/getSecondaryErrorReason.js +13 -0
  180. package/dist/es2019/header.js +16 -16
  181. package/dist/es2019/headerWithIntl.js +3 -0
  182. package/dist/es2019/index.js +12 -1
  183. package/dist/es2019/isArchiveViewerError.js +4 -0
  184. package/dist/es2019/isExternalImageItem.js +2 -0
  185. package/dist/es2019/isFileStateItem.js +2 -0
  186. package/dist/es2019/isMediaViewerError.js +4 -0
  187. package/dist/es2019/item-viewer.js +3 -434
  188. package/dist/es2019/list.js +1 -1
  189. package/dist/es2019/media-viewer.js +7 -7
  190. package/dist/es2019/navigation.js +5 -4
  191. package/dist/es2019/noop.js +1 -0
  192. package/dist/es2019/useDownloadButtonDisabledProps.js +13 -0
  193. package/dist/es2019/utils/extractArchiveFolderName.js +4 -0
  194. package/dist/es2019/utils/getFolderParent.js +9 -0
  195. package/dist/es2019/utils/getFormattedFolderName.js +12 -0
  196. package/dist/es2019/utils/getMediaTypeFromFilename.js +6 -0
  197. package/dist/es2019/utils/getMimeTypeFromFilename.js +12 -0
  198. package/dist/es2019/utils/getSelectedIndex.js +7 -0
  199. package/dist/es2019/utils/isMacPrivateFile.js +3 -0
  200. package/dist/es2019/utils/isSameIdentifier.js +10 -0
  201. package/dist/es2019/utils/rejectAfter.js +12 -0
  202. package/dist/es2019/viewers/archiveSidebar/archive-download-button-wrapper.compiled.css +19 -0
  203. package/dist/es2019/viewers/archiveSidebar/archive-download-button-wrapper.js +23 -0
  204. package/dist/es2019/viewers/archiveSidebar/archive-download-button.js +2 -1
  205. package/dist/es2019/viewers/archiveSidebar/archive-item-viewer-wrapper.compiled.css +4 -0
  206. package/dist/es2019/viewers/archiveSidebar/archive-item-viewer-wrapper.js +15 -0
  207. package/dist/es2019/viewers/archiveSidebar/archive-layout.compiled.css +3 -0
  208. package/dist/es2019/viewers/archiveSidebar/archive-layout.js +14 -0
  209. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.compiled.css +4 -0
  210. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.js +15 -0
  211. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-folder-entry.js +10 -6
  212. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-folder-wrapper.compiled.css +6 -0
  213. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-folder-wrapper.js +15 -0
  214. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-header.js +4 -2
  215. package/dist/es2019/viewers/archiveSidebar/archive-sidebar-renderer.js +3 -3
  216. package/dist/es2019/viewers/archiveSidebar/archive-sidebar.js +6 -2
  217. package/dist/es2019/viewers/archiveSidebar/archive-viewer-base.js +304 -0
  218. package/dist/es2019/viewers/archiveSidebar/archive-viewer-wrapper.compiled.css +7 -0
  219. package/dist/es2019/viewers/archiveSidebar/archive-viewer-wrapper.js +14 -0
  220. package/dist/es2019/viewers/archiveSidebar/archive.js +2 -315
  221. package/dist/es2019/viewers/archiveSidebar/archiveViewerLoader.js +2 -2
  222. package/dist/es2019/viewers/archiveSidebar/disabled-archive-download-button-wrapper.compiled.css +8 -0
  223. package/dist/es2019/viewers/archiveSidebar/disabled-archive-download-button-wrapper.js +14 -0
  224. package/dist/es2019/viewers/archiveSidebar/get-archive-entries-from-file-state.js +24 -0
  225. package/dist/es2019/viewers/archiveSidebar/separator.compiled.css +7 -0
  226. package/dist/es2019/viewers/archiveSidebar/separator.js +11 -0
  227. package/dist/es2019/viewers/archiveSidebar/sidebar-header-entry.compiled.css +9 -0
  228. package/dist/es2019/viewers/archiveSidebar/sidebar-header-entry.js +13 -0
  229. package/dist/es2019/viewers/archiveSidebar/sidebar-header-icon.compiled.css +4 -0
  230. package/dist/es2019/viewers/archiveSidebar/sidebar-header-icon.js +13 -0
  231. package/dist/es2019/viewers/archiveSidebar/sidebar-header-wrapper.compiled.css +3 -0
  232. package/dist/es2019/viewers/archiveSidebar/sidebar-header-wrapper.js +13 -0
  233. package/dist/es2019/viewers/archiveSidebar/sidebar-item-wrapper.compiled.css +1 -0
  234. package/dist/es2019/viewers/archiveSidebar/sidebar-item-wrapper.js +13 -0
  235. package/dist/es2019/viewers/archiveSidebar/styleWrappers.compiled.css +1 -57
  236. package/dist/es2019/viewers/archiveSidebar/styleWrappers.js +1 -115
  237. package/dist/es2019/viewers/audio.js +6 -6
  238. package/dist/es2019/viewers/base-viewer.js +4 -4
  239. package/dist/es2019/viewers/codeViewer/CodeRendererAdvanced/CodeRendererAdvanced.js +3 -3
  240. package/dist/es2019/viewers/codeViewer/CodeViewRenderer-2.js +3 -0
  241. package/dist/es2019/viewers/codeViewer/CodeViewRenderer.compiled.css +8 -0
  242. package/dist/es2019/viewers/codeViewer/CodeViewRenderer.js +84 -0
  243. package/dist/es2019/viewers/codeViewer/CodeViewWrapper.js +4 -0
  244. package/dist/es2019/viewers/codeViewer/CodeViewerHeaderBar-2.js +3 -0
  245. package/dist/es2019/viewers/codeViewer/CodeViewerHeaderBar.compiled.css +2 -0
  246. package/dist/es2019/viewers/codeViewer/CodeViewerHeaderBar.js +11 -0
  247. package/dist/es2019/viewers/codeViewer/codeViewerRenderer-compiled.compiled.css +1 -10
  248. package/dist/es2019/viewers/codeViewer/codeViewerRenderer-compiled.js +5 -87
  249. package/dist/es2019/viewers/codeViewer/codeViewerRenderer.js +1 -6
  250. package/dist/es2019/viewers/codeViewer/formatMessage.js +10 -0
  251. package/dist/es2019/viewers/codeViewer/getFormat.js +17 -0
  252. package/dist/es2019/viewers/codeViewer/getMsgDate.js +8 -0
  253. package/dist/es2019/viewers/codeViewer/index.js +9 -8
  254. package/dist/es2019/viewers/codeViewer/lineCount.js +2 -0
  255. package/dist/es2019/viewers/codeViewer/{msg-parser.js → msgToText.js} +2 -29
  256. package/dist/es2019/viewers/codeViewer/normaliseLineBreaks.js +1 -0
  257. package/dist/es2019/viewers/codeViewer/parseHeaders.js +12 -0
  258. package/dist/es2019/viewers/codeViewer/util.js +1 -21
  259. package/dist/es2019/viewers/customViewer/customViewer.js +1 -1
  260. package/dist/es2019/viewers/doc/DocViewer.js +170 -0
  261. package/dist/es2019/viewers/doc/doc-viewer.js +5 -169
  262. package/dist/es2019/viewers/doc/index.js +4 -4
  263. package/dist/es2019/viewers/image/index.js +4 -3
  264. package/dist/es2019/viewers/image/interactive-img-component.js +287 -0
  265. package/dist/es2019/viewers/image/interactive-img.js +2 -292
  266. package/dist/es2019/viewers/image/zoom-level-after-resize.js +6 -0
  267. package/dist/es2019/viewers/svg/clientRectangle.js +8 -0
  268. package/dist/es2019/viewers/svg/index.js +10 -8
  269. package/dist/es2019/viewers/svg/naturalSizeRectangle.js +12 -0
  270. package/dist/es2019/viewers/svg/zoomLevelAfterResize.js +6 -0
  271. package/dist/es2019/viewers/video.js +5 -4
  272. package/dist/es2019/zoomControls.js +7 -7
  273. package/dist/esm/ArchiveViewerError.js +21 -0
  274. package/dist/esm/DownloadButton.js +30 -0
  275. package/dist/esm/DownloadButtonProps.js +1 -0
  276. package/dist/esm/DownloadItem.js +57 -0
  277. package/dist/esm/DownloadItemProps.js +1 -0
  278. package/dist/esm/ErrorViewDownloadButton.js +24 -0
  279. package/dist/esm/ItemViewerBase.js +500 -0
  280. package/dist/esm/MediaViewerError.js +28 -0
  281. package/dist/esm/ToolbarDownloadButton.js +28 -0
  282. package/dist/esm/analytics/events/operational/createDownloadFailedEventPayload.js +34 -0
  283. package/dist/esm/analytics/events/operational/createDownloadSucceededEventPayload.js +25 -0
  284. package/dist/esm/analytics/events/operational/download.js +1 -55
  285. package/dist/esm/analytics/events/operational/loadFailed.js +5 -2
  286. package/dist/esm/analytics/events/operational/previewTooLarge.js +2 -2
  287. package/dist/esm/analytics/events/operational/previewUnsupported.js +1 -1
  288. package/dist/esm/analytics/events/operational/zipEntryLoadFailed.js +5 -3
  289. package/dist/esm/analytics/events/operational/zipEntryLoadSucceeded.js +2 -2
  290. package/dist/esm/analytics/events/ui/createNavigatedEvent.js +16 -0
  291. package/dist/esm/analytics/events/ui/downloadButtonClicked.js +1 -1
  292. package/dist/esm/analytics/events/ui/failedPreviewDownloadButtonClicked.js +2 -2
  293. package/dist/esm/analytics/events/ui/inputFromSource.js +6 -0
  294. package/dist/esm/analytics/events/ui/navigated.js +1 -21
  295. package/dist/esm/analytics/fireAnalytics.js +7 -0
  296. package/dist/esm/analytics/getFileAttributes.js +27 -0
  297. package/dist/esm/analytics/index.js +1 -41
  298. package/dist/esm/analytics/ufoExperiences.js +1 -1
  299. package/dist/esm/buildImgErrorDiagnostics.js +44 -0
  300. package/dist/esm/buildVideoErrorDiagnostics.js +60 -0
  301. package/dist/esm/classifyFailedSrc.js +19 -0
  302. package/dist/esm/components/{media-viewer.js → media-viewer-base.js} +2 -18
  303. package/dist/esm/components/media-viewer-error-boundary.js +1 -1
  304. package/dist/esm/components/media-viewer-with-media-client.js +16 -0
  305. package/dist/esm/createItemDownloader.js +30 -0
  306. package/dist/esm/download.js +2 -170
  307. package/dist/esm/downloadIcon.js +7 -0
  308. package/dist/esm/errorMessage.js +8 -18
  309. package/dist/esm/errorMessageWithAnalytics.js +7 -0
  310. package/dist/esm/errors.js +1 -200
  311. package/dist/esm/getErrorDetail.js +12 -0
  312. package/dist/esm/getErrorMessageFromError.js +9 -0
  313. package/dist/esm/getPrimaryErrorReason.js +4 -0
  314. package/dist/esm/getRequestMetadata.js +8 -0
  315. package/dist/esm/getSecondaryErrorReason.js +11 -0
  316. package/dist/esm/header.js +16 -16
  317. package/dist/esm/headerWithIntl.js +3 -0
  318. package/dist/esm/index.js +12 -1
  319. package/dist/esm/isArchiveViewerError.js +4 -0
  320. package/dist/esm/isExternalImageItem.js +4 -0
  321. package/dist/esm/isFileStateItem.js +4 -0
  322. package/dist/esm/isMediaViewerError.js +4 -0
  323. package/dist/esm/item-viewer.js +3 -503
  324. package/dist/esm/list.js +1 -1
  325. package/dist/esm/media-viewer.js +7 -7
  326. package/dist/esm/navigation.js +5 -4
  327. package/dist/esm/noop.js +1 -0
  328. package/dist/esm/useDownloadButtonDisabledProps.js +12 -0
  329. package/dist/esm/utils/extractArchiveFolderName.js +4 -0
  330. package/dist/esm/utils/getFolderParent.js +9 -0
  331. package/dist/esm/utils/getFormattedFolderName.js +12 -0
  332. package/dist/esm/utils/getMediaTypeFromFilename.js +6 -0
  333. package/dist/esm/utils/getMimeTypeFromFilename.js +12 -0
  334. package/dist/esm/utils/getSelectedIndex.js +9 -0
  335. package/dist/esm/utils/isMacPrivateFile.js +3 -0
  336. package/dist/esm/utils/isSameIdentifier.js +10 -0
  337. package/dist/esm/utils/rejectAfter.js +40 -0
  338. package/dist/esm/viewers/archiveSidebar/archive-download-button-wrapper.compiled.css +19 -0
  339. package/dist/esm/viewers/archiveSidebar/archive-download-button-wrapper.js +24 -0
  340. package/dist/esm/viewers/archiveSidebar/archive-download-button.js +2 -1
  341. package/dist/esm/viewers/archiveSidebar/archive-item-viewer-wrapper.compiled.css +4 -0
  342. package/dist/esm/viewers/archiveSidebar/archive-item-viewer-wrapper.js +14 -0
  343. package/dist/esm/viewers/archiveSidebar/archive-layout.compiled.css +3 -0
  344. package/dist/esm/viewers/archiveSidebar/archive-layout.js +13 -0
  345. package/dist/esm/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.compiled.css +4 -0
  346. package/dist/esm/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.js +14 -0
  347. package/dist/esm/viewers/archiveSidebar/archive-sidebar-folder-entry.js +10 -6
  348. package/dist/esm/viewers/archiveSidebar/archive-sidebar-folder-wrapper.compiled.css +6 -0
  349. package/dist/esm/viewers/archiveSidebar/archive-sidebar-folder-wrapper.js +14 -0
  350. package/dist/esm/viewers/archiveSidebar/archive-sidebar-header.js +4 -2
  351. package/dist/esm/viewers/archiveSidebar/archive-sidebar-renderer.js +3 -3
  352. package/dist/esm/viewers/archiveSidebar/archive-sidebar.js +6 -2
  353. package/dist/esm/viewers/archiveSidebar/archive-viewer-base.js +393 -0
  354. package/dist/esm/viewers/archiveSidebar/archive-viewer-wrapper.compiled.css +7 -0
  355. package/dist/esm/viewers/archiveSidebar/archive-viewer-wrapper.js +16 -0
  356. package/dist/esm/viewers/archiveSidebar/archive.js +2 -422
  357. package/dist/esm/viewers/archiveSidebar/archiveViewerLoader.js +2 -2
  358. package/dist/esm/viewers/archiveSidebar/disabled-archive-download-button-wrapper.compiled.css +8 -0
  359. package/dist/esm/viewers/archiveSidebar/disabled-archive-download-button-wrapper.js +13 -0
  360. package/dist/esm/viewers/archiveSidebar/get-archive-entries-from-file-state.js +44 -0
  361. package/dist/esm/viewers/archiveSidebar/separator.compiled.css +7 -0
  362. package/dist/esm/viewers/archiveSidebar/separator.js +11 -0
  363. package/dist/esm/viewers/archiveSidebar/sidebar-header-entry.compiled.css +9 -0
  364. package/dist/esm/viewers/archiveSidebar/sidebar-header-entry.js +12 -0
  365. package/dist/esm/viewers/archiveSidebar/sidebar-header-icon.compiled.css +4 -0
  366. package/dist/esm/viewers/archiveSidebar/sidebar-header-icon.js +12 -0
  367. package/dist/esm/viewers/archiveSidebar/sidebar-header-wrapper.compiled.css +3 -0
  368. package/dist/esm/viewers/archiveSidebar/sidebar-header-wrapper.js +12 -0
  369. package/dist/esm/viewers/archiveSidebar/sidebar-item-wrapper.compiled.css +1 -0
  370. package/dist/esm/viewers/archiveSidebar/sidebar-item-wrapper.js +12 -0
  371. package/dist/esm/viewers/archiveSidebar/styleWrappers.compiled.css +1 -57
  372. package/dist/esm/viewers/archiveSidebar/styleWrappers.js +3 -111
  373. package/dist/esm/viewers/audio.js +6 -6
  374. package/dist/esm/viewers/base-viewer.js +4 -4
  375. package/dist/esm/viewers/codeViewer/CodeRendererAdvanced/CodeRendererAdvanced.js +3 -3
  376. package/dist/esm/viewers/codeViewer/CodeViewRenderer-2.js +5 -0
  377. package/dist/esm/viewers/codeViewer/CodeViewRenderer.compiled.css +8 -0
  378. package/dist/esm/viewers/codeViewer/CodeViewRenderer.js +125 -0
  379. package/dist/esm/viewers/codeViewer/CodeViewWrapper.js +6 -0
  380. package/dist/esm/viewers/codeViewer/CodeViewerHeaderBar-2.js +5 -0
  381. package/dist/esm/viewers/codeViewer/CodeViewerHeaderBar.compiled.css +2 -0
  382. package/dist/esm/viewers/codeViewer/CodeViewerHeaderBar.js +11 -0
  383. package/dist/esm/viewers/codeViewer/codeViewerRenderer-compiled.compiled.css +1 -10
  384. package/dist/esm/viewers/codeViewer/codeViewerRenderer-compiled.js +5 -128
  385. package/dist/esm/viewers/codeViewer/codeViewerRenderer.js +1 -12
  386. package/dist/esm/viewers/codeViewer/formatMessage.js +14 -0
  387. package/dist/esm/viewers/codeViewer/getFormat.js +17 -0
  388. package/dist/esm/viewers/codeViewer/getMsgDate.js +8 -0
  389. package/dist/esm/viewers/codeViewer/index.js +9 -8
  390. package/dist/esm/viewers/codeViewer/lineCount.js +4 -0
  391. package/dist/esm/viewers/codeViewer/{msg-parser.js → msgToText.js} +2 -33
  392. package/dist/esm/viewers/codeViewer/normaliseLineBreaks.js +3 -0
  393. package/dist/esm/viewers/codeViewer/parseHeaders.js +12 -0
  394. package/dist/esm/viewers/codeViewer/util.js +1 -25
  395. package/dist/esm/viewers/customViewer/customViewer.js +1 -1
  396. package/dist/esm/viewers/doc/DocViewer.js +225 -0
  397. package/dist/esm/viewers/doc/doc-viewer.js +5 -224
  398. package/dist/esm/viewers/doc/index.js +4 -4
  399. package/dist/esm/viewers/image/index.js +4 -3
  400. package/dist/esm/viewers/image/interactive-img-component.js +292 -0
  401. package/dist/esm/viewers/image/interactive-img.js +2 -297
  402. package/dist/esm/viewers/image/zoom-level-after-resize.js +6 -0
  403. package/dist/esm/viewers/svg/clientRectangle.js +6 -0
  404. package/dist/esm/viewers/svg/index.js +10 -8
  405. package/dist/esm/viewers/svg/naturalSizeRectangle.js +10 -0
  406. package/dist/esm/viewers/svg/zoomLevelAfterResize.js +6 -0
  407. package/dist/esm/viewers/video.js +5 -4
  408. package/dist/esm/zoomControls.js +7 -7
  409. package/dist/types/ArchiveViewerError.d.ts +9 -0
  410. package/dist/types/DownloadButton.d.ts +2 -0
  411. package/dist/types/DownloadButtonProps.d.ts +8 -0
  412. package/dist/types/DownloadItem.d.ts +3 -0
  413. package/dist/types/DownloadItemProps.d.ts +16 -0
  414. package/dist/types/ErrorViewDownloadButton.d.ts +12 -0
  415. package/dist/types/ItemViewerBase.d.ts +3 -0
  416. package/dist/types/MediaViewerError.d.ts +7 -0
  417. package/dist/types/ToolbarDownloadButton.d.ts +11 -0
  418. package/dist/types/analytics/events/operational/createDownloadFailedEventPayload.d.ts +5 -0
  419. package/dist/types/analytics/events/operational/createDownloadSucceededEventPayload.d.ts +4 -0
  420. package/dist/types/analytics/events/operational/download.d.ts +2 -6
  421. package/dist/types/analytics/events/operational/loadFailed.d.ts +3 -3
  422. package/dist/types/analytics/events/operational/previewTooLarge.d.ts +2 -1
  423. package/dist/types/analytics/events/operational/zipEntryLoadFailed.d.ts +3 -3
  424. package/dist/types/analytics/events/operational/zipEntryLoadSucceeded.d.ts +1 -1
  425. package/dist/types/analytics/events/ui/createNavigatedEvent.d.ts +4 -0
  426. package/dist/types/analytics/events/ui/downloadButtonClicked.d.ts +1 -1
  427. package/dist/types/analytics/events/ui/failedPreviewDownloadButtonClicked.d.ts +3 -2
  428. package/dist/types/analytics/events/ui/inputFromSource.d.ts +3 -0
  429. package/dist/types/analytics/events/ui/navigated.d.ts +0 -4
  430. package/dist/types/analytics/fireAnalytics.d.ts +3 -0
  431. package/dist/types/analytics/getFileAttributes.d.ts +3 -0
  432. package/dist/types/analytics/index.d.ts +2 -10
  433. package/dist/types/buildImgErrorDiagnostics.d.ts +16 -0
  434. package/dist/types/buildVideoErrorDiagnostics.d.ts +16 -0
  435. package/dist/types/classifyFailedSrc.d.ts +7 -0
  436. package/dist/types/components/{media-viewer.d.ts → media-viewer-base.d.ts} +0 -2
  437. package/dist/types/components/media-viewer-with-media-client.d.ts +3 -0
  438. package/dist/types/createItemDownloader.d.ts +1 -0
  439. package/dist/types/download.d.ts +0 -19
  440. package/dist/types/downloadIcon.d.ts +2 -0
  441. package/dist/types/errorMessage.d.ts +5 -7
  442. package/dist/types/errorMessageWithAnalytics.d.ts +5 -0
  443. package/dist/types/errors.d.ts +3 -58
  444. package/dist/types/getErrorDetail.d.ts +2 -0
  445. package/dist/types/getErrorMessageFromError.d.ts +3 -0
  446. package/dist/types/getPrimaryErrorReason.d.ts +3 -0
  447. package/dist/types/getRequestMetadata.d.ts +3 -0
  448. package/dist/types/getSecondaryErrorReason.d.ts +3 -0
  449. package/dist/types/header.d.ts +2 -4
  450. package/dist/types/headerWithIntl.d.ts +4 -0
  451. package/dist/types/index.d.ts +9 -0
  452. package/dist/types/isArchiveViewerError.d.ts +2 -0
  453. package/dist/types/isExternalImageItem.d.ts +2 -0
  454. package/dist/types/isFileStateItem.d.ts +3 -0
  455. package/dist/types/isMediaViewerError.d.ts +2 -0
  456. package/dist/types/item-viewer.d.ts +4 -7
  457. package/dist/types/navigation.d.ts +1 -1
  458. package/dist/types/noop.d.ts +1 -0
  459. package/dist/types/useDownloadButtonDisabledProps.d.ts +1 -0
  460. package/dist/types/utils/extractArchiveFolderName.d.ts +1 -0
  461. package/dist/types/utils/getFolderParent.d.ts +1 -0
  462. package/dist/types/utils/getFormattedFolderName.d.ts +1 -0
  463. package/dist/types/utils/getMediaTypeFromFilename.d.ts +2 -0
  464. package/dist/types/utils/getMimeTypeFromFilename.d.ts +1 -0
  465. package/dist/types/utils/getSelectedIndex.d.ts +2 -0
  466. package/dist/types/utils/isMacPrivateFile.d.ts +1 -0
  467. package/dist/types/utils/isSameIdentifier.d.ts +2 -0
  468. package/dist/types/utils/rejectAfter.d.ts +1 -0
  469. package/dist/types/viewers/archiveSidebar/archive-download-button-wrapper.d.ts +11 -0
  470. package/dist/types/viewers/archiveSidebar/archive-item-viewer-wrapper.d.ts +8 -0
  471. package/dist/types/viewers/archiveSidebar/archive-layout.d.ts +6 -0
  472. package/dist/types/viewers/archiveSidebar/archive-sidebar-file-entry-wrapper.d.ts +9 -0
  473. package/dist/types/viewers/archiveSidebar/archive-sidebar-folder-entry.d.ts +2 -2
  474. package/dist/types/viewers/archiveSidebar/archive-sidebar-folder-wrapper.d.ts +6 -0
  475. package/dist/types/viewers/archiveSidebar/archive-sidebar-renderer.d.ts +2 -2
  476. package/dist/types/viewers/archiveSidebar/archive-sidebar.d.ts +1 -1
  477. package/dist/types/viewers/archiveSidebar/archive-viewer-base.d.ts +21 -0
  478. package/dist/types/viewers/archiveSidebar/archive-viewer-wrapper.d.ts +6 -0
  479. package/dist/types/viewers/archiveSidebar/archive.d.ts +3 -23
  480. package/dist/types/viewers/archiveSidebar/disabled-archive-download-button-wrapper.d.ts +6 -0
  481. package/dist/types/viewers/archiveSidebar/get-archive-entries-from-file-state.d.ts +3 -0
  482. package/dist/types/viewers/archiveSidebar/separator.d.ts +5 -0
  483. package/dist/types/viewers/archiveSidebar/sidebar-header-entry.d.ts +6 -0
  484. package/dist/types/viewers/archiveSidebar/sidebar-header-icon.d.ts +6 -0
  485. package/dist/types/viewers/archiveSidebar/sidebar-header-wrapper.d.ts +6 -0
  486. package/dist/types/viewers/archiveSidebar/sidebar-item-wrapper.d.ts +6 -0
  487. package/dist/types/viewers/archiveSidebar/styleWrappers.d.ts +2 -22
  488. package/dist/types/viewers/archiveSidebar/types.d.ts +2 -2
  489. package/dist/types/viewers/audio.d.ts +4 -4
  490. package/dist/types/viewers/base-viewer.d.ts +2 -2
  491. package/dist/types/viewers/codeViewer/CodeRendererAdvanced/CodeRendererAdvanced.d.ts +5 -1
  492. package/dist/types/viewers/codeViewer/CodeViewRenderer-2.d.ts +3 -0
  493. package/dist/types/viewers/codeViewer/CodeViewRenderer.d.ts +13 -0
  494. package/dist/types/viewers/codeViewer/CodeViewWrapper.d.ts +5 -0
  495. package/dist/types/viewers/codeViewer/CodeViewerHeaderBar-2.d.ts +2 -0
  496. package/dist/types/viewers/codeViewer/CodeViewerHeaderBar.d.ts +5 -0
  497. package/dist/types/viewers/codeViewer/codeViewerRenderer-compiled.d.ts +10 -12
  498. package/dist/types/viewers/codeViewer/codeViewerRenderer.d.ts +3 -10
  499. package/dist/types/viewers/codeViewer/formatMessage.d.ts +1 -0
  500. package/dist/types/viewers/codeViewer/getFormat.d.ts +1 -0
  501. package/dist/types/viewers/codeViewer/getMsgDate.d.ts +1 -0
  502. package/dist/types/viewers/codeViewer/index.d.ts +4 -4
  503. package/dist/types/viewers/codeViewer/lineCount.d.ts +1 -0
  504. package/dist/types/viewers/codeViewer/msgToText.d.ts +3 -0
  505. package/dist/types/viewers/codeViewer/normaliseLineBreaks.d.ts +1 -0
  506. package/dist/types/viewers/codeViewer/parseHeaders.d.ts +3 -0
  507. package/dist/types/viewers/codeViewer/util.d.ts +0 -3
  508. package/dist/types/viewers/customViewer/customViewer.d.ts +2 -2
  509. package/dist/types/viewers/doc/DocViewer.d.ts +17 -0
  510. package/dist/types/viewers/doc/doc-viewer.d.ts +5 -12
  511. package/dist/types/viewers/doc/index.d.ts +3 -3
  512. package/dist/types/viewers/image/index.d.ts +3 -3
  513. package/dist/types/viewers/image/interactive-img-component.d.ts +18 -0
  514. package/dist/types/viewers/image/interactive-img.d.ts +3 -20
  515. package/dist/types/viewers/{svg/utils.d.ts → image/zoom-level-after-resize.d.ts} +0 -3
  516. package/dist/types/viewers/svg/clientRectangle.d.ts +2 -0
  517. package/dist/types/viewers/svg/errors.d.ts +1 -1
  518. package/dist/types/viewers/svg/index.d.ts +3 -3
  519. package/dist/types/viewers/svg/naturalSizeRectangle.d.ts +2 -0
  520. package/dist/types/viewers/svg/zoomLevelAfterResize.d.ts +3 -0
  521. package/dist/types/viewers/video.d.ts +3 -3
  522. package/dist/types/zoomControls.d.ts +2 -2
  523. package/package.json +2 -2
  524. package/dist/cjs/domain/index.js +0 -12
  525. package/dist/cjs/utils/index.js +0 -110
  526. package/dist/cjs/viewers/svg/utils.js +0 -28
  527. package/dist/es2019/domain/index.js +0 -1
  528. package/dist/es2019/utils/index.js +0 -73
  529. package/dist/es2019/viewers/svg/utils.js +0 -25
  530. package/dist/esm/domain/index.js +0 -1
  531. package/dist/esm/utils/index.js +0 -103
  532. package/dist/esm/viewers/svg/utils.js +0 -21
  533. package/dist/types/domain/index.d.ts +0 -1
  534. package/dist/types/utils/index.d.ts +0 -10
  535. package/dist/types/viewers/codeViewer/msg-parser.d.ts +0 -8
  536. /package/dist/cjs/viewers/doc/{doc-viewer.compiled.css → DocViewer.compiled.css} +0 -0
  537. /package/dist/es2019/viewers/doc/{doc-viewer.compiled.css → DocViewer.compiled.css} +0 -0
  538. /package/dist/esm/viewers/doc/{doc-viewer.compiled.css → DocViewer.compiled.css} +0 -0
@@ -1,509 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import React, { Suspense, useCallback, useEffect, useState, useRef } from 'react';
4
- import Loadable from 'react-loadable';
5
- import { isExternalImageIdentifier, isFileIdentifier, toCommonMediaClientError } from '@atlaskit/media-client';
6
- import { Text } from '@atlaskit/primitives/compiled';
7
- import { FormattedMessage } from 'react-intl';
8
- import { messages } from '@atlaskit/media-ui/messages';
9
- import { isCodeViewerItem } from '@atlaskit/media-ui/isCodeViewerItem';
10
- import { useFileState } from '@atlaskit/media-client-react/use-file-state';
11
- import { useMediaClient } from '@atlaskit/media-client-react/use-media-client';
12
- import { Outcome } from './domain';
13
- import { Spinner } from './loading';
14
- import ErrorMessage from './errorMessage';
15
- import { MediaViewerError } from './errors';
16
- import { ErrorViewDownloadButton } from './download';
2
+ import React from 'react';
17
3
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
18
- import { createCommencedEvent } from './analytics/events/operational/commenced';
19
- import { createLoadSucceededEvent } from './analytics/events/operational/loadSucceeded';
20
- import { fireAnalytics, getFileAttributes } from './analytics';
21
- import { InteractiveImg } from './viewers/image/interactive-img';
22
- import ArchiveViewerLoader from './viewers/archiveSidebar/archiveViewerLoader';
23
- import { fg } from '@atlaskit/platform-feature-flags/fg';
24
- import { startMediaFileUfoExperience, succeedMediaFileUfoExperience } from './analytics/ufoExperiences';
25
- import { CustomViewer } from './viewers/customViewer/customViewer';
26
- function loadImageViewer() {
27
- return import( /* webpackChunkName: "@atlaskit-internal_imageViewer" */'./viewers/image');
28
- }
29
- var LoadableImageViewer = Loadable({
30
- loader: function loader() {
31
- return loadImageViewer().then(function (mod) {
32
- return mod.ImageViewer;
33
- });
34
- },
35
- loading: function loading() {
36
- return /*#__PURE__*/React.createElement(Spinner, null);
37
- }
38
- });
39
- var LazyImageViewer = /*#__PURE__*/React.lazy(function () {
40
- return loadImageViewer().then(function (mod) {
41
- return {
42
- default: mod.ImageViewer
43
- };
44
- });
45
- });
46
- function loadVideoViewer() {
47
- return import( /* webpackChunkName: "@atlaskit-internal_videoViewer" */'./viewers/video');
48
- }
49
- var LoadableVideoViewer = Loadable({
50
- loader: function loader() {
51
- return loadVideoViewer().then(function (mod) {
52
- return mod.VideoViewer;
53
- });
54
- },
55
- loading: function loading() {
56
- return /*#__PURE__*/React.createElement(Spinner, null);
57
- }
58
- });
59
- var LazyVideoViewer = /*#__PURE__*/React.lazy(function () {
60
- return loadVideoViewer().then(function (mod) {
61
- return {
62
- default: mod.VideoViewer
63
- };
64
- });
65
- });
66
- function loadAudioViewer() {
67
- return import( /* webpackChunkName: "@atlaskit-internal_audioViewer" */'./viewers/audio');
68
- }
69
- var LoadableAudioViewer = Loadable({
70
- loader: function loader() {
71
- return loadAudioViewer().then(function (mod) {
72
- return mod.AudioViewer;
73
- });
74
- },
75
- loading: function loading() {
76
- return /*#__PURE__*/React.createElement(Spinner, null);
77
- }
78
- });
79
- var LazyAudioViewer = /*#__PURE__*/React.lazy(function () {
80
- return loadAudioViewer().then(function (mod) {
81
- return {
82
- default: mod.AudioViewer
83
- };
84
- });
85
- });
86
- function loadDocViewer() {
87
- return import( /* webpackChunkName: "@atlaskit-internal_docViewer" */'./viewers/doc');
88
- }
89
- var LoadableDocViewer = Loadable({
90
- loader: function loader() {
91
- return loadDocViewer().then(function (mod) {
92
- return mod.DocViewer;
93
- });
94
- },
95
- loading: function loading() {
96
- return /*#__PURE__*/React.createElement(Spinner, null);
97
- }
98
- });
99
- var LazyDocViewer = /*#__PURE__*/React.lazy(function () {
100
- return loadDocViewer().then(function (mod) {
101
- return {
102
- default: mod.DocViewer
103
- };
104
- });
105
- });
106
- function loadCodeViewer() {
107
- return import( /* webpackChunkName: "@atlaskit-internal_codeViewer" */'./viewers/codeViewer');
108
- }
109
- var LoadableCodeViewer = Loadable({
110
- loader: function loader() {
111
- return loadCodeViewer().then(function (mod) {
112
- return mod.CodeViewer;
113
- });
114
- },
115
- loading: function loading() {
116
- return /*#__PURE__*/React.createElement(Spinner, null);
117
- }
118
- });
119
- var LazyCodeViewer = /*#__PURE__*/React.lazy(function () {
120
- return loadCodeViewer().then(function (mod) {
121
- return {
122
- default: mod.CodeViewer
123
- };
124
- });
125
- });
126
- function loadSvgViewer() {
127
- return import( /* webpackChunkName: "@atlaskit-internal_svgViewer" */'./viewers/svg');
128
- }
129
- var LoadableSvgViewer = Loadable({
130
- loader: function loader() {
131
- return (
132
- // @ts-ignore [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
133
- import( /* webpackChunkName: "@atlaskit-internal_svgViewer" */'./viewers/svg').then(function (mod) {
134
- return mod.SvgViewer;
135
- })
136
- );
137
- },
138
- loading: function loading() {
139
- return /*#__PURE__*/React.createElement(Spinner, null);
140
- }
141
- });
142
- var LazySvgViewer = /*#__PURE__*/React.lazy(function () {
143
- return loadSvgViewer().then(function (mod) {
144
- return {
145
- default: mod.SvgViewer
146
- };
147
- });
148
- });
149
- var ViewerSuspense = function ViewerSuspense(_ref) {
150
- var children = _ref.children;
151
- return /*#__PURE__*/React.createElement(Suspense, {
152
- fallback: /*#__PURE__*/React.createElement(Spinner, null)
153
- }, children);
154
- };
155
- // Consts
156
- export var isExternalImageItem = function isExternalImageItem(fileItem) {
157
- return fileItem === 'external-image';
158
- };
159
- export var isFileStateItem = function isFileStateItem(fileItem) {
160
- return !isExternalImageItem(fileItem);
161
- };
4
+ import { isFileIdentifier } from '@atlaskit/media-client';
5
+ import { ItemViewerBase } from './ItemViewerBase';
162
6
  export var MAX_FILE_SIZE_SUPPORTED_BY_CODEVIEWER = 10 * 1024 * 1024;
163
-
164
- /**
165
- * Determines if a file renders natively without backend processing artifacts.
166
- * These files (text/code, PDF, SVG) can be rendered directly from the original binary
167
- * without waiting for transcoded artifacts from the backend.
168
- *
169
- * Evidence:
170
- * - CodeViewer: Uses getFileBinaryURL(id) - works with both 'processing' and 'processed' status
171
- * - DocViewer: Uses getDocumentContent(id) - only needs file ID, not artifacts
172
- * - SvgViewer: Uses MediaSvg with identifier - never touches status or artifacts
173
- */
174
- var canRenderWithoutProcessing = function canRenderWithoutProcessing(fileState) {
175
- var mimeType = fileState.mimeType,
176
- name = fileState.name,
177
- size = fileState.size;
178
-
179
- // Text/code files via CodeViewer (10MB limit)
180
- if (isCodeViewerItem(name, mimeType) && size <= MAX_FILE_SIZE_SUPPORTED_BY_CODEVIEWER) {
181
- return true;
182
- }
183
-
184
- // PDF files via DocViewer
185
- if (mimeType === 'application/pdf') {
186
- return true;
187
- }
188
-
189
- // SVG files via SvgViewer
190
- if (mimeType === 'image/svg+xml') {
191
- return true;
192
- }
193
- return false;
194
- };
195
-
196
- /**
197
- * Creates a synthetic ProcessedFileState for native-rendered files.
198
- * These files don't need backend processing, so we normalize to 'processed'
199
- * to prevent unnecessary re-renders when the actual status changes.
200
- * Note: artifacts are not used by native viewers (CodeViewer, DocViewer, SvgViewer)
201
- * as they fetch the original binary directly via file ID.
202
- */
203
- var createProcessedFileState = function createProcessedFileState(fileState) {
204
- return {
205
- status: 'processed',
206
- id: fileState.id,
207
- name: fileState.name,
208
- size: fileState.size,
209
- mediaType: fileState.mediaType,
210
- mimeType: fileState.mimeType,
211
- artifacts: {},
212
- preview: fileState.preview,
213
- createdAt: fileState.createdAt
214
- };
215
- };
216
- export var ItemViewerBase = function ItemViewerBase(_ref2) {
217
- var identifier = _ref2.identifier,
218
- showControls = _ref2.showControls,
219
- onClose = _ref2.onClose,
220
- previewCount = _ref2.previewCount,
221
- contextId = _ref2.contextId,
222
- createAnalyticsEvent = _ref2.createAnalyticsEvent,
223
- viewerOptions = _ref2.viewerOptions,
224
- traceContext = _ref2.traceContext;
225
- // States and Refs
226
- var _useState = useState(Outcome.pending()),
227
- _useState2 = _slicedToArray(_useState, 2),
228
- item = _useState2[0],
229
- setItem = _useState2[1];
230
- var fileStateFlagsRef = useRef({
231
- wasStatusUploading: false,
232
- wasStatusProcessing: false
233
- });
234
- var createAnalyticsEventRef = useRef(createAnalyticsEvent);
235
- createAnalyticsEventRef.current = createAnalyticsEvent;
236
-
237
- // Hooks
238
- var mediaClient = useMediaClient();
239
- var _useFileState = useFileState(isExternalImageIdentifier(identifier) ? '' : identifier.id, {
240
- collectionName: isExternalImageIdentifier(identifier) ? '' : identifier.collectionName,
241
- skipRemote: isExternalImageIdentifier(identifier)
242
- }),
243
- fileState = _useFileState.fileState;
244
- var renderDownloadButton = useCallback(function (fileState, error) {
245
- var collectionName = isFileIdentifier(identifier) ? identifier.collectionName : undefined;
246
- return /*#__PURE__*/React.createElement(ErrorViewDownloadButton, {
247
- fileState: fileState,
248
- mediaClient: mediaClient,
249
- error: error,
250
- collectionName: collectionName,
251
- traceContext: traceContext
252
- });
253
- }, [mediaClient, identifier, traceContext]);
254
-
255
- // Did mount
256
-
257
- useEffect(function () {
258
- if (isExternalImageIdentifier(identifier)) {
259
- return;
260
- }
261
- fireAnalytics(createCommencedEvent(identifier === null || identifier === void 0 ? void 0 : identifier.id, traceContext), createAnalyticsEventRef.current);
262
- startMediaFileUfoExperience();
263
- }, [identifier, traceContext]);
264
- var isNativeFileOptimizationEnabled = fg('media_viewer_prevent_rerender_on_polling');
265
- useEffect(function () {
266
- // External images don't need backend subscriptions
267
- if (isExternalImageIdentifier(identifier)) {
268
- setItem(Outcome.successful('external-image'));
269
- return;
270
- }
271
- if (!fileState) {
272
- return;
273
- }
274
- var status = fileState.status;
275
-
276
- // Track status flags for analytics
277
- if (status === 'processing') {
278
- fileStateFlagsRef.current.wasStatusProcessing = true;
279
- } else if (status === 'uploading') {
280
- fileStateFlagsRef.current.wasStatusUploading = true;
281
- }
282
-
283
- // Handle error state
284
- if (status === 'error') {
285
- setItem(Outcome.failed(new MediaViewerError('itemviewer-fetch-metadata', toCommonMediaClientError(fileState))));
286
- return;
287
- }
288
-
289
- // Optimization: normalize native files to ProcessedFileState to prevent
290
- // unnecessary re-renders when status changes (e.g., processing → processed)
291
- if (isNativeFileOptimizationEnabled && canRenderWithoutProcessing(fileState)) {
292
- setItem(function (prev) {
293
- // Keep stable reference if we already have a processed state for this file
294
- if (prev.status === 'SUCCESSFUL' && prev.data && isFileStateItem(prev.data) && prev.data.id === fileState.id && prev.data.status === 'processed') {
295
- return prev;
296
- }
297
- // First load or different file: create normalized processed state
298
- return Outcome.successful(createProcessedFileState(fileState));
299
- });
300
- return;
301
- }
302
-
303
- // Non-native files: standard behavior
304
- setItem(Outcome.successful(fileState));
305
- // fileState object reference changes often when polling items (especially during processing); only re-run when fileState.status changes
306
- // eslint-disable-next-line react-hooks/exhaustive-deps
307
- }, [isNativeFileOptimizationEnabled ? fileState === null || fileState === void 0 ? void 0 : fileState.status : fileState, identifier]);
308
- var onSuccess = useCallback(function () {
309
- item.whenSuccessful(function (fileItem) {
310
- if (isFileStateItem(fileItem)) {
311
- var fileAttributes = getFileAttributes(fileItem);
312
- fireAnalytics(createLoadSucceededEvent(fileAttributes, traceContext), createAnalyticsEventRef.current);
313
- succeedMediaFileUfoExperience({
314
- fileAttributes: fileAttributes,
315
- fileStateFlags: fileStateFlagsRef.current
316
- });
317
- }
318
- });
319
- }, [item, traceContext]);
320
- var onLoadFail = useCallback(function (mediaViewerError) {
321
- setItem(Outcome.failed(mediaViewerError, fileState));
322
- }, [fileState]);
323
- var renderItem = function renderItem(fileItem) {
324
- var _viewerOptions$custom;
325
- var collectionName = isFileIdentifier(identifier) ? identifier.collectionName : undefined;
326
- var viewerProps = {
327
- mediaClient: mediaClient,
328
- item: fileItem,
329
- collectionName: collectionName,
330
- onClose: onClose,
331
- previewCount: previewCount,
332
- viewerOptions: viewerOptions,
333
- traceContext: traceContext
334
- };
335
- var customRenderer = viewerOptions === null || viewerOptions === void 0 || (_viewerOptions$custom = viewerOptions.customRenderers) === null || _viewerOptions$custom === void 0 ? void 0 : _viewerOptions$custom.find(function (renderer) {
336
- return renderer.shouldUseCustomRenderer({
337
- fileItem: fileItem
338
- });
339
- });
340
- if (customRenderer) {
341
- return /*#__PURE__*/React.createElement(CustomViewer, _extends({
342
- customRendererConfig: customRenderer,
343
- onError: onLoadFail,
344
- onSuccess: onSuccess
345
- }, viewerProps));
346
- }
347
-
348
- // TODO: fix all of the item errors
349
-
350
- if (isCodeViewerItem(fileItem.name, fileItem.mimeType)) {
351
- //Render error message if code file has size over 10MB.
352
- //Required by https://product-fabric.atlassian.net/browse/MEX-1788
353
- if (fileItem.size > MAX_FILE_SIZE_SUPPORTED_BY_CODEVIEWER) {
354
- return renderError(new MediaViewerError('codeviewer-file-size-exceeds'), fileItem);
355
- }
356
- return fg('platform_media_react19_support') ? /*#__PURE__*/React.createElement(ViewerSuspense, null, /*#__PURE__*/React.createElement(LazyCodeViewer, _extends({
357
- onSuccess: onSuccess,
358
- onError: onLoadFail
359
- }, viewerProps))) : /*#__PURE__*/React.createElement(LoadableCodeViewer, _extends({
360
- onSuccess: onSuccess,
361
- onError: onLoadFail
362
- }, viewerProps));
363
- }
364
- if (isFileIdentifier(identifier) && fileItem.mimeType === 'image/svg+xml') {
365
- return fg('platform_media_react19_support') ? /*#__PURE__*/React.createElement(ViewerSuspense, null, /*#__PURE__*/React.createElement(LazySvgViewer, {
366
- identifier: identifier,
367
- onLoad: onSuccess,
368
- onError: onLoadFail,
369
- onClose: onClose,
370
- traceContext: traceContext
371
- })) : /*#__PURE__*/React.createElement(LoadableSvgViewer, {
372
- identifier: identifier,
373
- onLoad: onSuccess,
374
- onError: onLoadFail,
375
- onClose: onClose,
376
- traceContext: traceContext
377
- });
378
- }
379
- var mediaType = fileItem.mediaType;
380
- switch (mediaType) {
381
- case 'image':
382
- return fg('platform_media_react19_support') ? /*#__PURE__*/React.createElement(ViewerSuspense, null, /*#__PURE__*/React.createElement(LazyImageViewer, _extends({
383
- onLoad: onSuccess,
384
- onError: onLoadFail,
385
- contextId: contextId
386
- }, viewerProps))) : /*#__PURE__*/React.createElement(LoadableImageViewer, _extends({
387
- onLoad: onSuccess,
388
- onError: onLoadFail,
389
- contextId: contextId
390
- }, viewerProps));
391
- case 'audio':
392
- return fg('platform_media_react19_support') ? /*#__PURE__*/React.createElement(ViewerSuspense, null, /*#__PURE__*/React.createElement(LazyAudioViewer, _extends({
393
- showControls: showControls,
394
- onCanPlay: onSuccess,
395
- onError: onLoadFail
396
- }, viewerProps))) : /*#__PURE__*/React.createElement(LoadableAudioViewer, _extends({
397
- showControls: showControls,
398
- onCanPlay: onSuccess,
399
- onError: onLoadFail
400
- }, viewerProps));
401
- case 'video':
402
- return fg('platform_media_react19_support') ? /*#__PURE__*/React.createElement(ViewerSuspense, null, /*#__PURE__*/React.createElement(LazyVideoViewer, _extends({
403
- identifier: identifier,
404
- showControls: showControls,
405
- onCanPlay: onSuccess,
406
- onError: onLoadFail
407
- }, viewerProps))) : /*#__PURE__*/React.createElement(LoadableVideoViewer, _extends({
408
- identifier: identifier,
409
- showControls: showControls,
410
- onCanPlay: onSuccess,
411
- onError: onLoadFail
412
- }, viewerProps));
413
- case 'doc':
414
- return fg('platform_media_react19_support') ? /*#__PURE__*/React.createElement(ViewerSuspense, null, /*#__PURE__*/React.createElement(LazyDocViewer, _extends({
415
- onSuccess: onSuccess,
416
- onError: onLoadFail
417
- }, viewerProps))) : /*#__PURE__*/React.createElement(LoadableDocViewer, _extends({
418
- onSuccess: onSuccess,
419
- onError: onLoadFail
420
- }, viewerProps));
421
- case 'archive':
422
- return /*#__PURE__*/React.createElement(ArchiveViewerLoader, _extends({
423
- onSuccess: onSuccess,
424
- onError: onLoadFail
425
- }, viewerProps));
426
- }
427
- return renderError(new MediaViewerError('unsupported'), fileItem);
428
- };
429
- var renderError = useCallback(function (error, fileItem) {
430
- if (fileItem) {
431
- var _fileState;
432
- if (fileItem === 'external-image') {
433
- // external image error outcome
434
- _fileState = {
435
- id: 'external-image',
436
- status: 'error'
437
- };
438
- } else {
439
- // FileState error outcome
440
- _fileState = fileItem;
441
- }
442
- return /*#__PURE__*/React.createElement(ErrorMessage, {
443
- fileId: isFileIdentifier(identifier) ? identifier.id : 'undefined',
444
- error: error,
445
- fileState: _fileState,
446
- fileStateFlags: fileStateFlagsRef.current,
447
- traceContext: traceContext
448
- }, /*#__PURE__*/React.createElement(Text, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.try_downloading_file)), renderDownloadButton(_fileState, error));
449
- } else {
450
- return /*#__PURE__*/React.createElement(ErrorMessage, {
451
- fileId: isFileIdentifier(identifier) ? identifier.id : 'undefined',
452
- error: error,
453
- fileStateFlags: fileStateFlagsRef.current
454
- });
455
- }
456
- }, [identifier, renderDownloadButton, traceContext]);
457
- return item.match({
458
- successful: function successful(fileItem) {
459
- if (fileItem === 'external-image') {
460
- // render an external image
461
- var _ref3 = identifier,
462
- dataURI = _ref3.dataURI,
463
- name = _ref3.name;
464
- return /*#__PURE__*/React.createElement(InteractiveImg, {
465
- src: dataURI,
466
- alt: name !== null && name !== void 0 ? name : '',
467
- onLoad: function onLoad() {
468
- fireAnalytics(createLoadSucceededEvent({
469
- fileId: 'external-image'
470
- }), createAnalyticsEventRef.current);
471
- succeedMediaFileUfoExperience({
472
- fileAttributes: {
473
- fileId: 'external-image'
474
- },
475
- fileStateFlags: fileStateFlagsRef.current
476
- });
477
- },
478
- onError: function onError() {
479
- setItem(Outcome.failed(new MediaViewerError('imageviewer-external-onerror')));
480
- }
481
- });
482
- } else {
483
- // render a FileState fetched through media-client
484
- switch (fileItem.status) {
485
- case 'processed':
486
- case 'uploading':
487
- case 'processing':
488
- return renderItem(fileItem);
489
- case 'failed-processing':
490
- if (fileItem.mediaType === 'doc' && fileItem.mimeType === 'application/pdf') {
491
- return renderItem(fileItem);
492
- }
493
- return renderError(new MediaViewerError('itemviewer-file-failed-processing-status'), fileItem);
494
- case 'error':
495
- return renderError(new MediaViewerError('itemviewer-file-error-status', toCommonMediaClientError(fileItem)), fileItem);
496
- }
497
- }
498
- },
499
- pending: function pending() {
500
- return /*#__PURE__*/React.createElement(Spinner, null);
501
- },
502
- failed: function failed(error) {
503
- return renderError(error, item.data);
504
- }
505
- });
506
- };
507
7
  var ViewerWithKey = function ViewerWithKey(props) {
508
8
  var identifier = props.identifier;
509
9
  var key = isFileIdentifier(identifier) ? identifier.id : identifier.dataURI;
package/dist/esm/list.js CHANGED
@@ -5,7 +5,7 @@ import { ItemViewer } from './item-viewer';
5
5
  import { HeaderWrapper, ListWrapper } from './styleWrappers';
6
6
  import { Navigation } from './navigation';
7
7
  import { getRandomTelemetryId } from '@atlaskit/media-common';
8
- import Header from './header';
8
+ import Header from './headerWithIntl';
9
9
  export var List = function List(_ref) {
10
10
  var defaultSelectedItem = _ref.defaultSelectedItem,
11
11
  onClose = _ref.onClose,
@@ -1,19 +1,19 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import React, { useState, useLayoutEffect, useRef } from 'react';
4
+ import { start } from 'perf-marks';
5
+ import FocusLock from 'react-focus-lock';
4
6
  import { IntlProvider, injectIntl } from 'react-intl';
5
- import { Shortcut } from '@atlaskit/media-ui/shortcut';
7
+ import ScrollLock from 'react-scrolllock';
6
8
  import { useAnalyticsEvents } from '@atlaskit/analytics-next/useAnalyticsEvents';
7
- import { fireAnalytics } from './analytics';
9
+ import { Shortcut } from '@atlaskit/media-ui/shortcut';
8
10
  import { createModalEvent } from './analytics/events/screen/modal';
9
11
  import { createClosedEvent } from './analytics/events/ui/closed';
10
- import { List } from './list';
12
+ import { fireAnalytics } from './analytics/fireAnalytics';
13
+ import { mediaViewerPopupClass } from './classnames';
11
14
  import { Content } from './content';
15
+ import { List } from './list';
12
16
  import { Blanket, SidebarWrapper } from './styleWrappers';
13
- import { start } from 'perf-marks';
14
- import { mediaViewerPopupClass } from './classnames';
15
- import ScrollLock from 'react-scrolllock';
16
- import FocusLock from 'react-focus-lock';
17
17
  var MediaViewerComponent = function MediaViewerComponent(_ref) {
18
18
  var featureFlags = _ref.featureFlags,
19
19
  items = _ref.items,
@@ -6,18 +6,19 @@ import _inherits from "@babel/runtime/helpers/inherits";
6
6
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
7
7
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
8
  /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
9
+
9
10
  import React from 'react';
10
11
  import { Component } from 'react';
12
+ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
11
13
  import ArrowLeftCircleIcon from '@atlaskit/icon/core/chevron-left';
12
14
  import ArrowRightCircleIcon from '@atlaskit/icon/core/chevron-right';
13
15
  import { hideControlsClassName } from '@atlaskit/media-ui/classNames';
14
16
  import { Shortcut } from '@atlaskit/media-ui/shortcut';
15
- import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
16
17
  import { fg } from '@atlaskit/platform-feature-flags/fg';
18
+ import { createNavigatedEvent } from './analytics/events/ui/createNavigatedEvent';
19
+ import { fireAnalytics } from './analytics/fireAnalytics';
17
20
  import { ArrowsWrapper, RightWrapper, LeftWrapper, Arrow } from './styleWrappers';
18
- import { getSelectedIndex } from './utils';
19
- import { createNavigatedEvent } from './analytics/events/ui/navigated';
20
- import { fireAnalytics } from './analytics';
21
+ import { getSelectedIndex } from './utils/getSelectedIndex';
21
22
  // eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
22
23
  import { Pressable, xcss } from '@atlaskit/primitives';
23
24
  export var nextNavButtonId = 'media-viewer-navigation-next';
@@ -0,0 +1 @@
1
+ export function noop() {}
@@ -0,0 +1,12 @@
1
+ import { useIntl } from 'react-intl';
2
+ import { messages } from '@atlaskit/media-ui/messages';
3
+ export var useDownloadButtonDisabledProps = function useDownloadButtonDisabledProps(mediaClient) {
4
+ var _useIntl = useIntl(),
5
+ formatMessage = _useIntl.formatMessage;
6
+ var isDisabled = mediaClient.config.enforceDataSecurityPolicy;
7
+ var tooltip = isDisabled ? formatMessage(messages.download_disabled_security_policy) : undefined;
8
+ return {
9
+ isDisabled: isDisabled,
10
+ tooltip: tooltip
11
+ };
12
+ };
@@ -0,0 +1,4 @@
1
+ export var extractArchiveFolderName = function extractArchiveFolderName(folderName) {
2
+ var index = folderName.lastIndexOf('.');
3
+ return index > -1 ? folderName.substring(0, index) + '/' : folderName + '/';
4
+ };
@@ -0,0 +1,9 @@
1
+ export var getFolderParent = function getFolderParent(path) {
2
+ var pathParts = path.substring(0, path.length - 1).split('/');
3
+ pathParts.pop();
4
+ var parent = pathParts.at(-1);
5
+ if (!parent) {
6
+ return ''; // root
7
+ }
8
+ return pathParts.join('/') + '/';
9
+ };
@@ -0,0 +1,12 @@
1
+ export var getFormattedFolderName = function getFormattedFolderName(folderName) {
2
+ // We assume name ends with '/' unless it is the root directory
3
+ if (folderName === '') {
4
+ return '';
5
+ }
6
+ var name = folderName.substring(0, folderName.length - 1);
7
+ var index = name.lastIndexOf('/');
8
+ if (index === -1) {
9
+ return name;
10
+ }
11
+ return name.substring(index + 1);
12
+ };
@@ -0,0 +1,6 @@
1
+ import { getMediaTypeFromMimeType } from '@atlaskit/media-common';
2
+ import { getMimeTypeFromFilename } from './getMimeTypeFromFilename';
3
+ export var getMediaTypeFromFilename = function getMediaTypeFromFilename(filename) {
4
+ var mimeType = getMimeTypeFromFilename(filename);
5
+ return getMediaTypeFromMimeType(mimeType);
6
+ };
@@ -0,0 +1,12 @@
1
+ import { getType } from 'mime';
2
+ export var getMimeTypeFromFilename = function getMimeTypeFromFilename(filename) {
3
+ var extension = filename.split('.').pop();
4
+ if (!extension) {
5
+ return '';
6
+ }
7
+ var mimeType = getType(extension);
8
+ if (!mimeType) {
9
+ return '';
10
+ }
11
+ return mimeType;
12
+ };
@@ -0,0 +1,9 @@
1
+ import { isSameIdentifier } from './isSameIdentifier';
2
+
3
+ // TODO MS-1752 - current implementation makes viewer navigation to misbehave
4
+ // if passed a file with the same id (with different occurrenceKeys) or with the same dataURI twice
5
+ export var getSelectedIndex = function getSelectedIndex(items, selectedItem) {
6
+ return items.findIndex(function (item) {
7
+ return isSameIdentifier(item, selectedItem);
8
+ });
9
+ };
@@ -0,0 +1,3 @@
1
+ export var isMacPrivateFile = function isMacPrivateFile(fileName) {
2
+ return fileName.startsWith('__MACOSX') || fileName.includes('.DS_Store');
3
+ };
@@ -0,0 +1,10 @@
1
+ import { isFileIdentifier } from '@atlaskit/media-client';
2
+ export var isSameIdentifier = function isSameIdentifier(id1, id2) {
3
+ if (isFileIdentifier(id1) && isFileIdentifier(id2)) {
4
+ return id1.id === id2.id;
5
+ }
6
+ if (!isFileIdentifier(id1) && !isFileIdentifier(id2)) {
7
+ return id1.dataURI === id2.dataURI;
8
+ }
9
+ return false;
10
+ };