@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.
- package/CHANGELOG.md +32 -0
- package/babel-register.js +0 -7
- package/babel.config.cjs.js +0 -7
- package/babel.config.js +0 -9
- package/es/canvasFileBrowser/FileBrowser.js +6 -1
- package/es/common/fileUrl.js +3 -4
- package/es/defaultTinymceConfig.js +1 -1
- package/{lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js → es/elementDenylist.js} +2 -6
- package/es/enhance-user-content/doc_previews.js +4 -0
- package/es/enhance-user-content/enhance_user_content.js +4 -59
- package/es/enhance-user-content/external_links.js +75 -0
- package/es/enhance-user-content/mathml.js +9 -7
- package/es/getThemeVars.js +4 -3
- package/es/getTranslations.js +77 -1
- package/es/index.js +1 -1
- package/es/rce/RCEWrapper.js +5 -2328
- package/es/rce/StatusBar.js +8 -2
- package/es/rce/contentInsertion.js +5 -2
- package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +3 -9
- package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +1 -1
- package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +3 -11
- package/es/rce/plugins/instructure_equation/mathlive/index.js +5 -13
- package/es/rce/plugins/instructure_html_view/plugin.js +2 -2
- package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +3 -2
- package/es/rce/plugins/instructure_image/ImageList/Image.js +2 -2
- package/es/rce/plugins/instructure_image/Images/index.js +3 -10
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +3 -0
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -1
- package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +26 -1
- package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +9 -3
- package/es/rce/plugins/instructure_record/MediaPanel/index.js +3 -9
- package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +27 -2
- package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +35 -6
- package/es/rce/plugins/shared/fileShape.js +81 -9
- package/es/rce/plugins/shared/fileTypeUtils.js +6 -0
- package/es/rce/tinymce.oxide.content.min.css.js +732 -0
- package/es/rce/tinymce.oxide.skin.min.css.js +7 -0
- package/es/rcs/api.js +6 -4
- package/es/sidebar/store/configureStore.js +2 -2
- package/{lib/translations/locales/tg.js → es/translations/locales/ab.js} +1 -1
- package/es/translations/locales/cs.js +27 -0
- package/es/translations/locales/cs_CZ.js +27 -0
- package/{lib/translations/locales/sv_SE.js → es/translations/locales/da_DK.js} +2 -2
- package/{lib/translations/locales/se.js → es/translations/locales/en_NZ.js} +2 -2
- package/es/translations/locales/en_SE.js +26 -0
- package/es/translations/locales/en_US.js +26 -0
- package/es/translations/locales/hu_HU.js +27 -0
- package/{lib/translations/locales/ms.js → es/translations/locales/id.js} +632 -632
- package/{lib/translations/locales/th.js → es/translations/locales/id_ID.js} +1 -2
- package/{lib/translations/locales/vi_VN.js → es/translations/locales/ko_KR.js} +2 -2
- package/es/translations/locales/lt.js +26 -0
- package/es/translations/locales/lt_LT.js +26 -0
- package/es/translations/locales/mn_MN.js +26 -0
- package/es/translations/locales/nl_NL.js +27 -0
- package/{lib/translations/locales/es_GT.js → es/translations/locales/ro.js} +3 -3
- package/es/translations/locales/ru.js +2375 -32
- package/es/translations/locales/sv.js +2379 -30
- package/es/translations/locales/th.js +2401 -1
- package/es/translations/locales/tl_PH.js +26 -0
- package/es/translations/locales/tr.js +3 -0
- package/es/translations/locales/vi.js +2396 -8
- package/es/translations/locales/zh_TW.Big5.js +27 -0
- package/{lib/translations/locales/th_TH.js → es/translations/locales/zh_TW.js} +2 -2
- package/jest.config.js +0 -7
- package/package.json +9 -11
- package/scripts/build.js +1 -7
- package/scripts/publish_to_npm.sh +26 -0
- package/canvas/README.md +0 -84
- package/canvas/locales/en.json +0 -934
- package/canvas/package.json +0 -189
- package/es/common/scroll.js +0 -45
- package/es/types/inst-ui.d.js +0 -18
- package/es/types/ts-migration.js +0 -1
- package/lib/bridge/Bridge.js +0 -287
- package/lib/bridge/index.js +0 -21
- package/lib/canvasFileBrowser/FileBrowser.js +0 -452
- package/lib/canvasFileBrowser/en-US.js +0 -234
- package/lib/common/FlashAlert.js +0 -263
- package/lib/common/browser.js +0 -40
- package/lib/common/components/FileTree/File.js +0 -64
- package/lib/common/components/FileTree/Folder.js +0 -110
- package/lib/common/components/FileTree/index.js +0 -84
- package/lib/common/components/FileTree/styles.js +0 -72
- package/lib/common/components/Loading.js +0 -83
- package/lib/common/fileUrl.js +0 -153
- package/lib/common/getCookie.js +0 -32
- package/lib/common/incremental-loading/LoadMoreButton.js +0 -40
- package/lib/common/incremental-loading/LoadingIndicator.js +0 -36
- package/lib/common/incremental-loading/LoadingStatus.js +0 -47
- package/lib/common/incremental-loading/index.js +0 -21
- package/lib/common/incremental-loading/useIncrementalLoading.js +0 -58
- package/lib/common/indicate.js +0 -75
- package/lib/common/mimeClass.js +0 -120
- package/lib/common/natcompare.js +0 -47
- package/lib/common/scroll.js +0 -45
- package/lib/defaultTinymceConfig.js +0 -160
- package/lib/enhance-user-content/doc_previews.js +0 -233
- package/lib/enhance-user-content/enhance_user_content.js +0 -396
- package/lib/enhance-user-content/index.js +0 -21
- package/lib/enhance-user-content/instructure_helper.js +0 -207
- package/lib/enhance-user-content/jqueryish_funcs.js +0 -88
- package/lib/enhance-user-content/mathml.js +0 -397
- package/lib/enhance-user-content/media_comment_thumbnail.js +0 -130
- package/lib/format-message.js +0 -30
- package/lib/getThemeVars.js +0 -45
- package/lib/getTranslations.js +0 -264
- package/lib/index.js +0 -51
- package/lib/rce/AlertMessageArea.js +0 -47
- package/lib/rce/DraggingBlocker.js +0 -43
- package/lib/rce/KeyboardShortcutModal.js +0 -88
- package/lib/rce/RCE.js +0 -150
- package/lib/rce/RCEGlobals.js +0 -62
- package/lib/rce/RCEWrapper.js +0 -4278
- package/lib/rce/RCEWrapperProps.js +0 -130
- package/lib/rce/RceHtmlEditor.js +0 -142
- package/lib/rce/ResizeHandle.js +0 -102
- package/lib/rce/RestoreAutoSaveModal.js +0 -82
- package/lib/rce/ShowOnFocusButton/index.js +0 -93
- package/lib/rce/StatusBar.js +0 -380
- package/lib/rce/__mocks__/_mockCryptoEs.js +0 -124
- package/lib/rce/__mocks__/styleMock.js +0 -18
- package/lib/rce/__mocks__/tinymceReact.js +0 -55
- package/lib/rce/alertHandler.js +0 -46
- package/lib/rce/contentInsertion.js +0 -322
- package/lib/rce/contentInsertionUtils.js +0 -85
- package/lib/rce/contentRendering.js +0 -145
- package/lib/rce/customEvents.js +0 -18
- package/lib/rce/editorLanguage.js +0 -101
- package/lib/rce/indicatorRegion.js +0 -49
- package/lib/rce/normalizeLocale.js +0 -50
- package/lib/rce/normalizeProps.js +0 -29
- package/lib/rce/plugins/instructure-ui-icons/plugin.js +0 -122
- package/lib/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +0 -24
- package/lib/rce/plugins/instructure_condensed_buttons/plugin.js +0 -27
- package/lib/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +0 -63
- package/lib/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +0 -48
- package/lib/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +0 -41
- package/lib/rce/plugins/instructure_condensed_buttons/ui/list-button.js +0 -145
- package/lib/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +0 -56
- package/lib/rce/plugins/instructure_documents/clickCallback.js +0 -23
- package/lib/rce/plugins/instructure_documents/components/DocumentsPanel.js +0 -126
- package/lib/rce/plugins/instructure_documents/components/Link.js +0 -219
- package/lib/rce/plugins/instructure_documents/plugin.js +0 -123
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +0 -25
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +0 -51
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +0 -321
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +0 -116
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +0 -91
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/styles.js +0 -46
- package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +0 -728
- package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +0 -84
- package/lib/rce/plugins/instructure_equation/MathIcon/index.js +0 -41
- package/lib/rce/plugins/instructure_equation/MathIcon/svgs.js +0 -236
- package/lib/rce/plugins/instructure_equation/clickCallback.js +0 -53
- package/lib/rce/plugins/instructure_equation/mathlive/index.js +0 -36
- package/lib/rce/plugins/instructure_equation/plugin.js +0 -69
- package/lib/rce/plugins/instructure_fullscreen/plugin.js +0 -50
- package/lib/rce/plugins/instructure_html_view/clickCallback.js +0 -21
- package/lib/rce/plugins/instructure_html_view/plugin.js +0 -37
- package/lib/rce/plugins/instructure_icon_maker/clickCallback.js +0 -57
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +0 -82
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +0 -56
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +0 -78
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +0 -36
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +0 -110
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +0 -169
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +0 -186
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +0 -243
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +0 -64
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +0 -73
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +0 -298
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +0 -86
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +0 -55
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +0 -70
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +0 -317
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +0 -149
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +0 -18
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +0 -32
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +0 -25
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +0 -60
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +0 -87
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +0 -139
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +0 -18
- package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +0 -323
- package/lib/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +0 -90
- package/lib/rce/plugins/instructure_icon_maker/plugin.js +0 -110
- package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +0 -194
- package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +0 -98
- package/lib/rce/plugins/instructure_icon_maker/registerEditToolbar.js +0 -56
- package/lib/rce/plugins/instructure_icon_maker/svg/clipPath.js +0 -25
- package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +0 -100
- package/lib/rce/plugins/instructure_icon_maker/svg/font.js +0 -25
- package/lib/rce/plugins/instructure_icon_maker/svg/image.js +0 -354
- package/lib/rce/plugins/instructure_icon_maker/svg/index.js +0 -122
- package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +0 -48
- package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +0 -179
- package/lib/rce/plugins/instructure_icon_maker/svg/shape.js +0 -316
- package/lib/rce/plugins/instructure_icon_maker/svg/text.js +0 -468
- package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +0 -70
- package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +0 -45
- package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +0 -83
- package/lib/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +0 -28
- package/lib/rce/plugins/instructure_icon_maker/utils/iconValidation.js +0 -35
- package/lib/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +0 -375
- package/lib/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +0 -59
- package/lib/rce/plugins/instructure_image/ImageEmbedOptions.js +0 -202
- package/lib/rce/plugins/instructure_image/ImageList/Image.js +0 -106
- package/lib/rce/plugins/instructure_image/ImageList/index.js +0 -69
- package/lib/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +0 -166
- package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +0 -246
- package/lib/rce/plugins/instructure_image/Images/index.js +0 -129
- package/lib/rce/plugins/instructure_image/clickCallback.js +0 -24
- package/lib/rce/plugins/instructure_image/plugin.js +0 -157
- package/lib/rce/plugins/instructure_links/clickCallback.js +0 -22
- package/lib/rce/plugins/instructure_links/components/AccordionSection.js +0 -60
- package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +0 -84
- package/lib/rce/plugins/instructure_links/components/Link.js +0 -213
- package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +0 -127
- package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +0 -141
- package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +0 -125
- package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +0 -245
- package/lib/rce/plugins/instructure_links/components/LinkSet.js +0 -195
- package/lib/rce/plugins/instructure_links/components/LinksPanel.js +0 -100
- package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +0 -141
- package/lib/rce/plugins/instructure_links/components/NoResults.js +0 -87
- package/lib/rce/plugins/instructure_links/components/propTypes.js +0 -41
- package/lib/rce/plugins/instructure_links/plugin.js +0 -294
- package/lib/rce/plugins/instructure_links/validateURL.js +0 -70
- package/lib/rce/plugins/instructure_media_embed/clickCallback.js +0 -48
- package/lib/rce/plugins/instructure_media_embed/components/Embed.js +0 -68
- package/lib/rce/plugins/instructure_media_embed/plugin.js +0 -36
- package/lib/rce/plugins/instructure_paste/pasteMenuCommand.js +0 -117
- package/lib/rce/plugins/instructure_paste/plugin.js +0 -174
- package/lib/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +0 -169
- package/lib/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +0 -225
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +0 -294
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +0 -46
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +0 -79
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +0 -153
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +0 -94
- package/lib/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +0 -90
- package/lib/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +0 -35
- package/lib/rce/plugins/instructure_rce_external_tools/dialog-helper.js +0 -29
- package/lib/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -55
- package/lib/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +0 -172
- package/lib/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +0 -203
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +0 -111
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +0 -79
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +0 -47
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +0 -57
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +0 -26
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +0 -45
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +0 -67
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +0 -48
- package/lib/rce/plugins/instructure_rce_external_tools/plugin.js +0 -112
- package/lib/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +0 -27
- package/lib/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +0 -127
- package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +0 -148
- package/lib/rce/plugins/instructure_record/MediaPanel/index.js +0 -129
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +0 -215
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +0 -321
- package/lib/rce/plugins/instructure_record/clickCallback.js +0 -105
- package/lib/rce/plugins/instructure_record/mediaTranslations.js +0 -94
- package/lib/rce/plugins/instructure_record/plugin.js +0 -173
- package/lib/rce/plugins/instructure_studio_media_options/plugin.js +0 -42
- package/lib/rce/plugins/instructure_wordcount/clickCallback.js +0 -49
- package/lib/rce/plugins/instructure_wordcount/components/WordCountModal.js +0 -88
- package/lib/rce/plugins/instructure_wordcount/plugin.js +0 -30
- package/lib/rce/plugins/instructure_wordcount/utils/countContent.js +0 -78
- package/lib/rce/plugins/instructure_wordcount/utils/tableContent.js +0 -40
- package/lib/rce/plugins/shared/CanvasContentTray.js +0 -580
- package/lib/rce/plugins/shared/CheckerboardStyling.js +0 -25
- package/lib/rce/plugins/shared/ColorInput.js +0 -233
- package/lib/rce/plugins/shared/ConditionalTooltip.js +0 -32
- package/lib/rce/plugins/shared/ContentSelection.js +0 -269
- package/lib/rce/plugins/shared/DimensionUtils.js +0 -66
- package/lib/rce/plugins/shared/DimensionsInput/DimensionInput.js +0 -62
- package/lib/rce/plugins/shared/DimensionsInput/index.js +0 -161
- package/lib/rce/plugins/shared/DimensionsInput/useDimensionsState.js +0 -220
- package/lib/rce/plugins/shared/ErrorBoundary.js +0 -54
- package/lib/rce/plugins/shared/EventUtils.js +0 -39
- package/lib/rce/plugins/shared/Filter.js +0 -353
- package/lib/rce/plugins/shared/FixedContentTray.js +0 -115
- package/lib/rce/plugins/shared/ImageCropper/DirectionRegion.js +0 -67
- package/lib/rce/plugins/shared/ImageCropper/Modal.js +0 -153
- package/lib/rce/plugins/shared/ImageCropper/Preview.js +0 -148
- package/lib/rce/plugins/shared/ImageCropper/constants.js +0 -39
- package/lib/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +0 -83
- package/lib/rce/plugins/shared/ImageCropper/controls/ResetControls.js +0 -38
- package/lib/rce/plugins/shared/ImageCropper/controls/RotationControls.js +0 -89
- package/lib/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +0 -82
- package/lib/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +0 -111
- package/lib/rce/plugins/shared/ImageCropper/controls/index.js +0 -61
- package/lib/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +0 -94
- package/lib/rce/plugins/shared/ImageCropper/controls/utils.js +0 -41
- package/lib/rce/plugins/shared/ImageCropper/imageCropUtils.js +0 -149
- package/lib/rce/plugins/shared/ImageCropper/index.js +0 -18
- package/lib/rce/plugins/shared/ImageCropper/propTypes.js +0 -26
- package/lib/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +0 -72
- package/lib/rce/plugins/shared/ImageCropper/shape.js +0 -27
- package/lib/rce/plugins/shared/ImageCropper/svg/index.js +0 -89
- package/lib/rce/plugins/shared/ImageCropper/svg/shape.js +0 -125
- package/lib/rce/plugins/shared/ImageCropper/svg/utils.js +0 -26
- package/lib/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +0 -233
- package/lib/rce/plugins/shared/ImageCropper/useMouseWheel.js +0 -66
- package/lib/rce/plugins/shared/ImageOptionsForm.js +0 -140
- package/lib/rce/plugins/shared/LinkDisplay.js +0 -96
- package/lib/rce/plugins/shared/PreviewIcon.js +0 -112
- package/lib/rce/plugins/shared/Previewable.js +0 -22
- package/lib/rce/plugins/shared/RceFileBrowser.js +0 -106
- package/lib/rce/plugins/shared/StoreContext.js +0 -57
- package/lib/rce/plugins/shared/StudioLtiSupportUtils.js +0 -71
- package/lib/rce/plugins/shared/UnknownFileTypePanel.js +0 -29
- package/lib/rce/plugins/shared/Upload/CategoryProcessor.js +0 -27
- package/lib/rce/plugins/shared/Upload/ComputerPanel.js +0 -334
- package/lib/rce/plugins/shared/Upload/SvgCategoryProcessor.js +0 -35
- package/lib/rce/plugins/shared/Upload/UploadFile.js +0 -171
- package/lib/rce/plugins/shared/Upload/UploadFileModal.js +0 -273
- package/lib/rce/plugins/shared/Upload/UrlPanel.js +0 -38
- package/lib/rce/plugins/shared/Upload/UsageRightsSelectBox.js +0 -172
- package/lib/rce/plugins/shared/Upload/doFileUpload.js +0 -77
- package/lib/rce/plugins/shared/__mocks__/screenfull.js +0 -24
- package/lib/rce/plugins/shared/buildDownloadUrl.js +0 -31
- package/lib/rce/plugins/shared/compressionUtils.js +0 -98
- package/lib/rce/plugins/shared/dateUtils.js +0 -28
- package/lib/rce/plugins/shared/fileShape.js +0 -57
- package/lib/rce/plugins/shared/fileTypeUtils.js +0 -133
- package/lib/rce/plugins/shared/fileUtils.js +0 -25
- package/lib/rce/plugins/shared/linkUtils.js +0 -89
- package/lib/rce/plugins/shared/round.js +0 -25
- package/lib/rce/plugins/shared/trayUtils.js +0 -34
- package/lib/rce/plugins/shared/useDataUrl.js +0 -76
- package/lib/rce/plugins/tinymce-a11y-checker/components/ColorField.js +0 -86
- package/lib/rce/plugins/tinymce-a11y-checker/components/checker.js +0 -558
- package/lib/rce/plugins/tinymce-a11y-checker/components/color-picker.js +0 -59
- package/lib/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +0 -90
- package/lib/rce/plugins/tinymce-a11y-checker/components/pointer.js +0 -32
- package/lib/rce/plugins/tinymce-a11y-checker/node-checker.js +0 -54
- package/lib/rce/plugins/tinymce-a11y-checker/plugin.js +0 -90
- package/lib/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
- package/lib/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +0 -129
- package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +0 -200
- package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +0 -67
- package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +0 -63
- package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +0 -49
- package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +0 -61
- package/lib/rce/plugins/tinymce-a11y-checker/rules/index.js +0 -31
- package/lib/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +0 -51
- package/lib/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +0 -144
- package/lib/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +0 -61
- package/lib/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +0 -75
- package/lib/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +0 -54
- package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +0 -52
- package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header.js +0 -81
- package/lib/rce/plugins/tinymce-a11y-checker/utils/colors.js +0 -43
- package/lib/rce/plugins/tinymce-a11y-checker/utils/describe.js +0 -66
- package/lib/rce/plugins/tinymce-a11y-checker/utils/dom.js +0 -160
- package/lib/rce/plugins/tinymce-a11y-checker/utils/indicate.js +0 -83
- package/lib/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +0 -57
- package/lib/rce/plugins/tinymce-a11y-checker/utils/strings.js +0 -40
- package/lib/rce/root.js +0 -58
- package/lib/rce/sanitizePlugins.js +0 -32
- package/lib/rce/style.js +0 -843
- package/lib/rce/tinyRCE.js +0 -66
- package/lib/rce/transformContent.js +0 -73
- package/lib/rce/userOS.js +0 -31
- package/lib/rce/wrapInitCb.js +0 -78
- package/lib/rcs/api.js +0 -670
- package/lib/rcs/buildError.js +0 -98
- package/lib/rcs/fake.js +0 -621
- package/lib/sidebar/actions/all_files.js +0 -29
- package/lib/sidebar/actions/data.js +0 -105
- package/lib/sidebar/actions/documents.js +0 -107
- package/lib/sidebar/actions/files.js +0 -167
- package/lib/sidebar/actions/filter.js +0 -63
- package/lib/sidebar/actions/flickr.js +0 -60
- package/lib/sidebar/actions/images.js +0 -153
- package/lib/sidebar/actions/links.js +0 -23
- package/lib/sidebar/actions/media.js +0 -142
- package/lib/sidebar/actions/session.js +0 -34
- package/lib/sidebar/actions/ui.js +0 -49
- package/lib/sidebar/actions/upload.js +0 -550
- package/lib/sidebar/containers/Sidebar.js +0 -67
- package/lib/sidebar/containers/sidebarHandlers.js +0 -73
- package/lib/sidebar/dragHtml.js +0 -49
- package/lib/sidebar/reducers/all_files.js +0 -35
- package/lib/sidebar/reducers/collection.js +0 -72
- package/lib/sidebar/reducers/collections.js +0 -52
- package/lib/sidebar/reducers/documents.js +0 -89
- package/lib/sidebar/reducers/files.js +0 -38
- package/lib/sidebar/reducers/filter.js +0 -61
- package/lib/sidebar/reducers/flickr.js +0 -51
- package/lib/sidebar/reducers/folder.js +0 -92
- package/lib/sidebar/reducers/folders.js +0 -39
- package/lib/sidebar/reducers/images.js +0 -115
- package/lib/sidebar/reducers/index.js +0 -57
- package/lib/sidebar/reducers/media.js +0 -84
- package/lib/sidebar/reducers/newPageLinkExpanded.js +0 -30
- package/lib/sidebar/reducers/noop.js +0 -21
- package/lib/sidebar/reducers/rootFolderId.js +0 -30
- package/lib/sidebar/reducers/session.js +0 -33
- package/lib/sidebar/reducers/ui.js +0 -87
- package/lib/sidebar/reducers/upload.js +0 -206
- package/lib/sidebar/store/configureStore.js +0 -26
- package/lib/sidebar/store/initialState.js +0 -173
- package/lib/translations/locales/ar.js +0 -2427
- package/lib/translations/locales/ca.js +0 -2427
- package/lib/translations/locales/cy.js +0 -2427
- package/lib/translations/locales/da-x-k12.js +0 -2427
- package/lib/translations/locales/da.js +0 -2427
- package/lib/translations/locales/de.js +0 -2427
- package/lib/translations/locales/el.js +0 -459
- package/lib/translations/locales/en-AU-x-unimelb.js +0 -2427
- package/lib/translations/locales/en-GB-x-ukhe.js +0 -2427
- package/lib/translations/locales/en.js +0 -2427
- package/lib/translations/locales/en_AU.js +0 -2427
- package/lib/translations/locales/en_CA.js +0 -2426
- package/lib/translations/locales/en_CY.js +0 -2426
- package/lib/translations/locales/en_GB.js +0 -2427
- package/lib/translations/locales/es.js +0 -2427
- package/lib/translations/locales/es_ES.js +0 -2427
- package/lib/translations/locales/fa_IR.js +0 -615
- package/lib/translations/locales/fi.js +0 -2427
- package/lib/translations/locales/fr.js +0 -2427
- package/lib/translations/locales/fr_CA.js +0 -2427
- package/lib/translations/locales/he.js +0 -486
- package/lib/translations/locales/ht.js +0 -2426
- package/lib/translations/locales/hu.js +0 -2007
- package/lib/translations/locales/hy.js +0 -444
- package/lib/translations/locales/is.js +0 -2426
- package/lib/translations/locales/it.js +0 -2427
- package/lib/translations/locales/ja.js +0 -2427
- package/lib/translations/locales/ko.js +0 -342
- package/lib/translations/locales/mi.js +0 -2426
- package/lib/translations/locales/nb-x-k12.js +0 -2427
- package/lib/translations/locales/nb.js +0 -2427
- package/lib/translations/locales/nl.js +0 -2427
- package/lib/translations/locales/nn.js +0 -2247
- package/lib/translations/locales/pl.js +0 -2427
- package/lib/translations/locales/pt.js +0 -2427
- package/lib/translations/locales/pt_BR.js +0 -2427
- package/lib/translations/locales/ru.js +0 -84
- package/lib/translations/locales/sl.js +0 -2427
- package/lib/translations/locales/sv-x-k12.js +0 -2427
- package/lib/translations/locales/sv.js +0 -78
- package/lib/translations/locales/tr.js +0 -684
- package/lib/translations/locales/uk_UA.js +0 -519
- package/lib/translations/locales/vi.js +0 -39
- package/lib/translations/locales/zh-Hans.js +0 -2427
- package/lib/translations/locales/zh-Hant.js +0 -2427
- package/lib/translations/locales/zh.js +0 -2427
- package/lib/translations/locales/zh_HK.js +0 -2427
- package/lib/translations/tinymce/ar_SA.js +0 -211
- package/lib/translations/tinymce/bg_BG.js +0 -419
- package/lib/translations/tinymce/ca.js +0 -419
- package/lib/translations/tinymce/cs.js +0 -419
- package/lib/translations/tinymce/cy.js +0 -418
- package/lib/translations/tinymce/da.js +0 -419
- package/lib/translations/tinymce/de.js +0 -419
- package/lib/translations/tinymce/el.js +0 -261
- package/lib/translations/tinymce/en_GB.js +0 -230
- package/lib/translations/tinymce/es.js +0 -419
- package/lib/translations/tinymce/fa_IR.js +0 -390
- package/lib/translations/tinymce/fi.js +0 -19
- package/lib/translations/tinymce/fr_FR.js +0 -419
- package/lib/translations/tinymce/he_IL.js +0 -420
- package/lib/translations/tinymce/hu_HU.js +0 -419
- package/lib/translations/tinymce/hy.js +0 -419
- package/lib/translations/tinymce/it.js +0 -419
- package/lib/translations/tinymce/ja.js +0 -419
- package/lib/translations/tinymce/ko_KR.js +0 -419
- package/lib/translations/tinymce/nb_NO.js +0 -419
- package/lib/translations/tinymce/nl.js +0 -419
- package/lib/translations/tinymce/pl.js +0 -419
- package/lib/translations/tinymce/pt_BR.js +0 -419
- package/lib/translations/tinymce/pt_PT.js +0 -419
- package/lib/translations/tinymce/ro.js +0 -418
- package/lib/translations/tinymce/ru.js +0 -436
- package/lib/translations/tinymce/ru_RU.js +0 -71
- package/lib/translations/tinymce/sl.js +0 -462
- package/lib/translations/tinymce/sr.js +0 -278
- package/lib/translations/tinymce/sv_SE.js +0 -419
- package/lib/translations/tinymce/th.js +0 -479
- package/lib/translations/tinymce/tr_TR.js +0 -389
- package/lib/translations/tinymce/uk_UA.js +0 -278
- package/lib/translations/tinymce/vi_VN.js +0 -277
- package/lib/translations/tinymce/zh_CN.js +0 -419
- package/lib/translations/tinymce/zh_TW.js +0 -419
- package/lib/types/inst-ui.d.js +0 -18
- package/lib/types/ts-migration.js +0 -1
- package/lib/util/DeepPartialNullable.js +0 -1
- package/lib/util/ExtractRequired.js +0 -1
- package/lib/util/TypedDict.js +0 -131
- package/lib/util/assertNever.js +0 -44
- package/lib/util/elem-util.js +0 -26
- package/lib/util/encrypted-storage.js +0 -84
- package/lib/util/file-url-util.js +0 -44
- package/lib/util/fullscreenHelpers.js +0 -27
- package/lib/util/instui-icon-helper.js +0 -31
- package/lib/util/loadingPlaceholder.js +0 -436
- package/lib/util/simpleCache.js +0 -41
- package/lib/util/string-util.js +0 -48
- package/lib/util/textarea-editing-util.js +0 -87
- package/lib/util/tinymce-plugin-util.js +0 -52
- package/lib/util/url-util.js +0 -138
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import React, { useMemo } from 'react';
|
|
19
|
-
import { func, object, string } from 'prop-types';
|
|
20
|
-
import classnames from 'classnames';
|
|
21
|
-
import { View } from '@instructure/ui-view';
|
|
22
|
-
import { downloadToWrap } from '../../../common/fileUrl';
|
|
23
|
-
import { mediaPlayerURLFromFile } from './fileTypeUtils';
|
|
24
|
-
import RceApiSource from '../../../rcs/api';
|
|
25
|
-
import addIconMakerAttributes from '../instructure_icon_maker/utils/addIconMakerAttributes'; // TODO: should find a better way to share this code
|
|
26
|
-
|
|
27
|
-
import FileBrowser from '../../../canvasFileBrowser/FileBrowser';
|
|
28
|
-
import { isPreviewable } from './Previewable';
|
|
29
|
-
RceFileBrowser.propTypes = {
|
|
30
|
-
onFileSelect: func.isRequired,
|
|
31
|
-
onAllFilesLoading: func.isRequired,
|
|
32
|
-
searchString: string.isRequired,
|
|
33
|
-
canvasOrigin: string,
|
|
34
|
-
jwt: string.isRequired,
|
|
35
|
-
refreshToken: func,
|
|
36
|
-
host: string.isRequired,
|
|
37
|
-
source: object,
|
|
38
|
-
context: object.isRequired
|
|
39
|
-
};
|
|
40
|
-
export default function RceFileBrowser(props) {
|
|
41
|
-
const {
|
|
42
|
-
onFileSelect,
|
|
43
|
-
searchString,
|
|
44
|
-
onAllFilesLoading,
|
|
45
|
-
jwt,
|
|
46
|
-
refreshToken,
|
|
47
|
-
host,
|
|
48
|
-
source,
|
|
49
|
-
canvasOrigin
|
|
50
|
-
} = props;
|
|
51
|
-
const apiSource = useMemo(() => {
|
|
52
|
-
return source || new RceApiSource({
|
|
53
|
-
jwt,
|
|
54
|
-
refreshToken,
|
|
55
|
-
host,
|
|
56
|
-
canvasOrigin
|
|
57
|
-
});
|
|
58
|
-
}, [host, jwt, refreshToken, source, canvasOrigin]);
|
|
59
|
-
|
|
60
|
-
function handleFileSelect(fileInfo) {
|
|
61
|
-
var _fileInfo$api$embed, _fileInfo$api;
|
|
62
|
-
|
|
63
|
-
const content_type = fileInfo.api.type;
|
|
64
|
-
const canPreview = isPreviewable(content_type);
|
|
65
|
-
const url = downloadToWrap(fileInfo.src);
|
|
66
|
-
const embedded_iframe_url = mediaPlayerURLFromFile(fileInfo.api);
|
|
67
|
-
let onFileSelectParams = {
|
|
68
|
-
name: fileInfo.name,
|
|
69
|
-
title: fileInfo.name,
|
|
70
|
-
href: url,
|
|
71
|
-
embedded_iframe_url,
|
|
72
|
-
media_id: ((_fileInfo$api$embed = fileInfo.api.embed) === null || _fileInfo$api$embed === void 0 ? void 0 : _fileInfo$api$embed.id) || fileInfo.api.mediaEntryId,
|
|
73
|
-
target: '_blank',
|
|
74
|
-
content_type
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
if (((_fileInfo$api = fileInfo.api) === null || _fileInfo$api === void 0 ? void 0 : _fileInfo$api.category) === 'icon_maker_icons') {
|
|
78
|
-
onFileSelectParams.src = fileInfo.api.url;
|
|
79
|
-
addIconMakerAttributes(onFileSelectParams);
|
|
80
|
-
} else {
|
|
81
|
-
// do not add this to icon maker icons
|
|
82
|
-
const clazz = classnames('instructure_file_link', {
|
|
83
|
-
instructure_scribd_file: canPreview,
|
|
84
|
-
inline_disabled: true
|
|
85
|
-
});
|
|
86
|
-
onFileSelectParams = { ...onFileSelectParams,
|
|
87
|
-
class: clazz
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
onFileSelect(onFileSelectParams);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
95
|
-
as: "div",
|
|
96
|
-
margin: "medium",
|
|
97
|
-
"data-testid": "instructure_links-FilesPanel"
|
|
98
|
-
}, /*#__PURE__*/React.createElement(FileBrowser, {
|
|
99
|
-
selectFile: handleFileSelect,
|
|
100
|
-
contentTypes: ['**'],
|
|
101
|
-
searchString: searchString,
|
|
102
|
-
onLoading: onAllFilesLoading,
|
|
103
|
-
source: apiSource,
|
|
104
|
-
context: props.context
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import React, { createContext, useContext, useState } from 'react';
|
|
19
|
-
import { connect, Provider as ReduxProvider } from 'react-redux';
|
|
20
|
-
import bridge from '../../../bridge';
|
|
21
|
-
import sidebarHandlers from '../../../sidebar/containers/sidebarHandlers';
|
|
22
|
-
import { propsFromState } from '../../../sidebar/containers/Sidebar';
|
|
23
|
-
import configureStore from '../../../sidebar/store/configureStore';
|
|
24
|
-
|
|
25
|
-
function Consumer(_ref) {
|
|
26
|
-
let {
|
|
27
|
-
children,
|
|
28
|
-
...props
|
|
29
|
-
} = _ref;
|
|
30
|
-
return children({
|
|
31
|
-
onLinkClick: bridge.insertLink,
|
|
32
|
-
onImageEmbed: bridge.embedImage,
|
|
33
|
-
onMediaEmbed: bridge.embedMedia,
|
|
34
|
-
onFileSelect: bridge.insertFileLink,
|
|
35
|
-
...props
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const StoreConsumer = connect(propsFromState, sidebarHandlers)(Consumer);
|
|
40
|
-
const StoreContext = /*#__PURE__*/createContext();
|
|
41
|
-
export function StoreProvider(_ref2) {
|
|
42
|
-
let {
|
|
43
|
-
children,
|
|
44
|
-
...storeProps
|
|
45
|
-
} = _ref2;
|
|
46
|
-
const [store] = useState(() => configureStore(storeProps));
|
|
47
|
-
return /*#__PURE__*/React.createElement(ReduxProvider, {
|
|
48
|
-
store: store
|
|
49
|
-
}, /*#__PURE__*/React.createElement(StoreConsumer, null, props => /*#__PURE__*/React.createElement(StoreContext.Provider, {
|
|
50
|
-
value: props
|
|
51
|
-
}, children(props))));
|
|
52
|
-
}
|
|
53
|
-
export function useStoreProps() {
|
|
54
|
-
const storeProps = useContext(StoreContext);
|
|
55
|
-
if (!storeProps) throw new Error('useStoreProps should be used within a StoreProvider');
|
|
56
|
-
return storeProps;
|
|
57
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2023 - 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 PropTypes, { bool, shape } from 'prop-types';
|
|
19
|
-
export const parsedStudioOptionsPropType = shape({
|
|
20
|
-
resizable: bool.isRequired,
|
|
21
|
-
convertibleToLink: bool.isRequired
|
|
22
|
-
});
|
|
23
|
-
export function isStudioContentItemCustomJson(input) {
|
|
24
|
-
return typeof input === 'object' && input.source === 'studio';
|
|
25
|
-
}
|
|
26
|
-
export function studioAttributesFrom(customJson) {
|
|
27
|
-
var _customJson$resizable, _customJson$enableMed;
|
|
28
|
-
|
|
29
|
-
return {
|
|
30
|
-
'data-studio-resizable': (_customJson$resizable = customJson.resizable) !== null && _customJson$resizable !== void 0 ? _customJson$resizable : false,
|
|
31
|
-
'data-studio-tray-enabled': (_customJson$enableMed = customJson.enableMediaOptions) !== null && _customJson$enableMed !== void 0 ? _customJson$enableMed : false,
|
|
32
|
-
'data-studio-convertible-to-link': true
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
export function displayStyleFrom(studioAttributes) {
|
|
36
|
-
if (!studioAttributes) return '';
|
|
37
|
-
return studioAttributes['data-studio-resizable'] || studioAttributes['data-studio-tray-enabled'] ? 'inline-block' : '';
|
|
38
|
-
}
|
|
39
|
-
export function isStudioEmbeddedMedia(element) {
|
|
40
|
-
var _tinymceIframeShim$fi;
|
|
41
|
-
|
|
42
|
-
// Borrowing this structure from isMediaElement in ContentSelection.js
|
|
43
|
-
const tinymceIframeShim = (element === null || element === void 0 ? void 0 : element.tagName) === 'IFRAME' ? element === null || element === void 0 ? void 0 : element.parentElement : element;
|
|
44
|
-
|
|
45
|
-
if ((tinymceIframeShim === null || tinymceIframeShim === void 0 ? void 0 : (_tinymceIframeShim$fi = tinymceIframeShim.firstElementChild) === null || _tinymceIframeShim$fi === void 0 ? void 0 : _tinymceIframeShim$fi.tagName) !== 'IFRAME') {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return tinymceIframeShim.getAttribute('data-mce-p-data-studio-tray-enabled') === 'true';
|
|
50
|
-
}
|
|
51
|
-
export function parseStudioOptions(element) {
|
|
52
|
-
const tinymceIframeShim = (element === null || element === void 0 ? void 0 : element.tagName) === 'IFRAME' ? element === null || element === void 0 ? void 0 : element.parentElement : element;
|
|
53
|
-
return {
|
|
54
|
-
resizable: (tinymceIframeShim === null || tinymceIframeShim === void 0 ? void 0 : tinymceIframeShim.getAttribute('data-mce-p-data-studio-resizable')) === 'true',
|
|
55
|
-
convertibleToLink: (tinymceIframeShim === null || tinymceIframeShim === void 0 ? void 0 : tinymceIframeShim.getAttribute('data-mce-p-data-studio-convertible-to-link')) === 'true'
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Tinymce adds an overlay when you click on an iframe inside the editor. It will by default
|
|
60
|
-
* add resize handles to the corners of the overlay. The code that adds these handles won't
|
|
61
|
-
* if the overlay has `data-mce-resize='false'` on it. Here, we force that behavior when the
|
|
62
|
-
* underlying iframe has a `data-studio-resizable='false'`
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
export function handleBeforeObjectSelected(e) {
|
|
66
|
-
const targetElement = e.target;
|
|
67
|
-
|
|
68
|
-
if (targetElement.getAttribute('data-mce-p-data-studio-resizable') === 'false') {
|
|
69
|
-
targetElement.setAttribute('data-mce-resize', 'false');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import React from 'react';
|
|
19
|
-
import { View } from '@instructure/ui-view';
|
|
20
|
-
import { Text } from '@instructure/ui-text';
|
|
21
|
-
import formatMessage from '../../../format-message';
|
|
22
|
-
export default function UnknownFileTypePanel() {
|
|
23
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
24
|
-
as: "div",
|
|
25
|
-
margin: "medium"
|
|
26
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
27
|
-
color: "danger"
|
|
28
|
-
}, formatMessage("Something went wrong and I don't know what to show you.")));
|
|
29
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2022 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import * as SvgProcessor from './SvgCategoryProcessor';
|
|
19
|
-
export async function process(file) {
|
|
20
|
-
var _file$type;
|
|
21
|
-
|
|
22
|
-
// Determine which processor to use based on file type.
|
|
23
|
-
// If no matching processor is found for the given file type, return undefined
|
|
24
|
-
if (file !== null && file !== void 0 && (_file$type = file.type) !== null && _file$type !== void 0 && _file$type.includes(SvgProcessor.typeTest)) {
|
|
25
|
-
return await SvgProcessor.process(file);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 - 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
|
-
// NOTE: if you're looking in here for the ComputerPanel that's used for
|
|
19
|
-
// the RCE's Media > Upload/Record Media function, it's not this one
|
|
20
|
-
// (though this panel can handle video with the right "accept" prop).
|
|
21
|
-
// See @instructure/canvas-media/src/ComputerPanel.js
|
|
22
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
23
|
-
import { arrayOf, func, number, object, oneOfType, shape, string } from 'prop-types';
|
|
24
|
-
import { StyleSheet, css } from 'aphrodite';
|
|
25
|
-
import { FileDrop } from '@instructure/ui-file-drop';
|
|
26
|
-
import { Billboard } from '@instructure/ui-billboard';
|
|
27
|
-
import { Alert } from '@instructure/ui-alerts';
|
|
28
|
-
import { IconButton } from '@instructure/ui-buttons';
|
|
29
|
-
import { px } from '@instructure/ui-utils';
|
|
30
|
-
import { PresentationContent } from '@instructure/ui-a11y-content';
|
|
31
|
-
import { IconTrashLine } from '@instructure/ui-icons';
|
|
32
|
-
import { Img } from '@instructure/ui-img';
|
|
33
|
-
import { Text } from '@instructure/ui-text';
|
|
34
|
-
import { TruncateText } from '@instructure/ui-truncate-text';
|
|
35
|
-
import { Flex } from '@instructure/ui-flex';
|
|
36
|
-
import { View } from '@instructure/ui-view';
|
|
37
|
-
import { MediaPlayer } from '@instructure/ui-media-player';
|
|
38
|
-
import { RocketSVG, useComputerPanelFocus, isAudio, isPreviewable, sizeMediaPlayer } from '@instructure/canvas-media';
|
|
39
|
-
import formatMessage from '../../../../format-message';
|
|
40
|
-
import { getIconFromType, isAudioOrVideo, isImage, isText, isIWork, getIWorkType } from '../fileTypeUtils';
|
|
41
|
-
|
|
42
|
-
function isPreviewableAudioOrVideo(type) {
|
|
43
|
-
return isPreviewable(type) && isAudioOrVideo(type);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function readFile(theFile) {
|
|
47
|
-
const p = new Promise((resolve, reject) => {
|
|
48
|
-
const reader = new FileReader();
|
|
49
|
-
|
|
50
|
-
reader.onload = () => {
|
|
51
|
-
let result = reader.result;
|
|
52
|
-
|
|
53
|
-
if (isText(theFile.type) && result.length > 1000) {
|
|
54
|
-
result = `${result.substr(0, 1000)}...`;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
resolve(result);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
reader.onerror = () => {
|
|
61
|
-
reject(new Error(formatMessage('An error occured reading the file')));
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
if (theFile.size === 0) {
|
|
65
|
-
// canvas will reject uploading an empty file
|
|
66
|
-
reject(new Error(formatMessage('You may not upload an empty file.')));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (isImage(theFile.type)) {
|
|
70
|
-
reader.readAsDataURL(theFile);
|
|
71
|
-
} else if (isText(theFile.type)) {
|
|
72
|
-
reader.readAsText(theFile);
|
|
73
|
-
} else if (isPreviewableAudioOrVideo(theFile.type)) {
|
|
74
|
-
const sources = [{
|
|
75
|
-
label: theFile.name,
|
|
76
|
-
src: URL.createObjectURL(theFile),
|
|
77
|
-
type: theFile.type
|
|
78
|
-
}];
|
|
79
|
-
resolve(sources);
|
|
80
|
-
} else {
|
|
81
|
-
let type = theFile.type; // Native JS File API returns empty string if it can't determine the type
|
|
82
|
-
|
|
83
|
-
if (type === '' && isIWork(theFile.name)) {
|
|
84
|
-
type = getIWorkType(theFile.name);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const icon = getIconFromType(type);
|
|
88
|
-
resolve(icon);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return p;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export default function ComputerPanel(_ref) {
|
|
95
|
-
let {
|
|
96
|
-
theFile,
|
|
97
|
-
setFile,
|
|
98
|
-
setError,
|
|
99
|
-
accept,
|
|
100
|
-
label,
|
|
101
|
-
bounds
|
|
102
|
-
} = _ref;
|
|
103
|
-
const [messages, setMessages] = useState([]);
|
|
104
|
-
const [preview, setPreview] = useState({
|
|
105
|
-
preview: null,
|
|
106
|
-
isLoading: false
|
|
107
|
-
}); // the trashcan is 38px tall and the 1.5rem margin-bottom
|
|
108
|
-
// the 350 is to guarantee the video doesn't oveflow into the copyright UI,
|
|
109
|
-
// which should probably be rendered here and not up in the modal because
|
|
110
|
-
// dealing with Tabs and size is nearly impossible
|
|
111
|
-
|
|
112
|
-
const height = Math.min(350, 0.8 * (bounds.height - 38 - px('1.5rem')));
|
|
113
|
-
const width = 0.8 * bounds.width;
|
|
114
|
-
useEffect(() => {
|
|
115
|
-
return () => {
|
|
116
|
-
if (Array.isArray(preview === null || preview === void 0 ? void 0 : preview.preview)) {
|
|
117
|
-
var _URL, _URL$revokeObjectURL;
|
|
118
|
-
|
|
119
|
-
(_URL = URL) === null || _URL === void 0 ? void 0 : (_URL$revokeObjectURL = _URL.revokeObjectURL) === null || _URL$revokeObjectURL === void 0 ? void 0 : _URL$revokeObjectURL.call(_URL, preview.preview[0].src);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
}, [preview]);
|
|
123
|
-
useEffect(() => {
|
|
124
|
-
if (!theFile || preview.isLoading || preview.preview || preview.error) return;
|
|
125
|
-
|
|
126
|
-
async function getPreview() {
|
|
127
|
-
setPreview({
|
|
128
|
-
preview: null,
|
|
129
|
-
isLoading: true
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
try {
|
|
133
|
-
const previewer = await readFile(theFile);
|
|
134
|
-
setPreview({
|
|
135
|
-
preview: previewer,
|
|
136
|
-
isLoading: false
|
|
137
|
-
});
|
|
138
|
-
setError(null);
|
|
139
|
-
|
|
140
|
-
if (isImage(theFile.type)) {
|
|
141
|
-
// we need the preview to know the image size to show the placeholder
|
|
142
|
-
theFile.preview = previewer;
|
|
143
|
-
setFile(theFile);
|
|
144
|
-
}
|
|
145
|
-
} catch (ex) {
|
|
146
|
-
setError(ex);
|
|
147
|
-
setPreview({
|
|
148
|
-
preview: null,
|
|
149
|
-
error: ex.message,
|
|
150
|
-
isLoading: false
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
getPreview();
|
|
156
|
-
});
|
|
157
|
-
const handleLoadedMetadata = useCallback(event => {
|
|
158
|
-
const player = event.target;
|
|
159
|
-
const sz = sizeMediaPlayer(player, theFile.type, {
|
|
160
|
-
width,
|
|
161
|
-
height
|
|
162
|
-
});
|
|
163
|
-
player.style.width = sz.width;
|
|
164
|
-
player.style.height = sz.height;
|
|
165
|
-
player.style.margin = '0 auto'; // from this sub-package, I don't have a URL to use as the
|
|
166
|
-
// audio player's poster image. We can give it a background image though
|
|
167
|
-
|
|
168
|
-
player.classList.add(isAudio(theFile.type) ? 'audio-player' : 'video-player');
|
|
169
|
-
}, [theFile, width, height]);
|
|
170
|
-
const previewPanelRef = useRef(null);
|
|
171
|
-
const clearButtonRef = useRef(null);
|
|
172
|
-
const panelRef = useRef(null);
|
|
173
|
-
useComputerPanelFocus(theFile, panelRef, clearButtonRef);
|
|
174
|
-
|
|
175
|
-
function renderPreview() {
|
|
176
|
-
if (preview.isLoading) {
|
|
177
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
178
|
-
"aria-live": "polite"
|
|
179
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
180
|
-
color: "secondary"
|
|
181
|
-
}, formatMessage('Generating preview...')));
|
|
182
|
-
} else if (preview.error) {
|
|
183
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
184
|
-
className: css(styles.previewContainer),
|
|
185
|
-
"aria-live": "polite"
|
|
186
|
-
}, /*#__PURE__*/React.createElement(Alert, {
|
|
187
|
-
variant: "error"
|
|
188
|
-
}, preview.error));
|
|
189
|
-
} else if (preview.preview) {
|
|
190
|
-
if (isImage(theFile.type)) {
|
|
191
|
-
return /*#__PURE__*/React.createElement(Img, {
|
|
192
|
-
"aria-label": formatMessage('{filename} image preview', {
|
|
193
|
-
filename: theFile.name
|
|
194
|
-
}),
|
|
195
|
-
src: preview.preview,
|
|
196
|
-
constrain: "contain",
|
|
197
|
-
display: "block"
|
|
198
|
-
});
|
|
199
|
-
} else if (isText(theFile.type)) {
|
|
200
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
201
|
-
as: "pre",
|
|
202
|
-
display: "block",
|
|
203
|
-
padding: "x-small",
|
|
204
|
-
textAlign: "start",
|
|
205
|
-
"aria-label": formatMessage('{filename} text preview', {
|
|
206
|
-
filename: theFile.name
|
|
207
|
-
})
|
|
208
|
-
}, /*#__PURE__*/React.createElement(TruncateText, {
|
|
209
|
-
maxLines: 21
|
|
210
|
-
}, preview.preview));
|
|
211
|
-
} else if (isPreviewableAudioOrVideo(theFile.type)) {
|
|
212
|
-
return /*#__PURE__*/React.createElement(MediaPlayer, {
|
|
213
|
-
sources: preview.preview,
|
|
214
|
-
onLoadedMetadata: handleLoadedMetadata
|
|
215
|
-
});
|
|
216
|
-
} else {
|
|
217
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
218
|
-
"aria-label": formatMessage('{filename} file icon', {
|
|
219
|
-
filename: theFile.name
|
|
220
|
-
}),
|
|
221
|
-
className: css(styles.previewContainer),
|
|
222
|
-
style: {
|
|
223
|
-
textAlign: 'center'
|
|
224
|
-
}
|
|
225
|
-
}, /*#__PURE__*/React.createElement(preview.preview, {
|
|
226
|
-
size: "medium"
|
|
227
|
-
}), /*#__PURE__*/React.createElement(Text, {
|
|
228
|
-
as: "p",
|
|
229
|
-
weight: "normal"
|
|
230
|
-
}, formatMessage('No preview is available for this file.')));
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (theFile) {
|
|
236
|
-
const filename = theFile.name;
|
|
237
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
238
|
-
style: {
|
|
239
|
-
position: 'relative'
|
|
240
|
-
},
|
|
241
|
-
ref: previewPanelRef
|
|
242
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
243
|
-
direction: "row-reverse",
|
|
244
|
-
margin: "none none medium"
|
|
245
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(IconButton, {
|
|
246
|
-
elementRef: el => {
|
|
247
|
-
clearButtonRef.current = el;
|
|
248
|
-
},
|
|
249
|
-
onClick: () => {
|
|
250
|
-
setFile(null);
|
|
251
|
-
setPreview({
|
|
252
|
-
preview: null,
|
|
253
|
-
isLoading: false,
|
|
254
|
-
error: null
|
|
255
|
-
});
|
|
256
|
-
},
|
|
257
|
-
renderIcon: IconTrashLine,
|
|
258
|
-
screenReaderLabel: formatMessage('Clear selected file: {filename}', {
|
|
259
|
-
filename
|
|
260
|
-
})
|
|
261
|
-
})), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
262
|
-
shouldGrow: true,
|
|
263
|
-
shouldShrink: true
|
|
264
|
-
}, /*#__PURE__*/React.createElement(PresentationContent, null, /*#__PURE__*/React.createElement(Text, null, filename)))), /*#__PURE__*/React.createElement(View, {
|
|
265
|
-
as: "div",
|
|
266
|
-
width: `${width}px`,
|
|
267
|
-
height: `${height}px`,
|
|
268
|
-
textAlign: "center",
|
|
269
|
-
margin: "0 auto"
|
|
270
|
-
}, renderPreview()));
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
274
|
-
ref: panelRef
|
|
275
|
-
}, /*#__PURE__*/React.createElement(FileDrop, {
|
|
276
|
-
accept: accept,
|
|
277
|
-
onDropAccepted: _ref2 => {
|
|
278
|
-
let [file] = _ref2;
|
|
279
|
-
|
|
280
|
-
if (messages.length) {
|
|
281
|
-
setMessages([]);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
setFile(file);
|
|
285
|
-
},
|
|
286
|
-
onDropRejected: () => {
|
|
287
|
-
setMessages(messages.concat({
|
|
288
|
-
text: formatMessage('Invalid file type'),
|
|
289
|
-
type: 'error'
|
|
290
|
-
}));
|
|
291
|
-
},
|
|
292
|
-
messages: messages,
|
|
293
|
-
renderLabel: /*#__PURE__*/React.createElement(Billboard, {
|
|
294
|
-
heading: label,
|
|
295
|
-
hero: /*#__PURE__*/React.createElement(RocketSVG, {
|
|
296
|
-
width: "3em",
|
|
297
|
-
height: "3em"
|
|
298
|
-
}),
|
|
299
|
-
message: formatMessage('Drag and drop, or click to browse your computer')
|
|
300
|
-
})
|
|
301
|
-
}));
|
|
302
|
-
}
|
|
303
|
-
ComputerPanel.propTypes = {
|
|
304
|
-
// instanceof File or the File object from DataTransfer which seems to be different
|
|
305
|
-
theFile: object,
|
|
306
|
-
setFile: func.isRequired,
|
|
307
|
-
setError: func.isRequired,
|
|
308
|
-
accept: oneOfType([string, arrayOf(string)]),
|
|
309
|
-
label: string.isRequired,
|
|
310
|
-
bounds: shape({
|
|
311
|
-
width: number,
|
|
312
|
-
height: number
|
|
313
|
-
})
|
|
314
|
-
};
|
|
315
|
-
ComputerPanel.defaultProps = {
|
|
316
|
-
bounds: {}
|
|
317
|
-
};
|
|
318
|
-
export const styles = StyleSheet.create({
|
|
319
|
-
previewContainer: {
|
|
320
|
-
maxHeight: '250px',
|
|
321
|
-
overflow: 'hidden',
|
|
322
|
-
boxSizing: 'border-box',
|
|
323
|
-
margin: '5rem .375rem 0',
|
|
324
|
-
position: 'relative'
|
|
325
|
-
},
|
|
326
|
-
previewArea: {
|
|
327
|
-
width: '100%',
|
|
328
|
-
height: '100%',
|
|
329
|
-
maxHeight: '250px',
|
|
330
|
-
boxSizing: 'border-box',
|
|
331
|
-
objectFit: 'contain',
|
|
332
|
-
overflow: 'hidden'
|
|
333
|
-
}
|
|
334
|
-
});
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2022 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import { ICON_MAKER_ICONS, TYPE, SVG_TYPE } from '../../instructure_icon_maker/svg/constants';
|
|
19
|
-
export const typeTest = SVG_TYPE;
|
|
20
|
-
const sliceSize = 400; // bytes
|
|
21
|
-
|
|
22
|
-
const iconMakerType = TYPE;
|
|
23
|
-
export async function process(file) {
|
|
24
|
-
try {
|
|
25
|
-
// The first slice of 400 bytes is sufficient to grab
|
|
26
|
-
// the "type" metadata for icon maker SVGs
|
|
27
|
-
const slice = await file.slice(0, sliceSize).text();
|
|
28
|
-
|
|
29
|
-
if (slice.includes(iconMakerType)) {
|
|
30
|
-
return {
|
|
31
|
-
category: ICON_MAKER_ICONS
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
} catch {}
|
|
35
|
-
}
|