@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
package/lib/rcs/api.js DELETED
@@ -1,670 +0,0 @@
1
- /*
2
- * Copyright (C) 2018 - 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 'isomorphic-fetch';
19
- import { parse } from 'url';
20
- import { saveClosedCaptions, saveClosedCaptionsForAttachment, CONSTANTS } from '@instructure/canvas-media';
21
- import { downloadToWrap, fixupFileUrl } from '../common/fileUrl';
22
- import alertHandler from '../rce/alertHandler';
23
- import buildError from './buildError';
24
- import RCEGlobals from '../rce/RCEGlobals';
25
- export function headerFor(jwt) {
26
- return {
27
- Authorization: 'Bearer ' + jwt
28
- };
29
- }
30
- export function originFromHost(host, windowOverride) {
31
- let origin = host;
32
-
33
- if (typeof origin !== 'string') {
34
- origin = '';
35
- } else if (origin && origin.substr(0, 4) !== 'http') {
36
- var _windowHandle$locatio;
37
-
38
- origin = `//${origin}`;
39
- const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);
40
-
41
- if (origin.length > 0 && windowHandle !== null && windowHandle !== void 0 && (_windowHandle$locatio = windowHandle.location) !== null && _windowHandle$locatio !== void 0 && _windowHandle$locatio.protocol) {
42
- origin = `${windowHandle.location.protocol}${origin}`;
43
- }
44
- }
45
-
46
- return origin;
47
- } // filter a response to raise an error on a 400+ status
48
-
49
- function checkStatus(response) {
50
- if (response.status < 400) {
51
- return response;
52
- } else {
53
- const error = new Error(response.statusText);
54
- error.response = response;
55
- throw error;
56
- }
57
- }
58
-
59
- function defaultRefreshTokenHandler() {
60
- throw new Error('Token expired, no refresh function provided');
61
- }
62
-
63
- function normalizeFileData(file) {
64
- return {
65
- // copy the name to the default display name if none provided
66
- display_name: file.name,
67
- ...file,
68
- // wrap the url
69
- href: downloadToWrap(file.href || file.url)
70
- };
71
- }
72
-
73
- function throwConnectionError(error) {
74
- if (error.name === 'TypeError') {
75
- // eslint-disable-next-line no-console
76
- console.error(`Failed to fetch from the canvas-rce-api.
77
- Did you forget to start it or configure it?
78
- Details can be found at https://github.com/instructure/canvas-rce-api
79
- `);
80
- }
81
-
82
- throw error;
83
- }
84
-
85
- class RceApiSource {
86
- constructor() {
87
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
88
- this.jwt = options.jwt;
89
- this.host = options.host;
90
- this.refreshToken = options.refreshToken || defaultRefreshTokenHandler;
91
- this.hasSession = false;
92
- this.alertFunc = options.alertFunc || alertHandler.handleAlert;
93
- this.canvasOrigin = options.canvasOrigin || window.origin;
94
- }
95
-
96
- getSession() {
97
- const headers = headerFor(this.jwt);
98
- const uri = this.baseUri('session');
99
- return this.apiReallyFetch(uri, headers).then(data => {
100
- this.hasSession = true;
101
- return data;
102
- }).catch(throwConnectionError);
103
- } // initial state of a collection is empty, not loading, with bookmark set to
104
- // uri for initial page fetch
105
-
106
-
107
- initializeCollection(endpoint, props) {
108
- return {
109
- links: [],
110
- bookmark: this.uriFor(endpoint, props),
111
- isLoading: false,
112
- hasMore: true,
113
- searchString: props.searchString
114
- };
115
- }
116
-
117
- initializeUpload() {
118
- return {
119
- uploading: false,
120
- folders: {},
121
- formExpanded: false
122
- };
123
- }
124
-
125
- initializeImages(props) {
126
- return this.initializeDocuments(props);
127
- }
128
-
129
- initializeDocuments(props) {
130
- return {
131
- [props.contextType]: {
132
- files: [],
133
- bookmark: null,
134
- isLoading: false,
135
- hasMore: true
136
- },
137
- searchString: ''
138
- };
139
- }
140
-
141
- initializeMedia(props) {
142
- return this.initializeDocuments(props);
143
- }
144
-
145
- initializeFlickr() {
146
- return {
147
- searchResults: [],
148
- searching: false,
149
- formExpanded: false
150
- };
151
- } // fetches the given URI and filters it to either an error or parsed response
152
-
153
-
154
- fetchPage(uri) {
155
- return this.apiFetch(uri, headerFor(this.jwt));
156
- }
157
-
158
- fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, bookmark) {
159
- return fetchFunction(properties, bookmark).then(result => {
160
- onSuccess(result);
161
-
162
- if (result.bookmark) {
163
- this.fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, result.bookmark);
164
- }
165
- }).catch(error => {
166
- onError(error);
167
- });
168
- }
169
-
170
- fetchDocs(props) {
171
- const documents = props.documents[props.contextType];
172
- const uri = documents.bookmark || this.uriFor('documents', props);
173
- return this.apiFetch(uri, headerFor(this.jwt)).then(_ref => {
174
- let {
175
- bookmark,
176
- files
177
- } = _ref;
178
- return {
179
- bookmark,
180
- files: files.map(f => fixupFileUrl(props.contextType, props.contextId, f, this.canvasOrigin))
181
- };
182
- });
183
- }
184
-
185
- fetchMedia(props) {
186
- var _RCEGlobals$getFeatur;
187
-
188
- const media = props.media[props.contextType];
189
- const uri = media.bookmark || this.uriFor('media', props);
190
-
191
- if ((_RCEGlobals$getFeatur = RCEGlobals.getFeatures()) !== null && _RCEGlobals$getFeatur !== void 0 && _RCEGlobals$getFeatur.media_links_use_attachment_id) {
192
- return this.apiFetch(uri, headerFor(this.jwt)).then(_ref2 => {
193
- let {
194
- bookmark,
195
- files
196
- } = _ref2;
197
- return {
198
- bookmark,
199
- files: files.map(f => fixupFileUrl(props.contextType, props.contextId, f, this.canvasOrigin))
200
- };
201
- });
202
- }
203
-
204
- return this.apiFetch(uri, headerFor(this.jwt));
205
- }
206
-
207
- fetchFiles(uri) {
208
- return this.fetchPage(uri).then(_ref3 => {
209
- let {
210
- bookmark,
211
- files
212
- } = _ref3;
213
- return {
214
- bookmark,
215
- files: files.map(normalizeFileData)
216
- };
217
- });
218
- }
219
-
220
- fetchLinks(key, props) {
221
- const {
222
- collections
223
- } = props;
224
- const bookmark = collections[key].bookmark || this.uriFor(key, props);
225
- return this.fetchPage(bookmark);
226
- }
227
-
228
- fetchRootFolder(props) {
229
- return this.fetchPage(this.uriFor('folders', props), this.jwt);
230
- }
231
-
232
- mediaServerSession() {
233
- return this.apiPost(this.baseUri('v1/services/kaltura_session'), headerFor(this.jwt), {});
234
- }
235
-
236
- uploadMediaToCanvas(mediaObject) {
237
- const body = {
238
- id: mediaObject.entryId,
239
- type: {
240
- 2: 'image',
241
- 5: 'audio'
242
- }[mediaObject.mediaType] || mediaObject.type.includes('audio') ? 'audio' : 'video',
243
- context_code: mediaObject.contextCode,
244
- title: mediaObject.title,
245
- user_entered_title: mediaObject.userTitle
246
- };
247
- return this.apiPost(this.baseUri('media_objects'), headerFor(this.jwt), body);
248
- }
249
-
250
- updateMediaObject(apiProps, _ref4) {
251
- var _RCEGlobals$getFeatur2;
252
-
253
- let {
254
- media_object_id,
255
- title,
256
- attachment_id
257
- } = _ref4;
258
- const uri = (_RCEGlobals$getFeatur2 = RCEGlobals.getFeatures()) !== null && _RCEGlobals$getFeatur2 !== void 0 && _RCEGlobals$getFeatur2.media_links_use_attachment_id && attachment_id ? `${this.baseUri('media_attachments', apiProps.host)}/${attachment_id}?user_entered_title=${encodeURIComponent(title)}` : `${this.baseUri('media_objects', apiProps.host)}/${media_object_id}?user_entered_title=${encodeURIComponent(title)}`;
259
- return this.apiPost(uri, headerFor(this.jwt), null, 'PUT');
260
- } // PUT to //RCS/api/media_objects/:mediaId/media_tracks [{locale, content}, ...]
261
- // receive back a 200 with the new subtitles, or a 4xx error
262
-
263
-
264
- updateClosedCaptions(apiProps, _ref5) {
265
- let {
266
- media_object_id,
267
- attachment_id,
268
- subtitles
269
- } = _ref5;
270
- let maxBytes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CONSTANTS.CC_FILE_MAX_BYTES;
271
- const rcsConfig = {
272
- origin: originFromHost(apiProps.host),
273
- headers: headerFor(apiProps.jwt)
274
- };
275
- const saveCaptions = attachment_id ? saveClosedCaptionsForAttachment(attachment_id, subtitles, rcsConfig, maxBytes) : saveClosedCaptions(media_object_id, subtitles, rcsConfig, maxBytes);
276
- return saveCaptions.catch(e => {
277
- this.alertFunc(buildError({
278
- message: 'failed to save captions'
279
- }, e));
280
- });
281
- } // GET /media_objects/:mediaId/media_tracks
282
- // receive back the current list of media_tracks
283
-
284
-
285
- fetchClosedCaptions(_mediaId) {
286
- return Promise.resolve([{
287
- locale: 'af',
288
- content: '1\r\n00:00:00,000 --> 00:00:01,251\r\nThis is the content\r\n'
289
- }, {
290
- locale: 'es',
291
- content: '1\r\n00:00:00,000 --> 00:00:01,251\r\nThis is the content\r\n'
292
- }]);
293
- } // fetches folders for the given context to upload files to
294
-
295
-
296
- fetchFolders(props, bookmark) {
297
- const headers = headerFor(this.jwt);
298
- const uri = bookmark || this.uriFor('folders/all', props);
299
- return this.apiFetch(uri, headers);
300
- } // Fetches all files for a given folder
301
-
302
-
303
- fetchFilesForFolder(props, bookmark) {
304
- let uri;
305
-
306
- if (!bookmark) {
307
- const perPageQuery = props.perPage ? `per_page=${props.perPage}` : '';
308
- const searchParam = getSearchParam(props.searchString);
309
- uri = `${props.filesUrl}`;
310
- uri += perPageQuery ? `?${perPageQuery}` : '';
311
-
312
- if (searchParam) {
313
- uri += perPageQuery ? `${searchParam}` : `?${searchParam}`;
314
- }
315
-
316
- if (props.sortBy) {
317
- uri += `${getSortParams(props.sortBy.sort, props.sortBy.order)}`;
318
- }
319
- }
320
-
321
- return this.fetchPage(uri || bookmark, this.jwt);
322
- }
323
-
324
- fetchSubFolders(props, bookmark) {
325
- const uri = bookmark || `${this.baseUri('folders', props.host)}/${props.folderId}`;
326
- return this.apiFetch(uri, headerFor(this.jwt));
327
- }
328
-
329
- fetchIconMakerFolder(_ref6) {
330
- let {
331
- contextId,
332
- contextType
333
- } = _ref6;
334
- const uri = this.uriFor('folders/icon_maker', {
335
- contextId,
336
- contextType,
337
- host: this.host,
338
- jwt: this.jwt
339
- });
340
- return this.fetchPage(uri);
341
- }
342
-
343
- fetchMediaFolder(props) {
344
- let uri;
345
-
346
- if (props.contextType === 'user') {
347
- uri = this.uriFor('folders', props);
348
- } else {
349
- uri = this.uriFor('folders/media', props);
350
- }
351
-
352
- return this.fetchPage(uri);
353
- }
354
-
355
- fetchMediaObjectIframe(mediaObjectId) {
356
- return this.fetchPage(this.uriFor(`media_objects_iframe/${mediaObjectId}`));
357
- }
358
-
359
- fetchImages(props) {
360
- const images = props.images[props.contextType];
361
- const uri = images.bookmark || this.uriFor('images', props);
362
- const headers = headerFor(this.jwt);
363
- return this.apiFetch(uri, headers).then(_ref7 => {
364
- let {
365
- bookmark,
366
- files
367
- } = _ref7;
368
- return {
369
- bookmark,
370
- files: files.map(f => fixupFileUrl(props.contextType, props.contextId, f, this.canvasOrigin)),
371
- searchString: props.searchString
372
- };
373
- });
374
- }
375
-
376
- preflightUpload(fileProps, apiProps) {
377
- const headers = headerFor(this.jwt);
378
- const uri = this.baseUri('upload', apiProps.host);
379
- const body = {
380
- contextId: apiProps.contextId,
381
- contextType: apiProps.contextType,
382
- file: fileProps,
383
- no_redirect: true,
384
- onDuplicate: apiProps.onDuplicate,
385
- category: apiProps.category
386
- };
387
- return this.apiPost(uri, headers, body);
388
- }
389
-
390
- uploadFRD(fileDomObject, preflightProps) {
391
- const data = new window.FormData();
392
- Object.keys(preflightProps.upload_params).forEach(uploadProp => {
393
- data.append(uploadProp, preflightProps.upload_params[uploadProp]);
394
- });
395
- data.append('file', fileDomObject);
396
- const fetchOptions = {
397
- method: 'POST',
398
- body: data
399
- };
400
-
401
- if (!preflightProps.upload_params['x-amz-signature'] && !preflightProps.upload_url.includes('files_api')) {
402
- // _not_ an S3 upload, include the credentials in the upload POST
403
- // local uploads can include crendentials for same-origin requests
404
- fetchOptions.credentials = 'include';
405
- }
406
-
407
- return fetch(preflightProps.upload_url, fetchOptions).then(checkStatus).then(res => res.json()).then(uploadResults => {
408
- return this.finalizeUpload(preflightProps, uploadResults);
409
- }).catch(e => {
410
- this.alertFunc(buildError({}, e));
411
- });
412
- }
413
-
414
- finalizeUpload(preflightProps, uploadResults) {
415
- if (preflightProps.upload_params.success_url) {
416
- // s3 upload, follow-up at success_url to finalize. the success_url doesn't
417
- // require authentication
418
- return fetch(preflightProps.upload_params.success_url).then(checkStatus).then(res => res.json());
419
- } else if (uploadResults.location) {
420
- // inst-fs upload, follow-up by fetching file identified by location in
421
- // response. we can't just fetch the location as would be intended because
422
- // it requires Canvas authentication. we also don't have an RCE API
423
- // endpoint to forward it through.
424
- const {
425
- pathname
426
- } = parse(uploadResults.location);
427
- const matchData = pathname.match(/^\/api\/v1\/files\/((?:\d+~)?\d+)$/);
428
-
429
- if (!matchData) {
430
- const error = new Error('cannot determine file ID from location');
431
- error.location = uploadResults.location;
432
- throw error;
433
- }
434
-
435
- const fileId = matchData[1];
436
- return this.getFile(fileId).then(fileResults => {
437
- fileResults.uuid = uploadResults.uuid; // if present, we'll need the uuid for the file verifier downstream
438
-
439
- return fileResults;
440
- });
441
- } else {
442
- // local-storage upload, this _is_ the attachment information
443
- return Promise.resolve(uploadResults);
444
- }
445
- }
446
-
447
- setUsageRights(fileId, usageRights) {
448
- const headers = headerFor(this.jwt);
449
- const uri = this.baseUri('usage_rights');
450
- const body = {
451
- fileId,
452
- ...usageRights
453
- };
454
- return this.apiPost(uri, headers, body);
455
- }
456
-
457
- searchFlickr(term, apiProps) {
458
- const headers = headerFor(this.jwt);
459
- const base = this.baseUri('flickr_search', apiProps.host);
460
- const uri = `${base}?term=${encodeURIComponent(term)}`;
461
- return this.apiFetch(uri, headers);
462
- }
463
-
464
- getFile(id) {
465
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
466
- const headers = headerFor(this.jwt);
467
- const base = this.baseUri('file'); // Valid query parameters for getFile
468
-
469
- const {
470
- replacement_chain_context_type,
471
- replacement_chain_context_id
472
- } = options;
473
- const uri = this.addParamsIfPresent(`${base}/${id}`, {
474
- replacement_chain_context_type,
475
- replacement_chain_context_id
476
- });
477
- return this.apiFetch(uri, headers).then(normalizeFileData);
478
- } // @private
479
-
480
-
481
- addParamsIfPresent(uri, params) {
482
- let url;
483
-
484
- try {
485
- url = new URL(uri);
486
- } catch (e) {
487
- // Just return the URI if it was invalid
488
- return uri;
489
- } // Add all truthy parameters to the URL
490
-
491
-
492
- for (const [name, value] of Object.entries(params)) {
493
- if (!value) continue;
494
- url.searchParams.append(name, value);
495
- }
496
-
497
- return url.toString();
498
- } // @private
499
-
500
-
501
- async apiFetch(uri, headers, options) {
502
- if (!this.hasSession) {
503
- await this.getSession();
504
- }
505
-
506
- return this.apiReallyFetch(uri, headers, options);
507
- }
508
-
509
- apiReallyFetch(uri, headers) {
510
- let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
511
- uri = this.normalizeUriProtocol(uri);
512
- return fetch(uri, {
513
- headers
514
- }).then(response => {
515
- if (response.status === 401) {
516
- // retry once with fresh token
517
- return this.buildRetryHeaders(headers).then(newHeaders => {
518
- return fetch(uri, {
519
- headers: newHeaders
520
- });
521
- });
522
- } else {
523
- return response;
524
- }
525
- }).then(checkStatus).then(options.skipParse ? () => {} : res => res.json()).catch(throwConnectionError).catch(e => {
526
- this.alertFunc(buildError(e));
527
- throw e;
528
- });
529
- } // @private
530
-
531
-
532
- apiPost(uri, headers, body) {
533
- let method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'POST';
534
- headers = { ...headers,
535
- 'Content-Type': 'application/json'
536
- };
537
- const fetchOptions = {
538
- method,
539
- headers
540
- };
541
-
542
- if (body) {
543
- fetchOptions.body = JSON.stringify(body);
544
- } else {
545
- fetchOptions.form = body;
546
- }
547
-
548
- uri = this.normalizeUriProtocol(uri);
549
- return fetch(uri, fetchOptions).then(response => {
550
- if (response.status === 401) {
551
- // retry once with fresh token
552
- return this.buildRetryHeaders(fetchOptions.headers).then(newHeaders => {
553
- const newOptions = { ...fetchOptions,
554
- headers: newHeaders
555
- };
556
- return fetch(uri, newOptions);
557
- });
558
- } else {
559
- return response;
560
- }
561
- }).then(checkStatus).then(res => res.json()).catch(throwConnectionError).catch(e => e.response.json().then(body => {
562
- console.error(e); // eslint-disable-line no-console
563
-
564
- this.alertFunc(buildError(body));
565
- throw e;
566
- }));
567
- } // @private
568
-
569
-
570
- normalizeUriProtocol(uri, windowOverride) {
571
- const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);
572
-
573
- if (windowHandle && windowHandle.location && windowHandle.location.protocol === 'https:') {
574
- return uri.replace('http://', 'https://');
575
- }
576
-
577
- return uri;
578
- } // @private
579
-
580
-
581
- buildRetryHeaders(headers) {
582
- return new Promise(resolve => {
583
- this.refreshToken(freshToken => {
584
- this.jwt = freshToken;
585
- const freshHeader = headerFor(freshToken);
586
- const mergedHeaders = { ...headers,
587
- ...freshHeader
588
- };
589
- resolve(mergedHeaders);
590
- });
591
- });
592
- }
593
-
594
- baseUri(endpoint, host, windowOverride) {
595
- if (!host && this.host) {
596
- host = this.host;
597
- }
598
-
599
- host = originFromHost(host, windowOverride);
600
- const sharedEndpoints = ['images', 'media', 'documents', 'all']; // 'all' will eventually be something different
601
-
602
- const endpt = sharedEndpoints.includes(endpoint) ? 'documents' : endpoint;
603
- return `${host}/api/${endpt}`;
604
- } // returns the URI to use with the fetchPage method to fetch the first page of
605
- // the given endpoint. e.g. for wikiPages it might return:
606
- //
607
- // //rce.docker/api/wikiPages?context_type=course&context_id=42
608
- //
609
-
610
-
611
- uriFor(endpoint, props) {
612
- const {
613
- host,
614
- contextType,
615
- contextId,
616
- sortBy,
617
- searchString,
618
- perPage
619
- } = props;
620
- let extra = '';
621
- const pageSizeParam = perPage ? `&per_page=${perPage}` : '';
622
-
623
- switch (endpoint) {
624
- case 'images':
625
- extra = `&content_types=image${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}${optionalQuery(props, 'category')}`;
626
- break;
627
-
628
- case 'media':
629
- // when requesting media files via the documents endpoint
630
- extra = `&content_types=video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;
631
- break;
632
-
633
- case 'documents':
634
- extra = `&exclude_content_types=image,video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;
635
- break;
636
-
637
- case 'media_objects':
638
- // when requesting media objects (this is the currently used branch)
639
- extra = `${getSortParams(sortBy.sort === 'alphabetical' ? 'title' : 'date', sortBy.dir)}${getSearchParam(searchString)}`;
640
- break;
641
-
642
- default:
643
- extra = getSearchParam(searchString);
644
- }
645
-
646
- return `${this.baseUri(endpoint, host)}?contextType=${contextType}&contextId=${contextId}${pageSizeParam}${extra}`;
647
- }
648
-
649
- }
650
-
651
- function getSortParams(sort, dir) {
652
- let sortBy = sort;
653
-
654
- if (sortBy === 'date_added') {
655
- sortBy = 'created_at';
656
- } else if (sortBy === 'alphabetical') {
657
- sortBy = 'name';
658
- }
659
-
660
- return `&sort=${sortBy}&order=${dir}`;
661
- }
662
-
663
- function optionalQuery(props, name) {
664
- return props[name] ? `&${name}=${props[name]}` : '';
665
- }
666
-
667
- export function getSearchParam(searchString) {
668
- return (searchString === null || searchString === void 0 ? void 0 : searchString.length) >= 3 ? `&search_term=${encodeURIComponent(searchString)}` : '';
669
- }
670
- export default RceApiSource;