@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
@@ -0,0 +1,292 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
+ import React from 'react';
10
+ import VideoHdIcon from '@atlaskit/icon-lab/core/video-hd';
11
+ import VideoHdFilledIcon from '@atlaskit/icon-lab/core/video-hd-filled';
12
+ import { MAX_RESOLUTION } from '@atlaskit/media-client/constants';
13
+ import { Camera } from '@atlaskit/media-ui/camera/camera';
14
+ import { hideControlsClassName } from '@atlaskit/media-ui/classNames';
15
+ import { getCssFromImageOrientation } from '@atlaskit/media-ui/imageMetaData/getCssFromImageOrientation';
16
+ import { Rectangle } from '@atlaskit/media-ui/rectangle';
17
+ import { Vector2 } from '@atlaskit/media-ui/vector2';
18
+ import Spinner from '@atlaskit/spinner/spinner';
19
+ import { ZoomLevel } from '../../domain/zoomLevel';
20
+ import { BaselineExtend, HDIconGroupWrapper, ImageWrapper, Img } from '../../styleWrappers';
21
+ import { closeOnDirectClick } from '../../utils/closeOnDirectClick';
22
+ import { ZoomControls } from '../../zoomControls';
23
+ import { zoomLevelAfterResize } from './zoom-level-after-resize';
24
+ var clientRectangle = function clientRectangle(el) {
25
+ var clientWidth = el.clientWidth,
26
+ clientHeight = el.clientHeight;
27
+ return new Rectangle(clientWidth, clientHeight);
28
+ };
29
+ var naturalSizeRectangle = function naturalSizeRectangle(el) {
30
+ var naturalWidth = el.naturalWidth,
31
+ naturalHeight = el.naturalHeight;
32
+ return new Rectangle(naturalWidth, naturalHeight);
33
+ };
34
+ var initialState = {
35
+ zoomLevel: new ZoomLevel(1),
36
+ isHDActive: false,
37
+ isHDActivating: false,
38
+ isHDAvailable: false,
39
+ isDragging: false,
40
+ cursorPos: new Vector2(0, 0),
41
+ hasBeenLoadedOnce: false
42
+ };
43
+ export var InteractiveImgComponent = /*#__PURE__*/function (_React$Component) {
44
+ function InteractiveImgComponent() {
45
+ var _this;
46
+ _classCallCheck(this, InteractiveImgComponent);
47
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
48
+ args[_key] = arguments[_key];
49
+ }
50
+ _this = _callSuper(this, InteractiveImgComponent, [].concat(args));
51
+ _defineProperty(_this, "state", initialState);
52
+ _defineProperty(_this, "saveWrapperRef", function (ref) {
53
+ return _this.wrapper = ref;
54
+ });
55
+ _defineProperty(_this, "onImageClicked", function (e) {
56
+ var _this$props = _this.props,
57
+ onClose = _this$props.onClose,
58
+ onBlanketClicked = _this$props.onBlanketClicked;
59
+ if (e.target === e.currentTarget && onBlanketClicked) {
60
+ onBlanketClicked();
61
+ }
62
+ closeOnDirectClick(onClose)(e);
63
+ });
64
+ _defineProperty(_this, "onImgLoad", function (ev) {
65
+ var _this$props2 = _this.props,
66
+ onLoad = _this$props2.onLoad,
67
+ originalBinaryImageSrc = _this$props2.originalBinaryImageSrc;
68
+ var _this$state = _this.state,
69
+ hasBeenLoadedOnce = _this$state.hasBeenLoadedOnce,
70
+ oldZoomLevel = _this$state.zoomLevel,
71
+ currentCamera = _this$state.camera;
72
+ var _this$state2 = _this.state,
73
+ isHDActivating = _this$state2.isHDActivating,
74
+ isHDAvailable = _this$state2.isHDAvailable,
75
+ isHDActive = _this$state2.isHDActive;
76
+ if (!_this.wrapper) {
77
+ return;
78
+ }
79
+ var viewport = clientRectangle(_this.wrapper);
80
+ var originalImgRect = naturalSizeRectangle(ev.currentTarget);
81
+ var camera = new Camera(viewport, originalImgRect);
82
+ var newZoomLevel;
83
+ if (hasBeenLoadedOnce && currentCamera) {
84
+ /* This is not first time image is loading. Likely due to new (HD) image is loaded.
85
+ * In order to keep new image on the same perceived zoom level we need to scale.
86
+ * It depends on ration between old and new images and current zoom level.
87
+ * For example:
88
+ * - old image is 2000px with zoom at 50% (0.5). New image is 4000px. 2000/4000 * 0.5 = 0.25 (25%)
89
+ * - old image is 2000px with zoom at 200% (2). New image is 4000px. 2000/4000 * 2 = 1 (100%)
90
+ */
91
+ var previousImageWidth = currentCamera.originalImg.width;
92
+ var newImageWidth = originalImgRect.width;
93
+ newZoomLevel = new ZoomLevel(previousImageWidth / newImageWidth * oldZoomLevel.value);
94
+ isHDActivating = false;
95
+ } else {
96
+ newZoomLevel = new ZoomLevel(camera.scaleDownToFit);
97
+
98
+ // If initial (non-HD) image is equal to MAX resolution -
99
+ // this means most likely original image had higher res (because non-HD is downsized and caped off with MAX res)
100
+ isHDAvailable = !!originalBinaryImageSrc && (originalImgRect.width === MAX_RESOLUTION || originalImgRect.height === MAX_RESOLUTION);
101
+
102
+ // Automatically activate HD on first load if zoom level is already 100% or bigger
103
+ isHDActive = newZoomLevel.value >= 1;
104
+ if (onLoad) {
105
+ // Call onLoad only once on initial image render
106
+ onLoad();
107
+ }
108
+ }
109
+ _this.setState({
110
+ camera: camera,
111
+ zoomLevel: newZoomLevel,
112
+ hasBeenLoadedOnce: true,
113
+ isHDActivating: isHDActivating,
114
+ isHDAvailable: isHDAvailable,
115
+ isHDActive: isHDActive
116
+ });
117
+ });
118
+ _defineProperty(_this, "onResize", function () {
119
+ var camera = _this.state.camera;
120
+ if (!_this.wrapper || !camera) {
121
+ return;
122
+ }
123
+ var oldZoomLevel = _this.state.zoomLevel;
124
+ var newViewport = clientRectangle(_this.wrapper);
125
+ var newCamera = camera.resizedViewport(newViewport);
126
+ var newZoomLevel = zoomLevelAfterResize(newCamera, camera, oldZoomLevel);
127
+ _this.setState({
128
+ camera: newCamera,
129
+ zoomLevel: newZoomLevel
130
+ });
131
+ });
132
+ _defineProperty(_this, "onZoomChange", function (nextZoomLevel) {
133
+ var camera = _this.state.camera;
134
+ var _this2 = _this,
135
+ wrapper = _this2.wrapper;
136
+ if (!wrapper || !camera) {
137
+ return;
138
+ }
139
+ var scrollLeft = wrapper.scrollLeft,
140
+ scrollTop = wrapper.scrollTop;
141
+ var prevOffset = new Vector2(scrollLeft, scrollTop);
142
+ var _this$state3 = _this.state,
143
+ prevZoomLevel = _this$state3.zoomLevel,
144
+ prevIsHDActive = _this$state3.isHDActive,
145
+ prevIsHDActivating = _this$state3.isHDActivating;
146
+ var isHDActive = prevIsHDActive || nextZoomLevel.value >= 1;
147
+ var isHDActivating = prevIsHDActivating || !prevIsHDActive && isHDActive;
148
+ _this.setState({
149
+ zoomLevel: nextZoomLevel,
150
+ isHDActive: isHDActive,
151
+ isHDActivating: isHDActivating
152
+ }, function () {
153
+ var _camera$scaledOffset = camera.scaledOffset(prevOffset, prevZoomLevel.value, nextZoomLevel.value),
154
+ x = _camera$scaledOffset.x,
155
+ y = _camera$scaledOffset.y;
156
+ wrapper.scrollLeft = x;
157
+ wrapper.scrollTop = y;
158
+ });
159
+ });
160
+ _defineProperty(_this, "startDragging", function (ev) {
161
+ // stopping propagation to prevent media viewer from closing
162
+ // when clicking on the image
163
+ ev.stopPropagation();
164
+ ev.preventDefault();
165
+ _this.setState({
166
+ isDragging: true,
167
+ cursorPos: new Vector2(ev.screenX, ev.screenY)
168
+ });
169
+ });
170
+ _defineProperty(_this, "stopDragging", function (ev) {
171
+ ev.preventDefault();
172
+ _this.setState({
173
+ isDragging: false
174
+ });
175
+ });
176
+ _defineProperty(_this, "panImage", function (ev) {
177
+ if (_this.state.isDragging && _this.wrapper) {
178
+ var cursorPos = new Vector2(ev.screenX, ev.screenY);
179
+ var delta = _this.state.cursorPos.sub(cursorPos);
180
+ _this.setState({
181
+ cursorPos: cursorPos
182
+ });
183
+ _this.wrapper.scrollLeft += delta.x;
184
+ _this.wrapper.scrollTop += delta.y;
185
+ }
186
+ });
187
+ return _this;
188
+ }
189
+ _inherits(InteractiveImgComponent, _React$Component);
190
+ return _createClass(InteractiveImgComponent, [{
191
+ key: "componentDidMount",
192
+ value: function componentDidMount() {
193
+ this.state = initialState;
194
+ window.addEventListener('resize', this.onResize);
195
+ document.addEventListener('mousemove', this.panImage);
196
+ document.addEventListener('mouseup', this.stopDragging);
197
+ }
198
+ }, {
199
+ key: "componentWillUnmount",
200
+ value: function componentWillUnmount() {
201
+ window.removeEventListener('resize', this.onResize);
202
+ document.removeEventListener('mousemove', this.panImage);
203
+ document.removeEventListener('mouseup', this.stopDragging);
204
+ }
205
+ }, {
206
+ key: "renderHDIndicator",
207
+ value: function renderHDIndicator() {
208
+ var _this$state4 = this.state,
209
+ isHDActivating = _this$state4.isHDActivating,
210
+ isHDAvailable = _this$state4.isHDAvailable,
211
+ isHDActive = _this$state4.isHDActive;
212
+ if (!isHDAvailable) {
213
+ return null;
214
+ }
215
+ return (
216
+ /*#__PURE__*/
217
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
218
+ React.createElement(HDIconGroupWrapper, {
219
+ className: hideControlsClassName
220
+ }, isHDActivating ? /*#__PURE__*/React.createElement(Spinner, {
221
+ appearance: "invert"
222
+ }) : undefined, isHDActive ? /*#__PURE__*/React.createElement(VideoHdFilledIcon, {
223
+ label: "hd active"
224
+ }) : /*#__PURE__*/React.createElement(VideoHdIcon, {
225
+ label: "hd"
226
+ }))
227
+ );
228
+ }
229
+ }, {
230
+ key: "render",
231
+ value: function render() {
232
+ var _this$props3 = this.props,
233
+ src = _this$props3.src,
234
+ originalBinaryImageSrc = _this$props3.originalBinaryImageSrc,
235
+ orientation = _this$props3.orientation,
236
+ onError = _this$props3.onError;
237
+ var _this$state5 = this.state,
238
+ zoomLevel = _this$state5.zoomLevel,
239
+ isHDAvailable = _this$state5.isHDAvailable,
240
+ isHDActive = _this$state5.isHDActive,
241
+ camera = _this$state5.camera,
242
+ isDragging = _this$state5.isDragging;
243
+ var canDrag = camera && zoomLevel.value > camera.scaleToFit || false;
244
+ // We use style attr instead of SC prop for perf reasons
245
+ var imgStyle = camera && camera.scaledImg(zoomLevel.value) || {
246
+ visibility: 'hidden'
247
+ };
248
+ // When image loads it does two things at the same time 1) it renders itself in the browser 2) triggers onLoad
249
+ // visibility: 'hidden' is here to prevent image rendering on the screen (with 100%) before next
250
+ // react re-render when we have `camera` and can control it's zoom level.
251
+ // overflow: 'hidden' is here to prevent scroll going wild while image is rendered in visibility: 'hidden'
252
+ // We can't use display: none or not render image, because we do need `onLoad` to trigger and read it's dimensions
253
+ var wrapperStyleOverride = camera ? {} : {
254
+ overflow: 'hidden'
255
+ };
256
+ if (orientation) {
257
+ imgStyle.transform = getCssFromImageOrientation(orientation);
258
+ }
259
+ var srcToDisplay = isHDAvailable && isHDActive && originalBinaryImageSrc ? originalBinaryImageSrc : src;
260
+ return /*#__PURE__*/React.createElement(ImageWrapper, {
261
+ "data-testid": "media-viewer-image-content",
262
+ onClick: this.onImageClicked,
263
+ ref: this.saveWrapperRef
264
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
265
+ ,
266
+ style: wrapperStyleOverride
267
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
268
+ ,
269
+ className: "media-viewer-image-content"
270
+ }, /*#__PURE__*/React.createElement(Img, {
271
+ "data-testid": "media-viewer-image",
272
+ canDrag: canDrag,
273
+ isDragging: isDragging,
274
+ src: srcToDisplay,
275
+ alt: this.props.alt
276
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
277
+ ,
278
+ style: imgStyle,
279
+ onLoad: this.onImgLoad,
280
+ onError: onError,
281
+ onMouseDown: this.startDragging,
282
+ shouldPixelate: zoomLevel.value > 1
283
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
284
+ ,
285
+ className: "media-viewer-image"
286
+ }), /*#__PURE__*/React.createElement(BaselineExtend, null), /*#__PURE__*/React.createElement(ZoomControls, {
287
+ zoomLevel: zoomLevel,
288
+ onChange: this.onZoomChange
289
+ }, this.renderHDIndicator()));
290
+ }
291
+ }]);
292
+ }(React.Component);
@@ -1,302 +1,7 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
- import _inherits from "@babel/runtime/helpers/inherits";
6
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
- import React from 'react';
10
- import { Camera } from '@atlaskit/media-ui/camera/camera';
11
- import { getCssFromImageOrientation } from '@atlaskit/media-ui/imageMetaData/getCssFromImageOrientation';
12
- import { hideControlsClassName } from '@atlaskit/media-ui/classNames';
13
- import { Rectangle } from '@atlaskit/media-ui/rectangle';
14
- import { Vector2 } from '@atlaskit/media-ui/vector2';
15
- import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
16
- import { MAX_RESOLUTION } from '@atlaskit/media-client/constants';
17
1
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
18
- import VideoHdIcon from '@atlaskit/icon-lab/core/video-hd';
19
- import VideoHdFilledIcon from '@atlaskit/icon-lab/core/video-hd-filled';
20
- import Spinner from '@atlaskit/spinner/spinner';
21
- import { BaselineExtend, HDIconGroupWrapper, ImageWrapper, Img } from '../../styleWrappers';
22
- import { ZoomLevel } from '../../domain/zoomLevel';
23
- import { closeOnDirectClick } from '../../utils/closeOnDirectClick';
24
- import { ZoomControls } from '../../zoomControls';
2
+ import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
25
3
  import { createClosedEvent } from '../../analytics/events/ui/closed';
