box-ui-elements 19.0.0-beta.8 → 19.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 (2051) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +2 -172
  3. package/dist/explorer.js.LICENSE.txt +178 -0
  4. package/dist/openwith.css +1 -1
  5. package/dist/openwith.js +2 -84
  6. package/dist/openwith.js.LICENSE.txt +94 -0
  7. package/dist/picker.css +1 -1
  8. package/dist/picker.js +2 -101
  9. package/dist/picker.js.LICENSE.txt +112 -0
  10. package/dist/preview.css +1 -1
  11. package/dist/preview.js +2 -155
  12. package/dist/preview.js.LICENSE.txt +160 -0
  13. package/dist/sharing.css +1 -1
  14. package/dist/sharing.js +2 -135
  15. package/dist/sharing.js.LICENSE.txt +149 -0
  16. package/dist/sidebar.css +1 -1
  17. package/dist/sidebar.js +2 -155
  18. package/dist/sidebar.js.LICENSE.txt +160 -0
  19. package/dist/uploader.css +1 -1
  20. package/dist/uploader.js +2 -101
  21. package/dist/uploader.js.LICENSE.txt +112 -0
  22. package/es/api/APIFactory.js +25 -0
  23. package/es/api/APIFactory.js.flow +25 -0
  24. package/es/api/APIFactory.js.map +1 -1
  25. package/es/api/Feed.js +5 -3
  26. package/es/api/Feed.js.flow +8 -4
  27. package/es/api/Feed.js.map +1 -1
  28. package/es/api/Intelligence.js +45 -0
  29. package/es/api/Intelligence.js.flow +47 -0
  30. package/es/api/Intelligence.js.map +1 -0
  31. package/es/common/types/core.js.flow +1 -0
  32. package/es/common/types/core.js.map +1 -1
  33. package/es/components/accessible-svg/AccessibleSVG.stories.js +1 -1
  34. package/es/components/accessible-svg/AccessibleSVG.stories.js.map +1 -1
  35. package/es/components/avatar/Avatar.stories.js +1 -1
  36. package/es/components/avatar/Avatar.stories.js.map +1 -1
  37. package/es/components/badge/Badge.stories.js +1 -1
  38. package/es/components/badge/Badge.stories.js.map +1 -1
  39. package/es/components/badge/BetaBadge.stories.js +1 -1
  40. package/es/components/badge/BetaBadge.stories.js.map +1 -1
  41. package/es/components/badge/TrialBadge.stories.js +1 -1
  42. package/es/components/badge/TrialBadge.stories.js.map +1 -1
  43. package/es/components/badge/UpgradeBadge.stories.js +1 -1
  44. package/es/components/badge/UpgradeBadge.stories.js.map +1 -1
  45. package/es/components/breadcrumb/Breadcrumb.stories.js +1 -1
  46. package/es/components/breadcrumb/Breadcrumb.stories.js.flow +1 -1
  47. package/es/components/breadcrumb/Breadcrumb.stories.js.map +1 -1
  48. package/es/components/button/Button.stories.js +1 -1
  49. package/es/components/button/Button.stories.js.map +1 -1
  50. package/es/components/button-group/ButtonGroup.stories.js +1 -1
  51. package/es/components/button-group/ButtonGroup.stories.js.map +1 -1
  52. package/es/components/category-selector/CategorySelector.stories.js +1 -1
  53. package/es/components/category-selector/CategorySelector.stories.js.map +1 -1
  54. package/es/components/checkbox/Checkbox.stories.js +1 -1
  55. package/es/components/checkbox/Checkbox.stories.js.map +1 -1
  56. package/es/components/close-button/CloseButton.stories.js +1 -1
  57. package/es/components/close-button/CloseButton.stories.js.map +1 -1
  58. package/es/components/collapsible/Collapsible.stories.js +1 -1
  59. package/es/components/collapsible/Collapsible.stories.js.map +1 -1
  60. package/es/components/contact-datalist-item/ContactDatalistItem.stories.js +1 -1
  61. package/es/components/contact-datalist-item/ContactDatalistItem.stories.js.map +1 -1
  62. package/es/components/context-menu/ContextMenu.stories.js +1 -1
  63. package/es/components/context-menu/ContextMenu.stories.js.map +1 -1
  64. package/es/components/count-badge/CountBadge.stories.js +1 -1
  65. package/es/components/count-badge/CountBadge.stories.js.map +1 -1
  66. package/es/components/datalist-item/DatalistItem.stories.js +1 -1
  67. package/es/components/datalist-item/DatalistItem.stories.js.map +1 -1
  68. package/es/components/date-picker/DatePicker.stories.js +1 -1
  69. package/es/components/date-picker/DatePicker.stories.js.map +1 -1
  70. package/es/components/draft-js-editor/DraftJSEditor.stories.js +1 -1
  71. package/es/components/draft-js-editor/DraftJSEditor.stories.js.flow +1 -1
  72. package/es/components/draft-js-editor/DraftJSEditor.stories.js.map +1 -1
  73. package/es/components/draggable-list/DraggableList.stories.js +1 -1
  74. package/es/components/draggable-list/DraggableList.stories.js.map +1 -1
  75. package/es/components/dropdown-menu/DropdownMenu.stories.js +1 -1
  76. package/es/components/dropdown-menu/DropdownMenu.stories.js.flow +1 -1
  77. package/es/components/dropdown-menu/DropdownMenu.stories.js.map +1 -1
  78. package/es/components/error-mask/ErrorMask.stories.js +1 -1
  79. package/es/components/error-mask/ErrorMask.stories.js.map +1 -1
  80. package/es/components/fieldset/Fieldset.stories.js +1 -1
  81. package/es/components/fieldset/Fieldset.stories.js.map +1 -1
  82. package/es/components/flyout/Flyout.stories.js +1 -1
  83. package/es/components/flyout/Flyout.stories.js.map +1 -1
  84. package/es/components/flyout/OverlayHeader.js +2 -1
  85. package/es/components/flyout/OverlayHeader.js.map +1 -1
  86. package/es/components/footer-indicator/FooterIndicator.stories.js +1 -1
  87. package/es/components/footer-indicator/FooterIndicator.stories.js.map +1 -1
  88. package/es/components/form-elements/form/Form.stories.js +1 -1
  89. package/es/components/form-elements/form/Form.stories.js.flow +1 -1
  90. package/es/components/form-elements/form/Form.stories.js.map +1 -1
  91. package/es/components/form-elements/formik/Formik.stories.js +1 -1
  92. package/es/components/form-elements/formik/Formik.stories.js.flow +1 -1
  93. package/es/components/form-elements/formik/Formik.stories.js.map +1 -1
  94. package/es/components/form-elements/text-area/TextArea.stories.js +1 -1
  95. package/es/components/form-elements/text-area/TextArea.stories.js.flow +1 -1
  96. package/es/components/form-elements/text-area/TextArea.stories.js.map +1 -1
  97. package/es/components/form-elements/text-input/TextInput.stories.js +1 -1
  98. package/es/components/form-elements/text-input/TextInput.stories.js.flow +1 -1
  99. package/es/components/form-elements/text-input/TextInput.stories.js.map +1 -1
  100. package/es/components/ghost/Ghost.stories.js +1 -1
  101. package/es/components/ghost/Ghost.stories.js.map +1 -1
  102. package/es/components/guide-tooltip/GuideTooltip.stories.js +1 -1
  103. package/es/components/guide-tooltip/GuideTooltip.stories.js.map +1 -1
  104. package/es/components/header/Header.stories.js +1 -1
  105. package/es/components/header/Header.stories.js.map +1 -1
  106. package/es/components/image-tooltip/ImageTooltip.stories.js +1 -1
  107. package/es/components/image-tooltip/ImageTooltip.stories.js.map +1 -1
  108. package/es/components/inline-error/InlineError.stories.js +1 -1
  109. package/es/components/inline-error/InlineError.stories.js.flow +1 -1
  110. package/es/components/inline-error/InlineError.stories.js.map +1 -1
  111. package/es/components/inline-notice/InlineNotice.stories.js +1 -1
  112. package/es/components/inline-notice/InlineNotice.stories.js.flow +1 -1
  113. package/es/components/inline-notice/InlineNotice.stories.js.map +1 -1
  114. package/es/components/label/HiddenLabel.js +13 -7
  115. package/es/components/label/HiddenLabel.js.flow +3 -2
  116. package/es/components/label/HiddenLabel.js.map +1 -1
  117. package/es/components/label/Label.js +5 -2
  118. package/es/components/label/Label.js.flow +5 -3
  119. package/es/components/label/Label.js.map +1 -1
  120. package/es/components/label/Label.stories.js +1 -1
  121. package/es/components/label/Label.stories.js.map +1 -1
  122. package/es/components/label/LabelPrimitive.js +4 -3
  123. package/es/components/label/LabelPrimitive.js.flow +3 -2
  124. package/es/components/label/LabelPrimitive.js.map +1 -1
  125. package/es/components/label/StandardLabel.js +8 -5
  126. package/es/components/label/StandardLabel.js.flow +3 -2
  127. package/es/components/label/StandardLabel.js.map +1 -1
  128. package/es/components/label-pill/LabelPill.stories.js +1 -1
  129. package/es/components/label-pill/LabelPill.stories.js.map +1 -1
  130. package/es/components/link/stories/Link.stories.js +6 -4
  131. package/es/components/link/stories/Link.stories.js.map +1 -1
  132. package/es/components/link/stories/LinkButton.stories.js +8 -5
  133. package/es/components/link/stories/LinkButton.stories.js.map +1 -1
  134. package/es/components/link/stories/LinkGroup.stories.js +1 -1
  135. package/es/components/link/stories/LinkGroup.stories.js.map +1 -1
  136. package/es/components/link/stories/LinkPrimaryButton.stories.js +6 -4
  137. package/es/components/link/stories/LinkPrimaryButton.stories.js.map +1 -1
  138. package/es/components/loading-indicator/LoadingIndicator.stories.js +1 -1
  139. package/es/components/loading-indicator/LoadingIndicator.stories.js.map +1 -1
  140. package/es/components/loading-indicator/LoadingIndicatorWrapper.stories.js +1 -1
  141. package/es/components/loading-indicator/LoadingIndicatorWrapper.stories.js.map +1 -1
  142. package/es/components/loading-indicator/makeLoadable.js.map +1 -1
  143. package/es/components/logo/Logo.stories.js +1 -1
  144. package/es/components/logo/Logo.stories.js.map +1 -1
  145. package/es/components/media/stories/Media.stories.js +1 -1
  146. package/es/components/media/stories/Media.stories.js.map +1 -1
  147. package/es/components/media/stories/MediaBody.stories.js +1 -1
  148. package/es/components/media/stories/MediaBody.stories.js.map +1 -1
  149. package/es/components/media/stories/MediaFigure.stories.js +1 -1
  150. package/es/components/media/stories/MediaFigure.stories.js.map +1 -1
  151. package/es/components/media/stories/MediaMenu.stories.js +1 -1
  152. package/es/components/media/stories/MediaMenu.stories.js.map +1 -1
  153. package/es/components/media-query/stories/MediaQuery.stories.js +1 -1
  154. package/es/components/media-query/stories/MediaQuery.stories.js.flow +1 -1
  155. package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -1
  156. package/es/components/menu/stories/Menu.stories.js +1 -1
  157. package/es/components/menu/stories/Menu.stories.js.map +1 -1
  158. package/es/components/menu/stories/SelectMenuLinkItem.stories.js +1 -1
  159. package/es/components/menu/stories/SelectMenuLinkItem.stories.js.map +1 -1
  160. package/es/components/modal/Modal.scss +62 -69
  161. package/es/components/modal/stories/Modal.stories.js +1 -1
  162. package/es/components/modal/stories/Modal.stories.js.flow +1 -1
  163. package/es/components/modal/stories/Modal.stories.js.map +1 -1
  164. package/es/components/modal/stories/ModalActions.stories.js +1 -1
  165. package/es/components/modal/stories/ModalActions.stories.js.flow +1 -1
  166. package/es/components/modal/stories/ModalActions.stories.js.map +1 -1
  167. package/es/components/modal/stories/ModalDialog.stories.js +1 -1
  168. package/es/components/modal/stories/ModalDialog.stories.js.flow +1 -1
  169. package/es/components/modal/stories/ModalDialog.stories.js.map +1 -1
  170. package/es/components/nav-sidebar/NavSidebar.stories.js +1 -1
  171. package/es/components/nav-sidebar/NavSidebar.stories.js.flow +1 -1
  172. package/es/components/nav-sidebar/NavSidebar.stories.js.map +1 -1
  173. package/es/components/notification/stories/Notification.stories.js +1 -1
  174. package/es/components/notification/stories/Notification.stories.js.flow +1 -1
  175. package/es/components/notification/stories/Notification.stories.js.map +1 -1
  176. package/es/components/notification/stories/NotificationsWrapper.stories.js +1 -1
  177. package/es/components/notification/stories/NotificationsWrapper.stories.js.flow +1 -1
  178. package/es/components/notification/stories/NotificationsWrapper.stories.js.map +1 -1
  179. package/es/components/nudge/Nudge.stories.js +1 -1
  180. package/es/components/nudge/Nudge.stories.js.map +1 -1
  181. package/es/components/pill-cloud/PillCloud.stories.js +1 -1
  182. package/es/components/pill-cloud/PillCloud.stories.js.flow +1 -1
  183. package/es/components/pill-cloud/PillCloud.stories.js.map +1 -1
  184. package/es/components/pill-selector-dropdown/PillSelector.js +7 -3
  185. package/es/components/pill-selector-dropdown/PillSelector.js.flow +10 -2
  186. package/es/components/pill-selector-dropdown/PillSelector.js.map +1 -1
  187. package/es/components/pill-selector-dropdown/PillSelector.scss +4 -0
  188. package/es/components/pill-selector-dropdown/PillSelectorDropdown.stories.js +1 -1
  189. package/es/components/pill-selector-dropdown/PillSelectorDropdown.stories.js.flow +1 -1
  190. package/es/components/pill-selector-dropdown/PillSelectorDropdown.stories.js.map +1 -1
  191. package/es/components/plain-button/PlainButton.stories.js +1 -1
  192. package/es/components/plain-button/PlainButton.stories.js.map +1 -1
  193. package/es/components/primary-button/PrimaryButton.stories.js +1 -1
  194. package/es/components/primary-button/PrimaryButton.stories.js.map +1 -1
  195. package/es/components/radar/RadarAnimation.stories.js +1 -1
  196. package/es/components/radar/RadarAnimation.stories.js.map +1 -1
  197. package/es/components/radio/stories/RadioButton.stories.js +1 -1
  198. package/es/components/radio/stories/RadioButton.stories.js.map +1 -1
  199. package/es/components/radio/stories/RadioGroup.stories.js +1 -1
  200. package/es/components/radio/stories/RadioGroup.stories.js.map +1 -1
  201. package/es/components/search-form/SearchActions.js +35 -0
  202. package/es/components/search-form/SearchActions.js.map +1 -0
  203. package/es/components/search-form/SearchForm.js +11 -39
  204. package/es/components/search-form/SearchForm.js.flow +10 -54
  205. package/es/components/search-form/SearchForm.js.map +1 -1
  206. package/es/components/search-form/messages.js +17 -0
  207. package/es/components/search-form/messages.js.map +1 -0
  208. package/es/components/section/Section.stories.js +1 -1
  209. package/es/components/section/Section.stories.js.map +1 -1
  210. package/es/components/select/Select.stories.js +1 -1
  211. package/es/components/select/Select.stories.js.flow +1 -1
  212. package/es/components/select/Select.stories.js.map +1 -1
  213. package/es/components/select-button/SelectButton.stories.js +1 -1
  214. package/es/components/select-button/SelectButton.stories.js.flow +1 -1
  215. package/es/components/select-button/SelectButton.stories.js.map +1 -1
  216. package/es/components/selector-dropdown/SelectorDropdown.stories.js +1 -1
  217. package/es/components/selector-dropdown/SelectorDropdown.stories.js.flow +1 -1
  218. package/es/components/selector-dropdown/SelectorDropdown.stories.js.map +1 -1
  219. package/es/components/sidebar-toggle-button/SidebarToggleButton.stories.js +1 -1
  220. package/es/components/sidebar-toggle-button/SidebarToggleButton.stories.js.flow +1 -1
  221. package/es/components/sidebar-toggle-button/SidebarToggleButton.stories.js.map +1 -1
  222. package/es/components/tab-view/TabView.stories.js +1 -1
  223. package/es/components/tab-view/TabView.stories.js.flow +1 -1
  224. package/es/components/tab-view/TabView.stories.js.map +1 -1
  225. package/es/components/text-input/TextInput.stories.js +1 -1
  226. package/es/components/text-input/TextInput.stories.js.flow +1 -1
  227. package/es/components/text-input/TextInput.stories.js.map +1 -1
  228. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js +9 -3
  229. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js.flow +9 -4
  230. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js.map +1 -1
  231. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.stories.js +1 -1
  232. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.stories.js.flow +1 -1
  233. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.stories.js.map +1 -1
  234. package/es/components/thumbnail-card/ThumbnailCard.stories.js +1 -1
  235. package/es/components/thumbnail-card/ThumbnailCard.stories.js.flow +1 -1
  236. package/es/components/thumbnail-card/ThumbnailCard.stories.js.map +1 -1
  237. package/es/components/time/ReadableTime.stories.js +1 -1
  238. package/es/components/time/ReadableTime.stories.js.flow +1 -1
  239. package/es/components/time/ReadableTime.stories.js.map +1 -1
  240. package/es/components/time-input/TimeInput.stories.js +1 -1
  241. package/es/components/time-input/TimeInput.stories.js.map +1 -1
  242. package/es/components/toggle/Toggle.stories.js +1 -1
  243. package/es/components/toggle/Toggle.stories.js.flow +1 -1
  244. package/es/components/toggle/Toggle.stories.js.map +1 -1
  245. package/es/components/tooltip/Tooltip.stories.js +1 -1
  246. package/es/components/tooltip/Tooltip.stories.js.map +1 -1
  247. package/es/constants.js +1 -0
  248. package/es/constants.js.flow +1 -0
  249. package/es/constants.js.map +1 -1
  250. package/es/elements/common/_variables.scss +1 -0
  251. package/es/elements/common/current-user/withCurrentUser.js +1 -0
  252. package/es/elements/common/current-user/withCurrentUser.js.map +1 -1
  253. package/es/elements/common/selectors/version.js +2 -1
  254. package/es/elements/common/selectors/version.js.flow +2 -1
  255. package/es/elements/common/selectors/version.js.map +1 -1
  256. package/es/elements/content-explorer/ContentExplorer.js +2 -0
  257. package/es/elements/content-explorer/ContentExplorer.js.flow +10 -4
  258. package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
  259. package/es/elements/content-explorer/MoreOptions.js +1 -1
  260. package/es/elements/content-explorer/MoreOptions.js.flow +1 -1
  261. package/es/elements/content-explorer/MoreOptions.js.map +1 -1
  262. package/es/elements/content-explorer/PreviewDialog.js +0 -1
  263. package/es/elements/content-explorer/PreviewDialog.js.flow +0 -1
  264. package/es/elements/content-explorer/PreviewDialog.js.map +1 -1
  265. package/es/elements/content-explorer/stories/ContentExplorer.stories.js +25 -35
  266. package/es/elements/content-explorer/stories/ContentExplorer.stories.js.flow +25 -36
  267. package/es/elements/content-explorer/stories/ContentExplorer.stories.js.map +1 -1
  268. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +1 -1
  269. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.flow +1 -1
  270. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -1
  271. package/es/elements/content-explorer/stories/ShareDialog.stories.js +1 -1
  272. package/es/elements/content-explorer/stories/ShareDialog.stories.js.flow +1 -1
  273. package/es/elements/content-explorer/stories/ShareDialog.stories.js.map +1 -1
  274. package/es/elements/content-picker/ContentPicker.js +2 -2
  275. package/es/elements/content-picker/ContentPicker.js.flow +2 -2
  276. package/es/elements/content-picker/ContentPicker.js.map +1 -1
  277. package/es/elements/content-picker/Footer.scss +6 -0
  278. package/es/elements/content-preview/ContentPreview.js +20 -10
  279. package/es/elements/content-preview/ContentPreview.js.flow +88 -64
  280. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  281. package/es/elements/content-preview/ContentPreview.scss +13 -28
  282. package/es/elements/content-preview/preview-header/PreviewHeader.js +8 -2
  283. package/es/elements/content-preview/preview-header/PreviewHeader.js.flow +6 -0
  284. package/es/elements/content-preview/preview-header/PreviewHeader.js.map +1 -1
  285. package/es/elements/content-preview/stories/ContentPreview.stories.js +32 -46
  286. package/es/elements/content-preview/stories/ContentPreview.stories.js.flow +51 -81
  287. package/es/elements/content-preview/stories/ContentPreview.stories.js.map +1 -1
  288. package/es/elements/content-sharing/stories/ContentSharing.stories.js +19 -63
  289. package/es/elements/content-sharing/stories/ContentSharing.stories.js.flow +18 -84
  290. package/es/elements/content-sharing/stories/ContentSharing.stories.js.map +1 -1
  291. package/es/elements/content-sidebar/ActivitySidebar.js +22 -17
  292. package/es/elements/content-sidebar/ActivitySidebar.js.flow +2 -2
  293. package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
  294. package/es/elements/content-sidebar/ContentSidebar.scss +9 -9
  295. package/es/elements/content-sidebar/SidebarContent.scss +6 -8
  296. package/es/elements/content-sidebar/SidebarNav.scss +22 -20
  297. package/es/elements/content-sidebar/SidebarNavButton.scss +12 -14
  298. package/es/elements/content-sidebar/SidebarNavSignButton.scss +6 -8
  299. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +13 -1
  300. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +20 -2
  301. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
  302. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +7 -6
  303. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
  304. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.scss +6 -4
  305. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.scss +2 -2
  306. package/es/elements/content-sidebar/activity-feed/activity-feed/stories/ActivityFeed.stories.js +61 -0
  307. package/es/elements/content-sidebar/activity-feed/activity-feed/stories/ActivityFeed.stories.js.flow +70 -0
  308. package/es/elements/content-sidebar/activity-feed/activity-feed/stories/ActivityFeed.stories.js.map +1 -0
  309. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +2 -2
  310. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -1
  311. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +11 -6
  312. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js.flow +3 -7
  313. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js.map +1 -1
  314. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +5 -1
  315. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +3 -3
  316. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
  317. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js +50 -142
  318. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js.flow +59 -166
  319. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js.map +1 -1
  320. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.scss +34 -12
  321. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js +6 -5
  322. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js.flow +5 -4
  323. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js.map +1 -1
  324. package/es/elements/content-sidebar/activity-feed/comment/Replies.scss +4 -2
  325. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentInfo.js +48 -0
  326. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentInfo.js.flow +72 -0
  327. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentInfo.js.map +1 -0
  328. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentInfo.scss +38 -0
  329. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenu.js +75 -0
  330. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenu.js.flow +125 -0
  331. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenu.js.map +1 -0
  332. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenu.scss +4 -0
  333. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenuWrapper.js +78 -0
  334. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenuWrapper.js.flow +91 -0
  335. package/es/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenuWrapper.js.map +1 -0
  336. package/es/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentInfo.stories.js +25 -0
  337. package/es/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentInfo.stories.js.flow +25 -0
  338. package/es/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentInfo.stories.js.map +1 -0
  339. package/es/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentMenu.stories.js +37 -0
  340. package/es/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentMenu.stories.js.flow +26 -0
  341. package/es/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentMenu.stories.js.map +1 -0
  342. package/es/elements/content-sidebar/activity-feed/comment/components/stories/common.js +23 -0
  343. package/es/elements/content-sidebar/activity-feed/comment/components/stories/common.js.flow +28 -0
  344. package/es/elements/content-sidebar/activity-feed/comment/components/stories/common.js.map +1 -0
  345. package/es/elements/content-sidebar/activity-feed/comment/messages.js +4 -4
  346. package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +5 -5
  347. package/es/elements/content-sidebar/activity-feed/comment/messages.js.map +1 -1
  348. package/es/elements/content-sidebar/activity-feed/comment/stories/BaseComment.stories.js +1 -1
  349. package/es/elements/content-sidebar/activity-feed/comment/stories/BaseComment.stories.js.flow +1 -1
  350. package/es/elements/content-sidebar/activity-feed/comment/stories/BaseComment.stories.js.map +1 -1
  351. package/es/elements/content-sidebar/activity-feed/comment/stories/common.js +1 -1
  352. package/es/elements/content-sidebar/activity-feed/comment/stories/common.js.flow +1 -1
  353. package/es/elements/content-sidebar/activity-feed/comment/stories/common.js.map +1 -1
  354. package/es/elements/content-sidebar/activity-feed/comment/types.js.flow +13 -0
  355. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +8 -4
  356. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +11 -3
  357. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
  358. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js +2 -0
  359. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js.flow +2 -0
  360. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js.map +1 -1
  361. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +1 -1
  362. package/es/elements/content-sidebar/activity-feed/task-new/Task.js +7 -3
  363. package/es/elements/content-sidebar/activity-feed/task-new/Task.js.flow +7 -2
  364. package/es/elements/content-sidebar/activity-feed/task-new/Task.js.map +1 -1
  365. package/es/elements/content-sidebar/activity-feed/task-new/messages.js +8 -0
  366. package/es/elements/content-sidebar/activity-feed/task-new/messages.js.flow +10 -0
  367. package/es/elements/content-sidebar/activity-feed/task-new/messages.js.map +1 -1
  368. package/es/elements/content-sidebar/stories/ContentSidebar.stories.js +18 -27
  369. package/es/elements/content-sidebar/stories/ContentSidebar.stories.js.flow +19 -28
  370. package/es/elements/content-sidebar/stories/ContentSidebar.stories.js.map +1 -1
  371. package/es/elements/content-sidebar/versions/VersionsItem.scss +6 -0
  372. package/es/elements/content-uploader/ItemName.scss +1 -1
  373. package/es/elements/content-uploader/ProgressBar.scss +4 -0
  374. package/es/elements/content-uploader/stories/ContentUploader.stories.js +6 -13
  375. package/es/elements/content-uploader/stories/ContentUploader.stories.js.flow +7 -11
  376. package/es/elements/content-uploader/stories/ContentUploader.stories.js.map +1 -1
  377. package/es/features/collaborator-avatars/CollaboratorList.scss +11 -1
  378. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js +1 -1
  379. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js.flow +1 -1
  380. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js.map +1 -1
  381. package/es/features/content-answers/Answer.js +18 -0
  382. package/es/features/content-answers/Answer.js.map +1 -0
  383. package/es/features/content-answers/Answer.scss +4 -0
  384. package/es/features/content-answers/ContentAnswers.js +46 -0
  385. package/es/features/content-answers/ContentAnswers.js.map +1 -0
  386. package/es/features/content-answers/ContentAnswersGridCard.js +24 -0
  387. package/es/features/content-answers/ContentAnswersGridCard.js.map +1 -0
  388. package/es/features/content-answers/ContentAnswersGridCard.scss +26 -0
  389. package/es/features/content-answers/ContentAnswersModal.js +111 -0
  390. package/es/features/content-answers/ContentAnswersModal.js.map +1 -0
  391. package/es/features/content-answers/ContentAnswersModal.scss +56 -0
  392. package/es/features/content-answers/ContentAnswersModalContent.js +60 -0
  393. package/es/features/content-answers/ContentAnswersModalContent.js.map +1 -0
  394. package/es/features/content-answers/ContentAnswersModalContent.scss +12 -0
  395. package/es/features/content-answers/ContentAnswersModalError.js +23 -0
  396. package/es/features/content-answers/ContentAnswersModalError.js.map +1 -0
  397. package/es/features/content-answers/ContentAnswersModalError.scss +28 -0
  398. package/es/features/content-answers/ContentAnswersModalFooter.js +93 -0
  399. package/es/features/content-answers/ContentAnswersModalFooter.js.map +1 -0
  400. package/es/features/content-answers/ContentAnswersModalFooter.scss +42 -0
  401. package/es/features/content-answers/ContentAnswersModalFooterActions.js +38 -0
  402. package/es/features/content-answers/ContentAnswersModalFooterActions.js.map +1 -0
  403. package/es/features/content-answers/ContentAnswersModalFooterActions.scss +17 -0
  404. package/es/features/content-answers/ContentAnswersOpenButton.js +69 -0
  405. package/es/features/content-answers/ContentAnswersOpenButton.js.map +1 -0
  406. package/es/features/content-answers/ContentAnswersOpenButton.scss +54 -0
  407. package/es/features/content-answers/InlineError.js +29 -0
  408. package/es/features/content-answers/InlineError.js.map +1 -0
  409. package/es/features/content-answers/InlineError.scss +39 -0
  410. package/es/features/content-answers/LoadingElement.js +17 -0
  411. package/es/features/content-answers/LoadingElement.js.map +1 -0
  412. package/es/features/content-answers/LoadingElement.scss +4 -0
  413. package/es/features/content-answers/Question.js +27 -0
  414. package/es/features/content-answers/Question.js.map +1 -0
  415. package/es/features/content-answers/Question.scss +16 -0
  416. package/es/features/content-answers/WelcomeMessage.js +32 -0
  417. package/es/features/content-answers/WelcomeMessage.js.map +1 -0
  418. package/es/features/content-answers/WelcomeMessage.scss +25 -0
  419. package/es/features/content-answers/constants.js +10 -0
  420. package/es/features/content-answers/constants.js.map +1 -0
  421. package/es/features/content-answers/index.js +2 -0
  422. package/es/features/content-answers/index.js.map +1 -0
  423. package/es/features/content-answers/messages.js +69 -0
  424. package/es/features/content-answers/messages.js.map +1 -0
  425. package/es/features/content-explorer/content-explorer/ContentExplorer.js +21 -12
  426. package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +19 -15
  427. package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
  428. package/es/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  429. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +1 -0
  430. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.flow +2 -0
  431. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.map +1 -1
  432. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +1 -0
  433. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
  434. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +3 -0
  435. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +2 -0
  436. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
  437. package/es/features/pagination/Pagination.scss +0 -4
  438. package/es/features/sandbox-banner/SandboxBanner.stories.js +1 -1
  439. package/es/features/sandbox-banner/SandboxBanner.stories.js.map +1 -1
  440. package/es/features/security-cloud-game/stories/SecurityCloudGame.stories.js +1 -1
  441. package/es/features/security-cloud-game/stories/SecurityCloudGame.stories.js.flow +1 -1
  442. package/es/features/security-cloud-game/stories/SecurityCloudGame.stories.js.map +1 -1
  443. package/es/features/shared-link-modal/stories/SharedLink.stories.js +1 -1
  444. package/es/features/shared-link-modal/stories/SharedLink.stories.js.flow +1 -1
  445. package/es/features/shared-link-modal/stories/SharedLink.stories.js.map +1 -1
  446. package/es/features/shared-link-modal/stories/SharedLinkModal.stories.js +1 -1
  447. package/es/features/shared-link-modal/stories/SharedLinkModal.stories.js.flow +1 -1
  448. package/es/features/shared-link-modal/stories/SharedLinkModal.stories.js.map +1 -1
  449. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.stories.js +1 -1
  450. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.stories.js.flow +1 -1
  451. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.stories.js.map +1 -1
  452. package/es/features/targeting/hocs/withTargetedClickThrough.js +13 -3
  453. package/es/features/targeting/hocs/withTargetedClickThrough.js.flow +10 -1
  454. package/es/features/targeting/hocs/withTargetedClickThrough.js.map +1 -1
  455. package/es/features/targeting/types.js.flow +1 -0
  456. package/es/features/targeting/types.js.map +1 -1
  457. package/es/features/unified-share-modal/UnifiedShareModal.scss +61 -79
  458. package/es/features/unified-share-modal/stories/UnifiedShareModal.stories.js +1 -1
  459. package/es/features/unified-share-modal/stories/UnifiedShareModal.stories.js.flow +1 -1
  460. package/es/features/unified-share-modal/stories/UnifiedShareModal.stories.js.map +1 -1
  461. package/es/features/virtualized-table/DraggableVirtualizedTable.stories.js +1 -1
  462. package/es/features/virtualized-table/DraggableVirtualizedTable.stories.js.flow +1 -1
  463. package/es/features/virtualized-table/DraggableVirtualizedTable.stories.js.map +1 -1
  464. package/es/icon/content/ContentSharing32.stories.js +1 -1
  465. package/es/icon/content/ContentSharing32.stories.js.map +1 -1
  466. package/es/icon/content/CustomSetup32.stories.js +1 -1
  467. package/es/icon/content/CustomSetup32.stories.js.map +1 -1
  468. package/es/icon/content/DeviceTrust32.stories.js +1 -1
  469. package/es/icon/content/DeviceTrust32.stories.js.map +1 -1
  470. package/es/icon/content/FileAudio32.stories.js +1 -1
  471. package/es/icon/content/FileAudio32.stories.js.map +1 -1
  472. package/es/icon/content/FileBookmark32.stories.js +1 -1
  473. package/es/icon/content/FileBookmark32.stories.js.map +1 -1
  474. package/es/icon/content/FileBoxNote32.stories.js +1 -1
  475. package/es/icon/content/FileBoxNote32.stories.js.map +1 -1
  476. package/es/icon/content/FileCanvas32.stories.js +1 -1
  477. package/es/icon/content/FileCanvas32.stories.js.map +1 -1
  478. package/es/icon/content/FileCode32.stories.js +1 -1
  479. package/es/icon/content/FileCode32.stories.js.map +1 -1
  480. package/es/icon/content/FileDefault32.stories.js +1 -1
  481. package/es/icon/content/FileDefault32.stories.js.map +1 -1
  482. package/es/icon/content/FileDicom32.stories.js +1 -1
  483. package/es/icon/content/FileDicom32.stories.js.map +1 -1
  484. package/es/icon/content/FileDocs32.stories.js +1 -1
  485. package/es/icon/content/FileDocs32.stories.js.map +1 -1
  486. package/es/icon/content/FileDwg32.stories.js +1 -1
  487. package/es/icon/content/FileDwg32.stories.js.map +1 -1
  488. package/es/icon/content/FileExcel32.stories.js +1 -1
  489. package/es/icon/content/FileExcel32.stories.js.map +1 -1
  490. package/es/icon/content/FileIllustrator32.stories.js +1 -1
  491. package/es/icon/content/FileIllustrator32.stories.js.map +1 -1
  492. package/es/icon/content/FileImage32.stories.js +1 -1
  493. package/es/icon/content/FileImage32.stories.js.map +1 -1
  494. package/es/icon/content/FileIndesign32.stories.js +1 -1
  495. package/es/icon/content/FileIndesign32.stories.js.map +1 -1
  496. package/es/icon/content/FileKeynote32.stories.js +1 -1
  497. package/es/icon/content/FileKeynote32.stories.js.map +1 -1
  498. package/es/icon/content/FileNumbers32.stories.js +1 -1
  499. package/es/icon/content/FileNumbers32.stories.js.map +1 -1
  500. package/es/icon/content/FilePages32.stories.js +1 -1
  501. package/es/icon/content/FilePages32.stories.js.map +1 -1
  502. package/es/icon/content/FilePdf32.stories.js +1 -1
  503. package/es/icon/content/FilePdf32.stories.js.map +1 -1
  504. package/es/icon/content/FilePhotoshop32.stories.js +1 -1
  505. package/es/icon/content/FilePhotoshop32.stories.js.map +1 -1
  506. package/es/icon/content/FilePowerpoint32.stories.js +1 -1
  507. package/es/icon/content/FilePowerpoint32.stories.js.map +1 -1
  508. package/es/icon/content/FilePresentation32.stories.js +1 -1
  509. package/es/icon/content/FilePresentation32.stories.js.map +1 -1
  510. package/es/icon/content/FileSheets32.stories.js +1 -1
  511. package/es/icon/content/FileSheets32.stories.js.map +1 -1
  512. package/es/icon/content/FileSlides32.stories.js +1 -1
  513. package/es/icon/content/FileSlides32.stories.js.map +1 -1
  514. package/es/icon/content/FileSpreadsheet32.stories.js +1 -1
  515. package/es/icon/content/FileSpreadsheet32.stories.js.map +1 -1
  516. package/es/icon/content/FileText32.stories.js +1 -1
  517. package/es/icon/content/FileText32.stories.js.map +1 -1
  518. package/es/icon/content/FileThreeD32.stories.js +1 -1
  519. package/es/icon/content/FileThreeD32.stories.js.map +1 -1
  520. package/es/icon/content/FileUpload32.stories.js +1 -1
  521. package/es/icon/content/FileUpload32.stories.js.map +1 -1
  522. package/es/icon/content/FileVector32.stories.js +1 -1
  523. package/es/icon/content/FileVector32.stories.js.map +1 -1
  524. package/es/icon/content/FileVideo32.stories.js +1 -1
  525. package/es/icon/content/FileVideo32.stories.js.map +1 -1
  526. package/es/icon/content/FileWord32.stories.js +1 -1
  527. package/es/icon/content/FileWord32.stories.js.map +1 -1
  528. package/es/icon/content/FileXbd32.stories.js +1 -1
  529. package/es/icon/content/FileXbd32.stories.js.map +1 -1
  530. package/es/icon/content/FileXdw32.stories.js +1 -1
  531. package/es/icon/content/FileXdw32.stories.js.map +1 -1
  532. package/es/icon/content/FileZip32.stories.js +1 -1
  533. package/es/icon/content/FileZip32.stories.js.map +1 -1
  534. package/es/icon/content/FolderExternal32.stories.js +1 -1
  535. package/es/icon/content/FolderExternal32.stories.js.map +1 -1
  536. package/es/icon/content/FolderPersonal32.stories.js +1 -1
  537. package/es/icon/content/FolderPersonal32.stories.js.map +1 -1
  538. package/es/icon/content/FolderShared32.stories.js +1 -1
  539. package/es/icon/content/FolderShared32.stories.js.map +1 -1
  540. package/es/icon/content/FolderUpload32.stories.js +1 -1
  541. package/es/icon/content/FolderUpload32.stories.js.map +1 -1
  542. package/es/icon/content/Mobile32.stories.js +1 -1
  543. package/es/icon/content/Mobile32.stories.js.map +1 -1
  544. package/es/icon/content/Notifications32.stories.js +1 -1
  545. package/es/icon/content/Notifications32.stories.js.map +1 -1
  546. package/es/icon/content/PlatformCam32.stories.js +1 -1
  547. package/es/icon/content/PlatformCam32.stories.js.map +1 -1
  548. package/es/icon/content/PlatformSandbox32.stories.js +1 -1
  549. package/es/icon/content/PlatformSandbox32.stories.js.map +1 -1
  550. package/es/icon/content/RetentionPolicyModifiable32.stories.js +1 -1
  551. package/es/icon/content/RetentionPolicyModifiable32.stories.js.map +1 -1
  552. package/es/icon/content/RetentionPolicyNonModifiable32.stories.js +1 -1
  553. package/es/icon/content/RetentionPolicyNonModifiable32.stories.js.map +1 -1
  554. package/es/icon/content/Security32.stories.js +1 -1
  555. package/es/icon/content/Security32.stories.js.map +1 -1
  556. package/es/icon/content/SignRequest32.stories.js +1 -1
  557. package/es/icon/content/SignRequest32.stories.js.map +1 -1
  558. package/es/icon/content/UserSettings32.stories.js +1 -1
  559. package/es/icon/content/UserSettings32.stories.js.map +1 -1
  560. package/es/icon/content/Workflow32.stories.js +1 -1
  561. package/es/icon/content/Workflow32.stories.js.map +1 -1
  562. package/es/icon/content/WorkflowTemplate32.stories.js +1 -1
  563. package/es/icon/content/WorkflowTemplate32.stories.js.map +1 -1
  564. package/es/icon/fill/Activity16.stories.js +1 -1
  565. package/es/icon/fill/Activity16.stories.js.map +1 -1
  566. package/es/icon/fill/Activity20.stories.js +1 -1
  567. package/es/icon/fill/Activity20.stories.js.map +1 -1
  568. package/es/icon/fill/Alert16.stories.js +1 -1
  569. package/es/icon/fill/Alert16.stories.js.map +1 -1
  570. package/es/icon/fill/AlertBadge16.stories.js +1 -1
  571. package/es/icon/fill/AlertBadge16.stories.js.map +1 -1
  572. package/es/icon/fill/AnnotationsDrawing16.stories.js +1 -1
  573. package/es/icon/fill/AnnotationsDrawing16.stories.js.map +1 -1
  574. package/es/icon/fill/AnnotationsHighlight16.stories.js +1 -1
  575. package/es/icon/fill/AnnotationsHighlight16.stories.js.map +1 -1
  576. package/es/icon/fill/AnnotationsRegion16.stories.js +1 -1
  577. package/es/icon/fill/AnnotationsRegion16.stories.js.map +1 -1
  578. package/es/icon/fill/Apps16.stories.js +1 -1
  579. package/es/icon/fill/Apps16.stories.js.map +1 -1
  580. package/es/icon/fill/Arrow16.stories.js +1 -1
  581. package/es/icon/fill/Arrow16.stories.js.map +1 -1
  582. package/es/icon/fill/ArrowArcRight.stories.js +1 -1
  583. package/es/icon/fill/ArrowArcRight.stories.js.map +1 -1
  584. package/es/icon/fill/ArrowForward16.stories.js +1 -1
  585. package/es/icon/fill/ArrowForward16.stories.js.map +1 -1
  586. package/es/icon/fill/ArrowSort16.stories.js +1 -1
  587. package/es/icon/fill/ArrowSort16.stories.js.map +1 -1
  588. package/es/icon/fill/AvatarBadge16.stories.js +1 -1
  589. package/es/icon/fill/AvatarBadge16.stories.js.map +1 -1
  590. package/es/icon/fill/BarChart16.stories.js +1 -1
  591. package/es/icon/fill/BarChart16.stories.js.map +1 -1
  592. package/es/icon/fill/BoxDev16.stories.js +1 -1
  593. package/es/icon/fill/BoxDev16.stories.js.map +1 -1
  594. package/es/icon/fill/BoxNotes16.stories.js +1 -1
  595. package/es/icon/fill/BoxNotes16.stories.js.map +1 -1
  596. package/es/icon/fill/Calendar16.stories.js +1 -1
  597. package/es/icon/fill/Calendar16.stories.js.map +1 -1
  598. package/es/icon/fill/Caret8.stories.js +1 -1
  599. package/es/icon/fill/Caret8.stories.js.map +1 -1
  600. package/es/icon/fill/CaretBadge16.stories.js +1 -1
  601. package/es/icon/fill/CaretBadge16.stories.js.map +1 -1
  602. package/es/icon/fill/Checkmark16.stories.js +1 -1
  603. package/es/icon/fill/Checkmark16.stories.js.map +1 -1
  604. package/es/icon/fill/CheckmarkBadge16.stories.js +1 -1
  605. package/es/icon/fill/CheckmarkBadge16.stories.js.map +1 -1
  606. package/es/icon/fill/CircleBackButton24.stories.js +1 -1
  607. package/es/icon/fill/CircleBackButton24.stories.js.map +1 -1
  608. package/es/icon/fill/CircleCloseButton24.stories.js +1 -1
  609. package/es/icon/fill/CircleCloseButton24.stories.js.map +1 -1
  610. package/es/icon/fill/Classify16.stories.js +1 -1
  611. package/es/icon/fill/Classify16.stories.js.map +1 -1
  612. package/es/icon/fill/ClearBadge16.stories.js +1 -1
  613. package/es/icon/fill/ClearBadge16.stories.js.map +1 -1
  614. package/es/icon/fill/ClockBadge16.stories.js +1 -1
  615. package/es/icon/fill/ClockBadge16.stories.js.map +1 -1
  616. package/es/icon/fill/CloudUpload16.stories.js +1 -1
  617. package/es/icon/fill/CloudUpload16.stories.js.map +1 -1
  618. package/es/icon/fill/Code16.stories.js +1 -1
  619. package/es/icon/fill/Code16.stories.js.map +1 -1
  620. package/es/icon/fill/Collection16.stories.js +1 -1
  621. package/es/icon/fill/Collection16.stories.js.map +1 -1
  622. package/es/icon/fill/CollectionBolt16.stories.js +1 -1
  623. package/es/icon/fill/CollectionBolt16.stories.js.map +1 -1
  624. package/es/icon/fill/CollectionPlus16.stories.js +1 -1
  625. package/es/icon/fill/CollectionPlus16.stories.js.map +1 -1
  626. package/es/icon/fill/CollectionStar16.stories.js +1 -1
  627. package/es/icon/fill/CollectionStar16.stories.js.map +1 -1
  628. package/es/icon/fill/CreditCard16.stories.js +1 -1
  629. package/es/icon/fill/CreditCard16.stories.js.map +1 -1
  630. package/es/icon/fill/Download16.stories.js +1 -1
  631. package/es/icon/fill/Download16.stories.js.map +1 -1
  632. package/es/icon/fill/EmailNotification16.stories.js +1 -1
  633. package/es/icon/fill/EmailNotification16.stories.js.map +1 -1
  634. package/es/icon/fill/ExportArrow16.stories.js +1 -1
  635. package/es/icon/fill/ExportArrow16.stories.js.map +1 -1
  636. package/es/icon/fill/Feed16.stories.js +1 -1
  637. package/es/icon/fill/Feed16.stories.js.map +1 -1
  638. package/es/icon/fill/FileAudio16.stories.js +1 -1
  639. package/es/icon/fill/FileAudio16.stories.js.map +1 -1
  640. package/es/icon/fill/FileBookmark16.stories.js +1 -1
  641. package/es/icon/fill/FileBookmark16.stories.js.map +1 -1
  642. package/es/icon/fill/FileBoxNote16.stories.js +1 -1
  643. package/es/icon/fill/FileBoxNote16.stories.js.map +1 -1
  644. package/es/icon/fill/FileCanvas16.stories.js +1 -1
  645. package/es/icon/fill/FileCanvas16.stories.js.map +1 -1
  646. package/es/icon/fill/FileCode16.stories.js +1 -1
  647. package/es/icon/fill/FileCode16.stories.js.map +1 -1
  648. package/es/icon/fill/FileCopy16.stories.js +1 -1
  649. package/es/icon/fill/FileCopy16.stories.js.map +1 -1
  650. package/es/icon/fill/FileDefault16.stories.js +1 -1
  651. package/es/icon/fill/FileDefault16.stories.js.map +1 -1
  652. package/es/icon/fill/FileDicom16.stories.js +1 -1
  653. package/es/icon/fill/FileDicom16.stories.js.map +1 -1
  654. package/es/icon/fill/FileDocs16.stories.js +1 -1
  655. package/es/icon/fill/FileDocs16.stories.js.map +1 -1
  656. package/es/icon/fill/FileDwg16.stories.js +1 -1
  657. package/es/icon/fill/FileDwg16.stories.js.map +1 -1
  658. package/es/icon/fill/FileExcel16.stories.js +1 -1
  659. package/es/icon/fill/FileExcel16.stories.js.map +1 -1
  660. package/es/icon/fill/FileIllustrator16.stories.js +1 -1
  661. package/es/icon/fill/FileIllustrator16.stories.js.map +1 -1
  662. package/es/icon/fill/FileImage16.stories.js +1 -1
  663. package/es/icon/fill/FileImage16.stories.js.map +1 -1
  664. package/es/icon/fill/FileIndesign16.stories.js +1 -1
  665. package/es/icon/fill/FileIndesign16.stories.js.map +1 -1
  666. package/es/icon/fill/FileKeynote16.stories.js +1 -1
  667. package/es/icon/fill/FileKeynote16.stories.js.map +1 -1
  668. package/es/icon/fill/FileNumbers16.stories.js +1 -1
  669. package/es/icon/fill/FileNumbers16.stories.js.map +1 -1
  670. package/es/icon/fill/FilePages16.stories.js +1 -1
  671. package/es/icon/fill/FilePages16.stories.js.map +1 -1
  672. package/es/icon/fill/FilePdf16.stories.js +1 -1
  673. package/es/icon/fill/FilePdf16.stories.js.map +1 -1
  674. package/es/icon/fill/FilePhotoshop16.stories.js +1 -1
  675. package/es/icon/fill/FilePhotoshop16.stories.js.map +1 -1
  676. package/es/icon/fill/FilePowerpoint16.stories.js +1 -1
  677. package/es/icon/fill/FilePowerpoint16.stories.js.map +1 -1
  678. package/es/icon/fill/FilePresentation16.stories.js +1 -1
  679. package/es/icon/fill/FilePresentation16.stories.js.map +1 -1
  680. package/es/icon/fill/FileSheets16.stories.js +1 -1
  681. package/es/icon/fill/FileSheets16.stories.js.map +1 -1
  682. package/es/icon/fill/FileSlides16.stories.js +1 -1
  683. package/es/icon/fill/FileSlides16.stories.js.map +1 -1
  684. package/es/icon/fill/FileSpreadsheet16.stories.js +1 -1
  685. package/es/icon/fill/FileSpreadsheet16.stories.js.map +1 -1
  686. package/es/icon/fill/FileText16.stories.js +1 -1
  687. package/es/icon/fill/FileText16.stories.js.map +1 -1
  688. package/es/icon/fill/FileThreeD16.stories.js +1 -1
  689. package/es/icon/fill/FileThreeD16.stories.js.map +1 -1
  690. package/es/icon/fill/FileVector16.stories.js +1 -1
  691. package/es/icon/fill/FileVector16.stories.js.map +1 -1
  692. package/es/icon/fill/FileVideo16.stories.js +1 -1
  693. package/es/icon/fill/FileVideo16.stories.js.map +1 -1
  694. package/es/icon/fill/FileWord16.stories.js +1 -1
  695. package/es/icon/fill/FileWord16.stories.js.map +1 -1
  696. package/es/icon/fill/FileZip16.stories.js +1 -1
  697. package/es/icon/fill/FileZip16.stories.js.map +1 -1
  698. package/es/icon/fill/Filter16.stories.js +1 -1
  699. package/es/icon/fill/Filter16.stories.js.map +1 -1
  700. package/es/icon/fill/Folder16.stories.js +1 -1
  701. package/es/icon/fill/Folder16.stories.js.map +1 -1
  702. package/es/icon/fill/FolderExternal16.stories.js +1 -1
  703. package/es/icon/fill/FolderExternal16.stories.js.map +1 -1
  704. package/es/icon/fill/FolderPersonal16.stories.js +1 -1
  705. package/es/icon/fill/FolderPersonal16.stories.js.map +1 -1
  706. package/es/icon/fill/FolderShared16.stories.js +1 -1
  707. package/es/icon/fill/FolderShared16.stories.js.map +1 -1
  708. package/es/icon/fill/Gear16.stories.js +1 -1
  709. package/es/icon/fill/Gear16.stories.js.map +1 -1
  710. package/es/icon/fill/GlobeBadge16.stories.js +1 -1
  711. package/es/icon/fill/GlobeBadge16.stories.js.map +1 -1
  712. package/es/icon/fill/Hamburger20.stories.js +1 -1
  713. package/es/icon/fill/Hamburger20.stories.js.map +1 -1
  714. package/es/icon/fill/Help20.stories.js +1 -1
  715. package/es/icon/fill/Help20.stories.js.map +1 -1
  716. package/es/icon/fill/InProgress16.stories.js +1 -1
  717. package/es/icon/fill/InProgress16.stories.js.map +1 -1
  718. package/es/icon/fill/Info16.stories.js +1 -1
  719. package/es/icon/fill/Info16.stories.js.map +1 -1
  720. package/es/icon/fill/InfoBadge16.stories.js +1 -1
  721. package/es/icon/fill/InfoBadge16.stories.js.map +1 -1
  722. package/es/icon/fill/LightningBolt16.stories.js +1 -1
  723. package/es/icon/fill/LightningBolt16.stories.js.map +1 -1
  724. package/es/icon/fill/Lock16.stories.js +1 -1
  725. package/es/icon/fill/Lock16.stories.js.map +1 -1
  726. package/es/icon/fill/Megaphone20.stories.js +1 -1
  727. package/es/icon/fill/Megaphone20.stories.js.map +1 -1
  728. package/es/icon/fill/Minus16.stories.js +1 -1
  729. package/es/icon/fill/Minus16.stories.js.map +1 -1
  730. package/es/icon/fill/Move16.stories.js +1 -1
  731. package/es/icon/fill/Move16.stories.js.map +1 -1
  732. package/es/icon/fill/MoveCopy16.stories.js +1 -1
  733. package/es/icon/fill/MoveCopy16.stories.js.map +1 -1
  734. package/es/icon/fill/Overflow16.stories.js +1 -1
  735. package/es/icon/fill/Overflow16.stories.js.map +1 -1
  736. package/es/icon/fill/PaperAirplane16.stories.js +1 -1
  737. package/es/icon/fill/PaperAirplane16.stories.js.map +1 -1
  738. package/es/icon/fill/Pencil16.stories.js +1 -1
  739. package/es/icon/fill/Pencil16.stories.js.map +1 -1
  740. package/es/icon/fill/Picture16.stories.js +1 -1
  741. package/es/icon/fill/Picture16.stories.js.map +1 -1
  742. package/es/icon/fill/Plus16.stories.js +1 -1
  743. package/es/icon/fill/Plus16.stories.js.map +1 -1
  744. package/es/icon/fill/PlusBadge16.stories.js +1 -1
  745. package/es/icon/fill/PlusBadge16.stories.js.map +1 -1
  746. package/es/icon/fill/PointerChevronDown24.stories.js +1 -1
  747. package/es/icon/fill/PointerChevronDown24.stories.js.map +1 -1
  748. package/es/icon/fill/Printer16.stories.js +1 -1
  749. package/es/icon/fill/Printer16.stories.js.map +1 -1
  750. package/es/icon/fill/Relay16.stories.js +1 -1
  751. package/es/icon/fill/Relay16.stories.js.map +1 -1
  752. package/es/icon/fill/RelayClassic16.stories.js +1 -1
  753. package/es/icon/fill/RelayClassic16.stories.js.map +1 -1
  754. package/es/icon/fill/Ribbon16.stories.js +1 -1
  755. package/es/icon/fill/Ribbon16.stories.js.map +1 -1
  756. package/es/icon/fill/Scribble16.stories.js +1 -1
  757. package/es/icon/fill/Scribble16.stories.js.map +1 -1
  758. package/es/icon/fill/Search16.stories.js +1 -1
  759. package/es/icon/fill/Search16.stories.js.map +1 -1
  760. package/es/icon/fill/Sign16.stories.js +1 -1
  761. package/es/icon/fill/Sign16.stories.js.map +1 -1
  762. package/es/icon/fill/SignFieldCheckBox16.stories.js +1 -1
  763. package/es/icon/fill/SignFieldCheckBox16.stories.js.map +1 -1
  764. package/es/icon/fill/SignFieldSignature16.stories.js +1 -1
  765. package/es/icon/fill/SignFieldSignature16.stories.js.map +1 -1
  766. package/es/icon/fill/SignFieldTextInput16.stories.js +1 -1
  767. package/es/icon/fill/SignFieldTextInput16.stories.js.map +1 -1
  768. package/es/icon/fill/SignMe32.stories.js +1 -1
  769. package/es/icon/fill/SignMe32.stories.js.map +1 -1
  770. package/es/icon/fill/SignMeOthers32.stories.js +1 -1
  771. package/es/icon/fill/SignMeOthers32.stories.js.map +1 -1
  772. package/es/icon/fill/SignOthers32.stories.js +1 -1
  773. package/es/icon/fill/SignOthers32.stories.js.map +1 -1
  774. package/es/icon/fill/Skills16.stories.js +1 -1
  775. package/es/icon/fill/Skills16.stories.js.map +1 -1
  776. package/es/icon/fill/Tag16.stories.js +1 -1
  777. package/es/icon/fill/Tag16.stories.js.map +1 -1
  778. package/es/icon/fill/Task16.stories.js +1 -1
  779. package/es/icon/fill/Task16.stories.js.map +1 -1
  780. package/es/icon/fill/Trash16.stories.js +1 -1
  781. package/es/icon/fill/Trash16.stories.js.map +1 -1
  782. package/es/icon/fill/TwoPeople16.stories.js +1 -1
  783. package/es/icon/fill/TwoPeople16.stories.js.map +1 -1
  784. package/es/icon/fill/Upload16.stories.js +1 -1
  785. package/es/icon/fill/Upload16.stories.js.map +1 -1
  786. package/es/icon/fill/UserSettings16.stories.js +1 -1
  787. package/es/icon/fill/UserSettings16.stories.js.map +1 -1
  788. package/es/icon/fill/Workflow16.stories.js +1 -1
  789. package/es/icon/fill/Workflow16.stories.js.map +1 -1
  790. package/es/icon/fill/X16.stories.js +1 -1
  791. package/es/icon/fill/X16.stories.js.map +1 -1
  792. package/es/icon/line/AlarmClock16.stories.js +1 -1
  793. package/es/icon/line/AlarmClock16.stories.js.map +1 -1
  794. package/es/icon/line/AlertBubble16.stories.js +1 -1
  795. package/es/icon/line/AlertBubble16.stories.js.map +1 -1
  796. package/es/icon/line/Apps16.stories.js +1 -1
  797. package/es/icon/line/Apps16.stories.js.map +1 -1
  798. package/es/icon/line/ArrowBoxRight16.stories.js +1 -1
  799. package/es/icon/line/ArrowBoxRight16.stories.js.map +1 -1
  800. package/es/icon/line/Avatar16.stories.js +1 -1
  801. package/es/icon/line/Avatar16.stories.js.map +1 -1
  802. package/es/icon/line/AvatarBadge16.stories.js +1 -1
  803. package/es/icon/line/AvatarBadge16.stories.js.map +1 -1
  804. package/es/icon/line/AvatarPlusBadge16.stories.js +1 -1
  805. package/es/icon/line/AvatarPlusBadge16.stories.js.map +1 -1
  806. package/es/icon/line/AvatarXBadge16.stories.js +1 -1
  807. package/es/icon/line/AvatarXBadge16.stories.js.map +1 -1
  808. package/es/icon/line/BoxAi.stories.js +1 -1
  809. package/es/icon/line/BoxAi.stories.js.map +1 -1
  810. package/es/icon/line/BoxDev16.stories.js +1 -1
  811. package/es/icon/line/BoxDev16.stories.js.map +1 -1
  812. package/es/icon/line/Bug16.stories.js +1 -1
  813. package/es/icon/line/Bug16.stories.js.map +1 -1
  814. package/es/icon/line/Checkmark16.stories.js +1 -1
  815. package/es/icon/line/Checkmark16.stories.js.map +1 -1
  816. package/es/icon/line/CheckmarkBadge16.stories.js +1 -1
  817. package/es/icon/line/CheckmarkBadge16.stories.js.map +1 -1
  818. package/es/icon/line/CircleCheck16.stories.js +1 -1
  819. package/es/icon/line/CircleCheck16.stories.js.map +1 -1
  820. package/es/icon/line/CircleX16.stories.js +1 -1
  821. package/es/icon/line/CircleX16.stories.js.map +1 -1
  822. package/es/icon/line/ClassificationBadge16.stories.js +1 -1
  823. package/es/icon/line/ClassificationBadge16.stories.js.map +1 -1
  824. package/es/icon/line/ClockArrow16.stories.js +1 -1
  825. package/es/icon/line/ClockArrow16.stories.js.map +1 -1
  826. package/es/icon/line/ClockBadge16.stories.js +1 -1
  827. package/es/icon/line/ClockBadge16.stories.js.map +1 -1
  828. package/es/icon/line/CloudWithArrow16.stories.js +1 -1
  829. package/es/icon/line/CloudWithArrow16.stories.js.map +1 -1
  830. package/es/icon/line/CoAuthoringBadge16.stories.js +1 -1
  831. package/es/icon/line/CoAuthoringBadge16.stories.js.map +1 -1
  832. package/es/icon/line/CoEdit16.stories.js +1 -1
  833. package/es/icon/line/CoEdit16.stories.js.map +1 -1
  834. package/es/icon/line/Collaborations16.stories.js +1 -1
  835. package/es/icon/line/Collaborations16.stories.js.map +1 -1
  836. package/es/icon/line/Collection16.stories.js +1 -1
  837. package/es/icon/line/Collection16.stories.js.map +1 -1
  838. package/es/icon/line/CollectionBolt16.stories.js +1 -1
  839. package/es/icon/line/CollectionBolt16.stories.js.map +1 -1
  840. package/es/icon/line/CollectionPlus16.stories.js +1 -1
  841. package/es/icon/line/CollectionPlus16.stories.js.map +1 -1
  842. package/es/icon/line/CollectionStar16.stories.js +1 -1
  843. package/es/icon/line/CollectionStar16.stories.js.map +1 -1
  844. package/es/icon/line/CommentBubble16.stories.js +1 -1
  845. package/es/icon/line/CommentBubble16.stories.js.map +1 -1
  846. package/es/icon/line/CrosshairRegion32.stories.js +1 -1
  847. package/es/icon/line/CrosshairRegion32.stories.js.map +1 -1
  848. package/es/icon/line/DocInfo16.stories.js +1 -1
  849. package/es/icon/line/DocInfo16.stories.js.map +1 -1
  850. package/es/icon/line/Download16.stories.js +1 -1
  851. package/es/icon/line/Download16.stories.js.map +1 -1
  852. package/es/icon/line/Email16.stories.js +1 -1
  853. package/es/icon/line/Email16.stories.js.map +1 -1
  854. package/es/icon/line/EmailAddress16.stories.js +1 -1
  855. package/es/icon/line/EmailAddress16.stories.js.map +1 -1
  856. package/es/icon/line/EnvelopeBadge16.stories.js +1 -1
  857. package/es/icon/line/EnvelopeBadge16.stories.js.map +1 -1
  858. package/es/icon/line/ExclamationMarkBadge16.stories.js +1 -1
  859. package/es/icon/line/ExclamationMarkBadge16.stories.js.map +1 -1
  860. package/es/icon/line/ExportArrow16.stories.js +1 -1
  861. package/es/icon/line/ExportArrow16.stories.js.map +1 -1
  862. package/es/icon/line/FileDescription16.stories.js +1 -1
  863. package/es/icon/line/FileDescription16.stories.js.map +1 -1
  864. package/es/icon/line/Folder16.stories.js +1 -1
  865. package/es/icon/line/Folder16.stories.js.map +1 -1
  866. package/es/icon/line/Gear16.stories.js +1 -1
  867. package/es/icon/line/Gear16.stories.js.map +1 -1
  868. package/es/icon/line/GenericCopy16.stories.js +1 -1
  869. package/es/icon/line/GenericCopy16.stories.js.map +1 -1
  870. package/es/icon/line/GlobeBadge16.stories.js +1 -1
  871. package/es/icon/line/GlobeBadge16.stories.js.map +1 -1
  872. package/es/icon/line/Help16.stories.js +1 -1
  873. package/es/icon/line/Help16.stories.js.map +1 -1
  874. package/es/icon/line/Hidden16.stories.js +1 -1
  875. package/es/icon/line/Hidden16.stories.js.map +1 -1
  876. package/es/icon/line/History16.stories.js +1 -1
  877. package/es/icon/line/History16.stories.js.map +1 -1
  878. package/es/icon/line/InfoBadge16.stories.js +1 -1
  879. package/es/icon/line/InfoBadge16.stories.js.map +1 -1
  880. package/es/icon/line/Key16.stories.js +1 -1
  881. package/es/icon/line/Key16.stories.js.map +1 -1
  882. package/es/icon/line/Link16.stories.js +1 -1
  883. package/es/icon/line/Link16.stories.js.map +1 -1
  884. package/es/icon/line/LinkBadge16.stories.js +1 -1
  885. package/es/icon/line/LinkBadge16.stories.js.map +1 -1
  886. package/es/icon/line/List16.stories.js +1 -1
  887. package/es/icon/line/List16.stories.js.map +1 -1
  888. package/es/icon/line/Lock16.stories.js +1 -1
  889. package/es/icon/line/Lock16.stories.js.map +1 -1
  890. package/es/icon/line/LockBadge16.stories.js +1 -1
  891. package/es/icon/line/LockBadge16.stories.js.map +1 -1
  892. package/es/icon/line/MetadataBadge16.stories.js +1 -1
  893. package/es/icon/line/MetadataBadge16.stories.js.map +1 -1
  894. package/es/icon/line/MoveCopy16.stories.js +1 -1
  895. package/es/icon/line/MoveCopy16.stories.js.map +1 -1
  896. package/es/icon/line/Pencil16.stories.js +1 -1
  897. package/es/icon/line/Pencil16.stories.js.map +1 -1
  898. package/es/icon/line/PencilBadge16.stories.js +1 -1
  899. package/es/icon/line/PencilBadge16.stories.js.map +1 -1
  900. package/es/icon/line/Plane16.stories.js +1 -1
  901. package/es/icon/line/Plane16.stories.js.map +1 -1
  902. package/es/icon/line/Plus16.stories.js +1 -1
  903. package/es/icon/line/Plus16.stories.js.map +1 -1
  904. package/es/icon/line/Power16.stories.js +1 -1
  905. package/es/icon/line/Power16.stories.js.map +1 -1
  906. package/es/icon/line/Question16.stories.js +1 -1
  907. package/es/icon/line/Question16.stories.js.map +1 -1
  908. package/es/icon/line/Redo16.stories.js +1 -1
  909. package/es/icon/line/Redo16.stories.js.map +1 -1
  910. package/es/icon/line/Relay16.stories.js +1 -1
  911. package/es/icon/line/Relay16.stories.js.map +1 -1
  912. package/es/icon/line/Report16.stories.js +1 -1
  913. package/es/icon/line/Report16.stories.js.map +1 -1
  914. package/es/icon/line/Retry16.stories.js +1 -1
  915. package/es/icon/line/Retry16.stories.js.map +1 -1
  916. package/es/icon/line/Rocket16.stories.js +1 -1
  917. package/es/icon/line/Rocket16.stories.js.map +1 -1
  918. package/es/icon/line/RotatingArrows16.stories.js +1 -1
  919. package/es/icon/line/RotatingArrows16.stories.js.map +1 -1
  920. package/es/icon/line/Sharrow16.stories.js +1 -1
  921. package/es/icon/line/Sharrow16.stories.js.map +1 -1
  922. package/es/icon/line/Shield16.stories.js +1 -1
  923. package/es/icon/line/Shield16.stories.js.map +1 -1
  924. package/es/icon/line/Sign16.stories.js +1 -1
  925. package/es/icon/line/Sign16.stories.js.map +1 -1
  926. package/es/icon/line/SignTinycon16.stories.js +1 -1
  927. package/es/icon/line/SignTinycon16.stories.js.map +1 -1
  928. package/es/icon/line/Star16.stories.js +1 -1
  929. package/es/icon/line/Star16.stories.js.map +1 -1
  930. package/es/icon/line/SyncArrows16.stories.js +1 -1
  931. package/es/icon/line/SyncArrows16.stories.js.map +1 -1
  932. package/es/icon/line/Template16.stories.js +1 -1
  933. package/es/icon/line/Template16.stories.js.map +1 -1
  934. package/es/icon/line/TextLeft16.stories.js +1 -1
  935. package/es/icon/line/TextLeft16.stories.js.map +1 -1
  936. package/es/icon/line/Tool16.stories.js +1 -1
  937. package/es/icon/line/Tool16.stories.js.map +1 -1
  938. package/es/icon/line/Trash16.stories.js +1 -1
  939. package/es/icon/line/Trash16.stories.js.map +1 -1
  940. package/es/icon/line/TriangleAlert16.stories.js +1 -1
  941. package/es/icon/line/TriangleAlert16.stories.js.map +1 -1
  942. package/es/icon/line/Undo16.stories.js +1 -1
  943. package/es/icon/line/Undo16.stories.js.map +1 -1
  944. package/es/icon/line/Unlock16.stories.js +1 -1
  945. package/es/icon/line/Unlock16.stories.js.map +1 -1
  946. package/es/icon/line/Upload16.stories.js +1 -1
  947. package/es/icon/line/Upload16.stories.js.map +1 -1
  948. package/es/icon/line/Video16.stories.js +1 -1
  949. package/es/icon/line/Video16.stories.js.map +1 -1
  950. package/es/icon/line/View16.stories.js +1 -1
  951. package/es/icon/line/View16.stories.js.map +1 -1
  952. package/es/icon/line/XBadge16.stories.js +1 -1
  953. package/es/icon/line/XBadge16.stories.js.map +1 -1
  954. package/es/icon/logo/AccountBilling32.stories.js +1 -1
  955. package/es/icon/logo/AccountBilling32.stories.js.map +1 -1
  956. package/es/icon/logo/AdminFaq32.stories.js +1 -1
  957. package/es/icon/logo/AdminFaq32.stories.js.map +1 -1
  958. package/es/icon/logo/AdminReferences32.stories.js +1 -1
  959. package/es/icon/logo/AdminReferences32.stories.js.map +1 -1
  960. package/es/icon/logo/AdobeAcrobat32.stories.js +1 -1
  961. package/es/icon/logo/AdobeAcrobat32.stories.js.map +1 -1
  962. package/es/icon/logo/Apps32.stories.js +1 -1
  963. package/es/icon/logo/Apps32.stories.js.map +1 -1
  964. package/es/icon/logo/BoxAiLogo.stories.js +1 -1
  965. package/es/icon/logo/BoxAiLogo.stories.js.map +1 -1
  966. package/es/icon/logo/BoxLogo.stories.js +1 -1
  967. package/es/icon/logo/BoxLogo.stories.js.map +1 -1
  968. package/es/icon/logo/BoxSign28.stories.js +1 -1
  969. package/es/icon/logo/BoxSign28.stories.js.map +1 -1
  970. package/es/icon/logo/BoxSign32.stories.js +1 -1
  971. package/es/icon/logo/BoxSign32.stories.js.map +1 -1
  972. package/es/icon/logo/ContentSharing32.stories.js +1 -1
  973. package/es/icon/logo/ContentSharing32.stories.js.map +1 -1
  974. package/es/icon/logo/CustomSetup32.stories.js +1 -1
  975. package/es/icon/logo/CustomSetup32.stories.js.map +1 -1
  976. package/es/icon/logo/DeviceTrust32.stories.js +1 -1
  977. package/es/icon/logo/DeviceTrust32.stories.js.map +1 -1
  978. package/es/icon/logo/HelpArticle32.stories.js +1 -1
  979. package/es/icon/logo/HelpArticle32.stories.js.map +1 -1
  980. package/es/icon/logo/HowToGuides32.stories.js +1 -1
  981. package/es/icon/logo/HowToGuides32.stories.js.map +1 -1
  982. package/es/icon/logo/IconBoxApp512.stories.js +1 -1
  983. package/es/icon/logo/IconBoxApp512.stories.js.map +1 -1
  984. package/es/icon/logo/KeynoteForMac32.stories.js +1 -1
  985. package/es/icon/logo/KeynoteForMac32.stories.js.map +1 -1
  986. package/es/icon/logo/ManageContent32.stories.js +1 -1
  987. package/es/icon/logo/ManageContent32.stories.js.map +1 -1
  988. package/es/icon/logo/ManageUsers32.stories.js +1 -1
  989. package/es/icon/logo/ManageUsers32.stories.js.map +1 -1
  990. package/es/icon/logo/Mobile32.stories.js +1 -1
  991. package/es/icon/logo/Mobile32.stories.js.map +1 -1
  992. package/es/icon/logo/Notifications32.stories.js +1 -1
  993. package/es/icon/logo/Notifications32.stories.js.map +1 -1
  994. package/es/icon/logo/NumbersForMac32.stories.js +1 -1
  995. package/es/icon/logo/NumbersForMac32.stories.js.map +1 -1
  996. package/es/icon/logo/PagesForMac32.stories.js +1 -1
  997. package/es/icon/logo/PagesForMac32.stories.js.map +1 -1
  998. package/es/icon/logo/Reporting32.stories.js +1 -1
  999. package/es/icon/logo/Reporting32.stories.js.map +1 -1
  1000. package/es/icon/logo/Security32.stories.js +1 -1
  1001. package/es/icon/logo/Security32.stories.js.map +1 -1
  1002. package/es/icon/logo/TroubleShootingTools32.stories.js +1 -1
  1003. package/es/icon/logo/TroubleShootingTools32.stories.js.map +1 -1
  1004. package/es/icon/logo/UserSettings32.stories.js +1 -1
  1005. package/es/icon/logo/UserSettings32.stories.js.map +1 -1
  1006. package/es/icons/collections/IconCollections.stories.js +1 -1
  1007. package/es/icons/collections/IconCollections.stories.js.map +1 -1
  1008. package/es/icons/collections/IconCollectionsAdd.stories.js +1 -1
  1009. package/es/icons/collections/IconCollectionsAdd.stories.js.map +1 -1
  1010. package/es/icons/collections/IconCollectionsBolt.stories.js +1 -1
  1011. package/es/icons/collections/IconCollectionsBolt.stories.js.map +1 -1
  1012. package/es/icons/collections/IconCollectionsFilled.stories.js +1 -1
  1013. package/es/icons/collections/IconCollectionsFilled.stories.js.map +1 -1
  1014. package/es/icons/collections/IconCollectionsStar.stories.js +1 -1
  1015. package/es/icons/collections/IconCollectionsStar.stories.js.map +1 -1
  1016. package/es/icons/collections/IconCollectionsStarFilled.stories.js +1 -1
  1017. package/es/icons/collections/IconCollectionsStarFilled.stories.js.map +1 -1
  1018. package/es/icons/collections/collections.stories.js +1 -1
  1019. package/es/icons/collections/collections.stories.js.map +1 -1
  1020. package/es/icons/icons.stories.js +1 -1
  1021. package/es/icons/icons.stories.js.map +1 -1
  1022. package/es/icons/two-toned/IconAnnotation.js +1 -1
  1023. package/es/icons/two-toned/IconAnnotation.js.map +1 -1
  1024. package/es/illustration/AllNewBox140.stories.js +1 -1
  1025. package/es/illustration/AllNewBox140.stories.js.map +1 -1
  1026. package/es/illustration/AppSupport140.stories.js +1 -1
  1027. package/es/illustration/AppSupport140.stories.js.map +1 -1
  1028. package/es/illustration/Bell140.stories.js +1 -1
  1029. package/es/illustration/Bell140.stories.js.map +1 -1
  1030. package/es/illustration/BoxDrive140.stories.js +1 -1
  1031. package/es/illustration/BoxDrive140.stories.js.map +1 -1
  1032. package/es/illustration/BoxMobile140.stories.js +1 -1
  1033. package/es/illustration/BoxMobile140.stories.js.map +1 -1
  1034. package/es/illustration/BudgetApproval56.stories.js +1 -1
  1035. package/es/illustration/BudgetApproval56.stories.js.map +1 -1
  1036. package/es/illustration/Certificate56.stories.js +1 -1
  1037. package/es/illustration/Certificate56.stories.js.map +1 -1
  1038. package/es/illustration/CertificateSigning56.stories.js +1 -1
  1039. package/es/illustration/CertificateSigning56.stories.js.map +1 -1
  1040. package/es/illustration/ChangeOrder56.stories.js +1 -1
  1041. package/es/illustration/ChangeOrder56.stories.js.map +1 -1
  1042. package/es/illustration/Clock140.stories.js +1 -1
  1043. package/es/illustration/Clock140.stories.js.map +1 -1
  1044. package/es/illustration/CollectionStar140.stories.js +1 -1
  1045. package/es/illustration/CollectionStar140.stories.js.map +1 -1
  1046. package/es/illustration/ContractorId56.stories.js +1 -1
  1047. package/es/illustration/ContractorId56.stories.js.map +1 -1
  1048. package/es/illustration/CreativeApproval56.stories.js +1 -1
  1049. package/es/illustration/CreativeApproval56.stories.js.map +1 -1
  1050. package/es/illustration/CreativeAssets56.stories.js +1 -1
  1051. package/es/illustration/CreativeAssets56.stories.js.map +1 -1
  1052. package/es/illustration/CustomApp56.stories.js +1 -1
  1053. package/es/illustration/CustomApp56.stories.js.map +1 -1
  1054. package/es/illustration/CustomSkill56.stories.js +1 -1
  1055. package/es/illustration/CustomSkill56.stories.js.map +1 -1
  1056. package/es/illustration/CustomTemplate56.stories.js +1 -1
  1057. package/es/illustration/CustomTemplate56.stories.js.map +1 -1
  1058. package/es/illustration/CustomerSupport140.stories.js +1 -1
  1059. package/es/illustration/CustomerSupport140.stories.js.map +1 -1
  1060. package/es/illustration/DiscoDanceParty140.stories.js +1 -1
  1061. package/es/illustration/DiscoDanceParty140.stories.js.map +1 -1
  1062. package/es/illustration/Discount140.stories.js +1 -1
  1063. package/es/illustration/Discount140.stories.js.map +1 -1
  1064. package/es/illustration/EmailVerification140.stories.js +1 -1
  1065. package/es/illustration/EmailVerification140.stories.js.map +1 -1
  1066. package/es/illustration/EmployeeId56.stories.js +1 -1
  1067. package/es/illustration/EmployeeId56.stories.js.map +1 -1
  1068. package/es/illustration/EmployeeReview56.stories.js +1 -1
  1069. package/es/illustration/EmployeeReview56.stories.js.map +1 -1
  1070. package/es/illustration/EmptyStateDetails.stories.js +1 -1
  1071. package/es/illustration/EmptyStateDetails.stories.js.map +1 -1
  1072. package/es/illustration/EmptyStateFolder140.stories.js +1 -1
  1073. package/es/illustration/EmptyStateFolder140.stories.js.map +1 -1
  1074. package/es/illustration/EmptyStatePreviewActivity140.stories.js +1 -1
  1075. package/es/illustration/EmptyStatePreviewActivity140.stories.js.map +1 -1
  1076. package/es/illustration/Envelope140.stories.js +1 -1
  1077. package/es/illustration/Envelope140.stories.js.map +1 -1
  1078. package/es/illustration/ErrorState404140.stories.js +1 -1
  1079. package/es/illustration/ErrorState404140.stories.js.map +1 -1
  1080. package/es/illustration/Files.stories.js +1 -1
  1081. package/es/illustration/Files.stories.js.map +1 -1
  1082. package/es/illustration/Files140.stories.js +1 -1
  1083. package/es/illustration/Files140.stories.js.map +1 -1
  1084. package/es/illustration/FinanceContract56.stories.js +1 -1
  1085. package/es/illustration/FinanceContract56.stories.js.map +1 -1
  1086. package/es/illustration/FolderArrow140.stories.js +1 -1
  1087. package/es/illustration/FolderArrow140.stories.js.map +1 -1
  1088. package/es/illustration/FolderFloat140.stories.js +1 -1
  1089. package/es/illustration/FolderFloat140.stories.js.map +1 -1
  1090. package/es/illustration/FolderPlane140.stories.js +1 -1
  1091. package/es/illustration/FolderPlane140.stories.js.map +1 -1
  1092. package/es/illustration/FolderStar140.stories.js +1 -1
  1093. package/es/illustration/FolderStar140.stories.js.map +1 -1
  1094. package/es/illustration/Gavel56.stories.js +1 -1
  1095. package/es/illustration/Gavel56.stories.js.map +1 -1
  1096. package/es/illustration/Handshake56.stories.js +1 -1
  1097. package/es/illustration/Handshake56.stories.js.map +1 -1
  1098. package/es/illustration/HandshakeAgreement56.stories.js +1 -1
  1099. package/es/illustration/HandshakeAgreement56.stories.js.map +1 -1
  1100. package/es/illustration/HatWand140.stories.js +1 -1
  1101. package/es/illustration/HatWand140.stories.js.map +1 -1
  1102. package/es/illustration/Keynote56.stories.js +1 -1
  1103. package/es/illustration/Keynote56.stories.js.map +1 -1
  1104. package/es/illustration/LegalContract56.stories.js +1 -1
  1105. package/es/illustration/LegalContract56.stories.js.map +1 -1
  1106. package/es/illustration/LegalFolder56.stories.js +1 -1
  1107. package/es/illustration/LegalFolder56.stories.js.map +1 -1
  1108. package/es/illustration/LimitedApp56.stories.js +1 -1
  1109. package/es/illustration/LimitedApp56.stories.js.map +1 -1
  1110. package/es/illustration/MarketingPlan56.stories.js +1 -1
  1111. package/es/illustration/MarketingPlan56.stories.js.map +1 -1
  1112. package/es/illustration/Megaphone140.stories.js +1 -1
  1113. package/es/illustration/Megaphone140.stories.js.map +1 -1
  1114. package/es/illustration/MetricsReview56.stories.js +1 -1
  1115. package/es/illustration/MetricsReview56.stories.js.map +1 -1
  1116. package/es/illustration/Microphone140.stories.js +1 -1
  1117. package/es/illustration/Microphone140.stories.js.map +1 -1
  1118. package/es/illustration/Missing140.stories.js +1 -1
  1119. package/es/illustration/Missing140.stories.js.map +1 -1
  1120. package/es/illustration/MoneyStack56.stories.js +1 -1
  1121. package/es/illustration/MoneyStack56.stories.js.map +1 -1
  1122. package/es/illustration/MonthlyReport56.stories.js +1 -1
  1123. package/es/illustration/MonthlyReport56.stories.js.map +1 -1
  1124. package/es/illustration/NotesStar140.stories.js +1 -1
  1125. package/es/illustration/NotesStar140.stories.js.map +1 -1
  1126. package/es/illustration/PlanSelection140.stories.js +1 -1
  1127. package/es/illustration/PlanSelection140.stories.js.map +1 -1
  1128. package/es/illustration/Playbook56.stories.js +1 -1
  1129. package/es/illustration/Playbook56.stories.js.map +1 -1
  1130. package/es/illustration/ProjectFolder56.stories.js +1 -1
  1131. package/es/illustration/ProjectFolder56.stories.js.map +1 -1
  1132. package/es/illustration/RecentFiles140.stories.js +1 -1
  1133. package/es/illustration/RecentFiles140.stories.js.map +1 -1
  1134. package/es/illustration/RelayPlanet140.stories.js +1 -1
  1135. package/es/illustration/RelayPlanet140.stories.js.map +1 -1
  1136. package/es/illustration/SalesContract56.stories.js +1 -1
  1137. package/es/illustration/SalesContract56.stories.js.map +1 -1
  1138. package/es/illustration/Sandbox140.stories.js +1 -1
  1139. package/es/illustration/Sandbox140.stories.js.map +1 -1
  1140. package/es/illustration/TaskList56.stories.js +1 -1
  1141. package/es/illustration/TaskList56.stories.js.map +1 -1
  1142. package/es/illustration/Transfers140.stories.js +1 -1
  1143. package/es/illustration/Transfers140.stories.js.map +1 -1
  1144. package/es/illustration/TrashEmpty140.stories.js +1 -1
  1145. package/es/illustration/TrashEmpty140.stories.js.map +1 -1
  1146. package/es/illustration/Unplugged140.stories.js +1 -1
  1147. package/es/illustration/Unplugged140.stories.js.map +1 -1
  1148. package/es/illustration/UploadCloud140.stories.js +1 -1
  1149. package/es/illustration/UploadCloud140.stories.js.map +1 -1
  1150. package/es/illustration/UserOrbit56.stories.js +1 -1
  1151. package/es/illustration/UserOrbit56.stories.js.map +1 -1
  1152. package/es/src/components/avatar/Avatar.d.ts +2 -2
  1153. package/es/src/components/avatar/Avatar.stories.d.ts +2 -2
  1154. package/es/src/components/badge/Badge.d.ts +1 -1
  1155. package/es/src/components/badge/types.d.ts +1 -1
  1156. package/es/src/components/badgeable/Badgeable.d.ts +1 -1
  1157. package/es/src/components/button/Button.d.ts +1 -1
  1158. package/es/src/components/checkbox/CheckboxField.d.ts +1 -1
  1159. package/es/src/components/close-button/CloseButton.d.ts +2 -2
  1160. package/es/src/components/close-button/CloseButton.stories.d.ts +2 -2
  1161. package/es/src/components/count-badge/CountBadge.d.ts +1 -1
  1162. package/es/src/components/date-picker/DatePicker.d.ts +9 -9
  1163. package/es/src/components/date-picker/DatePicker.stories.d.ts +2 -2
  1164. package/es/src/components/footer-indicator/FooterIndicator.d.ts +1 -1
  1165. package/es/src/components/ghost/Ghost.d.ts +2 -2
  1166. package/es/src/components/ghost/Ghost.stories.d.ts +3 -3
  1167. package/es/src/components/guide-tooltip/GuideTooltip.d.ts +2 -2
  1168. package/es/src/components/header/Header.d.ts +1 -1
  1169. package/es/src/components/image-tooltip/ImageTooltip.d.ts +2 -2
  1170. package/es/src/components/image-tooltip/ImageTooltipContent.d.ts +2 -2
  1171. package/es/src/components/label/HiddenLabel.d.ts +3 -1
  1172. package/es/src/components/label/Label.d.ts +3 -1
  1173. package/es/src/components/label/Label.stories.d.ts +1 -1
  1174. package/es/src/components/label/LabelPrimitive.d.ts +3 -1
  1175. package/es/src/components/label/StandardLabel.d.ts +3 -1
  1176. package/es/src/components/loading-indicator/makeLoadable.d.ts +1 -1
  1177. package/es/src/components/media/Media.d.ts +2 -2
  1178. package/es/src/components/media/MediaMenu.d.ts +2 -2
  1179. package/es/src/components/media/stories/Media.stories.d.ts +2 -2
  1180. package/es/src/components/media/stories/MediaMenu.stories.d.ts +2 -2
  1181. package/es/src/components/menu/Menu.d.ts +1 -1
  1182. package/es/src/components/menu/MenuContext.d.ts +1 -1
  1183. package/es/src/components/plain-button/index.d.ts +1 -1
  1184. package/es/src/components/preview/PreviewLoading.d.ts +1 -1
  1185. package/es/src/components/preview/PreviewLoadingRing.d.ts +1 -1
  1186. package/es/src/components/preview/previewIcons.d.ts +7 -3
  1187. package/es/src/components/radio/RadioButtonField.d.ts +1 -1
  1188. package/es/src/components/radio/RadioGroup.d.ts +1 -1
  1189. package/es/src/components/radio/RadioGroupField.d.ts +1 -1
  1190. package/es/src/components/search-form/SearchActions.d.ts +16 -0
  1191. package/es/src/components/search-form/messages.d.ts +18 -0
  1192. package/es/src/components/time-input/TimeInput.d.ts +3 -3
  1193. package/es/src/components/time-input/TimeInput.stories.d.ts +2 -2
  1194. package/es/src/components/time-input/TimeInputUtils.d.ts +2 -2
  1195. package/es/src/components/tooltip/CloseButton.d.ts +3 -3
  1196. package/es/src/components/tooltip/Tooltip.d.ts +10 -10
  1197. package/es/src/components/tooltip/index.d.ts +1 -1
  1198. package/es/src/elements/common/annotator-context/types.d.ts +2 -2
  1199. package/es/src/elements/common/annotator-context/withAnnotations.d.ts +5 -5
  1200. package/es/src/elements/common/current-user/withCurrentUser.d.ts +4 -4
  1201. package/es/src/elements/common/nav-router/NavRouter.d.ts +1 -1
  1202. package/es/src/elements/common/nav-router/types.d.ts +1 -1
  1203. package/es/src/elements/content-preview/PreviewMask.d.ts +1 -1
  1204. package/es/src/elements/content-sidebar/SidebarNavSignButton.d.ts +24 -4
  1205. package/es/src/elements/content-sidebar/activity-feed/ActivityCard.d.ts +1 -1
  1206. package/es/src/elements/content-sidebar/activity-feed/SelectableActivityCard.d.ts +1 -1
  1207. package/es/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.d.ts +1 -1
  1208. package/es/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.d.ts +3 -3
  1209. package/es/src/elements/content-sidebar/activity-feed/common/activity-datestamp/ActivityDatestamp.d.ts +2 -2
  1210. package/es/src/elements/content-sidebar/activity-feed/illustrations/ActivityFeedEmptyStateIllustration.d.ts +1 -1
  1211. package/es/src/features/content-answers/Answer.d.ts +7 -0
  1212. package/es/src/features/content-answers/ContentAnswers.d.ts +10 -0
  1213. package/es/src/features/content-answers/ContentAnswersGridCard.d.ts +7 -0
  1214. package/es/src/features/content-answers/ContentAnswersModal.d.ts +10 -0
  1215. package/es/src/features/content-answers/ContentAnswersModalContent.d.ts +11 -0
  1216. package/es/src/features/content-answers/ContentAnswersModalError.d.ts +3 -0
  1217. package/es/src/features/content-answers/ContentAnswersModalFooter.d.ts +18 -0
  1218. package/es/src/features/content-answers/ContentAnswersModalFooterActions.d.ts +7 -0
  1219. package/es/src/features/content-answers/ContentAnswersOpenButton.d.ts +16 -0
  1220. package/es/src/features/content-answers/InlineError.d.ts +3 -0
  1221. package/es/src/features/content-answers/LoadingElement.d.ts +3 -0
  1222. package/es/src/features/content-answers/Question.d.ts +8 -0
  1223. package/es/src/features/content-answers/WelcomeMessage.d.ts +6 -0
  1224. package/es/src/features/content-answers/__mocks__/mocks.d.ts +23 -0
  1225. package/es/src/features/content-answers/__tests__/Answer.test.d.ts +1 -0
  1226. package/es/src/features/content-answers/__tests__/ContentAnswers.test.d.ts +1 -0
  1227. package/es/src/features/content-answers/__tests__/ContentAnswersGridCard.test.d.ts +1 -0
  1228. package/es/src/features/content-answers/__tests__/ContentAnswersModal.test.d.ts +1 -0
  1229. package/es/src/features/content-answers/__tests__/ContentAnswersModalContent.test.d.ts +1 -0
  1230. package/es/src/features/content-answers/__tests__/ContentAnswersModalError.test.d.ts +1 -0
  1231. package/es/src/features/content-answers/__tests__/ContentAnswersModalFooter.test.d.ts +1 -0
  1232. package/es/src/features/content-answers/__tests__/ContentAnswersModalFooterActions.d.ts +1 -0
  1233. package/es/src/features/content-answers/__tests__/ContentAnswersOpenButton.test.d.ts +1 -0
  1234. package/es/src/features/content-answers/__tests__/InlineError.test.d.ts +1 -0
  1235. package/es/src/features/content-answers/__tests__/Question.test.d.ts +1 -0
  1236. package/es/src/features/content-answers/__tests__/WelcomeMessage.test.d.ts +1 -0
  1237. package/es/src/features/content-answers/constants.d.ts +7 -0
  1238. package/es/src/features/content-answers/index.d.ts +1 -0
  1239. package/es/src/features/content-answers/messages.d.ts +83 -0
  1240. package/es/src/features/content-insights/CompactCount.d.ts +2 -2
  1241. package/es/src/features/content-insights/GraphCardPreviewsSummary.d.ts +2 -2
  1242. package/es/src/features/content-insights/MetricSummary.d.ts +2 -2
  1243. package/es/src/features/content-insights/TrendPill.d.ts +2 -2
  1244. package/es/src/features/content-insights/charts/bar/BarChart.d.ts +1 -1
  1245. package/es/src/features/content-insights/charts/types.d.ts +2 -2
  1246. package/es/src/features/content-insights/constants.d.ts +30 -18
  1247. package/es/src/features/content-insights/types.d.ts +9 -9
  1248. package/es/src/features/presence/PresenceAvatarList.d.ts +2 -2
  1249. package/es/src/features/presence/PresenceAvatarTooltipContent.d.ts +15 -3
  1250. package/es/src/features/sandbox-banner/SandboxBanner.d.ts +1 -1
  1251. package/es/src/icons/file/IconFileBase.d.ts +1 -1
  1252. package/es/styles/colors.stories.js +1 -1
  1253. package/es/styles/colors.stories.js.map +1 -1
  1254. package/es/styles/common/_buttons.scss +1 -1
  1255. package/es/styles/constants/_buttons.scss +1 -0
  1256. package/es/styles/typography.stories.js +1 -1
  1257. package/es/styles/typography.stories.js.map +1 -1
  1258. package/es/utils/Browser.js +11 -0
  1259. package/es/utils/Browser.js.flow +10 -0
  1260. package/es/utils/Browser.js.map +1 -1
  1261. package/es/utils/comparator.js +1 -1
  1262. package/es/utils/comparator.js.flow +1 -1
  1263. package/es/utils/comparator.js.map +1 -1
  1264. package/es/utils/createTheme.stories.js +1 -1
  1265. package/es/utils/createTheme.stories.js.flow +1 -1
  1266. package/es/utils/createTheme.stories.js.map +1 -1
  1267. package/es/utils/fields.js +3 -3
  1268. package/es/utils/fields.js.flow +3 -0
  1269. package/es/utils/fields.js.map +1 -1
  1270. package/es/utils/flatten.js +1 -1
  1271. package/es/utils/flatten.js.flow +6 -1
  1272. package/es/utils/flatten.js.map +1 -1
  1273. package/es/utils/size.js +5 -5
  1274. package/es/utils/size.js.flow +5 -5
  1275. package/es/utils/size.js.map +1 -1
  1276. package/es/utils/sorter.js +1 -1
  1277. package/es/utils/sorter.js.flow +1 -1
  1278. package/es/utils/sorter.js.map +1 -1
  1279. package/flow-typed/box-ui-elements.js +1 -0
  1280. package/i18n/bn-IN.js +19 -1
  1281. package/i18n/bn-IN.properties +38 -2
  1282. package/i18n/da-DK.js +19 -1
  1283. package/i18n/da-DK.properties +38 -2
  1284. package/i18n/de-DE.js +19 -1
  1285. package/i18n/de-DE.properties +38 -2
  1286. package/i18n/en-AU.js +19 -1
  1287. package/i18n/en-AU.properties +38 -2
  1288. package/i18n/en-CA.js +19 -1
  1289. package/i18n/en-CA.properties +38 -2
  1290. package/i18n/en-GB.js +19 -1
  1291. package/i18n/en-GB.properties +38 -2
  1292. package/i18n/en-US.js +19 -1
  1293. package/i18n/en-US.properties +38 -2
  1294. package/i18n/en-x-pseudo.js +943 -926
  1295. package/i18n/en-x-pseudo.properties +962 -926
  1296. package/i18n/es-419.js +19 -1
  1297. package/i18n/es-419.properties +38 -2
  1298. package/i18n/es-ES.js +19 -1
  1299. package/i18n/es-ES.properties +38 -2
  1300. package/i18n/fi-FI.js +19 -1
  1301. package/i18n/fi-FI.properties +38 -2
  1302. package/i18n/fr-CA.js +19 -1
  1303. package/i18n/fr-CA.properties +38 -2
  1304. package/i18n/fr-FR.js +19 -1
  1305. package/i18n/fr-FR.properties +38 -2
  1306. package/i18n/hi-IN.js +19 -1
  1307. package/i18n/hi-IN.properties +38 -2
  1308. package/i18n/it-IT.js +19 -1
  1309. package/i18n/it-IT.properties +38 -2
  1310. package/i18n/ja-JP.js +29 -11
  1311. package/i18n/ja-JP.properties +48 -12
  1312. package/i18n/ko-KR.js +19 -1
  1313. package/i18n/ko-KR.properties +38 -2
  1314. package/i18n/nb-NO.js +19 -1
  1315. package/i18n/nb-NO.properties +38 -2
  1316. package/i18n/nl-NL.js +19 -1
  1317. package/i18n/nl-NL.properties +38 -2
  1318. package/i18n/pl-PL.js +19 -1
  1319. package/i18n/pl-PL.properties +38 -2
  1320. package/i18n/pt-BR.js +19 -1
  1321. package/i18n/pt-BR.properties +38 -2
  1322. package/i18n/ru-RU.js +19 -1
  1323. package/i18n/ru-RU.properties +38 -2
  1324. package/i18n/sv-SE.js +19 -1
  1325. package/i18n/sv-SE.properties +38 -2
  1326. package/i18n/tr-TR.js +19 -1
  1327. package/i18n/tr-TR.properties +38 -2
  1328. package/i18n/zh-CN.js +19 -1
  1329. package/i18n/zh-CN.properties +38 -2
  1330. package/i18n/zh-TW.js +19 -1
  1331. package/i18n/zh-TW.properties +38 -2
  1332. package/package.json +48 -36
  1333. package/src/api/APIFactory.js +25 -0
  1334. package/src/api/Feed.js +8 -4
  1335. package/src/api/Intelligence.js +47 -0
  1336. package/src/api/__tests__/Intelligence.test.js +81 -0
  1337. package/src/api/__tests__/Item.test.js +1 -1
  1338. package/src/api/uploads/__tests__/BaseUpload.test.js +5 -5
  1339. package/src/api/uploads/__tests__/FolderUpload.test.js +1 -1
  1340. package/src/api/uploads/__tests__/FolderUploadNode.test.js +1 -1
  1341. package/src/api/uploads/__tests__/MultiputUpload.test.js +1 -1
  1342. package/src/common/types/core.js +1 -0
  1343. package/src/components/accessible-svg/AccessibleSVG.stories.tsx +1 -1
  1344. package/src/components/avatar/Avatar.stories.tsx +1 -1
  1345. package/src/components/badge/Badge.stories.tsx +1 -1
  1346. package/src/components/badge/BetaBadge.stories.tsx +1 -1
  1347. package/src/components/badge/TrialBadge.stories.tsx +1 -1
  1348. package/src/components/badge/UpgradeBadge.stories.tsx +1 -1
  1349. package/src/components/breadcrumb/Breadcrumb.stories.js +1 -1
  1350. package/src/components/button/Button.stories.tsx +1 -1
  1351. package/src/components/button-group/ButtonGroup.stories.tsx +1 -1
  1352. package/src/components/category-selector/CategorySelector.stories.tsx +1 -1
  1353. package/src/components/checkbox/Checkbox.stories.tsx +1 -1
  1354. package/src/components/close-button/CloseButton.stories.tsx +1 -1
  1355. package/src/components/collapsible/Collapsible.stories.tsx +1 -1
  1356. package/src/components/collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap +14 -14
  1357. package/src/components/contact-datalist-item/ContactDatalistItem.stories.tsx +1 -1
  1358. package/src/components/context-menu/ContextMenu.stories.tsx +1 -1
  1359. package/src/components/count-badge/CountBadge.stories.tsx +1 -1
  1360. package/src/components/datalist-item/DatalistItem.stories.tsx +1 -1
  1361. package/src/components/date-picker/DatePicker.stories.tsx +1 -1
  1362. package/src/components/draft-js-editor/DraftJSEditor.stories.js +1 -1
  1363. package/src/components/draggable-list/DraggableList.stories.tsx +1 -1
  1364. package/src/components/dropdown-menu/DropdownMenu.stories.js +1 -1
  1365. package/src/components/error-mask/ErrorMask.stories.tsx +1 -1
  1366. package/src/components/fieldset/Fieldset.stories.tsx +1 -1
  1367. package/src/components/flyout/Flyout.stories.tsx +1 -1
  1368. package/src/components/flyout/OverlayHeader.tsx +1 -1
  1369. package/src/components/footer-indicator/FooterIndicator.stories.tsx +1 -1
  1370. package/src/components/form-elements/form/Form.stories.js +1 -1
  1371. package/src/components/form-elements/formik/Formik.stories.js +1 -1
  1372. package/src/components/form-elements/text-area/TextArea.stories.js +1 -1
  1373. package/src/components/form-elements/text-input/TextInput.stories.js +1 -1
  1374. package/src/components/ghost/Ghost.stories.tsx +1 -1
  1375. package/src/components/grid-view/__tests__/__snapshots__/GridView.test.js.snap +4 -4
  1376. package/src/components/guide-tooltip/GuideTooltip.stories.tsx +1 -1
  1377. package/src/components/header/Header.stories.tsx +1 -1
  1378. package/src/components/image-tooltip/ImageTooltip.stories.tsx +1 -1
  1379. package/src/components/inline-error/InlineError.stories.js +1 -1
  1380. package/src/components/inline-notice/InlineNotice.stories.js +1 -1
  1381. package/src/components/label/HiddenLabel.js.flow +3 -2
  1382. package/src/components/label/HiddenLabel.tsx +4 -2
  1383. package/src/components/label/Label.js.flow +5 -3
  1384. package/src/components/label/Label.stories.tsx +1 -1
  1385. package/src/components/label/Label.tsx +18 -3
  1386. package/src/components/label/LabelPrimitive.js.flow +3 -2
  1387. package/src/components/label/LabelPrimitive.tsx +4 -2
  1388. package/src/components/label/StandardLabel.js.flow +3 -2
  1389. package/src/components/label/StandardLabel.tsx +4 -2
  1390. package/src/components/label/__tests__/__snapshots__/Label.test.tsx.snap +2 -2
  1391. package/src/components/label/__tests__/__snapshots__/StandardLabel.test.tsx.snap +1 -1
  1392. package/src/components/label-pill/LabelPill.stories.tsx +1 -1
  1393. package/src/components/link/stories/Link.stories.tsx +2 -1
  1394. package/src/components/link/stories/LinkButton.stories.tsx +3 -1
  1395. package/src/components/link/stories/LinkGroup.stories.tsx +1 -1
  1396. package/src/components/link/stories/LinkPrimaryButton.stories.tsx +2 -1
  1397. package/src/components/loading-indicator/LoadingIndicator.stories.tsx +1 -1
  1398. package/src/components/loading-indicator/LoadingIndicatorWrapper.stories.tsx +1 -1
  1399. package/src/components/loading-indicator/makeLoadable.tsx +2 -4
  1400. package/src/components/logo/Logo.stories.tsx +1 -1
  1401. package/src/components/media/stories/Media.stories.tsx +1 -1
  1402. package/src/components/media/stories/MediaBody.stories.tsx +1 -1
  1403. package/src/components/media/stories/MediaFigure.stories.tsx +1 -1
  1404. package/src/components/media/stories/MediaMenu.stories.tsx +1 -1
  1405. package/src/components/media-query/stories/MediaQuery.stories.js +1 -1
  1406. package/src/components/menu/stories/Menu.stories.tsx +1 -1
  1407. package/src/components/menu/stories/SelectMenuLinkItem.stories.tsx +1 -1
  1408. package/src/components/modal/Modal.scss +62 -69
  1409. package/src/components/modal/stories/Modal.stories.js +1 -1
  1410. package/src/components/modal/stories/ModalActions.stories.js +1 -1
  1411. package/src/components/modal/stories/ModalDialog.stories.js +1 -1
  1412. package/src/components/nav-sidebar/NavSidebar.stories.js +1 -1
  1413. package/src/components/notification/stories/Notification.stories.js +1 -1
  1414. package/src/components/notification/stories/NotificationsWrapper.stories.js +1 -1
  1415. package/src/components/nudge/Nudge.stories.tsx +1 -1
  1416. package/src/components/pill-cloud/PillCloud.stories.js +1 -1
  1417. package/src/components/pill-selector-dropdown/PillSelector.js +10 -2
  1418. package/src/components/pill-selector-dropdown/PillSelector.scss +4 -0
  1419. package/src/components/pill-selector-dropdown/PillSelectorDropdown.stories.js +1 -1
  1420. package/src/components/pill-selector-dropdown/__tests__/PillSelector.test.js +21 -0
  1421. package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelector.test.js.snap +1 -1
  1422. package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelectorDropdown.test.js.snap +1 -1
  1423. package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelectorDropdownField.test.js.snap +12 -12
  1424. package/src/components/pill-selector-dropdown/__tests__/__snapshots__/defaultDropdownRenderer.test.js.snap +1 -1
  1425. package/src/components/plain-button/PlainButton.stories.tsx +1 -1
  1426. package/src/components/plain-button/__tests__/__snapshots__/PlainButton.test.tsx.snap +4 -4
  1427. package/src/components/primary-button/PrimaryButton.stories.tsx +1 -1
  1428. package/src/components/radar/RadarAnimation.stories.tsx +1 -1
  1429. package/src/components/radar/__tests__/__snapshots__/RadarAnimation.test.tsx.snap +20 -20
  1430. package/src/components/radio/stories/RadioButton.stories.tsx +1 -1
  1431. package/src/components/radio/stories/RadioGroup.stories.tsx +1 -1
  1432. package/src/components/search-form/SearchActions.tsx +50 -0
  1433. package/src/components/search-form/SearchForm.js +10 -54
  1434. package/src/components/search-form/__tests__/SearchForm.test.js +9 -5
  1435. package/src/components/search-form/messages.ts +21 -0
  1436. package/src/components/section/Section.stories.tsx +1 -1
  1437. package/src/components/select/Select.stories.js +1 -1
  1438. package/src/components/select-button/SelectButton.stories.js +1 -1
  1439. package/src/components/select-field/__tests__/__snapshots__/BaseSelectField.test.js.snap +1 -1
  1440. package/src/components/selector-dropdown/SelectorDropdown.stories.js +1 -1
  1441. package/src/components/sidebar-toggle-button/SidebarToggleButton.stories.js +1 -1
  1442. package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +12 -12
  1443. package/src/components/tab-view/TabView.stories.js +1 -1
  1444. package/src/components/text-area/__tests__/__snapshots__/TextArea.test.js.snap +3 -3
  1445. package/src/components/text-input/TextInput.stories.js +1 -1
  1446. package/src/components/text-input-with-copy-button/TextInputWithCopyButton.js +9 -4
  1447. package/src/components/text-input-with-copy-button/TextInputWithCopyButton.stories.js +1 -1
  1448. package/src/components/thumbnail-card/ThumbnailCard.stories.js +1 -1
  1449. package/src/components/time/ReadableTime.stories.js +1 -1
  1450. package/src/components/time-input/TimeInput.stories.tsx +1 -1
  1451. package/src/components/toggle/Toggle.stories.js +1 -1
  1452. package/src/components/tooltip/Tooltip.stories.tsx +1 -1
  1453. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +14 -14
  1454. package/src/constants.js +1 -0
  1455. package/src/elements/common/_variables.scss +1 -0
  1456. package/src/elements/common/current-user/withCurrentUser.tsx +1 -0
  1457. package/src/elements/common/feature-checking/__tests__/withFeatureProvider.test.js +25 -25
  1458. package/src/elements/common/logger/__tests__/__snapshots__/Logger.test.js.snap +1 -1
  1459. package/src/elements/common/selectors/__tests__/version.js +13 -11
  1460. package/src/elements/common/selectors/version.js +2 -1
  1461. package/src/elements/content-explorer/ContentExplorer.js +10 -4
  1462. package/src/elements/content-explorer/MoreOptions.js +1 -1
  1463. package/src/elements/content-explorer/PreviewDialog.js +0 -1
  1464. package/src/elements/content-explorer/__tests__/ContentExplorer.test.js +60 -0
  1465. package/src/elements/content-explorer/stories/ContentExplorer.stories.js +25 -36
  1466. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +1 -1
  1467. package/src/elements/content-explorer/stories/ShareDialog.stories.js +1 -1
  1468. package/src/elements/content-open-with/__tests__/__snapshots__/BoxToolsInstallMessage.test.js.snap +2 -2
  1469. package/src/elements/content-open-with/__tests__/__snapshots__/ContentOpenWith.test.js.snap +6 -6
  1470. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenu.test.js.snap +1 -1
  1471. package/src/elements/content-picker/ContentPicker.js +2 -2
  1472. package/src/elements/content-picker/Footer.scss +6 -0
  1473. package/src/elements/content-preview/ContentPreview.js +88 -64
  1474. package/src/elements/content-preview/ContentPreview.scss +13 -28
  1475. package/src/elements/content-preview/__tests__/ContentPreview.test.js +6 -5
  1476. package/src/elements/content-preview/__tests__/__snapshots__/PreviewNavigation.test.js.snap +93 -93
  1477. package/src/elements/content-preview/preview-header/PreviewHeader.js +6 -0
  1478. package/src/elements/content-preview/preview-header/__tests__/PreviewHeader.test.js +25 -0
  1479. package/src/elements/content-preview/stories/ContentPreview.stories.js +51 -81
  1480. package/src/elements/content-sharing/stories/ContentSharing.stories.js +18 -84
  1481. package/src/elements/content-sidebar/ActivitySidebar.js +2 -2
  1482. package/src/elements/content-sidebar/ContentSidebar.scss +9 -9
  1483. package/src/elements/content-sidebar/SidebarContent.scss +6 -8
  1484. package/src/elements/content-sidebar/SidebarNav.scss +22 -20
  1485. package/src/elements/content-sidebar/SidebarNavButton.scss +12 -14
  1486. package/src/elements/content-sidebar/SidebarNavSignButton.scss +6 -8
  1487. package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +8 -4
  1488. package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +5 -5
  1489. package/src/elements/content-sidebar/__tests__/__snapshots__/DetailsSidebar.test.js.snap +9 -9
  1490. package/src/elements/content-sidebar/__tests__/__snapshots__/MetadataSidebar.test.js.snap +6 -6
  1491. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarAccessStats.test.js.snap +12 -12
  1492. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarClassification.test.js.snap +3 -3
  1493. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +10 -10
  1494. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarNotices.test.js.snap +2 -2
  1495. package/src/elements/content-sidebar/__tests__/__snapshots__/SkillsSidebar.test.js.snap +3 -3
  1496. package/src/elements/content-sidebar/__tests__/__snapshots__/TaskModal.test.js.snap +15 -15
  1497. package/src/elements/content-sidebar/activity-feed/__tests__/__snapshots__/Avatar.test.js.snap +1 -1
  1498. package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +20 -2
  1499. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +7 -6
  1500. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.scss +6 -4
  1501. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.scss +2 -2
  1502. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +36 -0
  1503. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +35 -35
  1504. package/src/elements/content-sidebar/activity-feed/activity-feed/stories/ActivityFeed.stories.js +70 -0
  1505. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +2 -2
  1506. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationThread.test.js +4 -2
  1507. package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +3 -7
  1508. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +3 -3
  1509. package/src/elements/content-sidebar/activity-feed/app-activity/__tests__/__snapshots__/AppActivity.test.js.snap +2 -2
  1510. package/src/elements/content-sidebar/activity-feed/comment/BaseComment.js +59 -166
  1511. package/src/elements/content-sidebar/activity-feed/comment/BaseComment.scss +34 -12
  1512. package/src/elements/content-sidebar/activity-feed/comment/CreateReply.js +5 -4
  1513. package/src/elements/content-sidebar/activity-feed/comment/Replies.scss +4 -2
  1514. package/src/elements/content-sidebar/activity-feed/comment/__tests__/BaseComment.test.js +18 -6
  1515. package/src/elements/content-sidebar/activity-feed/comment/__tests__/CreateReply.test.js +12 -0
  1516. package/src/elements/content-sidebar/activity-feed/comment/__tests__/Replies.test.js +25 -1
  1517. package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +8 -8
  1518. package/src/elements/content-sidebar/activity-feed/comment/components/BaseCommentInfo.js +72 -0
  1519. package/src/elements/content-sidebar/activity-feed/comment/components/BaseCommentInfo.scss +38 -0
  1520. package/src/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenu.js +125 -0
  1521. package/src/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenu.scss +4 -0
  1522. package/src/elements/content-sidebar/activity-feed/comment/components/BaseCommentMenuWrapper.js +91 -0
  1523. package/src/elements/content-sidebar/activity-feed/comment/components/__tests__/BaseCommentInfo.test.js +51 -0
  1524. package/src/elements/content-sidebar/activity-feed/comment/components/__tests__/BaseCommentMenu.test.js +85 -0
  1525. package/src/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentInfo.stories.js +25 -0
  1526. package/src/elements/content-sidebar/activity-feed/comment/components/stories/BaseCommentMenu.stories.js +26 -0
  1527. package/src/elements/content-sidebar/activity-feed/comment/components/stories/common.js +28 -0
  1528. package/src/elements/content-sidebar/activity-feed/comment/messages.js +5 -5
  1529. package/src/elements/content-sidebar/activity-feed/comment/stories/BaseComment.stories.js +1 -1
  1530. package/src/elements/content-sidebar/activity-feed/comment/stories/common.js +1 -1
  1531. package/src/elements/content-sidebar/activity-feed/comment/types.js +13 -0
  1532. package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +11 -3
  1533. package/src/elements/content-sidebar/activity-feed/comment-form/__tests__/CommentForm.test.js +37 -21
  1534. package/src/elements/content-sidebar/activity-feed/common/activity-timestamp/__tests__/__snapshots__/ActivityTimestamp.test.js.snap +1 -1
  1535. package/src/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js +2 -0
  1536. package/src/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +1 -1
  1537. package/src/elements/content-sidebar/activity-feed/task-form/__tests__/__snapshots__/TaskError.test.js.snap +10 -10
  1538. package/src/elements/content-sidebar/activity-feed/task-new/Task.js +7 -2
  1539. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/AssigneeDetails.test.js.snap +9 -9
  1540. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +30 -21
  1541. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/TaskDueDate.test.js.snap +1 -1
  1542. package/src/elements/content-sidebar/activity-feed/task-new/messages.js +10 -0
  1543. package/src/elements/content-sidebar/activity-feed/version/__tests__/__snapshots__/CollapsedVersion.test.js.snap +2 -2
  1544. package/src/elements/content-sidebar/additional-tabs/__tests__/__snapshots__/AdditionalTabsLoading.test.js.snap +1 -1
  1545. package/src/elements/content-sidebar/skills/__tests__/__snapshots__/SidebarSkills.test.js.snap +208 -208
  1546. package/src/elements/content-sidebar/skills/__tests__/__snapshots__/SidebarSkillsCard.test.js.snap +5 -5
  1547. package/src/elements/content-sidebar/skills/faces/__tests__/__snapshots__/Faces.test.js.snap +23 -23
  1548. package/src/elements/content-sidebar/skills/keywords/__tests__/__snapshots__/EditableKeywords.test.js.snap +3 -3
  1549. package/src/elements/content-sidebar/skills/keywords/__tests__/__snapshots__/Keywords.test.js.snap +15 -15
  1550. package/src/elements/content-sidebar/skills/keywords/__tests__/__snapshots__/ReadOnlyKeywords.test.js.snap +8 -8
  1551. package/src/elements/content-sidebar/skills/timeline/__tests__/__snapshots__/Timeslice.test.js.snap +3 -3
  1552. package/src/elements/content-sidebar/skills/transcript/__tests__/__snapshots__/EditingTranscriptRow.test.js.snap +2 -10
  1553. package/src/elements/content-sidebar/stories/ContentSidebar.stories.js +19 -28
  1554. package/src/elements/content-sidebar/versions/VersionsItem.scss +6 -0
  1555. package/src/elements/content-sidebar/versions/__tests__/VersionsItem.test.js +3 -0
  1556. package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsItem.test.js.snap +3 -3
  1557. package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsSidebar.test.js.snap +2 -2
  1558. package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsSidebarContainer.test.js.snap +5 -5
  1559. package/src/elements/content-uploader/ItemName.scss +1 -1
  1560. package/src/elements/content-uploader/ProgressBar.scss +4 -0
  1561. package/src/elements/content-uploader/__tests__/__snapshots__/UploadStateContent.test.js.snap +1 -1
  1562. package/src/elements/content-uploader/stories/ContentUploader.stories.js +7 -11
  1563. package/src/features/access-stats/__tests__/__snapshots__/AccessStats.test.js.snap +30 -30
  1564. package/src/features/access-stats/__tests__/__snapshots__/AccessStatsItemsList.test.js.snap +14 -14
  1565. package/src/features/classification/__tests__/__snapshots__/Classification.test.js.snap +5 -5
  1566. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControls.test.js.snap +17 -17
  1567. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsModal.test.js.snap +6 -6
  1568. package/src/features/collaborator-avatars/CollaboratorList.scss +11 -1
  1569. package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorList.test.js.snap +10 -10
  1570. package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorListItem.test.js.snap +3 -3
  1571. package/src/features/collapsible-sidebar/CollapsibleSidebar.stories.js +1 -1
  1572. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarLogo.test.js.snap +2 -2
  1573. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarNav.test.js.snap +24 -24
  1574. package/src/features/content-answers/Answer.scss +4 -0
  1575. package/src/features/content-answers/Answer.tsx +22 -0
  1576. package/src/features/content-answers/ContentAnswers.tsx +60 -0
  1577. package/src/features/content-answers/ContentAnswersGridCard.scss +26 -0
  1578. package/src/features/content-answers/ContentAnswersGridCard.tsx +27 -0
  1579. package/src/features/content-answers/ContentAnswersModal.scss +56 -0
  1580. package/src/features/content-answers/ContentAnswersModal.tsx +136 -0
  1581. package/src/features/content-answers/ContentAnswersModalContent.scss +12 -0
  1582. package/src/features/content-answers/ContentAnswersModalContent.tsx +64 -0
  1583. package/src/features/content-answers/ContentAnswersModalError.scss +28 -0
  1584. package/src/features/content-answers/ContentAnswersModalError.tsx +32 -0
  1585. package/src/features/content-answers/ContentAnswersModalFooter.scss +42 -0
  1586. package/src/features/content-answers/ContentAnswersModalFooter.tsx +103 -0
  1587. package/src/features/content-answers/ContentAnswersModalFooterActions.scss +17 -0
  1588. package/src/features/content-answers/ContentAnswersModalFooterActions.tsx +45 -0
  1589. package/src/features/content-answers/ContentAnswersOpenButton.scss +54 -0
  1590. package/src/features/content-answers/ContentAnswersOpenButton.tsx +74 -0
  1591. package/src/features/content-answers/InlineError.scss +39 -0
  1592. package/src/features/content-answers/InlineError.tsx +32 -0
  1593. package/src/features/content-answers/LoadingElement.scss +4 -0
  1594. package/src/features/content-answers/LoadingElement.tsx +17 -0
  1595. package/src/features/content-answers/Question.scss +16 -0
  1596. package/src/features/content-answers/Question.tsx +30 -0
  1597. package/src/features/content-answers/WelcomeMessage.scss +25 -0
  1598. package/src/features/content-answers/WelcomeMessage.tsx +35 -0
  1599. package/src/features/content-answers/__mocks__/mocks.ts +66 -0
  1600. package/src/features/content-answers/__tests__/Answer.test.tsx +25 -0
  1601. package/src/features/content-answers/__tests__/ContentAnswers.test.tsx +53 -0
  1602. package/src/features/content-answers/__tests__/ContentAnswersGridCard.test.tsx +21 -0
  1603. package/src/features/content-answers/__tests__/ContentAnswersModal.test.tsx +117 -0
  1604. package/src/features/content-answers/__tests__/ContentAnswersModalContent.test.tsx +104 -0
  1605. package/src/features/content-answers/__tests__/ContentAnswersModalError.test.tsx +26 -0
  1606. package/src/features/content-answers/__tests__/ContentAnswersModalFooter.test.tsx +96 -0
  1607. package/src/features/content-answers/__tests__/ContentAnswersModalFooterActions.tsx +37 -0
  1608. package/src/features/content-answers/__tests__/ContentAnswersOpenButton.test.tsx +73 -0
  1609. package/src/features/content-answers/__tests__/InlineError.test.tsx +20 -0
  1610. package/src/features/content-answers/__tests__/Question.test.tsx +21 -0
  1611. package/src/features/content-answers/__tests__/WelcomeMessage.test.tsx +24 -0
  1612. package/src/features/content-answers/constants.ts +134 -0
  1613. package/src/features/content-answers/index.ts +1 -0
  1614. package/src/features/content-answers/messages.ts +87 -0
  1615. package/src/features/content-explorer/content-explorer/ContentExplorer.js +19 -15
  1616. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  1617. package/src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +2 -0
  1618. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorer.test.js +29 -0
  1619. package/src/features/content-explorer/content-explorer/__tests__/__snapshots__/ContentExplorer.test.js.snap +10 -10
  1620. package/src/features/content-explorer/content-explorer/__tests__/__snapshots__/ContentExplorerHeaderActions.test.js.snap +1 -1
  1621. package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +1 -0
  1622. package/src/features/content-explorer/content-explorer-modal/__tests__/__snapshots__/ContentExplorerModal.test.js.snap +10 -10
  1623. package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +2 -0
  1624. package/src/features/content-explorer/item-list/__tests__/__snapshots__/ItemListIcon.test.js.snap +4 -4
  1625. package/src/features/header-flyout/__tests__/__snapshots__/HeaderFlyout.test.js.snap +3 -3
  1626. package/src/features/invite-collaborators-modal/__tests__/__snapshots__/InviteCollaboratorsModal.test.js.snap +8 -8
  1627. package/src/features/item-details/__tests__/__snapshots__/EditableDescription.test.js.snap +2 -8
  1628. package/src/features/item-details/__tests__/__snapshots__/ItemExpirationNotice.test.js.snap +4 -4
  1629. package/src/features/item-details/__tests__/__snapshots__/ItemProperties.test.js.snap +2 -2
  1630. package/src/features/item-details/__tests__/__snapshots__/ReadonlyDescription.test.js.snap +2 -2
  1631. package/src/features/item-details/__tests__/__snapshots__/SharedLinkExpirationNotice.test.js.snap +2 -2
  1632. package/src/features/item-details/__tests__/__snapshots__/VersionHistoryLink.test.js.snap +2 -2
  1633. package/src/features/left-sidebar/__tests__/__snapshots__/InstantLogin.test.js.snap +2 -2
  1634. package/src/features/left-sidebar/__tests__/__snapshots__/LeftSidebar.test.js.snap +21 -21
  1635. package/src/features/left-sidebar/__tests__/__snapshots__/LeftSidebarLink.test.js.snap +14 -14
  1636. package/src/features/left-sidebar/__tests__/__snapshots__/defaultNavLinkRenderer.test.js.snap +1 -1
  1637. package/src/features/message-center/components/templates/common/__tests__/__snapshots__/MessageTextContent.test.js.snap +2 -2
  1638. package/src/features/message-center/components/templates/preview-title-body-tags-button/__tests__/__snapshots__/PreviewTitleBodyTagsButton.test.js.snap +4 -4
  1639. package/src/features/message-center/components/templates/title-body-tags-button/__tests__/__snapshots__/TitleBodyTagsButton.test.js.snap +4 -4
  1640. package/src/features/metadata-based-view/__tests__/__snapshots__/IconWithTooltip.test.js.snap +3 -3
  1641. package/src/features/metadata-based-view/__tests__/__snapshots__/MetadataBasedItemList.test.js.snap +21 -21
  1642. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Header.test.js.snap +3 -3
  1643. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +204 -204
  1644. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instances.test.js.snap +37 -37
  1645. package/src/features/metadata-instance-editor/__tests__/__snapshots__/MetadataInstanceEditor.test.js.snap +229 -229
  1646. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplateDropdown.test.js.snap +7 -7
  1647. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplatedInstance.test.js.snap +17 -17
  1648. package/src/features/metadata-instance-fields/__tests__/__snapshots__/DateMetadataField.test.js.snap +1 -1
  1649. package/src/features/metadata-instance-fields/__tests__/__snapshots__/EnumMetadataField.test.js.snap +10 -10
  1650. package/src/features/metadata-instance-fields/__tests__/__snapshots__/MetadataField.test.js.snap +1 -1
  1651. package/src/features/metadata-instance-fields/__tests__/__snapshots__/MultiSelectMetadataField.test.js.snap +4 -4
  1652. package/src/features/pagination/Pagination.scss +0 -4
  1653. package/src/features/pagination/__tests__/__snapshots__/MarkerBasedPagination.test.js.snap +8 -8
  1654. package/src/features/pagination/__tests__/__snapshots__/OffsetBasedPagination.test.js.snap +34 -34
  1655. package/src/features/pagination/__tests__/__snapshots__/PaginationMenu.test.js.snap +3 -3
  1656. package/src/features/presence/__tests__/__snapshots__/Presence.test.js.snap +49 -49
  1657. package/src/features/presence/__tests__/__snapshots__/PresenceLink.test.js.snap +24 -24
  1658. package/src/features/query-bar/__tests__/__snapshots__/ColumnButton.test.js.snap +6 -6
  1659. package/src/features/query-bar/__tests__/__snapshots__/Condition.test.js.snap +10 -10
  1660. package/src/features/query-bar/__tests__/__snapshots__/QueryBar.test.js.snap +41 -41
  1661. package/src/features/query-bar/__tests__/__snapshots__/TemplateButton.test.js.snap +2 -2
  1662. package/src/features/sandbox-banner/SandboxBanner.stories.tsx +1 -1
  1663. package/src/features/security/__tests__/__snapshots__/SecurityBadge.test.js.snap +2 -2
  1664. package/src/features/security-cloud-game/stories/SecurityCloudGame.stories.js +1 -1
  1665. package/src/features/shared-link-modal/__tests__/__snapshots__/AccessLabel.test.js.snap +1 -1
  1666. package/src/features/shared-link-modal/__tests__/__snapshots__/SharedLink.test.js.snap +5 -5
  1667. package/src/features/shared-link-modal/__tests__/__snapshots__/SharedLinkAccess.test.js.snap +4 -4
  1668. package/src/features/shared-link-modal/__tests__/__snapshots__/SharedLinkModal.test.js.snap +1 -1
  1669. package/src/features/shared-link-modal/stories/SharedLink.stories.js +1 -1
  1670. package/src/features/shared-link-modal/stories/SharedLinkModal.stories.js +1 -1
  1671. package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.stories.js +1 -1
  1672. package/src/features/targeting/hocs/__tests__/__snapshots__/withTargetedClickThrough.test.js.snap +1 -1
  1673. package/src/features/targeting/hocs/withTargetedClickThrough.js +10 -1
  1674. package/src/features/targeting/types.js +1 -0
  1675. package/src/features/unified-share-modal/UnifiedShareModal.scss +61 -79
  1676. package/src/features/unified-share-modal/__tests__/__snapshots__/ContactsField.test.js.snap +23 -23
  1677. package/src/features/unified-share-modal/__tests__/__snapshots__/EmailForm.test.js.snap +28 -28
  1678. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkAccessDescription.test.js.snap +8 -8
  1679. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkAccessLabel.test.js.snap +10 -10
  1680. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkSection.test.js.snap +54 -54
  1681. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +250 -250
  1682. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModal.test.js.snap +409 -409
  1683. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModalTitle.test.js.snap +1 -1
  1684. package/src/features/unified-share-modal/stories/UnifiedShareModal.stories.js +1 -1
  1685. package/src/features/virtualized-table/DraggableVirtualizedTable.stories.js +1 -1
  1686. package/src/features/virtualized-table/__tests__/__snapshots__/BaseVirtualizedTable.test.js.snap +5 -5
  1687. package/src/features/virtualized-table/__tests__/__snapshots__/DraggableVirtualizedTable.test.js.snap +7 -7
  1688. package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +19 -19
  1689. package/src/features/virtualized-table-renderers/__tests__/__snapshots__/loadingRowRenderer.test.js.snap +1 -1
  1690. package/src/features/virtualized-table-renderers/__tests__/draggableRowRenderer.test.js +5 -5
  1691. package/src/icon/content/ContentSharing32.stories.tsx +1 -1
  1692. package/src/icon/content/CustomSetup32.stories.tsx +1 -1
  1693. package/src/icon/content/DeviceTrust32.stories.tsx +1 -1
  1694. package/src/icon/content/FileAudio32.stories.tsx +1 -1
  1695. package/src/icon/content/FileBookmark32.stories.tsx +1 -1
  1696. package/src/icon/content/FileBoxNote32.stories.tsx +1 -1
  1697. package/src/icon/content/FileCanvas32.stories.tsx +1 -1
  1698. package/src/icon/content/FileCode32.stories.tsx +1 -1
  1699. package/src/icon/content/FileDefault32.stories.tsx +1 -1
  1700. package/src/icon/content/FileDicom32.stories.tsx +1 -1
  1701. package/src/icon/content/FileDocs32.stories.tsx +1 -1
  1702. package/src/icon/content/FileDwg32.stories.tsx +1 -1
  1703. package/src/icon/content/FileExcel32.stories.tsx +1 -1
  1704. package/src/icon/content/FileIllustrator32.stories.tsx +1 -1
  1705. package/src/icon/content/FileImage32.stories.tsx +1 -1
  1706. package/src/icon/content/FileIndesign32.stories.tsx +1 -1
  1707. package/src/icon/content/FileKeynote32.stories.tsx +1 -1
  1708. package/src/icon/content/FileNumbers32.stories.tsx +1 -1
  1709. package/src/icon/content/FilePages32.stories.tsx +1 -1
  1710. package/src/icon/content/FilePdf32.stories.tsx +1 -1
  1711. package/src/icon/content/FilePhotoshop32.stories.tsx +1 -1
  1712. package/src/icon/content/FilePowerpoint32.stories.tsx +1 -1
  1713. package/src/icon/content/FilePresentation32.stories.tsx +1 -1
  1714. package/src/icon/content/FileSheets32.stories.tsx +1 -1
  1715. package/src/icon/content/FileSlides32.stories.tsx +1 -1
  1716. package/src/icon/content/FileSpreadsheet32.stories.tsx +1 -1
  1717. package/src/icon/content/FileText32.stories.tsx +1 -1
  1718. package/src/icon/content/FileThreeD32.stories.tsx +1 -1
  1719. package/src/icon/content/FileUpload32.stories.tsx +1 -1
  1720. package/src/icon/content/FileVector32.stories.tsx +1 -1
  1721. package/src/icon/content/FileVideo32.stories.tsx +1 -1
  1722. package/src/icon/content/FileWord32.stories.tsx +1 -1
  1723. package/src/icon/content/FileXbd32.stories.tsx +1 -1
  1724. package/src/icon/content/FileXdw32.stories.tsx +1 -1
  1725. package/src/icon/content/FileZip32.stories.tsx +1 -1
  1726. package/src/icon/content/FolderExternal32.stories.tsx +1 -1
  1727. package/src/icon/content/FolderPersonal32.stories.tsx +1 -1
  1728. package/src/icon/content/FolderShared32.stories.tsx +1 -1
  1729. package/src/icon/content/FolderUpload32.stories.tsx +1 -1
  1730. package/src/icon/content/Mobile32.stories.tsx +1 -1
  1731. package/src/icon/content/Notifications32.stories.tsx +1 -1
  1732. package/src/icon/content/PlatformCam32.stories.tsx +1 -1
  1733. package/src/icon/content/PlatformSandbox32.stories.tsx +1 -1
  1734. package/src/icon/content/RetentionPolicyModifiable32.stories.tsx +1 -1
  1735. package/src/icon/content/RetentionPolicyNonModifiable32.stories.tsx +1 -1
  1736. package/src/icon/content/Security32.stories.tsx +1 -1
  1737. package/src/icon/content/SignRequest32.stories.tsx +1 -1
  1738. package/src/icon/content/UserSettings32.stories.tsx +1 -1
  1739. package/src/icon/content/Workflow32.stories.tsx +1 -1
  1740. package/src/icon/content/WorkflowTemplate32.stories.tsx +1 -1
  1741. package/src/icon/fill/Activity16.stories.tsx +1 -1
  1742. package/src/icon/fill/Activity20.stories.tsx +1 -1
  1743. package/src/icon/fill/Alert16.stories.tsx +1 -1
  1744. package/src/icon/fill/AlertBadge16.stories.tsx +1 -1
  1745. package/src/icon/fill/AnnotationsDrawing16.stories.tsx +1 -1
  1746. package/src/icon/fill/AnnotationsHighlight16.stories.tsx +1 -1
  1747. package/src/icon/fill/AnnotationsRegion16.stories.tsx +1 -1
  1748. package/src/icon/fill/Apps16.stories.tsx +1 -1
  1749. package/src/icon/fill/Arrow16.stories.tsx +1 -1
  1750. package/src/icon/fill/ArrowArcRight.stories.tsx +1 -1
  1751. package/src/icon/fill/ArrowForward16.stories.tsx +1 -1
  1752. package/src/icon/fill/ArrowSort16.stories.tsx +1 -1
  1753. package/src/icon/fill/AvatarBadge16.stories.tsx +1 -1
  1754. package/src/icon/fill/BarChart16.stories.tsx +1 -1
  1755. package/src/icon/fill/BoxDev16.stories.tsx +1 -1
  1756. package/src/icon/fill/BoxNotes16.stories.tsx +1 -1
  1757. package/src/icon/fill/Calendar16.stories.tsx +1 -1
  1758. package/src/icon/fill/Caret8.stories.tsx +1 -1
  1759. package/src/icon/fill/CaretBadge16.stories.tsx +1 -1
  1760. package/src/icon/fill/Checkmark16.stories.tsx +1 -1
  1761. package/src/icon/fill/CheckmarkBadge16.stories.tsx +1 -1
  1762. package/src/icon/fill/CircleBackButton24.stories.tsx +1 -1
  1763. package/src/icon/fill/CircleCloseButton24.stories.tsx +1 -1
  1764. package/src/icon/fill/Classify16.stories.tsx +1 -1
  1765. package/src/icon/fill/ClearBadge16.stories.tsx +1 -1
  1766. package/src/icon/fill/ClockBadge16.stories.tsx +1 -1
  1767. package/src/icon/fill/CloudUpload16.stories.tsx +1 -1
  1768. package/src/icon/fill/Code16.stories.tsx +1 -1
  1769. package/src/icon/fill/Collection16.stories.tsx +1 -1
  1770. package/src/icon/fill/CollectionBolt16.stories.tsx +1 -1
  1771. package/src/icon/fill/CollectionPlus16.stories.tsx +1 -1
  1772. package/src/icon/fill/CollectionStar16.stories.tsx +1 -1
  1773. package/src/icon/fill/CreditCard16.stories.tsx +1 -1
  1774. package/src/icon/fill/Download16.stories.tsx +1 -1
  1775. package/src/icon/fill/EmailNotification16.stories.tsx +1 -1
  1776. package/src/icon/fill/ExportArrow16.stories.tsx +1 -1
  1777. package/src/icon/fill/Feed16.stories.tsx +1 -1
  1778. package/src/icon/fill/FileAudio16.stories.tsx +1 -1
  1779. package/src/icon/fill/FileBookmark16.stories.tsx +1 -1
  1780. package/src/icon/fill/FileBoxNote16.stories.tsx +1 -1
  1781. package/src/icon/fill/FileCanvas16.stories.tsx +1 -1
  1782. package/src/icon/fill/FileCode16.stories.tsx +1 -1
  1783. package/src/icon/fill/FileCopy16.stories.tsx +1 -1
  1784. package/src/icon/fill/FileDefault16.stories.tsx +1 -1
  1785. package/src/icon/fill/FileDicom16.stories.tsx +1 -1
  1786. package/src/icon/fill/FileDocs16.stories.tsx +1 -1
  1787. package/src/icon/fill/FileDwg16.stories.tsx +1 -1
  1788. package/src/icon/fill/FileExcel16.stories.tsx +1 -1
  1789. package/src/icon/fill/FileIllustrator16.stories.tsx +1 -1
  1790. package/src/icon/fill/FileImage16.stories.tsx +1 -1
  1791. package/src/icon/fill/FileIndesign16.stories.tsx +1 -1
  1792. package/src/icon/fill/FileKeynote16.stories.tsx +1 -1
  1793. package/src/icon/fill/FileNumbers16.stories.tsx +1 -1
  1794. package/src/icon/fill/FilePages16.stories.tsx +1 -1
  1795. package/src/icon/fill/FilePdf16.stories.tsx +1 -1
  1796. package/src/icon/fill/FilePhotoshop16.stories.tsx +1 -1
  1797. package/src/icon/fill/FilePowerpoint16.stories.tsx +1 -1
  1798. package/src/icon/fill/FilePresentation16.stories.tsx +1 -1
  1799. package/src/icon/fill/FileSheets16.stories.tsx +1 -1
  1800. package/src/icon/fill/FileSlides16.stories.tsx +1 -1
  1801. package/src/icon/fill/FileSpreadsheet16.stories.tsx +1 -1
  1802. package/src/icon/fill/FileText16.stories.tsx +1 -1
  1803. package/src/icon/fill/FileThreeD16.stories.tsx +1 -1
  1804. package/src/icon/fill/FileVector16.stories.tsx +1 -1
  1805. package/src/icon/fill/FileVideo16.stories.tsx +1 -1
  1806. package/src/icon/fill/FileWord16.stories.tsx +1 -1
  1807. package/src/icon/fill/FileZip16.stories.tsx +1 -1
  1808. package/src/icon/fill/Filter16.stories.tsx +1 -1
  1809. package/src/icon/fill/Folder16.stories.tsx +1 -1
  1810. package/src/icon/fill/FolderExternal16.stories.tsx +1 -1
  1811. package/src/icon/fill/FolderPersonal16.stories.tsx +1 -1
  1812. package/src/icon/fill/FolderShared16.stories.tsx +1 -1
  1813. package/src/icon/fill/Gear16.stories.tsx +1 -1
  1814. package/src/icon/fill/GlobeBadge16.stories.tsx +1 -1
  1815. package/src/icon/fill/Hamburger20.stories.tsx +1 -1
  1816. package/src/icon/fill/Help20.stories.tsx +1 -1
  1817. package/src/icon/fill/InProgress16.stories.tsx +1 -1
  1818. package/src/icon/fill/Info16.stories.tsx +1 -1
  1819. package/src/icon/fill/InfoBadge16.stories.tsx +1 -1
  1820. package/src/icon/fill/LightningBolt16.stories.tsx +1 -1
  1821. package/src/icon/fill/Lock16.stories.tsx +1 -1
  1822. package/src/icon/fill/Megaphone20.stories.tsx +1 -1
  1823. package/src/icon/fill/Minus16.stories.tsx +1 -1
  1824. package/src/icon/fill/Move16.stories.tsx +1 -1
  1825. package/src/icon/fill/MoveCopy16.stories.tsx +1 -1
  1826. package/src/icon/fill/Overflow16.stories.tsx +1 -1
  1827. package/src/icon/fill/PaperAirplane16.stories.tsx +1 -1
  1828. package/src/icon/fill/Pencil16.stories.tsx +1 -1
  1829. package/src/icon/fill/Picture16.stories.tsx +1 -1
  1830. package/src/icon/fill/Plus16.stories.tsx +1 -1
  1831. package/src/icon/fill/PlusBadge16.stories.tsx +1 -1
  1832. package/src/icon/fill/PointerChevronDown24.stories.tsx +1 -1
  1833. package/src/icon/fill/Printer16.stories.tsx +1 -1
  1834. package/src/icon/fill/Relay16.stories.tsx +1 -1
  1835. package/src/icon/fill/RelayClassic16.stories.tsx +1 -1
  1836. package/src/icon/fill/Ribbon16.stories.tsx +1 -1
  1837. package/src/icon/fill/Scribble16.stories.tsx +1 -1
  1838. package/src/icon/fill/Search16.stories.tsx +1 -1
  1839. package/src/icon/fill/Sign16.stories.tsx +1 -1
  1840. package/src/icon/fill/SignFieldCheckBox16.stories.tsx +1 -1
  1841. package/src/icon/fill/SignFieldSignature16.stories.tsx +1 -1
  1842. package/src/icon/fill/SignFieldTextInput16.stories.tsx +1 -1
  1843. package/src/icon/fill/SignMe32.stories.tsx +1 -1
  1844. package/src/icon/fill/SignMeOthers32.stories.tsx +1 -1
  1845. package/src/icon/fill/SignOthers32.stories.tsx +1 -1
  1846. package/src/icon/fill/Skills16.stories.tsx +1 -1
  1847. package/src/icon/fill/Tag16.stories.tsx +1 -1
  1848. package/src/icon/fill/Task16.stories.tsx +1 -1
  1849. package/src/icon/fill/Trash16.stories.tsx +1 -1
  1850. package/src/icon/fill/TwoPeople16.stories.tsx +1 -1
  1851. package/src/icon/fill/Upload16.stories.tsx +1 -1
  1852. package/src/icon/fill/UserSettings16.stories.tsx +1 -1
  1853. package/src/icon/fill/Workflow16.stories.tsx +1 -1
  1854. package/src/icon/fill/X16.stories.tsx +1 -1
  1855. package/src/icon/line/AlarmClock16.stories.tsx +1 -1
  1856. package/src/icon/line/AlertBubble16.stories.tsx +1 -1
  1857. package/src/icon/line/Apps16.stories.tsx +1 -1
  1858. package/src/icon/line/ArrowBoxRight16.stories.tsx +1 -1
  1859. package/src/icon/line/Avatar16.stories.tsx +1 -1
  1860. package/src/icon/line/AvatarBadge16.stories.tsx +1 -1
  1861. package/src/icon/line/AvatarPlusBadge16.stories.tsx +1 -1
  1862. package/src/icon/line/AvatarXBadge16.stories.tsx +1 -1
  1863. package/src/icon/line/BoxAi.stories.tsx +1 -1
  1864. package/src/icon/line/BoxDev16.stories.tsx +1 -1
  1865. package/src/icon/line/Bug16.stories.tsx +1 -1
  1866. package/src/icon/line/Checkmark16.stories.tsx +1 -1
  1867. package/src/icon/line/CheckmarkBadge16.stories.tsx +1 -1
  1868. package/src/icon/line/CircleCheck16.stories.tsx +1 -1
  1869. package/src/icon/line/CircleX16.stories.tsx +1 -1
  1870. package/src/icon/line/ClassificationBadge16.stories.tsx +1 -1
  1871. package/src/icon/line/ClockArrow16.stories.tsx +1 -1
  1872. package/src/icon/line/ClockBadge16.stories.tsx +1 -1
  1873. package/src/icon/line/CloudWithArrow16.stories.tsx +1 -1
  1874. package/src/icon/line/CoAuthoringBadge16.stories.tsx +1 -1
  1875. package/src/icon/line/CoEdit16.stories.tsx +1 -1
  1876. package/src/icon/line/Collaborations16.stories.tsx +1 -1
  1877. package/src/icon/line/Collection16.stories.tsx +1 -1
  1878. package/src/icon/line/CollectionBolt16.stories.tsx +1 -1
  1879. package/src/icon/line/CollectionPlus16.stories.tsx +1 -1
  1880. package/src/icon/line/CollectionStar16.stories.tsx +1 -1
  1881. package/src/icon/line/CommentBubble16.stories.tsx +1 -1
  1882. package/src/icon/line/CrosshairRegion32.stories.tsx +1 -1
  1883. package/src/icon/line/DocInfo16.stories.tsx +1 -1
  1884. package/src/icon/line/Download16.stories.tsx +1 -1
  1885. package/src/icon/line/Email16.stories.tsx +1 -1
  1886. package/src/icon/line/EmailAddress16.stories.tsx +1 -1
  1887. package/src/icon/line/EnvelopeBadge16.stories.tsx +1 -1
  1888. package/src/icon/line/ExclamationMarkBadge16.stories.tsx +1 -1
  1889. package/src/icon/line/ExportArrow16.stories.tsx +1 -1
  1890. package/src/icon/line/FileDescription16.stories.tsx +1 -1
  1891. package/src/icon/line/Folder16.stories.tsx +1 -1
  1892. package/src/icon/line/Gear16.stories.tsx +1 -1
  1893. package/src/icon/line/GenericCopy16.stories.tsx +1 -1
  1894. package/src/icon/line/GlobeBadge16.stories.tsx +1 -1
  1895. package/src/icon/line/Help16.stories.tsx +1 -1
  1896. package/src/icon/line/Hidden16.stories.tsx +1 -1
  1897. package/src/icon/line/History16.stories.tsx +1 -1
  1898. package/src/icon/line/InfoBadge16.stories.tsx +1 -1
  1899. package/src/icon/line/Key16.stories.tsx +1 -1
  1900. package/src/icon/line/Link16.stories.tsx +1 -1
  1901. package/src/icon/line/LinkBadge16.stories.tsx +1 -1
  1902. package/src/icon/line/List16.stories.tsx +1 -1
  1903. package/src/icon/line/Lock16.stories.tsx +1 -1
  1904. package/src/icon/line/LockBadge16.stories.tsx +1 -1
  1905. package/src/icon/line/MetadataBadge16.stories.tsx +1 -1
  1906. package/src/icon/line/MoveCopy16.stories.tsx +1 -1
  1907. package/src/icon/line/Pencil16.stories.tsx +1 -1
  1908. package/src/icon/line/PencilBadge16.stories.tsx +1 -1
  1909. package/src/icon/line/Plane16.stories.tsx +1 -1
  1910. package/src/icon/line/Plus16.stories.tsx +1 -1
  1911. package/src/icon/line/Power16.stories.tsx +1 -1
  1912. package/src/icon/line/Question16.stories.tsx +1 -1
  1913. package/src/icon/line/Redo16.stories.tsx +1 -1
  1914. package/src/icon/line/Relay16.stories.tsx +1 -1
  1915. package/src/icon/line/Report16.stories.tsx +1 -1
  1916. package/src/icon/line/Retry16.stories.tsx +1 -1
  1917. package/src/icon/line/Rocket16.stories.tsx +1 -1
  1918. package/src/icon/line/RotatingArrows16.stories.tsx +1 -1
  1919. package/src/icon/line/Sharrow16.stories.tsx +1 -1
  1920. package/src/icon/line/Shield16.stories.tsx +1 -1
  1921. package/src/icon/line/Sign16.stories.tsx +1 -1
  1922. package/src/icon/line/SignTinycon16.stories.tsx +1 -1
  1923. package/src/icon/line/Star16.stories.tsx +1 -1
  1924. package/src/icon/line/SyncArrows16.stories.tsx +1 -1
  1925. package/src/icon/line/Template16.stories.tsx +1 -1
  1926. package/src/icon/line/TextLeft16.stories.tsx +1 -1
  1927. package/src/icon/line/Tool16.stories.tsx +1 -1
  1928. package/src/icon/line/Trash16.stories.tsx +1 -1
  1929. package/src/icon/line/TriangleAlert16.stories.tsx +1 -1
  1930. package/src/icon/line/Undo16.stories.tsx +1 -1
  1931. package/src/icon/line/Unlock16.stories.tsx +1 -1
  1932. package/src/icon/line/Upload16.stories.tsx +1 -1
  1933. package/src/icon/line/Video16.stories.tsx +1 -1
  1934. package/src/icon/line/View16.stories.tsx +1 -1
  1935. package/src/icon/line/XBadge16.stories.tsx +1 -1
  1936. package/src/icon/logo/AccountBilling32.stories.tsx +1 -1
  1937. package/src/icon/logo/AdminFaq32.stories.tsx +1 -1
  1938. package/src/icon/logo/AdminReferences32.stories.tsx +1 -1
  1939. package/src/icon/logo/AdobeAcrobat32.stories.tsx +1 -1
  1940. package/src/icon/logo/Apps32.stories.tsx +1 -1
  1941. package/src/icon/logo/BoxAiLogo.stories.tsx +1 -1
  1942. package/src/icon/logo/BoxLogo.stories.tsx +1 -1
  1943. package/src/icon/logo/BoxSign28.stories.tsx +1 -1
  1944. package/src/icon/logo/BoxSign32.stories.tsx +1 -1
  1945. package/src/icon/logo/ContentSharing32.stories.tsx +1 -1
  1946. package/src/icon/logo/CustomSetup32.stories.tsx +1 -1
  1947. package/src/icon/logo/DeviceTrust32.stories.tsx +1 -1
  1948. package/src/icon/logo/HelpArticle32.stories.tsx +1 -1
  1949. package/src/icon/logo/HowToGuides32.stories.tsx +1 -1
  1950. package/src/icon/logo/IconBoxApp512.stories.tsx +1 -1
  1951. package/src/icon/logo/KeynoteForMac32.stories.tsx +1 -1
  1952. package/src/icon/logo/ManageContent32.stories.tsx +1 -1
  1953. package/src/icon/logo/ManageUsers32.stories.tsx +1 -1
  1954. package/src/icon/logo/Mobile32.stories.tsx +1 -1
  1955. package/src/icon/logo/Notifications32.stories.tsx +1 -1
  1956. package/src/icon/logo/NumbersForMac32.stories.tsx +1 -1
  1957. package/src/icon/logo/PagesForMac32.stories.tsx +1 -1
  1958. package/src/icon/logo/Reporting32.stories.tsx +1 -1
  1959. package/src/icon/logo/Security32.stories.tsx +1 -1
  1960. package/src/icon/logo/TroubleShootingTools32.stories.tsx +1 -1
  1961. package/src/icon/logo/UserSettings32.stories.tsx +1 -1
  1962. package/src/icons/collections/IconCollections.stories.tsx +1 -1
  1963. package/src/icons/collections/IconCollectionsAdd.stories.tsx +1 -1
  1964. package/src/icons/collections/IconCollectionsBolt.stories.tsx +1 -1
  1965. package/src/icons/collections/IconCollectionsFilled.stories.tsx +1 -1
  1966. package/src/icons/collections/IconCollectionsStar.stories.tsx +1 -1
  1967. package/src/icons/collections/IconCollectionsStarFilled.stories.tsx +1 -1
  1968. package/src/icons/collections/collections.stories.tsx +1 -1
  1969. package/src/icons/icons.stories.tsx +1 -1
  1970. package/src/icons/illustrations/__tests__/__snapshots__/PeopleOpeningEnvelopeIllustration.test.tsx.snap +6 -6
  1971. package/src/icons/states/__tests__/__snapshots__/EnvelopeTrophyState.test.tsx.snap +6 -6
  1972. package/src/icons/two-toned/IconAnnotation.tsx +1 -1
  1973. package/src/illustration/AllNewBox140.stories.tsx +1 -1
  1974. package/src/illustration/AppSupport140.stories.tsx +1 -1
  1975. package/src/illustration/Bell140.stories.tsx +1 -1
  1976. package/src/illustration/BoxDrive140.stories.tsx +1 -1
  1977. package/src/illustration/BoxMobile140.stories.tsx +1 -1
  1978. package/src/illustration/BudgetApproval56.stories.tsx +1 -1
  1979. package/src/illustration/Certificate56.stories.tsx +1 -1
  1980. package/src/illustration/CertificateSigning56.stories.tsx +1 -1
  1981. package/src/illustration/ChangeOrder56.stories.tsx +1 -1
  1982. package/src/illustration/Clock140.stories.tsx +1 -1
  1983. package/src/illustration/CollectionStar140.stories.tsx +1 -1
  1984. package/src/illustration/ContractorId56.stories.tsx +1 -1
  1985. package/src/illustration/CreativeApproval56.stories.tsx +1 -1
  1986. package/src/illustration/CreativeAssets56.stories.tsx +1 -1
  1987. package/src/illustration/CustomApp56.stories.tsx +1 -1
  1988. package/src/illustration/CustomSkill56.stories.tsx +1 -1
  1989. package/src/illustration/CustomTemplate56.stories.tsx +1 -1
  1990. package/src/illustration/CustomerSupport140.stories.tsx +1 -1
  1991. package/src/illustration/DiscoDanceParty140.stories.tsx +1 -1
  1992. package/src/illustration/Discount140.stories.tsx +1 -1
  1993. package/src/illustration/EmailVerification140.stories.tsx +1 -1
  1994. package/src/illustration/EmployeeId56.stories.tsx +1 -1
  1995. package/src/illustration/EmployeeReview56.stories.tsx +1 -1
  1996. package/src/illustration/EmptyStateDetails.stories.tsx +1 -1
  1997. package/src/illustration/EmptyStateFolder140.stories.tsx +1 -1
  1998. package/src/illustration/EmptyStatePreviewActivity140.stories.tsx +1 -1
  1999. package/src/illustration/Envelope140.stories.tsx +1 -1
  2000. package/src/illustration/ErrorState404140.stories.tsx +1 -1
  2001. package/src/illustration/Files.stories.tsx +1 -1
  2002. package/src/illustration/Files140.stories.tsx +1 -1
  2003. package/src/illustration/FinanceContract56.stories.tsx +1 -1
  2004. package/src/illustration/FolderArrow140.stories.tsx +1 -1
  2005. package/src/illustration/FolderFloat140.stories.tsx +1 -1
  2006. package/src/illustration/FolderPlane140.stories.tsx +1 -1
  2007. package/src/illustration/FolderStar140.stories.tsx +1 -1
  2008. package/src/illustration/Gavel56.stories.tsx +1 -1
  2009. package/src/illustration/Handshake56.stories.tsx +1 -1
  2010. package/src/illustration/HandshakeAgreement56.stories.tsx +1 -1
  2011. package/src/illustration/HatWand140.stories.tsx +1 -1
  2012. package/src/illustration/Keynote56.stories.tsx +1 -1
  2013. package/src/illustration/LegalContract56.stories.tsx +1 -1
  2014. package/src/illustration/LegalFolder56.stories.tsx +1 -1
  2015. package/src/illustration/LimitedApp56.stories.tsx +1 -1
  2016. package/src/illustration/MarketingPlan56.stories.tsx +1 -1
  2017. package/src/illustration/Megaphone140.stories.tsx +1 -1
  2018. package/src/illustration/MetricsReview56.stories.tsx +1 -1
  2019. package/src/illustration/Microphone140.stories.tsx +1 -1
  2020. package/src/illustration/Missing140.stories.tsx +1 -1
  2021. package/src/illustration/MoneyStack56.stories.tsx +1 -1
  2022. package/src/illustration/MonthlyReport56.stories.tsx +1 -1
  2023. package/src/illustration/NotesStar140.stories.tsx +1 -1
  2024. package/src/illustration/PlanSelection140.stories.tsx +1 -1
  2025. package/src/illustration/Playbook56.stories.tsx +1 -1
  2026. package/src/illustration/ProjectFolder56.stories.tsx +1 -1
  2027. package/src/illustration/RecentFiles140.stories.tsx +1 -1
  2028. package/src/illustration/RelayPlanet140.stories.tsx +1 -1
  2029. package/src/illustration/SalesContract56.stories.tsx +1 -1
  2030. package/src/illustration/Sandbox140.stories.tsx +1 -1
  2031. package/src/illustration/TaskList56.stories.tsx +1 -1
  2032. package/src/illustration/Transfers140.stories.tsx +1 -1
  2033. package/src/illustration/TrashEmpty140.stories.tsx +1 -1
  2034. package/src/illustration/Unplugged140.stories.tsx +1 -1
  2035. package/src/illustration/UploadCloud140.stories.tsx +1 -1
  2036. package/src/illustration/UserOrbit56.stories.tsx +1 -1
  2037. package/src/styles/colors.stories.tsx +1 -1
  2038. package/src/styles/common/_buttons.scss +1 -1
  2039. package/src/styles/constants/_buttons.scss +1 -0
  2040. package/src/styles/typography.stories.tsx +1 -1
  2041. package/src/utils/Browser.js +10 -0
  2042. package/src/utils/__tests__/Browser.test.js +28 -0
  2043. package/src/utils/__tests__/__snapshots__/createTheme.test.js.snap +35 -35
  2044. package/src/utils/__tests__/fields.test.js +2 -0
  2045. package/src/utils/__tests__/webcrypto.test.js +10 -0
  2046. package/src/utils/comparator.js +1 -1
  2047. package/src/utils/createTheme.stories.js +1 -1
  2048. package/src/utils/fields.js +3 -0
  2049. package/src/utils/flatten.js +6 -1
  2050. package/src/utils/size.js +5 -5
  2051. package/src/utils/sorter.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/Feed.js"],"names":["noop","uniqueId","getBadItemError","getBadUserError","getMissingItemTextOrStatus","isUserCorrectableError","commonMessages","messages","sortFeedItems","FEED_FILE_VERSIONS_FIELDS_TO_FETCH","Base","AnnotationsAPI","CommentsAPI","ThreadedCommentsAPI","FileActivitiesAPI","VersionsAPI","TasksNewAPI","GroupsAPI","TaskCollaboratorsAPI","TaskLinksAPI","AppActivityAPI","ACTION_TYPE_CREATED","ACTION_TYPE_RESTORED","ACTION_TYPE_TRASHED","ERROR_CODE_CREATE_TASK","ERROR_CODE_UPDATE_TASK","ERROR_CODE_GROUP_EXCEEDS_LIMIT","FEED_ITEM_TYPE_ANNOTATION","FEED_ITEM_TYPE_COMMENT","FEED_ITEM_TYPE_TASK","FEED_ITEM_TYPE_VERSION","FILE_ACTIVITY_TYPE_ANNOTATION","FILE_ACTIVITY_TYPE_APP_ACTIVITY","FILE_ACTIVITY_TYPE_COMMENT","FILE_ACTIVITY_TYPE_TASK","FILE_ACTIVITY_TYPE_VERSION","HTTP_STATUS_CODE_CONFLICT","IS_ERROR_DISPLAYED","PERMISSION_CAN_VIEW_ANNOTATIONS","TASK_NEW_APPROVED","TASK_NEW_COMPLETED","TASK_NEW_REJECTED","TASK_NEW_NOT_STARTED","TYPED_ID_FEED_PREFIX","TASK_MAX_GROUP_ASSIGNEES","TASK_NEW_INITIAL_STATUS","getItemWithFilteredReplies","item","replyId","replies","rest","filter","id","getItemWithPendingReply","reply","parseReplies","parsedReplies","map","tagged_message","message","getParsedFileActivitiesResponse","response","entries","length","data","parsedData","source","activity_type","taskItem","assigned_to","assignedToEntries","entry","assignedToEntry","role","toUpperCase","status","completion_rule","task_type","created_by","target","commentItem","annotationItem","appActivityItem","created_at","occurred_at","versionsItem","type","action_by","collaborators","uploader_display_name","name","collaborator","end","number","version_end","start","version_start","version_number","action_type","modified_at","modified_by","trashed_at","trashed_by","restored_at","restored_by","reverse","Feed","constructor","options","file","annotationId","text","permissions","successCallback","errorCallback","annotationsAPI","feedItemChanges","updateFeedItem","isPending","updateAnnotation","annotation","total_reply_count","annotationBase","isDestroyed","e","code","updateCommentErrorCallback","createFeedError","commentUpdateErrorMessage","feedErrorCallback","error","parentId","updateReplyItem","repliesFetchErrorMessage","successCallBack","deleteAnnotation","deleteFeedItem","bind","deleteCommentErrorCallback","resolve","comment","taskId","taskCollaboratorId","taskCollaboratorStatus","collaboratorsApi","taskCollaboratorsAPI","push","taskCollaboratorPayload","handleError","errorMessage","taskApproveErrorMessage","taskCompleteErrorMessage","taskRejectErrorMessage","taskActionErrorTitle","updateTaskCollaborator","taskCollaborator","taskCollab","updateTaskCollaboratorSuccessCallback","updatedCollaborator","tasksNewAPI","getTask","task","groupInfoPromises","addedAssignees","assignee","groupId","getGroupCount","group","groupCounts","Promise","all","hasAnyGroupCountExceeded","some","groupInfo","total_count","warning","reject","updateTaskWithDeps","taskData","commentId","commentsAPI","deleteComment","threadedCommentsAPI","fileId","deleteReplySuccessCallback","deleteReplyErrorCallback","modifyFeedItemRepliesCountBy","deleteReplyItem","commentDeleteErrorMessage","currentUser","assignees","taskType","dueAt","completionRule","uuid","dueAtString","dueAtDate","Date","toISOString","pendingTask","due_at","description","avatar_url","can_delete","can_update","limit","next_marker","can_create_task_collaborator","can_create_task_link","task_links","taskPayload","then","createTaskWithDeps","taskWithDepsData","addPendingItem","catch","deleteTask","taskDeleteErrorMessage","cachedItems","getCachedItems","feedItems","items","feedItem","setCachedItems","errors","hasError","console","itemBase","date","pendingFeedItem","feedItemsWithPendingItem","commentBase","pendingReply","updatedFeedItems","commentData","commentCreateConflictMessage","commentCreateErrorMessage","updates","replyUpdates","getItemWithUpdatedReply","updatedItem","hasMention","taggedMessage","createComment","createCommentSuccessCallback","createCommentErrorCallback","updateComment","undefined","updateReplyErrorCallback","n","find","itemId","newReplyCount","appActivityId","appActivityAPI","deleteAppActivity","deleteAppActivityErrorCallback","appActivityDeleteErrorMessage","taskLinksAPI","addAnnotation","newAnnotation","getCacheKey","cache","getCache","cacheKey","get","set","shouldRefreshCache","onError","shouldShowAnnotations","shouldShowAppActivity","shouldShowReplies","shouldShowTasks","shouldShowVersions","shouldUseUAA","annotationsPromise","fetchAnnotations","commentsPromise","fetchThreadedComments","fetchComments","tasksPromise","fetchTasksNew","appActivityPromise","fetchAppActivity","versionsPromise","fetchVersions","currentVersionPromise","fetchCurrentVersion","annotationActivityType","appActivityActivityType","taskActivityType","versionsActivityType","filteredActivityTypes","fileActivitiesPromise","fetchFileActivities","handleFeedItems","parsedFeedItems","versions","currentVersion","versionsWithCurrent","versionsAPI","addCurrentVersion","sortedFeedItems","shouldFetchReplies","getAnnotations","fetchFeedItemErrorCallback","getComments","fetchThreadedComment","getComment","fetchThreadedCommentSuccessCallback","activityTypes","fileActivitiesAPI","getActivities","fileID","fetchReplies","commentFeedItemId","commentFeedItemType","isRepliesLoading","successCallbackFn","errorCallbackFn","fetchRepliesErrorCallback","getAnnotationReplies","getCommentReplies","getVersions","file_version","getVersion","getTasksForFile","err","shouldDisplayError","createTaskCollaboratorsforGroup","createTaskCollaborator","user","deleteTaskCollaborator","createTaskLink","title","errorOccured","createReply","parentType","addPendingReply","createReplySuccessCallback","createReplyErrorCallback","createAnnotationReply","createCommentReply","destroyTaskCollaborators","Array","isArray","forEach","api","destroy","destroyTaskLinks","getAppActivity"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Helper for activity feed API's\n * @author Box\n */\nimport noop from 'lodash/noop';\nimport uniqueId from 'lodash/uniqueId';\nimport type { MessageDescriptor } from 'react-intl';\nimport { getBadItemError, getBadUserError, getMissingItemTextOrStatus, isUserCorrectableError } from '../utils/error';\nimport commonMessages from '../elements/common/messages';\nimport messages from './messages';\nimport { sortFeedItems } from '../utils/sorter';\nimport { FEED_FILE_VERSIONS_FIELDS_TO_FETCH } from '../utils/fields';\nimport Base from './Base';\nimport AnnotationsAPI from './Annotations';\nimport CommentsAPI from './Comments';\nimport ThreadedCommentsAPI from './ThreadedComments';\nimport FileActivitiesAPI from './FileActivities';\nimport VersionsAPI from './Versions';\nimport TasksNewAPI from './tasks/TasksNew';\nimport GroupsAPI from './Groups';\nimport TaskCollaboratorsAPI from './tasks/TaskCollaborators';\nimport TaskLinksAPI from './tasks/TaskLinks';\nimport AppActivityAPI from './AppActivity';\nimport {\n ACTION_TYPE_CREATED,\n ACTION_TYPE_RESTORED,\n ACTION_TYPE_TRASHED,\n ERROR_CODE_CREATE_TASK,\n ERROR_CODE_UPDATE_TASK,\n ERROR_CODE_GROUP_EXCEEDS_LIMIT,\n FEED_ITEM_TYPE_ANNOTATION,\n FEED_ITEM_TYPE_COMMENT,\n FEED_ITEM_TYPE_TASK,\n FEED_ITEM_TYPE_VERSION,\n FILE_ACTIVITY_TYPE_ANNOTATION,\n FILE_ACTIVITY_TYPE_APP_ACTIVITY,\n FILE_ACTIVITY_TYPE_COMMENT,\n FILE_ACTIVITY_TYPE_TASK,\n FILE_ACTIVITY_TYPE_VERSION,\n HTTP_STATUS_CODE_CONFLICT,\n IS_ERROR_DISPLAYED,\n PERMISSION_CAN_VIEW_ANNOTATIONS,\n TASK_NEW_APPROVED,\n TASK_NEW_COMPLETED,\n TASK_NEW_REJECTED,\n TASK_NEW_NOT_STARTED,\n TYPED_ID_FEED_PREFIX,\n TASK_MAX_GROUP_ASSIGNEES,\n} from '../constants';\nimport type {\n TaskCompletionRule,\n TaskCollabAssignee,\n TaskCollabStatus,\n TaskLink,\n TaskNew,\n TaskType,\n TaskPayload,\n TaskUpdatePayload,\n} from '../common/types/tasks';\nimport type { ElementsXhrError, ErrorResponseData, APIOptions } from '../common/types/api';\nimport type {\n SelectorItems,\n SelectorItem,\n UserMini,\n GroupMini,\n BoxItem,\n BoxItemPermission,\n BoxItemVersion,\n FileVersions,\n User,\n} from '../common/types/core';\nimport type {\n Annotation,\n AnnotationPermission,\n Annotations,\n AppActivityItems,\n BoxCommentPermission,\n Comment,\n CommentFeedItemType,\n Comments,\n FeedItem,\n FeedItems,\n FeedItemStatus,\n FileActivity,\n FileActivityTypes,\n Task,\n Tasks,\n ThreadedComments as ThreadedCommentsType,\n} from '../common/types/feed';\n\nconst TASK_NEW_INITIAL_STATUS = TASK_NEW_NOT_STARTED;\n\ntype FeedItemsCache = {\n errors: ErrorResponseData[],\n items: FeedItems,\n};\n\ntype ErrorCallback = (e: ElementsXhrError, code: string, contextInfo?: Object) => void;\n\nconst getItemWithFilteredReplies = <T: { replies?: Array<Comment> }>(item: T, replyId: string): T => {\n const { replies = [], ...rest } = item;\n return { replies: replies.filter(({ id }) => id !== replyId), ...rest };\n};\n\nconst getItemWithPendingReply = <T: { replies?: Array<Comment> }>(item: T, reply: Comment): T => {\n const { replies = [], ...rest } = item;\n return { replies: [...replies, reply], ...rest };\n};\n\nconst parseReplies = (replies: Comment[]): Comment[] => {\n const parsedReplies = [...replies];\n\n return parsedReplies.map(reply => {\n return { ...reply, tagged_message: reply.tagged_message || reply.message || '' };\n });\n};\n\nexport const getParsedFileActivitiesResponse = (response?: { entries: FileActivity[] }) => {\n if (!response || !response.entries || !response.entries.length) {\n return [];\n }\n\n const data = response.entries;\n\n const parsedData: Array<Object> = data\n .map(item => {\n if (!item.source) {\n return null;\n }\n\n const source = { ...item.source };\n\n switch (item.activity_type) {\n case FILE_ACTIVITY_TYPE_TASK: {\n const taskItem = { ...source[FILE_ACTIVITY_TYPE_TASK] };\n // UAA follows a lowercased enum naming convention, convert to uppercase to align with task api\n if (taskItem.assigned_to?.entries) {\n const assignedToEntries = taskItem.assigned_to.entries.map(entry => {\n const assignedToEntry = { ...entry };\n\n assignedToEntry.role = entry.role.toUpperCase();\n assignedToEntry.status = entry.status.toUpperCase();\n\n return assignedToEntry;\n });\n // $FlowFixMe Using the toUpperCase method makes Flow assume role and status is a string type, which is incompatible with string literal\n taskItem.assigned_to.entries = assignedToEntries;\n }\n if (taskItem.completion_rule) {\n taskItem.completion_rule = taskItem.completion_rule.toUpperCase();\n }\n if (taskItem.status) {\n taskItem.status = taskItem.status.toUpperCase();\n }\n if (taskItem.task_type) {\n taskItem.task_type = taskItem.task_type.toUpperCase();\n }\n // $FlowFixMe File Activities only returns a created_by user, Flow type fix is needed\n taskItem.created_by = { target: taskItem.created_by };\n\n return taskItem;\n }\n case FILE_ACTIVITY_TYPE_COMMENT: {\n const commentItem = { ...source[FILE_ACTIVITY_TYPE_COMMENT] };\n\n if (commentItem.replies && commentItem.replies.length) {\n const replies = parseReplies(commentItem.replies);\n\n commentItem.replies = replies;\n }\n\n commentItem.tagged_message = commentItem.tagged_message || commentItem.message || '';\n\n return commentItem;\n }\n case FILE_ACTIVITY_TYPE_ANNOTATION: {\n const annotationItem = { ...source[FILE_ACTIVITY_TYPE_ANNOTATION] };\n\n if (annotationItem.replies && annotationItem.replies.length) {\n const replies = parseReplies(annotationItem.replies);\n\n annotationItem.replies = replies;\n }\n\n return annotationItem;\n }\n case FILE_ACTIVITY_TYPE_APP_ACTIVITY: {\n const appActivityItem = { ...source[FILE_ACTIVITY_TYPE_APP_ACTIVITY] };\n\n appActivityItem.created_at = appActivityItem.occurred_at;\n\n return appActivityItem;\n }\n\n case FILE_ACTIVITY_TYPE_VERSION: {\n const versionsItem = { ...source[FILE_ACTIVITY_TYPE_VERSION] };\n\n versionsItem.type = FEED_ITEM_TYPE_VERSION;\n if (versionsItem.action_by) {\n const collaborators = {};\n\n if (versionsItem.action_by.length === 1) {\n versionsItem.uploader_display_name = versionsItem.action_by[0].name;\n }\n\n versionsItem.action_by.map(collaborator => {\n collaborators[collaborator.id] = { ...collaborator };\n return collaborator;\n });\n\n versionsItem.collaborators = collaborators;\n }\n if (versionsItem.end?.number) {\n versionsItem.version_end = versionsItem.end.number;\n versionsItem.id = versionsItem.end.id;\n }\n if (versionsItem.start?.number) {\n versionsItem.version_start = versionsItem.start.number;\n }\n\n if (versionsItem.version_start === versionsItem.version_end) {\n versionsItem.version_number = versionsItem.version_start;\n\n if (\n versionsItem.action_type === ACTION_TYPE_CREATED &&\n versionsItem.start?.created_at &&\n versionsItem.start?.created_by\n ) {\n versionsItem.modified_at = versionsItem.start.created_at;\n versionsItem.modified_by = { ...versionsItem.start.created_by };\n }\n if (\n versionsItem.action_type === ACTION_TYPE_TRASHED &&\n versionsItem.start?.trashed_at &&\n versionsItem.start?.trashed_by\n ) {\n versionsItem.trashed_at = versionsItem.start.trashed_at;\n versionsItem.trashed_by = { ...versionsItem.start.trashed_by };\n }\n if (\n versionsItem.action_type === ACTION_TYPE_RESTORED &&\n versionsItem.start?.restored_at &&\n versionsItem.start?.restored_by\n ) {\n versionsItem.restored_at = versionsItem.start.restored_at;\n versionsItem.restored_by = { ...versionsItem.start.restored_by };\n }\n }\n\n return versionsItem;\n }\n\n default: {\n return null;\n }\n }\n })\n .filter(item => !!item)\n .reverse();\n\n return parsedData;\n};\n\nclass Feed extends Base {\n /**\n * @property {AnnotationsAPI}\n */\n annotationsAPI: AnnotationsAPI;\n\n /**\n * @property {VersionsAPI}\n */\n versionsAPI: VersionsAPI;\n\n /**\n * @property {CommentsAPI}\n */\n commentsAPI: CommentsAPI;\n\n /**\n * @property {AppActivityAPI}\n */\n appActivityAPI: AppActivityAPI;\n\n /**\n * @property {TasksNewAPI}\n */\n tasksNewAPI: TasksNewAPI;\n\n /**\n * @property {TaskCollaboratorsAPI}\n */\n taskCollaboratorsAPI: TaskCollaboratorsAPI[];\n\n /**\n * @property {TaskLinksAPI}\n */\n taskLinksAPI: TaskLinksAPI[];\n\n /**\n * @property {ThreadedCommentsAPI}\n */\n threadedCommentsAPI: ThreadedCommentsAPI;\n\n /**\n * @property {FileActivitiesAPI}\n */\n fileActivitiesAPI: FileActivitiesAPI;\n\n /**\n * @property {BoxItem}\n */\n file: BoxItem;\n\n /**\n * @property {ElementsXhrError}\n */\n errors: ElementsXhrError[];\n\n constructor(options: APIOptions) {\n super(options);\n this.taskCollaboratorsAPI = [];\n this.taskLinksAPI = [];\n this.errors = [];\n }\n\n /**\n * Creates pending card on create_start action, then updates card on next call\n * @param {BoxItem} file - The file to which the annotation is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {Annotation} annotation - the current annotation to be created\n * @param {string} id - unique id for the incoming annotation\n * @param {boolean} isPending - indicates the current creation process of the annotation\n */\n addAnnotation(file: BoxItem, currentUser: User, annotation: Annotation, id: string, isPending: boolean): void {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n\n // Add the pending interstitial card\n if (isPending) {\n const newAnnotation = {\n ...annotation,\n created_by: currentUser,\n id,\n type: FEED_ITEM_TYPE_ANNOTATION,\n };\n\n this.addPendingItem(this.file.id, currentUser, newAnnotation);\n\n return;\n }\n // Create action has completed, so update the existing pending item\n this.updateFeedItem({ ...annotation, isPending: false }, id);\n }\n\n updateAnnotation = (\n file: BoxItem,\n annotationId: string,\n text?: string,\n status?: FeedItemStatus,\n permissions: AnnotationPermission,\n successCallback: (annotation: Annotation) => void,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n if (!text && !status) {\n throw getMissingItemTextOrStatus();\n }\n\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n this.file = file;\n this.errorCallback = errorCallback;\n\n const feedItemChanges = {};\n if (text) {\n feedItemChanges.message = text;\n }\n if (status) {\n feedItemChanges.status = status;\n }\n this.updateFeedItem({ ...feedItemChanges, isPending: true }, annotationId);\n\n this.annotationsAPI.updateAnnotation(\n this.file.id,\n annotationId,\n permissions,\n feedItemChanges,\n (annotation: Annotation) => {\n const { replies, total_reply_count, ...annotationBase } = annotation;\n this.updateFeedItem(\n {\n // Do not update replies and total_reply_count props as their current values are not included in the response\n ...annotationBase,\n isPending: false,\n },\n annotationId,\n );\n if (!this.isDestroyed()) {\n successCallback(annotation);\n }\n },\n (e: ErrorResponseData, code: string) => {\n this.updateCommentErrorCallback(e, code, annotationId);\n },\n );\n };\n\n /**\n * Error callback for updating a comment\n *\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the id of either an annotation or comment\n * @return {void}\n */\n updateCommentErrorCallback = (e: ElementsXhrError, code: string, id: string) => {\n this.updateFeedItem(this.createFeedError(messages.commentUpdateErrorMessage), id);\n this.feedErrorCallback(true, e, code);\n };\n\n /**\n * Error callback for updating a reply\n *\n * @param {ElementsXhrError} error - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the id of the reply (comment)\n * @param {string} parentId - the id of either the parent item (an annotation or comment)\n * @return {void}\n */\n updateReplyErrorCallback = (error: ElementsXhrError, code: string, id: string, parentId: string) => {\n this.updateReplyItem(this.createFeedError(messages.commentUpdateErrorMessage), parentId, id);\n this.feedErrorCallback(true, error, code);\n };\n\n /**\n * Error callback for fetching replies\n *\n * @param {ElementsXhrError} error - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the id of either an annotation or comment\n * @return {void}\n */\n fetchRepliesErrorCallback = (error: ElementsXhrError, code: string, id: string) => {\n this.updateFeedItem(this.createFeedError(messages.repliesFetchErrorMessage), id);\n this.feedErrorCallback(true, error, code);\n };\n\n deleteAnnotation = (\n file: BoxItem,\n annotationId: string,\n permissions: AnnotationPermission,\n successCallBack: Function,\n errorCallback: Function,\n ): void => {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n\n this.updateFeedItem({ isPending: true }, annotationId);\n this.annotationsAPI.deleteAnnotation(\n this.file.id,\n annotationId,\n permissions,\n this.deleteFeedItem.bind(this, annotationId, successCallBack),\n (error: ElementsXhrError, code: string) => {\n // Reusing comment error handler since annotations are treated as comments to user\n this.deleteCommentErrorCallback(error, code, annotationId);\n },\n );\n };\n\n /**\n * Creates a key for the cache\n *\n * @param {string} id folder id\n * @return {string} key\n */\n getCacheKey(id: string): string {\n return `${TYPED_ID_FEED_PREFIX}${id}`;\n }\n\n /**\n * Gets the items from the cache\n *\n * @param {string} id the cache id\n */\n getCachedItems(id: string): ?FeedItemsCache {\n const cache = this.getCache();\n const cacheKey = this.getCacheKey(id);\n return cache.get(cacheKey);\n }\n\n /**\n * Sets the items in the cache\n *\n * @param {string} id - the cache id\n * @param {Array} items - the feed items to cache\n */\n setCachedItems(id: string, items: FeedItems) {\n const cache = this.getCache();\n const cacheKey = this.getCacheKey(id);\n cache.set(cacheKey, {\n errors: this.errors,\n items,\n });\n }\n\n /**\n * Gets the feed items\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {boolean} shouldRefreshCache - Optionally updates the cache\n * @param {Function} successCallback - the success callback which is called after data fetching is complete\n * @param {Function} errorCallback - the error callback which is called after data fetching is complete if there was an error\n * @param {Function} onError - the function to be called immediately after an error occurs\n * @param {Object} [options]- feature flips, etc\n * @param {Object} [options.shouldShowAppActivity] - feature flip the new app activity api\n */\n feedItems(\n file: BoxItem,\n shouldRefreshCache: boolean,\n successCallback: Function,\n errorCallback: (feedItems: FeedItems, errors: ElementsXhrError[]) => void,\n onError: ErrorCallback,\n {\n shouldShowAnnotations = false,\n shouldShowAppActivity = false,\n shouldShowReplies = false,\n shouldShowTasks = true,\n shouldShowVersions = true,\n shouldUseUAA = false,\n }: {\n shouldShowAnnotations?: boolean,\n shouldShowAppActivity?: boolean,\n shouldShowReplies?: boolean,\n shouldShowTasks?: boolean,\n shouldShowVersions?: boolean,\n shouldUseUAA?: boolean,\n } = {},\n ): void {\n const { id, permissions = {} } = file;\n const cachedItems = this.getCachedItems(id);\n if (cachedItems) {\n const { errors, items } = cachedItems;\n if (errors.length) {\n errorCallback(items, errors);\n } else {\n successCallback(items);\n }\n\n if (!shouldRefreshCache) {\n return;\n }\n }\n\n this.file = file;\n this.errors = [];\n this.errorCallback = onError;\n\n // Using the UAA File Activities endpoint replaces the need for these calls\n const annotationsPromise =\n !shouldUseUAA && shouldShowAnnotations\n ? this.fetchAnnotations(permissions, shouldShowReplies)\n : Promise.resolve();\n const commentsPromise = () => {\n if (shouldUseUAA) {\n return Promise.resolve();\n }\n\n return shouldShowReplies ? this.fetchThreadedComments(permissions) : this.fetchComments(permissions);\n };\n const tasksPromise = !shouldUseUAA && shouldShowTasks ? this.fetchTasksNew() : Promise.resolve();\n const appActivityPromise =\n !shouldUseUAA && shouldShowAppActivity ? this.fetchAppActivity(permissions) : Promise.resolve();\n const versionsPromise = !shouldUseUAA && shouldShowVersions ? this.fetchVersions() : Promise.resolve();\n const currentVersionPromise =\n !shouldUseUAA && shouldShowVersions ? this.fetchCurrentVersion() : Promise.resolve();\n\n const annotationActivityType =\n shouldShowAnnotations && permissions[PERMISSION_CAN_VIEW_ANNOTATIONS]\n ? [FILE_ACTIVITY_TYPE_ANNOTATION]\n : [];\n const appActivityActivityType = shouldShowAppActivity ? [FILE_ACTIVITY_TYPE_APP_ACTIVITY] : [];\n const taskActivityType = shouldShowTasks ? [FILE_ACTIVITY_TYPE_TASK] : [];\n const versionsActivityType = shouldShowVersions ? [FILE_ACTIVITY_TYPE_VERSION] : [];\n const filteredActivityTypes = [\n ...annotationActivityType,\n ...appActivityActivityType,\n FILE_ACTIVITY_TYPE_COMMENT,\n ...taskActivityType,\n ...versionsActivityType,\n ];\n\n const fileActivitiesPromise = shouldUseUAA\n ? this.fetchFileActivities(permissions, filteredActivityTypes, shouldShowReplies)\n : Promise.resolve();\n\n const handleFeedItems = (feedItems: FeedItems) => {\n if (!this.isDestroyed()) {\n this.setCachedItems(id, feedItems);\n if (this.errors.length) {\n errorCallback(feedItems, this.errors);\n } else {\n successCallback(feedItems);\n }\n }\n };\n\n if (shouldUseUAA) {\n fileActivitiesPromise.then(response => {\n if (!response) {\n return;\n }\n\n const parsedFeedItems = getParsedFileActivitiesResponse(response);\n handleFeedItems(parsedFeedItems);\n });\n } else {\n Promise.all([\n versionsPromise,\n currentVersionPromise,\n commentsPromise(),\n tasksPromise,\n appActivityPromise,\n annotationsPromise,\n ]).then(([versions: ?FileVersions, currentVersion: ?BoxItemVersion, ...feedItems]) => {\n const versionsWithCurrent = currentVersion\n ? this.versionsAPI.addCurrentVersion(currentVersion, versions, this.file)\n : undefined;\n const sortedFeedItems = sortFeedItems(versionsWithCurrent, ...feedItems);\n handleFeedItems(sortedFeedItems);\n });\n }\n }\n\n fetchAnnotations(permissions: BoxItemPermission, shouldFetchReplies?: boolean): Promise<?Annotations> {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n return new Promise(resolve => {\n this.annotationsAPI.getAnnotations(\n this.file.id,\n undefined,\n permissions,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n undefined,\n undefined,\n shouldFetchReplies,\n );\n });\n }\n\n /**\n * Fetches the comments for a file\n *\n * @param {Object} permissions - the file permissions\n * @return {Promise} - the file comments\n */\n fetchComments(permissions: BoxItemPermission): Promise<?Comments> {\n this.commentsAPI = new CommentsAPI(this.options);\n return new Promise(resolve => {\n this.commentsAPI.getComments(\n this.file.id,\n permissions,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n );\n });\n }\n\n /**\n * Fetches a comment for a file\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} commentId - comment id\n * @param {Function} successCallback\n * @param {ErrorCallback} errorCallback\n * @return {Promise} - the file comments\n */\n fetchThreadedComment(\n file: BoxItem,\n commentId: string,\n successCallback: (comment: Comment) => void,\n errorCallback: ErrorCallback,\n ): Promise<?Comment> {\n const { id, permissions } = file;\n if (!id || !permissions) {\n throw getBadItemError();\n }\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n return new Promise(resolve => {\n this.threadedCommentsAPI.getComment({\n commentId,\n errorCallback,\n fileId: id,\n permissions,\n successCallback: this.fetchThreadedCommentSuccessCallback.bind(this, resolve, successCallback),\n });\n });\n }\n\n /**\n * Callback for successful fetch of a comment\n *\n * @param {Function} resolve - resolve function\n * @param {Function} successCallback - success callback\n * @param {Comment} comment - comment data\n * @return {void}\n */\n fetchThreadedCommentSuccessCallback = (resolve: Function, successCallback: Function, comment: Comment): void => {\n successCallback(comment);\n resolve();\n };\n\n /**\n * Fetches the comments with replies for a file\n *\n * @param {Object} permissions - the file permissions\n * @return {Promise} - the file comments\n */\n fetchThreadedComments(permissions: BoxItemPermission): Promise<?ThreadedCommentsType> {\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n return new Promise(resolve => {\n this.threadedCommentsAPI.getComments({\n errorCallback: this.fetchFeedItemErrorCallback.bind(this, resolve),\n fileId: this.file.id,\n permissions,\n successCallback: resolve,\n });\n });\n }\n\n /**\n * Fetches the file activities for a file\n *\n * @param {BoxItemPermission} permissions - the file permissions\n * @param {FileActivityTypes[]} activityTypes - the activity types to filter by\n * @param {boolean} shouldShowReplies - specify if replies should be included in the response\n * @return {Promise} - the file comments\n */\n fetchFileActivities(\n permissions: BoxItemPermission,\n activityTypes: FileActivityTypes[],\n shouldShowReplies?: boolean = false,\n ): Promise<Object> {\n this.fileActivitiesAPI = new FileActivitiesAPI(this.options);\n return new Promise(resolve => {\n this.fileActivitiesAPI.getActivities({\n errorCallback: this.fetchFeedItemErrorCallback.bind(this, resolve),\n fileID: this.file.id,\n permissions,\n successCallback: resolve,\n activityTypes,\n shouldShowReplies,\n });\n });\n }\n\n /**\n * Fetches replies (comments) of a comment or annotation\n *\n * @param {BoxItem} file - The file to which the comment or annotation belongs to\n * @param {string} commentFeedItemId - ID of the comment or annotation\n * @param {CommentFeedItemType} commentFeedItemType - Type of the comment or annotation\n * @param {Function} successCallback\n * @param {ErrorCallback} errorCallback\n * @return {void}\n */\n fetchReplies(\n file: BoxItem,\n commentFeedItemId: string,\n commentFeedItemType: CommentFeedItemType,\n successCallback: (comments: Array<Comment>) => void,\n errorCallback: ErrorCallback,\n ): void {\n const { id, permissions } = file;\n if (!id || !permissions) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n\n this.updateFeedItem({ isRepliesLoading: true }, commentFeedItemId);\n\n const successCallbackFn = ({ entries }: ThreadedCommentsType) => {\n this.updateFeedItem(\n { isRepliesLoading: false, replies: entries, total_reply_count: entries.length },\n commentFeedItemId,\n );\n successCallback(entries);\n };\n const errorCallbackFn = (error: ErrorResponseData, code: string) => {\n this.fetchRepliesErrorCallback(error, code, commentFeedItemId);\n };\n\n if (commentFeedItemType === FEED_ITEM_TYPE_ANNOTATION) {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n this.annotationsAPI.getAnnotationReplies(\n file.id,\n commentFeedItemId,\n permissions,\n successCallbackFn,\n errorCallbackFn,\n );\n } else if (commentFeedItemType === FEED_ITEM_TYPE_COMMENT) {\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.getCommentReplies({\n fileId: file.id,\n commentId: commentFeedItemId,\n permissions,\n successCallback: successCallbackFn,\n errorCallback: errorCallbackFn,\n });\n }\n }\n\n /**\n * Fetches the versions for a file\n *\n * @return {Promise} - the file versions\n */\n fetchVersions(): Promise<?FileVersions> {\n this.versionsAPI = new VersionsAPI(this.options);\n\n return new Promise(resolve => {\n this.versionsAPI.getVersions(\n this.file.id,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n undefined,\n undefined,\n FEED_FILE_VERSIONS_FIELDS_TO_FETCH,\n );\n });\n }\n\n /**\n * Fetches the current version for a file\n *\n * @return {Promise} - the file versions\n */\n fetchCurrentVersion(): Promise<?BoxItemVersion> {\n this.versionsAPI = new VersionsAPI(this.options);\n\n return new Promise(resolve => {\n const { file_version = {} } = this.file;\n this.versionsAPI.getVersion(\n this.file.id,\n file_version.id,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n );\n });\n }\n\n /**\n * Fetches the tasks for a file\n *\n * @return {Promise} - the feed items\n */\n fetchTasksNew(): Promise<?Tasks> {\n this.tasksNewAPI = new TasksNewAPI(this.options);\n\n return new Promise(resolve => {\n this.tasksNewAPI.getTasksForFile({\n file: { id: this.file.id },\n successCallback: resolve,\n errorCallback: (err, code) => this.fetchFeedItemErrorCallback(resolve, err, code),\n });\n });\n }\n\n /**\n * Error callback for fetching feed items.\n * Should only call the error callback if the response is a 401, 429 or >= 500\n *\n * @param {Function} resolve - the function which will be called on error\n * @param {Object} e - the axios error\n * @param {string} code - the error code\n * @return {void}\n */\n fetchFeedItemErrorCallback(resolve: Function, e: ElementsXhrError, code: string) {\n const { status } = e;\n const shouldDisplayError = isUserCorrectableError(status);\n this.feedErrorCallback(shouldDisplayError, e, code);\n resolve();\n }\n\n /**\n * Updates a task assignment\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} taskId - ID of task to be updated\n * @param {string} taskCollaboratorId - Task assignment ID\n * @param {TaskCollabStatus} taskCollaboratorStatus - New task assignment status\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n updateTaskCollaborator = (\n file: BoxItem,\n taskId: string,\n taskCollaboratorId: string,\n taskCollaboratorStatus: TaskCollabStatus,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, taskId);\n const collaboratorsApi = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(collaboratorsApi);\n const taskCollaboratorPayload = {\n id: taskCollaboratorId,\n status: taskCollaboratorStatus,\n };\n const handleError = (e: ElementsXhrError, code: string) => {\n let errorMessage;\n switch (taskCollaboratorStatus) {\n case TASK_NEW_APPROVED:\n errorMessage = messages.taskApproveErrorMessage;\n break;\n case TASK_NEW_COMPLETED:\n errorMessage = messages.taskCompleteErrorMessage;\n break;\n case TASK_NEW_REJECTED:\n errorMessage = messages.taskRejectErrorMessage;\n break;\n default:\n errorMessage = messages.taskCompleteErrorMessage;\n }\n this.updateFeedItem(this.createFeedError(errorMessage, messages.taskActionErrorTitle), taskId);\n this.feedErrorCallback(true, e, code);\n };\n collaboratorsApi.updateTaskCollaborator({\n file,\n taskCollaborator: taskCollaboratorPayload,\n successCallback: (taskCollab: TaskCollabAssignee) => {\n this.updateTaskCollaboratorSuccessCallback(taskId, file, taskCollab, successCallback, handleError);\n },\n errorCallback: handleError,\n });\n };\n\n /**\n * Updates the task assignment state of the updated task\n *\n * @param {string} taskId - Box task id\n * @param {TaskAssignment} updatedCollaborator - New task assignment from API\n * @param {Function} successCallback - the function which will be called on success\n * @return {void}\n */\n updateTaskCollaboratorSuccessCallback = (\n taskId: string,\n file: { id: string },\n updatedCollaborator: TaskCollabAssignee,\n successCallback: Function,\n errorCallback: Function,\n ): void => {\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.tasksNewAPI.getTask({\n id: taskId,\n file,\n successCallback: task => {\n this.updateFeedItem({ ...task, isPending: false }, taskId);\n successCallback(updatedCollaborator);\n },\n errorCallback,\n });\n };\n\n /**\n * Updates a task in the new API\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} task - The update task payload object\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n updateTaskNew = async (\n file: BoxItem,\n task: TaskUpdatePayload,\n successCallback: () => void = noop,\n errorCallback: ErrorCallback = noop,\n ) => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.updateFeedItem({ isPending: true }, task.id);\n\n try {\n // create request for the size of each group by ID\n // TODO: use async/await for both creating and editing tasks\n const groupInfoPromises: Array<Promise<any>> = task.addedAssignees\n .filter(\n (assignee: SelectorItem<UserMini | GroupMini>) => assignee.item && assignee.item.type === 'group',\n )\n .map(assignee => assignee.id)\n .map(groupId => {\n return new GroupsAPI(this.options).getGroupCount({\n file,\n group: { id: groupId },\n });\n });\n\n const groupCounts: Array<{ total_count: number }> = await Promise.all(groupInfoPromises);\n const hasAnyGroupCountExceeded: boolean = groupCounts.some(\n groupInfo => groupInfo.total_count > TASK_MAX_GROUP_ASSIGNEES,\n );\n const warning = {\n code: ERROR_CODE_GROUP_EXCEEDS_LIMIT,\n type: 'warning',\n };\n\n if (hasAnyGroupCountExceeded) {\n this.feedErrorCallback(false, warning, ERROR_CODE_GROUP_EXCEEDS_LIMIT);\n return;\n }\n\n await new Promise((resolve, reject) => {\n this.tasksNewAPI.updateTaskWithDeps({\n file,\n task,\n successCallback: resolve,\n errorCallback: reject,\n });\n });\n\n await new Promise((resolve, reject) => {\n this.tasksNewAPI.getTask({\n file,\n id: task.id,\n successCallback: (taskData: Task) => {\n this.updateFeedItem(\n {\n ...taskData,\n isPending: false,\n },\n task.id,\n );\n\n resolve();\n },\n errorCallback: (e: ElementsXhrError) => {\n this.updateFeedItem({ isPending: false }, task.id);\n this.feedErrorCallback(false, e, ERROR_CODE_UPDATE_TASK);\n reject();\n },\n });\n });\n\n // everything succeeded, so call the passed in success callback\n if (!this.isDestroyed()) {\n successCallback();\n }\n } catch (e) {\n this.updateFeedItem({ isPending: false }, task.id);\n this.feedErrorCallback(false, e, ERROR_CODE_UPDATE_TASK);\n }\n };\n\n /**\n * Deletes a comment.\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} commentId - Comment ID\n * @param {BoxCommentPermission} permissions - Permissions for the comment\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteComment = (\n file: BoxItem,\n commentId: string,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n this.commentsAPI = new CommentsAPI(this.options);\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, commentId);\n\n this.commentsAPI.deleteComment({\n file,\n commentId,\n permissions,\n successCallback: this.deleteFeedItem.bind(this, commentId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Deletes a threaded comment (using ThreadedComments API).\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} commentId - Comment ID\n * @param {BoxCommentPermission} permissions - Permissions for the comment\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteThreadedComment = (\n file: BoxItem,\n commentId: string,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, commentId);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.deleteComment({\n fileId: file.id,\n commentId,\n permissions,\n successCallback: this.deleteFeedItem.bind(this, commentId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Deletes a reply (using ThreadedComments API).\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} id - id of the reply (comment)\n * @param {string} parentId - id of the parent feed item\n * @param {BoxCommentPermission} permissions - Permissions for the comment\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteReply = (\n file: BoxItem,\n id: string,\n parentId: string,\n permissions: BoxCommentPermission,\n successCallback: () => void,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateReplyItem({ isPending: true }, parentId, id);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.deleteComment({\n fileId: file.id,\n commentId: id,\n permissions,\n successCallback: this.deleteReplySuccessCallback.bind(this, id, parentId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteReplyErrorCallback(e, code, id, parentId);\n },\n });\n };\n\n /**\n * Callback for successful deletion of a reply.\n *\n * @param {string} id - ID of the reply\n * @param {string} parentId - ID of the parent feed item\n * @param {Function} successCallback - success callback\n * @return {void}\n */\n deleteReplySuccessCallback = (id: string, parentId: string, successCallback: Function): void => {\n this.modifyFeedItemRepliesCountBy(parentId, -1);\n this.deleteReplyItem(id, parentId, successCallback);\n };\n\n /**\n * Error callback for deleting a comment\n *\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code\n * @param {string} commentId - the comment id\n * @return {void}\n */\n deleteCommentErrorCallback = (e: ElementsXhrError, code: string, commentId: string) => {\n this.updateFeedItem(this.createFeedError(messages.commentDeleteErrorMessage), commentId);\n this.feedErrorCallback(true, e, code);\n };\n\n /**\n * Error callback for deleting a reply\n *\n * @param {ElementsXhrError} error - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the reply (comment) id\n * @param {string} parentId - the comment id of the parent feed item\n * @return {void}\n */\n deleteReplyErrorCallback = (error: ElementsXhrError, code: string, id: string, parentId: string) => {\n this.updateReplyItem(this.createFeedError(messages.commentDeleteErrorMessage), parentId, id);\n this.feedErrorCallback(true, error, code);\n };\n\n /**\n * Creates a task.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} message - Task text\n * @param {Array} assignees - List of assignees\n * @param {number} dueAt - Task's due date\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n createTaskNew = (\n file: BoxItem,\n currentUser: User,\n message: string,\n assignees: SelectorItems<>,\n taskType: TaskType,\n dueAt: ?string,\n completionRule: TaskCompletionRule,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n const uuid = uniqueId('task_');\n let dueAtString;\n if (dueAt) {\n const dueAtDate: Date = new Date(dueAt);\n dueAtString = dueAtDate.toISOString();\n }\n\n // TODO: make pending task generator a function\n const pendingTask: TaskNew = {\n created_by: {\n type: 'task_collaborator',\n target: currentUser,\n id: uniqueId(),\n role: 'CREATOR',\n status: TASK_NEW_INITIAL_STATUS,\n },\n completion_rule: completionRule,\n created_at: new Date().toISOString(),\n due_at: dueAtString,\n id: uuid,\n description: message,\n type: FEED_ITEM_TYPE_TASK,\n assigned_to: {\n entries: assignees.map((assignee: SelectorItem<UserMini | GroupMini>) => ({\n id: uniqueId(),\n target: { ...assignee, avatar_url: '', type: 'user' },\n status: TASK_NEW_INITIAL_STATUS,\n permissions: {\n can_delete: false,\n can_update: false,\n },\n role: 'ASSIGNEE',\n type: 'task_collaborator',\n })),\n limit: 10,\n next_marker: null,\n },\n permissions: {\n can_update: false,\n can_delete: false,\n can_create_task_collaborator: false,\n can_create_task_link: false,\n },\n task_links: {\n entries: [\n {\n id: uniqueId(),\n type: 'task_link',\n target: {\n type: 'file',\n ...file,\n },\n permissions: {\n can_delete: false,\n can_update: false,\n },\n },\n ],\n limit: 1,\n next_marker: null,\n },\n task_type: taskType,\n status: TASK_NEW_NOT_STARTED,\n };\n\n const taskPayload: TaskPayload = {\n description: message,\n due_at: dueAtString,\n task_type: taskType,\n completion_rule: completionRule,\n };\n\n // create request for the size of each group by ID\n const groupInfoPromises: Array<Promise<any>> = assignees\n .filter((assignee: SelectorItem<UserMini | GroupMini>) => (assignee.item && assignee.item.type) === 'group')\n .map(assignee => assignee.id)\n .map(groupId => {\n return new GroupsAPI(this.options).getGroupCount({\n file,\n group: { id: groupId },\n });\n });\n\n // Fetch each group size in parallel --> return an array of group sizes\n Promise.all(groupInfoPromises)\n .then((groupCounts: Array<{ total_count: number }>) => {\n const hasAnyGroupCountExceeded: boolean = groupCounts.some(\n groupInfo => groupInfo.total_count > TASK_MAX_GROUP_ASSIGNEES,\n );\n const warning = {\n code: ERROR_CODE_GROUP_EXCEEDS_LIMIT,\n type: 'warning',\n };\n if (hasAnyGroupCountExceeded) {\n this.feedErrorCallback(false, warning, ERROR_CODE_GROUP_EXCEEDS_LIMIT);\n return;\n }\n\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.tasksNewAPI.createTaskWithDeps({\n file,\n task: taskPayload,\n assignees,\n successCallback: (taskWithDepsData: any) => {\n this.addPendingItem(this.file.id, currentUser, pendingTask);\n this.updateFeedItem(\n {\n ...taskWithDepsData,\n task_links: {\n entries: taskWithDepsData.task_links,\n next_marker: null,\n limit: 1,\n },\n assigned_to: {\n entries: taskWithDepsData.assigned_to,\n next_marker: null,\n limit: taskWithDepsData.assigned_to.length,\n },\n isPending: false,\n },\n uuid,\n );\n successCallback(taskWithDepsData);\n },\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.feedErrorCallback(false, e, code);\n },\n });\n })\n .catch(error => {\n this.feedErrorCallback(false, error, ERROR_CODE_CREATE_TASK);\n });\n };\n\n /**\n * Creates a task group via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task|TaskUpdatePayload} task - The newly created or existing task from the API\n * @param {SelectorItem} assignee - The user assigned to this task\n * @param {Function} errorCallback - Task create error callback\n * @return {Promise<TaskAssignment>}\n */\n createTaskCollaboratorsforGroup(\n file: BoxItem,\n task: Task | TaskUpdatePayload,\n assignee: SelectorItem<UserMini | GroupMini>,\n ): Promise<Array<TaskCollabAssignee>> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n return new Promise((resolve, reject) => {\n const taskCollaboratorsAPI = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(taskCollaboratorsAPI);\n taskCollaboratorsAPI.createTaskCollaboratorsforGroup({\n file,\n task,\n group: assignee,\n successCallback: resolve,\n errorCallback: (e: ElementsXhrError) => {\n reject(e);\n },\n });\n });\n }\n\n /**\n * Creates a task collaborator via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task|TaskUpdatePayload} task - The newly created or existing task from the API\n * @param {SelectorItem} assignee - The user assigned to this task\n * @param {Function} errorCallback - Task create error callback\n * @return {Promise<TaskAssignment>}\n */\n createTaskCollaborator(\n file: BoxItem,\n task: Task | TaskUpdatePayload,\n assignee: SelectorItem<UserMini | GroupMini>,\n ): Promise<TaskCollabAssignee> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n return new Promise((resolve, reject) => {\n const taskCollaboratorsAPI = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(taskCollaboratorsAPI);\n\n taskCollaboratorsAPI.createTaskCollaborator({\n file,\n task,\n user: assignee,\n successCallback: resolve,\n errorCallback: (e: ElementsXhrError) => {\n reject(e);\n },\n });\n });\n }\n\n /**\n * Deletes a task collaborator via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task|TaskUpdatePayload} task - The newly deleted or existing task from the API\n * @param {TaskCollabAssignee} assignee - The user assigned to this task\n * @param {Function} errorCallback - Task delete error callback\n * @return {Promise<TaskAssignment>}\n */\n deleteTaskCollaborator(\n file: BoxItem,\n task: Task | TaskUpdatePayload,\n assignee: TaskCollabAssignee,\n ): Promise<TaskCollabAssignee> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file.id = file.id;\n return new Promise((resolve, reject) => {\n const taskCollaboratorsAPI = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(taskCollaboratorsAPI);\n\n taskCollaboratorsAPI.deleteTaskCollaborator({\n file,\n task,\n taskCollaborator: { id: assignee.id },\n successCallback: resolve,\n errorCallback: (e: ElementsXhrError) => {\n reject(e);\n },\n });\n });\n }\n\n /**\n * Creates a task link via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task} task - The newly created task from the API\n * @param {Function} errorCallback - Task create error callback\n * @return {Promise<TaskAssignment}\n */\n createTaskLink(file: BoxItem, task: Task): Promise<TaskLink> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n return new Promise((resolve, reject) => {\n const taskLinksAPI = new TaskLinksAPI(this.options);\n this.taskLinksAPI.push(taskLinksAPI);\n\n taskLinksAPI.createTaskLink({\n file,\n task,\n successCallback: resolve,\n errorCallback: reject,\n });\n });\n }\n\n /**\n * Deletes a task in the new API\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} taskId - The task's id\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteTaskNew = (\n file: BoxItem,\n task: TaskNew,\n successCallback: (taskId: string) => void = noop,\n errorCallback: ErrorCallback = noop,\n ) => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.updateFeedItem({ isPending: true }, task.id);\n\n this.tasksNewAPI.deleteTask({\n file,\n task,\n successCallback: this.deleteFeedItem.bind(this, task.id, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.updateFeedItem(this.createFeedError(messages.taskDeleteErrorMessage), task.id);\n this.feedErrorCallback(true, e, code);\n },\n });\n };\n\n /**\n * Deletes a feed item from the cache\n *\n * @param {string} id - The id of the feed item to be deleted\n * @param {Function} successCallback - function to be called after the delete\n */\n deleteFeedItem = (id: string, successCallback: Function = noop) => {\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const feedItems = cachedItems.items.filter(feedItem => feedItem.id !== id);\n this.setCachedItems(this.file.id, feedItems);\n\n if (!this.isDestroyed()) {\n successCallback(id);\n }\n }\n };\n\n /**\n * Deletes a reply from the cache\n *\n * @param {string} id - The id of the feed item to be deleted\n * @param {string} parentId - The id of the parent feed item\n * @param {Function} successCallback - function to be called after the delete\n */\n deleteReplyItem = (\n id: string,\n parentId: string,\n successCallback: (id: string, parentId: string) => void = noop,\n ) => {\n const cachedItems = this.getCachedItems(this.file.id) || { items: [], errors: [] };\n const feedItems = cachedItems.items.map(item => {\n if (item.id !== parentId) {\n return item;\n }\n if (item.type === FEED_ITEM_TYPE_ANNOTATION) {\n return getItemWithFilteredReplies<Annotation>(item, id);\n }\n if (item.type === FEED_ITEM_TYPE_COMMENT) {\n return getItemWithFilteredReplies<Comment>(item, id);\n }\n return item;\n });\n this.setCachedItems(this.file.id, feedItems);\n\n if (!this.isDestroyed()) {\n successCallback(id, parentId);\n }\n };\n\n /**\n * Network error callback\n *\n * @param {boolean} hasError - true if the UI should display an error\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code for the error which occured\n * @return {void}\n */\n feedErrorCallback = (hasError: boolean = false, e: ElementsXhrError, code: string): void => {\n if (hasError) {\n this.errors.push({ ...e, code });\n }\n\n if (!this.isDestroyed() && this.errorCallback) {\n this.errorCallback(e, code, {\n error: e,\n [IS_ERROR_DISPLAYED]: hasError,\n });\n }\n\n console.error(e); // eslint-disable-line no-console\n };\n\n /**\n * Add a placeholder pending feed item.\n *\n * @param {string} id - the file id\n * @param {Object} currentUser - the user who performed the action\n * @param {Object} itemBase - Base properties for item to be added to the feed as pending.\n * @return {void}\n */\n addPendingItem = (id: string, currentUser: User, itemBase: Object): Comment | Task | TaskNew | BoxItemVersion => {\n if (!currentUser) {\n throw getBadUserError();\n }\n\n const date = new Date().toISOString();\n const pendingFeedItem = {\n created_at: date,\n created_by: currentUser,\n modified_at: date,\n isPending: true,\n ...itemBase,\n };\n const cachedItems = this.getCachedItems(this.file.id);\n const feedItems = cachedItems ? cachedItems.items : [];\n const feedItemsWithPendingItem = [...feedItems, pendingFeedItem];\n this.setCachedItems(id, feedItemsWithPendingItem);\n\n return pendingFeedItem;\n };\n\n /**\n * Add a placeholder pending comment (reply).\n *\n * @param {string} parentId - id of parent comment or annotation\n * @param {Object} currentUser - the user who performed the action\n * @param {Object} commentBase - Base properties for reply (comment) to be added to the feed as pending.\n * @return {Comment} - newly created pending reply\n */\n addPendingReply = (parentId: string, currentUser: User, commentBase: Object): Comment => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n if (!currentUser) {\n throw getBadUserError();\n }\n\n const date = new Date().toISOString();\n const pendingReply: Comment = {\n created_at: date,\n created_by: currentUser,\n modified_at: date,\n isPending: true,\n ...commentBase,\n };\n\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const updatedFeedItems = cachedItems.items.map(item => {\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_COMMENT) {\n return getItemWithPendingReply<Comment>(item, pendingReply);\n }\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_ANNOTATION) {\n return getItemWithPendingReply<Annotation>(item, pendingReply);\n }\n return item;\n });\n\n this.setCachedItems(this.file.id, updatedFeedItems);\n }\n\n return pendingReply;\n };\n\n /**\n * Callback for successful creation of a Comment.\n *\n * @param {Comment} commentData - API returned Comment\n * @param {string} id - ID of the feed item to update with the new comment data\n * @return {void}\n */\n createCommentSuccessCallback = (commentData: Comment, id: string, successCallback: Function): void => {\n const { message = '', tagged_message = '' } = commentData;\n // Comment component uses tagged_message only\n commentData.tagged_message = tagged_message || message;\n\n this.updateFeedItem(\n {\n ...commentData,\n isPending: false,\n },\n id,\n );\n\n if (!this.isDestroyed()) {\n successCallback(commentData);\n }\n };\n\n /**\n * Callback for failed creation of a Comment.\n *\n * @param {Object} e - The axios error\n * @param {string} code - the error code\n * @param {string} id - ID of the feed item to update\n * @return {void}\n */\n createCommentErrorCallback = (e: ElementsXhrError, code: string, id: string) => {\n const errorMessage =\n e.status === HTTP_STATUS_CODE_CONFLICT\n ? messages.commentCreateConflictMessage\n : messages.commentCreateErrorMessage;\n this.updateFeedItem(this.createFeedError(errorMessage), id);\n this.feedErrorCallback(false, e, code);\n };\n\n /**\n * Callback for successful creation of a Comment.\n *\n * @param {Comment} commentData - API returned Comment\n * @param {string} parentId - ID of the parent feed item\n * @param {string} id - ID of the reply to update with the new comment data\n * @param {Function} successCallback - success callback\n * @return {void}\n */\n createReplySuccessCallback = (\n commentData: Comment,\n parentId: string,\n id: string,\n successCallback: Function,\n ): void => {\n this.updateReplyItem(\n {\n ...commentData,\n isPending: false,\n },\n parentId,\n id,\n );\n\n if (!this.isDestroyed()) {\n successCallback(commentData);\n }\n };\n\n /**\n * Callback for failed creation of a reply.\n *\n * @param {ElementsXhrError} error - The axios error\n * @param {string} code - the error code\n * @param {string} parentId - ID of the parent feed item\n * @param {string} id - ID of the feed item to update\n * @return {void}\n */\n createReplyErrorCallback = (error: ElementsXhrError, code: string, parentId: string, id: string) => {\n const errorMessage =\n error.status === HTTP_STATUS_CODE_CONFLICT\n ? messages.commentCreateConflictMessage\n : messages.commentCreateErrorMessage;\n this.updateReplyItem(this.createFeedError(errorMessage), parentId, id);\n this.feedErrorCallback(false, error, code);\n };\n\n /**\n * Constructs an error object that renders to an inline feed error\n *\n * @param {string} message - The error message body.\n * @param {string} title - The error message title.\n * @return {Object} An error message object\n */\n createFeedError(message: MessageDescriptor, title: MessageDescriptor = commonMessages.errorOccured) {\n return {\n error: { message, title },\n };\n }\n\n /**\n * Replace a feed item with new feed item data.\n *\n * @param {Object} updates - The new data to be applied to the feed item.\n * @param {string} id - ID of the feed item to replace.\n * @return {void}\n */\n updateFeedItem = (updates: Object, id: string): ?FeedItems => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const updatedFeedItems = cachedItems.items.map((item: FeedItem) => {\n if (item.id === id) {\n return {\n ...item,\n ...updates,\n };\n }\n\n return item;\n });\n\n this.setCachedItems(this.file.id, updatedFeedItems);\n return updatedFeedItems;\n }\n\n return null;\n };\n\n /**\n * Replace a reply of feed item with new comment data.\n *\n * @param {Object} replyUpdates - New data to be applied to the reply.\n * @param {string} parentId - ID of the parent feed item.\n * @param {string} id - ID of the reply to replace.\n * @return {void}\n */\n updateReplyItem = (replyUpdates: Object, parentId: string, id: string) => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n\n const getItemWithUpdatedReply = <T: { replies?: Array<Comment> }>(\n item: T,\n replyId: string,\n updates: Object,\n ): T => {\n const updatedItem: T = { ...item };\n if (updatedItem.replies) {\n updatedItem.replies = updatedItem.replies.map(reply => {\n if (reply.id === replyId) {\n return {\n ...reply,\n ...updates,\n };\n }\n return reply;\n });\n }\n return updatedItem;\n };\n\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const updatedFeedItems = cachedItems.items.map((item: FeedItem) => {\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_COMMENT) {\n return getItemWithUpdatedReply<Comment>(item, id, replyUpdates);\n }\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_ANNOTATION) {\n return getItemWithUpdatedReply<Annotation>(item, id, replyUpdates);\n }\n return item;\n });\n\n this.setCachedItems(this.file.id, updatedFeedItems);\n }\n };\n\n /**\n * Create a comment, and make a pending item to be replaced once the API is successful.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} text - the comment text\n * @param {boolean} hasMention - true if there is an @mention in the text\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n createComment = (\n file: BoxItem,\n currentUser: User,\n text: string,\n hasMention: boolean,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n const uuid = uniqueId('comment_');\n const commentData = {\n id: uuid,\n tagged_message: text,\n type: FEED_ITEM_TYPE_COMMENT,\n };\n\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.addPendingItem(this.file.id, currentUser, commentData);\n\n const message = {};\n if (hasMention) {\n message.taggedMessage = text;\n } else {\n message.message = text;\n }\n\n this.commentsAPI = new CommentsAPI(this.options);\n\n this.commentsAPI.createComment({\n file,\n ...message,\n successCallback: (comment: Comment) => {\n this.createCommentSuccessCallback(comment, uuid, successCallback);\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.createCommentErrorCallback(e, code, uuid);\n },\n });\n };\n\n /**\n * Create a threaded comment (using ThreadedComments API),\n * and make a pending item to be replaced once the API is successful.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} text - the comment text\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n createThreadedComment = (\n file: BoxItem,\n currentUser: User,\n text: string,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n const uuid = uniqueId('comment_');\n const commentData = {\n id: uuid,\n tagged_message: text,\n type: FEED_ITEM_TYPE_COMMENT,\n };\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.addPendingItem(this.file.id, currentUser, commentData);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.createComment({\n file,\n message: text,\n successCallback: (comment: Comment) => {\n this.createCommentSuccessCallback(comment, uuid, successCallback);\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.createCommentErrorCallback(e, code, uuid);\n },\n });\n };\n\n /**\n * Create a reply to annotation or comment, and make a pending item to be replaced once the API is successful.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} parentId - id of the parent item\n * @param {CommentFeedItemType} parentType - type of the parent item\n * @param {string} text - the comment text\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n createReply(\n file: BoxItem,\n currentUser: User,\n parentId: string,\n parentType: CommentFeedItemType,\n text: string,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void {\n const { id, permissions } = file;\n if (!id || !permissions) {\n throw getBadItemError();\n }\n\n const uuid = uniqueId('comment_');\n const commentData = {\n id: uuid,\n tagged_message: text,\n type: FEED_ITEM_TYPE_COMMENT,\n };\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.addPendingReply(parentId, currentUser, commentData);\n this.modifyFeedItemRepliesCountBy(parentId, 1);\n\n const successCallbackFn = (comment: Comment) => {\n this.createReplySuccessCallback(comment, parentId, uuid, successCallback);\n };\n const errorCallbackFn = (error: ErrorResponseData, code: string) => {\n this.createReplyErrorCallback(error, code, parentId, uuid);\n };\n\n if (parentType === FEED_ITEM_TYPE_ANNOTATION) {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n this.annotationsAPI.createAnnotationReply(\n file.id,\n parentId,\n permissions,\n text,\n successCallbackFn,\n errorCallbackFn,\n );\n } else if (parentType === FEED_ITEM_TYPE_COMMENT) {\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.createCommentReply({\n fileId: file.id,\n commentId: parentId,\n permissions,\n message: text,\n successCallback: successCallbackFn,\n errorCallback: errorCallbackFn,\n });\n }\n }\n\n /**\n * Update a comment\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} commentId - Comment ID\n * @param {string} text - the comment text\n * @param {boolean} hasMention - true if there is an @mention in the text\n * @param {BoxCommentPermission} permissions - Permissions to attach to the app activity items\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n updateComment = (\n file: BoxItem,\n commentId: string,\n text: string,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n const commentData = {\n tagged_message: text,\n };\n\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ ...commentData, isPending: true }, commentId);\n\n const message = {};\n if (hasMention) {\n message.tagged_message = text;\n } else {\n message.message = text;\n }\n\n this.commentsAPI = new CommentsAPI(this.options);\n\n this.commentsAPI.updateComment({\n file,\n commentId,\n permissions,\n ...message,\n successCallback: (comment: Comment) => {\n // use the request payload instead of response in the\n // feed item update because response may not contain\n // the tagged version of the message\n this.updateFeedItem(\n {\n ...message,\n isPending: false,\n },\n commentId,\n );\n if (!this.isDestroyed()) {\n successCallback(comment);\n }\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.updateCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Update a threaded comment\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} commentId - Comment ID\n * @param {string} text - the comment text\n * @param {FeedItemStatus} status - status of the comment\n * @param {BoxCommentPermission} permissions - Permissions to attach to the app activity items\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n updateThreadedComment = (\n file: BoxItem,\n commentId: string,\n text?: string,\n status?: FeedItemStatus,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n if (!text && !status) {\n throw getMissingItemTextOrStatus();\n }\n\n const commentData = {};\n if (text) {\n commentData.tagged_message = text;\n }\n if (status) {\n commentData.status = status;\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ ...commentData, isPending: true }, commentId);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.updateComment({\n fileId: file.id,\n commentId,\n permissions,\n message: text,\n status,\n successCallback: (comment: Comment) => {\n const { replies, total_reply_count, ...commentBase } = comment;\n this.updateFeedItem(\n {\n // Do not update replies and total_reply_count props as their current values are not included in the response\n ...commentBase,\n isPending: false,\n },\n commentId,\n );\n if (!this.isDestroyed()) {\n successCallback(comment);\n }\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.updateCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Update a reply\n *\n * @param {BoxItem} file - The file to which the reply with its parent is assigned\n * @param {string} id - id of the reply\n * @param {string} parentId - id of the parent item\n * @param {string} text - the updated text\n * @param {BoxCommentPermission} permissions - Permissions to attach to the app activity items\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n updateReply = (\n file: BoxItem,\n id: string,\n parentId: string,\n text: string,\n permissions: BoxCommentPermission,\n successCallback: (comment: Comment) => void,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateReplyItem({ tagged_message: text, isPending: true }, parentId, id);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.updateComment({\n fileId: file.id,\n commentId: id,\n permissions,\n message: text,\n undefined,\n successCallback: (comment: Comment) => {\n this.updateReplyItem(\n {\n ...comment,\n isPending: false,\n },\n parentId,\n id,\n );\n if (!this.isDestroyed()) {\n successCallback(comment);\n }\n },\n errorCallback: (error: ErrorResponseData, code: string) => {\n this.updateReplyErrorCallback(error, code, id, parentId);\n },\n });\n };\n\n /**\n * Modify feed item replies count\n *\n * @param {string} id - id of the item\n * @param {number} n - number to modify the count by\n * @return {void}\n */\n modifyFeedItemRepliesCountBy = (id: string, n: number) => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n\n const { items: feedItems = [] } = this.getCachedItems(this.file.id) || {};\n const feedItem = feedItems.find(({ id: itemId }) => itemId === id);\n\n if (!feedItem || (feedItem.type !== 'annotation' && feedItem.type !== 'comment')) {\n return;\n }\n\n const newReplyCount = (feedItem.total_reply_count || 0) + n;\n if (newReplyCount >= 0) {\n this.updateFeedItem({ total_reply_count: newReplyCount }, id);\n }\n };\n\n destroyTaskCollaborators() {\n if (Array.isArray(this.taskCollaboratorsAPI)) {\n this.taskCollaboratorsAPI.forEach(api => api.destroy());\n this.taskCollaboratorsAPI = [];\n }\n }\n\n destroyTaskLinks() {\n if (Array.isArray(this.taskLinksAPI)) {\n this.taskLinksAPI.forEach(api => api.destroy());\n this.taskLinksAPI = [];\n }\n }\n\n /**\n * Fetches app activities for a file\n * @param {BoxItemPermission} permissions - Permissions to attach to the app activity items\n *\n * @return {Promise} - the feed items\n */\n fetchAppActivity(permissions: BoxItemPermission): Promise<?AppActivityItems> {\n this.appActivityAPI = new AppActivityAPI(this.options);\n\n return new Promise(resolve => {\n this.appActivityAPI.getAppActivity(\n this.file.id,\n permissions,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n );\n });\n }\n\n /**\n * Deletes an app activity item.\n *\n * @param {BoxItem} file - The file to which the app activity belongs to\n * @param {string} appActivityId - The app activity item id to delete\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteAppActivity = (\n file: BoxItem,\n appActivityId: string,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n const { id } = file;\n if (!id) {\n throw getBadItemError();\n }\n\n this.appActivityAPI = new AppActivityAPI(this.options);\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, appActivityId);\n\n this.appActivityAPI.deleteAppActivity({\n id,\n appActivityId,\n successCallback: this.deleteFeedItem.bind(this, appActivityId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteAppActivityErrorCallback(e, code, appActivityId);\n },\n });\n };\n\n /**\n * Error callback for deleting an app activity item\n *\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the app activity id\n * @return {void}\n */\n deleteAppActivityErrorCallback = (e: ElementsXhrError, code: string, id: string) => {\n this.updateFeedItem(this.createFeedError(messages.appActivityDeleteErrorMessage), id);\n this.feedErrorCallback(true, e, code);\n };\n\n /**\n * Destroys all the task feed API's\n *\n * @return {void}\n */\n destroy() {\n super.destroy();\n\n if (this.annotationsAPI) {\n this.annotationsAPI.destroy();\n delete this.annotationsAPI;\n }\n\n if (this.commentsAPI) {\n this.commentsAPI.destroy();\n delete this.commentsAPI;\n }\n\n if (this.threadedCommentsAPI) {\n this.threadedCommentsAPI.destroy();\n delete this.threadedCommentsAPI;\n }\n\n if (this.versionsAPI) {\n this.versionsAPI.destroy();\n delete this.versionsAPI;\n }\n\n if (this.appActivityAPI) {\n this.appActivityAPI.destroy();\n delete this.appActivityAPI;\n }\n\n if (this.tasksNewAPI) {\n this.tasksNewAPI.destroy();\n delete this.tasksNewAPI;\n }\n\n this.destroyTaskCollaborators();\n this.destroyTaskLinks();\n }\n}\n\nexport default Feed;\n"],"file":"Feed.js"}
