@instructure/canvas-rce 5.14.0 → 5.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/DEVELOPMENT.md +1 -1
  3. package/README.md +0 -8
  4. package/__tests__/common/indicate.test.js +84 -0
  5. package/__tests__/common/mimeClass.test.js +85 -0
  6. package/__tests__/module/contentInsertionUtils.test.js +52 -0
  7. package/__tests__/module/indicatorRegion.test.js +75 -0
  8. package/__tests__/module/normalizeLocale.test.js +46 -0
  9. package/__tests__/module/normalizeProps.test.js +51 -0
  10. package/__tests__/module/sanitizePlugins.test.js +48 -0
  11. package/__tests__/module/wrapInitCb.test.js +56 -0
  12. package/__tests__/rcs/api.test.js +819 -0
  13. package/{mocha-reporter-config.js → __tests__/sidebar/actions/all_files.test.js} +10 -9
  14. package/__tests__/sidebar/actions/data.test.js +196 -0
  15. package/__tests__/sidebar/actions/utils.js +44 -0
  16. package/__tests__/sidebar/reducers/all_files.test.js +28 -0
  17. package/babel.config.js +3 -1
  18. package/build.sh +7 -7
  19. package/es/bridge/Bridge.js +8 -56
  20. package/es/bridge/index.js +1 -0
  21. package/es/canvasFileBrowser/FileBrowser.js +12 -59
  22. package/es/canvasFileBrowser/en-US.js +3 -6
  23. package/es/common/FlashAlert.js +7 -28
  24. package/es/common/browser.js +4 -2
  25. package/es/common/fileUrl.js +104 -59
  26. package/es/common/incremental-loading/LoadMoreButton.js +1 -0
  27. package/es/common/incremental-loading/LoadingIndicator.js +1 -2
  28. package/es/common/incremental-loading/LoadingStatus.js +1 -2
  29. package/es/common/incremental-loading/index.js +1 -0
  30. package/es/common/incremental-loading/useIncrementalLoading.js +1 -3
  31. package/es/common/indicate.js +15 -8
  32. package/es/common/mimeClass.js +3 -4
  33. package/es/common/natcompare.js +1 -4
  34. package/es/defaultTinymceConfig.js +5 -3
  35. package/es/elementDenylist.js +1 -0
  36. package/es/enhance-user-content/doc_previews.js +17 -28
  37. package/es/enhance-user-content/enhance_user_content.js +28 -60
  38. package/es/enhance-user-content/external_links.js +5 -8
  39. package/es/enhance-user-content/index.js +1 -0
  40. package/es/enhance-user-content/instructure_helper.js +25 -38
  41. package/es/enhance-user-content/jqueryish_funcs.js +8 -11
  42. package/es/enhance-user-content/mathml.js +35 -82
  43. package/es/enhance-user-content/media_comment_thumbnail.js +5 -17
  44. package/es/format-message.js +3 -4
  45. package/es/getThemeVars.js +8 -6
  46. package/es/getTranslations.js +1 -78
  47. package/es/index.js +3 -1
  48. package/es/rce/AlertMessageArea.js +1 -1
  49. package/es/rce/DraggingBlocker.js +4 -2
  50. package/es/rce/KeyboardShortcutModal.js +1 -0
  51. package/es/rce/RCE.js +12 -11
  52. package/es/rce/RCEGlobals.js +12 -10
  53. package/es/rce/RCEVariants.js +27 -10
  54. package/es/rce/RCEWrapper.js +167 -386
  55. package/es/rce/RCEWrapperProps.js +8 -3
  56. package/es/rce/RceHtmlEditor.js +5 -8
  57. package/es/rce/ResizeHandle.js +3 -8
  58. package/es/rce/RestoreAutoSaveModal.js +1 -2
  59. package/es/rce/ShowOnFocusButton/index.js +0 -6
  60. package/es/rce/StatusBar.js +8 -37
  61. package/es/rce/alertHandler.js +1 -4
  62. package/es/rce/contentInsertion.js +35 -57
  63. package/es/rce/contentInsertionUtils.js +6 -8
  64. package/es/rce/contentRendering.js +7 -12
  65. package/es/rce/customEvents.js +1 -0
  66. package/es/rce/editorLanguage.js +22 -10
  67. package/es/rce/indicatorRegion.js +6 -5
  68. package/es/rce/normalizeLocale.js +5 -3
  69. package/es/rce/normalizeProps.js +3 -1
  70. package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
  71. package/es/rce/plugins/instructure_color/clickCallback.js +84 -0
  72. package/es/rce/plugins/instructure_color/components/ColorPicker.js +299 -0
  73. package/es/rce/plugins/instructure_color/components/ColorPopup.js +68 -0
  74. package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
  75. package/es/rce/plugins/instructure_color/plugin.js +40 -0
  76. package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
  77. package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
  78. package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
  79. package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
  80. package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
  81. package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +22 -15
  82. package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +1 -2
  83. package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
  84. package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
  85. package/es/rce/plugins/instructure_documents/components/Link.js +3 -18
  86. package/es/rce/plugins/instructure_documents/plugin.js +7 -14
  87. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
  88. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
  89. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +12 -29
  90. package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +11 -12
  91. package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +4 -3
  92. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
  93. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +13 -7
  94. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +4 -7
  95. package/es/rce/plugins/instructure_equation/MathIcon/index.js +1 -1
  96. package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
  97. package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
  98. package/es/rce/plugins/instructure_equation/mathlive/index.js +1 -1
  99. package/es/rce/plugins/instructure_equation/plugin.js +7 -10
  100. package/es/rce/plugins/instructure_fullscreen/plugin.js +3 -6
  101. package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
  102. package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
  103. package/es/rce/plugins/instructure_icon_maker/clickCallback.js +2 -4
  104. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +1 -2
  105. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +1 -0
  106. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +1 -0
  107. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +1 -0
  108. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +1 -2
  109. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +25 -22
  110. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +7 -11
  111. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +27 -23
  112. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +5 -4
  113. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +11 -9
  114. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
  115. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +5 -4
  116. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +1 -3
  117. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +7 -7
  118. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +1 -0
  119. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +27 -20
  120. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
  121. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
  122. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +1 -0
  123. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +4 -4
  124. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +1 -2
  125. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +1 -5
  126. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
  127. package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +18 -33
  128. package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
  129. package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
  130. package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
  131. package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
  132. package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +1 -3
  133. package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
  134. package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
  135. package/es/rce/plugins/instructure_icon_maker/svg/image.js +69 -83
  136. package/es/rce/plugins/instructure_icon_maker/svg/index.js +11 -15
  137. package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  138. package/es/rce/plugins/instructure_icon_maker/svg/settings.js +32 -39
  139. package/es/rce/plugins/instructure_icon_maker/svg/shape.js +1 -49
  140. package/es/rce/plugins/instructure_icon_maker/svg/text.js +7 -92
  141. package/es/rce/plugins/instructure_icon_maker/svg/utils.js +1 -7
  142. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +2 -6
  143. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
  144. package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
  145. package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +1 -1
  146. package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
  147. package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
  148. package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +6 -24
  149. package/es/rce/plugins/instructure_image/ImageList/Image.js +1 -6
  150. package/es/rce/plugins/instructure_image/ImageList/index.js +1 -2
  151. package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +7 -27
  152. package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +3 -16
  153. package/es/rce/plugins/instructure_image/Images/index.js +1 -3
  154. package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
  155. package/es/rce/plugins/instructure_image/plugin.js +13 -18
  156. package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
  157. package/es/rce/plugins/instructure_links/components/AccordionSection.js +1 -0
  158. package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
  159. package/es/rce/plugins/instructure_links/components/Link.js +7 -19
  160. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +1 -21
  161. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +1 -4
  162. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
  163. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +1 -12
  164. package/es/rce/plugins/instructure_links/components/LinkSet.js +4 -20
  165. package/es/rce/plugins/instructure_links/components/LinksPanel.js +1 -2
  166. package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
  167. package/es/rce/plugins/instructure_links/components/NoResults.js +1 -7
  168. package/es/rce/plugins/instructure_links/plugin.js +17 -40
  169. package/es/rce/plugins/instructure_links/validateURL.js +81 -36
  170. package/es/rce/plugins/instructure_media_embed/clickCallback.js +2 -5
  171. package/es/rce/plugins/instructure_media_embed/components/Embed.js +1 -0
  172. package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
  173. package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
  174. package/es/rce/plugins/instructure_paste/plugin.js +27 -29
  175. package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +14 -53
  176. package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +21 -49
  177. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +11 -42
  178. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
  179. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
  180. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +2 -10
  181. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
  182. package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
  183. package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
  184. package/es/rce/plugins/instructure_rce_external_tools/constants.js +28 -0
  185. package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +19 -4
  186. package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
  187. package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +130 -136
  188. package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +100 -95
  189. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
  190. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +2 -19
  191. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +1 -14
  192. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
  193. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
  194. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
  195. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
  196. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +18 -10
  197. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +4 -4
  198. package/es/rce/plugins/instructure_rce_external_tools/plugin.js +7 -16
  199. package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
  200. package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +1 -25
  201. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +1 -4
  202. package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
  203. package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +8 -51
  204. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +4 -17
  205. package/es/rce/plugins/instructure_record/clickCallback.js +7 -15
  206. package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
  207. package/es/rce/plugins/instructure_record/plugin.js +11 -18
  208. package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +2 -5
  209. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +20 -35
  210. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +3 -18
  211. package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
  212. package/es/rce/plugins/instructure_search_and_replace/plugin.js +1 -3
  213. package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
  214. package/es/rce/plugins/instructure_wordcount/clickCallback.js +2 -5
  215. package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +1 -4
  216. package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
  217. package/es/rce/plugins/instructure_wordcount/utils/countContent.js +1 -8
  218. package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +1 -0
  219. package/es/rce/plugins/shared/CanvasContentTray.js +43 -63
  220. package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
  221. package/es/rce/plugins/shared/ColorInput.js +5 -14
  222. package/es/rce/plugins/shared/ConditionalTooltip.js +1 -0
  223. package/es/rce/plugins/shared/ContentSelection.js +17 -58
  224. package/es/rce/plugins/shared/DimensionUtils.js +1 -8
  225. package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
  226. package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
  227. package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
  228. package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
  229. package/es/rce/plugins/shared/EventUtils.js +1 -3
  230. package/es/rce/plugins/shared/Filter.js +8 -38
  231. package/es/rce/plugins/shared/FixedContentTray.js +3 -3
  232. package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +1 -8
  233. package/es/rce/plugins/shared/ImageCropper/Modal.js +4 -7
  234. package/es/rce/plugins/shared/ImageCropper/Preview.js +7 -11
  235. package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
  236. package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +2 -5
  237. package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +1 -0
  238. package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +1 -10
  239. package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +1 -0
  240. package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +1 -11
  241. package/es/rce/plugins/shared/ImageCropper/controls/index.js +1 -0
  242. package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +3 -16
  243. package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
  244. package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +1 -10
  245. package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
  246. package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
  247. package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
  248. package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
  249. package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
  250. package/es/rce/plugins/shared/ImageCropper/svg/shape.js +1 -17
  251. package/es/rce/plugins/shared/ImageCropper/svg/utils.js +1 -0
  252. package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +19 -46
  253. package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
  254. package/es/rce/plugins/shared/ImageOptionsForm.js +1 -2
  255. package/es/rce/plugins/shared/LinkDisplay.js +1 -2
  256. package/es/rce/plugins/shared/PreviewIcon.js +1 -6
  257. package/es/rce/plugins/shared/Previewable.js +1 -0
  258. package/es/rce/plugins/shared/RceFileBrowser.js +5 -7
  259. package/es/rce/plugins/shared/StoreContext.js +1 -2
  260. package/es/rce/plugins/shared/StudioLtiSupportUtils.js +10 -6
  261. package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
  262. package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +13 -18
  263. package/es/rce/plugins/shared/Upload/CategoryProcessor.js +1 -1
  264. package/es/rce/plugins/shared/Upload/ComputerPanel.js +8 -26
  265. package/es/rce/plugins/shared/Upload/PanelFilter.js +3 -12
  266. package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
  267. package/es/rce/plugins/shared/Upload/UploadFile.js +15 -18
  268. package/es/rce/plugins/shared/Upload/UploadFileModal.js +9 -25
  269. package/es/rce/plugins/shared/Upload/UrlPanel.js +1 -0
  270. package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +7 -12
  271. package/es/rce/plugins/shared/Upload/doFileUpload.js +4 -6
  272. package/es/rce/plugins/shared/Upload/index.js +1 -0
  273. package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +1 -3
  274. package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +6 -24
  275. package/es/rce/plugins/shared/ai_tools/aiicons.js +1 -0
  276. package/es/rce/plugins/shared/ai_tools/index.js +1 -0
  277. package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
  278. package/es/rce/plugins/shared/canvasContentUtils.js +6 -9
  279. package/es/rce/plugins/shared/compressionUtils.js +1 -8
  280. package/es/rce/plugins/shared/dateUtils.js +1 -1
  281. package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
  282. package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +7 -10
  283. package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
  284. package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
  285. package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
  286. package/es/rce/plugins/shared/fileShape.js +4 -9
  287. package/es/rce/plugins/shared/fileTypeUtils.js +32 -42
  288. package/es/rce/plugins/shared/fileUtils.js +1 -2
  289. package/es/rce/plugins/shared/linkUtils.js +1 -16
  290. package/es/rce/plugins/shared/round.js +1 -0
  291. package/es/rce/plugins/shared/trayUtils.js +4 -3
  292. package/es/rce/plugins/shared/useDataUrl.js +9 -9
  293. package/es/rce/plugins/shared/useFilterSettings.js +3 -3
  294. package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +2 -6
  295. package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +5 -63
  296. package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
  297. package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
  298. package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
  299. package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +1 -6
  300. package/es/rce/plugins/tinymce-a11y-checker/plugin.js +4 -7
  301. package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
  302. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
  303. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +1 -5
  304. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
  305. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
  306. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
  307. package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
  308. package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +1 -4
  309. package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
  310. package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
  311. package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +1 -6
  312. package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
  313. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
  314. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
  315. package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
  316. package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
  317. package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +1 -26
  318. package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +16 -15
  319. package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +7 -10
  320. package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
  321. package/es/rce/root.js +9 -8
  322. package/es/rce/sanitizePlugins.js +1 -3
  323. package/es/rce/style.js +1 -4
  324. package/es/rce/tinyRCE.js +13 -9
  325. package/es/rce/tinymce.oxide.content.min.css.js +1 -0
  326. package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
  327. package/es/rce/transformContent.js +8 -10
  328. package/es/rce/types.js +1 -0
  329. package/es/rce/userOS.js +1 -1
  330. package/es/rce/wrapInitCb.js +50 -43
  331. package/es/rcs/api.js +61 -116
  332. package/es/rcs/buildError.js +5 -17
  333. package/es/rcs/fake.js +4 -13
  334. package/es/sidebar/actions/all_files.js +2 -0
  335. package/es/sidebar/actions/data.js +4 -7
  336. package/es/sidebar/actions/documents.js +9 -6
  337. package/es/sidebar/actions/files.js +3 -6
  338. package/es/sidebar/actions/filter.js +1 -0
  339. package/es/sidebar/actions/flickr.js +1 -1
  340. package/es/sidebar/actions/images.js +12 -11
  341. package/es/sidebar/actions/links.js +1 -0
  342. package/es/sidebar/actions/media.js +12 -10
  343. package/es/sidebar/actions/session.js +1 -3
  344. package/es/sidebar/actions/ui.js +1 -0
  345. package/es/sidebar/actions/upload.js +14 -39
  346. package/es/sidebar/containers/Sidebar.js +1 -2
  347. package/es/sidebar/containers/sidebarHandlers.js +3 -1
  348. package/es/sidebar/dragHtml.js +5 -3
  349. package/es/sidebar/reducers/all_files.js +4 -3
  350. package/es/sidebar/reducers/collection.js +12 -13
  351. package/es/sidebar/reducers/collections.js +5 -5
  352. package/es/sidebar/reducers/documents.js +6 -13
  353. package/es/sidebar/reducers/files.js +3 -3
  354. package/es/sidebar/reducers/filter.js +1 -8
  355. package/es/sidebar/reducers/flickr.js +9 -9
  356. package/es/sidebar/reducers/folder.js +15 -15
  357. package/es/sidebar/reducers/folders.js +3 -3
  358. package/es/sidebar/reducers/images.js +3 -13
  359. package/es/sidebar/reducers/index.js +3 -1
  360. package/es/sidebar/reducers/media.js +6 -13
  361. package/es/sidebar/reducers/newPageLinkExpanded.js +1 -2
  362. package/es/sidebar/reducers/noop.js +1 -0
  363. package/es/sidebar/reducers/rootFolderId.js +1 -2
  364. package/es/sidebar/reducers/session.js +3 -3
  365. package/es/sidebar/reducers/ui.js +3 -16
  366. package/es/sidebar/reducers/upload.js +8 -40
  367. package/es/sidebar/store/configureStore.js +1 -0
  368. package/es/sidebar/store/initialState.js +13 -24
  369. package/es/translations/locales/ab.js +1 -0
  370. package/es/translations/locales/ar.js +67 -9
  371. package/es/translations/locales/ca.js +67 -9
  372. package/es/translations/locales/cs.js +1 -0
  373. package/es/translations/locales/cs_CZ.js +1 -0
  374. package/es/translations/locales/cy.js +67 -9
  375. package/es/translations/locales/da-x-k12.js +67 -9
  376. package/es/translations/locales/da.js +67 -9
  377. package/es/translations/locales/da_DK.js +1 -0
  378. package/es/translations/locales/de.js +67 -9
  379. package/es/translations/locales/el.js +4 -0
  380. package/es/translations/locales/en-AU-x-unimelb.js +67 -9
  381. package/es/translations/locales/en-GB-x-ukhe.js +67 -9
  382. package/es/translations/locales/en.js +72 -8
  383. package/es/translations/locales/en_AU.js +67 -9
  384. package/es/translations/locales/en_CA.js +67 -9
  385. package/es/translations/locales/en_CY.js +67 -9
  386. package/es/translations/locales/en_GB.js +67 -9
  387. package/es/translations/locales/en_NZ.js +1 -0
  388. package/es/translations/locales/en_SE.js +1 -0
  389. package/es/translations/locales/en_US.js +1 -0
  390. package/es/translations/locales/es.js +67 -9
  391. package/es/translations/locales/es_ES.js +67 -9
  392. package/es/translations/locales/es_GT.js +1 -0
  393. package/es/translations/locales/fa_IR.js +7 -0
  394. package/es/translations/locales/fi.js +67 -9
  395. package/es/translations/locales/fr.js +67 -9
  396. package/es/translations/locales/fr_CA.js +68 -10
  397. package/es/translations/locales/ga.js +5 -13
  398. package/es/translations/locales/he.js +7 -0
  399. package/es/translations/locales/hi.js +67 -9
  400. package/es/translations/locales/ht.js +67 -9
  401. package/es/translations/locales/hu.js +7 -6
  402. package/es/translations/locales/hu_HU.js +1 -0
  403. package/es/translations/locales/hy.js +1 -0
  404. package/es/translations/locales/id.js +67 -9
  405. package/es/translations/locales/id_ID.js +1 -0
  406. package/es/translations/locales/is.js +67 -9
  407. package/es/translations/locales/it.js +67 -9
  408. package/es/translations/locales/ja.js +67 -9
  409. package/es/translations/locales/ko.js +1 -0
  410. package/es/translations/locales/ko_KR.js +1 -0
  411. package/es/translations/locales/lt.js +1 -0
  412. package/es/translations/locales/lt_LT.js +1 -0
  413. package/es/translations/locales/mi.js +67 -9
  414. package/es/translations/locales/mn_MN.js +1 -0
  415. package/es/translations/locales/ms.js +67 -9
  416. package/es/translations/locales/nb-x-k12.js +67 -9
  417. package/es/translations/locales/nb.js +67 -9
  418. package/es/translations/locales/nl.js +67 -9
  419. package/es/translations/locales/nl_NL.js +1 -0
  420. package/es/translations/locales/nn.js +7 -6
  421. package/es/translations/locales/pl.js +67 -9
  422. package/es/translations/locales/pt.js +67 -9
  423. package/es/translations/locales/pt_BR.js +67 -9
  424. package/es/translations/locales/ro.js +1 -0
  425. package/es/translations/locales/ru.js +67 -9
  426. package/es/translations/locales/se.js +1 -0
  427. package/es/translations/locales/sl.js +67 -9
  428. package/es/translations/locales/sv-x-k12.js +67 -9
  429. package/es/translations/locales/sv.js +67 -9
  430. package/es/translations/locales/sv_SE.js +1 -0
  431. package/es/translations/locales/tg.js +1 -0
  432. package/es/translations/locales/th.js +67 -9
  433. package/es/translations/locales/th_TH.js +1 -0
  434. package/es/translations/locales/tl_PH.js +1 -0
  435. package/es/translations/locales/tr.js +7 -0
  436. package/es/translations/locales/uk_UA.js +7 -0
  437. package/es/translations/locales/vi.js +67 -9
  438. package/es/translations/locales/vi_VN.js +1 -0
  439. package/es/translations/locales/zh-Hans.js +67 -9
  440. package/es/translations/locales/zh-Hant.js +67 -9
  441. package/es/translations/locales/zh.js +67 -9
  442. package/es/translations/locales/zh_HK.js +67 -9
  443. package/es/translations/locales/zh_TW.Big5.js +1 -0
  444. package/es/translations/locales/zh_TW.js +1 -0
  445. package/es/translations/tinymce/ar_SA.js +1 -0
  446. package/es/translations/tinymce/fi.js +1 -0
  447. package/es/translations/tinymce/ga.js +1 -0
  448. package/es/translations/tinymce/id.js +1 -0
  449. package/es/translations/tinymce/ru.js +1 -0
  450. package/es/translations/tinymce/ru_RU.js +1 -0
  451. package/es/translations/tinymce/sl.js +1 -0
  452. package/es/translations/tinymce/sr.js +1 -0
  453. package/es/translations/tinymce/th.js +1 -0
  454. package/es/translations/tinymce/uk_UA.js +1 -0
  455. package/es/translations/tinymce/vi_VN.js +1 -0
  456. package/es/util/TypedDict.js +4 -2
  457. package/es/util/encrypted-storage.js +3 -13
  458. package/es/util/file-url-util.js +1 -6
  459. package/es/util/fullscreenHelpers.js +4 -1
  460. package/es/util/instui-icon-helper.js +4 -3
  461. package/es/util/loadingPlaceholder.js +38 -39
  462. package/es/util/simpleCache.js +0 -3
  463. package/es/util/string-util.js +1 -1
  464. package/es/util/textarea-editing-util.js +3 -7
  465. package/es/util/tinymce-plugin-util.js +0 -5
  466. package/es/util/url-util.js +16 -25
  467. package/eslint.config.js +239 -0
  468. package/jest.config.js +1 -1
  469. package/package.json +77 -82
  470. package/scripts/build-canvas +2 -1
  471. package/scripts/build.js +4 -4
  472. package/scripts/publish_to_npm.sh +1 -1
  473. package/testcafe/RCEWrapper.test.js +0 -1
  474. package/testcafe/StatusBar.test.js +0 -1
  475. package/testcafe/axe.test.js +3 -4
  476. package/testcafe/enhanceUserContent.test.js +0 -1
  477. package/tsconfig.json +20 -15
  478. package/.eslintrc +0 -45
  479. package/.prettierignore +0 -6
  480. package/es/common/components/FileTree/File.js +0 -64
  481. package/es/common/components/FileTree/Folder.js +0 -110
  482. package/es/common/components/FileTree/index.js +0 -84
  483. package/es/common/components/FileTree/styles.js +0 -72
  484. package/es/common/components/Loading.js +0 -83