26
- export function zoomLevelAfterResize(newCamera, oldCamera, oldZoomLevel) {
27
- var isImgScaledToFit = oldZoomLevel.value === oldCamera.scaleDownToFit;
28
- var zoomLevelToRefit = new ZoomLevel(newCamera.scaleDownToFit);
29
- return isImgScaledToFit ? zoomLevelToRefit : oldZoomLevel;
30
- }
31
- var clientRectangle = function clientRectangle(el) {
32
- var clientWidth = el.clientWidth,
33
- clientHeight = el.clientHeight;
34
- return new Rectangle(clientWidth, clientHeight);
35
- };
36
- var naturalSizeRectangle = function naturalSizeRectangle(el) {
37
- var naturalWidth = el.naturalWidth,
38
- naturalHeight = el.naturalHeight;
39
- return new Rectangle(naturalWidth, naturalHeight);
40
- };
41
- var initialState = {
42
- zoomLevel: new ZoomLevel(1),
43
- isHDActive: false,
44
- isHDActivating: false,
45
- isHDAvailable: false,
46
- isDragging: false,
47
- cursorPos: new Vector2(0, 0),
48
- hasBeenLoadedOnce: false
49
- };
50
- export var InteractiveImgComponent = /*#__PURE__*/function (_React$Component) {
51
- function InteractiveImgComponent() {
52
- var _this;
53
- _classCallCheck(this, InteractiveImgComponent);
54
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
55
- args[_key] = arguments[_key];
56
- }
57
- _this = _callSuper(this, InteractiveImgComponent, [].concat(args));
58
- _defineProperty(_this, "state", initialState);
59
- _defineProperty(_this, "saveWrapperRef", function (ref) {
60
- return _this.wrapper = ref;
61
- });
62
- _defineProperty(_this, "onImageClicked", function (e) {
63
- var _this$props = _this.props,
64
- onClose = _this$props.onClose,
65
- onBlanketClicked = _this$props.onBlanketClicked;
66
- if (e.target === e.currentTarget && onBlanketClicked) {
67
- onBlanketClicked();
68
- }
69
- closeOnDirectClick(onClose)(e);
70
- });
71
- _defineProperty(_this, "onImgLoad", function (ev) {
72
- var _this$props2 = _this.props,
73
- onLoad = _this$props2.onLoad,
74
- originalBinaryImageSrc = _this$props2.originalBinaryImageSrc;
75
- var _this$state = _this.state,
76
- hasBeenLoadedOnce = _this$state.hasBeenLoadedOnce,
77
- oldZoomLevel = _this$state.zoomLevel,
78
- currentCamera = _this$state.camera;
79
- var _this$state2 = _this.state,
80
- isHDActivating = _this$state2.isHDActivating,
81
- isHDAvailable = _this$state2.isHDAvailable,
82
- isHDActive = _this$state2.isHDActive;
83
- if (!_this.wrapper) {
84
- return;
85
- }
86
- var viewport = clientRectangle(_this.wrapper);
87
- var originalImgRect = naturalSizeRectangle(ev.currentTarget);
88
- var camera = new Camera(viewport, originalImgRect);
89
- var newZoomLevel;
90
- if (hasBeenLoadedOnce && currentCamera) {
91
- /* This is not first time image is loading. Likely due to new (HD) image is loaded.
92
- * In order to keep new image on the same perceived zoom level we need to scale.
93
- * It depends on ration between old and new images and current zoom level.
94
- * For example:
95
- * - old image is 2000px with zoom at 50% (0.5). New image is 4000px. 2000/4000 * 0.5 = 0.25 (25%)
96
- * - old image is 2000px with zoom at 200% (2). New image is 4000px. 2000/4000 * 2 = 1 (100%)
97
- */
98
- var previousImageWidth = currentCamera.originalImg.width;
99
- var newImageWidth = originalImgRect.width;
100
- newZoomLevel = new ZoomLevel(previousImageWidth / newImageWidth * oldZoomLevel.value);
101
- isHDActivating = false;
102
- } else {
103
- newZoomLevel = new ZoomLevel(camera.scaleDownToFit);
104
-
105
- // If initial (non-HD) image is equal to MAX resolution -
106
- // this means most likely original image had higher res (because non-HD is downsized and caped off with MAX res)
107
- isHDAvailable = !!originalBinaryImageSrc && (originalImgRect.width === MAX_RESOLUTION || originalImgRect.height === MAX_RESOLUTION);
108
-
109
- // Automatically activate HD on first load if zoom level is already 100% or bigger
110
- isHDActive = newZoomLevel.value >= 1;
111
- if (onLoad) {
112
- // Call onLoad only once on initial image render
113
- onLoad();
114
- }
115
- }
116
- _this.setState({
117
- camera: camera,
118
- zoomLevel: newZoomLevel,
119
- hasBeenLoadedOnce: true,
120
- isHDActivating: isHDActivating,
121
- isHDAvailable: isHDAvailable,
122
- isHDActive: isHDActive
123
- });
124
- });
125
- _defineProperty(_this, "onResize", function () {
126
- var camera = _this.state.camera;
127
- if (!_this.wrapper || !camera) {
128
- return;
129
- }
130
- var oldZoomLevel = _this.state.zoomLevel;
131
- var newViewport = clientRectangle(_this.wrapper);
132
- var newCamera = camera.resizedViewport(newViewport);
133
- var newZoomLevel = zoomLevelAfterResize(newCamera, camera, oldZoomLevel);
134
- _this.setState({
135
- camera: newCamera,
136
- zoomLevel: newZoomLevel
137
- });
138
- });
139
- _defineProperty(_this, "onZoomChange", function (nextZoomLevel) {
140
- var camera = _this.state.camera;
141
- var _this2 = _this,
142
- wrapper = _this2.wrapper;
143
- if (!wrapper || !camera) {
144
- return;
145
- }
146
- var scrollLeft = wrapper.scrollLeft,
147
- scrollTop = wrapper.scrollTop;
148
- var prevOffset = new Vector2(scrollLeft, scrollTop);
149
- var _this$state3 = _this.state,
150
- prevZoomLevel = _this$state3.zoomLevel,
151
- prevIsHDActive = _this$state3.isHDActive,
152
- prevIsHDActivating = _this$state3.isHDActivating;
153
- var isHDActive = prevIsHDActive || nextZoomLevel.value >= 1;
154
- var isHDActivating = prevIsHDActivating || !prevIsHDActive && isHDActive;
155
- _this.setState({
156
- zoomLevel: nextZoomLevel,
157
- isHDActive: isHDActive,
158
- isHDActivating: isHDActivating
159
- }, function () {
160
- var _camera$scaledOffset = camera.scaledOffset(prevOffset, prevZoomLevel.value, nextZoomLevel.value),
161
- x = _camera$scaledOffset.x,
162
- y = _camera$scaledOffset.y;
163
- wrapper.scrollLeft = x;
164
- wrapper.scrollTop = y;
165
- });
166
- });
167
- _defineProperty(_this, "startDragging", function (ev) {
168
- // stopping propagation to prevent media viewer from closing
169
- // when clicking on the image
170
- ev.stopPropagation();
171
- ev.preventDefault();
172
- _this.setState({
173
- isDragging: true,
174
- cursorPos: new Vector2(ev.screenX, ev.screenY)
175
- });
176
- });
177
- _defineProperty(_this, "stopDragging", function (ev) {
178
- ev.preventDefault();
179
- _this.setState({
180
- isDragging: false
181
- });
182
- });
183
- _defineProperty(_this, "panImage", function (ev) {
184
- if (_this.state.isDragging && _this.wrapper) {
185
- var cursorPos = new Vector2(ev.screenX, ev.screenY);
186
- var delta = _this.state.cursorPos.sub(cursorPos);
187
- _this.setState({
188
- cursorPos: cursorPos
189
- });
190
- _this.wrapper.scrollLeft += delta.x;
191
- _this.wrapper.scrollTop += delta.y;
192
- }
193
- });
194
- return _this;
195
- }
196
- _inherits(InteractiveImgComponent, _React$Component);
197
- return _createClass(InteractiveImgComponent, [{
198
- key: "componentDidMount",
199
- value: function componentDidMount() {
200
- this.state = initialState;
201
- window.addEventListener('resize', this.onResize);
202
- document.addEventListener('mousemove', this.panImage);
203
- document.addEventListener('mouseup', this.stopDragging);
204
- }
205
- }, {
206
- key: "componentWillUnmount",
207
- value: function componentWillUnmount() {
208
- window.removeEventListener('resize', this.onResize);
209
- document.removeEventListener('mousemove', this.panImage);
210
- document.removeEventListener('mouseup', this.stopDragging);
211
- }
212
- }, {
213
- key: "renderHDIndicator",
214
- value: function renderHDIndicator() {
215
- var _this$state4 = this.state,
216
- isHDActivating = _this$state4.isHDActivating,
217
- isHDAvailable = _this$state4.isHDAvailable,
218
- isHDActive = _this$state4.isHDActive;
219
- if (!isHDAvailable) {
220
- return null;
221
- }
222
- return (
223
- /*#__PURE__*/
224
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
225
- React.createElement(HDIconGroupWrapper, {
226
- className: hideControlsClassName
227
- }, isHDActivating ? /*#__PURE__*/React.createElement(Spinner, {
228
- appearance: "invert"
229
- }) : undefined, isHDActive ? /*#__PURE__*/React.createElement(VideoHdFilledIcon, {
230
- label: "hd active"
231
- }) : /*#__PURE__*/React.createElement(VideoHdIcon, {
232
- label: "hd"
233
- }))
234
- );
235
- }
236
- }, {
237
- key: "render",
238
- value: function render() {
239
- var _this$props3 = this.props,
240
- src = _this$props3.src,
241
- originalBinaryImageSrc = _this$props3.originalBinaryImageSrc,
242
- orientation = _this$props3.orientation,
243
- onError = _this$props3.onError;
244
- var _this$state5 = this.state,
245
- zoomLevel = _this$state5.zoomLevel,
246
- isHDAvailable = _this$state5.isHDAvailable,
247
- isHDActive = _this$state5.isHDActive,
248
- camera = _this$state5.camera,
249
- isDragging = _this$state5.isDragging;
250
- var canDrag = camera && zoomLevel.value > camera.scaleToFit || false;
251
- // We use style attr instead of SC prop for perf reasons
252
- var imgStyle = camera && camera.scaledImg(zoomLevel.value) || {
253
- visibility: 'hidden'
254
- };
255
- // When image loads it does two things at the same time 1) it renders itself in the browser 2) triggers onLoad
256
- // visibility: 'hidden' is here to prevent image rendering on the screen (with 100%) before next
257
- // react re-render when we have `camera` and can control it's zoom level.
258
- // overflow: 'hidden' is here to prevent scroll going wild while image is rendered in visibility: 'hidden'
259
- // We can't use display: none or not render image, because we do need `onLoad` to trigger and read it's dimensions
260
- var wrapperStyleOverride = camera ? {} : {
261
- overflow: 'hidden'
262
- };
263
- if (orientation) {
264
- imgStyle.transform = getCssFromImageOrientation(orientation);
265
- }
266
- var srcToDisplay = isHDAvailable && isHDActive && originalBinaryImageSrc ? originalBinaryImageSrc : src;
267
- return /*#__PURE__*/React.createElement(ImageWrapper, {
268
- "data-testid": "media-viewer-image-content",
269
- onClick: this.onImageClicked,
270
- ref: this.saveWrapperRef
271
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
272
- ,
273
- style: wrapperStyleOverride
274
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
275
- ,
276
- className: "media-viewer-image-content"
277
- }, /*#__PURE__*/React.createElement(Img, {
278
- "data-testid": "media-viewer-image",
279
- canDrag: canDrag,
280
- isDragging: isDragging,
281
- src: srcToDisplay,
282
- alt: this.props.alt
283
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
284
- ,
285
- style: imgStyle,
286
- onLoad: this.onImgLoad,
287
- onError: onError,
288
- onMouseDown: this.startDragging,
289
- shouldPixelate: zoomLevel.value > 1
290
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
291
- ,
292
- className: "media-viewer-image"
293
- }), /*#__PURE__*/React.createElement(BaselineExtend, null), /*#__PURE__*/React.createElement(ZoomControls, {
294
- zoomLevel: zoomLevel,
295
- onChange: this.onZoomChange
296
- }, this.renderHDIndicator()));
297
- }
298
- }]);
299
- }(React.Component);
4
+ import { InteractiveImgComponent } from './interactive-img-component';
300
5
  export var InteractiveImg = withAnalyticsEvents({
301
6
  onBlanketClicked: function onBlanketClicked(createAnalyticsEvent) {
302
7
  var event = createAnalyticsEvent(createClosedEvent('blanket'));
@@ -0,0 +1,6 @@
1
+ import { ZoomLevel } from '../../domain/zoomLevel';
2
+ export function zoomLevelAfterResize(newCamera, oldCamera, oldZoomLevel) {
3
+ var isImgScaledToFit = oldZoomLevel.value === oldCamera.scaleDownToFit;
4
+ var zoomLevelToRefit = new ZoomLevel(newCamera.scaleDownToFit);
5
+ return isImgScaledToFit ? zoomLevelToRefit : oldZoomLevel;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { Rectangle } from '@atlaskit/media-ui/rectangle';
2
+ export var clientRectangle = function clientRectangle(el) {
3
+ var clientWidth = el.clientWidth,
4
+ clientHeight = el.clientHeight;
5
+ return new Rectangle(clientWidth, clientHeight);
6
+ };
@@ -1,20 +1,22 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React, { useState, useRef, useEffect, useCallback, useLayoutEffect } from 'react';
3
+ import { useIntl } from 'react-intl';
4
+ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
5
+ import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
6
+ import MediaSvg from '@atlaskit/media-svg/media-svg';
3
7
  import { Camera } from '@atlaskit/media-ui/camera/camera';
4
8
  import { messages } from '@atlaskit/media-ui/messages';
5
9
  import { Vector2 } from '@atlaskit/media-ui/vector2';
6
- import { ANALYTICS_MEDIA_CHANNEL } from '@atlaskit/media-common';
7
- import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
8
- import { BaselineExtend } from '../../styleWrappers';
10
+ import { MediaViewerError } from '../../MediaViewerError';
11
+ import { createClosedEvent } from '../../analytics/events/ui/closed';
9
12
  import { ZoomLevel } from '../../domain/zoomLevel';
13
+ import { BaselineExtend } from '../../styleWrappers';
10
14
  import { ZoomControls } from '../../zoomControls';
11
- import { createClosedEvent } from '../../analytics/events/ui/closed';
12
- import MediaSvg from '@atlaskit/media-svg/media-svg';
13
- import { MediaViewerError } from '../../errors';
14
- import { clientRectangle, naturalSizeRectangle, zoomLevelAfterResize } from './utils';
15
15
  import { ImageWrapper } from './ImageWrapper';
16
+ import { clientRectangle } from './clientRectangle';
16
17
  import { getErrorReason } from './errors';
17
- import { useIntl } from 'react-intl';
18
+ import { naturalSizeRectangle } from './naturalSizeRectangle';
19
+ import { zoomLevelAfterResize } from './zoomLevelAfterResize';
18
20
  var SvgViewerBase = function SvgViewerBase(_ref) {
19
21
  var identifier = _ref.identifier,
20
22
  onLoad = _ref.onLoad,
@@ -0,0 +1,10 @@
1
+ import { Rectangle } from '@atlaskit/media-ui/rectangle';
2
+ export var naturalSizeRectangle = function naturalSizeRectangle(el) {
3
+ // Firefox & Safari can't always read the "natural" dimensions correctly.
4
+ // When these are undefined or zero, we replace them with the rendered values
5
+ var naturalWidth = el.naturalWidth,
6
+ naturalHeight = el.naturalHeight,
7
+ width = el.width,
8
+ height = el.height;
9
+ return new Rectangle(naturalWidth || width, naturalHeight || height);
10
+ };
@@ -0,0 +1,6 @@
1
+ import { ZoomLevel } from '../../domain/zoomLevel';
2
+ export function zoomLevelAfterResize(newCamera, oldCamera, oldZoomLevel) {
3
+ var isImgScaledToFit = oldZoomLevel.value === oldCamera.scaleDownToFit;
4
+ var zoomLevelToRefit = new ZoomLevel(newCamera.scaleDownToFit);
5
+ return isImgScaledToFit ? zoomLevelToRefit : oldZoomLevel;
6
+ }