@instructure/canvas-rce 5.12.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 (476) hide show
  1. package/CHANGELOG.md +8 -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/enhance-user-content/doc_previews.js +4 -0
  6. package/es/enhance-user-content/enhance_user_content.js +4 -59
  7. package/es/enhance-user-content/external_links.js +75 -0
  8. package/es/enhance-user-content/mathml.js +9 -7
  9. package/es/index.js +1 -1
  10. package/es/rce/RCEWrapper.js +3 -2322
  11. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +1 -1
  12. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +3 -11
  13. package/es/rce/plugins/instructure_equation/mathlive/index.js +5 -13
  14. package/es/rce/tinymce.oxide.content.min.css.js +732 -0
  15. package/es/rce/tinymce.oxide.skin.min.css.js +7 -0
  16. package/jest.config.js +0 -7
  17. package/package.json +1 -5
  18. package/scripts/build.js +1 -7
  19. package/lib/bridge/Bridge.js +0 -287
  20. package/lib/bridge/index.js +0 -21
  21. package/lib/canvasFileBrowser/FileBrowser.js +0 -457
  22. package/lib/canvasFileBrowser/en-US.js +0 -234
  23. package/lib/common/FlashAlert.js +0 -263
  24. package/lib/common/browser.js +0 -40
  25. package/lib/common/components/FileTree/File.js +0 -64
  26. package/lib/common/components/FileTree/Folder.js +0 -110
  27. package/lib/common/components/FileTree/index.js +0 -84
  28. package/lib/common/components/FileTree/styles.js +0 -72
  29. package/lib/common/components/Loading.js +0 -83
  30. package/lib/common/fileUrl.js +0 -152
  31. package/lib/common/getCookie.js +0 -32
  32. package/lib/common/incremental-loading/LoadMoreButton.js +0 -40
  33. package/lib/common/incremental-loading/LoadingIndicator.js +0 -36
  34. package/lib/common/incremental-loading/LoadingStatus.js +0 -47
  35. package/lib/common/incremental-loading/index.js +0 -21
  36. package/lib/common/incremental-loading/useIncrementalLoading.js +0 -58
  37. package/lib/common/indicate.js +0 -75
  38. package/lib/common/mimeClass.js +0 -120
  39. package/lib/common/natcompare.js +0 -47
  40. package/lib/defaultTinymceConfig.js +0 -160
  41. package/lib/elementDenylist.js +0 -19
  42. package/lib/enhance-user-content/doc_previews.js +0 -233
  43. package/lib/enhance-user-content/enhance_user_content.js +0 -396
  44. package/lib/enhance-user-content/index.js +0 -21
  45. package/lib/enhance-user-content/instructure_helper.js +0 -207
  46. package/lib/enhance-user-content/jqueryish_funcs.js +0 -88
  47. package/lib/enhance-user-content/mathml.js +0 -397
  48. package/lib/enhance-user-content/media_comment_thumbnail.js +0 -130
  49. package/lib/format-message.js +0 -30
  50. package/lib/getThemeVars.js +0 -46
  51. package/lib/getTranslations.js +0 -340
  52. package/lib/index.js +0 -51
  53. package/lib/rce/AlertMessageArea.js +0 -47
  54. package/lib/rce/DraggingBlocker.js +0 -43
  55. package/lib/rce/KeyboardShortcutModal.js +0 -88
  56. package/lib/rce/RCE.js +0 -150
  57. package/lib/rce/RCEGlobals.js +0 -62
  58. package/lib/rce/RCEWrapper.js +0 -4274
  59. package/lib/rce/RCEWrapperProps.js +0 -130
  60. package/lib/rce/RceHtmlEditor.js +0 -142
  61. package/lib/rce/ResizeHandle.js +0 -102
  62. package/lib/rce/RestoreAutoSaveModal.js +0 -82
  63. package/lib/rce/ShowOnFocusButton/index.js +0 -93
  64. package/lib/rce/StatusBar.js +0 -386
  65. package/lib/rce/__mocks__/_mockCryptoEs.js +0 -124
  66. package/lib/rce/__mocks__/styleMock.js +0 -18
  67. package/lib/rce/__mocks__/tinymceReact.js +0 -55
  68. package/lib/rce/alertHandler.js +0 -46
  69. package/lib/rce/contentInsertion.js +0 -325
  70. package/lib/rce/contentInsertionUtils.js +0 -85
  71. package/lib/rce/contentRendering.js +0 -145
  72. package/lib/rce/customEvents.js +0 -18
  73. package/lib/rce/editorLanguage.js +0 -101
  74. package/lib/rce/indicatorRegion.js +0 -49
  75. package/lib/rce/normalizeLocale.js +0 -50
  76. package/lib/rce/normalizeProps.js +0 -29
  77. package/lib/rce/plugins/instructure-ui-icons/plugin.js +0 -122
  78. package/lib/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +0 -24
  79. package/lib/rce/plugins/instructure_condensed_buttons/plugin.js +0 -27
  80. package/lib/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +0 -63
  81. package/lib/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +0 -48
  82. package/lib/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +0 -41
  83. package/lib/rce/plugins/instructure_condensed_buttons/ui/list-button.js +0 -145
  84. package/lib/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +0 -56
  85. package/lib/rce/plugins/instructure_documents/clickCallback.js +0 -23
  86. package/lib/rce/plugins/instructure_documents/components/DocumentsPanel.js +0 -120
  87. package/lib/rce/plugins/instructure_documents/components/Link.js +0 -219
  88. package/lib/rce/plugins/instructure_documents/plugin.js +0 -123
  89. package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +0 -25
  90. package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +0 -51
  91. package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +0 -321
  92. package/lib/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +0 -116
  93. package/lib/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +0 -91
  94. package/lib/rce/plugins/instructure_equation/EquationEditorModal/styles.js +0 -46
  95. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +0 -728
  96. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +0 -84
  97. package/lib/rce/plugins/instructure_equation/MathIcon/index.js +0 -41
  98. package/lib/rce/plugins/instructure_equation/MathIcon/svgs.js +0 -236
  99. package/lib/rce/plugins/instructure_equation/clickCallback.js +0 -53
  100. package/lib/rce/plugins/instructure_equation/mathlive/index.js +0 -36
  101. package/lib/rce/plugins/instructure_equation/plugin.js +0 -69
  102. package/lib/rce/plugins/instructure_fullscreen/plugin.js +0 -50
  103. package/lib/rce/plugins/instructure_html_view/clickCallback.js +0 -21
  104. package/lib/rce/plugins/instructure_html_view/plugin.js +0 -37
  105. package/lib/rce/plugins/instructure_icon_maker/clickCallback.js +0 -57
  106. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +0 -82
  107. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +0 -56
  108. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +0 -78
  109. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +0 -36
  110. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +0 -110
  111. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +0 -169
  112. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +0 -186
  113. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +0 -243
  114. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +0 -64
  115. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +0 -73
  116. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +0 -298
  117. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +0 -86
  118. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +0 -55
  119. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +0 -70
  120. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +0 -317
  121. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +0 -149
  122. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +0 -18
  123. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +0 -32
  124. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +0 -25
  125. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +0 -60
  126. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +0 -87
  127. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +0 -139
  128. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +0 -18
  129. package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +0 -323
  130. package/lib/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +0 -91
  131. package/lib/rce/plugins/instructure_icon_maker/plugin.js +0 -110
  132. package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +0 -194
  133. package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +0 -98
  134. package/lib/rce/plugins/instructure_icon_maker/registerEditToolbar.js +0 -56
  135. package/lib/rce/plugins/instructure_icon_maker/svg/clipPath.js +0 -25
  136. package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +0 -100
  137. package/lib/rce/plugins/instructure_icon_maker/svg/font.js +0 -25
  138. package/lib/rce/plugins/instructure_icon_maker/svg/image.js +0 -354
  139. package/lib/rce/plugins/instructure_icon_maker/svg/index.js +0 -122
  140. package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +0 -48
  141. package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +0 -179
  142. package/lib/rce/plugins/instructure_icon_maker/svg/shape.js +0 -316
  143. package/lib/rce/plugins/instructure_icon_maker/svg/text.js +0 -468
  144. package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +0 -70
  145. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +0 -45
  146. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +0 -83
  147. package/lib/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +0 -28
  148. package/lib/rce/plugins/instructure_icon_maker/utils/iconValidation.js +0 -35
  149. package/lib/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +0 -375
  150. package/lib/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +0 -59
  151. package/lib/rce/plugins/instructure_image/ImageEmbedOptions.js +0 -202
  152. package/lib/rce/plugins/instructure_image/ImageList/Image.js +0 -106
  153. package/lib/rce/plugins/instructure_image/ImageList/index.js +0 -69
  154. package/lib/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +0 -166
  155. package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +0 -246
  156. package/lib/rce/plugins/instructure_image/Images/index.js +0 -122
  157. package/lib/rce/plugins/instructure_image/clickCallback.js +0 -24
  158. package/lib/rce/plugins/instructure_image/plugin.js +0 -157
  159. package/lib/rce/plugins/instructure_links/clickCallback.js +0 -22
  160. package/lib/rce/plugins/instructure_links/components/AccordionSection.js +0 -60
  161. package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +0 -84
  162. package/lib/rce/plugins/instructure_links/components/Link.js +0 -213
  163. package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +0 -127
  164. package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +0 -141
  165. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +0 -125
  166. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +0 -245
  167. package/lib/rce/plugins/instructure_links/components/LinkSet.js +0 -195
  168. package/lib/rce/plugins/instructure_links/components/LinksPanel.js +0 -100
  169. package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +0 -141
  170. package/lib/rce/plugins/instructure_links/components/NoResults.js +0 -87
  171. package/lib/rce/plugins/instructure_links/components/propTypes.js +0 -41
  172. package/lib/rce/plugins/instructure_links/plugin.js +0 -294
  173. package/lib/rce/plugins/instructure_links/validateURL.js +0 -70
  174. package/lib/rce/plugins/instructure_media_embed/clickCallback.js +0 -48
  175. package/lib/rce/plugins/instructure_media_embed/components/Embed.js +0 -68
  176. package/lib/rce/plugins/instructure_media_embed/plugin.js +0 -36
  177. package/lib/rce/plugins/instructure_paste/pasteMenuCommand.js +0 -117
  178. package/lib/rce/plugins/instructure_paste/plugin.js +0 -174
  179. package/lib/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +0 -169
  180. package/lib/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +0 -225
  181. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +0 -297
  182. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +0 -46
  183. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +0 -79
  184. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +0 -153
  185. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +0 -94
  186. package/lib/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +0 -90
  187. package/lib/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +0 -35
  188. package/lib/rce/plugins/instructure_rce_external_tools/dialog-helper.js +0 -29
  189. package/lib/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -55
  190. package/lib/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +0 -172
  191. package/lib/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +0 -203
  192. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +0 -23
  193. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +0 -111
  194. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +0 -79
  195. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +0 -47
  196. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +0 -57
  197. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +0 -26
  198. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +0 -47
  199. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +0 -67
  200. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +0 -48
  201. package/lib/rce/plugins/instructure_rce_external_tools/plugin.js +0 -112
  202. package/lib/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +0 -27
  203. package/lib/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +0 -152
  204. package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +0 -154
  205. package/lib/rce/plugins/instructure_record/MediaPanel/index.js +0 -123
  206. package/lib/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +0 -240
  207. package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +0 -350
  208. package/lib/rce/plugins/instructure_record/clickCallback.js +0 -105
  209. package/lib/rce/plugins/instructure_record/mediaTranslations.js +0 -94
  210. package/lib/rce/plugins/instructure_record/plugin.js +0 -173
  211. package/lib/rce/plugins/instructure_studio_media_options/plugin.js +0 -42
  212. package/lib/rce/plugins/instructure_wordcount/clickCallback.js +0 -49
  213. package/lib/rce/plugins/instructure_wordcount/components/WordCountModal.js +0 -88
  214. package/lib/rce/plugins/instructure_wordcount/plugin.js +0 -30
  215. package/lib/rce/plugins/instructure_wordcount/utils/countContent.js +0 -78
  216. package/lib/rce/plugins/instructure_wordcount/utils/tableContent.js +0 -40
  217. package/lib/rce/plugins/shared/CanvasContentTray.js +0 -580
  218. package/lib/rce/plugins/shared/CheckerboardStyling.js +0 -25
  219. package/lib/rce/plugins/shared/ColorInput.js +0 -233
  220. package/lib/rce/plugins/shared/ConditionalTooltip.js +0 -32
  221. package/lib/rce/plugins/shared/ContentSelection.js +0 -269
  222. package/lib/rce/plugins/shared/DimensionUtils.js +0 -66
  223. package/lib/rce/plugins/shared/DimensionsInput/DimensionInput.js +0 -62
  224. package/lib/rce/plugins/shared/DimensionsInput/index.js +0 -161
  225. package/lib/rce/plugins/shared/DimensionsInput/useDimensionsState.js +0 -220
  226. package/lib/rce/plugins/shared/ErrorBoundary.js +0 -54
  227. package/lib/rce/plugins/shared/EventUtils.js +0 -39
  228. package/lib/rce/plugins/shared/Filter.js +0 -353
  229. package/lib/rce/plugins/shared/FixedContentTray.js +0 -115
  230. package/lib/rce/plugins/shared/ImageCropper/DirectionRegion.js +0 -67
  231. package/lib/rce/plugins/shared/ImageCropper/Modal.js +0 -153
  232. package/lib/rce/plugins/shared/ImageCropper/Preview.js +0 -148
  233. package/lib/rce/plugins/shared/ImageCropper/constants.js +0 -39
  234. package/lib/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +0 -83
  235. package/lib/rce/plugins/shared/ImageCropper/controls/ResetControls.js +0 -38
  236. package/lib/rce/plugins/shared/ImageCropper/controls/RotationControls.js +0 -89
  237. package/lib/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +0 -82
  238. package/lib/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +0 -111
  239. package/lib/rce/plugins/shared/ImageCropper/controls/index.js +0 -61
  240. package/lib/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +0 -94
  241. package/lib/rce/plugins/shared/ImageCropper/controls/utils.js +0 -41
  242. package/lib/rce/plugins/shared/ImageCropper/imageCropUtils.js +0 -149
  243. package/lib/rce/plugins/shared/ImageCropper/index.js +0 -18
  244. package/lib/rce/plugins/shared/ImageCropper/propTypes.js +0 -26
  245. package/lib/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +0 -72
  246. package/lib/rce/plugins/shared/ImageCropper/shape.js +0 -27
  247. package/lib/rce/plugins/shared/ImageCropper/svg/index.js +0 -89
  248. package/lib/rce/plugins/shared/ImageCropper/svg/shape.js +0 -125
  249. package/lib/rce/plugins/shared/ImageCropper/svg/utils.js +0 -26
  250. package/lib/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +0 -233
  251. package/lib/rce/plugins/shared/ImageCropper/useMouseWheel.js +0 -66
  252. package/lib/rce/plugins/shared/ImageOptionsForm.js +0 -140
  253. package/lib/rce/plugins/shared/LinkDisplay.js +0 -96
  254. package/lib/rce/plugins/shared/PreviewIcon.js +0 -112
  255. package/lib/rce/plugins/shared/Previewable.js +0 -22
  256. package/lib/rce/plugins/shared/RceFileBrowser.js +0 -106
  257. package/lib/rce/plugins/shared/StoreContext.js +0 -57
  258. package/lib/rce/plugins/shared/StudioLtiSupportUtils.js +0 -71
  259. package/lib/rce/plugins/shared/UnknownFileTypePanel.js +0 -29
  260. package/lib/rce/plugins/shared/Upload/CategoryProcessor.js +0 -27
  261. package/lib/rce/plugins/shared/Upload/ComputerPanel.js +0 -334
  262. package/lib/rce/plugins/shared/Upload/SvgCategoryProcessor.js +0 -35
  263. package/lib/rce/plugins/shared/Upload/UploadFile.js +0 -171
  264. package/lib/rce/plugins/shared/Upload/UploadFileModal.js +0 -273
  265. package/lib/rce/plugins/shared/Upload/UrlPanel.js +0 -38
  266. package/lib/rce/plugins/shared/Upload/UsageRightsSelectBox.js +0 -172
  267. package/lib/rce/plugins/shared/Upload/doFileUpload.js +0 -77
  268. package/lib/rce/plugins/shared/__mocks__/screenfull.js +0 -24
  269. package/lib/rce/plugins/shared/buildDownloadUrl.js +0 -31
  270. package/lib/rce/plugins/shared/compressionUtils.js +0 -98
  271. package/lib/rce/plugins/shared/dateUtils.js +0 -28
  272. package/lib/rce/plugins/shared/fileShape.js +0 -129
  273. package/lib/rce/plugins/shared/fileTypeUtils.js +0 -139
  274. package/lib/rce/plugins/shared/fileUtils.js +0 -25
  275. package/lib/rce/plugins/shared/linkUtils.js +0 -89
  276. package/lib/rce/plugins/shared/round.js +0 -25
  277. package/lib/rce/plugins/shared/trayUtils.js +0 -34
  278. package/lib/rce/plugins/shared/useDataUrl.js +0 -76
  279. package/lib/rce/plugins/tinymce-a11y-checker/components/ColorField.js +0 -86
  280. package/lib/rce/plugins/tinymce-a11y-checker/components/checker.js +0 -558
  281. package/lib/rce/plugins/tinymce-a11y-checker/components/color-picker.js +0 -59
  282. package/lib/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +0 -90
  283. package/lib/rce/plugins/tinymce-a11y-checker/components/pointer.js +0 -32
  284. package/lib/rce/plugins/tinymce-a11y-checker/node-checker.js +0 -54
  285. package/lib/rce/plugins/tinymce-a11y-checker/plugin.js +0 -90
  286. package/lib/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
  287. package/lib/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +0 -129
  288. package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +0 -200
  289. package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +0 -67
  290. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +0 -63
  291. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +0 -49
  292. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +0 -61
  293. package/lib/rce/plugins/tinymce-a11y-checker/rules/index.js +0 -31
  294. package/lib/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +0 -51
  295. package/lib/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +0 -144
  296. package/lib/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +0 -61
  297. package/lib/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +0 -75
  298. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +0 -54
  299. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +0 -52
  300. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header.js +0 -81
  301. package/lib/rce/plugins/tinymce-a11y-checker/utils/colors.js +0 -43
  302. package/lib/rce/plugins/tinymce-a11y-checker/utils/describe.js +0 -66
  303. package/lib/rce/plugins/tinymce-a11y-checker/utils/dom.js +0 -160
  304. package/lib/rce/plugins/tinymce-a11y-checker/utils/indicate.js +0 -83
  305. package/lib/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +0 -57
  306. package/lib/rce/plugins/tinymce-a11y-checker/utils/strings.js +0 -40
  307. package/lib/rce/root.js +0 -58
  308. package/lib/rce/sanitizePlugins.js +0 -32
  309. package/lib/rce/style.js +0 -843
  310. package/lib/rce/tinyRCE.js +0 -66
  311. package/lib/rce/transformContent.js +0 -73
  312. package/lib/rce/userOS.js +0 -31
  313. package/lib/rce/wrapInitCb.js +0 -78
  314. package/lib/rcs/api.js +0 -672
  315. package/lib/rcs/buildError.js +0 -98
  316. package/lib/rcs/fake.js +0 -621
  317. package/lib/sidebar/actions/all_files.js +0 -29
  318. package/lib/sidebar/actions/data.js +0 -105
  319. package/lib/sidebar/actions/documents.js +0 -107
  320. package/lib/sidebar/actions/files.js +0 -167
  321. package/lib/sidebar/actions/filter.js +0 -63
  322. package/lib/sidebar/actions/flickr.js +0 -60
  323. package/lib/sidebar/actions/images.js +0 -153
  324. package/lib/sidebar/actions/links.js +0 -23
  325. package/lib/sidebar/actions/media.js +0 -142
  326. package/lib/sidebar/actions/session.js +0 -34
  327. package/lib/sidebar/actions/ui.js +0 -49
  328. package/lib/sidebar/actions/upload.js +0 -550
  329. package/lib/sidebar/containers/Sidebar.js +0 -67
  330. package/lib/sidebar/containers/sidebarHandlers.js +0 -73
  331. package/lib/sidebar/dragHtml.js +0 -49
  332. package/lib/sidebar/reducers/all_files.js +0 -35
  333. package/lib/sidebar/reducers/collection.js +0 -72
  334. package/lib/sidebar/reducers/collections.js +0 -52
  335. package/lib/sidebar/reducers/documents.js +0 -89
  336. package/lib/sidebar/reducers/files.js +0 -38
  337. package/lib/sidebar/reducers/filter.js +0 -61
  338. package/lib/sidebar/reducers/flickr.js +0 -51
  339. package/lib/sidebar/reducers/folder.js +0 -92
  340. package/lib/sidebar/reducers/folders.js +0 -39
  341. package/lib/sidebar/reducers/images.js +0 -115
  342. package/lib/sidebar/reducers/index.js +0 -57
  343. package/lib/sidebar/reducers/media.js +0 -84
  344. package/lib/sidebar/reducers/newPageLinkExpanded.js +0 -30
  345. package/lib/sidebar/reducers/noop.js +0 -21
  346. package/lib/sidebar/reducers/rootFolderId.js +0 -30
  347. package/lib/sidebar/reducers/session.js +0 -33
  348. package/lib/sidebar/reducers/ui.js +0 -87
  349. package/lib/sidebar/reducers/upload.js +0 -206
  350. package/lib/sidebar/store/configureStore.js +0 -26
  351. package/lib/sidebar/store/initialState.js +0 -173
  352. package/lib/translations/locales/ab.js +0 -26
  353. package/lib/translations/locales/ar.js +0 -2427
  354. package/lib/translations/locales/ca.js +0 -2427
  355. package/lib/translations/locales/cs.js +0 -27
  356. package/lib/translations/locales/cs_CZ.js +0 -27
  357. package/lib/translations/locales/cy.js +0 -2427
  358. package/lib/translations/locales/da-x-k12.js +0 -2427
  359. package/lib/translations/locales/da.js +0 -2427
  360. package/lib/translations/locales/da_DK.js +0 -27
  361. package/lib/translations/locales/de.js +0 -2427
  362. package/lib/translations/locales/el.js +0 -459
  363. package/lib/translations/locales/en-AU-x-unimelb.js +0 -2427
  364. package/lib/translations/locales/en-GB-x-ukhe.js +0 -2427
  365. package/lib/translations/locales/en.js +0 -2427
  366. package/lib/translations/locales/en_AU.js +0 -2427
  367. package/lib/translations/locales/en_CA.js +0 -2426
  368. package/lib/translations/locales/en_CY.js +0 -2426
  369. package/lib/translations/locales/en_GB.js +0 -2427
  370. package/lib/translations/locales/en_NZ.js +0 -26
  371. package/lib/translations/locales/en_SE.js +0 -26
  372. package/lib/translations/locales/en_US.js +0 -26
  373. package/lib/translations/locales/es.js +0 -2427
  374. package/lib/translations/locales/es_ES.js +0 -2427
  375. package/lib/translations/locales/es_GT.js +0 -27
  376. package/lib/translations/locales/fa_IR.js +0 -615
  377. package/lib/translations/locales/fi.js +0 -2427
  378. package/lib/translations/locales/fr.js +0 -2427
  379. package/lib/translations/locales/fr_CA.js +0 -2427
  380. package/lib/translations/locales/he.js +0 -486
  381. package/lib/translations/locales/ht.js +0 -2426
  382. package/lib/translations/locales/hu.js +0 -2007
  383. package/lib/translations/locales/hu_HU.js +0 -27
  384. package/lib/translations/locales/hy.js +0 -444
  385. package/lib/translations/locales/id.js +0 -2426
  386. package/lib/translations/locales/id_ID.js +0 -26
  387. package/lib/translations/locales/is.js +0 -2426
  388. package/lib/translations/locales/it.js +0 -2427
  389. package/lib/translations/locales/ja.js +0 -2427
  390. package/lib/translations/locales/ko.js +0 -342
  391. package/lib/translations/locales/ko_KR.js +0 -27
  392. package/lib/translations/locales/lt.js +0 -26
  393. package/lib/translations/locales/lt_LT.js +0 -26
  394. package/lib/translations/locales/mi.js +0 -2426
  395. package/lib/translations/locales/mn_MN.js +0 -26
  396. package/lib/translations/locales/ms.js +0 -2426
  397. package/lib/translations/locales/nb-x-k12.js +0 -2427
  398. package/lib/translations/locales/nb.js +0 -2427
  399. package/lib/translations/locales/nl.js +0 -2427
  400. package/lib/translations/locales/nl_NL.js +0 -27
  401. package/lib/translations/locales/nn.js +0 -2247
  402. package/lib/translations/locales/pl.js +0 -2427
  403. package/lib/translations/locales/pt.js +0 -2427
  404. package/lib/translations/locales/pt_BR.js +0 -2427
  405. package/lib/translations/locales/ro.js +0 -27
  406. package/lib/translations/locales/ru.js +0 -2427
  407. package/lib/translations/locales/se.js +0 -26
  408. package/lib/translations/locales/sl.js +0 -2427
  409. package/lib/translations/locales/sv-x-k12.js +0 -2427
  410. package/lib/translations/locales/sv.js +0 -2427
  411. package/lib/translations/locales/sv_SE.js +0 -27
  412. package/lib/translations/locales/tg.js +0 -26
  413. package/lib/translations/locales/th.js +0 -2427
  414. package/lib/translations/locales/th_TH.js +0 -27
  415. package/lib/translations/locales/tl_PH.js +0 -26
  416. package/lib/translations/locales/tr.js +0 -687
  417. package/lib/translations/locales/uk_UA.js +0 -519
  418. package/lib/translations/locales/vi.js +0 -2427
  419. package/lib/translations/locales/vi_VN.js +0 -27
  420. package/lib/translations/locales/zh-Hans.js +0 -2427
  421. package/lib/translations/locales/zh-Hant.js +0 -2427
  422. package/lib/translations/locales/zh.js +0 -2427
  423. package/lib/translations/locales/zh_HK.js +0 -2427
  424. package/lib/translations/locales/zh_TW.Big5.js +0 -27
  425. package/lib/translations/locales/zh_TW.js +0 -27
  426. package/lib/translations/tinymce/ar_SA.js +0 -211
  427. package/lib/translations/tinymce/bg_BG.js +0 -419
  428. package/lib/translations/tinymce/ca.js +0 -419
  429. package/lib/translations/tinymce/cs.js +0 -419
  430. package/lib/translations/tinymce/cy.js +0 -418
  431. package/lib/translations/tinymce/da.js +0 -419
  432. package/lib/translations/tinymce/de.js +0 -419
  433. package/lib/translations/tinymce/el.js +0 -261
  434. package/lib/translations/tinymce/en_GB.js +0 -230
  435. package/lib/translations/tinymce/es.js +0 -419
  436. package/lib/translations/tinymce/fa_IR.js +0 -390
  437. package/lib/translations/tinymce/fi.js +0 -19
  438. package/lib/translations/tinymce/fr_FR.js +0 -419
  439. package/lib/translations/tinymce/he_IL.js +0 -420
  440. package/lib/translations/tinymce/hu_HU.js +0 -419
  441. package/lib/translations/tinymce/hy.js +0 -419
  442. package/lib/translations/tinymce/it.js +0 -419
  443. package/lib/translations/tinymce/ja.js +0 -419
  444. package/lib/translations/tinymce/ko_KR.js +0 -419
  445. package/lib/translations/tinymce/nb_NO.js +0 -419
  446. package/lib/translations/tinymce/nl.js +0 -419
  447. package/lib/translations/tinymce/pl.js +0 -419
  448. package/lib/translations/tinymce/pt_BR.js +0 -419
  449. package/lib/translations/tinymce/pt_PT.js +0 -419
  450. package/lib/translations/tinymce/ro.js +0 -418
  451. package/lib/translations/tinymce/ru.js +0 -436
  452. package/lib/translations/tinymce/ru_RU.js +0 -71
  453. package/lib/translations/tinymce/sl.js +0 -462
  454. package/lib/translations/tinymce/sr.js +0 -278
  455. package/lib/translations/tinymce/sv_SE.js +0 -419
  456. package/lib/translations/tinymce/th.js +0 -479
  457. package/lib/translations/tinymce/tr_TR.js +0 -389
  458. package/lib/translations/tinymce/uk_UA.js +0 -278
  459. package/lib/translations/tinymce/vi_VN.js +0 -277
  460. package/lib/translations/tinymce/zh_CN.js +0 -419
  461. package/lib/translations/tinymce/zh_TW.js +0 -419
  462. package/lib/util/DeepPartialNullable.js +0 -1
  463. package/lib/util/ExtractRequired.js +0 -1
  464. package/lib/util/TypedDict.js +0 -131
  465. package/lib/util/assertNever.js +0 -44
  466. package/lib/util/elem-util.js +0 -26
  467. package/lib/util/encrypted-storage.js +0 -84
  468. package/lib/util/file-url-util.js +0 -44
  469. package/lib/util/fullscreenHelpers.js +0 -27
  470. package/lib/util/instui-icon-helper.js +0 -31
  471. package/lib/util/loadingPlaceholder.js +0 -436
  472. package/lib/util/simpleCache.js +0 -41
  473. package/lib/util/string-util.js +0 -48
  474. package/lib/util/textarea-editing-util.js +0 -87
  475. package/lib/util/tinymce-plugin-util.js +0 -52
  476. package/lib/util/url-util.js +0 -138