1
+ {"version":3,"sources":["../../src/api/Feed.js"],"names":["noop","uniqueId","getBadItemError","getBadUserError","getMissingItemTextOrStatus","isUserCorrectableError","commonMessages","messages","sortFeedItems","FEED_FILE_VERSIONS_FIELDS_TO_FETCH","Base","AnnotationsAPI","CommentsAPI","ThreadedCommentsAPI","FileActivitiesAPI","VersionsAPI","TasksNewAPI","GroupsAPI","TaskCollaboratorsAPI","TaskLinksAPI","AppActivityAPI","ACTION_TYPE_CREATED","ACTION_TYPE_RESTORED","ACTION_TYPE_TRASHED","ERROR_CODE_CREATE_TASK","ERROR_CODE_UPDATE_TASK","ERROR_CODE_GROUP_EXCEEDS_LIMIT","FEED_ITEM_TYPE_ANNOTATION","FEED_ITEM_TYPE_COMMENT","FEED_ITEM_TYPE_TASK","FEED_ITEM_TYPE_VERSION","FILE_ACTIVITY_TYPE_ANNOTATION","FILE_ACTIVITY_TYPE_APP_ACTIVITY","FILE_ACTIVITY_TYPE_COMMENT","FILE_ACTIVITY_TYPE_TASK","FILE_ACTIVITY_TYPE_VERSION","HTTP_STATUS_CODE_CONFLICT","IS_ERROR_DISPLAYED","PERMISSION_CAN_VIEW_ANNOTATIONS","PERMISSION_CAN_COMMENT","TASK_NEW_APPROVED","TASK_NEW_COMPLETED","TASK_NEW_REJECTED","TASK_NEW_NOT_STARTED","TYPED_ID_FEED_PREFIX","TASK_MAX_GROUP_ASSIGNEES","TASK_NEW_INITIAL_STATUS","getItemWithFilteredReplies","item","replyId","replies","rest","filter","id","getItemWithPendingReply","reply","parseReplies","parsedReplies","map","tagged_message","message","getParsedFileActivitiesResponse","response","entries","length","data","parsedData","source","activity_type","taskItem","assigned_to","assignedToEntries","entry","assignedToEntry","role","toUpperCase","status","completion_rule","task_type","created_by","target","commentItem","annotationItem","appActivityItem","created_at","occurred_at","versionsItem","type","action_by","collaborators","uploader_display_name","name","collaborator","end","number","version_end","start","version_start","version_number","action_type","modified_at","modified_by","trashed_at","trashed_by","restored_at","restored_by","reverse","Feed","constructor","options","file","annotationId","text","permissions","successCallback","errorCallback","annotationsAPI","feedItemChanges","updateFeedItem","isPending","updateAnnotation","annotation","total_reply_count","annotationBase","isDestroyed","e","code","updateCommentErrorCallback","createFeedError","commentUpdateErrorMessage","feedErrorCallback","error","parentId","updateReplyItem","repliesFetchErrorMessage","successCallBack","deleteAnnotation","deleteFeedItem","bind","deleteCommentErrorCallback","resolve","comment","taskId","taskCollaboratorId","taskCollaboratorStatus","collaboratorsApi","taskCollaboratorsAPI","push","taskCollaboratorPayload","handleError","errorMessage","taskApproveErrorMessage","taskCompleteErrorMessage","taskRejectErrorMessage","taskActionErrorTitle","updateTaskCollaborator","taskCollaborator","taskCollab","updateTaskCollaboratorSuccessCallback","updatedCollaborator","tasksNewAPI","getTask","task","groupInfoPromises","addedAssignees","assignee","groupId","getGroupCount","group","groupCounts","Promise","all","hasAnyGroupCountExceeded","some","groupInfo","total_count","warning","reject","updateTaskWithDeps","taskData","commentId","commentsAPI","deleteComment","threadedCommentsAPI","fileId","deleteReplySuccessCallback","deleteReplyErrorCallback","modifyFeedItemRepliesCountBy","deleteReplyItem","commentDeleteErrorMessage","currentUser","assignees","taskType","dueAt","completionRule","uuid","dueAtString","dueAtDate","Date","toISOString","pendingTask","due_at","description","avatar_url","can_delete","can_update","limit","next_marker","can_create_task_collaborator","can_create_task_link","task_links","taskPayload","then","createTaskWithDeps","taskWithDepsData","addPendingItem","catch","deleteTask","taskDeleteErrorMessage","cachedItems","getCachedItems","feedItems","items","feedItem","setCachedItems","errors","hasError","console","itemBase","date","pendingFeedItem","feedItemsWithPendingItem","commentBase","pendingReply","updatedFeedItems","commentData","commentCreateConflictMessage","commentCreateErrorMessage","updates","replyUpdates","getItemWithUpdatedReply","updatedItem","hasMention","taggedMessage","createComment","createCommentSuccessCallback","createCommentErrorCallback","updateComment","undefined","updateReplyErrorCallback","n","find","itemId","newReplyCount","appActivityId","appActivityAPI","deleteAppActivity","deleteAppActivityErrorCallback","appActivityDeleteErrorMessage","taskLinksAPI","addAnnotation","newAnnotation","getCacheKey","cache","getCache","cacheKey","get","set","shouldRefreshCache","onError","shouldShowAnnotations","shouldShowAppActivity","shouldShowReplies","shouldShowTasks","shouldShowVersions","shouldUseUAA","annotationsPromise","fetchAnnotations","commentsPromise","fetchThreadedComments","fetchComments","tasksPromise","fetchTasksNew","appActivityPromise","fetchAppActivity","versionsPromise","fetchVersions","currentVersionPromise","fetchCurrentVersion","annotationActivityType","appActivityActivityType","taskActivityType","versionsActivityType","commentActivityType","filteredActivityTypes","fileActivitiesPromise","fetchFileActivities","handleFeedItems","parsedFeedItems","versions","currentVersion","versionsWithCurrent","versionsAPI","addCurrentVersion","sortedFeedItems","shouldFetchReplies","getAnnotations","fetchFeedItemErrorCallback","getComments","fetchThreadedComment","getComment","fetchThreadedCommentSuccessCallback","activityTypes","fileActivitiesAPI","getActivities","fileID","fetchReplies","commentFeedItemId","commentFeedItemType","isRepliesLoading","successCallbackFn","errorCallbackFn","fetchRepliesErrorCallback","getAnnotationReplies","getCommentReplies","getVersions","file_version","getVersion","getTasksForFile","err","shouldDisplayError","createTaskCollaboratorsforGroup","createTaskCollaborator","user","deleteTaskCollaborator","createTaskLink","title","errorOccured","createReply","parentType","addPendingReply","createReplySuccessCallback","createReplyErrorCallback","createAnnotationReply","createCommentReply","destroyTaskCollaborators","Array","isArray","forEach","api","destroy","destroyTaskLinks","getAppActivity"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Helper for activity feed API's\n * @author Box\n */\nimport noop from 'lodash/noop';\nimport uniqueId from 'lodash/uniqueId';\nimport type { MessageDescriptor } from 'react-intl';\nimport { getBadItemError, getBadUserError, getMissingItemTextOrStatus, isUserCorrectableError } from '../utils/error';\nimport commonMessages from '../elements/common/messages';\nimport messages from './messages';\nimport { sortFeedItems } from '../utils/sorter';\nimport { FEED_FILE_VERSIONS_FIELDS_TO_FETCH } from '../utils/fields';\nimport Base from './Base';\nimport AnnotationsAPI from './Annotations';\nimport CommentsAPI from './Comments';\nimport ThreadedCommentsAPI from './ThreadedComments';\nimport FileActivitiesAPI from './FileActivities';\nimport VersionsAPI from './Versions';\nimport TasksNewAPI from './tasks/TasksNew';\nimport GroupsAPI from './Groups';\nimport TaskCollaboratorsAPI from './tasks/TaskCollaborators';\nimport TaskLinksAPI from './tasks/TaskLinks';\nimport AppActivityAPI from './AppActivity';\nimport {\n ACTION_TYPE_CREATED,\n ACTION_TYPE_RESTORED,\n ACTION_TYPE_TRASHED,\n ERROR_CODE_CREATE_TASK,\n ERROR_CODE_UPDATE_TASK,\n ERROR_CODE_GROUP_EXCEEDS_LIMIT,\n FEED_ITEM_TYPE_ANNOTATION,\n FEED_ITEM_TYPE_COMMENT,\n FEED_ITEM_TYPE_TASK,\n FEED_ITEM_TYPE_VERSION,\n FILE_ACTIVITY_TYPE_ANNOTATION,\n FILE_ACTIVITY_TYPE_APP_ACTIVITY,\n FILE_ACTIVITY_TYPE_COMMENT,\n FILE_ACTIVITY_TYPE_TASK,\n FILE_ACTIVITY_TYPE_VERSION,\n HTTP_STATUS_CODE_CONFLICT,\n IS_ERROR_DISPLAYED,\n PERMISSION_CAN_VIEW_ANNOTATIONS,\n PERMISSION_CAN_COMMENT,\n TASK_NEW_APPROVED,\n TASK_NEW_COMPLETED,\n TASK_NEW_REJECTED,\n TASK_NEW_NOT_STARTED,\n TYPED_ID_FEED_PREFIX,\n TASK_MAX_GROUP_ASSIGNEES,\n} from '../constants';\nimport type {\n TaskCompletionRule,\n TaskCollabAssignee,\n TaskCollabStatus,\n TaskLink,\n TaskNew,\n TaskType,\n TaskPayload,\n TaskUpdatePayload,\n} from '../common/types/tasks';\nimport type { ElementsXhrError, ErrorResponseData, APIOptions } from '../common/types/api';\nimport type {\n SelectorItems,\n SelectorItem,\n UserMini,\n GroupMini,\n BoxItem,\n BoxItemPermission,\n BoxItemVersion,\n FileVersions,\n User,\n} from '../common/types/core';\nimport type {\n Annotation,\n AnnotationPermission,\n Annotations,\n AppActivityItems,\n BoxCommentPermission,\n Comment,\n CommentFeedItemType,\n Comments,\n FeedItem,\n FeedItems,\n FeedItemStatus,\n FileActivity,\n FileActivityTypes,\n Task,\n Tasks,\n ThreadedComments as ThreadedCommentsType,\n} from '../common/types/feed';\n\nconst TASK_NEW_INITIAL_STATUS = TASK_NEW_NOT_STARTED;\n\ntype FeedItemsCache = {\n errors: ErrorResponseData[],\n items: FeedItems,\n};\n\ntype ErrorCallback = (e: ElementsXhrError, code: string, contextInfo?: Object) => void;\n\nconst getItemWithFilteredReplies = <T: { replies?: Array<Comment> }>(item: T, replyId: string): T => {\n const { replies = [], ...rest } = item;\n return { replies: replies.filter(({ id }) => id !== replyId), ...rest };\n};\n\nconst getItemWithPendingReply = <T: { replies?: Array<Comment> }>(item: T, reply: Comment): T => {\n const { replies = [], ...rest } = item;\n return { replies: [...replies, reply], ...rest };\n};\n\nconst parseReplies = (replies: Comment[]): Comment[] => {\n const parsedReplies = [...replies];\n\n return parsedReplies.map(reply => {\n return { ...reply, tagged_message: reply.tagged_message || reply.message || '' };\n });\n};\n\nexport const getParsedFileActivitiesResponse = (response?: { entries: FileActivity[] }) => {\n if (!response || !response.entries || !response.entries.length) {\n return [];\n }\n\n const data = response.entries;\n\n const parsedData: Array<Object> = data\n .map(item => {\n if (!item.source) {\n return null;\n }\n\n const source = { ...item.source };\n\n switch (item.activity_type) {\n case FILE_ACTIVITY_TYPE_TASK: {\n const taskItem = { ...source[FILE_ACTIVITY_TYPE_TASK] };\n // UAA follows a lowercased enum naming convention, convert to uppercase to align with task api\n if (taskItem.assigned_to?.entries) {\n const assignedToEntries = taskItem.assigned_to.entries.map(entry => {\n const assignedToEntry = { ...entry };\n\n assignedToEntry.role = entry.role.toUpperCase();\n assignedToEntry.status = entry.status.toUpperCase();\n\n return assignedToEntry;\n });\n // $FlowFixMe Using the toUpperCase method makes Flow assume role and status is a string type, which is incompatible with string literal\n taskItem.assigned_to.entries = assignedToEntries;\n }\n if (taskItem.completion_rule) {\n taskItem.completion_rule = taskItem.completion_rule.toUpperCase();\n }\n if (taskItem.status) {\n taskItem.status = taskItem.status.toUpperCase();\n }\n if (taskItem.task_type) {\n taskItem.task_type = taskItem.task_type.toUpperCase();\n }\n // $FlowFixMe File Activities only returns a created_by user, Flow type fix is needed\n taskItem.created_by = { target: taskItem.created_by };\n\n return taskItem;\n }\n case FILE_ACTIVITY_TYPE_COMMENT: {\n const commentItem = { ...source[FILE_ACTIVITY_TYPE_COMMENT] };\n\n if (commentItem.replies && commentItem.replies.length) {\n const replies = parseReplies(commentItem.replies);\n\n commentItem.replies = replies;\n }\n\n commentItem.tagged_message = commentItem.tagged_message || commentItem.message || '';\n\n return commentItem;\n }\n case FILE_ACTIVITY_TYPE_ANNOTATION: {\n const annotationItem = { ...source[FILE_ACTIVITY_TYPE_ANNOTATION] };\n\n if (annotationItem.replies && annotationItem.replies.length) {\n const replies = parseReplies(annotationItem.replies);\n\n annotationItem.replies = replies;\n }\n\n return annotationItem;\n }\n case FILE_ACTIVITY_TYPE_APP_ACTIVITY: {\n const appActivityItem = { ...source[FILE_ACTIVITY_TYPE_APP_ACTIVITY] };\n\n appActivityItem.created_at = appActivityItem.occurred_at;\n\n return appActivityItem;\n }\n\n case FILE_ACTIVITY_TYPE_VERSION: {\n const versionsItem = { ...source[FILE_ACTIVITY_TYPE_VERSION] };\n\n versionsItem.type = FEED_ITEM_TYPE_VERSION;\n if (versionsItem.action_by) {\n const collaborators = {};\n\n if (versionsItem.action_by.length === 1) {\n versionsItem.uploader_display_name = versionsItem.action_by[0].name;\n }\n\n versionsItem.action_by.map(collaborator => {\n collaborators[collaborator.id] = { ...collaborator };\n return collaborator;\n });\n\n versionsItem.collaborators = collaborators;\n }\n if (versionsItem.end?.number) {\n versionsItem.version_end = versionsItem.end.number;\n versionsItem.id = versionsItem.end.id;\n }\n if (versionsItem.start?.number) {\n versionsItem.version_start = versionsItem.start.number;\n }\n\n if (versionsItem.version_start === versionsItem.version_end) {\n versionsItem.version_number = versionsItem.version_start;\n\n if (\n versionsItem.action_type === ACTION_TYPE_CREATED &&\n versionsItem.start?.created_at &&\n versionsItem.start?.created_by\n ) {\n versionsItem.modified_at = versionsItem.start.created_at;\n versionsItem.modified_by = { ...versionsItem.start.created_by };\n }\n if (\n versionsItem.action_type === ACTION_TYPE_TRASHED &&\n versionsItem.start?.trashed_at &&\n versionsItem.start?.trashed_by\n ) {\n versionsItem.trashed_at = versionsItem.start.trashed_at;\n versionsItem.trashed_by = { ...versionsItem.start.trashed_by };\n }\n if (\n versionsItem.action_type === ACTION_TYPE_RESTORED &&\n versionsItem.start?.restored_at &&\n versionsItem.start?.restored_by\n ) {\n versionsItem.restored_at = versionsItem.start.restored_at;\n versionsItem.restored_by = { ...versionsItem.start.restored_by };\n }\n }\n\n return versionsItem;\n }\n\n default: {\n return null;\n }\n }\n })\n .filter(item => !!item)\n .reverse();\n\n return parsedData;\n};\n\nclass Feed extends Base {\n /**\n * @property {AnnotationsAPI}\n */\n annotationsAPI: AnnotationsAPI;\n\n /**\n * @property {VersionsAPI}\n */\n versionsAPI: VersionsAPI;\n\n /**\n * @property {CommentsAPI}\n */\n commentsAPI: CommentsAPI;\n\n /**\n * @property {AppActivityAPI}\n */\n appActivityAPI: AppActivityAPI;\n\n /**\n * @property {TasksNewAPI}\n */\n tasksNewAPI: TasksNewAPI;\n\n /**\n * @property {TaskCollaboratorsAPI}\n */\n taskCollaboratorsAPI: TaskCollaboratorsAPI[];\n\n /**\n * @property {TaskLinksAPI}\n */\n taskLinksAPI: TaskLinksAPI[];\n\n /**\n * @property {ThreadedCommentsAPI}\n */\n threadedCommentsAPI: ThreadedCommentsAPI;\n\n /**\n * @property {FileActivitiesAPI}\n */\n fileActivitiesAPI: FileActivitiesAPI;\n\n /**\n * @property {BoxItem}\n */\n file: BoxItem;\n\n /**\n * @property {ElementsXhrError}\n */\n errors: ElementsXhrError[];\n\n constructor(options: APIOptions) {\n super(options);\n this.taskCollaboratorsAPI = [];\n this.taskLinksAPI = [];\n this.errors = [];\n }\n\n /**\n * Creates pending card on create_start action, then updates card on next call\n * @param {BoxItem} file - The file to which the annotation is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {Annotation} annotation - the current annotation to be created\n * @param {string} id - unique id for the incoming annotation\n * @param {boolean} isPending - indicates the current creation process of the annotation\n */\n addAnnotation(file: BoxItem, currentUser: User, annotation: Annotation, id: string, isPending: boolean): void {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n\n // Add the pending interstitial card\n if (isPending) {\n const newAnnotation = {\n ...annotation,\n created_by: currentUser,\n id,\n type: FEED_ITEM_TYPE_ANNOTATION,\n };\n\n this.addPendingItem(this.file.id, currentUser, newAnnotation);\n\n return;\n }\n // Create action has completed, so update the existing pending item\n this.updateFeedItem({ ...annotation, isPending: false }, id);\n }\n\n updateAnnotation = (\n file: BoxItem,\n annotationId: string,\n text?: string,\n status?: FeedItemStatus,\n permissions: AnnotationPermission,\n successCallback: (annotation: Annotation) => void,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n if (!text && !status) {\n throw getMissingItemTextOrStatus();\n }\n\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n this.file = file;\n this.errorCallback = errorCallback;\n\n const feedItemChanges = {};\n if (text) {\n feedItemChanges.message = text;\n }\n if (status) {\n feedItemChanges.status = status;\n }\n this.updateFeedItem({ ...feedItemChanges, isPending: true }, annotationId);\n\n this.annotationsAPI.updateAnnotation(\n this.file.id,\n annotationId,\n permissions,\n feedItemChanges,\n (annotation: Annotation) => {\n const { replies, total_reply_count, ...annotationBase } = annotation;\n this.updateFeedItem(\n {\n // Do not update replies and total_reply_count props as their current values are not included in the response\n ...annotationBase,\n isPending: false,\n },\n annotationId,\n );\n if (!this.isDestroyed()) {\n successCallback(annotation);\n }\n },\n (e: ErrorResponseData, code: string) => {\n this.updateCommentErrorCallback(e, code, annotationId);\n },\n );\n };\n\n /**\n * Error callback for updating a comment\n *\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the id of either an annotation or comment\n * @return {void}\n */\n updateCommentErrorCallback = (e: ElementsXhrError, code: string, id: string) => {\n this.updateFeedItem(this.createFeedError(messages.commentUpdateErrorMessage), id);\n this.feedErrorCallback(true, e, code);\n };\n\n /**\n * Error callback for updating a reply\n *\n * @param {ElementsXhrError} error - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the id of the reply (comment)\n * @param {string} parentId - the id of either the parent item (an annotation or comment)\n * @return {void}\n */\n updateReplyErrorCallback = (error: ElementsXhrError, code: string, id: string, parentId: string) => {\n this.updateReplyItem(this.createFeedError(messages.commentUpdateErrorMessage), parentId, id);\n this.feedErrorCallback(true, error, code);\n };\n\n /**\n * Error callback for fetching replies\n *\n * @param {ElementsXhrError} error - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the id of either an annotation or comment\n * @return {void}\n */\n fetchRepliesErrorCallback = (error: ElementsXhrError, code: string, id: string) => {\n this.updateFeedItem(this.createFeedError(messages.repliesFetchErrorMessage), id);\n this.feedErrorCallback(true, error, code);\n };\n\n deleteAnnotation = (\n file: BoxItem,\n annotationId: string,\n permissions: AnnotationPermission,\n successCallBack: Function,\n errorCallback: Function,\n ): void => {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n\n this.updateFeedItem({ isPending: true }, annotationId);\n this.annotationsAPI.deleteAnnotation(\n this.file.id,\n annotationId,\n permissions,\n this.deleteFeedItem.bind(this, annotationId, successCallBack),\n (error: ElementsXhrError, code: string) => {\n // Reusing comment error handler since annotations are treated as comments to user\n this.deleteCommentErrorCallback(error, code, annotationId);\n },\n );\n };\n\n /**\n * Creates a key for the cache\n *\n * @param {string} id folder id\n * @return {string} key\n */\n getCacheKey(id: string): string {\n return `${TYPED_ID_FEED_PREFIX}${id}`;\n }\n\n /**\n * Gets the items from the cache\n *\n * @param {string} id the cache id\n */\n getCachedItems(id: string): ?FeedItemsCache {\n const cache = this.getCache();\n const cacheKey = this.getCacheKey(id);\n return cache.get(cacheKey);\n }\n\n /**\n * Sets the items in the cache\n *\n * @param {string} id - the cache id\n * @param {Array} items - the feed items to cache\n */\n setCachedItems(id: string, items: FeedItems) {\n const cache = this.getCache();\n const cacheKey = this.getCacheKey(id);\n cache.set(cacheKey, {\n errors: this.errors,\n items,\n });\n }\n\n /**\n * Gets the feed items\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {boolean} shouldRefreshCache - Optionally updates the cache\n * @param {Function} successCallback - the success callback which is called after data fetching is complete\n * @param {Function} errorCallback - the error callback which is called after data fetching is complete if there was an error\n * @param {Function} onError - the function to be called immediately after an error occurs\n * @param {Object} [options]- feature flips, etc\n * @param {Object} [options.shouldShowAppActivity] - feature flip the new app activity api\n */\n feedItems(\n file: BoxItem,\n shouldRefreshCache: boolean,\n successCallback: Function,\n errorCallback: (feedItems: FeedItems, errors: ElementsXhrError[]) => void,\n onError: ErrorCallback,\n {\n shouldShowAnnotations = false,\n shouldShowAppActivity = false,\n shouldShowReplies = false,\n shouldShowTasks = true,\n shouldShowVersions = true,\n shouldUseUAA = false,\n }: {\n shouldShowAnnotations?: boolean,\n shouldShowAppActivity?: boolean,\n shouldShowReplies?: boolean,\n shouldShowTasks?: boolean,\n shouldShowVersions?: boolean,\n shouldUseUAA?: boolean,\n } = {},\n ): void {\n const { id, permissions = {} } = file;\n const cachedItems = this.getCachedItems(id);\n if (cachedItems) {\n const { errors, items } = cachedItems;\n if (errors.length) {\n errorCallback(items, errors);\n } else {\n successCallback(items);\n }\n\n if (!shouldRefreshCache) {\n return;\n }\n }\n\n this.file = file;\n this.errors = [];\n this.errorCallback = onError;\n\n // Using the UAA File Activities endpoint replaces the need for these calls\n const annotationsPromise =\n !shouldUseUAA && shouldShowAnnotations\n ? this.fetchAnnotations(permissions, shouldShowReplies)\n : Promise.resolve();\n const commentsPromise = () => {\n if (shouldUseUAA) {\n return Promise.resolve();\n }\n\n return shouldShowReplies ? this.fetchThreadedComments(permissions) : this.fetchComments(permissions);\n };\n const tasksPromise = !shouldUseUAA && shouldShowTasks ? this.fetchTasksNew() : Promise.resolve();\n const appActivityPromise =\n !shouldUseUAA && shouldShowAppActivity ? this.fetchAppActivity(permissions) : Promise.resolve();\n const versionsPromise = !shouldUseUAA && shouldShowVersions ? this.fetchVersions() : Promise.resolve();\n const currentVersionPromise =\n !shouldUseUAA && shouldShowVersions ? this.fetchCurrentVersion() : Promise.resolve();\n\n const annotationActivityType =\n shouldShowAnnotations && permissions[PERMISSION_CAN_VIEW_ANNOTATIONS]\n ? [FILE_ACTIVITY_TYPE_ANNOTATION]\n : [];\n const appActivityActivityType = shouldShowAppActivity ? [FILE_ACTIVITY_TYPE_APP_ACTIVITY] : [];\n const taskActivityType = shouldShowTasks ? [FILE_ACTIVITY_TYPE_TASK] : [];\n const versionsActivityType = shouldShowVersions ? [FILE_ACTIVITY_TYPE_VERSION] : [];\n const commentActivityType = permissions[PERMISSION_CAN_COMMENT] ? [FILE_ACTIVITY_TYPE_COMMENT] : [];\n const filteredActivityTypes = [\n ...annotationActivityType,\n ...appActivityActivityType,\n ...commentActivityType,\n ...taskActivityType,\n ...versionsActivityType,\n ];\n\n const fileActivitiesPromise =\n // Only fetch when activity types are explicitly stated\n shouldUseUAA && filteredActivityTypes.length\n ? this.fetchFileActivities(permissions, filteredActivityTypes, shouldShowReplies)\n : Promise.resolve();\n\n const handleFeedItems = (feedItems: FeedItems) => {\n if (!this.isDestroyed()) {\n this.setCachedItems(id, feedItems);\n if (this.errors.length) {\n errorCallback(feedItems, this.errors);\n } else {\n successCallback(feedItems);\n }\n }\n };\n\n if (shouldUseUAA) {\n fileActivitiesPromise.then(response => {\n if (!response) {\n return;\n }\n\n const parsedFeedItems = getParsedFileActivitiesResponse(response);\n handleFeedItems(parsedFeedItems);\n });\n } else {\n Promise.all([\n versionsPromise,\n currentVersionPromise,\n commentsPromise(),\n tasksPromise,\n appActivityPromise,\n annotationsPromise,\n ]).then(([versions: ?FileVersions, currentVersion: ?BoxItemVersion, ...feedItems]) => {\n const versionsWithCurrent = currentVersion\n ? this.versionsAPI.addCurrentVersion(currentVersion, versions, this.file)\n : undefined;\n const sortedFeedItems = sortFeedItems(versionsWithCurrent, ...feedItems);\n handleFeedItems(sortedFeedItems);\n });\n }\n }\n\n fetchAnnotations(permissions: BoxItemPermission, shouldFetchReplies?: boolean): Promise<?Annotations> {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n return new Promise(resolve => {\n this.annotationsAPI.getAnnotations(\n this.file.id,\n undefined,\n permissions,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n undefined,\n undefined,\n shouldFetchReplies,\n );\n });\n }\n\n /**\n * Fetches the comments for a file\n *\n * @param {Object} permissions - the file permissions\n * @return {Promise} - the file comments\n */\n fetchComments(permissions: BoxItemPermission): Promise<?Comments> {\n this.commentsAPI = new CommentsAPI(this.options);\n return new Promise(resolve => {\n this.commentsAPI.getComments(\n this.file.id,\n permissions,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n );\n });\n }\n\n /**\n * Fetches a comment for a file\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} commentId - comment id\n * @param {Function} successCallback\n * @param {ErrorCallback} errorCallback\n * @return {Promise} - the file comments\n */\n fetchThreadedComment(\n file: BoxItem,\n commentId: string,\n successCallback: (comment: Comment) => void,\n errorCallback: ErrorCallback,\n ): Promise<?Comment> {\n const { id, permissions } = file;\n if (!id || !permissions) {\n throw getBadItemError();\n }\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n return new Promise(resolve => {\n this.threadedCommentsAPI.getComment({\n commentId,\n errorCallback,\n fileId: id,\n permissions,\n successCallback: this.fetchThreadedCommentSuccessCallback.bind(this, resolve, successCallback),\n });\n });\n }\n\n /**\n * Callback for successful fetch of a comment\n *\n * @param {Function} resolve - resolve function\n * @param {Function} successCallback - success callback\n * @param {Comment} comment - comment data\n * @return {void}\n */\n fetchThreadedCommentSuccessCallback = (resolve: Function, successCallback: Function, comment: Comment): void => {\n successCallback(comment);\n resolve();\n };\n\n /**\n * Fetches the comments with replies for a file\n *\n * @param {Object} permissions - the file permissions\n * @return {Promise} - the file comments\n */\n fetchThreadedComments(permissions: BoxItemPermission): Promise<?ThreadedCommentsType> {\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n return new Promise(resolve => {\n this.threadedCommentsAPI.getComments({\n errorCallback: this.fetchFeedItemErrorCallback.bind(this, resolve),\n fileId: this.file.id,\n permissions,\n successCallback: resolve,\n });\n });\n }\n\n /**\n * Fetches the file activities for a file\n *\n * @param {BoxItemPermission} permissions - the file permissions\n * @param {FileActivityTypes[]} activityTypes - the activity types to filter by\n * @param {boolean} shouldShowReplies - specify if replies should be included in the response\n * @return {Promise} - the file comments\n */\n fetchFileActivities(\n permissions: BoxItemPermission,\n activityTypes: FileActivityTypes[],\n shouldShowReplies?: boolean = false,\n ): Promise<Object> {\n this.fileActivitiesAPI = new FileActivitiesAPI(this.options);\n return new Promise(resolve => {\n this.fileActivitiesAPI.getActivities({\n errorCallback: this.fetchFeedItemErrorCallback.bind(this, resolve),\n fileID: this.file.id,\n permissions,\n successCallback: resolve,\n activityTypes,\n shouldShowReplies,\n });\n });\n }\n\n /**\n * Fetches replies (comments) of a comment or annotation\n *\n * @param {BoxItem} file - The file to which the comment or annotation belongs to\n * @param {string} commentFeedItemId - ID of the comment or annotation\n * @param {CommentFeedItemType} commentFeedItemType - Type of the comment or annotation\n * @param {Function} successCallback\n * @param {ErrorCallback} errorCallback\n * @return {void}\n */\n fetchReplies(\n file: BoxItem,\n commentFeedItemId: string,\n commentFeedItemType: CommentFeedItemType,\n successCallback: (comments: Array<Comment>) => void,\n errorCallback: ErrorCallback,\n ): void {\n const { id, permissions } = file;\n if (!id || !permissions) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n\n this.updateFeedItem({ isRepliesLoading: true }, commentFeedItemId);\n\n const successCallbackFn = ({ entries }: ThreadedCommentsType) => {\n this.updateFeedItem(\n { isRepliesLoading: false, replies: entries, total_reply_count: entries.length },\n commentFeedItemId,\n );\n successCallback(entries);\n };\n const errorCallbackFn = (error: ErrorResponseData, code: string) => {\n this.fetchRepliesErrorCallback(error, code, commentFeedItemId);\n };\n\n if (commentFeedItemType === FEED_ITEM_TYPE_ANNOTATION) {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n this.annotationsAPI.getAnnotationReplies(\n file.id,\n commentFeedItemId,\n permissions,\n successCallbackFn,\n errorCallbackFn,\n );\n } else if (commentFeedItemType === FEED_ITEM_TYPE_COMMENT) {\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.getCommentReplies({\n fileId: file.id,\n commentId: commentFeedItemId,\n permissions,\n successCallback: successCallbackFn,\n errorCallback: errorCallbackFn,\n });\n }\n }\n\n /**\n * Fetches the versions for a file\n *\n * @return {Promise} - the file versions\n */\n fetchVersions(): Promise<?FileVersions> {\n this.versionsAPI = new VersionsAPI(this.options);\n\n return new Promise(resolve => {\n this.versionsAPI.getVersions(\n this.file.id,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n undefined,\n undefined,\n FEED_FILE_VERSIONS_FIELDS_TO_FETCH,\n );\n });\n }\n\n /**\n * Fetches the current version for a file\n *\n * @return {Promise} - the file versions\n */\n fetchCurrentVersion(): Promise<?BoxItemVersion> {\n this.versionsAPI = new VersionsAPI(this.options);\n\n return new Promise(resolve => {\n const { file_version = {} } = this.file;\n this.versionsAPI.getVersion(\n this.file.id,\n file_version.id,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n );\n });\n }\n\n /**\n * Fetches the tasks for a file\n *\n * @return {Promise} - the feed items\n */\n fetchTasksNew(): Promise<?Tasks> {\n this.tasksNewAPI = new TasksNewAPI(this.options);\n\n return new Promise(resolve => {\n this.tasksNewAPI.getTasksForFile({\n file: { id: this.file.id },\n successCallback: resolve,\n errorCallback: (err, code) => this.fetchFeedItemErrorCallback(resolve, err, code),\n });\n });\n }\n\n /**\n * Error callback for fetching feed items.\n * Should only call the error callback if the response is a 401, 429 or >= 500\n *\n * @param {Function} resolve - the function which will be called on error\n * @param {Object} e - the axios error\n * @param {string} code - the error code\n * @return {void}\n */\n fetchFeedItemErrorCallback(resolve: Function, e: ElementsXhrError, code: string) {\n const { status } = e;\n const shouldDisplayError = isUserCorrectableError(status);\n this.feedErrorCallback(shouldDisplayError, e, code);\n resolve();\n }\n\n /**\n * Updates a task assignment\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} taskId - ID of task to be updated\n * @param {string} taskCollaboratorId - Task assignment ID\n * @param {TaskCollabStatus} taskCollaboratorStatus - New task assignment status\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n updateTaskCollaborator = (\n file: BoxItem,\n taskId: string,\n taskCollaboratorId: string,\n taskCollaboratorStatus: TaskCollabStatus,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, taskId);\n const collaboratorsApi = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(collaboratorsApi);\n const taskCollaboratorPayload = {\n id: taskCollaboratorId,\n status: taskCollaboratorStatus,\n };\n const handleError = (e: ElementsXhrError, code: string) => {\n let errorMessage;\n switch (taskCollaboratorStatus) {\n case TASK_NEW_APPROVED:\n errorMessage = messages.taskApproveErrorMessage;\n break;\n case TASK_NEW_COMPLETED:\n errorMessage = messages.taskCompleteErrorMessage;\n break;\n case TASK_NEW_REJECTED:\n errorMessage = messages.taskRejectErrorMessage;\n break;\n default:\n errorMessage = messages.taskCompleteErrorMessage;\n }\n this.updateFeedItem(this.createFeedError(errorMessage, messages.taskActionErrorTitle), taskId);\n this.feedErrorCallback(true, e, code);\n };\n collaboratorsApi.updateTaskCollaborator({\n file,\n taskCollaborator: taskCollaboratorPayload,\n successCallback: (taskCollab: TaskCollabAssignee) => {\n this.updateTaskCollaboratorSuccessCallback(taskId, file, taskCollab, successCallback, handleError);\n },\n errorCallback: handleError,\n });\n };\n\n /**\n * Updates the task assignment state of the updated task\n *\n * @param {string} taskId - Box task id\n * @param {TaskAssignment} updatedCollaborator - New task assignment from API\n * @param {Function} successCallback - the function which will be called on success\n * @return {void}\n */\n updateTaskCollaboratorSuccessCallback = (\n taskId: string,\n file: { id: string },\n updatedCollaborator: TaskCollabAssignee,\n successCallback: Function,\n errorCallback: Function,\n ): void => {\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.tasksNewAPI.getTask({\n id: taskId,\n file,\n successCallback: task => {\n this.updateFeedItem({ ...task, isPending: false }, taskId);\n successCallback(updatedCollaborator);\n },\n errorCallback,\n });\n };\n\n /**\n * Updates a task in the new API\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} task - The update task payload object\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n updateTaskNew = async (\n file: BoxItem,\n task: TaskUpdatePayload,\n successCallback: () => void = noop,\n errorCallback: ErrorCallback = noop,\n ) => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.updateFeedItem({ isPending: true }, task.id);\n\n try {\n // create request for the size of each group by ID\n // TODO: use async/await for both creating and editing tasks\n const groupInfoPromises: Array<Promise<any>> = task.addedAssignees\n .filter(\n (assignee: SelectorItem<UserMini | GroupMini>) => assignee.item && assignee.item.type === 'group',\n )\n .map(assignee => assignee.id)\n .map(groupId => {\n return new GroupsAPI(this.options).getGroupCount({\n file,\n group: { id: groupId },\n });\n });\n\n const groupCounts: Array<{ total_count: number }> = await Promise.all(groupInfoPromises);\n const hasAnyGroupCountExceeded: boolean = groupCounts.some(\n groupInfo => groupInfo.total_count > TASK_MAX_GROUP_ASSIGNEES,\n );\n const warning = {\n code: ERROR_CODE_GROUP_EXCEEDS_LIMIT,\n type: 'warning',\n };\n\n if (hasAnyGroupCountExceeded) {\n this.feedErrorCallback(false, warning, ERROR_CODE_GROUP_EXCEEDS_LIMIT);\n return;\n }\n\n await new Promise((resolve, reject) => {\n this.tasksNewAPI.updateTaskWithDeps({\n file,\n task,\n successCallback: resolve,\n errorCallback: reject,\n });\n });\n\n await new Promise((resolve, reject) => {\n this.tasksNewAPI.getTask({\n file,\n id: task.id,\n successCallback: (taskData: Task) => {\n this.updateFeedItem(\n {\n ...taskData,\n isPending: false,\n },\n task.id,\n );\n\n resolve();\n },\n errorCallback: (e: ElementsXhrError) => {\n this.updateFeedItem({ isPending: false }, task.id);\n this.feedErrorCallback(false, e, ERROR_CODE_UPDATE_TASK);\n reject();\n },\n });\n });\n\n // everything succeeded, so call the passed in success callback\n if (!this.isDestroyed()) {\n successCallback();\n }\n } catch (e) {\n this.updateFeedItem({ isPending: false }, task.id);\n this.feedErrorCallback(false, e, ERROR_CODE_UPDATE_TASK);\n }\n };\n\n /**\n * Deletes a comment.\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} commentId - Comment ID\n * @param {BoxCommentPermission} permissions - Permissions for the comment\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteComment = (\n file: BoxItem,\n commentId: string,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n this.commentsAPI = new CommentsAPI(this.options);\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, commentId);\n\n this.commentsAPI.deleteComment({\n file,\n commentId,\n permissions,\n successCallback: this.deleteFeedItem.bind(this, commentId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Deletes a threaded comment (using ThreadedComments API).\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} commentId - Comment ID\n * @param {BoxCommentPermission} permissions - Permissions for the comment\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteThreadedComment = (\n file: BoxItem,\n commentId: string,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, commentId);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.deleteComment({\n fileId: file.id,\n commentId,\n permissions,\n successCallback: this.deleteFeedItem.bind(this, commentId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Deletes a reply (using ThreadedComments API).\n *\n * @param {BoxItem} file - The file to which the comment belongs to\n * @param {string} id - id of the reply (comment)\n * @param {string} parentId - id of the parent feed item\n * @param {BoxCommentPermission} permissions - Permissions for the comment\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteReply = (\n file: BoxItem,\n id: string,\n parentId: string,\n permissions: BoxCommentPermission,\n successCallback: () => void,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateReplyItem({ isPending: true }, parentId, id);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.deleteComment({\n fileId: file.id,\n commentId: id,\n permissions,\n successCallback: this.deleteReplySuccessCallback.bind(this, id, parentId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteReplyErrorCallback(e, code, id, parentId);\n },\n });\n };\n\n /**\n * Callback for successful deletion of a reply.\n *\n * @param {string} id - ID of the reply\n * @param {string} parentId - ID of the parent feed item\n * @param {Function} successCallback - success callback\n * @return {void}\n */\n deleteReplySuccessCallback = (id: string, parentId: string, successCallback: Function): void => {\n this.modifyFeedItemRepliesCountBy(parentId, -1);\n this.deleteReplyItem(id, parentId, successCallback);\n };\n\n /**\n * Error callback for deleting a comment\n *\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code\n * @param {string} commentId - the comment id\n * @return {void}\n */\n deleteCommentErrorCallback = (e: ElementsXhrError, code: string, commentId: string) => {\n this.updateFeedItem(this.createFeedError(messages.commentDeleteErrorMessage), commentId);\n this.feedErrorCallback(true, e, code);\n };\n\n /**\n * Error callback for deleting a reply\n *\n * @param {ElementsXhrError} error - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the reply (comment) id\n * @param {string} parentId - the comment id of the parent feed item\n * @return {void}\n */\n deleteReplyErrorCallback = (error: ElementsXhrError, code: string, id: string, parentId: string) => {\n this.updateReplyItem(this.createFeedError(messages.commentDeleteErrorMessage), parentId, id);\n this.feedErrorCallback(true, error, code);\n };\n\n /**\n * Creates a task.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} message - Task text\n * @param {Array} assignees - List of assignees\n * @param {number} dueAt - Task's due date\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n createTaskNew = (\n file: BoxItem,\n currentUser: User,\n message: string,\n assignees: SelectorItems<>,\n taskType: TaskType,\n dueAt: ?string,\n completionRule: TaskCompletionRule,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n const uuid = uniqueId('task_');\n let dueAtString;\n if (dueAt) {\n const dueAtDate: Date = new Date(dueAt);\n dueAtString = dueAtDate.toISOString();\n }\n\n // TODO: make pending task generator a function\n const pendingTask: TaskNew = {\n created_by: {\n type: 'task_collaborator',\n target: currentUser,\n id: uniqueId(),\n role: 'CREATOR',\n status: TASK_NEW_INITIAL_STATUS,\n },\n completion_rule: completionRule,\n created_at: new Date().toISOString(),\n due_at: dueAtString,\n id: uuid,\n description: message,\n type: FEED_ITEM_TYPE_TASK,\n assigned_to: {\n entries: assignees.map((assignee: SelectorItem<UserMini | GroupMini>) => ({\n id: uniqueId(),\n target: { ...assignee, avatar_url: '', type: 'user' },\n status: TASK_NEW_INITIAL_STATUS,\n permissions: {\n can_delete: false,\n can_update: false,\n },\n role: 'ASSIGNEE',\n type: 'task_collaborator',\n })),\n limit: 10,\n next_marker: null,\n },\n permissions: {\n can_update: false,\n can_delete: false,\n can_create_task_collaborator: false,\n can_create_task_link: false,\n },\n task_links: {\n entries: [\n {\n id: uniqueId(),\n type: 'task_link',\n target: {\n type: 'file',\n ...file,\n },\n permissions: {\n can_delete: false,\n can_update: false,\n },\n },\n ],\n limit: 1,\n next_marker: null,\n },\n task_type: taskType,\n status: TASK_NEW_NOT_STARTED,\n };\n\n const taskPayload: TaskPayload = {\n description: message,\n due_at: dueAtString,\n task_type: taskType,\n completion_rule: completionRule,\n };\n\n // create request for the size of each group by ID\n const groupInfoPromises: Array<Promise<any>> = assignees\n .filter((assignee: SelectorItem<UserMini | GroupMini>) => (assignee.item && assignee.item.type) === 'group')\n .map(assignee => assignee.id)\n .map(groupId => {\n return new GroupsAPI(this.options).getGroupCount({\n file,\n group: { id: groupId },\n });\n });\n\n // Fetch each group size in parallel --> return an array of group sizes\n Promise.all(groupInfoPromises)\n .then((groupCounts: Array<{ total_count: number }>) => {\n const hasAnyGroupCountExceeded: boolean = groupCounts.some(\n groupInfo => groupInfo.total_count > TASK_MAX_GROUP_ASSIGNEES,\n );\n const warning = {\n code: ERROR_CODE_GROUP_EXCEEDS_LIMIT,\n type: 'warning',\n };\n if (hasAnyGroupCountExceeded) {\n this.feedErrorCallback(false, warning, ERROR_CODE_GROUP_EXCEEDS_LIMIT);\n return;\n }\n\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.tasksNewAPI.createTaskWithDeps({\n file,\n task: taskPayload,\n assignees,\n successCallback: (taskWithDepsData: any) => {\n this.addPendingItem(this.file.id, currentUser, pendingTask);\n this.updateFeedItem(\n {\n ...taskWithDepsData,\n task_links: {\n entries: taskWithDepsData.task_links,\n next_marker: null,\n limit: 1,\n },\n assigned_to: {\n entries: taskWithDepsData.assigned_to,\n next_marker: null,\n limit: taskWithDepsData.assigned_to.length,\n },\n isPending: false,\n },\n uuid,\n );\n successCallback(taskWithDepsData);\n },\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.feedErrorCallback(false, e, code);\n },\n });\n })\n .catch(error => {\n this.feedErrorCallback(false, error, ERROR_CODE_CREATE_TASK);\n });\n };\n\n /**\n * Creates a task group via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task|TaskUpdatePayload} task - The newly created or existing task from the API\n * @param {SelectorItem} assignee - The user assigned to this task\n * @param {Function} errorCallback - Task create error callback\n * @return {Promise<TaskAssignment>}\n */\n createTaskCollaboratorsforGroup(\n file: BoxItem,\n task: Task | TaskUpdatePayload,\n assignee: SelectorItem<UserMini | GroupMini>,\n ): Promise<Array<TaskCollabAssignee>> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n return new Promise((resolve, reject) => {\n const taskCollaboratorsAPI = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(taskCollaboratorsAPI);\n taskCollaboratorsAPI.createTaskCollaboratorsforGroup({\n file,\n task,\n group: assignee,\n successCallback: resolve,\n errorCallback: (e: ElementsXhrError) => {\n reject(e);\n },\n });\n });\n }\n\n /**\n * Creates a task collaborator via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task|TaskUpdatePayload} task - The newly created or existing task from the API\n * @param {SelectorItem} assignee - The user assigned to this task\n * @param {Function} errorCallback - Task create error callback\n * @return {Promise<TaskAssignment>}\n */\n createTaskCollaborator(\n file: BoxItem,\n task: Task | TaskUpdatePayload,\n assignee: SelectorItem<UserMini | GroupMini>,\n ): Promise<TaskCollabAssignee> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n return new Promise((resolve, reject) => {\n const taskCollaboratorsAPI = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(taskCollaboratorsAPI);\n\n taskCollaboratorsAPI.createTaskCollaborator({\n file,\n task,\n user: assignee,\n successCallback: resolve,\n errorCallback: (e: ElementsXhrError) => {\n reject(e);\n },\n });\n });\n }\n\n /**\n * Deletes a task collaborator via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task|TaskUpdatePayload} task - The newly deleted or existing task from the API\n * @param {TaskCollabAssignee} assignee - The user assigned to this task\n * @param {Function} errorCallback - Task delete error callback\n * @return {Promise<TaskAssignment>}\n */\n deleteTaskCollaborator(\n file: BoxItem,\n task: Task | TaskUpdatePayload,\n assignee: TaskCollabAssignee,\n ): Promise<TaskCollabAssignee> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file.id = file.id;\n return new Promise((resolve, reject) => {\n const taskCollaboratorsAPI = new TaskCollaboratorsAPI(this.options);\n this.taskCollaboratorsAPI.push(taskCollaboratorsAPI);\n\n taskCollaboratorsAPI.deleteTaskCollaborator({\n file,\n task,\n taskCollaborator: { id: assignee.id },\n successCallback: resolve,\n errorCallback: (e: ElementsXhrError) => {\n reject(e);\n },\n });\n });\n }\n\n /**\n * Creates a task link via the API.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Task} task - The newly created task from the API\n * @param {Function} errorCallback - Task create error callback\n * @return {Promise<TaskAssignment}\n */\n createTaskLink(file: BoxItem, task: Task): Promise<TaskLink> {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n return new Promise((resolve, reject) => {\n const taskLinksAPI = new TaskLinksAPI(this.options);\n this.taskLinksAPI.push(taskLinksAPI);\n\n taskLinksAPI.createTaskLink({\n file,\n task,\n successCallback: resolve,\n errorCallback: reject,\n });\n });\n }\n\n /**\n * Deletes a task in the new API\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} taskId - The task's id\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteTaskNew = (\n file: BoxItem,\n task: TaskNew,\n successCallback: (taskId: string) => void = noop,\n errorCallback: ErrorCallback = noop,\n ) => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.tasksNewAPI = new TasksNewAPI(this.options);\n this.updateFeedItem({ isPending: true }, task.id);\n\n this.tasksNewAPI.deleteTask({\n file,\n task,\n successCallback: this.deleteFeedItem.bind(this, task.id, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.updateFeedItem(this.createFeedError(messages.taskDeleteErrorMessage), task.id);\n this.feedErrorCallback(true, e, code);\n },\n });\n };\n\n /**\n * Deletes a feed item from the cache\n *\n * @param {string} id - The id of the feed item to be deleted\n * @param {Function} successCallback - function to be called after the delete\n */\n deleteFeedItem = (id: string, successCallback: Function = noop) => {\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const feedItems = cachedItems.items.filter(feedItem => feedItem.id !== id);\n this.setCachedItems(this.file.id, feedItems);\n\n if (!this.isDestroyed()) {\n successCallback(id);\n }\n }\n };\n\n /**\n * Deletes a reply from the cache\n *\n * @param {string} id - The id of the feed item to be deleted\n * @param {string} parentId - The id of the parent feed item\n * @param {Function} successCallback - function to be called after the delete\n */\n deleteReplyItem = (\n id: string,\n parentId: string,\n successCallback: (id: string, parentId: string) => void = noop,\n ) => {\n const cachedItems = this.getCachedItems(this.file.id) || { items: [], errors: [] };\n const feedItems = cachedItems.items.map(item => {\n if (item.id !== parentId) {\n return item;\n }\n if (item.type === FEED_ITEM_TYPE_ANNOTATION) {\n return getItemWithFilteredReplies<Annotation>(item, id);\n }\n if (item.type === FEED_ITEM_TYPE_COMMENT) {\n return getItemWithFilteredReplies<Comment>(item, id);\n }\n return item;\n });\n this.setCachedItems(this.file.id, feedItems);\n\n if (!this.isDestroyed()) {\n successCallback(id, parentId);\n }\n };\n\n /**\n * Network error callback\n *\n * @param {boolean} hasError - true if the UI should display an error\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code for the error which occured\n * @return {void}\n */\n feedErrorCallback = (hasError: boolean = false, e: ElementsXhrError, code: string): void => {\n if (hasError) {\n this.errors.push({ ...e, code });\n }\n\n if (!this.isDestroyed() && this.errorCallback) {\n this.errorCallback(e, code, {\n error: e,\n [IS_ERROR_DISPLAYED]: hasError,\n });\n }\n\n console.error(e); // eslint-disable-line no-console\n };\n\n /**\n * Add a placeholder pending feed item.\n *\n * @param {string} id - the file id\n * @param {Object} currentUser - the user who performed the action\n * @param {Object} itemBase - Base properties for item to be added to the feed as pending.\n * @return {void}\n */\n addPendingItem = (id: string, currentUser: User, itemBase: Object): Comment | Task | TaskNew | BoxItemVersion => {\n if (!currentUser) {\n throw getBadUserError();\n }\n\n const date = new Date().toISOString();\n const pendingFeedItem = {\n created_at: date,\n created_by: currentUser,\n modified_at: date,\n isPending: true,\n ...itemBase,\n };\n const cachedItems = this.getCachedItems(this.file.id);\n const feedItems = cachedItems ? cachedItems.items : [];\n const feedItemsWithPendingItem = [...feedItems, pendingFeedItem];\n this.setCachedItems(id, feedItemsWithPendingItem);\n\n return pendingFeedItem;\n };\n\n /**\n * Add a placeholder pending comment (reply).\n *\n * @param {string} parentId - id of parent comment or annotation\n * @param {Object} currentUser - the user who performed the action\n * @param {Object} commentBase - Base properties for reply (comment) to be added to the feed as pending.\n * @return {Comment} - newly created pending reply\n */\n addPendingReply = (parentId: string, currentUser: User, commentBase: Object): Comment => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n if (!currentUser) {\n throw getBadUserError();\n }\n\n const date = new Date().toISOString();\n const pendingReply: Comment = {\n created_at: date,\n created_by: currentUser,\n modified_at: date,\n isPending: true,\n ...commentBase,\n };\n\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const updatedFeedItems = cachedItems.items.map(item => {\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_COMMENT) {\n return getItemWithPendingReply<Comment>(item, pendingReply);\n }\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_ANNOTATION) {\n return getItemWithPendingReply<Annotation>(item, pendingReply);\n }\n return item;\n });\n\n this.setCachedItems(this.file.id, updatedFeedItems);\n }\n\n return pendingReply;\n };\n\n /**\n * Callback for successful creation of a Comment.\n *\n * @param {Comment} commentData - API returned Comment\n * @param {string} id - ID of the feed item to update with the new comment data\n * @return {void}\n */\n createCommentSuccessCallback = (commentData: Comment, id: string, successCallback: Function): void => {\n const { message = '', tagged_message = '' } = commentData;\n // Comment component uses tagged_message only\n commentData.tagged_message = tagged_message || message;\n\n this.updateFeedItem(\n {\n ...commentData,\n isPending: false,\n },\n id,\n );\n\n if (!this.isDestroyed()) {\n successCallback(commentData);\n }\n };\n\n /**\n * Callback for failed creation of a Comment.\n *\n * @param {Object} e - The axios error\n * @param {string} code - the error code\n * @param {string} id - ID of the feed item to update\n * @return {void}\n */\n createCommentErrorCallback = (e: ElementsXhrError, code: string, id: string) => {\n const errorMessage =\n e.status === HTTP_STATUS_CODE_CONFLICT\n ? messages.commentCreateConflictMessage\n : messages.commentCreateErrorMessage;\n this.updateFeedItem(this.createFeedError(errorMessage), id);\n this.feedErrorCallback(false, e, code);\n };\n\n /**\n * Callback for successful creation of a Comment.\n *\n * @param {Comment} commentData - API returned Comment\n * @param {string} parentId - ID of the parent feed item\n * @param {string} id - ID of the reply to update with the new comment data\n * @param {Function} successCallback - success callback\n * @return {void}\n */\n createReplySuccessCallback = (\n commentData: Comment,\n parentId: string,\n id: string,\n successCallback: Function,\n ): void => {\n this.updateReplyItem(\n {\n ...commentData,\n isPending: false,\n },\n parentId,\n id,\n );\n\n if (!this.isDestroyed()) {\n successCallback(commentData);\n }\n };\n\n /**\n * Callback for failed creation of a reply.\n *\n * @param {ElementsXhrError} error - The axios error\n * @param {string} code - the error code\n * @param {string} parentId - ID of the parent feed item\n * @param {string} id - ID of the feed item to update\n * @return {void}\n */\n createReplyErrorCallback = (error: ElementsXhrError, code: string, parentId: string, id: string) => {\n const errorMessage =\n error.status === HTTP_STATUS_CODE_CONFLICT\n ? messages.commentCreateConflictMessage\n : messages.commentCreateErrorMessage;\n this.updateReplyItem(this.createFeedError(errorMessage), parentId, id);\n this.feedErrorCallback(false, error, code);\n };\n\n /**\n * Constructs an error object that renders to an inline feed error\n *\n * @param {string} message - The error message body.\n * @param {string} title - The error message title.\n * @return {Object} An error message object\n */\n createFeedError(message: MessageDescriptor, title: MessageDescriptor = commonMessages.errorOccured) {\n return {\n error: { message, title },\n };\n }\n\n /**\n * Replace a feed item with new feed item data.\n *\n * @param {Object} updates - The new data to be applied to the feed item.\n * @param {string} id - ID of the feed item to replace.\n * @return {void}\n */\n updateFeedItem = (updates: Object, id: string): ?FeedItems => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const updatedFeedItems = cachedItems.items.map((item: FeedItem) => {\n if (item.id === id) {\n return {\n ...item,\n ...updates,\n };\n }\n\n return item;\n });\n\n this.setCachedItems(this.file.id, updatedFeedItems);\n return updatedFeedItems;\n }\n\n return null;\n };\n\n /**\n * Replace a reply of feed item with new comment data.\n *\n * @param {Object} replyUpdates - New data to be applied to the reply.\n * @param {string} parentId - ID of the parent feed item.\n * @param {string} id - ID of the reply to replace.\n * @return {void}\n */\n updateReplyItem = (replyUpdates: Object, parentId: string, id: string) => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n\n const getItemWithUpdatedReply = <T: { replies?: Array<Comment> }>(\n item: T,\n replyId: string,\n updates: Object,\n ): T => {\n const updatedItem: T = { ...item };\n if (updatedItem.replies) {\n updatedItem.replies = updatedItem.replies.map(reply => {\n if (reply.id === replyId) {\n return {\n ...reply,\n ...updates,\n };\n }\n return reply;\n });\n }\n return updatedItem;\n };\n\n const cachedItems = this.getCachedItems(this.file.id);\n if (cachedItems) {\n const updatedFeedItems = cachedItems.items.map((item: FeedItem) => {\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_COMMENT) {\n return getItemWithUpdatedReply<Comment>(item, id, replyUpdates);\n }\n if (item.id === parentId && item.type === FEED_ITEM_TYPE_ANNOTATION) {\n return getItemWithUpdatedReply<Annotation>(item, id, replyUpdates);\n }\n return item;\n });\n\n this.setCachedItems(this.file.id, updatedFeedItems);\n }\n };\n\n /**\n * Create a comment, and make a pending item to be replaced once the API is successful.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} text - the comment text\n * @param {boolean} hasMention - true if there is an @mention in the text\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n createComment = (\n file: BoxItem,\n currentUser: User,\n text: string,\n hasMention: boolean,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n const uuid = uniqueId('comment_');\n const commentData = {\n id: uuid,\n tagged_message: text,\n type: FEED_ITEM_TYPE_COMMENT,\n };\n\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.addPendingItem(this.file.id, currentUser, commentData);\n\n const message = {};\n if (hasMention) {\n message.taggedMessage = text;\n } else {\n message.message = text;\n }\n\n this.commentsAPI = new CommentsAPI(this.options);\n\n this.commentsAPI.createComment({\n file,\n ...message,\n successCallback: (comment: Comment) => {\n this.createCommentSuccessCallback(comment, uuid, successCallback);\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.createCommentErrorCallback(e, code, uuid);\n },\n });\n };\n\n /**\n * Create a threaded comment (using ThreadedComments API),\n * and make a pending item to be replaced once the API is successful.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} text - the comment text\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n createThreadedComment = (\n file: BoxItem,\n currentUser: User,\n text: string,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n const uuid = uniqueId('comment_');\n const commentData = {\n id: uuid,\n tagged_message: text,\n type: FEED_ITEM_TYPE_COMMENT,\n };\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.addPendingItem(this.file.id, currentUser, commentData);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.createComment({\n file,\n message: text,\n successCallback: (comment: Comment) => {\n this.createCommentSuccessCallback(comment, uuid, successCallback);\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.createCommentErrorCallback(e, code, uuid);\n },\n });\n };\n\n /**\n * Create a reply to annotation or comment, and make a pending item to be replaced once the API is successful.\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {Object} currentUser - the user who performed the action\n * @param {string} parentId - id of the parent item\n * @param {CommentFeedItemType} parentType - type of the parent item\n * @param {string} text - the comment text\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n createReply(\n file: BoxItem,\n currentUser: User,\n parentId: string,\n parentType: CommentFeedItemType,\n text: string,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void {\n const { id, permissions } = file;\n if (!id || !permissions) {\n throw getBadItemError();\n }\n\n const uuid = uniqueId('comment_');\n const commentData = {\n id: uuid,\n tagged_message: text,\n type: FEED_ITEM_TYPE_COMMENT,\n };\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.addPendingReply(parentId, currentUser, commentData);\n this.modifyFeedItemRepliesCountBy(parentId, 1);\n\n const successCallbackFn = (comment: Comment) => {\n this.createReplySuccessCallback(comment, parentId, uuid, successCallback);\n };\n const errorCallbackFn = (error: ErrorResponseData, code: string) => {\n this.createReplyErrorCallback(error, code, parentId, uuid);\n };\n\n if (parentType === FEED_ITEM_TYPE_ANNOTATION) {\n this.annotationsAPI = new AnnotationsAPI(this.options);\n\n this.annotationsAPI.createAnnotationReply(\n file.id,\n parentId,\n permissions,\n text,\n successCallbackFn,\n errorCallbackFn,\n );\n } else if (parentType === FEED_ITEM_TYPE_COMMENT) {\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.createCommentReply({\n fileId: file.id,\n commentId: parentId,\n permissions,\n message: text,\n successCallback: successCallbackFn,\n errorCallback: errorCallbackFn,\n });\n }\n }\n\n /**\n * Update a comment\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} commentId - Comment ID\n * @param {string} text - the comment text\n * @param {boolean} hasMention - true if there is an @mention in the text\n * @param {BoxCommentPermission} permissions - Permissions to attach to the app activity items\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n updateComment = (\n file: BoxItem,\n commentId: string,\n text: string,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n const commentData = {\n tagged_message: text,\n };\n\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ ...commentData, isPending: true }, commentId);\n\n const message = {};\n if (hasMention) {\n message.tagged_message = text;\n } else {\n message.message = text;\n }\n\n this.commentsAPI = new CommentsAPI(this.options);\n\n this.commentsAPI.updateComment({\n file,\n commentId,\n permissions,\n ...message,\n successCallback: (comment: Comment) => {\n // use the request payload instead of response in the\n // feed item update because response may not contain\n // the tagged version of the message\n this.updateFeedItem(\n {\n ...message,\n isPending: false,\n },\n commentId,\n );\n if (!this.isDestroyed()) {\n successCallback(comment);\n }\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.updateCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Update a threaded comment\n *\n * @param {BoxItem} file - The file to which the task is assigned\n * @param {string} commentId - Comment ID\n * @param {string} text - the comment text\n * @param {FeedItemStatus} status - status of the comment\n * @param {BoxCommentPermission} permissions - Permissions to attach to the app activity items\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n updateThreadedComment = (\n file: BoxItem,\n commentId: string,\n text?: string,\n status?: FeedItemStatus,\n permissions: BoxCommentPermission,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n if (!text && !status) {\n throw getMissingItemTextOrStatus();\n }\n\n const commentData = {};\n if (text) {\n commentData.tagged_message = text;\n }\n if (status) {\n commentData.status = status;\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ ...commentData, isPending: true }, commentId);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.updateComment({\n fileId: file.id,\n commentId,\n permissions,\n message: text,\n status,\n successCallback: (comment: Comment) => {\n const { replies, total_reply_count, ...commentBase } = comment;\n this.updateFeedItem(\n {\n // Do not update replies and total_reply_count props as their current values are not included in the response\n ...commentBase,\n isPending: false,\n },\n commentId,\n );\n if (!this.isDestroyed()) {\n successCallback(comment);\n }\n },\n errorCallback: (e: ErrorResponseData, code: string) => {\n this.updateCommentErrorCallback(e, code, commentId);\n },\n });\n };\n\n /**\n * Update a reply\n *\n * @param {BoxItem} file - The file to which the reply with its parent is assigned\n * @param {string} id - id of the reply\n * @param {string} parentId - id of the parent item\n * @param {string} text - the updated text\n * @param {BoxCommentPermission} permissions - Permissions to attach to the app activity items\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n updateReply = (\n file: BoxItem,\n id: string,\n parentId: string,\n text: string,\n permissions: BoxCommentPermission,\n successCallback: (comment: Comment) => void,\n errorCallback: ErrorCallback,\n ): void => {\n if (!file.id) {\n throw getBadItemError();\n }\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateReplyItem({ tagged_message: text, isPending: true }, parentId, id);\n\n this.threadedCommentsAPI = new ThreadedCommentsAPI(this.options);\n\n this.threadedCommentsAPI.updateComment({\n fileId: file.id,\n commentId: id,\n permissions,\n message: text,\n undefined,\n successCallback: (comment: Comment) => {\n this.updateReplyItem(\n {\n ...comment,\n isPending: false,\n },\n parentId,\n id,\n );\n if (!this.isDestroyed()) {\n successCallback(comment);\n }\n },\n errorCallback: (error: ErrorResponseData, code: string) => {\n this.updateReplyErrorCallback(error, code, id, parentId);\n },\n });\n };\n\n /**\n * Modify feed item replies count\n *\n * @param {string} id - id of the item\n * @param {number} n - number to modify the count by\n * @return {void}\n */\n modifyFeedItemRepliesCountBy = (id: string, n: number) => {\n if (!this.file.id) {\n throw getBadItemError();\n }\n\n const { items: feedItems = [] } = this.getCachedItems(this.file.id) || {};\n const feedItem = feedItems.find(({ id: itemId }) => itemId === id);\n\n if (!feedItem || (feedItem.type !== 'annotation' && feedItem.type !== 'comment')) {\n return;\n }\n\n const newReplyCount = (feedItem.total_reply_count || 0) + n;\n if (newReplyCount >= 0) {\n this.updateFeedItem({ total_reply_count: newReplyCount }, id);\n }\n };\n\n destroyTaskCollaborators() {\n if (Array.isArray(this.taskCollaboratorsAPI)) {\n this.taskCollaboratorsAPI.forEach(api => api.destroy());\n this.taskCollaboratorsAPI = [];\n }\n }\n\n destroyTaskLinks() {\n if (Array.isArray(this.taskLinksAPI)) {\n this.taskLinksAPI.forEach(api => api.destroy());\n this.taskLinksAPI = [];\n }\n }\n\n /**\n * Fetches app activities for a file\n * @param {BoxItemPermission} permissions - Permissions to attach to the app activity items\n *\n * @return {Promise} - the feed items\n */\n fetchAppActivity(permissions: BoxItemPermission): Promise<?AppActivityItems> {\n this.appActivityAPI = new AppActivityAPI(this.options);\n\n return new Promise(resolve => {\n this.appActivityAPI.getAppActivity(\n this.file.id,\n permissions,\n resolve,\n this.fetchFeedItemErrorCallback.bind(this, resolve),\n );\n });\n }\n\n /**\n * Deletes an app activity item.\n *\n * @param {BoxItem} file - The file to which the app activity belongs to\n * @param {string} appActivityId - The app activity item id to delete\n * @param {Function} successCallback - the function which will be called on success\n * @param {Function} errorCallback - the function which will be called on error\n * @return {void}\n */\n deleteAppActivity = (\n file: BoxItem,\n appActivityId: string,\n successCallback: Function,\n errorCallback: ErrorCallback,\n ): void => {\n const { id } = file;\n if (!id) {\n throw getBadItemError();\n }\n\n this.appActivityAPI = new AppActivityAPI(this.options);\n\n this.file = file;\n this.errorCallback = errorCallback;\n this.updateFeedItem({ isPending: true }, appActivityId);\n\n this.appActivityAPI.deleteAppActivity({\n id,\n appActivityId,\n successCallback: this.deleteFeedItem.bind(this, appActivityId, successCallback),\n errorCallback: (e: ElementsXhrError, code: string) => {\n this.deleteAppActivityErrorCallback(e, code, appActivityId);\n },\n });\n };\n\n /**\n * Error callback for deleting an app activity item\n *\n * @param {ElementsXhrError} e - the error returned by the API\n * @param {string} code - the error code\n * @param {string} id - the app activity id\n * @return {void}\n */\n deleteAppActivityErrorCallback = (e: ElementsXhrError, code: string, id: string) => {\n this.updateFeedItem(this.createFeedError(messages.appActivityDeleteErrorMessage), id);\n this.feedErrorCallback(true, e, code);\n };\n\n /**\n * Destroys all the task feed API's\n *\n * @return {void}\n */\n destroy() {\n super.destroy();\n\n if (this.annotationsAPI) {\n this.annotationsAPI.destroy();\n delete this.annotationsAPI;\n }\n\n if (this.commentsAPI) {\n this.commentsAPI.destroy();\n delete this.commentsAPI;\n }\n\n if (this.threadedCommentsAPI) {\n this.threadedCommentsAPI.destroy();\n delete this.threadedCommentsAPI;\n }\n\n if (this.versionsAPI) {\n this.versionsAPI.destroy();\n delete this.versionsAPI;\n }\n\n if (this.appActivityAPI) {\n this.appActivityAPI.destroy();\n delete this.appActivityAPI;\n }\n\n if (this.tasksNewAPI) {\n this.tasksNewAPI.destroy();\n delete this.tasksNewAPI;\n }\n\n this.destroyTaskCollaborators();\n this.destroyTaskLinks();\n }\n}\n\nexport default Feed;\n"],"file":"Feed.js"}