@instructure/canvas-rce 5.14.1 → 5.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/DEVELOPMENT.md +1 -1
  3. package/README.md +0 -8
  4. package/__tests__/common/indicate.test.js +84 -0
  5. package/__tests__/common/mimeClass.test.js +85 -0
  6. package/__tests__/module/contentInsertionUtils.test.js +52 -0
  7. package/__tests__/module/indicatorRegion.test.js +75 -0
  8. package/__tests__/module/normalizeLocale.test.js +46 -0
  9. package/__tests__/module/normalizeProps.test.js +51 -0
  10. package/__tests__/module/sanitizePlugins.test.js +48 -0
  11. package/__tests__/module/wrapInitCb.test.js +56 -0
  12. package/__tests__/rcs/api.test.js +819 -0
  13. package/{mocha-reporter-config.js → __tests__/sidebar/actions/all_files.test.js} +10 -9
  14. package/__tests__/sidebar/actions/data.test.js +196 -0
  15. package/__tests__/sidebar/actions/utils.js +44 -0
  16. package/{es/rce/plugins/shared/__mocks__/screenfull.js → __tests__/sidebar/reducers/all_files.test.js} +10 -6
  17. package/babel.config.js +3 -1
  18. package/es/bridge/Bridge.js +8 -56
  19. package/es/bridge/index.js +1 -0
  20. package/es/canvasFileBrowser/FileBrowser.js +12 -59
  21. package/es/canvasFileBrowser/en-US.js +3 -6
  22. package/es/common/FlashAlert.js +7 -28
  23. package/es/common/browser.js +4 -2
  24. package/es/common/fileUrl.js +104 -59
  25. package/es/common/incremental-loading/LoadMoreButton.js +1 -0
  26. package/es/common/incremental-loading/LoadingIndicator.js +1 -2
  27. package/es/common/incremental-loading/LoadingStatus.js +1 -2
  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 +15 -8
  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 +17 -28
  36. package/es/enhance-user-content/enhance_user_content.js +28 -60
  37. package/es/enhance-user-content/external_links.js +5 -8
  38. package/es/enhance-user-content/index.js +1 -0
  39. package/es/enhance-user-content/instructure_helper.js +12 -34
  40. package/es/enhance-user-content/jqueryish_funcs.js +8 -11
  41. package/es/enhance-user-content/mathml.js +35 -82
  42. package/es/enhance-user-content/media_comment_thumbnail.js +5 -17
  43. package/es/format-message.js +3 -4
  44. package/es/getThemeVars.js +8 -6
  45. package/es/getTranslations.js +1 -78
  46. package/es/index.js +3 -1
  47. package/es/rce/AlertMessageArea.js +1 -1
  48. package/es/rce/DraggingBlocker.js +4 -2
  49. package/es/rce/KeyboardShortcutModal.js +1 -0
  50. package/es/rce/RCE.js +12 -11
  51. package/es/rce/RCEGlobals.js +12 -10
  52. package/es/rce/RCEVariants.js +27 -10
  53. package/es/rce/RCEWrapper.js +167 -386
  54. package/es/rce/RCEWrapperProps.js +8 -3
  55. package/es/rce/RceHtmlEditor.js +5 -8
  56. package/es/rce/ResizeHandle.js +3 -8
  57. package/es/rce/RestoreAutoSaveModal.js +1 -2
  58. package/es/rce/ShowOnFocusButton/index.js +0 -6
  59. package/es/rce/StatusBar.js +8 -37
  60. package/es/rce/alertHandler.js +1 -4
  61. package/es/rce/contentInsertion.js +35 -57
  62. package/es/rce/contentInsertionUtils.js +6 -8
  63. package/es/rce/contentRendering.js +7 -12
  64. package/es/rce/customEvents.js +1 -0
  65. package/es/rce/editorLanguage.js +22 -10
  66. package/es/rce/indicatorRegion.js +6 -5
  67. package/es/rce/normalizeLocale.js +5 -3
  68. package/es/rce/normalizeProps.js +3 -1
  69. package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
  70. package/es/rce/plugins/instructure_color/clickCallback.js +84 -0
  71. package/es/rce/plugins/instructure_color/components/ColorPicker.js +299 -0
  72. package/es/rce/plugins/instructure_color/components/ColorPopup.js +68 -0
  73. package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
  74. package/es/rce/plugins/instructure_color/plugin.js +40 -0
  75. package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
  76. package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
  77. package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
  78. package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
  79. package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
  80. package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +22 -15
  81. package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +1 -2
  82. package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
  83. package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
  84. package/es/rce/plugins/instructure_documents/components/Link.js +3 -18
  85. package/es/rce/plugins/instructure_documents/plugin.js +7 -14
  86. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
  87. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
  88. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +12 -29
  89. package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +11 -12
  90. package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +4 -3
  91. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
  92. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +13 -7
  93. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +4 -7
  94. package/es/rce/plugins/instructure_equation/MathIcon/index.js +1 -1
  95. package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
  96. package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
  97. package/es/rce/plugins/instructure_equation/mathlive/index.js +1 -1
  98. package/es/rce/plugins/instructure_equation/plugin.js +7 -10
  99. package/es/rce/plugins/instructure_fullscreen/plugin.js +3 -6
  100. package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
  101. package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
  102. package/es/rce/plugins/instructure_icon_maker/clickCallback.js +2 -4
  103. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +1 -2
  104. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +1 -0
  105. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +1 -0
  106. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +1 -0
  107. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +1 -2
  108. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +25 -22
  109. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +7 -11
  110. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +27 -23
  111. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +5 -4
  112. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +11 -9
  113. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
  114. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +5 -4
  115. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +1 -3
  116. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +7 -7
  117. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +1 -0
  118. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +27 -20
  119. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
  120. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
  121. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +1 -0
  122. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +4 -4
  123. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +1 -2
  124. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +1 -5
  125. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
  126. package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +18 -33
  127. package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
  128. package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
  129. package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
  130. package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
  131. package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +1 -3
  132. package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
  133. package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
  134. package/es/rce/plugins/instructure_icon_maker/svg/image.js +69 -83
  135. package/es/rce/plugins/instructure_icon_maker/svg/index.js +11 -15
  136. package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  137. package/es/rce/plugins/instructure_icon_maker/svg/settings.js +32 -39
  138. package/es/rce/plugins/instructure_icon_maker/svg/shape.js +1 -49
  139. package/es/rce/plugins/instructure_icon_maker/svg/text.js +7 -92
  140. package/es/rce/plugins/instructure_icon_maker/svg/utils.js +1 -7
  141. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +2 -6
  142. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
  143. package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
  144. package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +1 -1
  145. package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
  146. package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
  147. package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +6 -24
  148. package/es/rce/plugins/instructure_image/ImageList/Image.js +1 -6
  149. package/es/rce/plugins/instructure_image/ImageList/index.js +1 -2
  150. package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +7 -27
  151. package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +3 -16
  152. package/es/rce/plugins/instructure_image/Images/index.js +1 -3
  153. package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
  154. package/es/rce/plugins/instructure_image/plugin.js +13 -18
  155. package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
  156. package/es/rce/plugins/instructure_links/components/AccordionSection.js +1 -0
  157. package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
  158. package/es/rce/plugins/instructure_links/components/Link.js +7 -19
  159. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +1 -21
  160. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +1 -4
  161. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
  162. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +1 -12
  163. package/es/rce/plugins/instructure_links/components/LinkSet.js +4 -20
  164. package/es/rce/plugins/instructure_links/components/LinksPanel.js +1 -2
  165. package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
  166. package/es/rce/plugins/instructure_links/components/NoResults.js +1 -7
  167. package/es/rce/plugins/instructure_links/plugin.js +17 -40
  168. package/es/rce/plugins/instructure_links/validateURL.js +81 -36
  169. package/es/rce/plugins/instructure_media_embed/clickCallback.js +2 -5
  170. package/es/rce/plugins/instructure_media_embed/components/Embed.js +1 -0
  171. package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
  172. package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
  173. package/es/rce/plugins/instructure_paste/plugin.js +27 -29
  174. package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +14 -53
  175. package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +21 -49
  176. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +11 -42
  177. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
  178. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
  179. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +2 -10
  180. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
  181. package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
  182. package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
  183. package/es/rce/{__mocks__/_mockStudioPlayer.js → plugins/instructure_rce_external_tools/constants.js} +11 -3
  184. package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +19 -4
  185. package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
  186. package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +130 -136
  187. package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +100 -95
  188. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
  189. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +2 -19
  190. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +1 -14
  191. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
  192. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
  193. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
  194. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
  195. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +18 -10
  196. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +4 -4
  197. package/es/rce/plugins/instructure_rce_external_tools/plugin.js +7 -16
  198. package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
  199. package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +1 -25
  200. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +1 -4
  201. package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
  202. package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +8 -51
  203. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +4 -17
  204. package/es/rce/plugins/instructure_record/clickCallback.js +7 -15
  205. package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
  206. package/es/rce/plugins/instructure_record/plugin.js +11 -18
  207. package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +2 -5
  208. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +20 -35
  209. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +3 -18
  210. package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
  211. package/es/rce/plugins/instructure_search_and_replace/plugin.js +1 -3
  212. package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
  213. package/es/rce/plugins/instructure_wordcount/clickCallback.js +2 -5
  214. package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +1 -4
  215. package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
  216. package/es/rce/plugins/instructure_wordcount/utils/countContent.js +1 -8
  217. package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +1 -0
  218. package/es/rce/plugins/shared/CanvasContentTray.js +22 -49
  219. package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
  220. package/es/rce/plugins/shared/ColorInput.js +5 -14
  221. package/es/rce/plugins/shared/ConditionalTooltip.js +1 -0
  222. package/es/rce/plugins/shared/ContentSelection.js +17 -58
  223. package/es/rce/plugins/shared/DimensionUtils.js +1 -8
  224. package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
  225. package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
  226. package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
  227. package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
  228. package/es/rce/plugins/shared/EventUtils.js +1 -3
  229. package/es/rce/plugins/shared/Filter.js +8 -38
  230. package/es/rce/plugins/shared/FixedContentTray.js +3 -3
  231. package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +1 -8
  232. package/es/rce/plugins/shared/ImageCropper/Modal.js +4 -7
  233. package/es/rce/plugins/shared/ImageCropper/Preview.js +7 -11
  234. package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
  235. package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +2 -5
  236. package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +1 -0
  237. package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +1 -10
  238. package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +1 -0
  239. package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +1 -11
  240. package/es/rce/plugins/shared/ImageCropper/controls/index.js +1 -0
  241. package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +3 -16
  242. package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
  243. package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +1 -10
  244. package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
  245. package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
  246. package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
  247. package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
  248. package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
  249. package/es/rce/plugins/shared/ImageCropper/svg/shape.js +1 -17
  250. package/es/rce/plugins/shared/ImageCropper/svg/utils.js +1 -0
  251. package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +19 -46
  252. package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
  253. package/es/rce/plugins/shared/ImageOptionsForm.js +1 -2
  254. package/es/rce/plugins/shared/LinkDisplay.js +1 -2
  255. package/es/rce/plugins/shared/PreviewIcon.js +1 -6
  256. package/es/rce/plugins/shared/Previewable.js +1 -0
  257. package/es/rce/plugins/shared/RceFileBrowser.js +5 -7
  258. package/es/rce/plugins/shared/StoreContext.js +1 -2
  259. package/es/rce/plugins/shared/StudioLtiSupportUtils.js +10 -6
  260. package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
  261. package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +13 -18
  262. package/es/rce/plugins/shared/Upload/CategoryProcessor.js +1 -1
  263. package/es/rce/plugins/shared/Upload/ComputerPanel.js +8 -26
  264. package/es/rce/plugins/shared/Upload/PanelFilter.js +3 -12
  265. package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
  266. package/es/rce/plugins/shared/Upload/UploadFile.js +15 -18
  267. package/es/rce/plugins/shared/Upload/UploadFileModal.js +9 -25
  268. package/es/rce/plugins/shared/Upload/UrlPanel.js +1 -0
  269. package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +7 -12
  270. package/es/rce/plugins/shared/Upload/doFileUpload.js +4 -6
  271. package/es/rce/plugins/shared/Upload/index.js +1 -0
  272. package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +1 -3
  273. package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +6 -24
  274. package/es/rce/plugins/shared/ai_tools/aiicons.js +1 -0
  275. package/es/rce/plugins/shared/ai_tools/index.js +1 -0
  276. package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
  277. package/es/rce/plugins/shared/canvasContentUtils.js +6 -9
  278. package/es/rce/plugins/shared/compressionUtils.js +1 -8
  279. package/es/rce/plugins/shared/dateUtils.js +1 -1
  280. package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
  281. package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +7 -10
  282. package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
  283. package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
  284. package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
  285. package/es/rce/plugins/shared/fileShape.js +4 -9
  286. package/es/rce/plugins/shared/fileTypeUtils.js +32 -42
  287. package/es/rce/plugins/shared/fileUtils.js +1 -2
  288. package/es/rce/plugins/shared/linkUtils.js +1 -16
  289. package/es/rce/plugins/shared/round.js +1 -0
  290. package/es/rce/plugins/shared/trayUtils.js +4 -3
  291. package/es/rce/plugins/shared/useDataUrl.js +9 -9
  292. package/es/rce/plugins/shared/useFilterSettings.js +3 -3
  293. package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +2 -6
  294. package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +5 -63
  295. package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
  296. package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
  297. package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
  298. package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +1 -6
  299. package/es/rce/plugins/tinymce-a11y-checker/plugin.js +4 -7
  300. package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
  301. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
  302. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +1 -5
  303. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
  304. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
  305. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
  306. package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
  307. package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +1 -4
  308. package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
  309. package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
  310. package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +1 -6
  311. package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
  312. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
  313. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
  314. package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
  315. package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
  316. package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +1 -26
  317. package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +16 -15
  318. package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +7 -10
  319. package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
  320. package/es/rce/root.js +9 -8
  321. package/es/rce/sanitizePlugins.js +1 -3
  322. package/es/rce/style.js +1 -4
  323. package/es/rce/tinyRCE.js +13 -9
  324. package/es/rce/tinymce.oxide.content.min.css.js +1 -0
  325. package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
  326. package/es/rce/transformContent.js +8 -10
  327. package/es/rce/types.js +1 -0
  328. package/es/rce/userOS.js +1 -1
  329. package/es/rce/wrapInitCb.js +50 -43
  330. package/es/rcs/api.js +61 -116
  331. package/es/rcs/buildError.js +5 -17
  332. package/es/rcs/fake.js +4 -13
  333. package/es/sidebar/actions/all_files.js +2 -0
  334. package/es/sidebar/actions/data.js +4 -7
  335. package/es/sidebar/actions/documents.js +9 -6
  336. package/es/sidebar/actions/files.js +3 -6
  337. package/es/sidebar/actions/filter.js +1 -0
  338. package/es/sidebar/actions/flickr.js +1 -1
  339. package/es/sidebar/actions/images.js +12 -11
  340. package/es/sidebar/actions/links.js +1 -0
  341. package/es/sidebar/actions/media.js +12 -10
  342. package/es/sidebar/actions/session.js +1 -3
  343. package/es/sidebar/actions/ui.js +1 -0
  344. package/es/sidebar/actions/upload.js +14 -39
  345. package/es/sidebar/containers/Sidebar.js +1 -2
  346. package/es/sidebar/containers/sidebarHandlers.js +3 -1
  347. package/es/sidebar/dragHtml.js +5 -3
  348. package/es/sidebar/reducers/all_files.js +4 -3
  349. package/es/sidebar/reducers/collection.js +12 -13
  350. package/es/sidebar/reducers/collections.js +5 -5
  351. package/es/sidebar/reducers/documents.js +6 -13
  352. package/es/sidebar/reducers/files.js +3 -3
  353. package/es/sidebar/reducers/filter.js +1 -8
  354. package/es/sidebar/reducers/flickr.js +9 -9
  355. package/es/sidebar/reducers/folder.js +15 -15
  356. package/es/sidebar/reducers/folders.js +3 -3
  357. package/es/sidebar/reducers/images.js +3 -13
  358. package/es/sidebar/reducers/index.js +3 -1
  359. package/es/sidebar/reducers/media.js +6 -13
  360. package/es/sidebar/reducers/newPageLinkExpanded.js +1 -2
  361. package/es/sidebar/reducers/noop.js +1 -0
  362. package/es/sidebar/reducers/rootFolderId.js +1 -2
  363. package/es/sidebar/reducers/session.js +3 -3
  364. package/es/sidebar/reducers/ui.js +3 -16
  365. package/es/sidebar/reducers/upload.js +8 -40
  366. package/es/sidebar/store/configureStore.js +1 -0
  367. package/es/sidebar/store/initialState.js +13 -24
  368. package/es/translations/locales/ab.js +1 -0
  369. package/es/translations/locales/ar.js +67 -9
  370. package/es/translations/locales/ca.js +67 -9
  371. package/es/translations/locales/cs.js +1 -0
  372. package/es/translations/locales/cs_CZ.js +1 -0
  373. package/es/translations/locales/cy.js +67 -9
  374. package/es/translations/locales/da-x-k12.js +67 -9
  375. package/es/translations/locales/da.js +67 -9
  376. package/es/translations/locales/da_DK.js +1 -0
  377. package/es/translations/locales/de.js +67 -9
  378. package/es/translations/locales/el.js +4 -0
  379. package/es/translations/locales/en-AU-x-unimelb.js +67 -9
  380. package/es/translations/locales/en-GB-x-ukhe.js +67 -9
  381. package/es/translations/locales/en.js +72 -8
  382. package/es/translations/locales/en_AU.js +67 -9
  383. package/es/translations/locales/en_CA.js +67 -9
  384. package/es/translations/locales/en_CY.js +67 -9
  385. package/es/translations/locales/en_GB.js +67 -9
  386. package/es/translations/locales/en_NZ.js +1 -0
  387. package/es/translations/locales/en_SE.js +1 -0
  388. package/es/translations/locales/en_US.js +1 -0
  389. package/es/translations/locales/es.js +67 -9
  390. package/es/translations/locales/es_ES.js +67 -9
  391. package/es/translations/locales/es_GT.js +1 -0
  392. package/es/translations/locales/fa_IR.js +7 -0
  393. package/es/translations/locales/fi.js +67 -9
  394. package/es/translations/locales/fr.js +67 -9
  395. package/es/translations/locales/fr_CA.js +68 -10
  396. package/es/translations/locales/ga.js +5 -13
  397. package/es/translations/locales/he.js +7 -0
  398. package/es/translations/locales/hi.js +67 -9
  399. package/es/translations/locales/ht.js +67 -9
  400. package/es/translations/locales/hu.js +7 -6
  401. package/es/translations/locales/hu_HU.js +1 -0
  402. package/es/translations/locales/hy.js +1 -0
  403. package/es/translations/locales/id.js +67 -9
  404. package/es/translations/locales/id_ID.js +1 -0
  405. package/es/translations/locales/is.js +67 -9
  406. package/es/translations/locales/it.js +67 -9
  407. package/es/translations/locales/ja.js +67 -9
  408. package/es/translations/locales/ko.js +1 -0
  409. package/es/translations/locales/ko_KR.js +1 -0
  410. package/es/translations/locales/lt.js +1 -0
  411. package/es/translations/locales/lt_LT.js +1 -0
  412. package/es/translations/locales/mi.js +67 -9
  413. package/es/translations/locales/mn_MN.js +1 -0
  414. package/es/translations/locales/ms.js +67 -9
  415. package/es/translations/locales/nb-x-k12.js +67 -9
  416. package/es/translations/locales/nb.js +67 -9
  417. package/es/translations/locales/nl.js +67 -9
  418. package/es/translations/locales/nl_NL.js +1 -0
  419. package/es/translations/locales/nn.js +7 -6
  420. package/es/translations/locales/pl.js +67 -9
  421. package/es/translations/locales/pt.js +67 -9
  422. package/es/translations/locales/pt_BR.js +67 -9
  423. package/es/translations/locales/ro.js +1 -0
  424. package/es/translations/locales/ru.js +67 -9
  425. package/es/translations/locales/se.js +1 -0
  426. package/es/translations/locales/sl.js +67 -9
  427. package/es/translations/locales/sv-x-k12.js +67 -9
  428. package/es/translations/locales/sv.js +67 -9
  429. package/es/translations/locales/sv_SE.js +1 -0
  430. package/es/translations/locales/tg.js +1 -0
  431. package/es/translations/locales/th.js +67 -9
  432. package/es/translations/locales/th_TH.js +1 -0
  433. package/es/translations/locales/tl_PH.js +1 -0
  434. package/es/translations/locales/tr.js +7 -0
  435. package/es/translations/locales/uk_UA.js +7 -0
  436. package/es/translations/locales/vi.js +67 -9
  437. package/es/translations/locales/vi_VN.js +1 -0
  438. package/es/translations/locales/zh-Hans.js +67 -9
  439. package/es/translations/locales/zh-Hant.js +67 -9
  440. package/es/translations/locales/zh.js +67 -9
  441. package/es/translations/locales/zh_HK.js +67 -9
  442. package/es/translations/locales/zh_TW.Big5.js +1 -0
  443. package/es/translations/locales/zh_TW.js +1 -0
  444. package/es/translations/tinymce/ar_SA.js +1 -0
  445. package/es/translations/tinymce/fi.js +1 -0
  446. package/es/translations/tinymce/ga.js +1 -0
  447. package/es/translations/tinymce/id.js +1 -0
  448. package/es/translations/tinymce/ru.js +1 -0
  449. package/es/translations/tinymce/ru_RU.js +1 -0
  450. package/es/translations/tinymce/sl.js +1 -0
  451. package/es/translations/tinymce/sr.js +1 -0
  452. package/es/translations/tinymce/th.js +1 -0
  453. package/es/translations/tinymce/uk_UA.js +1 -0
  454. package/es/translations/tinymce/vi_VN.js +1 -0
  455. package/es/util/TypedDict.js +4 -2
  456. package/es/util/encrypted-storage.js +3 -13
  457. package/es/util/file-url-util.js +1 -6
  458. package/es/util/fullscreenHelpers.js +4 -1
  459. package/es/util/instui-icon-helper.js +4 -3
  460. package/es/util/loadingPlaceholder.js +38 -39
  461. package/es/util/simpleCache.js +0 -3
  462. package/es/util/string-util.js +1 -1
  463. package/es/util/textarea-editing-util.js +3 -7
  464. package/es/util/tinymce-plugin-util.js +0 -5
  465. package/es/util/url-util.js +16 -25
  466. package/eslint.config.js +239 -0
  467. package/jest.config.js +1 -1
  468. package/package.json +76 -81
  469. package/scripts/build-canvas +2 -1
  470. package/scripts/build.js +4 -4
  471. package/testcafe/RCEWrapper.test.js +0 -1
  472. package/testcafe/StatusBar.test.js +0 -1
  473. package/testcafe/axe.test.js +3 -4
  474. package/testcafe/enhanceUserContent.test.js +0 -1
  475. package/tsconfig.json +20 -15
  476. package/.eslintrc +0 -45
  477. package/.prettierignore +0 -6
  478. package/es/rce/__mocks__/_mockCryptoEs.js +0 -124
  479. package/es/rce/__mocks__/styleMock.js +0 -18
  480. package/es/rce/__mocks__/tinymceReact.js +0 -55
  481. 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,17 +28,14 @@ const MEDIA_COMMENT_THUMBNAIL_SIZES = {
27
28
  height: 50
28
29
  }
