box-ui-elements 23.4.0-beta.23 → 23.4.0-beta.25

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 (331) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/explorer.js.LICENSE.txt +9 -0
  3. package/dist/openwith.js +1 -1
  4. package/dist/openwith.js.LICENSE.txt +9 -0
  5. package/dist/picker.js +1 -1
  6. package/dist/picker.js.LICENSE.txt +9 -0
  7. package/dist/preview.js +1 -1
  8. package/dist/preview.js.LICENSE.txt +9 -0
  9. package/dist/sharing.js +1 -1
  10. package/dist/sharing.js.LICENSE.txt +9 -0
  11. package/dist/sidebar.js +1 -1
  12. package/dist/sidebar.js.LICENSE.txt +9 -0
  13. package/dist/uploader.js +1 -1
  14. package/dist/uploader.js.LICENSE.txt +9 -0
  15. package/es/api/Feed.js +2 -2
  16. package/es/api/Metadata.js +2 -2
  17. package/es/api/Versions.js +2 -2
  18. package/es/api/tasks/TasksBase.js +2 -2
  19. package/es/api/tasks/TasksNew.js +2 -2
  20. package/es/api/uploads/BaseUpload.js +4 -0
  21. package/es/api/uploads/BaseUpload.js.flow +5 -1
  22. package/es/api/uploads/BaseUpload.js.map +1 -1
  23. package/es/api/uploads/MultiputUpload.js +7 -0
  24. package/es/api/uploads/MultiputUpload.js.flow +11 -6
  25. package/es/api/uploads/MultiputUpload.js.map +1 -1
  26. package/es/api/uploads/PlainUpload.js +2 -1
  27. package/es/api/uploads/PlainUpload.js.flow +3 -2
  28. package/es/api/uploads/PlainUpload.js.map +1 -1
  29. package/es/components/accessible-svg/AccessibleSVG.js +2 -2
  30. package/es/components/badge/Badge.js +2 -2
  31. package/es/components/badge/BetaBadge.js +2 -2
  32. package/es/components/badge/TrialBadge.js +2 -2
  33. package/es/components/badge/UpgradeBadge.js +2 -2
  34. package/es/components/button/Button.js +2 -2
  35. package/es/components/button/Button.stories.js +3 -20
  36. package/es/components/button/Button.stories.js.map +1 -1
  37. package/es/components/button-group/ButtonGroup.stories.js +1 -4
  38. package/es/components/button-group/ButtonGroup.stories.js.map +1 -1
  39. package/es/components/button-group/__test__/ButtonGroup.test.js +1 -1
  40. package/es/components/button-group/__test__/ButtonGroup.test.js.map +1 -1
  41. package/es/components/checkbox/Checkbox.js +2 -2
  42. package/es/components/checkbox/CheckboxField.js +2 -2
  43. package/es/components/contact-datalist-item/ContactDatalistItem.js +2 -2
  44. package/es/components/count-badge/CountBadge.js +2 -2
  45. package/es/components/datalist-item/DatalistItem.js +2 -2
  46. package/es/components/date-picker/DatePicker.js +1 -1
  47. package/es/components/date-picker/DatePicker.js.map +1 -1
  48. package/es/components/fieldset/Fieldset.js +2 -2
  49. package/es/components/flyout/Overlay.js +2 -2
  50. package/es/components/focus-trap/FocusTrap.js +2 -2
  51. package/es/components/form-elements/draft-js-mention-selector/DraftJSMentionSelectorCore.js +2 -2
  52. package/es/components/ghost/Ghost.js +2 -2
  53. package/es/components/grid-view/GridView.js +1 -1
  54. package/es/components/grid-view/GridView.js.map +1 -1
  55. package/es/components/guide-tooltip/GuideTooltip.js +2 -2
  56. package/es/components/guide-tooltip/GuideTooltip.stories.js +5 -5
  57. package/es/components/guide-tooltip/GuideTooltip.stories.js.map +1 -1
  58. package/es/components/header/Header.js +2 -2
  59. package/es/components/hotkeys/HotkeyFriendlyModal.js +2 -2
  60. package/es/components/i18n/FormattedCompMessage.js +2 -2
  61. package/es/components/i18n/Param.js +1 -1
  62. package/es/components/i18n/Param.js.map +1 -1
  63. package/es/components/image-tooltip/ImageTooltip.js +2 -2
  64. package/es/components/inline-notice/InlineNotice.js +2 -2
  65. package/es/components/label/HiddenLabel.js +2 -2
  66. package/es/components/label/Label.js +1 -1
  67. package/es/components/label/Label.js.map +1 -1
  68. package/es/components/label/LabelPrimitive.js +2 -2
  69. package/es/components/label/StandardLabel.js +2 -2
  70. package/es/components/label-pill/LabelPill.js +2 -2
  71. package/es/components/label-pill/LabelPillIcon.js +2 -2
  72. package/es/components/label-pill/LabelPillText.js +2 -2
  73. package/es/components/link/Link.js +2 -2
  74. package/es/components/link/LinkBase.js +2 -2
  75. package/es/components/link/LinkButton.js +2 -2
  76. package/es/components/link/LinkPrimaryButton.js +2 -2
  77. package/es/components/link/stories/Link.stories.js +2 -2
  78. package/es/components/link/stories/LinkButton.stories.js +2 -2
  79. package/es/components/link/stories/LinkPrimaryButton.stories.js +2 -2
  80. package/es/components/loading-indicator/LoadingIndicatorWrapper.js +2 -2
  81. package/es/components/loading-indicator/makeLoadable.js +2 -2
  82. package/es/components/media/Media.js +2 -2
  83. package/es/components/media/MediaBody.js +2 -2
  84. package/es/components/media/MediaFigure.js +2 -2
  85. package/es/components/media/MediaMenu.js +2 -2
  86. package/es/components/media-query/withMediaQuery.js +2 -2
  87. package/es/components/menu/Menu.js +2 -2
  88. package/es/components/menu/MenuHeader.js +2 -2
  89. package/es/components/menu/MenuItem.js +2 -2
  90. package/es/components/menu/MenuLinkItem.js +2 -2
  91. package/es/components/menu/MenuSectionHeader.js +2 -2
  92. package/es/components/menu/SubmenuItem.js +2 -2
  93. package/es/components/modal/Modal.js +2 -2
  94. package/es/components/modal/ModalActions.js +2 -2
  95. package/es/components/modal/ModalDialog.js +2 -2
  96. package/es/components/nav-sidebar/NavSidebar.js +2 -2
  97. package/es/components/nav-sidebar/NavSidebar.stories.js +1 -1
  98. package/es/components/nav-sidebar/NavSidebar.stories.js.flow +1 -1
  99. package/es/components/nav-sidebar/NavSidebar.stories.js.map +1 -1
  100. package/es/components/pill-selector-dropdown/PillSelector.js +2 -2
  101. package/es/components/pill-selector-dropdown/RoundPill.js +2 -2
  102. package/es/components/plain-button/PlainButton.js +2 -2
  103. package/es/components/plain-button/PlainButton.stories.js +0 -2
  104. package/es/components/plain-button/PlainButton.stories.js.map +1 -1
  105. package/es/components/portal/Portal.js +1 -1
  106. package/es/components/portal/Portal.js.map +1 -1
  107. package/es/components/primary-button/PrimaryButton.js +2 -2
  108. package/es/components/primary-button/PrimaryButton.stories.js +1 -4
  109. package/es/components/primary-button/PrimaryButton.stories.js.map +1 -1
  110. package/es/components/radar/RadarAnimation.js +2 -2
  111. package/es/components/radio/RadioButton.js +2 -2
  112. package/es/components/radio/RadioButtonField.js +2 -2
  113. package/es/components/radio/RadioGroupField.js +2 -2
  114. package/es/components/react-virtualized-helpers/withInfiniteLoader.js +2 -2
  115. package/es/components/scroll-wrapper/ScrollWrapper.js +2 -2
  116. package/es/components/search-form/SearchForm.js +2 -2
  117. package/es/components/section/Section.js +2 -2
  118. package/es/components/select/Select.js +2 -2
  119. package/es/components/select-button/SelectButton.js +2 -2
  120. package/es/components/select-field/MultiSelectField.js +2 -2
  121. package/es/components/select-field/SelectField.js +2 -2
  122. package/es/components/select-field/SingleSelectField.js +2 -2
  123. package/es/components/selector-dropdown/SelectorDropdownExample.js +2 -2
  124. package/es/components/sidebar-toggle-button/SidebarToggleButton.js +2 -2
  125. package/es/components/slide-carousel/Slide.js +2 -2
  126. package/es/components/slide-carousel/SlideButton.js +2 -2
  127. package/es/components/table/Table.js +2 -2
  128. package/es/components/table/TableCell.js +2 -2
  129. package/es/components/table/TableHeaderCell.js +2 -2
  130. package/es/components/table/TableRow.js +2 -2
  131. package/es/components/text-area/TextArea.js +2 -2
  132. package/es/components/text-area/TextAreaField.js +2 -2
  133. package/es/components/text-input/TextInput.js +2 -2
  134. package/es/components/text-input/TextInputField.js +2 -2
  135. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js +2 -2
  136. package/es/components/thumbnail-card/ThumbnailCard.js +2 -2
  137. package/es/components/toggle/Toggle.js +2 -2
  138. package/es/components/toggle/ToggleField.js +2 -2
  139. package/es/components/tooltip/Tooltip.stories.js +8 -8
  140. package/es/components/tooltip/Tooltip.stories.js.map +1 -1
  141. package/es/elements/common/Tooltip.js +2 -2
  142. package/es/elements/common/back-button/BackButton.js +2 -2
  143. package/es/elements/common/content-answers/ContentAnswers.js +2 -2
  144. package/es/elements/common/droppable/makeDroppable.js +2 -2
  145. package/es/elements/common/error-boundary/ErrorBoundary.js +2 -2
  146. package/es/elements/common/feature-checking/withFeatureProvider.js +2 -2
  147. package/es/elements/common/item/ItemTypeIcon.js +2 -2
  148. package/es/elements/common/item/iconCellRenderer.js +2 -2
  149. package/es/elements/common/item/iconCellRenderer.js.map +1 -1
  150. package/es/elements/common/item/nameCellRenderer.js +2 -2
  151. package/es/elements/common/item/nameCellRenderer.js.map +1 -1
  152. package/es/elements/common/item-grid/ItemGrid.js +2 -2
  153. package/es/elements/common/item-list/ItemList.js +2 -2
  154. package/es/elements/common/logger/Logger.js +2 -2
  155. package/es/elements/common/makePopup.js +2 -2
  156. package/es/elements/common/makeResponsive.js +2 -2
  157. package/es/elements/common/nav-router/NavRouter.js +2 -2
  158. package/es/elements/common/nav-router/withNavRouter.js +2 -2
  159. package/es/elements/common/pagination/Pagination.js +2 -2
  160. package/es/elements/common/selectors/version.js +2 -2
  161. package/es/elements/common/stories/PreviewDialog.stories.js +1 -1
  162. package/es/elements/common/stories/PreviewDialog.stories.js.map +1 -1
  163. package/es/elements/common/sub-header/ViewModeChangeButton.js +2 -2
  164. package/es/elements/content-explorer/Content.js +2 -2
  165. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +1 -1
  166. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -1
  167. package/es/elements/content-explorer/stories/RenameDialog.stories.js +1 -1
  168. package/es/elements/content-explorer/stories/RenameDialog.stories.js.map +1 -1
  169. package/es/elements/content-explorer/stories/ShareDialog.stories.js +1 -1
  170. package/es/elements/content-explorer/stories/ShareDialog.stories.js.map +1 -1
  171. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +1 -1
  172. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +1 -2
  173. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
  174. package/es/elements/content-picker/ContentPicker.js +1 -2
  175. package/es/elements/content-picker/ContentPicker.js.flow +0 -1
  176. package/es/elements/content-picker/ContentPicker.js.map +1 -1
  177. package/es/elements/content-picker/ItemList.js +1 -1
  178. package/es/elements/content-picker/ItemList.js.flow +1 -1
  179. package/es/elements/content-picker/ItemList.js.map +1 -1
  180. package/es/elements/content-picker/checkboxCellRenderer.js +2 -2
  181. package/es/elements/content-picker/checkboxCellRenderer.js.map +1 -1
  182. package/es/elements/content-picker/selectionCellRenderer.js +2 -2
  183. package/es/elements/content-picker/selectionCellRenderer.js.map +1 -1
  184. package/es/elements/content-picker/shareAccessCellRenderer.js +2 -2
  185. package/es/elements/content-picker/shareAccessCellRenderer.js.map +1 -1
  186. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +1 -25
  187. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.flow +1 -25
  188. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.map +1 -1
  189. package/es/elements/content-preview/ContentPreview.js +3 -3
  190. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  191. package/es/elements/content-preview/preview-header/PreviewHeader.js +2 -2
  192. package/es/elements/content-preview/preview-header/PreviewHeader.js.map +1 -1
  193. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +1 -1
  194. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.flow +1 -1
  195. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.map +1 -1
  196. package/es/elements/content-sharing/ContentSharing.js +1 -1
  197. package/es/elements/content-sharing/ContentSharing.js.map +1 -1
  198. package/es/elements/content-sidebar/BoxAISidebar.js +2 -2
  199. package/es/elements/content-sidebar/BoxAISidebarContent.js +2 -2
  200. package/es/elements/content-sidebar/SidebarContent.js +2 -2
  201. package/es/elements/content-sidebar/SidebarNavSignButton.js +2 -2
  202. package/es/elements/content-sidebar/SidebarUtils.js +8 -8
  203. package/es/elements/content-sidebar/SidebarUtils.js.map +1 -1
  204. package/es/elements/content-sidebar/activity-feed/ActivityCard.js +2 -2
  205. package/es/elements/content-sidebar/activity-feed/SelectableActivityCard.js +2 -2
  206. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js +2 -2
  207. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +2 -2
  208. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.js +2 -2
  209. package/es/elements/content-sidebar/activity-feed/common/activity-datestamp/ActivityDatestamp.js +2 -2
  210. package/es/elements/content-sidebar/activity-feed/common/activity-error/ActivityError.js +2 -2
  211. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js +2 -2
  212. package/es/elements/content-sidebar/activity-feed/common/user-link/UserLink.js +2 -2
  213. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +2 -2
  214. package/es/elements/content-sidebar/additional-tabs/AdditionalTab.js +2 -2
  215. package/es/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.js +2 -2
  216. package/es/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.js +1 -1
  217. package/es/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.js.map +1 -1
  218. package/es/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.js +1 -1
  219. package/es/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.js.map +1 -1
  220. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js +1 -1
  221. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js.map +1 -1
  222. package/es/elements/content-sidebar/versions/VersionsGroup.js +2 -2
  223. package/es/elements/content-sidebar/versions/VersionsItemAction.js +2 -2
  224. package/es/elements/content-sidebar/versions/VersionsList.js +2 -2
  225. package/es/elements/content-sidebar/versions/VersionsMenu.js +2 -2
  226. package/es/elements/content-sidebar/versions/VersionsSidebar.js +2 -2
  227. package/es/elements/content-sidebar/withErrorHandling.js +2 -2
  228. package/es/elements/content-uploader/ContentUploader.js +7 -3
  229. package/es/elements/content-uploader/ContentUploader.js.map +1 -1
  230. package/es/elements/content-uploader/ItemAction.js +8 -3
  231. package/es/elements/content-uploader/ItemAction.js.map +1 -1
  232. package/es/elements/content-uploader/actionCellRenderer.js +2 -2
  233. package/es/elements/content-uploader/actionCellRenderer.js.map +1 -1
  234. package/es/elements/content-uploader/nameCellRenderer.js +2 -2
  235. package/es/elements/content-uploader/nameCellRenderer.js.map +1 -1
  236. package/es/elements/content-uploader/progressCellRenderer.js +2 -2
  237. package/es/elements/content-uploader/progressCellRenderer.js.map +1 -1
  238. package/es/elements/content-uploader/removeCellRenderer.js +2 -2
  239. package/es/elements/content-uploader/removeCellRenderer.js.map +1 -1
  240. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +1 -1
  241. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.flow +1 -1
  242. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.map +1 -1
  243. package/es/elements/wrappers/ContentExplorer.js +1 -1
  244. package/es/elements/wrappers/ContentExplorer.js.map +1 -1
  245. package/es/elements/wrappers/ContentOpenWith.js +1 -1
  246. package/es/elements/wrappers/ContentOpenWith.js.map +1 -1
  247. package/es/elements/wrappers/ContentPicker.js +3 -3
  248. package/es/elements/wrappers/ContentPicker.js.map +1 -1
  249. package/es/elements/wrappers/ContentPreview.js +1 -1
  250. package/es/elements/wrappers/ContentPreview.js.map +1 -1
  251. package/es/elements/wrappers/ContentSharing.js +1 -1
  252. package/es/elements/wrappers/ContentSharing.js.map +1 -1
  253. package/es/elements/wrappers/ContentSidebar.js +1 -1
  254. package/es/elements/wrappers/ContentSidebar.js.map +1 -1
  255. package/es/elements/wrappers/ContentUploader.js +3 -3
  256. package/es/elements/wrappers/ContentUploader.js.map +1 -1
  257. package/es/features/beta-feedback/BetaFeedbackBadge.js +2 -2
  258. package/es/features/classification/EditClassificationButton.js +2 -2
  259. package/es/features/collaborator-avatars/CollaboratorAvatarItem.js +2 -2
  260. package/es/features/collaborator-avatars/CollaboratorList.js +1 -1
  261. package/es/features/collaborator-avatars/CollaboratorList.js.map +1 -1
  262. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js +1 -1
  263. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js.map +1 -1
  264. package/es/features/collapsible-sidebar/CollapsibleSidebarMenuItem.js +2 -2
  265. package/es/features/collapsible-sidebar/CollapsibleSidebarNav.js +2 -2
  266. package/es/features/content-explorer/content-explorer/ContentExplorer.js +2 -2
  267. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +2 -2
  268. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +2 -2
  269. package/es/features/content-insights/CompactCount.js +2 -2
  270. package/es/features/header-flyout/HeaderFlyout.js +2 -2
  271. package/es/features/invite-collaborators-modal/InviteCollaboratorsModal.js +2 -2
  272. package/es/features/item-details/VersionHistoryLink.js +2 -2
  273. package/es/features/left-sidebar/LeftSidebarDropWrapper.js +2 -2
  274. package/es/features/message-center/components/collapsibile-scrollbar/CollapsibleScrollbar.js +2 -2
  275. package/es/features/pagination/Pagination.js +2 -2
  276. package/es/features/presence/PresenceAvatar.js +2 -2
  277. package/es/features/presence/PresenceAvatarList.js +2 -2
  278. package/es/features/presence/PresenceCollaborator.js +2 -2
  279. package/es/features/quick-search/QuickSearchItem.js +3 -3
  280. package/es/features/quick-search/QuickSearchItem.js.map +1 -1
  281. package/es/features/quick-search/QuickSearchSelector.js +2 -2
  282. package/es/features/security/SecurityBadge.js +2 -2
  283. package/es/features/share/ShareMenu.js +2 -2
  284. package/es/features/targeting/hocs/withTargetedClickThrough.js +2 -2
  285. package/es/features/virtualized-table/BaseVirtualizedTable.js +2 -2
  286. package/es/features/virtualized-table/DraggableVirtualizedTable.js +2 -2
  287. package/es/features/virtualized-table/VirtualizedTable.js +2 -2
  288. package/es/icons/accessible-svg/AccessibleSVG.js +2 -2
  289. package/es/icons/icons.stories.js +5 -22
  290. package/es/icons/icons.stories.js.map +1 -1
  291. package/es/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.d.ts +2 -2
  292. package/es/src/elements/content-uploader/ContentUploader.d.ts +1 -1
  293. package/es/src/icons/icons.stories.d.ts +1 -4
  294. package/package.json +16 -24
  295. package/src/api/uploads/BaseUpload.js +5 -1
  296. package/src/api/uploads/MultiputUpload.js +11 -6
  297. package/src/api/uploads/PlainUpload.js +3 -2
  298. package/src/api/uploads/__tests__/BaseUpload.test.js +14 -0
  299. package/src/components/avatar/__tests__/Avatar.test.tsx +1 -2
  300. package/src/components/button/Button.stories.tsx +2 -16
  301. package/src/components/button-group/ButtonGroup.stories.tsx +1 -2
  302. package/src/components/nav-sidebar/NavSidebar.stories.js +1 -1
  303. package/src/components/plain-button/PlainButton.stories.tsx +1 -2
  304. package/src/components/primary-button/PrimaryButton.stories.tsx +1 -4
  305. package/src/components/time-input/__tests__/TimeInput.test.tsx +1 -2
  306. package/src/elements/common/stories/PreviewDialog.stories.tsx +1 -2
  307. package/src/elements/common/stories/__tests__/PreviewDialog-visual.stories.tsx +2 -3
  308. package/src/elements/content-explorer/stories/ContentExplorer.mdx +1 -1
  309. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.tsx +1 -2
  310. package/src/elements/content-explorer/stories/RenameDialog.stories.tsx +1 -1
  311. package/src/elements/content-explorer/stories/ShareDialog.stories.tsx +1 -1
  312. package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +1 -2
  313. package/src/elements/content-open-with/stories/ContentOpenWith.mdx +1 -1
  314. package/src/elements/content-picker/ContentPicker.js +0 -1
  315. package/src/elements/content-picker/ItemList.js +1 -1
  316. package/src/elements/content-picker/stories/ContentPicker.mdx +1 -1
  317. package/src/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +1 -25
  318. package/src/elements/content-preview/stories/ContentPreview.mdx +1 -1
  319. package/src/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +1 -1
  320. package/src/elements/content-sharing/stories/ContentSharing.mdx +1 -1
  321. package/src/elements/content-sidebar/stories/BoxAISideBar.mdx +1 -1
  322. package/src/elements/content-sidebar/stories/ContentSidebar.mdx +1 -1
  323. package/src/elements/content-sidebar/stories/MetadataSidebar.mdx +1 -1
  324. package/src/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.tsx +2 -2
  325. package/src/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.tsx +1 -1
  326. package/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +2 -2
  327. package/src/elements/content-uploader/ContentUploader.tsx +7 -3
  328. package/src/elements/content-uploader/ItemAction.tsx +8 -2
  329. package/src/elements/content-uploader/stories/ContentUploader.mdx +1 -1
  330. package/src/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +1 -1
  331. package/src/icons/icons.stories.tsx +3 -12
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPreview.js","names":["React","classNames","cloneDeep","flow","getProp","isEqual","noop","omit","setProp","throttle","uniqueid","Measure","withRouter","decode","makeResponsive","withNavRouter","Internationalize","AsyncLoad","ThemingStyles","TokenService","isInputElement","focus","getTypedFileId","withAnnotations","withAnnotatorContext","withErrorBoundary","withLogger","PREVIEW_FIELDS_TO_FETCH","mark","withFeatureConsumer","withFeatureProvider","EVENT_JS_READY","ReloadNotification","API","APIContext","PreviewHeader","PreviewMask","PreviewNavigation","Providers","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_APP","DEFAULT_HOSTNAME_STATIC","DEFAULT_PREVIEW_VERSION","DEFAULT_LOCALE","DEFAULT_PATH_STATIC_PREVIEW","CLIENT_NAME_CONTENT_PREVIEW","ORIGIN_PREVIEW","ORIGIN_CONTENT_PREVIEW","ERROR_CODE_UNKNOWN","startAtTypes","page","InvalidIdError","Error","PREVIEW_LOAD_METRIC_EVENT","MARK_NAME_JS_READY","LoadableSidebar","loader","ContentPreview","PureComponent","constructor","props","_defineProperty","createRef","canPrint","error","undefined","isLoading","isReloadNotificationVisible","isThumbnailSidebarOpen","_ref","rest","_objectWithoutProperties","_excluded","code","onError","setState","_objectSpread","previewMetrics","logger","event_name","metrics","totalFetchFileTime","getTotalFileFetchTime","totalTime","value","file_info_time","onPreviewMetric","data","onLoad","collection","currentIndex","getFileIndex","filesToPrefetch","slice","previewTimeMetrics","loadData","totalPreviewMetrics","addFetchFileTimeToPreviewMetrics","time","focusPreview","preview","length","prefetch","handleCanPrint","_this$props","advancedContentInsights","annotatorState","activeAnnotationId","enableThumbnailsSidebar","features","fileOptions","onAnnotatorEvent","onAnnotator","onContentInsightsEventReport","previewExperiences","showAnnotationsControls","token","tokenOrTokenFunction","_excluded2","file","selectedVersion","startAt","state","isPreviewLibraryLoaded","fileId","getFileId","currentFileId","fileOpts","typedId","getReadTokens","id","previewOptions","container","header","headerElement","experiences","showAnnotations","canViewAnnotations","showDownload","canDownload","showLoading","showProgress","skipServerUpdate","useHotkeys","Preview","global","Box","addListener","onPreviewLoad","onPreviewError","updateFileCache","show","Object","keys","stagedFile","initialState","getCurrentViewer","resize","fetchFileEndTime","performance","now","currentFile","isExistingFile","isWatermarked","file_version","sha1","fileError","errorCode","message","getPreview","viewer","isLoaded","isDestroyed","newIndex","navigateToIndex","onDownload","download","print","getViewer","isPreviewing","CLASS_NAVIGATION_VISIBILITY","clearTimeout","mouseMoveTimeoutID","previewContainer","classList","remove","allowNavigationArrows","add","setTimeout","event","consumed","key","target","onKeydown","nativeEvent","navigateLeft","navigateRight","preventDefault","stopPropagation","version","additionalVersionInfo","onVersionChange","updateVersionToCurrent","location","annotationFileVersionId","currentFileVersionId","currentPreviewFileVersionId","unit","type","emit","pageNumber","getThumbnail","apiHost","cache","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","api","clientName","prevFileIdProp","onReadyMetric","endMarkName","componentWillUnmount","destroy","destroyPreview","shouldReset","onPreviewDestroy","removeAllListeners","clearCache","componentDidMount","loadStylesheet","loadScript","fetchFile","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","prevFeatures","prevPreviewExperiences","prevToken","hasFileIdChanged","hasTokenChanged","haveAdvancedContentInsightsChanged","haveExperiencesChanged","shouldLoadPreview","loadPreview","updatePreviewToken","updateExperiences","updateContentInsightsOptions","shouldReload","updateToken","prevFile","prevSelectedVersion","prevSelectedVersionId","selectedVersionId","prevFileVersionId","fileVersionId","isPreviousCurrent","isSelectedCurrent","getBasePath","asset","staticHost","staticPath","previewLibraryVersion","path","suffix","endsWith","head","document","url","querySelector","link","createElement","rel","href","appendChild","previewScript","script","src","addEventListener","autoFocus","getInnerRef","activeElement","updatePreviewCacheAndPrefetch","files","typedIds","map","cacheTokens","forEach","refreshCache","fetchFileStartTime","Math","round","rendering","conversion","preload","totalConversion","totalRendering","totalPreload","total","isFileDownloadable","canAnnotate","isFileAnnotatable","hasViewAllPermissions","hasViewSelfPermissions","successCallback","errorCallback","fetchOptions","getFileAPI","getFile","fetchFileSuccessCallback","fetchFileErrorCallback","fields","findIndex","item","index","onNavigate","fileOrId","refreshSidebar","current","contentSidebar","refresh","render","messages","className","contentAnswersProps","contentOpenWithProps","contentSidebarProps","hasHeader","hasProviders","history","isLarge","isVeryLarge","logoUrl","onClose","measureRef","theme","styleClassName","currentExtension","currentVersionId","onHeaderClose","Provider","ref","onKeyDown","tabIndex","onPrint","onMouseMove","containerRef","bounds","onResize","previewRef","extension","onNavigateLeft","onNavigateRight","_extends","getCache","isDefaultOpen","onAnnotationSelect","handleAnnotationSelect","closeReloadNotification","onClick","loadFileFromStage","appHost","ContentPreviewComponent"],"sources":["../../../src/elements/content-preview/ContentPreview.js"],"sourcesContent":["/**\n * @flow\n * @file Content Preview Component\n * @author Box\n */\n\nimport 'regenerator-runtime/runtime';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport noop from 'lodash/noop';\nimport omit from 'lodash/omit';\nimport setProp from 'lodash/set';\nimport throttle from 'lodash/throttle';\nimport uniqueid from 'lodash/uniqueId';\nimport Measure from 'react-measure';\nimport { withRouter } from 'react-router-dom';\nimport type { ContextRouter } from 'react-router-dom';\nimport { decode } from '../../utils/keys';\nimport makeResponsive from '../common/makeResponsive';\nimport { withNavRouter } from '../common/nav-router';\nimport Internationalize from '../common/Internationalize';\nimport AsyncLoad from '../common/async-load';\n// $FlowFixMe TypeScript file\nimport ThemingStyles from '../common/theming';\nimport TokenService from '../../utils/TokenService';\nimport { isInputElement, focus } from '../../utils/dom';\nimport { getTypedFileId } from '../../utils/file';\nimport { withAnnotations, withAnnotatorContext } from '../common/annotator-context';\nimport { withErrorBoundary } from '../common/error-boundary';\nimport { withLogger } from '../common/logger';\nimport { PREVIEW_FIELDS_TO_FETCH } from '../../utils/fields';\nimport { mark } from '../../utils/performance';\nimport { withFeatureConsumer, withFeatureProvider } from '../common/feature-checking';\nimport { EVENT_JS_READY } from '../common/logger/constants';\nimport ReloadNotification from './ReloadNotification';\nimport API from '../../api';\nimport APIContext from '../common/api-context';\nimport PreviewHeader from './preview-header';\nimport PreviewMask from './PreviewMask';\nimport PreviewNavigation from './PreviewNavigation';\nimport Providers from '../common/Providers';\nimport {\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_APP,\n DEFAULT_HOSTNAME_STATIC,\n DEFAULT_PREVIEW_VERSION,\n DEFAULT_LOCALE,\n DEFAULT_PATH_STATIC_PREVIEW,\n CLIENT_NAME_CONTENT_PREVIEW,\n ORIGIN_PREVIEW,\n ORIGIN_CONTENT_PREVIEW,\n ERROR_CODE_UNKNOWN,\n} from '../../constants';\nimport type { Annotation } from '../../common/types/feed';\nimport type { TargetingApi } from '../../features/targeting/types';\nimport type { ErrorType, AdditionalVersionInfo } from '../common/flowTypes';\nimport type { WithLoggerProps } from '../../common/types/logging';\nimport type { RequestOptions, ErrorContextProps, ElementsXhrError } from '../../common/types/api';\nimport type { StringMap, Token, BoxItem, BoxItemVersion } from '../../common/types/core';\nimport type { VersionChangeCallback } from '../content-sidebar/versions';\nimport type { FeatureConfig } from '../common/feature-checking';\nimport type { WithAnnotationsProps, WithAnnotatorContextProps } from '../common/annotator-context';\n// $FlowFixMe TypeScript file\nimport type { Theme } from '../common/theming';\nimport type APICache from '../../utils/Cache';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport './ContentPreview.scss';\n\ntype StartAt = {\n unit: 'pages' | 'seconds',\n value: number,\n};\n\ntype Props = {\n advancedContentInsights: {\n isActive: boolean,\n ownerEId: number,\n userId: number,\n },\n apiHost: string,\n appHost: string,\n autoFocus: boolean,\n boxAnnotations?: Object,\n cache?: APICache,\n canDownload?: boolean,\n className: string,\n collection: Array<string | BoxItem>,\n contentAnswersProps: ContentAnswersProps,\n contentOpenWithProps: ContentOpenWithProps,\n contentSidebarProps: ContentSidebarProps,\n enableThumbnailsSidebar: boolean,\n features?: FeatureConfig,\n fileId?: string,\n fileOptions?: Object,\n getInnerRef: () => ?HTMLElement,\n hasHeader?: boolean,\n hasProviders?: boolean,\n isLarge: boolean,\n isVeryLarge?: boolean,\n language: string,\n logoUrl?: string,\n measureRef: Function,\n messages?: StringMap,\n onAnnotator: Function,\n onAnnotatorEvent: Function,\n onClose?: Function,\n onContentInsightsEventReport: Function,\n onDownload: Function,\n onLoad: Function,\n onNavigate: Function,\n onVersionChange: VersionChangeCallback,\n previewExperiences?: {\n [name: string]: TargetingApi,\n },\n previewLibraryVersion: string,\n requestInterceptor?: Function,\n responseInterceptor?: Function,\n sharedLink?: string,\n sharedLinkPassword?: string,\n showAnnotations?: boolean,\n showAnnotationsControls?: boolean,\n staticHost: string,\n staticPath: string,\n theme?: Theme,\n token: Token,\n useHotkeys: boolean,\n} & ErrorContextProps &\n WithLoggerProps &\n WithAnnotationsProps &\n WithAnnotatorContextProps &\n ContextRouter;\n\ntype State = {\n canPrint?: boolean,\n currentFileId?: string,\n error?: ErrorType,\n file?: BoxItem,\n isLoading: boolean,\n isReloadNotificationVisible: boolean,\n isThumbnailSidebarOpen: boolean,\n prevFileIdProp?: string, // the previous value of the \"fileId\" prop. Needed to implement getDerivedStateFromProps\n selectedVersion?: BoxItemVersion,\n startAt?: StartAt,\n};\n\n// Emitted by preview's 'load' event\ntype PreviewTimeMetrics = {\n conversion: number,\n preload?: number,\n rendering: number,\n total: number,\n};\n\n// Emitted by preview's 'preview_metric' event\ntype PreviewMetrics = {\n browser_name: string,\n client_version: string,\n content_type: string, // Sum of all available load times.\n convert_time: number,\n download_response_time: number,\n error?: Object,\n event_name?: string,\n extension: string,\n file_id: string,\n file_info_time: number,\n file_version_id: string,\n full_document_load_time: number,\n locale: string,\n logger_session_id: string,\n rep_type: string,\n timestamp: string,\n value: number,\n};\n\ntype PreviewLibraryError = {\n error: ErrorType,\n};\n\nconst startAtTypes = {\n page: 'pages',\n};\nconst InvalidIdError = new Error('Invalid id for Preview!');\nconst PREVIEW_LOAD_METRIC_EVENT = 'load';\nconst MARK_NAME_JS_READY = `${ORIGIN_CONTENT_PREVIEW}_${EVENT_JS_READY}`;\n\nmark(MARK_NAME_JS_READY);\n\nconst LoadableSidebar = AsyncLoad({\n loader: () => import(/* webpackMode: \"lazy\", webpackChunkName: \"content-sidebar\" */ '../content-sidebar'),\n});\n\nclass ContentPreview extends React.PureComponent<Props, State> {\n id: string;\n\n props: Props;\n\n state: State;\n\n preview: any;\n\n api: API;\n\n // Defines a generic type for ContentSidebar, since an import would interfere with code splitting\n contentSidebar: { current: null | { refresh: Function } } = React.createRef();\n\n previewContainer: ?HTMLDivElement;\n\n mouseMoveTimeoutID: TimeoutID;\n\n rootElement: HTMLElement;\n\n stagedFile: ?BoxItem;\n\n updateVersionToCurrent: ?() => void;\n\n initialState: State = {\n canPrint: false,\n error: undefined,\n isLoading: true,\n isReloadNotificationVisible: false,\n isThumbnailSidebarOpen: false,\n };\n\n static defaultProps = {\n apiHost: DEFAULT_HOSTNAME_API,\n appHost: DEFAULT_HOSTNAME_APP,\n autoFocus: false,\n canDownload: true,\n className: '',\n collection: [],\n contentAnswersProps: {},\n contentOpenWithProps: {},\n contentSidebarProps: {},\n enableThumbnailsSidebar: false,\n hasHeader: false,\n language: DEFAULT_LOCALE,\n onAnnotator: noop,\n onAnnotatorEvent: noop,\n onContentInsightsEventReport: noop,\n onDownload: noop,\n onError: noop,\n onLoad: noop,\n onNavigate: noop,\n onPreviewDestroy: noop,\n onVersionChange: noop,\n previewLibraryVersion: DEFAULT_PREVIEW_VERSION,\n showAnnotations: false,\n staticHost: DEFAULT_HOSTNAME_STATIC,\n staticPath: DEFAULT_PATH_STATIC_PREVIEW,\n useHotkeys: true,\n };\n\n /**\n * @property {number}\n */\n fetchFileEndTime: ?number;\n\n /**\n * @property {number}\n */\n fetchFileStartTime: ?number;\n\n /**\n * [constructor]\n *\n * @return {ContentPreview}\n */\n constructor(props: Props) {\n super(props);\n const {\n apiHost,\n cache,\n fileId,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n } = props;\n\n this.id = uniqueid('bcpr_');\n this.api = new API({\n apiHost,\n cache,\n clientName: CLIENT_NAME_CONTENT_PREVIEW,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n });\n this.state = {\n ...this.initialState,\n currentFileId: fileId,\n // eslint-disable-next-line react/no-unused-state\n prevFileIdProp: fileId,\n };\n const { logger } = props;\n logger.onReadyMetric({\n endMarkName: MARK_NAME_JS_READY,\n });\n }\n\n /**\n * Cleanup\n *\n * @return {void}\n */\n componentWillUnmount(): void {\n // Don't destroy the cache while unmounting\n this.api.destroy(false);\n this.destroyPreview();\n }\n\n /**\n * Cleans up the preview instance\n */\n destroyPreview(shouldReset: boolean = true) {\n const { onPreviewDestroy } = this.props;\n if (this.preview) {\n this.preview.destroy();\n this.preview.removeAllListeners();\n this.preview = undefined;\n\n onPreviewDestroy(shouldReset);\n }\n }\n\n /**\n * Destroys api instances with caches\n *\n * @private\n * @return {void}\n */\n clearCache(): void {\n this.api.destroy(true);\n }\n\n /**\n * Once the component mounts, load Preview assets and fetch file info.\n *\n * @return {void}\n */\n componentDidMount(): void {\n this.loadStylesheet();\n this.loadScript();\n\n this.fetchFile(this.state.currentFileId);\n this.focusPreview();\n }\n\n static getDerivedStateFromProps(props: Props, state: State) {\n const { fileId } = props;\n\n if (fileId !== state.prevFileIdProp) {\n return {\n currentFileId: fileId,\n prevFileIdProp: fileId,\n };\n }\n\n return null;\n }\n\n /**\n * After component updates, load Preview if appropriate.\n *\n * @return {void}\n */\n componentDidUpdate(prevProps: Props, prevState: State): void {\n const { features, previewExperiences, token } = this.props;\n const { features: prevFeatures, previewExperiences: prevPreviewExperiences, token: prevToken } = prevProps;\n const { currentFileId } = this.state;\n const hasFileIdChanged = prevState.currentFileId !== currentFileId;\n const hasTokenChanged = prevToken !== token;\n const haveAdvancedContentInsightsChanged = !isEqual(\n prevFeatures?.advancedContentInsights,\n features?.advancedContentInsights,\n );\n const haveExperiencesChanged = prevPreviewExperiences !== previewExperiences;\n\n if (hasFileIdChanged) {\n this.destroyPreview();\n this.setState({ isLoading: true, selectedVersion: undefined });\n this.fetchFile(currentFileId);\n } else if (this.shouldLoadPreview(prevState)) {\n this.destroyPreview(false);\n this.setState({ isLoading: true });\n this.loadPreview();\n } else if (hasTokenChanged) {\n this.updatePreviewToken();\n }\n\n if (haveExperiencesChanged && this.preview && this.preview.updateExperiences) {\n this.preview.updateExperiences(previewExperiences);\n }\n\n if (\n this.preview?.updateContentInsightsOptions &&\n features?.advancedContentInsights &&\n haveAdvancedContentInsightsChanged\n ) {\n this.preview.updateContentInsightsOptions(features?.advancedContentInsights);\n }\n }\n\n /**\n * Updates the access token used by preview library\n *\n * @param {boolean} shouldReload - true if preview should be reloaded\n */\n updatePreviewToken(shouldReload: boolean = false) {\n if (this.preview) {\n this.preview.updateToken(this.props.token, shouldReload);\n }\n }\n\n /**\n * Returns whether or not preview should be loaded.\n *\n * @param {State} prevState - Previous state\n * @return {boolean}\n */\n shouldLoadPreview(prevState: State): boolean {\n const { file, selectedVersion }: State = this.state;\n const { file: prevFile, selectedVersion: prevSelectedVersion }: State = prevState;\n const prevSelectedVersionId = getProp(prevSelectedVersion, 'id');\n const selectedVersionId = getProp(selectedVersion, 'id');\n const prevFileVersionId = getProp(prevFile, 'file_version.id');\n const fileVersionId = getProp(file, 'file_version.id');\n let loadPreview = false;\n\n if (selectedVersionId !== prevSelectedVersionId) {\n const isPreviousCurrent = fileVersionId === prevSelectedVersionId || !prevSelectedVersionId;\n const isSelectedCurrent = fileVersionId === selectedVersionId || !selectedVersionId;\n\n // Load preview if the user has selected a non-current version of the file\n loadPreview = !isPreviousCurrent || !isSelectedCurrent;\n } else if (fileVersionId && prevFileVersionId) {\n // Load preview if the file's current version ID has changed\n loadPreview = fileVersionId !== prevFileVersionId;\n } else {\n // Load preview if file object has newly been populated in state\n loadPreview = !prevFile && !!file;\n }\n\n return loadPreview;\n }\n\n /**\n * Returns preview asset urls\n *\n * @return {string} base url\n */\n getBasePath(asset: string): string {\n const { staticHost, staticPath, language, previewLibraryVersion }: Props = this.props;\n const path: string = `${staticPath}/${previewLibraryVersion}/${language}/${asset}`;\n const suffix: string = staticHost.endsWith('/') ? path : `/${path}`;\n return `${staticHost}${suffix}`;\n }\n\n /**\n * Determines if preview assets are loaded\n *\n * @return {boolean} true if preview is loaded\n */\n isPreviewLibraryLoaded(): boolean {\n return !!global.Box && !!global.Box.Preview;\n }\n\n /**\n * Loads external css by appending a <link> element\n *\n * @return {void}\n */\n loadStylesheet(): void {\n const { head } = document;\n const url: string = this.getBasePath('preview.css');\n\n if (!head || head.querySelector(`link[rel=\"stylesheet\"][href=\"${url}\"]`)) {\n return;\n }\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = url;\n head.appendChild(link);\n }\n\n /**\n * Loads external script by appending a <script> element\n *\n * @return {void}\n */\n loadScript(): void {\n const { head } = document;\n const url: string = this.getBasePath('preview.js');\n\n if (!head || this.isPreviewLibraryLoaded()) {\n return;\n }\n\n const previewScript = head.querySelector(`script[src=\"${url}\"]`);\n if (previewScript) {\n return;\n }\n\n const script = document.createElement('script');\n script.src = url;\n script.addEventListener('load', this.loadPreview);\n head.appendChild(script);\n }\n\n /**\n * Focuses the preview on load.\n *\n * @return {void}\n */\n focusPreview() {\n const { autoFocus, getInnerRef }: Props = this.props;\n if (autoFocus && !isInputElement(document.activeElement)) {\n focus(getInnerRef());\n }\n }\n\n /**\n * Updates preview cache and prefetches a file\n *\n * @param {BoxItem} file - file to prefetch\n * @return {void}\n */\n updatePreviewCacheAndPrefetch(file: BoxItem, token: Token): void {\n if (!this.preview || !file || !file.id) {\n return;\n }\n\n this.preview.updateFileCache([file]);\n this.preview.prefetch({ fileId: file.id, token });\n }\n\n /**\n * Gets the file id\n *\n * @param {string|BoxItem} file - box file or file id\n * @return {string} file id\n */\n getFileId(file?: string | BoxItem): string {\n if (typeof file === 'string') {\n return file;\n }\n\n if (typeof file === 'object' && !!file.id) {\n return file.id;\n }\n\n throw InvalidIdError;\n }\n\n /**\n * Prefetches the next few preview files if any\n *\n * @param {Array<string|BoxItem>} files - files to prefetch\n * @return {void}\n */\n async prefetch(files: Array<string | BoxItem>): Promise<void> {\n const { token }: Props = this.props;\n const typedIds: string[] = files.map(file => getTypedFileId(this.getFileId(file)));\n await TokenService.cacheTokens(typedIds, token);\n files.forEach(file => {\n const fileId = this.getFileId(file);\n this.fetchFile(fileId, noop, noop, {\n refreshCache: false,\n });\n });\n }\n\n /**\n * Calculates the total file fetch time\n *\n * @return {number} the total fetch time\n */\n getTotalFileFetchTime(): number {\n if (!this.fetchFileStartTime || !this.fetchFileEndTime) {\n return 0;\n }\n\n return Math.round(this.fetchFileEndTime - this.fetchFileStartTime);\n }\n\n /**\n * Handler for 'preview_error' preview event\n *\n * @param {PreviewLibraryError} previewError - the error data emitted from preview\n * @return {void}\n */\n onPreviewError = ({ error, ...rest }: PreviewLibraryError): void => {\n const { code = ERROR_CODE_UNKNOWN } = error;\n const { onError } = this.props;\n\n // In case of error, there should be no thumbnail sidebar to account for\n this.setState({ isLoading: false, isThumbnailSidebarOpen: false });\n\n onError(\n error,\n code,\n {\n ...rest,\n error,\n },\n ORIGIN_PREVIEW,\n );\n };\n\n /**\n * Event handler 'preview_metric' which also adds in the file fetch time if it's a load event\n *\n * @param {Object} previewMetrics - the object emitted by 'preview_metric'\n * @return {void}\n */\n onPreviewMetric = (previewMetrics: PreviewMetrics): void => {\n const { logger } = this.props;\n const { event_name } = previewMetrics;\n let metrics = {\n ...previewMetrics,\n };\n\n // We need to add in the total file fetch time to the file_info_time and value (total)\n // as preview does not do the files call\n if (event_name === PREVIEW_LOAD_METRIC_EVENT) {\n const totalFetchFileTime = this.getTotalFileFetchTime();\n const totalTime = (previewMetrics.value || 0) + totalFetchFileTime;\n\n // If an unnatural load time occurs or is invalid, don't log a load event\n if (!totalTime) {\n return;\n }\n\n metrics = {\n ...previewMetrics,\n file_info_time: totalFetchFileTime,\n value: totalTime,\n };\n }\n\n logger.onPreviewMetric(metrics);\n };\n\n /**\n * Adds in the file fetch time to the preview metrics\n *\n * @param {Object} previewTimeMetrics - the preview time metrics\n * @return {Object} the preview time metrics merged with the files call time\n */\n addFetchFileTimeToPreviewMetrics(previewTimeMetrics: PreviewTimeMetrics): PreviewTimeMetrics {\n const totalFetchFileTime = this.getTotalFileFetchTime();\n const { rendering, conversion, preload } = previewTimeMetrics;\n\n // We need to add in the total file fetch time to the rendering and total as preview\n // does not do the files call. In the case the file is in the process of\n // being converted, we need to add to conversion instead of the render\n let totalConversion = conversion;\n let totalRendering = rendering;\n let totalPreload = preload;\n if (conversion) {\n totalConversion += totalFetchFileTime;\n } else {\n totalRendering += totalFetchFileTime;\n }\n\n if (totalPreload) {\n // Preload is optional, depending on file type\n totalPreload += totalFetchFileTime;\n }\n\n const previewMetrics = {\n conversion: totalConversion,\n rendering: totalRendering,\n total: totalRendering + totalConversion,\n preload: totalPreload,\n };\n\n return previewMetrics;\n }\n\n /**\n * onLoad function for preview\n *\n * @return {void}\n */\n onPreviewLoad = (data: Object): void => {\n const { onLoad, collection }: Props = this.props;\n const currentIndex = this.getFileIndex();\n const filesToPrefetch = collection.slice(currentIndex + 1, currentIndex + 5);\n const previewTimeMetrics = getProp(data, 'metrics.time');\n let loadData = data;\n\n if (previewTimeMetrics) {\n const totalPreviewMetrics = this.addFetchFileTimeToPreviewMetrics(previewTimeMetrics);\n loadData = {\n ...loadData,\n metrics: {\n ...loadData.metrics,\n time: totalPreviewMetrics,\n },\n };\n }\n\n onLoad(loadData);\n\n this.setState({ isLoading: false });\n this.focusPreview();\n\n if (this.preview && filesToPrefetch.length) {\n this.prefetch(filesToPrefetch);\n }\n\n this.handleCanPrint();\n };\n\n /**\n * Returns whether file can be downloaded based on file properties, permissions, and user-defined options.\n *\n * @return {boolean}\n */\n canDownload(): boolean {\n const { canDownload }: Props = this.props;\n const { file }: State = this.state;\n const isFileDownloadable =\n getProp(file, 'permissions.can_download', false) && getProp(file, 'is_download_available', false);\n return isFileDownloadable && !!canDownload;\n }\n\n /**\n * Returns whether file can be annotated based on permissions\n *\n * @return {boolean}\n */\n canAnnotate(): boolean {\n const { showAnnotations }: Props = this.props;\n const { file }: State = this.state;\n const isFileAnnotatable = getProp(file, 'permissions.can_annotate', false);\n return !!showAnnotations && isFileAnnotatable;\n }\n\n /**\n * Returns whether a preview should render annotations based on permissions\n *\n * @return {boolean}\n */\n canViewAnnotations(): boolean {\n const { showAnnotations }: Props = this.props;\n const { file }: State = this.state;\n const hasViewAllPermissions = getProp(file, 'permissions.can_view_annotations_all', false);\n const hasViewSelfPermissions = getProp(file, 'permissions.can_view_annotations_self', false);\n return !!showAnnotations && (this.canAnnotate() || hasViewAllPermissions || hasViewSelfPermissions);\n }\n\n handleCanPrint() {\n const preview = this.getPreview();\n this.setState({ canPrint: !!preview && (!preview.canPrint || preview.canPrint()) });\n }\n\n /**\n * Loads preview in the component using the preview library.\n *\n * @return {void}\n */\n loadPreview = async (): Promise<void> => {\n const {\n advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI\n annotatorState: { activeAnnotationId } = {},\n enableThumbnailsSidebar,\n features,\n fileOptions,\n onAnnotatorEvent,\n onAnnotator,\n onContentInsightsEventReport,\n previewExperiences,\n showAnnotationsControls,\n token: tokenOrTokenFunction,\n ...rest\n }: Props = this.props;\n const { file, selectedVersion, startAt }: State = this.state;\n\n if (!this.isPreviewLibraryLoaded() || !file || !tokenOrTokenFunction) {\n return;\n }\n\n const fileId = this.getFileId(file);\n\n if (fileId !== this.state.currentFileId) {\n return;\n }\n\n const fileOpts = { ...fileOptions };\n const token = typedId => TokenService.getReadTokens(typedId, tokenOrTokenFunction);\n\n if (selectedVersion) {\n setProp(fileOpts, [fileId, 'fileVersionId'], selectedVersion.id);\n setProp(fileOpts, [fileId, 'currentFileVersionId'], getProp(file, 'file_version.id'));\n }\n\n if (activeAnnotationId) {\n setProp(fileOpts, [fileId, 'annotations', 'activeId'], activeAnnotationId);\n }\n\n if (startAt) {\n setProp(fileOpts, [fileId, 'startAt'], startAt);\n }\n\n const previewOptions = {\n advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI\n container: `#${this.id} .bcpr-content`,\n enableThumbnailsSidebar,\n features,\n fileOptions: fileOpts,\n header: 'none',\n headerElement: `#${this.id} .bcpr-PreviewHeader`,\n experiences: previewExperiences,\n showAnnotations: this.canViewAnnotations(),\n showAnnotationsControls,\n showDownload: this.canDownload(),\n showLoading: false,\n showProgress: false,\n skipServerUpdate: true,\n useHotkeys: false,\n };\n const { Preview } = global.Box;\n this.preview = new Preview();\n this.preview.addListener('load', this.onPreviewLoad);\n this.preview.addListener('preview_error', this.onPreviewError);\n this.preview.addListener('preview_metric', this.onPreviewMetric);\n this.preview.addListener('thumbnailsOpen', () => this.setState({ isThumbnailSidebarOpen: true }));\n this.preview.addListener('thumbnailsClose', () => this.setState({ isThumbnailSidebarOpen: false }));\n\n if (showAnnotationsControls) {\n this.preview.addListener('annotator_create', onAnnotator);\n }\n\n this.preview.updateFileCache([file]);\n this.preview.show(file.id, token, {\n ...previewOptions,\n ...omit(rest, Object.keys(previewOptions)),\n });\n if (advancedContentInsights) {\n this.preview.addListener('advanced_insights_report', onContentInsightsEventReport);\n }\n };\n\n /**\n * Updates preview file from temporary staged file.\n *\n * @return {void}\n */\n loadFileFromStage = () => {\n if (this.stagedFile) {\n this.setState({ ...this.initialState, file: this.stagedFile }, () => {\n this.stagedFile = undefined;\n });\n }\n };\n\n /**\n * Removes the reload notification\n *\n * @return {void}\n */\n closeReloadNotification = () => {\n this.setState({ isReloadNotificationVisible: false });\n };\n\n /**\n * Tells the preview to resize\n *\n * @return {void}\n */\n onResize = (): void => {\n if (this.preview && this.preview.getCurrentViewer()) {\n this.preview.resize();\n }\n };\n\n /**\n * File fetch success callback\n *\n * @param {Object} file - Box file\n * @return {void}\n */\n fetchFileSuccessCallback = (file: BoxItem): void => {\n this.fetchFileEndTime = performance.now();\n\n const { file: currentFile }: State = this.state;\n const isExistingFile = currentFile ? currentFile.id === file.id : false;\n const isWatermarked = getProp(file, 'watermark_info.is_watermarked', false);\n\n // If the file is watermarked or if its a new file, then update the state\n // In this case preview should reload without prompting the user\n if (isWatermarked || !isExistingFile) {\n this.setState({ ...this.initialState, file });\n // $FlowFixMe file version and sha1 should exist at this point\n } else if (currentFile.file_version.sha1 !== file.file_version.sha1) {\n // If we are already prevewing the file that got updated then show the\n // user a notification to reload the file only if its sha1 changed\n this.stagedFile = file;\n this.setState({\n ...this.initialState,\n isReloadNotificationVisible: true,\n });\n }\n };\n\n /**\n * File fetch error callback\n *\n * @return {void}\n */\n fetchFileErrorCallback = (fileError: ElementsXhrError, code: string): void => {\n const { onError } = this.props;\n const errorCode = fileError.code || code;\n const error = {\n code: errorCode,\n message: fileError.message,\n };\n this.setState({ error, file: undefined, isLoading: false });\n onError(fileError, errorCode, {\n error: fileError,\n });\n };\n\n /**\n * Fetches a file\n *\n * @param {string} id file id\n * @param {Function|void} [successCallback] - Callback after file is fetched\n * @param {Function|void} [errorCallback] - Callback after error\n * @param {Object|void} [fetchOptions] - Fetch options\n * @return {void}\n */\n fetchFile(\n id: ?string,\n successCallback?: Function,\n errorCallback?: Function,\n fetchOptions: RequestOptions = {},\n ): void {\n if (!id) {\n return;\n }\n\n this.fetchFileStartTime = performance.now();\n this.fetchFileEndTime = null;\n\n this.api\n .getFileAPI()\n .getFile(\n id,\n successCallback || this.fetchFileSuccessCallback,\n errorCallback || this.fetchFileErrorCallback,\n {\n ...fetchOptions,\n fields: PREVIEW_FIELDS_TO_FETCH,\n },\n );\n }\n\n /**\n * Returns the preview instance\n *\n * @return {Preview} current instance of preview\n */\n getPreview = (): any => {\n const { file }: State = this.state;\n if (!this.preview || !file) {\n return null;\n }\n\n return this.preview;\n };\n\n /**\n * Returns the viewer instance being used by preview.\n * This will let child components access the viewers.\n *\n * @return {Viewer} current instance of the preview viewer\n */\n getViewer = (): any => {\n const preview = this.getPreview();\n const viewer = preview ? preview.getCurrentViewer() : null;\n return viewer && viewer.isLoaded() && !viewer.isDestroyed() ? viewer : null;\n };\n\n /**\n * Finds the index of current file inside the collection\n *\n * @return {number} -1 if not indexed\n */\n getFileIndex() {\n const { currentFileId }: State = this.state;\n const { collection }: Props = this.props;\n if (!currentFileId || collection.length < 2) {\n return -1;\n }\n\n return collection.findIndex(item => {\n if (typeof item === 'string') {\n return item === currentFileId;\n }\n\n return item.id === currentFileId;\n });\n }\n\n /**\n * Shows a preview of a file at the specified index in the current collection.\n *\n * @public\n * @param {number} index - Index of file to preview\n * @return {void}\n */\n navigateToIndex(index: number) {\n const { collection, onNavigate }: Props = this.props;\n const { length } = collection;\n if (length < 2 || index < 0 || index > length - 1) {\n return;\n }\n\n const fileOrId = collection[index];\n const fileId = typeof fileOrId === 'object' ? fileOrId.id || '' : fileOrId;\n\n this.setState(\n {\n currentFileId: fileId,\n },\n () => {\n // Execute navigation callback\n onNavigate(fileId);\n },\n );\n }\n\n /**\n * Shows a preview of the previous file.\n *\n * @public\n * @return {void}\n */\n navigateLeft = () => {\n const currentIndex = this.getFileIndex();\n const newIndex = currentIndex === 0 ? 0 : currentIndex - 1;\n if (newIndex !== currentIndex) {\n this.navigateToIndex(newIndex);\n }\n };\n\n /**\n * Shows a preview of the next file.\n *\n * @public\n * @return {void}\n */\n navigateRight = () => {\n const { collection }: Props = this.props;\n const currentIndex = this.getFileIndex();\n const newIndex = currentIndex === collection.length - 1 ? collection.length - 1 : currentIndex + 1;\n if (newIndex !== currentIndex) {\n this.navigateToIndex(newIndex);\n }\n };\n\n /**\n * Downloads file.\n *\n * @public\n * @return {void}\n */\n download = () => {\n const { onDownload }: Props = this.props;\n const { file }: State = this.state;\n if (this.preview) {\n this.preview.download();\n onDownload(cloneDeep(file));\n }\n };\n\n /**\n * Prints file.\n *\n * @public\n * @return {void}\n */\n print = () => {\n if (this.preview) {\n this.preview.print();\n }\n };\n\n /**\n * Mouse move handler that is throttled and show\n * the navigation arrows if applicable.\n *\n * @return {void}\n */\n onMouseMove = throttle(() => {\n const viewer = this.getViewer();\n const isPreviewing = !!viewer;\n const CLASS_NAVIGATION_VISIBILITY = 'bcpr-nav-is-visible';\n\n clearTimeout(this.mouseMoveTimeoutID);\n\n if (!this.previewContainer) {\n return;\n }\n\n // Always assume that navigation arrows will be hidden\n this.previewContainer.classList.remove(CLASS_NAVIGATION_VISIBILITY);\n\n // Only show it if either we aren't previewing or if we are then the viewer\n // is not blocking the show. If we are previewing then the viewer may choose\n // to not allow navigation arrows. This is mostly useful for videos since the\n // navigation arrows may interfere with the settings menu inside video player.\n if (this.previewContainer && (!isPreviewing || viewer.allowNavigationArrows())) {\n this.previewContainer.classList.add(CLASS_NAVIGATION_VISIBILITY);\n }\n\n this.mouseMoveTimeoutID = setTimeout(() => {\n if (this.previewContainer) {\n this.previewContainer.classList.remove(CLASS_NAVIGATION_VISIBILITY);\n }\n }, 1500);\n }, 1000);\n\n /**\n * Keyboard events\n *\n * @return {void}\n */\n onKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {\n const { useHotkeys }: Props = this.props;\n if (!useHotkeys) {\n return;\n }\n\n let consumed = false;\n const key = decode(event);\n const viewer = this.getViewer();\n\n // If focus was on an input or if the viewer doesn't exist\n // then don't bother doing anything further\n if (!key || !viewer || isInputElement(event.target)) {\n return;\n }\n\n if (typeof viewer.onKeydown === 'function') {\n consumed = !!viewer.onKeydown(key, event.nativeEvent);\n }\n\n if (!consumed) {\n switch (key) {\n case 'ArrowLeft':\n this.navigateLeft();\n consumed = true;\n break;\n case 'ArrowRight':\n this.navigateRight();\n consumed = true;\n break;\n default:\n // no-op\n }\n }\n\n if (consumed) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n /**\n * Handles version change events\n *\n * @param {string} [version] - The version that is now previewed\n * @param {object} [additionalVersionInfo] - extra info about the version\n */\n onVersionChange = (version?: BoxItemVersion, additionalVersionInfo: AdditionalVersionInfo = {}): void => {\n const { onVersionChange }: Props = this.props;\n this.updateVersionToCurrent = additionalVersionInfo.updateVersionToCurrent;\n\n onVersionChange(version, additionalVersionInfo);\n this.setState({\n selectedVersion: version,\n });\n };\n\n handleAnnotationSelect = ({ file_version, id, target }: Annotation) => {\n const { location = {} } = target;\n const { file, selectedVersion } = this.state;\n const annotationFileVersionId = getProp(file_version, 'id');\n const currentFileVersionId = getProp(file, 'file_version.id');\n const currentPreviewFileVersionId = getProp(selectedVersion, 'id', currentFileVersionId);\n const unit = startAtTypes[location.type];\n const viewer = this.getViewer();\n\n if (unit && annotationFileVersionId && annotationFileVersionId !== currentPreviewFileVersionId) {\n this.setState({\n startAt: {\n unit,\n value: location.value,\n },\n });\n }\n\n if (viewer) {\n viewer.emit('scrolltoannotation', { id, target });\n }\n };\n\n /**\n * Holds the reference the preview container\n *\n * @return {void}\n */\n containerRef = (container: ?HTMLDivElement) => {\n this.previewContainer = container;\n };\n\n /**\n * Refreshes the content sidebar panel\n *\n * @return {void}\n */\n refreshSidebar(): void {\n const { current: contentSidebar } = this.contentSidebar;\n\n if (contentSidebar) {\n contentSidebar.refresh();\n }\n }\n\n /**\n * Fetches a thumbnail for the page given\n *\n * @return {Promise|null} - promise resolves with the image HTMLElement or null if generation is in progress\n */\n getThumbnail = (pageNumber: ?number): Promise<HTMLElement> | null => {\n const preview = this.getPreview();\n if (preview && preview.viewer) {\n return preview.viewer.getThumbnail(pageNumber);\n }\n\n return null;\n };\n\n /**\n * Renders the file preview\n *\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n apiHost,\n collection,\n token,\n language,\n messages,\n className,\n contentAnswersProps,\n contentOpenWithProps,\n contentSidebarProps,\n hasHeader,\n hasProviders,\n history,\n isLarge,\n isVeryLarge,\n logoUrl,\n onClose,\n measureRef,\n sharedLink,\n sharedLinkPassword,\n requestInterceptor,\n responseInterceptor,\n theme,\n }: Props = this.props;\n\n const {\n canPrint,\n currentFileId,\n error,\n file,\n isLoading,\n isReloadNotificationVisible,\n isThumbnailSidebarOpen,\n selectedVersion,\n }: State = this.state;\n\n const styleClassName = classNames(\n 'be bcpr',\n {\n 'bcpr-thumbnails-open': isThumbnailSidebarOpen,\n },\n className,\n );\n\n if (!currentFileId) {\n return null;\n }\n\n const errorCode = getProp(error, 'code');\n const currentExtension = getProp(file, 'id') === currentFileId ? getProp(file, 'extension') : '';\n const currentVersionId = getProp(file, 'file_version.id');\n const selectedVersionId = getProp(selectedVersion, 'id', currentVersionId);\n const onHeaderClose = currentVersionId === selectedVersionId ? onClose : this.updateVersionToCurrent;\n\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n return (\n <Internationalize language={language} messages={messages}>\n <APIContext.Provider value={(this.api: API)}>\n <Providers hasProviders={hasProviders}>\n <div\n id={this.id}\n className={styleClassName}\n ref={measureRef}\n onKeyDown={this.onKeyDown}\n tabIndex={0}\n >\n <ThemingStyles theme={theme} />\n {hasHeader && (\n <PreviewHeader\n file={file}\n logoUrl={logoUrl}\n token={token}\n onClose={onHeaderClose}\n onPrint={this.print}\n canDownload={this.canDownload()}\n canPrint={canPrint}\n onDownload={this.download}\n contentAnswersProps={contentAnswersProps}\n contentOpenWithProps={contentOpenWithProps}\n canAnnotate={this.canAnnotate()}\n selectedVersion={selectedVersion}\n />\n )}\n <div className=\"bcpr-body\">\n <div className=\"bcpr-container\" onMouseMove={this.onMouseMove} ref={this.containerRef}>\n {file && (\n <Measure bounds onResize={this.onResize}>\n {({ measureRef: previewRef }) => (\n <div ref={previewRef} className=\"bcpr-content\" />\n )}\n </Measure>\n )}\n <PreviewMask\n errorCode={errorCode}\n extension={currentExtension}\n isLoading={isLoading}\n />\n <PreviewNavigation\n collection={collection}\n currentIndex={this.getFileIndex()}\n onNavigateLeft={this.navigateLeft}\n onNavigateRight={this.navigateRight}\n />\n </div>\n {file && (\n <LoadableSidebar\n {...contentSidebarProps}\n apiHost={apiHost}\n token={token}\n cache={this.api.getCache()}\n fileId={currentFileId}\n getPreview={this.getPreview}\n getViewer={this.getViewer}\n history={history}\n isDefaultOpen={isLarge || isVeryLarge}\n language={language}\n ref={this.contentSidebar}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n onAnnotationSelect={this.handleAnnotationSelect}\n onVersionChange={this.onVersionChange}\n />\n )}\n </div>\n {isReloadNotificationVisible && (\n <ReloadNotification\n onClose={this.closeReloadNotification}\n onClick={this.loadFileFromStage}\n />\n )}\n </div>\n </Providers>\n </APIContext.Provider>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport type ContentPreviewProps = Props;\nexport { ContentPreview as ContentPreviewComponent };\nexport default flow([\n makeResponsive,\n withAnnotatorContext,\n withAnnotations,\n withRouter,\n withNavRouter,\n withFeatureConsumer,\n withFeatureProvider,\n withLogger(ORIGIN_CONTENT_PREVIEW),\n withErrorBoundary(ORIGIN_CONTENT_PREVIEW),\n])(ContentPreview);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentPreview.js","names":["React","classNames","cloneDeep","flow","getProp","isEqual","noop","omit","setProp","throttle","uniqueid","Measure","withRouter","decode","makeResponsive","withNavRouter","Internationalize","AsyncLoad","ThemingStyles","TokenService","isInputElement","focus","getTypedFileId","withAnnotations","withAnnotatorContext","withErrorBoundary","withLogger","PREVIEW_FIELDS_TO_FETCH","mark","withFeatureConsumer","withFeatureProvider","EVENT_JS_READY","ReloadNotification","API","APIContext","PreviewHeader","PreviewMask","PreviewNavigation","Providers","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_APP","DEFAULT_HOSTNAME_STATIC","DEFAULT_PREVIEW_VERSION","DEFAULT_LOCALE","DEFAULT_PATH_STATIC_PREVIEW","CLIENT_NAME_CONTENT_PREVIEW","ORIGIN_PREVIEW","ORIGIN_CONTENT_PREVIEW","ERROR_CODE_UNKNOWN","startAtTypes","page","InvalidIdError","Error","PREVIEW_LOAD_METRIC_EVENT","MARK_NAME_JS_READY","LoadableSidebar","loader","ContentPreview","PureComponent","constructor","props","_defineProperty","createRef","canPrint","error","undefined","isLoading","isReloadNotificationVisible","isThumbnailSidebarOpen","_ref","rest","_objectWithoutProperties","_excluded","code","onError","setState","_objectSpread","previewMetrics","logger","event_name","metrics","totalFetchFileTime","getTotalFileFetchTime","totalTime","value","file_info_time","onPreviewMetric","data","onLoad","collection","currentIndex","getFileIndex","filesToPrefetch","slice","previewTimeMetrics","loadData","totalPreviewMetrics","addFetchFileTimeToPreviewMetrics","time","focusPreview","preview","length","prefetch","handleCanPrint","_this$props","advancedContentInsights","annotatorState","activeAnnotationId","enableThumbnailsSidebar","features","fileOptions","onAnnotatorEvent","onAnnotator","onContentInsightsEventReport","previewExperiences","showAnnotationsControls","token","tokenOrTokenFunction","_excluded2","file","selectedVersion","startAt","state","isPreviewLibraryLoaded","fileId","getFileId","currentFileId","fileOpts","typedId","getReadTokens","id","previewOptions","container","header","headerElement","experiences","showAnnotations","canViewAnnotations","showDownload","canDownload","showLoading","showProgress","skipServerUpdate","useHotkeys","Preview","global","Box","addListener","onPreviewLoad","onPreviewError","updateFileCache","show","Object","keys","stagedFile","initialState","getCurrentViewer","resize","fetchFileEndTime","performance","now","currentFile","isExistingFile","isWatermarked","file_version","sha1","fileError","errorCode","message","getPreview","viewer","isLoaded","isDestroyed","newIndex","navigateToIndex","onDownload","download","print","getViewer","isPreviewing","CLASS_NAVIGATION_VISIBILITY","clearTimeout","mouseMoveTimeoutID","previewContainer","classList","remove","allowNavigationArrows","add","setTimeout","event","consumed","key","target","onKeydown","nativeEvent","navigateLeft","navigateRight","preventDefault","stopPropagation","version","additionalVersionInfo","onVersionChange","updateVersionToCurrent","location","annotationFileVersionId","currentFileVersionId","currentPreviewFileVersionId","unit","type","emit","pageNumber","getThumbnail","apiHost","cache","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","api","clientName","prevFileIdProp","onReadyMetric","endMarkName","componentWillUnmount","destroy","destroyPreview","shouldReset","onPreviewDestroy","removeAllListeners","clearCache","componentDidMount","loadStylesheet","loadScript","fetchFile","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","prevFeatures","prevPreviewExperiences","prevToken","hasFileIdChanged","hasTokenChanged","haveAdvancedContentInsightsChanged","haveExperiencesChanged","shouldLoadPreview","loadPreview","updatePreviewToken","updateExperiences","updateContentInsightsOptions","shouldReload","updateToken","prevFile","prevSelectedVersion","prevSelectedVersionId","selectedVersionId","prevFileVersionId","fileVersionId","isPreviousCurrent","isSelectedCurrent","getBasePath","asset","staticHost","staticPath","previewLibraryVersion","path","suffix","endsWith","head","document","url","querySelector","link","createElement","rel","href","appendChild","previewScript","script","src","addEventListener","autoFocus","getInnerRef","activeElement","updatePreviewCacheAndPrefetch","files","typedIds","map","cacheTokens","forEach","refreshCache","fetchFileStartTime","Math","round","rendering","conversion","preload","totalConversion","totalRendering","totalPreload","total","isFileDownloadable","canAnnotate","isFileAnnotatable","hasViewAllPermissions","hasViewSelfPermissions","successCallback","errorCallback","fetchOptions","getFileAPI","getFile","fetchFileSuccessCallback","fetchFileErrorCallback","fields","findIndex","item","index","onNavigate","fileOrId","refreshSidebar","current","contentSidebar","refresh","render","messages","className","contentAnswersProps","contentOpenWithProps","contentSidebarProps","hasHeader","hasProviders","history","isLarge","isVeryLarge","logoUrl","onClose","measureRef","theme","styleClassName","currentExtension","currentVersionId","onHeaderClose","Provider","ref","onKeyDown","tabIndex","onPrint","onMouseMove","containerRef","bounds","onResize","previewRef","extension","onNavigateLeft","onNavigateRight","_extends","getCache","isDefaultOpen","onAnnotationSelect","handleAnnotationSelect","closeReloadNotification","onClick","loadFileFromStage","appHost","ContentPreviewComponent"],"sources":["../../../src/elements/content-preview/ContentPreview.js"],"sourcesContent":["/**\n * @flow\n * @file Content Preview Component\n * @author Box\n */\n\nimport 'regenerator-runtime/runtime';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport noop from 'lodash/noop';\nimport omit from 'lodash/omit';\nimport setProp from 'lodash/set';\nimport throttle from 'lodash/throttle';\nimport uniqueid from 'lodash/uniqueId';\nimport Measure from 'react-measure';\nimport { withRouter } from 'react-router-dom';\nimport type { ContextRouter } from 'react-router-dom';\nimport { decode } from '../../utils/keys';\nimport makeResponsive from '../common/makeResponsive';\nimport { withNavRouter } from '../common/nav-router';\nimport Internationalize from '../common/Internationalize';\nimport AsyncLoad from '../common/async-load';\n// $FlowFixMe TypeScript file\nimport ThemingStyles from '../common/theming';\nimport TokenService from '../../utils/TokenService';\nimport { isInputElement, focus } from '../../utils/dom';\nimport { getTypedFileId } from '../../utils/file';\nimport { withAnnotations, withAnnotatorContext } from '../common/annotator-context';\nimport { withErrorBoundary } from '../common/error-boundary';\nimport { withLogger } from '../common/logger';\nimport { PREVIEW_FIELDS_TO_FETCH } from '../../utils/fields';\nimport { mark } from '../../utils/performance';\nimport { withFeatureConsumer, withFeatureProvider } from '../common/feature-checking';\nimport { EVENT_JS_READY } from '../common/logger/constants';\nimport ReloadNotification from './ReloadNotification';\nimport API from '../../api';\nimport APIContext from '../common/api-context';\nimport PreviewHeader from './preview-header';\nimport PreviewMask from './PreviewMask';\nimport PreviewNavigation from './PreviewNavigation';\nimport Providers from '../common/Providers';\nimport {\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_APP,\n DEFAULT_HOSTNAME_STATIC,\n DEFAULT_PREVIEW_VERSION,\n DEFAULT_LOCALE,\n DEFAULT_PATH_STATIC_PREVIEW,\n CLIENT_NAME_CONTENT_PREVIEW,\n ORIGIN_PREVIEW,\n ORIGIN_CONTENT_PREVIEW,\n ERROR_CODE_UNKNOWN,\n} from '../../constants';\nimport type { Annotation } from '../../common/types/feed';\nimport type { TargetingApi } from '../../features/targeting/types';\nimport type { ErrorType, AdditionalVersionInfo } from '../common/flowTypes';\nimport type { WithLoggerProps } from '../../common/types/logging';\nimport type { RequestOptions, ErrorContextProps, ElementsXhrError } from '../../common/types/api';\nimport type { StringMap, Token, BoxItem, BoxItemVersion } from '../../common/types/core';\nimport type { VersionChangeCallback } from '../content-sidebar/versions';\nimport type { FeatureConfig } from '../common/feature-checking';\nimport type { WithAnnotationsProps, WithAnnotatorContextProps } from '../common/annotator-context';\n// $FlowFixMe TypeScript file\nimport type { Theme } from '../common/theming';\nimport type APICache from '../../utils/Cache';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport './ContentPreview.scss';\n\ntype StartAt = {\n unit: 'pages' | 'seconds',\n value: number,\n};\n\ntype Props = {\n advancedContentInsights: {\n isActive: boolean,\n ownerEId: number,\n userId: number,\n },\n apiHost: string,\n appHost: string,\n autoFocus: boolean,\n boxAnnotations?: Object,\n cache?: APICache,\n canDownload?: boolean,\n className: string,\n collection: Array<string | BoxItem>,\n contentAnswersProps: ContentAnswersProps,\n contentOpenWithProps: ContentOpenWithProps,\n contentSidebarProps: ContentSidebarProps,\n enableThumbnailsSidebar: boolean,\n features?: FeatureConfig,\n fileId?: string,\n fileOptions?: Object,\n getInnerRef: () => ?HTMLElement,\n hasHeader?: boolean,\n hasProviders?: boolean,\n isLarge: boolean,\n isVeryLarge?: boolean,\n language: string,\n logoUrl?: string,\n measureRef: Function,\n messages?: StringMap,\n onAnnotator: Function,\n onAnnotatorEvent: Function,\n onClose?: Function,\n onContentInsightsEventReport: Function,\n onDownload: Function,\n onLoad: Function,\n onNavigate: Function,\n onVersionChange: VersionChangeCallback,\n previewExperiences?: {\n [name: string]: TargetingApi,\n },\n previewLibraryVersion: string,\n requestInterceptor?: Function,\n responseInterceptor?: Function,\n sharedLink?: string,\n sharedLinkPassword?: string,\n showAnnotations?: boolean,\n showAnnotationsControls?: boolean,\n staticHost: string,\n staticPath: string,\n theme?: Theme,\n token: Token,\n useHotkeys: boolean,\n} & ErrorContextProps &\n WithLoggerProps &\n WithAnnotationsProps &\n WithAnnotatorContextProps &\n ContextRouter;\n\ntype State = {\n canPrint?: boolean,\n currentFileId?: string,\n error?: ErrorType,\n file?: BoxItem,\n isLoading: boolean,\n isReloadNotificationVisible: boolean,\n isThumbnailSidebarOpen: boolean,\n prevFileIdProp?: string, // the previous value of the \"fileId\" prop. Needed to implement getDerivedStateFromProps\n selectedVersion?: BoxItemVersion,\n startAt?: StartAt,\n};\n\n// Emitted by preview's 'load' event\ntype PreviewTimeMetrics = {\n conversion: number,\n preload?: number,\n rendering: number,\n total: number,\n};\n\n// Emitted by preview's 'preview_metric' event\ntype PreviewMetrics = {\n browser_name: string,\n client_version: string,\n content_type: string, // Sum of all available load times.\n convert_time: number,\n download_response_time: number,\n error?: Object,\n event_name?: string,\n extension: string,\n file_id: string,\n file_info_time: number,\n file_version_id: string,\n full_document_load_time: number,\n locale: string,\n logger_session_id: string,\n rep_type: string,\n timestamp: string,\n value: number,\n};\n\ntype PreviewLibraryError = {\n error: ErrorType,\n};\n\nconst startAtTypes = {\n page: 'pages',\n};\nconst InvalidIdError = new Error('Invalid id for Preview!');\nconst PREVIEW_LOAD_METRIC_EVENT = 'load';\nconst MARK_NAME_JS_READY = `${ORIGIN_CONTENT_PREVIEW}_${EVENT_JS_READY}`;\n\nmark(MARK_NAME_JS_READY);\n\nconst LoadableSidebar = AsyncLoad({\n loader: () => import(/* webpackMode: \"lazy\", webpackChunkName: \"content-sidebar\" */ '../content-sidebar'),\n});\n\nclass ContentPreview extends React.PureComponent<Props, State> {\n id: string;\n\n props: Props;\n\n state: State;\n\n preview: any;\n\n api: API;\n\n // Defines a generic type for ContentSidebar, since an import would interfere with code splitting\n contentSidebar: { current: null | { refresh: Function } } = React.createRef();\n\n previewContainer: ?HTMLDivElement;\n\n mouseMoveTimeoutID: TimeoutID;\n\n rootElement: HTMLElement;\n\n stagedFile: ?BoxItem;\n\n updateVersionToCurrent: ?() => void;\n\n initialState: State = {\n canPrint: false,\n error: undefined,\n isLoading: true,\n isReloadNotificationVisible: false,\n isThumbnailSidebarOpen: false,\n };\n\n static defaultProps = {\n apiHost: DEFAULT_HOSTNAME_API,\n appHost: DEFAULT_HOSTNAME_APP,\n autoFocus: false,\n canDownload: true,\n className: '',\n collection: [],\n contentAnswersProps: {},\n contentOpenWithProps: {},\n contentSidebarProps: {},\n enableThumbnailsSidebar: false,\n hasHeader: false,\n language: DEFAULT_LOCALE,\n onAnnotator: noop,\n onAnnotatorEvent: noop,\n onContentInsightsEventReport: noop,\n onDownload: noop,\n onError: noop,\n onLoad: noop,\n onNavigate: noop,\n onPreviewDestroy: noop,\n onVersionChange: noop,\n previewLibraryVersion: DEFAULT_PREVIEW_VERSION,\n showAnnotations: false,\n staticHost: DEFAULT_HOSTNAME_STATIC,\n staticPath: DEFAULT_PATH_STATIC_PREVIEW,\n useHotkeys: true,\n };\n\n /**\n * @property {number}\n */\n fetchFileEndTime: ?number;\n\n /**\n * @property {number}\n */\n fetchFileStartTime: ?number;\n\n /**\n * [constructor]\n *\n * @return {ContentPreview}\n */\n constructor(props: Props) {\n super(props);\n const {\n apiHost,\n cache,\n fileId,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n } = props;\n\n this.id = uniqueid('bcpr_');\n this.api = new API({\n apiHost,\n cache,\n clientName: CLIENT_NAME_CONTENT_PREVIEW,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n });\n this.state = {\n ...this.initialState,\n currentFileId: fileId,\n // eslint-disable-next-line react/no-unused-state\n prevFileIdProp: fileId,\n };\n const { logger } = props;\n logger.onReadyMetric({\n endMarkName: MARK_NAME_JS_READY,\n });\n }\n\n /**\n * Cleanup\n *\n * @return {void}\n */\n componentWillUnmount(): void {\n // Don't destroy the cache while unmounting\n this.api.destroy(false);\n this.destroyPreview();\n }\n\n /**\n * Cleans up the preview instance\n */\n destroyPreview(shouldReset: boolean = true) {\n const { onPreviewDestroy } = this.props;\n if (this.preview) {\n this.preview.destroy();\n this.preview.removeAllListeners();\n this.preview = undefined;\n\n onPreviewDestroy(shouldReset);\n }\n }\n\n /**\n * Destroys api instances with caches\n *\n * @private\n * @return {void}\n */\n clearCache(): void {\n this.api.destroy(true);\n }\n\n /**\n * Once the component mounts, load Preview assets and fetch file info.\n *\n * @return {void}\n */\n componentDidMount(): void {\n this.loadStylesheet();\n this.loadScript();\n\n this.fetchFile(this.state.currentFileId);\n this.focusPreview();\n }\n\n static getDerivedStateFromProps(props: Props, state: State) {\n const { fileId } = props;\n\n if (fileId !== state.prevFileIdProp) {\n return {\n currentFileId: fileId,\n prevFileIdProp: fileId,\n };\n }\n\n return null;\n }\n\n /**\n * After component updates, load Preview if appropriate.\n *\n * @return {void}\n */\n componentDidUpdate(prevProps: Props, prevState: State): void {\n const { features, previewExperiences, token } = this.props;\n const { features: prevFeatures, previewExperiences: prevPreviewExperiences, token: prevToken } = prevProps;\n const { currentFileId } = this.state;\n const hasFileIdChanged = prevState.currentFileId !== currentFileId;\n const hasTokenChanged = prevToken !== token;\n const haveAdvancedContentInsightsChanged = !isEqual(\n prevFeatures?.advancedContentInsights,\n features?.advancedContentInsights,\n );\n const haveExperiencesChanged = prevPreviewExperiences !== previewExperiences;\n\n if (hasFileIdChanged) {\n this.destroyPreview();\n this.setState({ isLoading: true, selectedVersion: undefined });\n this.fetchFile(currentFileId);\n } else if (this.shouldLoadPreview(prevState)) {\n this.destroyPreview(false);\n this.setState({ isLoading: true });\n this.loadPreview();\n } else if (hasTokenChanged) {\n this.updatePreviewToken();\n }\n\n if (haveExperiencesChanged && this.preview && this.preview.updateExperiences) {\n this.preview.updateExperiences(previewExperiences);\n }\n\n if (\n this.preview?.updateContentInsightsOptions &&\n features?.advancedContentInsights &&\n haveAdvancedContentInsightsChanged\n ) {\n this.preview.updateContentInsightsOptions(features?.advancedContentInsights);\n }\n }\n\n /**\n * Updates the access token used by preview library\n *\n * @param {boolean} shouldReload - true if preview should be reloaded\n */\n updatePreviewToken(shouldReload: boolean = false) {\n if (this.preview) {\n this.preview.updateToken(this.props.token, shouldReload);\n }\n }\n\n /**\n * Returns whether or not preview should be loaded.\n *\n * @param {State} prevState - Previous state\n * @return {boolean}\n */\n shouldLoadPreview(prevState: State): boolean {\n const { file, selectedVersion }: State = this.state;\n const { file: prevFile, selectedVersion: prevSelectedVersion }: State = prevState;\n const prevSelectedVersionId = getProp(prevSelectedVersion, 'id');\n const selectedVersionId = getProp(selectedVersion, 'id');\n const prevFileVersionId = getProp(prevFile, 'file_version.id');\n const fileVersionId = getProp(file, 'file_version.id');\n let loadPreview = false;\n\n if (selectedVersionId !== prevSelectedVersionId) {\n const isPreviousCurrent = fileVersionId === prevSelectedVersionId || !prevSelectedVersionId;\n const isSelectedCurrent = fileVersionId === selectedVersionId || !selectedVersionId;\n\n // Load preview if the user has selected a non-current version of the file\n loadPreview = !isPreviousCurrent || !isSelectedCurrent;\n } else if (fileVersionId && prevFileVersionId) {\n // Load preview if the file's current version ID has changed\n loadPreview = fileVersionId !== prevFileVersionId;\n } else {\n // Load preview if file object has newly been populated in state\n loadPreview = !prevFile && !!file;\n }\n\n return loadPreview;\n }\n\n /**\n * Returns preview asset urls\n *\n * @return {string} base url\n */\n getBasePath(asset: string): string {\n const { staticHost, staticPath, language, previewLibraryVersion }: Props = this.props;\n const path: string = `${staticPath}/${previewLibraryVersion}/${language}/${asset}`;\n const suffix: string = staticHost.endsWith('/') ? path : `/${path}`;\n return `${staticHost}${suffix}`;\n }\n\n /**\n * Determines if preview assets are loaded\n *\n * @return {boolean} true if preview is loaded\n */\n isPreviewLibraryLoaded(): boolean {\n return !!global.Box && !!global.Box.Preview;\n }\n\n /**\n * Loads external css by appending a <link> element\n *\n * @return {void}\n */\n loadStylesheet(): void {\n const { head } = document;\n const url: string = this.getBasePath('preview.css');\n\n if (!head || head.querySelector(`link[rel=\"stylesheet\"][href=\"${url}\"]`)) {\n return;\n }\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = url;\n head.appendChild(link);\n }\n\n /**\n * Loads external script by appending a <script> element\n *\n * @return {void}\n */\n loadScript(): void {\n const { head } = document;\n const url: string = this.getBasePath('preview.js');\n\n if (!head || this.isPreviewLibraryLoaded()) {\n return;\n }\n\n const previewScript = head.querySelector(`script[src=\"${url}\"]`);\n if (previewScript) {\n return;\n }\n\n const script = document.createElement('script');\n script.src = url;\n script.addEventListener('load', this.loadPreview);\n head.appendChild(script);\n }\n\n /**\n * Focuses the preview on load.\n *\n * @return {void}\n */\n focusPreview() {\n const { autoFocus, getInnerRef }: Props = this.props;\n if (autoFocus && !isInputElement(document.activeElement)) {\n focus(getInnerRef());\n }\n }\n\n /**\n * Updates preview cache and prefetches a file\n *\n * @param {BoxItem} file - file to prefetch\n * @return {void}\n */\n updatePreviewCacheAndPrefetch(file: BoxItem, token: Token): void {\n if (!this.preview || !file || !file.id) {\n return;\n }\n\n this.preview.updateFileCache([file]);\n this.preview.prefetch({ fileId: file.id, token });\n }\n\n /**\n * Gets the file id\n *\n * @param {string|BoxItem} file - box file or file id\n * @return {string} file id\n */\n getFileId(file?: string | BoxItem): string {\n if (typeof file === 'string') {\n return file;\n }\n\n if (typeof file === 'object' && !!file.id) {\n return file.id;\n }\n\n throw InvalidIdError;\n }\n\n /**\n * Prefetches the next few preview files if any\n *\n * @param {Array<string|BoxItem>} files - files to prefetch\n * @return {void}\n */\n async prefetch(files: Array<string | BoxItem>): Promise<void> {\n const { token }: Props = this.props;\n const typedIds: string[] = files.map(file => getTypedFileId(this.getFileId(file)));\n await TokenService.cacheTokens(typedIds, token);\n files.forEach(file => {\n const fileId = this.getFileId(file);\n this.fetchFile(fileId, noop, noop, {\n refreshCache: false,\n });\n });\n }\n\n /**\n * Calculates the total file fetch time\n *\n * @return {number} the total fetch time\n */\n getTotalFileFetchTime(): number {\n if (!this.fetchFileStartTime || !this.fetchFileEndTime) {\n return 0;\n }\n\n return Math.round(this.fetchFileEndTime - this.fetchFileStartTime);\n }\n\n /**\n * Handler for 'preview_error' preview event\n *\n * @param {PreviewLibraryError} previewError - the error data emitted from preview\n * @return {void}\n */\n onPreviewError = ({ error, ...rest }: PreviewLibraryError): void => {\n const { code = ERROR_CODE_UNKNOWN } = error;\n const { onError } = this.props;\n\n // In case of error, there should be no thumbnail sidebar to account for\n this.setState({ isLoading: false, isThumbnailSidebarOpen: false });\n\n onError(\n error,\n code,\n {\n ...rest,\n error,\n },\n ORIGIN_PREVIEW,\n );\n };\n\n /**\n * Event handler 'preview_metric' which also adds in the file fetch time if it's a load event\n *\n * @param {Object} previewMetrics - the object emitted by 'preview_metric'\n * @return {void}\n */\n onPreviewMetric = (previewMetrics: PreviewMetrics): void => {\n const { logger } = this.props;\n const { event_name } = previewMetrics;\n let metrics = {\n ...previewMetrics,\n };\n\n // We need to add in the total file fetch time to the file_info_time and value (total)\n // as preview does not do the files call\n if (event_name === PREVIEW_LOAD_METRIC_EVENT) {\n const totalFetchFileTime = this.getTotalFileFetchTime();\n const totalTime = (previewMetrics.value || 0) + totalFetchFileTime;\n\n // If an unnatural load time occurs or is invalid, don't log a load event\n if (!totalTime) {\n return;\n }\n\n metrics = {\n ...previewMetrics,\n file_info_time: totalFetchFileTime,\n value: totalTime,\n };\n }\n\n logger.onPreviewMetric(metrics);\n };\n\n /**\n * Adds in the file fetch time to the preview metrics\n *\n * @param {Object} previewTimeMetrics - the preview time metrics\n * @return {Object} the preview time metrics merged with the files call time\n */\n addFetchFileTimeToPreviewMetrics(previewTimeMetrics: PreviewTimeMetrics): PreviewTimeMetrics {\n const totalFetchFileTime = this.getTotalFileFetchTime();\n const { rendering, conversion, preload } = previewTimeMetrics;\n\n // We need to add in the total file fetch time to the rendering and total as preview\n // does not do the files call. In the case the file is in the process of\n // being converted, we need to add to conversion instead of the render\n let totalConversion = conversion;\n let totalRendering = rendering;\n let totalPreload = preload;\n if (conversion) {\n totalConversion += totalFetchFileTime;\n } else {\n totalRendering += totalFetchFileTime;\n }\n\n if (totalPreload) {\n // Preload is optional, depending on file type\n totalPreload += totalFetchFileTime;\n }\n\n const previewMetrics = {\n conversion: totalConversion,\n rendering: totalRendering,\n total: totalRendering + totalConversion,\n preload: totalPreload,\n };\n\n return previewMetrics;\n }\n\n /**\n * onLoad function for preview\n *\n * @return {void}\n */\n onPreviewLoad = (data: Object): void => {\n const { onLoad, collection }: Props = this.props;\n const currentIndex = this.getFileIndex();\n const filesToPrefetch = collection.slice(currentIndex + 1, currentIndex + 5);\n const previewTimeMetrics = getProp(data, 'metrics.time');\n let loadData = data;\n\n if (previewTimeMetrics) {\n const totalPreviewMetrics = this.addFetchFileTimeToPreviewMetrics(previewTimeMetrics);\n loadData = {\n ...loadData,\n metrics: {\n ...loadData.metrics,\n time: totalPreviewMetrics,\n },\n };\n }\n\n onLoad(loadData);\n\n this.setState({ isLoading: false });\n this.focusPreview();\n\n if (this.preview && filesToPrefetch.length) {\n this.prefetch(filesToPrefetch);\n }\n\n this.handleCanPrint();\n };\n\n /**\n * Returns whether file can be downloaded based on file properties, permissions, and user-defined options.\n *\n * @return {boolean}\n */\n canDownload(): boolean {\n const { canDownload }: Props = this.props;\n const { file }: State = this.state;\n const isFileDownloadable =\n getProp(file, 'permissions.can_download', false) && getProp(file, 'is_download_available', false);\n return isFileDownloadable && !!canDownload;\n }\n\n /**\n * Returns whether file can be annotated based on permissions\n *\n * @return {boolean}\n */\n canAnnotate(): boolean {\n const { showAnnotations }: Props = this.props;\n const { file }: State = this.state;\n const isFileAnnotatable = getProp(file, 'permissions.can_annotate', false);\n return !!showAnnotations && isFileAnnotatable;\n }\n\n /**\n * Returns whether a preview should render annotations based on permissions\n *\n * @return {boolean}\n */\n canViewAnnotations(): boolean {\n const { showAnnotations }: Props = this.props;\n const { file }: State = this.state;\n const hasViewAllPermissions = getProp(file, 'permissions.can_view_annotations_all', false);\n const hasViewSelfPermissions = getProp(file, 'permissions.can_view_annotations_self', false);\n return !!showAnnotations && (this.canAnnotate() || hasViewAllPermissions || hasViewSelfPermissions);\n }\n\n handleCanPrint() {\n const preview = this.getPreview();\n this.setState({ canPrint: !!preview && (!preview.canPrint || preview.canPrint()) });\n }\n\n /**\n * Loads preview in the component using the preview library.\n *\n * @return {void}\n */\n loadPreview = async (): Promise<void> => {\n const {\n advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI\n annotatorState: { activeAnnotationId } = {},\n enableThumbnailsSidebar,\n features,\n fileOptions,\n onAnnotatorEvent,\n onAnnotator,\n onContentInsightsEventReport,\n previewExperiences,\n showAnnotationsControls,\n token: tokenOrTokenFunction,\n ...rest\n }: Props = this.props;\n const { file, selectedVersion, startAt }: State = this.state;\n\n if (!this.isPreviewLibraryLoaded() || !file || !tokenOrTokenFunction) {\n return;\n }\n\n const fileId = this.getFileId(file);\n\n if (fileId !== this.state.currentFileId) {\n return;\n }\n\n const fileOpts = { ...fileOptions };\n const token = typedId => TokenService.getReadTokens(typedId, tokenOrTokenFunction);\n\n if (selectedVersion) {\n setProp(fileOpts, [fileId, 'fileVersionId'], selectedVersion.id);\n setProp(fileOpts, [fileId, 'currentFileVersionId'], getProp(file, 'file_version.id'));\n }\n\n if (activeAnnotationId) {\n setProp(fileOpts, [fileId, 'annotations', 'activeId'], activeAnnotationId);\n }\n\n if (startAt) {\n setProp(fileOpts, [fileId, 'startAt'], startAt);\n }\n\n const previewOptions = {\n advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI\n container: `#${this.id} .bcpr-content`,\n enableThumbnailsSidebar,\n features,\n fileOptions: fileOpts,\n header: 'none',\n headerElement: `#${this.id} .bcpr-PreviewHeader`,\n experiences: previewExperiences,\n showAnnotations: this.canViewAnnotations(),\n showAnnotationsControls,\n showDownload: this.canDownload(),\n showLoading: false,\n showProgress: false,\n skipServerUpdate: true,\n useHotkeys: false,\n };\n const { Preview } = global.Box;\n this.preview = new Preview();\n this.preview.addListener('load', this.onPreviewLoad);\n this.preview.addListener('preview_error', this.onPreviewError);\n this.preview.addListener('preview_metric', this.onPreviewMetric);\n this.preview.addListener('thumbnailsOpen', () => this.setState({ isThumbnailSidebarOpen: true }));\n this.preview.addListener('thumbnailsClose', () => this.setState({ isThumbnailSidebarOpen: false }));\n\n if (showAnnotationsControls) {\n this.preview.addListener('annotator_create', onAnnotator);\n }\n\n this.preview.updateFileCache([file]);\n this.preview.show(file.id, token, {\n ...previewOptions,\n ...omit(rest, Object.keys(previewOptions)),\n });\n if (advancedContentInsights) {\n this.preview.addListener('advanced_insights_report', onContentInsightsEventReport);\n }\n };\n\n /**\n * Updates preview file from temporary staged file.\n *\n * @return {void}\n */\n loadFileFromStage = () => {\n if (this.stagedFile) {\n this.setState({ ...this.initialState, file: this.stagedFile }, () => {\n this.stagedFile = undefined;\n });\n }\n };\n\n /**\n * Removes the reload notification\n *\n * @return {void}\n */\n closeReloadNotification = () => {\n this.setState({ isReloadNotificationVisible: false });\n };\n\n /**\n * Tells the preview to resize\n *\n * @return {void}\n */\n onResize = (): void => {\n if (this.preview && this.preview.getCurrentViewer()) {\n this.preview.resize();\n }\n };\n\n /**\n * File fetch success callback\n *\n * @param {Object} file - Box file\n * @return {void}\n */\n fetchFileSuccessCallback = (file: BoxItem): void => {\n this.fetchFileEndTime = performance.now();\n\n const { file: currentFile }: State = this.state;\n const isExistingFile = currentFile ? currentFile.id === file.id : false;\n const isWatermarked = getProp(file, 'watermark_info.is_watermarked', false);\n\n // If the file is watermarked or if its a new file, then update the state\n // In this case preview should reload without prompting the user\n if (isWatermarked || !isExistingFile) {\n this.setState({ ...this.initialState, file });\n // $FlowFixMe file version and sha1 should exist at this point\n } else if (currentFile.file_version.sha1 !== file.file_version.sha1) {\n // If we are already prevewing the file that got updated then show the\n // user a notification to reload the file only if its sha1 changed\n this.stagedFile = file;\n this.setState({\n ...this.initialState,\n isReloadNotificationVisible: true,\n });\n }\n };\n\n /**\n * File fetch error callback\n *\n * @return {void}\n */\n fetchFileErrorCallback = (fileError: ElementsXhrError, code: string): void => {\n const { onError } = this.props;\n const errorCode = fileError.code || code;\n const error = {\n code: errorCode,\n message: fileError.message,\n };\n this.setState({ error, file: undefined, isLoading: false });\n onError(fileError, errorCode, {\n error: fileError,\n });\n };\n\n /**\n * Fetches a file\n *\n * @param {string} id file id\n * @param {Function|void} [successCallback] - Callback after file is fetched\n * @param {Function|void} [errorCallback] - Callback after error\n * @param {Object|void} [fetchOptions] - Fetch options\n * @return {void}\n */\n fetchFile(\n id: ?string,\n successCallback?: Function,\n errorCallback?: Function,\n fetchOptions: RequestOptions = {},\n ): void {\n if (!id) {\n return;\n }\n\n this.fetchFileStartTime = performance.now();\n this.fetchFileEndTime = null;\n\n this.api\n .getFileAPI()\n .getFile(\n id,\n successCallback || this.fetchFileSuccessCallback,\n errorCallback || this.fetchFileErrorCallback,\n {\n ...fetchOptions,\n fields: PREVIEW_FIELDS_TO_FETCH,\n },\n );\n }\n\n /**\n * Returns the preview instance\n *\n * @return {Preview} current instance of preview\n */\n getPreview = (): any => {\n const { file }: State = this.state;\n if (!this.preview || !file) {\n return null;\n }\n\n return this.preview;\n };\n\n /**\n * Returns the viewer instance being used by preview.\n * This will let child components access the viewers.\n *\n * @return {Viewer} current instance of the preview viewer\n */\n getViewer = (): any => {\n const preview = this.getPreview();\n const viewer = preview ? preview.getCurrentViewer() : null;\n return viewer && viewer.isLoaded() && !viewer.isDestroyed() ? viewer : null;\n };\n\n /**\n * Finds the index of current file inside the collection\n *\n * @return {number} -1 if not indexed\n */\n getFileIndex() {\n const { currentFileId }: State = this.state;\n const { collection }: Props = this.props;\n if (!currentFileId || collection.length < 2) {\n return -1;\n }\n\n return collection.findIndex(item => {\n if (typeof item === 'string') {\n return item === currentFileId;\n }\n\n return item.id === currentFileId;\n });\n }\n\n /**\n * Shows a preview of a file at the specified index in the current collection.\n *\n * @public\n * @param {number} index - Index of file to preview\n * @return {void}\n */\n navigateToIndex(index: number) {\n const { collection, onNavigate }: Props = this.props;\n const { length } = collection;\n if (length < 2 || index < 0 || index > length - 1) {\n return;\n }\n\n const fileOrId = collection[index];\n const fileId = typeof fileOrId === 'object' ? fileOrId.id || '' : fileOrId;\n\n this.setState(\n {\n currentFileId: fileId,\n },\n () => {\n // Execute navigation callback\n onNavigate(fileId);\n },\n );\n }\n\n /**\n * Shows a preview of the previous file.\n *\n * @public\n * @return {void}\n */\n navigateLeft = () => {\n const currentIndex = this.getFileIndex();\n const newIndex = currentIndex === 0 ? 0 : currentIndex - 1;\n if (newIndex !== currentIndex) {\n this.navigateToIndex(newIndex);\n }\n };\n\n /**\n * Shows a preview of the next file.\n *\n * @public\n * @return {void}\n */\n navigateRight = () => {\n const { collection }: Props = this.props;\n const currentIndex = this.getFileIndex();\n const newIndex = currentIndex === collection.length - 1 ? collection.length - 1 : currentIndex + 1;\n if (newIndex !== currentIndex) {\n this.navigateToIndex(newIndex);\n }\n };\n\n /**\n * Downloads file.\n *\n * @public\n * @return {void}\n */\n download = () => {\n const { onDownload }: Props = this.props;\n const { file }: State = this.state;\n if (this.preview) {\n this.preview.download();\n onDownload(cloneDeep(file));\n }\n };\n\n /**\n * Prints file.\n *\n * @public\n * @return {void}\n */\n print = () => {\n if (this.preview) {\n this.preview.print();\n }\n };\n\n /**\n * Mouse move handler that is throttled and show\n * the navigation arrows if applicable.\n *\n * @return {void}\n */\n onMouseMove = throttle(() => {\n const viewer = this.getViewer();\n const isPreviewing = !!viewer;\n const CLASS_NAVIGATION_VISIBILITY = 'bcpr-nav-is-visible';\n\n clearTimeout(this.mouseMoveTimeoutID);\n\n if (!this.previewContainer) {\n return;\n }\n\n // Always assume that navigation arrows will be hidden\n this.previewContainer.classList.remove(CLASS_NAVIGATION_VISIBILITY);\n\n // Only show it if either we aren't previewing or if we are then the viewer\n // is not blocking the show. If we are previewing then the viewer may choose\n // to not allow navigation arrows. This is mostly useful for videos since the\n // navigation arrows may interfere with the settings menu inside video player.\n if (this.previewContainer && (!isPreviewing || viewer.allowNavigationArrows())) {\n this.previewContainer.classList.add(CLASS_NAVIGATION_VISIBILITY);\n }\n\n this.mouseMoveTimeoutID = setTimeout(() => {\n if (this.previewContainer) {\n this.previewContainer.classList.remove(CLASS_NAVIGATION_VISIBILITY);\n }\n }, 1500);\n }, 1000);\n\n /**\n * Keyboard events\n *\n * @return {void}\n */\n onKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {\n const { useHotkeys }: Props = this.props;\n if (!useHotkeys) {\n return;\n }\n\n let consumed = false;\n const key = decode(event);\n const viewer = this.getViewer();\n\n // If focus was on an input or if the viewer doesn't exist\n // then don't bother doing anything further\n if (!key || !viewer || isInputElement(event.target)) {\n return;\n }\n\n if (typeof viewer.onKeydown === 'function') {\n consumed = !!viewer.onKeydown(key, event.nativeEvent);\n }\n\n if (!consumed) {\n switch (key) {\n case 'ArrowLeft':\n this.navigateLeft();\n consumed = true;\n break;\n case 'ArrowRight':\n this.navigateRight();\n consumed = true;\n break;\n default:\n // no-op\n }\n }\n\n if (consumed) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n /**\n * Handles version change events\n *\n * @param {string} [version] - The version that is now previewed\n * @param {object} [additionalVersionInfo] - extra info about the version\n */\n onVersionChange = (version?: BoxItemVersion, additionalVersionInfo: AdditionalVersionInfo = {}): void => {\n const { onVersionChange }: Props = this.props;\n this.updateVersionToCurrent = additionalVersionInfo.updateVersionToCurrent;\n\n onVersionChange(version, additionalVersionInfo);\n this.setState({\n selectedVersion: version,\n });\n };\n\n handleAnnotationSelect = ({ file_version, id, target }: Annotation) => {\n const { location = {} } = target;\n const { file, selectedVersion } = this.state;\n const annotationFileVersionId = getProp(file_version, 'id');\n const currentFileVersionId = getProp(file, 'file_version.id');\n const currentPreviewFileVersionId = getProp(selectedVersion, 'id', currentFileVersionId);\n const unit = startAtTypes[location.type];\n const viewer = this.getViewer();\n\n if (unit && annotationFileVersionId && annotationFileVersionId !== currentPreviewFileVersionId) {\n this.setState({\n startAt: {\n unit,\n value: location.value,\n },\n });\n }\n\n if (viewer) {\n viewer.emit('scrolltoannotation', { id, target });\n }\n };\n\n /**\n * Holds the reference the preview container\n *\n * @return {void}\n */\n containerRef = (container: ?HTMLDivElement) => {\n this.previewContainer = container;\n };\n\n /**\n * Refreshes the content sidebar panel\n *\n * @return {void}\n */\n refreshSidebar(): void {\n const { current: contentSidebar } = this.contentSidebar;\n\n if (contentSidebar) {\n contentSidebar.refresh();\n }\n }\n\n /**\n * Fetches a thumbnail for the page given\n *\n * @return {Promise|null} - promise resolves with the image HTMLElement or null if generation is in progress\n */\n getThumbnail = (pageNumber: ?number): Promise<HTMLElement> | null => {\n const preview = this.getPreview();\n if (preview && preview.viewer) {\n return preview.viewer.getThumbnail(pageNumber);\n }\n\n return null;\n };\n\n /**\n * Renders the file preview\n *\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n apiHost,\n collection,\n token,\n language,\n messages,\n className,\n contentAnswersProps,\n contentOpenWithProps,\n contentSidebarProps,\n hasHeader,\n hasProviders,\n history,\n isLarge,\n isVeryLarge,\n logoUrl,\n onClose,\n measureRef,\n sharedLink,\n sharedLinkPassword,\n requestInterceptor,\n responseInterceptor,\n theme,\n }: Props = this.props;\n\n const {\n canPrint,\n currentFileId,\n error,\n file,\n isLoading,\n isReloadNotificationVisible,\n isThumbnailSidebarOpen,\n selectedVersion,\n }: State = this.state;\n\n const styleClassName = classNames(\n 'be bcpr',\n {\n 'bcpr-thumbnails-open': isThumbnailSidebarOpen,\n },\n className,\n );\n\n if (!currentFileId) {\n return null;\n }\n\n const errorCode = getProp(error, 'code');\n const currentExtension = getProp(file, 'id') === currentFileId ? getProp(file, 'extension') : '';\n const currentVersionId = getProp(file, 'file_version.id');\n const selectedVersionId = getProp(selectedVersion, 'id', currentVersionId);\n const onHeaderClose = currentVersionId === selectedVersionId ? onClose : this.updateVersionToCurrent;\n\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n return (\n <Internationalize language={language} messages={messages}>\n <APIContext.Provider value={(this.api: API)}>\n <Providers hasProviders={hasProviders}>\n <div\n id={this.id}\n className={styleClassName}\n ref={measureRef}\n onKeyDown={this.onKeyDown}\n tabIndex={0}\n >\n <ThemingStyles theme={theme} />\n {hasHeader && (\n <PreviewHeader\n file={file}\n logoUrl={logoUrl}\n token={token}\n onClose={onHeaderClose}\n onPrint={this.print}\n canDownload={this.canDownload()}\n canPrint={canPrint}\n onDownload={this.download}\n contentAnswersProps={contentAnswersProps}\n contentOpenWithProps={contentOpenWithProps}\n canAnnotate={this.canAnnotate()}\n selectedVersion={selectedVersion}\n />\n )}\n <div className=\"bcpr-body\">\n <div className=\"bcpr-container\" onMouseMove={this.onMouseMove} ref={this.containerRef}>\n {file && (\n <Measure bounds onResize={this.onResize}>\n {({ measureRef: previewRef }) => (\n <div ref={previewRef} className=\"bcpr-content\" />\n )}\n </Measure>\n )}\n <PreviewMask\n errorCode={errorCode}\n extension={currentExtension}\n isLoading={isLoading}\n />\n <PreviewNavigation\n collection={collection}\n currentIndex={this.getFileIndex()}\n onNavigateLeft={this.navigateLeft}\n onNavigateRight={this.navigateRight}\n />\n </div>\n {file && (\n <LoadableSidebar\n {...contentSidebarProps}\n apiHost={apiHost}\n token={token}\n cache={this.api.getCache()}\n fileId={currentFileId}\n getPreview={this.getPreview}\n getViewer={this.getViewer}\n history={history}\n isDefaultOpen={isLarge || isVeryLarge}\n language={language}\n ref={this.contentSidebar}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n onAnnotationSelect={this.handleAnnotationSelect}\n onVersionChange={this.onVersionChange}\n />\n )}\n </div>\n {isReloadNotificationVisible && (\n <ReloadNotification\n onClose={this.closeReloadNotification}\n onClick={this.loadFileFromStage}\n />\n )}\n </div>\n </Providers>\n </APIContext.Provider>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport type ContentPreviewProps = Props;\nexport { ContentPreview as ContentPreviewComponent };\nexport default flow([\n makeResponsive,\n withAnnotatorContext,\n withAnnotations,\n withRouter,\n withNavRouter,\n withFeatureConsumer,\n withFeatureProvider,\n withLogger(ORIGIN_CONTENT_PREVIEW),\n withErrorBoundary(ORIGIN_CONTENT_PREVIEW),\n])(ContentPreview);\n"],"mappings":"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","ignoreList":[]}
@@ -23,10 +23,10 @@ import { bdlGray50 } from '../../../styles/variables';
23
23
  import './PreviewHeader.scss';
