box-ui-elements 24.0.0-beta.3 → 24.0.0-beta.4

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 (119) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/openwith.js +1 -1
  3. package/dist/picker.js +1 -1
  4. package/dist/preview.js +1 -1
  5. package/dist/sharing.js +1 -1
  6. package/dist/sidebar.js +1 -1
  7. package/dist/uploader.js +1 -1
  8. package/es/elements/common/withBlueprintModernization.js +16 -0
  9. package/es/elements/common/withBlueprintModernization.js.map +1 -0
  10. package/es/elements/content-explorer/ContentExplorer.js +2 -1
  11. package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
  12. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +5 -0
  13. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +6 -0
  14. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
  15. package/es/elements/content-picker/ContentPicker.js +4 -1
  16. package/es/elements/content-picker/ContentPicker.js.flow +4 -1
  17. package/es/elements/content-picker/ContentPicker.js.map +1 -1
  18. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +5 -0
  19. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.flow +6 -0
  20. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.map +1 -1
  21. package/es/elements/content-preview/ContentPreview.js +3 -1
  22. package/es/elements/content-preview/ContentPreview.js.flow +3 -0
  23. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  24. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +5 -0
  25. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.flow +7 -1
  26. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.map +1 -1
  27. package/es/elements/content-sharing/ContentSharing.js +4 -1
  28. package/es/elements/content-sharing/ContentSharing.js.flow +4 -1
  29. package/es/elements/content-sharing/ContentSharing.js.map +1 -1
  30. package/es/elements/content-sidebar/ContentSidebar.js +3 -1
  31. package/es/elements/content-sidebar/ContentSidebar.js.flow +3 -0
  32. package/es/elements/content-sidebar/ContentSidebar.js.map +1 -1
  33. package/es/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.js +5 -0
  34. package/es/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.js.map +1 -1
  35. package/es/elements/content-uploader/ContentUploader.js +3 -1
  36. package/es/elements/content-uploader/ContentUploader.js.map +1 -1
  37. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +5 -0
  38. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.flow +6 -0
  39. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.map +1 -1
  40. package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.js +51 -0
  41. package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.js.map +1 -0
  42. package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.scss +29 -0
  43. package/es/features/classification/applied-by-ai-classification-reason/messages.js +13 -0
  44. package/es/features/classification/applied-by-ai-classification-reason/messages.js.map +1 -0
  45. package/es/features/classification/types.js +2 -0
  46. package/es/features/classification/types.js.map +1 -0
  47. package/es/src/elements/common/__tests__/withBlueprintModernization.test.d.ts +1 -0
  48. package/es/src/elements/common/withBlueprintModernization.d.ts +3 -0
  49. package/es/src/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.d.ts +5 -0
  50. package/es/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.d.ts +6 -0
  51. package/es/src/features/classification/applied-by-ai-classification-reason/__tests__/AppliedByAiClassificationReason.test.d.ts +1 -0
  52. package/es/src/features/classification/applied-by-ai-classification-reason/messages.d.ts +13 -0
  53. package/es/src/features/classification/types.d.ts +6 -0
  54. package/i18n/bn-IN.js +4 -2
  55. package/i18n/bn-IN.properties +2 -2
  56. package/i18n/da-DK.js +4 -2
  57. package/i18n/da-DK.properties +2 -2
  58. package/i18n/de-DE.js +4 -2
  59. package/i18n/de-DE.properties +2 -2
  60. package/i18n/en-AU.js +2 -0
  61. package/i18n/en-CA.js +2 -0
  62. package/i18n/en-GB.js +2 -0
  63. package/i18n/en-US.js +2 -0
  64. package/i18n/en-US.properties +4 -0
  65. package/i18n/en-x-pseudo.js +2 -0
  66. package/i18n/es-419.js +4 -2
  67. package/i18n/es-419.properties +2 -2
  68. package/i18n/es-ES.js +4 -2
  69. package/i18n/es-ES.properties +2 -2
  70. package/i18n/fi-FI.js +4 -2
  71. package/i18n/fi-FI.properties +2 -2
  72. package/i18n/fr-CA.js +4 -2
  73. package/i18n/fr-CA.properties +2 -2
  74. package/i18n/fr-FR.js +4 -2
  75. package/i18n/fr-FR.properties +2 -2
  76. package/i18n/hi-IN.js +4 -2
  77. package/i18n/hi-IN.properties +2 -2
  78. package/i18n/it-IT.js +4 -2
  79. package/i18n/it-IT.properties +2 -2
  80. package/i18n/ja-JP.js +2 -0
  81. package/i18n/ko-KR.js +4 -2
  82. package/i18n/ko-KR.properties +2 -2
  83. package/i18n/nb-NO.js +4 -2
  84. package/i18n/nb-NO.properties +2 -2
  85. package/i18n/nl-NL.js +4 -2
  86. package/i18n/nl-NL.properties +2 -2
  87. package/i18n/pl-PL.js +4 -2
  88. package/i18n/pl-PL.properties +2 -2
  89. package/i18n/pt-BR.js +4 -2
  90. package/i18n/pt-BR.properties +2 -2
  91. package/i18n/ru-RU.js +4 -2
  92. package/i18n/ru-RU.properties +2 -2
  93. package/i18n/sv-SE.js +4 -2
  94. package/i18n/sv-SE.properties +2 -2
  95. package/i18n/tr-TR.js +4 -2
  96. package/i18n/tr-TR.properties +2 -2
  97. package/i18n/zh-CN.js +4 -2
  98. package/i18n/zh-CN.properties +2 -2
  99. package/i18n/zh-TW.js +4 -2
  100. package/i18n/zh-TW.properties +2 -2
  101. package/package.json +1 -1
  102. package/src/elements/common/__tests__/withBlueprintModernization.test.tsx +91 -0
  103. package/src/elements/common/withBlueprintModernization.tsx +24 -0
  104. package/src/elements/content-explorer/ContentExplorer.tsx +4 -1
  105. package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +6 -0
  106. package/src/elements/content-picker/ContentPicker.js +4 -1
  107. package/src/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +6 -0
  108. package/src/elements/content-preview/ContentPreview.js +3 -0
  109. package/src/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +7 -1
  110. package/src/elements/content-sharing/ContentSharing.js +4 -1
  111. package/src/elements/content-sidebar/ContentSidebar.js +3 -0
  112. package/src/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.tsx +6 -0
  113. package/src/elements/content-uploader/ContentUploader.tsx +3 -1
  114. package/src/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +6 -0
  115. package/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.scss +29 -0
  116. package/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.tsx +55 -0
  117. package/src/features/classification/applied-by-ai-classification-reason/__tests__/AppliedByAiClassificationReason.test.tsx +105 -0
  118. package/src/features/classification/applied-by-ai-classification-reason/messages.ts +18 -0
  119. package/src/features/classification/types.ts +7 -0
@@ -24,6 +24,11 @@ export const basic = {
24
24
  });
25
25
  }
26
26
  };