@@ -15,7 +15,9 @@
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 { performTextEditActionOnTextarea } from '../../../../util/textarea-editing-util';
20
+
19
21
  /**
20
22
  * Inserts text into a textarea for editing LaTeX, handling selection and focus management.
21
23
  *
@@ -24,10 +26,8 @@ import { performTextEditActionOnTextarea } from '../../../../util/textarea-editi
24
26
  * @param textarea
25
27
  * @param insertionText
26
28
  */
27
-
28
29
  export function insertTextIntoLatexTextarea(textarea, insertionText) {
29
30
  var _textarea$value, _textarea$selectionSt, _textarea$selectionEn;
30
-
31
31
  const currentText = (_textarea$value = textarea === null || textarea === void 0 ? void 0 : textarea.value) !== null && _textarea$value !== void 0 ? _textarea$value : '';
32
32
  const selStart = (_textarea$selectionSt = textarea === null || textarea === void 0 ? void 0 : textarea.selectionStart) !== null && _textarea$selectionSt !== void 0 ? _textarea$selectionSt : currentText.length;
33
33
  const selEnd = (_textarea$selectionEn = textarea === null || textarea === void 0 ? void 0 : textarea.selectionEnd) !== null && _textarea$selectionEn !== void 0 ? _textarea$selectionEn : selStart;
@@ -48,23 +48,24 @@ export function planInsertTextIntoLatexTextarea(args) {
48
48
  selStart,
49
49
  selEnd
50
50
  } = args;
51
- const selectedText = currentText.substring(selStart, selEnd); // Look for parameters ([] or {}) in the command text, because we'll want to wrap the current selection in the
52
- // command in that case
51
+ const selectedText = currentText.substring(selStart, selEnd);
53
52
 
54
- const singleParamParts = insertionText.match( // Match both [] and {}
53
+ // Look for parameters ([] or {}) in the command text, because we'll want to wrap the current selection in the
54
+ // command in that case
55
+ const singleParamParts = insertionText.match(
56
+ // Match both [] and {}
55
57
  /^(.*?\{)\s*(}.*)$|^(.*?\[)\s*(].*)$/);
56
- const doubleParamParts = insertionText.match( // Match two sets of [] and/or {}
57
- /^(?:(.*?\{)\s*(}.*?)|(.*?\[)\s*(].*?))(?:(.*?\{)\s*(}.*?)|(.*?\[)\s*(].*))$/ // 1 2 3 4 5 6 7 8
58
+ const doubleParamParts = insertionText.match(
59
+ // Match two sets of [] and/or {}
60
+ /^(?:(.*?\{)\s*(}.*?)|(.*?\[)\s*(].*?))(?:(.*?\{)\s*(}.*?)|(.*?\[)\s*(].*))$/
61
+ // 1 2 3 4 5 6 7 8
58
62
  );
59
-
60
63
  if (doubleParamParts) {
61
64
  var _ref, _m$, _ref2, _m$2, _ref3, _m$3, _ref4, _m$4;
62
-
63
65
  const m = doubleParamParts;
64
66
  const before = (_ref = (_m$ = m[1]) !== null && _m$ !== void 0 ? _m$ : m[3]) !== null && _ref !== void 0 ? _ref : '';
65
67
  const middle = ((_ref2 = (_m$2 = m[2]) !== null && _m$2 !== void 0 ? _m$2 : m[4]) !== null && _ref2 !== void 0 ? _ref2 : '') + ((_ref3 = (_m$3 = m[5]) !== null && _m$3 !== void 0 ? _m$3 : m[7]) !== null && _ref3 !== void 0 ? _ref3 : '');
66
68
  const after = (_ref4 = (_m$4 = m[6]) !== null && _m$4 !== void 0 ? _m$4 : m[8]) !== null && _ref4 !== void 0 ? _ref4 : '';
67
-
68
69
  if (selectedText.length) {
69
70
  // When there is a selection with a double-parameter command, the selection should fill the first parameter
70
71
  // and the cursor should be be placed in the second parameter
@@ -85,10 +86,8 @@ export function planInsertTextIntoLatexTextarea(args) {
85
86
  }
86
87
  } else if (singleParamParts) {
87
88
  var _singleParamParts$, _singleParamParts$2;
88
-
89
89
  const before = (_singleParamParts$ = singleParamParts[1]) !== null && _singleParamParts$ !== void 0 ? _singleParamParts$ : singleParamParts[3];
90
90
  const after = (_singleParamParts$2 = singleParamParts[2]) !== null && _singleParamParts$2 !== void 0 ? _singleParamParts$2 : singleParamParts[4];
91
-
92
91
  if (selectedText.length) {
93
92
  // When there is a selection and only a single parameter, the selection should be used as the parameter
94
93
  // and the cursor placed at the end of the command
@@ -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 { containsAdvancedSyntax } from './advancedOnlySyntax';
19
20
  // Used to detect inline latex delimited like: \( ... \) OR $$ ... $$
20
21
  const BOUNDARY_REGEX = /\\\((.+?)\\\)|\$\$(.+?)\$\$/g;
@@ -48,8 +49,9 @@ export const parseLatex = editor => {
48
49
  const selectionNode = editor.selection.getNode();
49
50
  const editorRange = editor.selection.getRng();
50
51
  const startContainer = editorRange === null || editorRange === void 0 ? void 0 : editorRange.startContainer;
51
- const wholeText = startContainer === null || startContainer === void 0 ? void 0 : startContainer.wholeText; // check if selection is inline latex
52
+ const wholeText = startContainer === null || startContainer === void 0 ? void 0 : startContainer.wholeText;
52
53
 
54
+ // check if selection is inline latex
53
55
  if (selection && selectionIsLatex(selection)) {
54
56
  const latex = cleanLatex(selection);
55
57
  return {
@@ -72,18 +74,17 @@ export const parseLatex = editor => {
72
74
  }
73
75
  } else if (wholeText) {
74
76
  // check if the cursor was within inline latex when launched
77
+
75
78
  // The `wholeText` value is not sufficient, since we could be dealing with
76
79
  // a number of nested ranges. The `nodeValue` is the text in the range in
77
80
  // which we have found the cursor.
78
81
  const nodeValue = startContainer.nodeValue || '';
79
82
  const cursor = editorRange.startOffset;
80
83
  const parsedLatex = findLatex(nodeValue, cursor);
81
-
82
84
  if (parsedLatex.latex) {
83
85
  parsedLatex.startContainer = startContainer;
84
86
  parsedLatex.advancedOnly = containsAdvancedSyntax(parsedLatex.latex);
85
87
  }
86
-
87
88
  return parsedLatex;
88
89
  } else {
89
90
  return {};
@@ -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 { StyleSheet } from 'aphrodite';
19
20
  const cssRules = `#MathJax_MenuFrame {
20
21
  z-index: 10000 !important;
21
- }`; // Applying z-index for MathJax menu inside config shows the element but doesn't user interact with it.
22
- // Manually adding z-index as head style
22
+ }`;
23
23
 
24
+ // Applying z-index for MathJax menu inside config shows the element but doesn't user interact with it.
25
+ // Manually adding z-index as head style
24
26
  const style = document.createElement('style');
25
27
  style.appendChild(document.createTextNode(cssRules));
26
28
  document.head.appendChild(style);
@@ -15,8 +15,8 @@
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
  module.exports = [{
21
21
  name: formatMessage('Basic'),
22
22
  commands: [{
@@ -61,7 +61,8 @@ module.exports = [{
61
61
  advancedCommand: '\\binom{ }{ }',
62
62
  svgCommand: '\\binom{n}{m}',
63
63
  label: formatMessage('Binomial Coefficient')
64
- }, // TODO maybe re-add vector, after figuring out if it even works
64
+ },
65
+ // TODO maybe re-add vector, after figuring out if it even works
65
66
  {
66
67
  command: 'f',
67
68
  label: formatMessage('F (function)')
@@ -404,7 +405,8 @@ module.exports = [{
404
405
  }, {
405
406
  command: '\\ni',
406
407
  label: formatMessage('Contains')
407
- }, // TODO consider reenabling once mathlive supports it
408
+ },
409
+ // TODO consider reenabling once mathlive supports it
408
410
  // { command: '\\notni' },
409
411
  {
410
412
  command: '\\subset',
@@ -670,7 +672,8 @@ module.exports = [{
670
672
  }, {
671
673
  command: '\\spadesuit',
672
674
  label: formatMessage('Spades (Suit)')
673
- }, // TODO maybe readd caret, underscore once I figure out if they even worked
675
+ },
676
+ // TODO maybe readd caret, underscore once I figure out if they even worked
674
677
  {
675
678
  command: '\\backslash',
676
679
  label: formatMessage('Backslash')
@@ -686,7 +689,8 @@ module.exports = [{
686
689
  }, {
687
690
  command: '\\hbar',
688
691
  label: formatMessage('H Bar')
689
- }, // TODO consider renabling if we can not get stuck in text mode
692
+ },
693
+ // TODO consider renabling if we can not get stuck in text mode
690
694
  // { command: '\\text\\AA' },
691
695
  {
692
696
  command: '\\circ',
@@ -700,7 +704,8 @@ module.exports = [{
700
704
  }, {
701
705
  command: '\\neg',
702
706
  label: formatMessage('Not (Negation)')
703
- }, // TODO consider reenabling once mathlive supports it
707
+ },
708
+ // TODO consider reenabling once mathlive supports it
704
709
  // { command: '\\dots' },
705
710
  {
706
711
  command: '\\Re',
@@ -720,7 +725,8 @@ module.exports = [{
720
725
  }, {
721
726
  command: '^\\circ',
722
727
  label: formatMessage('Degree Symbol')
723
- }, // \\deg requires the gensymb package added to LaTex
728
+ },
729
+ // \\deg requires the gensymb package added to LaTex
724
730
  {
725
731
  command: '\\angle',
726
732
  label: formatMessage('Angle')
@@ -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, { useState } from 'react';
19
20
  import PropTypes from 'prop-types';
20
21
  import { Tabs } from '@instructure/ui-tabs';
@@ -26,17 +27,14 @@ const buttonContainerStyle = {
26
27
  marginBottom: '5px',
27
28
  paddingRight: '5px'
28
29
  };
29
-
30
30
  function EquationEditorToolbar(props) {
31
31
  const [selectedTab, setSelectedTab] = useState('Basic');
32
-
33
32
  const handleTabChange = (event, _ref) => {
34
33
  let {
35
34
  index
36
35
  } = _ref;
37
36
  setSelectedTab(buttons[index].name);
38
37
  };
39
-
40
38
  const renderTabPanel = section => /*#__PURE__*/React.createElement(Tabs.Panel, {
41
39
  id: section.name,
42
40
  key: section.name,
@@ -53,11 +51,12 @@ function EquationEditorToolbar(props) {
53
51
  const name = displayName || command;
54
52
  const icon = /*#__PURE__*/React.createElement(MathIcon, {
55
53
  command: command
56
- }); // I'm inlining styles here because for some reason the RCE plugin plays
54
+ });
55
+
56
+ // I'm inlining styles here because for some reason the RCE plugin plays
57
57
  // poorly with the way webpack is compiling styles, causing rules from a
58
58
  // styles.css file to not show up. It would be nice to figure out how to
59
59
  // fix this, though.
60
-
61
60
  return /*#__PURE__*/React.createElement("div", {
62
61
  style: buttonContainerStyle,
63
62
  key: name
@@ -67,7 +66,6 @@ function EquationEditorToolbar(props) {
67
66
  screenReaderLabel: `${label}, LaTeX: ${name}`
68
67
  }));
69
68
  }));
70
-
71
69
  return /*#__PURE__*/React.createElement(Tabs, {
72
70
  variant: "secondary",
73
71
  onRequestTabChange: handleTabChange,
@@ -76,7 +74,6 @@ function EquationEditorToolbar(props) {
76
74
  maxWidth: "42rem"
77
75
  }, buttons.map(renderTabPanel));
78
76
  }
79
-
80
77
  EquationEditorToolbar.propTypes = {
81
78
  executeCommand: PropTypes.func.isRequired
82
79
  };
@@ -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 { string } from 'prop-types';
20
21
  import { IconWarningLine } from '@instructure/ui-icons';
@@ -24,7 +25,6 @@ export default function MathIcon(_ref) {
24
25
  let {
25
26
  command
26
27
  } = _ref;
27
-
28
28
  if (command in svgs) {
29
29
  return /*#__PURE__*/React.createElement(SVGIcon, {
30
30
  src: svgs[command],
@@ -17,8 +17,8 @@
17
17
  */
18
18
 
19
19
  /***** This is an auto-generated file. Please do not modify manually *****/
20
-
21
20
  /************ If you need to update, run 'yarn generate-svgs' ************/
21
+
22
22
  export default {
23
23
  '_{\\placeholder{}}': '<svg style="vertical-align: -0.339ex" xmlns="http://www.w3.org/2000/svg" width="2.727ex" height="1.339ex" role="img" focusable="false" viewBox="0 -442 1205.1 592" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-1-TEX-I-1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path><path id="MJX-1-TEX-I-25FB" d="M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM682 40V649H95V40H682Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><use data-c="1D465" xlink:href="#MJX-1-TEX-I-1D465"></use></g><g data-mml-node="TeXAtom" transform="translate(605,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><use data-c="25FB" xlink:href="#MJX-1-TEX-I-25FB"></use></g></g></g></g></g></svg>',
24
24
  '^{\\placeholder{}}': '<svg style="vertical-align: -0.025ex" xmlns="http://www.w3.org/2000/svg" width="2.727ex" height="2.062ex" role="img" focusable="false" viewBox="0 -900.2 1205.1 911.2" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-2-TEX-I-1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path><path id="MJX-2-TEX-I-25FB" d="M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM682 40V649H95V40H682Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mi"><use data-c="1D465" xlink:href="#MJX-2-TEX-I-1D465"></use></g><g data-mml-node="TeXAtom" transform="translate(605,413) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><use data-c="25FB" xlink:href="#MJX-2-TEX-I-25FB"></use></g></g></g></g></g></svg>',
@@ -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 ReactDOM from 'react-dom';
20
21
  import Bridge from '../../../bridge';
@@ -25,23 +26,19 @@ export default function (ed, document, _trayProps) {
25
26
  const rce = Bridge.activeEditor();
26
27
  const EquationEditorModal = module.default;
27
28
  let container = document.querySelector('.canvas-rce-equation-container');
28
-
29
29
  if (!container) {
30
30
  container = document.createElement('div');
31
31
  container.className = 'canvas-rce-equation-container';
32
32
  document.body.appendChild(container);
33
33
  }
34
-
35
34
  const handleDismiss = () => {
36
35
  ReactDOM.unmountComponentAtNode(container);
37
36
  ed.focus(false);
38
37
  };
39
-
40
38
  const handleSubmit = latex => {
41
39
  rce.insertMathEquation(latex);
42
40
  };
43
-
44
- ReactDOM.render( /*#__PURE__*/React.createElement(EquationEditorModal, {
41
+ ReactDOM.render(/*#__PURE__*/React.createElement(EquationEditorModal, {
45
42
  editor: ed,
46
43
  onModalDismiss: handleDismiss,
47
44
  onModalClose: handleDismiss,
@@ -15,8 +15,8 @@
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 mathliveCss = require('mathlive/dist/mathlive-fonts.css');
19
18
 
19
+ const mathliveCss = require('mathlive/dist/mathlive-fonts.css');
20
20
  const cssRules = `.ML__popover {
21
21
  /* Override this so it shows up on top of dialogs */
22
22
  z-index: 20000 !important;
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  /*
4
2
  * Copyright (C) 2018 - present Instructure, Inc.
5
3
  *
@@ -17,16 +15,17 @@
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 formatMessage from '../../../format-message';
21
20
  import clickCallback from './clickCallback';
21
+ // @ts-expect-error
22
22
  import { IconEquationLine } from '@instructure/ui-icons/es/svg';
23
23
  import tinymce from 'tinymce';
24
-
25
24
  function isEquationImage(node) {
26
25
  return node.tagName === 'IMG' && node.classList.contains('equation_image') || node.classList.contains('math_equation_latex');
27
- } // Register plugin
28
-
26
+ }
29
27
 
28
+ // Register plugin
30
29
  tinymce.PluginManager.add('instructure_equation', function (ed) {
31
30
  ed.ui.registry.addIcon('equation', IconEquationLine.src);
32
31
  ed.addCommand('instructureEquation', () => clickCallback(ed, document));
@@ -42,22 +41,20 @@ tinymce.PluginManager.add('instructure_equation', function (ed) {
42
41
  }),
43
42
  onAction: () => ed.execCommand('instructureEquation'),
44
43
  icon: 'equation',
45
-
46
44
  onSetup(buttonApi) {
45
+ // @ts-expect-error
47
46
  const toggleActive = eventApi => {
48
47
  buttonApi.setActive(isEquationImage(eventApi.element));
49
48
  };
50
-
51
49
  ed.on('NodeChange', toggleActive);
52
50
  return () => ed.off('NodeChange', toggleActive);
53
51
  }
54
-
55
52
  });
56
53
  ed.ui.registry.addButton('instructure-equation-options', {
57
- onAction() {
54
+ onAction(/* buttonApi */
55
+ ) {
58
56
  ed.execCommand('instructureEquation');
59
57
  },
60
-
61
58
  text: formatMessage('Edit Equation')
62
59
  });
63
60
  ed.ui.registry.addContextToolbar('instructure-equation-toolbar', {
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  /*
4
2
  * Copyright (C) 2022 - 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 tinymce from 'tinymce';
21
20
  import formatMessage from '../../../format-message';
22
21
  import bridge from '../../../bridge';
@@ -29,22 +28,20 @@ tinymce.PluginManager.add('instructure_fullscreen', function (editor) {
29
28
  text: formatMessage('Fullscreen'),
30
29
  icon: 'fullscreen',
31
30
  onAction: () => editor.execCommand('instructureFullscreen'),
32
-
33
31
  onSetup(api) {
32
+ // @ts-expect-error
34
33
  api.setDisabled(!!document[FS_ELEMENT]);
35
34
  return () => undefined;
36
35
  }
37
-
38
36
  });
39
37
  editor.ui.registry.addMenuItem('instructure_exit_fullscreen', {
40
38
  text: formatMessage('Exit Fullscreen'),
41
39
  icon: 'fullscreen_exit',
42
40
  onAction: () => editor.execCommand('instructureFullscreen'),
43
-
44
41
  onSetup(api) {
42
+ // @ts-expect-error
45
43
  api.setDisabled(!document[FS_ELEMENT]);
46
44
  return () => undefined;
47
45
  }
48
-
49
46
  });
50
47
  });
@@ -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 bridge from '../../../bridge';
19
20
  export default function () {
20
21
  bridge.activeEditor().toggleView();
@@ -15,23 +15,24 @@
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 clickCallback from './clickCallback';
20
- import tinymce from 'tinymce'; // Register plugin
21
+ import tinymce from 'tinymce';
21
22
 
23
+ // Register plugin
22
24
  tinymce.PluginManager.add('instructure_html_view', function (ed) {
23
25
  // Register commands
24
- ed.addCommand('instructureHtmlView', () => clickCallback()); // Register menu items
26
+ ed.addCommand('instructureHtmlView', () => clickCallback());
25
27
 
28
+ // Register menu items
26
29
  ed.ui.registry.addMenuItem('instructure_html_view', {
27
30
  text: formatMessage('HTML Editor'),
28
31
  icon: 'htmlview',
29
32
  onAction: () => ed.execCommand('instructureHtmlView'),
30
-
31
33
  onSetup(api) {
32
34
  api.setDisabled(false);
33
35
  return () => undefined;
34
36
  }
35
-
36
37
  });
37
38
  });
@@ -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 ReactDOM from 'react-dom';
20
21
  import bridge from '../../../bridge';
@@ -30,12 +31,10 @@ export default function (ed, document, type) {
30
31
  } = _ref;
31
32
  let container = document.querySelector(`#${ICONS_TRAY_CONTAINER_ID}`);
32
33
  const trayProps = bridge.trayProps.get(ed);
33
-
34
34
  const handleUnmount = () => {
35
35
  ReactDOM.unmountComponentAtNode(container);
36
36
  ed.focus(false);
37
37
  };
38
-
39
38
  if (!container) {
40
39
  container = document.createElement('div');
41
40
  container.id = ICONS_TRAY_CONTAINER_ID;
@@ -46,8 +45,7 @@ export default function (ed, document, type) {
46
45
  // that closes and opens the tray to indicate a mode change to the user
47
46
  handleUnmount();
48
47
  }
49
-
50
- ReactDOM.render( /*#__PURE__*/React.createElement(StoreProvider, trayProps, () => /*#__PURE__*/React.createElement(IconMakerTray, {
48
+ ReactDOM.render(/*#__PURE__*/React.createElement(StoreProvider, trayProps, () => /*#__PURE__*/React.createElement(IconMakerTray, {
51
49
  editor: ed,
52
50
  editing: type === EDIT_ICON_MAKER,
53
51
  onUnmount: handleUnmount,
@@ -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 { Flex } from '@instructure/ui-flex';
20
21
  import { SimpleSelect } from '@instructure/ui-simple-select';
@@ -22,9 +23,7 @@ import { ColorInput } from '../../../shared/ColorInput';
22
23
  import formatMessage from '../../../../../format-message';
23
24
  const OUTLINE_SIZES = ['none', 'small', 'medium', 'large'];
24
25
  export const COLOR_SECTION_ID = 'icons-tray-color-section';
25
-
26
26
  const getColorSection = () => document.querySelector(`#${COLOR_SECTION_ID}`);
27
-
28
27
  export const ColorSection = _ref => {
29
28
  let {
30
29
  settings,
@@ -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 { Header } from './Header';
20
21
  import { ShapeSection } from './ShapeSection';
@@ -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 { Button } from '@instructure/ui-buttons';
20
21
  import { Checkbox } from '@instructure/ui-checkbox';
@@ -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 { ToggleGroup } from '@instructure/ui-toggle-details';
20
21
  import formatMessage from '../../../../../format-message';
@@ -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, { useEffect } from 'react';
19
20
  import { Flex } from '@instructure/ui-flex';
20
21
  import { TextInput } from '@instructure/ui-text-input';
@@ -28,7 +29,6 @@ import { IconQuestionLine } from '@instructure/ui-icons';
28
29
  import { FormFieldLabel } from '@instructure/ui-form-field';
29
30
  import { decode } from '../../svg/utils';
30
31
  import useDebouncedValue from '../../utils/useDebouncedValue';
31
-
32
32
  const getAltTextLabel = () => /*#__PURE__*/React.createElement(Flex, {
33
33
  alignItems: "center",
34
34
  margin: "0 0 small 0"
@@ -49,7 +49,6 @@ const getAltTextLabel = () => /*#__PURE__*/React.createElement(Flex, {
49
49
  size: "small",
50
50
  screenReaderLabel: formatMessage('Toggle tooltip')
51
51
  }))));
52
-
53
52
  export const Header = _ref => {
54
53
  let {
55
54
  settings,