@instructure/canvas-rce 5.14.0 → 5.14.2

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 (484) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/DEVELOPMENT.md +1 -1
  3. package/README.md +0 -8
  4. package/__tests__/common/indicate.test.js +84 -0
  5. package/__tests__/common/mimeClass.test.js +85 -0
  6. package/__tests__/module/contentInsertionUtils.test.js +52 -0
  7. package/__tests__/module/indicatorRegion.test.js +75 -0
  8. package/__tests__/module/normalizeLocale.test.js +46 -0
  9. package/__tests__/module/normalizeProps.test.js +51 -0
  10. package/__tests__/module/sanitizePlugins.test.js +48 -0
  11. package/__tests__/module/wrapInitCb.test.js +56 -0
  12. package/__tests__/rcs/api.test.js +819 -0
  13. package/{mocha-reporter-config.js → __tests__/sidebar/actions/all_files.test.js} +10 -9
  14. package/__tests__/sidebar/actions/data.test.js +196 -0
  15. package/__tests__/sidebar/actions/utils.js +44 -0
  16. package/__tests__/sidebar/reducers/all_files.test.js +28 -0
  17. package/babel.config.js +3 -1
  18. package/build.sh +7 -7
  19. package/es/bridge/Bridge.js +8 -56
  20. package/es/bridge/index.js +1 -0
  21. package/es/canvasFileBrowser/FileBrowser.js +12 -59
  22. package/es/canvasFileBrowser/en-US.js +3 -6
  23. package/es/common/FlashAlert.js +7 -28
  24. package/es/common/browser.js +4 -2
  25. package/es/common/fileUrl.js +104 -59
  26. package/es/common/incremental-loading/LoadMoreButton.js +1 -0
  27. package/es/common/incremental-loading/LoadingIndicator.js +1 -2
  28. package/es/common/incremental-loading/LoadingStatus.js +1 -2
  29. package/es/common/incremental-loading/index.js +1 -0
  30. package/es/common/incremental-loading/useIncrementalLoading.js +1 -3
  31. package/es/common/indicate.js +15 -8
  32. package/es/common/mimeClass.js +3 -4
  33. package/es/common/natcompare.js +1 -4
  34. package/es/defaultTinymceConfig.js +5 -3
  35. package/es/elementDenylist.js +1 -0
  36. package/es/enhance-user-content/doc_previews.js +17 -28
  37. package/es/enhance-user-content/enhance_user_content.js +28 -60
  38. package/es/enhance-user-content/external_links.js +5 -8
  39. package/es/enhance-user-content/index.js +1 -0
  40. package/es/enhance-user-content/instructure_helper.js +25 -38
  41. package/es/enhance-user-content/jqueryish_funcs.js +8 -11
  42. package/es/enhance-user-content/mathml.js +35 -82
  43. package/es/enhance-user-content/media_comment_thumbnail.js +5 -17
  44. package/es/format-message.js +3 -4
  45. package/es/getThemeVars.js +8 -6
  46. package/es/getTranslations.js +1 -78
  47. package/es/index.js +3 -1
  48. package/es/rce/AlertMessageArea.js +1 -1
  49. package/es/rce/DraggingBlocker.js +4 -2
  50. package/es/rce/KeyboardShortcutModal.js +1 -0
  51. package/es/rce/RCE.js +12 -11
  52. package/es/rce/RCEGlobals.js +12 -10
  53. package/es/rce/RCEVariants.js +27 -10
  54. package/es/rce/RCEWrapper.js +167 -386
  55. package/es/rce/RCEWrapperProps.js +8 -3
  56. package/es/rce/RceHtmlEditor.js +5 -8
  57. package/es/rce/ResizeHandle.js +3 -8
  58. package/es/rce/RestoreAutoSaveModal.js +1 -2
  59. package/es/rce/ShowOnFocusButton/index.js +0 -6
  60. package/es/rce/StatusBar.js +8 -37
  61. package/es/rce/alertHandler.js +1 -4
  62. package/es/rce/contentInsertion.js +35 -57
  63. package/es/rce/contentInsertionUtils.js +6 -8
  64. package/es/rce/contentRendering.js +7 -12
  65. package/es/rce/customEvents.js +1 -0
  66. package/es/rce/editorLanguage.js +22 -10
  67. package/es/rce/indicatorRegion.js +6 -5
  68. package/es/rce/normalizeLocale.js +5 -3
  69. package/es/rce/normalizeProps.js +3 -1
  70. package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
  71. package/es/rce/plugins/instructure_color/clickCallback.js +84 -0
  72. package/es/rce/plugins/instructure_color/components/ColorPicker.js +299 -0
  73. package/es/rce/plugins/instructure_color/components/ColorPopup.js +68 -0
  74. package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
  75. package/es/rce/plugins/instructure_color/plugin.js +40 -0
  76. package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
  77. package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
  78. package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
  79. package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
  80. package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
  81. package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +22 -15
  82. package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +1 -2
  83. package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
  84. package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
  85. package/es/rce/plugins/instructure_documents/components/Link.js +3 -18
  86. package/es/rce/plugins/instructure_documents/plugin.js +7 -14
  87. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
  88. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
  89. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +12 -29
  90. package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +11 -12
  91. package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +4 -3
  92. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
  93. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +13 -7
  94. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +4 -7
  95. package/es/rce/plugins/instructure_equation/MathIcon/index.js +1 -1
  96. package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
  97. package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
  98. package/es/rce/plugins/instructure_equation/mathlive/index.js +1 -1
  99. package/es/rce/plugins/instructure_equation/plugin.js +7 -10
  100. package/es/rce/plugins/instructure_fullscreen/plugin.js +3 -6
  101. package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
  102. package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
  103. package/es/rce/plugins/instructure_icon_maker/clickCallback.js +2 -4
  104. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +1 -2
  105. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +1 -0
  106. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +1 -0
  107. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +1 -0
  108. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +1 -2
  109. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +25 -22
  110. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +7 -11
  111. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +27 -23
  112. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +5 -4
  113. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +11 -9
  114. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
  115. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +5 -4
  116. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +1 -3
  117. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +7 -7
  118. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +1 -0
  119. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +27 -20
  120. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
  121. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
  122. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +1 -0
  123. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +4 -4
  124. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +1 -2
  125. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +1 -5
  126. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
  127. package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +18 -33
  128. package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
  129. package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
  130. package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
  131. package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
  132. package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +1 -3
  133. package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
  134. package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
  135. package/es/rce/plugins/instructure_icon_maker/svg/image.js +69 -83
  136. package/es/rce/plugins/instructure_icon_maker/svg/index.js +11 -15
  137. package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  138. package/es/rce/plugins/instructure_icon_maker/svg/settings.js +32 -39
  139. package/es/rce/plugins/instructure_icon_maker/svg/shape.js +1 -49
  140. package/es/rce/plugins/instructure_icon_maker/svg/text.js +7 -92
  141. package/es/rce/plugins/instructure_icon_maker/svg/utils.js +1 -7
  142. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +2 -6
  143. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
  144. package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
  145. package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +1 -1
  146. package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
  147. package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
  148. package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +6 -24
  149. package/es/rce/plugins/instructure_image/ImageList/Image.js +1 -6
  150. package/es/rce/plugins/instructure_image/ImageList/index.js +1 -2
  151. package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +7 -27
  152. package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +3 -16
  153. package/es/rce/plugins/instructure_image/Images/index.js +1 -3
  154. package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
  155. package/es/rce/plugins/instructure_image/plugin.js +13 -18
  156. package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
  157. package/es/rce/plugins/instructure_links/components/AccordionSection.js +1 -0
  158. package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
  159. package/es/rce/plugins/instructure_links/components/Link.js +7 -19
  160. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +1 -21
  161. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +1 -4
  162. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
  163. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +1 -12
  164. package/es/rce/plugins/instructure_links/components/LinkSet.js +4 -20
  165. package/es/rce/plugins/instructure_links/components/LinksPanel.js +1 -2
  166. package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
  167. package/es/rce/plugins/instructure_links/components/NoResults.js +1 -7
  168. package/es/rce/plugins/instructure_links/plugin.js +17 -40
  169. package/es/rce/plugins/instructure_links/validateURL.js +81 -36
  170. package/es/rce/plugins/instructure_media_embed/clickCallback.js +2 -5
  171. package/es/rce/plugins/instructure_media_embed/components/Embed.js +1 -0
  172. package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
  173. package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
  174. package/es/rce/plugins/instructure_paste/plugin.js +27 -29
  175. package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +14 -53
  176. package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +21 -49
  177. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +11 -42
  178. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
  179. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
  180. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +2 -10
  181. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
  182. package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
  183. package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
  184. package/es/rce/plugins/instructure_rce_external_tools/constants.js +28 -0
  185. package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +19 -4
  186. package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
  187. package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +130 -136
  188. package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +100 -95
  189. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
  190. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +2 -19
  191. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +1 -14
  192. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
  193. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
  194. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
  195. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
  196. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +18 -10
  197. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +4 -4
  198. package/es/rce/plugins/instructure_rce_external_tools/plugin.js +7 -16
  199. package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
  200. package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +1 -25
  201. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +1 -4
  202. package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
  203. package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +8 -51
  204. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +4 -17
  205. package/es/rce/plugins/instructure_record/clickCallback.js +7 -15
  206. package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
  207. package/es/rce/plugins/instructure_record/plugin.js +11 -18
  208. package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +2 -5
  209. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +20 -35
  210. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +3 -18
  211. package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
  212. package/es/rce/plugins/instructure_search_and_replace/plugin.js +1 -3
  213. package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
  214. package/es/rce/plugins/instructure_wordcount/clickCallback.js +2 -5
  215. package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +1 -4
  216. package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
  217. package/es/rce/plugins/instructure_wordcount/utils/countContent.js +1 -8
  218. package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +1 -0
  219. package/es/rce/plugins/shared/CanvasContentTray.js +43 -63
  220. package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
  221. package/es/rce/plugins/shared/ColorInput.js +5 -14
  222. package/es/rce/plugins/shared/ConditionalTooltip.js +1 -0
  223. package/es/rce/plugins/shared/ContentSelection.js +17 -58
  224. package/es/rce/plugins/shared/DimensionUtils.js +1 -8
  225. package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
  226. package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
  227. package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
  228. package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
  229. package/es/rce/plugins/shared/EventUtils.js +1 -3
  230. package/es/rce/plugins/shared/Filter.js +8 -38
  231. package/es/rce/plugins/shared/FixedContentTray.js +3 -3
  232. package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +1 -8
  233. package/es/rce/plugins/shared/ImageCropper/Modal.js +4 -7
  234. package/es/rce/plugins/shared/ImageCropper/Preview.js +7 -11
  235. package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
  236. package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +2 -5
  237. package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +1 -0
  238. package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +1 -10
  239. package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +1 -0
  240. package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +1 -11
  241. package/es/rce/plugins/shared/ImageCropper/controls/index.js +1 -0
  242. package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +3 -16
  243. package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
  244. package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +1 -10
  245. package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
  246. package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
  247. package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
  248. package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
  249. package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
  250. package/es/rce/plugins/shared/ImageCropper/svg/shape.js +1 -17
  251. package/es/rce/plugins/shared/ImageCropper/svg/utils.js +1 -0
  252. package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +19 -46
  253. package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
  254. package/es/rce/plugins/shared/ImageOptionsForm.js +1 -2
  255. package/es/rce/plugins/shared/LinkDisplay.js +1 -2
  256. package/es/rce/plugins/shared/PreviewIcon.js +1 -6
  257. package/es/rce/plugins/shared/Previewable.js +1 -0
  258. package/es/rce/plugins/shared/RceFileBrowser.js +5 -7
  259. package/es/rce/plugins/shared/StoreContext.js +1 -2
  260. package/es/rce/plugins/shared/StudioLtiSupportUtils.js +10 -6
  261. package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
  262. package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +13 -18
  263. package/es/rce/plugins/shared/Upload/CategoryProcessor.js +1 -1
  264. package/es/rce/plugins/shared/Upload/ComputerPanel.js +8 -26
  265. package/es/rce/plugins/shared/Upload/PanelFilter.js +3 -12
  266. package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
  267. package/es/rce/plugins/shared/Upload/UploadFile.js +15 -18
  268. package/es/rce/plugins/shared/Upload/UploadFileModal.js +9 -25
  269. package/es/rce/plugins/shared/Upload/UrlPanel.js +1 -0
  270. package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +7 -12
  271. package/es/rce/plugins/shared/Upload/doFileUpload.js +4 -6
  272. package/es/rce/plugins/shared/Upload/index.js +1 -0
  273. package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +1 -3
  274. package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +6 -24
  275. package/es/rce/plugins/shared/ai_tools/aiicons.js +1 -0
  276. package/es/rce/plugins/shared/ai_tools/index.js +1 -0
  277. package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
  278. package/es/rce/plugins/shared/canvasContentUtils.js +6 -9
  279. package/es/rce/plugins/shared/compressionUtils.js +1 -8
  280. package/es/rce/plugins/shared/dateUtils.js +1 -1
  281. package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
  282. package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +7 -10
  283. package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
  284. package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
  285. package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
  286. package/es/rce/plugins/shared/fileShape.js +4 -9
  287. package/es/rce/plugins/shared/fileTypeUtils.js +32 -42
  288. package/es/rce/plugins/shared/fileUtils.js +1 -2
  289. package/es/rce/plugins/shared/linkUtils.js +1 -16
  290. package/es/rce/plugins/shared/round.js +1 -0
  291. package/es/rce/plugins/shared/trayUtils.js +4 -3
  292. package/es/rce/plugins/shared/useDataUrl.js +9 -9
  293. package/es/rce/plugins/shared/useFilterSettings.js +3 -3
  294. package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +2 -6
  295. package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +5 -63
  296. package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
  297. package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
  298. package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
  299. package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +1 -6
  300. package/es/rce/plugins/tinymce-a11y-checker/plugin.js +4 -7
  301. package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
  302. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
  303. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +1 -5
  304. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
  305. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
  306. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
  307. package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
  308. package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +1 -4
  309. package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
  310. package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
  311. package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +1 -6
  312. package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
  313. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
  314. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
  315. package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
  316. package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
  317. package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +1 -26
  318. package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +16 -15
  319. package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +7 -10
  320. package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
  321. package/es/rce/root.js +9 -8
  322. package/es/rce/sanitizePlugins.js +1 -3
  323. package/es/rce/style.js +1 -4
  324. package/es/rce/tinyRCE.js +13 -9
  325. package/es/rce/tinymce.oxide.content.min.css.js +1 -0
  326. package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
  327. package/es/rce/transformContent.js +8 -10
  328. package/es/rce/types.js +1 -0
  329. package/es/rce/userOS.js +1 -1
  330. package/es/rce/wrapInitCb.js +50 -43
  331. package/es/rcs/api.js +61 -116
  332. package/es/rcs/buildError.js +5 -17
  333. package/es/rcs/fake.js +4 -13
  334. package/es/sidebar/actions/all_files.js +2 -0
  335. package/es/sidebar/actions/data.js +4 -7
  336. package/es/sidebar/actions/documents.js +9 -6
  337. package/es/sidebar/actions/files.js +3 -6
  338. package/es/sidebar/actions/filter.js +1 -0
  339. package/es/sidebar/actions/flickr.js +1 -1
  340. package/es/sidebar/actions/images.js +12 -11
  341. package/es/sidebar/actions/links.js +1 -0
  342. package/es/sidebar/actions/media.js +12 -10
  343. package/es/sidebar/actions/session.js +1 -3
  344. package/es/sidebar/actions/ui.js +1 -0
  345. package/es/sidebar/actions/upload.js +14 -39
  346. package/es/sidebar/containers/Sidebar.js +1 -2
  347. package/es/sidebar/containers/sidebarHandlers.js +3 -1
  348. package/es/sidebar/dragHtml.js +5 -3
  349. package/es/sidebar/reducers/all_files.js +4 -3
  350. package/es/sidebar/reducers/collection.js +12 -13
  351. package/es/sidebar/reducers/collections.js +5 -5
  352. package/es/sidebar/reducers/documents.js +6 -13
  353. package/es/sidebar/reducers/files.js +3 -3
  354. package/es/sidebar/reducers/filter.js +1 -8
  355. package/es/sidebar/reducers/flickr.js +9 -9
  356. package/es/sidebar/reducers/folder.js +15 -15
  357. package/es/sidebar/reducers/folders.js +3 -3
  358. package/es/sidebar/reducers/images.js +3 -13
  359. package/es/sidebar/reducers/index.js +3 -1
  360. package/es/sidebar/reducers/media.js +6 -13
  361. package/es/sidebar/reducers/newPageLinkExpanded.js +1 -2
  362. package/es/sidebar/reducers/noop.js +1 -0
  363. package/es/sidebar/reducers/rootFolderId.js +1 -2
  364. package/es/sidebar/reducers/session.js +3 -3
  365. package/es/sidebar/reducers/ui.js +3 -16
  366. package/es/sidebar/reducers/upload.js +8 -40
  367. package/es/sidebar/store/configureStore.js +1 -0
  368. package/es/sidebar/store/initialState.js +13 -24
  369. package/es/translations/locales/ab.js +1 -0
  370. package/es/translations/locales/ar.js +67 -9
  371. package/es/translations/locales/ca.js +67 -9
  372. package/es/translations/locales/cs.js +1 -0
  373. package/es/translations/locales/cs_CZ.js +1 -0
  374. package/es/translations/locales/cy.js +67 -9
  375. package/es/translations/locales/da-x-k12.js +67 -9
  376. package/es/translations/locales/da.js +67 -9
  377. package/es/translations/locales/da_DK.js +1 -0
  378. package/es/translations/locales/de.js +67 -9
  379. package/es/translations/locales/el.js +4 -0
  380. package/es/translations/locales/en-AU-x-unimelb.js +67 -9
  381. package/es/translations/locales/en-GB-x-ukhe.js +67 -9
  382. package/es/translations/locales/en.js +72 -8
  383. package/es/translations/locales/en_AU.js +67 -9
  384. package/es/translations/locales/en_CA.js +67 -9
  385. package/es/translations/locales/en_CY.js +67 -9
  386. package/es/translations/locales/en_GB.js +67 -9
  387. package/es/translations/locales/en_NZ.js +1 -0
  388. package/es/translations/locales/en_SE.js +1 -0
  389. package/es/translations/locales/en_US.js +1 -0
  390. package/es/translations/locales/es.js +67 -9
  391. package/es/translations/locales/es_ES.js +67 -9
  392. package/es/translations/locales/es_GT.js +1 -0
  393. package/es/translations/locales/fa_IR.js +7 -0
  394. package/es/translations/locales/fi.js +67 -9
  395. package/es/translations/locales/fr.js +67 -9
  396. package/es/translations/locales/fr_CA.js +68 -10
  397. package/es/translations/locales/ga.js +5 -13
  398. package/es/translations/locales/he.js +7 -0
  399. package/es/translations/locales/hi.js +67 -9
  400. package/es/translations/locales/ht.js +67 -9
  401. package/es/translations/locales/hu.js +7 -6
  402. package/es/translations/locales/hu_HU.js +1 -0
  403. package/es/translations/locales/hy.js +1 -0
  404. package/es/translations/locales/id.js +67 -9
  405. package/es/translations/locales/id_ID.js +1 -0
  406. package/es/translations/locales/is.js +67 -9
  407. package/es/translations/locales/it.js +67 -9
  408. package/es/translations/locales/ja.js +67 -9
  409. package/es/translations/locales/ko.js +1 -0
  410. package/es/translations/locales/ko_KR.js +1 -0
  411. package/es/translations/locales/lt.js +1 -0
  412. package/es/translations/locales/lt_LT.js +1 -0
  413. package/es/translations/locales/mi.js +67 -9
  414. package/es/translations/locales/mn_MN.js +1 -0
  415. package/es/translations/locales/ms.js +67 -9
  416. package/es/translations/locales/nb-x-k12.js +67 -9
  417. package/es/translations/locales/nb.js +67 -9
  418. package/es/translations/locales/nl.js +67 -9
  419. package/es/translations/locales/nl_NL.js +1 -0
  420. package/es/translations/locales/nn.js +7 -6
  421. package/es/translations/locales/pl.js +67 -9
  422. package/es/translations/locales/pt.js +67 -9
  423. package/es/translations/locales/pt_BR.js +67 -9
  424. package/es/translations/locales/ro.js +1 -0
  425. package/es/translations/locales/ru.js +67 -9
  426. package/es/translations/locales/se.js +1 -0
  427. package/es/translations/locales/sl.js +67 -9
  428. package/es/translations/locales/sv-x-k12.js +67 -9
  429. package/es/translations/locales/sv.js +67 -9
  430. package/es/translations/locales/sv_SE.js +1 -0
  431. package/es/translations/locales/tg.js +1 -0
  432. package/es/translations/locales/th.js +67 -9
  433. package/es/translations/locales/th_TH.js +1 -0
  434. package/es/translations/locales/tl_PH.js +1 -0
  435. package/es/translations/locales/tr.js +7 -0
  436. package/es/translations/locales/uk_UA.js +7 -0
  437. package/es/translations/locales/vi.js +67 -9
  438. package/es/translations/locales/vi_VN.js +1 -0
  439. package/es/translations/locales/zh-Hans.js +67 -9
  440. package/es/translations/locales/zh-Hant.js +67 -9
  441. package/es/translations/locales/zh.js +67 -9
  442. package/es/translations/locales/zh_HK.js +67 -9
  443. package/es/translations/locales/zh_TW.Big5.js +1 -0
  444. package/es/translations/locales/zh_TW.js +1 -0
  445. package/es/translations/tinymce/ar_SA.js +1 -0
  446. package/es/translations/tinymce/fi.js +1 -0
  447. package/es/translations/tinymce/ga.js +1 -0
  448. package/es/translations/tinymce/id.js +1 -0
  449. package/es/translations/tinymce/ru.js +1 -0
  450. package/es/translations/tinymce/ru_RU.js +1 -0
  451. package/es/translations/tinymce/sl.js +1 -0
  452. package/es/translations/tinymce/sr.js +1 -0
  453. package/es/translations/tinymce/th.js +1 -0
  454. package/es/translations/tinymce/uk_UA.js +1 -0
  455. package/es/translations/tinymce/vi_VN.js +1 -0
  456. package/es/util/TypedDict.js +4 -2
  457. package/es/util/encrypted-storage.js +3 -13
  458. package/es/util/file-url-util.js +1 -6
  459. package/es/util/fullscreenHelpers.js +4 -1
  460. package/es/util/instui-icon-helper.js +4 -3
  461. package/es/util/loadingPlaceholder.js +38 -39
  462. package/es/util/simpleCache.js +0 -3
  463. package/es/util/string-util.js +1 -1
  464. package/es/util/textarea-editing-util.js +3 -7
  465. package/es/util/tinymce-plugin-util.js +0 -5
  466. package/es/util/url-util.js +16 -25
  467. package/eslint.config.js +239 -0
  468. package/jest.config.js +1 -1
  469. package/package.json +77 -82
  470. package/scripts/build-canvas +2 -1
  471. package/scripts/build.js +4 -4
  472. package/scripts/publish_to_npm.sh +1 -1
  473. package/testcafe/RCEWrapper.test.js +0 -1
  474. package/testcafe/StatusBar.test.js +0 -1
  475. package/testcafe/axe.test.js +3 -4
  476. package/testcafe/enhanceUserContent.test.js +0 -1
  477. package/tsconfig.json +20 -15
  478. package/.eslintrc +0 -45
  479. package/.prettierignore +0 -6
  480. package/es/common/components/FileTree/File.js +0 -64
  481. package/es/common/components/FileTree/Folder.js +0 -110
  482. package/es/common/components/FileTree/index.js +0 -84
  483. package/es/common/components/FileTree/styles.js +0 -72
  484. package/es/common/components/Loading.js +0 -83
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import * as actions from '../actions/files';
19
20
  const defaultState = {
20
21
  id: null,
@@ -33,59 +34,58 @@ export default function folderReducer() {
33
34
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
34
35
  let action = arguments.length > 1 ? arguments[1] : undefined;
35
36
  let loadingCount;
36
-
37
37
  switch (action.type) {
38
38
  case actions.ADD_FOLDER:
39
- return { ...state,
39
+ return {
40
+ ...state,
40
41
  id: action.id,
41
42
  name: action.name,
42
43
  parentId: action.parentId,
43
44
  filesUrl: action.filesUrl,
44
45
  foldersUrl: action.foldersUrl
45
46
  };
46
-
47
47
  case actions.RECEIVE_FILES:
48
48
  loadingCount = state.loadingCount - 1;
49
- return { ...state,
49
+ return {
50
+ ...state,
50
51
  loadingCount,
51
52
  loading: !!loadingCount,
52
53
  fileIds: state.fileIds.concat(action.fileIds)
53
54
  };
54
-
55
55
  case actions.INSERT_FILE:
56
- return { ...state,
56
+ return {
57
+ ...state,
57
58
  fileIds: state.fileIds.concat(action.fileId)
58
59
  };
59
-
60
60
  case actions.RECEIVE_SUBFOLDERS:
61
61
  loadingCount = state.loadingCount - 1;
62
- return { ...state,
62
+ return {
63
+ ...state,
63
64
  loadingCount,
64
65
  loading: !!loadingCount,
65
66
  folderIds: state.folderIds.concat(action.folderIds)
66
67
  };
67
-
68
68
  case actions.REQUEST_FILES:
69
69
  loadingCount = state.loadingCount + 1;
70
- return { ...state,
70
+ return {
71
+ ...state,
71
72
  requested: true,
72
73
  loadingCount,
73
74
  loading: !!loadingCount
74
75
  };
75
-
76
76
  case actions.REQUEST_SUBFOLDERS:
77
77
  loadingCount = state.loadingCount + 1;
78
- return { ...state,
78
+ return {
79
+ ...state,
79
80
  requested: true,
80
81
  loadingCount,
81
82
  loading: !!loadingCount
82
83
  };
83
-
84
84
  case actions.TOGGLE:
85
- return { ...state,
85
+ return {
86
+ ...state,
86
87
  expanded: !state.expanded
87
88
  };
88
-
89
89
  default:
90
90
  return state;
91
91
  }
@@ -15,12 +15,12 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import folder from './folder';
19
20
  import * as actions from '../actions/files';
20
21
  export default function foldersReducer() {
21
22
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
23
  let action = arguments.length > 1 ? arguments[1] : undefined;
23
-
24
24
  switch (action.type) {
25
25
  case actions.ADD_FOLDER:
26
26
  case actions.RECEIVE_FILES:
@@ -29,10 +29,10 @@ export default function foldersReducer() {
29
29
  case actions.REQUEST_FILES:
30
30
  case actions.REQUEST_SUBFOLDERS:
31
31
  case actions.TOGGLE:
32
- return { ...state,
32
+ return {
33
+ ...state,
33
34
  [action.id]: folder(state[action.id], action)
34
35
  };
35
-
36
36
  default:
37
37
  return state;
38
38
  }
@@ -15,15 +15,16 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { ADD_IMAGE, REQUEST_INITIAL_IMAGES, REQUEST_IMAGES, RECEIVE_IMAGES, FAIL_IMAGES_LOAD } from '../actions/images';
19
20
  import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
20
21
  export default function imagesReducer() {
21
22
  let prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
23
  let action = arguments.length > 1 ? arguments[1] : undefined;
23
24
  const ctxt = action.payload && action.payload.contextType;
24
- const state = { ...prevState
25
+ const state = {
26
+ ...prevState
25
27
  };
26
-
27
28
  if (ctxt && !state[ctxt]) {
28
29
  state[ctxt] = {
29
30
  files: [],
@@ -32,7 +33,6 @@ export default function imagesReducer() {
32
33
  hasMore: true
33
34
  };
34
35
  }
35
-
36
36
  switch (action.type) {
37
37
  case ADD_IMAGE:
38
38
  {
@@ -56,7 +56,6 @@ export default function imagesReducer() {
56
56
  };
57
57
  return state;
58
58
  }
59
-
60
59
  case REQUEST_INITIAL_IMAGES:
61
60
  state[ctxt] = {
62
61
  files: [],
@@ -65,11 +64,9 @@ export default function imagesReducer() {
65
64
  hasMore: true
66
65
  };
67
66
  return state;
68
-
69
67
  case REQUEST_IMAGES:
70
68
  state[ctxt].isLoading = true;
71
69
  return state;
72
-
73
70
  case RECEIVE_IMAGES:
74
71
  // If a request resolved with files but the searchString has since
75
72
  // changed, then the files should not be concatenated because this
@@ -82,33 +79,26 @@ export default function imagesReducer() {
82
79
  hasMore: !!action.payload.bookmark
83
80
  };
84
81
  }
85
-
86
82
  return state;
87
-
88
83
  case FAIL_IMAGES_LOAD:
89
84
  state[ctxt] = {
90
85
  isLoading: false,
91
86
  error: action.payload.error,
92
87
  files: []
93
88
  };
94
-
95
89
  if (action.payload.files && action.payload.files.length === 0) {
96
90
  state[ctxt].bookmark = null;
97
91
  }
98
-
99
92
  return state;
100
-
101
93
  case CHANGE_CONTEXT:
102
94
  {
103
95
  return state;
104
96
  }
105
-
106
97
  case CHANGE_SEARCH_STRING:
107
98
  {
108
99
  state.searchString = action.payload;
109
100
  return state;
110
101
  }
111
-
112
102
  default:
113
103
  return prevState;
114
104
  }
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import noop from './noop';
19
20
  import uiReducer from './ui';
20
21
  import collectionsReducer from './collections';
@@ -30,8 +31,9 @@ import session from './session';
30
31
  import newPageLinkReducer from './newPageLinkExpanded';
31
32
  import { changeContextType, changeContextId, changeSearchString, changeSortBy } from './filter';
32
33
  import { allFilesLoading } from './all_files';
33
- import { combineReducers } from 'redux'; // combine for root level state.
34
+ import { combineReducers } from 'redux';
34
35
 
36
+ // combine for root level state.
35
37
  export default combineReducers({
36
38
  ui: uiReducer,
37
39
  source: noop,
@@ -15,17 +15,19 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { REQUEST_INITIAL_MEDIA, REQUEST_MEDIA, RECEIVE_MEDIA, FAIL_MEDIA } from '../actions/media';
19
- import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter'; // manages the state for a specific collection. assumes the action is intended
20
- // for this collection (see collections.js)
20
+ import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
21
21
 
22
+ // manages the state for a specific collection. assumes the action is intended
23
+ // for this collection (see collections.js)
22
24
  export default function mediaReducer() {
23
25
  let prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
26
  let action = arguments.length > 1 ? arguments[1] : undefined;
25
27
  const ctxt = action.payload && action.payload.contextType;
26
- const state = { ...prevState
28
+ const state = {
29
+ ...prevState
27
30
  };
28
-
29
31
  if (ctxt && !state[ctxt]) {
30
32
  state[ctxt] = {
31
33
  files: [],
@@ -34,7 +36,6 @@ export default function mediaReducer() {
34
36
  hasMore: true
35
37
  };
36
38
  }
37
-
38
39
  switch (action.type) {
39
40
  case REQUEST_INITIAL_MEDIA:
40
41
  state[ctxt] = {
@@ -44,11 +45,9 @@ export default function mediaReducer() {
44
45
  hasMore: true
45
46
  };
46
47
  return state;
47
-
48
48
  case REQUEST_MEDIA:
49
49
  state[ctxt].isLoading = true;
50
50
  return state;
51
-
52
51
  case RECEIVE_MEDIA:
53
52
  state[ctxt] = {
54
53
  files: state[ctxt].files.concat(action.payload.files),
@@ -57,27 +56,21 @@ export default function mediaReducer() {
57
56
  hasMore: !!action.payload.bookmark
58
57
  };
59
58
  return state;
60
-
61
59
  case FAIL_MEDIA:
62
60
  {
63
61
  state[ctxt] = {
64
62
  isLoading: false,
65
63
  error: action.payload.error
66
64
  };
67
-
68
65
  if (action.payload.files && action.payload.files.length === 0) {
69
66
  state[ctxt].bookmark = null;
70
67
  }
71
-
72
68
  return state;
73
69
  }
74
-
75
70
  case CHANGE_CONTEXT:
76
71
  return state;
77
-
78
72
  case CHANGE_SEARCH_STRING:
79
73
  return state;
80
-
81
74
  default:
82
75
  return prevState;
83
76
  }
@@ -15,15 +15,14 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { TOGGLE_NEWPAGE_FORM } from '../actions/links';
19
20
  export default function () {
20
21
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
21
22
  let action = arguments.length > 1 ? arguments[1] : undefined;
22
-
23
23
  switch (action.type) {
24
24
  case TOGGLE_NEWPAGE_FORM:
25
25
  return !state;
26
-
27
26
  default:
28
27
  return state;
29
28
  }
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  export default function () {
19
20
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
20
21
  return state;
@@ -15,15 +15,14 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { SET_ROOT } from '../actions/files';
19
20
  export default function rootFolderIdReducer() {
20
21
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
21
22
  let action = arguments.length > 1 ? arguments[1] : undefined;
22
-
23
23
  switch (action.type) {
24
24
  case SET_ROOT:
25
25
  return action.id;
26
-
27
26
  default:
28
27
  return state;
29
28
  }
@@ -15,18 +15,18 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { RECEIVE_SESSION } from '../actions/session';
19
20
  const defaultState = {};
20
21
  export default function sessionReducer() {
21
22
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
22
23
  let action = arguments.length > 1 ? arguments[1] : undefined;
23
-
24
24
  switch (action.type) {
25
25
  case RECEIVE_SESSION:
26
- return { ...state,
26
+ return {
27
+ ...state,
27
28
  ...action.data
28
29
  };
29
-
30
30
  default:
31
31
  return state;
32
32
  }
@@ -15,71 +15,58 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { CHANGE_TAB, CHANGE_ACCORDION, RESET_UI, HIDE_SIDEBAR, SHOW_SIDEBAR } from '../actions/ui';
19
20
  import { combineReducers } from 'redux';
20
-
21
21
  function hidden() {
22
22
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
23
23
  let action = arguments.length > 1 ? arguments[1] : undefined;
24
-
25
24
  switch (action.type) {
26
25
  case HIDE_SIDEBAR:
27
26
  return true;
28
-
29
27
  case RESET_UI:
30
28
  case SHOW_SIDEBAR:
31
29
  return false;
32
-
33
30
  default:
34
31
  return state;
35
32
  }
36
33
  }
37
-
38
34
  function selectedTabIndex() {
39
35
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
40
36
  let action = arguments.length > 1 ? arguments[1] : undefined;
41
-
42
37
  switch (action.type) {
43
38
  case RESET_UI:
44
39
  return 0;
45
-
46
40
  case CHANGE_TAB:
47
41
  return action.index;
48
-
49
42
  default:
50
43
  return state;
51
44
  }
52
45
  }
53
-
54
46
  function selectedAccordionIndex() {
55
47
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
56
48
  let action = arguments.length > 1 ? arguments[1] : undefined;
57
-
58
49
  switch (action.type) {
59
50
  case RESET_UI:
60
51
  return '';
61
-
62
52
  case CHANGE_TAB:
63
53
  // switch links panel accordion tab back to first tab any time we
64
54
  // switch _back to_ links panel
65
55
  return '';
66
-
67
56
  case CHANGE_ACCORDION:
68
57
  try {
69
58
  if (action.index !== window.sessionStorage.getItem('canvas_rce_links_accordion_index')) {
70
59
  window.sessionStorage.setItem('canvas_rce_links_accordion_index', action.index);
71
60
  }
72
- } catch (err) {// If there is an error accessing session storage, just ignore it.
61
+ } catch (err) {
62
+ // If there is an error accessing session storage, just ignore it.
73
63
  // We are likely in a test environment
74
64
  }
75
-
76
65
  return action.index;
77
-
78
66
  default:
79
67
  return state;
80
68
  }
81
69
  }
82
-
83
70
  export default combineReducers({
84
71
  hidden,
85
72
  selectedTabIndex,
@@ -15,85 +15,71 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { START_FILE_UPLOAD, FAIL_FILE_UPLOAD, FAIL_MEDIA_UPLOAD, MEDIA_UPLOAD_SUCCESS, TOGGLE_UPLOAD_FORM, COMPLETE_FILE_UPLOAD, RECEIVE_FOLDER, FAIL_FOLDERS_LOAD, PROCESSED_FOLDER_BATCH, QUOTA_EXCEEDED_UPLOAD, START_LOADING, STOP_LOADING } from '../actions/upload';
19
20
  import { combineReducers } from 'redux';
20
-
21
21
  function uploading() {
22
22
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
23
23
  let action = arguments.length > 1 ? arguments[1] : undefined;
24
-
25
24
  switch (action.type) {
26
25
  case START_FILE_UPLOAD:
27
26
  return true;
28
-
29
27
  case FAIL_FILE_UPLOAD:
30
28
  case COMPLETE_FILE_UPLOAD:
31
29
  case QUOTA_EXCEEDED_UPLOAD:
32
30
  return false;
33
-
34
31
  default:
35
32
  return state;
36
33
  }
37
34
  }
38
-
39
35
  function error() {
40
36
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
41
37
  let action = arguments.length > 1 ? arguments[1] : undefined;
42
-
43
38
  switch (action.type) {
44
39
  case COMPLETE_FILE_UPLOAD:
45
40
  return {};
46
-
47
41
  case QUOTA_EXCEEDED_UPLOAD:
48
- return { ...state,
42
+ return {
43
+ ...state,
49
44
  type: action.type
50
45
  };
51
-
52
46
  default:
53
47
  return state;
54
48
  }
55
49
  }
56
-
57
50
  function formExpanded() {
58
51
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
59
52
  let action = arguments.length > 1 ? arguments[1] : undefined;
60
-
61
53
  switch (action.type) {
62
54
  case COMPLETE_FILE_UPLOAD:
63
55
  return false;
64
-
65
56
  case TOGGLE_UPLOAD_FORM:
66
57
  return !state;
67
-
68
58
  default:
69
59
  return state;
70
60
  }
71
61
  }
72
-
73
62
  function folders() {
74
63
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
64
  let action = arguments.length > 1 ? arguments[1] : undefined;
76
-
77
65
  switch (action.type) {
78
66
  case RECEIVE_FOLDER:
79
- return { ...state,
67
+ return {
68
+ ...state,
80
69
  [action.id]: {
81
70
  id: action.id,
82
71
  name: action.name,
83
72
  parentId: action.parentId
84
73
  }
85
74
  };
86
-
87
75
  case FAIL_FOLDERS_LOAD:
88
76
  default:
89
77
  return state;
90
78
  }
91
79
  }
92
-
93
80
  function rootFolderId() {
94
81
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
95
82
  let action = arguments.length > 1 ? arguments[1] : undefined;
96
-
97
83
  switch (action.type) {
98
84
  case RECEIVE_FOLDER:
99
85
  if (action.parentId === null) {
@@ -101,72 +87,58 @@ function rootFolderId() {
101
87
  } else {
102
88
  return state;
103
89
  }
104
-
105
90
  default:
106
91
  return state;
107
92
  }
108
- } // Returns an mapping of folder id -> list of children ids,
109
- // with the children sorted alphabetically by name.
110
-
93
+ }
111
94
 
95
+ // Returns an mapping of folder id -> list of children ids,
96
+ // with the children sorted alphabetically by name.
112
97
  function folderTree() {
113
98
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
114
99
  let action = arguments.length > 1 ? arguments[1] : undefined;
115
-
116
100
  switch (action.type) {
117
101
  case PROCESSED_FOLDER_BATCH:
118
102
  {
119
103
  const folders = action.folders;
120
104
  const tree = {};
121
-
122
105
  for (const folderId in folders) {
123
106
  const folder = folders[folderId];
124
107
  tree[folder.id] = tree[folder.id] || [];
125
-
126
108
  if (folder.parentId) {
127
109
  tree[folder.parentId] = tree[folder.parentId] || [];
128
110
  tree[folder.parentId].push(folder.id);
129
111
  }
130
112
  }
131
-
132
113
  for (const parentFolderId in tree) {
133
114
  const children = tree[parentFolderId];
134
115
  children.sort((a, b) => folders[a].name.localeCompare(folders[b].name));
135
116
  }
136
-
137
117
  return tree;
138
118
  }
139
-
140
119
  default:
141
120
  return state;
142
121
  }
143
122
  }
144
-
145
123
  function loadingFolders() {
146
124
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
147
125
  let action = arguments.length > 1 ? arguments[1] : undefined;
148
-
149
126
  switch (action.type) {
150
127
  case START_LOADING:
151
128
  return true;
152
-
153
129
  case STOP_LOADING:
154
130
  return false;
155
-
156
131
  case FAIL_FOLDERS_LOAD:
157
132
  {
158
133
  return false;
159
134
  }
160
-
161
135
  default:
162
136
  return state;
163
137
  }
164
138
  }
165
-
166
139
  function uploadingMediaStatus() {
167
140
  let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
168
141
  let action = arguments.length > 1 ? arguments[1] : undefined;
169
-
170
142
  switch (action.type) {
171
143
  case START_LOADING:
172
144
  return {
@@ -174,26 +146,22 @@ function uploadingMediaStatus() {
174
146
  uploaded: false,
175
147
  error: false
176
148
  };
177
-
178
149
  case FAIL_MEDIA_UPLOAD:
179
150
  return {
180
151
  loading: false,
181
152
  uploaded: false,
182
153
  error: true
183
154
  };
184
-
185
155
  case MEDIA_UPLOAD_SUCCESS:
186
156
  return {
187
157
  loading: false,
188
158
  uploaded: true,
189
159
  error: false
190
160
  };
191
-
192
161
  default:
193
162
  return state;
194
163
  }
195
164
  }
196
-
197
165
  export default combineReducers({
198
166
  uploading,
199
167
  formExpanded,
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { createStore, applyMiddleware } from 'redux';
19
20
  import rootReducer from '../reducers';
20
21
  import initialState from './initialState';