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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/CONTRIBUTING.md +3 -1
  2. package/dist/explorer.css +1 -1
  3. package/dist/explorer.js +58 -26
  4. package/dist/openwith.css +1 -1
  5. package/dist/openwith.js +10 -17
  6. package/dist/picker.css +1 -1
  7. package/dist/picker.js +12 -19
  8. package/dist/preview.css +1 -1
  9. package/dist/preview.js +56 -24
  10. package/dist/sharing.css +1 -1
  11. package/dist/sharing.js +54 -22
  12. package/dist/sidebar.css +1 -1
  13. package/dist/sidebar.js +56 -24
  14. package/dist/uploader.css +1 -1
  15. package/dist/uploader.js +12 -19
  16. package/es/api/uploads/UploadsReachability.js.flow +2 -2
  17. package/es/api/uploads/UploadsReachability.js.map +1 -1
  18. package/es/common/messages.js +4 -0
  19. package/es/common/messages.js.flow +5 -0
  20. package/es/common/messages.js.map +1 -1
  21. package/es/common/types/core.js.flow +2 -0
  22. package/es/common/types/core.js.map +1 -1
  23. package/es/components/avatar/UnknownUserAvatar.js +6 -9
  24. package/es/components/avatar/UnknownUserAvatar.js.map +1 -1
  25. package/es/components/close-button/CloseButton.js +24 -0
  26. package/es/components/close-button/CloseButton.js.flow +26 -0
  27. package/es/components/close-button/CloseButton.js.map +1 -0
  28. package/es/components/close-button/CloseButton.scss +10 -0
  29. package/es/components/close-button/CloseButton.stories.js +14 -0
  30. package/es/components/close-button/CloseButton.stories.js.map +1 -0
  31. package/es/components/close-button/index.js +2 -0
  32. package/es/components/close-button/index.js.flow +2 -0
  33. package/es/components/close-button/index.js.map +1 -0
  34. package/es/components/date-picker/AccessiblePikaday.js +113 -0
  35. package/es/components/date-picker/AccessiblePikaday.js.map +1 -0
  36. package/es/components/date-picker/DatePicker.js +426 -106
  37. package/es/components/date-picker/DatePicker.js.map +1 -1
  38. package/es/components/date-picker/DatePicker.scss +32 -22
  39. package/es/components/date-picker/DatePicker.stories.js +10 -0
  40. package/es/components/date-picker/DatePicker.stories.js.map +1 -1
  41. package/es/components/date-picker/_pikaday.scss +8 -2
  42. package/es/components/flyout/Flyout.js +13 -3
  43. package/es/components/flyout/Flyout.js.flow +14 -3
  44. package/es/components/flyout/Flyout.js.map +1 -1
  45. package/es/components/flyout/Flyout.scss +40 -0
  46. package/es/components/flyout/FlyoutContext.js +6 -0
  47. package/es/components/flyout/FlyoutContext.js.flow +9 -0
  48. package/es/components/flyout/FlyoutContext.js.map +1 -0
  49. package/es/components/flyout/OverlayHeader.js +33 -0
  50. package/es/components/flyout/OverlayHeader.js.map +1 -0
  51. package/es/components/flyout/OverlayHeader.scss +9 -0
  52. package/es/components/flyout/_variables.scss +1 -0
  53. package/es/components/flyout/index.js +2 -0
  54. package/es/components/flyout/index.js.flow +2 -0
  55. package/es/components/flyout/index.js.map +1 -1
  56. package/es/components/image-tooltip/ImageTooltip.js +1 -2
  57. package/es/components/image-tooltip/ImageTooltip.js.map +1 -1
  58. package/es/components/media-query/constants.js +26 -0
  59. package/es/components/media-query/constants.js.flow +32 -0
  60. package/es/components/media-query/constants.js.map +1 -0
  61. package/es/components/media-query/index.js +3 -0
  62. package/es/components/media-query/index.js.flow +4 -0
  63. package/es/components/media-query/index.js.map +1 -0
  64. package/es/components/media-query/stories/MediaQuery.stories.js +37 -0
  65. package/es/components/media-query/stories/MediaQuery.stories.js.flow +80 -0
  66. package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -0
  67. package/es/components/media-query/types.js +2 -0
  68. package/es/components/media-query/types.js.flow +29 -0
  69. package/es/components/media-query/types.js.map +1 -0
  70. package/es/components/media-query/useMediaQuery.js +91 -0
  71. package/es/components/media-query/useMediaQuery.js.flow +97 -0
  72. package/es/components/media-query/useMediaQuery.js.map +1 -0
  73. package/es/components/media-query/withMediaQuery.js +21 -0
  74. package/es/components/media-query/withMediaQuery.js.flow +23 -0
  75. package/es/components/media-query/withMediaQuery.js.map +1 -0
  76. package/es/components/modal/Modal.scss +27 -0
  77. package/es/components/preview/previewIcons.js +4 -0
  78. package/es/components/preview/previewIcons.js.map +1 -1
  79. package/es/components/search-form/SearchForm.scss +0 -5
  80. package/es/components/selector-dropdown/SelectorDropdown.js +5 -3
  81. package/es/components/selector-dropdown/SelectorDropdown.js.flow +3 -3
  82. package/es/components/selector-dropdown/SelectorDropdown.js.map +1 -1
  83. package/es/components/tab-view/Tabs.scss +0 -4
  84. package/es/components/tooltip/Tooltip.js +21 -4
  85. package/es/components/tooltip/Tooltip.js.map +1 -1
  86. package/es/constants.js +1 -0
  87. package/es/constants.js.flow +1 -0
  88. package/es/constants.js.map +1 -1
  89. package/es/elements/content-open-with/IconFileMap.js +0 -2
  90. package/es/elements/content-open-with/IconFileMap.js.flow +0 -2
  91. package/es/elements/content-open-with/IconFileMap.js.map +1 -1
  92. package/es/elements/content-sidebar/Sidebar.js +2 -1
  93. package/es/elements/content-sidebar/Sidebar.js.flow +1 -1
  94. package/es/elements/content-sidebar/Sidebar.js.map +1 -1
  95. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +3 -3
  96. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js +14 -4
  97. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.flow +18 -5
  98. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.map +1 -1
  99. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js +78 -0
  100. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.flow +97 -0
  101. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.map +1 -0
  102. package/es/elements/content-sidebar/versions/StaticVersionsSidebar.scss +67 -0
  103. package/es/elements/content-sidebar/versions/VersionsSidebar.js +12 -4
  104. package/es/elements/content-sidebar/versions/VersionsSidebar.js.flow +16 -3
  105. package/es/elements/content-sidebar/versions/VersionsSidebar.js.map +1 -1
  106. package/es/elements/content-sidebar/versions/VersionsSidebar.scss +5 -0
  107. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js +42 -10
  108. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.flow +42 -7
  109. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.map +1 -1
  110. package/es/elements/content-sidebar/versions/flowTypes.js.flow +1 -0
  111. package/es/elements/content-sidebar/versions/messages.js +20 -0
  112. package/es/elements/content-sidebar/versions/messages.js.flow +28 -0
  113. package/es/elements/content-sidebar/versions/messages.js.map +1 -1
  114. package/es/features/classification/constants.js +2 -1
  115. package/es/features/classification/constants.js.flow +2 -0
  116. package/es/features/classification/constants.js.map +1 -1
  117. package/es/features/classification/flowTypes.js +1 -0
  118. package/es/features/classification/flowTypes.js.flow +7 -1
  119. package/es/features/classification/flowTypes.js.map +1 -1
  120. package/es/features/classification/security-controls/SecurityControls.js +3 -4
  121. package/es/features/classification/security-controls/SecurityControls.js.flow +3 -4
  122. package/es/features/classification/security-controls/SecurityControls.js.map +1 -1
  123. package/es/features/classification/security-controls/SecurityControlsItem.js +1 -1
  124. package/es/features/classification/security-controls/SecurityControlsItem.js.flow +20 -17
  125. package/es/features/classification/security-controls/SecurityControlsItem.js.map +1 -1
  126. package/es/features/classification/security-controls/SecurityControlsItem.scss +4 -0
  127. package/es/features/classification/security-controls/SecurityControlsModal.js +2 -2
  128. package/es/features/classification/security-controls/SecurityControlsModal.js.flow +2 -2
  129. package/es/features/classification/security-controls/SecurityControlsModal.js.map +1 -1
  130. package/es/features/classification/security-controls/messages.js +4 -0
  131. package/es/features/classification/security-controls/messages.js.flow +5 -0
  132. package/es/features/classification/security-controls/messages.js.map +1 -1
  133. package/es/features/classification/security-controls/utils.js +56 -35
  134. package/es/features/classification/security-controls/utils.js.flow +51 -27
  135. package/es/features/classification/security-controls/utils.js.map +1 -1
  136. package/es/features/collapsible-sidebar/CollapsibleSidebar.js +9 -3
  137. package/es/features/collapsible-sidebar/CollapsibleSidebar.js.flow +13 -5
  138. package/es/features/collapsible-sidebar/CollapsibleSidebar.js.map +1 -1
  139. package/es/features/collapsible-sidebar/CollapsibleSidebar.scss +35 -3
  140. package/es/features/content-explorer/content-explorer/ContentExplorer.scss +1 -1
  141. package/es/features/content-explorer/item-list/ItemList.js +1 -0
  142. package/es/features/content-explorer/item-list/ItemList.js.flow +1 -0
  143. package/es/features/content-explorer/item-list/ItemList.js.map +1 -1
  144. package/es/features/content-explorer/item-list/ItemListName.js +13 -2
  145. package/es/features/content-explorer/item-list/ItemListName.js.flow +3 -2
  146. package/es/features/content-explorer/item-list/ItemListName.js.map +1 -1
  147. package/es/features/header-flyout/HeaderFlyout.js +8 -10
  148. package/es/features/header-flyout/HeaderFlyout.js.flow +4 -8
  149. package/es/features/header-flyout/HeaderFlyout.js.map +1 -1
  150. package/es/features/header-flyout/styles/HeaderFlyout.scss +54 -15
  151. package/es/features/header-flyout/styles/_variables.scss +4 -0
  152. package/es/features/message-center/components/message-center-modal/MessageCenterModal.js +1 -0
  153. package/es/features/message-center/components/message-center-modal/MessageCenterModal.js.flow +1 -0
  154. package/es/features/message-center/components/message-center-modal/MessageCenterModal.js.map +1 -1
  155. package/es/features/presence/PresenceCollaborator.js +90 -0
  156. package/es/features/presence/PresenceCollaborator.js.flow +81 -0
  157. package/es/features/presence/PresenceCollaborator.js.map +1 -0
  158. package/es/features/presence/PresenceCollaborator.scss +28 -0
  159. package/es/features/presence/PresenceCollaboratorsList.js +9 -57
  160. package/es/features/presence/PresenceCollaboratorsList.js.flow +7 -58
  161. package/es/features/presence/PresenceCollaboratorsList.js.map +1 -1
  162. package/es/features/presence/PresenceCollaboratorsList.scss +8 -35
  163. package/es/features/quick-search/QuickSearch.js +4 -2
  164. package/es/features/quick-search/QuickSearch.js.flow +13 -1
  165. package/es/features/quick-search/QuickSearch.js.map +1 -1
  166. package/es/features/unified-share-modal/SharedLinkSection.js +9 -20
  167. package/es/features/unified-share-modal/SharedLinkSection.js.flow +6 -27
  168. package/es/features/unified-share-modal/SharedLinkSection.js.map +1 -1
  169. package/es/features/unified-share-modal/UnifiedShareForm.js +95 -53
  170. package/es/features/unified-share-modal/UnifiedShareForm.js.flow +70 -14
  171. package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
  172. package/es/features/unified-share-modal/UnifiedShareModal.scss +3 -0
  173. package/es/features/unified-share-modal/flowTypes.js.flow +6 -0
  174. package/es/features/unified-share-modal/flowTypes.js.map +1 -1
  175. package/es/features/unified-share-modal/messages.js +8 -0
  176. package/es/features/unified-share-modal/messages.js.flow +10 -0
  177. package/es/features/unified-share-modal/messages.js.map +1 -1
  178. package/es/features/unified-share-modal/utils/mergeContacts.js +13 -10
  179. package/es/features/unified-share-modal/utils/mergeContacts.js.flow +4 -2
  180. package/es/features/unified-share-modal/utils/mergeContacts.js.map +1 -1
  181. package/es/icon/content/FileXbd32.js +39 -0
  182. package/es/icon/content/FileXbd32.js.flow +38 -0
  183. package/es/icon/content/FileXbd32.js.map +1 -0
  184. package/es/icon/content/FileXbd32.stories.js +13 -0
  185. package/es/icon/content/FileXbd32.stories.js.map +1 -0
  186. package/es/icon/content/FileXdw32.js +39 -0
  187. package/es/icon/content/FileXdw32.js.flow +38 -0
  188. package/es/icon/content/FileXdw32.js.map +1 -0
  189. package/es/icon/content/FileXdw32.stories.js +13 -0
  190. package/es/icon/content/FileXdw32.stories.js.map +1 -0
  191. package/es/icon/content/RetentionPolicyModifiable32.js +36 -0
  192. package/es/icon/content/RetentionPolicyModifiable32.js.flow +31 -0
  193. package/es/icon/content/RetentionPolicyModifiable32.js.map +1 -0
  194. package/es/icon/content/RetentionPolicyModifiable32.stories.js +13 -0
  195. package/es/icon/content/RetentionPolicyModifiable32.stories.js.map +1 -0
  196. package/es/icon/content/RetentionPolicyNonModifiable32.js +36 -0
  197. package/es/icon/content/RetentionPolicyNonModifiable32.js.flow +31 -0
  198. package/es/icon/content/RetentionPolicyNonModifiable32.js.map +1 -0
  199. package/es/icon/content/RetentionPolicyNonModifiable32.stories.js +13 -0
  200. package/es/icon/content/RetentionPolicyNonModifiable32.stories.js.map +1 -0
  201. package/es/icons/avatars/UnknownUserAvatar.js +10 -34
  202. package/es/icons/avatars/UnknownUserAvatar.js.map +1 -1
  203. package/es/icons/file-icon/FileIcon.js +8 -2
  204. package/es/icons/file-icon/FileIcon.js.flow +2 -2
  205. package/es/icons/file-icon/FileIcon.js.map +1 -1
  206. package/es/icons/general/IconSearch.js +1 -1
  207. package/es/icons/general/IconSearch.js.flow +1 -1
  208. package/es/icons/general/IconSearch.js.map +1 -1
  209. package/es/icons/general/IconSearchJuicy.js +30 -0
  210. package/es/icons/general/IconSearchJuicy.js.flow +26 -0
  211. package/es/icons/general/IconSearchJuicy.js.map +1 -0
  212. package/es/icons/google-docs/IconGoogle.js +89 -0
  213. package/es/icons/google-docs/IconGoogle.js.flow +57 -0
  214. package/es/icons/google-docs/IconGoogle.js.map +1 -0
  215. package/es/icons/item-icon/ItemIcon.js +4 -0
  216. package/es/icons/item-icon/ItemIcon.js.map +1 -1
  217. package/es/icons/microsoft-office/IconOffice.js +80 -0
  218. package/es/icons/microsoft-office/IconOffice.js.flow +45 -0
  219. package/es/icons/microsoft-office/IconOffice.js.map +1 -0
  220. package/es/illustration/EmailVerification140.js +111 -0
  221. package/es/illustration/EmailVerification140.js.flow +102 -0
  222. package/es/illustration/EmailVerification140.js.map +1 -0
  223. package/es/illustration/EmailVerification140.stories.js +13 -0
  224. package/es/illustration/EmailVerification140.stories.js.map +1 -0
  225. package/es/src/components/close-button/CloseButton.d.ts +9 -0
  226. package/es/src/components/close-button/CloseButton.stories.d.ts +9 -0
  227. package/es/src/components/close-button/__tests__/CloseButton.stories.test.d.ts +0 -0
  228. package/es/src/components/close-button/__tests__/CloseButton.test.d.ts +1 -0
  229. package/es/src/components/close-button/index.d.ts +1 -0
  230. package/es/src/components/date-picker/AccessiblePikaday.d.ts +16 -0
  231. package/es/src/components/date-picker/DatePicker.d.ts +33 -6
  232. package/es/src/components/date-picker/DatePicker.stories.d.ts +2 -1
  233. package/es/src/components/flyout/OverlayHeader.d.ts +10 -0
  234. package/es/src/components/tooltip/Tooltip.d.ts +4 -3
  235. package/es/src/icon/content/FileXbd32.d.ts +13 -0
  236. package/es/src/icon/content/FileXbd32.stories.d.ts +9 -0
  237. package/es/src/icon/content/FileXdw32.d.ts +13 -0
  238. package/es/src/icon/content/FileXdw32.stories.d.ts +9 -0
  239. package/es/src/icon/content/RetentionPolicyModifiable32.d.ts +13 -0
  240. package/es/src/icon/content/RetentionPolicyModifiable32.stories.d.ts +9 -0
  241. package/es/src/icon/content/RetentionPolicyNonModifiable32.d.ts +13 -0
  242. package/es/src/icon/content/RetentionPolicyNonModifiable32.stories.d.ts +9 -0
  243. package/es/src/icons/avatars/UnknownUserAvatar.d.ts +0 -1
  244. package/es/src/icons/general/IconSearchJuicy.d.ts +3 -0
  245. package/es/src/icons/general/__tests__/IconSearchJuicy.test.d.ts +1 -0
  246. package/es/src/icons/google-docs/IconGoogle.d.ts +12 -0
  247. package/es/src/icons/google-docs/__tests__/IconGoogle.test.d.ts +1 -0
  248. package/es/src/icons/item-icon/ItemIcon.d.ts +2 -0
  249. package/es/src/icons/microsoft-office/IconOffice.d.ts +12 -0
  250. package/es/src/icons/microsoft-office/__tests__/IconOffice.test.d.ts +1 -0
  251. package/es/src/illustration/EmailVerification140.d.ts +13 -0
  252. package/es/src/illustration/EmailVerification140.stories.d.ts +9 -0
  253. package/es/src/styles/variables.d.ts +9 -0
  254. package/es/styles/_variables.scss +1 -0
  255. package/es/styles/common/_forms.scss +6 -0
  256. package/es/styles/constants/_layout.scss +3 -0
  257. package/es/styles/constants/_media-queries.scss +15 -0
  258. package/es/styles/variables.js +18 -0
  259. package/es/styles/variables.js.flow +10 -1
  260. package/es/styles/variables.js.map +1 -1
  261. package/es/utils/Browser.js +12 -0
  262. package/es/utils/Browser.js.flow +10 -0
  263. package/es/utils/Browser.js.map +1 -1
  264. package/es/utils/validators.js +26 -4
  265. package/es/utils/validators.js.flow +25 -3
  266. package/es/utils/validators.js.map +1 -1
  267. package/i18n/bn-IN.js +12 -0
  268. package/i18n/bn-IN.properties +24 -0
  269. package/i18n/da-DK.js +12 -0
  270. package/i18n/da-DK.properties +24 -0
  271. package/i18n/de-DE.js +12 -0
  272. package/i18n/de-DE.properties +24 -0
  273. package/i18n/en-AU.js +12 -0
  274. package/i18n/en-AU.properties +24 -0
  275. package/i18n/en-CA.js +12 -0
  276. package/i18n/en-CA.properties +24 -0
  277. package/i18n/en-GB.js +12 -0
  278. package/i18n/en-GB.properties +24 -0
  279. package/i18n/en-US.js +12 -0
  280. package/i18n/en-US.properties +24 -0
  281. package/i18n/en-x-pseudo.js +12 -0
  282. package/i18n/es-419.js +12 -0
  283. package/i18n/es-419.properties +24 -0
  284. package/i18n/es-ES.js +12 -0
  285. package/i18n/es-ES.properties +24 -0
  286. package/i18n/fi-FI.js +12 -0
  287. package/i18n/fi-FI.properties +24 -0
  288. package/i18n/fr-CA.js +12 -0
  289. package/i18n/fr-CA.properties +24 -0
  290. package/i18n/fr-FR.js +12 -0
  291. package/i18n/fr-FR.properties +24 -0
  292. package/i18n/hi-IN.js +12 -0
  293. package/i18n/hi-IN.properties +24 -0
  294. package/i18n/it-IT.js +12 -0
  295. package/i18n/it-IT.properties +24 -0
  296. package/i18n/ja-JP.js +25 -13
  297. package/i18n/ja-JP.properties +37 -13
  298. package/i18n/ko-KR.js +12 -0
  299. package/i18n/ko-KR.properties +24 -0
  300. package/i18n/nb-NO.js +12 -0
  301. package/i18n/nb-NO.properties +24 -0
  302. package/i18n/nl-NL.js +12 -0
  303. package/i18n/nl-NL.properties +24 -0
  304. package/i18n/pl-PL.js +12 -0
  305. package/i18n/pl-PL.properties +24 -0
  306. package/i18n/pt-BR.js +12 -0
  307. package/i18n/pt-BR.properties +24 -0
  308. package/i18n/ru-RU.js +12 -0
  309. package/i18n/ru-RU.properties +24 -0
  310. package/i18n/sv-SE.js +12 -0
  311. package/i18n/sv-SE.properties +24 -0
  312. package/i18n/tr-TR.js +12 -0
  313. package/i18n/tr-TR.properties +24 -0
  314. package/i18n/zh-CN.js +12 -0
  315. package/i18n/zh-CN.properties +24 -0
  316. package/i18n/zh-TW.js +12 -0
  317. package/i18n/zh-TW.properties +24 -0
  318. package/package.json +8 -5
  319. package/src/__mocks__/pikaday.js +1 -0
  320. package/src/api/__tests__/MockOpenWithData.json +2 -25
  321. package/src/api/uploads/UploadsReachability.js +2 -2
  322. package/src/common/messages.js +5 -0
  323. package/src/common/types/core.js +2 -0
  324. package/src/components/avatar/UnknownUserAvatar.tsx +5 -4
  325. package/src/components/close-button/CloseButton.js.flow +26 -0
  326. package/src/components/close-button/CloseButton.scss +10 -0
  327. package/src/components/close-button/CloseButton.stories.md +1 -0
  328. package/src/components/close-button/CloseButton.stories.tsx +14 -0
  329. package/src/components/close-button/CloseButton.tsx +30 -0
  330. package/src/components/close-button/__tests__/CloseButton.stories.test.tsx +6 -0
  331. package/src/components/close-button/__tests__/CloseButton.test.tsx +40 -0
  332. package/src/components/close-button/__tests__/__image_snapshots__/close-button-stories-test-tsx-components-close-button-close-button-looks-visually-correct-when-using-story-components-buttons-closebutton-regular-1-snap.png +0 -0
  333. package/src/components/close-button/index.js.flow +2 -0
  334. package/src/components/close-button/index.ts +1 -0
  335. package/src/components/date-picker/AccessiblePikaday.ts +79 -0
  336. package/src/components/date-picker/DatePicker.scss +32 -22
  337. package/src/components/date-picker/DatePicker.stories.tsx +6 -0
  338. package/src/components/date-picker/DatePicker.tsx +350 -64
  339. package/src/components/date-picker/__tests__/DatePicker.test.tsx +44 -2
  340. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-allows-editing-in-story-components-datepicker-manually-editable-1-snap.png +0 -0
  341. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-allows-keyboard-selection-in-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
  342. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-closes-calendar-and-clears-date-for-components-datepicker-basic-1-snap.png +0 -0
  343. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
  344. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-basic-1-snap.png +0 -0
  345. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-custom-error-tooltip-position-1-snap.png +0 -0
  346. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-disabled-with-error-message-1-snap.png +0 -0
  347. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-manually-editable-1-snap.png +0 -0
  348. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-description-1-snap.png +0 -0
  349. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-limited-date-range-1-snap.png +0 -0
  350. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-range-1-snap.png +0 -0
  351. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-reflects-changes-in-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
  352. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-shows-calendar-and-date-for-components-datepicker-basic-1-snap.png +0 -0
  353. package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-shows-limited-range-in-components-datepicker-with-limited-date-range-1-snap.png +0 -0
  354. package/src/components/date-picker/_pikaday.scss +8 -2
  355. package/src/components/flyout/Flyout.js +14 -3
  356. package/src/components/flyout/Flyout.scss +40 -0
  357. package/src/components/flyout/FlyoutContext.js +9 -0
  358. package/src/components/flyout/OverlayHeader.scss +9 -0
  359. package/src/components/flyout/OverlayHeader.tsx +38 -0
  360. package/src/components/flyout/__tests__/Flyout.test.js +15 -0
  361. package/src/components/flyout/__tests__/OverlayHeader.test.js +56 -0
  362. package/src/components/flyout/_variables.scss +1 -0
  363. package/src/components/flyout/index.js +2 -0
  364. package/src/components/image-tooltip/ImageTooltip.tsx +1 -2
  365. package/src/components/media-query/__tests__/useMediaQuery.test.js +48 -0
  366. package/src/components/media-query/__tests__/withMediaQuery.test.js +29 -0
  367. package/src/components/media-query/constants.js +32 -0
  368. package/src/components/media-query/index.js +4 -0
  369. package/src/components/media-query/stories/MediaQuery.stories.js +80 -0
  370. package/src/components/media-query/stories/MediaQuery.stories.md +29 -0
  371. package/src/components/media-query/types.js +29 -0
  372. package/src/components/media-query/useMediaQuery.js +97 -0
  373. package/src/components/media-query/withMediaQuery.js +23 -0
  374. package/src/components/modal/Modal.scss +27 -0
  375. package/src/components/modal/__tests__/Modal.stories.test.js +10 -0
  376. package/src/components/modal/__tests__/__image_snapshots__/modal-stories-test-js-components-modal-modal-looks-visually-correct-for-small-screens-when-button-is-clicked-in-story-components-modal-basic-1-snap.png +0 -0
  377. package/src/components/modal/__tests__/__image_snapshots__/modal-stories-test-js-components-modal-modal-looks-visually-correct-for-small-screens-when-button-is-clicked-in-story-components-modal-with-custom-backdrop-click-handler-1-snap.png +0 -0
  378. package/src/components/preview/previewIcons.ts +4 -0
  379. package/src/components/search-form/SearchForm.scss +0 -5
  380. package/src/components/selector-dropdown/SelectorDropdown.js +3 -3
  381. package/src/components/selector-dropdown/__tests__/SelectorDropdown.test.js +5 -1
  382. package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +0 -8
  383. package/src/components/tab-view/Tabs.scss +0 -4
  384. package/src/components/tooltip/Tooltip.tsx +20 -5
  385. package/src/components/tooltip/__tests__/Tooltip.test.tsx +17 -4
  386. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -2
  387. package/src/constants.js +1 -0
  388. package/src/elements/content-open-with/IconFileMap.js +0 -2
  389. package/src/elements/content-open-with/__tests__/ContentOpenWith.test.js +13 -13
  390. package/src/elements/content-open-with/__tests__/OpenWithButton.test.js +1 -1
  391. package/src/elements/content-open-with/__tests__/OpenWithDropdownMenu.test.js +1 -5
  392. package/src/elements/content-open-with/__tests__/OpenWithDropdownMenuItem.test.js +2 -2
  393. package/src/elements/content-open-with/__tests__/__snapshots__/ContentOpenWith.test.js.snap +5 -5
  394. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithButton.test.js.snap +1 -1
  395. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenu.test.js.snap +1 -11
  396. package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenuItem.test.js.snap +4 -3
  397. package/src/elements/content-sidebar/Sidebar.js +1 -1
  398. package/src/elements/content-sidebar/__tests__/AddTaskButton.test.js +15 -0
  399. package/src/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +3 -3
  400. package/src/elements/content-sidebar/activity-feed/task-form/TaskForm.js +18 -5
  401. package/src/elements/content-sidebar/versions/StaticVersionSidebar.js +97 -0
  402. package/src/elements/content-sidebar/versions/StaticVersionsSidebar.scss +67 -0
  403. package/src/elements/content-sidebar/versions/VersionsSidebar.js +16 -3
  404. package/src/elements/content-sidebar/versions/VersionsSidebar.scss +5 -0
  405. package/src/elements/content-sidebar/versions/VersionsSidebarContainer.js +42 -7
  406. package/src/elements/content-sidebar/versions/__tests__/VersionsSidebar.test.js +18 -1
  407. package/src/elements/content-sidebar/versions/__tests__/VersionsSidebarContainer.test.js +51 -2
  408. package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsSidebarContainer.test.js.snap +75 -0
  409. package/src/elements/content-sidebar/versions/flowTypes.js +1 -0
  410. package/src/elements/content-sidebar/versions/messages.js +28 -0
  411. package/src/features/classification/constants.js +2 -0
  412. package/src/features/classification/flowTypes.js +7 -1
  413. package/src/features/classification/security-controls/SecurityControls.js +3 -4
  414. package/src/features/classification/security-controls/SecurityControlsItem.js +20 -17
  415. package/src/features/classification/security-controls/SecurityControlsItem.scss +4 -0
  416. package/src/features/classification/security-controls/SecurityControlsModal.js +2 -2
  417. package/src/features/classification/security-controls/__tests__/SecurityControlsItem.test.js +10 -0
  418. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControls.test.js.snap +6 -6
  419. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsItem.test.js.snap +35 -0
  420. package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsModal.test.js.snap +2 -2
  421. package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +20 -0
  422. package/src/features/classification/security-controls/__tests__/utils.test.js +38 -18
  423. package/src/features/classification/security-controls/messages.js +5 -0
  424. package/src/features/classification/security-controls/utils.js +51 -27
  425. package/src/features/collapsible-sidebar/CollapsibleSidebar.js +13 -5
  426. package/src/features/collapsible-sidebar/CollapsibleSidebar.scss +35 -3
  427. package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebar.test.js +35 -0
  428. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebar.test.js.snap +1 -0
  429. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +1 -1
  430. package/src/features/content-explorer/item-list/ItemList.js +1 -0
  431. package/src/features/content-explorer/item-list/ItemListName.js +3 -2
  432. package/src/features/content-explorer/item-list/__tests__/ItemListName.test.js +16 -2
  433. package/src/features/header-flyout/HeaderFlyout.js +4 -8
  434. package/src/features/header-flyout/__tests__/__snapshots__/HeaderFlyout.test.js.snap +14 -11
  435. package/src/features/header-flyout/styles/HeaderFlyout.scss +54 -15
  436. package/src/features/header-flyout/styles/_variables.scss +4 -0
  437. package/src/features/message-center/components/message-center-modal/MessageCenterModal.js +1 -0
  438. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplateDropdown.test.js.snap +7 -0
  439. package/src/features/pagination/__tests__/__snapshots__/MarkerBasedPagination.test.js.snap +0 -8
  440. package/src/features/pagination/__tests__/__snapshots__/OffsetBasedPagination.test.js.snap +0 -16
  441. package/src/features/presence/PresenceCollaborator.js +81 -0
  442. package/src/features/presence/PresenceCollaborator.scss +28 -0
  443. package/src/features/presence/PresenceCollaboratorsList.js +7 -58
  444. package/src/features/presence/PresenceCollaboratorsList.scss +8 -35
  445. package/src/features/presence/__tests__/PresenceCollaborator.test.js +36 -0
  446. package/src/features/presence/__tests__/PresenceCollaboratorsList.test.js +13 -57
  447. package/src/features/presence/__tests__/__snapshots__/Presence.test.js.snap +5 -0
  448. package/src/features/presence/__tests__/__snapshots__/PresenceLink.test.js.snap +3 -0
  449. package/src/features/query-bar/__tests__/__snapshots__/ColumnButton.test.js.snap +3 -0
  450. package/src/features/quick-search/QuickSearch.js +13 -1
  451. package/src/features/quick-search/__tests__/QuickSearch.test.js +17 -0
  452. package/src/features/unified-share-modal/SharedLinkSection.js +6 -27
  453. package/src/features/unified-share-modal/UnifiedShareForm.js +70 -14
  454. package/src/features/unified-share-modal/UnifiedShareModal.scss +3 -0
  455. package/src/features/unified-share-modal/__tests__/EmailForm.test.js +9 -0
  456. package/src/features/unified-share-modal/__tests__/SharedLinkSection.test.js +14 -4
  457. package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +53 -4
  458. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkSection.test.js.snap +9 -0
  459. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +0 -159
  460. package/src/features/unified-share-modal/flowTypes.js +6 -0
  461. package/src/features/unified-share-modal/messages.js +10 -0
  462. package/src/features/unified-share-modal/utils/__tests__/mergeContacts.test.js +23 -0
  463. package/src/features/unified-share-modal/utils/mergeContacts.js +4 -2
  464. package/src/icon/content/FileXbd32.js.flow +38 -0
  465. package/src/icon/content/FileXbd32.stories.tsx +13 -0
  466. package/src/icon/content/FileXbd32.tsx +37 -0
  467. package/src/icon/content/FileXdw32.js.flow +38 -0
  468. package/src/icon/content/FileXdw32.stories.tsx +13 -0
  469. package/src/icon/content/FileXdw32.tsx +37 -0
  470. package/src/icon/content/RetentionPolicyModifiable32.js.flow +31 -0
  471. package/src/icon/content/RetentionPolicyModifiable32.stories.tsx +14 -0
  472. package/src/icon/content/RetentionPolicyModifiable32.tsx +29 -0
  473. package/src/icon/content/RetentionPolicyNonModifiable32.js.flow +31 -0
  474. package/src/icon/content/RetentionPolicyNonModifiable32.stories.tsx +14 -0
  475. package/src/icon/content/RetentionPolicyNonModifiable32.tsx +29 -0
  476. package/src/icons/adobe-sign/README.md +1 -1
  477. package/src/icons/avatars/UnknownUserAvatar.tsx +7 -15
  478. package/src/icons/file-icon/FileIcon.js.flow +2 -2
  479. package/src/icons/file-icon/FileIcon.tsx +8 -2
  480. package/src/icons/file-icon/__tests__/FileIcon.test.tsx +28 -69
  481. package/src/icons/file-icon/__tests__/__snapshots__/FileIcon.test.tsx.snap +48 -34
  482. package/src/icons/general/IconSearch.js.flow +1 -1
  483. package/src/icons/general/IconSearch.tsx +1 -1
  484. package/src/icons/general/IconSearchJuicy.js.flow +26 -0
  485. package/src/icons/general/IconSearchJuicy.tsx +25 -0
  486. package/src/icons/general/README.md +5 -0
  487. package/src/icons/general/__tests__/IconSearchJuicy.test.tsx +38 -0
  488. package/src/icons/google-docs/IconGoogle.js.flow +57 -0
  489. package/src/icons/google-docs/IconGoogle.tsx +50 -0
  490. package/src/icons/google-docs/__tests__/IconGoogle.test.tsx +44 -0
  491. package/src/icons/item-icon/ItemIcon.tsx +4 -0
  492. package/src/icons/item-icon/__tests__/ItemIcon.test.tsx +47 -115
  493. package/src/icons/item-icon/__tests__/__snapshots__/ItemIcon.test.tsx.snap +229 -229
  494. package/src/icons/microsoft-office/IconOffice.js.flow +45 -0
  495. package/src/icons/microsoft-office/IconOffice.tsx +38 -0
  496. package/src/icons/microsoft-office/__tests__/IconOffice.test.tsx +44 -0
  497. package/src/illustration/EmailVerification140.js.flow +102 -0
  498. package/src/illustration/EmailVerification140.stories.tsx +13 -0
  499. package/src/illustration/EmailVerification140.tsx +100 -0
  500. package/src/styles/_variables.scss +1 -0
  501. package/src/styles/common/_forms.scss +6 -0
  502. package/src/styles/constants/_layout.scss +3 -0
  503. package/src/styles/constants/_media-queries.scss +15 -0
  504. package/src/styles/variables.js +10 -1
  505. package/src/styles/variables.json +10 -1
  506. package/src/styles/variables.ts +9 -0
  507. package/src/utils/Browser.js +10 -0
  508. package/src/utils/validators.js +25 -3
