@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,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 { closest, getData, setData } from './jqueryish_funcs';
20
21
  const MEDIA_COMMENT_THUMBNAIL_SIZES = {
@@ -27,37 +28,28 @@ const MEDIA_COMMENT_THUMBNAIL_SIZES = {
27
28
  height: 50
28
29
  }
29
30
  };
30
-
31
31
  function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettings) {
32
- var _window$INST, _$link$querySelector, _$link$parentElement$, _$link$parentElement$2;
33
-
34
32
  // a lot of places in canvas rely on INST.kalturaSettings. Fallback if they are not provided
35
- const kalturaSettings_ = kalturaSettings || ((_window$INST = window.INST) === null || _window$INST === void 0 ? void 0 : _window$INST.kalturaSettings); // eslint-disable-next-line no-console
36
-
33
+ const kalturaSettings_ = kalturaSettings || window.INST?.kalturaSettings;
37
34
  if (!kalturaSettings_) return console.log('Kaltura has not been enabled for this account');
38
35
  let idAttr, url;
39
36
  const $link = elem;
40
-
41
37
  try {
42
38
  const a = document.createElement('a');
43
39
  a.href = $link.getAttribute('href');
44
40
  url = a;
45
41
  } catch (error) {
46
- // eslint-disable-next-line no-console
47
42
  console.error(error);
48
43
  }
49
-
50
44
  if (url) {
51
45
  const urlParams = new URLSearchParams(url.search);
52
46
  if (urlParams.has('no_preview') && urlParams.get('no_preview') !== 'false') return;
53
47
  }
54
-
55
48
  const dimensions = MEDIA_COMMENT_THUMBNAIL_SIZES[size] || MEDIA_COMMENT_THUMBNAIL_SIZES.normal;
56
- const id = getData($link, 'media_comment_id') || $link.getAttribute('data-media_comment_id') || ((_$link$querySelector = $link.querySelector('.media_comment_id')) === null || _$link$querySelector === void 0 ? void 0 : _$link$querySelector.textContent) || (idAttr = $link.id) && idAttr.match(/^media_comment_/) && idAttr.substring(14) || ((_$link$parentElement$ = $link.parentElement.querySelector('.media_comment_id')) === null || _$link$parentElement$ === void 0 ? void 0 : (_$link$parentElement$2 = _$link$parentElement$.textContent) === null || _$link$parentElement$2 === void 0 ? void 0 : _$link$parentElement$2.trim());
49
+ const id = getData($link, 'media_comment_id') || $link.getAttribute('data-media_comment_id') || $link.querySelector('.media_comment_id')?.textContent || (idAttr = $link.id) && idAttr.match(/^media_comment_/) && idAttr.substring(14) || $link.parentElement.querySelector('.media_comment_id')?.textContent?.trim();
57
50
  const authorName = getData($link, 'author') || $link.getAttribute('data-author');
58
51
  const createdAt = getData($link, 'created_at') || $link.getAttribute('data-created_at');
59
52
  let altText;
60
-
61
53
  if (authorName && createdAt) {
62
54
  altText = formatMessage('Play media comment by {name} from {createdAt}.', {
63
55
  name: authorName,
@@ -66,7 +58,6 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
66
58
  } else {
67
59
  altText = formatMessage('Play media comment.');
68
60
  }
69
-
70
61
  if (id) {
71
62
  const domain = `https://${kalturaSettings_.resource_domain}`;
72
63
  const backgroundUrl = `${domain}/p/${kalturaSettings_.partner_id}/thumbnail/entry_id/${id}/width/` + `${dimensions.width}/height/${dimensions.height}/bgcolor/000000/type/2/vid_sec/5`;
@@ -81,18 +72,14 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
81
72
  span1.appendChild(span2);
82
73
  $thumbnail.appendChild(span1);
83
74
  const $p = closest($link, 'p');
84
-
85
75
  if ($p && !$p.getAttribute('title')) {
86
76
  $p.setAttribute('title', altText);
87
77
  }
88
-
89
78
  let $a = $link;
90
-
91
79
  if (keepOriginalText) {
92
80
  $a = $link.cloneNode();
93
81
  $a.classList.remove('instructure_file_link');
94
82
  const $holder = $link.parentElement;
95
-
96
83
  if ($holder.matches('.instructure_file_link_holder')) {
97
84
  $holder.appendChild($a);
98
85
  } else {
@@ -101,7 +88,6 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
101
88
  } else {
102
89
  $link.innerHTML = '';
103
90
  }
104
-
105
91
  $a.setAttribute('data-download', $a.getAttribute('href'));
106
92
  $a.setAttribute('href', '#');
107
93
  $a.classList.add('instructure_inline_media_comment');
@@ -109,21 +95,16 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
109
95
  $a.style.backgroundImage = '';
110
96
  $a.style.padding = 0;
111
97
  }
112
- } // public API
98
+ }
113
99
 
114
-
115
- export default function mediaCommentThumbnail(comment_element) {
116
- let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'normal';
117
- let keepOriginalText = arguments.length > 2 ? arguments[2] : undefined;
118
- let kalturaSettings = arguments.length > 3 ? arguments[3] : undefined;
119
- let jqueryData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
100
+ // public API
101
+ export default function mediaCommentThumbnail(comment_element, size = 'normal', keepOriginalText, kalturaSettings, jqueryData = undefined) {
120
102
  // defer each thumbnail generation till the next time through the event loop to not kill browser rendering,
121
103
  // has the effect of saying "only work on thumbnailing these while the browser is not doing something else"
122
104
  return new Promise(resolve => window.setTimeout(() => {
123
105
  if (jqueryData) {
124
106
  Object.keys(jqueryData).forEach(k => setData(comment_element, k, jqueryData[k]));
125
107
  }
126
-
127
108
  createMediaCommentThumbnail(comment_element, size, keepOriginalText, kalturaSettings);
128
109
  resolve();
129
110
  }, 1));
@@ -15,16 +15,15 @@
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
- const formatMessage = require('format-message');
19
18
 
19
+ import formatMessage from 'format-message';
20
20
  const ns = formatMessage.namespace();
21
-
22
21
  ns.addLocale = translations => {
23
22
  ns.setup({
24
- translations: { ...ns.setup().translations,
23
+ translations: {
24
+ ...ns.setup().translations,
25
25
  ...translations
26
26
  }
27
27
  });
28
28
  };
29
-
30
- module.exports = ns;
29
+ export default ns;
@@ -15,24 +15,27 @@
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 { getRegistry } from '@instructure/theme-registry';
19
- import { merge, cloneDeep } from 'lodash'; // The running theme is the running theme for this page load, and it never
20
- // changes, so there's no point in doing the work more than once.
20
+ import { merge, cloneDeep } from 'lodash';
21
21
 
22
+ // The running theme is the running theme for this page load, and it never
23
+ // changes, so there's no point in doing the work more than once.
22
24
  let memoizedVariables;
23
-
24
25
  function getThemeVars() {
25
26
  if (memoizedVariables) return memoizedVariables;
27
+
28
+ // @ts-expect-error
26
29
  const {
27
30
  currentThemeKey,
28
31
  overrides,
29
32
  themes
30
- } = getRegistry(); // Just assume the "canvas" theme if the default key is null. This will
33
+ } = getRegistry();
34
+ // Just assume the "canvas" theme if the default key is null. This will
31
35
  // never happen in the live app because one way or another a theme gets
32
36
  // used, but unit tests don't always do that.
33
37
  // Also we have to cloneDeep this because the merge below is about to
34
38
  // mutate the whole thing.
35
-
36
39
  const themeKey = currentThemeKey || 'canvas';
37
40
  const variables = cloneDeep(themes[themeKey]);
38
41
  merge(variables, overrides);
@@ -42,5 +45,4 @@ function getThemeVars() {
42
45
  };
43
46
  return memoizedVariables;
44
47
  }
45
-
46
48
  export { getThemeVars };
@@ -22,320 +22,243 @@
22
22
  * as part of the build. DO NOT EDIT
23
23
  * ********************************************************
24
24
  */
25
+
25
26
  export default function getTranslations(locale) {
26
27
  const transReadyPromise = new Promise((resolve, reject) => {
27
28
  import('tinymce').then(() => {
28
29
  let p;
29
-
30
30
  switch (locale) {
31
31
  case 'ab':
32
32
  p = import('./translations/locales/ab');
33
33
  break;
34
-
35
34
  case 'ar':
36
35
  p = import('./translations/locales/ar');
37
36
  break;
38
-
39
37
  case 'ca':
40
38
  p = import('./translations/locales/ca');
41
39
  break;
42
-
43
40
  case 'cs':
44
41
  p = import('./translations/locales/cs');
45
42
  break;
46
-
47
43
  case 'cs-CZ':
48
44
  p = import('./translations/locales/cs_CZ');
49
45
  break;
50
-
51
46
  case 'cy':
52
47
  p = import('./translations/locales/cy');
53
48
  break;
54
-
55
49
  case 'da':
56
50
  p = import('./translations/locales/da');
57
51
  break;
58
-
59
52
  case 'da-x-k12':
60
53
  p = import('./translations/locales/da-x-k12');
61
54
  break;
62
-
63
55
  case 'da-DK':
64
56
  p = import('./translations/locales/da_DK');
65
57
  break;
66
-
67
58
  case 'de':
68
59
  p = import('./translations/locales/de');
69
60
  break;
70
-
71
61
  case 'el':
72
62
  p = import('./translations/locales/el');
73
63
  break;
74
-
75
64
  case 'en':
76
65
  p = import('./translations/locales/en');
77
66
  break;
78
-
79
67
  case 'en-AU-x-unimelb':
80
68
  p = import('./translations/locales/en-AU-x-unimelb');
81
69
  break;
82
-
83
70
  case 'en-GB-x-ukhe':
84
71
  p = import('./translations/locales/en-GB-x-ukhe');
85
72
  break;
86
-
87
73
  case 'en-AU':
88
74
  p = import('./translations/locales/en_AU');
89
75
  break;
90
-
91
76
  case 'en-CA':
92
77
  p = import('./translations/locales/en_CA');
93
78
  break;
94
-
95
79
  case 'en-CY':
96
80
  p = import('./translations/locales/en_CY');
97
81
  break;
98
-
99
82
  case 'en-GB':
100
83
  p = import('./translations/locales/en_GB');
101
84
  break;
102
-
103
85
  case 'en-NZ':
104
86
  p = import('./translations/locales/en_NZ');
105
87
  break;
106
-
107
88
  case 'en-SE':
108
89
  p = import('./translations/locales/en_SE');
109
90
  break;
110
-
111
91
  case 'en-US':
112
92
  p = import('./translations/locales/en_US');
113
93
  break;
114
-
115
94
  case 'es':
116
95
  p = import('./translations/locales/es');
117
96
  break;
118
-
119
97
  case 'es-ES':
120
98
  p = import('./translations/locales/es_ES');
121
99
  break;
122
-
123
100
  case 'es-GT':
124
101
  p = import('./translations/locales/es_GT');
125
102
  break;
126
-
127
103
  case 'fa-IR':
128
104
  p = import('./translations/locales/fa_IR');
129
105
  break;
130
-
131
106
  case 'fi':
132
107
  p = import('./translations/locales/fi');
133
108
  break;
134
-
135
109
  case 'fr':
136
110
  p = import('./translations/locales/fr');
137
111
  break;
138
-
139
112
  case 'fr-CA':
140
113
  p = import('./translations/locales/fr_CA');
141
114
  break;
142
-
143
115
  case 'ga':
144
116
  p = import('./translations/locales/ga');
145
117
  break;
146
-
147
118
  case 'he':
148
119
  p = import('./translations/locales/he');
149
120
  break;
150
-
151
121
  case 'hi':
152
122
  p = import('./translations/locales/hi');
153
123
  break;
154
-
155
124
  case 'ht':
156
125
  p = import('./translations/locales/ht');
157
126
  break;
158
-
159
127
  case 'hu':
160
128
  p = import('./translations/locales/hu');
161
129
  break;
162
-
163
130
  case 'hu-HU':
164
131
  p = import('./translations/locales/hu_HU');
165
132
  break;
166
-
167
133
  case 'hy':
168
134
  p = import('./translations/locales/hy');
169
135
  break;
170
-
171
136
  case 'id':
172
137
  p = import('./translations/locales/id');
173
138
  break;
174
-
175
139
  case 'id-ID':
176
140
  p = import('./translations/locales/id_ID');
177
141
  break;
178
-
179
142
  case 'is':
180
143
  p = import('./translations/locales/is');
181
144
  break;
182
-
183
145
  case 'it':
184
146
  p = import('./translations/locales/it');
185
147
  break;
186
-
187
148
  case 'ja':
188
149
  p = import('./translations/locales/ja');
189
150
  break;
190
-
191
151
  case 'ko':
192
152
  p = import('./translations/locales/ko');
193
153
  break;
194
-
195
154
  case 'ko-KR':
196
155
  p = import('./translations/locales/ko_KR');
197
156
  break;
198
-
199
157
  case 'lt':
200
158
  p = import('./translations/locales/lt');
201
159
  break;
202
-
203
160
  case 'lt-LT':
204
161
  p = import('./translations/locales/lt_LT');
205
162
  break;
206
-
207
163
  case 'mi':
208
164
  p = import('./translations/locales/mi');
209
165
  break;
210
-
211
166
  case 'mn-MN':
212
167
  p = import('./translations/locales/mn_MN');
213
168
  break;
214
-
215
169
  case 'ms':
216
170
  p = import('./translations/locales/ms');
217
171
  break;
218
-
219
172
  case 'nb':
220
173
  p = import('./translations/locales/nb');
221
174
  break;
222
-
223
175
  case 'nb-x-k12':
224
176
  p = import('./translations/locales/nb-x-k12');
225
177
  break;
226
-
227
178
  case 'nl':
228
179
  p = import('./translations/locales/nl');
229
180
  break;
230
-
231
181
  case 'nl-NL':
232
182
  p = import('./translations/locales/nl_NL');
233
183
  break;
234
-
235
184
  case 'nn':
236
185
  p = import('./translations/locales/nn');
237
186
  break;
238
-
239
187
  case 'pl':
240
188
  p = import('./translations/locales/pl');
241
189
  break;
242
-
243
190
  case 'pt':
244
191
  p = import('./translations/locales/pt');
245
192
  break;
246
-
247
193
  case 'pt-BR':
248
194
  p = import('./translations/locales/pt_BR');
249
195
  break;
250
-
251
196
  case 'ro':
252
197
  p = import('./translations/locales/ro');
253
198
  break;
254
-
255
199
  case 'ru':
256
200
  p = import('./translations/locales/ru');
257
201
  break;
258
-
259
202
  case 'se':
260
203
  p = import('./translations/locales/se');
261
204
  break;
262
-
263
205
  case 'sl':
264
206
  p = import('./translations/locales/sl');
265
207
  break;
266
-
267
208
  case 'sv':
268
209
  p = import('./translations/locales/sv');
269
210
  break;
270
-
271
211
  case 'sv-x-k12':
272
212
  p = import('./translations/locales/sv-x-k12');
273
213
  break;
274
-
275
214
  case 'sv-SE':
276
215
  p = import('./translations/locales/sv_SE');
277
216
  break;
278
-
279
217
  case 'tg':
280
218
  p = import('./translations/locales/tg');
281
219
  break;
282
-
283
220
  case 'th':
284
221
  p = import('./translations/locales/th');
285
222
  break;
286
-
287
223
  case 'th-TH':
288
224
  p = import('./translations/locales/th_TH');
289
225
  break;
290
-
291
226
  case 'tl-PH':
292
227
  p = import('./translations/locales/tl_PH');
293
228
  break;
294
-
295
229
  case 'tr':
296
230
  p = import('./translations/locales/tr');
297
231
  break;
298
-
299
232
  case 'uk-UA':
300
233
  p = import('./translations/locales/uk_UA');
301
234
  break;
302
-
303
235
  case 'vi':
304
236
  p = import('./translations/locales/vi');
305
237
  break;
306
-
307
238
  case 'vi-VN':
308
239
  p = import('./translations/locales/vi_VN');
309
240
  break;
310
-
311
241
  case 'zh':
312
242
  p = import('./translations/locales/zh');
313
243
  break;
314
-
315
244
  case 'zh-Hans':
316
245
  p = import('./translations/locales/zh-Hans');
317
246
  break;
318
-
319
247
  case 'zh-Hant':
320
248
  p = import('./translations/locales/zh-Hant');
321
249
  break;
322
-
323
250
  case 'zh-HK':
324
251
  p = import('./translations/locales/zh_HK');
325
252
  break;
326
-
327
253
  case 'zh-TW':
328
254
  p = import('./translations/locales/zh_TW');
329
255
  break;
330
-
331
256
  case 'zh-TW.Big5':
332
257
  p = import('./translations/locales/zh_TW.Big5');
333
258
  break;
334
-
335
259
  default:
336
260
  p = Promise.resolve(null);
337
261
  }
338
-
339
262
  p.then(resolve).catch(reject);
340
263
  }).catch(() => {
341
264
  throw new Error('Failed loading tinymce.');
package/es/index.d.ts ADDED
@@ -0,0 +1,59 @@
1
+ import { Mathml } from './enhance-user-content/mathml';
2
+ import type { EditorOptions } from './rce/RCEWrapperProps';
3
+ import RCEWrapper from './rce/RCEWrapper';
4
+ export type { Editor } from 'tinymce';
5
+ export { getContrastStatus, getDefaultColors, isTransparent, } from './rce/plugins/instructure_color/components/colorUtils';
6
+ export { ColorPicker, type ColorTab, type ColorSpec, type TabsSpec, type ColorsInUse, } from './rce/plugins/instructure_color/components/ColorPicker';
7
+ export * from './enhance-user-content/index';
8
+ export declare const defaultConfiguration: {
9
+ auto_focus: boolean;
10
+ block_formats: undefined;
11
+ body_class: string;
12
+ content_css: never[];
13
+ directionality: string;
14
+ height: undefined;
15
+ language: string;
16
+ menubar: undefined;
17
+ menu: undefined;
18
+ toolbar: undefined;
19
+ plugins: undefined;
20
+ branding: boolean;
21
+ browser_spellcheck: boolean;
22
+ content_style: string;
23
+ convert_urls: boolean;
24
+ font_formats: string;
25
+ language_load: boolean;
26
+ language_url: string;
27
+ toolbar_mode: string;
28
+ toolbar_ticky: boolean;
29
+ mobile: {
30
+ theme: string;
31
+ };
32
+ preview_styles: string;
33
+ remove_script_host: boolean;
34
+ resize: boolean;
35
+ skin: boolean;
36
+ statusbar: boolean;
37
+ valid_elements: string;
38
+ extended_valid_elements: string;
39
+ non_empty_elements: string;
40
+ target_list: boolean;
41
+ link_title: boolean;
42
+ default_link_target: string;
43
+ style_formats: {
44
+ title: string;
45
+ items: {
46
+ title: string;
47
+ format: string;
48
+ }[];
49
+ }[];
50
+ };
51
+ export { instuiPopupMountNodeFn } from './util/fullscreenHelpers';
52
+ export { Mathml };
53
+ export { RCEVariantValues } from './rce/RCEVariants';
54
+ export { UploadFilePanelIds, handleSubmit, UploadFile, type UploadFileProps, } from './rce/plugins/shared/Upload';
55
+ export declare function renderIntoDiv(editorEl: HTMLElement, props: EditorOptions, cb?: (ref: RCEWrapper) => void): void;
56
+ export declare function getRCSAuthenticationHeaders(jwt: string): {
57
+ Authorization: string;
58
+ };
59
+ export declare function getRCSOriginFromHost(host: string): any;
package/es/index.js CHANGED
@@ -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 normalizeLocale from './rce/normalizeLocale';
19
20
  import { renderIntoDiv as render } from './rce/root';
20
21
  import { headerFor, originFromHost } from './rcs/api';
@@ -22,27 +23,26 @@ import getTranslations from './getTranslations';
22
23
  import defaultTinymceConfig from './defaultTinymceConfig';
23
24
  import { setLocale } from './common/natcompare';
24
25
  import { Mathml } from './enhance-user-content/mathml';
26
+ export { getContrastStatus, getDefaultColors, isTransparent } from './rce/plugins/instructure_color/components/colorUtils';
27
+ export { ColorPicker } from './rce/plugins/instructure_color/components/ColorPicker';
25
28
  export * from './enhance-user-content/index';
26
29
  export const defaultConfiguration = defaultTinymceConfig;
27
- export { instuiPopupMountNode } from './util/fullscreenHelpers';
30
+ export { instuiPopupMountNodeFn } from './util/fullscreenHelpers';
28
31
  export { Mathml };
29
32
  export { RCEVariantValues } from './rce/RCEVariants';
30
33
  export { UploadFilePanelIds, handleSubmit, UploadFile } from './rce/plugins/shared/Upload';
31
34
  export function renderIntoDiv(editorEl, props, cb) {
32
35
  const language = normalizeLocale(props.language);
33
36
  setLocale(language);
34
-
35
37
  if (undefined || language === 'en') {
36
38
  render(editorEl, props, cb);
37
39
  } else {
38
40
  // unlike the pretranslated builds, in the default, non-pretranslated build,
39
41
  // this will cause a new network round trip to get all the locale info the rce
40
42
  // and tinymce need.
41
- getTranslations(language).then(() => render(editorEl, props, cb)).catch(err => {
42
- // eslint-disable-next-line no-console
43
+ getTranslations(language).catch(err => {
43
44
  console.error('Failed loading the language file for', language, 'RCE is falling back to English.\n Cause:', err);
44
- render(editorEl, props, cb);
45
- });
45
+ }).finally(() => render(editorEl, props, cb));
46
46
  }
47
47
  }
48
48
  export function getRCSAuthenticationHeaders(jwt) {
@@ -1,3 +1,4 @@
1
+ import _pt from "prop-types";
1
2
  /*
2
3
  * Copyright (C) 2019 - present Instructure, Inc.
3
4
  *
@@ -17,31 +18,29 @@
17
18
  */
18
19
  import { Alert } from '@instructure/ui-alerts';
19
20
  import React from 'react';
20
- import { arrayOf, func, number, shape, string } from 'prop-types';
21
21
  /**
22
22
  * Shows messages that have been provided to it in the RCE
23
23
  */
24
-
25
- export default function AlertMessageArea(_ref) {
26
- let {
27
- messages,
28
- afterDismiss,
29
- liveRegion
30
- } = _ref;
24
+ export default function AlertMessageArea({
25
+ messages,
26
+ afterDismiss,
27
+ liveRegion
28
+ }) {
31
29
  return /*#__PURE__*/React.createElement("div", null, messages.map(message => /*#__PURE__*/React.createElement(Alert, {
32
30
  key: message.id,
33
- variant: message.variant || message.type || 'info',
34
- timeout: 10000,
31
+ variant: message.variant || 'info',
32
+ timeout: 10000
33
+ // @ts-expect-error
34
+ ,
35
35
  liveRegion: liveRegion,
36
36
  onDismiss: () => afterDismiss(message.id)
37
37
  }, message.text)));
38
38
  }
39
39
  AlertMessageArea.propTypes = {
40
- messages: arrayOf(shape({
41
- id: number,
42
- variant: string,
43
- text: string
40
+ messages: _pt.arrayOf(_pt.shape({
41
+ id: _pt.number.isRequired,
42
+ text: _pt.string.isRequired
44
43
  })).isRequired,
45
- afterDismiss: func,
46
- liveRegion: func.isRequired
44
+ afterDismiss: _pt.func.isRequired,
45
+ liveRegion: _pt.func
47
46
  };
@@ -15,12 +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 React from 'react';
19
- import { bool } from 'prop-types'; // The purpose of the dragging blocker is to keep the TinyMCE iframe from
20
+ import { bool } from 'prop-types';
21
+
22
+ // The purpose of the dragging blocker is to keep the TinyMCE iframe from
20
23
  // intercepting and swallowing the mouse events if the mouse winds up over the
21
24
  // iframe while performing the drag. This is what TinyMCE itself does with its
22
25
  // own resize handle.
23
-
24
26
  export default function DraggingBlocker(props) {
25
27
  if (props.dragging) {
26
28
  return /*#__PURE__*/React.createElement("div", {