@@ -1,354 +0,0 @@
1
- /*
2
- * Copyright (C) 2021 - 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 { createSvgElement } from './utils';
19
- import { CLIP_PATH_ID } from './clipPath';
20
- import { Shape } from './shape';
21
- import { Size, STROKE_WIDTH, BASE_SIZE, ICON_PADDING } from './constants';
22
- const STOCK_IMAGE_TYPES = ['SingleColor', 'MultiColor'];
23
-
24
- const calculateImageHeight = _ref => {
25
- let {
26
- size,
27
- outlineSize
28
- } = _ref;
29
- // Subtract the padding at the top and the bottom
30
- // to get the true height of the shape in the icon
31
- const iconHeightLessPadding = BASE_SIZE[size] - 2 * ICON_PADDING; // Shrink it by the size of the stroke width so the
32
- // border doesn't cover parts of the cropped image
33
-
34
- return iconHeightLessPadding - STROKE_WIDTH[outlineSize];
35
- };
36
-
37
- export function buildImage(settings) {
38
- var _settings$imageSettin;
39
-
40
- // Don't attempt to embed an image if none exist
41
- if (!((_settings$imageSettin = settings.imageSettings) !== null && _settings$imageSettin !== void 0 && _settings$imageSettin.image)) return;
42
- let imageAttributes;
43
-
44
- if (STOCK_IMAGE_TYPES.includes(settings.imageSettings.mode)) {
45
- imageAttributes = {
46
- x: settings.x,
47
- y: settings.y,
48
- transform: settings.transform,
49
- width: settings.width,
50
- height: settings.height,
51
- href: settings.embedImage
52
- };
53
- } else {
54
- // we need to embed the encoded image
55
- const squareHeight = calculateImageHeight(settings);
56
- const translation = translationFor(squareHeight);
57
- imageAttributes = {
58
- x: '50%',
59
- y: '50%',
60
- transform: `translate(${translation}, ${translation})`,
61
- width: squareHeight,
62
- height: squareHeight,
63
- href: settings.embedImage
64
- };
65
- }
66
-
67
- const group = createSvgElement('g', {
68
- 'clip-path': `url(#${CLIP_PATH_ID})`
69
- });
70
- const image = createSvgElement('image', imageAttributes);
71
- group.appendChild(image);
72
- return group;
73
- }
74
- /**
75
- * Calculates the transformation props for a given
76
- * shape and size.
77
- *
78
- * A Transform takes the following shape:
79
- * {
80
- * x: string,
81
- * y: string,
82
- * width: number,
83
- * height: number,
84
- * translateX: number,
85
- * translateY: number
86
- * }
87
- *
88
- * @param {Shape} shape
89
- * @param {Size} size
90
- *
91
- * @returns Transform
92
- */
93
-
94
- export function transformForShape(shape, size) {
95
- switch (shape) {
96
- case Shape.Pentagon:
97
- return transformForPentagon(size);
98
-
99
- case Shape.Triangle:
100
- return transformForTriangle(size);
101
-
102
- case Shape.Star:
103
- return transformForStar(size);
104
-
105
- case Shape.Square:
106
- return transformForSquare(size);
107
-
108
- case Shape.Circle:
109
- return transformForCircle(size);
110
-
111
- case Shape.Hexagon:
112
- return transformForHexagon(size);
113
-
114
- case Shape.Octagon:
115
- return transformForOctagon(size);
116
-
117
- case Shape.Diamond:
118
- return transformForDiamond(size);
119
-
120
- default:
121
- return transformForDefault(size);
122
- }
123
- }
124
-
125
- function transformForPentagon(size) {
126
- switch (size) {
127
- case Size.ExtraSmall:
128
- return { ...transformForDefault(size),
129
- ...dimensionAttrsFor(40),
130
- y: '55%'
131
- };
132
-
133
- case Size.Small:
134
- return { ...transformForDefault(size),
135
- ...dimensionAttrsFor(80),
136
- y: '55%'
137
- };
138
-
139
- case Size.Medium:
140
- return { ...transformForDefault(size),
141
- ...dimensionAttrsFor(110),
142
- y: '55%'
143
- };
144
-
145
- case Size.Large:
146
- return { ...transformForDefault(size),
147
- ...dimensionAttrsFor(140),
148
- y: '55%'
149
- };
150
- }
151
- }
152
-
153
- function transformForTriangle(size) {
154
- switch (size) {
155
- case Size.ExtraSmall:
156
- return { ...transformForDefault(size),
157
- ...dimensionAttrsFor(24),
158
- y: '65%'
159
- };
160
-
161
- case Size.Small:
162
- return { ...transformForDefault(size),
163
- ...dimensionAttrsFor(50),
164
- y: '65%'
165
- };
166
-
167
- case Size.Medium:
168
- return { ...transformForDefault(size),
169
- ...dimensionAttrsFor(80),
170
- y: '65%'
171
- };
172
-
173
- case Size.Large:
174
- return { ...transformForDefault(size),
175
- ...dimensionAttrsFor(112),
176
- y: '65%'
177
- };
178
- }
179
- }
180
-
181
- function transformForStar(size) {
182
- switch (size) {
183
- case Size.ExtraSmall:
184
- return { ...transformForDefault(size),
185
- ...dimensionAttrsFor(8),
186
- y: '55%'
187
- };
188
-
189
- case Size.Small:
190
- return { ...transformForDefault(size),
191
- ...dimensionAttrsFor(24),
192
- y: '55%'
193
- };
194
-
195
- case Size.Medium:
196
- return { ...transformForDefault(size),
197
- ...dimensionAttrsFor(44),
198
- y: '55%'
199
- };
200
-
201
- case Size.Large:
202
- return { ...transformForDefault(size),
203
- ...dimensionAttrsFor(72),
204
- y: '55%'
205
- };
206
- }
207
- }
208
-
209
- function transformForSquare(size) {
210
- switch (size) {
211
- case Size.ExtraSmall:
212
- return { ...transformForDefault(size),
213
- ...dimensionAttrsFor(60)
214
- };
215
-
216
- case Size.Small:
217
- return { ...transformForDefault(size),
218
- ...dimensionAttrsFor(108)
219
- };
220
-
221
- case Size.Medium:
222
- return { ...transformForDefault(size),
223
- ...dimensionAttrsFor(142)
224
- };
225
-
226
- case Size.Large:
227
- return { ...transformForDefault(size),
228
- ...dimensionAttrsFor(200)
229
- };
230
- }
231
- }
232
-
233
- function transformForCircle(size) {
234
- switch (size) {
235
- case Size.ExtraSmall:
236
- return { ...transformForDefault(size),
237
- ...dimensionAttrsFor(54)
238
- };
239
-
240
- case Size.Small:
241
- return { ...transformForDefault(size),
242
- ...dimensionAttrsFor(100)
243
- };
244
-
245
- case Size.Medium:
246
- return { ...transformForDefault(size),
247
- ...dimensionAttrsFor(132)
248
- };
249
-
250
- case Size.Large:
251
- return { ...transformForDefault(size),
252
- ...dimensionAttrsFor(180)
253
- };
254
- }
255
- }
256
-
257
- function transformForHexagon(size) {
258
- switch (size) {
259
- case Size.ExtraSmall:
260
- return { ...transformForDefault(size),
261
- ...dimensionAttrsFor(28)
262
- };
263
-
264
- case Size.Small:
265
- return { ...transformForDefault(size),
266
- ...dimensionAttrsFor(68)
267
- };
268
-
269
- case Size.Medium:
270
- return { ...transformForDefault(size),
271
- ...dimensionAttrsFor(100)
272
- };
273
-
274
- case Size.Large:
275
- return { ...transformForDefault(size),
276
- ...dimensionAttrsFor(160)
277
- };
278
- }
279
- }
280
-
281
- function transformForOctagon(size) {
282
- switch (size) {
283
- case Size.ExtraSmall:
284
- return { ...transformForDefault(size),
285
- ...dimensionAttrsFor(36)
286
- };
287
-
288
- case Size.Small:
289
- return { ...transformForDefault(size),
290
- ...dimensionAttrsFor(80)
291
- };
292
-
293
- case Size.Medium:
294
- return { ...transformForDefault(size),
295
- ...dimensionAttrsFor(110)
296
- };
297
-
298
- case Size.Large:
299
- return { ...transformForDefault(size),
300
- ...dimensionAttrsFor(180)
301
- };
302
- }
303
- }
304
-
305
- function transformForDiamond(size) {
306
- switch (size) {
307
- case Size.ExtraSmall:
308
- return { ...transformForDefault(size),
309
- ...dimensionAttrsFor(30)
310
- };
311
-
312
- case Size.Small:
313
- return { ...transformForDefault(size),
314
- ...dimensionAttrsFor(60)
315
- };
316
-
317
- case Size.Medium:
318
- return { ...transformForDefault(size),
319
- ...dimensionAttrsFor(80)
320
- };
321
-
322
- case Size.Large:
323
- return { ...transformForDefault(size),
324
- ...dimensionAttrsFor(120)
325
- };
326
- }
327
- }
328
-
329
- function transformForDefault(size) {
330
- const dimensions = {
331
- [Size.ExtraSmall]: 60,
332
- [Size.Small]: 75,
333
- [Size.Medium]: 80,
334
- [Size.Large]: 110
335
- };
336
- return {
337
- x: '50%',
338
- y: '50%',
339
- ...dimensionAttrsFor(dimensions[size])
340
- };
341
- }
342
-
343
- function translationFor(width) {
344
- return width / 2 * -1;
345
- }
346
-
347
- function dimensionAttrsFor(width) {
348
- return {
349
- width,
350
- height: width,
351
- translateX: translationFor(width),
352
- translateY: translationFor(width)
353
- };
354
- }
@@ -1,122 +0,0 @@
1
- /*
2
- * Copyright (C) 2021 - 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 { BASE_SIZE, DEFAULT_SETTINGS, STROKE_WIDTH } from './constants';
19
- import { createSvgElement } from './utils';
20
- import { buildMetadata } from './metadata';
21
- import { buildShape } from './shape';
22
- import { buildImage } from './image';
23
- import { buildClipPath } from './clipPath';
24
- import { buildText, buildTextBackground, getContainerWidth, getContainerHeight } from './text';
25
- import base64EncodedFont from './font';
26
- export function buildSvg(settings) {
27
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
28
- settings = { ...DEFAULT_SETTINGS,
29
- ...settings
30
- };
31
- const mainContainer = buildSvgContainer(settings, options);
32
- const shapeWrapper = buildSvgWrapper(settings);
33
-
34
- if (!options.isPreview) {
35
- const metadata = buildMetadata(settings);
36
- mainContainer.appendChild(metadata);
37
- }
38
-
39
- const fillGroup = buildGroup(settings, {
40
- fill: true
41
- }); // The shape with the fill color
42
-
43
- const borderGroup = buildGroup(settings); // The shape with the outline and image
44
-
45
- const clipPath = buildClipPath(settings); // A clip path used to crop the image
46
-
47
- const shape = buildShape(settings); // The actual path of the shape being built
48
-
49
- const image = buildImage(settings); // The embedded image. Cropped by clipPath
50
- // Don't append an image if none has been selected
51
- // Also add image here so it sits beneath the outline,
52
- // which is added below to the borderGroup
53
-
54
- if (image) {
55
- borderGroup.appendChild(image);
56
- }
57
-
58
- clipPath.appendChild(shape); // These are required to make the group have the right shape
59
-
60
- fillGroup.appendChild(shape.cloneNode(true)); // These are required to make the group have the right shape
61
-
62
- borderGroup.appendChild(clipPath.cloneNode(true));
63
- borderGroup.appendChild(shape.cloneNode(true)); // Add fill group before the main group so the fill
64
- // sits behind the image and outline
65
-
66
- shapeWrapper.appendChild(fillGroup);
67
- shapeWrapper.appendChild(borderGroup);
68
- mainContainer.appendChild(shapeWrapper);
69
- const textBackground = buildTextBackground(settings);
70
- if (textBackground) mainContainer.appendChild(textBackground);
71
- const text = buildText(settings);
72
- if (text) mainContainer.appendChild(text);
73
- return mainContainer;
74
- }
75
- export function buildStylesheet() {
76
- const stylesheet = document.createElement('style');
77
- const css = `@font-face {font-family: "Lato Extended";font-weight: bold;src: url(${base64EncodedFont()});}`;
78
- stylesheet.setAttribute('type', 'text/css');
79
- stylesheet.appendChild(document.createTextNode(css));
80
- return stylesheet;
81
- }
82
- export function buildSvgWrapper(settings) {
83
- const base = BASE_SIZE[settings.size];
84
- return createSvgElement('svg', {
85
- fill: 'none',
86
- height: `${base}px`,
87
- viewBox: `0 0 ${base} ${base}`,
88
- width: `${base}px`,
89
- x: Math.floor((getContainerWidth(settings) - base) * 0.5)
90
- });
91
- }
92
- export function buildSvgContainer(settings, options) {
93
- const containerWidth = getContainerWidth(settings);
94
- const containerHeight = getContainerHeight(settings);
95
- const attributes = {
96
- fill: 'none',
97
- width: `${containerWidth}px`,
98
- height: `${containerHeight}px`,
99
- viewBox: `0 0 ${containerWidth} ${containerHeight}`,
100
- xmlns: 'http://www.w3.org/2000/svg'
101
- };
102
- if (options.isPreview) attributes.style = 'padding: 16px';
103
- return createSvgElement('svg', attributes);
104
- }
105
- export function buildGroup(_ref) {
106
- let {
107
- color,
108
- outlineColor,
109
- outlineSize
110
- } = _ref;
111
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
112
- const g = createSvgElement('g');
113
-
114
- if (options.fill) {
115
- g.setAttribute('fill', color || 'none');
116
- } else if (outlineColor) {
117
- g.setAttribute('stroke', outlineColor);
118
- g.setAttribute('stroke-width', STROKE_WIDTH[outlineSize]);
119
- }
120
-
121
- return g;
122
- }
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright (C) 2021 - 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 { createSvgElement } from './utils';
19
- export function buildMetadata(settings) {
20
- // Pull off any instance specific settings
21
- const {
22
- name,
23
- originalName,
24
- alt,
25
- isDecorative,
26
- externalStyle,
27
- externalWidth,
28
- externalHeight,
29
- x,
30
- y,
31
- translateX,
32
- translateY,
33
- width,
34
- height,
35
- transform,
36
- embedImage,
37
- error,
38
- ...embedSettings
39
- } = settings;
40
- const metadata = createSvgElement('metadata');
41
- metadata.textContent = JSON.stringify(embedSettings);
42
- return metadata;
43
- }
44
- export function parseMetadata(svg) {
45
- const metadata = svg.querySelector('metadata');
46
- if (!metadata) return null;
47
- return JSON.parse(metadata.textContent);
48
- }
@@ -1,179 +0,0 @@
1
- /*
2
- * Copyright (C) 2021 - 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 { useState, useEffect, useReducer } from 'react';
19
- import { svgSettings as svgSettingsReducer, defaultState } from '../reducers/svgSettings';
20
- import { ICON_MAKER_ATTRIBUTE, ICON_MAKER_DOWNLOAD_URL_ATTR } from './constants';
21
- import { modes } from '../reducers/imageSection';
22
- import iconsLabels from '../utils/iconsLabels';
23
- import { createCroppedImageSvg } from '../../shared/ImageCropper/imageCropUtils';
24
- import { convertFileToBase64 } from '../../shared/fileUtils';
25
- export const statuses = {
26
- ERROR: 'error',
27
- LOADING: 'loading',
28
- IDLE: 'idle'
29
- };
30
-
31
- const getImageNode = (editor, editing) => {
32
- var _editor$selection;
33
-
34
- // If the user is creating an icon rather then editing, no sense trying
35
- // to get an existing SVG URL
36
- if (!editing) return;
37
- const selectedNode = editor === null || editor === void 0 ? void 0 : (_editor$selection = editor.selection) === null || _editor$selection === void 0 ? void 0 : _editor$selection.getNode(); // No selection made, return
38
-
39
- if (!selectedNode) return; // The icon maker image is selected. return it
40
-
41
- if (selectedNode.getAttribute(ICON_MAKER_ATTRIBUTE)) return selectedNode; // The icon maker image element is not selected, but it's possible
42
- // an element wrapping it is. Look for a icon maker image in the
43
- // selection's children
44
-
45
- const iconMaker = selectedNode.querySelector(`img[${ICON_MAKER_ATTRIBUTE}="true"]`); // Icon maker still not found in the selection's children. Return
46
-
47
- if (!iconMaker) return; // Icon maker found in the selections children. Return it and set the
48
- // editor's selection to it as well
49
-
50
- editor.selection.select(iconMaker);
51
- return iconMaker;
52
- };
53
-
54
- const buildMetadataUrl = (fileId, canvasOrigin) => {
55
- // http://canvas.docker/api/v1/files/2169/icon_metadata
56
- const downloadURL = new URL(`${canvasOrigin}/api/v1/files/${fileId}/icon_metadata`);
57
- return downloadURL.toString();
58
- };
59
-
60
- export function useSvgSettings(editor, editing, canvasOrigin) {
61
- const [settings, dispatch] = useReducer(svgSettingsReducer, defaultState);
62
- const [status, setStatus] = useState(statuses.IDLE);
63
- const imgNode = getImageNode(editor, editing);
64
- const urlFromNode = imgNode === null || imgNode === void 0 ? void 0 : imgNode.getAttribute(ICON_MAKER_DOWNLOAD_URL_ATTR);
65
- const altText = imgNode === null || imgNode === void 0 ? void 0 : imgNode.getAttribute('alt');
66
- const customStyle = imgNode === null || imgNode === void 0 ? void 0 : imgNode.getAttribute('style');
67
- const customWidth = imgNode === null || imgNode === void 0 ? void 0 : imgNode.getAttribute('width');
68
- const customHeight = imgNode === null || imgNode === void 0 ? void 0 : imgNode.getAttribute('height');
69
- useEffect(() => {
70
- const fetchSvgSettings = async () => {
71
- if (!urlFromNode) return;
72
-
73
- try {
74
- var _urlFromNode$split$;
75
-
76
- setStatus(statuses.LOADING); // Parse out the file ID from something like
77
- // /courses/1/files/3/preview?...
78
-
79
- const fileId = (_urlFromNode$split$ = urlFromNode.split('files/')[1]) === null || _urlFromNode$split$ === void 0 ? void 0 : _urlFromNode$split$.split('/')[0];
80
- const downloadUrl = buildMetadataUrl(fileId, canvasOrigin); // Download icon metadata. If no metadata found, return defaults
81
-
82
- const response = await fetch(downloadUrl);
83
- const metadata = await response.text();
84
- if (!metadata) return;
85
- const metadataJson = JSON.parse(metadata);
86
- const fileName = metadataJson.name.replace(/\.[^\.]+$/, '');
87
- metadataJson.name = fileName;
88
- metadataJson.originalName = fileName;
89
-
90
- if (altText === '') {
91
- metadataJson.isDecorative = true;
92
- } else if (altText) {
93
- metadataJson.alt = altText;
94
- } // Include external details on metadata
95
-
96
-
97
- if (customWidth && customHeight) {
98
- metadataJson.externalWidth = customWidth;
99
- metadataJson.externalHeight = customHeight;
100
- }
101
-
102
- if (customStyle) {
103
- metadataJson.externalStyle = customStyle;
104
- }
105
-
106
- processMetadataForBackwardCompatibility(metadataJson);
107
- const {
108
- imageSettings
109
- } = metadataJson;
110
-
111
- if (imageSettings !== null && imageSettings !== void 0 && imageSettings.cropperSettings) {
112
- const generatedSvg = await createCroppedImageSvg(imageSettings.cropperSettings, imageSettings.image);
113
- metadataJson.embedImage = await convertFileToBase64(new Blob([generatedSvg.outerHTML], {
114
- type: 'image/svg+xml'
115
- }));
116
- } else {
117
- metadataJson.embedImage = (imageSettings === null || imageSettings === void 0 ? void 0 : imageSettings.image) || defaultState.embedImage;
118
- } // settings found, return parsed results
119
-
120
-
121
- dispatch(metadataJson);
122
- setStatus(statuses.IDLE);
123
- } catch (e) {
124
- setStatus(statuses.ERROR);
125
- }
126
- }; // If we are editing rather than creating, fetch existing settings
127
-
128
-
129
- if (editing) fetchSvgSettings();
130
- }, [editor, editing, urlFromNode, canvasOrigin, altText, customWidth, customHeight, customStyle]);
131
- return [settings, status, dispatch];
132
- }
133
-
134
- function processMetadataForBackwardCompatibility(metadataJson) {
135
- var _metadataJson$imageSe, _metadataJson$imageSe2, _metadataJson$imageSe3, _metadataJson$imageSe4, _metadataJson$imageSe5, _metadataJson$imageSe6, _metadataJson$imageSe7, _metadataJson$imageSe8;
136
-
137
- const icon = metadataJson === null || metadataJson === void 0 ? void 0 : (_metadataJson$imageSe = metadataJson.imageSettings) === null || _metadataJson$imageSe === void 0 ? void 0 : _metadataJson$imageSe.icon;
138
- const mode = metadataJson === null || metadataJson === void 0 ? void 0 : (_metadataJson$imageSe2 = metadataJson.imageSettings) === null || _metadataJson$imageSe2 === void 0 ? void 0 : _metadataJson$imageSe2.mode;
139
-
140
- if (mode === modes.singleColorImages.type && typeof icon === 'object') {
141
- const foundIconId = iconsLabels[icon.label];
142
-
143
- if (foundIconId) {
144
- metadataJson.imageSettings.icon = foundIconId;
145
- } else {
146
- metadataJson.imageSettings = null;
147
- }
148
- } // On old icons we stored the original image inside cropper settings
149
- // If that's the case we are copying it to the correct place
150
-
151
-
152
- const cropperSettingsImage = metadataJson === null || metadataJson === void 0 ? void 0 : (_metadataJson$imageSe3 = metadataJson.imageSettings) === null || _metadataJson$imageSe3 === void 0 ? void 0 : (_metadataJson$imageSe4 = _metadataJson$imageSe3.cropperSettings) === null || _metadataJson$imageSe4 === void 0 ? void 0 : _metadataJson$imageSe4.image;
153
- const imageSettingsImage = metadataJson === null || metadataJson === void 0 ? void 0 : (_metadataJson$imageSe5 = metadataJson.imageSettings) === null || _metadataJson$imageSe5 === void 0 ? void 0 : _metadataJson$imageSe5.image;
154
- const encodedImage = metadataJson === null || metadataJson === void 0 ? void 0 : metadataJson.encodedImage;
155
-
156
- if (imageSettingsImage && cropperSettingsImage && imageSettingsImage !== cropperSettingsImage) {
157
- metadataJson.imageSettings.image = cropperSettingsImage || imageSettingsImage || encodedImage || '';
158
- delete metadataJson.imageSettings.cropperSettings.image;
159
- } // Removes old and unused encoded image fields from metadata
160
-
161
-
162
- delete metadataJson.encodedImage;
163
- delete metadataJson.encodedImageType;
164
- delete metadataJson.encodedImageName; // Cleans image settings if there is no image or icon
165
-
166
- const imageSettingsIcon = metadataJson === null || metadataJson === void 0 ? void 0 : (_metadataJson$imageSe6 = metadataJson.imageSettings) === null || _metadataJson$imageSe6 === void 0 ? void 0 : _metadataJson$imageSe6.icon;
167
-
168
- if (!imageSettingsImage && !imageSettingsIcon) {
169
- metadataJson.imageSettings = null;
170
- } // Replaces cropper settings' shape using icon's shape
171
-
172
-
173
- const cropperSettingsShape = metadataJson === null || metadataJson === void 0 ? void 0 : (_metadataJson$imageSe7 = metadataJson.imageSettings) === null || _metadataJson$imageSe7 === void 0 ? void 0 : (_metadataJson$imageSe8 = _metadataJson$imageSe7.cropperSettings) === null || _metadataJson$imageSe8 === void 0 ? void 0 : _metadataJson$imageSe8.shape;
174
- const shape = metadataJson === null || metadataJson === void 0 ? void 0 : metadataJson.shape;
175
-
176
- if (shape && cropperSettingsShape && shape !== cropperSettingsShape) {
177
- metadataJson.imageSettings.cropperSettings.shape = shape;
178
- }
179
- }