29
30
  };
30
-
31
31
  function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettings) {
32
32
  var _window$INST, _$link$querySelector, _$link$parentElement$, _$link$parentElement$2;
33
-
34
33
  // 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
-
34
+ const kalturaSettings_ = kalturaSettings || ((_window$INST = window.INST) === null || _window$INST === void 0 ? void 0 : _window$INST.kalturaSettings);
35
+ // eslint-disable-next-line no-console
37
36
  if (!kalturaSettings_) return console.log('Kaltura has not been enabled for this account');
38
37
  let idAttr, url;
39
38
  const $link = elem;
40
-
41
39
  try {
42
40
  const a = document.createElement('a');
43
41
  a.href = $link.getAttribute('href');
@@ -46,18 +44,15 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
46
44
  // eslint-disable-next-line no-console
47
45
  console.error(error);
48
46
  }
49
-
50
47
  if (url) {
51
48
  const urlParams = new URLSearchParams(url.search);
52
49
  if (urlParams.has('no_preview') && urlParams.get('no_preview') !== 'false') return;
53
50
  }
54
-
55
51
  const dimensions = MEDIA_COMMENT_THUMBNAIL_SIZES[size] || MEDIA_COMMENT_THUMBNAIL_SIZES.normal;
56
52
  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());
57
53
  const authorName = getData($link, 'author') || $link.getAttribute('data-author');
