@instructure/canvas-rce 5.11.1 → 5.12.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 (505) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/babel-register.js +0 -7
  3. package/babel.config.cjs.js +0 -7
  4. package/babel.config.js +0 -9
  5. package/es/canvasFileBrowser/FileBrowser.js +6 -1
  6. package/es/common/fileUrl.js +3 -4
  7. package/es/defaultTinymceConfig.js +1 -1
  8. package/{lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js → es/elementDenylist.js} +2 -6
  9. package/es/enhance-user-content/doc_previews.js +4 -0
  10. package/es/enhance-user-content/enhance_user_content.js +4 -59
  11. package/es/enhance-user-content/external_links.js +75 -0
  12. package/es/enhance-user-content/mathml.js +9 -7
  13. package/es/getThemeVars.js +4 -3
  14. package/es/getTranslations.js +77 -1
  15. package/es/index.js +1 -1
  16. package/es/rce/RCEWrapper.js +5 -2328
  17. package/es/rce/StatusBar.js +8 -2
  18. package/es/rce/contentInsertion.js +5 -2
  19. package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +3 -9
  20. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +1 -1
  21. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +3 -11
  22. package/es/rce/plugins/instructure_equation/mathlive/index.js +5 -13
  23. package/es/rce/plugins/instructure_html_view/plugin.js +2 -2
  24. package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +3 -2
  25. package/es/rce/plugins/instructure_image/ImageList/Image.js +2 -2
  26. package/es/rce/plugins/instructure_image/Images/index.js +3 -10
  27. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +3 -0
  28. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -1
  29. package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +26 -1
  30. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +9 -3
  31. package/es/rce/plugins/instructure_record/MediaPanel/index.js +3 -9
  32. package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +27 -2
  33. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +35 -6
  34. package/es/rce/plugins/shared/fileShape.js +81 -9
  35. package/es/rce/plugins/shared/fileTypeUtils.js +6 -0
  36. package/es/rce/tinymce.oxide.content.min.css.js +732 -0
  37. package/es/rce/tinymce.oxide.skin.min.css.js +7 -0
  38. package/es/rcs/api.js +6 -4
  39. package/es/sidebar/store/configureStore.js +2 -2
  40. package/{lib/translations/locales/tg.js → es/translations/locales/ab.js} +1 -1
  41. package/es/translations/locales/cs.js +27 -0
  42. package/es/translations/locales/cs_CZ.js +27 -0
  43. package/{lib/translations/locales/sv_SE.js → es/translations/locales/da_DK.js} +2 -2
  44. package/{lib/translations/locales/se.js → es/translations/locales/en_NZ.js} +2 -2
  45. package/es/translations/locales/en_SE.js +26 -0
  46. package/es/translations/locales/en_US.js +26 -0
  47. package/es/translations/locales/hu_HU.js +27 -0
  48. package/{lib/translations/locales/ms.js → es/translations/locales/id.js} +632 -632
  49. package/{lib/translations/locales/th.js → es/translations/locales/id_ID.js} +1 -2
  50. package/{lib/translations/locales/vi_VN.js → es/translations/locales/ko_KR.js} +2 -2
  51. package/es/translations/locales/lt.js +26 -0
  52. package/es/translations/locales/lt_LT.js +26 -0
  53. package/es/translations/locales/mn_MN.js +26 -0
  54. package/es/translations/locales/nl_NL.js +27 -0
  55. package/{lib/translations/locales/es_GT.js → es/translations/locales/ro.js} +3 -3
  56. package/es/translations/locales/ru.js +2375 -32
  57. package/es/translations/locales/sv.js +2379 -30
  58. package/es/translations/locales/th.js +2401 -1
  59. package/es/translations/locales/tl_PH.js +26 -0
  60. package/es/translations/locales/tr.js +3 -0
  61. package/es/translations/locales/vi.js +2396 -8
  62. package/es/translations/locales/zh_TW.Big5.js +27 -0
  63. package/{lib/translations/locales/th_TH.js → es/translations/locales/zh_TW.js} +2 -2
  64. package/jest.config.js +0 -7
  65. package/package.json +9 -11
  66. package/scripts/build.js +1 -7
  67. package/scripts/publish_to_npm.sh +26 -0
  68. package/canvas/README.md +0 -84
  69. package/canvas/locales/en.json +0 -934
  70. package/canvas/package.json +0 -189
  71. package/es/common/scroll.js +0 -45
  72. package/es/types/inst-ui.d.js +0 -18
  73. package/es/types/ts-migration.js +0 -1
  74. package/lib/bridge/Bridge.js +0 -287
  75. package/lib/bridge/index.js +0 -21
  76. package/lib/canvasFileBrowser/FileBrowser.js +0 -452
  77. package/lib/canvasFileBrowser/en-US.js +0 -234
  78. package/lib/common/FlashAlert.js +0 -263
  79. package/lib/common/browser.js +0 -40
  80. package/lib/common/components/FileTree/File.js +0 -64
  81. package/lib/common/components/FileTree/Folder.js +0 -110
  82. package/lib/common/components/FileTree/index.js +0 -84
  83. package/lib/common/components/FileTree/styles.js +0 -72
  84. package/lib/common/components/Loading.js +0 -83
  85. package/lib/common/fileUrl.js +0 -153
  86. package/lib/common/getCookie.js +0 -32
  87. package/lib/common/incremental-loading/LoadMoreButton.js +0 -40
  88. package/lib/common/incremental-loading/LoadingIndicator.js +0 -36
  89. package/lib/common/incremental-loading/LoadingStatus.js +0 -47
  90. package/lib/common/incremental-loading/index.js +0 -21
  91. package/lib/common/incremental-loading/useIncrementalLoading.js +0 -58
  92. package/lib/common/indicate.js +0 -75
  93. package/lib/common/mimeClass.js +0 -120
  94. package/lib/common/natcompare.js +0 -47
  95. package/lib/common/scroll.js +0 -45
  96. package/lib/defaultTinymceConfig.js +0 -160
  97. package/lib/enhance-user-content/doc_previews.js +0 -233
  98. package/lib/enhance-user-content/enhance_user_content.js +0 -396
  99. package/lib/enhance-user-content/index.js +0 -21
  100. package/lib/enhance-user-content/instructure_helper.js +0 -207
  101. package/lib/enhance-user-content/jqueryish_funcs.js +0 -88
  102. package/lib/enhance-user-content/mathml.js +0 -397
  103. package/lib/enhance-user-content/media_comment_thumbnail.js +0 -130
  104. package/lib/format-message.js +0 -30
  105. package/lib/getThemeVars.js +0 -45
  106. package/lib/getTranslations.js +0 -264
  107. package/lib/index.js +0 -51
  108. package/lib/rce/AlertMessageArea.js +0 -47
  109. package/lib/rce/DraggingBlocker.js +0 -43
  110. package/lib/rce/KeyboardShortcutModal.js +0 -88
  111. package/lib/rce/RCE.js +0 -150
  112. package/lib/rce/RCEGlobals.js +0 -62
  113. package/lib/rce/RCEWrapper.js +0 -4278
  114. package/lib/rce/RCEWrapperProps.js +0 -130
  115. package/lib/rce/RceHtmlEditor.js +0 -142
  116. package/lib/rce/ResizeHandle.js +0 -102
  117. package/lib/rce/RestoreAutoSaveModal.js +0 -82
  118. package/lib/rce/ShowOnFocusButton/index.js +0 -93
  119. package/lib/rce/StatusBar.js +0 -380
  120. package/lib/rce/__mocks__/_mockCryptoEs.js +0 -124
  121. package/lib/rce/__mocks__/styleMock.js +0 -18
  122. package/lib/rce/__mocks__/tinymceReact.js +0 -55
  123. package/lib/rce/alertHandler.js +0 -46
  124. package/lib/rce/contentInsertion.js +0 -322
  125. package/lib/rce/contentInsertionUtils.js +0 -85
  126. package/lib/rce/contentRendering.js +0 -145
  127. package/lib/rce/customEvents.js +0 -18
  128. package/lib/rce/editorLanguage.js +0 -101
  129. package/lib/rce/indicatorRegion.js +0 -49
  130. package/lib/rce/normalizeLocale.js +0 -50
  131. package/lib/rce/normalizeProps.js +0 -29
  132. package/lib/rce/plugins/instructure-ui-icons/plugin.js +0 -122
  133. package/lib/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +0 -24
  134. package/lib/rce/plugins/instructure_condensed_buttons/plugin.js +0 -27
  135. package/lib/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +0 -63
  136. package/lib/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +0 -48
  137. package/lib/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +0 -41
  138. package/lib/rce/plugins/instructure_condensed_buttons/ui/list-button.js +0 -145
  139. package/lib/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +0 -56
  140. package/lib/rce/plugins/instructure_documents/clickCallback.js +0 -23
  141. package/lib/rce/plugins/instructure_documents/components/DocumentsPanel.js +0 -126
  142. package/lib/rce/plugins/instructure_documents/components/Link.js +0 -219
  143. package/lib/rce/plugins/instructure_documents/plugin.js +0 -123
  144. package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +0 -25
  145. package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +0 -51
  146. package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +0 -321
  147. package/lib/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +0 -116
  148. package/lib/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +0 -91
  149. package/lib/rce/plugins/instructure_equation/EquationEditorModal/styles.js +0 -46
  150. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +0 -728
  151. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +0 -84
  152. package/lib/rce/plugins/instructure_equation/MathIcon/index.js +0 -41
  153. package/lib/rce/plugins/instructure_equation/MathIcon/svgs.js +0 -236
  154. package/lib/rce/plugins/instructure_equation/clickCallback.js +0 -53
  155. package/lib/rce/plugins/instructure_equation/mathlive/index.js +0 -36
  156. package/lib/rce/plugins/instructure_equation/plugin.js +0 -69
  157. package/lib/rce/plugins/instructure_fullscreen/plugin.js +0 -50
  158. package/lib/rce/plugins/instructure_html_view/clickCallback.js +0 -21
  159. package/lib/rce/plugins/instructure_html_view/plugin.js +0 -37
  160. package/lib/rce/plugins/instructure_icon_maker/clickCallback.js +0 -57
  161. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +0 -82
  162. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +0 -56
  163. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +0 -78
  164. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +0 -36
  165. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +0 -110
  166. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +0 -169
  167. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +0 -186
  168. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +0 -243
  169. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +0 -64
  170. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +0 -73
  171. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +0 -298
  172. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +0 -86
  173. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +0 -55
  174. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +0 -70
  175. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +0 -317
  176. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +0 -149
  177. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +0 -18
  178. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +0 -32
  179. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +0 -25
  180. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +0 -60
  181. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +0 -87
  182. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +0 -139
  183. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +0 -18
  184. package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +0 -323
  185. package/lib/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +0 -90
  186. package/lib/rce/plugins/instructure_icon_maker/plugin.js +0 -110
  187. package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +0 -194
  188. package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +0 -98
  189. package/lib/rce/plugins/instructure_icon_maker/registerEditToolbar.js +0 -56
  190. package/lib/rce/plugins/instructure_icon_maker/svg/clipPath.js +0 -25
  191. package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +0 -100
  192. package/lib/rce/plugins/instructure_icon_maker/svg/font.js +0 -25
  193. package/lib/rce/plugins/instructure_icon_maker/svg/image.js +0 -354
  194. package/lib/rce/plugins/instructure_icon_maker/svg/index.js +0 -122
  195. package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +0 -48
  196. package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +0 -179
  197. package/lib/rce/plugins/instructure_icon_maker/svg/shape.js +0 -316
  198. package/lib/rce/plugins/instructure_icon_maker/svg/text.js +0 -468
  199. package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +0 -70
  200. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +0 -45
  201. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +0 -83
  202. package/lib/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +0 -28
  203. package/lib/rce/plugins/instructure_icon_maker/utils/iconValidation.js +0 -35
  204. package/lib/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +0 -375
  205. package/lib/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +0 -59
  206. package/lib/rce/plugins/instructure_image/ImageEmbedOptions.js +0 -202
  207. package/lib/rce/plugins/instructure_image/ImageList/Image.js +0 -106
  208. package/lib/rce/plugins/instructure_image/ImageList/index.js +0 -69
  209. package/lib/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +0 -166
  210. package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +0 -246
  211. package/lib/rce/plugins/instructure_image/Images/index.js +0 -129
  212. package/lib/rce/plugins/instructure_image/clickCallback.js +0 -24
  213. package/lib/rce/plugins/instructure_image/plugin.js +0 -157
  214. package/lib/rce/plugins/instructure_links/clickCallback.js +0 -22
  215. package/lib/rce/plugins/instructure_links/components/AccordionSection.js +0 -60
  216. package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +0 -84
  217. package/lib/rce/plugins/instructure_links/components/Link.js +0 -213
  218. package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +0 -127
  219. package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +0 -141
  220. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +0 -125
  221. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +0 -245
  222. package/lib/rce/plugins/instructure_links/components/LinkSet.js +0 -195
  223. package/lib/rce/plugins/instructure_links/components/LinksPanel.js +0 -100
  224. package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +0 -141
  225. package/lib/rce/plugins/instructure_links/components/NoResults.js +0 -87
  226. package/lib/rce/plugins/instructure_links/components/propTypes.js +0 -41
  227. package/lib/rce/plugins/instructure_links/plugin.js +0 -294
  228. package/lib/rce/plugins/instructure_links/validateURL.js +0 -70
  229. package/lib/rce/plugins/instructure_media_embed/clickCallback.js +0 -48
  230. package/lib/rce/plugins/instructure_media_embed/components/Embed.js +0 -68
  231. package/lib/rce/plugins/instructure_media_embed/plugin.js +0 -36
  232. package/lib/rce/plugins/instructure_paste/pasteMenuCommand.js +0 -117
  233. package/lib/rce/plugins/instructure_paste/plugin.js +0 -174
  234. package/lib/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +0 -169
  235. package/lib/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +0 -225
  236. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +0 -294
  237. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +0 -46
  238. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +0 -79
  239. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +0 -153
  240. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +0 -94
  241. package/lib/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +0 -90
  242. package/lib/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +0 -35
  243. package/lib/rce/plugins/instructure_rce_external_tools/dialog-helper.js +0 -29
  244. package/lib/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -55
  245. package/lib/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +0 -172
  246. package/lib/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +0 -203
  247. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +0 -111
  248. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +0 -79
  249. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +0 -47
  250. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +0 -57
  251. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +0 -26
  252. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +0 -45
  253. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +0 -67
  254. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +0 -48
  255. package/lib/rce/plugins/instructure_rce_external_tools/plugin.js +0 -112
  256. package/lib/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +0 -27
  257. package/lib/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +0 -127
  258. package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +0 -148
  259. package/lib/rce/plugins/instructure_record/MediaPanel/index.js +0 -129
  260. package/lib/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +0 -215
  261. package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +0 -321
  262. package/lib/rce/plugins/instructure_record/clickCallback.js +0 -105
  263. package/lib/rce/plugins/instructure_record/mediaTranslations.js +0 -94
  264. package/lib/rce/plugins/instructure_record/plugin.js +0 -173
  265. package/lib/rce/plugins/instructure_studio_media_options/plugin.js +0 -42
  266. package/lib/rce/plugins/instructure_wordcount/clickCallback.js +0 -49
  267. package/lib/rce/plugins/instructure_wordcount/components/WordCountModal.js +0 -88
  268. package/lib/rce/plugins/instructure_wordcount/plugin.js +0 -30
  269. package/lib/rce/plugins/instructure_wordcount/utils/countContent.js +0 -78
  270. package/lib/rce/plugins/instructure_wordcount/utils/tableContent.js +0 -40
  271. package/lib/rce/plugins/shared/CanvasContentTray.js +0 -580
  272. package/lib/rce/plugins/shared/CheckerboardStyling.js +0 -25
  273. package/lib/rce/plugins/shared/ColorInput.js +0 -233
  274. package/lib/rce/plugins/shared/ConditionalTooltip.js +0 -32
  275. package/lib/rce/plugins/shared/ContentSelection.js +0 -269
  276. package/lib/rce/plugins/shared/DimensionUtils.js +0 -66
  277. package/lib/rce/plugins/shared/DimensionsInput/DimensionInput.js +0 -62
  278. package/lib/rce/plugins/shared/DimensionsInput/index.js +0 -161
  279. package/lib/rce/plugins/shared/DimensionsInput/useDimensionsState.js +0 -220
  280. package/lib/rce/plugins/shared/ErrorBoundary.js +0 -54
  281. package/lib/rce/plugins/shared/EventUtils.js +0 -39
  282. package/lib/rce/plugins/shared/Filter.js +0 -353
  283. package/lib/rce/plugins/shared/FixedContentTray.js +0 -115
  284. package/lib/rce/plugins/shared/ImageCropper/DirectionRegion.js +0 -67
  285. package/lib/rce/plugins/shared/ImageCropper/Modal.js +0 -153
  286. package/lib/rce/plugins/shared/ImageCropper/Preview.js +0 -148
  287. package/lib/rce/plugins/shared/ImageCropper/constants.js +0 -39
  288. package/lib/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +0 -83
  289. package/lib/rce/plugins/shared/ImageCropper/controls/ResetControls.js +0 -38
  290. package/lib/rce/plugins/shared/ImageCropper/controls/RotationControls.js +0 -89
  291. package/lib/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +0 -82
  292. package/lib/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +0 -111
  293. package/lib/rce/plugins/shared/ImageCropper/controls/index.js +0 -61
  294. package/lib/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +0 -94
  295. package/lib/rce/plugins/shared/ImageCropper/controls/utils.js +0 -41
  296. package/lib/rce/plugins/shared/ImageCropper/imageCropUtils.js +0 -149
  297. package/lib/rce/plugins/shared/ImageCropper/index.js +0 -18
  298. package/lib/rce/plugins/shared/ImageCropper/propTypes.js +0 -26
  299. package/lib/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +0 -72
  300. package/lib/rce/plugins/shared/ImageCropper/shape.js +0 -27
  301. package/lib/rce/plugins/shared/ImageCropper/svg/index.js +0 -89
  302. package/lib/rce/plugins/shared/ImageCropper/svg/shape.js +0 -125
  303. package/lib/rce/plugins/shared/ImageCropper/svg/utils.js +0 -26
  304. package/lib/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +0 -233
  305. package/lib/rce/plugins/shared/ImageCropper/useMouseWheel.js +0 -66
  306. package/lib/rce/plugins/shared/ImageOptionsForm.js +0 -140
  307. package/lib/rce/plugins/shared/LinkDisplay.js +0 -96
  308. package/lib/rce/plugins/shared/PreviewIcon.js +0 -112
  309. package/lib/rce/plugins/shared/Previewable.js +0 -22
  310. package/lib/rce/plugins/shared/RceFileBrowser.js +0 -106
  311. package/lib/rce/plugins/shared/StoreContext.js +0 -57
  312. package/lib/rce/plugins/shared/StudioLtiSupportUtils.js +0 -71
  313. package/lib/rce/plugins/shared/UnknownFileTypePanel.js +0 -29
  314. package/lib/rce/plugins/shared/Upload/CategoryProcessor.js +0 -27
  315. package/lib/rce/plugins/shared/Upload/ComputerPanel.js +0 -334
  316. package/lib/rce/plugins/shared/Upload/SvgCategoryProcessor.js +0 -35
  317. package/lib/rce/plugins/shared/Upload/UploadFile.js +0 -171
  318. package/lib/rce/plugins/shared/Upload/UploadFileModal.js +0 -273
  319. package/lib/rce/plugins/shared/Upload/UrlPanel.js +0 -38
  320. package/lib/rce/plugins/shared/Upload/UsageRightsSelectBox.js +0 -172
  321. package/lib/rce/plugins/shared/Upload/doFileUpload.js +0 -77
  322. package/lib/rce/plugins/shared/__mocks__/screenfull.js +0 -24
  323. package/lib/rce/plugins/shared/buildDownloadUrl.js +0 -31
  324. package/lib/rce/plugins/shared/compressionUtils.js +0 -98
  325. package/lib/rce/plugins/shared/dateUtils.js +0 -28
  326. package/lib/rce/plugins/shared/fileShape.js +0 -57
  327. package/lib/rce/plugins/shared/fileTypeUtils.js +0 -133
  328. package/lib/rce/plugins/shared/fileUtils.js +0 -25
  329. package/lib/rce/plugins/shared/linkUtils.js +0 -89
  330. package/lib/rce/plugins/shared/round.js +0 -25
  331. package/lib/rce/plugins/shared/trayUtils.js +0 -34
  332. package/lib/rce/plugins/shared/useDataUrl.js +0 -76
  333. package/lib/rce/plugins/tinymce-a11y-checker/components/ColorField.js +0 -86
  334. package/lib/rce/plugins/tinymce-a11y-checker/components/checker.js +0 -558
  335. package/lib/rce/plugins/tinymce-a11y-checker/components/color-picker.js +0 -59
  336. package/lib/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +0 -90
  337. package/lib/rce/plugins/tinymce-a11y-checker/components/pointer.js +0 -32
  338. package/lib/rce/plugins/tinymce-a11y-checker/node-checker.js +0 -54
  339. package/lib/rce/plugins/tinymce-a11y-checker/plugin.js +0 -90
  340. package/lib/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
  341. package/lib/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +0 -129
  342. package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +0 -200
  343. package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +0 -67
  344. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +0 -63
  345. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +0 -49
  346. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +0 -61
  347. package/lib/rce/plugins/tinymce-a11y-checker/rules/index.js +0 -31
  348. package/lib/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +0 -51
  349. package/lib/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +0 -144
  350. package/lib/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +0 -61
  351. package/lib/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +0 -75
  352. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +0 -54
  353. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +0 -52
  354. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header.js +0 -81
  355. package/lib/rce/plugins/tinymce-a11y-checker/utils/colors.js +0 -43
  356. package/lib/rce/plugins/tinymce-a11y-checker/utils/describe.js +0 -66
  357. package/lib/rce/plugins/tinymce-a11y-checker/utils/dom.js +0 -160
  358. package/lib/rce/plugins/tinymce-a11y-checker/utils/indicate.js +0 -83
  359. package/lib/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +0 -57
  360. package/lib/rce/plugins/tinymce-a11y-checker/utils/strings.js +0 -40
  361. package/lib/rce/root.js +0 -58
  362. package/lib/rce/sanitizePlugins.js +0 -32
  363. package/lib/rce/style.js +0 -843
  364. package/lib/rce/tinyRCE.js +0 -66
  365. package/lib/rce/transformContent.js +0 -73
  366. package/lib/rce/userOS.js +0 -31
  367. package/lib/rce/wrapInitCb.js +0 -78
  368. package/lib/rcs/api.js +0 -670
  369. package/lib/rcs/buildError.js +0 -98
  370. package/lib/rcs/fake.js +0 -621
  371. package/lib/sidebar/actions/all_files.js +0 -29
  372. package/lib/sidebar/actions/data.js +0 -105
  373. package/lib/sidebar/actions/documents.js +0 -107
  374. package/lib/sidebar/actions/files.js +0 -167
  375. package/lib/sidebar/actions/filter.js +0 -63
  376. package/lib/sidebar/actions/flickr.js +0 -60
  377. package/lib/sidebar/actions/images.js +0 -153
  378. package/lib/sidebar/actions/links.js +0 -23
  379. package/lib/sidebar/actions/media.js +0 -142
  380. package/lib/sidebar/actions/session.js +0 -34
  381. package/lib/sidebar/actions/ui.js +0 -49
  382. package/lib/sidebar/actions/upload.js +0 -550
  383. package/lib/sidebar/containers/Sidebar.js +0 -67
  384. package/lib/sidebar/containers/sidebarHandlers.js +0 -73
  385. package/lib/sidebar/dragHtml.js +0 -49
  386. package/lib/sidebar/reducers/all_files.js +0 -35
  387. package/lib/sidebar/reducers/collection.js +0 -72
  388. package/lib/sidebar/reducers/collections.js +0 -52
  389. package/lib/sidebar/reducers/documents.js +0 -89
  390. package/lib/sidebar/reducers/files.js +0 -38
  391. package/lib/sidebar/reducers/filter.js +0 -61
  392. package/lib/sidebar/reducers/flickr.js +0 -51
  393. package/lib/sidebar/reducers/folder.js +0 -92
  394. package/lib/sidebar/reducers/folders.js +0 -39
  395. package/lib/sidebar/reducers/images.js +0 -115
  396. package/lib/sidebar/reducers/index.js +0 -57
  397. package/lib/sidebar/reducers/media.js +0 -84
  398. package/lib/sidebar/reducers/newPageLinkExpanded.js +0 -30
  399. package/lib/sidebar/reducers/noop.js +0 -21
  400. package/lib/sidebar/reducers/rootFolderId.js +0 -30
  401. package/lib/sidebar/reducers/session.js +0 -33
  402. package/lib/sidebar/reducers/ui.js +0 -87
  403. package/lib/sidebar/reducers/upload.js +0 -206
  404. package/lib/sidebar/store/configureStore.js +0 -26
  405. package/lib/sidebar/store/initialState.js +0 -173
  406. package/lib/translations/locales/ar.js +0 -2427
  407. package/lib/translations/locales/ca.js +0 -2427
  408. package/lib/translations/locales/cy.js +0 -2427
  409. package/lib/translations/locales/da-x-k12.js +0 -2427
  410. package/lib/translations/locales/da.js +0 -2427
  411. package/lib/translations/locales/de.js +0 -2427
  412. package/lib/translations/locales/el.js +0 -459
  413. package/lib/translations/locales/en-AU-x-unimelb.js +0 -2427
  414. package/lib/translations/locales/en-GB-x-ukhe.js +0 -2427
  415. package/lib/translations/locales/en.js +0 -2427
  416. package/lib/translations/locales/en_AU.js +0 -2427
  417. package/lib/translations/locales/en_CA.js +0 -2426
  418. package/lib/translations/locales/en_CY.js +0 -2426
  419. package/lib/translations/locales/en_GB.js +0 -2427
  420. package/lib/translations/locales/es.js +0 -2427
  421. package/lib/translations/locales/es_ES.js +0 -2427
  422. package/lib/translations/locales/fa_IR.js +0 -615
  423. package/lib/translations/locales/fi.js +0 -2427
  424. package/lib/translations/locales/fr.js +0 -2427
  425. package/lib/translations/locales/fr_CA.js +0 -2427
  426. package/lib/translations/locales/he.js +0 -486
  427. package/lib/translations/locales/ht.js +0 -2426
  428. package/lib/translations/locales/hu.js +0 -2007
  429. package/lib/translations/locales/hy.js +0 -444
  430. package/lib/translations/locales/is.js +0 -2426
  431. package/lib/translations/locales/it.js +0 -2427
  432. package/lib/translations/locales/ja.js +0 -2427
  433. package/lib/translations/locales/ko.js +0 -342
  434. package/lib/translations/locales/mi.js +0 -2426
  435. package/lib/translations/locales/nb-x-k12.js +0 -2427
  436. package/lib/translations/locales/nb.js +0 -2427
  437. package/lib/translations/locales/nl.js +0 -2427
  438. package/lib/translations/locales/nn.js +0 -2247
  439. package/lib/translations/locales/pl.js +0 -2427
  440. package/lib/translations/locales/pt.js +0 -2427
  441. package/lib/translations/locales/pt_BR.js +0 -2427
  442. package/lib/translations/locales/ru.js +0 -84
  443. package/lib/translations/locales/sl.js +0 -2427
  444. package/lib/translations/locales/sv-x-k12.js +0 -2427
  445. package/lib/translations/locales/sv.js +0 -78
  446. package/lib/translations/locales/tr.js +0 -684
  447. package/lib/translations/locales/uk_UA.js +0 -519
  448. package/lib/translations/locales/vi.js +0 -39
  449. package/lib/translations/locales/zh-Hans.js +0 -2427
  450. package/lib/translations/locales/zh-Hant.js +0 -2427
  451. package/lib/translations/locales/zh.js +0 -2427
  452. package/lib/translations/locales/zh_HK.js +0 -2427
  453. package/lib/translations/tinymce/ar_SA.js +0 -211
  454. package/lib/translations/tinymce/bg_BG.js +0 -419
  455. package/lib/translations/tinymce/ca.js +0 -419
  456. package/lib/translations/tinymce/cs.js +0 -419
  457. package/lib/translations/tinymce/cy.js +0 -418
  458. package/lib/translations/tinymce/da.js +0 -419
  459. package/lib/translations/tinymce/de.js +0 -419
  460. package/lib/translations/tinymce/el.js +0 -261
  461. package/lib/translations/tinymce/en_GB.js +0 -230
  462. package/lib/translations/tinymce/es.js +0 -419
  463. package/lib/translations/tinymce/fa_IR.js +0 -390
  464. package/lib/translations/tinymce/fi.js +0 -19
  465. package/lib/translations/tinymce/fr_FR.js +0 -419
  466. package/lib/translations/tinymce/he_IL.js +0 -420
  467. package/lib/translations/tinymce/hu_HU.js +0 -419
  468. package/lib/translations/tinymce/hy.js +0 -419
  469. package/lib/translations/tinymce/it.js +0 -419
  470. package/lib/translations/tinymce/ja.js +0 -419
  471. package/lib/translations/tinymce/ko_KR.js +0 -419
  472. package/lib/translations/tinymce/nb_NO.js +0 -419
  473. package/lib/translations/tinymce/nl.js +0 -419
  474. package/lib/translations/tinymce/pl.js +0 -419
  475. package/lib/translations/tinymce/pt_BR.js +0 -419
  476. package/lib/translations/tinymce/pt_PT.js +0 -419
  477. package/lib/translations/tinymce/ro.js +0 -418
  478. package/lib/translations/tinymce/ru.js +0 -436
  479. package/lib/translations/tinymce/ru_RU.js +0 -71
  480. package/lib/translations/tinymce/sl.js +0 -462
  481. package/lib/translations/tinymce/sr.js +0 -278
  482. package/lib/translations/tinymce/sv_SE.js +0 -419
  483. package/lib/translations/tinymce/th.js +0 -479
  484. package/lib/translations/tinymce/tr_TR.js +0 -389
  485. package/lib/translations/tinymce/uk_UA.js +0 -278
  486. package/lib/translations/tinymce/vi_VN.js +0 -277
  487. package/lib/translations/tinymce/zh_CN.js +0 -419
  488. package/lib/translations/tinymce/zh_TW.js +0 -419
  489. package/lib/types/inst-ui.d.js +0 -18
  490. package/lib/types/ts-migration.js +0 -1
  491. package/lib/util/DeepPartialNullable.js +0 -1
  492. package/lib/util/ExtractRequired.js +0 -1
  493. package/lib/util/TypedDict.js +0 -131
  494. package/lib/util/assertNever.js +0 -44
  495. package/lib/util/elem-util.js +0 -26
  496. package/lib/util/encrypted-storage.js +0 -84
  497. package/lib/util/file-url-util.js +0 -44
  498. package/lib/util/fullscreenHelpers.js +0 -27
  499. package/lib/util/instui-icon-helper.js +0 -31
  500. package/lib/util/loadingPlaceholder.js +0 -436
  501. package/lib/util/simpleCache.js +0 -41
  502. package/lib/util/string-util.js +0 -48
  503. package/lib/util/textarea-editing-util.js +0 -87
  504. package/lib/util/tinymce-plugin-util.js +0 -52
  505. package/lib/util/url-util.js +0 -138
