@instructure/canvas-rce 5.14.1 → 5.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/DEVELOPMENT.md +2 -2
  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/{es/rce/__mocks__/_mockStudioPlayer.js → __tests__/sidebar/reducers/all_files.test.js} +12 -4
  17. package/babel.config.js +3 -1
  18. package/es/bridge/Bridge.js +18 -73
  19. package/es/bridge/index.js +1 -0
  20. package/es/canvasFileBrowser/FileBrowser.js +21 -77
  21. package/es/canvasFileBrowser/en-US.js +3 -6
  22. package/es/common/FlashAlert.js +15 -39
  23. package/es/common/browser.js +4 -2
  24. package/es/common/fileUrl.js +105 -64
  25. package/es/common/incremental-loading/LoadMoreButton.js +4 -4
  26. package/es/common/incremental-loading/LoadingIndicator.js +1 -2
  27. package/es/common/incremental-loading/LoadingStatus.js +5 -13
  28. package/es/common/incremental-loading/index.js +1 -0
  29. package/es/common/incremental-loading/useIncrementalLoading.js +1 -3
  30. package/es/common/indicate.js +16 -10
  31. package/es/common/mimeClass.js +3 -4
  32. package/es/common/natcompare.js +1 -4
  33. package/es/defaultTinymceConfig.js +5 -3
  34. package/es/elementDenylist.js +1 -0
  35. package/es/enhance-user-content/doc_previews.js +24 -35
  36. package/es/enhance-user-content/enhance_user_content.js +32 -67
  37. package/es/enhance-user-content/external_links.js +6 -9
  38. package/es/enhance-user-content/index.js +1 -0
  39. package/es/enhance-user-content/instructure_helper.js +22 -50
  40. package/es/enhance-user-content/jqueryish_funcs.js +8 -11
  41. package/es/enhance-user-content/mathml.js +48 -107
  42. package/es/enhance-user-content/media_comment_thumbnail.js +6 -25
  43. package/es/format-message.js +4 -5
  44. package/es/getThemeVars.js +8 -6
  45. package/es/getTranslations.js +1 -78
  46. package/es/index.d.ts +59 -0
  47. package/es/index.js +6 -6
  48. package/es/rce/AlertMessageArea.js +15 -16
  49. package/es/rce/DraggingBlocker.js +4 -2
  50. package/es/rce/KeyboardShortcutModal.js +3 -2
  51. package/es/rce/RCE.js +16 -17
  52. package/es/rce/RCEGlobals.js +12 -10
  53. package/es/rce/RCEVariants.js +29 -14
  54. package/es/rce/RCEWrapper.js +530 -641
  55. package/es/rce/RCEWrapper.utils.js +131 -0
  56. package/es/rce/RCEWrapperProps.js +9 -5
  57. package/es/rce/RceHtmlEditor.js +17 -19
  58. package/es/rce/ResizeHandle.js +4 -10
  59. package/es/rce/RestoreAutoSaveModal.js +1 -2
  60. package/es/rce/ShowOnFocusButton/index.js +2 -8
  61. package/es/rce/StatusBar.js +10 -44
  62. package/es/rce/alertHandler.js +1 -4
  63. package/es/rce/contentInsertion.js +36 -59
  64. package/es/rce/contentInsertionUtils.js +6 -8
  65. package/es/rce/contentRendering.js +13 -17
  66. package/es/rce/customEvents.js +1 -0
  67. package/es/rce/editorLanguage.js +23 -11
  68. package/es/rce/indicatorRegion.js +7 -7
  69. package/es/rce/normalizeLocale.js +5 -3
  70. package/es/rce/normalizeProps.js +7 -5
  71. package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
  72. package/es/rce/plugins/instructure_color/clickCallback.js +82 -0
  73. package/es/rce/plugins/instructure_color/components/ColorPicker.js +294 -0
  74. package/es/rce/plugins/instructure_color/components/ColorPopup.js +67 -0
  75. package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
  76. package/es/rce/plugins/instructure_color/plugin.js +40 -0
  77. package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
  78. package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
  79. package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
  80. package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
  81. package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
  82. package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +26 -25
  83. package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +2 -3
  84. package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
  85. package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
  86. package/es/rce/plugins/instructure_documents/components/Link.js +4 -20
  87. package/es/rce/plugins/instructure_documents/plugin.js +7 -14
  88. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
  89. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
  90. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +17 -37
  91. package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +14 -15
  92. package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +6 -5
  93. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
  94. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +14 -8
  95. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +13 -18
  96. package/es/rce/plugins/instructure_equation/MathIcon/index.js +4 -5
  97. package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
  98. package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
  99. package/es/rce/plugins/instructure_equation/mathlive/index.js +167 -16
  100. package/es/rce/plugins/instructure_equation/plugin.js +7 -10
  101. package/es/rce/plugins/instructure_fullscreen/plugin.js +1 -6
  102. package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
  103. package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
  104. package/es/rce/plugins/instructure_icon_maker/clickCallback.js +5 -8
  105. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +47 -51
  106. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +10 -10
  107. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +11 -11
  108. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +6 -6
  109. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +8 -10
  110. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +32 -31
  111. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +24 -35
  112. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +32 -32
  113. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +11 -11
  114. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +16 -15
  115. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
  116. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +11 -11
  117. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +9 -13
  118. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +12 -13
  119. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +33 -80
  120. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +34 -28
  121. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
  122. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
  123. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +5 -5
  124. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +7 -8
  125. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +5 -7
  126. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +5 -10
  127. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
  128. package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +38 -60
  129. package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
  130. package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
  131. package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
  132. package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
  133. package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +2 -4
  134. package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
  135. package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
  136. package/es/rce/plugins/instructure_icon_maker/svg/image.js +74 -90
  137. package/es/rce/plugins/instructure_icon_maker/svg/index.js +17 -24
  138. package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  139. package/es/rce/plugins/instructure_icon_maker/svg/settings.js +48 -58
  140. package/es/rce/plugins/instructure_icon_maker/svg/shape.js +5 -54
  141. package/es/rce/plugins/instructure_icon_maker/svg/text.js +35 -124
  142. package/es/rce/plugins/instructure_icon_maker/svg/utils.js +3 -11
  143. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +4 -9
  144. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
  145. package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
  146. package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +2 -3
  147. package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
  148. package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
  149. package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +9 -31
  150. package/es/rce/plugins/instructure_image/ImageList/Image.js +8 -14
  151. package/es/rce/plugins/instructure_image/ImageList/index.js +8 -10
  152. package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +9 -31
  153. package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +6 -19
  154. package/es/rce/plugins/instructure_image/Images/index.js +1 -3
  155. package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
  156. package/es/rce/plugins/instructure_image/plugin.js +14 -20
  157. package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
  158. package/es/rce/plugins/instructure_links/components/AccordionSection.js +8 -8
  159. package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
  160. package/es/rce/plugins/instructure_links/components/Link.js +68 -84
  161. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +2 -23
  162. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +3 -6
  163. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
  164. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +3 -14
  165. package/es/rce/plugins/instructure_links/components/LinkSet.js +32 -57
  166. package/es/rce/plugins/instructure_links/components/LinksPanel.js +22 -10
  167. package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
  168. package/es/rce/plugins/instructure_links/components/NoResults.js +7 -14
  169. package/es/rce/plugins/instructure_links/plugin.js +23 -49
  170. package/es/rce/plugins/instructure_links/validateURL.js +81 -36
  171. package/es/rce/plugins/instructure_media_embed/clickCallback.js +5 -9
  172. package/es/rce/plugins/instructure_media_embed/components/Embed.js +7 -7
  173. package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
  174. package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
  175. package/es/rce/plugins/instructure_paste/plugin.js +29 -33
  176. package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +31 -79
  177. package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +24 -83
  178. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +39 -69
  179. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
  180. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
  181. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +5 -14
  182. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
  183. package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
  184. package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
  185. package/es/rce/plugins/instructure_rce_external_tools/constants.js +28 -0
  186. package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +20 -6
  187. package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
  188. package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +129 -136
  189. package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +110 -112
  190. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
  191. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +4 -21
  192. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +5 -19
  193. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
  194. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
  195. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
  196. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
  197. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +23 -16
  198. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +3 -4
  199. package/es/rce/plugins/instructure_rce_external_tools/plugin.js +11 -20
  200. package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
  201. package/es/rce/plugins/instructure_rce_external_tools/util/externalToolsForToolbar.js +42 -0
  202. package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +6 -35
  203. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +13 -17
  204. package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
  205. package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +16 -66
  206. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +21 -35
  207. package/es/rce/plugins/instructure_record/clickCallback.js +32 -44
  208. package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
  209. package/es/rce/plugins/instructure_record/plugin.js +11 -18
  210. package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +4 -8
  211. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +34 -51
  212. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +12 -30
  213. package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
  214. package/es/rce/plugins/instructure_search_and_replace/plugin.js +2 -5
  215. package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
  216. package/es/rce/plugins/instructure_wordcount/clickCallback.js +5 -9
  217. package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +27 -37
  218. package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
  219. package/es/rce/plugins/instructure_wordcount/utils/countContent.js +4 -11
  220. package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +6 -8
  221. package/es/rce/plugins/shared/CanvasContentTray.js +29 -63
  222. package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
  223. package/es/rce/plugins/shared/ColorInput.js +27 -39
  224. package/es/rce/plugins/shared/ConditionalTooltip.js +6 -6
  225. package/es/rce/plugins/shared/ContentSelection.js +29 -78
  226. package/es/rce/plugins/shared/DimensionUtils.js +3 -12
  227. package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
  228. package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
  229. package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
  230. package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
  231. package/es/rce/plugins/shared/EventUtils.js +2 -4
  232. package/es/rce/plugins/shared/Filter.js +8 -38
  233. package/es/rce/plugins/shared/FixedContentTray.js +16 -17
  234. package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +4 -12
  235. package/es/rce/plugins/shared/ImageCropper/Modal.js +16 -20
  236. package/es/rce/plugins/shared/ImageCropper/Preview.js +18 -24
  237. package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
  238. package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +10 -14
  239. package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +4 -4
  240. package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +5 -15
  241. package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +8 -11
  242. package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +5 -16
  243. package/es/rce/plugins/shared/ImageCropper/controls/index.js +5 -5
  244. package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +16 -31
  245. package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
  246. package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +19 -31
  247. package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
  248. package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
  249. package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
  250. package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
  251. package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
  252. package/es/rce/plugins/shared/ImageCropper/svg/shape.js +5 -22
  253. package/es/rce/plugins/shared/ImageCropper/svg/utils.js +3 -4
  254. package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +20 -50
  255. package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
  256. package/es/rce/plugins/shared/ImageOptionsForm.js +18 -20
  257. package/es/rce/plugins/shared/LinkDisplay.js +9 -11
  258. package/es/rce/plugins/shared/PreviewIcon.js +9 -15
  259. package/es/rce/plugins/shared/Previewable.js +1 -0
  260. package/es/rce/plugins/shared/RceFileBrowser.js +7 -10
  261. package/es/rce/plugins/shared/StoreContext.js +9 -12
  262. package/es/rce/plugins/shared/StudioLtiSupportUtils.js +15 -12
  263. package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
  264. package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +19 -25
  265. package/es/rce/plugins/shared/Upload/CategoryProcessor.js +2 -3
  266. package/es/rce/plugins/shared/Upload/ComputerPanel.js +19 -40
  267. package/es/rce/plugins/shared/Upload/PanelFilter.js +10 -20
  268. package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
  269. package/es/rce/plugins/shared/Upload/UploadFile.js +32 -38
  270. package/es/rce/plugins/shared/Upload/UploadFileModal.js +37 -59
  271. package/es/rce/plugins/shared/Upload/UrlPanel.js +5 -5
  272. package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +25 -36
  273. package/es/rce/plugins/shared/Upload/doFileUpload.js +10 -13
  274. package/es/rce/plugins/shared/Upload/index.js +1 -0
  275. package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +8 -11
  276. package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +19 -40
  277. package/es/rce/plugins/shared/ai_tools/aiicons.js +3 -2
  278. package/es/rce/plugins/shared/ai_tools/index.js +1 -0
  279. package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
  280. package/es/rce/plugins/shared/canvasContentUtils.js +7 -11
  281. package/es/rce/plugins/shared/compressionUtils.js +18 -28
  282. package/es/rce/plugins/shared/dateUtils.js +1 -1
  283. package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
  284. package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +18 -24
  285. package/es/rce/plugins/shared/do-fetch-api-effect/get-cookie.js +1 -1
  286. package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
  287. package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
  288. package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
  289. package/es/rce/plugins/shared/fileShape.js +4 -9
  290. package/es/rce/plugins/shared/fileTypeUtils.js +34 -47
  291. package/es/rce/plugins/shared/fileUtils.js +1 -2
  292. package/es/rce/plugins/shared/linkUtils.js +1 -16
  293. package/es/rce/plugins/shared/round.js +2 -2
  294. package/es/rce/plugins/shared/trayUtils.js +7 -3
  295. package/es/rce/plugins/shared/useDataUrl.js +13 -14
  296. package/es/rce/plugins/shared/useFilterSettings.js +3 -3
  297. package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +4 -8
  298. package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +12 -72
  299. package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
  300. package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
  301. package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
  302. package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +2 -9
  303. package/es/rce/plugins/tinymce-a11y-checker/plugin.js +18 -24
  304. package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
  305. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
  306. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +2 -7
  307. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
  308. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
  309. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
  310. package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
  311. package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +2 -6
  312. package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
  313. package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
  314. package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +2 -8
  315. package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
  316. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
  317. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
  318. package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
  319. package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
  320. package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +3 -30
  321. package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +18 -18
  322. package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +6 -12
  323. package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
  324. package/es/rce/root.js +17 -16
  325. package/es/rce/sanitizePlugins.js +1 -3
  326. package/es/rce/style.js +1 -4
  327. package/es/rce/tinyRCE.js +14 -9
  328. package/es/rce/tinymce.oxide.content.min.css.js +1 -0
  329. package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
  330. package/es/rce/transformContent.js +9 -11
  331. package/es/rce/types.js +1 -0
  332. package/es/rce/userOS.js +1 -1
  333. package/es/rce/wrapInitCb.js +50 -43
  334. package/es/rcs/api.js +100 -171
  335. package/es/rcs/buildError.js +8 -20
  336. package/es/rcs/fake.js +9 -20
  337. package/es/sidebar/actions/all_files.js +2 -0
  338. package/es/sidebar/actions/data.js +4 -7
  339. package/es/sidebar/actions/documents.js +19 -18
  340. package/es/sidebar/actions/files.js +21 -28
  341. package/es/sidebar/actions/filter.js +5 -5
  342. package/es/sidebar/actions/flickr.js +1 -1
  343. package/es/sidebar/actions/images.js +32 -37
  344. package/es/sidebar/actions/links.js +1 -0
  345. package/es/sidebar/actions/media.js +27 -28
  346. package/es/sidebar/actions/session.js +2 -5
  347. package/es/sidebar/actions/ui.js +1 -0
  348. package/es/sidebar/actions/upload.js +38 -74
  349. package/es/sidebar/containers/Sidebar.js +1 -2
  350. package/es/sidebar/containers/sidebarHandlers.js +9 -13
  351. package/es/sidebar/dragHtml.js +11 -5
  352. package/es/sidebar/reducers/all_files.js +5 -6
  353. package/es/sidebar/reducers/collection.js +12 -15
  354. package/es/sidebar/reducers/collections.js +6 -8
  355. package/es/sidebar/reducers/documents.js +7 -16
  356. package/es/sidebar/reducers/files.js +4 -6
  357. package/es/sidebar/reducers/filter.js +8 -23
  358. package/es/sidebar/reducers/flickr.js +10 -12
  359. package/es/sidebar/reducers/folder.js +16 -18
  360. package/es/sidebar/reducers/folders.js +4 -6
  361. package/es/sidebar/reducers/images.js +4 -16
  362. package/es/sidebar/reducers/index.js +3 -1
  363. package/es/sidebar/reducers/media.js +7 -16
  364. package/es/sidebar/reducers/newPageLinkExpanded.js +2 -5
  365. package/es/sidebar/reducers/noop.js +2 -2
  366. package/es/sidebar/reducers/rootFolderId.js +2 -5
  367. package/es/sidebar/reducers/session.js +4 -6
  368. package/es/sidebar/reducers/ui.js +6 -25
  369. package/es/sidebar/reducers/upload.js +16 -64
  370. package/es/sidebar/store/configureStore.js +1 -0
  371. package/es/sidebar/store/initialState.js +14 -26
  372. package/es/translations/locales/ab.js +1 -0
  373. package/es/translations/locales/ar.js +72 -8
  374. package/es/translations/locales/ca.js +72 -8
  375. package/es/translations/locales/cs.js +1 -0
  376. package/es/translations/locales/cs_CZ.js +1 -0
  377. package/es/translations/locales/cy.js +72 -8
  378. package/es/translations/locales/da-x-k12.js +72 -8
  379. package/es/translations/locales/da.js +72 -8
  380. package/es/translations/locales/da_DK.js +1 -0
  381. package/es/translations/locales/de.js +72 -8
  382. package/es/translations/locales/el.js +4 -0
  383. package/es/translations/locales/en-AU-x-unimelb.js +72 -8
  384. package/es/translations/locales/en-GB-x-ukhe.js +72 -8
  385. package/es/translations/locales/en.js +72 -8
  386. package/es/translations/locales/en_AU.js +72 -8
  387. package/es/translations/locales/en_CA.js +72 -8
  388. package/es/translations/locales/en_CY.js +72 -8
  389. package/es/translations/locales/en_GB.js +72 -8
  390. package/es/translations/locales/en_NZ.js +1 -0
  391. package/es/translations/locales/en_SE.js +1 -0
  392. package/es/translations/locales/en_US.js +1 -0
  393. package/es/translations/locales/es.js +72 -8
  394. package/es/translations/locales/es_ES.js +72 -8
  395. package/es/translations/locales/es_GT.js +1 -0
  396. package/es/translations/locales/fa_IR.js +7 -0
  397. package/es/translations/locales/fi.js +72 -8
  398. package/es/translations/locales/fr.js +72 -8
  399. package/es/translations/locales/fr_CA.js +73 -9
  400. package/es/translations/locales/ga.js +5 -13
  401. package/es/translations/locales/he.js +7 -0
  402. package/es/translations/locales/hi.js +72 -8
  403. package/es/translations/locales/ht.js +72 -8
  404. package/es/translations/locales/hu.js +7 -6
  405. package/es/translations/locales/hu_HU.js +1 -0
  406. package/es/translations/locales/hy.js +1 -0
  407. package/es/translations/locales/id.js +72 -8
  408. package/es/translations/locales/id_ID.js +1 -0
  409. package/es/translations/locales/is.js +72 -8
  410. package/es/translations/locales/it.js +72 -8
  411. package/es/translations/locales/ja.js +72 -8
  412. package/es/translations/locales/ko.js +1 -0
  413. package/es/translations/locales/ko_KR.js +1 -0
  414. package/es/translations/locales/lt.js +1 -0
  415. package/es/translations/locales/lt_LT.js +1 -0
  416. package/es/translations/locales/mi.js +72 -8
  417. package/es/translations/locales/mn_MN.js +1 -0
  418. package/es/translations/locales/ms.js +72 -8
  419. package/es/translations/locales/nb-x-k12.js +72 -8
  420. package/es/translations/locales/nb.js +72 -8
  421. package/es/translations/locales/nl.js +72 -8
  422. package/es/translations/locales/nl_NL.js +1 -0
  423. package/es/translations/locales/nn.js +7 -6
  424. package/es/translations/locales/pl.js +72 -8
  425. package/es/translations/locales/pt.js +72 -8
  426. package/es/translations/locales/pt_BR.js +72 -8
  427. package/es/translations/locales/ro.js +1 -0
  428. package/es/translations/locales/ru.js +72 -8
  429. package/es/translations/locales/se.js +1 -0
  430. package/es/translations/locales/sl.js +72 -8
  431. package/es/translations/locales/sv-x-k12.js +72 -8
  432. package/es/translations/locales/sv.js +72 -8
  433. package/es/translations/locales/sv_SE.js +1 -0
  434. package/es/translations/locales/tg.js +1 -0
  435. package/es/translations/locales/th.js +72 -8
  436. package/es/translations/locales/th_TH.js +1 -0
  437. package/es/translations/locales/tl_PH.js +1 -0
  438. package/es/translations/locales/tr.js +7 -0
  439. package/es/translations/locales/uk_UA.js +7 -0
  440. package/es/translations/locales/vi.js +72 -8
  441. package/es/translations/locales/vi_VN.js +1 -0
  442. package/es/translations/locales/zh-Hans.js +72 -8
  443. package/es/translations/locales/zh-Hant.js +72 -8
  444. package/es/translations/locales/zh.js +72 -8
  445. package/es/translations/locales/zh_HK.js +72 -8
  446. package/es/translations/locales/zh_TW.Big5.js +1 -0
  447. package/es/translations/locales/zh_TW.js +1 -0
  448. package/es/translations/tinymce/ar_SA.js +1 -0
  449. package/es/translations/tinymce/fi.js +1 -0
  450. package/es/translations/tinymce/ga.js +1 -0
  451. package/es/translations/tinymce/id.js +1 -0
  452. package/es/translations/tinymce/ru.js +1 -0
  453. package/es/translations/tinymce/ru_RU.js +1 -0
  454. package/es/translations/tinymce/sl.js +1 -0
  455. package/es/translations/tinymce/sr.js +1 -0
  456. package/es/translations/tinymce/th.js +1 -0
  457. package/es/translations/tinymce/uk_UA.js +1 -0
  458. package/es/translations/tinymce/vi_VN.js +1 -0
  459. package/es/util/TypedDict.js +4 -2
  460. package/es/util/elem-util.js +1 -1
  461. package/es/util/encrypted-storage.js +3 -13
  462. package/es/util/file-url-util.js +2 -7
  463. package/es/util/fullscreenHelpers.js +9 -9
  464. package/es/util/instui-icon-helper.js +4 -3
  465. package/es/util/loadingPlaceholder.js +39 -41
  466. package/es/util/simpleCache.js +1 -5
  467. package/es/util/string-util.js +1 -1
  468. package/es/util/textarea-editing-util.js +3 -7
  469. package/es/util/tinymce-plugin-util.js +0 -5
  470. package/es/util/url-util.js +20 -29
  471. package/eslint.config.js +250 -0
  472. package/jest.config.js +1 -1
  473. package/locales/en.json +190 -10
  474. package/package.json +78 -82
  475. package/scripts/build-canvas +2 -1
  476. package/scripts/build.js +4 -4
  477. package/scripts/installTranslations.js +7 -8
  478. package/testcafe/RCEWrapper.test.js +0 -1
  479. package/testcafe/StatusBar.test.js +0 -1
  480. package/testcafe/axe.test.js +3 -4
  481. package/testcafe/enhanceUserContent.test.js +0 -1
  482. package/tsconfig.json +21 -16
  483. package/{es/rce/__mocks__/styleMock.js → types/format-message-generate-id.d.ts} +6 -2
  484. package/{es/rce/plugins/shared/__mocks__/screenfull.js → types/js-beautify.d.ts} +4 -7
  485. package/.eslintrc +0 -45
  486. package/.prettierignore +0 -6
  487. package/es/rce/__mocks__/_mockCryptoEs.js +0 -124
  488. package/es/rce/__mocks__/tinymceReact.js +0 -55
  489. package/es/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
