box-ui-elements 15.0.0-beta.7 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/CONTRIBUTING.md +3 -1
  2. package/dist/explorer.css +1 -1
  3. package/dist/explorer.js +58 -26
  4. package/dist/openwith.css +1 -1
  5. package/dist/openwith.js +10 -17
  6. package/dist/picker.css +1 -1
  7. package/dist/picker.js +12 -19
  8. package/dist/preview.css +1 -1
  9. package/dist/preview.js +56 -24
  10. package/dist/sharing.css +1 -1
  11. package/dist/sharing.js +54 -22
  12. package/dist/sidebar.css +1 -1
  13. package/dist/sidebar.js +56 -24
  14. package/dist/uploader.css +1 -1
  15. package/dist/uploader.js +12 -19
  16. package/es/api/uploads/UploadsReachability.js.flow +2 -2
  17. package/es/api/uploads/UploadsReachability.js.map +1 -1
  18. package/es/common/messages.js +4 -0
  19. package/es/common/messages.js.flow +5 -0
  20. package/es/common/messages.js.map +1 -1
  21. package/es/common/types/core.js.flow +2 -0
  22. package/es/common/types/core.js.map +1 -1
  23. package/es/components/avatar/UnknownUserAvatar.js +6 -9
  24. package/es/components/avatar/UnknownUserAvatar.js.map +1 -1
  25. package/es/components/close-button/CloseButton.js +24 -0
  26. package/es/components/close-button/CloseButton.js.flow +26 -0
  27. package/es/components/close-button/CloseButton.js.map +1 -0
  28. package/es/components/close-button/CloseButton.scss +10 -0
  29. package/es/components/close-button/CloseButton.stories.js +14 -0
  30. package/es/components/close-button/CloseButton.stories.js.map +1 -0
  31. package/es/components/close-button/index.js +2 -0
  32. package/es/components/close-button/index.js.flow +2 -0
  33. package/es/components/close-button/index.js.map +1 -0
  34. package/es/components/date-picker/AccessiblePikaday.js +113 -0
  35. package/es/components/date-picker/AccessiblePikaday.js.map +1 -0
  36. package/es/components/date-picker/DatePicker.js +426 -106
  37. package/es/components/date-picker/DatePicker.js.map +1 -1
  38. package/es/components/date-picker/DatePicker.scss +32 -22
  39. package/es/components/date-picker/DatePicker.stories.js +10 -0
  40. package/es/components/date-picker/DatePicker.stories.js.map +1 -1
  41. package/es/components/date-picker/_pikaday.scss +8 -2
  42. package/es/components/flyout/Flyout.js +13 -3
  43. package/es/components/flyout/Flyout.js.flow +14 -3
  44. package/es/components/flyout/Flyout.js.map +1 -1
  45. package/es/components/flyout/Flyout.scss +40 -0
  46. package/es/components/flyout/FlyoutContext.js +6 -0
  47. package/es/components/flyout/FlyoutContext.js.flow +9 -0
  48. package/es/components/flyout/FlyoutContext.js.map +1 -0
  49. package/es/components/flyout/OverlayHeader.js +33 -0
  50. package/es/components/flyout/OverlayHeader.js.map +1 -0
  51. package/es/components/flyout/OverlayHeader.scss +9 -0
  52. package/es/components/flyout/_variables.scss +1 -0
  53. package/es/components/flyout/index.js +2 -0
  54. package/es/components/flyout/index.js.flow +2 -0
  55. package/es/components/flyout/index.js.map +1 -1
  56. package/es/components/image-tooltip/ImageTooltip.js +1 -2
  57. package/es/components/image-tooltip/ImageTooltip.js.map +1 -1
  58. package/es/components/media-query/constants.js +26 -0
  59. package/es/components/media-query/constants.js.flow +32 -0
  60. package/es/components/media-query/constants.js.map +1 -0
  61. package/es/components/media-query/index.js +3 -0
  62. package/es/components/media-query/index.js.flow +4 -0
  63. package/es/components/media-query/index.js.map +1 -0
  64. package/es/components/media-query/stories/MediaQuery.stories.js +37 -0
  65. package/es/components/media-query/stories/MediaQuery.stories.js.flow +80 -0
  66. package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -0
  67. package/es/components/media-query/types.js +2 -0
  68. package/es/components/media-query/types.js.flow +29 -0
  69. package/es/components/media-query/types.js.map +1 -0
  70. package/es/components/media-query/useMediaQuery.js +91 -0
  71. package/es/components/media-query/useMediaQuery.js.flow +97 -0
  72. package/es/components/media-query/useMediaQuery.js.map +1 -0
  73. package/es/components/media-query/withMediaQuery.js +21 -0
  74. package/es/components/media-query/withMediaQuery.js.flow +23 -0
  75. package/es/components/media-query/withMediaQuery.js.map +1 -0
  76. package/es/components/modal/Modal.scss +27 -0
  77. package/es/components/preview/previewIcons.js +4 -0
  78. package/es/components/preview/previewIcons.js.map +1 -1
  79. package/es/components/search-form/SearchForm.scss +0 -5
  80. package/es/components/selector-dropdown/SelectorDropdown.js +5 -3
  81. package/es/components/selector-dropdown/SelectorDropdown.js.flow +3 -3
  82. package/es/components/selector-dropdown/SelectorDropdown.js.map +1 -1
  83. package/es/components/tab-view/Tabs.scss +0 -4
  84. package/es/components/tooltip/Tooltip.js +21 -4
  85. package/es/components/tooltip/Tooltip.js.map +1 -1
  86. package/es/constants.js +1 -0
  87. package/es/constants.js.flow +1 -0
  88. package/es/constants.js.map +1 -1
  89. package/es/elements/content-open-with/IconFileMap.js +0 -2
  90. package/es/elements/content-open-with/IconFileMap.js.flow +0 -2
  91. package/es/elements/content-open-with/IconFileMap.js.map +1 -1
  92. package/es/elements/content-sidebar/Sidebar.js +2 -1
  93. package/es/elements/content-sidebar/Sidebar.js.flow +1 -1
  94. package/es/elements/content-sidebar/Sidebar.js.map +1 -1
  95. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +3 -3
  96. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js +14 -4
  97. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.flow +18 -5
  98. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.map +1 -1
  99. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js +78 -0
  100. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.flow +97 -0
  101. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.map +1 -0
  102. package/es/elements/content-sidebar/versions/StaticVersionsSidebar.scss +67 -0
  103. package/es/elements/content-sidebar/versions/VersionsSidebar.js +12 -4
  104. package/es/elements/content-sidebar/versions/VersionsSidebar.js.flow +16 -3
  105. package/es/elements/content-sidebar/versions/VersionsSidebar.js.map +1 -1
  106. package/es/elements/content-sidebar/versions/VersionsSidebar.scss +5 -0
  107. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js +42 -10
  108. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.flow +42 -7
  109. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.map +1 -1
  110. package/es/elements/content-sidebar/versions/flowTypes.js.flow +1 -0
  111. package/es/elements/content-sidebar/versions/messages.js +20 -0
  112. package/es/elements/content-sidebar/versions/messages.js.flow +28 -0
  113. package/es/elements/content-sidebar/versions/messages.js.map +1 -1
  114. package/es/features/classification/constants.js +2 -1
  115. package/es/features/classification/constants.js.flow +2 -0
  116. package/es/features/classification/constants.js.map +1 -1
  117. package/es/features/classification/flowTypes.js +1 -0
  118. package/es/features/classification/flowTypes.js.flow +7 -1
  119. package/es/features/classification/flowTypes.js.map +1 -1
  120. package/es/features/classification/security-controls/SecurityControls.js +3 -4
  121. package/es/features/classification/security-controls/SecurityControls.js.flow +3 -4
  122. package/es/features/classification/security-controls/SecurityControls.js.map +1 -1
  123. package/es/features/classification/security-controls/SecurityControlsItem.js +1 -1
  124. package/es/features/classification/security-controls/SecurityControlsItem.js.flow +20 -17
  125. package/es/features/classification/security-controls/SecurityControlsItem.js.map +1 -1
  126. package/es/features/classification/security-controls/SecurityControlsItem.scss +4 -0
  127. package/es/features/classification/security-controls/SecurityControlsModal.js +2 -2
  128. package/es/features/classification/security-controls/SecurityControlsModal.js.flow +2 -2
  129. package/es/features/classification/security-controls/SecurityControlsModal.js.map +1 -1
  130. package/es/features/classification/security-controls/messages.js +4 -0
  131. package/es/features/classification/security-controls/messages.js.flow +5 -0
  132. package/es/features/classification/security-controls/messages.js.map +1 -1
  133. package/es/features/classification/security-controls/utils.js +56 -35
  134. package/es/features/classification/security-controls/utils.js.flow +51 -27
  135. package/es/features/classification/security-controls/utils.js.map +1 -1
  136. package/es/features/collapsible-sidebar/CollapsibleSidebar.js +9 -3
  137. package/es/features/collapsible-sidebar/CollapsibleSidebar.js.flow +13 -5
  138. package/es/features/collapsible-sidebar/CollapsibleSidebar.js.map +1 -1
  139. package/es/features/collapsible-sidebar/CollapsibleSidebar.scss +35 -3
  140. package/es/features/content-explorer/content-explorer/ContentExplorer.scss +1 -1
  141. package/es/features/content-explorer/item-list/ItemList.js +1 -0
  142. package/es/features/content-explorer/item-list/ItemList.js.flow +1 -0
  143. package/es/features/content-explorer/item-list/ItemList.js.map +1 -1
  144. package/es/features/content-explorer/item-list/ItemListName.js +13 -2
  145. package/es/features/content-explorer/item-list/ItemListName.js.flow +3 -2
  146. package/es/features/content-explorer/item-list/ItemListName.js.map +1 -1
  147. package/es/features/header-flyout/HeaderFlyout.js +8 -10
  148. package/es/features/header-flyout/HeaderFlyout.js.flow +4 -8
  149. package/es/features/header-flyout/HeaderFlyout.js.map +1 -1
  150. package/es/features/header-flyout/styles/HeaderFlyout.scss +54 -15
  151. package/es/features/header-flyout/styles/_variables.scss +4 -0
  152. package/es/features/message-center/components/message-center-modal/MessageCenterModal.js +1 -0
  153. package/es/features/message-center/components/message-center-modal/MessageCenterModal.js.flow +1 -0
  154. package/es/features/message-center/components/message-center-modal/MessageCenterModal.js.map +1 -1
  155. package/es/features/presence/PresenceCollaborator.js +90 -0
  156. package/es/features/presence/PresenceCollaborator.js.flow +81 -0
  157. package/es/features/presence/PresenceCollaborator.js.map +1 -0
  158. package/es/features/presence/PresenceCollaborator.scss +28 -0
  159. package/es/features/presence/PresenceCollaboratorsList.js +9 -57
  160. package/es/features/presence/PresenceCollaboratorsList.js.flow +7 -58
  161. package/es/features/presence/PresenceCollaboratorsList.js.map +1 -1
  162. package/es/features/presence/PresenceCollaboratorsList.scss +8 -35
  163. package/es/features/quick-search/QuickSearch.js +4 -2
  164. package/es/features/quick-search/QuickSearch.js.flow +13 -1
  165. package/es/features/quick-search/QuickSearch.js.map +1 -1
  166. package/es/features/unified-share-modal/SharedLinkSection.js +9 -20
  167. package/es/features/unified-share-modal/SharedLinkSection.js.flow +6 -27
  168. package/es/features/unified-share-modal/SharedLinkSection.js.map +1 -1
  169. package/es/features/unified-share-modal/UnifiedShareForm.js +95 -53
  170. package/es/features/unified-share-modal/UnifiedShareForm.js.flow +70 -14
  171. package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
  172. package/es/features/unified-share-modal/UnifiedShareModal.scss +3 -0
  173. package/es/features/unified-share-modal/flowTypes.js.flow +6 -0
  174. package/es/features/unified-share-modal/flowTypes.js.map +1 -1
  175. package/es/features/unified-share-modal/messages.js +8 -0
  176. package/es/features/unified-share-modal/messages.js.flow +10 -0
  177. package/es/features/unified-share-modal/messages.js.map +1 -1
  178. package/es/features/unified-share-modal/utils/mergeContacts.js +13 -10
  179. package/es/features/unified-share-modal/utils/mergeContacts.js.flow +4 -2
  180. package/es/features/unified-share-modal/utils/mergeContacts.js.map +1 -1
  181. package/es/icon/content/FileXbd32.js +39 -0
  182. package/es/icon/content/FileXbd32.js.flow +38 -0
  183. package/es/icon/content/FileXbd32.js.map +1 -0
  184. package/es/icon/content/FileXbd32.stories.js +13 -0
  185. package/es/icon/content/FileXbd32.stories.js.map +1 -0
  186. package/es/icon/content/FileXdw32.js +39 -0
  187. package/es/icon/content/FileXdw32.js.flow +38 -0
  188. package/es/icon/content/FileXdw32.js.map +1 -0
  189. package/es/icon/content/FileXdw32.stories.js +13 -0
  190. package/es/icon/content/FileXdw32.stories.js.map +1 -0
  191. package/es/icon/content/RetentionPolicyModifiable32.js +36 -0
  192. package/es/icon/content/RetentionPolicyModifiable32.js.flow +31 -0
  193. package/es/icon/content/RetentionPolicyModifiable32.js.map +1 -0
  194. package/es/icon/content/RetentionPolicyModifiable32.stories.js +13 -0
  195. package/es/icon/content/RetentionPolicyModifiable32.stories.js.map +1 -0
  196. package/es/icon/content/RetentionPolicyNonModifiable32.js +36 -0
  197. package/es/icon/content/RetentionPolicyNonModifiable32.js.flow +31 -0
  198. package/es/icon/content/RetentionPolicyNonModifiable32.js.map +1 -0
  199. package/es/icon/content/RetentionPolicyNonModifiable32.stories.js +13 -0
  200. package/es/icon/content/RetentionPolicyNonModifiable32.stories.js.map +1 -0
  201. package/es/icons/avatars/UnknownUserAvatar.js +10 -34
  202. package/es/icons/avatars/UnknownUserAvatar.js.map +1 -1
  203. package/es/icons/file-icon/FileIcon.js +8 -2
  204. package/es/icons/file-icon/FileIcon.js.flow +2 -2
  205. package/es/icons/file-icon/FileIcon.js.map +1 -1
  206. package/es/icons/general/IconSearch.js +1 -1
  207. package/es/icons/general/IconSearch.js.flow +1 -1
  208. package/es/icons/general/IconSearch.js.map +1 -1
  209. package/es/icons/general/IconSearchJuicy.js +30 -0
  210. package/es/icons/general/IconSearchJuicy.js.flow +26 -0
  211. package/es/icons/general/IconSearchJuicy.js.map +1 -0
  212. package/es/icons/google-docs/IconGoogle.js +89 -0
  213. package/es/icons/google-docs/IconGoogle.js.flow +57 -0
  214. package/es/icons/google-docs/IconGoogle.js.map +1 -0
  215. package/es/icons/item-icon/ItemIcon.js +4 -0
  216. package/es/icons/item-icon/ItemIcon.js.map +1 -1
  217. package/es/icons/microsoft-office/IconOffice.js +80 -0
  218. package/es/icons/microsoft-office/IconOffice.js.flow +45 -0
  219. package/es/icons/microsoft-office/IconOffice.js.map +1 -0
  220. package/es/illustration/EmailVerification140.js +111 -0
  221. package/es/illustration/EmailVerification140.js.flow +102 -0
  222. package/es/illustration/EmailVerification140.js.map +1 -0
  223. package/es/illustration/EmailVerification140.stories.js +13 -0
  224. package/es/illustration/EmailVerification140.stories.js.map +1 -0
  225. package/es/src/components/close-button/CloseButton.d.ts +9 -0
  226. package/es/src/components/close-button/CloseButton.stories.d.ts +9 -0
  227. package/es/src/components/close-button/__tests__/CloseButton.stories.test.d.ts +0 -0
  228. package/es/src/components/close-button/__tests__/CloseButton.test.d.ts +1 -0
  229. package/es/src/components/close-button/index.d.ts +1 -0
  230. package/es/src/components/date-picker/AccessiblePikaday.d.ts +16 -0
  231. package/es/src/components/date-picker/DatePicker.d.ts +33 -6
  232. package/es/src/components/date-picker/DatePicker.stories.d.ts +2 -1
  233. package/es/src/components/flyout/OverlayHeader.d.ts +10 -0
  234. package/es/src/components/tooltip/Tooltip.d.ts +4 -3
  235. package/es/src/icon/content/FileXbd32.d.ts +13 -0
  236. package/es/src/icon/content/FileXbd32.stories.d.ts +9 -0
  237. package/es/src/icon/content/FileXdw32.d.ts +13 -0
  238. package/es/src/icon/content/FileXdw32.stories.d.ts +9 -0
  239. package/es/src/icon/content/RetentionPolicyModifiable32.d.ts +13 -0
  240. package/es/src/icon/content/RetentionPolicyModifiable32.stories.d.ts +9 -0
  241. package/es/src/icon/content/RetentionPolicyNonModifiable32.d.ts +13 -0
  242. package/es/src/icon/content/RetentionPolicyNonModifiable32.stories.d.ts +9 -0
  243. package/es/src/icons/avatars/UnknownUserAvatar.d.ts +0 -1
  244. package/es/src/icons/general/IconSearchJuicy.d.ts +3 -0
  245. package/es/src/icons/general/__tests__/IconSearchJuicy.test.d.ts +1 -0
  246. package/es/src/icons/google-docs/IconGoogle.d.ts +12 -0
  247. package/es/src/icons/google-docs/__tests__/IconGoogle.test.d.ts +1 -0
  248. package/es/src/icons/item-icon/ItemIcon.d.ts +2 -0
  249. package/es/src/icons/microsoft-office/IconOffice.d.ts +12 -0
  250. package/es/src/icons/microsoft-office/__tests__/IconOffice.test.d.ts +1 -0
  251. package/es/src/illustration/EmailVerification140.d.ts +13 -0
  252. package/es/src/illustration/EmailVerification140.stories.d.ts +9 -0
  253. package/es/src/styles/variables.d.ts +9 -0
  254. package/es/styles/_variables.scss +1 -0
  255. package/es/styles/common/_forms.scss +6 -0
  256. package/es/styles/constants/_layout.scss +3 -0
  257. package/es/styles/constants/_media-queries.scss +15 -0
  258. package/es/styles/variables.js +18 -0
  259. package/es/styles/variables.js.flow +10 -1
  260. package/es/styles/variables.js.map +1 -1
  261. package/es/utils/Browser.js +12 -0
  262. package/es/utils/Browser.js.flow +10 -0
  263. package/es/utils/Browser.js.map +1 -1
  264. package/es/utils/validators.js +26 -4
  265. package/es/utils/validators.js.flow +25 -3
  266. package/es/utils/validators.js.map +1 -1
  267. package/i18n/bn-IN.js +12 -0
  268. package/i18n/bn-IN.properties +24 -0
  269. package/i18n/da-DK.js +12 -0
  270. package/i18n/da-DK.properties +24 -0
  271. package/i18n/de-DE.js +12 -0
  272. package/i18n/de-DE.properties +24 -0
  273. package/i18n/en-AU.js +12 -0
  274. package/i18n/en-AU.properties +24 -0
  275. package/i18n/en-CA.js +12 -0
  276. package/i18n/en-CA.properties +24 -0
  277. package/i18n/en-GB.js +12 -0
  278. package/i18n/en-GB.properties +24 -0
  279. package/i18n/en-US.js +12 -0
  280. package/i18n/en-US.properties +24 -0
  281. package/i18n/en-x-pseudo.js +12 -0
  282. package/i18n/es-419.js +12 -0
  283. package/i18n/es-419.properties +24 -0
  284. package/i18n/es-ES.js +12 -0
  285. package/i18n/es-ES.properties +24 -0
  286. package/i18n/fi-FI.js +12 -0
  287. package/i18n/fi-FI.properties +24 -0
  288. package/i18n/fr-CA.js +12 -0
  289. package/i18n/fr-CA.properties +24 -0
  290. package/i18n/fr-FR.js +12 -0
  291. package/i18n/fr-FR.properties +24 -0
  292. package/i18n/hi-IN.js +12 -0
  293. package/i18n/hi-IN.properties +24 -0
  294. package/i18n/it-IT.js +12 -0
  295. package/i18n/it-IT.properties +24 -0
  296. package/i18n/ja-JP.js +25 -13
  297. package/i18n/ja-JP.properties +37 -13
  298. package/i18n/ko-KR.js +12 -0
  299. package/i18n/ko-KR.properties +24 -0
  300. package/i18n/nb-NO.js +12 -0
  301. package/i18n/nb-NO.properties +24 -0
  302. package/i18n/nl-NL.js +12 -0
  303. package/i18n/nl-NL.properties +24 -0
  304. package/i18n/pl-PL.js +12 -0
  305. package/i18n/pl-PL.properties +24 -0
  306. package/i18n/pt-BR.js +12 -0
  307. package/i18n/pt-BR.properties +24 -0
  308. package/i18n/ru-RU.js +12 -0
  309. package/i18n/ru-RU.properties +24 -0
  310. package/i18n/sv-SE.js +12 -0
  311. package/i18n/sv-SE.properties +24 -0
  312. package/i18n/tr-TR.js +12 -0
  313. package/i18n/tr-TR.properties +24 -0
  314. package/i18n/zh-CN.js +12 -0
  315. package/i18n/zh-CN.properties +24 -0
  316. package/i18n/zh-TW.js +12 -0
  317. package/i18n/zh-TW.properties +24 -0
  318. package/package.json +8 -5
  319. package/src/__mocks__/pikaday.js +1 -0
  320. package/src/api/__tests__/MockOpenWithData.json +2 -25
  321. package/src/api/uploads/UploadsReachability.js +2 -2
  322. package/src/common/messages.js +5 -0
  323. package/src/common/types/core.js +2 -0
  324. package/src/components/avatar/UnknownUserAvatar.tsx +5 -4
  325. package/src/components/close-button/CloseButton.js.flow +26 -0
  326. package/src/components/close-button/CloseButton.scss +10 -0
  327. package/src/components/close-button/CloseButton.stories.md +1 -0
  328. package/src/components/close-button/CloseButton.stories.tsx +14 -0
  329. package/src/components/close-button/CloseButton.tsx +30 -0
  330. package/src/components/close-button/__tests__/CloseButton.stories.test.tsx +6 -0
  331. package/src/components/close-button/__tests__/CloseButton.test.tsx +40 -0
  332. package/src/components/close-button/__tests__/__image_snapshots__/close-button-stories-test-tsx-components-close-button-close-button-looks-visually-correct-when-using-story-components-buttons-closebutton-regular-1-snap.png +0 -0
  333. package/src/components/close-button/index.js.flow +2 -0
  334. package/src/components/close-button/index.ts +1 -0
  335. package/src/components/date-picker/AccessiblePikaday.ts +79 -0
  336. package/src/components/date-picker/DatePicker.scss +32 -22
  337. package/src/components/date-picker/DatePicker.stories.tsx +6 -0
  338. package/src/components/date-picker/DatePicker.tsx +350 -64
  339. package/src/components/date-picker/__tests__/DatePicker.test.tsx +44 -2
  340. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-allows-editing-in-story-components-datepicker-manually-editable-1-snap.png +0 -0
  341. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-allows-keyboard-selection-in-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
  342. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-closes-calendar-and-clears-date-for-components-datepicker-basic-1-snap.png +0 -0
  343. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
  344. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-basic-1-snap.png +0 -0
  345. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-custom-error-tooltip-position-1-snap.png +0 -0
  346. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-disabled-with-error-message-1-snap.png +0 -0
  347. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-manually-editable-1-snap.png +0 -0
  348. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-description-1-snap.png +0 -0
  349. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-limited-date-range-1-snap.png +0 -0
  350. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-range-1-snap.png +0 -0
  351. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-reflects-changes-in-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
  352. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-shows-calendar-and-date-for-components-datepicker-basic-1-snap.png +0 -0
  353. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-shows-limited-range-in-components-datepicker-with-limited-date-range-1-snap.png +0 -0
  354. package/src/components/date-picker/_pikaday.scss +8 -2
  355. package/src/components/flyout/Flyout.js +14 -3
  356. package/src/components/flyout/Flyout.scss +40 -0
  357. package/src/components/flyout/FlyoutContext.js +9 -0
  358. package/src/components/flyout/OverlayHeader.scss +9 -0
  359. package/src/components/flyout/OverlayHeader.tsx +38 -0
  360. package/src/components/flyout/__tests__/Flyout.test.js +15 -0
  361. package/src/components/flyout/__tests__/OverlayHeader.test.js +56 -0
  362. package/src/components/flyout/_variables.scss +1 -0
  363. package/src/components/flyout/index.js +2 -0
  364. package/src/components/image-tooltip/ImageTooltip.tsx +1 -2
  365. package/src/components/media-query/__tests__/useMediaQuery.test.js +48 -0
  366. package/src/components/media-query/__tests__/withMediaQuery.test.js +29 -0
  367. package/src/components/media-query/constants.js +32 -0
  368. package/src/components/media-query/index.js +4 -0
  369. package/src/components/media-query/stories/MediaQuery.stories.js +80 -0
  370. package/src/components/media-query/stories/MediaQuery.stories.md +29 -0
  371. package/src/components/media-query/types.js +29 -0
  372. package/src/components/media-query/useMediaQuery.js +97 -0
  373. package/src/components/media-query/withMediaQuery.js +23 -0
  374. package/src/components/modal/Modal.scss +27 -0
  375. package/src/components/modal/__tests__/Modal.stories.test.js +10 -0
  376. package/src/components/modal/__tests__/__image_snapshots__/modal-stories-test-js-components-modal-modal-looks-visually-correct-for-small-screens-when-button-is-clicked-in-story-components-modal-basic-1-snap.png +0 -0
  377. package/src/components/modal/__tests__/__image_snapshots__/modal-stories-test-js-components-modal-modal-looks-visually-correct-for-small-screens-when-button-is-clicked-in-story-components-modal-with-custom-backdrop-click-handler-1-snap.png +0 -0
  378. package/src/components/preview/previewIcons.ts +4 -0
  379. package/src/components/search-form/SearchForm.scss +0 -5
  380. package/src/components/selector-dropdown/SelectorDropdown.js +3 -3
  381. package/src/components/selector-dropdown/__tests__/SelectorDropdown.test.js +5 -1
  382. package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +0 -8
  383. package/src/components/tab-view/Tabs.scss +0 -4
  384. package/src/components/tooltip/Tooltip.tsx +20 -5
  385. package/src/components/tooltip/__tests__/Tooltip.test.tsx +17 -4
  386. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -2
  387. package/src/constants.js +1 -0
  388. package/src/elements/content-open-with/IconFileMap.js +0 -2
  389. package/src/elements/content-open-with/__tests__/ContentOpenWith.test.js +13 -13
  390. package/src/elements/content-open-with/__tests__/OpenWithButton.test.js +1 -1
  391. package/src/elements/content-open-with/__tests__/OpenWithDropdownMenu.test.js +1 -5
  392. package/src/elements/content-open-with/__tests__/OpenWithDropdownMenuItem.test.js +2 -2
  393. package/src/elements/content-open-with/__tests__/__snapshots__/ContentOpenWith.test.js.snap +5 -5
  394. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithButton.test.js.snap +1 -1
  395. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenu.test.js.snap +1 -11
  396. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenuItem.test.js.snap +4 -3
  397. package/src/elements/content-sidebar/Sidebar.js +1 -1
  398. package/src/elements/content-sidebar/__tests__/AddTaskButton.test.js +15 -0
  399. package/src/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +3 -3
  400. package/src/elements/content-sidebar/activity-feed/task-form/TaskForm.js +18 -5
  401. package/src/elements/content-sidebar/versions/StaticVersionSidebar.js +97 -0
  402. package/src/elements/content-sidebar/versions/StaticVersionsSidebar.scss +67 -0
  403. package/src/elements/content-sidebar/versions/VersionsSidebar.js +16 -3
  404. package/src/elements/content-sidebar/versions/VersionsSidebar.scss +5 -0
  405. package/src/elements/content-sidebar/versions/VersionsSidebarContainer.js +42 -7
  406. package/src/elements/content-sidebar/versions/__tests__/VersionsSidebar.test.js +18 -1
  407. package/src/elements/content-sidebar/versions/__tests__/VersionsSidebarContainer.test.js +51 -2
  408. package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsSidebarContainer.test.js.snap +75 -0
  409. package/src/elements/content-sidebar/versions/flowTypes.js +1 -0
  410. package/src/elements/content-sidebar/versions/messages.js +28 -0
  411. package/src/features/classification/constants.js +2 -0
  412. package/src/features/classification/flowTypes.js +7 -1
  413. package/src/features/classification/security-controls/SecurityControls.js +3 -4
  414. package/src/features/classification/security-controls/SecurityControlsItem.js +20 -17
  415. package/src/features/classification/security-controls/SecurityControlsItem.scss +4 -0
  416. package/src/features/classification/security-controls/SecurityControlsModal.js +2 -2
  417. package/src/features/classification/security-controls/__tests__/SecurityControlsItem.test.js +10 -0
  418. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControls.test.js.snap +6 -6
  419. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsItem.test.js.snap +35 -0
  420. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsModal.test.js.snap +2 -2
  421. package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +20 -0
  422. package/src/features/classification/security-controls/__tests__/utils.test.js +38 -18
  423. package/src/features/classification/security-controls/messages.js +5 -0
  424. package/src/features/classification/security-controls/utils.js +51 -27
  425. package/src/features/collapsible-sidebar/CollapsibleSidebar.js +13 -5
  426. package/src/features/collapsible-sidebar/CollapsibleSidebar.scss +35 -3
  427. package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebar.test.js +35 -0
  428. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebar.test.js.snap +1 -0
  429. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +1 -1
  430. package/src/features/content-explorer/item-list/ItemList.js +1 -0
  431. package/src/features/content-explorer/item-list/ItemListName.js +3 -2
  432. package/src/features/content-explorer/item-list/__tests__/ItemListName.test.js +16 -2
  433. package/src/features/header-flyout/HeaderFlyout.js +4 -8
  434. package/src/features/header-flyout/__tests__/__snapshots__/HeaderFlyout.test.js.snap +14 -11
  435. package/src/features/header-flyout/styles/HeaderFlyout.scss +54 -15
  436. package/src/features/header-flyout/styles/_variables.scss +4 -0
  437. package/src/features/message-center/components/message-center-modal/MessageCenterModal.js +1 -0
  438. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplateDropdown.test.js.snap +7 -0
  439. package/src/features/pagination/__tests__/__snapshots__/MarkerBasedPagination.test.js.snap +0 -8
  440. package/src/features/pagination/__tests__/__snapshots__/OffsetBasedPagination.test.js.snap +0 -16
  441. package/src/features/presence/PresenceCollaborator.js +81 -0
  442. package/src/features/presence/PresenceCollaborator.scss +28 -0
  443. package/src/features/presence/PresenceCollaboratorsList.js +7 -58
  444. package/src/features/presence/PresenceCollaboratorsList.scss +8 -35
  445. package/src/features/presence/__tests__/PresenceCollaborator.test.js +36 -0
  446. package/src/features/presence/__tests__/PresenceCollaboratorsList.test.js +13 -57
  447. package/src/features/presence/__tests__/__snapshots__/Presence.test.js.snap +5 -0
  448. package/src/features/presence/__tests__/__snapshots__/PresenceLink.test.js.snap +3 -0
  449. package/src/features/query-bar/__tests__/__snapshots__/ColumnButton.test.js.snap +3 -0
  450. package/src/features/quick-search/QuickSearch.js +13 -1
  451. package/src/features/quick-search/__tests__/QuickSearch.test.js +17 -0
  452. package/src/features/unified-share-modal/SharedLinkSection.js +6 -27
  453. package/src/features/unified-share-modal/UnifiedShareForm.js +70 -14
  454. package/src/features/unified-share-modal/UnifiedShareModal.scss +3 -0
  455. package/src/features/unified-share-modal/__tests__/EmailForm.test.js +9 -0
  456. package/src/features/unified-share-modal/__tests__/SharedLinkSection.test.js +14 -4
  457. package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +53 -4
  458. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkSection.test.js.snap +9 -0
  459. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +0 -159
  460. package/src/features/unified-share-modal/flowTypes.js +6 -0
  461. package/src/features/unified-share-modal/messages.js +10 -0
  462. package/src/features/unified-share-modal/utils/__tests__/mergeContacts.test.js +23 -0
  463. package/src/features/unified-share-modal/utils/mergeContacts.js +4 -2
  464. package/src/icon/content/FileXbd32.js.flow +38 -0
  465. package/src/icon/content/FileXbd32.stories.tsx +13 -0
  466. package/src/icon/content/FileXbd32.tsx +37 -0
  467. package/src/icon/content/FileXdw32.js.flow +38 -0
  468. package/src/icon/content/FileXdw32.stories.tsx +13 -0
  469. package/src/icon/content/FileXdw32.tsx +37 -0
  470. package/src/icon/content/RetentionPolicyModifiable32.js.flow +31 -0
  471. package/src/icon/content/RetentionPolicyModifiable32.stories.tsx +14 -0
  472. package/src/icon/content/RetentionPolicyModifiable32.tsx +29 -0
  473. package/src/icon/content/RetentionPolicyNonModifiable32.js.flow +31 -0
  474. package/src/icon/content/RetentionPolicyNonModifiable32.stories.tsx +14 -0
  475. package/src/icon/content/RetentionPolicyNonModifiable32.tsx +29 -0
  476. package/src/icons/adobe-sign/README.md +1 -1
  477. package/src/icons/avatars/UnknownUserAvatar.tsx +7 -15
  478. package/src/icons/file-icon/FileIcon.js.flow +2 -2
  479. package/src/icons/file-icon/FileIcon.tsx +8 -2
  480. package/src/icons/file-icon/__tests__/FileIcon.test.tsx +28 -69
  481. package/src/icons/file-icon/__tests__/__snapshots__/FileIcon.test.tsx.snap +48 -34
  482. package/src/icons/general/IconSearch.js.flow +1 -1
  483. package/src/icons/general/IconSearch.tsx +1 -1
  484. package/src/icons/general/IconSearchJuicy.js.flow +26 -0
  485. package/src/icons/general/IconSearchJuicy.tsx +25 -0
  486. package/src/icons/general/README.md +5 -0
  487. package/src/icons/general/__tests__/IconSearchJuicy.test.tsx +38 -0
  488. package/src/icons/google-docs/IconGoogle.js.flow +57 -0
  489. package/src/icons/google-docs/IconGoogle.tsx +50 -0
  490. package/src/icons/google-docs/__tests__/IconGoogle.test.tsx +44 -0
  491. package/src/icons/item-icon/ItemIcon.tsx +4 -0
  492. package/src/icons/item-icon/__tests__/ItemIcon.test.tsx +47 -115
  493. package/src/icons/item-icon/__tests__/__snapshots__/ItemIcon.test.tsx.snap +229 -229
  494. package/src/icons/microsoft-office/IconOffice.js.flow +45 -0
  495. package/src/icons/microsoft-office/IconOffice.tsx +38 -0
  496. package/src/icons/microsoft-office/__tests__/IconOffice.test.tsx +44 -0
  497. package/src/illustration/EmailVerification140.js.flow +102 -0
  498. package/src/illustration/EmailVerification140.stories.tsx +13 -0
  499. package/src/illustration/EmailVerification140.tsx +100 -0
  500. package/src/styles/_variables.scss +1 -0
  501. package/src/styles/common/_forms.scss +6 -0
  502. package/src/styles/constants/_layout.scss +3 -0
  503. package/src/styles/constants/_media-queries.scss +15 -0
  504. package/src/styles/variables.js +10 -1
  505. package/src/styles/variables.json +10 -1
  506. package/src/styles/variables.ts +9 -0
  507. package/src/utils/Browser.js +10 -0
  508. package/src/utils/validators.js +25 -3
