@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,100 +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 { bool, func, string } from 'prop-types';
|
|
20
|
-
import formatMessage from '../../../../format-message';
|
|
21
|
-
import { collectionsShape, linkShape } from './propTypes';
|
|
22
|
-
import NavigationPanel from './NavigationPanel';
|
|
23
|
-
import CollectionPanel from './CollectionPanel';
|
|
24
|
-
import { View } from '@instructure/ui-view';
|
|
25
|
-
import { pickProps } from '@instructure/ui-react-utils';
|
|
26
|
-
|
|
27
|
-
function LinksPanel(props) {
|
|
28
|
-
const isCourse = props.contextType === 'course';
|
|
29
|
-
const isGroup = props.contextType === 'group';
|
|
30
|
-
const collectionProps = pickProps(props, CollectionPanel.propTypes);
|
|
31
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
32
|
-
as: "div",
|
|
33
|
-
"data-testid": "instructure_links-LinksPanel"
|
|
34
|
-
}, (isCourse || isGroup) && /*#__PURE__*/React.createElement(CollectionPanel, Object.assign({}, collectionProps, {
|
|
35
|
-
editing: props.editing,
|
|
36
|
-
onEditClick: props.onEditClick,
|
|
37
|
-
selectedLink: props.selectedLink,
|
|
38
|
-
collection: "wikiPages",
|
|
39
|
-
label: formatMessage('Pages')
|
|
40
|
-
})), isCourse && /*#__PURE__*/React.createElement(CollectionPanel, Object.assign({}, collectionProps, {
|
|
41
|
-
editing: props.editing,
|
|
42
|
-
onEditClick: props.onEditClick,
|
|
43
|
-
selectedLink: props.selectedLink,
|
|
44
|
-
collection: "assignments",
|
|
45
|
-
label: formatMessage('Assignments')
|
|
46
|
-
})), isCourse && /*#__PURE__*/React.createElement(CollectionPanel, Object.assign({}, collectionProps, {
|
|
47
|
-
editing: props.editing,
|
|
48
|
-
onEditClick: props.onEditClick,
|
|
49
|
-
selectedLink: props.selectedLink,
|
|
50
|
-
collection: "quizzes",
|
|
51
|
-
label: formatMessage('Quizzes')
|
|
52
|
-
})), (isCourse || isGroup) && /*#__PURE__*/React.createElement(CollectionPanel, Object.assign({}, collectionProps, {
|
|
53
|
-
editing: props.editing,
|
|
54
|
-
onEditClick: props.onEditClick,
|
|
55
|
-
selectedLink: props.selectedLink,
|
|
56
|
-
collection: "announcements",
|
|
57
|
-
label: formatMessage('Announcements')
|
|
58
|
-
})), (isCourse || isGroup) && /*#__PURE__*/React.createElement(CollectionPanel, Object.assign({}, collectionProps, {
|
|
59
|
-
editing: props.editing,
|
|
60
|
-
onEditClick: props.onEditClick,
|
|
61
|
-
selectedLink: props.selectedLink,
|
|
62
|
-
collection: "discussions",
|
|
63
|
-
label: formatMessage('Discussions')
|
|
64
|
-
})), isCourse && /*#__PURE__*/React.createElement(CollectionPanel, Object.assign({}, collectionProps, {
|
|
65
|
-
editing: props.editing,
|
|
66
|
-
onEditClick: props.onEditClick,
|
|
67
|
-
selectedLink: props.selectedLink,
|
|
68
|
-
collection: "modules",
|
|
69
|
-
label: formatMessage('Modules')
|
|
70
|
-
})), /*#__PURE__*/React.createElement(NavigationPanel, {
|
|
71
|
-
contextType: props.contextType,
|
|
72
|
-
contextId: props.contextId,
|
|
73
|
-
onLinkClick: props.onLinkClick,
|
|
74
|
-
onChangeAccordion: props.onChangeAccordion,
|
|
75
|
-
selectedAccordionIndex: props.selectedAccordionIndex,
|
|
76
|
-
editing: props.editing,
|
|
77
|
-
onEditClick: props.onEditClick
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
LinksPanel.propTypes = {
|
|
82
|
-
selectedAccordionIndex: string,
|
|
83
|
-
onChangeAccordion: func,
|
|
84
|
-
contextType: string.isRequired,
|
|
85
|
-
contextId: string.isRequired,
|
|
86
|
-
searchString: string,
|
|
87
|
-
collections: collectionsShape.isRequired,
|
|
88
|
-
fetchInitialPage: func,
|
|
89
|
-
fetchNextPage: func,
|
|
90
|
-
onLinkClick: func,
|
|
91
|
-
canCreatePages: bool,
|
|
92
|
-
editing: bool,
|
|
93
|
-
onEditClick: func,
|
|
94
|
-
selectedLink: linkShape
|
|
95
|
-
};
|
|
96
|
-
LinksPanel.defaultProps = {
|
|
97
|
-
selectedAccordionIndex: '',
|
|
98
|
-
editing: false
|
|
99
|
-
};
|
|
100
|
-
export default LinksPanel;
|
|
@@ -1,141 +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 { bool, func, string } from 'prop-types';
|
|
19
|
-
import React from 'react';
|
|
20
|
-
import LinkSet from './LinkSet';
|
|
21
|
-
import formatMessage from '../../../../format-message';
|
|
22
|
-
import AccordionSection from './AccordionSection';
|
|
23
|
-
|
|
24
|
-
function typeCollection(contextId, contextType) {
|
|
25
|
-
switch (contextType) {
|
|
26
|
-
case 'course':
|
|
27
|
-
return {
|
|
28
|
-
links: [{
|
|
29
|
-
href: `/courses/${contextId}`,
|
|
30
|
-
title: formatMessage('Home')
|
|
31
|
-
}, {
|
|
32
|
-
href: `/courses/${contextId}/announcements`,
|
|
33
|
-
title: formatMessage('Announcements')
|
|
34
|
-
}, {
|
|
35
|
-
href: `/courses/${contextId}/assignments`,
|
|
36
|
-
title: formatMessage('Assignments')
|
|
37
|
-
}, {
|
|
38
|
-
href: `/courses/${contextId}/discussion_topics`,
|
|
39
|
-
title: formatMessage('Discussions')
|
|
40
|
-
}, {
|
|
41
|
-
href: `/courses/${contextId}/grades`,
|
|
42
|
-
title: formatMessage('Grades')
|
|
43
|
-
}, {
|
|
44
|
-
href: `/courses/${contextId}/users`,
|
|
45
|
-
title: formatMessage('People')
|
|
46
|
-
}, {
|
|
47
|
-
href: `/courses/${contextId}/pages`,
|
|
48
|
-
title: formatMessage('Pages')
|
|
49
|
-
}, {
|
|
50
|
-
href: `/courses/${contextId}/files`,
|
|
51
|
-
title: formatMessage('Files')
|
|
52
|
-
}, {
|
|
53
|
-
href: `/courses/${contextId}/assignments/syllabus`,
|
|
54
|
-
title: formatMessage('Syllabus')
|
|
55
|
-
}, // outcomes
|
|
56
|
-
{
|
|
57
|
-
href: `/courses/${contextId}/quizzes`,
|
|
58
|
-
title: formatMessage('Quizzes')
|
|
59
|
-
}, {
|
|
60
|
-
href: `/courses/${contextId}/modules`,
|
|
61
|
-
title: formatMessage('Modules')
|
|
62
|
-
}, // conferences
|
|
63
|
-
{
|
|
64
|
-
href: `/courses/${contextId}/collaborations`,
|
|
65
|
-
title: formatMessage('Collaborations')
|
|
66
|
-
} // settings
|
|
67
|
-
]
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
case 'group':
|
|
71
|
-
return {
|
|
72
|
-
links: [{
|
|
73
|
-
href: `/groups/${contextId}/pages`,
|
|
74
|
-
title: formatMessage('Wiki Home')
|
|
75
|
-
}, {
|
|
76
|
-
href: `/groups/${contextId}/discussion_topics`,
|
|
77
|
-
title: formatMessage('Discussions Index')
|
|
78
|
-
}, {
|
|
79
|
-
href: `/groups/${contextId}/announcements`,
|
|
80
|
-
title: formatMessage('Announcement List')
|
|
81
|
-
}, {
|
|
82
|
-
href: `/groups/${contextId}/files`,
|
|
83
|
-
title: formatMessage('Files Index')
|
|
84
|
-
}, {
|
|
85
|
-
href: `/groups/${contextId}/collaborations`,
|
|
86
|
-
title: formatMessage('Collaborations')
|
|
87
|
-
}, {
|
|
88
|
-
href: `/groups/${contextId}/users`,
|
|
89
|
-
title: formatMessage('People')
|
|
90
|
-
}]
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
default:
|
|
94
|
-
// user, TODO
|
|
95
|
-
return {
|
|
96
|
-
links: [{
|
|
97
|
-
href: `/users/${contextId}/files`,
|
|
98
|
-
title: formatMessage('Files Index')
|
|
99
|
-
}]
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export default function NavigationPanel(props) {
|
|
105
|
-
const collection = typeCollection(props.contextId, props.contextType);
|
|
106
|
-
let navigationSummary = '';
|
|
107
|
-
|
|
108
|
-
if (props.contextType === 'course') {
|
|
109
|
-
navigationSummary = formatMessage('Course Navigation');
|
|
110
|
-
} else if (props.contextType === 'group') {
|
|
111
|
-
navigationSummary = formatMessage('Group Navigation');
|
|
112
|
-
} else {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
117
|
-
"data-testid": "instructure_links-NavigationPanel"
|
|
118
|
-
}, /*#__PURE__*/React.createElement(AccordionSection, {
|
|
119
|
-
collection: "navigation",
|
|
120
|
-
onToggle: props.onChangeAccordion,
|
|
121
|
-
expanded: props.selectedAccordionIndex === 'navigation',
|
|
122
|
-
label: navigationSummary
|
|
123
|
-
}, /*#__PURE__*/React.createElement(LinkSet, {
|
|
124
|
-
type: "navigation",
|
|
125
|
-
collection: collection,
|
|
126
|
-
onLinkClick: props.onLinkClick,
|
|
127
|
-
contextType: props.contextType,
|
|
128
|
-
contextId: props.contextId,
|
|
129
|
-
editing: props.editing,
|
|
130
|
-
onEditClick: props.onEditClick
|
|
131
|
-
})));
|
|
132
|
-
}
|
|
133
|
-
NavigationPanel.propTypes = {
|
|
134
|
-
contextType: string.isRequired,
|
|
135
|
-
contextId: string.isRequired,
|
|
136
|
-
onChangeAccordion: func.isRequired,
|
|
137
|
-
selectedAccordionIndex: string,
|
|
138
|
-
onLinkClick: func,
|
|
139
|
-
editing: bool,
|
|
140
|
-
onEditClick: func
|
|
141
|
-
};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import _pt from "prop-types";
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (C) 2023 - present Instructure, Inc.
|
|
5
|
-
*
|
|
6
|
-
* This file is part of Canvas.
|
|
7
|
-
*
|
|
8
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
9
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
10
|
-
* Software Foundation, version 3 of the License.
|
|
11
|
-
*
|
|
12
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
13
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
14
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
15
|
-
* details.
|
|
16
|
-
*
|
|
17
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
18
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
-
*/
|
|
20
|
-
import React from 'react';
|
|
21
|
-
import { View } from '@instructure/ui-view';
|
|
22
|
-
import { Flex } from '@instructure/ui-flex';
|
|
23
|
-
import { Text } from '@instructure/ui-text';
|
|
24
|
-
import { Link } from '@instructure/ui-link';
|
|
25
|
-
import formatMessage from '../../../../format-message';
|
|
26
|
-
import { getIcon } from '../../shared/linkUtils';
|
|
27
|
-
export function buildUrl(contextType, contextId, collectionType) {
|
|
28
|
-
var _typeMap$collectionTy;
|
|
29
|
-
|
|
30
|
-
const typeMap = {
|
|
31
|
-
wikiPages: 'pages',
|
|
32
|
-
discussions: 'discussion_topics'
|
|
33
|
-
};
|
|
34
|
-
return `/${contextType}s/${contextId}/${(_typeMap$collectionTy = typeMap[collectionType]) !== null && _typeMap$collectionTy !== void 0 ? _typeMap$collectionTy : collectionType}`;
|
|
35
|
-
}
|
|
36
|
-
export function getMessage(collectionType, isSearchResult) {
|
|
37
|
-
switch (collectionType) {
|
|
38
|
-
case 'wikiPages':
|
|
39
|
-
return isSearchResult ? formatMessage('No pages found.') : formatMessage('No pages created yet.');
|
|
40
|
-
|
|
41
|
-
case 'assignments':
|
|
42
|
-
return isSearchResult ? formatMessage('No assignments found.') : formatMessage('No assignments created yet.');
|
|
43
|
-
|
|
44
|
-
case 'quizzes':
|
|
45
|
-
return isSearchResult ? formatMessage('No quizzes found.') : formatMessage('No quizzes created yet.');
|
|
46
|
-
|
|
47
|
-
case 'announcements':
|
|
48
|
-
return isSearchResult ? formatMessage('No announcements found.') : formatMessage('No announcements created yet.');
|
|
49
|
-
|
|
50
|
-
case 'discussions':
|
|
51
|
-
return isSearchResult ? formatMessage('No discussions found.') : formatMessage('No discussions created yet.');
|
|
52
|
-
|
|
53
|
-
case 'modules':
|
|
54
|
-
return isSearchResult ? formatMessage('No modules found.') : formatMessage('No modules created yet.');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
export const NoResults = _ref => {
|
|
58
|
-
let {
|
|
59
|
-
contextType,
|
|
60
|
-
contextId,
|
|
61
|
-
collectionType,
|
|
62
|
-
isSearchResult
|
|
63
|
-
} = _ref;
|
|
64
|
-
const Icon = getIcon(collectionType);
|
|
65
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
66
|
-
padding: "xx-large"
|
|
67
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
68
|
-
justifyItems: "center",
|
|
69
|
-
alignItems: "center",
|
|
70
|
-
direction: "column"
|
|
71
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(Icon, {
|
|
72
|
-
size: "large",
|
|
73
|
-
color: "secondary",
|
|
74
|
-
padding: "large"
|
|
75
|
-
})), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
76
|
-
margin: "small 0 0"
|
|
77
|
-
}, /*#__PURE__*/React.createElement(Text, null, getMessage(collectionType, isSearchResult))), !isSearchResult && /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(Link, {
|
|
78
|
-
href: buildUrl(contextType, contextId, collectionType),
|
|
79
|
-
target: "_blank"
|
|
80
|
-
}, formatMessage('Add one!')))));
|
|
81
|
-
};
|
|
82
|
-
NoResults.propTypes = {
|
|
83
|
-
contextType: _pt.oneOf(['course', 'group']).isRequired,
|
|
84
|
-
contextId: _pt.string.isRequired,
|
|
85
|
-
collectionType: _pt.oneOf(['wikiPages', 'assignments', 'quizzes', 'announcements', 'discussions', 'modules']).isRequired,
|
|
86
|
-
isSearchResult: _pt.bool.isRequired
|
|
87
|
-
};
|
|
@@ -1,41 +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 { arrayOf, bool, object, oneOf, shape, string } from 'prop-types';
|
|
19
|
-
export const linkShape = shape({
|
|
20
|
-
href: string.isRequired,
|
|
21
|
-
title: string.isRequired,
|
|
22
|
-
published: bool,
|
|
23
|
-
date: string,
|
|
24
|
-
date_type: string,
|
|
25
|
-
has_overrides: bool
|
|
26
|
-
});
|
|
27
|
-
export const linksShape = shape({
|
|
28
|
-
hasMore: bool,
|
|
29
|
-
isLoading: bool,
|
|
30
|
-
lastError: object,
|
|
31
|
-
links: arrayOf(linkShape).isRequired
|
|
32
|
-
});
|
|
33
|
-
export const linkType = oneOf(['assignments', 'discussions', 'modules', 'quizzes', 'announcements', 'wikiPages', 'navigation']);
|
|
34
|
-
export const collectionsShape = shape({
|
|
35
|
-
announcements: linksShape,
|
|
36
|
-
assignments: linksShape,
|
|
37
|
-
discussions: linksShape,
|
|
38
|
-
modules: linksShape,
|
|
39
|
-
quizzes: linksShape,
|
|
40
|
-
wikiPages: linksShape
|
|
41
|
-
});
|
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
5
|
-
*
|
|
6
|
-
* This file is part of Canvas.
|
|
7
|
-
*
|
|
8
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
9
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
10
|
-
* Software Foundation, version 3 of the License.
|
|
11
|
-
*
|
|
12
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
13
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
14
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
15
|
-
* details.
|
|
16
|
-
*
|
|
17
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
18
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/*
|
|
22
|
-
* here's how linking works
|
|
23
|
-
* Creation:
|
|
24
|
-
* 1. No text is selected, user clicks create link button:
|
|
25
|
-
* - display the create link dialog with text and URL input
|
|
26
|
-
* - insert an <a> at the caret, linked to the URL with the text content
|
|
27
|
-
* 2. Text is selected, user clicks create link button:
|
|
28
|
-
* - display the create link dialog with text and URL input
|
|
29
|
-
* - the text input displays the plain-text content of the selection
|
|
30
|
-
* - on saving, if the plain-text has not changed, leave it unchanged in the RCE,
|
|
31
|
-
* if it has changed, replace the selection with the new plain-text.
|
|
32
|
-
* Wrap the text in an <a>, linked to the URL
|
|
33
|
-
* 3. An image + optional text is selected, user clicks create link button
|
|
34
|
-
* - display the create link dialog with URL input only
|
|
35
|
-
* - on saving, the selection is wrapped in an <a>, linked to the URL
|
|
36
|
-
* 4. An iframe is w/in the selection
|
|
37
|
-
* - disable the create link function
|
|
38
|
-
*
|
|
39
|
-
* Editing:
|
|
40
|
-
* 1. the caret is w/in a text link, but nothing is selected or
|
|
41
|
-
* some subset of the link's text is selected
|
|
42
|
-
* - display the link Options popup button. when clicked...
|
|
43
|
-
* - expand the selection to be the whole link text
|
|
44
|
-
* - display the tray with the link's plain-text in the text input and the href
|
|
45
|
-
* in the URL input
|
|
46
|
-
* - on saving, if the plain-text is unchanged, leave the text unchanged in the RCE,
|
|
47
|
-
* if it has changed, replace the link text with the new plain-text.
|
|
48
|
-
* Update the <a>'s href to the new URL
|
|
49
|
-
* 2. An image w/in a link is selected, or the caret is on the image, or the image
|
|
50
|
-
* plus some surrounding text that's all part of the existing link is selected, or
|
|
51
|
-
* the caret is w/in a link that contains an image
|
|
52
|
-
* a. for now: show the link and image Options buttons in a popup toolbar
|
|
53
|
-
* - on clicking the link Options...
|
|
54
|
-
* - expand the selection to be the whole link contents
|
|
55
|
-
* - show the link options tray, with no text input
|
|
56
|
-
* - on saving, update the link's href
|
|
57
|
-
* b. new-improved: show a single Options button, when clicked...
|
|
58
|
-
* - expand the selection to be the whole link contents
|
|
59
|
-
* - show the options tray with Image Options and Link Options sections
|
|
60
|
-
* the link text input is empty.
|
|
61
|
-
* - on saving, if the link text input is still empty, replace the link's
|
|
62
|
-
* href with the new URL. if the link text is updated, replace the link's
|
|
63
|
-
* content with the new plain text (deleting the image)
|
|
64
|
-
*/
|
|
65
|
-
import formatMessage from '../../../format-message';
|
|
66
|
-
import clickCallback from './clickCallback';
|
|
67
|
-
import bridge from '../../../bridge';
|
|
68
|
-
import { getAnchorElement, isOKToLink } from '../../contentInsertionUtils';
|
|
69
|
-
import LinkOptionsTrayController from './components/LinkOptionsTray/LinkOptionsTrayController';
|
|
70
|
-
import { CREATE_LINK, EDIT_LINK } from './components/LinkOptionsDialog/LinkOptionsDialogController';
|
|
71
|
-
import tinymce from 'tinymce';
|
|
72
|
-
const trayController = new LinkOptionsTrayController();
|
|
73
|
-
const COURSE_PLUGIN_KEY = 'course_links';
|
|
74
|
-
const GROUP_PLUGIN_KEY = 'group_links';
|
|
75
|
-
|
|
76
|
-
function getCommandName(selectedNode) {
|
|
77
|
-
const isCourseLink = selectedNode.getAttribute('data-course-type');
|
|
78
|
-
return isCourseLink ? 'instructureTrayForCourseLinks' : 'instructureTrayToEditLink';
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function selectedAnchorCount(ed) {
|
|
82
|
-
return ed.selection.getRng().cloneContents().querySelectorAll('a').length;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function getMenuItems(ed) {
|
|
86
|
-
var _ed$settings$canvas_r;
|
|
87
|
-
|
|
88
|
-
const contextType = (_ed$settings$canvas_r = ed.settings.canvas_rce_containing_context) === null || _ed$settings$canvas_r === void 0 ? void 0 : _ed$settings$canvas_r.type;
|
|
89
|
-
const sel_anchors = ed.selection.isCollapsed() ? 0 : selectedAnchorCount(ed);
|
|
90
|
-
let items;
|
|
91
|
-
|
|
92
|
-
if (getAnchorElement(ed, ed.selection.getNode())) {
|
|
93
|
-
// cursor is on an anchor, edit or remove it
|
|
94
|
-
items = [{
|
|
95
|
-
text: formatMessage('Edit Link'),
|
|
96
|
-
value: getCommandName(ed.selection.getNode())
|
|
97
|
-
}, {
|
|
98
|
-
text: formatMessage('Remove Link'),
|
|
99
|
-
value: 'instructureUnlink'
|
|
100
|
-
}];
|
|
101
|
-
} else {
|
|
102
|
-
items = [{
|
|
103
|
-
text: formatMessage('External Link'),
|
|
104
|
-
value: 'instructureLinkCreate'
|
|
105
|
-
}];
|
|
106
|
-
|
|
107
|
-
if (contextType === 'course') {
|
|
108
|
-
items.push({
|
|
109
|
-
text: formatMessage('Course Link'),
|
|
110
|
-
value: 'instructure_course_links'
|
|
111
|
-
});
|
|
112
|
-
} else if (contextType === 'group') {
|
|
113
|
-
items.push({
|
|
114
|
-
text: formatMessage('Group Link'),
|
|
115
|
-
value: 'instructure_group_links'
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (sel_anchors > 0) {
|
|
120
|
-
// selection contains anchor(s), so the user can remove them
|
|
121
|
-
items.push({
|
|
122
|
-
text: formatMessage.plural(sel_anchors, {
|
|
123
|
-
one: 'Remove Link',
|
|
124
|
-
other: 'Remove Links'
|
|
125
|
-
}),
|
|
126
|
-
value: 'instructureUnlinkAll'
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return items;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function removeAnchorFromSelectedElement(ed) {
|
|
135
|
-
const selectedElem = ed.selection.getNode();
|
|
136
|
-
const anchorElem = getAnchorElement(ed, selectedElem);
|
|
137
|
-
ed.selection.select(anchorElem);
|
|
138
|
-
ed.undoManager.add();
|
|
139
|
-
ed.execCommand('Unlink');
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function doMenuItem(ed, actionName) {
|
|
143
|
-
switch (actionName) {
|
|
144
|
-
case 'instructureTrayToEditLink':
|
|
145
|
-
case 'instructureTrayForCourseLinks':
|
|
146
|
-
case 'instructureLinkCreate':
|
|
147
|
-
ed.execCommand(actionName);
|
|
148
|
-
break;
|
|
149
|
-
|
|
150
|
-
case 'instructureUnlink':
|
|
151
|
-
removeAnchorFromSelectedElement(ed);
|
|
152
|
-
break;
|
|
153
|
-
|
|
154
|
-
case 'instructureUnlinkAll':
|
|
155
|
-
ed.undoManager.add();
|
|
156
|
-
ed.execCommand('unlink');
|
|
157
|
-
break;
|
|
158
|
-
|
|
159
|
-
case 'instructure_course_links':
|
|
160
|
-
ed.focus(true); // activate the editor without changing focus
|
|
161
|
-
|
|
162
|
-
ed.execCommand('instructureTrayForLinks', false, COURSE_PLUGIN_KEY);
|
|
163
|
-
break;
|
|
164
|
-
|
|
165
|
-
case 'instructure_group_links':
|
|
166
|
-
ed.focus(true); // activate the editor without changing focus
|
|
167
|
-
|
|
168
|
-
ed.execCommand('instructureTrayForLinks', false, GROUP_PLUGIN_KEY);
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
tinymce.PluginManager.add('instructure_links', function (ed) {
|
|
174
|
-
// Register commands
|
|
175
|
-
ed.addCommand('instructureLinkCreate', () => clickCallback(ed, CREATE_LINK));
|
|
176
|
-
ed.addCommand('instructureLinkEdit', () => clickCallback(ed, EDIT_LINK));
|
|
177
|
-
ed.addCommand('instructureTrayForLinks', (ui, plugin_key) => {
|
|
178
|
-
bridge.showTrayForPlugin(plugin_key, ed.id);
|
|
179
|
-
});
|
|
180
|
-
ed.addCommand('instructureTrayToEditLink', _ui => {
|
|
181
|
-
trayController.showTrayForEditor(ed);
|
|
182
|
-
});
|
|
183
|
-
ed.addCommand('instructureTrayForCourseLinks', () => {
|
|
184
|
-
ed.selection.select(ed.selection.getNode());
|
|
185
|
-
return bridge.showTrayForPlugin('course_link_edit', ed.id);
|
|
186
|
-
}); // Register shortcuts
|
|
187
|
-
|
|
188
|
-
ed.addShortcut('Meta+K', '', 'instructureLinkCreate'); // Register menu item
|
|
189
|
-
|
|
190
|
-
ed.ui.registry.addNestedMenuItem('instructure_links', {
|
|
191
|
-
text: formatMessage('Link'),
|
|
192
|
-
icon: 'link',
|
|
193
|
-
getSubmenuItems: () => getMenuItems(ed).map(item => {
|
|
194
|
-
return {
|
|
195
|
-
type: 'menuitem',
|
|
196
|
-
text: item.text,
|
|
197
|
-
onAction: () => doMenuItem(ed, item.value),
|
|
198
|
-
onSetup: api => {
|
|
199
|
-
api.setDisabled(!isOKToLink(ed.selection.getContent()));
|
|
200
|
-
return () => {};
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
})
|
|
204
|
-
}); // Register toolbar button
|
|
205
|
-
|
|
206
|
-
ed.ui.registry.addMenuButton('instructure_links', {
|
|
207
|
-
tooltip: formatMessage('Links'),
|
|
208
|
-
icon: 'link',
|
|
209
|
-
fetch: callback => callback(getMenuItems(ed).map(item => ({
|
|
210
|
-
type: 'menuitem',
|
|
211
|
-
text: item.text,
|
|
212
|
-
value: item.value,
|
|
213
|
-
onAction: () => doMenuItem(ed, item.value)
|
|
214
|
-
}))),
|
|
215
|
-
|
|
216
|
-
onSetup(api) {
|
|
217
|
-
function handleNodeChange(e) {
|
|
218
|
-
if (e !== null && e !== void 0 && e.element) {
|
|
219
|
-
api.setActive(!!getAnchorElement(ed, e.element));
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
api.setDisabled(!isOKToLink(ed.selection.getContent()));
|
|
223
|
-
} // if the user selects all the content w/in a link and deletes it via the keyboard
|
|
224
|
-
// make sure the surrounding <a> gets deleted too.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
function deleteEmptyLink() {
|
|
228
|
-
let node = null;
|
|
229
|
-
|
|
230
|
-
if (ed.selection.getNode().tagName === 'A') {
|
|
231
|
-
node = ed.selection.getNode();
|
|
232
|
-
} else {
|
|
233
|
-
var _rng$endContainer$nex, _rng$nextSibling;
|
|
234
|
-
|
|
235
|
-
// Type checking is disabled here because the code below isn't type safe. The code below
|
|
236
|
-
// should be updated, specifically rng.endContainer.nextSibling?.tagName
|
|
237
|
-
const rng = ed.selection.getRng();
|
|
238
|
-
|
|
239
|
-
if (rng.commonAncestorContainer === rng.endContainer && ((_rng$endContainer$nex = rng.endContainer.nextSibling) === null || _rng$endContainer$nex === void 0 ? void 0 : _rng$endContainer$nex.tagName) === 'A') {
|
|
240
|
-
node = rng.endContainer.nextSibling;
|
|
241
|
-
} else if (((_rng$nextSibling = rng.nextSibling) === null || _rng$nextSibling === void 0 ? void 0 : _rng$nextSibling.tagName) === 'A') {
|
|
242
|
-
node = rng.nextSibling;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
if (node) {
|
|
247
|
-
var _node$textContent;
|
|
248
|
-
|
|
249
|
-
if (node.firstElementChild) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
const txt = (_node$textContent = node.textContent) === null || _node$textContent === void 0 ? void 0 : _node$textContent.trim();
|
|
254
|
-
|
|
255
|
-
if ((txt === null || txt === void 0 ? void 0 : txt.length) === 0) {
|
|
256
|
-
ed.execCommand('Unlink');
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
setTimeout(handleNodeChange, 0, null);
|
|
262
|
-
ed.on('NodeChange', handleNodeChange);
|
|
263
|
-
ed.on('Change', deleteEmptyLink);
|
|
264
|
-
return () => {
|
|
265
|
-
ed.off('NodeChange', handleNodeChange);
|
|
266
|
-
ed.off('Change', deleteEmptyLink);
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
}); // the context toolbar buttons
|
|
271
|
-
|
|
272
|
-
ed.ui.registry.addButton('instructure-link-options', {
|
|
273
|
-
onAction() {
|
|
274
|
-
ed.execCommand(getCommandName(ed.selection.getNode()), false, ed);
|
|
275
|
-
},
|
|
276
|
-
|
|
277
|
-
text: formatMessage('Link Options'),
|
|
278
|
-
tooltip: formatMessage('Show link options')
|
|
279
|
-
});
|
|
280
|
-
const remButtonLabel = formatMessage('Remove Link');
|
|
281
|
-
ed.ui.registry.addButton('instructureUnlink', {
|
|
282
|
-
onAction() {
|
|
283
|
-
removeAnchorFromSelectedElement(ed);
|
|
284
|
-
},
|
|
285
|
-
|
|
286
|
-
text: remButtonLabel
|
|
287
|
-
});
|
|
288
|
-
ed.ui.registry.addContextToolbar('instructure-link-toolbar', {
|
|
289
|
-
items: 'instructure-link-options instructureUnlink',
|
|
290
|
-
position: 'node',
|
|
291
|
-
predicate: elem => !!getAnchorElement(ed, elem),
|
|
292
|
-
scope: 'node'
|
|
293
|
-
});
|
|
294
|
-
});
|