27
+ export const Modernization = {
28
+ args: {
29
+ enableModernizedComponents: true
30
+ }
31
+ };
27
32
  export const openExistingFolder = {
28
33
  play: async ({
29
34
  canvasElement
@@ -28,6 +28,12 @@ export const basic = {
28
28
  },
29
29
  };
30
30
 
31
+ export const Modernization = {
32
+ args: {
33
+ enableModernizedComponents: true,
34
+ },
35
+ };
36
+
31
37
  export const openExistingFolder = {
32
38
  play: async ({ canvasElement }) => {
33
39
  const canvas = within(canvasElement);
@@ -1 +1 @@
1
- {"version":3,"file":"ContentExplorer-visual.stories.js","names":["expect","screen","userEvent","waitFor","within","http","HttpResponse","ContentExplorer","mockEmptyRootFolder","mockRootFolder","mockSubfolder","mockRecentItems","mockUserRequest","DEFAULT_HOSTNAME_API","basic","play","canvasElement","canvas","folder","findByText","toBeInTheDocument","getByText","openExistingFolder","subFolder","click","openCreateFolderDialog","addButton","findByRole","name","dropdown","newFolderButton","closeCreateFolderDialog","cancelButton","queryByText","not","defaultHandlers","get","json","status","emptyState","args","rootFolderId","parameters","msw","handlers","url","response","errorEmptyState","withTheming","title","component","features","global","FEATURE_FLAGS","FOLDER_ID","token","TOKEN"],"sources":["../../../../../src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js"],"sourcesContent":["import { expect, screen, userEvent, waitFor, within } from 'storybook/test';\nimport { http, HttpResponse } from 'msw';\nimport ContentExplorer from '../../ContentExplorer';\nimport { mockEmptyRootFolder, mockRootFolder } from '../../../common/__mocks__/mockRootFolder';\nimport mockSubfolder from '../../../common/__mocks__/mockSubfolder';\nimport mockRecentItems from '../../../common/__mocks__/mockRecentItems';\nimport { mockUserRequest } from '../../../common/__mocks__/mockRequests';\n\nimport { DEFAULT_HOSTNAME_API } from '../../../../constants';\n\nexport const basic = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(async () => {\n const folder = await canvas.findByText('An Ordered Folder');\n expect(folder).toBeInTheDocument();\n expect(canvas.getByText('Apr 16, 2019 by Preview')).toBeInTheDocument();\n\n expect(canvas.getByText('Archive')).toBeInTheDocument();\n expect(canvas.getByText('Dec 16, 2020 by Preview')).toBeInTheDocument();\n\n expect(canvas.getByText('Archived Folder')).toBeInTheDocument();\n expect(canvas.getByText('Dec 17, 2020 by Preview')).toBeInTheDocument();\n\n expect(canvas.getByText('Book Sample.pdf')).toBeInTheDocument();\n expect(canvas.getByText('Dec 8, 2022 by Preview')).toBeInTheDocument();\n });\n },\n};\n\nexport const openExistingFolder = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const subFolder = await canvas.findByText('An Ordered Folder');\n await userEvent.click(subFolder);\n\n expect(await canvas.findByText('Audio.mp3')).toBeInTheDocument();\n },\n};\n\nexport const openCreateFolderDialog = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addButton = await canvas.findByRole('button', { name: 'Add' });\n await userEvent.click(addButton);\n\n const dropdown = await screen.findByRole('menu');\n const newFolderButton = await within(dropdown).findByRole('menuitem', { name: 'New Folder' });\n expect(newFolderButton).toBeInTheDocument();\n await userEvent.click(newFolderButton);\n\n expect(await screen.findByText('Please enter a name.')).toBeInTheDocument();\n },\n};\n\nexport const closeCreateFolderDialog = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addButton = await canvas.findByRole('button', { name: 'Add' });\n await userEvent.click(addButton);\n\n const dropdown = await screen.findByRole('menu');\n const newFolderButton = await within(dropdown).findByRole('menuitem', { name: 'New Folder' });\n expect(newFolderButton).toBeInTheDocument();\n await userEvent.click(newFolderButton);\n\n expect(await screen.findByText('Please enter a name.')).toBeInTheDocument();\n\n const cancelButton = screen.getByText('Cancel');\n await userEvent.click(cancelButton);\n\n await waitFor(() => {\n expect(screen.queryByText('Please enter a name.')).not.toBeInTheDocument();\n });\n },\n};\n\n// export const openDeleteConfirmationDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const deleteButton = await screen.findByRole('menuitem', { name: 'Delete' });\n// await userEvent.hover(deleteButton);\n// await userEvent.click(deleteButton);\n// });\n\n// expect(\n// await screen.findByText('Are you sure you want to delete An Ordered Folder and all its contents?'),\n// ).toBeInTheDocument();\n// },\n// };\n\n// export const closeDeleteConfirmationDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const deleteButton = await screen.findByRole('menuitem', { name: 'Delete' });\n// await userEvent.hover(deleteButton);\n// await userEvent.click(deleteButton);\n// });\n\n// expect(\n// await screen.findByText('Are you sure you want to delete An Ordered Folder and all its contents?'),\n// ).toBeInTheDocument();\n\n// const cancelButton = screen.getByText('Cancel');\n// await userEvent.click(cancelButton);\n\n// await waitFor(() => {\n// expect(\n// screen.queryByText('Are you sure you want to delete An Ordered Folder and all its contents?'),\n// ).not.toBeInTheDocument();\n// });\n// },\n// };\n\n// export const openRenameDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const renameButton = await screen.findByRole('menuitem', { name: 'Rename' });\n// await userEvent.hover(renameButton);\n// await userEvent.click(renameButton);\n// });\n\n// expect(await screen.findByText('Please enter a new name for An Ordered Folder:')).toBeInTheDocument();\n// },\n// };\n\n// export const closeRenameDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const renameButton = await screen.findByRole('menuitem', { name: 'Rename' });\n// await userEvent.hover(renameButton);\n// await userEvent.click(renameButton);\n// });\n\n// expect(await screen.findByText('Please enter a new name for An Ordered Folder:')).toBeInTheDocument();\n// const cancelButton = screen.getByText('Cancel');\n// await userEvent.click(cancelButton);\n\n// await waitFor(() => {\n// expect(screen.queryByText('Please enter a new name for An Ordered Folder:')).not.toBeInTheDocument();\n// });\n// },\n// };\n\n// export const openShareDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const shareButton = await screen.findByRole('menuitem', { name: 'Share' });\n// await userEvent.hover(shareButton);\n// await userEvent.click(shareButton);\n// });\n\n// expect(await screen.findByText('Shared Link:')).toBeInTheDocument();\n\n// const inputElement = screen.getByDisplayValue('https://example.com/share-link');\n// expect(inputElement).toBeInTheDocument();\n// },\n// };\n\n// export const closeShareDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.click(moreOptionsButton[0]);\n\n// const shareButton = await screen.findByRole('menuitem', { name: 'Share' });\n// await userEvent.hover(shareButton);\n// await userEvent.click(shareButton);\n// });\n\n// expect(await screen.findByText('Shared Link:')).toBeInTheDocument();\n// const closeButton = screen.getByText('Close');\n// await userEvent.click(closeButton);\n\n// await waitFor(() => {\n// expect(screen.queryByText('Shared Link:')).not.toBeInTheDocument();\n// });\n// const inputElement = screen.queryByDisplayValue('https://example.com/share-link');\n// expect(inputElement).not.toBeInTheDocument();\n// },\n// };\n\nconst defaultHandlers = [\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/69083462919`, () => {\n return HttpResponse.json(mockRootFolder);\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/73426618530`, () => {\n return HttpResponse.json(mockSubfolder);\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/74729718131`, () => {\n return HttpResponse.json(mockEmptyRootFolder);\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/191354690948`, () => {\n return new HttpResponse('Internal Server Error', { status: 500 });\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/recent_items`, () => {\n return HttpResponse.json(mockRecentItems);\n }),\n];\n\nexport const emptyState = {\n args: {\n rootFolderId: '74729718131',\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultHandlers,\n http.get(mockUserRequest.url, () => {\n return HttpResponse.json(mockUserRequest.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(() => {\n expect(canvas.getByText('There are no items in this folder.')).toBeInTheDocument();\n });\n },\n};\n\nexport const errorEmptyState = {\n args: {\n rootFolderId: '191354690948',\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(() => {\n expect(canvas.getByText('A network error has occurred while trying to load.')).toBeInTheDocument();\n });\n },\n};\n\nexport const withTheming = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(async () => {\n expect(await canvas.getByText('Preview Test Folder')).toBeInTheDocument();\n });\n },\n};\n\nexport default {\n title: 'Elements/ContentExplorer/tests/ContentExplorer/visual',\n component: ContentExplorer,\n args: {\n features: global.FEATURE_FLAGS,\n rootFolderId: global.FOLDER_ID,\n token: global.TOKEN,\n },\n parameters: {\n msw: {\n handlers: defaultHandlers,\n },\n },\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentExplorer-visual.stories.js","names":["expect","screen","userEvent","waitFor","within","http","HttpResponse","ContentExplorer","mockEmptyRootFolder","mockRootFolder","mockSubfolder","mockRecentItems","mockUserRequest","DEFAULT_HOSTNAME_API","basic","play","canvasElement","canvas","folder","findByText","toBeInTheDocument","getByText","Modernization","args","enableModernizedComponents","openExistingFolder","subFolder","click","openCreateFolderDialog","addButton","findByRole","name","dropdown","newFolderButton","closeCreateFolderDialog","cancelButton","queryByText","not","defaultHandlers","get","json","status","emptyState","rootFolderId","parameters","msw","handlers","url","response","errorEmptyState","withTheming","title","component","features","global","FEATURE_FLAGS","FOLDER_ID","token","TOKEN"],"sources":["../../../../../src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js"],"sourcesContent":["import { expect, screen, userEvent, waitFor, within } from 'storybook/test';\nimport { http, HttpResponse } from 'msw';\nimport ContentExplorer from '../../ContentExplorer';\nimport { mockEmptyRootFolder, mockRootFolder } from '../../../common/__mocks__/mockRootFolder';\nimport mockSubfolder from '../../../common/__mocks__/mockSubfolder';\nimport mockRecentItems from '../../../common/__mocks__/mockRecentItems';\nimport { mockUserRequest } from '../../../common/__mocks__/mockRequests';\n\nimport { DEFAULT_HOSTNAME_API } from '../../../../constants';\n\nexport const basic = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(async () => {\n const folder = await canvas.findByText('An Ordered Folder');\n expect(folder).toBeInTheDocument();\n expect(canvas.getByText('Apr 16, 2019 by Preview')).toBeInTheDocument();\n\n expect(canvas.getByText('Archive')).toBeInTheDocument();\n expect(canvas.getByText('Dec 16, 2020 by Preview')).toBeInTheDocument();\n\n expect(canvas.getByText('Archived Folder')).toBeInTheDocument();\n expect(canvas.getByText('Dec 17, 2020 by Preview')).toBeInTheDocument();\n\n expect(canvas.getByText('Book Sample.pdf')).toBeInTheDocument();\n expect(canvas.getByText('Dec 8, 2022 by Preview')).toBeInTheDocument();\n });\n },\n};\n\nexport const Modernization = {\n args: {\n enableModernizedComponents: true,\n },\n};\n\nexport const openExistingFolder = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const subFolder = await canvas.findByText('An Ordered Folder');\n await userEvent.click(subFolder);\n\n expect(await canvas.findByText('Audio.mp3')).toBeInTheDocument();\n },\n};\n\nexport const openCreateFolderDialog = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addButton = await canvas.findByRole('button', { name: 'Add' });\n await userEvent.click(addButton);\n\n const dropdown = await screen.findByRole('menu');\n const newFolderButton = await within(dropdown).findByRole('menuitem', { name: 'New Folder' });\n expect(newFolderButton).toBeInTheDocument();\n await userEvent.click(newFolderButton);\n\n expect(await screen.findByText('Please enter a name.')).toBeInTheDocument();\n },\n};\n\nexport const closeCreateFolderDialog = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addButton = await canvas.findByRole('button', { name: 'Add' });\n await userEvent.click(addButton);\n\n const dropdown = await screen.findByRole('menu');\n const newFolderButton = await within(dropdown).findByRole('menuitem', { name: 'New Folder' });\n expect(newFolderButton).toBeInTheDocument();\n await userEvent.click(newFolderButton);\n\n expect(await screen.findByText('Please enter a name.')).toBeInTheDocument();\n\n const cancelButton = screen.getByText('Cancel');\n await userEvent.click(cancelButton);\n\n await waitFor(() => {\n expect(screen.queryByText('Please enter a name.')).not.toBeInTheDocument();\n });\n },\n};\n\n// export const openDeleteConfirmationDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const deleteButton = await screen.findByRole('menuitem', { name: 'Delete' });\n// await userEvent.hover(deleteButton);\n// await userEvent.click(deleteButton);\n// });\n\n// expect(\n// await screen.findByText('Are you sure you want to delete An Ordered Folder and all its contents?'),\n// ).toBeInTheDocument();\n// },\n// };\n\n// export const closeDeleteConfirmationDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const deleteButton = await screen.findByRole('menuitem', { name: 'Delete' });\n// await userEvent.hover(deleteButton);\n// await userEvent.click(deleteButton);\n// });\n\n// expect(\n// await screen.findByText('Are you sure you want to delete An Ordered Folder and all its contents?'),\n// ).toBeInTheDocument();\n\n// const cancelButton = screen.getByText('Cancel');\n// await userEvent.click(cancelButton);\n\n// await waitFor(() => {\n// expect(\n// screen.queryByText('Are you sure you want to delete An Ordered Folder and all its contents?'),\n// ).not.toBeInTheDocument();\n// });\n// },\n// };\n\n// export const openRenameDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const renameButton = await screen.findByRole('menuitem', { name: 'Rename' });\n// await userEvent.hover(renameButton);\n// await userEvent.click(renameButton);\n// });\n\n// expect(await screen.findByText('Please enter a new name for An Ordered Folder:')).toBeInTheDocument();\n// },\n// };\n\n// export const closeRenameDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const renameButton = await screen.findByRole('menuitem', { name: 'Rename' });\n// await userEvent.hover(renameButton);\n// await userEvent.click(renameButton);\n// });\n\n// expect(await screen.findByText('Please enter a new name for An Ordered Folder:')).toBeInTheDocument();\n// const cancelButton = screen.getByText('Cancel');\n// await userEvent.click(cancelButton);\n\n// await waitFor(() => {\n// expect(screen.queryByText('Please enter a new name for An Ordered Folder:')).not.toBeInTheDocument();\n// });\n// },\n// };\n\n// export const openShareDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.hover(moreOptionsButton[0]);\n// await userEvent.click(moreOptionsButton[0]);\n\n// const shareButton = await screen.findByRole('menuitem', { name: 'Share' });\n// await userEvent.hover(shareButton);\n// await userEvent.click(shareButton);\n// });\n\n// expect(await screen.findByText('Shared Link:')).toBeInTheDocument();\n\n// const inputElement = screen.getByDisplayValue('https://example.com/share-link');\n// expect(inputElement).toBeInTheDocument();\n// },\n// };\n\n// export const closeShareDialog = {\n// play: async ({ canvasElement }) => {\n// const canvas = within(canvasElement);\n\n// await waitFor(async () => {\n// await canvas.findByRole('grid', { name: 'List view' });\n\n// const moreOptionsButton = await canvas.findAllByRole('button', { name: 'More options' });\n// await userEvent.click(moreOptionsButton[0]);\n\n// const shareButton = await screen.findByRole('menuitem', { name: 'Share' });\n// await userEvent.hover(shareButton);\n// await userEvent.click(shareButton);\n// });\n\n// expect(await screen.findByText('Shared Link:')).toBeInTheDocument();\n// const closeButton = screen.getByText('Close');\n// await userEvent.click(closeButton);\n\n// await waitFor(() => {\n// expect(screen.queryByText('Shared Link:')).not.toBeInTheDocument();\n// });\n// const inputElement = screen.queryByDisplayValue('https://example.com/share-link');\n// expect(inputElement).not.toBeInTheDocument();\n// },\n// };\n\nconst defaultHandlers = [\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/69083462919`, () => {\n return HttpResponse.json(mockRootFolder);\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/73426618530`, () => {\n return HttpResponse.json(mockSubfolder);\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/74729718131`, () => {\n return HttpResponse.json(mockEmptyRootFolder);\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/folders/191354690948`, () => {\n return new HttpResponse('Internal Server Error', { status: 500 });\n }),\n http.get(`${DEFAULT_HOSTNAME_API}/2.0/recent_items`, () => {\n return HttpResponse.json(mockRecentItems);\n }),\n];\n\nexport const emptyState = {\n args: {\n rootFolderId: '74729718131',\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultHandlers,\n http.get(mockUserRequest.url, () => {\n return HttpResponse.json(mockUserRequest.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(() => {\n expect(canvas.getByText('There are no items in this folder.')).toBeInTheDocument();\n });\n },\n};\n\nexport const errorEmptyState = {\n args: {\n rootFolderId: '191354690948',\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(() => {\n expect(canvas.getByText('A network error has occurred while trying to load.')).toBeInTheDocument();\n });\n },\n};\n\nexport const withTheming = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(async () => {\n expect(await canvas.getByText('Preview Test Folder')).toBeInTheDocument();\n });\n },\n};\n\nexport default {\n title: 'Elements/ContentExplorer/tests/ContentExplorer/visual',\n component: ContentExplorer,\n args: {\n features: global.FEATURE_FLAGS,\n rootFolderId: global.FOLDER_ID,\n token: global.TOKEN,\n },\n parameters: {\n msw: {\n handlers: defaultHandlers,\n },\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,7 @@ import 'regenerator-runtime/runtime';
14
14
  import React, { Component } from 'react';
15
15
  import classNames from 'classnames';
16
16
  import debounce from 'lodash/debounce';
17
+ import flow from 'lodash/flow';
17
18
  import getProp from 'lodash/get';
18
19
  import uniqueid from 'lodash/uniqueId';
19
20
  import noop from 'lodash/noop';
@@ -23,6 +24,8 @@ import UploadDialog from '../common/upload-dialog';
23
24
  import CreateFolderDialog from '../common/create-folder-dialog';
24
25
  import Internationalize from '../common/Internationalize';
25
26
  import makeResponsive from '../common/makeResponsive';
27
+ // $FlowFixMe
28
+ import { withBlueprintModernization } from '../common/withBlueprintModernization';
26
29
  // $FlowFixMe TypeScript file
27
30
  import ThemingStyles from '../common/theming';
28
31
  import Pagination from '../../features/pagination';
@@ -1271,5 +1274,5 @@ _defineProperty(ContentPicker, "defaultProps", {
1271
1274
  isPaginationVisible: true
1272
1275
  });
1273
1276
  export { ContentPicker as ContentPickerComponent };
1274
- export default makeResponsive(ContentPicker);
1277
+ export default flow([makeResponsive, withBlueprintModernization])(ContentPicker);
1275
1278
  //# sourceMappingURL=ContentPicker.js.map
@@ -9,6 +9,7 @@ import React, { Component } from 'react';
9
9
  import type { Node } from 'react';
10
10
  import classNames from 'classnames';
11
11
  import debounce from 'lodash/debounce';
12
+ import flow from 'lodash/flow';
12
13
  import getProp from 'lodash/get';
13
14
  import uniqueid from 'lodash/uniqueId';
14
15
  import noop from 'lodash/noop';
@@ -18,6 +19,8 @@ import UploadDialog from '../common/upload-dialog';
18
19
  import CreateFolderDialog from '../common/create-folder-dialog';
19
20
  import Internationalize from '../common/Internationalize';
20
21
  import makeResponsive from '../common/makeResponsive';
22
+ // $FlowFixMe
23
+ import { withBlueprintModernization } from '../common/withBlueprintModernization';
21
24
  // $FlowFixMe TypeScript file
22
25
  import ThemingStyles from '../common/theming';
23
26
  import Pagination from '../../features/pagination';
@@ -1345,4 +1348,4 @@ class ContentPicker extends Component<Props, State> {
1345
1348
  }
1346
1349
 
1347
1350
  export { ContentPicker as ContentPickerComponent };
1348
- export default makeResponsive(ContentPicker);
1351
+ export default flow([makeResponsive, withBlueprintModernization])(ContentPicker);
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPicker.js","names":["React","Component","classNames","debounce","getProp","uniqueid","noop","Header","SubHeader","UploadDialog","CreateFolderDialog","Internationalize","makeResponsive","ThemingStyles","Pagination","isFocusableElement","isInputElement","focus","API","Content","Footer","CLIENT_NAME_CONTENT_PICKER","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","DEFAULT_ROOT","DEFAULT_SEARCH_DEBOUNCE","DEFAULT_VIEW_FILES","DEFAULT_VIEW_RECENTS","ERROR_CODE_ITEM_NAME_INVALID","ERROR_CODE_ITEM_NAME_TOO_LONG","FIELD_NAME","FIELD_PERMISSIONS_CAN_SHARE","FIELD_SHARED_LINK","SORT_ASC","TYPE_FILE","TYPE_FOLDER","TYPE_WEBLINK","TYPED_ID_FOLDER_PREFIX","VIEW_ERROR","VIEW_FOLDER","VIEW_RECENTS","VIEW_SEARCH","VIEW_SELECTED","FILE_SHARED_LINK_FIELDS_TO_FETCH","defaultType","ContentPicker","constructor","props","_defineProperty","selected","state","Object","keys","map","key","clone","_objectSpread","onChoose","results","getSelectedItems","forEach","onCancel","deleteSelectedKeys","setState","currentCollection","id","view","searchQuery","fetchFolder","showRecents","search","showSelected","Error","error","code","console","item","type","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","length","offset","firstLoad","rootElement","currentUnloadedCollection","api","getFolderAPI","getFolder","collection","fetchFolderSuccessCallback","errorCallback","forceFetch","percentLoaded","items","getCache","get","finishNavigation","_extends","query","getSearchAPI","searchSuccessCallback","trimmedQuery","debouncedSearch","cancel","permissions","canUpload","can_upload","canUploadPermission","isUploadModalOpen","createFolderCallback","name","isCreateFolderModalOpen","canCreateNewFolder","errorCode","isLoading","create","forceSharedLink","canSetShareAccess","selectableType","maxSelectable","indexOf","selectedKeys","selectedCount","hasHitSelectionLimit","isSingleFileSelection","cacheKey","getAPI","getCacheKey","existing","existingFromCache","existInSelected","prior","fetchSharedLinkInfo","focusedRow","findIndex","i","getFolderFields","handleSharedLinkSuccess","fields","getFileAPI","getFile","getWebLinkAPI","getWeblink","updatedItem","share","undefined","sharedItem","updateItemInCollection","select","access","can_set_share_access","newState","collectionItem","refreshCollection","table","event","target","toLowerCase","preventDefault","globalModifier","choose","upload","createFolder","newOffset","apiHost","clientName","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","rootName","clearCache","destroy","componentWillUnmount","componentDidMount","defaultView","currentFolderId","document","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","prevState","autoFocus","activeElement","clearSelectedItemsOnNavigation","commonState","closeModals","recentsSuccessCallback","getRecentsAPI","recents","render","messages","logoUrl","contentUploaderProps","extensions","isHeaderLogoVisible","isPaginationVisible","isSmall","className","measureRef","chooseButtonLabel","cancelButtonLabel","renderCustomActionButtons","showSelectedButton","theme","itemActions","totalCount","isSingleSelect","allowUpload","allowCreate","styleClassName","createElement","ref","onKeyDown","tabIndex","onSearch","rootId","onUpload","onCreate","onItemClick","onSortChange","sort","extensionsWhitelist","tableRef","onItemSelect","onFocusChange","onShareAccessChange","changeShareAccess","selectedItems","onSelectedClick","onOffsetChange","paginate","pageSize","isOpen","onClose","uploadSuccessHandler","parentElement","Infinity","ContentPickerComponent"],"sources":["../../../src/elements/content-picker/ContentPicker.js"],"sourcesContent":["/**\n * @flow\n * @file Content Picker Component\n * @author Box\n */\n\nimport 'regenerator-runtime/runtime';\nimport React, { Component } from 'react';\nimport type { Node } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport getProp from 'lodash/get';\nimport uniqueid from 'lodash/uniqueId';\nimport noop from 'lodash/noop';\nimport Header from '../common/header';\nimport SubHeader from '../common/sub-header/SubHeader';\nimport UploadDialog from '../common/upload-dialog';\nimport CreateFolderDialog from '../common/create-folder-dialog';\nimport Internationalize from '../common/Internationalize';\nimport makeResponsive from '../common/makeResponsive';\n// $FlowFixMe TypeScript file\nimport ThemingStyles from '../common/theming';\nimport Pagination from '../../features/pagination';\nimport { isFocusableElement, isInputElement, focus } from '../../utils/dom';\nimport API from '../../api';\nimport Content from './Content';\nimport Footer from './Footer';\nimport {\n CLIENT_NAME_CONTENT_PICKER,\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_UPLOAD,\n DEFAULT_PAGE_NUMBER,\n DEFAULT_PAGE_SIZE,\n DEFAULT_ROOT,\n DEFAULT_SEARCH_DEBOUNCE,\n DEFAULT_VIEW_FILES,\n DEFAULT_VIEW_RECENTS,\n ERROR_CODE_ITEM_NAME_INVALID,\n ERROR_CODE_ITEM_NAME_TOO_LONG,\n FIELD_NAME,\n FIELD_PERMISSIONS_CAN_SHARE,\n FIELD_SHARED_LINK,\n SORT_ASC,\n TYPE_FILE,\n TYPE_FOLDER,\n TYPE_WEBLINK,\n TYPED_ID_FOLDER_PREFIX,\n VIEW_ERROR,\n VIEW_FOLDER,\n VIEW_RECENTS,\n VIEW_SEARCH,\n VIEW_SELECTED,\n} from '../../constants';\nimport { FILE_SHARED_LINK_FIELDS_TO_FETCH } from '../../utils/fields';\n// $FlowFixMe TypeScript file\nimport type { Theme } from '../common/theming';\nimport type { ElementsXhrError } from '../../common/types/api';\nimport type {\n View,\n DefaultView,\n StringAnyMap,\n StringMap,\n SortBy,\n SortDirection,\n Token,\n Access,\n BoxItemPermission,\n BoxItem,\n Collection,\n} from '../../common/types/core';\n// $FlowFixMe TypeScript file\nimport type { ItemAction } from '../common/item';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport '../common/modal.scss';\nimport './ContentPicker.scss';\n\ntype Props = {\n apiHost: string,\n autoFocus: boolean,\n canCreateNewFolder: boolean,\n canSetShareAccess: boolean,\n canUpload: boolean,\n cancelButtonLabel?: string,\n chooseButtonLabel?: string,\n className: string,\n clearSelectedItemsOnNavigation: boolean,\n clientName: string,\n contentUploaderProps: ContentUploaderProps,\n currentFolderId?: string,\n defaultView: DefaultView,\n extensions: string[],\n initialPage: number,\n initialPageSize: number,\n isHeaderLogoVisible?: boolean,\n isLarge: boolean,\n isPaginationVisible?: boolean,\n isSmall: boolean,\n isTouch: boolean,\n itemActions?: ItemAction[],\n language?: string,\n logoUrl?: string,\n maxSelectable: number,\n measureRef?: Function,\n messages?: StringMap,\n onCancel: Function,\n onChoose: Function,\n renderCustomActionButtons?: ({\n onCancel: Function,\n onChoose: Function,\n selectedCount: number,\n selectedItems: BoxItem[],\n }) => Node,\n requestInterceptor?: Function,\n responseInterceptor?: Function,\n rootFolderId: string,\n sharedLink?: string,\n sharedLinkPassword?: string,\n showSelectedButton: boolean,\n sortBy: SortBy,\n sortDirection: SortDirection,\n theme?: Theme,\n token: Token,\n type: string,\n uploadHost: string,\n};\n\ntype State = {\n currentCollection: Collection,\n currentOffset: number,\n currentPageSize: number,\n errorCode: string,\n focusedRow: number,\n isCreateFolderModalOpen: boolean,\n isLoading: boolean,\n isUploadModalOpen: boolean,\n rootName: string,\n searchQuery: string,\n selected: { [string]: BoxItem },\n sortBy: SortBy,\n sortDirection: SortDirection,\n view: View,\n};\n\nconst defaultType = `${TYPE_FILE},${TYPE_WEBLINK}`;\n\nclass ContentPicker extends Component<Props, State> {\n id: string;\n\n api: API;\n\n state: State;\n\n props: Props;\n\n table: any;\n\n rootElement: HTMLElement;\n\n appElement: HTMLElement;\n\n globalModifier: boolean;\n\n firstLoad: boolean = true; // Keeps track of very 1st load\n\n static defaultProps = {\n type: defaultType,\n rootFolderId: DEFAULT_ROOT,\n onChoose: noop,\n onCancel: noop,\n initialPage: DEFAULT_PAGE_NUMBER,\n initialPageSize: DEFAULT_PAGE_SIZE,\n sortBy: FIELD_NAME,\n sortDirection: SORT_ASC,\n extensions: [],\n maxSelectable: Infinity,\n canUpload: true,\n canSetShareAccess: true,\n canCreateNewFolder: true,\n autoFocus: false,\n className: '',\n apiHost: DEFAULT_HOSTNAME_API,\n uploadHost: DEFAULT_HOSTNAME_UPLOAD,\n clientName: CLIENT_NAME_CONTENT_PICKER,\n defaultView: DEFAULT_VIEW_FILES,\n contentUploaderProps: {},\n showSelectedButton: true,\n clearSelectedItemsOnNavigation: false,\n isHeaderLogoVisible: true,\n isPaginationVisible: true,\n };\n\n /**\n * [constructor]\n *\n * @private\n * @return {ContentPicker}\n */\n constructor(props: Props) {\n super(props);\n\n const {\n apiHost,\n clientName,\n initialPage,\n initialPageSize,\n language,\n requestInterceptor,\n responseInterceptor,\n rootFolderId,\n sharedLink,\n sharedLinkPassword,\n sortBy,\n sortDirection,\n token,\n uploadHost,\n } = props;\n\n this.api = new API({\n apiHost,\n clientName,\n id: `${TYPED_ID_FOLDER_PREFIX}${rootFolderId}`,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n uploadHost,\n });\n\n this.id = uniqueid('bcp_');\n\n this.state = {\n sortBy,\n sortDirection,\n rootName: '',\n currentCollection: {},\n currentOffset: initialPageSize * (initialPage - 1),\n currentPageSize: initialPageSize,\n selected: {},\n searchQuery: '',\n view: VIEW_FOLDER,\n isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n focusedRow: 0,\n isLoading: false,\n errorCode: '',\n };\n }\n\n /**\n * Destroys api instances\n *\n * @private\n * @return {void}\n */\n clearCache(): void {\n this.api.destroy(true);\n }\n\n /**\n * Cleanup\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentWillUnmount() {\n this.clearCache();\n }\n\n /**\n * Fetches the root folder on load\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidMount() {\n const { defaultView, currentFolderId }: Props = this.props;\n this.rootElement = ((document.getElementById(this.id): any): HTMLElement);\n this.appElement = ((this.rootElement.firstElementChild: any): HTMLElement);\n\n if (defaultView === DEFAULT_VIEW_RECENTS) {\n this.showRecents();\n } else {\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Fetches the current folder if different\n * from what was already fetched before.\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidUpdate({ currentFolderId: prevFolderId }: Props, prevState: State): void {\n const { currentFolderId }: Props = this.props;\n const {\n currentCollection: { id },\n }: State = prevState;\n\n if (prevFolderId === currentFolderId) {\n return;\n }\n\n if (typeof currentFolderId === 'string' && id !== currentFolderId) {\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Gets selected items from state.\n * Clones values before returning so that\n * object references are broken. Also cleans\n * up the selected attribute since it was\n * added by the file picker.\n *\n * @private\n * @return {BoxItem[]}\n */\n getSelectedItems = (): BoxItem[] => {\n const { selected }: State = this.state;\n return Object.keys(selected).map(key => {\n const clone: BoxItem = { ...selected[key] };\n delete clone.selected;\n return clone;\n });\n };\n\n /**\n * Choose button action.\n *\n * @private\n * @fires choose\n * @return {void}\n */\n choose = (): void => {\n const { onChoose }: Props = this.props;\n const results = this.getSelectedItems();\n onChoose(results);\n };\n\n /**\n * Deletes selected keys off of selected items in state.\n *\n * @private\n * @return {void}\n */\n deleteSelectedKeys = (): void => {\n const { selected }: State = this.state;\n\n // Clear out the selected field\n Object.keys(selected).forEach(key => delete selected[key].selected);\n };\n\n /**\n * Cancel button action\n *\n * @private\n * @fires cancel\n * @return {void}\n */\n cancel = (): void => {\n const { onCancel }: Props = this.props;\n\n this.deleteSelectedKeys();\n\n // Reset the selected state\n this.setState({ selected: {} }, () => onCancel());\n };\n\n /**\n * Resets the percentLoaded in the collection\n * so that the loading bar starts showing\n *\n * @private\n * @return {Collection}\n */\n currentUnloadedCollection(): Collection {\n const { currentCollection }: State = this.state;\n return Object.assign(currentCollection, {\n percentLoaded: 0,\n });\n }\n\n /**\n * Refreshing the item collection depending\n * upon the view. Collection is gotten from cache.\n * Navigation event is prevented.\n *\n * @private\n * @return {void}\n */\n refreshCollection = (): void => {\n const {\n currentCollection: { id },\n view,\n searchQuery,\n }: State = this.state;\n if (view === VIEW_FOLDER && id) {\n this.fetchFolder(id, false);\n } else if (view === VIEW_RECENTS) {\n this.showRecents(false);\n } else if (view === VIEW_SEARCH && searchQuery) {\n this.search(searchQuery);\n } else if (view === VIEW_SELECTED) {\n this.showSelected();\n } else {\n throw new Error('Cannot refresh incompatible view!');\n }\n };\n\n /**\n * Network error callback\n *\n * @private\n * @param {Error} error error object\n * @return {void}\n */\n errorCallback = (error: ElementsXhrError, code: string): void => {\n this.setState({ view: VIEW_ERROR });\n /* eslint-disable no-console */\n console.error(error, code);\n /* eslint-enable no-console */\n };\n\n /**\n * Action performed when clicking on an item\n *\n * @private\n * @param {Object|string} item - the clicked box item\n * @return {void}\n */\n onItemClick = (item: BoxItem | string): void => {\n // If the id was passed in, just use that\n if (typeof item === 'string') {\n this.fetchFolder(item);\n return;\n }\n\n // If the item was passed in\n const { id, type }: BoxItem = item;\n if (type === TYPE_FOLDER) {\n this.fetchFolder(id);\n }\n };\n\n /**\n * Focuses the grid\n *\n * @private\n * @return {void}\n */\n finishNavigation(): void {\n const { autoFocus }: Props = this.props;\n const {\n currentCollection: { percentLoaded },\n }: State = this.state;\n\n // If loading for the very first time, only allow focus if autoFocus is true\n if (this.firstLoad && !autoFocus) {\n this.firstLoad = false;\n return;\n }\n\n // Don't focus the grid until its loaded and user is not already on an interactable element\n if (percentLoaded === 100 && !isFocusableElement(document.activeElement)) {\n focus(this.rootElement, '.bcp-item-row');\n this.setState({ focusedRow: 0 });\n }\n\n this.firstLoad = false;\n }\n\n /**\n * Folder fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} triggerNavigationEvent - To focus the grid\n * @return {void}\n */\n fetchFolderSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const { clearSelectedItemsOnNavigation, rootFolderId }: Props = this.props;\n const { id, name }: Collection = collection;\n\n const commonState = {\n currentCollection: collection,\n rootName: id === rootFolderId ? name : '',\n };\n\n // New folder state\n const newState = clearSelectedItemsOnNavigation ? { ...commonState, selected: {} } : commonState;\n\n // Close any open modals\n this.closeModals();\n\n // Deletes selected keys\n if (clearSelectedItemsOnNavigation) {\n this.deleteSelectedKeys();\n }\n\n if (triggerNavigationEvent) {\n // Fire folder navigation event\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\n }\n }\n\n /**\n * Fetches a folder, defaults to fetching root folder\n *\n * @private\n * @param {string|void} [id] folder id\n * @param {Boolean|void} [triggerNavigationEvent] - To focus the grid\n * @return {void}\n */\n fetchFolder = (id?: string, triggerNavigationEvent?: boolean = true): void => {\n const { rootFolderId }: Props = this.props;\n const {\n currentCollection: { id: currentId },\n currentOffset,\n currentPageSize: limit,\n searchQuery = '',\n sortBy,\n sortDirection,\n }: State = this.state;\n const folderId: string = typeof id === 'string' ? id : rootFolderId;\n const hasFolderChanged = currentId && currentId !== folderId;\n const hasSearchQuery = !!searchQuery.trim().length;\n const offset = hasFolderChanged || hasSearchQuery ? 0 : currentOffset; // Reset offset on folder or mode change\n\n // If we are navigating around, aka not first load\n // then reset the focus to the root so that after\n // the collection loads the activeElement is not the\n // button that was clicked to fetch the folder\n if (!this.firstLoad) {\n this.rootElement.focus();\n }\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_FOLDER,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: offset,\n });\n\n // Fetch the folder using folder API\n this.api.getFolderAPI().getFolder(\n folderId,\n limit,\n offset,\n sortBy,\n sortDirection,\n (collection: Collection) => {\n this.fetchFolderSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { forceFetch: true },\n );\n };\n\n /**\n * Recents fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n recentsSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const newState = { currentCollection: collection };\n if (triggerNavigationEvent) {\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\n }\n }\n\n /**\n * Shows recents.\n * We always try to force fetch recents.\n *\n * @private\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n showRecents(triggerNavigationEvent: boolean = true): void {\n const { rootFolderId }: Props = this.props;\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_RECENTS,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: 0,\n });\n\n // Fetch the folder using folder API\n this.api.getRecentsAPI().recents(\n rootFolderId,\n (collection: Collection) => {\n this.recentsSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { forceFetch: true },\n );\n }\n\n /**\n * Shows the selected items\n *\n * @private\n * @return {void}\n */\n showSelected = (): void => {\n const { selected, sortBy, sortDirection }: State = this.state;\n this.setState(\n {\n searchQuery: '',\n view: VIEW_SELECTED,\n currentCollection: {\n sortBy,\n sortDirection,\n percentLoaded: 100,\n items: Object.keys(selected).map(key => this.api.getCache().get(key)),\n },\n },\n this.finishNavigation,\n );\n };\n\n /**\n * Search success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @return {void}\n */\n searchSuccessCallback = (collection: Collection): void => {\n const { currentCollection }: State = this.state;\n this.setState({\n currentCollection: Object.assign(currentCollection, collection),\n });\n };\n\n /**\n * Debounced searching\n *\n * @private\n * @param {string} id folder id\n * @param {string} query search string\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n debouncedSearch: Function = debounce((id: string, query: string): void => {\n const { currentOffset, currentPageSize }: State = this.state;\n\n this.api\n .getSearchAPI()\n .search(id, query, currentPageSize, currentOffset, this.searchSuccessCallback, this.errorCallback, {\n forceFetch: true,\n });\n }, DEFAULT_SEARCH_DEBOUNCE);\n\n /**\n * Searches\n *\n * @private\n * @param {string} query search string\n * @return {void}\n */\n search = (query: string): void => {\n const { rootFolderId }: Props = this.props;\n const {\n currentCollection: { id },\n currentOffset,\n searchQuery,\n }: State = this.state;\n const folderId = typeof id === 'string' ? id : rootFolderId;\n const trimmedQuery: string = query.trim();\n\n if (!query) {\n // Cancel the debounce so we don't search on a previous query\n this.debouncedSearch.cancel();\n\n // Query was cleared out, load the prior folder\n // The prior folder is always the parent folder for search\n this.setState({ currentOffset: 0 }, () => {\n this.fetchFolder(folderId, false);\n });\n\n return;\n }\n\n if (!trimmedQuery) {\n // Query now only has bunch of spaces\n // do nothing and but update prior state\n this.setState({\n searchQuery: query,\n });\n return;\n }\n\n this.setState({\n searchQuery: query,\n view: VIEW_SEARCH,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: trimmedQuery === searchQuery ? currentOffset : 0,\n });\n\n this.debouncedSearch(folderId, query);\n };\n\n /**\n * Uploads\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n upload = (): void => {\n const {\n currentCollection: { id, permissions },\n }: State = this.state;\n const { canUpload }: Props = this.props;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload: canUploadPermission }: BoxItemPermission = permissions;\n if (!canUpload || !canUploadPermission) {\n return;\n }\n\n this.setState({ isUploadModalOpen: true });\n };\n\n /**\n * Upload success handler\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n uploadSuccessHandler = (): void => {\n const {\n currentCollection: { id },\n }: State = this.state;\n this.fetchFolder(id, false);\n };\n\n /**\n * Creates a new folder\n *\n * @private\n * @return {void}\n */\n createFolder = (): void => {\n this.createFolderCallback();\n };\n\n /**\n * New folder callback\n *\n * @private\n * @param {string} name - folder name\n * @return {void}\n */\n createFolderCallback = (name?: string): void => {\n const { isCreateFolderModalOpen, currentCollection }: State = this.state;\n const { canCreateNewFolder }: Props = this.props;\n if (!canCreateNewFolder) {\n return;\n }\n\n const { id, permissions }: Collection = currentCollection;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload }: BoxItemPermission = permissions;\n if (!can_upload) {\n return;\n }\n\n if (!isCreateFolderModalOpen || !name) {\n this.setState({ isCreateFolderModalOpen: true, errorCode: '' });\n return;\n }\n\n if (!name.trim()) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_INVALID,\n isLoading: false,\n });\n return;\n }\n\n if (name.length > 255) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_TOO_LONG,\n isLoading: false,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getFolderAPI().create(\n id,\n name.trim(),\n () => {\n this.fetchFolder(id);\n },\n ({ code }) => {\n this.setState({\n errorCode: code,\n isLoading: false,\n });\n },\n );\n };\n\n /**\n * Selects or unselects an item\n *\n * @private\n * @param {Object} item file or folder object\n * @param {boolean} options.forceSharedLink Force a shared link if no link exists\n * @return {void}\n */\n select = (item: BoxItem, { forceSharedLink = true }: StringAnyMap = {}): void => {\n const { canSetShareAccess, type: selectableType, maxSelectable }: Props = this.props;\n const {\n view,\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n const { id, type }: BoxItem = item;\n\n if (!id || !type || selectableType.indexOf(type) === -1) {\n return;\n }\n\n const selectedKeys: Array<string> = Object.keys(selected);\n const selectedCount: number = selectedKeys.length;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable;\n const isSingleFileSelection: boolean = maxSelectable === 1;\n const cacheKey: string = this.api.getAPI(type).getCacheKey(id);\n const existing: BoxItem = selected[cacheKey];\n const existingFromCache: BoxItem = this.api.getCache().get(cacheKey);\n const existInSelected = selectedKeys.indexOf(cacheKey) !== -1;\n\n // Existing object could have mutated and we just need to update the\n // reference in the selected map. In that case treat it like a new selection.\n if (existing && existing === existingFromCache) {\n // We are selecting the same item that was already\n // selected. Unselect it in this case. Toggle case.\n delete existing.selected;\n delete selected[cacheKey];\n } else {\n // We are selecting a new item that was never\n // selected before. However if we are in a single\n // item selection mode, we should also unselect any\n // prior item that was selected.\n\n // Check if we hit the selection limit and if selection\n // is not already currently in the selected data structure.\n // Ignore when in single file selection mode.\n if (hasHitSelectionLimit && !isSingleFileSelection && !existInSelected) {\n return;\n }\n\n // Clear out the prior item for single file selection mode\n if (selectedCount > 0 && isSingleFileSelection) {\n const prior = selectedKeys[0]; // only one item\n delete selected[prior].selected;\n delete selected[prior];\n }\n\n // Select the new item\n item.selected = true;\n selected[cacheKey] = item;\n\n // If can set share access, fetch the shared link properties of the item\n // In the case where another item is selected, any in flight XHR will get\n // cancelled\n if (canSetShareAccess && forceSharedLink) {\n this.fetchSharedLinkInfo(item);\n }\n }\n\n const focusedRow = items.findIndex((i: BoxItem) => i.id === item.id);\n this.setState({ selected, focusedRow }, () => {\n if (view === VIEW_SELECTED) {\n // Need to refresh the selected view\n this.showSelected();\n }\n });\n };\n\n /**\n * Fetch the shared link info\n * @param {BoxItem} item - The item (folder, file, weblink)\n * @returns {void}\n */\n fetchSharedLinkInfo = (item: BoxItem): void => {\n const { id, type }: BoxItem = item;\n\n switch (type) {\n case TYPE_FOLDER:\n this.api.getFolderAPI().getFolderFields(id, this.handleSharedLinkSuccess, noop, {\n fields: FILE_SHARED_LINK_FIELDS_TO_FETCH,\n });\n break;\n case TYPE_FILE:\n this.api\n .getFileAPI()\n .getFile(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n case TYPE_WEBLINK:\n this.api\n .getWebLinkAPI()\n .getWeblink(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n default:\n throw new Error('Unknown Type');\n }\n };\n\n /**\n * Handles the shared link info by either creating a share link using enterprise defaults if\n * it does not already exist, otherwise update the item in the state currentCollection.\n *\n * @param {Object} item file or folder\n * @returns {void}\n */\n handleSharedLinkSuccess = async (item: BoxItem) => {\n const { selected } = this.state;\n const { id, type } = item;\n // $FlowFixMe\n const cacheKey = this.api.getAPI(type).getCacheKey(id);\n let updatedItem = item;\n\n // if there is no shared link, create one with enterprise default access\n if (!item[FIELD_SHARED_LINK] && getProp(item, FIELD_PERMISSIONS_CAN_SHARE, false)) {\n // $FlowFixMe\n await this.api.getAPI(item.type).share(item, undefined, (sharedItem: BoxItem) => {\n updatedItem = sharedItem;\n });\n }\n\n this.updateItemInCollection(updatedItem);\n if (updatedItem.selected && updatedItem !== selected[cacheKey]) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n };\n\n /**\n * Changes the share access of an item\n *\n * @private\n * @param {string} access share access\n * @param {Object} item file or folder object\n * @return {void}\n */\n changeShareAccess = (access: Access, item: BoxItem): void => {\n const { canSetShareAccess }: Props = this.props;\n if (!item || !canSetShareAccess) {\n return;\n }\n\n const { permissions, type }: BoxItem = item;\n if (!permissions || !type) {\n return;\n }\n\n const { can_set_share_access }: BoxItemPermission = permissions;\n if (!can_set_share_access) {\n return;\n }\n\n this.api.getAPI(type).share(item, access, (updatedItem: BoxItem) => {\n this.updateItemInCollection(updatedItem);\n if (item.selected) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n });\n };\n\n /**\n * Updates the BoxItem in the state's currentCollection\n *\n * @param {Object} item file or folder object\n * @returns {void}\n */\n updateItemInCollection = (item: BoxItem) => {\n const { currentCollection } = this.state;\n const { items = [] } = currentCollection;\n const newState = {\n currentCollection: {\n ...currentCollection,\n items: items.map(collectionItem => (collectionItem.id === item.id ? item : collectionItem)),\n },\n };\n this.setState(newState);\n };\n\n /**\n * Changes the sort by and sort direction\n *\n * @private\n * @param {string} sortBy - field to sorty by\n * @param {string} sortDirection - sort direction\n * @return {void}\n */\n sort = (sortBy: SortBy, sortDirection: SortDirection) => {\n const {\n currentCollection: { id },\n }: State = this.state;\n if (id) {\n this.setState({ sortBy, sortDirection }, this.refreshCollection);\n }\n };\n\n /**\n * Saves reference to table component\n *\n * @private\n * @param {Component} react component\n * @return {void}\n */\n tableRef = (table: React$Component<*, *>) => {\n this.table = table;\n };\n\n /**\n * Closes the modal dialogs that may be open\n *\n * @private\n * @return {void}\n */\n closeModals = (): void => {\n const { focusedRow }: State = this.state;\n\n this.setState({\n isLoading: false,\n isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n });\n\n const {\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n if (selected && items.length > 0) {\n focus(this.rootElement, `.bcp-item-row-${focusedRow}`);\n }\n };\n\n /**\n * Keyboard events\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n onKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {\n if (isInputElement(event.target)) {\n return;\n }\n\n const { rootFolderId }: Props = this.props;\n const key = event.key.toLowerCase();\n\n switch (key) {\n case '/':\n focus(this.rootElement, '.be-search input[type=\"search\"]', false);\n event.preventDefault();\n break;\n case 'arrowdown':\n focus(this.rootElement, '.bcp-item-row', false);\n this.setState({ focusedRow: 0 });\n event.preventDefault();\n break;\n case 'g':\n break;\n case 'b':\n if (this.globalModifier) {\n focus(this.rootElement, '.be-breadcrumb button', false);\n event.preventDefault();\n }\n\n break;\n case 'f':\n if (this.globalModifier) {\n this.fetchFolder(rootFolderId);\n event.preventDefault();\n }\n\n break;\n case 'c':\n if (this.globalModifier) {\n this.choose();\n event.preventDefault();\n }\n\n break;\n case 'x':\n if (this.globalModifier) {\n this.cancel();\n event.preventDefault();\n }\n\n break;\n case 's':\n if (this.globalModifier) {\n this.showSelected();\n event.preventDefault();\n }\n\n break;\n case 'u':\n if (this.globalModifier) {\n this.upload();\n event.preventDefault();\n }\n\n break;\n case 'r':\n if (this.globalModifier) {\n this.showRecents();\n event.preventDefault();\n }\n\n break;\n case 'n':\n if (this.globalModifier) {\n this.createFolder();\n event.preventDefault();\n }\n\n break;\n default:\n this.globalModifier = false;\n return;\n }\n\n this.globalModifier = key === 'g';\n };\n\n /**\n * Updates the focused row based on key binder\n *\n * @private\n * @param {number} focusedRow - the row index thats focused\n * @return {void}\n */\n onFocusChange = (focusedRow: number) => {\n this.setState({ focusedRow });\n };\n\n /**\n * Handle pagination changes\n *\n * @param {number} newOffset - the new page offset value\n */\n paginate = (newOffset: number) => {\n this.setState({ currentOffset: newOffset }, this.refreshCollection);\n };\n\n /**\n * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n language,\n messages,\n rootFolderId,\n logoUrl,\n canUpload,\n canSetShareAccess,\n canCreateNewFolder,\n contentUploaderProps,\n extensions,\n maxSelectable,\n type,\n token,\n sharedLink,\n sharedLinkPassword,\n apiHost,\n uploadHost,\n isHeaderLogoVisible,\n isPaginationVisible,\n isSmall,\n className,\n measureRef,\n chooseButtonLabel,\n cancelButtonLabel,\n requestInterceptor,\n responseInterceptor,\n renderCustomActionButtons,\n showSelectedButton,\n theme,\n itemActions,\n }: Props = this.props;\n const {\n view,\n rootName,\n selected,\n currentCollection,\n currentPageSize,\n searchQuery,\n isCreateFolderModalOpen,\n isUploadModalOpen,\n isLoading,\n errorCode,\n focusedRow,\n }: State = this.state;\n const { id, offset, permissions, totalCount }: Collection = currentCollection;\n const { can_upload }: BoxItemPermission = permissions || {};\n const selectedCount: number = Object.keys(selected).length;\n const isSingleSelect = maxSelectable === 1;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable && !isSingleSelect;\n const allowUpload: boolean = canUpload && !!can_upload;\n const allowCreate: boolean = canCreateNewFolder && !!can_upload;\n const styleClassName = classNames('be bcp', className);\n\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n return (\n <Internationalize language={language} messages={messages}>\n <div id={this.id} className={styleClassName} ref={measureRef} data-testid=\"content-picker\">\n <ThemingStyles theme={theme} />\n <div className=\"be-app-element\" onKeyDown={this.onKeyDown} tabIndex={0}>\n <Header\n view={view}\n isHeaderLogoVisible={isHeaderLogoVisible}\n searchQuery={searchQuery}\n logoUrl={logoUrl}\n onSearch={this.search}\n />\n <SubHeader\n view={view}\n rootId={rootFolderId}\n isSmall={isSmall}\n rootName={rootName}\n currentCollection={currentCollection}\n canUpload={allowUpload}\n canCreateNewFolder={allowCreate}\n onUpload={this.upload}\n onCreate={this.createFolder}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n />\n <Content\n view={view}\n isSmall={isSmall}\n rootId={rootFolderId}\n rootElement={this.rootElement}\n focusedRow={focusedRow}\n selectableType={type}\n canSetShareAccess={canSetShareAccess}\n extensionsWhitelist={extensions}\n hasHitSelectionLimit={hasHitSelectionLimit}\n currentCollection={currentCollection}\n isSingleSelect={isSingleSelect}\n tableRef={this.tableRef}\n onItemSelect={this.select}\n onItemClick={this.onItemClick}\n onFocusChange={this.onFocusChange}\n onShareAccessChange={this.changeShareAccess}\n itemActions={itemActions}\n />\n <Footer\n currentCollection={currentCollection}\n selectedCount={selectedCount}\n selectedItems={this.getSelectedItems()}\n showSelectedButton={showSelectedButton}\n hasHitSelectionLimit={hasHitSelectionLimit}\n isSingleSelect={isSingleSelect}\n onSelectedClick={this.showSelected}\n onChoose={this.choose}\n onCancel={this.cancel}\n chooseButtonLabel={chooseButtonLabel}\n cancelButtonLabel={cancelButtonLabel}\n renderCustomActionButtons={renderCustomActionButtons}\n >\n {isPaginationVisible ? (\n <Pagination\n offset={offset}\n onOffsetChange={this.paginate}\n pageSize={currentPageSize}\n totalCount={totalCount}\n />\n ) : null}\n </Footer>\n </div>\n {allowUpload && !!this.appElement ? (\n <UploadDialog\n isOpen={isUploadModalOpen}\n currentFolderId={id}\n token={token}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n apiHost={apiHost}\n uploadHost={uploadHost}\n onClose={this.uploadSuccessHandler}\n parentElement={this.rootElement}\n appElement={this.appElement}\n contentUploaderProps={contentUploaderProps}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n />\n ) : null}\n {allowCreate && !!this.appElement ? (\n <CreateFolderDialog\n isOpen={isCreateFolderModalOpen}\n onCreate={this.createFolderCallback}\n onCancel={this.closeModals}\n isLoading={isLoading}\n errorCode={errorCode}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n </div>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport { ContentPicker as ContentPickerComponent };\nexport default makeResponsive(ContentPicker);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentPicker.js","names":["React","Component","classNames","debounce","flow","getProp","uniqueid","noop","Header","SubHeader","UploadDialog","CreateFolderDialog","Internationalize","makeResponsive","withBlueprintModernization","ThemingStyles","Pagination","isFocusableElement","isInputElement","focus","API","Content","Footer","CLIENT_NAME_CONTENT_PICKER","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","DEFAULT_ROOT","DEFAULT_SEARCH_DEBOUNCE","DEFAULT_VIEW_FILES","DEFAULT_VIEW_RECENTS","ERROR_CODE_ITEM_NAME_INVALID","ERROR_CODE_ITEM_NAME_TOO_LONG","FIELD_NAME","FIELD_PERMISSIONS_CAN_SHARE","FIELD_SHARED_LINK","SORT_ASC","TYPE_FILE","TYPE_FOLDER","TYPE_WEBLINK","TYPED_ID_FOLDER_PREFIX","VIEW_ERROR","VIEW_FOLDER","VIEW_RECENTS","VIEW_SEARCH","VIEW_SELECTED","FILE_SHARED_LINK_FIELDS_TO_FETCH","defaultType","ContentPicker","constructor","props","_defineProperty","selected","state","Object","keys","map","key","clone","_objectSpread","onChoose","results","getSelectedItems","forEach","onCancel","deleteSelectedKeys","setState","currentCollection","id","view","searchQuery","fetchFolder","showRecents","search","showSelected","Error","error","code","console","item","type","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","length","offset","firstLoad","rootElement","currentUnloadedCollection","api","getFolderAPI","getFolder","collection","fetchFolderSuccessCallback","errorCallback","forceFetch","percentLoaded","items","getCache","get","finishNavigation","_extends","query","getSearchAPI","searchSuccessCallback","trimmedQuery","debouncedSearch","cancel","permissions","canUpload","can_upload","canUploadPermission","isUploadModalOpen","createFolderCallback","name","isCreateFolderModalOpen","canCreateNewFolder","errorCode","isLoading","create","forceSharedLink","canSetShareAccess","selectableType","maxSelectable","indexOf","selectedKeys","selectedCount","hasHitSelectionLimit","isSingleFileSelection","cacheKey","getAPI","getCacheKey","existing","existingFromCache","existInSelected","prior","fetchSharedLinkInfo","focusedRow","findIndex","i","getFolderFields","handleSharedLinkSuccess","fields","getFileAPI","getFile","getWebLinkAPI","getWeblink","updatedItem","share","undefined","sharedItem","updateItemInCollection","select","access","can_set_share_access","newState","collectionItem","refreshCollection","table","event","target","toLowerCase","preventDefault","globalModifier","choose","upload","createFolder","newOffset","apiHost","clientName","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","rootName","clearCache","destroy","componentWillUnmount","componentDidMount","defaultView","currentFolderId","document","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","prevState","autoFocus","activeElement","clearSelectedItemsOnNavigation","commonState","closeModals","recentsSuccessCallback","getRecentsAPI","recents","render","messages","logoUrl","contentUploaderProps","extensions","isHeaderLogoVisible","isPaginationVisible","isSmall","className","measureRef","chooseButtonLabel","cancelButtonLabel","renderCustomActionButtons","showSelectedButton","theme","itemActions","totalCount","isSingleSelect","allowUpload","allowCreate","styleClassName","createElement","ref","onKeyDown","tabIndex","onSearch","rootId","onUpload","onCreate","onItemClick","onSortChange","sort","extensionsWhitelist","tableRef","onItemSelect","onFocusChange","onShareAccessChange","changeShareAccess","selectedItems","onSelectedClick","onOffsetChange","paginate","pageSize","isOpen","onClose","uploadSuccessHandler","parentElement","Infinity","ContentPickerComponent"],"sources":["../../../src/elements/content-picker/ContentPicker.js"],"sourcesContent":["/**\n * @flow\n * @file Content Picker Component\n * @author Box\n */\n\nimport 'regenerator-runtime/runtime';\nimport React, { Component } from 'react';\nimport type { Node } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport uniqueid from 'lodash/uniqueId';\nimport noop from 'lodash/noop';\nimport Header from '../common/header';\nimport SubHeader from '../common/sub-header/SubHeader';\nimport UploadDialog from '../common/upload-dialog';\nimport CreateFolderDialog from '../common/create-folder-dialog';\nimport Internationalize from '../common/Internationalize';\nimport makeResponsive from '../common/makeResponsive';\n// $FlowFixMe\nimport { withBlueprintModernization } from '../common/withBlueprintModernization';\n// $FlowFixMe TypeScript file\nimport ThemingStyles from '../common/theming';\nimport Pagination from '../../features/pagination';\nimport { isFocusableElement, isInputElement, focus } from '../../utils/dom';\nimport API from '../../api';\nimport Content from './Content';\nimport Footer from './Footer';\nimport {\n CLIENT_NAME_CONTENT_PICKER,\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_UPLOAD,\n DEFAULT_PAGE_NUMBER,\n DEFAULT_PAGE_SIZE,\n DEFAULT_ROOT,\n DEFAULT_SEARCH_DEBOUNCE,\n DEFAULT_VIEW_FILES,\n DEFAULT_VIEW_RECENTS,\n ERROR_CODE_ITEM_NAME_INVALID,\n ERROR_CODE_ITEM_NAME_TOO_LONG,\n FIELD_NAME,\n FIELD_PERMISSIONS_CAN_SHARE,\n FIELD_SHARED_LINK,\n SORT_ASC,\n TYPE_FILE,\n TYPE_FOLDER,\n TYPE_WEBLINK,\n TYPED_ID_FOLDER_PREFIX,\n VIEW_ERROR,\n VIEW_FOLDER,\n VIEW_RECENTS,\n VIEW_SEARCH,\n VIEW_SELECTED,\n} from '../../constants';\nimport { FILE_SHARED_LINK_FIELDS_TO_FETCH } from '../../utils/fields';\n// $FlowFixMe TypeScript file\nimport type { Theme } from '../common/theming';\nimport type { ElementsXhrError } from '../../common/types/api';\nimport type {\n View,\n DefaultView,\n StringAnyMap,\n StringMap,\n SortBy,\n SortDirection,\n Token,\n Access,\n BoxItemPermission,\n BoxItem,\n Collection,\n} from '../../common/types/core';\n// $FlowFixMe TypeScript file\nimport type { ItemAction } from '../common/item';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport '../common/modal.scss';\nimport './ContentPicker.scss';\n\ntype Props = {\n apiHost: string,\n autoFocus: boolean,\n canCreateNewFolder: boolean,\n canSetShareAccess: boolean,\n canUpload: boolean,\n cancelButtonLabel?: string,\n chooseButtonLabel?: string,\n className: string,\n clearSelectedItemsOnNavigation: boolean,\n clientName: string,\n contentUploaderProps: ContentUploaderProps,\n currentFolderId?: string,\n defaultView: DefaultView,\n extensions: string[],\n initialPage: number,\n initialPageSize: number,\n isHeaderLogoVisible?: boolean,\n isLarge: boolean,\n isPaginationVisible?: boolean,\n isSmall: boolean,\n isTouch: boolean,\n itemActions?: ItemAction[],\n language?: string,\n logoUrl?: string,\n maxSelectable: number,\n measureRef?: Function,\n messages?: StringMap,\n onCancel: Function,\n onChoose: Function,\n renderCustomActionButtons?: ({\n onCancel: Function,\n onChoose: Function,\n selectedCount: number,\n selectedItems: BoxItem[],\n }) => Node,\n requestInterceptor?: Function,\n responseInterceptor?: Function,\n rootFolderId: string,\n sharedLink?: string,\n sharedLinkPassword?: string,\n showSelectedButton: boolean,\n sortBy: SortBy,\n sortDirection: SortDirection,\n theme?: Theme,\n token: Token,\n type: string,\n uploadHost: string,\n};\n\ntype State = {\n currentCollection: Collection,\n currentOffset: number,\n currentPageSize: number,\n errorCode: string,\n focusedRow: number,\n isCreateFolderModalOpen: boolean,\n isLoading: boolean,\n isUploadModalOpen: boolean,\n rootName: string,\n searchQuery: string,\n selected: { [string]: BoxItem },\n sortBy: SortBy,\n sortDirection: SortDirection,\n view: View,\n};\n\nconst defaultType = `${TYPE_FILE},${TYPE_WEBLINK}`;\n\nclass ContentPicker extends Component<Props, State> {\n id: string;\n\n api: API;\n\n state: State;\n\n props: Props;\n\n table: any;\n\n rootElement: HTMLElement;\n\n appElement: HTMLElement;\n\n globalModifier: boolean;\n\n firstLoad: boolean = true; // Keeps track of very 1st load\n\n static defaultProps = {\n type: defaultType,\n rootFolderId: DEFAULT_ROOT,\n onChoose: noop,\n onCancel: noop,\n initialPage: DEFAULT_PAGE_NUMBER,\n initialPageSize: DEFAULT_PAGE_SIZE,\n sortBy: FIELD_NAME,\n sortDirection: SORT_ASC,\n extensions: [],\n maxSelectable: Infinity,\n canUpload: true,\n canSetShareAccess: true,\n canCreateNewFolder: true,\n autoFocus: false,\n className: '',\n apiHost: DEFAULT_HOSTNAME_API,\n uploadHost: DEFAULT_HOSTNAME_UPLOAD,\n clientName: CLIENT_NAME_CONTENT_PICKER,\n defaultView: DEFAULT_VIEW_FILES,\n contentUploaderProps: {},\n showSelectedButton: true,\n clearSelectedItemsOnNavigation: false,\n isHeaderLogoVisible: true,\n isPaginationVisible: true,\n };\n\n /**\n * [constructor]\n *\n * @private\n * @return {ContentPicker}\n */\n constructor(props: Props) {\n super(props);\n\n const {\n apiHost,\n clientName,\n initialPage,\n initialPageSize,\n language,\n requestInterceptor,\n responseInterceptor,\n rootFolderId,\n sharedLink,\n sharedLinkPassword,\n sortBy,\n sortDirection,\n token,\n uploadHost,\n } = props;\n\n this.api = new API({\n apiHost,\n clientName,\n id: `${TYPED_ID_FOLDER_PREFIX}${rootFolderId}`,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n uploadHost,\n });\n\n this.id = uniqueid('bcp_');\n\n this.state = {\n sortBy,\n sortDirection,\n rootName: '',\n currentCollection: {},\n currentOffset: initialPageSize * (initialPage - 1),\n currentPageSize: initialPageSize,\n selected: {},\n searchQuery: '',\n view: VIEW_FOLDER,\n isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n focusedRow: 0,\n isLoading: false,\n errorCode: '',\n };\n }\n\n /**\n * Destroys api instances\n *\n * @private\n * @return {void}\n */\n clearCache(): void {\n this.api.destroy(true);\n }\n\n /**\n * Cleanup\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentWillUnmount() {\n this.clearCache();\n }\n\n /**\n * Fetches the root folder on load\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidMount() {\n const { defaultView, currentFolderId }: Props = this.props;\n this.rootElement = ((document.getElementById(this.id): any): HTMLElement);\n this.appElement = ((this.rootElement.firstElementChild: any): HTMLElement);\n\n if (defaultView === DEFAULT_VIEW_RECENTS) {\n this.showRecents();\n } else {\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Fetches the current folder if different\n * from what was already fetched before.\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidUpdate({ currentFolderId: prevFolderId }: Props, prevState: State): void {\n const { currentFolderId }: Props = this.props;\n const {\n currentCollection: { id },\n }: State = prevState;\n\n if (prevFolderId === currentFolderId) {\n return;\n }\n\n if (typeof currentFolderId === 'string' && id !== currentFolderId) {\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Gets selected items from state.\n * Clones values before returning so that\n * object references are broken. Also cleans\n * up the selected attribute since it was\n * added by the file picker.\n *\n * @private\n * @return {BoxItem[]}\n */\n getSelectedItems = (): BoxItem[] => {\n const { selected }: State = this.state;\n return Object.keys(selected).map(key => {\n const clone: BoxItem = { ...selected[key] };\n delete clone.selected;\n return clone;\n });\n };\n\n /**\n * Choose button action.\n *\n * @private\n * @fires choose\n * @return {void}\n */\n choose = (): void => {\n const { onChoose }: Props = this.props;\n const results = this.getSelectedItems();\n onChoose(results);\n };\n\n /**\n * Deletes selected keys off of selected items in state.\n *\n * @private\n * @return {void}\n */\n deleteSelectedKeys = (): void => {\n const { selected }: State = this.state;\n\n // Clear out the selected field\n Object.keys(selected).forEach(key => delete selected[key].selected);\n };\n\n /**\n * Cancel button action\n *\n * @private\n * @fires cancel\n * @return {void}\n */\n cancel = (): void => {\n const { onCancel }: Props = this.props;\n\n this.deleteSelectedKeys();\n\n // Reset the selected state\n this.setState({ selected: {} }, () => onCancel());\n };\n\n /**\n * Resets the percentLoaded in the collection\n * so that the loading bar starts showing\n *\n * @private\n * @return {Collection}\n */\n currentUnloadedCollection(): Collection {\n const { currentCollection }: State = this.state;\n return Object.assign(currentCollection, {\n percentLoaded: 0,\n });\n }\n\n /**\n * Refreshing the item collection depending\n * upon the view. Collection is gotten from cache.\n * Navigation event is prevented.\n *\n * @private\n * @return {void}\n */\n refreshCollection = (): void => {\n const {\n currentCollection: { id },\n view,\n searchQuery,\n }: State = this.state;\n if (view === VIEW_FOLDER && id) {\n this.fetchFolder(id, false);\n } else if (view === VIEW_RECENTS) {\n this.showRecents(false);\n } else if (view === VIEW_SEARCH && searchQuery) {\n this.search(searchQuery);\n } else if (view === VIEW_SELECTED) {\n this.showSelected();\n } else {\n throw new Error('Cannot refresh incompatible view!');\n }\n };\n\n /**\n * Network error callback\n *\n * @private\n * @param {Error} error error object\n * @return {void}\n */\n errorCallback = (error: ElementsXhrError, code: string): void => {\n this.setState({ view: VIEW_ERROR });\n /* eslint-disable no-console */\n console.error(error, code);\n /* eslint-enable no-console */\n };\n\n /**\n * Action performed when clicking on an item\n *\n * @private\n * @param {Object|string} item - the clicked box item\n * @return {void}\n */\n onItemClick = (item: BoxItem | string): void => {\n // If the id was passed in, just use that\n if (typeof item === 'string') {\n this.fetchFolder(item);\n return;\n }\n\n // If the item was passed in\n const { id, type }: BoxItem = item;\n if (type === TYPE_FOLDER) {\n this.fetchFolder(id);\n }\n };\n\n /**\n * Focuses the grid\n *\n * @private\n * @return {void}\n */\n finishNavigation(): void {\n const { autoFocus }: Props = this.props;\n const {\n currentCollection: { percentLoaded },\n }: State = this.state;\n\n // If loading for the very first time, only allow focus if autoFocus is true\n if (this.firstLoad && !autoFocus) {\n this.firstLoad = false;\n return;\n }\n\n // Don't focus the grid until its loaded and user is not already on an interactable element\n if (percentLoaded === 100 && !isFocusableElement(document.activeElement)) {\n focus(this.rootElement, '.bcp-item-row');\n this.setState({ focusedRow: 0 });\n }\n\n this.firstLoad = false;\n }\n\n /**\n * Folder fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} triggerNavigationEvent - To focus the grid\n * @return {void}\n */\n fetchFolderSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const { clearSelectedItemsOnNavigation, rootFolderId }: Props = this.props;\n const { id, name }: Collection = collection;\n\n const commonState = {\n currentCollection: collection,\n rootName: id === rootFolderId ? name : '',\n };\n\n // New folder state\n const newState = clearSelectedItemsOnNavigation ? { ...commonState, selected: {} } : commonState;\n\n // Close any open modals\n this.closeModals();\n\n // Deletes selected keys\n if (clearSelectedItemsOnNavigation) {\n this.deleteSelectedKeys();\n }\n\n if (triggerNavigationEvent) {\n // Fire folder navigation event\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\n }\n }\n\n /**\n * Fetches a folder, defaults to fetching root folder\n *\n * @private\n * @param {string|void} [id] folder id\n * @param {Boolean|void} [triggerNavigationEvent] - To focus the grid\n * @return {void}\n */\n fetchFolder = (id?: string, triggerNavigationEvent?: boolean = true): void => {\n const { rootFolderId }: Props = this.props;\n const {\n currentCollection: { id: currentId },\n currentOffset,\n currentPageSize: limit,\n searchQuery = '',\n sortBy,\n sortDirection,\n }: State = this.state;\n const folderId: string = typeof id === 'string' ? id : rootFolderId;\n const hasFolderChanged = currentId && currentId !== folderId;\n const hasSearchQuery = !!searchQuery.trim().length;\n const offset = hasFolderChanged || hasSearchQuery ? 0 : currentOffset; // Reset offset on folder or mode change\n\n // If we are navigating around, aka not first load\n // then reset the focus to the root so that after\n // the collection loads the activeElement is not the\n // button that was clicked to fetch the folder\n if (!this.firstLoad) {\n this.rootElement.focus();\n }\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_FOLDER,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: offset,\n });\n\n // Fetch the folder using folder API\n this.api.getFolderAPI().getFolder(\n folderId,\n limit,\n offset,\n sortBy,\n sortDirection,\n (collection: Collection) => {\n this.fetchFolderSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { forceFetch: true },\n );\n };\n\n /**\n * Recents fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n recentsSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const newState = { currentCollection: collection };\n if (triggerNavigationEvent) {\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\n }\n }\n\n /**\n * Shows recents.\n * We always try to force fetch recents.\n *\n * @private\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n showRecents(triggerNavigationEvent: boolean = true): void {\n const { rootFolderId }: Props = this.props;\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_RECENTS,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: 0,\n });\n\n // Fetch the folder using folder API\n this.api.getRecentsAPI().recents(\n rootFolderId,\n (collection: Collection) => {\n this.recentsSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { forceFetch: true },\n );\n }\n\n /**\n * Shows the selected items\n *\n * @private\n * @return {void}\n */\n showSelected = (): void => {\n const { selected, sortBy, sortDirection }: State = this.state;\n this.setState(\n {\n searchQuery: '',\n view: VIEW_SELECTED,\n currentCollection: {\n sortBy,\n sortDirection,\n percentLoaded: 100,\n items: Object.keys(selected).map(key => this.api.getCache().get(key)),\n },\n },\n this.finishNavigation,\n );\n };\n\n /**\n * Search success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @return {void}\n */\n searchSuccessCallback = (collection: Collection): void => {\n const { currentCollection }: State = this.state;\n this.setState({\n currentCollection: Object.assign(currentCollection, collection),\n });\n };\n\n /**\n * Debounced searching\n *\n * @private\n * @param {string} id folder id\n * @param {string} query search string\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n debouncedSearch: Function = debounce((id: string, query: string): void => {\n const { currentOffset, currentPageSize }: State = this.state;\n\n this.api\n .getSearchAPI()\n .search(id, query, currentPageSize, currentOffset, this.searchSuccessCallback, this.errorCallback, {\n forceFetch: true,\n });\n }, DEFAULT_SEARCH_DEBOUNCE);\n\n /**\n * Searches\n *\n * @private\n * @param {string} query search string\n * @return {void}\n */\n search = (query: string): void => {\n const { rootFolderId }: Props = this.props;\n const {\n currentCollection: { id },\n currentOffset,\n searchQuery,\n }: State = this.state;\n const folderId = typeof id === 'string' ? id : rootFolderId;\n const trimmedQuery: string = query.trim();\n\n if (!query) {\n // Cancel the debounce so we don't search on a previous query\n this.debouncedSearch.cancel();\n\n // Query was cleared out, load the prior folder\n // The prior folder is always the parent folder for search\n this.setState({ currentOffset: 0 }, () => {\n this.fetchFolder(folderId, false);\n });\n\n return;\n }\n\n if (!trimmedQuery) {\n // Query now only has bunch of spaces\n // do nothing and but update prior state\n this.setState({\n searchQuery: query,\n });\n return;\n }\n\n this.setState({\n searchQuery: query,\n view: VIEW_SEARCH,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: trimmedQuery === searchQuery ? currentOffset : 0,\n });\n\n this.debouncedSearch(folderId, query);\n };\n\n /**\n * Uploads\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n upload = (): void => {\n const {\n currentCollection: { id, permissions },\n }: State = this.state;\n const { canUpload }: Props = this.props;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload: canUploadPermission }: BoxItemPermission = permissions;\n if (!canUpload || !canUploadPermission) {\n return;\n }\n\n this.setState({ isUploadModalOpen: true });\n };\n\n /**\n * Upload success handler\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n uploadSuccessHandler = (): void => {\n const {\n currentCollection: { id },\n }: State = this.state;\n this.fetchFolder(id, false);\n };\n\n /**\n * Creates a new folder\n *\n * @private\n * @return {void}\n */\n createFolder = (): void => {\n this.createFolderCallback();\n };\n\n /**\n * New folder callback\n *\n * @private\n * @param {string} name - folder name\n * @return {void}\n */\n createFolderCallback = (name?: string): void => {\n const { isCreateFolderModalOpen, currentCollection }: State = this.state;\n const { canCreateNewFolder }: Props = this.props;\n if (!canCreateNewFolder) {\n return;\n }\n\n const { id, permissions }: Collection = currentCollection;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload }: BoxItemPermission = permissions;\n if (!can_upload) {\n return;\n }\n\n if (!isCreateFolderModalOpen || !name) {\n this.setState({ isCreateFolderModalOpen: true, errorCode: '' });\n return;\n }\n\n if (!name.trim()) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_INVALID,\n isLoading: false,\n });\n return;\n }\n\n if (name.length > 255) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_TOO_LONG,\n isLoading: false,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getFolderAPI().create(\n id,\n name.trim(),\n () => {\n this.fetchFolder(id);\n },\n ({ code }) => {\n this.setState({\n errorCode: code,\n isLoading: false,\n });\n },\n );\n };\n\n /**\n * Selects or unselects an item\n *\n * @private\n * @param {Object} item file or folder object\n * @param {boolean} options.forceSharedLink Force a shared link if no link exists\n * @return {void}\n */\n select = (item: BoxItem, { forceSharedLink = true }: StringAnyMap = {}): void => {\n const { canSetShareAccess, type: selectableType, maxSelectable }: Props = this.props;\n const {\n view,\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n const { id, type }: BoxItem = item;\n\n if (!id || !type || selectableType.indexOf(type) === -1) {\n return;\n }\n\n const selectedKeys: Array<string> = Object.keys(selected);\n const selectedCount: number = selectedKeys.length;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable;\n const isSingleFileSelection: boolean = maxSelectable === 1;\n const cacheKey: string = this.api.getAPI(type).getCacheKey(id);\n const existing: BoxItem = selected[cacheKey];\n const existingFromCache: BoxItem = this.api.getCache().get(cacheKey);\n const existInSelected = selectedKeys.indexOf(cacheKey) !== -1;\n\n // Existing object could have mutated and we just need to update the\n // reference in the selected map. In that case treat it like a new selection.\n if (existing && existing === existingFromCache) {\n // We are selecting the same item that was already\n // selected. Unselect it in this case. Toggle case.\n delete existing.selected;\n delete selected[cacheKey];\n } else {\n // We are selecting a new item that was never\n // selected before. However if we are in a single\n // item selection mode, we should also unselect any\n // prior item that was selected.\n\n // Check if we hit the selection limit and if selection\n // is not already currently in the selected data structure.\n // Ignore when in single file selection mode.\n if (hasHitSelectionLimit && !isSingleFileSelection && !existInSelected) {\n return;\n }\n\n // Clear out the prior item for single file selection mode\n if (selectedCount > 0 && isSingleFileSelection) {\n const prior = selectedKeys[0]; // only one item\n delete selected[prior].selected;\n delete selected[prior];\n }\n\n // Select the new item\n item.selected = true;\n selected[cacheKey] = item;\n\n // If can set share access, fetch the shared link properties of the item\n // In the case where another item is selected, any in flight XHR will get\n // cancelled\n if (canSetShareAccess && forceSharedLink) {\n this.fetchSharedLinkInfo(item);\n }\n }\n\n const focusedRow = items.findIndex((i: BoxItem) => i.id === item.id);\n this.setState({ selected, focusedRow }, () => {\n if (view === VIEW_SELECTED) {\n // Need to refresh the selected view\n this.showSelected();\n }\n });\n };\n\n /**\n * Fetch the shared link info\n * @param {BoxItem} item - The item (folder, file, weblink)\n * @returns {void}\n */\n fetchSharedLinkInfo = (item: BoxItem): void => {\n const { id, type }: BoxItem = item;\n\n switch (type) {\n case TYPE_FOLDER:\n this.api.getFolderAPI().getFolderFields(id, this.handleSharedLinkSuccess, noop, {\n fields: FILE_SHARED_LINK_FIELDS_TO_FETCH,\n });\n break;\n case TYPE_FILE:\n this.api\n .getFileAPI()\n .getFile(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n case TYPE_WEBLINK:\n this.api\n .getWebLinkAPI()\n .getWeblink(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n default:\n throw new Error('Unknown Type');\n }\n };\n\n /**\n * Handles the shared link info by either creating a share link using enterprise defaults if\n * it does not already exist, otherwise update the item in the state currentCollection.\n *\n * @param {Object} item file or folder\n * @returns {void}\n */\n handleSharedLinkSuccess = async (item: BoxItem) => {\n const { selected } = this.state;\n const { id, type } = item;\n // $FlowFixMe\n const cacheKey = this.api.getAPI(type).getCacheKey(id);\n let updatedItem = item;\n\n // if there is no shared link, create one with enterprise default access\n if (!item[FIELD_SHARED_LINK] && getProp(item, FIELD_PERMISSIONS_CAN_SHARE, false)) {\n // $FlowFixMe\n await this.api.getAPI(item.type).share(item, undefined, (sharedItem: BoxItem) => {\n updatedItem = sharedItem;\n });\n }\n\n this.updateItemInCollection(updatedItem);\n if (updatedItem.selected && updatedItem !== selected[cacheKey]) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n };\n\n /**\n * Changes the share access of an item\n *\n * @private\n * @param {string} access share access\n * @param {Object} item file or folder object\n * @return {void}\n */\n changeShareAccess = (access: Access, item: BoxItem): void => {\n const { canSetShareAccess }: Props = this.props;\n if (!item || !canSetShareAccess) {\n return;\n }\n\n const { permissions, type }: BoxItem = item;\n if (!permissions || !type) {\n return;\n }\n\n const { can_set_share_access }: BoxItemPermission = permissions;\n if (!can_set_share_access) {\n return;\n }\n\n this.api.getAPI(type).share(item, access, (updatedItem: BoxItem) => {\n this.updateItemInCollection(updatedItem);\n if (item.selected) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n });\n };\n\n /**\n * Updates the BoxItem in the state's currentCollection\n *\n * @param {Object} item file or folder object\n * @returns {void}\n */\n updateItemInCollection = (item: BoxItem) => {\n const { currentCollection } = this.state;\n const { items = [] } = currentCollection;\n const newState = {\n currentCollection: {\n ...currentCollection,\n items: items.map(collectionItem => (collectionItem.id === item.id ? item : collectionItem)),\n },\n };\n this.setState(newState);\n };\n\n /**\n * Changes the sort by and sort direction\n *\n * @private\n * @param {string} sortBy - field to sorty by\n * @param {string} sortDirection - sort direction\n * @return {void}\n */\n sort = (sortBy: SortBy, sortDirection: SortDirection) => {\n const {\n currentCollection: { id },\n }: State = this.state;\n if (id) {\n this.setState({ sortBy, sortDirection }, this.refreshCollection);\n }\n };\n\n /**\n * Saves reference to table component\n *\n * @private\n * @param {Component} react component\n * @return {void}\n */\n tableRef = (table: React$Component<*, *>) => {\n this.table = table;\n };\n\n /**\n * Closes the modal dialogs that may be open\n *\n * @private\n * @return {void}\n */\n closeModals = (): void => {\n const { focusedRow }: State = this.state;\n\n this.setState({\n isLoading: false,\n isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n });\n\n const {\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n if (selected && items.length > 0) {\n focus(this.rootElement, `.bcp-item-row-${focusedRow}`);\n }\n };\n\n /**\n * Keyboard events\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n onKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {\n if (isInputElement(event.target)) {\n return;\n }\n\n const { rootFolderId }: Props = this.props;\n const key = event.key.toLowerCase();\n\n switch (key) {\n case '/':\n focus(this.rootElement, '.be-search input[type=\"search\"]', false);\n event.preventDefault();\n break;\n case 'arrowdown':\n focus(this.rootElement, '.bcp-item-row', false);\n this.setState({ focusedRow: 0 });\n event.preventDefault();\n break;\n case 'g':\n break;\n case 'b':\n if (this.globalModifier) {\n focus(this.rootElement, '.be-breadcrumb button', false);\n event.preventDefault();\n }\n\n break;\n case 'f':\n if (this.globalModifier) {\n this.fetchFolder(rootFolderId);\n event.preventDefault();\n }\n\n break;\n case 'c':\n if (this.globalModifier) {\n this.choose();\n event.preventDefault();\n }\n\n break;\n case 'x':\n if (this.globalModifier) {\n this.cancel();\n event.preventDefault();\n }\n\n break;\n case 's':\n if (this.globalModifier) {\n this.showSelected();\n event.preventDefault();\n }\n\n break;\n case 'u':\n if (this.globalModifier) {\n this.upload();\n event.preventDefault();\n }\n\n break;\n case 'r':\n if (this.globalModifier) {\n this.showRecents();\n event.preventDefault();\n }\n\n break;\n case 'n':\n if (this.globalModifier) {\n this.createFolder();\n event.preventDefault();\n }\n\n break;\n default:\n this.globalModifier = false;\n return;\n }\n\n this.globalModifier = key === 'g';\n };\n\n /**\n * Updates the focused row based on key binder\n *\n * @private\n * @param {number} focusedRow - the row index thats focused\n * @return {void}\n */\n onFocusChange = (focusedRow: number) => {\n this.setState({ focusedRow });\n };\n\n /**\n * Handle pagination changes\n *\n * @param {number} newOffset - the new page offset value\n */\n paginate = (newOffset: number) => {\n this.setState({ currentOffset: newOffset }, this.refreshCollection);\n };\n\n /**\n * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n language,\n messages,\n rootFolderId,\n logoUrl,\n canUpload,\n canSetShareAccess,\n canCreateNewFolder,\n contentUploaderProps,\n extensions,\n maxSelectable,\n type,\n token,\n sharedLink,\n sharedLinkPassword,\n apiHost,\n uploadHost,\n isHeaderLogoVisible,\n isPaginationVisible,\n isSmall,\n className,\n measureRef,\n chooseButtonLabel,\n cancelButtonLabel,\n requestInterceptor,\n responseInterceptor,\n renderCustomActionButtons,\n showSelectedButton,\n theme,\n itemActions,\n }: Props = this.props;\n const {\n view,\n rootName,\n selected,\n currentCollection,\n currentPageSize,\n searchQuery,\n isCreateFolderModalOpen,\n isUploadModalOpen,\n isLoading,\n errorCode,\n focusedRow,\n }: State = this.state;\n const { id, offset, permissions, totalCount }: Collection = currentCollection;\n const { can_upload }: BoxItemPermission = permissions || {};\n const selectedCount: number = Object.keys(selected).length;\n const isSingleSelect = maxSelectable === 1;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable && !isSingleSelect;\n const allowUpload: boolean = canUpload && !!can_upload;\n const allowCreate: boolean = canCreateNewFolder && !!can_upload;\n const styleClassName = classNames('be bcp', className);\n\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n return (\n <Internationalize language={language} messages={messages}>\n <div id={this.id} className={styleClassName} ref={measureRef} data-testid=\"content-picker\">\n <ThemingStyles theme={theme} />\n <div className=\"be-app-element\" onKeyDown={this.onKeyDown} tabIndex={0}>\n <Header\n view={view}\n isHeaderLogoVisible={isHeaderLogoVisible}\n searchQuery={searchQuery}\n logoUrl={logoUrl}\n onSearch={this.search}\n />\n <SubHeader\n view={view}\n rootId={rootFolderId}\n isSmall={isSmall}\n rootName={rootName}\n currentCollection={currentCollection}\n canUpload={allowUpload}\n canCreateNewFolder={allowCreate}\n onUpload={this.upload}\n onCreate={this.createFolder}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n />\n <Content\n view={view}\n isSmall={isSmall}\n rootId={rootFolderId}\n rootElement={this.rootElement}\n focusedRow={focusedRow}\n selectableType={type}\n canSetShareAccess={canSetShareAccess}\n extensionsWhitelist={extensions}\n hasHitSelectionLimit={hasHitSelectionLimit}\n currentCollection={currentCollection}\n isSingleSelect={isSingleSelect}\n tableRef={this.tableRef}\n onItemSelect={this.select}\n onItemClick={this.onItemClick}\n onFocusChange={this.onFocusChange}\n onShareAccessChange={this.changeShareAccess}\n itemActions={itemActions}\n />\n <Footer\n currentCollection={currentCollection}\n selectedCount={selectedCount}\n selectedItems={this.getSelectedItems()}\n showSelectedButton={showSelectedButton}\n hasHitSelectionLimit={hasHitSelectionLimit}\n isSingleSelect={isSingleSelect}\n onSelectedClick={this.showSelected}\n onChoose={this.choose}\n onCancel={this.cancel}\n chooseButtonLabel={chooseButtonLabel}\n cancelButtonLabel={cancelButtonLabel}\n renderCustomActionButtons={renderCustomActionButtons}\n >\n {isPaginationVisible ? (\n <Pagination\n offset={offset}\n onOffsetChange={this.paginate}\n pageSize={currentPageSize}\n totalCount={totalCount}\n />\n ) : null}\n </Footer>\n </div>\n {allowUpload && !!this.appElement ? (\n <UploadDialog\n isOpen={isUploadModalOpen}\n currentFolderId={id}\n token={token}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n apiHost={apiHost}\n uploadHost={uploadHost}\n onClose={this.uploadSuccessHandler}\n parentElement={this.rootElement}\n appElement={this.appElement}\n contentUploaderProps={contentUploaderProps}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n />\n ) : null}\n {allowCreate && !!this.appElement ? (\n <CreateFolderDialog\n isOpen={isCreateFolderModalOpen}\n onCreate={this.createFolderCallback}\n onCancel={this.closeModals}\n isLoading={isLoading}\n errorCode={errorCode}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n </div>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport { ContentPicker as ContentPickerComponent };\nexport default flow([makeResponsive, withBlueprintModernization])(ContentPicker);\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,11 @@ import ContentPicker from '../../ContentPicker';
5
5
  import { mockRootFolder, mockEmptyRootFolder } from '../../../common/__mocks__/mockRootFolder';
6
6
  import { DEFAULT_HOSTNAME_API } from '../../../../constants';
7
7
  export const basic = {};
8
+ export const Modernization = {
9
+ args: {
10
+ enableModernizedComponents: true
11
+ }
12
+ };
8
13
  export const withPagination = {
9
14
  args: {
10
15
  initialPageSize: 1
@@ -8,6 +8,12 @@ import { DEFAULT_HOSTNAME_API } from '../../../../constants';
8
8
 
9
9
  export const basic = {};
10
10
 
11
+ export const Modernization = {
12
+ args: {
13
+ enableModernizedComponents: true,
14
+ },
15
+ };
16
+
11
17
  export const withPagination = {
12
18
  args: {
13
19
  initialPageSize: 1,