@@ -12,6 +12,7 @@ import messages from './messages';
12
12
  import SidebarContent from '../SidebarContent';
13
13
  import VersionsMenu from './VersionsMenu';
14
14
  import { BackButton } from '../../common/nav-button';
15
+ import PlainButton from '../../../components/plain-button/PlainButton';
15
16
  import { DEFAULT_FETCH_END } from '../../../constants';
16
17
  import { LoadingIndicatorWrapper } from '../../../components/loading-indicator';
17
18
  import type { BoxItemVersion } from '../../../common/types/core';
@@ -21,18 +22,20 @@ const MAX_VERSIONS = DEFAULT_FETCH_END;
21
22
 
22
23
  type Props = {
23
24
  error?: MessageDescriptor,
25
+ errorTitle?: MessageDescriptor,
24
26
  fileId: string,
25
27
  isLoading: boolean,
28
+ onUpgradeClick?: () => void,
26
29
  parentName: string,
27
30
  versionCount: number,
28
31
  versionLimit: number,
29
32
  versions: Array<BoxItemVersion>,
30
33
  };
31
34
 
32
- const VersionsSidebar = ({ error, isLoading, parentName, versions, ...rest }: Props) => {
35
+ const VersionsSidebar = ({ error, errorTitle, onUpgradeClick, isLoading, parentName, versions, ...rest }: Props) => {
33
36
  const showLimit = versions.length >= MAX_VERSIONS;
34
37
  const showVersions = !!versions.length;
35
- const showEmpty = !isLoading && !showVersions;
38
+ const showEmpty = !isLoading && !showVersions && !onUpgradeClick;
36
39
  const showError = !!error;
37
40
 
38
41
  return (
@@ -49,8 +52,18 @@ const VersionsSidebar = ({ error, isLoading, parentName, versions, ...rest }: Pr
49
52
  >
50
53
  <LoadingIndicatorWrapper className="bcs-Versions-content" crawlerPosition="top" isLoading={isLoading}>
51
54
  {showError && (
52
- <InlineError title={<FormattedMessage {...messages.versionServerError} />}>
55
+ <InlineError title={<FormattedMessage {...errorTitle} />}>
53
56
  <FormattedMessage {...error} />
57
+ {onUpgradeClick && (
58
+ <PlainButton
59
+ onClick={onUpgradeClick}
60
+ data-resin-target="versioning_error_error_message_upgrade_cta"
61
+ type="button"
62
+ className="bcs-Versions-upgrade"
63
+ >
64
+ <FormattedMessage {...messages.versionUpgradeLink} />
65
+ </PlainButton>
66
+ )}
54
67
  </InlineError>
55
68
  )}
56
69
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/content-sidebar/versions/VersionsSidebar.js"],"names":["React","FormattedMessage","InlineError","messages","SidebarContent","VersionsMenu","BackButton","DEFAULT_FETCH_END","LoadingIndicatorWrapper","MAX_VERSIONS","VersionsSidebar","error","isLoading","parentName","versions","rest","showLimit","length","showVersions","showEmpty","showError","versionsTitle","versionServerError","versionsEmpty","versionMaxEntries","maxVersions"],"mappings":";;;;;;AAAA;;;;;AAMA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,cAAP,MAA2B,mBAA3B;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,SAASC,UAAT,QAA2B,yBAA3B;AACA,SAASC,iBAAT,QAAkC,oBAAlC;AACA,SAASC,uBAAT,QAAwC,uCAAxC;AAEA,OAAO,wBAAP;AAEA,IAAMC,YAAY,GAAGF,iBAArB;;AAYA,IAAMG,eAAe,GAAG,SAAlBA,eAAkB,OAAgE;AAAA,MAA7DC,KAA6D,QAA7DA,KAA6D;AAAA,MAAtDC,SAAsD,QAAtDA,SAAsD;AAAA,MAA3CC,UAA2C,QAA3CA,UAA2C;AAAA,MAA/BC,QAA+B,QAA/BA,QAA+B;AAAA,MAAlBC,IAAkB;;AACpF,MAAMC,SAAS,GAAGF,QAAQ,CAACG,MAAT,IAAmBR,YAArC;AACA,MAAMS,YAAY,GAAG,CAAC,CAACJ,QAAQ,CAACG,MAAhC;AACA,MAAME,SAAS,GAAG,CAACP,SAAD,IAAc,CAACM,YAAjC;AACA,MAAME,SAAS,GAAG,CAAC,CAACT,KAApB;AAEA,SACI,oBAAC,cAAD;AACI,IAAA,SAAS,EAAC,cADd;AAEI,4BAAqB,SAFzB;AAGI,0BAAmB,UAHvB;AAII,IAAA,KAAK,EACD,0CACI,oBAAC,UAAD;AAAY,2BAAkB,MAA9B;AAAqC,MAAA,EAAE,aAAME,UAAN;AAAvC,MADJ,EAEI,oBAAC,gBAAD,EAAsBV,QAAQ,CAACkB,aAA/B,CAFJ;AALR,KAWI,oBAAC,uBAAD;AAAyB,IAAA,SAAS,EAAC,sBAAnC;AAA0D,IAAA,eAAe,EAAC,KAA1E;AAAgF,IAAA,SAAS,EAAET;AAA3F,KACKQ,SAAS,IACN,oBAAC,WAAD;AAAa,IAAA,KAAK,EAAE,oBAAC,gBAAD,EAAsBjB,QAAQ,CAACmB,kBAA/B;AAApB,KACI,oBAAC,gBAAD,EAAsBX,KAAtB,CADJ,CAFR,EAOKQ,SAAS,IACN;AAAK,IAAA,SAAS,EAAC;AAAf,KACI,oBAAC,gBAAD,EAAsBhB,QAAQ,CAACoB,aAA/B,CADJ,CARR,EAaKL,YAAY,IACT;AAAK,IAAA,SAAS,EAAC;AAAf,KACI,oBAAC,YAAD;AAAc,IAAA,QAAQ,EAAEJ;AAAxB,KAAsCC,IAAtC,EADJ,CAdR,EAkBKC,SAAS,IACN;AAAK,IAAA,SAAS,EAAC,yBAAf;AAAyC,mBAAY;AAArD,KACI,oBAAC,gBAAD,eACQb,QAAQ,CAACqB,iBADjB;AAEI,IAAA,MAAM,EAAE;AACJC,MAAAA,WAAW,EAAEhB;AADT;AAFZ,KADJ,CAnBR,CAXJ,CADJ;AA2CH,CAjDD;;AAmDA,eAAeC,eAAf","sourcesContent":["/**\n * @flow\n * @file Versions Sidebar component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type { MessageDescriptor } from 'react-intl';\nimport InlineError from '../../../components/inline-error';\nimport messages from './messages';\nimport SidebarContent from '../SidebarContent';\nimport VersionsMenu from './VersionsMenu';\nimport { BackButton } from '../../common/nav-button';\nimport { DEFAULT_FETCH_END } from '../../../constants';\nimport { LoadingIndicatorWrapper } from '../../../components/loading-indicator';\nimport type { BoxItemVersion } from '../../../common/types/core';\nimport './VersionsSidebar.scss';\n\nconst MAX_VERSIONS = DEFAULT_FETCH_END;\n\ntype Props = {\n error?: MessageDescriptor,\n fileId: string,\n isLoading: boolean,\n parentName: string,\n versionCount: number,\n versionLimit: number,\n versions: Array<BoxItemVersion>,\n};\n\nconst VersionsSidebar = ({ error, isLoading, parentName, versions, ...rest }: Props) => {\n const showLimit = versions.length >= MAX_VERSIONS;\n const showVersions = !!versions.length;\n const showEmpty = !isLoading && !showVersions;\n const showError = !!error;\n\n return (\n <SidebarContent\n className=\"bcs-Versions\"\n data-resin-component=\"preview\"\n data-resin-feature=\"versions\"\n title={\n <>\n <BackButton data-resin-target=\"back\" to={`/${parentName}`} />\n <FormattedMessage {...messages.versionsTitle} />\n </>\n }\n >\n <LoadingIndicatorWrapper className=\"bcs-Versions-content\" crawlerPosition=\"top\" isLoading={isLoading}>\n {showError && (\n <InlineError title={<FormattedMessage {...messages.versionServerError} />}>\n <FormattedMessage {...error} />\n </InlineError>\n )}\n\n {showEmpty && (\n <div className=\"bcs-Versions-empty\">\n <FormattedMessage {...messages.versionsEmpty} />\n </div>\n )}\n\n {showVersions && (\n <div className=\"bcs-Versions-menu\">\n <VersionsMenu versions={versions} {...rest} />\n </div>\n )}\n {showLimit && (\n <div className=\"bcs-Versions-maxEntries\" data-testid=\"max-versions\">\n <FormattedMessage\n {...messages.versionMaxEntries}\n values={{\n maxVersions: MAX_VERSIONS,\n }}\n />\n </div>\n )}\n </LoadingIndicatorWrapper>\n </SidebarContent>\n );\n};\n\nexport default VersionsSidebar;\n"],"file":"VersionsSidebar.js"}
1
+ {"version":3,"sources":["../../../../src/elements/content-sidebar/versions/VersionsSidebar.js"],"names":["React","FormattedMessage","InlineError","messages","SidebarContent","VersionsMenu","BackButton","PlainButton","DEFAULT_FETCH_END","LoadingIndicatorWrapper","MAX_VERSIONS","VersionsSidebar","error","errorTitle","onUpgradeClick","isLoading","parentName","versions","rest","showLimit","length","showVersions","showEmpty","showError","versionsTitle","versionUpgradeLink","versionsEmpty","versionMaxEntries","maxVersions"],"mappings":";;;;;;AAAA;;;;;AAMA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,cAAP,MAA2B,mBAA3B;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,SAASC,UAAT,QAA2B,yBAA3B;AACA,OAAOC,WAAP,MAAwB,8CAAxB;AACA,SAASC,iBAAT,QAAkC,oBAAlC;AACA,SAASC,uBAAT,QAAwC,uCAAxC;AAEA,OAAO,wBAAP;AAEA,IAAMC,YAAY,GAAGF,iBAArB;;AAcA,IAAMG,eAAe,GAAG,SAAlBA,eAAkB,OAA4F;AAAA,MAAzFC,KAAyF,QAAzFA,KAAyF;AAAA,MAAlFC,UAAkF,QAAlFA,UAAkF;AAAA,MAAtEC,cAAsE,QAAtEA,cAAsE;AAAA,MAAtDC,SAAsD,QAAtDA,SAAsD;AAAA,MAA3CC,UAA2C,QAA3CA,UAA2C;AAAA,MAA/BC,QAA+B,QAA/BA,QAA+B;AAAA,MAAlBC,IAAkB;;AAChH,MAAMC,SAAS,GAAGF,QAAQ,CAACG,MAAT,IAAmBV,YAArC;AACA,MAAMW,YAAY,GAAG,CAAC,CAACJ,QAAQ,CAACG,MAAhC;AACA,MAAME,SAAS,GAAG,CAACP,SAAD,IAAc,CAACM,YAAf,IAA+B,CAACP,cAAlD;AACA,MAAMS,SAAS,GAAG,CAAC,CAACX,KAApB;AAEA,SACI,oBAAC,cAAD;AACI,IAAA,SAAS,EAAC,cADd;AAEI,4BAAqB,SAFzB;AAGI,0BAAmB,UAHvB;AAII,IAAA,KAAK,EACD,0CACI,oBAAC,UAAD;AAAY,2BAAkB,MAA9B;AAAqC,MAAA,EAAE,aAAMI,UAAN;AAAvC,MADJ,EAEI,oBAAC,gBAAD,EAAsBb,QAAQ,CAACqB,aAA/B,CAFJ;AALR,KAWI,oBAAC,uBAAD;AAAyB,IAAA,SAAS,EAAC,sBAAnC;AAA0D,IAAA,eAAe,EAAC,KAA1E;AAAgF,IAAA,SAAS,EAAET;AAA3F,KACKQ,SAAS,IACN,oBAAC,WAAD;AAAa,IAAA,KAAK,EAAE,oBAAC,gBAAD,EAAsBV,UAAtB;AAApB,KACI,oBAAC,gBAAD,EAAsBD,KAAtB,CADJ,EAEKE,cAAc,IACX,oBAAC,WAAD;AACI,IAAA,OAAO,EAAEA,cADb;AAEI,yBAAkB,4CAFtB;AAGI,IAAA,IAAI,EAAC,QAHT;AAII,IAAA,SAAS,EAAC;AAJd,KAMI,oBAAC,gBAAD,EAAsBX,QAAQ,CAACsB,kBAA/B,CANJ,CAHR,CAFR,EAiBKH,SAAS,IACN;AAAK,IAAA,SAAS,EAAC;AAAf,KACI,oBAAC,gBAAD,EAAsBnB,QAAQ,CAACuB,aAA/B,CADJ,CAlBR,EAuBKL,YAAY,IACT;AAAK,IAAA,SAAS,EAAC;AAAf,KACI,oBAAC,YAAD;AAAc,IAAA,QAAQ,EAAEJ;AAAxB,KAAsCC,IAAtC,EADJ,CAxBR,EA4BKC,SAAS,IACN;AAAK,IAAA,SAAS,EAAC,yBAAf;AAAyC,mBAAY;AAArD,KACI,oBAAC,gBAAD,eACQhB,QAAQ,CAACwB,iBADjB;AAEI,IAAA,MAAM,EAAE;AACJC,MAAAA,WAAW,EAAElB;AADT;AAFZ,KADJ,CA7BR,CAXJ,CADJ;AAqDH,CA3DD;;AA6DA,eAAeC,eAAf","sourcesContent":["/**\n * @flow\n * @file Versions Sidebar component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type { MessageDescriptor } from 'react-intl';\nimport InlineError from '../../../components/inline-error';\nimport messages from './messages';\nimport SidebarContent from '../SidebarContent';\nimport VersionsMenu from './VersionsMenu';\nimport { BackButton } from '../../common/nav-button';\nimport PlainButton from '../../../components/plain-button/PlainButton';\nimport { DEFAULT_FETCH_END } from '../../../constants';\nimport { LoadingIndicatorWrapper } from '../../../components/loading-indicator';\nimport type { BoxItemVersion } from '../../../common/types/core';\nimport './VersionsSidebar.scss';\n\nconst MAX_VERSIONS = DEFAULT_FETCH_END;\n\ntype Props = {\n error?: MessageDescriptor,\n errorTitle?: MessageDescriptor,\n fileId: string,\n isLoading: boolean,\n onUpgradeClick?: () => void,\n parentName: string,\n versionCount: number,\n versionLimit: number,\n versions: Array<BoxItemVersion>,\n};\n\nconst VersionsSidebar = ({ error, errorTitle, onUpgradeClick, isLoading, parentName, versions, ...rest }: Props) => {\n const showLimit = versions.length >= MAX_VERSIONS;\n const showVersions = !!versions.length;\n const showEmpty = !isLoading && !showVersions && !onUpgradeClick;\n const showError = !!error;\n\n return (\n <SidebarContent\n className=\"bcs-Versions\"\n data-resin-component=\"preview\"\n data-resin-feature=\"versions\"\n title={\n <>\n <BackButton data-resin-target=\"back\" to={`/${parentName}`} />\n <FormattedMessage {...messages.versionsTitle} />\n </>\n }\n >\n <LoadingIndicatorWrapper className=\"bcs-Versions-content\" crawlerPosition=\"top\" isLoading={isLoading}>\n {showError && (\n <InlineError title={<FormattedMessage {...errorTitle} />}>\n <FormattedMessage {...error} />\n {onUpgradeClick && (\n <PlainButton\n onClick={onUpgradeClick}\n data-resin-target=\"versioning_error_error_message_upgrade_cta\"\n type=\"button\"\n className=\"bcs-Versions-upgrade\"\n >\n <FormattedMessage {...messages.versionUpgradeLink} />\n </PlainButton>\n )}\n </InlineError>\n )}\n\n {showEmpty && (\n <div className=\"bcs-Versions-empty\">\n <FormattedMessage {...messages.versionsEmpty} />\n </div>\n )}\n\n {showVersions && (\n <div className=\"bcs-Versions-menu\">\n <VersionsMenu versions={versions} {...rest} />\n </div>\n )}\n {showLimit && (\n <div className=\"bcs-Versions-maxEntries\" data-testid=\"max-versions\">\n <FormattedMessage\n {...messages.versionMaxEntries}\n values={{\n maxVersions: MAX_VERSIONS,\n }}\n />\n </div>\n )}\n </LoadingIndicatorWrapper>\n </SidebarContent>\n );\n};\n\nexport default VersionsSidebar;\n"],"file":"VersionsSidebar.js"}
@@ -37,3 +37,8 @@
37
37
  padding-bottom: 20px;
38
38
  }
39
39
  }
40
+
41
+ .btn-plain.bcs-Versions-upgrade {
42
+ color: $bdl-box-blue;
43
+ font-weight: bold;
44
+ }
@@ -54,9 +54,15 @@ import { generatePath, withRouter } from 'react-router-dom';
54
54
  import API from '../../../api';
55
55
  import messages from './messages';
56
56
  import openUrlInsideIframe from '../../../utils/iframe';
57
+ import StaticVersionsSidebar from './StaticVersionSidebar';
57
58
  import VersionsSidebar from './VersionsSidebar';
58
59
  import VersionsSidebarAPI from './VersionsSidebarAPI';
59
60
  import { withAPIContext } from '../../common/api-context';
61
+ var UPSELL_TYPE = {
62
+ STATIC_VERSION_HISTORY: 'STATIC_VERSION_HISTORY',
63
+ STATIC_VERSION_HISTORY_WITH_PICTURE: 'STATIC_VERSION_HISTORY_WITH_PICTURE',
64
+ ERROR_MESSAGE: 'ERROR_MESSAGE'
65
+ };
60
66
 
61
67
  var VersionsSidebarContainer =
62
68
  /*#__PURE__*/
@@ -163,9 +169,13 @@ function (_React$Component) {
163
169
  _this.mergeResponse(data);
164
170
  });
165
171
 
166
- _defineProperty(_assertThisInitialized(_this), "handleFetchError", function () {
172
+ _defineProperty(_assertThisInitialized(_this), "handleFetchError", function (error) {
173
+ var onUpgradeClick = _this.props.onUpgradeClick;
174
+ var shouldShowVersionErrorWithUpsell = !!onUpgradeClick && error.status === 403;
175
+
167
176
  _this.setState({
168
- error: messages.versionFetchError,
177
+ error: shouldShowVersionErrorWithUpsell ? messages.versionNotAvailable : messages.versionFetchError,
178
+ errorTitle: shouldShowVersionErrorWithUpsell ? messages.versionAccessError : messages.versionServerError,
169
179
  isLoading: false,
170
180
  isWatermarked: false,
171
181
  versionCount: 0,
@@ -214,7 +224,7 @@ function (_React$Component) {
214
224
  });
215
225
 
216
226
  _defineProperty(_assertThisInitialized(_this), "fetchData", function () {
217
- _this.api.fetchData().then(_this.handleFetchSuccess).catch(_this.handleFetchError);
227
+ return _this.api.fetchData().then(_this.handleFetchSuccess).catch(_this.handleFetchError);
218
228
  });
219
229
 
220
230
  _defineProperty(_assertThisInitialized(_this), "findVersion", function (versionId) {
@@ -283,17 +293,26 @@ function (_React$Component) {
283
293
  _createClass(VersionsSidebarContainer, [{
284
294
  key: "componentDidMount",
285
295
  value: function componentDidMount() {
296
+ var _this$props3 = this.props,
297
+ onLoad = _this$props3.onLoad,
298
+ versionUpsellExperience = _this$props3.versionUpsellExperience;
286
299
  this.initialize();
287
- this.fetchData();
300
+ this.fetchData().then(function () {
301
+ onLoad({
302
+ component: 'preview',
303
+ feature: 'versions',
304
+ versionUpsellExperience: versionUpsellExperience
305
+ });
306
+ });
288
307
  }
289
308
  }, {
290
309
  key: "componentDidUpdate",
291
310
  value: function componentDidUpdate(_ref5) {
292
311
  var prevFileId = _ref5.fileId,
293
312
  prevVersionId = _ref5.versionId;
294
- var _this$props3 = this.props,
295
- fileId = _this$props3.fileId,
296
- versionId = _this$props3.versionId;
313
+ var _this$props4 = this.props,
314
+ fileId = _this$props4.fileId,
315
+ versionId = _this$props4.versionId;
297
316
 
298
317
  if (fileId !== prevFileId) {
299
318
  this.refresh();
@@ -328,9 +347,20 @@ function (_React$Component) {
328
347
  }, {
329
348
  key: "render",
330
349
  value: function render() {
331
- var _this$props4 = this.props,
332
- fileId = _this$props4.fileId,
333
- parentName = _this$props4.parentName;
350
+ var _this$props5 = this.props,
351
+ fileId = _this$props5.fileId,
352
+ parentName = _this$props5.parentName,
353
+ onUpgradeClick = _this$props5.onUpgradeClick,
354
+ versionUpsellExperience = _this$props5.versionUpsellExperience;
355
+
356
+ if (onUpgradeClick && (versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY || versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY_WITH_PICTURE)) {
357
+ return React.createElement(StaticVersionsSidebar, _extends({
358
+ onUpgradeClick: onUpgradeClick,
359
+ parentName: parentName,
360
+ showUpsellWithPicture: versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY_WITH_PICTURE
361
+ }, this.state));
362
+ }
363
+
334
364
  return React.createElement(VersionsSidebar, _extends({
335
365
  fileId: fileId,
336
366
  onDelete: this.handleActionDelete,
@@ -338,6 +368,7 @@ function (_React$Component) {
338
368
  onPreview: this.handleActionPreview,
339
369
  onPromote: this.handleActionPromote,
340
370
  onRestore: this.handleActionRestore,
371
+ onUpgradeClick: onUpgradeClick,
341
372
  parentName: parentName
342
373
  }, this.state));
343
374
  }
@@ -347,6 +378,7 @@ function (_React$Component) {
347
378
  }(React.Component);
348
379
 
349
380
  _defineProperty(VersionsSidebarContainer, "defaultProps", {
381
+ onLoad: noop,
350
382
  onVersionChange: noop,
351
383
  onVersionDelete: noop,
352
384
  onVersionDownload: noop,
@@ -15,10 +15,11 @@ import type { MessageDescriptor } from 'react-intl';
15
15
  import API from '../../../api';
16
16
  import messages from './messages';
17
17
  import openUrlInsideIframe from '../../../utils/iframe';
18
+ import StaticVersionsSidebar from './StaticVersionSidebar';
18
19
  import VersionsSidebar from './VersionsSidebar';
19
20
  import VersionsSidebarAPI from './VersionsSidebarAPI';
20
21
  import { withAPIContext } from '../../common/api-context';
21
- import type { VersionActionCallback, VersionChangeCallback } from './flowTypes';
22
+ import type { VersionActionCallback, VersionChangeCallback, SidebarLoadCallback } from './flowTypes';
22
23
  import type { BoxItemVersion, BoxItem, FileVersions } from '../../../common/types/core';
23
24
 
24
25
  type Props = {
@@ -27,6 +28,8 @@ type Props = {
27
28
  hasSidebarInitialized?: boolean,
28
29
  history: RouterHistory,
29
30
  match: Match,
31
+ onLoad: SidebarLoadCallback,
32
+ onUpgradeClick?: () => void,
30
33
  onVersionChange: VersionChangeCallback,
31
34
  onVersionDelete: VersionActionCallback,
32
35
  onVersionDownload: VersionActionCallback,
@@ -35,10 +38,18 @@ type Props = {
35
38
  onVersionRestore: VersionActionCallback,
36
39
  parentName: string,
37
40
  versionId?: string,
41
+ versionUpsellExperience: ?string,
42
+ };
43
+
44
+ const UPSELL_TYPE = {
45
+ STATIC_VERSION_HISTORY: 'STATIC_VERSION_HISTORY',
46
+ STATIC_VERSION_HISTORY_WITH_PICTURE: 'STATIC_VERSION_HISTORY_WITH_PICTURE',
47
+ ERROR_MESSAGE: 'ERROR_MESSAGE',
38
48
  };
39
49
 
40
50
  type State = {
41
51
  error?: MessageDescriptor,
52
+ errorTitle?: MessageDescriptor,
42
53
  isLoading: boolean,
43
54
  isWatermarked: boolean,
44
55
  versionCount: number,
@@ -48,6 +59,7 @@ type State = {
48
59
 
49
60
  class VersionsSidebarContainer extends React.Component<Props, State> {
50
61
  static defaultProps = {
62
+ onLoad: noop,
51
63
  onVersionChange: noop,
52
64
  onVersionDelete: noop,
53
65
  onVersionDownload: noop,
@@ -72,8 +84,11 @@ class VersionsSidebarContainer extends React.Component<Props, State> {
72
84
  window: any = window;
73
85
 
74
86
  componentDidMount() {
87
+ const { onLoad, versionUpsellExperience } = this.props;
75
88
  this.initialize();
76
- this.fetchData();
89
+ this.fetchData().then(() => {
90
+ onLoad({ component: 'preview', feature: 'versions', versionUpsellExperience });
91
+ });
77
92
  }
78
93
 
79
94
  componentDidUpdate({ fileId: prevFileId, versionId: prevVersionId }: Props) {
@@ -163,9 +178,13 @@ class VersionsSidebarContainer extends React.Component<Props, State> {
163
178
  this.mergeResponse(data);
164
179
  };
165
180
 
166
- handleFetchError = (): void => {
181
+ handleFetchError = (error: Object): void => {
182
+ const { onUpgradeClick } = this.props;
183
+ const shouldShowVersionErrorWithUpsell = !!onUpgradeClick && error.status === 403;
184
+
167
185
  this.setState({
168
- error: messages.versionFetchError,
186
+ error: shouldShowVersionErrorWithUpsell ? messages.versionNotAvailable : messages.versionFetchError,
187
+ errorTitle: shouldShowVersionErrorWithUpsell ? messages.versionAccessError : messages.versionServerError,
169
188
  isLoading: false,
170
189
  isWatermarked: false,
171
190
  versionCount: 0,
@@ -208,8 +227,8 @@ class VersionsSidebarContainer extends React.Component<Props, State> {
208
227
  this.api = new VersionsSidebarAPI(this.props);
209
228
  };
210
229
 
211
- fetchData = (): void => {
212
- this.api
230
+ fetchData = (): Promise<?[BoxItem, FileVersions]> => {
231
+ return this.api
213
232
  .fetchData()
214
233
  .then(this.handleFetchSuccess)
215
234
  .catch(this.handleFetchError);
@@ -275,7 +294,22 @@ class VersionsSidebarContainer extends React.Component<Props, State> {
275
294
  };
276
295
 
277
296
  render() {
278
- const { fileId, parentName } = this.props;
297
+ const { fileId, parentName, onUpgradeClick, versionUpsellExperience } = this.props;
298
+
299
+ if (
300
+ onUpgradeClick &&
301
+ (versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY ||
302
+ versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY_WITH_PICTURE)
303
+ ) {
304
+ return (
305
+ <StaticVersionsSidebar
306
+ onUpgradeClick={onUpgradeClick}
307
+ parentName={parentName}
308
+ showUpsellWithPicture={versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY_WITH_PICTURE}
309
+ {...this.state}
310
+ />
311
+ );
312
+ }
279
313
 
280
314
  return (
281
315
  <VersionsSidebar
@@ -285,6 +319,7 @@ class VersionsSidebarContainer extends React.Component<Props, State> {
285
319
  onPreview={this.handleActionPreview}
286
320
  onPromote={this.handleActionPromote}
287
321
  onRestore={this.handleActionRestore}
322
+ onUpgradeClick={onUpgradeClick}
288
323
  parentName={parentName}
289
324
  {...this.state}
290
325
  />
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/content-sidebar/versions/VersionsSidebarContainer.js"],"names":["React","flow","getProp","merge","noop","generatePath","withRouter","API","messages","openUrlInsideIframe","VersionsSidebar","VersionsSidebarAPI","withAPIContext","VersionsSidebarContainer","isLoading","isWatermarked","versionCount","Infinity","versionLimit","versions","window","versionId","setState","api","deleteVersion","findVersion","then","fetchVersion","handleDeleteSuccess","props","onVersionDelete","catch","handleActionError","versionActionDeleteError","fetchDownloadUrl","onVersionDownload","versionActionDownloadError","updateVersion","onVersionPreview","promoteVersion","fetchData","handleFetchSuccess","handlePromoteSuccess","onVersionPromote","versionActionPromoteError","restoreVersion","handleRestoreSuccess","onVersionRestore","versionActionRestoreError","message","error","data","selectedVersionId","id","mergeResponse","updateVersionToCurrent","versionFetchError","fileResponse","versionsResponse","version_limit","undefined","versionsWithPermissions","getVersionsAPI","addPermissions","entries","total_count","sortVersions","verifyVersion","file","fileVersion","file_version","handleFetchError","state","find","version","newVersion","newVersionId","map","newVersions","mergeVersions","history","match","push","path","params","getCurrentVersionId","onVersionChange","selectedVersion","currentVersionId","initialize","prevFileId","fileId","prevVersionId","refresh","sort","a","b","Date","parse","created_at","parentName","handleActionDelete","handleActionDownload","handleActionPreview","handleActionPromote","handleActionRestore","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAMA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,KAAP,MAAkB,cAAlB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,SAASC,YAAT,EAAuBC,UAAvB,QAAyC,kBAAzC;AAGA,OAAOC,GAAP,MAAgB,cAAhB;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,mBAAP,MAAgC,uBAAhC;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AACA,OAAOC,kBAAP,MAA+B,sBAA/B;AACA,SAASC,cAAT,QAA+B,0BAA/B;;IA6BMC,wB;;;;;;;;;;;;;;;;;;4DAea;AACXC,MAAAA,SAAS,EAAE,IADA;AAEXC,MAAAA,aAAa,EAAE,KAFJ;AAGXC,MAAAA,YAAY,EAAEC,QAHH;AAIXC,MAAAA,YAAY,EAAED,QAJH;AAKXE,MAAAA,QAAQ,EAAE;AALC,K;;6DAQDC,M;;yEAwBO,UAACC,SAAD,EAAsC;AACvD,YAAKC,QAAL,CAAc;AAAER,QAAAA,SAAS,EAAE;AAAb,OAAd;;AAEA,aAAO,MAAKS,GAAL,CACFC,aADE,CACY,MAAKC,WAAL,CAAiBJ,SAAjB,CADZ,EAEFK,IAFE,CAEG;AAAA,eAAM,MAAKH,GAAL,CAASI,YAAT,CAAsBN,SAAtB,CAAN;AAAA,OAFH,EAGFK,IAHE,CAGG,MAAKE,mBAHR,EAIFF,IAJE,CAIG;AAAA,eAAM,MAAKG,KAAL,CAAWC,eAAX,CAA2BT,SAA3B,CAAN;AAAA,OAJH,EAKFU,KALE,CAKI;AAAA,eAAM,MAAKC,iBAAL,CAAuBxB,QAAQ,CAACyB,wBAAhC,CAAN;AAAA,OALJ,CAAP;AAMH,K;;2EAEsB,UAACZ,SAAD,EAAsC;AACzD,aAAO,MAAKE,GAAL,CACFW,gBADE,CACe,MAAKT,WAAL,CAAiBJ,SAAjB,CADf,EAEFK,IAFE,CAEGjB,mBAFH,EAGFiB,IAHE,CAGG;AAAA,eAAM,MAAKG,KAAL,CAAWM,iBAAX,CAA6Bd,SAA7B,CAAN;AAAA,OAHH,EAIFU,KAJE,CAII;AAAA,eAAM,MAAKC,iBAAL,CAAuBxB,QAAQ,CAAC4B,0BAAhC,CAAN;AAAA,OAJJ,CAAP;AAKH,K;;0EAEqB,UAACf,SAAD,EAA6B;AAC/C,YAAKgB,aAAL,CAAmBhB,SAAnB;;AACA,YAAKQ,KAAL,CAAWS,gBAAX,CAA4BjB,SAA5B;AACH,K;;0EAEqB,UAACA,SAAD,EAAsC;AACxD,YAAKC,QAAL,CAAc;AAAER,QAAAA,SAAS,EAAE;AAAb,OAAd;;AAEA,aAAO,MAAKS,GAAL,CACFgB,cADE,CACa,MAAKd,WAAL,CAAiBJ,SAAjB,CADb,EAEFK,IAFE,CAEG,MAAKH,GAAL,CAASiB,SAFZ,EAGFd,IAHE,CAGG,MAAKe,kBAHR,EAIFf,IAJE,CAIG,MAAKgB,oBAJR,EAKFhB,IALE,CAKG;AAAA,eAAM,MAAKG,KAAL,CAAWc,gBAAX,CAA4BtB,SAA5B,CAAN;AAAA,OALH,EAMFU,KANE,CAMI;AAAA,eAAM,MAAKC,iBAAL,CAAuBxB,QAAQ,CAACoC,yBAAhC,CAAN;AAAA,OANJ,CAAP;AAOH,K;;0EAEqB,UAACvB,SAAD,EAAsC;AACxD,YAAKC,QAAL,CAAc;AAAER,QAAAA,SAAS,EAAE;AAAb,OAAd;;AAEA,aAAO,MAAKS,GAAL,CACFsB,cADE,CACa,MAAKpB,WAAL,CAAiBJ,SAAjB,CADb,EAEFK,IAFE,CAEG;AAAA,eAAM,MAAKH,GAAL,CAASI,YAAT,CAAsBN,SAAtB,CAAN;AAAA,OAFH,EAGFK,IAHE,CAGG,MAAKoB,oBAHR,EAIFpB,IAJE,CAIG;AAAA,eAAM,MAAKG,KAAL,CAAWkB,gBAAX,CAA4B1B,SAA5B,CAAN;AAAA,OAJH,EAKFU,KALE,CAKI;AAAA,eAAM,MAAKC,iBAAL,CAAuBxB,QAAQ,CAACwC,yBAAhC,CAAN;AAAA,OALJ,CAAP;AAMH,K;;wEAEmB,UAACC,OAAD,EAAsC;AACtD,YAAK3B,QAAL,CAAc;AACV4B,QAAAA,KAAK,EAAED,OADG;AAEVnC,QAAAA,SAAS,EAAE;AAFD,OAAd;AAIH,K;;0EAEqB,UAACqC,IAAD,EAAgC;AAAA,UAC/BC,iBAD+B,GACT,MAAKvB,KADI,CAC1CR,SAD0C;AAAA,UAEtCA,SAFsC,GAExB8B,IAFwB,CAE1CE,EAF0C;;AAIlD,YAAKC,aAAL,CAAmBH,IAAnB,EAJkD,CAMlD;;;AACA,UAAI9B,SAAS,KAAK+B,iBAAlB,EAAqC;AACjC,cAAKG,sBAAL;AACH;AACJ,K;;2EAEsB,UAACJ,IAAD,EAAgC;AACnD,YAAKG,aAAL,CAAmBH,IAAnB;AACH,K;;uEAEkB,YAAY;AAC3B,YAAK7B,QAAL,CAAc;AACV4B,QAAAA,KAAK,EAAE1C,QAAQ,CAACgD,iBADN;AAEV1C,QAAAA,SAAS,EAAE,KAFD;AAGVC,QAAAA,aAAa,EAAE,KAHL;AAIVC,QAAAA,YAAY,EAAE,CAJJ;AAKVG,QAAAA,QAAQ,EAAE;AALA,OAAd;AAOH,K;;yEAEoB,gBAA+D;AAAA;AAAA,UAA7DsC,YAA6D;AAAA,UAA/CC,gBAA+C;;AAAA,UACxEnC,GADwE,GAChE,MAAKM,KAD2D,CACxEN,GADwE;AAAA,UAExEoC,aAFwE,GAEtDF,YAFsD,CAExEE,aAFwE;AAGhF,UAAM5C,aAAa,GAAGb,OAAO,CAACuD,YAAD,EAAe,+BAAf,EAAgD,KAAhD,CAA7B;AACA,UAAMvC,YAAY,GAAGyC,aAAa,KAAK,IAAlB,IAA0BA,aAAa,KAAKC,SAA5C,GAAwDD,aAAxD,GAAwE1C,QAA7F;AACA,UAAM4C,uBAAuB,GAAGtC,GAAG,CAACuC,cAAJ,CAAmB,KAAnB,EAA0BC,cAA1B,CAAyCL,gBAAzC,EAA2DD,YAA3D,KAA4E,EAA5G;AALgF,UAM/DtC,QAN+D,GAMvB0C,uBANuB,CAMxEG,OANwE;AAAA,UAMxChD,YANwC,GAMvB6C,uBANuB,CAMrDI,WANqD;;AAQhF,YAAK3C,QAAL,CACI;AACI4B,QAAAA,KAAK,EAAEU,SADX;AAEI9C,QAAAA,SAAS,EAAE,KAFf;AAGIC,QAAAA,aAAa,EAAbA,aAHJ;AAIIC,QAAAA,YAAY,EAAZA,YAJJ;AAKIE,QAAAA,YAAY,EAAZA,YALJ;AAMIC,QAAAA,QAAQ,EAAE,MAAK+C,YAAL,CAAkB/C,QAAlB;AANd,OADJ,EASI,MAAKgD,aATT;;AAYA,aAAO,CAACV,YAAD,EAAeC,gBAAf,CAAP;AACH,K;;2EAEsB,iBAA2C;AAAA;AAAA,UAAzCU,IAAyC;;AAAA,UACxCC,WADwC,GACxBD,IADwB,CACtDE,YADsD;;AAG9D,UAAID,WAAJ,EAAiB;AACb,cAAKhC,aAAL,CAAmBgC,WAAW,CAAChB,EAA/B;AACH;AACJ,K;;iEAEY,YAAY;AACrB,YAAK9B,GAAL,GAAW,IAAIZ,kBAAJ,CAAuB,MAAKkB,KAA5B,CAAX;AACH,K;;gEAEW,YAAY;AACpB,YAAKN,GAAL,CACKiB,SADL,GAEKd,IAFL,CAEU,MAAKe,kBAFf,EAGKV,KAHL,CAGW,MAAKwC,gBAHhB;AAIH,K;;kEAEa,UAAClD,SAAD,EAAyC;AAAA,UAC3CF,QAD2C,GAC9B,MAAKqD,KADyB,CAC3CrD,QAD2C;AAGnD,aAAOA,QAAQ,CAACsD,IAAT,CAAc,UAAAC,OAAO;AAAA,eAAIA,OAAO,CAACrB,EAAR,KAAehC,SAAnB;AAAA,OAArB,CAAP;AACH,K;;0EAEqB,YAAe;AAAA,UACzBF,QADyB,GACZ,MAAKqD,KADO,CACzBrD,QADyB;AAEjC,aAAOA,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAAR,CAAYkC,EAA1B,GAA+B,IAAtC;AACH,K;;oEAEe,UAACsB,UAAD,EAAuD;AAAA,UAC3DxD,QAD2D,GAC9C,MAAKqD,KADyC,CAC3DrD,QAD2D;AAEnE,UAAMyD,YAAY,GAAGD,UAAU,GAAGA,UAAU,CAACtB,EAAd,GAAmB,EAAlD;AACA,aAAOlC,QAAQ,CAAC0D,GAAT,CAAa,UAAAH,OAAO;AAAA,eAAKA,OAAO,CAACrB,EAAR,KAAeuB,YAAf,GAA8BzE,KAAK,mBAAMuE,OAAN,GAAiBC,UAAjB,CAAnC,GAAkED,OAAvE;AAAA,OAApB,CAAP;AACH,K;;oEAEe,UAACvB,IAAD,EAAgC;AAC5C,UAAM2B,WAAW,GAAG,MAAKC,aAAL,CAAmB5B,IAAnB,CAApB;;AAEA,YAAK7B,QAAL,CAAc;AACV4B,QAAAA,KAAK,EAAEU,SADG;AAEV9C,QAAAA,SAAS,EAAE,KAFD;AAGVK,QAAAA,QAAQ,EAAE2D;AAHA,OAAd;AAKH,K;;oEAWe,UAACzD,SAAD,EAA+B;AAAA,wBAChB,MAAKQ,KADW;AAAA,UACnCmD,OADmC,eACnCA,OADmC;AAAA,UAC1BC,KAD0B,eAC1BA,KAD0B;AAE3C,aAAOD,OAAO,CAACE,IAAR,CAAa7E,YAAY,CAAC4E,KAAK,CAACE,IAAP,oBAAkBF,KAAK,CAACG,MAAxB;AAAgC/D,QAAAA,SAAS,EAATA;AAAhC,SAAzB,CAAP;AACH,K;;6EAEwB,YAAY;AACjC,YAAKgB,aAAL,CAAmB,MAAKgD,mBAAL,EAAnB;AACH,K;;oEAEe,YAAM;AAAA,yBACqB,MAAKxD,KAD1B;AAAA,UACVyD,eADU,gBACVA,eADU;AAAA,UACOjE,SADP,gBACOA,SADP;;AAElB,UAAMkE,eAAe,GAAG,MAAK9D,WAAL,CAAiBJ,SAAjB,CAAxB;;AAEA,UAAIkE,eAAJ,EAAqB;AACjBD,QAAAA,eAAe,CAACC,eAAD,EAAkB;AAC7BC,UAAAA,gBAAgB,EAAE,MAAKH,mBAAL,EADW;AAE7B9B,UAAAA,sBAAsB,EAAE,MAAKA;AAFA,SAAlB,CAAf;AAIH,OALD,MAKO;AACH,cAAKA,sBAAL;AACH;AACJ,K;;;;;;;wCAzMmB;AAChB,WAAKkC,UAAL;AACA,WAAKjD,SAAL;AACH;;;8CAE2E;AAAA,UAA/CkD,UAA+C,SAAvDC,MAAuD;AAAA,UAAxBC,aAAwB,SAAnCvE,SAAmC;AAAA,yBAC1C,KAAKQ,KADqC;AAAA,UAChE8D,MADgE,gBAChEA,MADgE;AAAA,UACxDtE,SADwD,gBACxDA,SADwD;;AAGxE,UAAIsE,MAAM,KAAKD,UAAf,EAA2B;AACvB,aAAKG,OAAL;AACH;;AAED,UAAIxE,SAAS,KAAKuE,aAAlB,EAAiC;AAC7B,aAAKzB,aAAL;AACH;AACJ;;;2CAEsB;AACnB;AACA,WAAKtC,KAAL,CAAWyD,eAAX,CAA2B,IAA3B;AACH;;;8BAuJe;AACZ,WAAKG,UAAL;AACA,WAAKnE,QAAL,CAAc;AAAER,QAAAA,SAAS,EAAE;AAAb,OAAd,EAAmC,KAAK0B,SAAxC;AACH;;;mCAE0E;AAAA,UAA9DrB,QAA8D,uEAA3B,EAA2B;AACvE,aAAO,mBAAIA,QAAJ,EAAc2E,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ;AAAA,eAAUC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,UAAb,IAA2BF,IAAI,CAACC,KAAL,CAAWH,CAAC,CAACI,UAAb,CAArC;AAAA,OAAnB,CAAP;AACH;;;6BAyBQ;AAAA,yBAC0B,KAAKtE,KAD/B;AAAA,UACG8D,MADH,gBACGA,MADH;AAAA,UACWS,UADX,gBACWA,UADX;AAGL,aACI,oBAAC,eAAD;AACI,QAAA,MAAM,EAAET,MADZ;AAEI,QAAA,QAAQ,EAAE,KAAKU,kBAFnB;AAGI,QAAA,UAAU,EAAE,KAAKC,oBAHrB;AAII,QAAA,SAAS,EAAE,KAAKC,mBAJpB;AAKI,QAAA,SAAS,EAAE,KAAKC,mBALpB;AAMI,QAAA,SAAS,EAAE,KAAKC,mBANpB;AAOI,QAAA,UAAU,EAAEL;AAPhB,SAQQ,KAAK5B,KARb,EADJ;AAYH;;;;EAnPkCxE,KAAK,CAAC0G,S;;gBAAvC7F,wB,kBACoB;AAClByE,EAAAA,eAAe,EAAElF,IADC;AAElB0B,EAAAA,eAAe,EAAE1B,IAFC;AAGlB+B,EAAAA,iBAAiB,EAAE/B,IAHD;AAIlBkC,EAAAA,gBAAgB,EAAElC,IAJA;AAKlBuC,EAAAA,gBAAgB,EAAEvC,IALA;AAMlB2C,EAAAA,gBAAgB,EAAE3C,IANA;AAOlBgG,EAAAA,UAAU,EAAE;AAPM,C;;AAsP1B,eAAenG,IAAI,CAAC,CAACK,UAAD,EAAaM,cAAb,CAAD,CAAJ,CAAmCC,wBAAnC,CAAf","sourcesContent":["/**\n * @flow\n * @file Versions Sidebar container\n * @author Box\n */\n\nimport React from 'react';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport merge from 'lodash/merge';\nimport noop from 'lodash/noop';\nimport { generatePath, withRouter } from 'react-router-dom';\nimport type { Match, RouterHistory } from 'react-router-dom';\nimport type { MessageDescriptor } from 'react-intl';\nimport API from '../../../api';\nimport messages from './messages';\nimport openUrlInsideIframe from '../../../utils/iframe';\nimport VersionsSidebar from './VersionsSidebar';\nimport VersionsSidebarAPI from './VersionsSidebarAPI';\nimport { withAPIContext } from '../../common/api-context';\nimport type { VersionActionCallback, VersionChangeCallback } from './flowTypes';\nimport type { BoxItemVersion, BoxItem, FileVersions } from '../../../common/types/core';\n\ntype Props = {\n api: API,\n fileId: string,\n hasSidebarInitialized?: boolean,\n history: RouterHistory,\n match: Match,\n onVersionChange: VersionChangeCallback,\n onVersionDelete: VersionActionCallback,\n onVersionDownload: VersionActionCallback,\n onVersionPreview: VersionActionCallback,\n onVersionPromote: VersionActionCallback,\n onVersionRestore: VersionActionCallback,\n parentName: string,\n versionId?: string,\n};\n\ntype State = {\n error?: MessageDescriptor,\n isLoading: boolean,\n isWatermarked: boolean,\n versionCount: number,\n versionLimit: number,\n versions: Array<BoxItemVersion>,\n};\n\nclass VersionsSidebarContainer extends React.Component<Props, State> {\n static defaultProps = {\n onVersionChange: noop,\n onVersionDelete: noop,\n onVersionDownload: noop,\n onVersionPreview: noop,\n onVersionPromote: noop,\n onVersionRestore: noop,\n parentName: '',\n };\n\n api: VersionsSidebarAPI;\n\n props: Props;\n\n state: State = {\n isLoading: true,\n isWatermarked: false,\n versionCount: Infinity,\n versionLimit: Infinity,\n versions: [],\n };\n\n window: any = window;\n\n componentDidMount() {\n this.initialize();\n this.fetchData();\n }\n\n componentDidUpdate({ fileId: prevFileId, versionId: prevVersionId }: Props) {\n const { fileId, versionId } = this.props;\n\n if (fileId !== prevFileId) {\n this.refresh();\n }\n\n if (versionId !== prevVersionId) {\n this.verifyVersion();\n }\n }\n\n componentWillUnmount() {\n // Reset the current version id since the wrapping route is no longer active\n this.props.onVersionChange(null);\n }\n\n handleActionDelete = (versionId: string): Promise<void> => {\n this.setState({ isLoading: true });\n\n return this.api\n .deleteVersion(this.findVersion(versionId))\n .then(() => this.api.fetchVersion(versionId))\n .then(this.handleDeleteSuccess)\n .then(() => this.props.onVersionDelete(versionId))\n .catch(() => this.handleActionError(messages.versionActionDeleteError));\n };\n\n handleActionDownload = (versionId: string): Promise<void> => {\n return this.api\n .fetchDownloadUrl(this.findVersion(versionId))\n .then(openUrlInsideIframe)\n .then(() => this.props.onVersionDownload(versionId))\n .catch(() => this.handleActionError(messages.versionActionDownloadError));\n };\n\n handleActionPreview = (versionId: string): void => {\n this.updateVersion(versionId);\n this.props.onVersionPreview(versionId);\n };\n\n handleActionPromote = (versionId: string): Promise<void> => {\n this.setState({ isLoading: true });\n\n return this.api\n .promoteVersion(this.findVersion(versionId))\n .then(this.api.fetchData)\n .then(this.handleFetchSuccess)\n .then(this.handlePromoteSuccess)\n .then(() => this.props.onVersionPromote(versionId))\n .catch(() => this.handleActionError(messages.versionActionPromoteError));\n };\n\n handleActionRestore = (versionId: string): Promise<void> => {\n this.setState({ isLoading: true });\n\n return this.api\n .restoreVersion(this.findVersion(versionId))\n .then(() => this.api.fetchVersion(versionId))\n .then(this.handleRestoreSuccess)\n .then(() => this.props.onVersionRestore(versionId))\n .catch(() => this.handleActionError(messages.versionActionRestoreError));\n };\n\n handleActionError = (message: MessageDescriptor): void => {\n this.setState({\n error: message,\n isLoading: false,\n });\n };\n\n handleDeleteSuccess = (data: BoxItemVersion): void => {\n const { versionId: selectedVersionId } = this.props;\n const { id: versionId } = data;\n\n this.mergeResponse(data);\n\n // Bump the user to the current version if they deleted their selected version\n if (versionId === selectedVersionId) {\n this.updateVersionToCurrent();\n }\n };\n\n handleRestoreSuccess = (data: BoxItemVersion): void => {\n this.mergeResponse(data);\n };\n\n handleFetchError = (): void => {\n this.setState({\n error: messages.versionFetchError,\n isLoading: false,\n isWatermarked: false,\n versionCount: 0,\n versions: [],\n });\n };\n\n handleFetchSuccess = ([fileResponse, versionsResponse]): [BoxItem, FileVersions] => {\n const { api } = this.props;\n const { version_limit } = fileResponse;\n const isWatermarked = getProp(fileResponse, 'watermark_info.is_watermarked', false);\n const versionLimit = version_limit !== null && version_limit !== undefined ? version_limit : Infinity;\n const versionsWithPermissions = api.getVersionsAPI(false).addPermissions(versionsResponse, fileResponse) || {};\n const { entries: versions, total_count: versionCount } = versionsWithPermissions;\n\n this.setState(\n {\n error: undefined,\n isLoading: false,\n isWatermarked,\n versionCount,\n versionLimit,\n versions: this.sortVersions(versions),\n },\n this.verifyVersion,\n );\n\n return [fileResponse, versionsResponse];\n };\n\n handlePromoteSuccess = ([file]: [BoxItem, FileVersions]): void => {\n const { file_version: fileVersion } = file;\n\n if (fileVersion) {\n this.updateVersion(fileVersion.id);\n }\n };\n\n initialize = (): void => {\n this.api = new VersionsSidebarAPI(this.props);\n };\n\n fetchData = (): void => {\n this.api\n .fetchData()\n .then(this.handleFetchSuccess)\n .catch(this.handleFetchError);\n };\n\n findVersion = (versionId: ?string): ?BoxItemVersion => {\n const { versions } = this.state;\n\n return versions.find(version => version.id === versionId);\n };\n\n getCurrentVersionId = (): ?string => {\n const { versions } = this.state;\n return versions[0] ? versions[0].id : null;\n };\n\n mergeVersions = (newVersion: BoxItemVersion): Array<BoxItemVersion> => {\n const { versions } = this.state;\n const newVersionId = newVersion ? newVersion.id : '';\n return versions.map(version => (version.id === newVersionId ? merge({ ...version }, newVersion) : version));\n };\n\n mergeResponse = (data: BoxItemVersion): void => {\n const newVersions = this.mergeVersions(data);\n\n this.setState({\n error: undefined,\n isLoading: false,\n versions: newVersions,\n });\n };\n\n refresh(): void {\n this.initialize();\n this.setState({ isLoading: true }, this.fetchData);\n }\n\n sortVersions(versions?: Array<BoxItemVersion> = []): Array<BoxItemVersion> {\n return [...versions].sort((a, b) => Date.parse(b.created_at) - Date.parse(a.created_at));\n }\n\n updateVersion = (versionId?: ?string): void => {\n const { history, match } = this.props;\n return history.push(generatePath(match.path, { ...match.params, versionId }));\n };\n\n updateVersionToCurrent = (): void => {\n this.updateVersion(this.getCurrentVersionId());\n };\n\n verifyVersion = () => {\n const { onVersionChange, versionId } = this.props;\n const selectedVersion = this.findVersion(versionId);\n\n if (selectedVersion) {\n onVersionChange(selectedVersion, {\n currentVersionId: this.getCurrentVersionId(),\n updateVersionToCurrent: this.updateVersionToCurrent,\n });\n } else {\n this.updateVersionToCurrent();\n }\n };\n\n render() {\n const { fileId, parentName } = this.props;\n\n return (\n <VersionsSidebar\n fileId={fileId}\n onDelete={this.handleActionDelete}\n onDownload={this.handleActionDownload}\n onPreview={this.handleActionPreview}\n onPromote={this.handleActionPromote}\n onRestore={this.handleActionRestore}\n parentName={parentName}\n {...this.state}\n />\n );\n }\n}\n\nexport type VersionsSidebarProps = Props;\nexport default flow([withRouter, withAPIContext])(VersionsSidebarContainer);\n"],"file":"VersionsSidebarContainer.js"}
1
+ {"version":3,"sources":["../../../../src/elements/content-sidebar/versions/VersionsSidebarContainer.js"],"names":["React","flow","getProp","merge","noop","generatePath","withRouter","API","messages","openUrlInsideIframe","StaticVersionsSidebar","VersionsSidebar","VersionsSidebarAPI","withAPIContext","UPSELL_TYPE","STATIC_VERSION_HISTORY","STATIC_VERSION_HISTORY_WITH_PICTURE","ERROR_MESSAGE","VersionsSidebarContainer","isLoading","isWatermarked","versionCount","Infinity","versionLimit","versions","window","versionId","setState","api","deleteVersion","findVersion","then","fetchVersion","handleDeleteSuccess","props","onVersionDelete","catch","handleActionError","versionActionDeleteError","fetchDownloadUrl","onVersionDownload","versionActionDownloadError","updateVersion","onVersionPreview","promoteVersion","fetchData","handleFetchSuccess","handlePromoteSuccess","onVersionPromote","versionActionPromoteError","restoreVersion","handleRestoreSuccess","onVersionRestore","versionActionRestoreError","message","error","data","selectedVersionId","id","mergeResponse","updateVersionToCurrent","onUpgradeClick","shouldShowVersionErrorWithUpsell","status","versionNotAvailable","versionFetchError","errorTitle","versionAccessError","versionServerError","fileResponse","versionsResponse","version_limit","undefined","versionsWithPermissions","getVersionsAPI","addPermissions","entries","total_count","sortVersions","verifyVersion","file","fileVersion","file_version","handleFetchError","state","find","version","newVersion","newVersionId","map","newVersions","mergeVersions","history","match","push","path","params","getCurrentVersionId","onVersionChange","selectedVersion","currentVersionId","onLoad","versionUpsellExperience","initialize","component","feature","prevFileId","fileId","prevVersionId","refresh","sort","a","b","Date","parse","created_at","parentName","handleActionDelete","handleActionDownload","handleActionPreview","handleActionPromote","handleActionRestore","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Versions Sidebar container\n * @author Box\n */\n\nimport React from 'react';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport merge from 'lodash/merge';\nimport noop from 'lodash/noop';\nimport { generatePath, withRouter } from 'react-router-dom';\nimport type { Match, RouterHistory } from 'react-router-dom';\nimport type { MessageDescriptor } from 'react-intl';\nimport API from '../../../api';\nimport messages from './messages';\nimport openUrlInsideIframe from '../../../utils/iframe';\nimport StaticVersionsSidebar from './StaticVersionSidebar';\nimport VersionsSidebar from './VersionsSidebar';\nimport VersionsSidebarAPI from './VersionsSidebarAPI';\nimport { withAPIContext } from '../../common/api-context';\nimport type { VersionActionCallback, VersionChangeCallback, SidebarLoadCallback } from './flowTypes';\nimport type { BoxItemVersion, BoxItem, FileVersions } from '../../../common/types/core';\n\ntype Props = {\n api: API,\n fileId: string,\n hasSidebarInitialized?: boolean,\n history: RouterHistory,\n match: Match,\n onLoad: SidebarLoadCallback,\n onUpgradeClick?: () => void,\n onVersionChange: VersionChangeCallback,\n onVersionDelete: VersionActionCallback,\n onVersionDownload: VersionActionCallback,\n onVersionPreview: VersionActionCallback,\n onVersionPromote: VersionActionCallback,\n onVersionRestore: VersionActionCallback,\n parentName: string,\n versionId?: string,\n versionUpsellExperience: ?string,\n};\n\nconst UPSELL_TYPE = {\n STATIC_VERSION_HISTORY: 'STATIC_VERSION_HISTORY',\n STATIC_VERSION_HISTORY_WITH_PICTURE: 'STATIC_VERSION_HISTORY_WITH_PICTURE',\n ERROR_MESSAGE: 'ERROR_MESSAGE',\n};\n\ntype State = {\n error?: MessageDescriptor,\n errorTitle?: MessageDescriptor,\n isLoading: boolean,\n isWatermarked: boolean,\n versionCount: number,\n versionLimit: number,\n versions: Array<BoxItemVersion>,\n};\n\nclass VersionsSidebarContainer extends React.Component<Props, State> {\n static defaultProps = {\n onLoad: noop,\n onVersionChange: noop,\n onVersionDelete: noop,\n onVersionDownload: noop,\n onVersionPreview: noop,\n onVersionPromote: noop,\n onVersionRestore: noop,\n parentName: '',\n };\n\n api: VersionsSidebarAPI;\n\n props: Props;\n\n state: State = {\n isLoading: true,\n isWatermarked: false,\n versionCount: Infinity,\n versionLimit: Infinity,\n versions: [],\n };\n\n window: any = window;\n\n componentDidMount() {\n const { onLoad, versionUpsellExperience } = this.props;\n this.initialize();\n this.fetchData().then(() => {\n onLoad({ component: 'preview', feature: 'versions', versionUpsellExperience });\n });\n }\n\n componentDidUpdate({ fileId: prevFileId, versionId: prevVersionId }: Props) {\n const { fileId, versionId } = this.props;\n\n if (fileId !== prevFileId) {\n this.refresh();\n }\n\n if (versionId !== prevVersionId) {\n this.verifyVersion();\n }\n }\n\n componentWillUnmount() {\n // Reset the current version id since the wrapping route is no longer active\n this.props.onVersionChange(null);\n }\n\n handleActionDelete = (versionId: string): Promise<void> => {\n this.setState({ isLoading: true });\n\n return this.api\n .deleteVersion(this.findVersion(versionId))\n .then(() => this.api.fetchVersion(versionId))\n .then(this.handleDeleteSuccess)\n .then(() => this.props.onVersionDelete(versionId))\n .catch(() => this.handleActionError(messages.versionActionDeleteError));\n };\n\n handleActionDownload = (versionId: string): Promise<void> => {\n return this.api\n .fetchDownloadUrl(this.findVersion(versionId))\n .then(openUrlInsideIframe)\n .then(() => this.props.onVersionDownload(versionId))\n .catch(() => this.handleActionError(messages.versionActionDownloadError));\n };\n\n handleActionPreview = (versionId: string): void => {\n this.updateVersion(versionId);\n this.props.onVersionPreview(versionId);\n };\n\n handleActionPromote = (versionId: string): Promise<void> => {\n this.setState({ isLoading: true });\n\n return this.api\n .promoteVersion(this.findVersion(versionId))\n .then(this.api.fetchData)\n .then(this.handleFetchSuccess)\n .then(this.handlePromoteSuccess)\n .then(() => this.props.onVersionPromote(versionId))\n .catch(() => this.handleActionError(messages.versionActionPromoteError));\n };\n\n handleActionRestore = (versionId: string): Promise<void> => {\n this.setState({ isLoading: true });\n\n return this.api\n .restoreVersion(this.findVersion(versionId))\n .then(() => this.api.fetchVersion(versionId))\n .then(this.handleRestoreSuccess)\n .then(() => this.props.onVersionRestore(versionId))\n .catch(() => this.handleActionError(messages.versionActionRestoreError));\n };\n\n handleActionError = (message: MessageDescriptor): void => {\n this.setState({\n error: message,\n isLoading: false,\n });\n };\n\n handleDeleteSuccess = (data: BoxItemVersion): void => {\n const { versionId: selectedVersionId } = this.props;\n const { id: versionId } = data;\n\n this.mergeResponse(data);\n\n // Bump the user to the current version if they deleted their selected version\n if (versionId === selectedVersionId) {\n this.updateVersionToCurrent();\n }\n };\n\n handleRestoreSuccess = (data: BoxItemVersion): void => {\n this.mergeResponse(data);\n };\n\n handleFetchError = (error: Object): void => {\n const { onUpgradeClick } = this.props;\n const shouldShowVersionErrorWithUpsell = !!onUpgradeClick && error.status === 403;\n\n this.setState({\n error: shouldShowVersionErrorWithUpsell ? messages.versionNotAvailable : messages.versionFetchError,\n errorTitle: shouldShowVersionErrorWithUpsell ? messages.versionAccessError : messages.versionServerError,\n isLoading: false,\n isWatermarked: false,\n versionCount: 0,\n versions: [],\n });\n };\n\n handleFetchSuccess = ([fileResponse, versionsResponse]): [BoxItem, FileVersions] => {\n const { api } = this.props;\n const { version_limit } = fileResponse;\n const isWatermarked = getProp(fileResponse, 'watermark_info.is_watermarked', false);\n const versionLimit = version_limit !== null && version_limit !== undefined ? version_limit : Infinity;\n const versionsWithPermissions = api.getVersionsAPI(false).addPermissions(versionsResponse, fileResponse) || {};\n const { entries: versions, total_count: versionCount } = versionsWithPermissions;\n\n this.setState(\n {\n error: undefined,\n isLoading: false,\n isWatermarked,\n versionCount,\n versionLimit,\n versions: this.sortVersions(versions),\n },\n this.verifyVersion,\n );\n\n return [fileResponse, versionsResponse];\n };\n\n handlePromoteSuccess = ([file]: [BoxItem, FileVersions]): void => {\n const { file_version: fileVersion } = file;\n\n if (fileVersion) {\n this.updateVersion(fileVersion.id);\n }\n };\n\n initialize = (): void => {\n this.api = new VersionsSidebarAPI(this.props);\n };\n\n fetchData = (): Promise<?[BoxItem, FileVersions]> => {\n return this.api\n .fetchData()\n .then(this.handleFetchSuccess)\n .catch(this.handleFetchError);\n };\n\n findVersion = (versionId: ?string): ?BoxItemVersion => {\n const { versions } = this.state;\n\n return versions.find(version => version.id === versionId);\n };\n\n getCurrentVersionId = (): ?string => {\n const { versions } = this.state;\n return versions[0] ? versions[0].id : null;\n };\n\n mergeVersions = (newVersion: BoxItemVersion): Array<BoxItemVersion> => {\n const { versions } = this.state;\n const newVersionId = newVersion ? newVersion.id : '';\n return versions.map(version => (version.id === newVersionId ? merge({ ...version }, newVersion) : version));\n };\n\n mergeResponse = (data: BoxItemVersion): void => {\n const newVersions = this.mergeVersions(data);\n\n this.setState({\n error: undefined,\n isLoading: false,\n versions: newVersions,\n });\n };\n\n refresh(): void {\n this.initialize();\n this.setState({ isLoading: true }, this.fetchData);\n }\n\n sortVersions(versions?: Array<BoxItemVersion> = []): Array<BoxItemVersion> {\n return [...versions].sort((a, b) => Date.parse(b.created_at) - Date.parse(a.created_at));\n }\n\n updateVersion = (versionId?: ?string): void => {\n const { history, match } = this.props;\n return history.push(generatePath(match.path, { ...match.params, versionId }));\n };\n\n updateVersionToCurrent = (): void => {\n this.updateVersion(this.getCurrentVersionId());\n };\n\n verifyVersion = () => {\n const { onVersionChange, versionId } = this.props;\n const selectedVersion = this.findVersion(versionId);\n\n if (selectedVersion) {\n onVersionChange(selectedVersion, {\n currentVersionId: this.getCurrentVersionId(),\n updateVersionToCurrent: this.updateVersionToCurrent,\n });\n } else {\n this.updateVersionToCurrent();\n }\n };\n\n render() {\n const { fileId, parentName, onUpgradeClick, versionUpsellExperience } = this.props;\n\n if (\n onUpgradeClick &&\n (versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY ||\n versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY_WITH_PICTURE)\n ) {\n return (\n <StaticVersionsSidebar\n onUpgradeClick={onUpgradeClick}\n parentName={parentName}\n showUpsellWithPicture={versionUpsellExperience === UPSELL_TYPE.STATIC_VERSION_HISTORY_WITH_PICTURE}\n {...this.state}\n />\n );\n }\n\n return (\n <VersionsSidebar\n fileId={fileId}\n onDelete={this.handleActionDelete}\n onDownload={this.handleActionDownload}\n onPreview={this.handleActionPreview}\n onPromote={this.handleActionPromote}\n onRestore={this.handleActionRestore}\n onUpgradeClick={onUpgradeClick}\n parentName={parentName}\n {...this.state}\n />\n );\n }\n}\n\nexport type VersionsSidebarProps = Props;\nexport default flow([withRouter, withAPIContext])(VersionsSidebarContainer);\n"],"file":"VersionsSidebarContainer.js"}
@@ -4,3 +4,4 @@ import type { BoxItemVersion } from '../../../common/types/core';
4
4
 
5
5
  export type VersionActionCallback = (versionId: string) => void;
6
6
  export type VersionChangeCallback = (version: ?BoxItemVersion, additionalVersionInfo: ?AdditionalVersionInfo) => void;
7
+ export type SidebarLoadCallback = (data: Object) => void;
@@ -84,6 +84,10 @@ var messages = defineMessages({
84
84
  "id": "be.sidebarVersions.fetchError",
85
85
  "defaultMessage": "File versions could not be retrieved."
86
86
  },
87
+ versionNotAvailable: {
88
+ "id": "be.sidebarVersions.notAvailable",
89
+ "defaultMessage": "Sorry, version history is not available with your current account plan. To access versioning, select from one of our paid plans."
90
+ },
87
91
  versionLimitExceeded: {
88
92
  "id": "be.sidebarVersions.versionLimitExceeded",
89
93
  "defaultMessage": "You are limited to the last {versionLimit, number} {versionLimit, plural, one {version} other {versions}}."
@@ -108,6 +112,14 @@ var messages = defineMessages({
108
112
  "id": "be.sidebarVersions.serverError",
109
113
  "defaultMessage": "Server Error"
110
114
  },
115
+ versionAccessError: {
116
+ "id": "be.sidebarVersions.accessError",
117
+ "defaultMessage": "You don't have access to versioning"
118
+ },
119
+ versionUpgradeLink: {
120
+ "id": "be.sidebarVersions.upgradeLink",
121
+ "defaultMessage": "Upgrade Now"
122
+ },
111
123
  versionUploadedBy: {
112
124
  "id": "be.sidebarVersions.uploadedBy",
113
125
  "defaultMessage": "Uploaded by {name}"
@@ -131,6 +143,14 @@ var messages = defineMessages({
131
143
  versionRetentionRemove: {
132
144
  "id": "be.sidebarVersions.versionRetentionRemove",
133
145
  "defaultMessage": "Retention policy expires on {time}."
146
+ },
147
+ versionUpsell: {
148
+ "id": "be.sidebarVersions.versionUpsell",
149
+ "defaultMessage": "Sorry, version history is not available with your current account plan. To access versioning, select from one of our paid plans."
150
+ },
151
+ upgradeButton: {
152
+ "id": "be.sidebarVersions.upgradeButton",
153
+ "defaultMessage": "Upgrade"
134
154
  }
135
155
  });
136
156
  export default messages;
@@ -109,6 +109,13 @@ const messages = defineMessages({
109
109
  defaultMessage: 'File versions could not be retrieved.',
110
110
  description: 'Error message for the versions fetch call.',
111
111
  },
112
+ versionNotAvailable: {
113
+ id: 'be.sidebarVersions.notAvailable',
114
+ defaultMessage:
115
+ 'Sorry, version history is not available with your current account plan. To access versioning, select from one of our paid plans.',
116
+ description:
117
+ 'Error message with upsell for the versions fetch call for users who dont have the version feature.',
118
+ },
112
119
  versionLimitExceeded: {
113
120
  id: 'be.sidebarVersions.versionLimitExceeded',
114
121
  defaultMessage:
@@ -140,6 +147,16 @@ const messages = defineMessages({
140
147
  defaultMessage: 'Server Error',
141
148
  description: 'Heading for inline error messages displayed due to a remote server issue.',
142
149
  },
150
+ versionAccessError: {
151
+ id: 'be.sidebarVersions.accessError',
152
+ defaultMessage: "You don't have access to versioning",
153
+ description: 'Heading for inline error messages with upsell.',
154
+ },
155
+ versionUpgradeLink: {
156
+ id: 'be.sidebarVersions.upgradeLink',
157
+ defaultMessage: 'Upgrade Now',
158
+ description: 'Text on the upgrade button shown when user does not have access to Version History',
159
+ },
143
160
  versionUploadedBy: {
144
161
  id: 'be.sidebarVersions.uploadedBy',
145
162
  defaultMessage: 'Uploaded by {name}',
@@ -170,6 +187,17 @@ const messages = defineMessages({
170
187
  defaultMessage: 'Retention policy expires on {time}.',
171
188
  description: 'Message describing when the version retention policy will expire.',
172
189
  },
190
+ versionUpsell: {
191
+ defaultMessage:
192
+ 'Sorry, version history is not available with your current account plan. To access versioning, select from one of our paid plans.',
193
+ description: 'Upgrade message shown when user does not have access to Version History',
194
+ id: 'be.sidebarVersions.versionUpsell',
195
+ },
196
+ upgradeButton: {
197
+ defaultMessage: 'Upgrade',
198
+ description: 'Text on the upgrade button shown when user does not have access to Version History',
199
+ id: 'be.sidebarVersions.upgradeButton',
200
+ },
173
201
  });
174
202
 
175
203
  export default messages;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/content-sidebar/versions/messages.js"],"names":["defineMessages","messages","fileRequestDisplayName","versionsEmpty","versionsPriorWeek","versionsThisMonth","versionsToday","versionsYesterday","versionsTitle","versionCurrent","versionActionDelete","versionActionDeleteError","versionActionDisabledRetention","versionActionDownload","versionActionDownloadError","versionActionPreview","versionActionPromote","versionActionPromoteError","versionActionRestore","versionActionRestoreError","versionActionToggle","versionDeletedBy","versionFetchError","versionLimitExceeded","versionNumberBadge","versionNumberLabel","versionPromotedBy","versionRestoredBy","versionServerError","versionUploadedBy","versionUserUnknown","versionMaxEntries","versionRetentionDelete","versionRetentionIndefinite","versionRetentionRemove"],"mappings":"AAEA,SAASA,cAAT,QAA+B,YAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC5BE,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GADM;AAO5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAPe;AAY5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAZW;AAiB5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAjBW;AAsB5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAtBe;AA2B5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GA3BW;AAgC5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAhCe;AAqC5BC,EAAAA,cAAc;AAAA;AAAA;AAAA,GArCc;AA0C5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GA1CS;AA+C5BC,EAAAA,wBAAwB;AAAA;AAAA;AAAA,GA/CI;AAoD5BC,EAAAA,8BAA8B;AAAA;AAAA;AAAA,GApDF;AAyD5BC,EAAAA,qBAAqB;AAAA;AAAA;AAAA,GAzDO;AA8D5BC,EAAAA,0BAA0B;AAAA;AAAA;AAAA,GA9DE;AAmE5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAnEQ;AAwE5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAxEQ;AA6E5BC,EAAAA,yBAAyB;AAAA;AAAA;AAAA,GA7EG;AAkF5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAlFQ;AAuF5BC,EAAAA,yBAAyB;AAAA;AAAA;AAAA,GAvFG;AA4F5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GA5FS;AAiG5BC,EAAAA,gBAAgB;AAAA;AAAA;AAAA,GAjGY;AAsG5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAtGW;AA2G5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GA3GQ;AAiH5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GAjHU;AAsH5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GAtHU;AA2H5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GA3HW;AAgI5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAhIW;AAqI5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GArIU;AA0I5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GA1IW;AA+I5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GA/IU;AAoJ5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GApJW;AAyJ5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GAzJM;AA8J5BC,EAAAA,0BAA0B;AAAA;AAAA;AAAA,GA9JE;AAmK5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA;AAnKM,CAAD,CAA/B;AA0KA,eAAejC,QAAf","sourcesContent":["// @flow strict\n\nimport { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n fileRequestDisplayName: {\n defaultMessage: 'File Request',\n description:\n 'name of the File Request feature used to translate when a File Request is uploaded by the service',\n id: 'be.sidebarVersions.fileRequestDisplayName',\n },\n versionsEmpty: {\n id: 'be.sidebarVersions.empty',\n description: 'Message to display when no versions are available',\n defaultMessage: 'No prior versions are available for this file.',\n },\n versionsPriorWeek: {\n id: 'be.sidebarVersions.priorWeek',\n description: 'Header to display for group of versions created in the prior week',\n defaultMessage: 'Last Week',\n },\n versionsThisMonth: {\n id: 'be.sidebarVersions.thisMonth',\n description: 'Header to display for group of versions created in the current month',\n defaultMessage: 'This Month',\n },\n versionsToday: {\n id: 'be.sidebarVersions.today',\n description: 'Header to display for group of versions created yesterday',\n defaultMessage: 'Today',\n },\n versionsYesterday: {\n id: 'be.sidebarVersions.yesterday',\n description: 'Header to display for group of versions created today',\n defaultMessage: 'Yesterday',\n },\n versionsTitle: {\n id: 'be.sidebarVersions.title',\n description: 'Title for the preview versions sidebar',\n defaultMessage: 'Version History',\n },\n versionCurrent: {\n id: 'be.sidebarVersions.current',\n defaultMessage: 'Current Version',\n description: 'Label for the current version item in the version history list.',\n },\n versionActionDelete: {\n id: 'be.sidebarVersions.delete',\n defaultMessage: 'Delete',\n description: 'Label for the version delete action.',\n },\n versionActionDeleteError: {\n id: 'be.sidebarVersions.deleteError',\n defaultMessage: 'File version could not be deleted.',\n description: 'Error message for the version delete action.',\n },\n versionActionDisabledRetention: {\n id: 'be.sidebarVersions.disabledByRetention',\n defaultMessage: 'Disabled by retention policy',\n description: 'Tooltip message for actions disabled by retention policy.',\n },\n versionActionDownload: {\n id: 'be.sidebarVersions.download',\n defaultMessage: 'Download',\n description: 'Label for the version download action.',\n },\n versionActionDownloadError: {\n id: 'be.sidebarVersions.downloadError',\n defaultMessage: 'File version could not be downloaded.',\n description: 'Error message for the version download action.',\n },\n versionActionPreview: {\n id: 'be.sidebarVersions.preview',\n defaultMessage: 'Preview',\n description: 'Label for the version preview action.',\n },\n versionActionPromote: {\n id: 'be.sidebarVersions.promote',\n defaultMessage: 'Make Current',\n description: 'Label for the version promote action.',\n },\n versionActionPromoteError: {\n id: 'be.sidebarVersions.promoteError',\n defaultMessage: 'File version could not be made current.',\n description: 'Error message for the version promote action.',\n },\n versionActionRestore: {\n id: 'be.sidebarVersions.restore',\n defaultMessage: 'Restore',\n description: 'Label for the version restore action.',\n },\n versionActionRestoreError: {\n id: 'be.sidebarVersions.restoreError',\n defaultMessage: 'File version could not be restored.',\n description: 'Error message for the version restored action.',\n },\n versionActionToggle: {\n id: 'be.sidebarVersions.toggle',\n defaultMessage: 'Toggle Actions Menu',\n description: 'Label for the version actions dropdown menu toggle button.',\n },\n versionDeletedBy: {\n id: 'be.sidebarVersions.deletedBy',\n defaultMessage: 'Deleted by {name}',\n description: 'Message displayed for a deleted version. {name} is the user who performed the action.',\n },\n versionFetchError: {\n id: 'be.sidebarVersions.fetchError',\n defaultMessage: 'File versions could not be retrieved.',\n description: 'Error message for the versions fetch call.',\n },\n versionLimitExceeded: {\n id: 'be.sidebarVersions.versionLimitExceeded',\n defaultMessage:\n 'You are limited to the last {versionLimit, number} {versionLimit, plural, one {version} other {versions}}.',\n description: \"Text displayed if a version exceeds the user's maximum allowed version count\",\n },\n versionNumberBadge: {\n id: 'be.sidebarVersions.versionNumberBadge',\n defaultMessage: 'V{versionNumber}',\n description: 'Text to display in the version badge.',\n },\n versionNumberLabel: {\n id: 'be.sidebarVersions.versionNumberLabel',\n defaultMessage: 'Version number {versionNumber}',\n description: 'Label given to the version badge for screen readers.',\n },\n versionPromotedBy: {\n id: 'be.sidebarVersions.promotedBy',\n defaultMessage: 'Promoted from v{versionPromoted} by {name}',\n description: 'Message displayed for a restored version. {name} is the user who performed the action.',\n },\n versionRestoredBy: {\n id: 'be.sidebarVersions.restoredBy',\n defaultMessage: 'Restored by {name}',\n description: 'Message displayed for a restored version. {name} is the user who performed the action.',\n },\n versionServerError: {\n id: 'be.sidebarVersions.serverError',\n defaultMessage: 'Server Error',\n description: 'Heading for inline error messages displayed due to a remote server issue.',\n },\n versionUploadedBy: {\n id: 'be.sidebarVersions.uploadedBy',\n defaultMessage: 'Uploaded by {name}',\n description: 'Message displayed for an uploaded version. {name} is the user who performed the action.',\n },\n versionUserUnknown: {\n id: 'be.sidebarVersions.versionUserUnknown',\n defaultMessage: 'Unknown',\n description: 'Name displayed for unknown or deleted users.',\n },\n versionMaxEntries: {\n id: 'be.sidebarVersions.versionMaxEntries',\n defaultMessage: 'Version history is limited to the last {maxVersions} entries.',\n description: 'Max supported entries for version history',\n },\n versionRetentionDelete: {\n id: 'be.sidebarVersions.versionRetentionDelete',\n defaultMessage: 'Will be deleted {time} by retention policy.',\n description: 'Message describing when the version will be deleted due to an applied retention policy.',\n },\n versionRetentionIndefinite: {\n id: 'be.sidebarVersions.versionRetentionIndefinite',\n defaultMessage: 'Retained indefinitely by retention policy.',\n description: 'Message describing that the version retention policy is indefinite and will not expire.',\n },\n versionRetentionRemove: {\n id: 'be.sidebarVersions.versionRetentionRemove',\n defaultMessage: 'Retention policy expires on {time}.',\n description: 'Message describing when the version retention policy will expire.',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
1
+ {"version":3,"sources":["../../../../src/elements/content-sidebar/versions/messages.js"],"names":["defineMessages","messages","fileRequestDisplayName","versionsEmpty","versionsPriorWeek","versionsThisMonth","versionsToday","versionsYesterday","versionsTitle","versionCurrent","versionActionDelete","versionActionDeleteError","versionActionDisabledRetention","versionActionDownload","versionActionDownloadError","versionActionPreview","versionActionPromote","versionActionPromoteError","versionActionRestore","versionActionRestoreError","versionActionToggle","versionDeletedBy","versionFetchError","versionNotAvailable","versionLimitExceeded","versionNumberBadge","versionNumberLabel","versionPromotedBy","versionRestoredBy","versionServerError","versionAccessError","versionUpgradeLink","versionUploadedBy","versionUserUnknown","versionMaxEntries","versionRetentionDelete","versionRetentionIndefinite","versionRetentionRemove","versionUpsell","upgradeButton"],"mappings":"AAEA,SAASA,cAAT,QAA+B,YAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC5BE,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GADM;AAO5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAPe;AAY5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAZW;AAiB5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAjBW;AAsB5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAtBe;AA2B5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GA3BW;AAgC5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAhCe;AAqC5BC,EAAAA,cAAc;AAAA;AAAA;AAAA,GArCc;AA0C5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GA1CS;AA+C5BC,EAAAA,wBAAwB;AAAA;AAAA;AAAA,GA/CI;AAoD5BC,EAAAA,8BAA8B;AAAA;AAAA;AAAA,GApDF;AAyD5BC,EAAAA,qBAAqB;AAAA;AAAA;AAAA,GAzDO;AA8D5BC,EAAAA,0BAA0B;AAAA;AAAA;AAAA,GA9DE;AAmE5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAnEQ;AAwE5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAxEQ;AA6E5BC,EAAAA,yBAAyB;AAAA;AAAA;AAAA,GA7EG;AAkF5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAlFQ;AAuF5BC,EAAAA,yBAAyB;AAAA;AAAA;AAAA,GAvFG;AA4F5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GA5FS;AAiG5BC,EAAAA,gBAAgB;AAAA;AAAA;AAAA,GAjGY;AAsG5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAtGW;AA2G5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GA3GS;AAkH5BC,EAAAA,oBAAoB;AAAA;AAAA;AAAA,GAlHQ;AAwH5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GAxHU;AA6H5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GA7HU;AAkI5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAlIW;AAuI5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GAvIW;AA4I5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GA5IU;AAiJ5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GAjJU;AAsJ5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GAtJU;AA2J5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GA3JW;AAgK5BC,EAAAA,kBAAkB;AAAA;AAAA;AAAA,GAhKU;AAqK5BC,EAAAA,iBAAiB;AAAA;AAAA;AAAA,GArKW;AA0K5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GA1KM;AA+K5BC,EAAAA,0BAA0B;AAAA;AAAA;AAAA,GA/KE;AAoL5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GApLM;AAyL5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GAzLe;AA+L5BC,EAAAA,aAAa;AAAA;AAAA;AAAA;AA/Le,CAAD,CAA/B;AAsMA,eAAetC,QAAf","sourcesContent":["// @flow strict\n\nimport { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n fileRequestDisplayName: {\n defaultMessage: 'File Request',\n description:\n 'name of the File Request feature used to translate when a File Request is uploaded by the service',\n id: 'be.sidebarVersions.fileRequestDisplayName',\n },\n versionsEmpty: {\n id: 'be.sidebarVersions.empty',\n description: 'Message to display when no versions are available',\n defaultMessage: 'No prior versions are available for this file.',\n },\n versionsPriorWeek: {\n id: 'be.sidebarVersions.priorWeek',\n description: 'Header to display for group of versions created in the prior week',\n defaultMessage: 'Last Week',\n },\n versionsThisMonth: {\n id: 'be.sidebarVersions.thisMonth',\n description: 'Header to display for group of versions created in the current month',\n defaultMessage: 'This Month',\n },\n versionsToday: {\n id: 'be.sidebarVersions.today',\n description: 'Header to display for group of versions created yesterday',\n defaultMessage: 'Today',\n },\n versionsYesterday: {\n id: 'be.sidebarVersions.yesterday',\n description: 'Header to display for group of versions created today',\n defaultMessage: 'Yesterday',\n },\n versionsTitle: {\n id: 'be.sidebarVersions.title',\n description: 'Title for the preview versions sidebar',\n defaultMessage: 'Version History',\n },\n versionCurrent: {\n id: 'be.sidebarVersions.current',\n defaultMessage: 'Current Version',\n description: 'Label for the current version item in the version history list.',\n },\n versionActionDelete: {\n id: 'be.sidebarVersions.delete',\n defaultMessage: 'Delete',\n description: 'Label for the version delete action.',\n },\n versionActionDeleteError: {\n id: 'be.sidebarVersions.deleteError',\n defaultMessage: 'File version could not be deleted.',\n description: 'Error message for the version delete action.',\n },\n versionActionDisabledRetention: {\n id: 'be.sidebarVersions.disabledByRetention',\n defaultMessage: 'Disabled by retention policy',\n description: 'Tooltip message for actions disabled by retention policy.',\n },\n versionActionDownload: {\n id: 'be.sidebarVersions.download',\n defaultMessage: 'Download',\n description: 'Label for the version download action.',\n },\n versionActionDownloadError: {\n id: 'be.sidebarVersions.downloadError',\n defaultMessage: 'File version could not be downloaded.',\n description: 'Error message for the version download action.',\n },\n versionActionPreview: {\n id: 'be.sidebarVersions.preview',\n defaultMessage: 'Preview',\n description: 'Label for the version preview action.',\n },\n versionActionPromote: {\n id: 'be.sidebarVersions.promote',\n defaultMessage: 'Make Current',\n description: 'Label for the version promote action.',\n },\n versionActionPromoteError: {\n id: 'be.sidebarVersions.promoteError',\n defaultMessage: 'File version could not be made current.',\n description: 'Error message for the version promote action.',\n },\n versionActionRestore: {\n id: 'be.sidebarVersions.restore',\n defaultMessage: 'Restore',\n description: 'Label for the version restore action.',\n },\n versionActionRestoreError: {\n id: 'be.sidebarVersions.restoreError',\n defaultMessage: 'File version could not be restored.',\n description: 'Error message for the version restored action.',\n },\n versionActionToggle: {\n id: 'be.sidebarVersions.toggle',\n defaultMessage: 'Toggle Actions Menu',\n description: 'Label for the version actions dropdown menu toggle button.',\n },\n versionDeletedBy: {\n id: 'be.sidebarVersions.deletedBy',\n defaultMessage: 'Deleted by {name}',\n description: 'Message displayed for a deleted version. {name} is the user who performed the action.',\n },\n versionFetchError: {\n id: 'be.sidebarVersions.fetchError',\n defaultMessage: 'File versions could not be retrieved.',\n description: 'Error message for the versions fetch call.',\n },\n versionNotAvailable: {\n id: 'be.sidebarVersions.notAvailable',\n defaultMessage:\n 'Sorry, version history is not available with your current account plan. To access versioning, select from one of our paid plans.',\n description:\n 'Error message with upsell for the versions fetch call for users who dont have the version feature.',\n },\n versionLimitExceeded: {\n id: 'be.sidebarVersions.versionLimitExceeded',\n defaultMessage:\n 'You are limited to the last {versionLimit, number} {versionLimit, plural, one {version} other {versions}}.',\n description: \"Text displayed if a version exceeds the user's maximum allowed version count\",\n },\n versionNumberBadge: {\n id: 'be.sidebarVersions.versionNumberBadge',\n defaultMessage: 'V{versionNumber}',\n description: 'Text to display in the version badge.',\n },\n versionNumberLabel: {\n id: 'be.sidebarVersions.versionNumberLabel',\n defaultMessage: 'Version number {versionNumber}',\n description: 'Label given to the version badge for screen readers.',\n },\n versionPromotedBy: {\n id: 'be.sidebarVersions.promotedBy',\n defaultMessage: 'Promoted from v{versionPromoted} by {name}',\n description: 'Message displayed for a restored version. {name} is the user who performed the action.',\n },\n versionRestoredBy: {\n id: 'be.sidebarVersions.restoredBy',\n defaultMessage: 'Restored by {name}',\n description: 'Message displayed for a restored version. {name} is the user who performed the action.',\n },\n versionServerError: {\n id: 'be.sidebarVersions.serverError',\n defaultMessage: 'Server Error',\n description: 'Heading for inline error messages displayed due to a remote server issue.',\n },\n versionAccessError: {\n id: 'be.sidebarVersions.accessError',\n defaultMessage: \"You don't have access to versioning\",\n description: 'Heading for inline error messages with upsell.',\n },\n versionUpgradeLink: {\n id: 'be.sidebarVersions.upgradeLink',\n defaultMessage: 'Upgrade Now',\n description: 'Text on the upgrade button shown when user does not have access to Version History',\n },\n versionUploadedBy: {\n id: 'be.sidebarVersions.uploadedBy',\n defaultMessage: 'Uploaded by {name}',\n description: 'Message displayed for an uploaded version. {name} is the user who performed the action.',\n },\n versionUserUnknown: {\n id: 'be.sidebarVersions.versionUserUnknown',\n defaultMessage: 'Unknown',\n description: 'Name displayed for unknown or deleted users.',\n },\n versionMaxEntries: {\n id: 'be.sidebarVersions.versionMaxEntries',\n defaultMessage: 'Version history is limited to the last {maxVersions} entries.',\n description: 'Max supported entries for version history',\n },\n versionRetentionDelete: {\n id: 'be.sidebarVersions.versionRetentionDelete',\n defaultMessage: 'Will be deleted {time} by retention policy.',\n description: 'Message describing when the version will be deleted due to an applied retention policy.',\n },\n versionRetentionIndefinite: {\n id: 'be.sidebarVersions.versionRetentionIndefinite',\n defaultMessage: 'Retained indefinitely by retention policy.',\n description: 'Message describing that the version retention policy is indefinite and will not expire.',\n },\n versionRetentionRemove: {\n id: 'be.sidebarVersions.versionRetentionRemove',\n defaultMessage: 'Retention policy expires on {time}.',\n description: 'Message describing when the version retention policy will expire.',\n },\n versionUpsell: {\n defaultMessage:\n 'Sorry, version history is not available with your current account plan. To access versioning, select from one of our paid plans.',\n description: 'Upgrade message shown when user does not have access to Version History',\n id: 'be.sidebarVersions.versionUpsell',\n },\n upgradeButton: {\n defaultMessage: 'Upgrade',\n description: 'Text on the upgrade button shown when user does not have access to Version History',\n id: 'be.sidebarVersions.upgradeButton',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
@@ -9,7 +9,8 @@ var ACCESS_POLICY_RESTRICTION = {
9
9
  DOWNLOAD: 'download',
10
10
  EXTERNAL_COLLAB: 'externalCollab',
11
11
  APP: 'app',
12
- FTP: 'ftp'
12
+ FTP: 'ftp',
13
+ WATERMARK: 'watermark'
13
14
  };
14
15
  var DOWNLOAD_CONTROL = {
15
16
  DESKTOP: 'desktop',
@@ -17,12 +17,14 @@ const ACCESS_POLICY_RESTRICTION: {
17
17
  EXTERNAL_COLLAB: 'externalCollab',
18
18
  FTP: 'ftp',
19
19
  SHARED_LINK: 'sharedLink',
20
+ WATERMARK: 'watermark',
20
21
  } = {
21
22
  SHARED_LINK: 'sharedLink',
22
23
  DOWNLOAD: 'download',
23
24
  EXTERNAL_COLLAB: 'externalCollab',
24
25
  APP: 'app',
25
26
  FTP: 'ftp',
27
+ WATERMARK: 'watermark',
26
28
  };
27
29
 
28
30
  const DOWNLOAD_CONTROL: {