24
24
  const LoadableContentAnswers = AsyncLoad({
25
25
  // $FlowFixMe TypeScript component
26
- loader: () => import( /* webpackMode: "lazy", webpackChunkName: "content-answers" */'../../common/content-answers')
26
+ loader: () => import(/* webpackMode: "lazy", webpackChunkName: "content-answers" */'../../common/content-answers')
27
27
  });
28
28
  const LoadableContentOpenWith = AsyncLoad({
29
- loader: () => import( /* webpackMode: "lazy", webpackChunkName: "content-open-with" */'../../content-open-with')
29
+ loader: () => import(/* webpackMode: "lazy", webpackChunkName: "content-open-with" */'../../content-open-with')
30
30
  });
31
31
  const PreviewHeader = ({
32
32
  canAnnotate,
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewHeader.js","names":["React","injectIntl","classNames","getProp","AsyncLoad","FileInfo","IconClose","IconDownload","IconDrawAnnotationMode","IconPointAnnotation","IconPrint","Logo","messages","PlainButton","bdlGray50","LoadableContentAnswers","loader","LoadableContentOpenWith","PreviewHeader","canAnnotate","canDownload","canPrint","contentAnswersProps","contentOpenWithProps","file","intl","logoUrl","onClose","onDownload","onPrint","selectedVersion","token","fileId","id","shouldRenderAnswers","show","shouldRenderOpenWith","currentVersionId","selectedVersionId","isPreviewingCurrentVersion","closeMsg","formatMessage","close","back","printMsg","print","downloadMsg","download","drawMsg","drawAnnotation","pointMsg","pointAnnotation","createElement","className","url","version","Fragment","_extends","title","type","color","height","width","onClick"],"sources":["../../../../src/elements/content-preview/preview-header/PreviewHeader.js"],"sourcesContent":["/**\n * @flow\n * @file Preview header component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { injectIntl } from 'react-intl';\nimport type { IntlShape } from 'react-intl';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\nimport AsyncLoad from '../../common/async-load';\nimport FileInfo from './FileInfo';\nimport IconClose from '../../../icons/general/IconClose';\nimport IconDownload from '../../../icons/general/IconDownloadSolid';\nimport IconDrawAnnotationMode from '../../../icons/annotations/IconDrawAnnotation';\nimport IconPointAnnotation from '../../../icons/annotations/IconPointAnnotation';\nimport IconPrint from '../../../icons/general/IconPrint';\nimport Logo from '../../common/header/Logo';\nimport messages from '../../common/messages';\nimport PlainButton from '../../../components/plain-button/PlainButton';\nimport { bdlGray50 } from '../../../styles/variables';\nimport type { BoxItem, BoxItemVersion } from '../../../common/types/core';\n\nimport './PreviewHeader.scss';\n\ntype Props = {\n canAnnotate: boolean,\n canDownload: boolean,\n canPrint?: boolean,\n contentAnswersProps?: ContentAnswersProps,\n contentOpenWithProps?: ContentOpenWithProps,\n file?: BoxItem,\n intl: IntlShape,\n logoUrl?: string,\n onClose?: Function,\n onDownload: Function,\n onPrint: Function,\n selectedVersion: ?BoxItemVersion,\n token: ?string,\n};\n\nconst LoadableContentAnswers = AsyncLoad({\n // $FlowFixMe TypeScript component\n loader: () => import(/* webpackMode: \"lazy\", webpackChunkName: \"content-answers\" */ '../../common/content-answers'),\n});\nconst LoadableContentOpenWith = AsyncLoad({\n loader: () => import(/* webpackMode: \"lazy\", webpackChunkName: \"content-open-with\" */ '../../content-open-with'),\n});\n\nconst PreviewHeader = ({\n canAnnotate,\n canDownload,\n canPrint,\n contentAnswersProps = {},\n contentOpenWithProps = {},\n file,\n intl,\n logoUrl,\n onClose,\n onDownload,\n onPrint,\n selectedVersion,\n token,\n}: Props) => {\n const fileId = file && file.id;\n const shouldRenderAnswers = fileId && contentAnswersProps.show;\n const shouldRenderOpenWith = fileId && contentOpenWithProps.show;\n const currentVersionId = getProp(file, 'file_version.id');\n const selectedVersionId = getProp(selectedVersion, 'id', currentVersionId);\n const isPreviewingCurrentVersion = currentVersionId === selectedVersionId;\n\n // When previewing an older version the close button returns the user to the current version\n const closeMsg = isPreviewingCurrentVersion\n ? intl.formatMessage(messages.close)\n : intl.formatMessage(messages.back);\n const printMsg = intl.formatMessage(messages.print);\n const downloadMsg = intl.formatMessage(messages.download);\n const drawMsg = intl.formatMessage(messages.drawAnnotation);\n const pointMsg = intl.formatMessage(messages.pointAnnotation);\n\n return (\n <header\n className={classNames('bcpr-PreviewHeader', {\n 'bcpr-PreviewHeader--basic': !isPreviewingCurrentVersion,\n })}\n >\n {/*\n bp-header and bp-base-header are used by box-annotations,\n and must be put one level under bcpr-PreviewHeader\n */}\n <div className=\"bcpr-PreviewHeader-content bp-header bp-base-header\">\n {logoUrl ? <Logo url={logoUrl} /> : <FileInfo file={file} version={selectedVersion} />}\n\n <div className=\"bcpr-PreviewHeader-controls\">\n {isPreviewingCurrentVersion && (\n <>\n {shouldRenderOpenWith && (\n <LoadableContentOpenWith\n className=\"bcpr-bcow-btn\"\n fileId={fileId}\n token={token}\n {...contentOpenWithProps}\n />\n )}\n {shouldRenderAnswers && (\n <LoadableContentAnswers\n className=\"bcpr-PreviewHeader-contentAnswers\"\n file={file}\n {...contentAnswersProps}\n />\n )}\n {canAnnotate && (\n <>\n <PlainButton\n aria-label={drawMsg}\n className=\"bcpr-PreviewHeader-button bp-btn-annotate-draw bp-is-hidden\"\n title={drawMsg}\n type=\"button\"\n >\n <IconDrawAnnotationMode color={bdlGray50} height={18} width={18} />\n </PlainButton>\n <PlainButton\n aria-label={pointMsg}\n className=\"bcpr-PreviewHeader-button bp-btn-annotate-point bp-is-hidden\"\n title={pointMsg}\n type=\"button\"\n >\n <IconPointAnnotation color={bdlGray50} height={18} width={18} />\n </PlainButton>\n </>\n )}\n {canPrint && (\n <PlainButton\n aria-label={printMsg}\n className=\"bcpr-PreviewHeader-button\"\n onClick={onPrint}\n title={printMsg}\n type=\"button\"\n >\n <IconPrint color={bdlGray50} height={22} width={22} />\n </PlainButton>\n )}\n {canDownload && (\n <PlainButton\n aria-label={downloadMsg}\n className=\"bcpr-PreviewHeader-button\"\n data-target-id=\"PreviewHeader-downloadButton\"\n onClick={onDownload}\n title={downloadMsg}\n type=\"button\"\n >\n <IconDownload color={bdlGray50} height={18} width={18} />\n </PlainButton>\n )}\n </>\n )}\n\n {onClose && (\n <PlainButton\n aria-label={isPreviewingCurrentVersion && closeMsg}\n className=\"bcpr-PreviewHeader-button bcpr-PreviewHeader-button-close\"\n onClick={onClose}\n type=\"button\"\n >\n {isPreviewingCurrentVersion ? (\n <IconClose color={bdlGray50} height={24} width={24} />\n ) : (\n closeMsg\n )}\n </PlainButton>\n )}\n </div>\n </div>\n </header>\n );\n};\n\nexport default injectIntl(PreviewHeader);\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,YAAY;AAEvC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,SAAS,MAAM,kCAAkC;AACxD,OAAOC,YAAY,MAAM,0CAA0C;AACnE,OAAOC,sBAAsB,MAAM,+CAA+C;AAClF,OAAOC,mBAAmB,MAAM,gDAAgD;AAChF,OAAOC,SAAS,MAAM,kCAAkC;AACxD,OAAOC,IAAI,MAAM,0BAA0B;AAC3C,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,OAAOC,WAAW,MAAM,8CAA8C;AACtE,SAASC,SAAS,QAAQ,2BAA2B;AAGrD,OAAO,sBAAsB;AAkB7B,MAAMC,sBAAsB,GAAGX,SAAS,CAAC;EACrC;EACAY,MAAM,EAAEA,CAAA,KAAM,MAAM,EAAC,8DAA+D,8BAA8B;AACtH,CAAC,CAAC;AACF,MAAMC,uBAAuB,GAAGb,SAAS,CAAC;EACtCY,MAAM,EAAEA,CAAA,KAAM,MAAM,EAAC,gEAAiE,yBAAyB;AACnH,CAAC,CAAC;AAEF,MAAME,aAAa,GAAGA,CAAC;EACnBC,WAAW;EACXC,WAAW;EACXC,QAAQ;EACRC,mBAAmB,GAAG,CAAC,CAAC;EACxBC,oBAAoB,GAAG,CAAC,CAAC;EACzBC,IAAI;EACJC,IAAI;EACJC,OAAO;EACPC,OAAO;EACPC,UAAU;EACVC,OAAO;EACPC,eAAe;EACfC;AACG,CAAC,KAAK;EACT,MAAMC,MAAM,GAAGR,IAAI,IAAIA,IAAI,CAACS,EAAE;EAC9B,MAAMC,mBAAmB,GAAGF,MAAM,IAAIV,mBAAmB,CAACa,IAAI;EAC9D,MAAMC,oBAAoB,GAAGJ,MAAM,IAAIT,oBAAoB,CAACY,IAAI;EAChE,MAAME,gBAAgB,GAAGlC,OAAO,CAACqB,IAAI,EAAE,iBAAiB,CAAC;EACzD,MAAMc,iBAAiB,GAAGnC,OAAO,CAAC2B,eAAe,EAAE,IAAI,EAAEO,gBAAgB,CAAC;EAC1E,MAAME,0BAA0B,GAAGF,gBAAgB,KAAKC,iBAAiB;;EAEzE;EACA,MAAME,QAAQ,GAAGD,0BAA0B,GACrCd,IAAI,CAACgB,aAAa,CAAC7B,QAAQ,CAAC8B,KAAK,CAAC,GAClCjB,IAAI,CAACgB,aAAa,CAAC7B,QAAQ,CAAC+B,IAAI,CAAC;EACvC,MAAMC,QAAQ,GAAGnB,IAAI,CAACgB,aAAa,CAAC7B,QAAQ,CAACiC,KAAK,CAAC;EACnD,MAAMC,WAAW,GAAGrB,IAAI,CAACgB,aAAa,CAAC7B,QAAQ,CAACmC,QAAQ,CAAC;EACzD,MAAMC,OAAO,GAAGvB,IAAI,CAACgB,aAAa,CAAC7B,QAAQ,CAACqC,cAAc,CAAC;EAC3D,MAAMC,QAAQ,GAAGzB,IAAI,CAACgB,aAAa,CAAC7B,QAAQ,CAACuC,eAAe,CAAC;EAE7D,oBACInD,KAAA,CAAAoD,aAAA;IACIC,SAAS,EAAEnD,UAAU,CAAC,oBAAoB,EAAE;MACxC,2BAA2B,EAAE,CAACqC;IAClC,CAAC;EAAE,gBAMHvC,KAAA,CAAAoD,aAAA;IAAKC,SAAS,EAAC;EAAqD,GAC/D3B,OAAO,gBAAG1B,KAAA,CAAAoD,aAAA,CAACzC,IAAI;IAAC2C,GAAG,EAAE5B;EAAQ,CAAE,CAAC,gBAAG1B,KAAA,CAAAoD,aAAA,CAAC/C,QAAQ;IAACmB,IAAI,EAAEA,IAAK;IAAC+B,OAAO,EAAEzB;EAAgB,CAAE,CAAC,eAEtF9B,KAAA,CAAAoD,aAAA;IAAKC,SAAS,EAAC;EAA6B,GACvCd,0BAA0B,iBACvBvC,KAAA,CAAAoD,aAAA,CAAApD,KAAA,CAAAwD,QAAA,QACKpB,oBAAoB,iBACjBpC,KAAA,CAAAoD,aAAA,CAACnC,uBAAuB,EAAAwC,QAAA;IACpBJ,SAAS,EAAC,eAAe;IACzBrB,MAAM,EAAEA,MAAO;IACfD,KAAK,EAAEA;EAAM,GACTR,oBAAoB,CAC3B,CACJ,EACAW,mBAAmB,iBAChBlC,KAAA,CAAAoD,aAAA,CAACrC,sBAAsB,EAAA0C,QAAA;IACnBJ,SAAS,EAAC,mCAAmC;IAC7C7B,IAAI,EAAEA;EAAK,GACPF,mBAAmB,CAC1B,CACJ,EACAH,WAAW,iBACRnB,KAAA,CAAAoD,aAAA,CAAApD,KAAA,CAAAwD,QAAA,qBACIxD,KAAA,CAAAoD,aAAA,CAACvC,WAAW;IACR,cAAYmC,OAAQ;IACpBK,SAAS,EAAC,6DAA6D;IACvEK,KAAK,EAAEV,OAAQ;IACfW,IAAI,EAAC;EAAQ,gBAEb3D,KAAA,CAAAoD,aAAA,CAAC5C,sBAAsB;IAACoD,KAAK,EAAE9C,SAAU;IAAC+C,MAAM,EAAE,EAAG;IAACC,KAAK,EAAE;EAAG,CAAE,CACzD,CAAC,eACd9D,KAAA,CAAAoD,aAAA,CAACvC,WAAW;IACR,cAAYqC,QAAS;IACrBG,SAAS,EAAC,8DAA8D;IACxEK,KAAK,EAAER,QAAS;IAChBS,IAAI,EAAC;EAAQ,gBAEb3D,KAAA,CAAAoD,aAAA,CAAC3C,mBAAmB;IAACmD,KAAK,EAAE9C,SAAU;IAAC+C,MAAM,EAAE,EAAG;IAACC,KAAK,EAAE;EAAG,CAAE,CACtD,CACf,CACL,EACAzC,QAAQ,iBACLrB,KAAA,CAAAoD,aAAA,CAACvC,WAAW;IACR,cAAY+B,QAAS;IACrBS,SAAS,EAAC,2BAA2B;IACrCU,OAAO,EAAElC,OAAQ;IACjB6B,KAAK,EAAEd,QAAS;IAChBe,IAAI,EAAC;EAAQ,gBAEb3D,KAAA,CAAAoD,aAAA,CAAC1C,SAAS;IAACkD,KAAK,EAAE9C,SAAU;IAAC+C,MAAM,EAAE,EAAG;IAACC,KAAK,EAAE;EAAG,CAAE,CAC5C,CAChB,EACA1C,WAAW,iBACRpB,KAAA,CAAAoD,aAAA,CAACvC,WAAW;IACR,cAAYiC,WAAY;IACxBO,SAAS,EAAC,2BAA2B;IACrC,kBAAe,8BAA8B;IAC7CU,OAAO,EAAEnC,UAAW;IACpB8B,KAAK,EAAEZ,WAAY;IACnBa,IAAI,EAAC;EAAQ,gBAEb3D,KAAA,CAAAoD,aAAA,CAAC7C,YAAY;IAACqD,KAAK,EAAE9C,SAAU;IAAC+C,MAAM,EAAE,EAAG;IAACC,KAAK,EAAE;EAAG,CAAE,CAC/C,CAEnB,CACL,EAEAnC,OAAO,iBACJ3B,KAAA,CAAAoD,aAAA,CAACvC,WAAW;IACR,cAAY0B,0BAA0B,IAAIC,QAAS;IACnDa,SAAS,EAAC,2DAA2D;IACrEU,OAAO,EAAEpC,OAAQ;IACjBgC,IAAI,EAAC;EAAQ,GAEZpB,0BAA0B,gBACvBvC,KAAA,CAAAoD,aAAA,CAAC9C,SAAS;IAACsD,KAAK,EAAE9C,SAAU;IAAC+C,MAAM,EAAE,EAAG;IAACC,KAAK,EAAE;EAAG,CAAE,CAAC,GAEtDtB,QAEK,CAEhB,CACJ,CACD,CAAC;AAEjB,CAAC;AAED,eAAevC,UAAU,CAACiB,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"PreviewHeader.js","names":["React","injectIntl","classNames","getProp","AsyncLoad","FileInfo","IconClose","IconDownload","IconDrawAnnotationMode","IconPointAnnotation","IconPrint","Logo","messages","PlainButton","bdlGray50","LoadableContentAnswers","loader","LoadableContentOpenWith","PreviewHeader","canAnnotate","canDownload","canPrint","contentAnswersProps","contentOpenWithProps","file","intl","logoUrl","onClose","onDownload","onPrint","selectedVersion","token","fileId","id","shouldRenderAnswers","show","shouldRenderOpenWith","currentVersionId","selectedVersionId","isPreviewingCurrentVersion","closeMsg","formatMessage","close","back","printMsg","print","downloadMsg","download","drawMsg","drawAnnotation","pointMsg","pointAnnotation","createElement","className","url","version","Fragment","_extends","title","type","color","height","width","onClick"],"sources":["../../../../src/elements/content-preview/preview-header/PreviewHeader.js"],"sourcesContent":["/**\n * @flow\n * @file Preview header component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { injectIntl } from 'react-intl';\nimport type { IntlShape } from 'react-intl';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\nimport AsyncLoad from '../../common/async-load';\nimport FileInfo from './FileInfo';\nimport IconClose from '../../../icons/general/IconClose';\nimport IconDownload from '../../../icons/general/IconDownloadSolid';\nimport IconDrawAnnotationMode from '../../../icons/annotations/IconDrawAnnotation';\nimport IconPointAnnotation from '../../../icons/annotations/IconPointAnnotation';\nimport IconPrint from '../../../icons/general/IconPrint';\nimport Logo from '../../common/header/Logo';\nimport messages from '../../common/messages';\nimport PlainButton from '../../../components/plain-button/PlainButton';\nimport { bdlGray50 } from '../../../styles/variables';\nimport type { BoxItem, BoxItemVersion } from '../../../common/types/core';\n\nimport './PreviewHeader.scss';\n\ntype Props = {\n canAnnotate: boolean,\n canDownload: boolean,\n canPrint?: boolean,\n contentAnswersProps?: ContentAnswersProps,\n contentOpenWithProps?: ContentOpenWithProps,\n file?: BoxItem,\n intl: IntlShape,\n logoUrl?: string,\n onClose?: Function,\n onDownload: Function,\n onPrint: Function,\n selectedVersion: ?BoxItemVersion,\n token: ?string,\n};\n\nconst LoadableContentAnswers = AsyncLoad({\n // $FlowFixMe TypeScript component\n loader: () => import(/* webpackMode: \"lazy\", webpackChunkName: \"content-answers\" */ '../../common/content-answers'),\n});\nconst LoadableContentOpenWith = AsyncLoad({\n loader: () => import(/* webpackMode: \"lazy\", webpackChunkName: \"content-open-with\" */ '../../content-open-with'),\n});\n\nconst PreviewHeader = ({\n canAnnotate,\n canDownload,\n canPrint,\n contentAnswersProps = {},\n contentOpenWithProps = {},\n file,\n intl,\n logoUrl,\n onClose,\n onDownload,\n onPrint,\n selectedVersion,\n token,\n}: Props) => {\n const fileId = file && file.id;\n const shouldRenderAnswers = fileId && contentAnswersProps.show;\n const shouldRenderOpenWith = fileId && contentOpenWithProps.show;\n const currentVersionId = getProp(file, 'file_version.id');\n const selectedVersionId = getProp(selectedVersion, 'id', currentVersionId);\n const isPreviewingCurrentVersion = currentVersionId === selectedVersionId;\n\n // When previewing an older version the close button returns the user to the current version\n const closeMsg = isPreviewingCurrentVersion\n ? intl.formatMessage(messages.close)\n : intl.formatMessage(messages.back);\n const printMsg = intl.formatMessage(messages.print);\n const downloadMsg = intl.formatMessage(messages.download);\n const drawMsg = intl.formatMessage(messages.drawAnnotation);\n const pointMsg = intl.formatMessage(messages.pointAnnotation);\n\n return (\n <header\n className={classNames('bcpr-PreviewHeader', {\n 'bcpr-PreviewHeader--basic': !isPreviewingCurrentVersion,\n })}\n >\n {/*\n bp-header and bp-base-header are used by box-annotations,\n and must be put one level under bcpr-PreviewHeader\n */}\n <div className=\"bcpr-PreviewHeader-content bp-header bp-base-header\">\n {logoUrl ? <Logo url={logoUrl} /> : <FileInfo file={file} version={selectedVersion} />}\n\n <div className=\"bcpr-PreviewHeader-controls\">\n {isPreviewingCurrentVersion && (\n <>\n {shouldRenderOpenWith && (\n <LoadableContentOpenWith\n className=\"bcpr-bcow-btn\"\n fileId={fileId}\n token={token}\n {...contentOpenWithProps}\n />\n )}\n {shouldRenderAnswers && (\n <LoadableContentAnswers\n className=\"bcpr-PreviewHeader-contentAnswers\"\n file={file}\n {...contentAnswersProps}\n />\n )}\n {canAnnotate && (\n <>\n <PlainButton\n aria-label={drawMsg}\n className=\"bcpr-PreviewHeader-button bp-btn-annotate-draw bp-is-hidden\"\n title={drawMsg}\n type=\"button\"\n >\n <IconDrawAnnotationMode color={bdlGray50} height={18} width={18} />\n </PlainButton>\n <PlainButton\n aria-label={pointMsg}\n className=\"bcpr-PreviewHeader-button bp-btn-annotate-point bp-is-hidden\"\n title={pointMsg}\n type=\"button\"\n >\n <IconPointAnnotation color={bdlGray50} height={18} width={18} />\n </PlainButton>\n </>\n )}\n {canPrint && (\n <PlainButton\n aria-label={printMsg}\n className=\"bcpr-PreviewHeader-button\"\n onClick={onPrint}\n title={printMsg}\n type=\"button\"\n >\n <IconPrint color={bdlGray50} height={22} width={22} />\n </PlainButton>\n )}\n {canDownload && (\n <PlainButton\n aria-label={downloadMsg}\n className=\"bcpr-PreviewHeader-button\"\n data-target-id=\"PreviewHeader-downloadButton\"\n onClick={onDownload}\n title={downloadMsg}\n type=\"button\"\n >\n <IconDownload color={bdlGray50} height={18} width={18} />\n </PlainButton>\n )}\n </>\n )}\n\n {onClose && (\n <PlainButton\n aria-label={isPreviewingCurrentVersion && closeMsg}\n className=\"bcpr-PreviewHeader-button bcpr-PreviewHeader-button-close\"\n onClick={onClose}\n type=\"button\"\n >\n {isPreviewingCurrentVersion ? (\n <IconClose color={bdlGray50} height={24} width={24} />\n ) : (\n closeMsg\n )}\n </PlainButton>\n )}\n </div>\n </div>\n </header>\n );\n};\n\nexport default injectIntl(PreviewHeader);\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
3
3
  import * as React from 'react';
4
4
  import { BrowserRouter as Router } from 'react-router-dom';
5
- import { expect, userEvent, waitFor, within } from '@storybook/test';
5
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
6
6
  import { Notification } from '@box/blueprint-web';
7
7
  import { http, HttpResponse } from 'msw';
8
8
  import { mockEventRequest, mockFileRequest, mockUserRequest } from '../../../common/__mocks__/mockRequests';
@@ -1,7 +1,7 @@
1
1
  // @flow
2
2
  import * as React from 'react';
3
3
  import { BrowserRouter as Router } from 'react-router-dom';
4
- import { expect, userEvent, waitFor, within } from '@storybook/test';
4
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
5
5
  import { Notification } from '@box/blueprint-web';
6
6
  import { http, HttpResponse } from 'msw';
7
7