@@ -1,294 +0,0 @@
1
- // @ts-nocheck
2
-
3
- /*
4
- * Copyright (C) 2019 - present Instructure, Inc.
5
- *
6
- * This file is part of Canvas.
7
- *
8
- * Canvas is free software: you can redistribute it and/or modify it under
9
- * the terms of the GNU Affero General Public License as published by the Free
10
- * Software Foundation, version 3 of the License.
11
- *
12
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
13
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
15
- * details.
16
- *
17
- * You should have received a copy of the GNU Affero General Public License along
18
- * with this program. If not, see <http://www.gnu.org/licenses/>.
19
- */
20
-
21
- /*
22
- * here's how linking works
23
- * Creation:
24
- * 1. No text is selected, user clicks create link button:
25
- * - display the create link dialog with text and URL input
26
- * - insert an <a> at the caret, linked to the URL with the text content
27
- * 2. Text is selected, user clicks create link button:
28
- * - display the create link dialog with text and URL input
29
- * - the text input displays the plain-text content of the selection
30
- * - on saving, if the plain-text has not changed, leave it unchanged in the RCE,
31
- * if it has changed, replace the selection with the new plain-text.
32
- * Wrap the text in an <a>, linked to the URL
33
- * 3. An image + optional text is selected, user clicks create link button
34
- * - display the create link dialog with URL input only
35
- * - on saving, the selection is wrapped in an <a>, linked to the URL
36
- * 4. An iframe is w/in the selection
37
- * - disable the create link function
38
- *
39
- * Editing:
40
- * 1. the caret is w/in a text link, but nothing is selected or
41
- * some subset of the link's text is selected
42
- * - display the link Options popup button. when clicked...
43
- * - expand the selection to be the whole link text
44
- * - display the tray with the link's plain-text in the text input and the href
45
- * in the URL input
46
- * - on saving, if the plain-text is unchanged, leave the text unchanged in the RCE,
47
- * if it has changed, replace the link text with the new plain-text.
48
- * Update the <a>'s href to the new URL
49
- * 2. An image w/in a link is selected, or the caret is on the image, or the image
50
- * plus some surrounding text that's all part of the existing link is selected, or
51
- * the caret is w/in a link that contains an image
52
- * a. for now: show the link and image Options buttons in a popup toolbar
53
- * - on clicking the link Options...
54
- * - expand the selection to be the whole link contents
55
- * - show the link options tray, with no text input
56
- * - on saving, update the link's href
57
- * b. new-improved: show a single Options button, when clicked...
58
- * - expand the selection to be the whole link contents
59
- * - show the options tray with Image Options and Link Options sections
60
- * the link text input is empty.
61
- * - on saving, if the link text input is still empty, replace the link's
62
- * href with the new URL. if the link text is updated, replace the link's
63
- * content with the new plain text (deleting the image)
64
- */
65
- import formatMessage from '../../../format-message';
66
- import clickCallback from './clickCallback';
67
- import bridge from '../../../bridge';
68
- import { getAnchorElement, isOKToLink } from '../../contentInsertionUtils';
69
- import LinkOptionsTrayController from './components/LinkOptionsTray/LinkOptionsTrayController';
70
- import { CREATE_LINK, EDIT_LINK } from './components/LinkOptionsDialog/LinkOptionsDialogController';
71
- import tinymce from 'tinymce';
72
- const trayController = new LinkOptionsTrayController();
73
- const COURSE_PLUGIN_KEY = 'course_links';
74
- const GROUP_PLUGIN_KEY = 'group_links';
75
-
76
- function getCommandName(selectedNode) {
77
- const isCourseLink = selectedNode.getAttribute('data-course-type');
78
- return isCourseLink ? 'instructureTrayForCourseLinks' : 'instructureTrayToEditLink';
79
- }
80
-
81
- function selectedAnchorCount(ed) {
82
- return ed.selection.getRng().cloneContents().querySelectorAll('a').length;
83
- }
84
-
85
- function getMenuItems(ed) {
86
- var _ed$settings$canvas_r;
87
-
88
- const contextType = (_ed$settings$canvas_r = ed.settings.canvas_rce_containing_context) === null || _ed$settings$canvas_r === void 0 ? void 0 : _ed$settings$canvas_r.type;
89
- const sel_anchors = ed.selection.isCollapsed() ? 0 : selectedAnchorCount(ed);
90
- let items;
91
-
92
- if (getAnchorElement(ed, ed.selection.getNode())) {
93
- // cursor is on an anchor, edit or remove it
94
- items = [{
95
- text: formatMessage('Edit Link'),
96
- value: getCommandName(ed.selection.getNode())
97
- }, {
98
- text: formatMessage('Remove Link'),
99
- value: 'instructureUnlink'
100
- }];
101
- } else {
102
- items = [{
103
- text: formatMessage('External Link'),
104
- value: 'instructureLinkCreate'
105
- }];
106
-
107
- if (contextType === 'course') {
108
- items.push({
109
- text: formatMessage('Course Link'),
110
- value: 'instructure_course_links'
111
- });
112
- } else if (contextType === 'group') {
113
- items.push({
114
- text: formatMessage('Group Link'),
115
- value: 'instructure_group_links'
116
- });
117
- }
118
-
119
- if (sel_anchors > 0) {
120
- // selection contains anchor(s), so the user can remove them
121
- items.push({
122
- text: formatMessage.plural(sel_anchors, {
123
- one: 'Remove Link',
124
- other: 'Remove Links'
125
- }),
126
- value: 'instructureUnlinkAll'
127
- });
128
- }
129
- }
130
-
131
- return items;
132
- }
133
-
134
- function removeAnchorFromSelectedElement(ed) {
135
- const selectedElem = ed.selection.getNode();
136
- const anchorElem = getAnchorElement(ed, selectedElem);
137
- ed.selection.select(anchorElem);
138
- ed.undoManager.add();
139
- ed.execCommand('Unlink');
140
- }
141
-
142
- function doMenuItem(ed, actionName) {
143
- switch (actionName) {
144
- case 'instructureTrayToEditLink':
145
- case 'instructureTrayForCourseLinks':
146
- case 'instructureLinkCreate':
147
- ed.execCommand(actionName);
148
- break;
149
-
150
- case 'instructureUnlink':
151
- removeAnchorFromSelectedElement(ed);
152
- break;
153
-
154
- case 'instructureUnlinkAll':
155
- ed.undoManager.add();
156
- ed.execCommand('unlink');
157
- break;
158
-
159
- case 'instructure_course_links':
160
- ed.focus(true); // activate the editor without changing focus
161
-
162
- ed.execCommand('instructureTrayForLinks', false, COURSE_PLUGIN_KEY);
163
- break;
164
-
165
- case 'instructure_group_links':
166
- ed.focus(true); // activate the editor without changing focus
167
-
168
- ed.execCommand('instructureTrayForLinks', false, GROUP_PLUGIN_KEY);
169
- break;
170
- }
171
- }
172
-
173
- tinymce.PluginManager.add('instructure_links', function (ed) {
174
- // Register commands
175
- ed.addCommand('instructureLinkCreate', () => clickCallback(ed, CREATE_LINK));
176
- ed.addCommand('instructureLinkEdit', () => clickCallback(ed, EDIT_LINK));
177
- ed.addCommand('instructureTrayForLinks', (ui, plugin_key) => {
178
- bridge.showTrayForPlugin(plugin_key, ed.id);
179
- });
180
- ed.addCommand('instructureTrayToEditLink', _ui => {
181
- trayController.showTrayForEditor(ed);
182
- });
183
- ed.addCommand('instructureTrayForCourseLinks', () => {
184
- ed.selection.select(ed.selection.getNode());
185
- return bridge.showTrayForPlugin('course_link_edit', ed.id);
186
- }); // Register shortcuts
187
-
188
- ed.addShortcut('Meta+K', '', 'instructureLinkCreate'); // Register menu item
189
-
190
- ed.ui.registry.addNestedMenuItem('instructure_links', {
191
- text: formatMessage('Link'),
192
- icon: 'link',
193
- getSubmenuItems: () => getMenuItems(ed).map(item => {
194
- return {
195
- type: 'menuitem',
196
- text: item.text,
197
- onAction: () => doMenuItem(ed, item.value),
198
- onSetup: api => {
199
- api.setDisabled(!isOKToLink(ed.selection.getContent()));
200
- return () => {};
201
- }
202
- };
203
- })
204
- }); // Register toolbar button
205
-
206
- ed.ui.registry.addMenuButton('instructure_links', {
207
- tooltip: formatMessage('Links'),
208
- icon: 'link',
209
- fetch: callback => callback(getMenuItems(ed).map(item => ({
210
- type: 'menuitem',
211
- text: item.text,
212
- value: item.value,
213
- onAction: () => doMenuItem(ed, item.value)
214
- }))),
215
-
216
- onSetup(api) {
217
- function handleNodeChange(e) {
218
- if (e !== null && e !== void 0 && e.element) {
219
- api.setActive(!!getAnchorElement(ed, e.element));
220
- }
221
-
222
- api.setDisabled(!isOKToLink(ed.selection.getContent()));
223
- } // if the user selects all the content w/in a link and deletes it via the keyboard
224
- // make sure the surrounding <a> gets deleted too.
225
-
226
-
227
- function deleteEmptyLink() {
228
- let node = null;
229
-
230
- if (ed.selection.getNode().tagName === 'A') {
231
- node = ed.selection.getNode();
232
- } else {
233
- var _rng$endContainer$nex, _rng$nextSibling;
234
-
235
- // Type checking is disabled here because the code below isn't type safe. The code below
236
- // should be updated, specifically rng.endContainer.nextSibling?.tagName
237
- const rng = ed.selection.getRng();
238
-
239
- if (rng.commonAncestorContainer === rng.endContainer && ((_rng$endContainer$nex = rng.endContainer.nextSibling) === null || _rng$endContainer$nex === void 0 ? void 0 : _rng$endContainer$nex.tagName) === 'A') {
240
- node = rng.endContainer.nextSibling;
241
- } else if (((_rng$nextSibling = rng.nextSibling) === null || _rng$nextSibling === void 0 ? void 0 : _rng$nextSibling.tagName) === 'A') {
242
- node = rng.nextSibling;
243
- }
244
- }
245
-
246
- if (node) {
247
- var _node$textContent;
248
-
249
- if (node.firstElementChild) {
250
- return;
251
- }
252
-
253
- const txt = (_node$textContent = node.textContent) === null || _node$textContent === void 0 ? void 0 : _node$textContent.trim();
254
-
255
- if ((txt === null || txt === void 0 ? void 0 : txt.length) === 0) {
256
- ed.execCommand('Unlink');
257
- }
258
- }
259
- }
260
-
261
- setTimeout(handleNodeChange, 0, null);
262
- ed.on('NodeChange', handleNodeChange);
263
- ed.on('Change', deleteEmptyLink);
264
- return () => {
265
- ed.off('NodeChange', handleNodeChange);
266
- ed.off('Change', deleteEmptyLink);
267
- };
268
- }
269
-
270
- }); // the context toolbar buttons
271
-
272
- ed.ui.registry.addButton('instructure-link-options', {
273
- onAction() {
274
- ed.execCommand(getCommandName(ed.selection.getNode()), false, ed);
275
- },
276
-
277
- text: formatMessage('Link Options'),
278
- tooltip: formatMessage('Show link options')
279
- });
280
- const remButtonLabel = formatMessage('Remove Link');
281
- ed.ui.registry.addButton('instructureUnlink', {
282
- onAction() {
283
- removeAnchorFromSelectedElement(ed);
284
- },
285
-
286
- text: remButtonLabel
287
- });
288
- ed.ui.registry.addContextToolbar('instructure-link-toolbar', {
289
- items: 'instructure-link-options instructureUnlink',
290
- position: 'node',
291
- predicate: elem => !!getAnchorElement(ed, elem),
292
- scope: 'node'
293
- });
294
- });
@@ -1,70 +0,0 @@
1
- /*
2
- * Copyright (C) 2020 - present Instructure, Inc.
3
- *
4
- * This file is part of Canvas.
5
- *
6
- * Canvas is free software: you can redistribute it and/or modify it under
7
- * the terms of the GNU Affero General Public License as published by the Free
8
- * Software Foundation, version 3 of the License.
9
- *
10
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
- * details.
14
- *
15
- * You should have received a copy of the GNU Affero General Public License along
16
- * with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
- import { parse } from 'url';
19
- import formatMessage from '../../../format-message'; // keep in sync with the protocols permitted for <a href>
20
- // as listed in gems/canvas_sanitize/lib/canvas_sanitize/canvas_sanitize.rb
21
-
22
- const allowed_protocols = ['ftp:', 'http:', 'https:', 'mailto:', 'tel:', 'skype:']; // weakly validate a url
23
- // return true if valid
24
- // return false if not valid yet, but incomplete
25
- // throw an Error if invalid
26
-
27
- export default function validateURL(url) {
28
- const href = url.trim();
29
- const parsed = parse(href, false, true);
30
- const protocol = parsed.protocol;
31
-
32
- if (!protocol) {
33
- if (parsed.href[0] === ':') {
34
- // ":anything" is invalid
35
- // need this check as an artifact of parse(href)
36
- throw new Error(formatMessage('Protocol must be ftp, http, https, mailto, skype, tel or may be omitted'));
37
- }
38
-
39
- if (/^\/\/$/.test(href)) {
40
- // "//" by itself is not a URL yet
41
- return false;
42
- }
43
- } else if (protocol) {
44
- if (!allowed_protocols.includes(protocol)) {
45
- throw new Error(formatMessage('{p} is not a valid protocol which must be ftp, http, https, mailto, skype, tel or may be omitted', {
46
- p: protocol.replace(/:$/, '')
47
- }));
48
- } // ftp, http, https require ://anything
49
-
50
-
51
- if (/(?:ftp|http|https):\/\/.+/.test(href)) {
52
- return true;
53
- } // allow mailto:address, skype:participant, tel:911 or
54
- // mailto://address, skype://participant, tel://911,
55
-
56
-
57
- if (/(?:mailto|skype|tel):(\/\/)?[^/].*/.test(href)) {
58
- return true;
59
- } // http:/xyzzy is invalid
60
-
61
-
62
- if (/^(?:ftp|http|https):\/{0,1}[^/]/.test(href)) {
63
- throw new Error(formatMessage('Invalid URL'));
64
- }
65
-
66
- return false;
67
- }
68
-
69
- return true;
70
- }
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright (C) 2020 - present Instructure, Inc.
3
- *
4
- * This file is part of Canvas.
5
- *
6
- * Canvas is free software: you can redistribute it and/or modify it under
7
- * the terms of the GNU Affero General Public License as published by the Free
8
- * Software Foundation, version 3 of the License.
9
- *
10
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
- * details.
14
- *
15
- * You should have received a copy of the GNU Affero General Public License along
16
- * with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
- import React from 'react';
19
- import ReactDOM from 'react-dom';
20
- import Bridge from '../../../bridge';
21
- export default function (ed, document) {
22
- return import('./components/Embed').then(_ref => {
23
- let {
24
- Embed
25
- } = _ref;
26
- let container = document.querySelector('.canvas-rce-embed-container');
27
-
28
- if (!container) {
29
- container = document.createElement('div');
30
- container.className = 'canvas-rce-embed-container';
31
- document.body.appendChild(container);
32
- }
33
-
34
- const handleDismiss = () => {
35
- ReactDOM.unmountComponentAtNode(container);
36
- ed.focus(false);
37
- };
38
-
39
- const handleEmbedCode = embedCode => {
40
- Bridge.insertEmbedCode(embedCode);
41
- };
42
-
43
- ReactDOM.render( /*#__PURE__*/React.createElement(Embed, {
44
- onSubmit: handleEmbedCode,
45
- onDismiss: handleDismiss
46
- }), container);
47
- });
48
- }
@@ -1,68 +0,0 @@
1
- /*
2
- * Copyright (C) 2020 - present Instructure, Inc.
3
- *
4
- * This file is part of Canvas.
5
- *
6
- * Canvas is free software: you can redistribute it and/or modify it under
7
- * the terms of the GNU Affero General Public License as published by the Free
8
- * Software Foundation, version 3 of the License.
9
- *
10
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
- * details.
14
- *
15
- * You should have received a copy of the GNU Affero General Public License along
16
- * with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
- import React, { useState } from 'react';
19
- import { Modal } from '@instructure/ui-modal';
20
- import formatMessage from '../../../../format-message';
21
- import { Button, CloseButton } from '@instructure/ui-buttons';
22
- import { Heading } from '@instructure/ui-heading';
23
- import { func } from 'prop-types';
24
- import { TextArea } from '@instructure/ui-text-area';
25
- import { instuiPopupMountNode } from '../../../../util/fullscreenHelpers';
26
- export function Embed(_ref) {
27
- let {
28
- onSubmit,
29
- onDismiss
30
- } = _ref;
31
- const [embedCode, setEmbedCode] = useState('');
32
- return /*#__PURE__*/React.createElement(Modal, {
33
- "data-mce-component": true,
34
- label: formatMessage('Embed'),
35
- mountNode: instuiPopupMountNode,
36
- size: "medium",
37
- onDismiss: onDismiss,
38
- open: true,
39
- shouldCloseOnDocumentClick: false
40
- }, /*#__PURE__*/React.createElement(Modal.Header, null, /*#__PURE__*/React.createElement(CloseButton, {
41
- onClick: onDismiss,
42
- offset: "medium",
43
- placement: "end",
44
- screenReaderLabel: formatMessage('Close')
45
- }), /*#__PURE__*/React.createElement(Heading, null, formatMessage('Embed'))), /*#__PURE__*/React.createElement(Modal.Body, null, /*#__PURE__*/React.createElement(TextArea, {
46
- maxHeight: "10rem",
47
- label: formatMessage('Embed Code'),
48
- value: embedCode,
49
- onChange: e => {
50
- setEmbedCode(e.target.value);
51
- }
52
- })), /*#__PURE__*/React.createElement(Modal.Footer, null, /*#__PURE__*/React.createElement(Button, {
53
- onClick: onDismiss
54
- }, formatMessage('Close')), "\xA0", /*#__PURE__*/React.createElement(Button, {
55
- onClick: e => {
56
- e.preventDefault();
57
- onSubmit(embedCode);
58
- onDismiss();
59
- },
60
- color: "primary",
61
- type: "submit",
62
- disabled: !embedCode
63
- }, formatMessage('Submit'))));
64
- }
65
- Embed.propTypes = {
66
- onSubmit: func.isRequired,
67
- onDismiss: func.isRequired
68
- };
@@ -1,36 +0,0 @@
1
- /*
2
- * Copyright (C) 2020 - present Instructure, Inc.
3
- *
4
- * This file is part of Canvas.
5
- *
6
- * Canvas is free software: you can redistribute it and/or modify it under
7
- * the terms of the GNU Affero General Public License as published by the Free
8
- * Software Foundation, version 3 of the License.
9
- *
10
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
- * details.
14
- *
15
- * You should have received a copy of the GNU Affero General Public License along
16
- * with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
- import clickCallback from './clickCallback';
19
- import formatMessage from '../../../format-message';
20
- import tinymce from 'tinymce'; // Register plugin
21
-
22
- tinymce.PluginManager.add('instructure_media_embed', function (ed) {
23
- ed.addCommand('instructureMediaEmbed', () => clickCallback(ed, document)); // Register menu item
24
-
25
- ed.ui.registry.addMenuItem('instructure_media_embed', {
26
- text: formatMessage('Embed'),
27
- icon: 'embed',
28
- onAction: () => ed.execCommand('instructureMediaEmbed')
29
- }); // Register toolbar button
30
-
31
- ed.ui.registry.addButton('instructure_media_embed', {
32
- tooltip: formatMessage('Embed'),
33
- icon: 'embed',
34
- onAction: () => ed.execCommand('instructureMediaEmbed')
35
- });
36
- });
@@ -1,117 +0,0 @@
1
- /*
2
- * Copyright (C) 2022 - present Instructure, Inc.
3
- *
4
- * This file is part of Canvas.
5
- *
6
- * Canvas is free software: you can redistribute it and/or modify it under
7
- * the terms of the GNU Affero General Public License as published by the Free
8
- * Software Foundation, version 3 of the License.
9
- *
10
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
- * details.
14
- *
15
- * You should have received a copy of the GNU Affero General Public License along
16
- * with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
-
19
- /** ********************************************************
20
- * This file holds a mostly functional paste menu command
21
- * We decided not to use it since menu-past and kb-paste
22
- * would be subtly different. Keeping the file here
23
- * because figuring this stuff out wasn't trivial and
24
- * I didn't want to lose it.
25
- ********************************************************* */
26
- import formatMessage from '../../../format-message';
27
- import { showFlashAlert } from '../../../common/FlashAlert';
28
- export function initPasteMenuCommand(ed, handlePasteOrDrop) {
29
- // the paste menu command is problematic in that it requires
30
- // we get the copied data using the clipboard api, which is
31
- // more limited than what the browser can do natively via
32
- // meta+v.
33
- // For example, if the user copies a file from the Finder,
34
- // pasting via the menu command just gets you the filename.
35
- ed.addCommand('instructurePaste', () => {
36
- handlePasteMenuCommand();
37
- });
38
- ed.ui.registry.addMenuItem('instructure_paste', {
39
- text: formatMessage('Paste'),
40
- icon: 'paste',
41
- onAction: () => ed.execCommand('instructurePaste'),
42
-
43
- onSetup(_api) {
44
- // If I add the shortcut, then it overwrites the browsers
45
- // built-in keyboard shortcut for paste. we don't want that
46
- ed.addShortcut('meta+v', null, () => {
47
- ed.execCommand('instructurePaste');
48
- });
49
- }
50
-
51
- });
52
-
53
- async function handlePasteMenuCommand() {
54
- try {
55
- const cbitems = await window.navigator.clipboard.read();
56
- const cbitem = cbitems[0];
57
- const imageType = cbitem.types.find(t => /^image\//.test(t));
58
-
59
- if (imageType) {
60
- const blob = await cbitem.getType(imageType);
61
- const file = new File([blob], imageType.replace('/', '.'), {
62
- type: imageType
63
- });
64
- handlePasteOrDrop({
65
- clipboardData: {
66
- files: [file],
67
- types: ['Files']
68
- },
69
- preventDefault: () => {}
70
- });
71
- } else if (cbitem.types.includes('text/html')) {
72
- const blob = await cbitem.getType('text/html');
73
- const text = await blob.text();
74
- handlePasteOrDrop({
75
- clipboardData: {
76
- files: [],
77
- types: ['text/html'],
78
- getData: () => text
79
- },
80
- preventDefault: () => {}
81
- });
82
- } else if (cbitem.types.includes('text/plain')) {
83
- const blob = await cbitem.getType('text/plain');
84
- const text = await blob.text();
85
- handlePasteOrDrop({
86
- clipboardData: {
87
- files: [],
88
- types: ['text/plain'],
89
- getData: () => text
90
- },
91
- preventDefault: () => {}
92
- });
93
- } else {
94
- const textType = cbitem.types.find(t => /^text\//.test(t));
95
-
96
- if (textType) {
97
- const blob = await cbitem.getType(textType);
98
- const text = await blob.text();
99
- handlePasteOrDrop({
100
- clipboardData: {
101
- files: [],
102
- types: [textType],
103
- getData: () => text
104
- },
105
- preventDefault: () => {}
106
- });
107
- }
108
- }
109
- } catch (ex) {
110
- showFlashAlert({
111
- message: 'whoops:',
112
- err: ex,
113
- type: 'error'
114
- });
115
- }
116
- }
117
- }