@@ -15,71 +15,52 @@
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
- function hidden() {
22
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
23
- let action = arguments.length > 1 ? arguments[1] : undefined;
24
-
21
+ function hidden(state = false, action) {
25
22
  switch (action.type) {
26
23
  case HIDE_SIDEBAR:
27
24
  return true;
28
-
29
25
  case RESET_UI:
30
26
  case SHOW_SIDEBAR:
31
27
  return false;
32
-
33
28
  default:
34
29
  return state;
35
30
  }
36
31
  }
37
-
38
- function selectedTabIndex() {
39
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
40
- let action = arguments.length > 1 ? arguments[1] : undefined;
41
-
32
+ function selectedTabIndex(state = 0, action) {
42
33
  switch (action.type) {
43
34
  case RESET_UI:
44
35
  return 0;
45
-
46
36
  case CHANGE_TAB:
47
37
  return action.index;
48
-
49
38
  default:
50
39
  return state;
51
40
  }
52
41
  }
53
-
54
- function selectedAccordionIndex() {
55
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
56
- let action = arguments.length > 1 ? arguments[1] : undefined;
57
-
42
+ function selectedAccordionIndex(state = '', action) {
58
43
  switch (action.type) {
59
44
  case RESET_UI:
60
45
  return '';
61
-
62
46
  case CHANGE_TAB:
63
47
  // switch links panel accordion tab back to first tab any time we
64
48
  // switch _back to_ links panel
65
49
  return '';
66
-
67
50
  case CHANGE_ACCORDION:
68
51
  try {
69
52
  if (action.index !== window.sessionStorage.getItem('canvas_rce_links_accordion_index')) {
70
53
  window.sessionStorage.setItem('canvas_rce_links_accordion_index', action.index);
71
54
  }
72
- } catch (err) {// If there is an error accessing session storage, just ignore it.
55
+ } catch (err) {
56
+ // If there is an error accessing session storage, just ignore it.
73
57
  // We are likely in a test environment
74
58
  }
75
-
76
59
  return action.index;
77
-
78
60
  default:
79
61
  return state;
80
62
  }
81
63
  }
82
-
83
64
  export default combineReducers({
84
65
  hidden,
85
66
  selectedTabIndex,
@@ -15,85 +15,61 @@
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
- function uploading() {
22
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
23
- let action = arguments.length > 1 ? arguments[1] : undefined;
24
-
21
+ function uploading(state = false, action) {
25
22
  switch (action.type) {
26
23
  case START_FILE_UPLOAD:
27
24
  return true;
28
-
29
25
  case FAIL_FILE_UPLOAD:
30
26
  case COMPLETE_FILE_UPLOAD:
31
27
  case QUOTA_EXCEEDED_UPLOAD:
32
28
  return false;
33
-
34
29
  default:
35
30
  return state;
36
31
  }
37
32
  }
38
-
39
- function error() {
40
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
41
- let action = arguments.length > 1 ? arguments[1] : undefined;
42
-
33
+ function error(state = {}, action) {
43
34
  switch (action.type) {
44
35
  case COMPLETE_FILE_UPLOAD:
45
36
  return {};
46
-
47
37
  case QUOTA_EXCEEDED_UPLOAD:
48
- return { ...state,
38
+ return {
39
+ ...state,
49
40
  type: action.type
50
41
  };
51
-
52
42
  default:
53
43
  return state;
54
44
  }
55
45
  }
56
-
57
- function formExpanded() {
58
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
59
- let action = arguments.length > 1 ? arguments[1] : undefined;
60
-
46
+ function formExpanded(state = false, action) {
61
47
  switch (action.type) {
62
48
  case COMPLETE_FILE_UPLOAD:
63
49
  return false;
64
-
65
50
  case TOGGLE_UPLOAD_FORM:
66
51
  return !state;
67
-
68
52
  default:
69
53
  return state;
70
54
  }
71
55
  }
72
-
73
- function folders() {
74
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
- let action = arguments.length > 1 ? arguments[1] : undefined;
76
-
56
+ function folders(state = {}, action) {
77
57
  switch (action.type) {
78
58
  case RECEIVE_FOLDER:
79
- return { ...state,
59
+ return {
60
+ ...state,
80
61
  [action.id]: {
81
62
  id: action.id,
82
63
  name: action.name,
83
64
  parentId: action.parentId
84
65
  }
85
66
  };
86
-
87
67
  case FAIL_FOLDERS_LOAD:
88
68
  default:
89
69
  return state;
90
70
  }
91
71
  }
92
-
93
- function rootFolderId() {
94
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
95
- let action = arguments.length > 1 ? arguments[1] : undefined;
96
-
72
+ function rootFolderId(state = null, action) {
97
73
  switch (action.type) {
98
74
  case RECEIVE_FOLDER:
99
75
  if (action.parentId === null) {
@@ -101,72 +77,52 @@ function rootFolderId() {
101
77
  } else {
102
78
  return state;
103
79
  }
104
-
105
80
  default:
106
81
  return state;
107
82
  }
108
- } // Returns an mapping of folder id -> list of children ids,
109
- // with the children sorted alphabetically by name.
110
-
111
-
112
- function folderTree() {
113
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
114
- let action = arguments.length > 1 ? arguments[1] : undefined;
83
+ }
115
84
 
85
+ // Returns an mapping of folder id -> list of children ids,
86
+ // with the children sorted alphabetically by name.
87
+ function folderTree(state = {}, action) {
116
88
  switch (action.type) {
117
89
  case PROCESSED_FOLDER_BATCH:
118
90
  {
119
91
  const folders = action.folders;
120
92
  const tree = {};
121
-
122
93
  for (const folderId in folders) {
123
94
  const folder = folders[folderId];
124
95
  tree[folder.id] = tree[folder.id] || [];
125
-
126
96
  if (folder.parentId) {
127
97
  tree[folder.parentId] = tree[folder.parentId] || [];
128
98
  tree[folder.parentId].push(folder.id);
129
99
  }
130
100
  }
131
-
132
101
  for (const parentFolderId in tree) {
133
102
  const children = tree[parentFolderId];
134
103
  children.sort((a, b) => folders[a].name.localeCompare(folders[b].name));
135
104
  }
136
-
137
105
  return tree;
138
106
  }
139
-
140
107
  default:
141
108
  return state;
142
109
  }
143
110
  }
144
-
145
- function loadingFolders() {
146
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
147
- let action = arguments.length > 1 ? arguments[1] : undefined;
148
-
111
+ function loadingFolders(state = false, action) {
149
112
  switch (action.type) {
150
113
  case START_LOADING:
151
114
  return true;
152
-
153
115
  case STOP_LOADING:
154
116
  return false;
155
-
156
117
  case FAIL_FOLDERS_LOAD:
157
118
  {
158
119
  return false;
159
120
  }
160
-
161
121
  default:
162
122
  return state;
163
123
  }
164
124
  }
165
-
166
- function uploadingMediaStatus() {
167
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
168
- let action = arguments.length > 1 ? arguments[1] : undefined;
169
-
125
+ function uploadingMediaStatus(state = false, action) {
170
126
  switch (action.type) {
171
127
  case START_LOADING:
172
128
  return {
@@ -174,26 +130,22 @@ function uploadingMediaStatus() {
174
130
  uploaded: false,
175
131
  error: false
176
132
  };
177
-
178
133
  case FAIL_MEDIA_UPLOAD:
179
134
  return {
180
135
  loading: false,
181
136
  uploaded: false,
182
137
  error: true
183
138
  };
184
-
185
139
  case MEDIA_UPLOAD_SUCCESS:
186
140
  return {
187
141
  loading: false,
188
142
  uploaded: true,
189
143
  error: false
190
144
  };
191
-
192
145
  default:
193
146
  return state;
194
147
  }
195
148
  }
196
-
197
149
  export default combineReducers({
198
150
  uploading,
199
151
  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';
@@ -15,32 +15,29 @@
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
- import RceApiSource from '../../rcs/api'; // normalize contextType. e.g. accept either of 'course' or 'courses', but
19
- // only store 'course'
20
18
 
19
+ import RceApiSource from '../../rcs/api';
20
+
21
+ // normalize contextType. e.g. accept either of 'course' or 'courses', but
22
+ // only store 'course'
21
23
  function normalizeContextType(contextType) {
22
24
  switch (contextType) {
23
25
  case 'course':
24
26
  case 'courses':
25
27
  return 'course';
26
-
27
28
  case 'group':
28
29
  case 'groups':
29
30
  return 'group';
30
-
31
31
  case 'user':
32
32
  case 'users':
33
33
  return 'user';
34
-
35
34
  default:
36
35
  return undefined;
37
36
  }
38
37
  }
39
- /* eslint-disable prefer-const */
40
38
 
41
-
42
- export default function () {
43
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
39
+ /* eslint-disable prefer-const */
40
+ export default function (props = {}) {
44
41
  let {
45
42
  source,
46
43
  jwt,
@@ -67,31 +64,30 @@ export default function () {
67
64
 
68
65
  if (!canvasOrigin) {
69
66
  canvasOrigin = canvasUrl;
70
- } // normalize contextType (including in props)
71
-
67
+ }
72
68
 
69
+ // normalize contextType (including in props)
73
70
  contextType = normalizeContextType(contextType);
74
- props = { ...props,
71
+ props = {
72
+ ...props,
75
73
  contextType
76
74
  };
77
-
78
75
  if (searchString === undefined) {
79
76
  searchString = '';
80
77
  }
81
-
82
78
  if (all_files === undefined) {
83
79
  all_files = {
84
80
  isLoading: false
85
81
  };
86
82
  }
87
-
88
83
  if (!sortBy) sortBy = {};
89
84
  sortBy = {
90
85
  sort: 'date_added',
91
86
  dir: 'desc',
92
87
  ...sortBy
93
- }; // default to API source
88
+ };
94
89
 
90
+ // default to API source
95
91
  if (source == null) {
96
92
  source = new RceApiSource({
97
93
  jwt,
@@ -99,9 +95,9 @@ export default function () {
99
95
  host,
100
96
  canvasOrigin
101
97
  });
102
- } // create collections in default state if none provided
103
-
98
+ }
104
99
 
100
+ // create collections in default state if none provided
105
101
  if (collections === undefined) {
106
102
  collections = {
107
103
  announcements: source.initializeCollection('announcements', props),
@@ -112,31 +108,24 @@ export default function () {
112
108
  wikiPages: source.initializeCollection('wikiPages', props)
113
109
  };
114
110
  }
115
-
116
111
  if (upload === undefined) {
117
112
  upload = source.initializeUpload(props);
118
113
  }
119
-
120
114
  if (flickr === undefined) {
121
115
  flickr = source.initializeFlickr(props);
122
116
  }
123
-
124
117
  if (images === undefined) {
125
118
  images = source.initializeImages(props);
126
119
  }
127
-
128
120
  if (documents === undefined) {
129
121
  documents = source.initializeDocuments(props);
130
122
  }
131
-
132
123
  if (media === undefined) {
133
124
  media = source.initializeMedia(props);
134
125
  }
135
-
136
126
  if (newPageLinkExpanded === undefined) {
137
127
  newPageLinkExpanded = false;
138
128
  }
139
-
140
129
  function getAccordionIndex() {
141
130
  try {
142
131
  return window.sessionStorage.getItem('canvas_rce_links_accordion_index');
@@ -146,7 +135,6 @@ export default function () {
146
135
  return undefined;
147
136
  }
148
137
  }
149
-
150
138
  const ui = {
151
139
  selectedAccordionIndex: getAccordionIndex()
152
140
  };
@@ -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 formatMessage from '../../format-message';
19
20
  const locale = {
20
21
  "count_plural_one_item_loaded_other_items_loaded_857023b7": {
@@ -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 formatMessage from '../../format-message';
19
20
  import '../tinymce/ar_SA';
20
21
  const locale = {
@@ -174,6 +175,9 @@ const locale = {
174
175
  "available_folders_694d0436": {
175
176
  "message": "المجلدات المتاحة"
176
177
  },
178
+ "background_1bc88842": {
179
+ "message": "الخلفية"
180
+ },
177
181
  "backslash_b2d5442d": {
178
182
  "message": "شرطة مائلة للخلف"
179
183
  },
@@ -204,6 +208,9 @@ const locale = {
204
208
  "blue_daf8fea9": {
205
209
  "message": "أزرق"
206
210
  },
211
+ "border_5b08b06d": {
212
+ "message": "الحد"
213
+ },
207
214
  "bottom_15a2a9be": {
208
215
  "message": "أسفل"
209
216
  },
@@ -327,12 +334,24 @@ const locale = {
327
334
  "collapse_to_hide_types_1ab46d2e": {
328
335
  "message": "الطي لإخفاء { types }"
329
336
  },
337
+ "color_a363e1b0": {
338
+ "message": "اللون"
339
+ },
340
+ "color_contrast_4c418add": {
341
+ "message": "تباين الألوان"
342
+ },
343
+ "color_contrast_ratio_687782f0": {
344
+ "message": "نسبة تباين الألوان"
345
+ },
330
346
  "color_picker_6b359edf": {
331
347
  "message": "أداة انتقاء اللون"
332
348
  },
333
349
  "color_picker_colorname_selected_ad4cf400": {
334
350
  "message": "أداة انتقاء اللون (تم تحديد { colorName })"
335
351
  },
352
+ "color_popup_af39810f": {
353
+ "message": "نافذة منبثقة ملونة"
354
+ },
336
355
  "column_e1ae5c64": {
337
356
  "message": "عمود"
338
357
  },
@@ -471,6 +490,9 @@ const locale = {
471
490
  "deep_purple_bb3e2907": {
472
491
  "message": "أرجواني داكن"
473
492
  },
493
+ "default_9db103d": {
494
+ "message": "افتراضي"
495
+ },
474
496
  "default_bulleted_unordered_list_47079da8": {
475
497
  "message": "قائمة افتراضية غير مرتبة بتعداد نقطي"
476
498
  },
@@ -738,6 +760,9 @@ const locale = {
738
760
  "f_function_fe422d65": {
739
761
  "message": "F (دالة)"
740
762
  },
763
+ "fail_544e5dde": {
764
+ "message": "فشل"
765
+ },
741
766
  "failed_getting_file_contents_e9ea19f4": {
742
767
  "message": "تعذر الحصول على محتويات الملف"
743
768
  },
@@ -837,6 +862,9 @@ const locale = {
837
862
  "grades_a61eba0a": {
838
863
  "message": "الدرجات"
839
864
  },
865
+ "graphics_text_bc9568bc": {
866
+ "message": "نص الرسومات"
867
+ },
840
868
  "greater_than_e98af662": {
841
869
  "message": "أكبر من"
842
870
  },
@@ -1044,6 +1072,18 @@ const locale = {
1044
1072
  "infinity_7a10f206": {
1045
1073
  "message": "ما لا نهاية"
1046
1074
  },
1075
+ "input_field_for_alpha_678265fd": {
1076
+ "message": "حقل الإدخال لألفا"
1077
+ },
1078
+ "input_field_for_blue_561e020a": {
1079
+ "message": "حقل الإدخال للون الأزرق"
1080
+ },
1081
+ "input_field_for_green_67f8b2b6": {
1082
+ "message": "حقل الإدخال للون الأخضر"
1083
+ },
1084
+ "input_field_for_red_86a84615": {
1085
+ "message": "حقل الإدخال للون الأحمر"
1086
+ },
1047
1087
  "insert_593145ef": {
1048
1088
  "message": "إدخال"
1049
1089
  },
@@ -1101,6 +1141,9 @@ const locale = {
1101
1141
  "large_9c5e80e7": {
1102
1142
  "message": "كبير"
1103
1143
  },
1144
+ "large_text_e7ba08cd": {
1145
+ "message": "نص كبير"
1146
+ },
1104
1147
  "learn_more_about_adjacent_links_2cb9762c": {
1105
1148
  "message": "معرفة المزيد عن الارتباطات المتجاورة"
1106
1149
  },
@@ -1335,12 +1378,6 @@ const locale = {
1335
1378
  "music_icon_4db5c972": {
1336
1379
  "message": "أيقونة الموسيقى"
1337
1380
  },
1338
- "must_be_at_least_percentage_22e373b6": {
1339
- "message": "يجب أن يكون { percentage }% على الأقل"
1340
- },
1341
- "must_be_at_least_width_x_height_px_41dc825e": {
1342
- "message": "يجب أن تكون { width } x { height } بكسل على الأقل."
1343
- },
1344
1381
  "my_files_2f621040": {
1345
1382
  "message": "ملفاتي"
1346
1383
  },
@@ -1455,6 +1492,9 @@ const locale = {
1455
1492
  "none_selected_b93d56d2": {
1456
1493
  "message": "لم يتم تحديد شيء"
1457
1494
  },
1495
+ "normal_text_7b03da48": {
1496
+ "message": "نص عادي"
1497
+ },
1458
1498
  "not_equal_6e2980e6": {
1459
1499
  "message": "لا يساوي"
1460
1500
  },
@@ -1524,8 +1564,8 @@ const locale = {
1524
1564
  "outline_size_a6059a21": {
1525
1565
  "message": "حجم المخطط التفصيلي"
1526
1566
  },
1527
- "p_is_not_a_valid_protocol_which_must_be_ftp_http_h_adf13fc2": {
1528
- "message": "{ p } ليس بروتوكولاً صالحًا الذي يجب أن يكون ftp وhttp وhttps وmailto وskype وإلا سيتم حذفه"
1567
+ "p_is_not_a_valid_protocol_b1c4efaa": {
1568
+ "message": "{ p } ليس بروتوكولاً صالحًا."
1529
1569
  },
1530
1570
  "page_50c4823d": {
1531
1571
  "message": "صفحة"
@@ -1545,6 +1585,9 @@ const locale = {
1545
1585
  "partial_derivative_4a9159df": {
1546
1586
  "message": "جزئي (مشتق)"
1547
1587
  },
1588
+ "pass_1c19a2b3": {
1589
+ "message": "نجاح"
1590
+ },
1548
1591
  "paste_5963d1c1": {
1549
1592
  "message": "لصق"
1550
1593
  },
@@ -1563,6 +1606,9 @@ const locale = {
1563
1606
  "percentage_must_be_a_number_8033c341": {
1564
1607
  "message": "يجب أن تكون النسبة المئوية رقمًا"
1565
1608
  },
1609
+ "percentage_must_be_at_least_percentage_a98ca8fc": {
1610
+ "message": "يجب أن تكون النسبة المئوية { percentage }% بحد أدنى"
1611
+ },
1566
1612
  "performing_arts_icon_f3497486": {
1567
1613
  "message": "أيقونة الفنون التعبيرية"
1568
1614
  },
@@ -1584,12 +1630,18 @@ const locale = {
1584
1630
  "pi_variant_10f5f520": {
1585
1631
  "message": "Pi (متغير)"
1586
1632
  },
1633
+ "pick_a_color_557abfb0": {
1634
+ "message": "اختر لونًا"
1635
+ },
1587
1636
  "pink_68ad45cb": {
1588
1637
  "message": "وردي"
1589
1638
  },
1590
1639
  "pixels_52ece7d1": {
1591
1640
  "message": "بكسل"
1592
1641
  },
1642
+ "pixels_must_be_at_least_width_x_height_px_e965edd5": {
1643
+ "message": "يجب أن تكون البكسلات { width } x { height } بكسل بحد أدنى"
1644
+ },
1593
1645
  "play_1a47eaa7": {
1594
1646
  "message": "تشغيل"
1595
1647
  },
@@ -1650,6 +1702,9 @@ const locale = {
1650
1702
  "previous_findtext_8dfbfd30": {
1651
1703
  "message": "{ findText } السابق"
1652
1704
  },
1705
+ "previously_chosen_colors_f1338315": {
1706
+ "message": "الألوان المختار سابقًا"
1707
+ },
1653
1708
  "prime_917ea60e": {
1654
1709
  "message": "Prime"
1655
1710
  },
@@ -2502,6 +2557,15 @@ const locale = {
2502
2557
  "yes_dde87d5": {
2503
2558
  "message": "نعم"
2504
2559
  },
2560
+ "you_are_on_a_color_palette_to_navigate_on_the_pale_227fc3a6": {
2561
+ "message": "أنت على لوحة ألوان. للتنقل في اللوحة لأعلى ويسارًا ولأسفل ويمينًا، استخدام الأزرار \"W\" و\"A\" و\"S\" و\"D\" بالترتيب"
2562
+ },
2563
+ "you_are_on_a_color_slider_to_navigate_the_slider_l_e800f68a": {
2564
+ "message": "أنت على شريط تمرير ألوان. للتنقل يسار ويمين شريط التمرير، استخدم الزرين \"A\" و\"D\" بالترتيب"
2565
+ },
2566
+ "you_are_on_an_alpha_slider_to_navigate_the_slider__3a014dc5": {
2567
+ "message": "أنت على شريط تمرير ألفا. للتنقل يسار ويمين شريط التمرير، استخدم الزرين \"A\" و\"D\" بالترتيب"
2568
+ },
2505
2569
  "you_have_unsaved_changes_in_the_icon_maker_tray_do_e8cf5f1b": {
2506
2570
  "message": "لديك تغييرات غير محفوظة في علبة صانع الأيقونات. هل ترغب في المتابعة بدون حفظ هذه التغييرات؟"
2507
2571
  },