58
54
  const createdAt = getData($link, 'created_at') || $link.getAttribute('data-created_at');
59
55
  let altText;
60
-
61
56
  if (authorName && createdAt) {
62
57
  altText = formatMessage('Play media comment by {name} from {createdAt}.', {
63
58
  name: authorName,
@@ -66,7 +61,6 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
66
61
  } else {
67
62
  altText = formatMessage('Play media comment.');
68
63
  }
69
-
70
64
  if (id) {
71
65
  const domain = `https://${kalturaSettings_.resource_domain}`;
72
66
  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 +75,14 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
81
75
  span1.appendChild(span2);
82
76
  $thumbnail.appendChild(span1);
83
77
  const $p = closest($link, 'p');
84
-
85
78
  if ($p && !$p.getAttribute('title')) {
86
79
  $p.setAttribute('title', altText);
87
80
  }
88
-
89
81
  let $a = $link;
90
-
91
82
  if (keepOriginalText) {
92
83
  $a = $link.cloneNode();
93
84
  $a.classList.remove('instructure_file_link');
94
85
  const $holder = $link.parentElement;
95
-
96
86
  if ($holder.matches('.instructure_file_link_holder')) {
97
87
  $holder.appendChild($a);
98
88
  } else {
@@ -101,7 +91,6 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
101
91
  } else {
102
92
  $link.innerHTML = '';
103
93
  }
104
-
105
94
  $a.setAttribute('data-download', $a.getAttribute('href'));
106
95
  $a.setAttribute('href', '#');
107
96
  $a.classList.add('instructure_inline_media_comment');
@@ -109,9 +98,9 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
109
98
  $a.style.backgroundImage = '';
110
99
  $a.style.padding = 0;
111
100
  }
112
- } // public API
113
-
101
+ }
114
102
 
103
+ // public API
115
104
  export default function mediaCommentThumbnail(comment_element) {
116
105
  let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'normal';
117
106
  let keepOriginalText = arguments.length > 2 ? arguments[2] : undefined;
@@ -123,7 +112,6 @@ export default function mediaCommentThumbnail(comment_element) {
123
112
  if (jqueryData) {
124
113
  Object.keys(jqueryData).forEach(k => setData(comment_element, k, jqueryData[k]));
125
114
  }
126
-
127
115
  createMediaCommentThumbnail(comment_element, size, keepOriginalText, kalturaSettings);
128
116
  resolve();
129
117
  }, 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
+ const formatMessage = require('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
29
  module.exports = 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.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,6 +23,8 @@ 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
30
  export { instuiPopupMountNode } from './util/fullscreenHelpers';
@@ -31,7 +34,6 @@ export { UploadFilePanelIds, handleSubmit, UploadFile } from './rce/plugins/shar
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 {
@@ -18,10 +18,10 @@
18
18
  import { Alert } from '@instructure/ui-alerts';
19
19
  import React from 'react';
20
20
  import { arrayOf, func, number, shape, string } from 'prop-types';
21
+
21
22
  /**
22
23
  * Shows messages that have been provided to it in the RCE
23
24
  */
24
-
25
25
  export default function AlertMessageArea(_ref) {
26
26
  let {
27
27
  messages,
@@ -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", {
@@ -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 React from 'react';
19
20
  import { bool, func } from 'prop-types';
20
21
  import { Heading } from '@instructure/ui-heading';
package/es/rce/RCE.js CHANGED
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  /*
4
2
  * Copyright (C) 2021 - present Instructure, Inc.
5
3
  *
@@ -17,6 +15,7 @@
17
15
  * You should have received a copy of the GNU Affero General Public License along
18
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
19
17
  */
18
+
20
19
  import React, { forwardRef, useState } from 'react';
21
20
  import formatMessage from '../format-message';
22
21
  import RCEWrapper from './RCEWrapper';
@@ -26,18 +25,17 @@ import wrapInitCb from './wrapInitCb';
26
25
  import tinyRCE from './tinyRCE';
27
26
  import getTranslations from '../getTranslations';
28
27
  import '@instructure/canvas-theme';
29
-
30
28
  if (!process || !process.env || !undefined) {
31
29
  formatMessage.setup({
32
30
  locale: 'en',
33
31
  generateId: require('format-message-generate-id/underscored_crc32'),
34
32
  missingTranslation: 'ignore'
35
33
  });
36
- } // forward rceRef to it refs the RCEWrapper where clients can call getCode etc. on it.
34
+ }
35
+
36
+ // forward rceRef to it refs the RCEWrapper where clients can call getCode etc. on it.
37
37
  // You probably shouldn't use it until onInit has been called. Until then tinymce
38
38
  // is not initialized.
39
-
40
-
41
39
  const RCE = /*#__PURE__*/forwardRef(function RCE(props, rceRef) {
42
40
  const {
43
41
  autosave,
@@ -80,13 +78,14 @@ const RCE = /*#__PURE__*/forwardRef(function RCE(props, rceRef) {
80
78
  setTranslations(false);
81
79
  });
82
80
  return p;
83
- }); // some properties are only used on initialization
81
+ });
82
+
83
+ // some properties are only used on initialization
84
84
  // Languages are a bit of a mess since Tinymce and Canvas
85
85
  // have 2 different sets of language names. normalizeLocale
86
86
  // takes the language prop and returns the locale Canvas knows,
87
87
  // editorLanguage takes the language prop and returns the
88
88
  // corresponding locale for tinymce.
89
-
90
89
  const [initOnlyProps] = useState(() => {
91
90
  const iProps = {
92
91
  autosave,
@@ -101,17 +100,17 @@ const RCE = /*#__PURE__*/forwardRef(function RCE(props, rceRef) {
101
100
  trayProps: rcsProps,
102
101
  use_rce_icon_maker,
103
102
  features,
104
- editorOptions: { ...editorOptions,
103
+ editorOptions: {
104
+ ...editorOptions,
105
105
  selector: (editorOptions === null || editorOptions === void 0 ? void 0 : editorOptions.selector) || `#${textareaId}`,
106
106
  height,
107
107
  language: editorLanguage(props.language)
108
108
  },
109
109
  variant
110
110
  };
111
- wrapInitCb(mirroredAttrs, iProps.editorOptions);
111
+ wrapInitCb(mirroredAttrs || {}, iProps.editorOptions);
112
112
  return iProps;
113
113
  });
114
-
115
114
  if (typeof translations !== 'boolean') {
116
115
  return /*#__PURE__*/React.createElement(React.Fragment, null, formatMessage('Loading...'));
117
116
  } else {
@@ -148,5 +147,7 @@ const defaultProps = {
148
147
  onContentChange: () => undefined,
149
148
  onInit: () => undefined
150
149
  };
150
+
151
+ // @ts-expect-error
151
152
  RCE.defaultProps = defaultProps;
152
153
  export default RCE;
@@ -15,8 +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
+
18
19
  const isEmpty = obj => Object.keys(obj).length === 0;
19
20
 
21
+ /**
22
+ * @typedef {Object} Features
23
+ * @property {boolean} media_links_use_attachment_id
24
+ * @property {boolean} file_verifiers_for_quiz_links
25
+ */
26
+
20
27
  class RCEGlobals {
21
28
  constructor() {
22
29
  if (!RCEGlobals.instance) {
@@ -26,37 +33,32 @@ class RCEGlobals {
26
33
  config: {}
27
34
  };
28
35
  }
29
-
30
36
  return RCEGlobals.instance;
31
37
  }
32
-
33
38
  getFeatures() {
34
- return this._data.features;
39
+ return /** @type {Features} */this._data.features;
35
40
  }
36
-
37
41
  setFeatures(features) {
38
42
  // Set only once
39
43
  if (isEmpty(this._data.features)) {
40
- this._data.features = { ...features
44
+ this._data.features = {
45
+ ...features
41
46
  };
42
47
  Object.freeze(this._data.features);
43
48
  }
44
49
  }
45
-
46
50
  getConfig() {
47
51
  return this._data.config;
48
52
  }
49
-
50
53
  setConfig(config) {
51
54
  // Set only once
52
55
  if (isEmpty(this._data.config)) {
53
- this._data.config = { ...config
56
+ this._data.config = {
57
+ ...config
54
58
  };
55
59
  Object.freeze(this._data.config);
56
60
  }
57
61
  }
58
-
59
62
  }
60
-
61
63
  const instance = new RCEGlobals();
62
64
  export default instance;