@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.
- package/CHANGELOG.md +8 -0
- package/babel-register.js +0 -7
- package/babel.config.cjs.js +0 -7
- package/babel.config.js +0 -9
- 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/index.js +1 -1
- package/es/rce/RCEWrapper.js +3 -2322
- 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/tinymce.oxide.content.min.css.js +732 -0
- package/es/rce/tinymce.oxide.skin.min.css.js +7 -0
- package/jest.config.js +0 -7
- package/package.json +1 -5
- package/scripts/build.js +1 -7
- package/lib/bridge/Bridge.js +0 -287
- package/lib/bridge/index.js +0 -21
- package/lib/canvasFileBrowser/FileBrowser.js +0 -457
- 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 -152
- 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/defaultTinymceConfig.js +0 -160
- package/lib/elementDenylist.js +0 -19
- 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 -46
- package/lib/getTranslations.js +0 -340
- 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 -4274
- 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 -386
- 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 -325
- 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 -120
- 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 -91
- 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 -122
- 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 -297
- 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/Lti13ContentItemJson.js +0 -23
- 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 -47
- 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 -152
- package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +0 -154
- package/lib/rce/plugins/instructure_record/MediaPanel/index.js +0 -123
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +0 -240
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +0 -350
- 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 -129
- package/lib/rce/plugins/shared/fileTypeUtils.js +0 -139
- 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 -672
- 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/ab.js +0 -26
- package/lib/translations/locales/ar.js +0 -2427
- package/lib/translations/locales/ca.js +0 -2427
- package/lib/translations/locales/cs.js +0 -27
- package/lib/translations/locales/cs_CZ.js +0 -27
- 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/da_DK.js +0 -27
- 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/en_NZ.js +0 -26
- package/lib/translations/locales/en_SE.js +0 -26
- package/lib/translations/locales/en_US.js +0 -26
- package/lib/translations/locales/es.js +0 -2427
- package/lib/translations/locales/es_ES.js +0 -2427
- package/lib/translations/locales/es_GT.js +0 -27
- 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/hu_HU.js +0 -27
- package/lib/translations/locales/hy.js +0 -444
- package/lib/translations/locales/id.js +0 -2426
- package/lib/translations/locales/id_ID.js +0 -26
- 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/ko_KR.js +0 -27
- package/lib/translations/locales/lt.js +0 -26
- package/lib/translations/locales/lt_LT.js +0 -26
- package/lib/translations/locales/mi.js +0 -2426
- package/lib/translations/locales/mn_MN.js +0 -26
- package/lib/translations/locales/ms.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/nl_NL.js +0 -27
- 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/ro.js +0 -27
- package/lib/translations/locales/ru.js +0 -2427
- package/lib/translations/locales/se.js +0 -26
- 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 -2427
- package/lib/translations/locales/sv_SE.js +0 -27
- package/lib/translations/locales/tg.js +0 -26
- package/lib/translations/locales/th.js +0 -2427
- package/lib/translations/locales/th_TH.js +0 -27
- package/lib/translations/locales/tl_PH.js +0 -26
- package/lib/translations/locales/tr.js +0 -687
- package/lib/translations/locales/uk_UA.js +0 -519
- package/lib/translations/locales/vi.js +0 -2427
- package/lib/translations/locales/vi_VN.js +0 -27
- 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/locales/zh_TW.Big5.js +0 -27
- package/lib/translations/locales/zh_TW.js +0 -27
- 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/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,48 +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 HtmlFragmentContentItem from './models/HtmlFragmentContentItem';
|
|
19
|
-
import ImageContentItem from './models/ImageContentItem';
|
|
20
|
-
import LinkContentItem from './models/LinkContentItem';
|
|
21
|
-
import ResourceLinkContentItem from './models/ResourceLinkContentItem';
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Creates an RceLti13ContentItem from the given JSON, or null if the type isn't supported.
|
|
25
|
-
*
|
|
26
|
-
* Note: this function would ideally be a static member of RceLti13ContentItem, but that creates a circular dependency
|
|
27
|
-
* with the implementations of the base class, so it needs to be in a separate module.
|
|
28
|
-
*
|
|
29
|
-
* @param itemJson
|
|
30
|
-
* @param context
|
|
31
|
-
*/
|
|
32
|
-
export function rceLti13ContentItemFromJson(itemJson, context) {
|
|
33
|
-
if (!itemJson.type) return null;
|
|
34
|
-
const clazz = typeRegistry[itemJson.type]; // eslint-disable-next-line new-cap
|
|
35
|
-
|
|
36
|
-
return clazz ? new clazz(itemJson, context) : null;
|
|
37
|
-
}
|
|
38
|
-
/*
|
|
39
|
-
* Type safe registry of implementation of RceLti13ContentItem. Adding additional types to the Lti13ContentItemJson
|
|
40
|
-
* union will cause a compiler error if the implementations aren't added here as well.
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
const typeRegistry = {
|
|
44
|
-
html: HtmlFragmentContentItem,
|
|
45
|
-
image: ImageContentItem,
|
|
46
|
-
link: LinkContentItem,
|
|
47
|
-
ltiResourceLink: ResourceLinkContentItem
|
|
48
|
-
};
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2018 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import tinymce from 'tinymce';
|
|
19
|
-
import React from 'react';
|
|
20
|
-
import ReactDOM from 'react-dom';
|
|
21
|
-
import { RceToolWrapper, buildToolMenuItems } from './RceToolWrapper';
|
|
22
|
-
import formatMessage from '../../../format-message';
|
|
23
|
-
import { ExternalToolSelectionDialog } from './components/ExternalToolSelectionDialog/ExternalToolSelectionDialog';
|
|
24
|
-
import { ensureToolDialogContainerElem } from './dialog-helper';
|
|
25
|
-
import { externalToolsEnvFor } from './ExternalToolsEnv'; // Register plugin
|
|
26
|
-
|
|
27
|
-
tinymce.PluginManager.add('instructure_rce_external_tools', initExternalToolsLocalPlugin);
|
|
28
|
-
/**
|
|
29
|
-
* This plugin adds the "Apps" toolbar button and the "Apps" menu item. It is a rewrite of 'instructure_external_tools'
|
|
30
|
-
* to live fully in the canvas-rce package. It supports running in an iframe as part of an LTI tool, such as
|
|
31
|
-
* new quizzes.
|
|
32
|
-
*
|
|
33
|
-
* @param editor
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
export function initExternalToolsLocalPlugin(editor) {
|
|
37
|
-
if (RceToolWrapper.forEditorEnv(externalToolsEnvFor(editor)).length === 0) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
registerFavoriteAppsToolbarButtons(editor);
|
|
42
|
-
registerAppsToolbarButton(editor);
|
|
43
|
-
registerAppsMenu(editor);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Add the "Apps" toolbar button with "View all" and MRU buttons
|
|
47
|
-
*/
|
|
48
|
-
|
|
49
|
-
function registerAppsMenu(editor) {
|
|
50
|
-
editor.ui.registry.addNestedMenuItem('lti_tools_menuitem', {
|
|
51
|
-
text: formatMessage('Apps'),
|
|
52
|
-
icon: 'lti',
|
|
53
|
-
getSubmenuItems: () => {
|
|
54
|
-
const availableTools = RceToolWrapper.forEditorEnv(externalToolsEnvFor(editor));
|
|
55
|
-
const toolMenuItems = buildToolMenuItems(availableTools, makeViewAllItem(editor));
|
|
56
|
-
return toolMenuItems;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Registers toolbar buttons for favorite apps
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
function registerFavoriteAppsToolbarButtons(editor) {
|
|
66
|
-
RceToolWrapper.forEditorEnv(externalToolsEnvFor(editor)).filter(it => it.favorite).forEach(toolInfo => editor.ui.registry.addButton(`instructure_external_button_${toolInfo.id}`, toolInfo.asToolbarButton()));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function registerAppsToolbarButton(editor) {
|
|
70
|
-
const tooltip = formatMessage('Apps');
|
|
71
|
-
editor.ui.registry.addMenuButton('lti_mru_button', {
|
|
72
|
-
tooltip,
|
|
73
|
-
icon: 'lti',
|
|
74
|
-
fetch: callback => {
|
|
75
|
-
const availableTools = RceToolWrapper.forEditorEnv(externalToolsEnvFor(editor));
|
|
76
|
-
const toolMenuItems = buildToolMenuItems(availableTools, makeViewAllItem(editor));
|
|
77
|
-
callback(toolMenuItems);
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
onSetup(_api) {
|
|
81
|
-
return () => undefined;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function openToolSelectionDialog(editor) {
|
|
88
|
-
const availableTools = RceToolWrapper.forEditorEnv(externalToolsEnvFor(editor));
|
|
89
|
-
const container = ensureToolDialogContainerElem();
|
|
90
|
-
|
|
91
|
-
const handleDismiss = () => {
|
|
92
|
-
ReactDOM.unmountComponentAtNode(container);
|
|
93
|
-
editor.focus();
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
ReactDOM.render( /*#__PURE__*/React.createElement(ExternalToolSelectionDialog, {
|
|
97
|
-
onDismiss: handleDismiss,
|
|
98
|
-
ltiButtons: availableTools
|
|
99
|
-
}), ensureToolDialogContainerElem());
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function makeViewAllItem(editor) {
|
|
103
|
-
return {
|
|
104
|
-
type: 'menuitem',
|
|
105
|
-
text: formatMessage('View All'),
|
|
106
|
-
|
|
107
|
-
onAction() {
|
|
108
|
-
openToolSelectionDialog(editor);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
};
|
|
112
|
-
}
|
|
@@ -1,27 +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 { addQueryParamsToUrl } from '../../../../util/url-util';
|
|
19
|
-
export function addParentFrameContextToUrl(inputUrlStr, containingCanvasLtiToolId) {
|
|
20
|
-
if (containingCanvasLtiToolId == null || containingCanvasLtiToolId.length === 0) {
|
|
21
|
-
return inputUrlStr !== null && inputUrlStr !== void 0 ? inputUrlStr : null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return addQueryParamsToUrl(inputUrlStr, {
|
|
25
|
-
parent_frame_context: containingCanvasLtiToolId
|
|
26
|
-
});
|
|
27
|
-
}
|
|
@@ -1,152 +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 React from 'react';
|
|
19
|
-
import ReactDOM from 'react-dom';
|
|
20
|
-
import bridge from '../../../../bridge';
|
|
21
|
-
import { asAudioElement, findMediaPlayerIframe } from '../../shared/ContentSelection';
|
|
22
|
-
import AudioOptionsTray from '.';
|
|
23
|
-
export const CONTAINER_ID = 'instructure-audio-options-tray-container';
|
|
24
|
-
export default class TrayController {
|
|
25
|
-
constructor() {
|
|
26
|
-
this._isOpen = false;
|
|
27
|
-
this._shouldOpen = false;
|
|
28
|
-
this._editor = null;
|
|
29
|
-
this._audioContainer = null;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
get container() {
|
|
33
|
-
let _container = document.getElementById(CONTAINER_ID);
|
|
34
|
-
|
|
35
|
-
if (_container == null) {
|
|
36
|
-
_container = document.createElement('div');
|
|
37
|
-
_container.id = CONTAINER_ID;
|
|
38
|
-
document.body.appendChild(_container);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return _container;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
get isOpen() {
|
|
45
|
-
return this._isOpen;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
showTrayForEditor(editor) {
|
|
49
|
-
this._shouldOpen = true;
|
|
50
|
-
this._editor = editor;
|
|
51
|
-
this._audioContainer = findMediaPlayerIframe(editor.selection.getNode());
|
|
52
|
-
|
|
53
|
-
if (bridge.focusedEditor) {
|
|
54
|
-
// Dismiss any content trays that may already be open
|
|
55
|
-
bridge.hideTrays();
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const trayProps = bridge.trayProps.get(editor);
|
|
59
|
-
|
|
60
|
-
this._renderTray(trayProps);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
hideTrayForEditor(editor) {
|
|
64
|
-
if (this._editor === editor) {
|
|
65
|
-
this._dismissTray();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
_dismissTray() {
|
|
70
|
-
if (this._audioContainer) {
|
|
71
|
-
this._editor.selection.select(this._audioContainer);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
this._resetController();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
_resetController() {
|
|
78
|
-
this._shouldOpen = false;
|
|
79
|
-
const trayProps = bridge.trayProps.get(this._editor);
|
|
80
|
-
|
|
81
|
-
this._renderTray(trayProps);
|
|
82
|
-
|
|
83
|
-
this._editor = null;
|
|
84
|
-
this._audioContainer = null;
|
|
85
|
-
const elem = document.getElementById(CONTAINER_ID);
|
|
86
|
-
return elem.parentNode.removeChild(elem);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
_applyAudioOptions(audioOptions) {
|
|
90
|
-
if (!audioOptions.media_object_id || audioOptions.media_object_id === 'undefined') {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
const container = this._audioContainer;
|
|
95
|
-
return audioOptions.updateMediaObject({
|
|
96
|
-
media_object_id: audioOptions.media_object_id,
|
|
97
|
-
subtitles: audioOptions.subtitles
|
|
98
|
-
}).then(() => container === null || container === void 0 ? void 0 : container.contentWindow.location.reload()).catch(ex => {
|
|
99
|
-
// eslint-disable-next-line no-console
|
|
100
|
-
console.error('Failed updating audio captions', ex);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
requestSubtitlesFromIframe(cb) {
|
|
105
|
-
var _this$_audioContainer, _this$_audioContainer2;
|
|
106
|
-
|
|
107
|
-
if (!bridge.canvasOrigin) return;
|
|
108
|
-
this._subtitleListener = new AbortController();
|
|
109
|
-
window.addEventListener('message', event => {
|
|
110
|
-
var _event$data;
|
|
111
|
-
|
|
112
|
-
if ((event === null || event === void 0 ? void 0 : (_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.subject) === "media_tracks_response") {
|
|
113
|
-
var _event$data2;
|
|
114
|
-
|
|
115
|
-
cb(event === null || event === void 0 ? void 0 : (_event$data2 = event.data) === null || _event$data2 === void 0 ? void 0 : _event$data2.payload);
|
|
116
|
-
}
|
|
117
|
-
}, {
|
|
118
|
-
signal: this._subtitleListener.signal
|
|
119
|
-
});
|
|
120
|
-
(_this$_audioContainer = this._audioContainer) === null || _this$_audioContainer === void 0 ? void 0 : (_this$_audioContainer2 = _this$_audioContainer.contentWindow) === null || _this$_audioContainer2 === void 0 ? void 0 : _this$_audioContainer2.postMessage({
|
|
121
|
-
subject: 'media_tracks_request'
|
|
122
|
-
}, bridge.canvasOrigin);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
_renderTray(trayProps) {
|
|
126
|
-
const audioOptions = asAudioElement(this._audioContainer) || {};
|
|
127
|
-
const element = /*#__PURE__*/React.createElement(AudioOptionsTray, {
|
|
128
|
-
audioOptions: audioOptions,
|
|
129
|
-
onEntered: () => {
|
|
130
|
-
this._isOpen = true;
|
|
131
|
-
},
|
|
132
|
-
onExited: () => {
|
|
133
|
-
var _this$_subtitleListen;
|
|
134
|
-
|
|
135
|
-
bridge.focusActiveEditor(false);
|
|
136
|
-
this._isOpen = false;
|
|
137
|
-
(_this$_subtitleListen = this._subtitleListener) === null || _this$_subtitleListen === void 0 ? void 0 : _this$_subtitleListen.abort();
|
|
138
|
-
},
|
|
139
|
-
onSave: options => {
|
|
140
|
-
this._applyAudioOptions(options);
|
|
141
|
-
|
|
142
|
-
this._dismissTray();
|
|
143
|
-
},
|
|
144
|
-
onDismiss: () => this._dismissTray(),
|
|
145
|
-
open: this._shouldOpen,
|
|
146
|
-
trayProps: trayProps,
|
|
147
|
-
requestSubtitlesFromIframe: cb => this.requestSubtitlesFromIframe(cb)
|
|
148
|
-
});
|
|
149
|
-
ReactDOM.render(element, this.container);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
}
|
|
@@ -1,154 +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 React, { useState, useEffect } from 'react';
|
|
19
|
-
import { arrayOf, bool, func, shape, string } from 'prop-types';
|
|
20
|
-
import { Flex } from '@instructure/ui-flex';
|
|
21
|
-
import { Tray } from '@instructure/ui-tray';
|
|
22
|
-
import { FormFieldGroup } from '@instructure/ui-form-field';
|
|
23
|
-
import { ClosedCaptionPanel } from '@instructure/canvas-media';
|
|
24
|
-
import { Button, CloseButton } from '@instructure/ui-buttons';
|
|
25
|
-
import { StoreProvider } from '../../shared/StoreContext';
|
|
26
|
-
import Bridge from '../../../../bridge';
|
|
27
|
-
import formatMessage from '../../../../format-message';
|
|
28
|
-
import { getTrayHeight } from '../../shared/trayUtils';
|
|
29
|
-
import { instuiPopupMountNode } from '../../../../util/fullscreenHelpers';
|
|
30
|
-
import { Heading } from '@instructure/ui-heading';
|
|
31
|
-
|
|
32
|
-
const getLiveRegion = () => document.getElementById('flash_screenreader_holder');
|
|
33
|
-
|
|
34
|
-
export default function AudioOptionsTray(_ref) {
|
|
35
|
-
let {
|
|
36
|
-
open,
|
|
37
|
-
onEntered,
|
|
38
|
-
onExited,
|
|
39
|
-
onDismiss,
|
|
40
|
-
onSave,
|
|
41
|
-
trayProps,
|
|
42
|
-
audioOptions,
|
|
43
|
-
requestSubtitlesFromIframe
|
|
44
|
-
} = _ref;
|
|
45
|
-
const [subtitles, setSubtitles] = useState(audioOptions.tracks || []);
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (subtitles.length === 0) requestSubtitlesFromIframe(setSubtitles);
|
|
48
|
-
}, []);
|
|
49
|
-
|
|
50
|
-
const handleSave = (e, contentProps) => {
|
|
51
|
-
onSave({
|
|
52
|
-
media_object_id: audioOptions.id,
|
|
53
|
-
subtitles,
|
|
54
|
-
updateMediaObject: contentProps.updateMediaObject
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
return /*#__PURE__*/React.createElement(StoreProvider, trayProps, contentProps => /*#__PURE__*/React.createElement(Tray, {
|
|
59
|
-
key: "audio-options-tray",
|
|
60
|
-
"data-mce-component": true,
|
|
61
|
-
label: formatMessage('Audio Options Tray'),
|
|
62
|
-
mountNode: instuiPopupMountNode,
|
|
63
|
-
onDismiss: onDismiss,
|
|
64
|
-
onEntered: onEntered,
|
|
65
|
-
onExited: onExited,
|
|
66
|
-
open: open,
|
|
67
|
-
placement: "end",
|
|
68
|
-
shouldCloseOnDocumentClick: true,
|
|
69
|
-
shouldContainFocus: true,
|
|
70
|
-
shouldReturnFocus: true
|
|
71
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
72
|
-
direction: "column",
|
|
73
|
-
height: getTrayHeight()
|
|
74
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
75
|
-
as: "header",
|
|
76
|
-
padding: "medium"
|
|
77
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
78
|
-
direction: "row"
|
|
79
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
80
|
-
shouldGrow: true,
|
|
81
|
-
shouldShrink: true
|
|
82
|
-
}, /*#__PURE__*/React.createElement(Heading, {
|
|
83
|
-
as: "h2"
|
|
84
|
-
}, formatMessage('Audio Options'))), /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(CloseButton, {
|
|
85
|
-
placement: "static",
|
|
86
|
-
color: "primary",
|
|
87
|
-
onClick: onDismiss,
|
|
88
|
-
screenReaderLabel: formatMessage('Close')
|
|
89
|
-
})))), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
90
|
-
as: "form",
|
|
91
|
-
shouldGrow: true,
|
|
92
|
-
margin: "none",
|
|
93
|
-
shouldShrink: true
|
|
94
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
95
|
-
justifyItems: "space-between",
|
|
96
|
-
direction: "column",
|
|
97
|
-
height: "100%"
|
|
98
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
99
|
-
shouldGrow: true,
|
|
100
|
-
padding: "small",
|
|
101
|
-
shouldShrink: true
|
|
102
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
103
|
-
direction: "column"
|
|
104
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
105
|
-
padding: "small"
|
|
106
|
-
}, /*#__PURE__*/React.createElement(FormFieldGroup, {
|
|
107
|
-
description: formatMessage('Closed Captions/Subtitles')
|
|
108
|
-
}, /*#__PURE__*/React.createElement(ClosedCaptionPanel, {
|
|
109
|
-
subtitles: subtitles.map(st => ({
|
|
110
|
-
locale: st.locale,
|
|
111
|
-
file: {
|
|
112
|
-
name: st.language || st.locale
|
|
113
|
-
}
|
|
114
|
-
})),
|
|
115
|
-
uploadMediaTranslations: Bridge.uploadMediaTranslations,
|
|
116
|
-
languages: Bridge.languages,
|
|
117
|
-
updateSubtitles: newSubtitles => setSubtitles(newSubtitles),
|
|
118
|
-
liveRegion: getLiveRegion
|
|
119
|
-
}))))), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
120
|
-
background: "secondary",
|
|
121
|
-
borderWidth: "small none none none",
|
|
122
|
-
padding: "small medium",
|
|
123
|
-
textAlign: "end"
|
|
124
|
-
}, /*#__PURE__*/React.createElement(Button, {
|
|
125
|
-
onClick: e => handleSave(e, contentProps),
|
|
126
|
-
color: "primary"
|
|
127
|
-
}, formatMessage('Done'))))))));
|
|
128
|
-
}
|
|
129
|
-
AudioOptionsTray.propTypes = {
|
|
130
|
-
onEntered: func,
|
|
131
|
-
onExited: func,
|
|
132
|
-
onDismiss: func,
|
|
133
|
-
onSave: func,
|
|
134
|
-
open: bool.isRequired,
|
|
135
|
-
requestSubtitlesFromIframe: func,
|
|
136
|
-
trayProps: shape({
|
|
137
|
-
host: string.isRequired,
|
|
138
|
-
jwt: string.isRequired
|
|
139
|
-
}).isRequired,
|
|
140
|
-
audioOptions: shape({
|
|
141
|
-
id: string.isRequired,
|
|
142
|
-
titleText: string.isRequired,
|
|
143
|
-
tracks: arrayOf(shape({
|
|
144
|
-
locale: string.isRequired
|
|
145
|
-
}))
|
|
146
|
-
}).isRequired
|
|
147
|
-
};
|
|
148
|
-
AudioOptionsTray.defaultProps = {
|
|
149
|
-
onEntered: null,
|
|
150
|
-
onExited: null,
|
|
151
|
-
onDismiss: null,
|
|
152
|
-
onSave: null,
|
|
153
|
-
requestSubtitlesFromIframe: () => {}
|
|
154
|
-
};
|
|
@@ -1,123 +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, { useRef } from 'react';
|
|
19
|
-
import { func, oneOf, shape, string } from 'prop-types';
|
|
20
|
-
import { contentTrayDocumentShape } from '../../shared/fileShape';
|
|
21
|
-
import formatMessage from '../../../../format-message';
|
|
22
|
-
import { Text } from '@instructure/ui-text';
|
|
23
|
-
import { View } from '@instructure/ui-view';
|
|
24
|
-
import Link from '../../instructure_documents/components/Link';
|
|
25
|
-
import { LoadMoreButton, LoadingIndicator, LoadingStatus, useIncrementalLoading } from '../../../../common/incremental-loading';
|
|
26
|
-
const PENDING_MEDIA_ENTRY_ID = 'maybe';
|
|
27
|
-
|
|
28
|
-
function hasFiles(media) {
|
|
29
|
-
return media.files.length > 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function isEmpty(media) {
|
|
33
|
-
return !hasFiles(media) && !media.hasMore && !media.isLoading;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function renderLinks(files, handleClick, lastItemRef) {
|
|
37
|
-
return files.map((f, index) => {
|
|
38
|
-
let focusRef = null;
|
|
39
|
-
|
|
40
|
-
if (index === files.length - 1) {
|
|
41
|
-
focusRef = lastItemRef;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return /*#__PURE__*/React.createElement(Link, Object.assign({
|
|
45
|
-
key: f.id
|
|
46
|
-
}, f, {
|
|
47
|
-
onClick: handleClick,
|
|
48
|
-
focusRef: focusRef,
|
|
49
|
-
disabled: f.media_entry_id === PENDING_MEDIA_ENTRY_ID,
|
|
50
|
-
disabledMessage: formatMessage('Media file is processing. Please try again later.')
|
|
51
|
-
}));
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function renderLoadingError(_error) {
|
|
56
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
57
|
-
as: "div",
|
|
58
|
-
role: "alert",
|
|
59
|
-
margin: "medium"
|
|
60
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
61
|
-
color: "danger"
|
|
62
|
-
}, formatMessage('Loading failed.')));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export default function MediaPanel(props) {
|
|
66
|
-
const {
|
|
67
|
-
fetchInitialMedia,
|
|
68
|
-
fetchNextMedia,
|
|
69
|
-
contextType,
|
|
70
|
-
sortBy,
|
|
71
|
-
searchString
|
|
72
|
-
} = props;
|
|
73
|
-
const media = props.media[contextType];
|
|
74
|
-
const {
|
|
75
|
-
hasMore,
|
|
76
|
-
isLoading,
|
|
77
|
-
error,
|
|
78
|
-
files
|
|
79
|
-
} = media;
|
|
80
|
-
const lastItemRef = useRef(null);
|
|
81
|
-
const loader = useIncrementalLoading({
|
|
82
|
-
hasMore,
|
|
83
|
-
isLoading,
|
|
84
|
-
lastItemRef,
|
|
85
|
-
onLoadInitial: fetchInitialMedia,
|
|
86
|
-
onLoadMore: fetchNextMedia,
|
|
87
|
-
records: files,
|
|
88
|
-
contextType,
|
|
89
|
-
sortBy,
|
|
90
|
-
searchString
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
const handleFileClick = file => {
|
|
94
|
-
props.onMediaEmbed(file);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
98
|
-
as: "div",
|
|
99
|
-
"data-testid": "instructure_links-MediaPanel"
|
|
100
|
-
}, renderLinks(files, handleFileClick, lastItemRef), loader.isLoading && /*#__PURE__*/React.createElement(LoadingIndicator, {
|
|
101
|
-
loader: loader
|
|
102
|
-
}), !loader.isLoading && loader.hasMore && /*#__PURE__*/React.createElement(LoadMoreButton, {
|
|
103
|
-
loader: loader
|
|
104
|
-
}), /*#__PURE__*/React.createElement(LoadingStatus, {
|
|
105
|
-
loader: loader
|
|
106
|
-
}), error && renderLoadingError(error), isEmpty(media) && /*#__PURE__*/React.createElement(View, {
|
|
107
|
-
as: "div",
|
|
108
|
-
role: "alert",
|
|
109
|
-
padding: "medium"
|
|
110
|
-
}, formatMessage('No results.')));
|
|
111
|
-
}
|
|
112
|
-
MediaPanel.propTypes = {
|
|
113
|
-
contextType: string.isRequired,
|
|
114
|
-
fetchInitialMedia: func.isRequired,
|
|
115
|
-
fetchNextMedia: func.isRequired,
|
|
116
|
-
onMediaEmbed: func.isRequired,
|
|
117
|
-
media: contentTrayDocumentShape.isRequired,
|
|
118
|
-
sortBy: shape({
|
|
119
|
-
sort: oneOf(['date_added', 'alphabetical']).isRequired,
|
|
120
|
-
order: oneOf(['asc', 'desc']).isRequired
|
|
121
|
-
}),
|
|
122
|
-
searchString: string
|
|
123
|
-
};
|