@@ -1,9 +1,12 @@
1
1
  // @flow
2
+ import * as React from 'react';
2
3
  import getProp from 'lodash/get';
3
4
  import isNil from 'lodash/isNil';
4
5
 
5
6
  import type { Controls, MessageItem } from '../flowTypes';
6
7
 
8
+ import FormattedCompMessage from '../../../components/i18n/FormattedCompMessage';
9
+ import Link from '../../../components/link/Link';
7
10
  import appRestrictionsMessageMap from './appRestrictionsMessageMap';
8
11
  import downloadRestrictionsMessageMap from './downloadRestrictionsMessageMap';
9
12
  import messages from './messages';
@@ -15,47 +18,41 @@ import {
15
18
  SHARED_LINK_ACCESS_LEVEL,
16
19
  } from '../constants';
17
20
 
18
- const { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP } = ACCESS_POLICY_RESTRICTION;
21
+ const { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP, WATERMARK } = ACCESS_POLICY_RESTRICTION;
19
22
  const { DEFAULT, WITH_APP_LIST, WITH_OVERFLOWN_APP_LIST } = APP_RESTRICTION_MESSAGE_TYPE;
20
23
  const { DESKTOP, MOBILE, WEB } = DOWNLOAD_CONTROL;
21
24
  const { BLOCK, WHITELIST, BLACKLIST } = LIST_ACCESS_LEVEL;
22
25
  const { COLLAB_ONLY, COLLAB_AND_COMPANY_ONLY, PUBLIC } = SHARED_LINK_ACCESS_LEVEL;
23
26
 
24
- const getShortSecurityControlsMessage = (controls: Controls): ?MessageItem => {
25
- const { sharedLink, download, externalCollab, app } = controls;
27
+ const getShortSecurityControlsMessage = (controls: Controls): Array<MessageItem> => {
28
+ const items = [];
29
+ const { sharedLink, download, externalCollab, app, watermark } = controls;
30
+
26
31
  // Shared link and external collab restrictions are grouped
27
32
  // together as generic "sharing" restrictions
28
33
  const sharing = (sharedLink && sharedLink.accessLevel !== PUBLIC) || externalCollab;
29
34
 
30
35
  if (sharing && download && app) {
31
- return { message: messages.shortAllRestrictions };
32
- }
33
-
34
- if (sharing && download) {
35
- return { message: messages.shortSharingDownload };
36
- }
37
-
38
- if (sharing && app) {
39
- return { message: messages.shortSharingApp };
40
- }
41
-
42
- if (download && app) {
43
- return { message: messages.shortDownloadApp };
44
- }
45
-
46
- if (sharing) {
47
- return { message: messages.shortSharing };
36
+ items.push({ message: messages.shortAllRestrictions });
37
+ } else if (sharing && download) {
38
+ items.push({ message: messages.shortSharingDownload });
39
+ } else if (sharing && app) {
40
+ items.push({ message: messages.shortSharingApp });
41
+ } else if (download && app) {
42
+ items.push({ message: messages.shortDownloadApp });
43
+ } else if (sharing) {
44
+ items.push({ message: messages.shortSharing });
45
+ } else if (download) {
46
+ items.push({ message: messages.shortDownload });
47
+ } else if (app) {
48
+ items.push({ message: messages.shortApp });
48
49
  }
49
50
 
50
- if (download) {
51
- return { message: messages.shortDownload };
51
+ if (watermark) {
52
+ items.push({ message: messages.shortWatermarking });
52
53
  }
53
54
 
54
- if (app) {
55
- return { message: messages.shortApp };
56
- }
57
-
58
- return null;
55
+ return items;
59
56
  };
60
57
 
61
58
  const getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {
@@ -76,6 +73,32 @@ const getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {
76
73
  return items;
77
74
  };
78
75
 
76
+ const getWatermarkingMessages = (controls: Controls): Array<MessageItem> => {
77
+ const items = [];
78
+ const isWatermarkEnabled = getProp(controls, `${WATERMARK}.enabled`, false);
79
+ if (isWatermarkEnabled) {
80
+ const formattedCompMessage = (
81
+ <FormattedCompMessage
82
+ id="boxui.securityControls.watermarkingAppliedWithLink"
83
+ description="Bullet point that summarizes watermarking applied to classification"
84
+ >
85
+ Watermarking will be applied, click{' '}
86
+ <Link
87
+ className="support-link"
88
+ href="https://support.box.com/hc/en-us/articles/360044195253"
89
+ target="_blank"
90
+ >
91
+ here
92
+ </Link>{' '}
93
+ more details on Watermarking
94
+ </FormattedCompMessage>
95
+ );
96
+ items.push({ message: formattedCompMessage });
97
+ }
98
+
99
+ return items;
100
+ };
101
+
79
102
  const getExternalCollabMessages = (controls: Controls): Array<MessageItem> => {
80
103
  const items = [];
81
104
  const accessLevel = getProp(controls, `${EXTERNAL_COLLAB}.accessLevel`);
@@ -191,6 +214,7 @@ const getFullSecurityControlsMessages = (controls: Controls, maxAppCount?: numbe
191
214
  ...getExternalCollabMessages(controls),
192
215
  ...getDownloadMessages(controls),
193
216
  ...getAppDownloadMessages(controls, maxAppCount),
217
+ ...getWatermarkingMessages(controls),
194
218
  ];
195
219
  return items;
196
220
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/classification/security-controls/utils.js"],"names":["getProp","isNil","appRestrictionsMessageMap","downloadRestrictionsMessageMap","messages","ACCESS_POLICY_RESTRICTION","APP_RESTRICTION_MESSAGE_TYPE","DOWNLOAD_CONTROL","LIST_ACCESS_LEVEL","SHARED_LINK_ACCESS_LEVEL","SHARED_LINK","DOWNLOAD","EXTERNAL_COLLAB","APP","DEFAULT","WITH_APP_LIST","WITH_OVERFLOWN_APP_LIST","DESKTOP","MOBILE","WEB","BLOCK","WHITELIST","BLACKLIST","COLLAB_ONLY","COLLAB_AND_COMPANY_ONLY","PUBLIC","getShortSecurityControlsMessage","controls","sharedLink","download","externalCollab","app","sharing","accessLevel","message","shortAllRestrictions","shortSharingDownload","shortSharingApp","shortDownloadApp","shortSharing","shortDownload","shortApp","getSharedLinkMessages","items","push","sharingCollabOnly","sharingCollabAndCompanyOnly","getExternalCollabMessages","externalCollabBlock","externalCollabDomainList","getAppDownloadMessages","maxAppCount","appDownloadRestricted","apps","length","appsToDisplay","slice","remainingAppCount","appNames","map","displayText","join","appsList","values","tooltipMessage","allAppNames","messageType","getDownloadMessages","web","mobile","desktop","downloadRestrictions","platform","restrictions","Object","keys","forEach","platformKey","restrictExternalUsers","restrictManagedUsers","externalRestricted","externalAllowed","default","getFullSecurityControlsMessages"],"mappings":"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","sourcesContent":["// @flow\nimport getProp from 'lodash/get';\nimport isNil from 'lodash/isNil';\n\nimport type { Controls, MessageItem } from '../flowTypes';\n\nimport appRestrictionsMessageMap from './appRestrictionsMessageMap';\nimport downloadRestrictionsMessageMap from './downloadRestrictionsMessageMap';\nimport messages from './messages';\nimport {\n ACCESS_POLICY_RESTRICTION,\n APP_RESTRICTION_MESSAGE_TYPE,\n DOWNLOAD_CONTROL,\n LIST_ACCESS_LEVEL,\n SHARED_LINK_ACCESS_LEVEL,\n} from '../constants';\n\nconst { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP } = ACCESS_POLICY_RESTRICTION;\nconst { DEFAULT, WITH_APP_LIST, WITH_OVERFLOWN_APP_LIST } = APP_RESTRICTION_MESSAGE_TYPE;\nconst { DESKTOP, MOBILE, WEB } = DOWNLOAD_CONTROL;\nconst { BLOCK, WHITELIST, BLACKLIST } = LIST_ACCESS_LEVEL;\nconst { COLLAB_ONLY, COLLAB_AND_COMPANY_ONLY, PUBLIC } = SHARED_LINK_ACCESS_LEVEL;\n\nconst getShortSecurityControlsMessage = (controls: Controls): ?MessageItem => {\n const { sharedLink, download, externalCollab, app } = controls;\n // Shared link and external collab restrictions are grouped\n // together as generic \"sharing\" restrictions\n const sharing = (sharedLink && sharedLink.accessLevel !== PUBLIC) || externalCollab;\n\n if (sharing && download && app) {\n return { message: messages.shortAllRestrictions };\n }\n\n if (sharing && download) {\n return { message: messages.shortSharingDownload };\n }\n\n if (sharing && app) {\n return { message: messages.shortSharingApp };\n }\n\n if (download && app) {\n return { message: messages.shortDownloadApp };\n }\n\n if (sharing) {\n return { message: messages.shortSharing };\n }\n\n if (download) {\n return { message: messages.shortDownload };\n }\n\n if (app) {\n return { message: messages.shortApp };\n }\n\n return null;\n};\n\nconst getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${SHARED_LINK}.accessLevel`);\n\n switch (accessLevel) {\n case COLLAB_ONLY:\n items.push({ message: messages.sharingCollabOnly });\n break;\n case COLLAB_AND_COMPANY_ONLY:\n items.push({ message: messages.sharingCollabAndCompanyOnly });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getExternalCollabMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${EXTERNAL_COLLAB}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.externalCollabBlock });\n break;\n case WHITELIST:\n case BLACKLIST:\n items.push({ message: messages.externalCollabDomainList });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getAppDownloadMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${APP}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.appDownloadRestricted });\n break;\n case WHITELIST:\n case BLACKLIST: {\n const apps = getProp(controls, `${APP}.apps`, []);\n\n maxAppCount = isNil(maxAppCount) ? apps.length : maxAppCount;\n const appsToDisplay = apps.slice(0, maxAppCount);\n const remainingAppCount = apps.slice(maxAppCount).length;\n const appNames = appsToDisplay.map(({ displayText }) => displayText).join(', ');\n\n if (remainingAppCount) {\n const appsList = apps.map(({ displayText }) => displayText).join(', ');\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][WITH_OVERFLOWN_APP_LIST],\n values: { appNames, remainingAppCount },\n },\n tooltipMessage: {\n ...messages.allAppNames,\n values: { appsList },\n },\n });\n } else {\n // Display list of apps if available, otherwise use generic\n // app restriction copy\n const messageType = apps.length ? WITH_APP_LIST : DEFAULT;\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][messageType],\n values: { appNames },\n },\n });\n }\n break;\n }\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getDownloadMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const { web, mobile, desktop } = getProp(controls, DOWNLOAD, {});\n\n const downloadRestrictions = {\n [WEB]: {\n platform: WEB,\n restrictions: web,\n },\n [MOBILE]: {\n platform: MOBILE,\n restrictions: mobile,\n },\n [DESKTOP]: {\n platform: DESKTOP,\n restrictions: desktop,\n },\n };\n\n Object.keys(downloadRestrictions).forEach(platformKey => {\n const { platform, restrictions } = downloadRestrictions[platformKey];\n\n if (!restrictions) {\n return;\n }\n const { restrictExternalUsers, restrictManagedUsers } = restrictions;\n\n if (restrictManagedUsers && restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted[restrictManagedUsers] });\n } else if (restrictManagedUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalAllowed[restrictManagedUsers] });\n } else if (restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted.default });\n }\n });\n\n return items;\n};\n\nconst getFullSecurityControlsMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [\n ...getSharedLinkMessages(controls),\n ...getExternalCollabMessages(controls),\n ...getDownloadMessages(controls),\n ...getAppDownloadMessages(controls, maxAppCount),\n ];\n return items;\n};\n\nexport { getShortSecurityControlsMessage, getFullSecurityControlsMessages };\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../../src/features/classification/security-controls/utils.js"],"names":["React","getProp","isNil","FormattedCompMessage","Link","appRestrictionsMessageMap","downloadRestrictionsMessageMap","messages","ACCESS_POLICY_RESTRICTION","APP_RESTRICTION_MESSAGE_TYPE","DOWNLOAD_CONTROL","LIST_ACCESS_LEVEL","SHARED_LINK_ACCESS_LEVEL","SHARED_LINK","DOWNLOAD","EXTERNAL_COLLAB","APP","WATERMARK","DEFAULT","WITH_APP_LIST","WITH_OVERFLOWN_APP_LIST","DESKTOP","MOBILE","WEB","BLOCK","WHITELIST","BLACKLIST","COLLAB_ONLY","COLLAB_AND_COMPANY_ONLY","PUBLIC","getShortSecurityControlsMessage","controls","items","sharedLink","download","externalCollab","app","watermark","sharing","accessLevel","push","message","shortAllRestrictions","shortSharingDownload","shortSharingApp","shortDownloadApp","shortSharing","shortDownload","shortApp","shortWatermarking","getSharedLinkMessages","sharingCollabOnly","sharingCollabAndCompanyOnly","getWatermarkingMessages","isWatermarkEnabled","formattedCompMessage","getExternalCollabMessages","externalCollabBlock","externalCollabDomainList","getAppDownloadMessages","maxAppCount","appDownloadRestricted","apps","length","appsToDisplay","slice","remainingAppCount","appNames","map","displayText","join","appsList","values","tooltipMessage","allAppNames","messageType","getDownloadMessages","web","mobile","desktop","downloadRestrictions","platform","restrictions","Object","keys","forEach","platformKey","restrictExternalUsers","restrictManagedUsers","externalRestricted","externalAllowed","default","getFullSecurityControlsMessages"],"mappings":"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","sourcesContent":["// @flow\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport isNil from 'lodash/isNil';\n\nimport type { Controls, MessageItem } from '../flowTypes';\n\nimport FormattedCompMessage from '../../../components/i18n/FormattedCompMessage';\nimport Link from '../../../components/link/Link';\nimport appRestrictionsMessageMap from './appRestrictionsMessageMap';\nimport downloadRestrictionsMessageMap from './downloadRestrictionsMessageMap';\nimport messages from './messages';\nimport {\n ACCESS_POLICY_RESTRICTION,\n APP_RESTRICTION_MESSAGE_TYPE,\n DOWNLOAD_CONTROL,\n LIST_ACCESS_LEVEL,\n SHARED_LINK_ACCESS_LEVEL,\n} from '../constants';\n\nconst { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP, WATERMARK } = ACCESS_POLICY_RESTRICTION;\nconst { DEFAULT, WITH_APP_LIST, WITH_OVERFLOWN_APP_LIST } = APP_RESTRICTION_MESSAGE_TYPE;\nconst { DESKTOP, MOBILE, WEB } = DOWNLOAD_CONTROL;\nconst { BLOCK, WHITELIST, BLACKLIST } = LIST_ACCESS_LEVEL;\nconst { COLLAB_ONLY, COLLAB_AND_COMPANY_ONLY, PUBLIC } = SHARED_LINK_ACCESS_LEVEL;\n\nconst getShortSecurityControlsMessage = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const { sharedLink, download, externalCollab, app, watermark } = controls;\n\n // Shared link and external collab restrictions are grouped\n // together as generic \"sharing\" restrictions\n const sharing = (sharedLink && sharedLink.accessLevel !== PUBLIC) || externalCollab;\n\n if (sharing && download && app) {\n items.push({ message: messages.shortAllRestrictions });\n } else if (sharing && download) {\n items.push({ message: messages.shortSharingDownload });\n } else if (sharing && app) {\n items.push({ message: messages.shortSharingApp });\n } else if (download && app) {\n items.push({ message: messages.shortDownloadApp });\n } else if (sharing) {\n items.push({ message: messages.shortSharing });\n } else if (download) {\n items.push({ message: messages.shortDownload });\n } else if (app) {\n items.push({ message: messages.shortApp });\n }\n\n if (watermark) {\n items.push({ message: messages.shortWatermarking });\n }\n\n return items;\n};\n\nconst getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${SHARED_LINK}.accessLevel`);\n\n switch (accessLevel) {\n case COLLAB_ONLY:\n items.push({ message: messages.sharingCollabOnly });\n break;\n case COLLAB_AND_COMPANY_ONLY:\n items.push({ message: messages.sharingCollabAndCompanyOnly });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getWatermarkingMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const isWatermarkEnabled = getProp(controls, `${WATERMARK}.enabled`, false);\n if (isWatermarkEnabled) {\n const formattedCompMessage = (\n <FormattedCompMessage\n id=\"boxui.securityControls.watermarkingAppliedWithLink\"\n description=\"Bullet point that summarizes watermarking applied to classification\"\n >\n Watermarking will be applied, click{' '}\n <Link\n className=\"support-link\"\n href=\"https://support.box.com/hc/en-us/articles/360044195253\"\n target=\"_blank\"\n >\n here\n </Link>{' '}\n more details on Watermarking\n </FormattedCompMessage>\n );\n items.push({ message: formattedCompMessage });\n }\n\n return items;\n};\n\nconst getExternalCollabMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${EXTERNAL_COLLAB}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.externalCollabBlock });\n break;\n case WHITELIST:\n case BLACKLIST:\n items.push({ message: messages.externalCollabDomainList });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getAppDownloadMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${APP}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.appDownloadRestricted });\n break;\n case WHITELIST:\n case BLACKLIST: {\n const apps = getProp(controls, `${APP}.apps`, []);\n\n maxAppCount = isNil(maxAppCount) ? apps.length : maxAppCount;\n const appsToDisplay = apps.slice(0, maxAppCount);\n const remainingAppCount = apps.slice(maxAppCount).length;\n const appNames = appsToDisplay.map(({ displayText }) => displayText).join(', ');\n\n if (remainingAppCount) {\n const appsList = apps.map(({ displayText }) => displayText).join(', ');\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][WITH_OVERFLOWN_APP_LIST],\n values: { appNames, remainingAppCount },\n },\n tooltipMessage: {\n ...messages.allAppNames,\n values: { appsList },\n },\n });\n } else {\n // Display list of apps if available, otherwise use generic\n // app restriction copy\n const messageType = apps.length ? WITH_APP_LIST : DEFAULT;\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][messageType],\n values: { appNames },\n },\n });\n }\n break;\n }\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getDownloadMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const { web, mobile, desktop } = getProp(controls, DOWNLOAD, {});\n\n const downloadRestrictions = {\n [WEB]: {\n platform: WEB,\n restrictions: web,\n },\n [MOBILE]: {\n platform: MOBILE,\n restrictions: mobile,\n },\n [DESKTOP]: {\n platform: DESKTOP,\n restrictions: desktop,\n },\n };\n\n Object.keys(downloadRestrictions).forEach(platformKey => {\n const { platform, restrictions } = downloadRestrictions[platformKey];\n\n if (!restrictions) {\n return;\n }\n const { restrictExternalUsers, restrictManagedUsers } = restrictions;\n\n if (restrictManagedUsers && restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted[restrictManagedUsers] });\n } else if (restrictManagedUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalAllowed[restrictManagedUsers] });\n } else if (restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted.default });\n }\n });\n\n return items;\n};\n\nconst getFullSecurityControlsMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [\n ...getSharedLinkMessages(controls),\n ...getExternalCollabMessages(controls),\n ...getDownloadMessages(controls),\n ...getAppDownloadMessages(controls, maxAppCount),\n ...getWatermarkingMessages(controls),\n ];\n return items;\n};\n\nexport { getShortSecurityControlsMessage, getFullSecurityControlsMessages };\n"],"file":"utils.js"}
@@ -119,15 +119,21 @@ function (_React$Component) {
119
119
  children = _this$props.children,
120
120
  className = _this$props.className,
121
121
  expanded = _this$props.expanded,
122
+ isHidden = _this$props.isHidden,
122
123
  htmlAttributes = _this$props.htmlAttributes;
123
- var classes = classNames({
124
+ var navClasses = classNames({
124
125
  'is-expanded': expanded
125
126
  }, 'bdl-CollapsibleSidebar', className);
127
+ var ariaAttributes = {
128
+ 'aria-hidden': isHidden ? 'true' : undefined
129
+ };
126
130
  return React.createElement("div", _extends({
127
131
  className: "bdl-CollapsibleSidebar-wrapper"
128
- }, htmlAttributes), React.createElement(StyledNav, {
132
+ }, htmlAttributes, ariaAttributes, {
133
+ "data-testid": "CollapsibleSidebar-wrapper"
134
+ }), React.createElement(StyledNav, {
129
135
  ref: this.navRef,
130
- className: classes,
136
+ className: navClasses,
131
137
  onKeyDown: this.handleKeyDown
132
138
  }, children));
133
139
  }
@@ -36,6 +36,9 @@ type Props = {
36
36
 
37
37
  /** Optional HTML attributes to append to menu item */
38
38
  htmlAttributes?: Object,
39
+
40
+ /** Optionally apply "aria-hidden": "true" to CollapsibleSidebar wrapper */
41
+ isHidden?: boolean,
39
42
  };
40
43
 
41
44
  class CollapsibleSidebar extends React.Component<Props> {
@@ -81,18 +84,23 @@ class CollapsibleSidebar extends React.Component<Props> {
81
84
  };
82
85
 
83
86
  render() {
84
- const { children, className, expanded, htmlAttributes } = this.props;
85
- const classes = classNames(
87
+ const { children, className, expanded, isHidden, htmlAttributes } = this.props;
88
+ const navClasses = classNames(
86
89
  {
87
90
  'is-expanded': expanded,
88
91
  },
89
92
  'bdl-CollapsibleSidebar',
90
93
  className,
91
94
  );
92
-
95
+ const ariaAttributes = { 'aria-hidden': isHidden ? 'true' : undefined };
93
96
  return (
94
- <div className="bdl-CollapsibleSidebar-wrapper" {...htmlAttributes}>
95
- <StyledNav ref={this.navRef} className={classes} onKeyDown={this.handleKeyDown}>
97
+ <div
98
+ className="bdl-CollapsibleSidebar-wrapper"
99
+ {...htmlAttributes}
100
+ {...ariaAttributes}
101
+ data-testid="CollapsibleSidebar-wrapper"
102
+ >
103
+ <StyledNav ref={this.navRef} className={navClasses} onKeyDown={this.handleKeyDown}>
96
104
  {children}
97
105
  </StyledNav>
98
106
  </div>
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/collapsible-sidebar/CollapsibleSidebar.js"],"names":["React","classNames","styled","tabbable","KEYS","StyledNav","nav","props","theme","primary","background","border","foreground","CollapsibleSidebar","createRef","direction","navRef","current","tabbableEls","currentElIndex","findIndex","el","document","activeElement","index","length","focus","event","contains","key","arrowDown","stopPropagation","preventDefault","focusEl","arrowUp","children","className","expanded","htmlAttributes","classes","handleKeyDown","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Sidebar component that supports rendering different elements based on expand/collapse state\n * @author Box\n *\n * A sidebar component that supports collapsed/expanded state and responsive sizing.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport styled from 'styled-components';\nimport tabbable from 'tabbable';\nimport { KEYS } from '../../constants';\n\nimport './CollapsibleSidebar.scss';\n\nconst StyledNav = styled.nav`\n background-color: ${props => props.theme.primary.background};\n border-right: 1px solid ${props => props.theme.primary.border};\n color: ${props => props.theme.primary.foreground};\n\n .crawler > div {\n background-color: ${props => props.theme.primary.foreground};\n }\n`;\n\ntype Props = {\n /** Primary content */\n children?: React.Node,\n\n /** Additional classes */\n className?: string,\n\n /** Controls whether or not the sidebar is expanded on the page */\n expanded?: boolean,\n\n /** Optional HTML attributes to append to menu item */\n htmlAttributes?: Object,\n};\n\nclass CollapsibleSidebar extends React.Component<Props> {\n navRef: { current: null | HTMLElement } = React.createRef();\n\n static defaultProps = {\n expanded: false,\n };\n\n focusEl = (direction: 'down' | 'up') => {\n if (this.navRef.current) {\n const tabbableEls = tabbable(this.navRef.current);\n const currentElIndex = tabbableEls.findIndex(el => el === document.activeElement);\n let index;\n if (direction === 'down') {\n index = currentElIndex === tabbableEls.length - 1 ? 0 : currentElIndex + 1;\n } else {\n index = currentElIndex === 0 ? tabbableEls.length - 1 : currentElIndex - 1;\n }\n tabbableEls[index].focus();\n }\n };\n\n handleKeyDown = (event: SyntheticKeyboardEvent<>) => {\n if (this.navRef.current && this.navRef.current.contains(document.activeElement)) {\n switch (event.key) {\n case KEYS.arrowDown:\n event.stopPropagation();\n event.preventDefault();\n this.focusEl('down');\n break;\n\n case KEYS.arrowUp:\n event.stopPropagation();\n event.preventDefault();\n this.focusEl('up');\n break;\n\n default:\n break;\n }\n }\n };\n\n render() {\n const { children, className, expanded, htmlAttributes } = this.props;\n const classes = classNames(\n {\n 'is-expanded': expanded,\n },\n 'bdl-CollapsibleSidebar',\n className,\n );\n\n return (\n <div className=\"bdl-CollapsibleSidebar-wrapper\" {...htmlAttributes}>\n <StyledNav ref={this.navRef} className={classes} onKeyDown={this.handleKeyDown}>\n {children}\n </StyledNav>\n </div>\n );\n }\n}\n\nexport default CollapsibleSidebar;\n"],"file":"CollapsibleSidebar.js"}
1
+ {"version":3,"sources":["../../../src/features/collapsible-sidebar/CollapsibleSidebar.js"],"names":["React","classNames","styled","tabbable","KEYS","StyledNav","nav","props","theme","primary","background","border","foreground","CollapsibleSidebar","createRef","direction","navRef","current","tabbableEls","currentElIndex","findIndex","el","document","activeElement","index","length","focus","event","contains","key","arrowDown","stopPropagation","preventDefault","focusEl","arrowUp","children","className","expanded","isHidden","htmlAttributes","navClasses","ariaAttributes","undefined","handleKeyDown","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Sidebar component that supports rendering different elements based on expand/collapse state\n * @author Box\n *\n * A sidebar component that supports collapsed/expanded state and responsive sizing.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport styled from 'styled-components';\nimport tabbable from 'tabbable';\nimport { KEYS } from '../../constants';\n\nimport './CollapsibleSidebar.scss';\n\nconst StyledNav = styled.nav`\n background-color: ${props => props.theme.primary.background};\n border-right: 1px solid ${props => props.theme.primary.border};\n color: ${props => props.theme.primary.foreground};\n\n .crawler > div {\n background-color: ${props => props.theme.primary.foreground};\n }\n`;\n\ntype Props = {\n /** Primary content */\n children?: React.Node,\n\n /** Additional classes */\n className?: string,\n\n /** Controls whether or not the sidebar is expanded on the page */\n expanded?: boolean,\n\n /** Optional HTML attributes to append to menu item */\n htmlAttributes?: Object,\n\n /** Optionally apply \"aria-hidden\": \"true\" to CollapsibleSidebar wrapper */\n isHidden?: boolean,\n};\n\nclass CollapsibleSidebar extends React.Component<Props> {\n navRef: { current: null | HTMLElement } = React.createRef();\n\n static defaultProps = {\n expanded: false,\n };\n\n focusEl = (direction: 'down' | 'up') => {\n if (this.navRef.current) {\n const tabbableEls = tabbable(this.navRef.current);\n const currentElIndex = tabbableEls.findIndex(el => el === document.activeElement);\n let index;\n if (direction === 'down') {\n index = currentElIndex === tabbableEls.length - 1 ? 0 : currentElIndex + 1;\n } else {\n index = currentElIndex === 0 ? tabbableEls.length - 1 : currentElIndex - 1;\n }\n tabbableEls[index].focus();\n }\n };\n\n handleKeyDown = (event: SyntheticKeyboardEvent<>) => {\n if (this.navRef.current && this.navRef.current.contains(document.activeElement)) {\n switch (event.key) {\n case KEYS.arrowDown:\n event.stopPropagation();\n event.preventDefault();\n this.focusEl('down');\n break;\n\n case KEYS.arrowUp:\n event.stopPropagation();\n event.preventDefault();\n this.focusEl('up');\n break;\n\n default:\n break;\n }\n }\n };\n\n render() {\n const { children, className, expanded, isHidden, htmlAttributes } = this.props;\n const navClasses = classNames(\n {\n 'is-expanded': expanded,\n },\n 'bdl-CollapsibleSidebar',\n className,\n );\n const ariaAttributes = { 'aria-hidden': isHidden ? 'true' : undefined };\n return (\n <div\n className=\"bdl-CollapsibleSidebar-wrapper\"\n {...htmlAttributes}\n {...ariaAttributes}\n data-testid=\"CollapsibleSidebar-wrapper\"\n >\n <StyledNav ref={this.navRef} className={navClasses} onKeyDown={this.handleKeyDown}>\n {children}\n </StyledNav>\n </div>\n );\n }\n}\n\nexport default CollapsibleSidebar;\n"],"file":"CollapsibleSidebar.js"}
@@ -111,6 +111,12 @@ $left-sidebar-z-index: 40 !default;
111
111
  }
112
112
  }
113
113
 
114
+ @include large-size {
115
+ .bdl-CollapsibleSidebar-logo {
116
+ margin-left: $collapsible-side-bar-h-padding + $bdl-grid-unit * 2 - 1px /* border */;
117
+ }
118
+ }
119
+
114
120
  @include medium-minus-size {
115
121
  .bdl-CollapsibleSidebar-logo {
116
122
  .bdl-CollapsibleSidebar-toggleButton {
@@ -133,8 +139,34 @@ $left-sidebar-z-index: 40 !default;
133
139
  }
134
140
  }
135
141
 
136
- @include large-size {
137
- .bdl-CollapsibleSidebar-logo {
138
- margin-left: $collapsible-side-bar-h-padding + $bdl-grid-unit * 2 - 1px /* border */;
142
+ @include breakpoint($medium-screen) {
143
+ .Body.is-responsive-web {
144
+ .bdl-CollapsibleSidebar-wrapper {
145
+ width: 0;
146
+ }
147
+
148
+ .bdl-CollapsibleSidebar-footer {
149
+ display: none;
150
+ }
151
+
152
+ .bdl-CollapsibleSidebar-nav ul {
153
+ display: none;
154
+ // using fixed width due to performance issues during expand transition
155
+ width: calc(100vw - (#{$collapsible-side-bar-h-padding} * 2));
156
+ }
157
+
158
+ .bdl-CollapsibleSidebar {
159
+ width: 0;
160
+ border: none;
161
+
162
+ &.is-expanded {
163
+ width: 100vw;
164
+
165
+ .bdl-CollapsibleSidebar-nav ul,
166
+ .bdl-CollapsibleSidebar-footer {
167
+ display: block;
168
+ }
169
+ }
170
+ }
139
171
  }
140
172
  }
@@ -67,7 +67,7 @@
67
67
 
68
68
  .content-explorer-select-all-checkbox {
69
69
  float: right;
70
- margin-right: -20 * $bdl-grid-unit;
70
+ margin-right: -21 * $bdl-grid-unit;
71
71
  }
72
72
  }
73
73
 
@@ -60,6 +60,7 @@ var itemNameCellRenderer = function itemNameCellRenderer(rendererParams) {
60
60
  return name && React.createElement("div", {
61
61
  className: TABLE_CELL_CLASS
62
62
  }, React.createElement(ItemListName, {
63
+ itemId: id,
63
64
  type: type,
64
65
  name: name,
65
66
  label: label,
@@ -57,6 +57,7 @@ const itemNameCellRenderer = rendererParams => {
57
57
  name && (
58
58
  <div className={TABLE_CELL_CLASS}>
59
59
  <ItemListName
60
+ itemId={id}
60
61
  type={type}
61
62
  name={name}
62
63
  label={label}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","className","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","noItemsRenderer","width","height","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","props","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","string","isRequired","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\n\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n contentExplorerMode,\n className = '',\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n noItemsRenderer,\n width,\n height,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = defaultTableRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div className={classNames('content-explorer-item-list table', className)}>\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={40}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","className","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","noItemsRenderer","width","height","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","props","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","string","isRequired","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\n\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n itemId={id}\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n contentExplorerMode,\n className = '',\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n noItemsRenderer,\n width,\n height,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = defaultTableRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div className={classNames('content-explorer-item-list table', className)}>\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={40}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
@@ -1,3 +1,9 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
1
7
  import PropTypes from 'prop-types';
2
8
  import React from 'react';
3
9
  import PlainButton from '../../../components/plain-button';
@@ -7,7 +13,9 @@ import { ItemTypePropType } from '../prop-types';
7
13
  var ITEM_LIST_NAME_CLASS = 'item-list-name';
8
14
 
9
15
  var ItemListName = function ItemListName(_ref) {
10
- var type = _ref.type,
16
+ var _ref$itemId = _ref.itemId,
17
+ itemId = _ref$itemId === void 0 ? '' : _ref$itemId,
18
+ type = _ref.type,
11
19
  name = _ref.name,
12
20
  _ref$label = _ref.label,
13
21
  label = _ref$label === void 0 ? '' : _ref$label,
@@ -31,7 +39,9 @@ var ItemListName = function ItemListName(_ref) {
31
39
  };
32
40
 
33
41
  var renderLink = function renderLink() {
34
- return linkRenderer ? linkRenderer(linkProps) : React.createElement(PlainButton, linkProps);
42
+ return linkRenderer ? linkRenderer(_objectSpread({}, linkProps, {
43
+ itemId: itemId
44
+ })) : React.createElement(PlainButton, linkProps);
35
45
  };
36
46
 
37
47
  return React.createElement("div", {
@@ -44,6 +54,7 @@ var ItemListName = function ItemListName(_ref) {
44
54
  };
45
55
 
46
56
  ItemListName.propTypes = {
57
+ itemId: PropTypes.string,
47
58
  type: ItemTypePropType,
48
59
  name: PropTypes.string.isRequired,
49
60
  label: PropTypes.string,
@@ -9,7 +9,7 @@ import { ItemTypePropType } from '../prop-types';
9
9
 
10
10
  const ITEM_LIST_NAME_CLASS = 'item-list-name';
11
11
 
12
- const ItemListName = ({ type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
12
+ const ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
13
13
  const isFolder = type === ItemTypes.FOLDER;
14
14
 
15
15
  const linkProps = {
@@ -26,7 +26,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
26
26
  />,
27
27
  ],
28
28
  };
29
- const renderLink = () => (linkRenderer ? linkRenderer(linkProps) : <PlainButton {...linkProps} />);
29
+ const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);
30
30
 
31
31
  return (
32
32
  <div className="item-list-name-container">
@@ -37,6 +37,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
37
37
  };
38
38
 
39
39
  ItemListName.propTypes = {
40
+ itemId: PropTypes.string,
40
41
  type: ItemTypePropType,
41
42
  name: PropTypes.string.isRequired,
42
43
  label: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemListName.js"],"names":["PropTypes","React","PlainButton","IconChevron","ItemTypes","ItemTypePropType","ITEM_LIST_NAME_CLASS","ItemListName","type","name","label","isSelected","onClick","linkRenderer","isFolder","FOLDER","linkProps","className","children","renderLink","propTypes","string","isRequired","bool","func"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AAEA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SAASC,gBAAT,QAAiC,eAAjC;AAEA,IAAMC,oBAAoB,GAAG,gBAA7B;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAA2E;AAAA,MAAxEC,IAAwE,QAAxEA,IAAwE;AAAA,MAAlEC,IAAkE,QAAlEA,IAAkE;AAAA,wBAA5DC,KAA4D;AAAA,MAA5DA,KAA4D,2BAApD,EAAoD;AAAA,6BAAhDC,UAAgD;AAAA,MAAhDA,UAAgD,gCAAnC,KAAmC;AAAA,MAA5BC,OAA4B,QAA5BA,OAA4B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AAC5F,MAAMC,QAAQ,GAAGN,IAAI,KAAKJ,SAAS,CAACW,MAApC;AAEA,MAAMC,SAAS,GAAG;AACdC,IAAAA,SAAS,gBAASX,oBAAT,CADK;AAEdM,IAAAA,OAAO,EAAPA,OAFc;AAGdM,IAAAA,QAAQ,EAAE,CACN;AAAM,MAAA,GAAG,EAAC;AAAV,OAAkBT,IAAlB,CADM,EAEN,oBAAC,WAAD;AACI,MAAA,GAAG,EAAC,MADR;AAEI,MAAA,KAAK,EAAEE,UAAU,GAAG,SAAH,GAAe,MAFpC;AAGI,MAAA,SAAS,EAAC,OAHd;AAII,MAAA,IAAI,EAAC,KAJT;AAKI,MAAA,SAAS,EAAC;AALd,MAFM;AAHI,GAAlB;;AAcA,MAAMQ,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAON,YAAY,GAAGA,YAAY,CAACG,SAAD,CAAf,GAA6B,oBAAC,WAAD,EAAiBA,SAAjB,CAAhD;AAAA,GAAnB;;AAEA,SACI;AAAK,IAAA,SAAS,EAAC;AAAf,KACKF,QAAQ,GAAGK,UAAU,EAAb,GAAkB;AAAM,IAAA,SAAS,EAAEb;AAAjB,KAAwCG,IAAxC,CAD/B,EAEK,CAAC,CAACC,KAAF,IAAW;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAwCA,KAAxC,CAFhB,CADJ;AAMH,CAzBD;;AA2BAH,YAAY,CAACa,SAAb,GAAyB;AACrBZ,EAAAA,IAAI,EAAEH,gBADe;AAErBI,EAAAA,IAAI,EAAET,SAAS,CAACqB,MAAV,CAAiBC,UAFF;AAGrBZ,EAAAA,KAAK,EAAEV,SAAS,CAACqB,MAHI;AAIrBV,EAAAA,UAAU,EAAEX,SAAS,CAACuB,IAJD;AAKrBX,EAAAA,OAAO,EAAEZ,SAAS,CAACwB,IALE;AAMrBX,EAAAA,YAAY,EAAEb,SAAS,CAACwB;AANH,CAAzB;AASA,eAAejB,YAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport PlainButton from '../../../components/plain-button';\nimport IconChevron from '../../../icons/general/IconChevron';\n\nimport ItemTypes from '../item-types';\nimport { ItemTypePropType } from '../prop-types';\n\nconst ITEM_LIST_NAME_CLASS = 'item-list-name';\n\nconst ItemListName = ({ type, name, label = '', isSelected = false, onClick, linkRenderer }) => {\n const isFolder = type === ItemTypes.FOLDER;\n\n const linkProps = {\n className: `lnk ${ITEM_LIST_NAME_CLASS}`,\n onClick,\n children: [\n <span key=\"name\">{name}</span>,\n <IconChevron\n key=\"icon\"\n color={isSelected ? '#447991' : '#333'}\n direction=\"right\"\n size=\"4px\"\n thickness=\"1px\"\n />,\n ],\n };\n const renderLink = () => (linkRenderer ? linkRenderer(linkProps) : <PlainButton {...linkProps} />);\n\n return (\n <div className=\"item-list-name-container\">\n {isFolder ? renderLink() : <span className={ITEM_LIST_NAME_CLASS}>{name}</span>}\n {!!label && <span className=\"item-list-name-label\">{label}</span>}\n </div>\n );\n};\n\nItemListName.propTypes = {\n type: ItemTypePropType,\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n isSelected: PropTypes.bool,\n onClick: PropTypes.func,\n linkRenderer: PropTypes.func,\n};\n\nexport default ItemListName;\n"],"file":"ItemListName.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemListName.js"],"names":["PropTypes","React","PlainButton","IconChevron","ItemTypes","ItemTypePropType","ITEM_LIST_NAME_CLASS","ItemListName","itemId","type","name","label","isSelected","onClick","linkRenderer","isFolder","FOLDER","linkProps","className","children","renderLink","propTypes","string","isRequired","bool","func"],"mappings":";;;;;;AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AAEA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SAASC,gBAAT,QAAiC,eAAjC;AAEA,IAAMC,oBAAoB,GAAG,gBAA7B;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAAwF;AAAA,yBAArFC,MAAqF;AAAA,MAArFA,MAAqF,4BAA5E,EAA4E;AAAA,MAAxEC,IAAwE,QAAxEA,IAAwE;AAAA,MAAlEC,IAAkE,QAAlEA,IAAkE;AAAA,wBAA5DC,KAA4D;AAAA,MAA5DA,KAA4D,2BAApD,EAAoD;AAAA,6BAAhDC,UAAgD;AAAA,MAAhDA,UAAgD,gCAAnC,KAAmC;AAAA,MAA5BC,OAA4B,QAA5BA,OAA4B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AACzG,MAAMC,QAAQ,GAAGN,IAAI,KAAKL,SAAS,CAACY,MAApC;AAEA,MAAMC,SAAS,GAAG;AACdC,IAAAA,SAAS,gBAASZ,oBAAT,CADK;AAEdO,IAAAA,OAAO,EAAPA,OAFc;AAGdM,IAAAA,QAAQ,EAAE,CACN;AAAM,MAAA,GAAG,EAAC;AAAV,OAAkBT,IAAlB,CADM,EAEN,oBAAC,WAAD;AACI,MAAA,GAAG,EAAC,MADR;AAEI,MAAA,KAAK,EAAEE,UAAU,GAAG,SAAH,GAAe,MAFpC;AAGI,MAAA,SAAS,EAAC,OAHd;AAII,MAAA,IAAI,EAAC,KAJT;AAKI,MAAA,SAAS,EAAC;AALd,MAFM;AAHI,GAAlB;;AAcA,MAAMQ,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAON,YAAY,GAAGA,YAAY,mBAAMG,SAAN;AAAiBT,MAAAA,MAAM,EAANA;AAAjB,OAAf,GAA4C,oBAAC,WAAD,EAAiBS,SAAjB,CAA/D;AAAA,GAAnB;;AAEA,SACI;AAAK,IAAA,SAAS,EAAC;AAAf,KACKF,QAAQ,GAAGK,UAAU,EAAb,GAAkB;AAAM,IAAA,SAAS,EAAEd;AAAjB,KAAwCI,IAAxC,CAD/B,EAEK,CAAC,CAACC,KAAF,IAAW;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAwCA,KAAxC,CAFhB,CADJ;AAMH,CAzBD;;AA2BAJ,YAAY,CAACc,SAAb,GAAyB;AACrBb,EAAAA,MAAM,EAAER,SAAS,CAACsB,MADG;AAErBb,EAAAA,IAAI,EAAEJ,gBAFe;AAGrBK,EAAAA,IAAI,EAAEV,SAAS,CAACsB,MAAV,CAAiBC,UAHF;AAIrBZ,EAAAA,KAAK,EAAEX,SAAS,CAACsB,MAJI;AAKrBV,EAAAA,UAAU,EAAEZ,SAAS,CAACwB,IALD;AAMrBX,EAAAA,OAAO,EAAEb,SAAS,CAACyB,IANE;AAOrBX,EAAAA,YAAY,EAAEd,SAAS,CAACyB;AAPH,CAAzB;AAUA,eAAelB,YAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport PlainButton from '../../../components/plain-button';\nimport IconChevron from '../../../icons/general/IconChevron';\n\nimport ItemTypes from '../item-types';\nimport { ItemTypePropType } from '../prop-types';\n\nconst ITEM_LIST_NAME_CLASS = 'item-list-name';\n\nconst ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {\n const isFolder = type === ItemTypes.FOLDER;\n\n const linkProps = {\n className: `lnk ${ITEM_LIST_NAME_CLASS}`,\n onClick,\n children: [\n <span key=\"name\">{name}</span>,\n <IconChevron\n key=\"icon\"\n color={isSelected ? '#447991' : '#333'}\n direction=\"right\"\n size=\"4px\"\n thickness=\"1px\"\n />,\n ],\n };\n const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);\n\n return (\n <div className=\"item-list-name-container\">\n {isFolder ? renderLink() : <span className={ITEM_LIST_NAME_CLASS}>{name}</span>}\n {!!label && <span className=\"item-list-name-label\">{label}</span>}\n </div>\n );\n};\n\nItemListName.propTypes = {\n itemId: PropTypes.string,\n type: ItemTypePropType,\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n isSelected: PropTypes.bool,\n onClick: PropTypes.func,\n linkRenderer: PropTypes.func,\n};\n\nexport default ItemListName;\n"],"file":"ItemListName.js"}
@@ -26,7 +26,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
26
26
 
27
27
  import * as React from 'react';
28
28
  import classNames from 'classnames';
29
- import { Flyout, Overlay } from '../../components/flyout';
29
+ import { Flyout, Overlay, OverlayHeader } from '../../components/flyout';
30
30
  import ScrollWrapper from '../../components/scroll-wrapper';
31
31
  import './styles/HeaderFlyout.scss';
32
32
 
@@ -54,19 +54,17 @@ function (_React$Component) {
54
54
  rest = _objectWithoutProperties(_this$props, ["header", "footer", "flyoutButton", "children", "scrollRefFn", "className"]);
55
55
 
56
56
  return React.createElement(Flyout, _extends({
57
- closeOnClick: false,
58
- offset: HeaderFlyout.panelOffset,
59
57
  className: classNames('header-flyout', className),
60
- constrainToWindow: true
58
+ closeOnClick: false,
59
+ constrainToWindow: true,
60
+ offset: HeaderFlyout.panelOffset
61
61
  }, rest), flyoutButton, React.createElement(Overlay, {
62
62
  className: "header-flyout-overlay"
63
- }, React.createElement("div", {
64
- className: "header-flyout-list-container"
65
- }, header && React.createElement("div", {
66
- className: "flyout-list-container-title"
67
- }, React.createElement("h4", {
68
- className: "flyout-list-title"
63
+ }, React.createElement(OverlayHeader, null, header && React.createElement("h4", {
64
+ className: "header-flyout-title"
69
65
  }, header)), React.createElement("div", {
66
+ className: "header-flyout-list-container"
67
+ }, React.createElement("div", {
70
68
  className: classNames('flyout-list-container-body', {
71
69
  'with-header': !!header,
72
70
  'with-footer': !!footer